@mu-agent/mu 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/index.js +134 -134
- package/dist/mu.js +211 -206
- package/dist/types/ai/catalog.d.ts +1 -0
- package/dist/types/ai/index.d.ts +1 -1
- package/dist/types/core/compaction.d.ts +1 -0
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/session.d.ts +10 -0
- package/dist/types/profile-coding/context.d.ts +0 -5
- package/dist/types/profile-coding/index.d.ts +1 -1
- package/dist/types/profile-coding/permissions.d.ts +10 -1
- package/dist/types/profile-coding/shell.d.ts +1 -0
- package/dist/types/profile-coding/state.d.ts +2 -2
- package/dist/types/profile-coding/tools/files.d.ts +2 -0
- package/dist/types/sdk/agent.d.ts +1 -0
- package/dist/types/sdk/file-store.d.ts +1 -0
- package/dist/types/sdk/index.d.ts +1 -1
- package/dist/types/sdk/shell-hooks.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var g3=Object.create;var{getPrototypeOf:h3,defineProperty:CQ,getOwnPropertyNames:u3}=Object;var m3=Object.prototype.hasOwnProperty;function l3($){return this[$]}var p3,c3,V6=($,Z,Q)=>{var W=$!=null&&typeof $==="object";if(W){var Y=Z?p3??=new WeakMap:c3??=new WeakMap,G=Y.get($);if(G)return G}Q=$!=null?g3(h3($)):{};let X=Z||!$||!$.__esModule?CQ(Q,"default",{value:$,enumerable:!0}):Q;for(let J of u3($))if(!m3.call(X,J))CQ(X,J,{get:l3.bind($,J),enumerable:!0});if(W)Y.set($,X);return X};var M=($,Z)=>()=>(Z||$((Z={exports:{}}).exports,Z),Z.exports);var $1=import.meta.require;var ZZ=M((E9)=>{Object.defineProperty(E9,"__esModule",{value:!0});E9.regexpCode=E9.getEsmExportName=E9.getProperty=E9.safeStringify=E9.stringify=E9.strConcat=E9.addCodeArg=E9.str=E9._=E9.nil=E9._Code=E9.Name=E9.IDENTIFIER=E9._CodeOrName=void 0;class A5{}E9._CodeOrName=A5;E9.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class Q$ extends A5{constructor($){super();if(!E9.IDENTIFIER.test($))throw Error("CodeGen: name must be a valid identifier");this.str=$}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}E9.Name=Q$;class j0 extends A5{constructor($){super();this._items=typeof $==="string"?[$]:$}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let $=this._items[0];return $===""||$==='""'}get str(){var $;return($=this._str)!==null&&$!==void 0?$:this._str=this._items.reduce((Z,Q)=>`${Z}${Q}`,"")}get names(){var $;return($=this._names)!==null&&$!==void 0?$:this._names=this._items.reduce((Z,Q)=>{if(Q instanceof Q$)Z[Q.str]=(Z[Q.str]||0)+1;return Z},{})}}E9._Code=j0;E9.nil=new j0("");function T9($,...Z){let Q=[$[0]],W=0;while(W<Z.length)i8(Q,Z[W]),Q.push($[++W]);return new j0(Q)}E9._=T9;var d8=new j0("+");function I9($,...Z){let Q=[$Z($[0])],W=0;while(W<Z.length)Q.push(d8),i8(Q,Z[W]),Q.push(d8,$Z($[++W]));return fz(Q),new j0(Q)}E9.str=I9;function i8($,Z){if(Z instanceof j0)$.push(...Z._items);else if(Z instanceof Q$)$.push(Z);else $.push(hz(Z))}E9.addCodeArg=i8;function fz($){let Z=1;while(Z<$.length-1){if($[Z]===d8){let Q=vz($[Z-1],$[Z+1]);if(Q!==void 0){$.splice(Z-1,3,Q);continue}$[Z++]="+"}Z++}}function vz($,Z){if(Z==='""')return $;if($==='""')return Z;if(typeof $=="string"){if(Z instanceof Q$||$[$.length-1]!=='"')return;if(typeof Z!="string")return`${$.slice(0,-1)}${Z}"`;if(Z[0]==='"')return $.slice(0,-1)+Z.slice(1);return}if(typeof Z=="string"&&Z[0]==='"'&&!($ instanceof Q$))return`"${$}${Z.slice(1)}`;return}function gz($,Z){return Z.emptyStr()?$:$.emptyStr()?Z:I9`${$}${Z}`}E9.strConcat=gz;function hz($){return typeof $=="number"||typeof $=="boolean"||$===null?$:$Z(Array.isArray($)?$.join(","):$)}function uz($){return new j0($Z($))}E9.stringify=uz;function $Z($){return JSON.stringify($).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}E9.safeStringify=$Z;function mz($){return typeof $=="string"&&E9.IDENTIFIER.test($)?new j0(`.${$}`):T9`[${$}]`}E9.getProperty=mz;function lz($){if(typeof $=="string"&&E9.IDENTIFIER.test($))return new j0(`${$}`);throw Error(`CodeGen: invalid export name: ${$}, use explicit $id name mapping`)}E9.getEsmExportName=lz;function pz($){return new j0($.toString())}E9.regexpCode=pz});var t8=M((y9)=>{Object.defineProperty(y9,"__esModule",{value:!0});y9.ValueScope=y9.ValueScopeName=y9.Scope=y9.varKinds=y9.UsedValueState=void 0;var X0=ZZ();class C9 extends Error{constructor($){super(`CodeGen: "code" for ${$} not defined`);this.value=$.value}}var O5;(function($){$[$.Started=0]="Started",$[$.Completed=1]="Completed"})(O5||(y9.UsedValueState=O5={}));y9.varKinds={const:new X0.Name("const"),let:new X0.Name("let"),var:new X0.Name("var")};class a8{constructor({prefixes:$,parent:Z}={}){this._names={},this._prefixes=$,this._parent=Z}toName($){return $ instanceof X0.Name?$:this.name($)}name($){return new X0.Name(this._newName($))}_newName($){let Z=this._names[$]||this._nameGroup($);return`${$}${Z.index++}`}_nameGroup($){var Z,Q;if(((Q=(Z=this._parent)===null||Z===void 0?void 0:Z._prefixes)===null||Q===void 0?void 0:Q.has($))||this._prefixes&&!this._prefixes.has($))throw Error(`CodeGen: prefix "${$}" is not allowed in this scope`);return this._names[$]={prefix:$,index:0}}}y9.Scope=a8;class r8 extends X0.Name{constructor($,Z){super(Z);this.prefix=$}setValue($,{property:Z,itemIndex:Q}){this.value=$,this.scopePath=X0._`.${new X0.Name(Z)}[${Q}]`}}y9.ValueScopeName=r8;var QF=X0._`\n`;class S9 extends a8{constructor($){super($);this._values={},this._scope=$.scope,this.opts={...$,_n:$.lines?QF:X0.nil}}get(){return this._scope}name($){return new r8($,this._newName($))}value($,Z){var Q;if(Z.ref===void 0)throw Error("CodeGen: ref must be passed in value");let W=this.toName($),{prefix:Y}=W,G=(Q=Z.key)!==null&&Q!==void 0?Q:Z.ref,X=this._values[Y];if(X){let B=X.get(G);if(B)return B}else X=this._values[Y]=new Map;X.set(G,W);let J=this._scope[Y]||(this._scope[Y]=[]),K=J.length;return J[K]=Z.ref,W.setValue(Z,{property:Y,itemIndex:K}),W}getValue($,Z){let Q=this._values[$];if(!Q)return;return Q.get(Z)}scopeRefs($,Z=this._values){return this._reduceValues(Z,(Q)=>{if(Q.scopePath===void 0)throw Error(`CodeGen: name "${Q}" has no value`);return X0._`${$}${Q.scopePath}`})}scopeCode($=this._values,Z,Q){return this._reduceValues($,(W)=>{if(W.value===void 0)throw Error(`CodeGen: name "${W}" has no value`);return W.value.code},Z,Q)}_reduceValues($,Z,Q={},W){let Y=X0.nil;for(let G in $){let X=$[G];if(!X)continue;let J=Q[G]=Q[G]||new Map;X.forEach((K)=>{if(J.has(K))return;J.set(K,O5.Started);let B=Z(K);if(B){let z=this.opts.es5?y9.varKinds.var:y9.varKinds.const;Y=X0._`${Y}${z} ${K} = ${B};${this.opts._n}`}else if(B=W===null||W===void 0?void 0:W(K))Y=X0._`${Y}${B}${this.opts._n}`;else throw new C9(K);J.set(K,O5.Completed)})}return Y}}y9.ValueScope=S9});var b=M((J0)=>{Object.defineProperty(J0,"__esModule",{value:!0});J0.or=J0.and=J0.not=J0.CodeGen=J0.operators=J0.varKinds=J0.ValueScopeName=J0.ValueScope=J0.Scope=J0.Name=J0.regexpCode=J0.stringify=J0.getProperty=J0.nil=J0.strConcat=J0.str=J0._=void 0;var k=ZZ(),P0=t8(),V1=ZZ();Object.defineProperty(J0,"_",{enumerable:!0,get:function(){return V1._}});Object.defineProperty(J0,"str",{enumerable:!0,get:function(){return V1.str}});Object.defineProperty(J0,"strConcat",{enumerable:!0,get:function(){return V1.strConcat}});Object.defineProperty(J0,"nil",{enumerable:!0,get:function(){return V1.nil}});Object.defineProperty(J0,"getProperty",{enumerable:!0,get:function(){return V1.getProperty}});Object.defineProperty(J0,"stringify",{enumerable:!0,get:function(){return V1.stringify}});Object.defineProperty(J0,"regexpCode",{enumerable:!0,get:function(){return V1.regexpCode}});Object.defineProperty(J0,"Name",{enumerable:!0,get:function(){return V1.Name}});var I5=t8();Object.defineProperty(J0,"Scope",{enumerable:!0,get:function(){return I5.Scope}});Object.defineProperty(J0,"ValueScope",{enumerable:!0,get:function(){return I5.ValueScope}});Object.defineProperty(J0,"ValueScopeName",{enumerable:!0,get:function(){return I5.ValueScopeName}});Object.defineProperty(J0,"varKinds",{enumerable:!0,get:function(){return I5.varKinds}});J0.operators={GT:new k._Code(">"),GTE:new k._Code(">="),LT:new k._Code("<"),LTE:new k._Code("<="),EQ:new k._Code("==="),NEQ:new k._Code("!=="),NOT:new k._Code("!"),OR:new k._Code("||"),AND:new k._Code("&&"),ADD:new k._Code("+")};class z1{optimizeNodes(){return this}optimizeNames($,Z){return this}}class _9 extends z1{constructor($,Z,Q){super();this.varKind=$,this.name=Z,this.rhs=Q}render({es5:$,_n:Z}){let Q=$?P0.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${Q} ${this.name}${W};`+Z}optimizeNames($,Z){if(!$[this.name.str])return;if(this.rhs)this.rhs=Y$(this.rhs,$,Z);return this}get names(){return this.rhs instanceof k._CodeOrName?this.rhs.names:{}}}class e8 extends z1{constructor($,Z,Q){super();this.lhs=$,this.rhs=Z,this.sideEffects=Q}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,Z){if(this.lhs instanceof k.Name&&!$[this.lhs.str]&&!this.sideEffects)return;return this.rhs=Y$(this.rhs,$,Z),this}get names(){let $=this.lhs instanceof k.Name?{}:{...this.lhs.names};return T5($,this.rhs)}}class k9 extends e8{constructor($,Z,Q,W){super($,Q,W);this.op=Z}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class x9 extends z1{constructor($){super();this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class f9 extends z1{constructor($){super();this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class v9 extends z1{constructor($){super();this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class g9 extends z1{constructor($){super();this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,Z){return this.code=Y$(this.code,$,Z),this}get names(){return this.code instanceof k._CodeOrName?this.code.names:{}}}class E5 extends z1{constructor($=[]){super();this.nodes=$}render($){return this.nodes.reduce((Z,Q)=>Z+Q.render($),"")}optimizeNodes(){let{nodes:$}=this,Z=$.length;while(Z--){let Q=$[Z].optimizeNodes();if(Array.isArray(Q))$.splice(Z,1,...Q);else if(Q)$[Z]=Q;else $.splice(Z,1)}return $.length>0?this:void 0}optimizeNames($,Z){let{nodes:Q}=this,W=Q.length;while(W--){let Y=Q[W];if(Y.optimizeNames($,Z))continue;XF($,Y.names),Q.splice(W,1)}return Q.length>0?this:void 0}get names(){return this.nodes.reduce(($,Z)=>y1($,Z.names),{})}}class F1 extends E5{render($){return"{"+$._n+super.render($)+"}"+$._n}}class h9 extends E5{}class QZ extends F1{}QZ.kind="else";class r0 extends F1{constructor($,Z){super(Z);this.condition=$}render($){let Z=`if(${this.condition})`+super.render($);if(this.else)Z+="else "+this.else.render($);return Z}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let Z=this.else;if(Z){let Q=Z.optimizeNodes();Z=this.else=Array.isArray(Q)?new QZ(Q):Q}if(Z){if($===!1)return Z instanceof r0?Z:Z.nodes;if(this.nodes.length)return this;return new r0(c9($),Z instanceof r0?[Z]:Z.nodes)}if($===!1||!this.nodes.length)return;return this}optimizeNames($,Z){var Q;if(this.else=(Q=this.else)===null||Q===void 0?void 0:Q.optimizeNames($,Z),!(super.optimizeNames($,Z)||this.else))return;return this.condition=Y$(this.condition,$,Z),this}get names(){let $=super.names;if(T5($,this.condition),this.else)y1($,this.else.names);return $}}r0.kind="if";class W$ extends F1{}W$.kind="for";class u9 extends W${constructor($){super();this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,Z){if(!super.optimizeNames($,Z))return;return this.iteration=Y$(this.iteration,$,Z),this}get names(){return y1(super.names,this.iteration.names)}}class m9 extends W${constructor($,Z,Q,W){super();this.varKind=$,this.name=Z,this.from=Q,this.to=W}render($){let Z=$.es5?P0.varKinds.var:this.varKind,{name:Q,from:W,to:Y}=this;return`for(${Z} ${Q}=${W}; ${Q}<${Y}; ${Q}++)`+super.render($)}get names(){let $=T5(super.names,this.from);return T5($,this.to)}}class o8 extends W${constructor($,Z,Q,W){super();this.loop=$,this.varKind=Z,this.name=Q,this.iterable=W}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,Z){if(!super.optimizeNames($,Z))return;return this.iterable=Y$(this.iterable,$,Z),this}get names(){return y1(super.names,this.iterable.names)}}class M5 extends F1{constructor($,Z,Q){super();this.name=$,this.args=Z,this.async=Q}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}M5.kind="func";class j5 extends E5{render($){return"return "+super.render($)}}j5.kind="return";class l9 extends F1{render($){let Z="try"+super.render($);if(this.catch)Z+=this.catch.render($);if(this.finally)Z+=this.finally.render($);return Z}optimizeNodes(){var $,Z;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(Z=this.finally)===null||Z===void 0||Z.optimizeNodes(),this}optimizeNames($,Z){var Q,W;return super.optimizeNames($,Z),(Q=this.catch)===null||Q===void 0||Q.optimizeNames($,Z),(W=this.finally)===null||W===void 0||W.optimizeNames($,Z),this}get names(){let $=super.names;if(this.catch)y1($,this.catch.names);if(this.finally)y1($,this.finally.names);return $}}class P5 extends F1{constructor($){super();this.error=$}render($){return`catch(${this.error})`+super.render($)}}P5.kind="catch";class w5 extends F1{render($){return"finally"+super.render($)}}w5.kind="finally";class p9{constructor($,Z={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...Z,_n:Z.lines?`
|
|
3
|
-
`:""},this._extScope=$,this._scope=new P0.Scope({parent:$}),this._nodes=[new h9]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,Z){let Q=this._extScope.value($,Z);return(this._values[Q.prefix]||(this._values[Q.prefix]=new Set)).add(Q),Q}getScopeValue($,Z){return this._extScope.getValue($,Z)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,Z,Q,W){let Y=this._scope.toName(Z);if(Q!==void 0&&W)this._constants[Y.str]=Q;return this._leafNode(new _9($,Y,Q)),Y}const($,Z,Q){return this._def(P0.varKinds.const,$,Z,Q)}let($,Z,Q){return this._def(P0.varKinds.let,$,Z,Q)}var($,Z,Q){return this._def(P0.varKinds.var,$,Z,Q)}assign($,Z,Q){return this._leafNode(new e8($,Z,Q))}add($,Z){return this._leafNode(new k9($,J0.operators.ADD,Z))}code($){if(typeof $=="function")$();else if($!==k.nil)this._leafNode(new g9($));return this}object(...$){let Z=["{"];for(let[Q,W]of $){if(Z.length>1)Z.push(",");if(Z.push(Q),Q!==W||this.opts.es5)Z.push(":"),(0,k.addCodeArg)(Z,W)}return Z.push("}"),new k._Code(Z)}if($,Z,Q){if(this._blockNode(new r0($)),Z&&Q)this.code(Z).else().code(Q).endIf();else if(Z)this.code(Z).endIf();else if(Q)throw Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new r0($))}else(){return this._elseNode(new QZ)}endIf(){return this._endBlockNode(r0,QZ)}_for($,Z){if(this._blockNode($),Z)this.code(Z).endFor();return this}for($,Z){return this._for(new u9($),Z)}forRange($,Z,Q,W,Y=this.opts.es5?P0.varKinds.var:P0.varKinds.let){let G=this._scope.toName($);return this._for(new m9(Y,G,Z,Q),()=>W(G))}forOf($,Z,Q,W=P0.varKinds.const){let Y=this._scope.toName($);if(this.opts.es5){let G=Z instanceof k.Name?Z:this.var("_arr",Z);return this.forRange("_i",0,k._`${G}.length`,(X)=>{this.var(Y,k._`${G}[${X}]`),Q(Y)})}return this._for(new o8("of",W,Y,Z),()=>Q(Y))}forIn($,Z,Q,W=this.opts.es5?P0.varKinds.var:P0.varKinds.const){if(this.opts.ownProperties)return this.forOf($,k._`Object.keys(${Z})`,Q);let Y=this._scope.toName($);return this._for(new o8("in",W,Y,Z),()=>Q(Y))}endFor(){return this._endBlockNode(W$)}label($){return this._leafNode(new x9($))}break($){return this._leafNode(new f9($))}return($){let Z=new j5;if(this._blockNode(Z),this.code($),Z.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(j5)}try($,Z,Q){if(!Z&&!Q)throw Error('CodeGen: "try" without "catch" and "finally"');let W=new l9;if(this._blockNode(W),this.code($),Z){let Y=this.name("e");this._currNode=W.catch=new P5(Y),Z(Y)}if(Q)this._currNode=W.finally=new w5,this.code(Q);return this._endBlockNode(P5,w5)}throw($){return this._leafNode(new v9($))}block($,Z){if(this._blockStarts.push(this._nodes.length),$)this.code($).endBlock(Z);return this}endBlock($){let Z=this._blockStarts.pop();if(Z===void 0)throw Error("CodeGen: not in self-balancing block");let Q=this._nodes.length-Z;if(Q<0||$!==void 0&&Q!==$)throw Error(`CodeGen: wrong number of nodes: ${Q} vs ${$} expected`);return this._nodes.length=Z,this}func($,Z=k.nil,Q,W){if(this._blockNode(new M5($,Z,Q)),W)this.code(W).endFunc();return this}endFunc(){return this._endBlockNode(M5)}optimize($=1){while($-- >0)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,Z){let Q=this._currNode;if(Q instanceof $||Z&&Q instanceof Z)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${Z?`${$.kind}/${Z.kind}`:$.kind}"`)}_elseNode($){let Z=this._currNode;if(!(Z instanceof r0))throw Error('CodeGen: "else" without "if"');return this._currNode=Z.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let Z=this._nodes;Z[Z.length-1]=$}}J0.CodeGen=p9;function y1($,Z){for(let Q in Z)$[Q]=($[Q]||0)+(Z[Q]||0);return $}function T5($,Z){return Z instanceof k._CodeOrName?y1($,Z.names):$}function Y$($,Z,Q){if($ instanceof k.Name)return W($);if(!Y($))return $;return new k._Code($._items.reduce((G,X)=>{if(X instanceof k.Name)X=W(X);if(X instanceof k._Code)G.push(...X._items);else G.push(X);return G},[]));function W(G){let X=Q[G.str];if(X===void 0||Z[G.str]!==1)return G;return delete Z[G.str],X}function Y(G){return G instanceof k._Code&&G._items.some((X)=>X instanceof k.Name&&Z[X.str]===1&&Q[X.str]!==void 0)}}function XF($,Z){for(let Q in Z)$[Q]=($[Q]||0)-(Z[Q]||0)}function c9($){return typeof $=="boolean"||typeof $=="number"||$===null?!$:k._`!${s8($)}`}J0.not=c9;var JF=d9(J0.operators.AND);function KF(...$){return $.reduce(JF)}J0.and=KF;var BF=d9(J0.operators.OR);function HF(...$){return $.reduce(BF)}J0.or=HF;function d9($){return(Z,Q)=>Z===k.nil?Q:Q===k.nil?Z:k._`${s8(Z)} ${$} ${s8(Q)}`}function s8($){return $ instanceof k.Name?$:k._`(${$})`}});var x=M(($7)=>{Object.defineProperty($7,"__esModule",{value:!0});$7.checkStrictMode=$7.getErrorPath=$7.Type=$7.useFunc=$7.setEvaluated=$7.evaluatedPropsToName=$7.mergeEvaluated=$7.eachItem=$7.unescapeJsonPointer=$7.escapeJsonPointer=$7.escapeFragment=$7.unescapeFragment=$7.schemaRefOrVal=$7.schemaHasRulesButRef=$7.schemaHasRules=$7.checkUnknownRules=$7.alwaysValidSchema=$7.toHash=void 0;var h=b(),DF=ZZ();function LF($){let Z={};for(let Q of $)Z[Q]=!0;return Z}$7.toHash=LF;function UF($,Z){if(typeof Z=="boolean")return Z;if(Object.keys(Z).length===0)return!0;return r9($,Z),!t9(Z,$.self.RULES.all)}$7.alwaysValidSchema=UF;function r9($,Z=$.schema){let{opts:Q,self:W}=$;if(!Q.strictSchema)return;if(typeof Z==="boolean")return;let Y=W.RULES.keywords;for(let G in Z)if(!Y[G])e9($,`unknown keyword: "${G}"`)}$7.checkUnknownRules=r9;function t9($,Z){if(typeof $=="boolean")return!$;for(let Q in $)if(Z[Q])return!0;return!1}$7.schemaHasRules=t9;function qF($,Z){if(typeof $=="boolean")return!$;for(let Q in $)if(Q!=="$ref"&&Z.all[Q])return!0;return!1}$7.schemaHasRulesButRef=qF;function AF({topSchemaRef:$,schemaPath:Z},Q,W,Y){if(!Y){if(typeof Q=="number"||typeof Q=="boolean")return Q;if(typeof Q=="string")return h._`${Q}`}return h._`${$}${Z}${(0,h.getProperty)(W)}`}$7.schemaRefOrVal=AF;function NF($){return o9(decodeURIComponent($))}$7.unescapeFragment=NF;function OF($){return encodeURIComponent(Z4($))}$7.escapeFragment=OF;function Z4($){if(typeof $=="number")return`${$}`;return $.replace(/~/g,"~0").replace(/\//g,"~1")}$7.escapeJsonPointer=Z4;function o9($){return $.replace(/~1/g,"/").replace(/~0/g,"~")}$7.unescapeJsonPointer=o9;function MF($,Z){if(Array.isArray($))for(let Q of $)Z(Q);else Z($)}$7.eachItem=MF;function n9({mergeNames:$,mergeToName:Z,mergeValues:Q,resultToName:W}){return(Y,G,X,J)=>{let K=X===void 0?G:X instanceof h.Name?(G instanceof h.Name?$(Y,G,X):Z(Y,G,X),X):G instanceof h.Name?(Z(Y,X,G),G):Q(G,X);return J===h.Name&&!(K instanceof h.Name)?W(Y,K):K}}$7.mergeEvaluated={props:n9({mergeNames:($,Z,Q)=>$.if(h._`${Q} !== true && ${Z} !== undefined`,()=>{$.if(h._`${Z} === true`,()=>$.assign(Q,!0),()=>$.assign(Q,h._`${Q} || {}`).code(h._`Object.assign(${Q}, ${Z})`))}),mergeToName:($,Z,Q)=>$.if(h._`${Q} !== true`,()=>{if(Z===!0)$.assign(Q,!0);else $.assign(Q,h._`${Q} || {}`),Q4($,Q,Z)}),mergeValues:($,Z)=>$===!0?!0:{...$,...Z},resultToName:s9}),items:n9({mergeNames:($,Z,Q)=>$.if(h._`${Q} !== true && ${Z} !== undefined`,()=>$.assign(Q,h._`${Z} === true ? true : ${Q} > ${Z} ? ${Q} : ${Z}`)),mergeToName:($,Z,Q)=>$.if(h._`${Q} !== true`,()=>$.assign(Q,Z===!0?!0:h._`${Q} > ${Z} ? ${Q} : ${Z}`)),mergeValues:($,Z)=>$===!0?!0:Math.max($,Z),resultToName:($,Z)=>$.var("items",Z)})};function s9($,Z){if(Z===!0)return $.var("props",!0);let Q=$.var("props",h._`{}`);if(Z!==void 0)Q4($,Q,Z);return Q}$7.evaluatedPropsToName=s9;function Q4($,Z,Q){Object.keys(Q).forEach((W)=>$.assign(h._`${Z}${(0,h.getProperty)(W)}`,!0))}$7.setEvaluated=Q4;var a9={};function jF($,Z){return $.scopeValue("func",{ref:Z,code:a9[Z.code]||(a9[Z.code]=new DF._Code(Z.code))})}$7.useFunc=jF;var $4;(function($){$[$.Num=0]="Num",$[$.Str=1]="Str"})($4||($7.Type=$4={}));function PF($,Z,Q){if($ instanceof h.Name){let W=Z===$4.Num;return Q?W?h._`"[" + ${$} + "]"`:h._`"['" + ${$} + "']"`:W?h._`"/" + ${$}`:h._`"/" + ${$}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return Q?(0,h.getProperty)($).toString():"/"+Z4($)}$7.getErrorPath=PF;function e9($,Z,Q=$.opts.strictSchema){if(!Q)return;if(Z=`strict mode: ${Z}`,Q===!0)throw Error(Z);$.self.logger.warn(Z)}$7.checkStrictMode=e9});var t0=M((Q7)=>{Object.defineProperty(Q7,"__esModule",{value:!0});var Z0=b(),mF={data:new Z0.Name("data"),valCxt:new Z0.Name("valCxt"),instancePath:new Z0.Name("instancePath"),parentData:new Z0.Name("parentData"),parentDataProperty:new Z0.Name("parentDataProperty"),rootData:new Z0.Name("rootData"),dynamicAnchors:new Z0.Name("dynamicAnchors"),vErrors:new Z0.Name("vErrors"),errors:new Z0.Name("errors"),this:new Z0.Name("this"),self:new Z0.Name("self"),scope:new Z0.Name("scope"),json:new Z0.Name("json"),jsonPos:new Z0.Name("jsonPos"),jsonLen:new Z0.Name("jsonLen"),jsonPart:new Z0.Name("jsonPart")};Q7.default=mF});var WZ=M((X7)=>{Object.defineProperty(X7,"__esModule",{value:!0});X7.extendErrors=X7.resetErrorsCount=X7.reportExtraError=X7.reportError=X7.keyword$DataError=X7.keywordError=void 0;var f=b(),C5=x(),Y0=t0();X7.keywordError={message:({keyword:$})=>f.str`must pass "${$}" keyword validation`};X7.keyword$DataError={message:({keyword:$,schemaType:Z})=>Z?f.str`"${$}" keyword must be ${Z} ($data)`:f.str`"${$}" keyword is invalid ($data)`};function pF($,Z=X7.keywordError,Q,W){let{it:Y}=$,{gen:G,compositeRule:X,allErrors:J}=Y,K=G7($,Z,Q);if(W!==null&&W!==void 0?W:X||J)W7(G,K);else Y7(Y,f._`[${K}]`)}X7.reportError=pF;function cF($,Z=X7.keywordError,Q){let{it:W}=$,{gen:Y,compositeRule:G,allErrors:X}=W,J=G7($,Z,Q);if(W7(Y,J),!(G||X))Y7(W,Y0.default.vErrors)}X7.reportExtraError=cF;function dF($,Z){$.assign(Y0.default.errors,Z),$.if(f._`${Y0.default.vErrors} !== null`,()=>$.if(Z,()=>$.assign(f._`${Y0.default.vErrors}.length`,Z),()=>$.assign(Y0.default.vErrors,null)))}X7.resetErrorsCount=dF;function iF({gen:$,keyword:Z,schemaValue:Q,data:W,errsCount:Y,it:G}){if(Y===void 0)throw Error("ajv implementation error");let X=$.name("err");$.forRange("i",Y,Y0.default.errors,(J)=>{if($.const(X,f._`${Y0.default.vErrors}[${J}]`),$.if(f._`${X}.instancePath === undefined`,()=>$.assign(f._`${X}.instancePath`,(0,f.strConcat)(Y0.default.instancePath,G.errorPath))),$.assign(f._`${X}.schemaPath`,f.str`${G.errSchemaPath}/${Z}`),G.opts.verbose)$.assign(f._`${X}.schema`,Q),$.assign(f._`${X}.data`,W)})}X7.extendErrors=iF;function W7($,Z){let Q=$.const("err",Z);$.if(f._`${Y0.default.vErrors} === null`,()=>$.assign(Y0.default.vErrors,f._`[${Q}]`),f._`${Y0.default.vErrors}.push(${Q})`),$.code(f._`${Y0.default.errors}++`)}function Y7($,Z){let{gen:Q,validateName:W,schemaEnv:Y}=$;if(Y.$async)Q.throw(f._`new ${$.ValidationError}(${Z})`);else Q.assign(f._`${W}.errors`,Z),Q.return(!1)}var b1={keyword:new f.Name("keyword"),schemaPath:new f.Name("schemaPath"),params:new f.Name("params"),propertyName:new f.Name("propertyName"),message:new f.Name("message"),schema:new f.Name("schema"),parentSchema:new f.Name("parentSchema")};function G7($,Z,Q){let{createErrors:W}=$.it;if(W===!1)return f._`{}`;return nF($,Z,Q)}function nF($,Z,Q={}){let{gen:W,it:Y}=$,G=[aF(Y,Q),rF($,Q)];return tF($,Z,G),W.object(...G)}function aF({errorPath:$},{instancePath:Z}){let Q=Z?f.str`${$}${(0,C5.getErrorPath)(Z,C5.Type.Str)}`:$;return[Y0.default.instancePath,(0,f.strConcat)(Y0.default.instancePath,Q)]}function rF({keyword:$,it:{errSchemaPath:Z}},{schemaPath:Q,parentSchema:W}){let Y=W?Z:f.str`${Z}/${$}`;if(Q)Y=f.str`${Y}${(0,C5.getErrorPath)(Q,C5.Type.Str)}`;return[b1.schemaPath,Y]}function tF($,{params:Z,message:Q},W){let{keyword:Y,data:G,schemaValue:X,it:J}=$,{opts:K,propertyName:B,topSchemaRef:z,schemaPath:V}=J;if(W.push([b1.keyword,Y],[b1.params,typeof Z=="function"?Z($):Z||f._`{}`]),K.messages)W.push([b1.message,typeof Q=="function"?Q($):Q]);if(K.verbose)W.push([b1.schema,X],[b1.parentSchema,f._`${z}${V}`],[Y0.default.data,G]);if(B)W.push([b1.propertyName,B])}});var V7=M((B7)=>{Object.defineProperty(B7,"__esModule",{value:!0});B7.boolOrEmptySchema=B7.topBoolOrEmptySchema=void 0;var ZD=WZ(),QD=b(),WD=t0(),YD={message:"boolean schema is false"};function GD($){let{gen:Z,schema:Q,validateName:W}=$;if(Q===!1)K7($,!1);else if(typeof Q=="object"&&Q.$async===!0)Z.return(WD.default.data);else Z.assign(QD._`${W}.errors`,null),Z.return(!0)}B7.topBoolOrEmptySchema=GD;function XD($,Z){let{gen:Q,schema:W}=$;if(W===!1)Q.var(Z,!1),K7($);else Q.var(Z,!0)}B7.boolOrEmptySchema=XD;function K7($,Z){let{gen:Q,data:W}=$,Y={gen:Q,keyword:"false schema",data:W,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:$};(0,ZD.reportError)(Y,YD,void 0,Z)}});var Y4=M((z7)=>{Object.defineProperty(z7,"__esModule",{value:!0});z7.getRules=z7.isJSONType=void 0;var KD=["string","number","integer","boolean","null","object","array"],BD=new Set(KD);function HD($){return typeof $=="string"&&BD.has($)}z7.isJSONType=HD;function VD(){let $={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...$,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},$.number,$.string,$.array,$.object],post:{rules:[]},all:{},keywords:{}}}z7.getRules=VD});var G4=M((U7)=>{Object.defineProperty(U7,"__esModule",{value:!0});U7.shouldUseRule=U7.shouldUseGroup=U7.schemaHasRulesForType=void 0;function FD({schema:$,self:Z},Q){let W=Z.RULES.types[Q];return W&&W!==!0&&D7($,W)}U7.schemaHasRulesForType=FD;function D7($,Z){return Z.rules.some((Q)=>L7($,Q))}U7.shouldUseGroup=D7;function L7($,Z){var Q;return $[Z.keyword]!==void 0||((Q=Z.definition.implements)===null||Q===void 0?void 0:Q.some((W)=>$[W]!==void 0))}U7.shouldUseRule=L7});var YZ=M((M7)=>{Object.defineProperty(M7,"__esModule",{value:!0});M7.reportTypeError=M7.checkDataTypes=M7.checkDataType=M7.coerceAndCheckDataType=M7.getJSONTypes=M7.getSchemaTypes=M7.DataType=void 0;var UD=Y4(),qD=G4(),AD=WZ(),S=b(),A7=x(),G$;(function($){$[$.Correct=0]="Correct",$[$.Wrong=1]="Wrong"})(G$||(M7.DataType=G$={}));function ND($){let Z=N7($.type);if(Z.includes("null")){if($.nullable===!1)throw Error("type: null contradicts nullable: false")}else{if(!Z.length&&$.nullable!==void 0)throw Error('"nullable" cannot be used without "type"');if($.nullable===!0)Z.push("null")}return Z}M7.getSchemaTypes=ND;function N7($){let Z=Array.isArray($)?$:$?[$]:[];if(Z.every(UD.isJSONType))return Z;throw Error("type must be JSONType or JSONType[]: "+Z.join(","))}M7.getJSONTypes=N7;function OD($,Z){let{gen:Q,data:W,opts:Y}=$,G=MD(Z,Y.coerceTypes),X=Z.length>0&&!(G.length===0&&Z.length===1&&(0,qD.schemaHasRulesForType)($,Z[0]));if(X){let J=J4(Z,W,Y.strictNumbers,G$.Wrong);Q.if(J,()=>{if(G.length)jD($,Z,G);else K4($)})}return X}M7.coerceAndCheckDataType=OD;var O7=new Set(["string","number","integer","boolean","null"]);function MD($,Z){return Z?$.filter((Q)=>O7.has(Q)||Z==="array"&&Q==="array"):[]}function jD($,Z,Q){let{gen:W,data:Y,opts:G}=$,X=W.let("dataType",S._`typeof ${Y}`),J=W.let("coerced",S._`undefined`);if(G.coerceTypes==="array")W.if(S._`${X} == 'object' && Array.isArray(${Y}) && ${Y}.length == 1`,()=>W.assign(Y,S._`${Y}[0]`).assign(X,S._`typeof ${Y}`).if(J4(Z,Y,G.strictNumbers),()=>W.assign(J,Y)));W.if(S._`${J} !== undefined`);for(let B of Q)if(O7.has(B)||B==="array"&&G.coerceTypes==="array")K(B);W.else(),K4($),W.endIf(),W.if(S._`${J} !== undefined`,()=>{W.assign(Y,J),PD($,J)});function K(B){switch(B){case"string":W.elseIf(S._`${X} == "number" || ${X} == "boolean"`).assign(J,S._`"" + ${Y}`).elseIf(S._`${Y} === null`).assign(J,S._`""`);return;case"number":W.elseIf(S._`${X} == "boolean" || ${Y} === null
|
|
4
|
-
|| (${X} == "string" && ${
|
|
5
|
-
|| (${X} === "string" && ${
|
|
6
|
-
|| ${X} === "boolean" || ${Y} === null`).assign(J,S._`[${Y}]`)}}}function PD({gen:$,parentData:Z,parentDataProperty:Q},W){$.if(S._`${Z} !== undefined`,()=>$.assign(S._`${Z}[${Q}]`,W))}function X4($,Z,Q,W=G$.Correct){let Y=W===G$.Correct?S.operators.EQ:S.operators.NEQ,G;switch($){case"null":return S._`${Z} ${Y} null`;case"array":G=S._`Array.isArray(${Z})`;break;case"object":G=S._`${Z} && typeof ${Z} == "object" && !Array.isArray(${Z})`;break;case"integer":G=X(S._`!(${Z} % 1) && !isNaN(${Z})`);break;case"number":G=X();break;default:return S._`typeof ${Z} ${Y} ${$}`}return W===G$.Correct?G:(0,S.not)(G);function X(J=S.nil){return(0,S.and)(S._`typeof ${Z} == "number"`,J,Q?S._`isFinite(${Z})`:S.nil)}}M7.checkDataType=X4;function J4($,Z,Q,W){if($.length===1)return X4($[0],Z,Q,W);let Y,G=(0,A7.toHash)($);if(G.array&&G.object){let X=S._`typeof ${Z} != "object"`;Y=G.null?X:S._`!${Z} || ${X}`,delete G.null,delete G.array,delete G.object}else Y=S.nil;if(G.number)delete G.integer;for(let X in G)Y=(0,S.and)(Y,X4(X,Z,Q,W));return Y}M7.checkDataTypes=J4;var wD={message:({schema:$})=>`must be ${$}`,params:({schema:$,schemaValue:Z})=>typeof $=="string"?S._`{type: ${$}}`:S._`{type: ${Z}}`};function K4($){let Z=TD($);(0,AD.reportError)(Z,wD)}M7.reportTypeError=K4;function TD($){let{gen:Z,data:Q,schema:W}=$,Y=(0,A7.schemaRefOrVal)($,W,"type");return{gen:Z,keyword:"type",data:Q,schema:W.type,schemaCode:Y,schemaValue:Y,parentSchema:W,params:{},it:$}}});var I7=M((w7)=>{Object.defineProperty(w7,"__esModule",{value:!0});w7.assignDefaults=void 0;var X$=b(),bD=x();function _D($,Z){let{properties:Q,items:W}=$.schema;if(Z==="object"&&Q)for(let Y in Q)P7($,Y,Q[Y].default);else if(Z==="array"&&Array.isArray(W))W.forEach((Y,G)=>P7($,G,Y.default))}w7.assignDefaults=_D;function P7($,Z,Q){let{gen:W,compositeRule:Y,data:G,opts:X}=$;if(Q===void 0)return;let J=X$._`${G}${(0,X$.getProperty)(Z)}`;if(Y){(0,bD.checkStrictMode)($,`default is ignored for: ${J}`);return}let K=X$._`${J} === undefined`;if(X.useDefaults==="empty")K=X$._`${K} || ${J} === null || ${J} === ""`;W.if(K,X$._`${J} = ${(0,X$.stringify)(Q)}`)}});var q0=M((C7)=>{Object.defineProperty(C7,"__esModule",{value:!0});C7.validateUnion=C7.validateArray=C7.usePattern=C7.callValidateCode=C7.schemaProperties=C7.allSchemaProperties=C7.noPropertyInData=C7.propertyInData=C7.isOwnProperty=C7.hasPropFunc=C7.reportMissingProp=C7.checkMissingProp=C7.checkReportMissingProp=void 0;var u=b(),B4=x(),D1=t0(),kD=x();function xD($,Z){let{gen:Q,data:W,it:Y}=$;Q.if(V4(Q,W,Z,Y.opts.ownProperties),()=>{$.setParams({missingProperty:u._`${Z}`},!0),$.error()})}C7.checkReportMissingProp=xD;function fD({gen:$,data:Z,it:{opts:Q}},W,Y){return(0,u.or)(...W.map((G)=>(0,u.and)(V4($,Z,G,Q.ownProperties),u._`${Y} = ${G}`)))}C7.checkMissingProp=fD;function vD($,Z){$.setParams({missingProperty:Z},!0),$.error()}C7.reportMissingProp=vD;function E7($){return $.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:u._`Object.prototype.hasOwnProperty`})}C7.hasPropFunc=E7;function H4($,Z,Q){return u._`${E7($)}.call(${Z}, ${Q})`}C7.isOwnProperty=H4;function gD($,Z,Q,W){let Y=u._`${Z}${(0,u.getProperty)(Q)} !== undefined`;return W?u._`${Y} && ${H4($,Z,Q)}`:Y}C7.propertyInData=gD;function V4($,Z,Q,W){let Y=u._`${Z}${(0,u.getProperty)(Q)} === undefined`;return W?(0,u.or)(Y,(0,u.not)(H4($,Z,Q))):Y}C7.noPropertyInData=V4;function R7($){return $?Object.keys($).filter((Z)=>Z!=="__proto__"):[]}C7.allSchemaProperties=R7;function hD($,Z){return R7(Z).filter((Q)=>!(0,B4.alwaysValidSchema)($,Z[Q]))}C7.schemaProperties=hD;function uD({schemaCode:$,data:Z,it:{gen:Q,topSchemaRef:W,schemaPath:Y,errorPath:G},it:X},J,K,B){let z=B?u._`${$}, ${Z}, ${W}${Y}`:Z,V=[[D1.default.instancePath,(0,u.strConcat)(D1.default.instancePath,G)],[D1.default.parentData,X.parentData],[D1.default.parentDataProperty,X.parentDataProperty],[D1.default.rootData,D1.default.rootData]];if(X.opts.dynamicRef)V.push([D1.default.dynamicAnchors,D1.default.dynamicAnchors]);let F=u._`${z}, ${Q.object(...V)}`;return K!==u.nil?u._`${J}.call(${K}, ${F})`:u._`${J}(${F})`}C7.callValidateCode=uD;var mD=u._`new RegExp`;function lD({gen:$,it:{opts:Z}},Q){let W=Z.unicodeRegExp?"u":"",{regExp:Y}=Z.code,G=Y(Q,W);return $.scopeValue("pattern",{key:G.toString(),ref:G,code:u._`${Y.code==="new RegExp"?mD:(0,kD.useFunc)($,Y)}(${Q}, ${W})`})}C7.usePattern=lD;function pD($){let{gen:Z,data:Q,keyword:W,it:Y}=$,G=Z.name("valid");if(Y.allErrors){let J=Z.let("valid",!0);return X(()=>Z.assign(J,!1)),J}return Z.var(G,!0),X(()=>Z.break()),G;function X(J){let K=Z.const("len",u._`${Q}.length`);Z.forRange("i",0,K,(B)=>{$.subschema({keyword:W,dataProp:B,dataPropType:B4.Type.Num},G),Z.if((0,u.not)(G),J)})}}C7.validateArray=pD;function cD($){let{gen:Z,schema:Q,keyword:W,it:Y}=$;if(!Array.isArray(Q))throw Error("ajv implementation error");if(Q.some((K)=>(0,B4.alwaysValidSchema)(Y,K))&&!Y.opts.unevaluated)return;let X=Z.let("valid",!1),J=Z.name("_valid");Z.block(()=>Q.forEach((K,B)=>{let z=$.subschema({keyword:W,schemaProp:B,compositeRule:!0},J);if(Z.assign(X,u._`${X} || ${J}`),!$.mergeValidEvaluated(z,J))Z.if((0,u.not)(X))})),$.result(X,()=>$.reset(),()=>$.error(!0))}C7.validateUnion=cD});var x7=M((_7)=>{Object.defineProperty(_7,"__esModule",{value:!0});_7.validateKeywordUsage=_7.validSchemaType=_7.funcKeywordCode=_7.macroKeywordCode=void 0;var G0=b(),_1=t0(),WL=q0(),YL=WZ();function GL($,Z){let{gen:Q,keyword:W,schema:Y,parentSchema:G,it:X}=$,J=Z.macro.call(X.self,Y,G,X),K=b7(Q,W,J);if(X.opts.validateSchema!==!1)X.self.validateSchema(J,!0);let B=Q.name("valid");$.subschema({schema:J,schemaPath:G0.nil,errSchemaPath:`${X.errSchemaPath}/${W}`,topSchemaRef:K,compositeRule:!0},B),$.pass(B,()=>$.error(!0))}_7.macroKeywordCode=GL;function XL($,Z){var Q;let{gen:W,keyword:Y,schema:G,parentSchema:X,$data:J,it:K}=$;KL(K,Z);let B=!J&&Z.compile?Z.compile.call(K.self,G,X,K):Z.validate,z=b7(W,Y,B),V=W.let("valid");$.block$data(V,F),$.ok((Q=Z.valid)!==null&&Q!==void 0?Q:V);function F(){if(Z.errors===!1){if(U(),Z.modifying)y7($);q(()=>$.error())}else{let A=Z.async?D():L();if(Z.modifying)y7($);q(()=>JL($,A))}}function D(){let A=W.let("ruleErrs",null);return W.try(()=>U(G0._`await `),(N)=>W.assign(V,!1).if(G0._`${N} instanceof ${K.ValidationError}`,()=>W.assign(A,G0._`${N}.errors`),()=>W.throw(N))),A}function L(){let A=G0._`${z}.errors`;return W.assign(A,null),U(G0.nil),A}function U(A=Z.async?G0._`await `:G0.nil){let N=K.opts.passContext?_1.default.this:_1.default.self,j=!(("compile"in Z)&&!J||Z.schema===!1);W.assign(V,G0._`${A}${(0,WL.callValidateCode)($,z,N,j)}`,Z.modifying)}function q(A){var N;W.if((0,G0.not)((N=Z.valid)!==null&&N!==void 0?N:V),A)}}_7.funcKeywordCode=XL;function y7($){let{gen:Z,data:Q,it:W}=$;Z.if(W.parentData,()=>Z.assign(Q,G0._`${W.parentData}[${W.parentDataProperty}]`))}function JL($,Z){let{gen:Q}=$;Q.if(G0._`Array.isArray(${Z})`,()=>{Q.assign(_1.default.vErrors,G0._`${_1.default.vErrors} === null ? ${Z} : ${_1.default.vErrors}.concat(${Z})`).assign(_1.default.errors,G0._`${_1.default.vErrors}.length`),(0,YL.extendErrors)($)},()=>$.error())}function KL({schemaEnv:$},Z){if(Z.async&&!$.$async)throw Error("async keyword in sync schema")}function b7($,Z,Q){if(Q===void 0)throw Error(`keyword "${Z}" failed to compile`);return $.scopeValue("keyword",typeof Q=="function"?{ref:Q}:{ref:Q,code:(0,G0.stringify)(Q)})}function BL($,Z,Q=!1){return!Z.length||Z.some((W)=>W==="array"?Array.isArray($):W==="object"?$&&typeof $=="object"&&!Array.isArray($):typeof $==W||Q&&typeof $>"u")}_7.validSchemaType=BL;function HL({schema:$,opts:Z,self:Q,errSchemaPath:W},Y,G){if(Array.isArray(Y.keyword)?!Y.keyword.includes(G):Y.keyword!==G)throw Error("ajv implementation error");let X=Y.dependencies;if(X===null||X===void 0?void 0:X.some((J)=>!Object.prototype.hasOwnProperty.call($,J)))throw Error(`parent schema must have dependencies of ${G}: ${X.join(",")}`);if(Y.validateSchema){if(!Y.validateSchema($[G])){let K=`keyword "${G}" value is invalid at path "${W}": `+Q.errorsText(Y.validateSchema.errors);if(Z.validateSchema==="log")Q.logger.error(K);else throw Error(K)}}}_7.validateKeywordUsage=HL});var h7=M((v7)=>{Object.defineProperty(v7,"__esModule",{value:!0});v7.extendSubschemaMode=v7.extendSubschemaData=v7.getSubschema=void 0;var k0=b(),f7=x();function DL($,{keyword:Z,schemaProp:Q,schema:W,schemaPath:Y,errSchemaPath:G,topSchemaRef:X}){if(Z!==void 0&&W!==void 0)throw Error('both "keyword" and "schema" passed, only one allowed');if(Z!==void 0){let J=$.schema[Z];return Q===void 0?{schema:J,schemaPath:k0._`${$.schemaPath}${(0,k0.getProperty)(Z)}`,errSchemaPath:`${$.errSchemaPath}/${Z}`}:{schema:J[Q],schemaPath:k0._`${$.schemaPath}${(0,k0.getProperty)(Z)}${(0,k0.getProperty)(Q)}`,errSchemaPath:`${$.errSchemaPath}/${Z}/${(0,f7.escapeFragment)(Q)}`}}if(W!==void 0){if(Y===void 0||G===void 0||X===void 0)throw Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:W,schemaPath:Y,topSchemaRef:X,errSchemaPath:G}}throw Error('either "keyword" or "schema" must be passed')}v7.getSubschema=DL;function LL($,Z,{dataProp:Q,dataPropType:W,data:Y,dataTypes:G,propertyName:X}){if(Y!==void 0&&Q!==void 0)throw Error('both "data" and "dataProp" passed, only one allowed');let{gen:J}=Z;if(Q!==void 0){let{errorPath:B,dataPathArr:z,opts:V}=Z,F=J.let("data",k0._`${Z.data}${(0,k0.getProperty)(Q)}`,!0);K(F),$.errorPath=k0.str`${B}${(0,f7.getErrorPath)(Q,W,V.jsPropertySyntax)}`,$.parentDataProperty=k0._`${Q}`,$.dataPathArr=[...z,$.parentDataProperty]}if(Y!==void 0){let B=Y instanceof k0.Name?Y:J.let("data",Y,!0);if(K(B),X!==void 0)$.propertyName=X}if(G)$.dataTypes=G;function K(B){$.data=B,$.dataLevel=Z.dataLevel+1,$.dataTypes=[],Z.definedProperties=new Set,$.parentData=Z.data,$.dataNames=[...Z.dataNames,B]}}v7.extendSubschemaData=LL;function UL($,{jtdDiscriminator:Z,jtdMetadata:Q,compositeRule:W,createErrors:Y,allErrors:G}){if(W!==void 0)$.compositeRule=W;if(Y!==void 0)$.createErrors=Y;if(G!==void 0)$.allErrors=G;$.jtdDiscriminator=Z,$.jtdMetadata=Q}v7.extendSubschemaMode=UL});var z4=M((_S,u7)=>{u7.exports=function $(Z,Q){if(Z===Q)return!0;if(Z&&Q&&typeof Z=="object"&&typeof Q=="object"){if(Z.constructor!==Q.constructor)return!1;var W,Y,G;if(Array.isArray(Z)){if(W=Z.length,W!=Q.length)return!1;for(Y=W;Y--!==0;)if(!$(Z[Y],Q[Y]))return!1;return!0}if(Z.constructor===RegExp)return Z.source===Q.source&&Z.flags===Q.flags;if(Z.valueOf!==Object.prototype.valueOf)return Z.valueOf()===Q.valueOf();if(Z.toString!==Object.prototype.toString)return Z.toString()===Q.toString();if(G=Object.keys(Z),W=G.length,W!==Object.keys(Q).length)return!1;for(Y=W;Y--!==0;)if(!Object.prototype.hasOwnProperty.call(Q,G[Y]))return!1;for(Y=W;Y--!==0;){var X=G[Y];if(!$(Z[X],Q[X]))return!1}return!0}return Z!==Z&&Q!==Q}});var l7=M((kS,m7)=>{var L1=m7.exports=function($,Z,Q){if(typeof Z=="function")Q=Z,Z={};Q=Z.cb||Q;var W=typeof Q=="function"?Q:Q.pre||function(){},Y=Q.post||function(){};S5(Z,W,Y,$,"",$)};L1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};L1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};L1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};L1.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 S5($,Z,Q,W,Y,G,X,J,K,B){if(W&&typeof W=="object"&&!Array.isArray(W)){Z(W,Y,G,X,J,K,B);for(var z in W){var V=W[z];if(Array.isArray(V)){if(z in L1.arrayKeywords)for(var F=0;F<V.length;F++)S5($,Z,Q,V[F],Y+"/"+z+"/"+F,G,Y,z,W,F)}else if(z in L1.propsKeywords){if(V&&typeof V=="object")for(var D in V)S5($,Z,Q,V[D],Y+"/"+z+"/"+NL(D),G,Y,z,W,D)}else if(z in L1.keywords||$.allKeys&&!(z in L1.skipKeywords))S5($,Z,Q,V,Y+"/"+z,G,Y,z,W)}Q(W,Y,G,X,J,K,B)}}function NL($){return $.replace(/~/g,"~0").replace(/\//g,"~1")}});var GZ=M((i7)=>{Object.defineProperty(i7,"__esModule",{value:!0});i7.getSchemaRefs=i7.resolveUrl=i7.normalizeId=i7._getFullPath=i7.getFullPath=i7.inlineRef=void 0;var OL=x(),ML=z4(),jL=l7(),PL=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function wL($,Z=!0){if(typeof $=="boolean")return!0;if(Z===!0)return!F4($);if(!Z)return!1;return p7($)<=Z}i7.inlineRef=wL;var TL=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function F4($){for(let Z in $){if(TL.has(Z))return!0;let Q=$[Z];if(Array.isArray(Q)&&Q.some(F4))return!0;if(typeof Q=="object"&&F4(Q))return!0}return!1}function p7($){let Z=0;for(let Q in $){if(Q==="$ref")return 1/0;if(Z++,PL.has(Q))continue;if(typeof $[Q]=="object")(0,OL.eachItem)($[Q],(W)=>Z+=p7(W));if(Z===1/0)return 1/0}return Z}function c7($,Z="",Q){if(Q!==!1)Z=J$(Z);let W=$.parse(Z);return d7($,W)}i7.getFullPath=c7;function d7($,Z){return $.serialize(Z).split("#")[0]+"#"}i7._getFullPath=d7;var IL=/#\/?$/;function J$($){return $?$.replace(IL,""):""}i7.normalizeId=J$;function EL($,Z,Q){return Q=J$(Q),$.resolve(Z,Q)}i7.resolveUrl=EL;var RL=/^[a-z_][-a-z0-9._]*$/i;function CL($,Z){if(typeof $=="boolean")return{};let{schemaId:Q,uriResolver:W}=this.opts,Y=J$($[Q]||Z),G={"":Y},X=c7(W,Y,!1),J={},K=new Set;return jL($,{allKeys:!0},(V,F,D,L)=>{if(L===void 0)return;let U=X+F,q=G[L];if(typeof V[Q]=="string")q=A.call(this,V[Q]);N.call(this,V.$anchor),N.call(this,V.$dynamicAnchor),G[F]=q;function A(j){let P=this.opts.uriResolver.resolve;if(j=J$(q?P(q,j):j),K.has(j))throw z(j);K.add(j);let O=this.refs[j];if(typeof O=="string")O=this.refs[O];if(typeof O=="object")B(V,O.schema,j);else if(j!==J$(U))if(j[0]==="#")B(V,J[j],j),J[j]=V;else this.refs[j]=U;return j}function N(j){if(typeof j=="string"){if(!RL.test(j))throw Error(`invalid anchor "${j}"`);A.call(this,`#${j}`)}}}),J;function B(V,F,D){if(F!==void 0&&!ML(V,F))throw z(D)}function z(V){return Error(`reference "${V}" resolves to more than one schema`)}}i7.getSchemaRefs=CL});var KZ=M((KY)=>{Object.defineProperty(KY,"__esModule",{value:!0});KY.getData=KY.KeywordCxt=KY.validateFunctionCode=void 0;var s7=V7(),a7=YZ(),L4=G4(),y5=YZ(),xL=I7(),JZ=x7(),D4=h7(),T=b(),R=t0(),fL=GZ(),o0=x(),XZ=WZ();function vL($){if(ZY($)){if(QY($),$Y($)){uL($);return}}e7($,()=>(0,s7.topBoolOrEmptySchema)($))}KY.validateFunctionCode=vL;function e7({gen:$,validateName:Z,schema:Q,schemaEnv:W,opts:Y},G){if(Y.code.es5)$.func(Z,T._`${R.default.data}, ${R.default.valCxt}`,W.$async,()=>{$.code(T._`"use strict"; ${r7(Q,Y)}`),hL($,Y),$.code(G)});else $.func(Z,T._`${R.default.data}, ${gL(Y)}`,W.$async,()=>$.code(r7(Q,Y)).code(G))}function gL($){return T._`{${R.default.instancePath}="", ${R.default.parentData}, ${R.default.parentDataProperty}, ${R.default.rootData}=${R.default.data}${$.dynamicRef?T._`, ${R.default.dynamicAnchors}={}`:T.nil}}={}`}function hL($,Z){$.if(R.default.valCxt,()=>{if($.var(R.default.instancePath,T._`${R.default.valCxt}.${R.default.instancePath}`),$.var(R.default.parentData,T._`${R.default.valCxt}.${R.default.parentData}`),$.var(R.default.parentDataProperty,T._`${R.default.valCxt}.${R.default.parentDataProperty}`),$.var(R.default.rootData,T._`${R.default.valCxt}.${R.default.rootData}`),Z.dynamicRef)$.var(R.default.dynamicAnchors,T._`${R.default.valCxt}.${R.default.dynamicAnchors}`)},()=>{if($.var(R.default.instancePath,T._`""`),$.var(R.default.parentData,T._`undefined`),$.var(R.default.parentDataProperty,T._`undefined`),$.var(R.default.rootData,R.default.data),Z.dynamicRef)$.var(R.default.dynamicAnchors,T._`{}`)})}function uL($){let{schema:Z,opts:Q,gen:W}=$;e7($,()=>{if(Q.$comment&&Z.$comment)YY($);if(dL($),W.let(R.default.vErrors,null),W.let(R.default.errors,0),Q.unevaluated)mL($);WY($),aL($)});return}function mL($){let{gen:Z,validateName:Q}=$;$.evaluated=Z.const("evaluated",T._`${Q}.evaluated`),Z.if(T._`${$.evaluated}.dynamicProps`,()=>Z.assign(T._`${$.evaluated}.props`,T._`undefined`)),Z.if(T._`${$.evaluated}.dynamicItems`,()=>Z.assign(T._`${$.evaluated}.items`,T._`undefined`))}function r7($,Z){let Q=typeof $=="object"&&$[Z.schemaId];return Q&&(Z.code.source||Z.code.process)?T._`/*# sourceURL=${Q} */`:T.nil}function lL($,Z){if(ZY($)){if(QY($),$Y($)){pL($,Z);return}}(0,s7.boolOrEmptySchema)($,Z)}function $Y({schema:$,self:Z}){if(typeof $=="boolean")return!$;for(let Q in $)if(Z.RULES.all[Q])return!0;return!1}function ZY($){return typeof $.schema!="boolean"}function pL($,Z){let{schema:Q,gen:W,opts:Y}=$;if(Y.$comment&&Q.$comment)YY($);iL($),nL($);let G=W.const("_errs",R.default.errors);WY($,G),W.var(Z,T._`${G} === ${R.default.errors}`)}function QY($){(0,o0.checkUnknownRules)($),cL($)}function WY($,Z){if($.opts.jtd)return t7($,[],!1,Z);let Q=(0,a7.getSchemaTypes)($.schema),W=(0,a7.coerceAndCheckDataType)($,Q);t7($,Q,!W,Z)}function cL($){let{schema:Z,errSchemaPath:Q,opts:W,self:Y}=$;if(Z.$ref&&W.ignoreKeywordsWithRef&&(0,o0.schemaHasRulesButRef)(Z,Y.RULES))Y.logger.warn(`$ref: keywords ignored in schema at path "${Q}"`)}function dL($){let{schema:Z,opts:Q}=$;if(Z.default!==void 0&&Q.useDefaults&&Q.strictSchema)(0,o0.checkStrictMode)($,"default is ignored in the schema root")}function iL($){let Z=$.schema[$.opts.schemaId];if(Z)$.baseId=(0,fL.resolveUrl)($.opts.uriResolver,$.baseId,Z)}function nL($){if($.schema.$async&&!$.schemaEnv.$async)throw Error("async schema in sync schema")}function YY({gen:$,schemaEnv:Z,schema:Q,errSchemaPath:W,opts:Y}){let G=Q.$comment;if(Y.$comment===!0)$.code(T._`${R.default.self}.logger.log(${G})`);else if(typeof Y.$comment=="function"){let X=T.str`${W}/$comment`,J=$.scopeValue("root",{ref:Z.root});$.code(T._`${R.default.self}.opts.$comment(${G}, ${X}, ${J}.schema)`)}}function aL($){let{gen:Z,schemaEnv:Q,validateName:W,ValidationError:Y,opts:G}=$;if(Q.$async)Z.if(T._`${R.default.errors} === 0`,()=>Z.return(R.default.data),()=>Z.throw(T._`new ${Y}(${R.default.vErrors})`));else{if(Z.assign(T._`${W}.errors`,R.default.vErrors),G.unevaluated)rL($);Z.return(T._`${R.default.errors} === 0`)}}function rL({gen:$,evaluated:Z,props:Q,items:W}){if(Q instanceof T.Name)$.assign(T._`${Z}.props`,Q);if(W instanceof T.Name)$.assign(T._`${Z}.items`,W)}function t7($,Z,Q,W){let{gen:Y,schema:G,data:X,allErrors:J,opts:K,self:B}=$,{RULES:z}=B;if(G.$ref&&(K.ignoreKeywordsWithRef||!(0,o0.schemaHasRulesButRef)(G,z))){Y.block(()=>XY($,"$ref",z.all.$ref.definition));return}if(!K.jtd)tL($,Z);Y.block(()=>{for(let F of z.rules)V(F);V(z.post)});function V(F){if(!(0,L4.shouldUseGroup)(G,F))return;if(F.type){if(Y.if((0,y5.checkDataType)(F.type,X,K.strictNumbers)),o7($,F),Z.length===1&&Z[0]===F.type&&Q)Y.else(),(0,y5.reportTypeError)($);Y.endIf()}else o7($,F);if(!J)Y.if(T._`${R.default.errors} === ${W||0}`)}}function o7($,Z){let{gen:Q,schema:W,opts:{useDefaults:Y}}=$;if(Y)(0,xL.assignDefaults)($,Z.type);Q.block(()=>{for(let G of Z.rules)if((0,L4.shouldUseRule)(W,G))XY($,G.keyword,G.definition,Z.type)})}function tL($,Z){if($.schemaEnv.meta||!$.opts.strictTypes)return;if(oL($,Z),!$.opts.allowUnionTypes)sL($,Z);eL($,$.dataTypes)}function oL($,Z){if(!Z.length)return;if(!$.dataTypes.length){$.dataTypes=Z;return}Z.forEach((Q)=>{if(!GY($.dataTypes,Q))U4($,`type "${Q}" not allowed by context "${$.dataTypes.join(",")}"`)}),ZU($,Z)}function sL($,Z){if(Z.length>1&&!(Z.length===2&&Z.includes("null")))U4($,"use allowUnionTypes to allow union type keyword")}function eL($,Z){let Q=$.self.RULES.all;for(let W in Q){let Y=Q[W];if(typeof Y=="object"&&(0,L4.shouldUseRule)($.schema,Y)){let{type:G}=Y.definition;if(G.length&&!G.some((X)=>$U(Z,X)))U4($,`missing type "${G.join(",")}" for keyword "${W}"`)}}}function $U($,Z){return $.includes(Z)||Z==="number"&&$.includes("integer")}function GY($,Z){return $.includes(Z)||Z==="integer"&&$.includes("number")}function ZU($,Z){let Q=[];for(let W of $.dataTypes)if(GY(Z,W))Q.push(W);else if(Z.includes("integer")&&W==="number")Q.push("integer");$.dataTypes=Q}function U4($,Z){let Q=$.schemaEnv.baseId+$.errSchemaPath;Z+=` at "${Q}" (strictTypes)`,(0,o0.checkStrictMode)($,Z,$.opts.strictTypes)}class q4{constructor($,Z,Q){if((0,JZ.validateKeywordUsage)($,Z,Q),this.gen=$.gen,this.allErrors=$.allErrors,this.keyword=Q,this.data=$.data,this.schema=$.schema[Q],this.$data=Z.$data&&$.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,o0.schemaRefOrVal)($,this.schema,Q,this.$data),this.schemaType=Z.schemaType,this.parentSchema=$.schema,this.params={},this.it=$,this.def=Z,this.$data)this.schemaCode=$.gen.const("vSchema",JY(this.$data,$));else if(this.schemaCode=this.schemaValue,!(0,JZ.validSchemaType)(this.schema,Z.schemaType,Z.allowUndefined))throw Error(`${Q} value must be ${JSON.stringify(Z.schemaType)}`);if("code"in Z?Z.trackErrors:Z.errors!==!1)this.errsCount=$.gen.const("_errs",R.default.errors)}result($,Z,Q){this.failResult((0,T.not)($),Z,Q)}failResult($,Z,Q){if(this.gen.if($),Q)Q();else this.error();if(Z){if(this.gen.else(),Z(),this.allErrors)this.gen.endIf()}else if(this.allErrors)this.gen.endIf();else this.gen.else()}pass($,Z){this.failResult((0,T.not)($),void 0,Z)}fail($){if($===void 0){if(this.error(),!this.allErrors)this.gen.if(!1);return}if(this.gen.if($),this.error(),this.allErrors)this.gen.endIf();else this.gen.else()}fail$data($){if(!this.$data)return this.fail($);let{schemaCode:Z}=this;this.fail(T._`${Z} !== undefined && (${(0,T.or)(this.invalid$data(),$)})`)}error($,Z,Q){if(Z){this.setParams(Z),this._error($,Q),this.setParams({});return}this._error($,Q)}_error($,Z){($?XZ.reportExtraError:XZ.reportError)(this,this.def.error,Z)}$dataError(){(0,XZ.reportError)(this,this.def.$dataError||XZ.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,XZ.resetErrorsCount)(this.gen,this.errsCount)}ok($){if(!this.allErrors)this.gen.if($)}setParams($,Z){if(Z)Object.assign(this.params,$);else this.params=$}block$data($,Z,Q=T.nil){this.gen.block(()=>{this.check$data($,Q),Z()})}check$data($=T.nil,Z=T.nil){if(!this.$data)return;let{gen:Q,schemaCode:W,schemaType:Y,def:G}=this;if(Q.if((0,T.or)(T._`${W} === undefined`,Z)),$!==T.nil)Q.assign($,!0);if(Y.length||G.validateSchema){if(Q.elseIf(this.invalid$data()),this.$dataError(),$!==T.nil)Q.assign($,!1)}Q.else()}invalid$data(){let{gen:$,schemaCode:Z,schemaType:Q,def:W,it:Y}=this;return(0,T.or)(G(),X());function G(){if(Q.length){if(!(Z instanceof T.Name))throw Error("ajv implementation error");let J=Array.isArray(Q)?Q:[Q];return T._`${(0,y5.checkDataTypes)(J,Z,Y.opts.strictNumbers,y5.DataType.Wrong)}`}return T.nil}function X(){if(W.validateSchema){let J=$.scopeValue("validate$data",{ref:W.validateSchema});return T._`!${J}(${Z})`}return T.nil}}subschema($,Z){let Q=(0,D4.getSubschema)(this.it,$);(0,D4.extendSubschemaData)(Q,this.it,$),(0,D4.extendSubschemaMode)(Q,$);let W={...this.it,...Q,items:void 0,props:void 0};return lL(W,Z),W}mergeEvaluated($,Z){let{it:Q,gen:W}=this;if(!Q.opts.unevaluated)return;if(Q.props!==!0&&$.props!==void 0)Q.props=o0.mergeEvaluated.props(W,$.props,Q.props,Z);if(Q.items!==!0&&$.items!==void 0)Q.items=o0.mergeEvaluated.items(W,$.items,Q.items,Z)}mergeValidEvaluated($,Z){let{it:Q,gen:W}=this;if(Q.opts.unevaluated&&(Q.props!==!0||Q.items!==!0))return W.if(Z,()=>this.mergeEvaluated($,T.Name)),!0}}KY.KeywordCxt=q4;function XY($,Z,Q,W){let Y=new q4($,Q,Z);if("code"in Q)Q.code(Y,W);else if(Y.$data&&Q.validate)(0,JZ.funcKeywordCode)(Y,Q);else if("macro"in Q)(0,JZ.macroKeywordCode)(Y,Q);else if(Q.compile||Q.validate)(0,JZ.funcKeywordCode)(Y,Q)}var QU=/^\/(?:[^~]|~0|~1)*$/,WU=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function JY($,{dataLevel:Z,dataNames:Q,dataPathArr:W}){let Y,G;if($==="")return R.default.rootData;if($[0]==="/"){if(!QU.test($))throw Error(`Invalid JSON-pointer: ${$}`);Y=$,G=R.default.rootData}else{let B=WU.exec($);if(!B)throw Error(`Invalid JSON-pointer: ${$}`);let z=+B[1];if(Y=B[2],Y==="#"){if(z>=Z)throw Error(K("property/index",z));return W[Z-z]}if(z>Z)throw Error(K("data",z));if(G=Q[Z-z],!Y)return G}let X=G,J=Y.split("/");for(let B of J)if(B)G=T._`${G}${(0,T.getProperty)((0,o0.unescapeJsonPointer)(B))}`,X=T._`${X} && ${G}`;return X;function K(B,z){return`Cannot access ${B} ${z} levels up, current level is ${Z}`}}KY.getData=JY});var b5=M((VY)=>{Object.defineProperty(VY,"__esModule",{value:!0});class HY extends Error{constructor($){super("validation failed");this.errors=$,this.ajv=this.validation=!0}}VY.default=HY});var BZ=M((FY)=>{Object.defineProperty(FY,"__esModule",{value:!0});var A4=GZ();class zY extends Error{constructor($,Z,Q,W){super(W||`can't resolve reference ${Q} from id ${Z}`);this.missingRef=(0,A4.resolveUrl)($,Z,Q),this.missingSchema=(0,A4.normalizeId)((0,A4.getFullPath)($,this.missingRef))}}FY.default=zY});var k5=M((UY)=>{Object.defineProperty(UY,"__esModule",{value:!0});UY.resolveSchema=UY.getCompilingSchema=UY.resolveRef=UY.compileSchema=UY.SchemaEnv=void 0;var w0=b(),KU=b5(),k1=t0(),T0=GZ(),DY=x(),BU=KZ();class HZ{constructor($){var Z;this.refs={},this.dynamicAnchors={};let Q;if(typeof $.schema=="object")Q=$.schema;this.schema=$.schema,this.schemaId=$.schemaId,this.root=$.root||this,this.baseId=(Z=$.baseId)!==null&&Z!==void 0?Z:(0,T0.normalizeId)(Q===null||Q===void 0?void 0:Q[$.schemaId||"$id"]),this.schemaPath=$.schemaPath,this.localRefs=$.localRefs,this.meta=$.meta,this.$async=Q===null||Q===void 0?void 0:Q.$async,this.refs={}}}UY.SchemaEnv=HZ;function O4($){let Z=LY.call(this,$);if(Z)return Z;let Q=(0,T0.getFullPath)(this.opts.uriResolver,$.root.baseId),{es5:W,lines:Y}=this.opts.code,{ownProperties:G}=this.opts,X=new w0.CodeGen(this.scope,{es5:W,lines:Y,ownProperties:G}),J;if($.$async)J=X.scopeValue("Error",{ref:KU.default,code:w0._`require("ajv/dist/runtime/validation_error").default`});let K=X.scopeName("validate");$.validateName=K;let B={gen:X,allErrors:this.opts.allErrors,data:k1.default.data,parentData:k1.default.parentData,parentDataProperty:k1.default.parentDataProperty,dataNames:[k1.default.data],dataPathArr:[w0.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:X.scopeValue("schema",this.opts.code.source===!0?{ref:$.schema,code:(0,w0.stringify)($.schema)}:{ref:$.schema}),validateName:K,ValidationError:J,schema:$.schema,schemaEnv:$,rootId:Q,baseId:$.baseId||Q,schemaPath:w0.nil,errSchemaPath:$.schemaPath||(this.opts.jtd?"":"#"),errorPath:w0._`""`,opts:this.opts,self:this},z;try{this._compilations.add($),(0,BU.validateFunctionCode)(B),X.optimize(this.opts.code.optimize);let V=X.toString();if(z=`${X.scopeRefs(k1.default.scope)}return ${V}`,this.opts.code.process)z=this.opts.code.process(z,$);let D=Function(`${k1.default.self}`,`${k1.default.scope}`,z)(this,this.scope.get());if(this.scope.value(K,{ref:D}),D.errors=null,D.schema=$.schema,D.schemaEnv=$,$.$async)D.$async=!0;if(this.opts.code.source===!0)D.source={validateName:K,validateCode:V,scopeValues:X._values};if(this.opts.unevaluated){let{props:L,items:U}=B;if(D.evaluated={props:L instanceof w0.Name?void 0:L,items:U instanceof w0.Name?void 0:U,dynamicProps:L instanceof w0.Name,dynamicItems:U instanceof w0.Name},D.source)D.source.evaluated=(0,w0.stringify)(D.evaluated)}return $.validate=D,$}catch(V){if(delete $.validate,delete $.validateName,z)this.logger.error("Error compiling schema, function code:",z);throw V}finally{this._compilations.delete($)}}UY.compileSchema=O4;function HU($,Z,Q){var W;Q=(0,T0.resolveUrl)(this.opts.uriResolver,Z,Q);let Y=$.refs[Q];if(Y)return Y;let G=FU.call(this,$,Q);if(G===void 0){let X=(W=$.localRefs)===null||W===void 0?void 0:W[Q],{schemaId:J}=this.opts;if(X)G=new HZ({schema:X,schemaId:J,root:$,baseId:Z})}if(G===void 0)return;return $.refs[Q]=VU.call(this,G)}UY.resolveRef=HU;function VU($){if((0,T0.inlineRef)($.schema,this.opts.inlineRefs))return $.schema;return $.validate?$:O4.call(this,$)}function LY($){for(let Z of this._compilations)if(zU(Z,$))return Z}UY.getCompilingSchema=LY;function zU($,Z){return $.schema===Z.schema&&$.root===Z.root&&$.baseId===Z.baseId}function FU($,Z){let Q;while(typeof(Q=this.refs[Z])=="string")Z=Q;return Q||this.schemas[Z]||_5.call(this,$,Z)}function _5($,Z){let Q=this.opts.uriResolver.parse(Z),W=(0,T0._getFullPath)(this.opts.uriResolver,Q),Y=(0,T0.getFullPath)(this.opts.uriResolver,$.baseId,void 0);if(Object.keys($.schema).length>0&&W===Y)return N4.call(this,Q,$);let G=(0,T0.normalizeId)(W),X=this.refs[G]||this.schemas[G];if(typeof X=="string"){let J=_5.call(this,$,X);if(typeof(J===null||J===void 0?void 0:J.schema)!=="object")return;return N4.call(this,Q,J)}if(typeof(X===null||X===void 0?void 0:X.schema)!=="object")return;if(!X.validate)O4.call(this,X);if(G===(0,T0.normalizeId)(Z)){let{schema:J}=X,{schemaId:K}=this.opts,B=J[K];if(B)Y=(0,T0.resolveUrl)(this.opts.uriResolver,Y,B);return new HZ({schema:J,schemaId:K,root:$,baseId:Y})}return N4.call(this,Q,X)}UY.resolveSchema=_5;var DU=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function N4($,{baseId:Z,schema:Q,root:W}){var Y;if(((Y=$.fragment)===null||Y===void 0?void 0:Y[0])!=="/")return;for(let J of $.fragment.slice(1).split("/")){if(typeof Q==="boolean")return;let K=Q[(0,DY.unescapeFragment)(J)];if(K===void 0)return;Q=K;let B=typeof Q==="object"&&Q[this.opts.schemaId];if(!DU.has(J)&&B)Z=(0,T0.resolveUrl)(this.opts.uriResolver,Z,B)}let G;if(typeof Q!="boolean"&&Q.$ref&&!(0,DY.schemaHasRulesButRef)(Q,this.RULES)){let J=(0,T0.resolveUrl)(this.opts.uriResolver,Z,Q.$ref);G=_5.call(this,W,J)}let{schemaId:X}=this.opts;if(G=G||new HZ({schema:Q,schemaId:X,root:W,baseId:Z}),G.schema!==G.root.schema)return G;return}});var AY=M((uS,NU)=>{NU.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 P4=M((mS,wY)=>{var OU=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),OY=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),M4=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),MY=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),MU=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function j4($){let Z="",Q=0,W=0;for(W=0;W<$.length;W++){if(Q=$[W].charCodeAt(0),Q===48)continue;if(!(Q>=48&&Q<=57||Q>=65&&Q<=70||Q>=97&&Q<=102))return"";Z+=$[W];break}for(W+=1;W<$.length;W++){if(Q=$[W].charCodeAt(0),!(Q>=48&&Q<=57||Q>=65&&Q<=70||Q>=97&&Q<=102))return"";Z+=$[W]}return Z}var jU=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function NY($){return $.length=0,!0}function PU($,Z,Q){if($.length){let W=j4($);if(W!=="")Z.push(W);else return Q.error=!0,!1;$.length=0}return!0}function wU($){let Z=0,Q={error:!1,address:"",zone:""},W=[],Y=[],G=!1,X=!1,J=PU;for(let K=0;K<$.length;K++){let B=$[K];if(B==="["||B==="]")continue;if(B===":"){if(G===!0)X=!0;if(!J(Y,W,Q))break;if(++Z>7){Q.error=!0;break}if(K>0&&$[K-1]===":")G=!0;W.push(":");continue}else if(B==="%"){if(!J(Y,W,Q))break;J=NY}else{Y.push(B);continue}}if(Y.length)if(J===NY)Q.zone=Y.join("");else if(X)W.push(Y.join(""));else W.push(j4(Y));return Q.address=W.join(""),Q}function jY($){if(TU($,":")<2)return{host:$,isIPV6:!1};let Z=wU($);if(!Z.error){let{address:Q,address:W}=Z;if(Z.zone)Q+="%"+Z.zone,W+="%25"+Z.zone;return{host:Q,isIPV6:!0,escapedHost:W}}else return{host:$,isIPV6:!1}}function TU($,Z){let Q=0;for(let W=0;W<$.length;W++)if($[W]===Z)Q++;return Q}function IU($){let Z=$,Q=[],W=-1,Y=0;while(Y=Z.length){if(Y===1)if(Z===".")break;else if(Z==="/"){Q.push("/");break}else{Q.push(Z);break}else if(Y===2){if(Z[0]==="."){if(Z[1]===".")break;else if(Z[1]==="/"){Z=Z.slice(2);continue}}else if(Z[0]==="/"){if(Z[1]==="."||Z[1]==="/"){Q.push("/");break}}}else if(Y===3){if(Z==="/.."){if(Q.length!==0)Q.pop();Q.push("/");break}}if(Z[0]==="."){if(Z[1]==="."){if(Z[2]==="/"){Z=Z.slice(3);continue}}else if(Z[1]==="/"){Z=Z.slice(2);continue}}else if(Z[0]==="/"){if(Z[1]==="."){if(Z[2]==="/"){Z=Z.slice(2);continue}else if(Z[2]==="."){if(Z[3]==="/"){if(Z=Z.slice(3),Q.length!==0)Q.pop();continue}}}}if((W=Z.indexOf("/",1))===-1){Q.push(Z);break}else Q.push(Z.slice(0,W)),Z=Z.slice(W)}return Q.join("")}var EU={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},RU=/[@/?#:]/g,CU=/[@/?#]/g;function PY($,Z){let Q=Z?CU:RU;return Q.lastIndex=0,$.replace(Q,(W)=>EU[W])}function SU($,Z=!1){if($.indexOf("%")===-1)return $;let Q="";for(let W=0;W<$.length;W++){if($[W]==="%"&&W+2<$.length){let Y=$.slice(W+1,W+3);if(M4(Y)){let G=Y.toUpperCase(),X=String.fromCharCode(parseInt(G,16));if(Z&&MY(X))Q+=X;else Q+="%"+G;W+=2;continue}}Q+=$[W]}return Q}function yU($){let Z="";for(let Q=0;Q<$.length;Q++){if($[Q]==="%"&&Q+2<$.length){let W=$.slice(Q+1,Q+3);if(M4(W)){let Y=W.toUpperCase(),G=String.fromCharCode(parseInt(Y,16));if(G!=="."&&MY(G))Z+=G;else Z+="%"+Y;Q+=2;continue}}if(MU($[Q]))Z+=$[Q];else Z+=escape($[Q])}return Z}function bU($){let Z="";for(let Q=0;Q<$.length;Q++){if($[Q]==="%"&&Q+2<$.length){let W=$.slice(Q+1,Q+3);if(M4(W)){Z+="%"+W.toUpperCase(),Q+=2;continue}}Z+=escape($[Q])}return Z}function _U($){let Z=[];if($.userinfo!==void 0)Z.push($.userinfo),Z.push("@");if($.host!==void 0){let Q=unescape($.host);if(!OY(Q)){let W=jY(Q);if(W.isIPV6===!0)Q=`[${W.escapedHost}]`;else Q=PY(Q,!1)}Z.push(Q)}if(typeof $.port==="number"||typeof $.port==="string")Z.push(":"),Z.push(String($.port));return Z.length?Z.join(""):void 0}wY.exports={nonSimpleDomain:jU,recomposeAuthority:_U,reescapeHostDelimiters:PY,normalizePercentEncoding:SU,normalizePathEncoding:yU,escapePreservingEscapes:bU,removeDotSegments:IU,isIPv4:OY,isUUID:OU,normalizeIPv6:jY,stringArrayToHexStripped:j4}});var CY=M((lS,RY)=>{var{isUUID:kU}=P4(),xU=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,fU=["http","https","ws","wss","urn","urn:uuid"];function vU($){return fU.indexOf($)!==-1}function w4($){if($.secure===!0)return!0;else if($.secure===!1)return!1;else if($.scheme)return $.scheme.length===3&&($.scheme[0]==="w"||$.scheme[0]==="W")&&($.scheme[1]==="s"||$.scheme[1]==="S")&&($.scheme[2]==="s"||$.scheme[2]==="S");else return!1}function TY($){if(!$.host)$.error=$.error||"HTTP URIs must have a host.";return $}function IY($){let Z=String($.scheme).toLowerCase()==="https";if($.port===(Z?443:80)||$.port==="")$.port=void 0;if(!$.path)$.path="/";return $}function gU($){return $.secure=w4($),$.resourceName=($.path||"/")+($.query?"?"+$.query:""),$.path=void 0,$.query=void 0,$}function hU($){if($.port===(w4($)?443:80)||$.port==="")$.port=void 0;if(typeof $.secure==="boolean")$.scheme=$.secure?"wss":"ws",$.secure=void 0;if($.resourceName){let[Z,Q]=$.resourceName.split("?");$.path=Z&&Z!=="/"?Z:void 0,$.query=Q,$.resourceName=void 0}return $.fragment=void 0,$}function uU($,Z){if(!$.path)return $.error="URN can not be parsed",$;let Q=$.path.match(xU);if(Q){let W=Z.scheme||$.scheme||"urn";$.nid=Q[1].toLowerCase(),$.nss=Q[2];let Y=`${W}:${Z.nid||$.nid}`,G=T4(Y);if($.path=void 0,G)$=G.parse($,Z)}else $.error=$.error||"URN can not be parsed.";return $}function mU($,Z){if($.nid===void 0)throw Error("URN without nid cannot be serialized");let Q=Z.scheme||$.scheme||"urn",W=$.nid.toLowerCase(),Y=`${Q}:${Z.nid||W}`,G=T4(Y);if(G)$=G.serialize($,Z);let X=$,J=$.nss;return X.path=`${W||Z.nid}:${J}`,Z.skipEscape=!0,X}function lU($,Z){let Q=$;if(Q.uuid=Q.nss,Q.nss=void 0,!Z.tolerant&&(!Q.uuid||!kU(Q.uuid)))Q.error=Q.error||"UUID is not valid.";return Q}function pU($){let Z=$;return Z.nss=($.uuid||"").toLowerCase(),Z}var EY={scheme:"http",domainHost:!0,parse:TY,serialize:IY},cU={scheme:"https",domainHost:EY.domainHost,parse:TY,serialize:IY},x5={scheme:"ws",domainHost:!0,parse:gU,serialize:hU},dU={scheme:"wss",domainHost:x5.domainHost,parse:x5.parse,serialize:x5.serialize},iU={scheme:"urn",parse:uU,serialize:mU,skipNormalize:!0},nU={scheme:"urn:uuid",parse:lU,serialize:pU,skipNormalize:!0},f5={http:EY,https:cU,ws:x5,wss:dU,urn:iU,"urn:uuid":nU};Object.setPrototypeOf(f5,null);function T4($){return $&&(f5[$]||f5[$.toLowerCase()])||void 0}RY.exports={wsIsSecure:w4,SCHEMES:f5,isValidSchemeName:vU,getSchemeHandler:T4}});var xY=M((pS,v5)=>{var{normalizeIPv6:aU,removeDotSegments:VZ,recomposeAuthority:rU,normalizePercentEncoding:tU,normalizePathEncoding:oU,escapePreservingEscapes:sU,reescapeHostDelimiters:eU,isIPv4:$q,nonSimpleDomain:Zq}=P4(),{SCHEMES:Qq,getSchemeHandler:yY}=CY();function Wq($,Z){if(typeof $==="string")$=Bq($,Z);else if(typeof $==="object")$=K$(x1($,Z),Z);return $}function Yq($,Z,Q){let W=Q?Object.assign({scheme:"null"},Q):{scheme:"null"},Y=bY(K$($,W),K$(Z,W),W,!0);return W.skipEscape=!0,x1(Y,W)}function bY($,Z,Q,W){let Y={};if(!W)$=K$(x1($,Q),Q),Z=K$(x1(Z,Q),Q);if(Q=Q||{},!Q.tolerant&&Z.scheme)Y.scheme=Z.scheme,Y.userinfo=Z.userinfo,Y.host=Z.host,Y.port=Z.port,Y.path=VZ(Z.path||""),Y.query=Z.query;else{if(Z.userinfo!==void 0||Z.host!==void 0||Z.port!==void 0)Y.userinfo=Z.userinfo,Y.host=Z.host,Y.port=Z.port,Y.path=VZ(Z.path||""),Y.query=Z.query;else{if(!Z.path)if(Y.path=$.path,Z.query!==void 0)Y.query=Z.query;else Y.query=$.query;else{if(Z.path[0]==="/")Y.path=VZ(Z.path);else{if(($.userinfo!==void 0||$.host!==void 0||$.port!==void 0)&&!$.path)Y.path="/"+Z.path;else if(!$.path)Y.path=Z.path;else Y.path=$.path.slice(0,$.path.lastIndexOf("/")+1)+Z.path;Y.path=VZ(Y.path)}Y.query=Z.query}Y.userinfo=$.userinfo,Y.host=$.host,Y.port=$.port}Y.scheme=$.scheme}return Y.fragment=Z.fragment,Y}function Gq($,Z,Q){let W=SY($,Q),Y=SY(Z,Q);return W!==void 0&&Y!==void 0&&W.toLowerCase()===Y.toLowerCase()}function x1($,Z){let Q={host:$.host,scheme:$.scheme,userinfo:$.userinfo,port:$.port,path:$.path,query:$.query,nid:$.nid,nss:$.nss,uuid:$.uuid,fragment:$.fragment,reference:$.reference,resourceName:$.resourceName,secure:$.secure,error:""},W=Object.assign({},Z),Y=[],G=yY(W.scheme||Q.scheme);if(G&&G.serialize)G.serialize(Q,W);if(Q.path!==void 0)if(!W.skipEscape){if(Q.path=sU(Q.path),Q.scheme!==void 0)Q.path=Q.path.split("%3A").join(":")}else Q.path=tU(Q.path);if(W.reference!=="suffix"&&Q.scheme)Y.push(Q.scheme,":");let X=rU(Q);if(X!==void 0){if(W.reference!=="suffix")Y.push("//");if(Y.push(X),Q.path&&Q.path[0]!=="/")Y.push("/")}if(Q.path!==void 0){let J=Q.path;if(!W.absolutePath&&(!G||!G.absolutePath))J=VZ(J);if(X===void 0&&J[0]==="/"&&J[1]==="/")J="/%2F"+J.slice(2);Y.push(J)}if(Q.query!==void 0)Y.push("?",Q.query);if(Q.fragment!==void 0)Y.push("#",Q.fragment);return Y.join("")}var Xq=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,Jq=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/;function Kq($,Z){if(Z[2]!==void 0&&$.path&&$.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof $.port==="number"&&($.port<0||$.port>65535))return"URI port is malformed.";return}function _Y($,Z){let Q=Object.assign({},Z),W={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},Y=!1,G=!1;if(Q.reference==="suffix")if(Q.scheme)$=Q.scheme+":"+$;else $="//"+$;let X=$.match(Jq);if(X!==null&&X[1].indexOf("\\")!==-1)W.error="URI authority must not contain a literal backslash.",Y=!0;let J=$.match(Xq);if(J){if(W.scheme=J[1],W.userinfo=J[3],W.host=J[4],W.port=parseInt(J[5],10),W.path=J[6]||"",W.query=J[7],W.fragment=J[8],isNaN(W.port))W.port=J[5];let K=Kq(W,J);if(K!==void 0)W.error=W.error||K,Y=!0;if(W.host)if($q(W.host)===!1){let V=aU(W.host);W.host=V.host.toLowerCase(),G=V.isIPV6}else G=!0;if(W.scheme===void 0&&W.userinfo===void 0&&W.host===void 0&&W.port===void 0&&W.query===void 0&&!W.path)W.reference="same-document";else if(W.scheme===void 0)W.reference="relative";else if(W.fragment===void 0)W.reference="absolute";else W.reference="uri";if(Q.reference&&Q.reference!=="suffix"&&Q.reference!==W.reference)W.error=W.error||"URI is not a "+Q.reference+" reference.";let B=yY(Q.scheme||W.scheme);if(!Q.unicodeSupport&&(!B||!B.unicodeSupport)){if(W.host&&(Q.domainHost||B&&B.domainHost)&&G===!1&&Zq(W.host))try{W.host=new URL("http://"+W.host).hostname}catch(z){W.error=W.error||"Host's domain name can not be converted to ASCII: "+z}}if(!B||B&&!B.skipNormalize){if($.indexOf("%")!==-1){if(W.scheme!==void 0)W.scheme=unescape(W.scheme);if(W.host!==void 0)W.host=eU(unescape(W.host),G)}if(W.path)W.path=oU(W.path);if(W.fragment)try{W.fragment=encodeURI(decodeURIComponent(W.fragment))}catch{W.error=W.error||"URI malformed"}}if(B&&B.parse)B.parse(W,Q)}else W.error=W.error||"URI can not be parsed.";return{parsed:W,malformedAuthorityOrPort:Y}}function K$($,Z){return _Y($,Z).parsed}function Bq($,Z){return kY($,Z).normalized}function kY($,Z){let{parsed:Q,malformedAuthorityOrPort:W}=_Y($,Z);return{normalized:W?$:x1(Q,Z),malformedAuthorityOrPort:W}}function SY($,Z){if(typeof $==="string"){let{normalized:Q,malformedAuthorityOrPort:W}=kY($,Z);return W?void 0:Q}if(typeof $==="object")return x1($,Z)}var I4={SCHEMES:Qq,normalize:Wq,resolve:Yq,resolveComponent:bY,equal:Gq,serialize:x1,parse:K$};v5.exports=I4;v5.exports.default=I4;v5.exports.fastUri=I4});var gY=M((vY)=>{Object.defineProperty(vY,"__esModule",{value:!0});var fY=xY();fY.code='require("ajv/dist/runtime/uri").default';vY.default=fY});var iY=M((s0)=>{Object.defineProperty(s0,"__esModule",{value:!0});s0.CodeGen=s0.Name=s0.nil=s0.stringify=s0.str=s0._=s0.KeywordCxt=void 0;var Vq=KZ();Object.defineProperty(s0,"KeywordCxt",{enumerable:!0,get:function(){return Vq.KeywordCxt}});var B$=b();Object.defineProperty(s0,"_",{enumerable:!0,get:function(){return B$._}});Object.defineProperty(s0,"str",{enumerable:!0,get:function(){return B$.str}});Object.defineProperty(s0,"stringify",{enumerable:!0,get:function(){return B$.stringify}});Object.defineProperty(s0,"nil",{enumerable:!0,get:function(){return B$.nil}});Object.defineProperty(s0,"Name",{enumerable:!0,get:function(){return B$.Name}});Object.defineProperty(s0,"CodeGen",{enumerable:!0,get:function(){return B$.CodeGen}});var zq=b5(),pY=BZ(),Fq=Y4(),zZ=k5(),Dq=b(),FZ=GZ(),g5=YZ(),R4=x(),hY=AY(),Lq=gY(),cY=($,Z)=>new RegExp($,Z);cY.code="new RegExp";var Uq=["removeAdditional","useDefaults","coerceTypes"],qq=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Aq={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."},Nq={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},uY=200;function Oq($){var Z,Q,W,Y,G,X,J,K,B,z,V,F,D,L,U,q,A,N,j,P,O,C,v,d,w;let _=$.strict,r=(Z=$.code)===null||Z===void 0?void 0:Z.optimize,g=r===!0||r===void 0?1:r||0,a=(W=(Q=$.code)===null||Q===void 0?void 0:Q.regExp)!==null&&W!==void 0?W:cY,RZ=(Y=$.uriResolver)!==null&&Y!==void 0?Y:Lq.default;return{strictSchema:(X=(G=$.strictSchema)!==null&&G!==void 0?G:_)!==null&&X!==void 0?X:!0,strictNumbers:(K=(J=$.strictNumbers)!==null&&J!==void 0?J:_)!==null&&K!==void 0?K:!0,strictTypes:(z=(B=$.strictTypes)!==null&&B!==void 0?B:_)!==null&&z!==void 0?z:"log",strictTuples:(F=(V=$.strictTuples)!==null&&V!==void 0?V:_)!==null&&F!==void 0?F:"log",strictRequired:(L=(D=$.strictRequired)!==null&&D!==void 0?D:_)!==null&&L!==void 0?L:!1,code:$.code?{...$.code,optimize:g,regExp:a}:{optimize:g,regExp:a},loopRequired:(U=$.loopRequired)!==null&&U!==void 0?U:uY,loopEnum:(q=$.loopEnum)!==null&&q!==void 0?q:uY,meta:(A=$.meta)!==null&&A!==void 0?A:!0,messages:(N=$.messages)!==null&&N!==void 0?N:!0,inlineRefs:(j=$.inlineRefs)!==null&&j!==void 0?j:!0,schemaId:(P=$.schemaId)!==null&&P!==void 0?P:"$id",addUsedSchema:(O=$.addUsedSchema)!==null&&O!==void 0?O:!0,validateSchema:(C=$.validateSchema)!==null&&C!==void 0?C:!0,validateFormats:(v=$.validateFormats)!==null&&v!==void 0?v:!0,unicodeRegExp:(d=$.unicodeRegExp)!==null&&d!==void 0?d:!0,int32range:(w=$.int32range)!==null&&w!==void 0?w:!0,uriResolver:RZ}}class h5{constructor($={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,$=this.opts={...$,...Oq($)};let{es5:Z,lines:Q}=this.opts.code;this.scope=new Dq.ValueScope({scope:{},prefixes:qq,es5:Z,lines:Q}),this.logger=Iq($.logger);let W=$.validateFormats;if($.validateFormats=!1,this.RULES=(0,Fq.getRules)(),mY.call(this,Aq,$,"NOT SUPPORTED"),mY.call(this,Nq,$,"DEPRECATED","warn"),this._metaOpts=wq.call(this),$.formats)jq.call(this);if(this._addVocabularies(),this._addDefaultMetaSchema(),$.keywords)Pq.call(this,$.keywords);if(typeof $.meta=="object")this.addMetaSchema($.meta);Mq.call(this),$.validateFormats=W}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:$,meta:Z,schemaId:Q}=this.opts,W=hY;if(Q==="id")W={...hY},W.id=W.$id,delete W.$id;if(Z&&$)this.addMetaSchema(W,W[Q],!1)}defaultMeta(){let{meta:$,schemaId:Z}=this.opts;return this.opts.defaultMeta=typeof $=="object"?$[Z]||$:void 0}validate($,Z){let Q;if(typeof $=="string"){if(Q=this.getSchema($),!Q)throw Error(`no schema with key or ref "${$}"`)}else Q=this.compile($);let W=Q(Z);if(!("$async"in Q))this.errors=Q.errors;return W}compile($,Z){let Q=this._addSchema($,Z);return Q.validate||this._compileSchemaEnv(Q)}compileAsync($,Z){if(typeof this.opts.loadSchema!="function")throw Error("options.loadSchema should be a function");let{loadSchema:Q}=this.opts;return W.call(this,$,Z);async function W(B,z){await Y.call(this,B.$schema);let V=this._addSchema(B,z);return V.validate||G.call(this,V)}async function Y(B){if(B&&!this.getSchema(B))await W.call(this,{$ref:B},!0)}async function G(B){try{return this._compileSchemaEnv(B)}catch(z){if(!(z instanceof pY.default))throw z;return X.call(this,z),await J.call(this,z.missingSchema),G.call(this,B)}}function X({missingSchema:B,missingRef:z}){if(this.refs[B])throw Error(`AnySchema ${B} is loaded but ${z} cannot be resolved`)}async function J(B){let z=await K.call(this,B);if(!this.refs[B])await Y.call(this,z.$schema);if(!this.refs[B])this.addSchema(z,B,Z)}async function K(B){let z=this._loading[B];if(z)return z;try{return await(this._loading[B]=Q(B))}finally{delete this._loading[B]}}}addSchema($,Z,Q,W=this.opts.validateSchema){if(Array.isArray($)){for(let G of $)this.addSchema(G,void 0,Q,W);return this}let Y;if(typeof $==="object"){let{schemaId:G}=this.opts;if(Y=$[G],Y!==void 0&&typeof Y!="string")throw Error(`schema ${G} must be string`)}return Z=(0,FZ.normalizeId)(Z||Y),this._checkUnique(Z),this.schemas[Z]=this._addSchema($,Q,Z,W,!0),this}addMetaSchema($,Z,Q=this.opts.validateSchema){return this.addSchema($,Z,!0,Q),this}validateSchema($,Z){if(typeof $=="boolean")return!0;let Q;if(Q=$.$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 W=this.validate(Q,$);if(!W&&Z){let Y="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(Y);else throw Error(Y)}return W}getSchema($){let Z;while(typeof(Z=lY.call(this,$))=="string")$=Z;if(Z===void 0){let{schemaId:Q}=this.opts,W=new zZ.SchemaEnv({schema:{},schemaId:Q});if(Z=zZ.resolveSchema.call(this,W,$),!Z)return;this.refs[$]=Z}return Z.validate||this._compileSchemaEnv(Z)}removeSchema($){if($ instanceof RegExp)return this._removeAllSchemas(this.schemas,$),this._removeAllSchemas(this.refs,$),this;switch(typeof $){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let Z=lY.call(this,$);if(typeof Z=="object")this._cache.delete(Z.schema);return delete this.schemas[$],delete this.refs[$],this}case"object":{let Z=$;this._cache.delete(Z);let Q=$[this.opts.schemaId];if(Q)Q=(0,FZ.normalizeId)(Q),delete this.schemas[Q],delete this.refs[Q];return this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary($){for(let Z of $)this.addKeyword(Z);return this}addKeyword($,Z){let Q;if(typeof $=="string"){if(Q=$,typeof Z=="object")this.logger.warn("these parameters are deprecated, see docs for addKeyword"),Z.keyword=Q}else if(typeof $=="object"&&Z===void 0){if(Z=$,Q=Z.keyword,Array.isArray(Q)&&!Q.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(Rq.call(this,Q,Z),!Z)return(0,R4.eachItem)(Q,(Y)=>E4.call(this,Y)),this;Sq.call(this,Z);let W={...Z,type:(0,g5.getJSONTypes)(Z.type),schemaType:(0,g5.getJSONTypes)(Z.schemaType)};return(0,R4.eachItem)(Q,W.type.length===0?(Y)=>E4.call(this,Y,W):(Y)=>W.type.forEach((G)=>E4.call(this,Y,W,G))),this}getKeyword($){let Z=this.RULES.all[$];return typeof Z=="object"?Z.definition:!!Z}removeKeyword($){let{RULES:Z}=this;delete Z.keywords[$],delete Z.all[$];for(let Q of Z.rules){let W=Q.rules.findIndex((Y)=>Y.keyword===$);if(W>=0)Q.rules.splice(W,1)}return this}addFormat($,Z){if(typeof Z=="string")Z=new RegExp(Z);return this.formats[$]=Z,this}errorsText($=this.errors,{separator:Z=", ",dataVar:Q="data"}={}){if(!$||$.length===0)return"No errors";return $.map((W)=>`${Q}${W.instancePath} ${W.message}`).reduce((W,Y)=>W+Z+Y)}$dataMetaSchema($,Z){let Q=this.RULES.all;$=JSON.parse(JSON.stringify($));for(let W of Z){let Y=W.split("/").slice(1),G=$;for(let X of Y)G=G[X];for(let X in Q){let J=Q[X];if(typeof J!="object")continue;let{$data:K}=J.definition,B=G[X];if(K&&B)G[X]=dY(B)}}return $}_removeAllSchemas($,Z){for(let Q in $){let W=$[Q];if(!Z||Z.test(Q)){if(typeof W=="string")delete $[Q];else if(W&&!W.meta)this._cache.delete(W.schema),delete $[Q]}}}_addSchema($,Z,Q,W=this.opts.validateSchema,Y=this.opts.addUsedSchema){let G,{schemaId:X}=this.opts;if(typeof $=="object")G=$[X];else if(this.opts.jtd)throw Error("schema must be object");else if(typeof $!="boolean")throw Error("schema must be object or boolean");let J=this._cache.get($);if(J!==void 0)return J;Q=(0,FZ.normalizeId)(G||Q);let K=FZ.getSchemaRefs.call(this,$,Q);if(J=new zZ.SchemaEnv({schema:$,schemaId:X,meta:Z,baseId:Q,localRefs:K}),this._cache.set(J.schema,J),Y&&!Q.startsWith("#")){if(Q)this._checkUnique(Q);this.refs[Q]=J}if(W)this.validateSchema($,!0);return J}_checkUnique($){if(this.schemas[$]||this.refs[$])throw Error(`schema with key or id "${$}" already exists`)}_compileSchemaEnv($){if($.meta)this._compileMetaSchema($);else zZ.compileSchema.call(this,$);if(!$.validate)throw Error("ajv implementation error");return $.validate}_compileMetaSchema($){let Z=this.opts;this.opts=this._metaOpts;try{zZ.compileSchema.call(this,$)}finally{this.opts=Z}}}h5.ValidationError=zq.default;h5.MissingRefError=pY.default;s0.default=h5;function mY($,Z,Q,W="error"){for(let Y in $){let G=Y;if(G in Z)this.logger[W](`${Q}: option ${Y}. ${$[G]}`)}}function lY($){return $=(0,FZ.normalizeId)($),this.schemas[$]||this.refs[$]}function Mq(){let $=this.opts.schemas;if(!$)return;if(Array.isArray($))this.addSchema($);else for(let Z in $)this.addSchema($[Z],Z)}function jq(){for(let $ in this.opts.formats){let Z=this.opts.formats[$];if(Z)this.addFormat($,Z)}}function Pq($){if(Array.isArray($)){this.addVocabulary($);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let Z in $){let Q=$[Z];if(!Q.keyword)Q.keyword=Z;this.addKeyword(Q)}}function wq(){let $={...this.opts};for(let Z of Uq)delete $[Z];return $}var Tq={log(){},warn(){},error(){}};function Iq($){if($===!1)return Tq;if($===void 0)return console;if($.log&&$.warn&&$.error)return $;throw Error("logger must implement log, warn and error methods")}var Eq=/^[a-z_$][a-z0-9_$:-]*$/i;function Rq($,Z){let{RULES:Q}=this;if((0,R4.eachItem)($,(W)=>{if(Q.keywords[W])throw Error(`Keyword ${W} is already defined`);if(!Eq.test(W))throw Error(`Keyword ${W} has invalid name`)}),!Z)return;if(Z.$data&&!(("code"in Z)||("validate"in Z)))throw Error('$data keyword must have "code" or "validate" function')}function E4($,Z,Q){var W;let Y=Z===null||Z===void 0?void 0:Z.post;if(Q&&Y)throw Error('keyword with "post" flag cannot have "type"');let{RULES:G}=this,X=Y?G.post:G.rules.find(({type:K})=>K===Q);if(!X)X={type:Q,rules:[]},G.rules.push(X);if(G.keywords[$]=!0,!Z)return;let J={keyword:$,definition:{...Z,type:(0,g5.getJSONTypes)(Z.type),schemaType:(0,g5.getJSONTypes)(Z.schemaType)}};if(Z.before)Cq.call(this,X,J,Z.before);else X.rules.push(J);G.all[$]=J,(W=Z.implements)===null||W===void 0||W.forEach((K)=>this.addKeyword(K))}function Cq($,Z,Q){let W=$.rules.findIndex((Y)=>Y.keyword===Q);if(W>=0)$.rules.splice(W,0,Z);else $.rules.push(Z),this.logger.warn(`rule ${Q} is not defined`)}function Sq($){let{metaSchema:Z}=$;if(Z===void 0)return;if($.$data&&this.opts.$data)Z=dY(Z);$.validateSchema=this.compile(Z,!0)}var yq={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function dY($){return{anyOf:[$,yq]}}});var aY=M((nY)=>{Object.defineProperty(nY,"__esModule",{value:!0});var kq={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};nY.default=kq});var $G=M((sY)=>{Object.defineProperty(sY,"__esModule",{value:!0});sY.callRef=sY.getValidate=void 0;var fq=BZ(),rY=q0(),K0=b(),H$=t0(),tY=k5(),u5=x(),vq={keyword:"$ref",schemaType:"string",code($){let{gen:Z,schema:Q,it:W}=$,{baseId:Y,schemaEnv:G,validateName:X,opts:J,self:K}=W,{root:B}=G;if((Q==="#"||Q==="#/")&&Y===B.baseId)return V();let z=tY.resolveRef.call(K,B,Y,Q);if(z===void 0)throw new fq.default(W.opts.uriResolver,Y,Q);if(z instanceof tY.SchemaEnv)return F(z);return D(z);function V(){if(G===B)return m5($,X,G,G.$async);let L=Z.scopeValue("root",{ref:B});return m5($,K0._`${L}.validate`,B,B.$async)}function F(L){let U=oY($,L);m5($,U,L,L.$async)}function D(L){let U=Z.scopeValue("schema",J.code.source===!0?{ref:L,code:(0,K0.stringify)(L)}:{ref:L}),q=Z.name("valid"),A=$.subschema({schema:L,dataTypes:[],schemaPath:K0.nil,topSchemaRef:U,errSchemaPath:Q},q);$.mergeEvaluated(A),$.ok(q)}}};function oY($,Z){let{gen:Q}=$;return Z.validate?Q.scopeValue("validate",{ref:Z.validate}):K0._`${Q.scopeValue("wrapper",{ref:Z})}.validate`}sY.getValidate=oY;function m5($,Z,Q,W){let{gen:Y,it:G}=$,{allErrors:X,schemaEnv:J,opts:K}=G,B=K.passContext?H$.default.this:K0.nil;if(W)z();else V();function z(){if(!J.$async)throw Error("async schema referenced by sync schema");let L=Y.let("valid");Y.try(()=>{if(Y.code(K0._`await ${(0,rY.callValidateCode)($,Z,B)}`),D(Z),!X)Y.assign(L,!0)},(U)=>{if(Y.if(K0._`!(${U} instanceof ${G.ValidationError})`,()=>Y.throw(U)),F(U),!X)Y.assign(L,!1)}),$.ok(L)}function V(){$.result((0,rY.callValidateCode)($,Z,B),()=>D(Z),()=>F(Z))}function F(L){let U=K0._`${L}.errors`;Y.assign(H$.default.vErrors,K0._`${H$.default.vErrors} === null ? ${U} : ${H$.default.vErrors}.concat(${U})`),Y.assign(H$.default.errors,K0._`${H$.default.vErrors}.length`)}function D(L){var U;if(!G.opts.unevaluated)return;let q=(U=Q===null||Q===void 0?void 0:Q.validate)===null||U===void 0?void 0:U.evaluated;if(G.props!==!0)if(q&&!q.dynamicProps){if(q.props!==void 0)G.props=u5.mergeEvaluated.props(Y,q.props,G.props)}else{let A=Y.var("props",K0._`${L}.evaluated.props`);G.props=u5.mergeEvaluated.props(Y,A,G.props,K0.Name)}if(G.items!==!0)if(q&&!q.dynamicItems){if(q.items!==void 0)G.items=u5.mergeEvaluated.items(Y,q.items,G.items)}else{let A=Y.var("items",K0._`${L}.evaluated.items`);G.items=u5.mergeEvaluated.items(Y,A,G.items,K0.Name)}}}sY.callRef=m5;sY.default=vq});var QG=M((ZG)=>{Object.defineProperty(ZG,"__esModule",{value:!0});var uq=aY(),mq=$G(),lq=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",uq.default,mq.default];ZG.default=lq});var YG=M((WG)=>{Object.defineProperty(WG,"__esModule",{value:!0});var l5=b(),U1=l5.operators,p5={maximum:{okStr:"<=",ok:U1.LTE,fail:U1.GT},minimum:{okStr:">=",ok:U1.GTE,fail:U1.LT},exclusiveMaximum:{okStr:"<",ok:U1.LT,fail:U1.GTE},exclusiveMinimum:{okStr:">",ok:U1.GT,fail:U1.LTE}},cq={message:({keyword:$,schemaCode:Z})=>l5.str`must be ${p5[$].okStr} ${Z}`,params:({keyword:$,schemaCode:Z})=>l5._`{comparison: ${p5[$].okStr}, limit: ${Z}}`},dq={keyword:Object.keys(p5),type:"number",schemaType:"number",$data:!0,error:cq,code($){let{keyword:Z,data:Q,schemaCode:W}=$;$.fail$data(l5._`${Q} ${p5[Z].fail} ${W} || isNaN(${Q})`)}};WG.default=dq});var XG=M((GG)=>{Object.defineProperty(GG,"__esModule",{value:!0});var DZ=b(),nq={message:({schemaCode:$})=>DZ.str`must be multiple of ${$}`,params:({schemaCode:$})=>DZ._`{multipleOf: ${$}}`},aq={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:nq,code($){let{gen:Z,data:Q,schemaCode:W,it:Y}=$,G=Y.opts.multipleOfPrecision,X=Z.let("res"),J=G?DZ._`Math.abs(Math.round(${X}) - ${X}) > 1e-${G}`:DZ._`${X} !== parseInt(${X})`;$.fail$data(DZ._`(${W} === 0 || (${X} = ${Q}/${W}, ${J}))`)}};GG.default=aq});var BG=M((KG)=>{Object.defineProperty(KG,"__esModule",{value:!0});function JG($){let Z=$.length,Q=0,W=0,Y;while(W<Z)if(Q++,Y=$.charCodeAt(W++),Y>=55296&&Y<=56319&&W<Z){if(Y=$.charCodeAt(W),(Y&64512)===56320)W++}return Q}KG.default=JG;JG.code='require("ajv/dist/runtime/ucs2length").default'});var VG=M((HG)=>{Object.defineProperty(HG,"__esModule",{value:!0});var f1=b(),oq=x(),sq=BG(),eq={message({keyword:$,schemaCode:Z}){let Q=$==="maxLength"?"more":"fewer";return f1.str`must NOT have ${Q} than ${Z} characters`},params:({schemaCode:$})=>f1._`{limit: ${$}}`},$A={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:eq,code($){let{keyword:Z,data:Q,schemaCode:W,it:Y}=$,G=Z==="maxLength"?f1.operators.GT:f1.operators.LT,X=Y.opts.unicode===!1?f1._`${Q}.length`:f1._`${(0,oq.useFunc)($.gen,sq.default)}(${Q})`;$.fail$data(f1._`${X} ${G} ${W}`)}};HG.default=$A});var FG=M((zG)=>{Object.defineProperty(zG,"__esModule",{value:!0});var QA=q0(),WA=x(),V$=b(),YA={message:({schemaCode:$})=>V$.str`must match pattern "${$}"`,params:({schemaCode:$})=>V$._`{pattern: ${$}}`},GA={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:YA,code($){let{gen:Z,data:Q,$data:W,schema:Y,schemaCode:G,it:X}=$,J=X.opts.unicodeRegExp?"u":"";if(W){let{regExp:K}=X.opts.code,B=K.code==="new RegExp"?V$._`new RegExp`:(0,WA.useFunc)(Z,K),z=Z.let("valid");Z.try(()=>Z.assign(z,V$._`${B}(${G}, ${J}).test(${Q})`),()=>Z.assign(z,!1)),$.fail$data(V$._`!${z}`)}else{let K=(0,QA.usePattern)($,Y);$.fail$data(V$._`!${K}.test(${Q})`)}}};zG.default=GA});var LG=M((DG)=>{Object.defineProperty(DG,"__esModule",{value:!0});var LZ=b(),JA={message({keyword:$,schemaCode:Z}){let Q=$==="maxProperties"?"more":"fewer";return LZ.str`must NOT have ${Q} than ${Z} properties`},params:({schemaCode:$})=>LZ._`{limit: ${$}}`},KA={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:JA,code($){let{keyword:Z,data:Q,schemaCode:W}=$,Y=Z==="maxProperties"?LZ.operators.GT:LZ.operators.LT;$.fail$data(LZ._`Object.keys(${Q}).length ${Y} ${W}`)}};DG.default=KA});var qG=M((UG)=>{Object.defineProperty(UG,"__esModule",{value:!0});var UZ=q0(),qZ=b(),HA=x(),VA={message:({params:{missingProperty:$}})=>qZ.str`must have required property '${$}'`,params:({params:{missingProperty:$}})=>qZ._`{missingProperty: ${$}}`},zA={keyword:"required",type:"object",schemaType:"array",$data:!0,error:VA,code($){let{gen:Z,schema:Q,schemaCode:W,data:Y,$data:G,it:X}=$,{opts:J}=X;if(!G&&Q.length===0)return;let K=Q.length>=J.loopRequired;if(X.allErrors)B();else z();if(J.strictRequired){let D=$.parentSchema.properties,{definedProperties:L}=$.it;for(let U of Q)if((D===null||D===void 0?void 0:D[U])===void 0&&!L.has(U)){let q=X.schemaEnv.baseId+X.errSchemaPath,A=`required property "${U}" is not defined at "${q}" (strictRequired)`;(0,HA.checkStrictMode)(X,A,X.opts.strictRequired)}}function B(){if(K||G)$.block$data(qZ.nil,V);else for(let D of Q)(0,UZ.checkReportMissingProp)($,D)}function z(){let D=Z.let("missing");if(K||G){let L=Z.let("valid",!0);$.block$data(L,()=>F(D,L)),$.ok(L)}else Z.if((0,UZ.checkMissingProp)($,Q,D)),(0,UZ.reportMissingProp)($,D),Z.else()}function V(){Z.forOf("prop",W,(D)=>{$.setParams({missingProperty:D}),Z.if((0,UZ.noPropertyInData)(Z,Y,D,J.ownProperties),()=>$.error())})}function F(D,L){$.setParams({missingProperty:D}),Z.forOf(D,W,()=>{Z.assign(L,(0,UZ.propertyInData)(Z,Y,D,J.ownProperties)),Z.if((0,qZ.not)(L),()=>{$.error(),Z.break()})},qZ.nil)}}};UG.default=zA});var NG=M((AG)=>{Object.defineProperty(AG,"__esModule",{value:!0});var AZ=b(),DA={message({keyword:$,schemaCode:Z}){let Q=$==="maxItems"?"more":"fewer";return AZ.str`must NOT have ${Q} than ${Z} items`},params:({schemaCode:$})=>AZ._`{limit: ${$}}`},LA={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:DA,code($){let{keyword:Z,data:Q,schemaCode:W}=$,Y=Z==="maxItems"?AZ.operators.GT:AZ.operators.LT;$.fail$data(AZ._`${Q}.length ${Y} ${W}`)}};AG.default=LA});var c5=M((MG)=>{Object.defineProperty(MG,"__esModule",{value:!0});var OG=z4();OG.code='require("ajv/dist/runtime/equal").default';MG.default=OG});var PG=M((jG)=>{Object.defineProperty(jG,"__esModule",{value:!0});var C4=YZ(),e=b(),AA=x(),NA=c5(),OA={message:({params:{i:$,j:Z}})=>e.str`must NOT have duplicate items (items ## ${Z} and ${$} are identical)`,params:({params:{i:$,j:Z}})=>e._`{i: ${$}, j: ${Z}}`},MA={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:OA,code($){let{gen:Z,data:Q,$data:W,schema:Y,parentSchema:G,schemaCode:X,it:J}=$;if(!W&&!Y)return;let K=Z.let("valid"),B=G.items?(0,C4.getSchemaTypes)(G.items):[];$.block$data(K,z,e._`${X} === false`),$.ok(K);function z(){let L=Z.let("i",e._`${Q}.length`),U=Z.let("j");$.setParams({i:L,j:U}),Z.assign(K,!0),Z.if(e._`${L} > 1`,()=>(V()?F:D)(L,U))}function V(){return B.length>0&&!B.some((L)=>L==="object"||L==="array")}function F(L,U){let q=Z.name("item"),A=(0,C4.checkDataTypes)(B,q,J.opts.strictNumbers,C4.DataType.Wrong),N=Z.const("indices",e._`{}`);Z.for(e._`;${L}--;`,()=>{if(Z.let(q,e._`${Q}[${L}]`),Z.if(A,e._`continue`),B.length>1)Z.if(e._`typeof ${q} == "string"`,e._`${q} += "_"`);Z.if(e._`typeof ${N}[${q}] == "number"`,()=>{Z.assign(U,e._`${N}[${q}]`),$.error(),Z.assign(K,!1).break()}).code(e._`${N}[${q}] = ${L}`)})}function D(L,U){let q=(0,AA.useFunc)(Z,NA.default),A=Z.name("outer");Z.label(A).for(e._`;${L}--;`,()=>Z.for(e._`${U} = ${L}; ${U}--;`,()=>Z.if(e._`${q}(${Q}[${L}], ${Q}[${U}])`,()=>{$.error(),Z.assign(K,!1).break(A)})))}}};jG.default=MA});var TG=M((wG)=>{Object.defineProperty(wG,"__esModule",{value:!0});var S4=b(),PA=x(),wA=c5(),TA={message:"must be equal to constant",params:({schemaCode:$})=>S4._`{allowedValue: ${$}}`},IA={keyword:"const",$data:!0,error:TA,code($){let{gen:Z,data:Q,$data:W,schemaCode:Y,schema:G}=$;if(W||G&&typeof G=="object")$.fail$data(S4._`!${(0,PA.useFunc)(Z,wA.default)}(${Q}, ${Y})`);else $.fail(S4._`${G} !== ${Q}`)}};wG.default=IA});var EG=M((IG)=>{Object.defineProperty(IG,"__esModule",{value:!0});var NZ=b(),RA=x(),CA=c5(),SA={message:"must be equal to one of the allowed values",params:({schemaCode:$})=>NZ._`{allowedValues: ${$}}`},yA={keyword:"enum",schemaType:"array",$data:!0,error:SA,code($){let{gen:Z,data:Q,$data:W,schema:Y,schemaCode:G,it:X}=$;if(!W&&Y.length===0)throw Error("enum must have non-empty array");let J=Y.length>=X.opts.loopEnum,K,B=()=>K!==null&&K!==void 0?K:K=(0,RA.useFunc)(Z,CA.default),z;if(J||W)z=Z.let("valid"),$.block$data(z,V);else{if(!Array.isArray(Y))throw Error("ajv implementation error");let D=Z.const("vSchema",G);z=(0,NZ.or)(...Y.map((L,U)=>F(D,U)))}$.pass(z);function V(){Z.assign(z,!1),Z.forOf("v",G,(D)=>Z.if(NZ._`${B()}(${Q}, ${D})`,()=>Z.assign(z,!0).break()))}function F(D,L){let U=Y[L];return typeof U==="object"&&U!==null?NZ._`${B()}(${Q}, ${D}[${L}])`:NZ._`${Q} === ${U}`}}};IG.default=yA});var CG=M((RG)=>{Object.defineProperty(RG,"__esModule",{value:!0});var _A=YG(),kA=XG(),xA=VG(),fA=FG(),vA=LG(),gA=qG(),hA=NG(),uA=PG(),mA=TG(),lA=EG(),pA=[_A.default,kA.default,xA.default,fA.default,vA.default,gA.default,hA.default,uA.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},mA.default,lA.default];RG.default=pA});var b4=M((yG)=>{Object.defineProperty(yG,"__esModule",{value:!0});yG.validateAdditionalItems=void 0;var v1=b(),y4=x(),dA={message:({params:{len:$}})=>v1.str`must NOT have more than ${$} items`,params:({params:{len:$}})=>v1._`{limit: ${$}}`},iA={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:dA,code($){let{parentSchema:Z,it:Q}=$,{items:W}=Z;if(!Array.isArray(W)){(0,y4.checkStrictMode)(Q,'"additionalItems" is ignored when "items" is not an array of schemas');return}SG($,W)}};function SG($,Z){let{gen:Q,schema:W,data:Y,keyword:G,it:X}=$;X.items=!0;let J=Q.const("len",v1._`${Y}.length`);if(W===!1)$.setParams({len:Z.length}),$.pass(v1._`${J} <= ${Z.length}`);else if(typeof W=="object"&&!(0,y4.alwaysValidSchema)(X,W)){let B=Q.var("valid",v1._`${J} <= ${Z.length}`);Q.if((0,v1.not)(B),()=>K(B)),$.ok(B)}function K(B){Q.forRange("i",Z.length,J,(z)=>{if($.subschema({keyword:G,dataProp:z,dataPropType:y4.Type.Num},B),!X.allErrors)Q.if((0,v1.not)(B),()=>Q.break())})}}yG.validateAdditionalItems=SG;yG.default=iA});var _4=M((xG)=>{Object.defineProperty(xG,"__esModule",{value:!0});xG.validateTuple=void 0;var _G=b(),d5=x(),aA=q0(),rA={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code($){let{schema:Z,it:Q}=$;if(Array.isArray(Z))return kG($,"additionalItems",Z);if(Q.items=!0,(0,d5.alwaysValidSchema)(Q,Z))return;$.ok((0,aA.validateArray)($))}};function kG($,Z,Q=$.schema){let{gen:W,parentSchema:Y,data:G,keyword:X,it:J}=$;if(z(Y),J.opts.unevaluated&&Q.length&&J.items!==!0)J.items=d5.mergeEvaluated.items(W,Q.length,J.items);let K=W.name("valid"),B=W.const("len",_G._`${G}.length`);Q.forEach((V,F)=>{if((0,d5.alwaysValidSchema)(J,V))return;W.if(_G._`${B} > ${F}`,()=>$.subschema({keyword:X,schemaProp:F,dataProp:F},K)),$.ok(K)});function z(V){let{opts:F,errSchemaPath:D}=J,L=Q.length,U=L===V.minItems&&(L===V.maxItems||V[Z]===!1);if(F.strictTuples&&!U){let q=`"${X}" is ${L}-tuple, but minItems or maxItems/${Z} are not specified or different at path "${D}"`;(0,d5.checkStrictMode)(J,q,F.strictTuples)}}}xG.validateTuple=kG;xG.default=rA});var gG=M((vG)=>{Object.defineProperty(vG,"__esModule",{value:!0});var oA=_4(),sA={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:($)=>(0,oA.validateTuple)($,"items")};vG.default=sA});var mG=M((uG)=>{Object.defineProperty(uG,"__esModule",{value:!0});var hG=b(),$N=x(),ZN=q0(),QN=b4(),WN={message:({params:{len:$}})=>hG.str`must NOT have more than ${$} items`,params:({params:{len:$}})=>hG._`{limit: ${$}}`},YN={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:WN,code($){let{schema:Z,parentSchema:Q,it:W}=$,{prefixItems:Y}=Q;if(W.items=!0,(0,$N.alwaysValidSchema)(W,Z))return;if(Y)(0,QN.validateAdditionalItems)($,Y);else $.ok((0,ZN.validateArray)($))}};uG.default=YN});var pG=M((lG)=>{Object.defineProperty(lG,"__esModule",{value:!0});var A0=b(),i5=x(),XN={message:({params:{min:$,max:Z}})=>Z===void 0?A0.str`must contain at least ${$} valid item(s)`:A0.str`must contain at least ${$} and no more than ${Z} valid item(s)`,params:({params:{min:$,max:Z}})=>Z===void 0?A0._`{minContains: ${$}}`:A0._`{minContains: ${$}, maxContains: ${Z}}`},JN={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:XN,code($){let{gen:Z,schema:Q,parentSchema:W,data:Y,it:G}=$,X,J,{minContains:K,maxContains:B}=W;if(G.opts.next)X=K===void 0?1:K,J=B;else X=1;let z=Z.const("len",A0._`${Y}.length`);if($.setParams({min:X,max:J}),J===void 0&&X===0){(0,i5.checkStrictMode)(G,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(J!==void 0&&X>J){(0,i5.checkStrictMode)(G,'"minContains" > "maxContains" is always invalid'),$.fail();return}if((0,i5.alwaysValidSchema)(G,Q)){let U=A0._`${z} >= ${X}`;if(J!==void 0)U=A0._`${U} && ${z} <= ${J}`;$.pass(U);return}G.items=!0;let V=Z.name("valid");if(J===void 0&&X===1)D(V,()=>Z.if(V,()=>Z.break()));else if(X===0){if(Z.let(V,!0),J!==void 0)Z.if(A0._`${Y}.length > 0`,F)}else Z.let(V,!1),F();$.result(V,()=>$.reset());function F(){let U=Z.name("_valid"),q=Z.let("count",0);D(U,()=>Z.if(U,()=>L(q)))}function D(U,q){Z.forRange("i",0,z,(A)=>{$.subschema({keyword:"contains",dataProp:A,dataPropType:i5.Type.Num,compositeRule:!0},U),q()})}function L(U){if(Z.code(A0._`${U}++`),J===void 0)Z.if(A0._`${U} >= ${X}`,()=>Z.assign(V,!0).break());else if(Z.if(A0._`${U} > ${J}`,()=>Z.assign(V,!1).break()),X===1)Z.assign(V,!0);else Z.if(A0._`${U} >= ${X}`,()=>Z.assign(V,!0))}}};lG.default=JN});var rG=M((iG)=>{Object.defineProperty(iG,"__esModule",{value:!0});iG.validateSchemaDeps=iG.validatePropertyDeps=iG.error=void 0;var k4=b(),BN=x(),OZ=q0();iG.error={message:({params:{property:$,depsCount:Z,deps:Q}})=>{let W=Z===1?"property":"properties";return k4.str`must have ${W} ${Q} when property ${$} is present`},params:({params:{property:$,depsCount:Z,deps:Q,missingProperty:W}})=>k4._`{property: ${$},
|
|
7
|
-
missingProperty: ${
|
|
2
|
+
var LK=Object.create;var{getPrototypeOf:UK,defineProperty:r9,getOwnPropertyNames:qK}=Object;var AK=Object.prototype.hasOwnProperty;function NK($){return this[$]}var OK,MK,I6=($,Z,Q)=>{var Y=$!=null&&typeof $==="object";if(Y){var W=Z?OK??=new WeakMap:MK??=new WeakMap,G=W.get($);if(G)return G}Q=$!=null?LK(UK($)):{};let X=Z||!$||!$.__esModule?r9(Q,"default",{value:$,enumerable:!0}):Q;for(let J of qK($))if(!AK.call(X,J))r9(X,J,{get:NK.bind($,J),enumerable:!0});if(Y)W.set($,X);return X};var M=($,Z)=>()=>(Z||$((Z={exports:{}}).exports,Z),Z.exports);var W1=import.meta.require;var BZ=M(($Y)=>{Object.defineProperty($Y,"__esModule",{value:!0});$Y.regexpCode=$Y.getEsmExportName=$Y.getProperty=$Y.safeStringify=$Y.stringify=$Y.strConcat=$Y.addCodeArg=$Y.str=$Y._=$Y.nil=$Y._Code=$Y.Name=$Y.IDENTIFIER=$Y._CodeOrName=void 0;class S5{}$Y._CodeOrName=S5;$Y.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class H$ extends S5{constructor($){super();if(!$Y.IDENTIFIER.test($))throw Error("CodeGen: name must be a valid identifier");this.str=$}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}$Y.Name=H$;class R0 extends S5{constructor($){super();this._items=typeof $==="string"?[$]:$}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let $=this._items[0];return $===""||$==='""'}get str(){var $;return($=this._str)!==null&&$!==void 0?$:this._str=this._items.reduce((Z,Q)=>`${Z}${Q}`,"")}get names(){var $;return($=this._names)!==null&&$!==void 0?$:this._names=this._items.reduce((Z,Q)=>{if(Q instanceof H$)Z[Q.str]=(Z[Q.str]||0)+1;return Z},{})}}$Y._Code=R0;$Y.nil=new R0("");function s7($,...Z){let Q=[$[0]],Y=0;while(Y<Z.length)B4(Q,Z[Y]),Q.push($[++Y]);return new R0(Q)}$Y._=s7;var K4=new R0("+");function e7($,...Z){let Q=[KZ($[0])],Y=0;while(Y<Z.length)Q.push(K4),B4(Q,Z[Y]),Q.push(K4,KZ($[++Y]));return AF(Q),new R0(Q)}$Y.str=e7;function B4($,Z){if(Z instanceof R0)$.push(...Z._items);else if(Z instanceof H$)$.push(Z);else $.push(MF(Z))}$Y.addCodeArg=B4;function AF($){let Z=1;while(Z<$.length-1){if($[Z]===K4){let Q=NF($[Z-1],$[Z+1]);if(Q!==void 0){$.splice(Z-1,3,Q);continue}$[Z++]="+"}Z++}}function NF($,Z){if(Z==='""')return $;if($==='""')return Z;if(typeof $=="string"){if(Z instanceof H$||$[$.length-1]!=='"')return;if(typeof Z!="string")return`${$.slice(0,-1)}${Z}"`;if(Z[0]==='"')return $.slice(0,-1)+Z.slice(1);return}if(typeof Z=="string"&&Z[0]==='"'&&!($ instanceof H$))return`"${$}${Z.slice(1)}`;return}function OF($,Z){return Z.emptyStr()?$:$.emptyStr()?Z:e7`${$}${Z}`}$Y.strConcat=OF;function MF($){return typeof $=="number"||typeof $=="boolean"||$===null?$:KZ(Array.isArray($)?$.join(","):$)}function jF($){return new R0(KZ($))}$Y.stringify=jF;function KZ($){return JSON.stringify($).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}$Y.safeStringify=KZ;function PF($){return typeof $=="string"&&$Y.IDENTIFIER.test($)?new R0(`.${$}`):s7`[${$}]`}$Y.getProperty=PF;function wF($){if(typeof $=="string"&&$Y.IDENTIFIER.test($))return new R0(`${$}`);throw Error(`CodeGen: invalid export name: ${$}, use explicit $id name mapping`)}$Y.getEsmExportName=wF;function IF($){return new R0($.toString())}$Y.regexpCode=IF});var F4=M((WY)=>{Object.defineProperty(WY,"__esModule",{value:!0});WY.ValueScope=WY.ValueScopeName=WY.Scope=WY.varKinds=WY.UsedValueState=void 0;var z0=BZ();class QY extends Error{constructor($){super(`CodeGen: "code" for ${$} not defined`);this.value=$.value}}var b5;(function($){$[$.Started=0]="Started",$[$.Completed=1]="Completed"})(b5||(WY.UsedValueState=b5={}));WY.varKinds={const:new z0.Name("const"),let:new z0.Name("let"),var:new z0.Name("var")};class V4{constructor({prefixes:$,parent:Z}={}){this._names={},this._prefixes=$,this._parent=Z}toName($){return $ instanceof z0.Name?$:this.name($)}name($){return new z0.Name(this._newName($))}_newName($){let Z=this._names[$]||this._nameGroup($);return`${$}${Z.index++}`}_nameGroup($){var Z,Q;if(((Q=(Z=this._parent)===null||Z===void 0?void 0:Z._prefixes)===null||Q===void 0?void 0:Q.has($))||this._prefixes&&!this._prefixes.has($))throw Error(`CodeGen: prefix "${$}" is not allowed in this scope`);return this._names[$]={prefix:$,index:0}}}WY.Scope=V4;class z4 extends z0.Name{constructor($,Z){super(Z);this.prefix=$}setValue($,{property:Z,itemIndex:Q}){this.value=$,this.scopePath=z0._`.${new z0.Name(Z)}[${Q}]`}}WY.ValueScopeName=z4;var gF=z0._`\n`;class YY extends V4{constructor($){super($);this._values={},this._scope=$.scope,this.opts={...$,_n:$.lines?gF:z0.nil}}get(){return this._scope}name($){return new z4($,this._newName($))}value($,Z){var Q;if(Z.ref===void 0)throw Error("CodeGen: ref must be passed in value");let Y=this.toName($),{prefix:W}=Y,G=(Q=Z.key)!==null&&Q!==void 0?Q:Z.ref,X=this._values[W];if(X){let K=X.get(G);if(K)return K}else X=this._values[W]=new Map;X.set(G,Y);let J=this._scope[W]||(this._scope[W]=[]),B=J.length;return J[B]=Z.ref,Y.setValue(Z,{property:W,itemIndex:B}),Y}getValue($,Z){let Q=this._values[$];if(!Q)return;return Q.get(Z)}scopeRefs($,Z=this._values){return this._reduceValues(Z,(Q)=>{if(Q.scopePath===void 0)throw Error(`CodeGen: name "${Q}" has no value`);return z0._`${$}${Q.scopePath}`})}scopeCode($=this._values,Z,Q){return this._reduceValues($,(Y)=>{if(Y.value===void 0)throw Error(`CodeGen: name "${Y}" has no value`);return Y.value.code},Z,Q)}_reduceValues($,Z,Q={},Y){let W=z0.nil;for(let G in $){let X=$[G];if(!X)continue;let J=Q[G]=Q[G]||new Map;X.forEach((B)=>{if(J.has(B))return;J.set(B,b5.Started);let K=Z(B);if(K){let V=this.opts.es5?WY.varKinds.var:WY.varKinds.const;W=z0._`${W}${V} ${B} = ${K};${this.opts._n}`}else if(K=Y===null||Y===void 0?void 0:Y(B))W=z0._`${W}${K}${this.opts._n}`;else throw new QY(B);J.set(B,b5.Completed)})}return W}}WY.ValueScope=YY});var b=M((F0)=>{Object.defineProperty(F0,"__esModule",{value:!0});F0.or=F0.and=F0.not=F0.CodeGen=F0.operators=F0.varKinds=F0.ValueScopeName=F0.ValueScope=F0.Scope=F0.Name=F0.regexpCode=F0.stringify=F0.getProperty=F0.nil=F0.strConcat=F0.str=F0._=void 0;var x=BZ(),C0=F4(),U1=BZ();Object.defineProperty(F0,"_",{enumerable:!0,get:function(){return U1._}});Object.defineProperty(F0,"str",{enumerable:!0,get:function(){return U1.str}});Object.defineProperty(F0,"strConcat",{enumerable:!0,get:function(){return U1.strConcat}});Object.defineProperty(F0,"nil",{enumerable:!0,get:function(){return U1.nil}});Object.defineProperty(F0,"getProperty",{enumerable:!0,get:function(){return U1.getProperty}});Object.defineProperty(F0,"stringify",{enumerable:!0,get:function(){return U1.stringify}});Object.defineProperty(F0,"regexpCode",{enumerable:!0,get:function(){return U1.regexpCode}});Object.defineProperty(F0,"Name",{enumerable:!0,get:function(){return U1.Name}});var g5=F4();Object.defineProperty(F0,"Scope",{enumerable:!0,get:function(){return g5.Scope}});Object.defineProperty(F0,"ValueScope",{enumerable:!0,get:function(){return g5.ValueScope}});Object.defineProperty(F0,"ValueScopeName",{enumerable:!0,get:function(){return g5.ValueScopeName}});Object.defineProperty(F0,"varKinds",{enumerable:!0,get:function(){return g5.varKinds}});F0.operators={GT:new x._Code(">"),GTE:new x._Code(">="),LT:new x._Code("<"),LTE:new x._Code("<="),EQ:new x._Code("==="),NEQ:new x._Code("!=="),NOT:new x._Code("!"),OR:new x._Code("||"),AND:new x._Code("&&"),ADD:new x._Code("+")};class q1{optimizeNodes(){return this}optimizeNames($,Z){return this}}class XY extends q1{constructor($,Z,Q){super();this.varKind=$,this.name=Z,this.rhs=Q}render({es5:$,_n:Z}){let Q=$?C0.varKinds.var:this.varKind,Y=this.rhs===void 0?"":` = ${this.rhs}`;return`${Q} ${this.name}${Y};`+Z}optimizeNames($,Z){if(!$[this.name.str])return;if(this.rhs)this.rhs=z$(this.rhs,$,Z);return this}get names(){return this.rhs instanceof x._CodeOrName?this.rhs.names:{}}}class U4 extends q1{constructor($,Z,Q){super();this.lhs=$,this.rhs=Z,this.sideEffects=Q}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,Z){if(this.lhs instanceof x.Name&&!$[this.lhs.str]&&!this.sideEffects)return;return this.rhs=z$(this.rhs,$,Z),this}get names(){let $=this.lhs instanceof x.Name?{}:{...this.lhs.names};return v5($,this.rhs)}}class JY extends U4{constructor($,Z,Q,Y){super($,Q,Y);this.op=Z}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class KY extends q1{constructor($){super();this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class BY extends q1{constructor($){super();this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class HY extends q1{constructor($){super();this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class VY extends q1{constructor($){super();this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,Z){return this.code=z$(this.code,$,Z),this}get names(){return this.code instanceof x._CodeOrName?this.code.names:{}}}class h5 extends q1{constructor($=[]){super();this.nodes=$}render($){return this.nodes.reduce((Z,Q)=>Z+Q.render($),"")}optimizeNodes(){let{nodes:$}=this,Z=$.length;while(Z--){let Q=$[Z].optimizeNodes();if(Array.isArray(Q))$.splice(Z,1,...Q);else if(Q)$[Z]=Q;else $.splice(Z,1)}return $.length>0?this:void 0}optimizeNames($,Z){let{nodes:Q}=this,Y=Q.length;while(Y--){let W=Q[Y];if(W.optimizeNames($,Z))continue;lF($,W.names),Q.splice(Y,1)}return Q.length>0?this:void 0}get names(){return this.nodes.reduce(($,Z)=>f1($,Z.names),{})}}class A1 extends h5{render($){return"{"+$._n+super.render($)+"}"+$._n}}class zY extends h5{}class HZ extends A1{}HZ.kind="else";class s0 extends A1{constructor($,Z){super(Z);this.condition=$}render($){let Z=`if(${this.condition})`+super.render($);if(this.else)Z+="else "+this.else.render($);return Z}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let Z=this.else;if(Z){let Q=Z.optimizeNodes();Z=this.else=Array.isArray(Q)?new HZ(Q):Q}if(Z){if($===!1)return Z instanceof s0?Z:Z.nodes;if(this.nodes.length)return this;return new s0(qY($),Z instanceof s0?[Z]:Z.nodes)}if($===!1||!this.nodes.length)return;return this}optimizeNames($,Z){var Q;if(this.else=(Q=this.else)===null||Q===void 0?void 0:Q.optimizeNames($,Z),!(super.optimizeNames($,Z)||this.else))return;return this.condition=z$(this.condition,$,Z),this}get names(){let $=super.names;if(v5($,this.condition),this.else)f1($,this.else.names);return $}}s0.kind="if";class V$ extends A1{}V$.kind="for";class FY extends V${constructor($){super();this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,Z){if(!super.optimizeNames($,Z))return;return this.iteration=z$(this.iteration,$,Z),this}get names(){return f1(super.names,this.iteration.names)}}class DY extends V${constructor($,Z,Q,Y){super();this.varKind=$,this.name=Z,this.from=Q,this.to=Y}render($){let Z=$.es5?C0.varKinds.var:this.varKind,{name:Q,from:Y,to:W}=this;return`for(${Z} ${Q}=${Y}; ${Q}<${W}; ${Q}++)`+super.render($)}get names(){let $=v5(super.names,this.from);return v5($,this.to)}}class D4 extends V${constructor($,Z,Q,Y){super();this.loop=$,this.varKind=Z,this.name=Q,this.iterable=Y}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,Z){if(!super.optimizeNames($,Z))return;return this.iterable=z$(this.iterable,$,Z),this}get names(){return f1(super.names,this.iterable.names)}}class _5 extends A1{constructor($,Z,Q){super();this.name=$,this.args=Z,this.async=Q}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}_5.kind="func";class x5 extends h5{render($){return"return "+super.render($)}}x5.kind="return";class LY extends A1{render($){let Z="try"+super.render($);if(this.catch)Z+=this.catch.render($);if(this.finally)Z+=this.finally.render($);return Z}optimizeNodes(){var $,Z;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(Z=this.finally)===null||Z===void 0||Z.optimizeNodes(),this}optimizeNames($,Z){var Q,Y;return super.optimizeNames($,Z),(Q=this.catch)===null||Q===void 0||Q.optimizeNames($,Z),(Y=this.finally)===null||Y===void 0||Y.optimizeNames($,Z),this}get names(){let $=super.names;if(this.catch)f1($,this.catch.names);if(this.finally)f1($,this.finally.names);return $}}class k5 extends A1{constructor($){super();this.error=$}render($){return`catch(${this.error})`+super.render($)}}k5.kind="catch";class f5 extends A1{render($){return"finally"+super.render($)}}f5.kind="finally";class UY{constructor($,Z={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...Z,_n:Z.lines?`
|
|
3
|
+
`:""},this._extScope=$,this._scope=new C0.Scope({parent:$}),this._nodes=[new zY]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,Z){let Q=this._extScope.value($,Z);return(this._values[Q.prefix]||(this._values[Q.prefix]=new Set)).add(Q),Q}getScopeValue($,Z){return this._extScope.getValue($,Z)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,Z,Q,Y){let W=this._scope.toName(Z);if(Q!==void 0&&Y)this._constants[W.str]=Q;return this._leafNode(new XY($,W,Q)),W}const($,Z,Q){return this._def(C0.varKinds.const,$,Z,Q)}let($,Z,Q){return this._def(C0.varKinds.let,$,Z,Q)}var($,Z,Q){return this._def(C0.varKinds.var,$,Z,Q)}assign($,Z,Q){return this._leafNode(new U4($,Z,Q))}add($,Z){return this._leafNode(new JY($,F0.operators.ADD,Z))}code($){if(typeof $=="function")$();else if($!==x.nil)this._leafNode(new VY($));return this}object(...$){let Z=["{"];for(let[Q,Y]of $){if(Z.length>1)Z.push(",");if(Z.push(Q),Q!==Y||this.opts.es5)Z.push(":"),(0,x.addCodeArg)(Z,Y)}return Z.push("}"),new x._Code(Z)}if($,Z,Q){if(this._blockNode(new s0($)),Z&&Q)this.code(Z).else().code(Q).endIf();else if(Z)this.code(Z).endIf();else if(Q)throw Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new s0($))}else(){return this._elseNode(new HZ)}endIf(){return this._endBlockNode(s0,HZ)}_for($,Z){if(this._blockNode($),Z)this.code(Z).endFor();return this}for($,Z){return this._for(new FY($),Z)}forRange($,Z,Q,Y,W=this.opts.es5?C0.varKinds.var:C0.varKinds.let){let G=this._scope.toName($);return this._for(new DY(W,G,Z,Q),()=>Y(G))}forOf($,Z,Q,Y=C0.varKinds.const){let W=this._scope.toName($);if(this.opts.es5){let G=Z instanceof x.Name?Z:this.var("_arr",Z);return this.forRange("_i",0,x._`${G}.length`,(X)=>{this.var(W,x._`${G}[${X}]`),Q(W)})}return this._for(new D4("of",Y,W,Z),()=>Q(W))}forIn($,Z,Q,Y=this.opts.es5?C0.varKinds.var:C0.varKinds.const){if(this.opts.ownProperties)return this.forOf($,x._`Object.keys(${Z})`,Q);let W=this._scope.toName($);return this._for(new D4("in",Y,W,Z),()=>Q(W))}endFor(){return this._endBlockNode(V$)}label($){return this._leafNode(new KY($))}break($){return this._leafNode(new BY($))}return($){let Z=new x5;if(this._blockNode(Z),this.code($),Z.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(x5)}try($,Z,Q){if(!Z&&!Q)throw Error('CodeGen: "try" without "catch" and "finally"');let Y=new LY;if(this._blockNode(Y),this.code($),Z){let W=this.name("e");this._currNode=Y.catch=new k5(W),Z(W)}if(Q)this._currNode=Y.finally=new f5,this.code(Q);return this._endBlockNode(k5,f5)}throw($){return this._leafNode(new HY($))}block($,Z){if(this._blockStarts.push(this._nodes.length),$)this.code($).endBlock(Z);return this}endBlock($){let Z=this._blockStarts.pop();if(Z===void 0)throw Error("CodeGen: not in self-balancing block");let Q=this._nodes.length-Z;if(Q<0||$!==void 0&&Q!==$)throw Error(`CodeGen: wrong number of nodes: ${Q} vs ${$} expected`);return this._nodes.length=Z,this}func($,Z=x.nil,Q,Y){if(this._blockNode(new _5($,Z,Q)),Y)this.code(Y).endFunc();return this}endFunc(){return this._endBlockNode(_5)}optimize($=1){while($-- >0)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,Z){let Q=this._currNode;if(Q instanceof $||Z&&Q instanceof Z)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${Z?`${$.kind}/${Z.kind}`:$.kind}"`)}_elseNode($){let Z=this._currNode;if(!(Z instanceof s0))throw Error('CodeGen: "else" without "if"');return this._currNode=Z.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let Z=this._nodes;Z[Z.length-1]=$}}F0.CodeGen=UY;function f1($,Z){for(let Q in Z)$[Q]=($[Q]||0)+(Z[Q]||0);return $}function v5($,Z){return Z instanceof x._CodeOrName?f1($,Z.names):$}function z$($,Z,Q){if($ instanceof x.Name)return Y($);if(!W($))return $;return new x._Code($._items.reduce((G,X)=>{if(X instanceof x.Name)X=Y(X);if(X instanceof x._Code)G.push(...X._items);else G.push(X);return G},[]));function Y(G){let X=Q[G.str];if(X===void 0||Z[G.str]!==1)return G;return delete Z[G.str],X}function W(G){return G instanceof x._Code&&G._items.some((X)=>X instanceof x.Name&&Z[X.str]===1&&Q[X.str]!==void 0)}}function lF($,Z){for(let Q in Z)$[Q]=($[Q]||0)-(Z[Q]||0)}function qY($){return typeof $=="boolean"||typeof $=="number"||$===null?!$:x._`!${L4($)}`}F0.not=qY;var pF=AY(F0.operators.AND);function cF(...$){return $.reduce(pF)}F0.and=cF;var dF=AY(F0.operators.OR);function iF(...$){return $.reduce(dF)}F0.or=iF;function AY($){return(Z,Q)=>Z===x.nil?Q:Q===x.nil?Z:x._`${L4(Z)} ${$} ${L4(Q)}`}function L4($){return $ instanceof x.Name?$:x._`(${$})`}});var k=M((EY)=>{Object.defineProperty(EY,"__esModule",{value:!0});EY.checkStrictMode=EY.getErrorPath=EY.Type=EY.useFunc=EY.setEvaluated=EY.evaluatedPropsToName=EY.mergeEvaluated=EY.eachItem=EY.unescapeJsonPointer=EY.escapeJsonPointer=EY.escapeFragment=EY.unescapeFragment=EY.schemaRefOrVal=EY.schemaHasRulesButRef=EY.schemaHasRules=EY.checkUnknownRules=EY.alwaysValidSchema=EY.toHash=void 0;var m=b(),tF=BZ();function oF($){let Z={};for(let Q of $)Z[Q]=!0;return Z}EY.toHash=oF;function sF($,Z){if(typeof Z=="boolean")return Z;if(Object.keys(Z).length===0)return!0;return jY($,Z),!PY(Z,$.self.RULES.all)}EY.alwaysValidSchema=sF;function jY($,Z=$.schema){let{opts:Q,self:Y}=$;if(!Q.strictSchema)return;if(typeof Z==="boolean")return;let W=Y.RULES.keywords;for(let G in Z)if(!W[G])TY($,`unknown keyword: "${G}"`)}EY.checkUnknownRules=jY;function PY($,Z){if(typeof $=="boolean")return!$;for(let Q in $)if(Z[Q])return!0;return!1}EY.schemaHasRules=PY;function eF($,Z){if(typeof $=="boolean")return!$;for(let Q in $)if(Q!=="$ref"&&Z.all[Q])return!0;return!1}EY.schemaHasRulesButRef=eF;function $D({topSchemaRef:$,schemaPath:Z},Q,Y,W){if(!W){if(typeof Q=="number"||typeof Q=="boolean")return Q;if(typeof Q=="string")return m._`${Q}`}return m._`${$}${Z}${(0,m.getProperty)(Y)}`}EY.schemaRefOrVal=$D;function ZD($){return wY(decodeURIComponent($))}EY.unescapeFragment=ZD;function QD($){return encodeURIComponent(A4($))}EY.escapeFragment=QD;function A4($){if(typeof $=="number")return`${$}`;return $.replace(/~/g,"~0").replace(/\//g,"~1")}EY.escapeJsonPointer=A4;function wY($){return $.replace(/~1/g,"/").replace(/~0/g,"~")}EY.unescapeJsonPointer=wY;function YD($,Z){if(Array.isArray($))for(let Q of $)Z(Q);else Z($)}EY.eachItem=YD;function OY({mergeNames:$,mergeToName:Z,mergeValues:Q,resultToName:Y}){return(W,G,X,J)=>{let B=X===void 0?G:X instanceof m.Name?(G instanceof m.Name?$(W,G,X):Z(W,G,X),X):G instanceof m.Name?(Z(W,X,G),G):Q(G,X);return J===m.Name&&!(B instanceof m.Name)?Y(W,B):B}}EY.mergeEvaluated={props:OY({mergeNames:($,Z,Q)=>$.if(m._`${Q} !== true && ${Z} !== undefined`,()=>{$.if(m._`${Z} === true`,()=>$.assign(Q,!0),()=>$.assign(Q,m._`${Q} || {}`).code(m._`Object.assign(${Q}, ${Z})`))}),mergeToName:($,Z,Q)=>$.if(m._`${Q} !== true`,()=>{if(Z===!0)$.assign(Q,!0);else $.assign(Q,m._`${Q} || {}`),N4($,Q,Z)}),mergeValues:($,Z)=>$===!0?!0:{...$,...Z},resultToName:IY}),items:OY({mergeNames:($,Z,Q)=>$.if(m._`${Q} !== true && ${Z} !== undefined`,()=>$.assign(Q,m._`${Z} === true ? true : ${Q} > ${Z} ? ${Q} : ${Z}`)),mergeToName:($,Z,Q)=>$.if(m._`${Q} !== true`,()=>$.assign(Q,Z===!0?!0:m._`${Q} > ${Z} ? ${Q} : ${Z}`)),mergeValues:($,Z)=>$===!0?!0:Math.max($,Z),resultToName:($,Z)=>$.var("items",Z)})};function IY($,Z){if(Z===!0)return $.var("props",!0);let Q=$.var("props",m._`{}`);if(Z!==void 0)N4($,Q,Z);return Q}EY.evaluatedPropsToName=IY;function N4($,Z,Q){Object.keys(Q).forEach((Y)=>$.assign(m._`${Z}${(0,m.getProperty)(Y)}`,!0))}EY.setEvaluated=N4;var MY={};function WD($,Z){return $.scopeValue("func",{ref:Z,code:MY[Z.code]||(MY[Z.code]=new tF._Code(Z.code))})}EY.useFunc=WD;var q4;(function($){$[$.Num=0]="Num",$[$.Str=1]="Str"})(q4||(EY.Type=q4={}));function GD($,Z,Q){if($ instanceof m.Name){let Y=Z===q4.Num;return Q?Y?m._`"[" + ${$} + "]"`:m._`"['" + ${$} + "']"`:Y?m._`"/" + ${$}`:m._`"/" + ${$}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return Q?(0,m.getProperty)($).toString():"/"+A4($)}EY.getErrorPath=GD;function TY($,Z,Q=$.opts.strictSchema){if(!Q)return;if(Z=`strict mode: ${Z}`,Q===!0)throw Error(Z);$.self.logger.warn(Z)}EY.checkStrictMode=TY});var e0=M((CY)=>{Object.defineProperty(CY,"__esModule",{value:!0});var W0=b(),PD={data:new W0.Name("data"),valCxt:new W0.Name("valCxt"),instancePath:new W0.Name("instancePath"),parentData:new W0.Name("parentData"),parentDataProperty:new W0.Name("parentDataProperty"),rootData:new W0.Name("rootData"),dynamicAnchors:new W0.Name("dynamicAnchors"),vErrors:new W0.Name("vErrors"),errors:new W0.Name("errors"),this:new W0.Name("this"),self:new W0.Name("self"),scope:new W0.Name("scope"),json:new W0.Name("json"),jsonPos:new W0.Name("jsonPos"),jsonLen:new W0.Name("jsonLen"),jsonPart:new W0.Name("jsonPart")};CY.default=PD});var VZ=M((_Y)=>{Object.defineProperty(_Y,"__esModule",{value:!0});_Y.extendErrors=_Y.resetErrorsCount=_Y.reportExtraError=_Y.reportError=_Y.keyword$DataError=_Y.keywordError=void 0;var f=b(),m5=k(),J0=e0();_Y.keywordError={message:({keyword:$})=>f.str`must pass "${$}" keyword validation`};_Y.keyword$DataError={message:({keyword:$,schemaType:Z})=>Z?f.str`"${$}" keyword must be ${Z} ($data)`:f.str`"${$}" keyword is invalid ($data)`};function ID($,Z=_Y.keywordError,Q,Y){let{it:W}=$,{gen:G,compositeRule:X,allErrors:J}=W,B=bY($,Z,Q);if(Y!==null&&Y!==void 0?Y:X||J)SY(G,B);else yY(W,f._`[${B}]`)}_Y.reportError=ID;function TD($,Z=_Y.keywordError,Q){let{it:Y}=$,{gen:W,compositeRule:G,allErrors:X}=Y,J=bY($,Z,Q);if(SY(W,J),!(G||X))yY(Y,J0.default.vErrors)}_Y.reportExtraError=TD;function ED($,Z){$.assign(J0.default.errors,Z),$.if(f._`${J0.default.vErrors} !== null`,()=>$.if(Z,()=>$.assign(f._`${J0.default.vErrors}.length`,Z),()=>$.assign(J0.default.vErrors,null)))}_Y.resetErrorsCount=ED;function RD({gen:$,keyword:Z,schemaValue:Q,data:Y,errsCount:W,it:G}){if(W===void 0)throw Error("ajv implementation error");let X=$.name("err");$.forRange("i",W,J0.default.errors,(J)=>{if($.const(X,f._`${J0.default.vErrors}[${J}]`),$.if(f._`${X}.instancePath === undefined`,()=>$.assign(f._`${X}.instancePath`,(0,f.strConcat)(J0.default.instancePath,G.errorPath))),$.assign(f._`${X}.schemaPath`,f.str`${G.errSchemaPath}/${Z}`),G.opts.verbose)$.assign(f._`${X}.schema`,Q),$.assign(f._`${X}.data`,Y)})}_Y.extendErrors=RD;function SY($,Z){let Q=$.const("err",Z);$.if(f._`${J0.default.vErrors} === null`,()=>$.assign(J0.default.vErrors,f._`[${Q}]`),f._`${J0.default.vErrors}.push(${Q})`),$.code(f._`${J0.default.errors}++`)}function yY($,Z){let{gen:Q,validateName:Y,schemaEnv:W}=$;if(W.$async)Q.throw(f._`new ${$.ValidationError}(${Z})`);else Q.assign(f._`${Y}.errors`,Z),Q.return(!1)}var v1={keyword:new f.Name("keyword"),schemaPath:new f.Name("schemaPath"),params:new f.Name("params"),propertyName:new f.Name("propertyName"),message:new f.Name("message"),schema:new f.Name("schema"),parentSchema:new f.Name("parentSchema")};function bY($,Z,Q){let{createErrors:Y}=$.it;if(Y===!1)return f._`{}`;return CD($,Z,Q)}function CD($,Z,Q={}){let{gen:Y,it:W}=$,G=[SD(W,Q),yD($,Q)];return bD($,Z,G),Y.object(...G)}function SD({errorPath:$},{instancePath:Z}){let Q=Z?f.str`${$}${(0,m5.getErrorPath)(Z,m5.Type.Str)}`:$;return[J0.default.instancePath,(0,f.strConcat)(J0.default.instancePath,Q)]}function yD({keyword:$,it:{errSchemaPath:Z}},{schemaPath:Q,parentSchema:Y}){let W=Y?Z:f.str`${Z}/${$}`;if(Q)W=f.str`${W}${(0,m5.getErrorPath)(Q,m5.Type.Str)}`;return[v1.schemaPath,W]}function bD($,{params:Z,message:Q},Y){let{keyword:W,data:G,schemaValue:X,it:J}=$,{opts:B,propertyName:K,topSchemaRef:V,schemaPath:z}=J;if(Y.push([v1.keyword,W],[v1.params,typeof Z=="function"?Z($):Z||f._`{}`]),B.messages)Y.push([v1.message,typeof Q=="function"?Q($):Q]);if(B.verbose)Y.push([v1.schema,X],[v1.parentSchema,f._`${V}${z}`],[J0.default.data,G]);if(K)Y.push([v1.propertyName,K])}});var gY=M((fY)=>{Object.defineProperty(fY,"__esModule",{value:!0});fY.boolOrEmptySchema=fY.topBoolOrEmptySchema=void 0;var vD=VZ(),gD=b(),hD=e0(),uD={message:"boolean schema is false"};function mD($){let{gen:Z,schema:Q,validateName:Y}=$;if(Q===!1)kY($,!1);else if(typeof Q=="object"&&Q.$async===!0)Z.return(hD.default.data);else Z.assign(gD._`${Y}.errors`,null),Z.return(!0)}fY.topBoolOrEmptySchema=mD;function lD($,Z){let{gen:Q,schema:Y}=$;if(Y===!1)Q.var(Z,!1),kY($);else Q.var(Z,!0)}fY.boolOrEmptySchema=lD;function kY($,Z){let{gen:Q,data:Y}=$,W={gen:Q,keyword:"false schema",data:Y,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:$};(0,vD.reportError)(W,uD,void 0,Z)}});var M4=M((hY)=>{Object.defineProperty(hY,"__esModule",{value:!0});hY.getRules=hY.isJSONType=void 0;var cD=["string","number","integer","boolean","null","object","array"],dD=new Set(cD);function iD($){return typeof $=="string"&&dD.has($)}hY.isJSONType=iD;function nD(){let $={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...$,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},$.number,$.string,$.array,$.object],post:{rules:[]},all:{},keywords:{}}}hY.getRules=nD});var j4=M((pY)=>{Object.defineProperty(pY,"__esModule",{value:!0});pY.shouldUseRule=pY.shouldUseGroup=pY.schemaHasRulesForType=void 0;function rD({schema:$,self:Z},Q){let Y=Z.RULES.types[Q];return Y&&Y!==!0&&mY($,Y)}pY.schemaHasRulesForType=rD;function mY($,Z){return Z.rules.some((Q)=>lY($,Q))}pY.shouldUseGroup=mY;function lY($,Z){var Q;return $[Z.keyword]!==void 0||((Q=Z.definition.implements)===null||Q===void 0?void 0:Q.some((Y)=>$[Y]!==void 0))}pY.shouldUseRule=lY});var zZ=M((aY)=>{Object.defineProperty(aY,"__esModule",{value:!0});aY.reportTypeError=aY.checkDataTypes=aY.checkDataType=aY.coerceAndCheckDataType=aY.getJSONTypes=aY.getSchemaTypes=aY.DataType=void 0;var sD=M4(),eD=j4(),$L=VZ(),y=b(),dY=k(),F$;(function($){$[$.Correct=0]="Correct",$[$.Wrong=1]="Wrong"})(F$||(aY.DataType=F$={}));function ZL($){let Z=iY($.type);if(Z.includes("null")){if($.nullable===!1)throw Error("type: null contradicts nullable: false")}else{if(!Z.length&&$.nullable!==void 0)throw Error('"nullable" cannot be used without "type"');if($.nullable===!0)Z.push("null")}return Z}aY.getSchemaTypes=ZL;function iY($){let Z=Array.isArray($)?$:$?[$]:[];if(Z.every(sD.isJSONType))return Z;throw Error("type must be JSONType or JSONType[]: "+Z.join(","))}aY.getJSONTypes=iY;function QL($,Z){let{gen:Q,data:Y,opts:W}=$,G=YL(Z,W.coerceTypes),X=Z.length>0&&!(G.length===0&&Z.length===1&&(0,eD.schemaHasRulesForType)($,Z[0]));if(X){let J=w4(Z,Y,W.strictNumbers,F$.Wrong);Q.if(J,()=>{if(G.length)WL($,Z,G);else I4($)})}return X}aY.coerceAndCheckDataType=QL;var nY=new Set(["string","number","integer","boolean","null"]);function YL($,Z){return Z?$.filter((Q)=>nY.has(Q)||Z==="array"&&Q==="array"):[]}function WL($,Z,Q){let{gen:Y,data:W,opts:G}=$,X=Y.let("dataType",y._`typeof ${W}`),J=Y.let("coerced",y._`undefined`);if(G.coerceTypes==="array")Y.if(y._`${X} == 'object' && Array.isArray(${W}) && ${W}.length == 1`,()=>Y.assign(W,y._`${W}[0]`).assign(X,y._`typeof ${W}`).if(w4(Z,W,G.strictNumbers),()=>Y.assign(J,W)));Y.if(y._`${J} !== undefined`);for(let K of Q)if(nY.has(K)||K==="array"&&G.coerceTypes==="array")B(K);Y.else(),I4($),Y.endIf(),Y.if(y._`${J} !== undefined`,()=>{Y.assign(W,J),GL($,J)});function B(K){switch(K){case"string":Y.elseIf(y._`${X} == "number" || ${X} == "boolean"`).assign(J,y._`"" + ${W}`).elseIf(y._`${W} === null`).assign(J,y._`""`);return;case"number":Y.elseIf(y._`${X} == "boolean" || ${W} === null
|
|
4
|
+
|| (${X} == "string" && ${W} && ${W} == +${W})`).assign(J,y._`+${W}`);return;case"integer":Y.elseIf(y._`${X} === "boolean" || ${W} === null
|
|
5
|
+
|| (${X} === "string" && ${W} && ${W} == +${W} && !(${W} % 1))`).assign(J,y._`+${W}`);return;case"boolean":Y.elseIf(y._`${W} === "false" || ${W} === 0 || ${W} === null`).assign(J,!1).elseIf(y._`${W} === "true" || ${W} === 1`).assign(J,!0);return;case"null":Y.elseIf(y._`${W} === "" || ${W} === 0 || ${W} === false`),Y.assign(J,null);return;case"array":Y.elseIf(y._`${X} === "string" || ${X} === "number"
|
|
6
|
+
|| ${X} === "boolean" || ${W} === null`).assign(J,y._`[${W}]`)}}}function GL({gen:$,parentData:Z,parentDataProperty:Q},Y){$.if(y._`${Z} !== undefined`,()=>$.assign(y._`${Z}[${Q}]`,Y))}function P4($,Z,Q,Y=F$.Correct){let W=Y===F$.Correct?y.operators.EQ:y.operators.NEQ,G;switch($){case"null":return y._`${Z} ${W} null`;case"array":G=y._`Array.isArray(${Z})`;break;case"object":G=y._`${Z} && typeof ${Z} == "object" && !Array.isArray(${Z})`;break;case"integer":G=X(y._`!(${Z} % 1) && !isNaN(${Z})`);break;case"number":G=X();break;default:return y._`typeof ${Z} ${W} ${$}`}return Y===F$.Correct?G:(0,y.not)(G);function X(J=y.nil){return(0,y.and)(y._`typeof ${Z} == "number"`,J,Q?y._`isFinite(${Z})`:y.nil)}}aY.checkDataType=P4;function w4($,Z,Q,Y){if($.length===1)return P4($[0],Z,Q,Y);let W,G=(0,dY.toHash)($);if(G.array&&G.object){let X=y._`typeof ${Z} != "object"`;W=G.null?X:y._`!${Z} || ${X}`,delete G.null,delete G.array,delete G.object}else W=y.nil;if(G.number)delete G.integer;for(let X in G)W=(0,y.and)(W,P4(X,Z,Q,Y));return W}aY.checkDataTypes=w4;var XL={message:({schema:$})=>`must be ${$}`,params:({schema:$,schemaValue:Z})=>typeof $=="string"?y._`{type: ${$}}`:y._`{type: ${Z}}`};function I4($){let Z=JL($);(0,$L.reportError)(Z,XL)}aY.reportTypeError=I4;function JL($){let{gen:Z,data:Q,schema:Y}=$,W=(0,dY.schemaRefOrVal)($,Y,"type");return{gen:Z,keyword:"type",data:Q,schema:Y.type,schemaCode:W,schemaValue:W,parentSchema:Y,params:{},it:$}}});var eY=M((oY)=>{Object.defineProperty(oY,"__esModule",{value:!0});oY.assignDefaults=void 0;var D$=b(),DL=k();function LL($,Z){let{properties:Q,items:Y}=$.schema;if(Z==="object"&&Q)for(let W in Q)tY($,W,Q[W].default);else if(Z==="array"&&Array.isArray(Y))Y.forEach((W,G)=>tY($,G,W.default))}oY.assignDefaults=LL;function tY($,Z,Q){let{gen:Y,compositeRule:W,data:G,opts:X}=$;if(Q===void 0)return;let J=D$._`${G}${(0,D$.getProperty)(Z)}`;if(W){(0,DL.checkStrictMode)($,`default is ignored for: ${J}`);return}let B=D$._`${J} === undefined`;if(X.useDefaults==="empty")B=D$._`${B} || ${J} === null || ${J} === ""`;Y.if(B,D$._`${J} = ${(0,D$.stringify)(Q)}`)}});var P0=M((QW)=>{Object.defineProperty(QW,"__esModule",{value:!0});QW.validateUnion=QW.validateArray=QW.usePattern=QW.callValidateCode=QW.schemaProperties=QW.allSchemaProperties=QW.noPropertyInData=QW.propertyInData=QW.isOwnProperty=QW.hasPropFunc=QW.reportMissingProp=QW.checkMissingProp=QW.checkReportMissingProp=void 0;var p=b(),T4=k(),N1=e0(),UL=k();function qL($,Z){let{gen:Q,data:Y,it:W}=$;Q.if(R4(Q,Y,Z,W.opts.ownProperties),()=>{$.setParams({missingProperty:p._`${Z}`},!0),$.error()})}QW.checkReportMissingProp=qL;function AL({gen:$,data:Z,it:{opts:Q}},Y,W){return(0,p.or)(...Y.map((G)=>(0,p.and)(R4($,Z,G,Q.ownProperties),p._`${W} = ${G}`)))}QW.checkMissingProp=AL;function NL($,Z){$.setParams({missingProperty:Z},!0),$.error()}QW.reportMissingProp=NL;function $W($){return $.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:p._`Object.prototype.hasOwnProperty`})}QW.hasPropFunc=$W;function E4($,Z,Q){return p._`${$W($)}.call(${Z}, ${Q})`}QW.isOwnProperty=E4;function OL($,Z,Q,Y){let W=p._`${Z}${(0,p.getProperty)(Q)} !== undefined`;return Y?p._`${W} && ${E4($,Z,Q)}`:W}QW.propertyInData=OL;function R4($,Z,Q,Y){let W=p._`${Z}${(0,p.getProperty)(Q)} === undefined`;return Y?(0,p.or)(W,(0,p.not)(E4($,Z,Q))):W}QW.noPropertyInData=R4;function ZW($){return $?Object.keys($).filter((Z)=>Z!=="__proto__"):[]}QW.allSchemaProperties=ZW;function ML($,Z){return ZW(Z).filter((Q)=>!(0,T4.alwaysValidSchema)($,Z[Q]))}QW.schemaProperties=ML;function jL({schemaCode:$,data:Z,it:{gen:Q,topSchemaRef:Y,schemaPath:W,errorPath:G},it:X},J,B,K){let V=K?p._`${$}, ${Z}, ${Y}${W}`:Z,z=[[N1.default.instancePath,(0,p.strConcat)(N1.default.instancePath,G)],[N1.default.parentData,X.parentData],[N1.default.parentDataProperty,X.parentDataProperty],[N1.default.rootData,N1.default.rootData]];if(X.opts.dynamicRef)z.push([N1.default.dynamicAnchors,N1.default.dynamicAnchors]);let F=p._`${V}, ${Q.object(...z)}`;return B!==p.nil?p._`${J}.call(${B}, ${F})`:p._`${J}(${F})`}QW.callValidateCode=jL;var PL=p._`new RegExp`;function wL({gen:$,it:{opts:Z}},Q){let Y=Z.unicodeRegExp?"u":"",{regExp:W}=Z.code,G=W(Q,Y);return $.scopeValue("pattern",{key:G.toString(),ref:G,code:p._`${W.code==="new RegExp"?PL:(0,UL.useFunc)($,W)}(${Q}, ${Y})`})}QW.usePattern=wL;function IL($){let{gen:Z,data:Q,keyword:Y,it:W}=$,G=Z.name("valid");if(W.allErrors){let J=Z.let("valid",!0);return X(()=>Z.assign(J,!1)),J}return Z.var(G,!0),X(()=>Z.break()),G;function X(J){let B=Z.const("len",p._`${Q}.length`);Z.forRange("i",0,B,(K)=>{$.subschema({keyword:Y,dataProp:K,dataPropType:T4.Type.Num},G),Z.if((0,p.not)(G),J)})}}QW.validateArray=IL;function TL($){let{gen:Z,schema:Q,keyword:Y,it:W}=$;if(!Array.isArray(Q))throw Error("ajv implementation error");if(Q.some((B)=>(0,T4.alwaysValidSchema)(W,B))&&!W.opts.unevaluated)return;let X=Z.let("valid",!1),J=Z.name("_valid");Z.block(()=>Q.forEach((B,K)=>{let V=$.subschema({keyword:Y,schemaProp:K,compositeRule:!0},J);if(Z.assign(X,p._`${X} || ${J}`),!$.mergeValidEvaluated(V,J))Z.if((0,p.not)(X))})),$.result(X,()=>$.reset(),()=>$.error(!0))}QW.validateUnion=TL});var KW=M((XW)=>{Object.defineProperty(XW,"__esModule",{value:!0});XW.validateKeywordUsage=XW.validSchemaType=XW.funcKeywordCode=XW.macroKeywordCode=void 0;var K0=b(),g1=e0(),hL=P0(),uL=VZ();function mL($,Z){let{gen:Q,keyword:Y,schema:W,parentSchema:G,it:X}=$,J=Z.macro.call(X.self,W,G,X),B=GW(Q,Y,J);if(X.opts.validateSchema!==!1)X.self.validateSchema(J,!0);let K=Q.name("valid");$.subschema({schema:J,schemaPath:K0.nil,errSchemaPath:`${X.errSchemaPath}/${Y}`,topSchemaRef:B,compositeRule:!0},K),$.pass(K,()=>$.error(!0))}XW.macroKeywordCode=mL;function lL($,Z){var Q;let{gen:Y,keyword:W,schema:G,parentSchema:X,$data:J,it:B}=$;cL(B,Z);let K=!J&&Z.compile?Z.compile.call(B.self,G,X,B):Z.validate,V=GW(Y,W,K),z=Y.let("valid");$.block$data(z,F),$.ok((Q=Z.valid)!==null&&Q!==void 0?Q:z);function F(){if(Z.errors===!1){if(U(),Z.modifying)WW($);q(()=>$.error())}else{let A=Z.async?D():L();if(Z.modifying)WW($);q(()=>pL($,A))}}function D(){let A=Y.let("ruleErrs",null);return Y.try(()=>U(K0._`await `),(N)=>Y.assign(z,!1).if(K0._`${N} instanceof ${B.ValidationError}`,()=>Y.assign(A,K0._`${N}.errors`),()=>Y.throw(N))),A}function L(){let A=K0._`${V}.errors`;return Y.assign(A,null),U(K0.nil),A}function U(A=Z.async?K0._`await `:K0.nil){let N=B.opts.passContext?g1.default.this:g1.default.self,j=!(("compile"in Z)&&!J||Z.schema===!1);Y.assign(z,K0._`${A}${(0,hL.callValidateCode)($,V,N,j)}`,Z.modifying)}function q(A){var N;Y.if((0,K0.not)((N=Z.valid)!==null&&N!==void 0?N:z),A)}}XW.funcKeywordCode=lL;function WW($){let{gen:Z,data:Q,it:Y}=$;Z.if(Y.parentData,()=>Z.assign(Q,K0._`${Y.parentData}[${Y.parentDataProperty}]`))}function pL($,Z){let{gen:Q}=$;Q.if(K0._`Array.isArray(${Z})`,()=>{Q.assign(g1.default.vErrors,K0._`${g1.default.vErrors} === null ? ${Z} : ${g1.default.vErrors}.concat(${Z})`).assign(g1.default.errors,K0._`${g1.default.vErrors}.length`),(0,uL.extendErrors)($)},()=>$.error())}function cL({schemaEnv:$},Z){if(Z.async&&!$.$async)throw Error("async keyword in sync schema")}function GW($,Z,Q){if(Q===void 0)throw Error(`keyword "${Z}" failed to compile`);return $.scopeValue("keyword",typeof Q=="function"?{ref:Q}:{ref:Q,code:(0,K0.stringify)(Q)})}function dL($,Z,Q=!1){return!Z.length||Z.some((Y)=>Y==="array"?Array.isArray($):Y==="object"?$&&typeof $=="object"&&!Array.isArray($):typeof $==Y||Q&&typeof $>"u")}XW.validSchemaType=dL;function iL({schema:$,opts:Z,self:Q,errSchemaPath:Y},W,G){if(Array.isArray(W.keyword)?!W.keyword.includes(G):W.keyword!==G)throw Error("ajv implementation error");let X=W.dependencies;if(X===null||X===void 0?void 0:X.some((J)=>!Object.prototype.hasOwnProperty.call($,J)))throw Error(`parent schema must have dependencies of ${G}: ${X.join(",")}`);if(W.validateSchema){if(!W.validateSchema($[G])){let B=`keyword "${G}" value is invalid at path "${Y}": `+Q.errorsText(W.validateSchema.errors);if(Z.validateSchema==="log")Q.logger.error(B);else throw Error(B)}}}XW.validateKeywordUsage=iL});var zW=M((HW)=>{Object.defineProperty(HW,"__esModule",{value:!0});HW.extendSubschemaMode=HW.extendSubschemaData=HW.getSubschema=void 0;var u0=b(),BW=k();function tL($,{keyword:Z,schemaProp:Q,schema:Y,schemaPath:W,errSchemaPath:G,topSchemaRef:X}){if(Z!==void 0&&Y!==void 0)throw Error('both "keyword" and "schema" passed, only one allowed');if(Z!==void 0){let J=$.schema[Z];return Q===void 0?{schema:J,schemaPath:u0._`${$.schemaPath}${(0,u0.getProperty)(Z)}`,errSchemaPath:`${$.errSchemaPath}/${Z}`}:{schema:J[Q],schemaPath:u0._`${$.schemaPath}${(0,u0.getProperty)(Z)}${(0,u0.getProperty)(Q)}`,errSchemaPath:`${$.errSchemaPath}/${Z}/${(0,BW.escapeFragment)(Q)}`}}if(Y!==void 0){if(W===void 0||G===void 0||X===void 0)throw Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:Y,schemaPath:W,topSchemaRef:X,errSchemaPath:G}}throw Error('either "keyword" or "schema" must be passed')}HW.getSubschema=tL;function oL($,Z,{dataProp:Q,dataPropType:Y,data:W,dataTypes:G,propertyName:X}){if(W!==void 0&&Q!==void 0)throw Error('both "data" and "dataProp" passed, only one allowed');let{gen:J}=Z;if(Q!==void 0){let{errorPath:K,dataPathArr:V,opts:z}=Z,F=J.let("data",u0._`${Z.data}${(0,u0.getProperty)(Q)}`,!0);B(F),$.errorPath=u0.str`${K}${(0,BW.getErrorPath)(Q,Y,z.jsPropertySyntax)}`,$.parentDataProperty=u0._`${Q}`,$.dataPathArr=[...V,$.parentDataProperty]}if(W!==void 0){let K=W instanceof u0.Name?W:J.let("data",W,!0);if(B(K),X!==void 0)$.propertyName=X}if(G)$.dataTypes=G;function B(K){$.data=K,$.dataLevel=Z.dataLevel+1,$.dataTypes=[],Z.definedProperties=new Set,$.parentData=Z.data,$.dataNames=[...Z.dataNames,K]}}HW.extendSubschemaData=oL;function sL($,{jtdDiscriminator:Z,jtdMetadata:Q,compositeRule:Y,createErrors:W,allErrors:G}){if(Y!==void 0)$.compositeRule=Y;if(W!==void 0)$.createErrors=W;if(G!==void 0)$.allErrors=G;$.jtdDiscriminator=Z,$.jtdMetadata=Q}HW.extendSubschemaMode=sL});var C4=M((M2,FW)=>{FW.exports=function $(Z,Q){if(Z===Q)return!0;if(Z&&Q&&typeof Z=="object"&&typeof Q=="object"){if(Z.constructor!==Q.constructor)return!1;var Y,W,G;if(Array.isArray(Z)){if(Y=Z.length,Y!=Q.length)return!1;for(W=Y;W--!==0;)if(!$(Z[W],Q[W]))return!1;return!0}if(Z.constructor===RegExp)return Z.source===Q.source&&Z.flags===Q.flags;if(Z.valueOf!==Object.prototype.valueOf)return Z.valueOf()===Q.valueOf();if(Z.toString!==Object.prototype.toString)return Z.toString()===Q.toString();if(G=Object.keys(Z),Y=G.length,Y!==Object.keys(Q).length)return!1;for(W=Y;W--!==0;)if(!Object.prototype.hasOwnProperty.call(Q,G[W]))return!1;for(W=Y;W--!==0;){var X=G[W];if(!$(Z[X],Q[X]))return!1}return!0}return Z!==Z&&Q!==Q}});var LW=M((j2,DW)=>{var O1=DW.exports=function($,Z,Q){if(typeof Z=="function")Q=Z,Z={};Q=Z.cb||Q;var Y=typeof Q=="function"?Q:Q.pre||function(){},W=Q.post||function(){};l5(Z,Y,W,$,"",$)};O1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};O1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};O1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};O1.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 l5($,Z,Q,Y,W,G,X,J,B,K){if(Y&&typeof Y=="object"&&!Array.isArray(Y)){Z(Y,W,G,X,J,B,K);for(var V in Y){var z=Y[V];if(Array.isArray(z)){if(V in O1.arrayKeywords)for(var F=0;F<z.length;F++)l5($,Z,Q,z[F],W+"/"+V+"/"+F,G,W,V,Y,F)}else if(V in O1.propsKeywords){if(z&&typeof z=="object")for(var D in z)l5($,Z,Q,z[D],W+"/"+V+"/"+ZU(D),G,W,V,Y,D)}else if(V in O1.keywords||$.allKeys&&!(V in O1.skipKeywords))l5($,Z,Q,z,W+"/"+V,G,W,V,Y)}Q(Y,W,G,X,J,B,K)}}function ZU($){return $.replace(/~/g,"~0").replace(/\//g,"~1")}});var FZ=M((NW)=>{Object.defineProperty(NW,"__esModule",{value:!0});NW.getSchemaRefs=NW.resolveUrl=NW.normalizeId=NW._getFullPath=NW.getFullPath=NW.inlineRef=void 0;var QU=k(),YU=C4(),WU=LW(),GU=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function XU($,Z=!0){if(typeof $=="boolean")return!0;if(Z===!0)return!S4($);if(!Z)return!1;return UW($)<=Z}NW.inlineRef=XU;var JU=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function S4($){for(let Z in $){if(JU.has(Z))return!0;let Q=$[Z];if(Array.isArray(Q)&&Q.some(S4))return!0;if(typeof Q=="object"&&S4(Q))return!0}return!1}function UW($){let Z=0;for(let Q in $){if(Q==="$ref")return 1/0;if(Z++,GU.has(Q))continue;if(typeof $[Q]=="object")(0,QU.eachItem)($[Q],(Y)=>Z+=UW(Y));if(Z===1/0)return 1/0}return Z}function qW($,Z="",Q){if(Q!==!1)Z=L$(Z);let Y=$.parse(Z);return AW($,Y)}NW.getFullPath=qW;function AW($,Z){return $.serialize(Z).split("#")[0]+"#"}NW._getFullPath=AW;var KU=/#\/?$/;function L$($){return $?$.replace(KU,""):""}NW.normalizeId=L$;function BU($,Z,Q){return Q=L$(Q),$.resolve(Z,Q)}NW.resolveUrl=BU;var HU=/^[a-z_][-a-z0-9._]*$/i;function VU($,Z){if(typeof $=="boolean")return{};let{schemaId:Q,uriResolver:Y}=this.opts,W=L$($[Q]||Z),G={"":W},X=qW(Y,W,!1),J={},B=new Set;return WU($,{allKeys:!0},(z,F,D,L)=>{if(L===void 0)return;let U=X+F,q=G[L];if(typeof z[Q]=="string")q=A.call(this,z[Q]);N.call(this,z.$anchor),N.call(this,z.$dynamicAnchor),G[F]=q;function A(j){let P=this.opts.uriResolver.resolve;if(j=L$(q?P(q,j):j),B.has(j))throw V(j);B.add(j);let O=this.refs[j];if(typeof O=="string")O=this.refs[O];if(typeof O=="object")K(z,O.schema,j);else if(j!==L$(U))if(j[0]==="#")K(z,J[j],j),J[j]=z;else this.refs[j]=U;return j}function N(j){if(typeof j=="string"){if(!HU.test(j))throw Error(`invalid anchor "${j}"`);A.call(this,`#${j}`)}}}),J;function K(z,F,D){if(F!==void 0&&!YU(z,F))throw V(D)}function V(z){return Error(`reference "${z}" resolves to more than one schema`)}}NW.getSchemaRefs=VU});var UZ=M((kW)=>{Object.defineProperty(kW,"__esModule",{value:!0});kW.getData=kW.KeywordCxt=kW.validateFunctionCode=void 0;var IW=gY(),MW=zZ(),b4=j4(),p5=zZ(),qU=eY(),LZ=KW(),y4=zW(),I=b(),R=e0(),AU=FZ(),$1=k(),DZ=VZ();function NU($){if(RW($)){if(CW($),EW($)){jU($);return}}TW($,()=>(0,IW.topBoolOrEmptySchema)($))}kW.validateFunctionCode=NU;function TW({gen:$,validateName:Z,schema:Q,schemaEnv:Y,opts:W},G){if(W.code.es5)$.func(Z,I._`${R.default.data}, ${R.default.valCxt}`,Y.$async,()=>{$.code(I._`"use strict"; ${jW(Q,W)}`),MU($,W),$.code(G)});else $.func(Z,I._`${R.default.data}, ${OU(W)}`,Y.$async,()=>$.code(jW(Q,W)).code(G))}function OU($){return I._`{${R.default.instancePath}="", ${R.default.parentData}, ${R.default.parentDataProperty}, ${R.default.rootData}=${R.default.data}${$.dynamicRef?I._`, ${R.default.dynamicAnchors}={}`:I.nil}}={}`}function MU($,Z){$.if(R.default.valCxt,()=>{if($.var(R.default.instancePath,I._`${R.default.valCxt}.${R.default.instancePath}`),$.var(R.default.parentData,I._`${R.default.valCxt}.${R.default.parentData}`),$.var(R.default.parentDataProperty,I._`${R.default.valCxt}.${R.default.parentDataProperty}`),$.var(R.default.rootData,I._`${R.default.valCxt}.${R.default.rootData}`),Z.dynamicRef)$.var(R.default.dynamicAnchors,I._`${R.default.valCxt}.${R.default.dynamicAnchors}`)},()=>{if($.var(R.default.instancePath,I._`""`),$.var(R.default.parentData,I._`undefined`),$.var(R.default.parentDataProperty,I._`undefined`),$.var(R.default.rootData,R.default.data),Z.dynamicRef)$.var(R.default.dynamicAnchors,I._`{}`)})}function jU($){let{schema:Z,opts:Q,gen:Y}=$;TW($,()=>{if(Q.$comment&&Z.$comment)yW($);if(EU($),Y.let(R.default.vErrors,null),Y.let(R.default.errors,0),Q.unevaluated)PU($);SW($),SU($)});return}function PU($){let{gen:Z,validateName:Q}=$;$.evaluated=Z.const("evaluated",I._`${Q}.evaluated`),Z.if(I._`${$.evaluated}.dynamicProps`,()=>Z.assign(I._`${$.evaluated}.props`,I._`undefined`)),Z.if(I._`${$.evaluated}.dynamicItems`,()=>Z.assign(I._`${$.evaluated}.items`,I._`undefined`))}function jW($,Z){let Q=typeof $=="object"&&$[Z.schemaId];return Q&&(Z.code.source||Z.code.process)?I._`/*# sourceURL=${Q} */`:I.nil}function wU($,Z){if(RW($)){if(CW($),EW($)){IU($,Z);return}}(0,IW.boolOrEmptySchema)($,Z)}function EW({schema:$,self:Z}){if(typeof $=="boolean")return!$;for(let Q in $)if(Z.RULES.all[Q])return!0;return!1}function RW($){return typeof $.schema!="boolean"}function IU($,Z){let{schema:Q,gen:Y,opts:W}=$;if(W.$comment&&Q.$comment)yW($);RU($),CU($);let G=Y.const("_errs",R.default.errors);SW($,G),Y.var(Z,I._`${G} === ${R.default.errors}`)}function CW($){(0,$1.checkUnknownRules)($),TU($)}function SW($,Z){if($.opts.jtd)return PW($,[],!1,Z);let Q=(0,MW.getSchemaTypes)($.schema),Y=(0,MW.coerceAndCheckDataType)($,Q);PW($,Q,!Y,Z)}function TU($){let{schema:Z,errSchemaPath:Q,opts:Y,self:W}=$;if(Z.$ref&&Y.ignoreKeywordsWithRef&&(0,$1.schemaHasRulesButRef)(Z,W.RULES))W.logger.warn(`$ref: keywords ignored in schema at path "${Q}"`)}function EU($){let{schema:Z,opts:Q}=$;if(Z.default!==void 0&&Q.useDefaults&&Q.strictSchema)(0,$1.checkStrictMode)($,"default is ignored in the schema root")}function RU($){let Z=$.schema[$.opts.schemaId];if(Z)$.baseId=(0,AU.resolveUrl)($.opts.uriResolver,$.baseId,Z)}function CU($){if($.schema.$async&&!$.schemaEnv.$async)throw Error("async schema in sync schema")}function yW({gen:$,schemaEnv:Z,schema:Q,errSchemaPath:Y,opts:W}){let G=Q.$comment;if(W.$comment===!0)$.code(I._`${R.default.self}.logger.log(${G})`);else if(typeof W.$comment=="function"){let X=I.str`${Y}/$comment`,J=$.scopeValue("root",{ref:Z.root});$.code(I._`${R.default.self}.opts.$comment(${G}, ${X}, ${J}.schema)`)}}function SU($){let{gen:Z,schemaEnv:Q,validateName:Y,ValidationError:W,opts:G}=$;if(Q.$async)Z.if(I._`${R.default.errors} === 0`,()=>Z.return(R.default.data),()=>Z.throw(I._`new ${W}(${R.default.vErrors})`));else{if(Z.assign(I._`${Y}.errors`,R.default.vErrors),G.unevaluated)yU($);Z.return(I._`${R.default.errors} === 0`)}}function yU({gen:$,evaluated:Z,props:Q,items:Y}){if(Q instanceof I.Name)$.assign(I._`${Z}.props`,Q);if(Y instanceof I.Name)$.assign(I._`${Z}.items`,Y)}function PW($,Z,Q,Y){let{gen:W,schema:G,data:X,allErrors:J,opts:B,self:K}=$,{RULES:V}=K;if(G.$ref&&(B.ignoreKeywordsWithRef||!(0,$1.schemaHasRulesButRef)(G,V))){W.block(()=>_W($,"$ref",V.all.$ref.definition));return}if(!B.jtd)bU($,Z);W.block(()=>{for(let F of V.rules)z(F);z(V.post)});function z(F){if(!(0,b4.shouldUseGroup)(G,F))return;if(F.type){if(W.if((0,p5.checkDataType)(F.type,X,B.strictNumbers)),wW($,F),Z.length===1&&Z[0]===F.type&&Q)W.else(),(0,p5.reportTypeError)($);W.endIf()}else wW($,F);if(!J)W.if(I._`${R.default.errors} === ${Y||0}`)}}function wW($,Z){let{gen:Q,schema:Y,opts:{useDefaults:W}}=$;if(W)(0,qU.assignDefaults)($,Z.type);Q.block(()=>{for(let G of Z.rules)if((0,b4.shouldUseRule)(Y,G))_W($,G.keyword,G.definition,Z.type)})}function bU($,Z){if($.schemaEnv.meta||!$.opts.strictTypes)return;if(_U($,Z),!$.opts.allowUnionTypes)xU($,Z);kU($,$.dataTypes)}function _U($,Z){if(!Z.length)return;if(!$.dataTypes.length){$.dataTypes=Z;return}Z.forEach((Q)=>{if(!bW($.dataTypes,Q))_4($,`type "${Q}" not allowed by context "${$.dataTypes.join(",")}"`)}),vU($,Z)}function xU($,Z){if(Z.length>1&&!(Z.length===2&&Z.includes("null")))_4($,"use allowUnionTypes to allow union type keyword")}function kU($,Z){let Q=$.self.RULES.all;for(let Y in Q){let W=Q[Y];if(typeof W=="object"&&(0,b4.shouldUseRule)($.schema,W)){let{type:G}=W.definition;if(G.length&&!G.some((X)=>fU(Z,X)))_4($,`missing type "${G.join(",")}" for keyword "${Y}"`)}}}function fU($,Z){return $.includes(Z)||Z==="number"&&$.includes("integer")}function bW($,Z){return $.includes(Z)||Z==="integer"&&$.includes("number")}function vU($,Z){let Q=[];for(let Y of $.dataTypes)if(bW(Z,Y))Q.push(Y);else if(Z.includes("integer")&&Y==="number")Q.push("integer");$.dataTypes=Q}function _4($,Z){let Q=$.schemaEnv.baseId+$.errSchemaPath;Z+=` at "${Q}" (strictTypes)`,(0,$1.checkStrictMode)($,Z,$.opts.strictTypes)}class x4{constructor($,Z,Q){if((0,LZ.validateKeywordUsage)($,Z,Q),this.gen=$.gen,this.allErrors=$.allErrors,this.keyword=Q,this.data=$.data,this.schema=$.schema[Q],this.$data=Z.$data&&$.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,$1.schemaRefOrVal)($,this.schema,Q,this.$data),this.schemaType=Z.schemaType,this.parentSchema=$.schema,this.params={},this.it=$,this.def=Z,this.$data)this.schemaCode=$.gen.const("vSchema",xW(this.$data,$));else if(this.schemaCode=this.schemaValue,!(0,LZ.validSchemaType)(this.schema,Z.schemaType,Z.allowUndefined))throw Error(`${Q} value must be ${JSON.stringify(Z.schemaType)}`);if("code"in Z?Z.trackErrors:Z.errors!==!1)this.errsCount=$.gen.const("_errs",R.default.errors)}result($,Z,Q){this.failResult((0,I.not)($),Z,Q)}failResult($,Z,Q){if(this.gen.if($),Q)Q();else this.error();if(Z){if(this.gen.else(),Z(),this.allErrors)this.gen.endIf()}else if(this.allErrors)this.gen.endIf();else this.gen.else()}pass($,Z){this.failResult((0,I.not)($),void 0,Z)}fail($){if($===void 0){if(this.error(),!this.allErrors)this.gen.if(!1);return}if(this.gen.if($),this.error(),this.allErrors)this.gen.endIf();else this.gen.else()}fail$data($){if(!this.$data)return this.fail($);let{schemaCode:Z}=this;this.fail(I._`${Z} !== undefined && (${(0,I.or)(this.invalid$data(),$)})`)}error($,Z,Q){if(Z){this.setParams(Z),this._error($,Q),this.setParams({});return}this._error($,Q)}_error($,Z){($?DZ.reportExtraError:DZ.reportError)(this,this.def.error,Z)}$dataError(){(0,DZ.reportError)(this,this.def.$dataError||DZ.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,DZ.resetErrorsCount)(this.gen,this.errsCount)}ok($){if(!this.allErrors)this.gen.if($)}setParams($,Z){if(Z)Object.assign(this.params,$);else this.params=$}block$data($,Z,Q=I.nil){this.gen.block(()=>{this.check$data($,Q),Z()})}check$data($=I.nil,Z=I.nil){if(!this.$data)return;let{gen:Q,schemaCode:Y,schemaType:W,def:G}=this;if(Q.if((0,I.or)(I._`${Y} === undefined`,Z)),$!==I.nil)Q.assign($,!0);if(W.length||G.validateSchema){if(Q.elseIf(this.invalid$data()),this.$dataError(),$!==I.nil)Q.assign($,!1)}Q.else()}invalid$data(){let{gen:$,schemaCode:Z,schemaType:Q,def:Y,it:W}=this;return(0,I.or)(G(),X());function G(){if(Q.length){if(!(Z instanceof I.Name))throw Error("ajv implementation error");let J=Array.isArray(Q)?Q:[Q];return I._`${(0,p5.checkDataTypes)(J,Z,W.opts.strictNumbers,p5.DataType.Wrong)}`}return I.nil}function X(){if(Y.validateSchema){let J=$.scopeValue("validate$data",{ref:Y.validateSchema});return I._`!${J}(${Z})`}return I.nil}}subschema($,Z){let Q=(0,y4.getSubschema)(this.it,$);(0,y4.extendSubschemaData)(Q,this.it,$),(0,y4.extendSubschemaMode)(Q,$);let Y={...this.it,...Q,items:void 0,props:void 0};return wU(Y,Z),Y}mergeEvaluated($,Z){let{it:Q,gen:Y}=this;if(!Q.opts.unevaluated)return;if(Q.props!==!0&&$.props!==void 0)Q.props=$1.mergeEvaluated.props(Y,$.props,Q.props,Z);if(Q.items!==!0&&$.items!==void 0)Q.items=$1.mergeEvaluated.items(Y,$.items,Q.items,Z)}mergeValidEvaluated($,Z){let{it:Q,gen:Y}=this;if(Q.opts.unevaluated&&(Q.props!==!0||Q.items!==!0))return Y.if(Z,()=>this.mergeEvaluated($,I.Name)),!0}}kW.KeywordCxt=x4;function _W($,Z,Q,Y){let W=new x4($,Q,Z);if("code"in Q)Q.code(W,Y);else if(W.$data&&Q.validate)(0,LZ.funcKeywordCode)(W,Q);else if("macro"in Q)(0,LZ.macroKeywordCode)(W,Q);else if(Q.compile||Q.validate)(0,LZ.funcKeywordCode)(W,Q)}var gU=/^\/(?:[^~]|~0|~1)*$/,hU=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function xW($,{dataLevel:Z,dataNames:Q,dataPathArr:Y}){let W,G;if($==="")return R.default.rootData;if($[0]==="/"){if(!gU.test($))throw Error(`Invalid JSON-pointer: ${$}`);W=$,G=R.default.rootData}else{let K=hU.exec($);if(!K)throw Error(`Invalid JSON-pointer: ${$}`);let V=+K[1];if(W=K[2],W==="#"){if(V>=Z)throw Error(B("property/index",V));return Y[Z-V]}if(V>Z)throw Error(B("data",V));if(G=Q[Z-V],!W)return G}let X=G,J=W.split("/");for(let K of J)if(K)G=I._`${G}${(0,I.getProperty)((0,$1.unescapeJsonPointer)(K))}`,X=I._`${X} && ${G}`;return X;function B(K,V){return`Cannot access ${K} ${V} levels up, current level is ${Z}`}}kW.getData=xW});var c5=M((gW)=>{Object.defineProperty(gW,"__esModule",{value:!0});class vW extends Error{constructor($){super("validation failed");this.errors=$,this.ajv=this.validation=!0}}gW.default=vW});var qZ=M((uW)=>{Object.defineProperty(uW,"__esModule",{value:!0});var k4=FZ();class hW extends Error{constructor($,Z,Q,Y){super(Y||`can't resolve reference ${Q} from id ${Z}`);this.missingRef=(0,k4.resolveUrl)($,Z,Q),this.missingSchema=(0,k4.normalizeId)((0,k4.getFullPath)($,this.missingRef))}}uW.default=hW});var i5=M((pW)=>{Object.defineProperty(pW,"__esModule",{value:!0});pW.resolveSchema=pW.getCompilingSchema=pW.resolveRef=pW.compileSchema=pW.SchemaEnv=void 0;var S0=b(),cU=c5(),h1=e0(),y0=FZ(),mW=k(),dU=UZ();class AZ{constructor($){var Z;this.refs={},this.dynamicAnchors={};let Q;if(typeof $.schema=="object")Q=$.schema;this.schema=$.schema,this.schemaId=$.schemaId,this.root=$.root||this,this.baseId=(Z=$.baseId)!==null&&Z!==void 0?Z:(0,y0.normalizeId)(Q===null||Q===void 0?void 0:Q[$.schemaId||"$id"]),this.schemaPath=$.schemaPath,this.localRefs=$.localRefs,this.meta=$.meta,this.$async=Q===null||Q===void 0?void 0:Q.$async,this.refs={}}}pW.SchemaEnv=AZ;function v4($){let Z=lW.call(this,$);if(Z)return Z;let Q=(0,y0.getFullPath)(this.opts.uriResolver,$.root.baseId),{es5:Y,lines:W}=this.opts.code,{ownProperties:G}=this.opts,X=new S0.CodeGen(this.scope,{es5:Y,lines:W,ownProperties:G}),J;if($.$async)J=X.scopeValue("Error",{ref:cU.default,code:S0._`require("ajv/dist/runtime/validation_error").default`});let B=X.scopeName("validate");$.validateName=B;let K={gen:X,allErrors:this.opts.allErrors,data:h1.default.data,parentData:h1.default.parentData,parentDataProperty:h1.default.parentDataProperty,dataNames:[h1.default.data],dataPathArr:[S0.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:X.scopeValue("schema",this.opts.code.source===!0?{ref:$.schema,code:(0,S0.stringify)($.schema)}:{ref:$.schema}),validateName:B,ValidationError:J,schema:$.schema,schemaEnv:$,rootId:Q,baseId:$.baseId||Q,schemaPath:S0.nil,errSchemaPath:$.schemaPath||(this.opts.jtd?"":"#"),errorPath:S0._`""`,opts:this.opts,self:this},V;try{this._compilations.add($),(0,dU.validateFunctionCode)(K),X.optimize(this.opts.code.optimize);let z=X.toString();if(V=`${X.scopeRefs(h1.default.scope)}return ${z}`,this.opts.code.process)V=this.opts.code.process(V,$);let D=Function(`${h1.default.self}`,`${h1.default.scope}`,V)(this,this.scope.get());if(this.scope.value(B,{ref:D}),D.errors=null,D.schema=$.schema,D.schemaEnv=$,$.$async)D.$async=!0;if(this.opts.code.source===!0)D.source={validateName:B,validateCode:z,scopeValues:X._values};if(this.opts.unevaluated){let{props:L,items:U}=K;if(D.evaluated={props:L instanceof S0.Name?void 0:L,items:U instanceof S0.Name?void 0:U,dynamicProps:L instanceof S0.Name,dynamicItems:U instanceof S0.Name},D.source)D.source.evaluated=(0,S0.stringify)(D.evaluated)}return $.validate=D,$}catch(z){if(delete $.validate,delete $.validateName,V)this.logger.error("Error compiling schema, function code:",V);throw z}finally{this._compilations.delete($)}}pW.compileSchema=v4;function iU($,Z,Q){var Y;Q=(0,y0.resolveUrl)(this.opts.uriResolver,Z,Q);let W=$.refs[Q];if(W)return W;let G=rU.call(this,$,Q);if(G===void 0){let X=(Y=$.localRefs)===null||Y===void 0?void 0:Y[Q],{schemaId:J}=this.opts;if(X)G=new AZ({schema:X,schemaId:J,root:$,baseId:Z})}if(G===void 0)return;return $.refs[Q]=nU.call(this,G)}pW.resolveRef=iU;function nU($){if((0,y0.inlineRef)($.schema,this.opts.inlineRefs))return $.schema;return $.validate?$:v4.call(this,$)}function lW($){for(let Z of this._compilations)if(aU(Z,$))return Z}pW.getCompilingSchema=lW;function aU($,Z){return $.schema===Z.schema&&$.root===Z.root&&$.baseId===Z.baseId}function rU($,Z){let Q;while(typeof(Q=this.refs[Z])=="string")Z=Q;return Q||this.schemas[Z]||d5.call(this,$,Z)}function d5($,Z){let Q=this.opts.uriResolver.parse(Z),Y=(0,y0._getFullPath)(this.opts.uriResolver,Q),W=(0,y0.getFullPath)(this.opts.uriResolver,$.baseId,void 0);if(Object.keys($.schema).length>0&&Y===W)return f4.call(this,Q,$);let G=(0,y0.normalizeId)(Y),X=this.refs[G]||this.schemas[G];if(typeof X=="string"){let J=d5.call(this,$,X);if(typeof(J===null||J===void 0?void 0:J.schema)!=="object")return;return f4.call(this,Q,J)}if(typeof(X===null||X===void 0?void 0:X.schema)!=="object")return;if(!X.validate)v4.call(this,X);if(G===(0,y0.normalizeId)(Z)){let{schema:J}=X,{schemaId:B}=this.opts,K=J[B];if(K)W=(0,y0.resolveUrl)(this.opts.uriResolver,W,K);return new AZ({schema:J,schemaId:B,root:$,baseId:W})}return f4.call(this,Q,X)}pW.resolveSchema=d5;var tU=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function f4($,{baseId:Z,schema:Q,root:Y}){var W;if(((W=$.fragment)===null||W===void 0?void 0:W[0])!=="/")return;for(let J of $.fragment.slice(1).split("/")){if(typeof Q==="boolean")return;let B=Q[(0,mW.unescapeFragment)(J)];if(B===void 0)return;Q=B;let K=typeof Q==="object"&&Q[this.opts.schemaId];if(!tU.has(J)&&K)Z=(0,y0.resolveUrl)(this.opts.uriResolver,Z,K)}let G;if(typeof Q!="boolean"&&Q.$ref&&!(0,mW.schemaHasRulesButRef)(Q,this.RULES)){let J=(0,y0.resolveUrl)(this.opts.uriResolver,Z,Q.$ref);G=d5.call(this,Y,J)}let{schemaId:X}=this.opts;if(G=G||new AZ({schema:Q,schemaId:X,root:Y,baseId:Z}),G.schema!==G.root.schema)return G;return}});var dW=M((R2,Zq)=>{Zq.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 u4=M((C2,oW)=>{var Qq=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),nW=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),g4=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),aW=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),Yq=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function h4($){let Z="",Q=0,Y=0;for(Y=0;Y<$.length;Y++){if(Q=$[Y].charCodeAt(0),Q===48)continue;if(!(Q>=48&&Q<=57||Q>=65&&Q<=70||Q>=97&&Q<=102))return"";Z+=$[Y];break}for(Y+=1;Y<$.length;Y++){if(Q=$[Y].charCodeAt(0),!(Q>=48&&Q<=57||Q>=65&&Q<=70||Q>=97&&Q<=102))return"";Z+=$[Y]}return Z}var Wq=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function iW($){return $.length=0,!0}function Gq($,Z,Q){if($.length){let Y=h4($);if(Y!=="")Z.push(Y);else return Q.error=!0,!1;$.length=0}return!0}function Xq($){let Z=0,Q={error:!1,address:"",zone:""},Y=[],W=[],G=!1,X=!1,J=Gq;for(let B=0;B<$.length;B++){let K=$[B];if(K==="["||K==="]")continue;if(K===":"){if(G===!0)X=!0;if(!J(W,Y,Q))break;if(++Z>7){Q.error=!0;break}if(B>0&&$[B-1]===":")G=!0;Y.push(":");continue}else if(K==="%"){if(!J(W,Y,Q))break;J=iW}else{W.push(K);continue}}if(W.length)if(J===iW)Q.zone=W.join("");else if(X)Y.push(W.join(""));else Y.push(h4(W));return Q.address=Y.join(""),Q}function rW($){if(Jq($,":")<2)return{host:$,isIPV6:!1};let Z=Xq($);if(!Z.error){let{address:Q,address:Y}=Z;if(Z.zone)Q+="%"+Z.zone,Y+="%25"+Z.zone;return{host:Q,isIPV6:!0,escapedHost:Y}}else return{host:$,isIPV6:!1}}function Jq($,Z){let Q=0;for(let Y=0;Y<$.length;Y++)if($[Y]===Z)Q++;return Q}function Kq($){let Z=$,Q=[],Y=-1,W=0;while(W=Z.length){if(W===1)if(Z===".")break;else if(Z==="/"){Q.push("/");break}else{Q.push(Z);break}else if(W===2){if(Z[0]==="."){if(Z[1]===".")break;else if(Z[1]==="/"){Z=Z.slice(2);continue}}else if(Z[0]==="/"){if(Z[1]==="."||Z[1]==="/"){Q.push("/");break}}}else if(W===3){if(Z==="/.."){if(Q.length!==0)Q.pop();Q.push("/");break}}if(Z[0]==="."){if(Z[1]==="."){if(Z[2]==="/"){Z=Z.slice(3);continue}}else if(Z[1]==="/"){Z=Z.slice(2);continue}}else if(Z[0]==="/"){if(Z[1]==="."){if(Z[2]==="/"){Z=Z.slice(2);continue}else if(Z[2]==="."){if(Z[3]==="/"){if(Z=Z.slice(3),Q.length!==0)Q.pop();continue}}}}if((Y=Z.indexOf("/",1))===-1){Q.push(Z);break}else Q.push(Z.slice(0,Y)),Z=Z.slice(Y)}return Q.join("")}var Bq={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},Hq=/[@/?#:]/g,Vq=/[@/?#]/g;function tW($,Z){let Q=Z?Vq:Hq;return Q.lastIndex=0,$.replace(Q,(Y)=>Bq[Y])}function zq($,Z=!1){if($.indexOf("%")===-1)return $;let Q="";for(let Y=0;Y<$.length;Y++){if($[Y]==="%"&&Y+2<$.length){let W=$.slice(Y+1,Y+3);if(g4(W)){let G=W.toUpperCase(),X=String.fromCharCode(parseInt(G,16));if(Z&&aW(X))Q+=X;else Q+="%"+G;Y+=2;continue}}Q+=$[Y]}return Q}function Fq($){let Z="";for(let Q=0;Q<$.length;Q++){if($[Q]==="%"&&Q+2<$.length){let Y=$.slice(Q+1,Q+3);if(g4(Y)){let W=Y.toUpperCase(),G=String.fromCharCode(parseInt(W,16));if(G!=="."&&aW(G))Z+=G;else Z+="%"+W;Q+=2;continue}}if(Yq($[Q]))Z+=$[Q];else Z+=escape($[Q])}return Z}function Dq($){let Z="";for(let Q=0;Q<$.length;Q++){if($[Q]==="%"&&Q+2<$.length){let Y=$.slice(Q+1,Q+3);if(g4(Y)){Z+="%"+Y.toUpperCase(),Q+=2;continue}}Z+=escape($[Q])}return Z}function Lq($){let Z=[];if($.userinfo!==void 0)Z.push($.userinfo),Z.push("@");if($.host!==void 0){let Q=unescape($.host);if(!nW(Q)){let Y=rW(Q);if(Y.isIPV6===!0)Q=`[${Y.escapedHost}]`;else Q=tW(Q,!1)}Z.push(Q)}if(typeof $.port==="number"||typeof $.port==="string")Z.push(":"),Z.push(String($.port));return Z.length?Z.join(""):void 0}oW.exports={nonSimpleDomain:Wq,recomposeAuthority:Lq,reescapeHostDelimiters:tW,normalizePercentEncoding:zq,normalizePathEncoding:Fq,escapePreservingEscapes:Dq,removeDotSegments:Kq,isIPv4:nW,isUUID:Qq,normalizeIPv6:rW,stringArrayToHexStripped:h4}});var QG=M((S2,ZG)=>{var{isUUID:Uq}=u4(),qq=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Aq=["http","https","ws","wss","urn","urn:uuid"];function Nq($){return Aq.indexOf($)!==-1}function m4($){if($.secure===!0)return!0;else if($.secure===!1)return!1;else if($.scheme)return $.scheme.length===3&&($.scheme[0]==="w"||$.scheme[0]==="W")&&($.scheme[1]==="s"||$.scheme[1]==="S")&&($.scheme[2]==="s"||$.scheme[2]==="S");else return!1}function sW($){if(!$.host)$.error=$.error||"HTTP URIs must have a host.";return $}function eW($){let Z=String($.scheme).toLowerCase()==="https";if($.port===(Z?443:80)||$.port==="")$.port=void 0;if(!$.path)$.path="/";return $}function Oq($){return $.secure=m4($),$.resourceName=($.path||"/")+($.query?"?"+$.query:""),$.path=void 0,$.query=void 0,$}function Mq($){if($.port===(m4($)?443:80)||$.port==="")$.port=void 0;if(typeof $.secure==="boolean")$.scheme=$.secure?"wss":"ws",$.secure=void 0;if($.resourceName){let[Z,Q]=$.resourceName.split("?");$.path=Z&&Z!=="/"?Z:void 0,$.query=Q,$.resourceName=void 0}return $.fragment=void 0,$}function jq($,Z){if(!$.path)return $.error="URN can not be parsed",$;let Q=$.path.match(qq);if(Q){let Y=Z.scheme||$.scheme||"urn";$.nid=Q[1].toLowerCase(),$.nss=Q[2];let W=`${Y}:${Z.nid||$.nid}`,G=l4(W);if($.path=void 0,G)$=G.parse($,Z)}else $.error=$.error||"URN can not be parsed.";return $}function Pq($,Z){if($.nid===void 0)throw Error("URN without nid cannot be serialized");let Q=Z.scheme||$.scheme||"urn",Y=$.nid.toLowerCase(),W=`${Q}:${Z.nid||Y}`,G=l4(W);if(G)$=G.serialize($,Z);let X=$,J=$.nss;return X.path=`${Y||Z.nid}:${J}`,Z.skipEscape=!0,X}function wq($,Z){let Q=$;if(Q.uuid=Q.nss,Q.nss=void 0,!Z.tolerant&&(!Q.uuid||!Uq(Q.uuid)))Q.error=Q.error||"UUID is not valid.";return Q}function Iq($){let Z=$;return Z.nss=($.uuid||"").toLowerCase(),Z}var $G={scheme:"http",domainHost:!0,parse:sW,serialize:eW},Tq={scheme:"https",domainHost:$G.domainHost,parse:sW,serialize:eW},n5={scheme:"ws",domainHost:!0,parse:Oq,serialize:Mq},Eq={scheme:"wss",domainHost:n5.domainHost,parse:n5.parse,serialize:n5.serialize},Rq={scheme:"urn",parse:jq,serialize:Pq,skipNormalize:!0},Cq={scheme:"urn:uuid",parse:wq,serialize:Iq,skipNormalize:!0},a5={http:$G,https:Tq,ws:n5,wss:Eq,urn:Rq,"urn:uuid":Cq};Object.setPrototypeOf(a5,null);function l4($){return $&&(a5[$]||a5[$.toLowerCase()])||void 0}ZG.exports={wsIsSecure:m4,SCHEMES:a5,isValidSchemeName:Nq,getSchemeHandler:l4}});var KG=M((y2,r5)=>{var{normalizeIPv6:Sq,removeDotSegments:NZ,recomposeAuthority:yq,normalizePercentEncoding:bq,normalizePathEncoding:_q,escapePreservingEscapes:xq,reescapeHostDelimiters:kq,isIPv4:fq,nonSimpleDomain:vq}=u4(),{SCHEMES:gq,getSchemeHandler:WG}=QG();function hq($,Z){if(typeof $==="string")$=dq($,Z);else if(typeof $==="object")$=U$(u1($,Z),Z);return $}function uq($,Z,Q){let Y=Q?Object.assign({scheme:"null"},Q):{scheme:"null"},W=GG(U$($,Y),U$(Z,Y),Y,!0);return Y.skipEscape=!0,u1(W,Y)}function GG($,Z,Q,Y){let W={};if(!Y)$=U$(u1($,Q),Q),Z=U$(u1(Z,Q),Q);if(Q=Q||{},!Q.tolerant&&Z.scheme)W.scheme=Z.scheme,W.userinfo=Z.userinfo,W.host=Z.host,W.port=Z.port,W.path=NZ(Z.path||""),W.query=Z.query;else{if(Z.userinfo!==void 0||Z.host!==void 0||Z.port!==void 0)W.userinfo=Z.userinfo,W.host=Z.host,W.port=Z.port,W.path=NZ(Z.path||""),W.query=Z.query;else{if(!Z.path)if(W.path=$.path,Z.query!==void 0)W.query=Z.query;else W.query=$.query;else{if(Z.path[0]==="/")W.path=NZ(Z.path);else{if(($.userinfo!==void 0||$.host!==void 0||$.port!==void 0)&&!$.path)W.path="/"+Z.path;else if(!$.path)W.path=Z.path;else W.path=$.path.slice(0,$.path.lastIndexOf("/")+1)+Z.path;W.path=NZ(W.path)}W.query=Z.query}W.userinfo=$.userinfo,W.host=$.host,W.port=$.port}W.scheme=$.scheme}return W.fragment=Z.fragment,W}function mq($,Z,Q){let Y=YG($,Q),W=YG(Z,Q);return Y!==void 0&&W!==void 0&&Y.toLowerCase()===W.toLowerCase()}function u1($,Z){let Q={host:$.host,scheme:$.scheme,userinfo:$.userinfo,port:$.port,path:$.path,query:$.query,nid:$.nid,nss:$.nss,uuid:$.uuid,fragment:$.fragment,reference:$.reference,resourceName:$.resourceName,secure:$.secure,error:""},Y=Object.assign({},Z),W=[],G=WG(Y.scheme||Q.scheme);if(G&&G.serialize)G.serialize(Q,Y);if(Q.path!==void 0)if(!Y.skipEscape){if(Q.path=xq(Q.path),Q.scheme!==void 0)Q.path=Q.path.split("%3A").join(":")}else Q.path=bq(Q.path);if(Y.reference!=="suffix"&&Q.scheme)W.push(Q.scheme,":");let X=yq(Q);if(X!==void 0){if(Y.reference!=="suffix")W.push("//");if(W.push(X),Q.path&&Q.path[0]!=="/")W.push("/")}if(Q.path!==void 0){let J=Q.path;if(!Y.absolutePath&&(!G||!G.absolutePath))J=NZ(J);if(X===void 0&&J[0]==="/"&&J[1]==="/")J="/%2F"+J.slice(2);W.push(J)}if(Q.query!==void 0)W.push("?",Q.query);if(Q.fragment!==void 0)W.push("#",Q.fragment);return W.join("")}var lq=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,pq=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/;function cq($,Z){if(Z[2]!==void 0&&$.path&&$.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof $.port==="number"&&($.port<0||$.port>65535))return"URI port is malformed.";return}function XG($,Z){let Q=Object.assign({},Z),Y={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},W=!1,G=!1;if(Q.reference==="suffix")if(Q.scheme)$=Q.scheme+":"+$;else $="//"+$;let X=$.match(pq);if(X!==null&&X[1].indexOf("\\")!==-1)Y.error="URI authority must not contain a literal backslash.",W=!0;let J=$.match(lq);if(J){if(Y.scheme=J[1],Y.userinfo=J[3],Y.host=J[4],Y.port=parseInt(J[5],10),Y.path=J[6]||"",Y.query=J[7],Y.fragment=J[8],isNaN(Y.port))Y.port=J[5];let B=cq(Y,J);if(B!==void 0)Y.error=Y.error||B,W=!0;if(Y.host)if(fq(Y.host)===!1){let z=Sq(Y.host);Y.host=z.host.toLowerCase(),G=z.isIPV6}else G=!0;if(Y.scheme===void 0&&Y.userinfo===void 0&&Y.host===void 0&&Y.port===void 0&&Y.query===void 0&&!Y.path)Y.reference="same-document";else if(Y.scheme===void 0)Y.reference="relative";else if(Y.fragment===void 0)Y.reference="absolute";else Y.reference="uri";if(Q.reference&&Q.reference!=="suffix"&&Q.reference!==Y.reference)Y.error=Y.error||"URI is not a "+Q.reference+" reference.";let K=WG(Q.scheme||Y.scheme);if(!Q.unicodeSupport&&(!K||!K.unicodeSupport)){if(Y.host&&(Q.domainHost||K&&K.domainHost)&&G===!1&&vq(Y.host))try{Y.host=new URL("http://"+Y.host).hostname}catch(V){Y.error=Y.error||"Host's domain name can not be converted to ASCII: "+V}}if(!K||K&&!K.skipNormalize){if($.indexOf("%")!==-1){if(Y.scheme!==void 0)Y.scheme=unescape(Y.scheme);if(Y.host!==void 0)Y.host=kq(unescape(Y.host),G)}if(Y.path)Y.path=_q(Y.path);if(Y.fragment)try{Y.fragment=encodeURI(decodeURIComponent(Y.fragment))}catch{Y.error=Y.error||"URI malformed"}}if(K&&K.parse)K.parse(Y,Q)}else Y.error=Y.error||"URI can not be parsed.";return{parsed:Y,malformedAuthorityOrPort:W}}function U$($,Z){return XG($,Z).parsed}function dq($,Z){return JG($,Z).normalized}function JG($,Z){let{parsed:Q,malformedAuthorityOrPort:Y}=XG($,Z);return{normalized:Y?$:u1(Q,Z),malformedAuthorityOrPort:Y}}function YG($,Z){if(typeof $==="string"){let{normalized:Q,malformedAuthorityOrPort:Y}=JG($,Z);return Y?void 0:Q}if(typeof $==="object")return u1($,Z)}var p4={SCHEMES:gq,normalize:hq,resolve:uq,resolveComponent:GG,equal:mq,serialize:u1,parse:U$};r5.exports=p4;r5.exports.default=p4;r5.exports.fastUri=p4});var VG=M((HG)=>{Object.defineProperty(HG,"__esModule",{value:!0});var BG=KG();BG.code='require("ajv/dist/runtime/uri").default';HG.default=BG});var NG=M((Z1)=>{Object.defineProperty(Z1,"__esModule",{value:!0});Z1.CodeGen=Z1.Name=Z1.nil=Z1.stringify=Z1.str=Z1._=Z1.KeywordCxt=void 0;var nq=UZ();Object.defineProperty(Z1,"KeywordCxt",{enumerable:!0,get:function(){return nq.KeywordCxt}});var q$=b();Object.defineProperty(Z1,"_",{enumerable:!0,get:function(){return q$._}});Object.defineProperty(Z1,"str",{enumerable:!0,get:function(){return q$.str}});Object.defineProperty(Z1,"stringify",{enumerable:!0,get:function(){return q$.stringify}});Object.defineProperty(Z1,"nil",{enumerable:!0,get:function(){return q$.nil}});Object.defineProperty(Z1,"Name",{enumerable:!0,get:function(){return q$.Name}});Object.defineProperty(Z1,"CodeGen",{enumerable:!0,get:function(){return q$.CodeGen}});var aq=c5(),UG=qZ(),rq=M4(),OZ=i5(),tq=b(),MZ=FZ(),t5=zZ(),d4=k(),zG=dW(),oq=VG(),qG=($,Z)=>new RegExp($,Z);qG.code="new RegExp";var sq=["removeAdditional","useDefaults","coerceTypes"],eq=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),$A={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."},ZA={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},FG=200;function QA($){var Z,Q,Y,W,G,X,J,B,K,V,z,F,D,L,U,q,A,N,j,P,O,C,g,n,w;let _=$.strict,o=(Z=$.code)===null||Z===void 0?void 0:Z.optimize,h=o===!0||o===void 0?1:o||0,t=(Y=(Q=$.code)===null||Q===void 0?void 0:Q.regExp)!==null&&Y!==void 0?Y:qG,gZ=(W=$.uriResolver)!==null&&W!==void 0?W:oq.default;return{strictSchema:(X=(G=$.strictSchema)!==null&&G!==void 0?G:_)!==null&&X!==void 0?X:!0,strictNumbers:(B=(J=$.strictNumbers)!==null&&J!==void 0?J:_)!==null&&B!==void 0?B:!0,strictTypes:(V=(K=$.strictTypes)!==null&&K!==void 0?K:_)!==null&&V!==void 0?V:"log",strictTuples:(F=(z=$.strictTuples)!==null&&z!==void 0?z:_)!==null&&F!==void 0?F:"log",strictRequired:(L=(D=$.strictRequired)!==null&&D!==void 0?D:_)!==null&&L!==void 0?L:!1,code:$.code?{...$.code,optimize:h,regExp:t}:{optimize:h,regExp:t},loopRequired:(U=$.loopRequired)!==null&&U!==void 0?U:FG,loopEnum:(q=$.loopEnum)!==null&&q!==void 0?q:FG,meta:(A=$.meta)!==null&&A!==void 0?A:!0,messages:(N=$.messages)!==null&&N!==void 0?N:!0,inlineRefs:(j=$.inlineRefs)!==null&&j!==void 0?j:!0,schemaId:(P=$.schemaId)!==null&&P!==void 0?P:"$id",addUsedSchema:(O=$.addUsedSchema)!==null&&O!==void 0?O:!0,validateSchema:(C=$.validateSchema)!==null&&C!==void 0?C:!0,validateFormats:(g=$.validateFormats)!==null&&g!==void 0?g:!0,unicodeRegExp:(n=$.unicodeRegExp)!==null&&n!==void 0?n:!0,int32range:(w=$.int32range)!==null&&w!==void 0?w:!0,uriResolver:gZ}}class o5{constructor($={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,$=this.opts={...$,...QA($)};let{es5:Z,lines:Q}=this.opts.code;this.scope=new tq.ValueScope({scope:{},prefixes:eq,es5:Z,lines:Q}),this.logger=KA($.logger);let Y=$.validateFormats;if($.validateFormats=!1,this.RULES=(0,rq.getRules)(),DG.call(this,$A,$,"NOT SUPPORTED"),DG.call(this,ZA,$,"DEPRECATED","warn"),this._metaOpts=XA.call(this),$.formats)WA.call(this);if(this._addVocabularies(),this._addDefaultMetaSchema(),$.keywords)GA.call(this,$.keywords);if(typeof $.meta=="object")this.addMetaSchema($.meta);YA.call(this),$.validateFormats=Y}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:$,meta:Z,schemaId:Q}=this.opts,Y=zG;if(Q==="id")Y={...zG},Y.id=Y.$id,delete Y.$id;if(Z&&$)this.addMetaSchema(Y,Y[Q],!1)}defaultMeta(){let{meta:$,schemaId:Z}=this.opts;return this.opts.defaultMeta=typeof $=="object"?$[Z]||$:void 0}validate($,Z){let Q;if(typeof $=="string"){if(Q=this.getSchema($),!Q)throw Error(`no schema with key or ref "${$}"`)}else Q=this.compile($);let Y=Q(Z);if(!("$async"in Q))this.errors=Q.errors;return Y}compile($,Z){let Q=this._addSchema($,Z);return Q.validate||this._compileSchemaEnv(Q)}compileAsync($,Z){if(typeof this.opts.loadSchema!="function")throw Error("options.loadSchema should be a function");let{loadSchema:Q}=this.opts;return Y.call(this,$,Z);async function Y(K,V){await W.call(this,K.$schema);let z=this._addSchema(K,V);return z.validate||G.call(this,z)}async function W(K){if(K&&!this.getSchema(K))await Y.call(this,{$ref:K},!0)}async function G(K){try{return this._compileSchemaEnv(K)}catch(V){if(!(V instanceof UG.default))throw V;return X.call(this,V),await J.call(this,V.missingSchema),G.call(this,K)}}function X({missingSchema:K,missingRef:V}){if(this.refs[K])throw Error(`AnySchema ${K} is loaded but ${V} cannot be resolved`)}async function J(K){let V=await B.call(this,K);if(!this.refs[K])await W.call(this,V.$schema);if(!this.refs[K])this.addSchema(V,K,Z)}async function B(K){let V=this._loading[K];if(V)return V;try{return await(this._loading[K]=Q(K))}finally{delete this._loading[K]}}}addSchema($,Z,Q,Y=this.opts.validateSchema){if(Array.isArray($)){for(let G of $)this.addSchema(G,void 0,Q,Y);return this}let W;if(typeof $==="object"){let{schemaId:G}=this.opts;if(W=$[G],W!==void 0&&typeof W!="string")throw Error(`schema ${G} must be string`)}return Z=(0,MZ.normalizeId)(Z||W),this._checkUnique(Z),this.schemas[Z]=this._addSchema($,Q,Z,Y,!0),this}addMetaSchema($,Z,Q=this.opts.validateSchema){return this.addSchema($,Z,!0,Q),this}validateSchema($,Z){if(typeof $=="boolean")return!0;let Q;if(Q=$.$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 Y=this.validate(Q,$);if(!Y&&Z){let W="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(W);else throw Error(W)}return Y}getSchema($){let Z;while(typeof(Z=LG.call(this,$))=="string")$=Z;if(Z===void 0){let{schemaId:Q}=this.opts,Y=new OZ.SchemaEnv({schema:{},schemaId:Q});if(Z=OZ.resolveSchema.call(this,Y,$),!Z)return;this.refs[$]=Z}return Z.validate||this._compileSchemaEnv(Z)}removeSchema($){if($ instanceof RegExp)return this._removeAllSchemas(this.schemas,$),this._removeAllSchemas(this.refs,$),this;switch(typeof $){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let Z=LG.call(this,$);if(typeof Z=="object")this._cache.delete(Z.schema);return delete this.schemas[$],delete this.refs[$],this}case"object":{let Z=$;this._cache.delete(Z);let Q=$[this.opts.schemaId];if(Q)Q=(0,MZ.normalizeId)(Q),delete this.schemas[Q],delete this.refs[Q];return this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary($){for(let Z of $)this.addKeyword(Z);return this}addKeyword($,Z){let Q;if(typeof $=="string"){if(Q=$,typeof Z=="object")this.logger.warn("these parameters are deprecated, see docs for addKeyword"),Z.keyword=Q}else if(typeof $=="object"&&Z===void 0){if(Z=$,Q=Z.keyword,Array.isArray(Q)&&!Q.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(HA.call(this,Q,Z),!Z)return(0,d4.eachItem)(Q,(W)=>c4.call(this,W)),this;zA.call(this,Z);let Y={...Z,type:(0,t5.getJSONTypes)(Z.type),schemaType:(0,t5.getJSONTypes)(Z.schemaType)};return(0,d4.eachItem)(Q,Y.type.length===0?(W)=>c4.call(this,W,Y):(W)=>Y.type.forEach((G)=>c4.call(this,W,Y,G))),this}getKeyword($){let Z=this.RULES.all[$];return typeof Z=="object"?Z.definition:!!Z}removeKeyword($){let{RULES:Z}=this;delete Z.keywords[$],delete Z.all[$];for(let Q of Z.rules){let Y=Q.rules.findIndex((W)=>W.keyword===$);if(Y>=0)Q.rules.splice(Y,1)}return this}addFormat($,Z){if(typeof Z=="string")Z=new RegExp(Z);return this.formats[$]=Z,this}errorsText($=this.errors,{separator:Z=", ",dataVar:Q="data"}={}){if(!$||$.length===0)return"No errors";return $.map((Y)=>`${Q}${Y.instancePath} ${Y.message}`).reduce((Y,W)=>Y+Z+W)}$dataMetaSchema($,Z){let Q=this.RULES.all;$=JSON.parse(JSON.stringify($));for(let Y of Z){let W=Y.split("/").slice(1),G=$;for(let X of W)G=G[X];for(let X in Q){let J=Q[X];if(typeof J!="object")continue;let{$data:B}=J.definition,K=G[X];if(B&&K)G[X]=AG(K)}}return $}_removeAllSchemas($,Z){for(let Q in $){let Y=$[Q];if(!Z||Z.test(Q)){if(typeof Y=="string")delete $[Q];else if(Y&&!Y.meta)this._cache.delete(Y.schema),delete $[Q]}}}_addSchema($,Z,Q,Y=this.opts.validateSchema,W=this.opts.addUsedSchema){let G,{schemaId:X}=this.opts;if(typeof $=="object")G=$[X];else if(this.opts.jtd)throw Error("schema must be object");else if(typeof $!="boolean")throw Error("schema must be object or boolean");let J=this._cache.get($);if(J!==void 0)return J;Q=(0,MZ.normalizeId)(G||Q);let B=MZ.getSchemaRefs.call(this,$,Q);if(J=new OZ.SchemaEnv({schema:$,schemaId:X,meta:Z,baseId:Q,localRefs:B}),this._cache.set(J.schema,J),W&&!Q.startsWith("#")){if(Q)this._checkUnique(Q);this.refs[Q]=J}if(Y)this.validateSchema($,!0);return J}_checkUnique($){if(this.schemas[$]||this.refs[$])throw Error(`schema with key or id "${$}" already exists`)}_compileSchemaEnv($){if($.meta)this._compileMetaSchema($);else OZ.compileSchema.call(this,$);if(!$.validate)throw Error("ajv implementation error");return $.validate}_compileMetaSchema($){let Z=this.opts;this.opts=this._metaOpts;try{OZ.compileSchema.call(this,$)}finally{this.opts=Z}}}o5.ValidationError=aq.default;o5.MissingRefError=UG.default;Z1.default=o5;function DG($,Z,Q,Y="error"){for(let W in $){let G=W;if(G in Z)this.logger[Y](`${Q}: option ${W}. ${$[G]}`)}}function LG($){return $=(0,MZ.normalizeId)($),this.schemas[$]||this.refs[$]}function YA(){let $=this.opts.schemas;if(!$)return;if(Array.isArray($))this.addSchema($);else for(let Z in $)this.addSchema($[Z],Z)}function WA(){for(let $ in this.opts.formats){let Z=this.opts.formats[$];if(Z)this.addFormat($,Z)}}function GA($){if(Array.isArray($)){this.addVocabulary($);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let Z in $){let Q=$[Z];if(!Q.keyword)Q.keyword=Z;this.addKeyword(Q)}}function XA(){let $={...this.opts};for(let Z of sq)delete $[Z];return $}var JA={log(){},warn(){},error(){}};function KA($){if($===!1)return JA;if($===void 0)return console;if($.log&&$.warn&&$.error)return $;throw Error("logger must implement log, warn and error methods")}var BA=/^[a-z_$][a-z0-9_$:-]*$/i;function HA($,Z){let{RULES:Q}=this;if((0,d4.eachItem)($,(Y)=>{if(Q.keywords[Y])throw Error(`Keyword ${Y} is already defined`);if(!BA.test(Y))throw Error(`Keyword ${Y} has invalid name`)}),!Z)return;if(Z.$data&&!(("code"in Z)||("validate"in Z)))throw Error('$data keyword must have "code" or "validate" function')}function c4($,Z,Q){var Y;let W=Z===null||Z===void 0?void 0:Z.post;if(Q&&W)throw Error('keyword with "post" flag cannot have "type"');let{RULES:G}=this,X=W?G.post:G.rules.find(({type:B})=>B===Q);if(!X)X={type:Q,rules:[]},G.rules.push(X);if(G.keywords[$]=!0,!Z)return;let J={keyword:$,definition:{...Z,type:(0,t5.getJSONTypes)(Z.type),schemaType:(0,t5.getJSONTypes)(Z.schemaType)}};if(Z.before)VA.call(this,X,J,Z.before);else X.rules.push(J);G.all[$]=J,(Y=Z.implements)===null||Y===void 0||Y.forEach((B)=>this.addKeyword(B))}function VA($,Z,Q){let Y=$.rules.findIndex((W)=>W.keyword===Q);if(Y>=0)$.rules.splice(Y,0,Z);else $.rules.push(Z),this.logger.warn(`rule ${Q} is not defined`)}function zA($){let{metaSchema:Z}=$;if(Z===void 0)return;if($.$data&&this.opts.$data)Z=AG(Z);$.validateSchema=this.compile(Z,!0)}var FA={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function AG($){return{anyOf:[$,FA]}}});var MG=M((OG)=>{Object.defineProperty(OG,"__esModule",{value:!0});var UA={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};OG.default=UA});var EG=M((IG)=>{Object.defineProperty(IG,"__esModule",{value:!0});IG.callRef=IG.getValidate=void 0;var AA=qZ(),jG=P0(),D0=b(),A$=e0(),PG=i5(),s5=k(),NA={keyword:"$ref",schemaType:"string",code($){let{gen:Z,schema:Q,it:Y}=$,{baseId:W,schemaEnv:G,validateName:X,opts:J,self:B}=Y,{root:K}=G;if((Q==="#"||Q==="#/")&&W===K.baseId)return z();let V=PG.resolveRef.call(B,K,W,Q);if(V===void 0)throw new AA.default(Y.opts.uriResolver,W,Q);if(V instanceof PG.SchemaEnv)return F(V);return D(V);function z(){if(G===K)return e5($,X,G,G.$async);let L=Z.scopeValue("root",{ref:K});return e5($,D0._`${L}.validate`,K,K.$async)}function F(L){let U=wG($,L);e5($,U,L,L.$async)}function D(L){let U=Z.scopeValue("schema",J.code.source===!0?{ref:L,code:(0,D0.stringify)(L)}:{ref:L}),q=Z.name("valid"),A=$.subschema({schema:L,dataTypes:[],schemaPath:D0.nil,topSchemaRef:U,errSchemaPath:Q},q);$.mergeEvaluated(A),$.ok(q)}}};function wG($,Z){let{gen:Q}=$;return Z.validate?Q.scopeValue("validate",{ref:Z.validate}):D0._`${Q.scopeValue("wrapper",{ref:Z})}.validate`}IG.getValidate=wG;function e5($,Z,Q,Y){let{gen:W,it:G}=$,{allErrors:X,schemaEnv:J,opts:B}=G,K=B.passContext?A$.default.this:D0.nil;if(Y)V();else z();function V(){if(!J.$async)throw Error("async schema referenced by sync schema");let L=W.let("valid");W.try(()=>{if(W.code(D0._`await ${(0,jG.callValidateCode)($,Z,K)}`),D(Z),!X)W.assign(L,!0)},(U)=>{if(W.if(D0._`!(${U} instanceof ${G.ValidationError})`,()=>W.throw(U)),F(U),!X)W.assign(L,!1)}),$.ok(L)}function z(){$.result((0,jG.callValidateCode)($,Z,K),()=>D(Z),()=>F(Z))}function F(L){let U=D0._`${L}.errors`;W.assign(A$.default.vErrors,D0._`${A$.default.vErrors} === null ? ${U} : ${A$.default.vErrors}.concat(${U})`),W.assign(A$.default.errors,D0._`${A$.default.vErrors}.length`)}function D(L){var U;if(!G.opts.unevaluated)return;let q=(U=Q===null||Q===void 0?void 0:Q.validate)===null||U===void 0?void 0:U.evaluated;if(G.props!==!0)if(q&&!q.dynamicProps){if(q.props!==void 0)G.props=s5.mergeEvaluated.props(W,q.props,G.props)}else{let A=W.var("props",D0._`${L}.evaluated.props`);G.props=s5.mergeEvaluated.props(W,A,G.props,D0.Name)}if(G.items!==!0)if(q&&!q.dynamicItems){if(q.items!==void 0)G.items=s5.mergeEvaluated.items(W,q.items,G.items)}else{let A=W.var("items",D0._`${L}.evaluated.items`);G.items=s5.mergeEvaluated.items(W,A,G.items,D0.Name)}}}IG.callRef=e5;IG.default=NA});var CG=M((RG)=>{Object.defineProperty(RG,"__esModule",{value:!0});var jA=MG(),PA=EG(),wA=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",jA.default,PA.default];RG.default=wA});var yG=M((SG)=>{Object.defineProperty(SG,"__esModule",{value:!0});var $6=b(),M1=$6.operators,Z6={maximum:{okStr:"<=",ok:M1.LTE,fail:M1.GT},minimum:{okStr:">=",ok:M1.GTE,fail:M1.LT},exclusiveMaximum:{okStr:"<",ok:M1.LT,fail:M1.GTE},exclusiveMinimum:{okStr:">",ok:M1.GT,fail:M1.LTE}},TA={message:({keyword:$,schemaCode:Z})=>$6.str`must be ${Z6[$].okStr} ${Z}`,params:({keyword:$,schemaCode:Z})=>$6._`{comparison: ${Z6[$].okStr}, limit: ${Z}}`},EA={keyword:Object.keys(Z6),type:"number",schemaType:"number",$data:!0,error:TA,code($){let{keyword:Z,data:Q,schemaCode:Y}=$;$.fail$data($6._`${Q} ${Z6[Z].fail} ${Y} || isNaN(${Q})`)}};SG.default=EA});var _G=M((bG)=>{Object.defineProperty(bG,"__esModule",{value:!0});var jZ=b(),CA={message:({schemaCode:$})=>jZ.str`must be multiple of ${$}`,params:({schemaCode:$})=>jZ._`{multipleOf: ${$}}`},SA={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:CA,code($){let{gen:Z,data:Q,schemaCode:Y,it:W}=$,G=W.opts.multipleOfPrecision,X=Z.let("res"),J=G?jZ._`Math.abs(Math.round(${X}) - ${X}) > 1e-${G}`:jZ._`${X} !== parseInt(${X})`;$.fail$data(jZ._`(${Y} === 0 || (${X} = ${Q}/${Y}, ${J}))`)}};bG.default=SA});var fG=M((kG)=>{Object.defineProperty(kG,"__esModule",{value:!0});function xG($){let Z=$.length,Q=0,Y=0,W;while(Y<Z)if(Q++,W=$.charCodeAt(Y++),W>=55296&&W<=56319&&Y<Z){if(W=$.charCodeAt(Y),(W&64512)===56320)Y++}return Q}kG.default=xG;xG.code='require("ajv/dist/runtime/ucs2length").default'});var gG=M((vG)=>{Object.defineProperty(vG,"__esModule",{value:!0});var m1=b(),_A=k(),xA=fG(),kA={message({keyword:$,schemaCode:Z}){let Q=$==="maxLength"?"more":"fewer";return m1.str`must NOT have ${Q} than ${Z} characters`},params:({schemaCode:$})=>m1._`{limit: ${$}}`},fA={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:kA,code($){let{keyword:Z,data:Q,schemaCode:Y,it:W}=$,G=Z==="maxLength"?m1.operators.GT:m1.operators.LT,X=W.opts.unicode===!1?m1._`${Q}.length`:m1._`${(0,_A.useFunc)($.gen,xA.default)}(${Q})`;$.fail$data(m1._`${X} ${G} ${Y}`)}};vG.default=fA});var uG=M((hG)=>{Object.defineProperty(hG,"__esModule",{value:!0});var gA=P0(),hA=k(),N$=b(),uA={message:({schemaCode:$})=>N$.str`must match pattern "${$}"`,params:({schemaCode:$})=>N$._`{pattern: ${$}}`},mA={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:uA,code($){let{gen:Z,data:Q,$data:Y,schema:W,schemaCode:G,it:X}=$,J=X.opts.unicodeRegExp?"u":"";if(Y){let{regExp:B}=X.opts.code,K=B.code==="new RegExp"?N$._`new RegExp`:(0,hA.useFunc)(Z,B),V=Z.let("valid");Z.try(()=>Z.assign(V,N$._`${K}(${G}, ${J}).test(${Q})`),()=>Z.assign(V,!1)),$.fail$data(N$._`!${V}`)}else{let B=(0,gA.usePattern)($,W);$.fail$data(N$._`!${B}.test(${Q})`)}}};hG.default=mA});var lG=M((mG)=>{Object.defineProperty(mG,"__esModule",{value:!0});var PZ=b(),pA={message({keyword:$,schemaCode:Z}){let Q=$==="maxProperties"?"more":"fewer";return PZ.str`must NOT have ${Q} than ${Z} properties`},params:({schemaCode:$})=>PZ._`{limit: ${$}}`},cA={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:pA,code($){let{keyword:Z,data:Q,schemaCode:Y}=$,W=Z==="maxProperties"?PZ.operators.GT:PZ.operators.LT;$.fail$data(PZ._`Object.keys(${Q}).length ${W} ${Y}`)}};mG.default=cA});var cG=M((pG)=>{Object.defineProperty(pG,"__esModule",{value:!0});var wZ=P0(),IZ=b(),iA=k(),nA={message:({params:{missingProperty:$}})=>IZ.str`must have required property '${$}'`,params:({params:{missingProperty:$}})=>IZ._`{missingProperty: ${$}}`},aA={keyword:"required",type:"object",schemaType:"array",$data:!0,error:nA,code($){let{gen:Z,schema:Q,schemaCode:Y,data:W,$data:G,it:X}=$,{opts:J}=X;if(!G&&Q.length===0)return;let B=Q.length>=J.loopRequired;if(X.allErrors)K();else V();if(J.strictRequired){let D=$.parentSchema.properties,{definedProperties:L}=$.it;for(let U of Q)if((D===null||D===void 0?void 0:D[U])===void 0&&!L.has(U)){let q=X.schemaEnv.baseId+X.errSchemaPath,A=`required property "${U}" is not defined at "${q}" (strictRequired)`;(0,iA.checkStrictMode)(X,A,X.opts.strictRequired)}}function K(){if(B||G)$.block$data(IZ.nil,z);else for(let D of Q)(0,wZ.checkReportMissingProp)($,D)}function V(){let D=Z.let("missing");if(B||G){let L=Z.let("valid",!0);$.block$data(L,()=>F(D,L)),$.ok(L)}else Z.if((0,wZ.checkMissingProp)($,Q,D)),(0,wZ.reportMissingProp)($,D),Z.else()}function z(){Z.forOf("prop",Y,(D)=>{$.setParams({missingProperty:D}),Z.if((0,wZ.noPropertyInData)(Z,W,D,J.ownProperties),()=>$.error())})}function F(D,L){$.setParams({missingProperty:D}),Z.forOf(D,Y,()=>{Z.assign(L,(0,wZ.propertyInData)(Z,W,D,J.ownProperties)),Z.if((0,IZ.not)(L),()=>{$.error(),Z.break()})},IZ.nil)}}};pG.default=aA});var iG=M((dG)=>{Object.defineProperty(dG,"__esModule",{value:!0});var TZ=b(),tA={message({keyword:$,schemaCode:Z}){let Q=$==="maxItems"?"more":"fewer";return TZ.str`must NOT have ${Q} than ${Z} items`},params:({schemaCode:$})=>TZ._`{limit: ${$}}`},oA={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:tA,code($){let{keyword:Z,data:Q,schemaCode:Y}=$,W=Z==="maxItems"?TZ.operators.GT:TZ.operators.LT;$.fail$data(TZ._`${Q}.length ${W} ${Y}`)}};dG.default=oA});var Q6=M((aG)=>{Object.defineProperty(aG,"__esModule",{value:!0});var nG=C4();nG.code='require("ajv/dist/runtime/equal").default';aG.default=nG});var tG=M((rG)=>{Object.defineProperty(rG,"__esModule",{value:!0});var i4=zZ(),Q0=b(),$N=k(),ZN=Q6(),QN={message:({params:{i:$,j:Z}})=>Q0.str`must NOT have duplicate items (items ## ${Z} and ${$} are identical)`,params:({params:{i:$,j:Z}})=>Q0._`{i: ${$}, j: ${Z}}`},YN={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:QN,code($){let{gen:Z,data:Q,$data:Y,schema:W,parentSchema:G,schemaCode:X,it:J}=$;if(!Y&&!W)return;let B=Z.let("valid"),K=G.items?(0,i4.getSchemaTypes)(G.items):[];$.block$data(B,V,Q0._`${X} === false`),$.ok(B);function V(){let L=Z.let("i",Q0._`${Q}.length`),U=Z.let("j");$.setParams({i:L,j:U}),Z.assign(B,!0),Z.if(Q0._`${L} > 1`,()=>(z()?F:D)(L,U))}function z(){return K.length>0&&!K.some((L)=>L==="object"||L==="array")}function F(L,U){let q=Z.name("item"),A=(0,i4.checkDataTypes)(K,q,J.opts.strictNumbers,i4.DataType.Wrong),N=Z.const("indices",Q0._`{}`);Z.for(Q0._`;${L}--;`,()=>{if(Z.let(q,Q0._`${Q}[${L}]`),Z.if(A,Q0._`continue`),K.length>1)Z.if(Q0._`typeof ${q} == "string"`,Q0._`${q} += "_"`);Z.if(Q0._`typeof ${N}[${q}] == "number"`,()=>{Z.assign(U,Q0._`${N}[${q}]`),$.error(),Z.assign(B,!1).break()}).code(Q0._`${N}[${q}] = ${L}`)})}function D(L,U){let q=(0,$N.useFunc)(Z,ZN.default),A=Z.name("outer");Z.label(A).for(Q0._`;${L}--;`,()=>Z.for(Q0._`${U} = ${L}; ${U}--;`,()=>Z.if(Q0._`${q}(${Q}[${L}], ${Q}[${U}])`,()=>{$.error(),Z.assign(B,!1).break(A)})))}}};rG.default=YN});var sG=M((oG)=>{Object.defineProperty(oG,"__esModule",{value:!0});var n4=b(),GN=k(),XN=Q6(),JN={message:"must be equal to constant",params:({schemaCode:$})=>n4._`{allowedValue: ${$}}`},KN={keyword:"const",$data:!0,error:JN,code($){let{gen:Z,data:Q,$data:Y,schemaCode:W,schema:G}=$;if(Y||G&&typeof G=="object")$.fail$data(n4._`!${(0,GN.useFunc)(Z,XN.default)}(${Q}, ${W})`);else $.fail(n4._`${G} !== ${Q}`)}};oG.default=KN});var $X=M((eG)=>{Object.defineProperty(eG,"__esModule",{value:!0});var EZ=b(),HN=k(),VN=Q6(),zN={message:"must be equal to one of the allowed values",params:({schemaCode:$})=>EZ._`{allowedValues: ${$}}`},FN={keyword:"enum",schemaType:"array",$data:!0,error:zN,code($){let{gen:Z,data:Q,$data:Y,schema:W,schemaCode:G,it:X}=$;if(!Y&&W.length===0)throw Error("enum must have non-empty array");let J=W.length>=X.opts.loopEnum,B,K=()=>B!==null&&B!==void 0?B:B=(0,HN.useFunc)(Z,VN.default),V;if(J||Y)V=Z.let("valid"),$.block$data(V,z);else{if(!Array.isArray(W))throw Error("ajv implementation error");let D=Z.const("vSchema",G);V=(0,EZ.or)(...W.map((L,U)=>F(D,U)))}$.pass(V);function z(){Z.assign(V,!1),Z.forOf("v",G,(D)=>Z.if(EZ._`${K()}(${Q}, ${D})`,()=>Z.assign(V,!0).break()))}function F(D,L){let U=W[L];return typeof U==="object"&&U!==null?EZ._`${K()}(${Q}, ${D}[${L}])`:EZ._`${Q} === ${U}`}}};eG.default=FN});var QX=M((ZX)=>{Object.defineProperty(ZX,"__esModule",{value:!0});var LN=yG(),UN=_G(),qN=gG(),AN=uG(),NN=lG(),ON=cG(),MN=iG(),jN=tG(),PN=sG(),wN=$X(),IN=[LN.default,UN.default,qN.default,AN.default,NN.default,ON.default,MN.default,jN.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},PN.default,wN.default];ZX.default=IN});var r4=M((WX)=>{Object.defineProperty(WX,"__esModule",{value:!0});WX.validateAdditionalItems=void 0;var l1=b(),a4=k(),EN={message:({params:{len:$}})=>l1.str`must NOT have more than ${$} items`,params:({params:{len:$}})=>l1._`{limit: ${$}}`},RN={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:EN,code($){let{parentSchema:Z,it:Q}=$,{items:Y}=Z;if(!Array.isArray(Y)){(0,a4.checkStrictMode)(Q,'"additionalItems" is ignored when "items" is not an array of schemas');return}YX($,Y)}};function YX($,Z){let{gen:Q,schema:Y,data:W,keyword:G,it:X}=$;X.items=!0;let J=Q.const("len",l1._`${W}.length`);if(Y===!1)$.setParams({len:Z.length}),$.pass(l1._`${J} <= ${Z.length}`);else if(typeof Y=="object"&&!(0,a4.alwaysValidSchema)(X,Y)){let K=Q.var("valid",l1._`${J} <= ${Z.length}`);Q.if((0,l1.not)(K),()=>B(K)),$.ok(K)}function B(K){Q.forRange("i",Z.length,J,(V)=>{if($.subschema({keyword:G,dataProp:V,dataPropType:a4.Type.Num},K),!X.allErrors)Q.if((0,l1.not)(K),()=>Q.break())})}}WX.validateAdditionalItems=YX;WX.default=RN});var t4=M((KX)=>{Object.defineProperty(KX,"__esModule",{value:!0});KX.validateTuple=void 0;var XX=b(),Y6=k(),SN=P0(),yN={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code($){let{schema:Z,it:Q}=$;if(Array.isArray(Z))return JX($,"additionalItems",Z);if(Q.items=!0,(0,Y6.alwaysValidSchema)(Q,Z))return;$.ok((0,SN.validateArray)($))}};function JX($,Z,Q=$.schema){let{gen:Y,parentSchema:W,data:G,keyword:X,it:J}=$;if(V(W),J.opts.unevaluated&&Q.length&&J.items!==!0)J.items=Y6.mergeEvaluated.items(Y,Q.length,J.items);let B=Y.name("valid"),K=Y.const("len",XX._`${G}.length`);Q.forEach((z,F)=>{if((0,Y6.alwaysValidSchema)(J,z))return;Y.if(XX._`${K} > ${F}`,()=>$.subschema({keyword:X,schemaProp:F,dataProp:F},B)),$.ok(B)});function V(z){let{opts:F,errSchemaPath:D}=J,L=Q.length,U=L===z.minItems&&(L===z.maxItems||z[Z]===!1);if(F.strictTuples&&!U){let q=`"${X}" is ${L}-tuple, but minItems or maxItems/${Z} are not specified or different at path "${D}"`;(0,Y6.checkStrictMode)(J,q,F.strictTuples)}}}KX.validateTuple=JX;KX.default=yN});var VX=M((HX)=>{Object.defineProperty(HX,"__esModule",{value:!0});var _N=t4(),xN={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:($)=>(0,_N.validateTuple)($,"items")};HX.default=xN});var DX=M((FX)=>{Object.defineProperty(FX,"__esModule",{value:!0});var zX=b(),fN=k(),vN=P0(),gN=r4(),hN={message:({params:{len:$}})=>zX.str`must NOT have more than ${$} items`,params:({params:{len:$}})=>zX._`{limit: ${$}}`},uN={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:hN,code($){let{schema:Z,parentSchema:Q,it:Y}=$,{prefixItems:W}=Q;if(Y.items=!0,(0,fN.alwaysValidSchema)(Y,Z))return;if(W)(0,gN.validateAdditionalItems)($,W);else $.ok((0,vN.validateArray)($))}};FX.default=uN});var UX=M((LX)=>{Object.defineProperty(LX,"__esModule",{value:!0});var w0=b(),W6=k(),lN={message:({params:{min:$,max:Z}})=>Z===void 0?w0.str`must contain at least ${$} valid item(s)`:w0.str`must contain at least ${$} and no more than ${Z} valid item(s)`,params:({params:{min:$,max:Z}})=>Z===void 0?w0._`{minContains: ${$}}`:w0._`{minContains: ${$}, maxContains: ${Z}}`},pN={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:lN,code($){let{gen:Z,schema:Q,parentSchema:Y,data:W,it:G}=$,X,J,{minContains:B,maxContains:K}=Y;if(G.opts.next)X=B===void 0?1:B,J=K;else X=1;let V=Z.const("len",w0._`${W}.length`);if($.setParams({min:X,max:J}),J===void 0&&X===0){(0,W6.checkStrictMode)(G,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(J!==void 0&&X>J){(0,W6.checkStrictMode)(G,'"minContains" > "maxContains" is always invalid'),$.fail();return}if((0,W6.alwaysValidSchema)(G,Q)){let U=w0._`${V} >= ${X}`;if(J!==void 0)U=w0._`${U} && ${V} <= ${J}`;$.pass(U);return}G.items=!0;let z=Z.name("valid");if(J===void 0&&X===1)D(z,()=>Z.if(z,()=>Z.break()));else if(X===0){if(Z.let(z,!0),J!==void 0)Z.if(w0._`${W}.length > 0`,F)}else Z.let(z,!1),F();$.result(z,()=>$.reset());function F(){let U=Z.name("_valid"),q=Z.let("count",0);D(U,()=>Z.if(U,()=>L(q)))}function D(U,q){Z.forRange("i",0,V,(A)=>{$.subschema({keyword:"contains",dataProp:A,dataPropType:W6.Type.Num,compositeRule:!0},U),q()})}function L(U){if(Z.code(w0._`${U}++`),J===void 0)Z.if(w0._`${U} >= ${X}`,()=>Z.assign(z,!0).break());else if(Z.if(w0._`${U} > ${J}`,()=>Z.assign(z,!1).break()),X===1)Z.assign(z,!0);else Z.if(w0._`${U} >= ${X}`,()=>Z.assign(z,!0))}}};LX.default=pN});var jX=M((NX)=>{Object.defineProperty(NX,"__esModule",{value:!0});NX.validateSchemaDeps=NX.validatePropertyDeps=NX.error=void 0;var o4=b(),dN=k(),RZ=P0();NX.error={message:({params:{property:$,depsCount:Z,deps:Q}})=>{let Y=Z===1?"property":"properties";return o4.str`must have ${Y} ${Q} when property ${$} is present`},params:({params:{property:$,depsCount:Z,deps:Q,missingProperty:Y}})=>o4._`{property: ${$},
|
|
7
|
+
missingProperty: ${Y},
|
|
8
8
|
depsCount: ${Z},
|
|
9
|
-
deps: ${Q}}`};var HN={keyword:"dependencies",type:"object",schemaType:"object",error:iG.error,code($){let[Z,Q]=VN($);cG($,Z),dG($,Q)}};function VN({schema:$}){let Z={},Q={};for(let W in $){if(W==="__proto__")continue;let Y=Array.isArray($[W])?Z:Q;Y[W]=$[W]}return[Z,Q]}function cG($,Z=$.schema){let{gen:Q,data:W,it:Y}=$;if(Object.keys(Z).length===0)return;let G=Q.let("missing");for(let X in Z){let J=Z[X];if(J.length===0)continue;let K=(0,OZ.propertyInData)(Q,W,X,Y.opts.ownProperties);if($.setParams({property:X,depsCount:J.length,deps:J.join(", ")}),Y.allErrors)Q.if(K,()=>{for(let B of J)(0,OZ.checkReportMissingProp)($,B)});else Q.if(k4._`${K} && (${(0,OZ.checkMissingProp)($,J,G)})`),(0,OZ.reportMissingProp)($,G),Q.else()}}iG.validatePropertyDeps=cG;function dG($,Z=$.schema){let{gen:Q,data:W,keyword:Y,it:G}=$,X=Q.name("valid");for(let J in Z){if((0,BN.alwaysValidSchema)(G,Z[J]))continue;Q.if((0,OZ.propertyInData)(Q,W,J,G.opts.ownProperties),()=>{let K=$.subschema({keyword:Y,schemaProp:J},X);$.mergeValidEvaluated(K,X)},()=>Q.var(X,!0)),$.ok(X)}}iG.validateSchemaDeps=dG;iG.default=HN});var sG=M((oG)=>{Object.defineProperty(oG,"__esModule",{value:!0});var tG=b(),DN=x(),LN={message:"property name must be valid",params:({params:$})=>tG._`{propertyName: ${$.propertyName}}`},UN={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:LN,code($){let{gen:Z,schema:Q,data:W,it:Y}=$;if((0,DN.alwaysValidSchema)(Y,Q))return;let G=Z.name("valid");Z.forIn("key",W,(X)=>{$.setParams({propertyName:X}),$.subschema({keyword:"propertyNames",data:X,dataTypes:["string"],propertyName:X,compositeRule:!0},G),Z.if((0,tG.not)(G),()=>{if($.error(!0),!Y.allErrors)Z.break()})}),$.ok(G)}};oG.default=UN});var x4=M((eG)=>{Object.defineProperty(eG,"__esModule",{value:!0});var n5=q0(),I0=b(),AN=t0(),a5=x(),NN={message:"must NOT have additional properties",params:({params:$})=>I0._`{additionalProperty: ${$.additionalProperty}}`},ON={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:NN,code($){let{gen:Z,schema:Q,parentSchema:W,data:Y,errsCount:G,it:X}=$;if(!G)throw Error("ajv implementation error");let{allErrors:J,opts:K}=X;if(X.props=!0,K.removeAdditional!=="all"&&(0,a5.alwaysValidSchema)(X,Q))return;let B=(0,n5.allSchemaProperties)(W.properties),z=(0,n5.allSchemaProperties)(W.patternProperties);V(),$.ok(I0._`${G} === ${AN.default.errors}`);function V(){Z.forIn("key",Y,(q)=>{if(!B.length&&!z.length)L(q);else Z.if(F(q),()=>L(q))})}function F(q){let A;if(B.length>8){let N=(0,a5.schemaRefOrVal)(X,W.properties,"properties");A=(0,n5.isOwnProperty)(Z,N,q)}else if(B.length)A=(0,I0.or)(...B.map((N)=>I0._`${q} === ${N}`));else A=I0.nil;if(z.length)A=(0,I0.or)(A,...z.map((N)=>I0._`${(0,n5.usePattern)($,N)}.test(${q})`));return(0,I0.not)(A)}function D(q){Z.code(I0._`delete ${Y}[${q}]`)}function L(q){if(K.removeAdditional==="all"||K.removeAdditional&&Q===!1){D(q);return}if(Q===!1){if($.setParams({additionalProperty:q}),$.error(),!J)Z.break();return}if(typeof Q=="object"&&!(0,a5.alwaysValidSchema)(X,Q)){let A=Z.name("valid");if(K.removeAdditional==="failing")U(q,A,!1),Z.if((0,I0.not)(A),()=>{$.reset(),D(q)});else if(U(q,A),!J)Z.if((0,I0.not)(A),()=>Z.break())}}function U(q,A,N){let j={keyword:"additionalProperties",dataProp:q,dataPropType:a5.Type.Str};if(N===!1)Object.assign(j,{compositeRule:!0,createErrors:!1,allErrors:!1});$.subschema(j,A)}}};eG.default=ON});var WX=M((QX)=>{Object.defineProperty(QX,"__esModule",{value:!0});var jN=KZ(),$X=q0(),f4=x(),ZX=x4(),PN={keyword:"properties",type:"object",schemaType:"object",code($){let{gen:Z,schema:Q,parentSchema:W,data:Y,it:G}=$;if(G.opts.removeAdditional==="all"&&W.additionalProperties===void 0)ZX.default.code(new jN.KeywordCxt(G,ZX.default,"additionalProperties"));let X=(0,$X.allSchemaProperties)(Q);for(let V of X)G.definedProperties.add(V);if(G.opts.unevaluated&&X.length&&G.props!==!0)G.props=f4.mergeEvaluated.props(Z,(0,f4.toHash)(X),G.props);let J=X.filter((V)=>!(0,f4.alwaysValidSchema)(G,Q[V]));if(J.length===0)return;let K=Z.name("valid");for(let V of J){if(B(V))z(V);else{if(Z.if((0,$X.propertyInData)(Z,Y,V,G.opts.ownProperties)),z(V),!G.allErrors)Z.else().var(K,!0);Z.endIf()}$.it.definedProperties.add(V),$.ok(K)}function B(V){return G.opts.useDefaults&&!G.compositeRule&&Q[V].default!==void 0}function z(V){$.subschema({keyword:"properties",schemaProp:V,dataProp:V},K)}}};QX.default=PN});var KX=M((JX)=>{Object.defineProperty(JX,"__esModule",{value:!0});var YX=q0(),r5=b(),GX=x(),XX=x(),TN={keyword:"patternProperties",type:"object",schemaType:"object",code($){let{gen:Z,schema:Q,data:W,parentSchema:Y,it:G}=$,{opts:X}=G,J=(0,YX.allSchemaProperties)(Q),K=J.filter((U)=>(0,GX.alwaysValidSchema)(G,Q[U]));if(J.length===0||K.length===J.length&&(!G.opts.unevaluated||G.props===!0))return;let B=X.strictSchema&&!X.allowMatchingProperties&&Y.properties,z=Z.name("valid");if(G.props!==!0&&!(G.props instanceof r5.Name))G.props=(0,XX.evaluatedPropsToName)(Z,G.props);let{props:V}=G;F();function F(){for(let U of J){if(B)D(U);if(G.allErrors)L(U);else Z.var(z,!0),L(U),Z.if(z)}}function D(U){for(let q in B)if(new RegExp(U).test(q))(0,GX.checkStrictMode)(G,`property ${q} matches pattern ${U} (use allowMatchingProperties)`)}function L(U){Z.forIn("key",W,(q)=>{Z.if(r5._`${(0,YX.usePattern)($,U)}.test(${q})`,()=>{let A=K.includes(U);if(!A)$.subschema({keyword:"patternProperties",schemaProp:U,dataProp:q,dataPropType:XX.Type.Str},z);if(G.opts.unevaluated&&V!==!0)Z.assign(r5._`${V}[${q}]`,!0);else if(!A&&!G.allErrors)Z.if((0,r5.not)(z),()=>Z.break())})})}}};JX.default=TN});var HX=M((BX)=>{Object.defineProperty(BX,"__esModule",{value:!0});var EN=x(),RN={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code($){let{gen:Z,schema:Q,it:W}=$;if((0,EN.alwaysValidSchema)(W,Q)){$.fail();return}let Y=Z.name("valid");$.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},Y),$.failResult(Y,()=>$.reset(),()=>$.error())},error:{message:"must NOT be valid"}};BX.default=RN});var zX=M((VX)=>{Object.defineProperty(VX,"__esModule",{value:!0});var SN=q0(),yN={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:SN.validateUnion,error:{message:"must match a schema in anyOf"}};VX.default=yN});var DX=M((FX)=>{Object.defineProperty(FX,"__esModule",{value:!0});var t5=b(),_N=x(),kN={message:"must match exactly one schema in oneOf",params:({params:$})=>t5._`{passingSchemas: ${$.passing}}`},xN={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:kN,code($){let{gen:Z,schema:Q,parentSchema:W,it:Y}=$;if(!Array.isArray(Q))throw Error("ajv implementation error");if(Y.opts.discriminator&&W.discriminator)return;let G=Q,X=Z.let("valid",!1),J=Z.let("passing",null),K=Z.name("_valid");$.setParams({passing:J}),Z.block(B),$.result(X,()=>$.reset(),()=>$.error(!0));function B(){G.forEach((z,V)=>{let F;if((0,_N.alwaysValidSchema)(Y,z))Z.var(K,!0);else F=$.subschema({keyword:"oneOf",schemaProp:V,compositeRule:!0},K);if(V>0)Z.if(t5._`${K} && ${X}`).assign(X,!1).assign(J,t5._`[${J}, ${V}]`).else();Z.if(K,()=>{if(Z.assign(X,!0),Z.assign(J,V),F)$.mergeEvaluated(F,t5.Name)})})}}};FX.default=xN});var UX=M((LX)=>{Object.defineProperty(LX,"__esModule",{value:!0});var vN=x(),gN={keyword:"allOf",schemaType:"array",code($){let{gen:Z,schema:Q,it:W}=$;if(!Array.isArray(Q))throw Error("ajv implementation error");let Y=Z.name("valid");Q.forEach((G,X)=>{if((0,vN.alwaysValidSchema)(W,G))return;let J=$.subschema({keyword:"allOf",schemaProp:X},Y);$.ok(Y),$.mergeEvaluated(J)})}};LX.default=gN});var OX=M((NX)=>{Object.defineProperty(NX,"__esModule",{value:!0});var o5=b(),AX=x(),uN={message:({params:$})=>o5.str`must match "${$.ifClause}" schema`,params:({params:$})=>o5._`{failingKeyword: ${$.ifClause}}`},mN={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:uN,code($){let{gen:Z,parentSchema:Q,it:W}=$;if(Q.then===void 0&&Q.else===void 0)(0,AX.checkStrictMode)(W,'"if" without "then" and "else" is ignored');let Y=qX(W,"then"),G=qX(W,"else");if(!Y&&!G)return;let X=Z.let("valid",!0),J=Z.name("_valid");if(K(),$.reset(),Y&&G){let z=Z.let("ifClause");$.setParams({ifClause:z}),Z.if(J,B("then",z),B("else",z))}else if(Y)Z.if(J,B("then"));else Z.if((0,o5.not)(J),B("else"));$.pass(X,()=>$.error(!0));function K(){let z=$.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},J);$.mergeEvaluated(z)}function B(z,V){return()=>{let F=$.subschema({keyword:z},J);if(Z.assign(X,J),$.mergeValidEvaluated(F,X),V)Z.assign(V,o5._`${z}`);else $.setParams({ifClause:z})}}}};function qX($,Z){let Q=$.schema[Z];return Q!==void 0&&!(0,AX.alwaysValidSchema)($,Q)}NX.default=mN});var jX=M((MX)=>{Object.defineProperty(MX,"__esModule",{value:!0});var pN=x(),cN={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:$,parentSchema:Z,it:Q}){if(Z.if===void 0)(0,pN.checkStrictMode)(Q,`"${$}" without "if" is ignored`)}};MX.default=cN});var wX=M((PX)=>{Object.defineProperty(PX,"__esModule",{value:!0});var iN=b4(),nN=gG(),aN=_4(),rN=mG(),tN=pG(),oN=rG(),sN=sG(),eN=x4(),$O=WX(),ZO=KX(),QO=HX(),WO=zX(),YO=DX(),GO=UX(),XO=OX(),JO=jX();function KO($=!1){let Z=[QO.default,WO.default,YO.default,GO.default,XO.default,JO.default,sN.default,eN.default,oN.default,$O.default,ZO.default];if($)Z.push(nN.default,rN.default);else Z.push(iN.default,aN.default);return Z.push(tN.default),Z}PX.default=KO});var IX=M((TX)=>{Object.defineProperty(TX,"__esModule",{value:!0});var c=b(),HO={message:({schemaCode:$})=>c.str`must match format "${$}"`,params:({schemaCode:$})=>c._`{format: ${$}}`},VO={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:HO,code($,Z){let{gen:Q,data:W,$data:Y,schema:G,schemaCode:X,it:J}=$,{opts:K,errSchemaPath:B,schemaEnv:z,self:V}=J;if(!K.validateFormats)return;if(Y)F();else D();function F(){let L=Q.scopeValue("formats",{ref:V.formats,code:K.code.formats}),U=Q.const("fDef",c._`${L}[${X}]`),q=Q.let("fType"),A=Q.let("format");Q.if(c._`typeof ${U} == "object" && !(${U} instanceof RegExp)`,()=>Q.assign(q,c._`${U}.type || "string"`).assign(A,c._`${U}.validate`),()=>Q.assign(q,c._`"string"`).assign(A,U)),$.fail$data((0,c.or)(N(),j()));function N(){if(K.strictSchema===!1)return c.nil;return c._`${X} && !${A}`}function j(){let P=z.$async?c._`(${U}.async ? await ${A}(${W}) : ${A}(${W}))`:c._`${A}(${W})`,O=c._`(typeof ${A} == "function" ? ${P} : ${A}.test(${W}))`;return c._`${A} && ${A} !== true && ${q} === ${Z} && !${O}`}}function D(){let L=V.formats[G];if(!L){N();return}if(L===!0)return;let[U,q,A]=j(L);if(U===Z)$.pass(P());function N(){if(K.strictSchema===!1){V.logger.warn(O());return}throw Error(O());function O(){return`unknown format "${G}" ignored in schema at path "${B}"`}}function j(O){let C=O instanceof RegExp?(0,c.regexpCode)(O):K.code.formats?c._`${K.code.formats}${(0,c.getProperty)(G)}`:void 0,v=Q.scopeValue("formats",{key:G,ref:O,code:C});if(typeof O=="object"&&!(O instanceof RegExp))return[O.type||"string",O.validate,c._`${v}.validate`];return["string",O,v]}function P(){if(typeof L=="object"&&!(L instanceof RegExp)&&L.async){if(!z.$async)throw Error("async format in sync schema");return c._`await ${A}(${W})`}return typeof q=="function"?c._`${A}(${W})`:c._`${A}.test(${W})`}}}};TX.default=VO});var RX=M((EX)=>{Object.defineProperty(EX,"__esModule",{value:!0});var FO=IX(),DO=[FO.default];EX.default=DO});var yX=M((CX)=>{Object.defineProperty(CX,"__esModule",{value:!0});CX.contentVocabulary=CX.metadataVocabulary=void 0;CX.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];CX.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var kX=M((_X)=>{Object.defineProperty(_X,"__esModule",{value:!0});var qO=QG(),AO=CG(),NO=wX(),OO=RX(),bX=yX(),MO=[qO.default,AO.default,(0,NO.default)(),OO.default,bX.metadataVocabulary,bX.contentVocabulary];_X.default=MO});var gX=M((fX)=>{Object.defineProperty(fX,"__esModule",{value:!0});fX.DiscrError=void 0;var xX;(function($){$.Tag="tag",$.Mapping="mapping"})(xX||(fX.DiscrError=xX={}))});var mX=M((uX)=>{Object.defineProperty(uX,"__esModule",{value:!0});var z$=b(),v4=gX(),hX=k5(),PO=BZ(),wO=x(),TO={message:({params:{discrError:$,tagName:Z}})=>$===v4.DiscrError.Tag?`tag "${Z}" must be string`:`value of tag "${Z}" must be in oneOf`,params:({params:{discrError:$,tag:Z,tagName:Q}})=>z$._`{error: ${$}, tag: ${Q}, tagValue: ${Z}}`},IO={keyword:"discriminator",type:"object",schemaType:"object",error:TO,code($){let{gen:Z,data:Q,schema:W,parentSchema:Y,it:G}=$,{oneOf:X}=Y;if(!G.opts.discriminator)throw Error("discriminator: requires discriminator option");let J=W.propertyName;if(typeof J!="string")throw Error("discriminator: requires propertyName");if(W.mapping)throw Error("discriminator: mapping is not supported");if(!X)throw Error("discriminator: requires oneOf keyword");let K=Z.let("valid",!1),B=Z.const("tag",z$._`${Q}${(0,z$.getProperty)(J)}`);Z.if(z$._`typeof ${B} == "string"`,()=>z(),()=>$.error(!1,{discrError:v4.DiscrError.Tag,tag:B,tagName:J})),$.ok(K);function z(){let D=F();Z.if(!1);for(let L in D)Z.elseIf(z$._`${B} === ${L}`),Z.assign(K,V(D[L]));Z.else(),$.error(!1,{discrError:v4.DiscrError.Mapping,tag:B,tagName:J}),Z.endIf()}function V(D){let L=Z.name("valid"),U=$.subschema({keyword:"oneOf",schemaProp:D},L);return $.mergeEvaluated(U,z$.Name),L}function F(){var D;let L={},U=A(Y),q=!0;for(let P=0;P<X.length;P++){let O=X[P];if((O===null||O===void 0?void 0:O.$ref)&&!(0,wO.schemaHasRulesButRef)(O,G.self.RULES)){let v=O.$ref;if(O=hX.resolveRef.call(G.self,G.schemaEnv.root,G.baseId,v),O instanceof hX.SchemaEnv)O=O.schema;if(O===void 0)throw new PO.default(G.opts.uriResolver,G.baseId,v)}let C=(D=O===null||O===void 0?void 0:O.properties)===null||D===void 0?void 0:D[J];if(typeof C!="object")throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${J}"`);q=q&&(U||A(O)),N(C,P)}if(!q)throw Error(`discriminator: "${J}" must be required`);return L;function A({required:P}){return Array.isArray(P)&&P.includes(J)}function N(P,O){if(P.const)j(P.const,O);else if(P.enum)for(let C of P.enum)j(C,O);else throw Error(`discriminator: "properties/${J}" must have "const" or "enum"`)}function j(P,O){if(typeof P!="string"||P in L)throw Error(`discriminator: "${J}" values must be unique strings`);L[P]=O}}}};uX.default=IO});var lX=M((v2,RO)=>{RO.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 h4=M((B0,g4)=>{Object.defineProperty(B0,"__esModule",{value:!0});B0.MissingRefError=B0.ValidationError=B0.CodeGen=B0.Name=B0.nil=B0.stringify=B0.str=B0._=B0.KeywordCxt=B0.Ajv=void 0;var CO=iY(),SO=kX(),yO=mX(),pX=lX(),bO=["/properties"],s5="http://json-schema.org/draft-07/schema";class MZ extends CO.default{_addVocabularies(){if(super._addVocabularies(),SO.default.forEach(($)=>this.addVocabulary($)),this.opts.discriminator)this.addKeyword(yO.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let $=this.opts.$data?this.$dataMetaSchema(pX,bO):pX;this.addMetaSchema($,s5,!1),this.refs["http://json-schema.org/schema"]=s5}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s5)?s5:void 0)}}B0.Ajv=MZ;g4.exports=B0=MZ;g4.exports.Ajv=MZ;Object.defineProperty(B0,"__esModule",{value:!0});B0.default=MZ;var _O=KZ();Object.defineProperty(B0,"KeywordCxt",{enumerable:!0,get:function(){return _O.KeywordCxt}});var F$=b();Object.defineProperty(B0,"_",{enumerable:!0,get:function(){return F$._}});Object.defineProperty(B0,"str",{enumerable:!0,get:function(){return F$.str}});Object.defineProperty(B0,"stringify",{enumerable:!0,get:function(){return F$.stringify}});Object.defineProperty(B0,"nil",{enumerable:!0,get:function(){return F$.nil}});Object.defineProperty(B0,"Name",{enumerable:!0,get:function(){return F$.Name}});Object.defineProperty(B0,"CodeGen",{enumerable:!0,get:function(){return F$.CodeGen}});var kO=b5();Object.defineProperty(B0,"ValidationError",{enumerable:!0,get:function(){return kO.default}});var xO=BZ();Object.defineProperty(B0,"MissingRefError",{enumerable:!0,get:function(){return xO.default}})});var eX=M((oX)=>{Object.defineProperty(oX,"__esModule",{value:!0});oX.formatNames=oX.fastFormats=oX.fullFormats=void 0;function x0($,Z){return{validate:$,compare:Z}}oX.fullFormats={date:x0(nX,p4),time:x0(m4(!0),c4),"date-time":x0(cX(!0),rX),"iso-time":x0(m4(),aX),"iso-date-time":x0(cX(),tX),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:pO,"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:tO,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:cO,int32:{type:"number",validate:nO},int64:{type:"number",validate:aO},float:{type:"number",validate:iX},double:{type:"number",validate:iX},password:!0,binary:!0};oX.fastFormats={...oX.fullFormats,date:x0(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,p4),time:x0(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,c4),"date-time":x0(/^\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,rX),"iso-time":x0(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,aX),"iso-date-time":x0(/^\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,tX),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};oX.formatNames=Object.keys(oX.fullFormats);function gO($){return $%4===0&&($%100!==0||$%400===0)}var hO=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,uO=[0,31,28,31,30,31,30,31,31,30,31,30,31];function nX($){let Z=hO.exec($);if(!Z)return!1;let Q=+Z[1],W=+Z[2],Y=+Z[3];return W>=1&&W<=12&&Y>=1&&Y<=(W===2&&gO(Q)?29:uO[W])}function p4($,Z){if(!($&&Z))return;if($>Z)return 1;if($<Z)return-1;return 0}var u4=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function m4($){return function(Q){let W=u4.exec(Q);if(!W)return!1;let Y=+W[1],G=+W[2],X=+W[3],J=W[4],K=W[5]==="-"?-1:1,B=+(W[6]||0),z=+(W[7]||0);if(B>23||z>59||$&&!J)return!1;if(Y<=23&&G<=59&&X<60)return!0;let V=G-z*K,F=Y-B*K-(V<0?1:0);return(F===23||F===-1)&&(V===59||V===-1)&&X<61}}function c4($,Z){if(!($&&Z))return;let Q=new Date("2020-01-01T"+$).valueOf(),W=new Date("2020-01-01T"+Z).valueOf();if(!(Q&&W))return;return Q-W}function aX($,Z){if(!($&&Z))return;let Q=u4.exec($),W=u4.exec(Z);if(!(Q&&W))return;if($=Q[1]+Q[2]+Q[3],Z=W[1]+W[2]+W[3],$>Z)return 1;if($<Z)return-1;return 0}var l4=/t|\s/i;function cX($){let Z=m4($);return function(W){let Y=W.split(l4);return Y.length===2&&nX(Y[0])&&Z(Y[1])}}function rX($,Z){if(!($&&Z))return;let Q=new Date($).valueOf(),W=new Date(Z).valueOf();if(!(Q&&W))return;return Q-W}function tX($,Z){if(!($&&Z))return;let[Q,W]=$.split(l4),[Y,G]=Z.split(l4),X=p4(Q,Y);if(X===void 0)return;return X||c4(W,G)}var mO=/\/|:/,lO=/^(?:[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 pO($){return mO.test($)&&lO.test($)}var dX=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function cO($){return dX.lastIndex=0,dX.test($)}var dO=-2147483648,iO=2147483647;function nO($){return Number.isInteger($)&&$<=iO&&$>=dO}function aO($){return Number.isInteger($)}function iX(){return!0}var rO=/[^\\]\\Z/;function tO($){if(rO.test($))return!1;try{return new RegExp($),!0}catch(Z){return!1}}});var ZJ=M(($J)=>{Object.defineProperty($J,"__esModule",{value:!0});$J.formatLimitDefinition=void 0;var sO=h4(),E0=b(),q1=E0.operators,e5={formatMaximum:{okStr:"<=",ok:q1.LTE,fail:q1.GT},formatMinimum:{okStr:">=",ok:q1.GTE,fail:q1.LT},formatExclusiveMaximum:{okStr:"<",ok:q1.LT,fail:q1.GTE},formatExclusiveMinimum:{okStr:">",ok:q1.GT,fail:q1.LTE}},eO={message:({keyword:$,schemaCode:Z})=>E0.str`should be ${e5[$].okStr} ${Z}`,params:({keyword:$,schemaCode:Z})=>E0._`{comparison: ${e5[$].okStr}, limit: ${Z}}`};$J.formatLimitDefinition={keyword:Object.keys(e5),type:"string",schemaType:"string",$data:!0,error:eO,code($){let{gen:Z,data:Q,schemaCode:W,keyword:Y,it:G}=$,{opts:X,self:J}=G;if(!X.validateFormats)return;let K=new sO.KeywordCxt(G,J.RULES.all.format.definition,"format");if(K.$data)B();else z();function B(){let F=Z.scopeValue("formats",{ref:J.formats,code:X.code.formats}),D=Z.const("fmt",E0._`${F}[${K.schemaCode}]`);$.fail$data((0,E0.or)(E0._`typeof ${D} != "object"`,E0._`${D} instanceof RegExp`,E0._`typeof ${D}.compare != "function"`,V(D)))}function z(){let F=K.schema,D=J.formats[F];if(!D||D===!0)return;if(typeof D!="object"||D instanceof RegExp||typeof D.compare!="function")throw Error(`"${Y}": format "${F}" does not define "compare" function`);let L=Z.scopeValue("formats",{key:F,ref:D,code:X.code.formats?E0._`${X.code.formats}${(0,E0.getProperty)(F)}`:void 0});$.fail$data(V(L))}function V(F){return E0._`${F}.compare(${Q}, ${W}) ${e5[Y].fail} 0`}},dependencies:["format"]};var $M=($)=>{return $.addKeyword($J.formatLimitDefinition),$};$J.default=$M});var GJ=M((jZ,YJ)=>{Object.defineProperty(jZ,"__esModule",{value:!0});var D$=eX(),QM=ZJ(),n4=b(),QJ=new n4.Name("fullFormats"),WM=new n4.Name("fastFormats"),a4=($,Z={keywords:!0})=>{if(Array.isArray(Z))return WJ($,Z,D$.fullFormats,QJ),$;let[Q,W]=Z.mode==="fast"?[D$.fastFormats,WM]:[D$.fullFormats,QJ],Y=Z.formats||D$.formatNames;if(WJ($,Y,Q,W),Z.keywords)(0,QM.default)($);return $};a4.get=($,Z="full")=>{let W=(Z==="fast"?D$.fastFormats:D$.fullFormats)[$];if(!W)throw Error(`Unknown format "${$}"`);return W};function WJ($,Z,Q,W){var Y,G;(Y=(G=$.opts.code).formats)!==null&&Y!==void 0||(G.formats=n4._`require("ajv-formats/dist/formats").${W}`);for(let X of Z)$.addFormat(X,Q[X])}YJ.exports=jZ=a4;Object.defineProperty(jZ,"__esModule",{value:!0});jZ.default=a4});var DJ=M((Gy,FJ)=>{FJ.exports=zJ;zJ.sync=JM;var HJ=$1("fs");function XM($,Z){var Q=Z.pathExt!==void 0?Z.pathExt:process.env.PATHEXT;if(!Q)return!0;if(Q=Q.split(";"),Q.indexOf("")!==-1)return!0;for(var W=0;W<Q.length;W++){var Y=Q[W].toLowerCase();if(Y&&$.substr(-Y.length).toLowerCase()===Y)return!0}return!1}function VJ($,Z,Q){if(!$.isSymbolicLink()&&!$.isFile())return!1;return XM(Z,Q)}function zJ($,Z,Q){HJ.stat($,function(W,Y){Q(W,W?!1:VJ(Y,$,Z))})}function JM($,Z){return VJ(HJ.statSync($),$,Z)}});var NJ=M((Xy,AJ)=>{AJ.exports=UJ;UJ.sync=KM;var LJ=$1("fs");function UJ($,Z,Q){LJ.stat($,function(W,Y){Q(W,W?!1:qJ(Y,Z))})}function KM($,Z){return qJ(LJ.statSync($),Z)}function qJ($,Z){return $.isFile()&&BM($,Z)}function BM($,Z){var{mode:Q,uid:W,gid:Y}=$,G=Z.uid!==void 0?Z.uid:process.getuid&&process.getuid(),X=Z.gid!==void 0?Z.gid:process.getgid&&process.getgid(),J=parseInt("100",8),K=parseInt("010",8),B=parseInt("001",8),z=J|K,V=Q&B||Q&K&&Y===X||Q&J&&W===G||Q&z&&G===0;return V}});var MJ=M((Ky,OJ)=>{var Jy=$1("fs"),Z6;if(process.platform==="win32"||global.TESTING_WINDOWS)Z6=DJ();else Z6=NJ();OJ.exports=s4;s4.sync=HM;function s4($,Z,Q){if(typeof Z==="function")Q=Z,Z={};if(!Q){if(typeof Promise!=="function")throw TypeError("callback not provided");return new Promise(function(W,Y){s4($,Z||{},function(G,X){if(G)Y(G);else W(X)})})}Z6($,Z||{},function(W,Y){if(W){if(W.code==="EACCES"||Z&&Z.ignoreErrors)W=null,Y=!1}Q(W,Y)})}function HM($,Z){try{return Z6.sync($,Z||{})}catch(Q){if(Z&&Z.ignoreErrors||Q.code==="EACCES")return!1;else throw Q}}});var RJ=M((By,EJ)=>{var L$=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",jJ=$1("path"),VM=L$?";":":",PJ=MJ(),wJ=($)=>Object.assign(Error(`not found: ${$}`),{code:"ENOENT"}),TJ=($,Z)=>{let Q=Z.colon||VM,W=$.match(/\//)||L$&&$.match(/\\/)?[""]:[...L$?[process.cwd()]:[],...(Z.path||process.env.PATH||"").split(Q)],Y=L$?Z.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",G=L$?Y.split(Q):[""];if(L$){if($.indexOf(".")!==-1&&G[0]!=="")G.unshift("")}return{pathEnv:W,pathExt:G,pathExtExe:Y}},IJ=($,Z,Q)=>{if(typeof Z==="function")Q=Z,Z={};if(!Z)Z={};let{pathEnv:W,pathExt:Y,pathExtExe:G}=TJ($,Z),X=[],J=(B)=>new Promise((z,V)=>{if(B===W.length)return Z.all&&X.length?z(X):V(wJ($));let F=W[B],D=/^".*"$/.test(F)?F.slice(1,-1):F,L=jJ.join(D,$),U=!D&&/^\.[\\\/]/.test($)?$.slice(0,2)+L:L;z(K(U,B,0))}),K=(B,z,V)=>new Promise((F,D)=>{if(V===Y.length)return F(J(z+1));let L=Y[V];PJ(B+L,{pathExt:G},(U,q)=>{if(!U&&q)if(Z.all)X.push(B+L);else return F(B+L);return F(K(B,z,V+1))})});return Q?J(0).then((B)=>Q(null,B),Q):J(0)},zM=($,Z)=>{Z=Z||{};let{pathEnv:Q,pathExt:W,pathExtExe:Y}=TJ($,Z),G=[];for(let X=0;X<Q.length;X++){let J=Q[X],K=/^".*"$/.test(J)?J.slice(1,-1):J,B=jJ.join(K,$),z=!K&&/^\.[\\\/]/.test($)?$.slice(0,2)+B:B;for(let V=0;V<W.length;V++){let F=z+W[V];try{if(PJ.sync(F,{pathExt:Y}))if(Z.all)G.push(F);else return F}catch(D){}}}if(Z.all&&G.length)return G;if(Z.nothrow)return null;throw wJ($)};EJ.exports=IJ;IJ.sync=zM});var SJ=M((Hy,e4)=>{var CJ=($={})=>{let Z=$.env||process.env;if(($.platform||process.platform)!=="win32")return"PATH";return Object.keys(Z).reverse().find((W)=>W.toUpperCase()==="PATH")||"Path"};e4.exports=CJ;e4.exports.default=CJ});var kJ=M((Vy,_J)=>{var yJ=$1("path"),FM=RJ(),DM=SJ();function bJ($,Z){let Q=$.options.env||process.env,W=process.cwd(),Y=$.options.cwd!=null,G=Y&&process.chdir!==void 0&&!process.chdir.disabled;if(G)try{process.chdir($.options.cwd)}catch(J){}let X;try{X=FM.sync($.command,{path:Q[DM({env:Q})],pathExt:Z?yJ.delimiter:void 0})}catch(J){}finally{if(G)process.chdir(W)}if(X)X=yJ.resolve(Y?$.options.cwd:"",X);return X}function LM($){return bJ($)||bJ($,!0)}_J.exports=LM});var xJ=M((AM,ZQ)=>{var $Q=/([()\][%!^"`<>&|;, *?])/g;function UM($){return $=$.replace($Q,"^$1"),$}function qM($,Z){if($=`${$}`,$=$.replace(/(?=(\\+?)?)\1"/g,"$1$1\\\""),$=$.replace(/(?=(\\+?)?)\1$/,"$1$1"),$=`"${$}"`,$=$.replace($Q,"^$1"),Z)$=$.replace($Q,"^$1");return $}AM.command=UM;AM.argument=qM});var vJ=M((zy,fJ)=>{fJ.exports=/^#!(.*)/});var hJ=M((Fy,gJ)=>{var MM=vJ();gJ.exports=($="")=>{let Z=$.match(MM);if(!Z)return null;let[Q,W]=Z[0].replace(/#! ?/,"").split(" "),Y=Q.split("/").pop();if(Y==="env")return W;return W?`${Y} ${W}`:Y}});var mJ=M((Dy,uJ)=>{var QQ=$1("fs"),jM=hJ();function PM($){let Q=Buffer.alloc(150),W;try{W=QQ.openSync($,"r"),QQ.readSync(W,Q,0,150,0),QQ.closeSync(W)}catch(Y){}return jM(Q.toString())}uJ.exports=PM});var dJ=M((Ly,cJ)=>{var wM=$1("path"),lJ=kJ(),pJ=xJ(),TM=mJ(),IM=process.platform==="win32",EM=/\.(?:com|exe)$/i,RM=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function CM($){$.file=lJ($);let Z=$.file&&TM($.file);if(Z)return $.args.unshift($.file),$.command=Z,lJ($);return $.file}function SM($){if(!IM)return $;let Z=CM($),Q=!EM.test(Z);if($.options.forceShell||Q){let W=RM.test(Z);$.command=wM.normalize($.command),$.command=pJ.command($.command),$.args=$.args.map((G)=>pJ.argument(G,W));let Y=[$.command].concat($.args).join(" ");$.args=["/d","/s","/c",`"${Y}"`],$.command=process.env.comspec||"cmd.exe",$.options.windowsVerbatimArguments=!0}return $}function yM($,Z,Q){if(Z&&!Array.isArray(Z))Q=Z,Z=null;Z=Z?Z.slice(0):[],Q=Object.assign({},Q);let W={command:$,args:Z,options:Q,file:void 0,original:{command:$,args:Z}};return Q.shell?W:SM(W)}cJ.exports=yM});var aJ=M((Uy,nJ)=>{var WQ=process.platform==="win32";function YQ($,Z){return Object.assign(Error(`${Z} ${$.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${Z} ${$.command}`,path:$.command,spawnargs:$.args})}function bM($,Z){if(!WQ)return;let Q=$.emit;$.emit=function(W,Y){if(W==="exit"){let G=iJ(Y,Z);if(G)return Q.call($,"error",G)}return Q.apply($,arguments)}}function iJ($,Z){if(WQ&&$===1&&!Z.file)return YQ(Z.original,"spawn");return null}function _M($,Z){if(WQ&&$===1&&!Z.file)return YQ(Z.original,"spawnSync");return null}nJ.exports={hookChildProcess:bM,verifyENOENT:iJ,verifyENOENTSync:_M,notFoundError:YQ}});var oJ=M((qy,U$)=>{var rJ=$1("child_process"),GQ=dJ(),XQ=aJ();function tJ($,Z,Q){let W=GQ($,Z,Q),Y=rJ.spawn(W.command,W.args,W.options);return XQ.hookChildProcess(Y,W),Y}function kM($,Z,Q){let W=GQ($,Z,Q),Y=rJ.spawnSync(W.command,W.args,W.options);return Y.error=Y.error||XQ.verifyENOENTSync(Y.status,W),Y}U$.exports=tJ;U$.exports.spawn=tJ;U$.exports.sync=kM;U$.exports._parse=GQ;U$.exports._enoent=XQ});import{readFile as oj}from"fs/promises";import{homedir as sj}from"os";import{join as ej,resolve as f3}from"path";class SZ{done=[];undone=[];record($){this.done.push($),this.undone=[]}get canUndo(){return this.done.length>0}get canRedo(){return this.undone.length>0}peekUndo(){return this.done[this.done.length-1]}commitUndo($,Z){if(this.peekUndo()?.id!==$.id)throw Error("Checkpoint history changed during undo");this.done.pop(),this.undone.push({...$,...Z?{redoRef:Z}:{}})}peekRedo(){return this.undone[this.undone.length-1]}commitRedo($){if(this.peekRedo()?.id!==$.id)throw Error("Checkpoint history changed during redo");this.undone.pop();let{redoRef:Z,...Q}=$;this.done.push(Q)}restore($,Z=[]){this.done=[...$],this.undone=[...Z]}state(){return{done:[...this.done],undone:[...this.undone]}}all(){return[...this.done]}first(){return this.done[0]}last(){return this.done[this.done.length-1]}}class M1{commands=new Map;register($){this.commands.set($.name,$)}get($){return this.commands.get($)}list(){return[...this.commands.values()].sort(($,Z)=>$.name.localeCompare(Z.name))}has($){return this.commands.has($)}parse($){if(!$.startsWith("/"))return;let Z=$.slice(1),Q=Z.search(/\s/);return Q===-1?{name:Z,args:""}:{name:Z.slice(0,Q),args:Z.slice(Q+1).trim()}}async execute($,Z){let Q=this.parse($);if(!Q)return{handled:!1};let W=this.commands.get(Q.name);if(!W)return{handled:!0,message:`Unknown command: /${Q.name}`};return await W.run({...Z,args:Q.args})??{handled:!0}}}var d3=new Set(["rate_limit","overloaded","network"]);class l extends Error{kind;status;retryAfterMs;constructor($,Z,Q){super(Z);if(this.name="AiError",this.kind=$,Q?.status!==void 0)this.status=Q.status;if(Q?.retryAfterMs!==void 0)this.retryAfterMs=Q.retryAfterMs}get retryable(){return d3.has(this.kind)}}var i3=[/prompt is too long/i,/context window/i,/context[_ ]length[_ ]exceeded/i,/exceeds the maximum number of tokens/i,/input token count.*exceeds/i,/too many total text bytes/i];function yZ($){return i3.some((Z)=>Z.test($))}function n3($){let Z=$.get("retry-after-ms");if(Z){let W=Number.parseFloat(Z);if(!Number.isNaN(W))return W}let Q=$.get("retry-after");if(Q){let W=Number.parseFloat(Q);if(!Number.isNaN(W))return W*1000;let Y=Date.parse(Q);if(!Number.isNaN(Y))return Y-Date.now()}return}function j$($,Z,Q){let W={status:$,retryAfterMs:n3(Q)};if($===401||$===403)return new l("auth",Z,W);if($===404)return new l("not_found",Z,W);if($===429)return new l("rate_limit",Z,W);if($===529||$===503)return new l("overloaded",Z,W);if($>=500)return new l("api",Z,W);if(yZ(Z))return new l("context_too_long",Z,W);return new l("bad_request",Z,W)}var SQ={models:[{provider:"anthropic",id:"claude-opus-5",name:"Claude Opus 5",contextWindow:1e6,maxOutput:128000,modalities:["text","image"],thinking:!0,thinkingMode:"adaptive",pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25}},{provider:"anthropic",id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindow:1e6,maxOutput:128000,modalities:["text","image"],thinking:!0,thinkingMode:"adaptive",pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75}},{provider:"anthropic",id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindow:200000,maxOutput:64000,modalities:["text","image"],thinking:!0,thinkingMode:"budget",pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25}},{provider:"openai",id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindow:272000,maxOutput:128000,modalities:["text","image"],thinking:!0,pricing:{input:5,output:30,cacheRead:0.5,cacheWrite:6.25}},{provider:"openai",id:"gpt-5.1",name:"GPT-5.1",contextWindow:400000,maxOutput:128000,modalities:["text","image"],thinking:!0,pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0}},{provider:"openai",id:"gpt-5-mini",name:"GPT-5 mini",contextWindow:400000,maxOutput:128000,modalities:["text","image"],thinking:!0,pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0}},{provider:"openai-codex",id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindow:272000,maxOutput:128000,modalities:["text","image"],thinking:!0,thinkingLevels:["low","medium","high","xhigh","max","ultra"],defaultThinkingLevel:"low",pricing:{input:0,output:0,cacheRead:0,cacheWrite:0}},{provider:"openai-codex",id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindow:272000,maxOutput:128000,modalities:["text","image"],thinking:!0,thinkingLevels:["low","medium","high","xhigh","max","ultra"],defaultThinkingLevel:"medium",pricing:{input:0,output:0,cacheRead:0,cacheWrite:0}},{provider:"openai-codex",id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindow:272000,maxOutput:128000,modalities:["text","image"],thinking:!0,thinkingLevels:["low","medium","high","xhigh","max"],defaultThinkingLevel:"medium",pricing:{input:0,output:0,cacheRead:0,cacheWrite:0}},{provider:"google",id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:1048576,maxOutput:65536,modalities:["text","image"],thinking:!0,pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0}},{provider:"google",id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1048576,maxOutput:65536,modalities:["text","image"],thinking:!0,pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0}}]};var r3=[{id:"amazon-bedrock",name:"Amazon Bedrock",api:"openai-responses",env:["AWS_BEARER_TOKEN_BEDROCK"]},{id:"anthropic",name:"Anthropic",api:"anthropic-messages",baseUrl:"https://api.anthropic.com",env:["ANTHROPIC_API_KEY"],auth:"anthropic"},{id:"azure-openai-responses",name:"Azure OpenAI",api:"openai-responses",env:["AZURE_OPENAI_API_KEY"],auth:"azure"},{id:"cerebras",name:"Cerebras",api:"openai-completions",baseUrl:"https://api.cerebras.ai/v1",env:["CEREBRAS_API_KEY"]},{id:"cloudflare-ai-gateway",name:"Cloudflare AI Gateway",api:"openai-completions",env:["CLOUDFLARE_API_KEY"],auth:"cloudflare"},{id:"cloudflare-workers-ai",name:"Cloudflare Workers AI",api:"openai-completions",env:["CLOUDFLARE_API_KEY"]},{id:"deepseek",name:"DeepSeek",api:"openai-completions",baseUrl:"https://api.deepseek.com",env:["DEEPSEEK_API_KEY"]},{id:"fireworks",name:"Fireworks",api:"anthropic-messages",baseUrl:"https://api.fireworks.ai/inference",env:["FIREWORKS_API_KEY"],auth:"anthropic"},{id:"github-copilot",name:"GitHub Copilot",api:"openai-responses",baseUrl:"https://api.individual.githubcopilot.com",env:["COPILOT_GITHUB_TOKEN"],headers:{"user-agent":"GitHubCopilotChat/0.35.0","editor-version":"vscode/1.107.0","editor-plugin-version":"copilot-chat/0.35.0","copilot-integration-id":"vscode-chat"}},{id:"google",name:"Google",api:"google-generative-ai",baseUrl:"https://generativelanguage.googleapis.com/v1beta",env:["GEMINI_API_KEY"],auth:"google"},{id:"google-vertex",name:"Google Vertex AI",api:"google-vertex",env:["GOOGLE_CLOUD_API_KEY"],auth:"google"},{id:"groq",name:"Groq",api:"openai-completions",baseUrl:"https://api.groq.com/openai/v1",env:["GROQ_API_KEY"]},{id:"huggingface",name:"Hugging Face",api:"openai-completions",baseUrl:"https://router.huggingface.co/v1",env:["HF_TOKEN"]},{id:"kimi-coding",name:"Kimi For Coding",api:"anthropic-messages",baseUrl:"https://api.kimi.com/coding",env:["KIMI_API_KEY"],auth:"anthropic",headers:{"user-agent":"KimiCLI/1.5"}},{id:"minimax",name:"MiniMax",api:"anthropic-messages",baseUrl:"https://api.minimax.io/anthropic",env:["MINIMAX_API_KEY"],auth:"anthropic"},{id:"mistral",name:"Mistral",api:"openai-completions",baseUrl:"https://api.mistral.ai/v1",env:["MISTRAL_API_KEY"]},{id:"moonshotai",name:"Moonshot AI",api:"openai-completions",baseUrl:"https://api.moonshot.ai/v1",env:["MOONSHOT_API_KEY"]},{id:"nvidia",name:"NVIDIA NIM",api:"openai-completions",baseUrl:"https://integrate.api.nvidia.com/v1",env:["NVIDIA_API_KEY"],headers:{"nvcf-poll-seconds":"3600"}},{id:"openai",name:"OpenAI",api:"openai-responses",baseUrl:"https://api.openai.com/v1",env:["OPENAI_API_KEY"]},{id:"openai-codex",name:"OpenAI Codex",api:"openai-responses",baseUrl:"https://chatgpt.com/backend-api/codex",env:[]},{id:"opencode",name:"OpenCode Zen",api:"openai-completions",baseUrl:"https://opencode.ai/zen/v1",env:["OPENCODE_API_KEY"]},{id:"opencode-go",name:"OpenCode Go",api:"openai-completions",baseUrl:"https://opencode.ai/zen/go/v1",env:["OPENCODE_API_KEY"]},{id:"openrouter",name:"OpenRouter",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",env:["OPENROUTER_API_KEY"]},{id:"qwen-token-plan",name:"Qwen Token Plan",api:"openai-completions",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",env:["QWEN_TOKEN_PLAN_API_KEY"]},{id:"vercel-ai-gateway",name:"Vercel AI Gateway",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",env:["AI_GATEWAY_API_KEY"],auth:"anthropic"},{id:"xai",name:"xAI",api:"openai-completions",baseUrl:"https://api.x.ai/v1",env:["XAI_API_KEY"]},{id:"zai",name:"Z.AI Coding Plan",api:"openai-completions",baseUrl:"https://api.z.ai/api/coding/paas/v4",env:["ZAI_API_KEY"]}],u0=new Map(r3.map(($)=>[$.id,$]));function m1($){return u0.get($)}function P$($){return $.api??m1($.provider)?.api??"openai-completions"}function z6($){return $.baseUrl??m1($.provider)?.baseUrl}function l1($){return m1($)?.env??[]}var t3=new Set(['"',"\\","/","b","f","n","r","t","u"]),o3={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"};function F6($){let Z="",Q=!1;for(let W=0;W<$.length;W++){let Y=$[W];if(!Q){if(Z+=Y,Y==='"')Q=!0;continue}if(Y==='"'){Z+=Y,Q=!1;continue}if(Y==="\\"){let X=$[W+1];if(X===void 0){Z+="\\\\";continue}if(X==="u"&&/^[0-9a-fA-F]{4}$/.test($.slice(W+2,W+6))){Z+=$.slice(W,W+6),W+=5;continue}if(X!=="u"&&t3.has(X)){Z+=`\\${X}`,W+=1;continue}Z+="\\\\";continue}let G=Y.codePointAt(0)??0;if(G<=31)Z+=o3[Y]??`\\u${G.toString(16).padStart(4,"0")}`;else Z+=Y}return Z}function yQ($){try{return JSON.parse($)}catch(Z){let Q=F6($);if(Q!==$)return JSON.parse(Q);throw Z}}class bQ{text;pos=0;constructor($){this.text=$}ws(){while(this.pos<this.text.length&&/\s/.test(this.text[this.pos]))this.pos++}peek(){return this.text[this.pos]}value(){this.ws();let $=this.peek();if($===void 0)return;if($==="{")return this.object();if($==="[")return this.array();if($==='"')return this.string();if($==="t"||$==="f"||$==="n")return this.literal();if($==="-"||/[0-9]/.test($))return this.number();return}object(){let $={};this.pos++;for(;;){if(this.ws(),this.peek()===void 0)return $;if(this.peek()==="}")return this.pos++,$;if(this.peek()===","){this.pos++;continue}if(this.peek()!=='"')return $;let Z=this.pos,Q=this.string();if(this.pos>=this.text.length&&!this.closedString(Z))return $;if(this.ws(),this.peek()!==":")return $;if(this.pos++,this.ws(),this.peek()===void 0)return $;let W=this.pos,Y=this.value();if(Y!==void 0||this.consumedNull(W))$[Q]=Y??null}}array(){let $=[];this.pos++;for(;;){if(this.ws(),this.peek()===void 0)return $;if(this.peek()==="]")return this.pos++,$;if(this.peek()===","){this.pos++;continue}let Z=this.pos,Q=this.value();if(Q===void 0&&!this.consumedNull(Z))return $;$.push(Q??null)}}closedString($){let Z=$+1;while(Z<this.text.length)if(this.text[Z]==="\\")Z+=2;else if(this.text[Z]==='"')return!0;else Z+=1;return!1}consumedNull($){return this.text.slice($,this.pos).trim().startsWith("null")}string(){this.pos++;let $="";while(this.pos<this.text.length){let Z=this.text[this.pos];if(Z==='"')return this.pos++,$;if(Z==="\\"){let Q=this.text[this.pos+1];if(Q===void 0)return this.pos++,$;if(Q==="u"){let Y=this.text.slice(this.pos+2,this.pos+6);if(/^[0-9a-fA-F]{4}$/.test(Y))$+=String.fromCharCode(Number.parseInt(Y,16)),this.pos+=6;else return this.pos=this.text.length,$;continue}$+={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
10
|
-
`,r:"\r",t:"\t"}[Q]??Q,this.pos+=2;continue}$+=Z,this.pos++}return $}literal(){for(let[$,Z]of[["true",!0],["false",!1],["null",null]])if($.startsWith(this.text.slice(this.pos,this.pos+$.length))){let Q=this.text.slice(this.pos);if($.startsWith(Q))return this.pos=this.text.length,Z;if(Q.startsWith($))return this.pos+=$.length,Z}this.pos=this.text.length;return}number(){let Z=/^-?[0-9]*\.?[0-9]*(?:[eE][+-]?[0-9]*)?/.exec(this.text.slice(this.pos))?.[0]??"";this.pos+=Z.length;let Q=Number(Z);return Number.isNaN(Q)?void 0:Q}}function
|
|
11
|
-
`)};return $.event=null,$.data=[],Z}function
|
|
12
|
-
`)B+=1;G=G.slice(B);let z=kQ(K,Y);if(z)yield z;J=G.search(/[\r\n]/)}};try{while(!0){if(Z?.aborted)throw Error("Request was aborted");let{value:K,done:B}=await Q.read();if(B)break;G+=W.decode(K,{stream:!0}),yield*X()}if(G+=W.decode(),yield*X(),G.length>0){let K=kQ(G,Y);if(K)yield K}let J=xQ(Y);if(J)yield J}finally{Q.releaseLock()}}function p0($){return $.replace(/\/+$/,"")}function ZK($){for(let Z of $){let Q=process.env[Z];if(Q)return Q}return}async function Z1($,Z){let Q=await Z?.getCredentials?.();if(Q){if($.provider==="anthropic"&&Q.type==="oauth")throw new l("auth","Anthropic account-plan authentication is not supported");return Q}let W=Z?.apiKey??ZK(l1($.provider));if(!W){let Y=l1($.provider),G=Y.length>0?`set ${Y.join(" or ")} or run /login`:"run /login";throw new l("auth",`No credentials for provider "${$.provider}" (${G})`)}return{type:"apiKey",apiKey:W}}function QK($){let Z=process.env.CLOUDFLARE_ACCOUNT_ID;if(!Z)return;if($.provider==="cloudflare-workers-ai")return`https://api.cloudflare.com/client/v4/accounts/${Z}/ai/v1`;let Q=process.env.CLOUDFLARE_GATEWAY_ID;if(!Q)return;let W=`https://gateway.ai.cloudflare.com/v1/${Z}/${Q}`;if($.api==="anthropic-messages")return`${W}/anthropic`;if($.api==="openai-responses")return`${W}/openai`;return`${W}/compat`}function WK(){let $=process.env.AZURE_OPENAI_BASE_URL,Z=process.env.AZURE_OPENAI_RESOURCE_NAME;if(!$&&!Z)return;let Q=p0($??`https://${Z}.openai.azure.com`);return Q.endsWith("/openai/v1")?Q:`${Q}/openai/v1`}function YK(){let $=process.env.GOOGLE_CLOUD_PROJECT??process.env.GCLOUD_PROJECT,Z=process.env.GOOGLE_CLOUD_LOCATION;if(!$||!Z)return"https://aiplatform.googleapis.com/v1/publishers/google";return`https://${Z}-aiplatform.googleapis.com/v1/projects/${$}/locations/${Z}/publishers/google`}function GK(){return`https://bedrock-runtime.${process.env.AWS_REGION??process.env.AWS_DEFAULT_REGION??"us-east-1"}.amazonaws.com/openai/v1`}function XK($,Z){if(Z?.baseUrl)return p0(Z.baseUrl);if($.provider.startsWith("cloudflare-")){let Q=QK($);if(Q)return p0(Q)}if($.provider==="azure-openai-responses"){let Q=WK();if(Q)return p0(Q)}if($.provider==="google-vertex"){let Q=YK();if(Q)return p0(Q)}if($.provider==="amazon-bedrock")return GK();return p0(z6($)??"")}function p1($,Z){let Q=p0($),W=Z.startsWith("/")?Z:`/${Z}`;if(!Q)return W;if(W.startsWith("/v1/")&&Q.endsWith("/v1"))return`${Q}${W.slice(3)}`;return`${Q}${W}`}function Q1($,Z){let Q=m1($.provider),W={...Q?.headers,...$.headers};if(Z.type==="oauth")return{...W,authorization:`Bearer ${Z.accessToken}`,...Z.headers};if(Q?.auth==="anthropic")return{...W,"x-api-key":Z.apiKey};if(Q?.auth==="google")return{...W,"x-goog-api-key":Z.apiKey};if(Q?.auth==="azure")return{...W,"api-key":Z.apiKey};if(Q?.auth==="cloudflare")return{...W,"cf-aig-authorization":`Bearer ${Z.apiKey}`};return{...W,authorization:`Bearer ${Z.apiKey}`}}function W1($,Z,Q){if(Q?.baseUrl)return p0(Q.baseUrl);if(Z.type==="oauth"&&Z.baseUrl)return p0(Z.baseUrl);return XK($,Q)}function L6($,Z){return(Z.inputTokens*$.input+Z.outputTokens*$.output+Z.cacheReadTokens*$.cacheRead+Z.cacheWriteTokens*$.cacheWrite)/1e6}function w$(){return{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,costUsd:0}}function j1($,Z){return{inputTokens:$.inputTokens+Z.inputTokens,outputTokens:$.outputTokens+Z.outputTokens,cacheReadTokens:$.cacheReadTokens+Z.cacheReadTokens,cacheWriteTokens:$.cacheWriteTokens+Z.cacheWriteTokens,costUsd:($.costUsd??0)+(Z.costUsd??0)}}class bZ{isComplete;extractResult;queue=[];waiting=[];done=!1;finalResult;resolveFinal;constructor($,Z){this.isComplete=$;this.extractResult=Z;this.finalResult=new Promise((Q)=>{this.resolveFinal=Q})}push($){if(this.done)return;if(this.isComplete($))this.done=!0,this.resolveFinal(this.extractResult($));let Z=this.waiting.shift();if(Z)Z({value:$,done:!1});else this.queue.push($)}end(){this.done=!0;while(this.waiting.length>0)this.waiting.shift()?.({value:void 0,done:!0})}async*[Symbol.asyncIterator](){while(!0)if(this.queue.length>0)yield this.queue.shift();else if(this.done)return;else{let $=await new Promise((Z)=>this.waiting.push(Z));if($.done)return;yield $.value}}result(){return this.finalResult}}class _Z extends bZ{constructor(){super(($)=>$.type==="done"||$.type==="error",($)=>{if($.type==="done")return $.message;if($.type==="error")return $.error;throw Error("unexpected final event")})}}function JK($){return{role:"assistant",content:[],model:`${$.provider}/${$.id}`,usage:{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,costUsd:0},stopReason:"end",timestamp:Date.now()}}function c0($,Z){Z.usage.costUsd=L6($.pricing,Z.usage)}function Y1($,Z,Q){let W=new _Z,Y=JK($);return(async()=>{try{if(await Q(W,Y),Z?.signal?.aborted)throw Error("Request was aborted");if(Y.stopReason==="error")throw new l("api",Y.errorMessage??"provider reported an error");W.push({type:"done",message:Y})}catch(G){Y.stopReason=Z?.signal?.aborted?"aborted":"error",Y.errorMessage=G instanceof Error?G.message:JSON.stringify(G),W.push({type:"error",reason:Y.stopReason,...G instanceof l?{errorKind:G.kind}:{},error:Y})}finally{W.end()}})(),W}async function G1($,Z,Q,W){let Y=W?.fetch??fetch,G;try{G=await Y($,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...Z},body:JSON.stringify(Q),...W?.signal?{signal:W.signal}:{}})}catch(X){if(W?.signal?.aborted)throw X;let J=X instanceof Error?X.message:String(X);throw new l("network",J)}if(!G.ok){let X=await G.text();throw j$(G.status,X,G.headers)}if(!G.body)throw new l("api","response has no body");return G}var KK="2023-06-01",U6={type:"ephemeral"};function fQ($){return $.filter((Z)=>Z.type!=="text"||Z.text.trim().length>0).map((Z)=>Z.type==="text"?{type:"text",text:Z.text}:{type:"image",source:{type:"base64",media_type:Z.mimeType,data:Z.data}})}function BK($){let Z=[];for(let Q of $)if(Q.type==="text"){if(Q.text.trim().length===0)continue;Z.push({type:"text",text:Q.text})}else if(Q.type==="thinking"){if(Q.redacted)Z.push({type:"redacted_thinking",data:Q.signature??""});else if(Q.signature)Z.push({type:"thinking",thinking:Q.thinking,signature:Q.signature});else if(Q.thinking.trim().length>0)Z.push({type:"text",text:Q.thinking})}else Z.push({type:"tool_use",id:Q.id,name:Q.name,input:Q.arguments??{}});return Z}function HK($,Z){let Q=[];for(let Y=0;Y<$.length;Y++){let G=$[Y];if(G.role==="user"){let X=fQ(G.content);if(X.length>0)Q.push({role:"user",content:X})}else if(G.role==="assistant"){let X=BK(G.content);if(X.length>0)Q.push({role:"assistant",content:X})}else{let X=[];while(Y<$.length){let J=$[Y];if(!J||J.role!=="toolResult")break;X.push({type:"tool_result",tool_use_id:J.toolCallId,content:fQ(J.content),is_error:J.isError}),Y++}Y--,Q.push({role:"user",content:X})}}let W=Q[Q.length-1];if(Z&&W&&W.role==="user"){let Y=W.content,G=Y[Y.length-1];if(G)G.cache_control=U6}return Q}function VK($,Z,Q){if(!$.thinking||Z===void 0)return;if(Z==="off"){Q.thinking={type:"disabled"};return}if($.thinkingMode==="budget"){let W={low:4096,medium:8192,high:16384};Q.thinking={type:"enabled",budget_tokens:W[Z]??8192,display:"summarized"};return}Q.thinking={type:"adaptive",display:"summarized"},Q.output_config={effort:Z}}function zK($,Z,Q){let W=$.provider==="anthropic",Y={model:$.id,max_tokens:Q?.maxTokens??$.maxOutput,messages:HK(Z.messages,W),stream:!0};if(Z.systemPrompt&&Z.systemPrompt.length>0){let G=Z.systemPrompt.reduce((X,J,K)=>J.dynamic?X:K,-1);Y.system=Z.systemPrompt.map((X,J)=>({type:"text",text:X.text,...W&&J===G?{cache_control:U6}:{}}))}if(Z.tools&&Z.tools.length>0)Y.tools=Z.tools.map((G,X)=>({name:G.name,description:G.description,input_schema:G.inputSchema,...W&&X===(Z.tools?.length??0)-1?{cache_control:U6}:{}}));if(Q?.temperature!==void 0)Y.temperature=Q.temperature;return VK($,Q?.thinkingLevel,Y),Y}function FK($){switch($){case"end_turn":case"stop_sequence":case"pause_turn":return{stopReason:"end"};case"max_tokens":return{stopReason:"length"};case"tool_use":return{stopReason:"toolUse"};case"refusal":return{stopReason:"error",errorMessage:"The model refused to complete the request"};case"model_context_window_exceeded":return{stopReason:"error",errorMessage:"Context window exceeded"};default:return{stopReason:"end"}}}function vQ($,Z,Q){return Y1($,Q,async(W,Y)=>{let G=zK($,Z,Q),X=await m0(async()=>{let B=await Z1($,Q),z=W1($,B,Q),V={"anthropic-version":KK,...Q1($,B),...Q?.headers};return G1(p1(z,"/v1/messages"),V,G,Q)},{...Q?.maxRetries!==void 0?{maxRetries:Q.maxRetries}:{},...Q?.signal?{signal:Q.signal}:{}});W.push({type:"start",partial:Y});let J=new Map,K=X.body;for await(let B of l0(K,Q?.signal)){if(B.event==="error")throw Error(B.data);if(!B.data)continue;let z=JSON.parse(B.data),V=z.type;if(V==="message_start"){let F=z.message?.usage;if(F)Y.usage.inputTokens=F.input_tokens??0,Y.usage.outputTokens=F.output_tokens??0,Y.usage.cacheReadTokens=F.cache_read_input_tokens??0,Y.usage.cacheWriteTokens=F.cache_creation_input_tokens??0,c0($,Y)}else if(V==="content_block_start"){let{index:F,content_block:D}=z,L=Y.content.length;J.set(F,{contentIndex:L,partialJson:""});let U=D.type;if(U==="text")Y.content.push({type:"text",text:""}),W.push({type:"text_start",contentIndex:L,partial:Y});else if(U==="thinking")Y.content.push({type:"thinking",thinking:"",signature:""}),W.push({type:"thinking_start",contentIndex:L,partial:Y});else if(U==="redacted_thinking")Y.content.push({type:"thinking",thinking:"[reasoning redacted]",signature:D.data??"",redacted:!0}),W.push({type:"thinking_start",contentIndex:L,partial:Y});else if(U==="tool_use")Y.content.push({type:"toolCall",id:D.id,name:D.name,arguments:D.input??{}}),W.push({type:"toolcall_start",contentIndex:L,partial:Y});else J.delete(F)}else if(V==="content_block_delta"){let F=J.get(z.index);if(!F)continue;let D=Y.content[F.contentIndex],L=z.delta,U=L.type;if(U==="text_delta"&&D?.type==="text")D.text+=L.text,W.push({type:"text_delta",contentIndex:F.contentIndex,delta:L.text,partial:Y});else if(U==="thinking_delta"&&D?.type==="thinking")D.thinking+=L.thinking,W.push({type:"thinking_delta",contentIndex:F.contentIndex,delta:L.thinking,partial:Y});else if(U==="input_json_delta"&&D?.type==="toolCall")F.partialJson+=L.partial_json,D.arguments=b0(F.partialJson),W.push({type:"toolcall_delta",contentIndex:F.contentIndex,delta:L.partial_json,partial:Y});else if(U==="signature_delta"&&D?.type==="thinking")D.signature=(D.signature??"")+L.signature}else if(V==="content_block_stop"){let F=J.get(z.index);if(!F)continue;let D=Y.content[F.contentIndex];if(D?.type==="text")W.push({type:"text_end",contentIndex:F.contentIndex,content:D.text,partial:Y});else if(D?.type==="thinking")W.push({type:"thinking_end",contentIndex:F.contentIndex,content:D.thinking,partial:Y});else if(D?.type==="toolCall")D.arguments=b0(F.partialJson),W.push({type:"toolcall_end",contentIndex:F.contentIndex,toolCall:D,partial:Y})}else if(V==="message_delta"){let F=z.delta;if(F?.stop_reason){let L=FK(F.stop_reason);if(Y.stopReason=L.stopReason,L.errorMessage)Y.errorMessage=L.errorMessage}let D=z.usage;if(D){if(D.input_tokens!=null)Y.usage.inputTokens=D.input_tokens;if(D.output_tokens!=null)Y.usage.outputTokens=D.output_tokens;if(D.cache_read_input_tokens!=null)Y.usage.cacheReadTokens=D.cache_read_input_tokens;if(D.cache_creation_input_tokens!=null)Y.usage.cacheWriteTokens=D.cache_creation_input_tokens;c0($,Y)}}}})}var T$={id:"anthropic",stream:vQ};function DK($){let Z=[],Q=new Map,W=(Y,G)=>{if(G.length===0)return;let X=Z[Z.length-1];if(X&&X.role===Y)X.parts.push(...G);else Z.push({role:Y,parts:G})};for(let Y of $)if(Y.role==="user")W("user",Y.content.map((G)=>G.type==="text"?{text:G.text}:{inlineData:{mimeType:G.mimeType,data:G.data}}));else if(Y.role==="assistant"){let G=[];for(let X of Y.content)if(X.type==="text"){if(X.text.trim().length>0)G.push({text:X.text})}else if(X.type==="thinking");else Q.set(X.id,X.name),G.push({functionCall:{name:X.name,args:X.arguments??{}},...X.signature?{thoughtSignature:X.signature}:{}});W("model",G)}else{let G=Q.get(Y.toolCallId)??Y.toolName,X=Y.content.filter((K)=>K.type==="text").map((K)=>K.text).join(`
|
|
13
|
-
`),J=[{functionResponse:{name:G,response:
|
|
14
|
-
`);Z.push({type:"function_call_output",call_id:Q.toolCallId,output:
|
|
9
|
+
deps: ${Q}}`};var iN={keyword:"dependencies",type:"object",schemaType:"object",error:NX.error,code($){let[Z,Q]=nN($);qX($,Z),AX($,Q)}};function nN({schema:$}){let Z={},Q={};for(let Y in $){if(Y==="__proto__")continue;let W=Array.isArray($[Y])?Z:Q;W[Y]=$[Y]}return[Z,Q]}function qX($,Z=$.schema){let{gen:Q,data:Y,it:W}=$;if(Object.keys(Z).length===0)return;let G=Q.let("missing");for(let X in Z){let J=Z[X];if(J.length===0)continue;let B=(0,RZ.propertyInData)(Q,Y,X,W.opts.ownProperties);if($.setParams({property:X,depsCount:J.length,deps:J.join(", ")}),W.allErrors)Q.if(B,()=>{for(let K of J)(0,RZ.checkReportMissingProp)($,K)});else Q.if(o4._`${B} && (${(0,RZ.checkMissingProp)($,J,G)})`),(0,RZ.reportMissingProp)($,G),Q.else()}}NX.validatePropertyDeps=qX;function AX($,Z=$.schema){let{gen:Q,data:Y,keyword:W,it:G}=$,X=Q.name("valid");for(let J in Z){if((0,dN.alwaysValidSchema)(G,Z[J]))continue;Q.if((0,RZ.propertyInData)(Q,Y,J,G.opts.ownProperties),()=>{let B=$.subschema({keyword:W,schemaProp:J},X);$.mergeValidEvaluated(B,X)},()=>Q.var(X,!0)),$.ok(X)}}NX.validateSchemaDeps=AX;NX.default=iN});var IX=M((wX)=>{Object.defineProperty(wX,"__esModule",{value:!0});var PX=b(),tN=k(),oN={message:"property name must be valid",params:({params:$})=>PX._`{propertyName: ${$.propertyName}}`},sN={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:oN,code($){let{gen:Z,schema:Q,data:Y,it:W}=$;if((0,tN.alwaysValidSchema)(W,Q))return;let G=Z.name("valid");Z.forIn("key",Y,(X)=>{$.setParams({propertyName:X}),$.subschema({keyword:"propertyNames",data:X,dataTypes:["string"],propertyName:X,compositeRule:!0},G),Z.if((0,PX.not)(G),()=>{if($.error(!0),!W.allErrors)Z.break()})}),$.ok(G)}};wX.default=sN});var s4=M((TX)=>{Object.defineProperty(TX,"__esModule",{value:!0});var G6=P0(),b0=b(),$O=e0(),X6=k(),ZO={message:"must NOT have additional properties",params:({params:$})=>b0._`{additionalProperty: ${$.additionalProperty}}`},QO={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:ZO,code($){let{gen:Z,schema:Q,parentSchema:Y,data:W,errsCount:G,it:X}=$;if(!G)throw Error("ajv implementation error");let{allErrors:J,opts:B}=X;if(X.props=!0,B.removeAdditional!=="all"&&(0,X6.alwaysValidSchema)(X,Q))return;let K=(0,G6.allSchemaProperties)(Y.properties),V=(0,G6.allSchemaProperties)(Y.patternProperties);z(),$.ok(b0._`${G} === ${$O.default.errors}`);function z(){Z.forIn("key",W,(q)=>{if(!K.length&&!V.length)L(q);else Z.if(F(q),()=>L(q))})}function F(q){let A;if(K.length>8){let N=(0,X6.schemaRefOrVal)(X,Y.properties,"properties");A=(0,G6.isOwnProperty)(Z,N,q)}else if(K.length)A=(0,b0.or)(...K.map((N)=>b0._`${q} === ${N}`));else A=b0.nil;if(V.length)A=(0,b0.or)(A,...V.map((N)=>b0._`${(0,G6.usePattern)($,N)}.test(${q})`));return(0,b0.not)(A)}function D(q){Z.code(b0._`delete ${W}[${q}]`)}function L(q){if(B.removeAdditional==="all"||B.removeAdditional&&Q===!1){D(q);return}if(Q===!1){if($.setParams({additionalProperty:q}),$.error(),!J)Z.break();return}if(typeof Q=="object"&&!(0,X6.alwaysValidSchema)(X,Q)){let A=Z.name("valid");if(B.removeAdditional==="failing")U(q,A,!1),Z.if((0,b0.not)(A),()=>{$.reset(),D(q)});else if(U(q,A),!J)Z.if((0,b0.not)(A),()=>Z.break())}}function U(q,A,N){let j={keyword:"additionalProperties",dataProp:q,dataPropType:X6.Type.Str};if(N===!1)Object.assign(j,{compositeRule:!0,createErrors:!1,allErrors:!1});$.subschema(j,A)}}};TX.default=QO});var SX=M((CX)=>{Object.defineProperty(CX,"__esModule",{value:!0});var WO=UZ(),EX=P0(),e4=k(),RX=s4(),GO={keyword:"properties",type:"object",schemaType:"object",code($){let{gen:Z,schema:Q,parentSchema:Y,data:W,it:G}=$;if(G.opts.removeAdditional==="all"&&Y.additionalProperties===void 0)RX.default.code(new WO.KeywordCxt(G,RX.default,"additionalProperties"));let X=(0,EX.allSchemaProperties)(Q);for(let z of X)G.definedProperties.add(z);if(G.opts.unevaluated&&X.length&&G.props!==!0)G.props=e4.mergeEvaluated.props(Z,(0,e4.toHash)(X),G.props);let J=X.filter((z)=>!(0,e4.alwaysValidSchema)(G,Q[z]));if(J.length===0)return;let B=Z.name("valid");for(let z of J){if(K(z))V(z);else{if(Z.if((0,EX.propertyInData)(Z,W,z,G.opts.ownProperties)),V(z),!G.allErrors)Z.else().var(B,!0);Z.endIf()}$.it.definedProperties.add(z),$.ok(B)}function K(z){return G.opts.useDefaults&&!G.compositeRule&&Q[z].default!==void 0}function V(z){$.subschema({keyword:"properties",schemaProp:z,dataProp:z},B)}}};CX.default=GO});var kX=M((xX)=>{Object.defineProperty(xX,"__esModule",{value:!0});var yX=P0(),J6=b(),bX=k(),_X=k(),JO={keyword:"patternProperties",type:"object",schemaType:"object",code($){let{gen:Z,schema:Q,data:Y,parentSchema:W,it:G}=$,{opts:X}=G,J=(0,yX.allSchemaProperties)(Q),B=J.filter((U)=>(0,bX.alwaysValidSchema)(G,Q[U]));if(J.length===0||B.length===J.length&&(!G.opts.unevaluated||G.props===!0))return;let K=X.strictSchema&&!X.allowMatchingProperties&&W.properties,V=Z.name("valid");if(G.props!==!0&&!(G.props instanceof J6.Name))G.props=(0,_X.evaluatedPropsToName)(Z,G.props);let{props:z}=G;F();function F(){for(let U of J){if(K)D(U);if(G.allErrors)L(U);else Z.var(V,!0),L(U),Z.if(V)}}function D(U){for(let q in K)if(new RegExp(U).test(q))(0,bX.checkStrictMode)(G,`property ${q} matches pattern ${U} (use allowMatchingProperties)`)}function L(U){Z.forIn("key",Y,(q)=>{Z.if(J6._`${(0,yX.usePattern)($,U)}.test(${q})`,()=>{let A=B.includes(U);if(!A)$.subschema({keyword:"patternProperties",schemaProp:U,dataProp:q,dataPropType:_X.Type.Str},V);if(G.opts.unevaluated&&z!==!0)Z.assign(J6._`${z}[${q}]`,!0);else if(!A&&!G.allErrors)Z.if((0,J6.not)(V),()=>Z.break())})})}}};xX.default=JO});var vX=M((fX)=>{Object.defineProperty(fX,"__esModule",{value:!0});var BO=k(),HO={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code($){let{gen:Z,schema:Q,it:Y}=$;if((0,BO.alwaysValidSchema)(Y,Q)){$.fail();return}let W=Z.name("valid");$.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},W),$.failResult(W,()=>$.reset(),()=>$.error())},error:{message:"must NOT be valid"}};fX.default=HO});var hX=M((gX)=>{Object.defineProperty(gX,"__esModule",{value:!0});var zO=P0(),FO={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:zO.validateUnion,error:{message:"must match a schema in anyOf"}};gX.default=FO});var mX=M((uX)=>{Object.defineProperty(uX,"__esModule",{value:!0});var K6=b(),LO=k(),UO={message:"must match exactly one schema in oneOf",params:({params:$})=>K6._`{passingSchemas: ${$.passing}}`},qO={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:UO,code($){let{gen:Z,schema:Q,parentSchema:Y,it:W}=$;if(!Array.isArray(Q))throw Error("ajv implementation error");if(W.opts.discriminator&&Y.discriminator)return;let G=Q,X=Z.let("valid",!1),J=Z.let("passing",null),B=Z.name("_valid");$.setParams({passing:J}),Z.block(K),$.result(X,()=>$.reset(),()=>$.error(!0));function K(){G.forEach((V,z)=>{let F;if((0,LO.alwaysValidSchema)(W,V))Z.var(B,!0);else F=$.subschema({keyword:"oneOf",schemaProp:z,compositeRule:!0},B);if(z>0)Z.if(K6._`${B} && ${X}`).assign(X,!1).assign(J,K6._`[${J}, ${z}]`).else();Z.if(B,()=>{if(Z.assign(X,!0),Z.assign(J,z),F)$.mergeEvaluated(F,K6.Name)})})}}};uX.default=qO});var pX=M((lX)=>{Object.defineProperty(lX,"__esModule",{value:!0});var NO=k(),OO={keyword:"allOf",schemaType:"array",code($){let{gen:Z,schema:Q,it:Y}=$;if(!Array.isArray(Q))throw Error("ajv implementation error");let W=Z.name("valid");Q.forEach((G,X)=>{if((0,NO.alwaysValidSchema)(Y,G))return;let J=$.subschema({keyword:"allOf",schemaProp:X},W);$.ok(W),$.mergeEvaluated(J)})}};lX.default=OO});var nX=M((iX)=>{Object.defineProperty(iX,"__esModule",{value:!0});var B6=b(),dX=k(),jO={message:({params:$})=>B6.str`must match "${$.ifClause}" schema`,params:({params:$})=>B6._`{failingKeyword: ${$.ifClause}}`},PO={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:jO,code($){let{gen:Z,parentSchema:Q,it:Y}=$;if(Q.then===void 0&&Q.else===void 0)(0,dX.checkStrictMode)(Y,'"if" without "then" and "else" is ignored');let W=cX(Y,"then"),G=cX(Y,"else");if(!W&&!G)return;let X=Z.let("valid",!0),J=Z.name("_valid");if(B(),$.reset(),W&&G){let V=Z.let("ifClause");$.setParams({ifClause:V}),Z.if(J,K("then",V),K("else",V))}else if(W)Z.if(J,K("then"));else Z.if((0,B6.not)(J),K("else"));$.pass(X,()=>$.error(!0));function B(){let V=$.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},J);$.mergeEvaluated(V)}function K(V,z){return()=>{let F=$.subschema({keyword:V},J);if(Z.assign(X,J),$.mergeValidEvaluated(F,X),z)Z.assign(z,B6._`${V}`);else $.setParams({ifClause:V})}}}};function cX($,Z){let Q=$.schema[Z];return Q!==void 0&&!(0,dX.alwaysValidSchema)($,Q)}iX.default=PO});var rX=M((aX)=>{Object.defineProperty(aX,"__esModule",{value:!0});var IO=k(),TO={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:$,parentSchema:Z,it:Q}){if(Z.if===void 0)(0,IO.checkStrictMode)(Q,`"${$}" without "if" is ignored`)}};aX.default=TO});var oX=M((tX)=>{Object.defineProperty(tX,"__esModule",{value:!0});var RO=r4(),CO=VX(),SO=t4(),yO=DX(),bO=UX(),_O=jX(),xO=IX(),kO=s4(),fO=SX(),vO=kX(),gO=vX(),hO=hX(),uO=mX(),mO=pX(),lO=nX(),pO=rX();function cO($=!1){let Z=[gO.default,hO.default,uO.default,mO.default,lO.default,pO.default,xO.default,kO.default,_O.default,fO.default,vO.default];if($)Z.push(CO.default,yO.default);else Z.push(RO.default,SO.default);return Z.push(bO.default),Z}tX.default=cO});var eX=M((sX)=>{Object.defineProperty(sX,"__esModule",{value:!0});var i=b(),iO={message:({schemaCode:$})=>i.str`must match format "${$}"`,params:({schemaCode:$})=>i._`{format: ${$}}`},nO={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:iO,code($,Z){let{gen:Q,data:Y,$data:W,schema:G,schemaCode:X,it:J}=$,{opts:B,errSchemaPath:K,schemaEnv:V,self:z}=J;if(!B.validateFormats)return;if(W)F();else D();function F(){let L=Q.scopeValue("formats",{ref:z.formats,code:B.code.formats}),U=Q.const("fDef",i._`${L}[${X}]`),q=Q.let("fType"),A=Q.let("format");Q.if(i._`typeof ${U} == "object" && !(${U} instanceof RegExp)`,()=>Q.assign(q,i._`${U}.type || "string"`).assign(A,i._`${U}.validate`),()=>Q.assign(q,i._`"string"`).assign(A,U)),$.fail$data((0,i.or)(N(),j()));function N(){if(B.strictSchema===!1)return i.nil;return i._`${X} && !${A}`}function j(){let P=V.$async?i._`(${U}.async ? await ${A}(${Y}) : ${A}(${Y}))`:i._`${A}(${Y})`,O=i._`(typeof ${A} == "function" ? ${P} : ${A}.test(${Y}))`;return i._`${A} && ${A} !== true && ${q} === ${Z} && !${O}`}}function D(){let L=z.formats[G];if(!L){N();return}if(L===!0)return;let[U,q,A]=j(L);if(U===Z)$.pass(P());function N(){if(B.strictSchema===!1){z.logger.warn(O());return}throw Error(O());function O(){return`unknown format "${G}" ignored in schema at path "${K}"`}}function j(O){let C=O instanceof RegExp?(0,i.regexpCode)(O):B.code.formats?i._`${B.code.formats}${(0,i.getProperty)(G)}`:void 0,g=Q.scopeValue("formats",{key:G,ref:O,code:C});if(typeof O=="object"&&!(O instanceof RegExp))return[O.type||"string",O.validate,i._`${g}.validate`];return["string",O,g]}function P(){if(typeof L=="object"&&!(L instanceof RegExp)&&L.async){if(!V.$async)throw Error("async format in sync schema");return i._`await ${A}(${Y})`}return typeof q=="function"?i._`${A}(${Y})`:i._`${A}.test(${Y})`}}}};sX.default=nO});var ZJ=M(($J)=>{Object.defineProperty($J,"__esModule",{value:!0});var rO=eX(),tO=[rO.default];$J.default=tO});var WJ=M((QJ)=>{Object.defineProperty(QJ,"__esModule",{value:!0});QJ.contentVocabulary=QJ.metadataVocabulary=void 0;QJ.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];QJ.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var JJ=M((XJ)=>{Object.defineProperty(XJ,"__esModule",{value:!0});var eO=CG(),$M=QX(),ZM=oX(),QM=ZJ(),GJ=WJ(),YM=[eO.default,$M.default,(0,ZM.default)(),QM.default,GJ.metadataVocabulary,GJ.contentVocabulary];XJ.default=YM});var VJ=M((BJ)=>{Object.defineProperty(BJ,"__esModule",{value:!0});BJ.DiscrError=void 0;var KJ;(function($){$.Tag="tag",$.Mapping="mapping"})(KJ||(BJ.DiscrError=KJ={}))});var DJ=M((FJ)=>{Object.defineProperty(FJ,"__esModule",{value:!0});var O$=b(),$9=VJ(),zJ=i5(),GM=qZ(),XM=k(),JM={message:({params:{discrError:$,tagName:Z}})=>$===$9.DiscrError.Tag?`tag "${Z}" must be string`:`value of tag "${Z}" must be in oneOf`,params:({params:{discrError:$,tag:Z,tagName:Q}})=>O$._`{error: ${$}, tag: ${Q}, tagValue: ${Z}}`},KM={keyword:"discriminator",type:"object",schemaType:"object",error:JM,code($){let{gen:Z,data:Q,schema:Y,parentSchema:W,it:G}=$,{oneOf:X}=W;if(!G.opts.discriminator)throw Error("discriminator: requires discriminator option");let J=Y.propertyName;if(typeof J!="string")throw Error("discriminator: requires propertyName");if(Y.mapping)throw Error("discriminator: mapping is not supported");if(!X)throw Error("discriminator: requires oneOf keyword");let B=Z.let("valid",!1),K=Z.const("tag",O$._`${Q}${(0,O$.getProperty)(J)}`);Z.if(O$._`typeof ${K} == "string"`,()=>V(),()=>$.error(!1,{discrError:$9.DiscrError.Tag,tag:K,tagName:J})),$.ok(B);function V(){let D=F();Z.if(!1);for(let L in D)Z.elseIf(O$._`${K} === ${L}`),Z.assign(B,z(D[L]));Z.else(),$.error(!1,{discrError:$9.DiscrError.Mapping,tag:K,tagName:J}),Z.endIf()}function z(D){let L=Z.name("valid"),U=$.subschema({keyword:"oneOf",schemaProp:D},L);return $.mergeEvaluated(U,O$.Name),L}function F(){var D;let L={},U=A(W),q=!0;for(let P=0;P<X.length;P++){let O=X[P];if((O===null||O===void 0?void 0:O.$ref)&&!(0,XM.schemaHasRulesButRef)(O,G.self.RULES)){let g=O.$ref;if(O=zJ.resolveRef.call(G.self,G.schemaEnv.root,G.baseId,g),O instanceof zJ.SchemaEnv)O=O.schema;if(O===void 0)throw new GM.default(G.opts.uriResolver,G.baseId,g)}let C=(D=O===null||O===void 0?void 0:O.properties)===null||D===void 0?void 0:D[J];if(typeof C!="object")throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${J}"`);q=q&&(U||A(O)),N(C,P)}if(!q)throw Error(`discriminator: "${J}" must be required`);return L;function A({required:P}){return Array.isArray(P)&&P.includes(J)}function N(P,O){if(P.const)j(P.const,O);else if(P.enum)for(let C of P.enum)j(C,O);else throw Error(`discriminator: "properties/${J}" must have "const" or "enum"`)}function j(P,O){if(typeof P!="string"||P in L)throw Error(`discriminator: "${J}" values must be unique strings`);L[P]=O}}}};FJ.default=KM});var LJ=M((Iy,HM)=>{HM.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 Q9=M((L0,Z9)=>{Object.defineProperty(L0,"__esModule",{value:!0});L0.MissingRefError=L0.ValidationError=L0.CodeGen=L0.Name=L0.nil=L0.stringify=L0.str=L0._=L0.KeywordCxt=L0.Ajv=void 0;var VM=NG(),zM=JJ(),FM=DJ(),UJ=LJ(),DM=["/properties"],H6="http://json-schema.org/draft-07/schema";class CZ extends VM.default{_addVocabularies(){if(super._addVocabularies(),zM.default.forEach(($)=>this.addVocabulary($)),this.opts.discriminator)this.addKeyword(FM.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let $=this.opts.$data?this.$dataMetaSchema(UJ,DM):UJ;this.addMetaSchema($,H6,!1),this.refs["http://json-schema.org/schema"]=H6}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(H6)?H6:void 0)}}L0.Ajv=CZ;Z9.exports=L0=CZ;Z9.exports.Ajv=CZ;Object.defineProperty(L0,"__esModule",{value:!0});L0.default=CZ;var LM=UZ();Object.defineProperty(L0,"KeywordCxt",{enumerable:!0,get:function(){return LM.KeywordCxt}});var M$=b();Object.defineProperty(L0,"_",{enumerable:!0,get:function(){return M$._}});Object.defineProperty(L0,"str",{enumerable:!0,get:function(){return M$.str}});Object.defineProperty(L0,"stringify",{enumerable:!0,get:function(){return M$.stringify}});Object.defineProperty(L0,"nil",{enumerable:!0,get:function(){return M$.nil}});Object.defineProperty(L0,"Name",{enumerable:!0,get:function(){return M$.Name}});Object.defineProperty(L0,"CodeGen",{enumerable:!0,get:function(){return M$.CodeGen}});var UM=c5();Object.defineProperty(L0,"ValidationError",{enumerable:!0,get:function(){return UM.default}});var qM=qZ();Object.defineProperty(L0,"MissingRefError",{enumerable:!0,get:function(){return qM.default}})});var TJ=M((wJ)=>{Object.defineProperty(wJ,"__esModule",{value:!0});wJ.formatNames=wJ.fastFormats=wJ.fullFormats=void 0;function m0($,Z){return{validate:$,compare:Z}}wJ.fullFormats={date:m0(OJ,X9),time:m0(W9(!0),J9),"date-time":m0(qJ(!0),jJ),"iso-time":m0(W9(),MJ),"iso-date-time":m0(qJ(),PJ),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:IM,"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:bM,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:TM,int32:{type:"number",validate:CM},int64:{type:"number",validate:SM},float:{type:"number",validate:NJ},double:{type:"number",validate:NJ},password:!0,binary:!0};wJ.fastFormats={...wJ.fullFormats,date:m0(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,X9),time:m0(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,J9),"date-time":m0(/^\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,jJ),"iso-time":m0(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,MJ),"iso-date-time":m0(/^\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,PJ),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};wJ.formatNames=Object.keys(wJ.fullFormats);function OM($){return $%4===0&&($%100!==0||$%400===0)}var MM=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,jM=[0,31,28,31,30,31,30,31,31,30,31,30,31];function OJ($){let Z=MM.exec($);if(!Z)return!1;let Q=+Z[1],Y=+Z[2],W=+Z[3];return Y>=1&&Y<=12&&W>=1&&W<=(Y===2&&OM(Q)?29:jM[Y])}function X9($,Z){if(!($&&Z))return;if($>Z)return 1;if($<Z)return-1;return 0}var Y9=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function W9($){return function(Q){let Y=Y9.exec(Q);if(!Y)return!1;let W=+Y[1],G=+Y[2],X=+Y[3],J=Y[4],B=Y[5]==="-"?-1:1,K=+(Y[6]||0),V=+(Y[7]||0);if(K>23||V>59||$&&!J)return!1;if(W<=23&&G<=59&&X<60)return!0;let z=G-V*B,F=W-K*B-(z<0?1:0);return(F===23||F===-1)&&(z===59||z===-1)&&X<61}}function J9($,Z){if(!($&&Z))return;let Q=new Date("2020-01-01T"+$).valueOf(),Y=new Date("2020-01-01T"+Z).valueOf();if(!(Q&&Y))return;return Q-Y}function MJ($,Z){if(!($&&Z))return;let Q=Y9.exec($),Y=Y9.exec(Z);if(!(Q&&Y))return;if($=Q[1]+Q[2]+Q[3],Z=Y[1]+Y[2]+Y[3],$>Z)return 1;if($<Z)return-1;return 0}var G9=/t|\s/i;function qJ($){let Z=W9($);return function(Y){let W=Y.split(G9);return W.length===2&&OJ(W[0])&&Z(W[1])}}function jJ($,Z){if(!($&&Z))return;let Q=new Date($).valueOf(),Y=new Date(Z).valueOf();if(!(Q&&Y))return;return Q-Y}function PJ($,Z){if(!($&&Z))return;let[Q,Y]=$.split(G9),[W,G]=Z.split(G9),X=X9(Q,W);if(X===void 0)return;return X||J9(Y,G)}var PM=/\/|:/,wM=/^(?:[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 IM($){return PM.test($)&&wM.test($)}var AJ=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function TM($){return AJ.lastIndex=0,AJ.test($)}var EM=-2147483648,RM=2147483647;function CM($){return Number.isInteger($)&&$<=RM&&$>=EM}function SM($){return Number.isInteger($)}function NJ(){return!0}var yM=/[^\\]\\Z/;function bM($){if(yM.test($))return!1;try{return new RegExp($),!0}catch(Z){return!1}}});var RJ=M((EJ)=>{Object.defineProperty(EJ,"__esModule",{value:!0});EJ.formatLimitDefinition=void 0;var xM=Q9(),_0=b(),j1=_0.operators,V6={formatMaximum:{okStr:"<=",ok:j1.LTE,fail:j1.GT},formatMinimum:{okStr:">=",ok:j1.GTE,fail:j1.LT},formatExclusiveMaximum:{okStr:"<",ok:j1.LT,fail:j1.GTE},formatExclusiveMinimum:{okStr:">",ok:j1.GT,fail:j1.LTE}},kM={message:({keyword:$,schemaCode:Z})=>_0.str`should be ${V6[$].okStr} ${Z}`,params:({keyword:$,schemaCode:Z})=>_0._`{comparison: ${V6[$].okStr}, limit: ${Z}}`};EJ.formatLimitDefinition={keyword:Object.keys(V6),type:"string",schemaType:"string",$data:!0,error:kM,code($){let{gen:Z,data:Q,schemaCode:Y,keyword:W,it:G}=$,{opts:X,self:J}=G;if(!X.validateFormats)return;let B=new xM.KeywordCxt(G,J.RULES.all.format.definition,"format");if(B.$data)K();else V();function K(){let F=Z.scopeValue("formats",{ref:J.formats,code:X.code.formats}),D=Z.const("fmt",_0._`${F}[${B.schemaCode}]`);$.fail$data((0,_0.or)(_0._`typeof ${D} != "object"`,_0._`${D} instanceof RegExp`,_0._`typeof ${D}.compare != "function"`,z(D)))}function V(){let F=B.schema,D=J.formats[F];if(!D||D===!0)return;if(typeof D!="object"||D instanceof RegExp||typeof D.compare!="function")throw Error(`"${W}": format "${F}" does not define "compare" function`);let L=Z.scopeValue("formats",{key:F,ref:D,code:X.code.formats?_0._`${X.code.formats}${(0,_0.getProperty)(F)}`:void 0});$.fail$data(z(L))}function z(F){return _0._`${F}.compare(${Q}, ${Y}) ${V6[W].fail} 0`}},dependencies:["format"]};var fM=($)=>{return $.addKeyword(EJ.formatLimitDefinition),$};EJ.default=fM});var bJ=M((SZ,yJ)=>{Object.defineProperty(SZ,"__esModule",{value:!0});var j$=TJ(),gM=RJ(),H9=b(),CJ=new H9.Name("fullFormats"),hM=new H9.Name("fastFormats"),V9=($,Z={keywords:!0})=>{if(Array.isArray(Z))return SJ($,Z,j$.fullFormats,CJ),$;let[Q,Y]=Z.mode==="fast"?[j$.fastFormats,hM]:[j$.fullFormats,CJ],W=Z.formats||j$.formatNames;if(SJ($,W,Q,Y),Z.keywords)(0,gM.default)($);return $};V9.get=($,Z="full")=>{let Y=(Z==="fast"?j$.fastFormats:j$.fullFormats)[$];if(!Y)throw Error(`Unknown format "${$}"`);return Y};function SJ($,Z,Q,Y){var W,G;(W=(G=$.opts.code).formats)!==null&&W!==void 0||(G.formats=H9._`require("ajv-formats/dist/formats").${Y}`);for(let X of Z)$.addFormat(X,Q[X])}yJ.exports=SZ=V9;Object.defineProperty(SZ,"__esModule",{value:!0});SZ.default=V9});var mJ=M((ny,uJ)=>{uJ.exports=hJ;hJ.sync=pM;var vJ=W1("fs");function lM($,Z){var Q=Z.pathExt!==void 0?Z.pathExt:process.env.PATHEXT;if(!Q)return!0;if(Q=Q.split(";"),Q.indexOf("")!==-1)return!0;for(var Y=0;Y<Q.length;Y++){var W=Q[Y].toLowerCase();if(W&&$.substr(-W.length).toLowerCase()===W)return!0}return!1}function gJ($,Z,Q){if(!$.isSymbolicLink()&&!$.isFile())return!1;return lM(Z,Q)}function hJ($,Z,Q){vJ.stat($,function(Y,W){Q(Y,Y?!1:gJ(W,$,Z))})}function pM($,Z){return gJ(vJ.statSync($),$,Z)}});var iJ=M((ay,dJ)=>{dJ.exports=pJ;pJ.sync=cM;var lJ=W1("fs");function pJ($,Z,Q){lJ.stat($,function(Y,W){Q(Y,Y?!1:cJ(W,Z))})}function cM($,Z){return cJ(lJ.statSync($),Z)}function cJ($,Z){return $.isFile()&&dM($,Z)}function dM($,Z){var{mode:Q,uid:Y,gid:W}=$,G=Z.uid!==void 0?Z.uid:process.getuid&&process.getuid(),X=Z.gid!==void 0?Z.gid:process.getgid&&process.getgid(),J=parseInt("100",8),B=parseInt("010",8),K=parseInt("001",8),V=J|B,z=Q&K||Q&B&&W===X||Q&J&&Y===G||Q&V&&G===0;return z}});var aJ=M((ty,nJ)=>{var ry=W1("fs"),F6;if(process.platform==="win32"||global.TESTING_WINDOWS)F6=mJ();else F6=iJ();nJ.exports=L9;L9.sync=iM;function L9($,Z,Q){if(typeof Z==="function")Q=Z,Z={};if(!Q){if(typeof Promise!=="function")throw TypeError("callback not provided");return new Promise(function(Y,W){L9($,Z||{},function(G,X){if(G)W(G);else Y(X)})})}F6($,Z||{},function(Y,W){if(Y){if(Y.code==="EACCES"||Z&&Z.ignoreErrors)Y=null,W=!1}Q(Y,W)})}function iM($,Z){try{return F6.sync($,Z||{})}catch(Q){if(Z&&Z.ignoreErrors||Q.code==="EACCES")return!1;else throw Q}}});var Z3=M((oy,$3)=>{var P$=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",rJ=W1("path"),nM=P$?";":":",tJ=aJ(),oJ=($)=>Object.assign(Error(`not found: ${$}`),{code:"ENOENT"}),sJ=($,Z)=>{let Q=Z.colon||nM,Y=$.match(/\//)||P$&&$.match(/\\/)?[""]:[...P$?[process.cwd()]:[],...(Z.path||process.env.PATH||"").split(Q)],W=P$?Z.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",G=P$?W.split(Q):[""];if(P$){if($.indexOf(".")!==-1&&G[0]!=="")G.unshift("")}return{pathEnv:Y,pathExt:G,pathExtExe:W}},eJ=($,Z,Q)=>{if(typeof Z==="function")Q=Z,Z={};if(!Z)Z={};let{pathEnv:Y,pathExt:W,pathExtExe:G}=sJ($,Z),X=[],J=(K)=>new Promise((V,z)=>{if(K===Y.length)return Z.all&&X.length?V(X):z(oJ($));let F=Y[K],D=/^".*"$/.test(F)?F.slice(1,-1):F,L=rJ.join(D,$),U=!D&&/^\.[\\\/]/.test($)?$.slice(0,2)+L:L;V(B(U,K,0))}),B=(K,V,z)=>new Promise((F,D)=>{if(z===W.length)return F(J(V+1));let L=W[z];tJ(K+L,{pathExt:G},(U,q)=>{if(!U&&q)if(Z.all)X.push(K+L);else return F(K+L);return F(B(K,V,z+1))})});return Q?J(0).then((K)=>Q(null,K),Q):J(0)},aM=($,Z)=>{Z=Z||{};let{pathEnv:Q,pathExt:Y,pathExtExe:W}=sJ($,Z),G=[];for(let X=0;X<Q.length;X++){let J=Q[X],B=/^".*"$/.test(J)?J.slice(1,-1):J,K=rJ.join(B,$),V=!B&&/^\.[\\\/]/.test($)?$.slice(0,2)+K:K;for(let z=0;z<Y.length;z++){let F=V+Y[z];try{if(tJ.sync(F,{pathExt:W}))if(Z.all)G.push(F);else return F}catch(D){}}}if(Z.all&&G.length)return G;if(Z.nothrow)return null;throw oJ($)};$3.exports=eJ;eJ.sync=aM});var Y3=M((sy,U9)=>{var Q3=($={})=>{let Z=$.env||process.env;if(($.platform||process.platform)!=="win32")return"PATH";return Object.keys(Z).reverse().find((Y)=>Y.toUpperCase()==="PATH")||"Path"};U9.exports=Q3;U9.exports.default=Q3});var J3=M((ey,X3)=>{var W3=W1("path"),rM=Z3(),tM=Y3();function G3($,Z){let Q=$.options.env||process.env,Y=process.cwd(),W=$.options.cwd!=null,G=W&&process.chdir!==void 0&&!process.chdir.disabled;if(G)try{process.chdir($.options.cwd)}catch(J){}let X;try{X=rM.sync($.command,{path:Q[tM({env:Q})],pathExt:Z?W3.delimiter:void 0})}catch(J){}finally{if(G)process.chdir(Y)}if(X)X=W3.resolve(W?$.options.cwd:"",X);return X}function oM($){return G3($)||G3($,!0)}X3.exports=oM});var K3=M(($j,A9)=>{var q9=/([()\][%!^"`<>&|;, *?])/g;function sM($){return $=$.replace(q9,"^$1"),$}function eM($,Z){if($=`${$}`,$=$.replace(/(?=(\\+?)?)\1"/g,"$1$1\\\""),$=$.replace(/(?=(\\+?)?)\1$/,"$1$1"),$=`"${$}"`,$=$.replace(q9,"^$1"),Z)$=$.replace(q9,"^$1");return $}$j.command=sM;$j.argument=eM});var H3=M(($b,B3)=>{B3.exports=/^#!(.*)/});var z3=M((Zb,V3)=>{var Yj=H3();V3.exports=($="")=>{let Z=$.match(Yj);if(!Z)return null;let[Q,Y]=Z[0].replace(/#! ?/,"").split(" "),W=Q.split("/").pop();if(W==="env")return Y;return Y?`${W} ${Y}`:W}});var D3=M((Qb,F3)=>{var N9=W1("fs"),Wj=z3();function Gj($){let Q=Buffer.alloc(150),Y;try{Y=N9.openSync($,"r"),N9.readSync(Y,Q,0,150,0),N9.closeSync(Y)}catch(W){}return Wj(Q.toString())}F3.exports=Gj});var A3=M((Yb,q3)=>{var Xj=W1("path"),L3=J3(),U3=K3(),Jj=D3(),Kj=process.platform==="win32",Bj=/\.(?:com|exe)$/i,Hj=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Vj($){$.file=L3($);let Z=$.file&&Jj($.file);if(Z)return $.args.unshift($.file),$.command=Z,L3($);return $.file}function zj($){if(!Kj)return $;let Z=Vj($),Q=!Bj.test(Z);if($.options.forceShell||Q){let Y=Hj.test(Z);$.command=Xj.normalize($.command),$.command=U3.command($.command),$.args=$.args.map((G)=>U3.argument(G,Y));let W=[$.command].concat($.args).join(" ");$.args=["/d","/s","/c",`"${W}"`],$.command=process.env.comspec||"cmd.exe",$.options.windowsVerbatimArguments=!0}return $}function Fj($,Z,Q){if(Z&&!Array.isArray(Z))Q=Z,Z=null;Z=Z?Z.slice(0):[],Q=Object.assign({},Q);let Y={command:$,args:Z,options:Q,file:void 0,original:{command:$,args:Z}};return Q.shell?Y:zj(Y)}q3.exports=Fj});var M3=M((Wb,O3)=>{var O9=process.platform==="win32";function M9($,Z){return Object.assign(Error(`${Z} ${$.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${Z} ${$.command}`,path:$.command,spawnargs:$.args})}function Dj($,Z){if(!O9)return;let Q=$.emit;$.emit=function(Y,W){if(Y==="exit"){let G=N3(W,Z);if(G)return Q.call($,"error",G)}return Q.apply($,arguments)}}function N3($,Z){if(O9&&$===1&&!Z.file)return M9(Z.original,"spawn");return null}function Lj($,Z){if(O9&&$===1&&!Z.file)return M9(Z.original,"spawnSync");return null}O3.exports={hookChildProcess:Dj,verifyENOENT:N3,verifyENOENTSync:Lj,notFoundError:M9}});var w3=M((Gb,w$)=>{var j3=W1("child_process"),j9=A3(),P9=M3();function P3($,Z,Q){let Y=j9($,Z,Q),W=j3.spawn(Y.command,Y.args,Y.options);return P9.hookChildProcess(W,Y),W}function Uj($,Z,Q){let Y=j9($,Z,Q),W=j3.spawnSync(Y.command,Y.args,Y.options);return W.error=W.error||P9.verifyENOENTSync(W.status,Y),W}w$.exports=P3;w$.exports.spawn=P3;w$.exports.sync=Uj;w$.exports._parse=j9;w$.exports._enoent=P9});import{readFile as vP}from"fs/promises";import{homedir as gP}from"os";import{join as hP,resolve as FK}from"path";class uZ{done=[];undone=[];record($){this.done.push($),this.undone=[]}get canUndo(){return this.done.length>0}get canRedo(){return this.undone.length>0}peekUndo(){return this.done[this.done.length-1]}commitUndo($,Z){if(this.peekUndo()?.id!==$.id)throw Error("Checkpoint history changed during undo");this.done.pop(),this.undone.push({...$,...Z?{redoRef:Z}:{}})}peekRedo(){return this.undone[this.undone.length-1]}commitRedo($){if(this.peekRedo()?.id!==$.id)throw Error("Checkpoint history changed during redo");this.undone.pop();let{redoRef:Z,...Q}=$;this.done.push(Q)}restore($,Z=[]){this.done=[...$],this.undone=[...Z]}state(){return{done:[...this.done],undone:[...this.undone]}}all(){return[...this.done]}first(){return this.done[0]}last(){return this.done[this.done.length-1]}}class T1{commands=new Map;register($){this.commands.set($.name,$)}get($){return this.commands.get($)}list(){return[...this.commands.values()].sort(($,Z)=>$.name.localeCompare(Z.name))}has($){return this.commands.has($)}parse($){if(!$.startsWith("/"))return;let Z=$.slice(1),Q=Z.search(/\s/);return Q===-1?{name:Z,args:""}:{name:Z.slice(0,Q),args:Z.slice(Q+1).trim()}}async execute($,Z){let Q=this.parse($);if(!Q)return{handled:!1};let Y=this.commands.get(Q.name);if(!Y)return{handled:!0,message:`Unknown command: /${Q.name}`};return await Y.run({...Z,args:Q.args})??{handled:!0}}}var jK=new Set(["rate_limit","overloaded","network"]);class c extends Error{kind;status;retryAfterMs;constructor($,Z,Q){super(Z);if(this.name="AiError",this.kind=$,Q?.status!==void 0)this.status=Q.status;if(Q?.retryAfterMs!==void 0)this.retryAfterMs=Q.retryAfterMs}get retryable(){return jK.has(this.kind)}}var PK=[/prompt is too long/i,/context window/i,/context[_ ]length[_ ]exceeded/i,/exceeds the maximum number of tokens/i,/input token count.*exceeds/i,/too many total text bytes/i];function mZ($){return PK.some((Z)=>Z.test($))}function wK($){let Z=$.get("retry-after-ms");if(Z){let Y=Number.parseFloat(Z);if(!Number.isNaN(Y))return Y}let Q=$.get("retry-after");if(Q){let Y=Number.parseFloat(Q);if(!Number.isNaN(Y))return Y*1000;let W=Date.parse(Q);if(!Number.isNaN(W))return W-Date.now()}return}function S$($,Z,Q){let Y={status:$,retryAfterMs:wK(Q)};if($===401||$===403)return new c("auth",Z,Y);if($===404)return new c("not_found",Z,Y);if($===429)return new c("rate_limit",Z,Y);if($===529||$===503)return new c("overloaded",Z,Y);if($>=500)return new c("api",Z,Y);if(mZ(Z))return new c("context_too_long",Z,Y);return new c("bad_request",Z,Y)}var t9={models:[{provider:"anthropic",id:"claude-opus-5",name:"Claude Opus 5",contextWindow:1e6,maxOutput:128000,modalities:["text","image"],thinking:!0,thinkingMode:"adaptive",pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25}},{provider:"anthropic",id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindow:1e6,maxOutput:128000,modalities:["text","image"],thinking:!0,thinkingMode:"adaptive",pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75}},{provider:"anthropic",id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindow:200000,maxOutput:64000,modalities:["text","image"],thinking:!0,thinkingMode:"budget",pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25}},{provider:"openai",id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindow:272000,maxOutput:128000,modalities:["text","image"],thinking:!0,pricing:{input:5,output:30,cacheRead:0.5,cacheWrite:6.25}},{provider:"openai",id:"gpt-5.1",name:"GPT-5.1",contextWindow:400000,maxOutput:128000,modalities:["text","image"],thinking:!0,pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0}},{provider:"openai",id:"gpt-5-mini",name:"GPT-5 mini",contextWindow:400000,maxOutput:128000,modalities:["text","image"],thinking:!0,pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0}},{provider:"openai-codex",id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindow:272000,maxOutput:128000,modalities:["text","image"],thinking:!0,thinkingLevels:["low","medium","high","xhigh","max","ultra"],defaultThinkingLevel:"low",pricing:{input:0,output:0,cacheRead:0,cacheWrite:0}},{provider:"openai-codex",id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindow:272000,maxOutput:128000,modalities:["text","image"],thinking:!0,thinkingLevels:["low","medium","high","xhigh","max","ultra"],defaultThinkingLevel:"medium",pricing:{input:0,output:0,cacheRead:0,cacheWrite:0}},{provider:"openai-codex",id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindow:272000,maxOutput:128000,modalities:["text","image"],thinking:!0,thinkingLevels:["low","medium","high","xhigh","max"],defaultThinkingLevel:"medium",pricing:{input:0,output:0,cacheRead:0,cacheWrite:0}},{provider:"google",id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:1048576,maxOutput:65536,modalities:["text","image"],thinking:!0,pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0}},{provider:"google",id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1048576,maxOutput:65536,modalities:["text","image"],thinking:!0,pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0}}]};var TK=[{id:"amazon-bedrock",name:"Amazon Bedrock",api:"openai-responses",env:["AWS_BEARER_TOKEN_BEDROCK"]},{id:"anthropic",name:"Anthropic",api:"anthropic-messages",baseUrl:"https://api.anthropic.com",env:["ANTHROPIC_API_KEY"],auth:"anthropic"},{id:"azure-openai-responses",name:"Azure OpenAI",api:"openai-responses",env:["AZURE_OPENAI_API_KEY"],auth:"azure"},{id:"cerebras",name:"Cerebras",api:"openai-completions",baseUrl:"https://api.cerebras.ai/v1",env:["CEREBRAS_API_KEY"]},{id:"cloudflare-ai-gateway",name:"Cloudflare AI Gateway",api:"openai-completions",env:["CLOUDFLARE_API_KEY"],auth:"cloudflare"},{id:"cloudflare-workers-ai",name:"Cloudflare Workers AI",api:"openai-completions",env:["CLOUDFLARE_API_KEY"]},{id:"deepseek",name:"DeepSeek",api:"openai-completions",baseUrl:"https://api.deepseek.com",env:["DEEPSEEK_API_KEY"]},{id:"fireworks",name:"Fireworks",api:"anthropic-messages",baseUrl:"https://api.fireworks.ai/inference",env:["FIREWORKS_API_KEY"],auth:"anthropic"},{id:"github-copilot",name:"GitHub Copilot",api:"openai-responses",baseUrl:"https://api.individual.githubcopilot.com",env:["COPILOT_GITHUB_TOKEN"],headers:{"user-agent":"GitHubCopilotChat/0.35.0","editor-version":"vscode/1.107.0","editor-plugin-version":"copilot-chat/0.35.0","copilot-integration-id":"vscode-chat"}},{id:"google",name:"Google",api:"google-generative-ai",baseUrl:"https://generativelanguage.googleapis.com/v1beta",env:["GEMINI_API_KEY"],auth:"google"},{id:"google-vertex",name:"Google Vertex AI",api:"google-vertex",env:["GOOGLE_CLOUD_API_KEY"],auth:"google"},{id:"groq",name:"Groq",api:"openai-completions",baseUrl:"https://api.groq.com/openai/v1",env:["GROQ_API_KEY"]},{id:"huggingface",name:"Hugging Face",api:"openai-completions",baseUrl:"https://router.huggingface.co/v1",env:["HF_TOKEN"]},{id:"kimi-coding",name:"Kimi For Coding",api:"anthropic-messages",baseUrl:"https://api.kimi.com/coding",env:["KIMI_API_KEY"],auth:"anthropic",headers:{"user-agent":"KimiCLI/1.5"}},{id:"minimax",name:"MiniMax",api:"anthropic-messages",baseUrl:"https://api.minimax.io/anthropic",env:["MINIMAX_API_KEY"],auth:"anthropic"},{id:"mistral",name:"Mistral",api:"openai-completions",baseUrl:"https://api.mistral.ai/v1",env:["MISTRAL_API_KEY"]},{id:"moonshotai",name:"Moonshot AI",api:"openai-completions",baseUrl:"https://api.moonshot.ai/v1",env:["MOONSHOT_API_KEY"]},{id:"nvidia",name:"NVIDIA NIM",api:"openai-completions",baseUrl:"https://integrate.api.nvidia.com/v1",env:["NVIDIA_API_KEY"],headers:{"nvcf-poll-seconds":"3600"}},{id:"openai",name:"OpenAI",api:"openai-responses",baseUrl:"https://api.openai.com/v1",env:["OPENAI_API_KEY"]},{id:"openai-codex",name:"OpenAI Codex",api:"openai-responses",baseUrl:"https://chatgpt.com/backend-api/codex",env:[]},{id:"opencode",name:"OpenCode Zen",api:"openai-completions",baseUrl:"https://opencode.ai/zen/v1",env:["OPENCODE_API_KEY"]},{id:"opencode-go",name:"OpenCode Go",api:"openai-completions",baseUrl:"https://opencode.ai/zen/go/v1",env:["OPENCODE_API_KEY"]},{id:"openrouter",name:"OpenRouter",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",env:["OPENROUTER_API_KEY"]},{id:"qwen-token-plan",name:"Qwen Token Plan",api:"openai-completions",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",env:["QWEN_TOKEN_PLAN_API_KEY"]},{id:"vercel-ai-gateway",name:"Vercel AI Gateway",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",env:["AI_GATEWAY_API_KEY"],auth:"anthropic"},{id:"xai",name:"xAI",api:"openai-completions",baseUrl:"https://api.x.ai/v1",env:["XAI_API_KEY"]},{id:"zai",name:"Z.AI Coding Plan",api:"openai-completions",baseUrl:"https://api.z.ai/api/coding/paas/v4",env:["ZAI_API_KEY"]}],p0=new Map(TK.map(($)=>[$.id,$]));function a1($){return p0.get($)}function y$($){return $.api??a1($.provider)?.api??"openai-completions"}function T6($){return $.baseUrl??a1($.provider)?.baseUrl}function r1($){return a1($)?.env??[]}var EK=new Set(['"',"\\","/","b","f","n","r","t","u"]),RK={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"};function E6($){let Z="",Q=!1;for(let Y=0;Y<$.length;Y++){let W=$[Y];if(!Q){if(Z+=W,W==='"')Q=!0;continue}if(W==='"'){Z+=W,Q=!1;continue}if(W==="\\"){let X=$[Y+1];if(X===void 0){Z+="\\\\";continue}if(X==="u"&&/^[0-9a-fA-F]{4}$/.test($.slice(Y+2,Y+6))){Z+=$.slice(Y,Y+6),Y+=5;continue}if(X!=="u"&&EK.has(X)){Z+=`\\${X}`,Y+=1;continue}Z+="\\\\";continue}let G=W.codePointAt(0)??0;if(G<=31)Z+=RK[W]??`\\u${G.toString(16).padStart(4,"0")}`;else Z+=W}return Z}function o9($){try{return JSON.parse($)}catch(Z){let Q=E6($);if(Q!==$)return JSON.parse(Q);throw Z}}class s9{text;pos=0;constructor($){this.text=$}ws(){while(this.pos<this.text.length&&/\s/.test(this.text[this.pos]))this.pos++}peek(){return this.text[this.pos]}value(){this.ws();let $=this.peek();if($===void 0)return;if($==="{")return this.object();if($==="[")return this.array();if($==='"')return this.string();if($==="t"||$==="f"||$==="n")return this.literal();if($==="-"||/[0-9]/.test($))return this.number();return}object(){let $={};this.pos++;for(;;){if(this.ws(),this.peek()===void 0)return $;if(this.peek()==="}")return this.pos++,$;if(this.peek()===","){this.pos++;continue}if(this.peek()!=='"')return $;let Z=this.pos,Q=this.string();if(this.pos>=this.text.length&&!this.closedString(Z))return $;if(this.ws(),this.peek()!==":")return $;if(this.pos++,this.ws(),this.peek()===void 0)return $;let Y=this.pos,W=this.value();if(W!==void 0||this.consumedNull(Y))$[Q]=W??null}}array(){let $=[];this.pos++;for(;;){if(this.ws(),this.peek()===void 0)return $;if(this.peek()==="]")return this.pos++,$;if(this.peek()===","){this.pos++;continue}let Z=this.pos,Q=this.value();if(Q===void 0&&!this.consumedNull(Z))return $;$.push(Q??null)}}closedString($){let Z=$+1;while(Z<this.text.length)if(this.text[Z]==="\\")Z+=2;else if(this.text[Z]==='"')return!0;else Z+=1;return!1}consumedNull($){return this.text.slice($,this.pos).trim().startsWith("null")}string(){this.pos++;let $="";while(this.pos<this.text.length){let Z=this.text[this.pos];if(Z==='"')return this.pos++,$;if(Z==="\\"){let Q=this.text[this.pos+1];if(Q===void 0)return this.pos++,$;if(Q==="u"){let W=this.text.slice(this.pos+2,this.pos+6);if(/^[0-9a-fA-F]{4}$/.test(W))$+=String.fromCharCode(Number.parseInt(W,16)),this.pos+=6;else return this.pos=this.text.length,$;continue}$+={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
10
|
+
`,r:"\r",t:"\t"}[Q]??Q,this.pos+=2;continue}$+=Z,this.pos++}return $}literal(){for(let[$,Z]of[["true",!0],["false",!1],["null",null]])if($.startsWith(this.text.slice(this.pos,this.pos+$.length))){let Q=this.text.slice(this.pos);if($.startsWith(Q))return this.pos=this.text.length,Z;if(Q.startsWith($))return this.pos+=$.length,Z}this.pos=this.text.length;return}number(){let Z=/^-?[0-9]*\.?[0-9]*(?:[eE][+-]?[0-9]*)?/.exec(this.text.slice(this.pos))?.[0]??"";this.pos+=Z.length;let Q=Number(Z);return Number.isNaN(Q)?void 0:Q}}function e9($){return new s9($).value()}function g0($){if(!$||$.trim()==="")return{};try{let Z=o9($);if(Z!==null&&typeof Z==="object"&&!Array.isArray(Z))return Z;return{}}catch{for(let Z of[$,E6($)])try{let Q=e9(Z);if(Q!==null&&typeof Q==="object"&&!Array.isArray(Q))return Q}catch{}return{}}}var CK=60000;function R6(){let $=Error("Request aborted");return $.name="AbortError",$}function SK($,Z){return new Promise((Q,Y)=>{if(Z?.aborted){Y(R6());return}let W=()=>{clearTimeout(G),Y(R6())},G=setTimeout(()=>{Z?.removeEventListener("abort",W),Q()},Math.max(0,$));Z?.addEventListener("abort",W,{once:!0})})}function yK($,Z,Q){if($.retryAfterMs!==void 0&&$.retryAfterMs>0)return Math.min($.retryAfterMs,Q);return Math.min(0.5*2**Z,8)*1000*(1-Math.random()*0.25)}async function c0($,Z={}){let Q=Z.maxRetries??2,Y=Z.maxRetryDelayMs??CK,W=Q;for(;;)try{return await $()}catch(G){if(Z.signal?.aborted)throw R6();if(W<=0||!(G instanceof c)||!G.retryable)throw G;let X=Q-W;W--,await SK(yK(G,X,Y),Z.signal)}}function ZQ($){if(!$.event&&$.data.length===0)return null;let Z={event:$.event,data:$.data.join(`
|
|
11
|
+
`)};return $.event=null,$.data=[],Z}function $Q($,Z){if($==="")return ZQ(Z);if($.startsWith(":"))return null;let Q=$.indexOf(":"),Y=Q===-1?$:$.slice(0,Q),W=Q===-1?"":$.slice(Q+1);if(W.startsWith(" "))W=W.slice(1);if(Y==="event")Z.event=W;else if(Y==="data")Z.data.push(W);return null}async function*d0($,Z){let Q=$.getReader(),Y=new TextDecoder,W={event:null,data:[]},G="",X=function*(){let J=G.search(/[\r\n]/);while(J!==-1){let B=G.slice(0,J),K=J+1;if(G[J]==="\r"&&G[K]===`
|
|
12
|
+
`)K+=1;G=G.slice(K);let V=$Q(B,W);if(V)yield V;J=G.search(/[\r\n]/)}};try{while(!0){if(Z?.aborted)throw Error("Request was aborted");let{value:B,done:K}=await Q.read();if(K)break;G+=Y.decode(B,{stream:!0}),yield*X()}if(G+=Y.decode(),yield*X(),G.length>0){let B=$Q(G,W);if(B)yield B}let J=ZQ(W);if(J)yield J}finally{Q.releaseLock()}}function i0($){return $.replace(/\/+$/,"")}function bK($){for(let Z of $){let Q=process.env[Z];if(Q)return Q}return}async function G1($,Z){let Q=await Z?.getCredentials?.();if(Q){if($.provider==="anthropic"&&Q.type==="oauth")throw new c("auth","Anthropic account-plan authentication is not supported");return Q}let Y=Z?.apiKey??bK(r1($.provider));if(!Y){let W=r1($.provider),G=W.length>0?`set ${W.join(" or ")} or run /login`:"run /login";throw new c("auth",`No credentials for provider "${$.provider}" (${G})`)}return{type:"apiKey",apiKey:Y}}function _K($){let Z=process.env.CLOUDFLARE_ACCOUNT_ID;if(!Z)return;if($.provider==="cloudflare-workers-ai")return`https://api.cloudflare.com/client/v4/accounts/${Z}/ai/v1`;let Q=process.env.CLOUDFLARE_GATEWAY_ID;if(!Q)return;let Y=`https://gateway.ai.cloudflare.com/v1/${Z}/${Q}`;if($.api==="anthropic-messages")return`${Y}/anthropic`;if($.api==="openai-responses")return`${Y}/openai`;return`${Y}/compat`}function xK(){let $=process.env.AZURE_OPENAI_BASE_URL,Z=process.env.AZURE_OPENAI_RESOURCE_NAME;if(!$&&!Z)return;let Q=i0($??`https://${Z}.openai.azure.com`);return Q.endsWith("/openai/v1")?Q:`${Q}/openai/v1`}function kK(){let $=process.env.GOOGLE_CLOUD_PROJECT??process.env.GCLOUD_PROJECT,Z=process.env.GOOGLE_CLOUD_LOCATION;if(!$||!Z)return"https://aiplatform.googleapis.com/v1/publishers/google";return`https://${Z}-aiplatform.googleapis.com/v1/projects/${$}/locations/${Z}/publishers/google`}function fK(){return`https://bedrock-runtime.${process.env.AWS_REGION??process.env.AWS_DEFAULT_REGION??"us-east-1"}.amazonaws.com/openai/v1`}function vK($,Z){if(Z?.baseUrl)return i0(Z.baseUrl);if($.provider.startsWith("cloudflare-")){let Q=_K($);if(Q)return i0(Q)}if($.provider==="azure-openai-responses"){let Q=xK();if(Q)return i0(Q)}if($.provider==="google-vertex"){let Q=kK();if(Q)return i0(Q)}if($.provider==="amazon-bedrock")return fK();return i0(T6($)??"")}function t1($,Z){let Q=i0($),Y=Z.startsWith("/")?Z:`/${Z}`;if(!Q)return Y;if(Y.startsWith("/v1/")&&Q.endsWith("/v1"))return`${Q}${Y.slice(3)}`;return`${Q}${Y}`}function X1($,Z){let Q=a1($.provider),Y={...Q?.headers,...$.headers};if(Z.type==="oauth")return{...Y,authorization:`Bearer ${Z.accessToken}`,...Z.headers};if(Q?.auth==="anthropic")return{...Y,"x-api-key":Z.apiKey};if(Q?.auth==="google")return{...Y,"x-goog-api-key":Z.apiKey};if(Q?.auth==="azure")return{...Y,"api-key":Z.apiKey};if(Q?.auth==="cloudflare")return{...Y,"cf-aig-authorization":`Bearer ${Z.apiKey}`};return{...Y,authorization:`Bearer ${Z.apiKey}`}}function J1($,Z,Q){if(Q?.baseUrl)return i0(Q.baseUrl);if(Z.type==="oauth"&&Z.baseUrl)return i0(Z.baseUrl);return vK($,Q)}function C6($,Z){return(Z.inputTokens*$.input+Z.outputTokens*$.output+Z.cacheReadTokens*$.cacheRead+Z.cacheWriteTokens*$.cacheWrite)/1e6}function b$(){return{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,costUsd:0}}function K1($,Z){return{inputTokens:$.inputTokens+Z.inputTokens,outputTokens:$.outputTokens+Z.outputTokens,cacheReadTokens:$.cacheReadTokens+Z.cacheReadTokens,cacheWriteTokens:$.cacheWriteTokens+Z.cacheWriteTokens,costUsd:($.costUsd??0)+(Z.costUsd??0)}}class lZ{isComplete;extractResult;queue=[];waiting=[];done=!1;finalResult;resolveFinal;constructor($,Z){this.isComplete=$;this.extractResult=Z;this.finalResult=new Promise((Q)=>{this.resolveFinal=Q})}push($){if(this.done)return;if(this.isComplete($))this.done=!0,this.resolveFinal(this.extractResult($));let Z=this.waiting.shift();if(Z)Z({value:$,done:!1});else this.queue.push($)}end(){this.done=!0;while(this.waiting.length>0)this.waiting.shift()?.({value:void 0,done:!0})}async*[Symbol.asyncIterator](){while(!0)if(this.queue.length>0)yield this.queue.shift();else if(this.done)return;else{let $=await new Promise((Z)=>this.waiting.push(Z));if($.done)return;yield $.value}}result(){return this.finalResult}}class pZ extends lZ{constructor(){super(($)=>$.type==="done"||$.type==="error",($)=>{if($.type==="done")return $.message;if($.type==="error")return $.error;throw Error("unexpected final event")})}}function gK($){return{role:"assistant",content:[],model:`${$.provider}/${$.id}`,usage:{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,costUsd:0},stopReason:"end",timestamp:Date.now()}}function n0($,Z){Z.usage.costUsd=C6($.pricing,Z.usage)}function B1($,Z,Q){let Y=new pZ,W=gK($);return(async()=>{try{if(await Q(Y,W),Z?.signal?.aborted)throw Error("Request was aborted");if(W.stopReason==="error")throw new c("api",W.errorMessage??"provider reported an error");Y.push({type:"done",message:W})}catch(G){W.stopReason=Z?.signal?.aborted?"aborted":"error",W.errorMessage=G instanceof Error?G.message:JSON.stringify(G),Y.push({type:"error",reason:W.stopReason,...G instanceof c?{errorKind:G.kind}:{},error:W})}finally{Y.end()}})(),Y}async function H1($,Z,Q,Y){let W=Y?.fetch??fetch,G;try{G=await W($,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...Z},body:JSON.stringify(Q),...Y?.signal?{signal:Y.signal}:{}})}catch(X){if(Y?.signal?.aborted)throw X;let J=X instanceof Error?X.message:String(X);throw new c("network",J)}if(!G.ok){let X=await G.text();throw S$(G.status,X,G.headers)}if(!G.body)throw new c("api","response has no body");return G}var hK="2023-06-01",S6={type:"ephemeral"};function QQ($){return $.filter((Z)=>Z.type!=="text"||Z.text.trim().length>0).map((Z)=>Z.type==="text"?{type:"text",text:Z.text}:{type:"image",source:{type:"base64",media_type:Z.mimeType,data:Z.data}})}function uK($){let Z=[];for(let Q of $)if(Q.type==="text"){if(Q.text.trim().length===0)continue;Z.push({type:"text",text:Q.text})}else if(Q.type==="thinking"){if(Q.redacted)Z.push({type:"redacted_thinking",data:Q.signature??""});else if(Q.signature)Z.push({type:"thinking",thinking:Q.thinking,signature:Q.signature});else if(Q.thinking.trim().length>0)Z.push({type:"text",text:Q.thinking})}else Z.push({type:"tool_use",id:Q.id,name:Q.name,input:Q.arguments??{}});return Z}function mK($,Z){let Q=[];for(let W=0;W<$.length;W++){let G=$[W];if(G.role==="user"){let X=QQ(G.content);if(X.length>0)Q.push({role:"user",content:X})}else if(G.role==="assistant"){let X=uK(G.content);if(X.length>0)Q.push({role:"assistant",content:X})}else{let X=[];while(W<$.length){let J=$[W];if(!J||J.role!=="toolResult")break;X.push({type:"tool_result",tool_use_id:J.toolCallId,content:QQ(J.content),is_error:J.isError}),W++}W--,Q.push({role:"user",content:X})}}let Y=Q[Q.length-1];if(Z&&Y&&Y.role==="user"){let W=Y.content,G=W[W.length-1];if(G)G.cache_control=S6}return Q}function lK($,Z,Q){if(!$.thinking||Z===void 0)return;if(Z==="off"){Q.thinking={type:"disabled"};return}if($.thinkingMode==="budget"){let Y={low:4096,medium:8192,high:16384};Q.thinking={type:"enabled",budget_tokens:Y[Z]??8192,display:"summarized"};return}Q.thinking={type:"adaptive",display:"summarized"},Q.output_config={effort:Z}}function pK($,Z,Q){let Y=$.provider==="anthropic",W={model:$.id,max_tokens:Q?.maxTokens??$.maxOutput,messages:mK(Z.messages,Y),stream:!0};if(Z.systemPrompt&&Z.systemPrompt.length>0){let G=Z.systemPrompt.reduce((X,J,B)=>J.dynamic?X:B,-1);W.system=Z.systemPrompt.map((X,J)=>({type:"text",text:X.text,...Y&&J===G?{cache_control:S6}:{}}))}if(Z.tools&&Z.tools.length>0)W.tools=Z.tools.map((G,X)=>({name:G.name,description:G.description,input_schema:G.inputSchema,...Y&&X===(Z.tools?.length??0)-1?{cache_control:S6}:{}}));if(Q?.temperature!==void 0)W.temperature=Q.temperature;return lK($,Q?.thinkingLevel,W),W}function cK($){switch($){case"end_turn":case"stop_sequence":case"pause_turn":return{stopReason:"end"};case"max_tokens":return{stopReason:"length"};case"tool_use":return{stopReason:"toolUse"};case"refusal":return{stopReason:"error",errorMessage:"The model refused to complete the request"};case"model_context_window_exceeded":return{stopReason:"error",errorMessage:"Context window exceeded"};default:return{stopReason:"end"}}}function YQ($,Z,Q){return B1($,Q,async(Y,W)=>{let G=pK($,Z,Q),X=await c0(async()=>{let K=await G1($,Q),V=J1($,K,Q),z={"anthropic-version":hK,...X1($,K),...Q?.headers};return H1(t1(V,"/v1/messages"),z,G,Q)},{...Q?.maxRetries!==void 0?{maxRetries:Q.maxRetries}:{},...Q?.signal?{signal:Q.signal}:{}});Y.push({type:"start",partial:W});let J=new Map,B=X.body;for await(let K of d0(B,Q?.signal)){if(K.event==="error")throw Error(K.data);if(!K.data)continue;let V=JSON.parse(K.data),z=V.type;if(z==="message_start"){let F=V.message?.usage;if(F)W.usage.inputTokens=F.input_tokens??0,W.usage.outputTokens=F.output_tokens??0,W.usage.cacheReadTokens=F.cache_read_input_tokens??0,W.usage.cacheWriteTokens=F.cache_creation_input_tokens??0,n0($,W)}else if(z==="content_block_start"){let{index:F,content_block:D}=V,L=W.content.length;J.set(F,{contentIndex:L,partialJson:""});let U=D.type;if(U==="text")W.content.push({type:"text",text:""}),Y.push({type:"text_start",contentIndex:L,partial:W});else if(U==="thinking")W.content.push({type:"thinking",thinking:"",signature:""}),Y.push({type:"thinking_start",contentIndex:L,partial:W});else if(U==="redacted_thinking")W.content.push({type:"thinking",thinking:"[reasoning redacted]",signature:D.data??"",redacted:!0}),Y.push({type:"thinking_start",contentIndex:L,partial:W});else if(U==="tool_use")W.content.push({type:"toolCall",id:D.id,name:D.name,arguments:D.input??{}}),Y.push({type:"toolcall_start",contentIndex:L,partial:W});else J.delete(F)}else if(z==="content_block_delta"){let F=J.get(V.index);if(!F)continue;let D=W.content[F.contentIndex],L=V.delta,U=L.type;if(U==="text_delta"&&D?.type==="text")D.text+=L.text,Y.push({type:"text_delta",contentIndex:F.contentIndex,delta:L.text,partial:W});else if(U==="thinking_delta"&&D?.type==="thinking")D.thinking+=L.thinking,Y.push({type:"thinking_delta",contentIndex:F.contentIndex,delta:L.thinking,partial:W});else if(U==="input_json_delta"&&D?.type==="toolCall")F.partialJson+=L.partial_json,D.arguments=g0(F.partialJson),Y.push({type:"toolcall_delta",contentIndex:F.contentIndex,delta:L.partial_json,partial:W});else if(U==="signature_delta"&&D?.type==="thinking")D.signature=(D.signature??"")+L.signature}else if(z==="content_block_stop"){let F=J.get(V.index);if(!F)continue;let D=W.content[F.contentIndex];if(D?.type==="text")Y.push({type:"text_end",contentIndex:F.contentIndex,content:D.text,partial:W});else if(D?.type==="thinking")Y.push({type:"thinking_end",contentIndex:F.contentIndex,content:D.thinking,partial:W});else if(D?.type==="toolCall")D.arguments=g0(F.partialJson),Y.push({type:"toolcall_end",contentIndex:F.contentIndex,toolCall:D,partial:W})}else if(z==="message_delta"){let F=V.delta;if(F?.stop_reason){let L=cK(F.stop_reason);if(W.stopReason=L.stopReason,L.errorMessage)W.errorMessage=L.errorMessage}let D=V.usage;if(D){if(D.input_tokens!=null)W.usage.inputTokens=D.input_tokens;if(D.output_tokens!=null)W.usage.outputTokens=D.output_tokens;if(D.cache_read_input_tokens!=null)W.usage.cacheReadTokens=D.cache_read_input_tokens;if(D.cache_creation_input_tokens!=null)W.usage.cacheWriteTokens=D.cache_creation_input_tokens;n0($,W)}}}})}var _$={id:"anthropic",stream:YQ};function dK($){let Z=[],Q=new Map,Y=(W,G)=>{if(G.length===0)return;let X=Z[Z.length-1];if(X&&X.role===W)X.parts.push(...G);else Z.push({role:W,parts:G})};for(let W of $)if(W.role==="user")Y("user",W.content.map((G)=>G.type==="text"?{text:G.text}:{inlineData:{mimeType:G.mimeType,data:G.data}}));else if(W.role==="assistant"){let G=[];for(let X of W.content)if(X.type==="text"){if(X.text.trim().length>0)G.push({text:X.text})}else if(X.type==="thinking");else Q.set(X.id,X.name),G.push({functionCall:{name:X.name,args:X.arguments??{}},...X.signature?{thoughtSignature:X.signature}:{}});Y("model",G)}else{let G=Q.get(W.toolCallId)??W.toolName,X=W.content.filter((B)=>B.type==="text").map((B)=>B.text).join(`
|
|
13
|
+
`),J=[{functionResponse:{name:G,response:W.isError?{error:X}:{output:X}}}];for(let B of W.content)if(B.type==="image")J.push({inlineData:{mimeType:B.mimeType,data:B.data}});Y("user",J)}return{contents:Z,toolNames:Q}}function iK($){switch($){case"off":case"none":return 0;case"minimal":return 512;case"low":return 2048;case"medium":return 8192;case"high":return 24576;case"xhigh":return 32768;case"max":return 49152;case"ultra":return 65536;default:return 8192}}function nK($,Z,Q){let Y={contents:dK(Z.messages).contents};if(Z.systemPrompt&&Z.systemPrompt.length>0)Y.systemInstruction={parts:Z.systemPrompt.map((G)=>({text:G.text}))};if(Z.tools&&Z.tools.length>0)Y.tools=[{functionDeclarations:Z.tools.map((G)=>({name:G.name,description:G.description,parameters:G.inputSchema}))}];let W={maxOutputTokens:Q?.maxTokens??$.maxOutput};if(Q?.temperature!==void 0)W.temperature=Q.temperature;if($.thinking&&Q?.thinkingLevel)W.thinkingConfig={thinkingBudget:iK(Q.thinkingLevel),includeThoughts:Q.thinkingLevel!=="off"&&Q.thinkingLevel!=="none"};return Y.generationConfig=W,Y}function aK($,Z){switch($){case"STOP":return{stopReason:Z?"toolUse":"end"};case"MAX_TOKENS":return{stopReason:"length"};case"SAFETY":case"RECITATION":case"PROHIBITED_CONTENT":case"BLOCKLIST":return{stopReason:"error",errorMessage:`Generation stopped: ${$}`};default:return{stopReason:Z?"toolUse":"end"}}}function WQ($,Z,Q){return B1($,Q,async(Y,W)=>{let G=nK($,Z,Q),X=await c0(async()=>{let U=await G1($,Q);if(U.type!=="apiKey")throw new c("auth",`${$.provider} requires API-key auth`);let q=J1($,U,Q).replace(/\/+$/,""),A=$.provider==="google-vertex"?`/models/${$.id}:streamGenerateContent?alt=sse`:`/models/${$.id}:streamGenerateContent?alt=sse`,N=`${q}${A}`;return H1(N,{...X1($,U),...Q?.headers},G,Q)},{...Q?.maxRetries!==void 0?{maxRetries:Q.maxRetries}:{},...Q?.signal?{signal:Q.signal}:{}});Y.push({type:"start",partial:W});let J=-1,B=-1,K=0,V=!1,z,F=X.body,D=()=>{if(J!==-1){let U=W.content[J];if(U?.type==="text")Y.push({type:"text_end",contentIndex:J,content:U.text,partial:W});J=-1}if(B!==-1){let U=W.content[B];if(U?.type==="thinking")Y.push({type:"thinking_end",contentIndex:B,content:U.thinking,partial:W});B=-1}};for await(let U of d0(F,Q?.signal)){if(!U.data)continue;let q=JSON.parse(U.data),A=q.candidates?.[0],N=q.usageMetadata;if(N){let P=N.cachedContentTokenCount??0;W.usage.inputTokens=(N.promptTokenCount??0)-P,W.usage.cacheReadTokens=P,W.usage.outputTokens=(N.candidatesTokenCount??0)+(N.thoughtsTokenCount??0),n0($,W)}if(!A)continue;let j=A.content?.parts??[];for(let P of j)if(typeof P.text==="string")if(P.thought===!0){if(B===-1)B=W.content.length,W.content.push({type:"thinking",thinking:""}),Y.push({type:"thinking_start",contentIndex:B,partial:W});let O=W.content[B];if(O?.type==="thinking"){if(O.thinking+=P.text,typeof P.thoughtSignature==="string")O.signature=P.thoughtSignature;Y.push({type:"thinking_delta",contentIndex:B,delta:P.text,partial:W})}}else{if(J===-1)J=W.content.length,W.content.push({type:"text",text:""}),Y.push({type:"text_start",contentIndex:J,partial:W});let O=W.content[J];if(O?.type==="text")O.text+=P.text,Y.push({type:"text_delta",contentIndex:J,delta:P.text,partial:W})}else if(P.functionCall){V=!0;let O=P.functionCall,C=W.content.length,g={type:"toolCall",id:`call_${K++}_${O.name}`,name:O.name,arguments:O.args??{},...typeof P.thoughtSignature==="string"?{signature:P.thoughtSignature}:{}};W.content.push(g),Y.push({type:"toolcall_start",contentIndex:C,partial:W}),Y.push({type:"toolcall_end",contentIndex:C,toolCall:g,partial:W})}if(typeof A.finishReason==="string")z=A.finishReason}D();let L=aK(z??"STOP",V);if(W.stopReason=L.stopReason,L.errorMessage)W.errorMessage=L.errorMessage})}var x$={id:"google",stream:WQ};async function y6($){let Z=await $.getCredentials?.();if(!Z||Z.type!=="oauth"||Z.availableModelIds===void 0)return;let Q=new Set(Z.availableModelIds);return $.currentModels.filter((Y)=>Y.provider==="github-copilot"&&Q.has(Y.id))}var JQ="https://chatgpt.com/backend-api/codex",rK=64,tK=128000,oK={input:0,output:0,cacheRead:0,cacheWrite:0};function KQ($){let Z=$?.trim();return Z?Z.slice(0,rK):void 0}function GQ($){return typeof $==="number"&&Number.isFinite($)&&$>0?$:void 0}function sK($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function XQ($){return typeof $==="string"&&$.length>0?$:void 0}function eK($,Z){if(typeof $!=="object"||$===null||Array.isArray($))return;let Q=$;if(typeof Q.slug!=="string"||Q.slug.length===0||Q.supported_in_api===!1||typeof Q.visibility==="string"&&Q.visibility!=="list")return;let Y=Z.find((F)=>F.provider==="openai-codex"&&F.id===Q.slug),W=GQ(Q.context_window)??GQ(Q.max_context_window)??Y?.contextWindow;if(!W)return;let G=Array.isArray(Q.input_modalities)?Q.input_modalities.filter((F)=>typeof F==="string"):[],X=["text"];if(G.includes("image")||Y?.modalities.includes("image"))X.push("image");let J=Array.isArray(Q.supported_reasoning_levels)?Q.supported_reasoning_levels.map((F)=>typeof F==="object"&&F!==null?XQ(F.effort):void 0).filter((F)=>F!==void 0):[],B=Y?.thinkingLevels,K=J.length>0?J:B,V=XQ(Q.default_reasoning_level)??Y?.defaultThinkingLevel,z=V&&(!K||K.includes(V))?V:void 0;return{provider:"openai-codex",id:Q.slug,...typeof Q.display_name==="string"?{name:Q.display_name}:{},contextWindow:W,maxOutput:Y?.maxOutput??tK,modalities:X,...K?.length||z||Y?.thinking?{thinking:!0}:{},...K&&K.length>0?{thinkingLevels:K}:{},...z?{defaultThinkingLevel:z}:{},pricing:Y?.pricing??oK,priority:sK(Q.priority)??Number.MAX_SAFE_INTEGER}}async function BQ($){let Z=await $.getCredentials?.();if(!Z||Z.type!=="oauth"||!Z.accountId)return;let Q=new URL(`${JQ}/models`);Q.searchParams.set("client_version",$.clientVersion??"0.0.0");let Y=await($.fetch??fetch)(Q,{headers:{accept:"application/json",authorization:`Bearer ${Z.accessToken}`,"chatgpt-account-id":Z.accountId,originator:"mu"},...$.signal?{signal:$.signal}:{}});if(!Y.ok)throw S$(Y.status,await Y.text(),Y.headers);let W=await Y.json();if(typeof W!=="object"||W===null||!Array.isArray(W.models))throw Error("Could not discover ChatGPT models: invalid catalog response");let G=W.models;if(G.length===0)return;let X=G.map((J)=>eK(J,$.currentModels)).filter((J)=>J!==void 0).sort((J,B)=>J.priority-B.priority).map(({priority:J,...B})=>B);if(X.length===0)throw Error("Could not discover ChatGPT models: catalog contained no compatible models");return X}function $B($,Z,Q){if(Q?.provider==="openai-codex"){if($.type!=="oauth"||!$.accountId)throw Error("OpenAI Codex requires a ChatGPT account credential");let W=(Z?.baseUrl??JQ).replace(/\/+$/,""),G=KQ(Z?.sessionId);return{url:`${W}/responses`,headers:{authorization:`Bearer ${$.accessToken}`,"chatgpt-account-id":$.accountId,originator:"mu","openai-beta":"responses=experimental",...G?{"session-id":G,"x-client-request-id":G}:{}}}}if(!Q)throw Error("A model is required");let Y=J1(Q,$,Z);return{url:t1(Y,"/responses"),headers:X1(Q,$)}}function ZB($){let Z=[];for(let Q of $)if(Q.role==="user")Z.push({role:"user",content:Q.content.map((Y)=>Y.type==="text"?{type:"input_text",text:Y.text}:{type:"input_image",image_url:`data:${Y.mimeType};base64,${Y.data}`})});else if(Q.role==="assistant")for(let Y of Q.content)if(Y.type==="text"){if(Y.text.trim().length===0)continue;Z.push({role:"assistant",content:[{type:"output_text",text:Y.text}]})}else if(Y.type==="thinking"){if(!Y.signature)continue;try{let W=JSON.parse(Y.signature);Z.push({type:"reasoning",id:W.id,summary:[],...W.encrypted_content?{encrypted_content:W.encrypted_content}:{}})}catch{}}else Z.push({type:"function_call",call_id:Y.id,name:Y.name,arguments:JSON.stringify(Y.arguments??{})});else{let Y=Q.content.every((W)=>W.type==="text")?Q.content.map((W)=>W.text).join(`
|
|
14
|
+
`):Q.content.map((W)=>W.type==="text"?{type:"input_text",text:W.text}:{type:"input_image",image_url:`data:${W.mimeType};base64,${W.data}`});Z.push({type:"function_call_output",call_id:Q.toolCallId,output:Y})}return Z}function QB($,Z,Q){let Y=$.provider==="openai-codex",W={model:$.id,input:ZB(Z.messages),stream:!0,store:!1};if(!Y)W.max_output_tokens=Q?.maxTokens??$.maxOutput;if(Z.systemPrompt&&Z.systemPrompt.length>0)W.instructions=Z.systemPrompt.map((G)=>G.text).join(`
|
|
15
15
|
|
|
16
|
-
`);else if(W
|
|
17
|
-
`)}function
|
|
18
|
-
`);return $.content.map((Z)=>Z.type==="text"?{type:"text",text:Z.text}:{type:"image_url",image_url:{url:`data:${Z.mimeType};base64,${Z.data}`}})}function
|
|
16
|
+
`);else if(Y)W.instructions="You are a helpful assistant.";if(Z.tools&&Z.tools.length>0)W.tools=Z.tools.map((G)=>({type:"function",name:G.name,description:G.description,parameters:G.inputSchema,strict:Y?null:!1}));if(Y){W.text={verbosity:"low"},W.include=["reasoning.encrypted_content"],W.tool_choice="auto",W.parallel_tool_calls=!0;let G=KQ(Q?.sessionId);if(G)W.prompt_cache_key=G}if(Q?.temperature!==void 0)W.temperature=Q.temperature;if($.thinking&&Q?.thinkingLevel&&Q.thinkingLevel!=="off"){if(W.reasoning={effort:Q.thinkingLevel,summary:"auto"},!Y)W.include=["reasoning.encrypted_content"]}return W}function b6($,Z,Q){return B1($,Q,async(Y,W)=>{let G=QB($,Z,Q),X=await c0(async()=>{let V=await G1($,Q),{url:z,headers:F}=$B(V,Q,$);return H1(z,{...F,...Q?.headers},G,Q)},{...Q?.maxRetries!==void 0?{maxRetries:Q.maxRetries}:{},...Q?.signal?{signal:Q.signal}:{}});Y.push({type:"start",partial:W});let J=new Map,B=!1,K=X.body;for await(let V of d0(K,Q?.signal)){if(!V.data||V.data==="[DONE]")continue;let z=JSON.parse(V.data),F=z.type;if(F==="response.output_item.added"){let{item:D,output_index:L}=z,U=D.type,q=W.content.length;if(U==="message")J.set(L,{contentIndex:q,kind:"text",partialJson:""}),W.content.push({type:"text",text:""}),Y.push({type:"text_start",contentIndex:q,partial:W});else if(U==="reasoning")J.set(L,{contentIndex:q,kind:"reasoning",partialJson:""}),W.content.push({type:"thinking",thinking:"",signature:JSON.stringify({id:D.id})}),Y.push({type:"thinking_start",contentIndex:q,partial:W});else if(U==="function_call")B=!0,J.set(L,{contentIndex:q,kind:"function_call",partialJson:""}),W.content.push({type:"toolCall",id:D.call_id??D.id,name:D.name,arguments:{}}),Y.push({type:"toolcall_start",contentIndex:q,partial:W})}else if(F==="response.output_text.delta"){let D=J.get(z.output_index),L=D&&W.content[D.contentIndex];if(D&&L?.type==="text")L.text+=z.delta,Y.push({type:"text_delta",contentIndex:D.contentIndex,delta:z.delta,partial:W})}else if(F==="response.reasoning_summary_text.delta"){let D=J.get(z.output_index),L=D&&W.content[D.contentIndex];if(D&&L?.type==="thinking")L.thinking+=z.delta,Y.push({type:"thinking_delta",contentIndex:D.contentIndex,delta:z.delta,partial:W})}else if(F==="response.function_call_arguments.delta"){let D=J.get(z.output_index),L=D&&W.content[D.contentIndex];if(D&&L?.type==="toolCall")D.partialJson+=z.delta,L.arguments=g0(D.partialJson),Y.push({type:"toolcall_delta",contentIndex:D.contentIndex,delta:z.delta,partial:W})}else if(F==="response.output_item.done"){let D=J.get(z.output_index);if(!D)continue;let L=z.item,U=W.content[D.contentIndex];if(U?.type==="text")Y.push({type:"text_end",contentIndex:D.contentIndex,content:U.text,partial:W});else if(U?.type==="thinking")U.signature=JSON.stringify({id:L.id,...L.encrypted_content?{encrypted_content:L.encrypted_content}:{}}),Y.push({type:"thinking_end",contentIndex:D.contentIndex,content:U.thinking,partial:W});else if(U?.type==="toolCall"){let q=L.arguments??D.partialJson;U.arguments=g0(q),Y.push({type:"toolcall_end",contentIndex:D.contentIndex,toolCall:U,partial:W})}}else if(F==="response.completed"||F==="response.incomplete"||F==="response.failed"){let D=z.response,L=D.usage;if(L){let q=L.input_tokens_details?.cached_tokens??0;W.usage.inputTokens=(L.input_tokens??0)-q,W.usage.cacheReadTokens=q,W.usage.outputTokens=L.output_tokens??0,n0($,W)}if(F==="response.completed")W.stopReason=B?"toolUse":"end";else if(F==="response.incomplete"){let U=D.incomplete_details?.reason;W.stopReason=U==="max_output_tokens"?"length":"end"}else{let U=D.error;W.stopReason="error",W.errorMessage=U?.message??"response failed"}}else if(F==="error")throw Error(z.message??V.data)}})}var k$={id:"openai",stream:b6},o1={id:"openai-codex",stream:b6,discoverModels:BQ};function YB($){return $.content.filter((Q)=>Q.type==="text").map((Q)=>Q.text).join(`
|
|
17
|
+
`)||"(image result attached in the following user message)"}function WB($){if($.content.every((Z)=>Z.type==="text"))return $.content.map((Z)=>Z.text).join(`
|
|
18
|
+
`);return $.content.map((Z)=>Z.type==="text"?{type:"text",text:Z.text}:{type:"image_url",image_url:{url:`data:${Z.mimeType};base64,${Z.data}`}})}function GB($,Z){let Q=[];if(Z&&Z.length>0)Q.push({role:"system",content:Z.map((G)=>G.text).join(`
|
|
19
19
|
|
|
20
|
-
`)});for(let
|
|
21
|
-
`),G
|
|
22
|
-
`),X=W.content.filter((J)=>J.type==="toolCall").map((J)=>({id:J.id,type:"function",function:{name:J.name,arguments:JSON.stringify(J.arguments??{})}}));if(!Y&&!G&&X.length===0)continue;Q.push({role:"assistant",content:Y||null,...G?{reasoning_content:G}:{},...X.length>0?{tool_calls:X}:{}})}return Q}function P1($){return $!==void 0&&$!=="off"}function CK($,Z,Q){if(!Z.thinking||Q===void 0)return;if(Z.provider==="zai"){if($.thinking={type:P1(Q)?"enabled":"disabled"},P1(Q)&&Z.id==="glm-5.2")$.reasoning_effort=Q;return}if(Z.provider.startsWith("qwen-token-plan")){$.enable_thinking=P1(Q);return}if(Z.provider==="deepseek"||Z.provider==="moonshotai"){if($.thinking={type:P1(Q)?"enabled":"disabled"},P1(Q))$.reasoning_effort=Q;return}if(Z.provider==="openrouter"){if(P1(Q))$.reasoning={effort:Q};return}if(P1(Q))$.reasoning_effort=Q}function SK($,Z,Q){let W={model:$.id,messages:RK(Z.messages,Z.systemPrompt),stream:!0,stream_options:{include_usage:!0},max_tokens:Q?.maxTokens??$.maxOutput};if(Z.tools&&Z.tools.length>0)W.tools=Z.tools.map((Y)=>({type:"function",function:{name:Y.name,description:Y.description,parameters:Y.inputSchema}})),W.tool_choice="auto";if(Q?.temperature!==void 0)W.temperature=Q.temperature;if(Q?.sessionId)if($.provider==="openrouter")W.user=Q.sessionId;else W.prompt_cache_key=Q.sessionId;return CK(W,$,Q?.thinkingLevel),W}function kZ($){return typeof $==="number"&&Number.isFinite($)?$:0}function N6($,Z,Q){return Y1($,Q,async(W,Y)=>{let G=SK($,Z,Q),X=await m0(async()=>{let V=await Z1($,Q),F=W1($,V,Q);return G1(p1(F,"/chat/completions"),{...Q1($,V),...Q?.headers},G,Q)},{...Q?.maxRetries!==void 0?{maxRetries:Q.maxRetries}:{},...Q?.signal?{signal:Q.signal}:{}});W.push({type:"start",partial:Y});let J=-1,K=-1,B=new Map,z=X.body;for await(let V of l0(z,Q?.signal)){if(!V.data||V.data==="[DONE]")continue;let F=JSON.parse(V.data),D=F.usage;if(D){let N=D.prompt_tokens_details,j=kZ(N?.cached_tokens);Y.usage.inputTokens=Math.max(0,kZ(D.prompt_tokens)-j),Y.usage.cacheReadTokens=j,Y.usage.outputTokens=kZ(D.completion_tokens),c0($,Y)}let L=F.choices?.[0];if(!L)continue;let U=L.delta??{},q=typeof U.reasoning_content==="string"?U.reasoning_content:typeof U.reasoning==="string"?U.reasoning:"";if(q){if(K===-1)K=Y.content.length,Y.content.push({type:"thinking",thinking:""}),W.push({type:"thinking_start",contentIndex:K,partial:Y});let N=Y.content[K];if(N?.type==="thinking")N.thinking+=q,W.push({type:"thinking_delta",contentIndex:K,delta:q,partial:Y})}if(typeof U.content==="string"&&U.content){if(J===-1)J=Y.content.length,Y.content.push({type:"text",text:""}),W.push({type:"text_start",contentIndex:J,partial:Y});let N=Y.content[J];if(N?.type==="text")N.text+=U.content,W.push({type:"text_delta",contentIndex:J,delta:U.content,partial:Y})}for(let N of U.tool_calls??[]){let j=kZ(N.index),P=B.get(j),O=N.function??{};if(!P){let v=Y.content.length;P={contentIndex:v,partialJson:""},B.set(j,P),Y.content.push({type:"toolCall",id:String(N.id??`call_${j}`),name:String(O.name??""),arguments:{}}),W.push({type:"toolcall_start",contentIndex:v,partial:Y})}let C=Y.content[P.contentIndex];if(C?.type!=="toolCall")continue;if(typeof N.id==="string")C.id=N.id;if(typeof O.name==="string"&&O.name)C.name+=O.name;if(typeof O.arguments==="string")P.partialJson+=O.arguments,C.arguments=b0(P.partialJson),W.push({type:"toolcall_delta",contentIndex:P.contentIndex,delta:O.arguments,partial:Y})}let A=L.finish_reason;if(typeof A==="string")Y.stopReason=A==="length"?"length":A==="tool_calls"||B.size>0?"toolUse":"end"}if(K!==-1){let V=Y.content[K];if(V?.type==="thinking")W.push({type:"thinking_end",contentIndex:K,content:V.thinking,partial:Y})}if(J!==-1){let V=Y.content[J];if(V?.type==="text")W.push({type:"text_end",contentIndex:J,content:V.text,partial:Y})}for(let V of B.values()){let F=Y.content[V.contentIndex];if(F?.type!=="toolCall")continue;F.arguments=b0(V.partialJson),W.push({type:"toolcall_end",contentIndex:V.contentIndex,toolCall:F,partial:Y})}if(B.size>0&&Y.stopReason==="end")Y.stopReason="toolUse"})}var yK=new Map([[T$.id,T$],[E$.id,E$],[c1.id,c1],[I$.id,I$]]);function bK($){let Z=yK.get($);if(Z)return Z;return{id:$,stream:(Q,W,Y)=>{switch(P$(Q)){case"anthropic-messages":return T$.stream(Q,W,Y);case"google-generative-ai":case"google-vertex":return I$.stream(Q,W,Y);case"openai-responses":return E$.stream(Q,W,Y);default:return N6(Q,W,Y)}},...$==="github-copilot"?{discoverModels:q6}:{}}}var d1=new Map([...u0.keys()].map(($)=>[$,bK($)]));d1.set(c1.id,c1);function O6($){let Z=d1.get($);if(!Z)throw Error(`Unknown provider: ${$}`);return Z}function cQ($){d1.set($.id,$)}var _K="https://models.dev/api.json",kK=15000,i1={input:0,output:0,cacheRead:0,cacheWrite:0},xK=[{source:"amazon-bedrock",providers:["amazon-bedrock"]},{source:"anthropic",providers:["anthropic"]},{source:"cerebras",providers:["cerebras"]},{source:"cloudflare-ai-gateway",providers:["cloudflare-ai-gateway"]},{source:"cloudflare-workers-ai",providers:["cloudflare-workers-ai"]},{source:"deepseek",providers:["deepseek"]},{source:"fireworks-ai",providers:["fireworks"]},{source:"github-copilot",providers:["github-copilot"]},{source:"google",providers:["google"]},{source:"google-vertex",providers:["google-vertex"]},{source:"groq",providers:["groq"]},{source:"huggingface",providers:["huggingface"]},{source:"kimi-for-coding",providers:["kimi-coding"]},{source:"minimax",providers:["minimax"]},{source:"mistral",providers:["mistral"]},{source:"moonshotai",providers:["moonshotai"]},{source:"nvidia",providers:["nvidia"]},{source:"openai",providers:["openai","azure-openai-responses"]},{source:"opencode",providers:["opencode"]},{source:"opencode-go",providers:["opencode-go"]},{source:"openrouter",providers:["openrouter"]},{source:"alibaba-token-plan",providers:["qwen-token-plan"]},{source:"vercel-ai-gateway",providers:["vercel-ai-gateway"]},{source:"xai",providers:["xai"]},{source:"zai-coding-plan",providers:["zai"]}],fK=[{provider:"github-copilot",id:"gpt-5.3-codex",name:"GPT-5.3 Codex",api:"openai-responses",contextWindow:128000,maxOutput:32000,modalities:["text","image"],thinking:!0,pricing:i1},{provider:"kimi-coding",id:"kimi-for-coding",name:"Kimi For Coding",api:"anthropic-messages",contextWindow:262144,maxOutput:65536,modalities:["text"],thinking:!0,pricing:i1},{provider:"openrouter",id:"auto",name:"OpenRouter Auto",api:"openai-completions",contextWindow:2000000,maxOutput:30000,modalities:["text","image"],thinking:!0,pricing:i1},{provider:"xai",id:"grok-4.3",name:"Grok 4.3",api:"openai-completions",contextWindow:256000,maxOutput:64000,modalities:["text","image"],thinking:!0,pricing:i1},{provider:"zai",id:"glm-5.1",name:"GLM-5.1",api:"openai-completions",contextWindow:202752,maxOutput:65536,modalities:["text"],thinking:!0,pricing:i1},{provider:"qwen-token-plan",id:"qwen3.7-max",name:"Qwen3.7 Max",api:"openai-completions",contextWindow:1e6,maxOutput:65536,modalities:["text","image"],thinking:!0,pricing:i1}],j6=[...SQ.models,...fK],H0=[...j6],iQ=new Set;function F0($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function X1($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function M6($){return Array.isArray($)?$.filter((Z)=>typeof Z==="string"):[]}function vK($){if($.tool_call!==!0||$.status==="deprecated")return!1;let Z=F0($.limit)?$.limit:{};if((X1(Z.context)??0)<=0||(X1(Z.output)??0)<=0)return!1;if(!F0($.modalities))return!0;let Q=M6($.modalities.input),W=M6($.modalities.output);return Q.includes("text")&&W.includes("text")}function gK($){if(!Array.isArray($.reasoning_options))return"budget";return $.reasoning_options.some((Z)=>F0(Z)&&Z.type==="effort")?"adaptive":"budget"}function hK($){if(!Array.isArray($.reasoning_options))return;let Z=[];for(let Q of $.reasoning_options){if(!F0(Q)||Q.type!=="effort"||!Array.isArray(Q.values))continue;for(let W of Q.values){if(typeof W!=="string"||W.length===0||W==="default")continue;if(!Z.includes(W))Z.push(W)}}return Z.length>0?Z:void 0}function uK($,Z){if($==="cloudflare-ai-gateway"&&typeof Z.id==="string"){if(Z.id.startsWith("openai/"))return"openai-responses";if(Z.id.startsWith("anthropic/"))return"anthropic-messages";return"openai-completions"}if($==="fireworks"&&typeof Z.id==="string"&&Z.id.includes("glm-5p2"))return"openai-completions";if($==="github-copilot"){if(typeof Z.id==="string"&&/^claude-(haiku|sonnet|opus)-[45](?=[.-]|$)/.test(Z.id))return"anthropic-messages";if(typeof Z.id==="string"&&(Z.id.startsWith("gpt-5")||Z.id.startsWith("oswe")||Z.id.startsWith("mai-")))return"openai-responses";return"openai-completions"}if($==="xai"&&Z.id==="grok-4.5")return"openai-responses";if($==="opencode"||$==="opencode-go"){let Q=F0(Z.provider)?Z.provider.npm:void 0;if(Q==="@ai-sdk/openai")return"openai-responses";if(Q==="@ai-sdk/anthropic")return"anthropic-messages";if(Q==="@ai-sdk/google")return"google-generative-ai";return"openai-completions"}return P$({provider:$,id:"",contextWindow:1,maxOutput:1,modalities:["text"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0}})}function nQ($,Z){if(typeof Z.id!=="string")return;let Q=uK($,Z),W=Z.id,Y=u0.get($)?.baseUrl;if($==="cloudflare-ai-gateway"){let G=W.indexOf("/"),X=G===-1?"":W.slice(0,G);if(X==="openai"||X==="anthropic")W=W.slice(G+1)}else if($==="fireworks"&&Q==="openai-completions")Y="https://api.fireworks.ai/inference/v1";else if(($==="opencode"||$==="opencode-go")&&Q==="anthropic-messages")Y=Y?.replace(/\/v1$/,"");return{id:W,api:Q,...Y?{baseUrl:Y}:{}}}function mK($,Z){if(!vK(Z)||typeof Z.id!=="string")return;let Q=F0(Z.limit)?Z.limit:{},W=X1(Q.context),Y=X1(Q.output);if(W===void 0||Y===void 0)return;let G=F0(Z.cost)?Z.cost:{},X=F0(Z.modalities)?M6(Z.modalities.input):["text"],J=["text"];if(X.includes("image"))J.push("image");let K=Z.reasoning===!0,B=K?hK(Z):void 0,z=nQ($,Z);if(!z)return;return{provider:$,id:z.id,...typeof Z.name==="string"?{name:Z.name}:{},api:z.api,...z.baseUrl?{baseUrl:z.baseUrl}:{},contextWindow:W,maxOutput:Y,modalities:J,...K?{thinking:!0}:{},...B?{thinkingLevels:B}:{},...K&&$==="anthropic"?{thinkingMode:gK(Z)}:{},pricing:{input:X1(G.input)??0,output:X1(G.output)??0,cacheRead:X1(G.cache_read)??0,cacheWrite:X1(G.cache_write)??0}}}async function lK($){let Z=await($.fetch??fetch)($.url??_K,{headers:{accept:"application/json"},signal:$.signal??AbortSignal.timeout(kK)});if(!Z.ok)throw Error(`Could not discover models: ${Z.status} ${Z.statusText}`.trim());let Q=await Z.json();if(!F0(Q))throw Error("Could not discover models: invalid catalog response");let W=[],Y=new Set;for(let G of xK){let X=Q[G.source];if(!F0(X)||!F0(X.models))continue;for(let J of G.providers){let K=0;for(let[B,z]of Object.entries(X.models)){if(!F0(z))continue;let V=typeof z.id==="string"?z:{...z,id:B},F=mK(J,V);if(F)W.push(F),K++}if(K>0)Y.add(J)}}if(W.length===0)throw Error("Could not discover models: catalog contained no compatible models");return{models:W,authoritativeProviders:Y}}function dQ($){return $ instanceof Error?$.message:String($)}async function aQ($){let Z=[],Q=new Set,W=[],Y=H0;try{let K=await lK($);Z.push(...K.models);for(let z of K.authoritativeProviders)Q.add(z);let B=new Map(H0.map((z)=>[`${z.provider}/${z.id}`,z]));for(let z of K.models)B.set(`${z.provider}/${z.id}`,z);Y=[...B.values()]}catch(K){W.push(dQ(K))}let G=[],X=$.getCredentials;for(let K of $.providers??d1.values()){if(!K.discoverModels)continue;G.push(K.discoverModels({...$.fetch?{fetch:$.fetch}:{},...$.signal?{signal:$.signal}:{},...X?{getCredentials:()=>X(K.id)}:{},...$.clientVersion?{clientVersion:$.clientVersion}:{},currentModels:Y}).then((B)=>{if(B===void 0)return;if(B.length===0)throw Error(`Could not discover ${K.id} models: catalog returned no models`);return{models:B,authoritativeProviders:new Set([K.id])}}))}let J=await Promise.allSettled(G);for(let K of J){if(K.status==="rejected"){W.push(dQ(K.reason));continue}if(!K.value)continue;for(let B of K.value.authoritativeProviders){for(let z=Z.length-1;z>=0;z--)if(Z[z]?.provider===B)Z.splice(z,1);Q.add(B)}Z.push(...K.value.models)}if(Q.size===0)throw Error(W[0]??"Could not discover models: no discovery source was available");for(let K of W)$.onWarning?.(K);return{models:Z,authoritativeProviders:Q}}async function rQ($={}){return(await aQ($)).models}async function tQ($={}){let Z=await aQ($);for(let W of Z.authoritativeProviders)iQ.add(W);let Q=H0.filter((W)=>!Z.authoritativeProviders.has(W.provider));for(let W of j6){if(Z.authoritativeProviders.has(W.provider))continue;if(!Q.some((Y)=>Y.provider===W.provider&&Y.id===W.id))Q.push(W)}for(let W of Z.models){let Y=Q.findIndex((G)=>G.provider===W.provider&&G.id===W.id);if(Y===-1)Q.push(W);else Q[Y]=W}return H0=Q,R$()}function R$(){return[...H0]}function oQ($){for(let Z of $){let Q=H0.findIndex((W)=>W.provider===Z.provider&&W.id===Z.id);if(Q===-1)H0.push(Z);else H0[Q]=Z}}function w1($){let Z=$.indexOf("/");if(Z!==-1){let Q=$.slice(0,Z),W=$.slice(Z+1),Y=H0.find((J)=>J.provider===Q&&J.id===W);if(Y)return Y;if(iQ.has(Q))return;if(!u0.get(Q)||!W)return;let X=nQ(Q,{id:W});if(!X)return;return{provider:Q,id:X.id,name:X.id,api:X.api,...X.baseUrl?{baseUrl:X.baseUrl}:{},contextWindow:128000,maxOutput:32000,modalities:["text","image"],thinking:!0,pricing:{input:0,output:0,cacheRead:0,cacheWrite:0}}}return H0.find((Q)=>Q.id===$)}function sQ($){return`${$.provider}/${$.id}`}function P6($,Z=process.env){if($==="openai-codex")return!1;let Q=l1($);return Q.length===0||Q.some((W)=>Boolean(Z[W]))}var pK={"openai-codex":"gpt-5.6-sol",openai:"gpt-5.6-sol",anthropic:"claude-opus-5",google:"gemini-2.5-pro"};function cK($){for(let Z of $){let Q=H0.filter((G)=>G.provider===Z);if(Q.length===0)continue;let W=pK[Z];return(W?Q.find((G)=>G.id===W):void 0)??Q[0]}return}function n1($=process.env,Z){let Q=Z?[...Z]:[...new Set(H0.map((Y)=>Y.provider))].filter((Y)=>P6(Y,$)),W=cK(Q)??w1("openai-codex/gpt-5.6-sol")??H0[0]??j6[0];if(!W)throw Error("No models are available");return sQ(W)}var dK=["off","low","medium","high"];function a1($){if(!$.thinking)return["off"];if($.thinkingLevels&&$.thinkingLevels.length>0)return[...new Set($.thinkingLevels)];return[...dK]}function w6($){let Z=a1($);if($.defaultThinkingLevel&&Z.includes($.defaultThinkingLevel))return $.defaultThinkingLevel;return Z[0]??"off"}function d0($,Z){let Q=a1($);if(Z&&Q.includes(Z))return Z;return w6($)}function C$($){if($.stopReason!=="error")return!1;return yZ($.errorMessage??"")}var iK=3.5;function p($){let Z=0;for(let Q of $)if(Q.role==="toolResult"||Q.role==="user"||Q.role==="custom")for(let W of Q.content)Z+=W.type==="text"?W.text.length:1500;else for(let W of Q.content)if(W.type==="text")Z+=W.text.length;else if(W.type==="thinking")Z+=W.thinking.length;else Z+=JSON.stringify(W.arguments).length+W.name.length;return Math.ceil(Z/iK)}function y$($,Z,Q,W){let Y=p(Z),G=Q?Q.inputTokens+Q.cacheReadTokens+Q.cacheWriteTokens:0,X=Q&&W!==void 0?Math.max(0,Y-W):0,J=Math.max(G+X,Y),K=$.contextWindow;return{tokens:J,limit:K,percent:K>0?J/K:0}}var T1=0.85;function E6($,Z=T1){return $.percent>=Z}class _0 extends Error{usage;constructor($,Z){super($);this.usage=Z;this.name="CompactionError"}}var r1=20000;function nK($,Z){for(let Q=Math.min(Z,$.length-1);Q>=0;Q--)if($[Q]?.role==="user")return Q;return null}function $W($,Z=r1){if($.length<=4&&p($)<=Z)return{keepFromIndex:$.length,keptTokens:0,isSplitTurn:!1,turnStartIndex:null};let Q=0,W=$.length;while(W>0&&Q<Z){let X=W-1,J=p([$[X]]);if(Q>0&&Q+J>Z)break;W=X,Q+=J}while(W>0&&$[W]?.role==="toolResult")W--,Q+=p([$[W]]);if(W===0){if($.length===1)W=$.length;else if(W=$.findIndex((X,J)=>J>0&&X.role!=="toolResult"),W<0)W=$.length;Q=p($.slice(W))}let Y=W<$.length?nK($,W):null,G=Y!==null&&Y<W;return{keepFromIndex:W,keptTokens:Q,isSplitTurn:G,turnStartIndex:Y}}var T6=`Summarize the conversation so far so that work can continue without the original transcript.
|
|
20
|
+
`)});let Y=[],W=()=>{let G=Y.filter((X)=>X.type==="image");if(G.length>0)Q.push({role:"user",content:[{type:"text",text:"Images returned by the preceding tool calls:"},...G.map((X)=>({type:"image_url",image_url:{url:`data:${X.mimeType};base64,${X.data}`}}))]});Y=[]};for(let G of $){if(G.role!=="toolResult")W();if(G.role==="user"){Q.push({role:"user",content:WB(G)});continue}if(G.role==="toolResult"){Q.push({role:"tool",tool_call_id:G.toolCallId,content:YB(G)}),Y.push(...G.content);continue}let X=G.content.filter((K)=>K.type==="text").map((K)=>K.text).join(`
|
|
21
|
+
`),J=G.content.filter((K)=>K.type==="thinking").map((K)=>K.thinking).join(`
|
|
22
|
+
`),B=G.content.filter((K)=>K.type==="toolCall").map((K)=>({id:K.id,type:"function",function:{name:K.name,arguments:JSON.stringify(K.arguments??{})}}));if(!X&&!J&&B.length===0)continue;Q.push({role:"assistant",content:X||null,...J?{reasoning_content:J}:{},...B.length>0?{tool_calls:B}:{}})}return W(),Q}function E1($){return $!==void 0&&$!=="off"}function XB($,Z,Q){if(!Z.thinking||Q===void 0)return;if(Z.provider==="zai"){if($.thinking={type:E1(Q)?"enabled":"disabled"},E1(Q)&&Z.id==="glm-5.2")$.reasoning_effort=Q;return}if(Z.provider.startsWith("qwen-token-plan")){$.enable_thinking=E1(Q);return}if(Z.provider==="deepseek"||Z.provider==="moonshotai"){if($.thinking={type:E1(Q)?"enabled":"disabled"},E1(Q))$.reasoning_effort=Q;return}if(Z.provider==="openrouter"){if(E1(Q))$.reasoning={effort:Q};return}if(E1(Q))$.reasoning_effort=Q}function JB($,Z,Q){let Y={model:$.id,messages:GB(Z.messages,Z.systemPrompt),stream:!0,stream_options:{include_usage:!0},max_tokens:Q?.maxTokens??$.maxOutput};if(Z.tools&&Z.tools.length>0)Y.tools=Z.tools.map((W)=>({type:"function",function:{name:W.name,description:W.description,parameters:W.inputSchema}})),Y.tool_choice="auto";if(Q?.temperature!==void 0)Y.temperature=Q.temperature;if(Q?.sessionId)if($.provider==="openrouter")Y.user=Q.sessionId;else Y.prompt_cache_key=Q.sessionId;return XB(Y,$,Q?.thinkingLevel),Y}function cZ($){return typeof $==="number"&&Number.isFinite($)?$:0}function _6($,Z,Q){return B1($,Q,async(Y,W)=>{let G=JB($,Z,Q),X=await c0(async()=>{let z=await G1($,Q),F=J1($,z,Q);return H1(t1(F,"/chat/completions"),{...X1($,z),...Q?.headers},G,Q)},{...Q?.maxRetries!==void 0?{maxRetries:Q.maxRetries}:{},...Q?.signal?{signal:Q.signal}:{}});Y.push({type:"start",partial:W});let J=-1,B=-1,K=new Map,V=X.body;for await(let z of d0(V,Q?.signal)){if(!z.data||z.data==="[DONE]")continue;let F=JSON.parse(z.data),D=F.usage;if(D){let N=D.prompt_tokens_details,j=cZ(N?.cached_tokens);W.usage.inputTokens=Math.max(0,cZ(D.prompt_tokens)-j),W.usage.cacheReadTokens=j,W.usage.outputTokens=cZ(D.completion_tokens),n0($,W)}let L=F.choices?.[0];if(!L)continue;let U=L.delta??{},q=typeof U.reasoning_content==="string"?U.reasoning_content:typeof U.reasoning==="string"?U.reasoning:"";if(q){if(B===-1)B=W.content.length,W.content.push({type:"thinking",thinking:""}),Y.push({type:"thinking_start",contentIndex:B,partial:W});let N=W.content[B];if(N?.type==="thinking")N.thinking+=q,Y.push({type:"thinking_delta",contentIndex:B,delta:q,partial:W})}if(typeof U.content==="string"&&U.content){if(J===-1)J=W.content.length,W.content.push({type:"text",text:""}),Y.push({type:"text_start",contentIndex:J,partial:W});let N=W.content[J];if(N?.type==="text")N.text+=U.content,Y.push({type:"text_delta",contentIndex:J,delta:U.content,partial:W})}for(let N of U.tool_calls??[]){let j=cZ(N.index),P=K.get(j),O=N.function??{};if(!P){let g=W.content.length;P={contentIndex:g,partialJson:""},K.set(j,P),W.content.push({type:"toolCall",id:String(N.id??`call_${j}`),name:String(O.name??""),arguments:{}}),Y.push({type:"toolcall_start",contentIndex:g,partial:W})}let C=W.content[P.contentIndex];if(C?.type!=="toolCall")continue;if(typeof N.id==="string")C.id=N.id;if(typeof O.name==="string"&&O.name)C.name+=O.name;if(typeof O.arguments==="string")P.partialJson+=O.arguments,C.arguments=g0(P.partialJson),Y.push({type:"toolcall_delta",contentIndex:P.contentIndex,delta:O.arguments,partial:W})}let A=L.finish_reason;if(typeof A==="string")W.stopReason=A==="length"?"length":A==="tool_calls"||K.size>0?"toolUse":"end"}if(B!==-1){let z=W.content[B];if(z?.type==="thinking")Y.push({type:"thinking_end",contentIndex:B,content:z.thinking,partial:W})}if(J!==-1){let z=W.content[J];if(z?.type==="text")Y.push({type:"text_end",contentIndex:J,content:z.text,partial:W})}for(let z of K.values()){let F=W.content[z.contentIndex];if(F?.type!=="toolCall")continue;F.arguments=g0(z.partialJson),Y.push({type:"toolcall_end",contentIndex:z.contentIndex,toolCall:F,partial:W})}if(K.size>0&&W.stopReason==="end")W.stopReason="toolUse"})}var KB=new Map([[_$.id,_$],[k$.id,k$],[o1.id,o1],[x$.id,x$]]);function BB($){let Z=KB.get($);if(Z)return Z;return{id:$,stream:(Q,Y,W)=>{switch(y$(Q)){case"anthropic-messages":return _$.stream(Q,Y,W);case"google-generative-ai":case"google-vertex":return x$.stream(Q,Y,W);case"openai-responses":return k$.stream(Q,Y,W);default:return _6(Q,Y,W)}},...$==="github-copilot"?{discoverModels:y6}:{}}}var s1=new Map([...p0.keys()].map(($)=>[$,BB($)]));s1.set(o1.id,o1);function x6($){let Z=s1.get($);if(!Z)throw Error(`Unknown provider: ${$}`);return Z}function HQ($){s1.set($.id,$)}var HB="https://models.dev/api.json",VB=15000,e1={input:0,output:0,cacheRead:0,cacheWrite:0},zB=[{source:"amazon-bedrock",providers:["amazon-bedrock"]},{source:"anthropic",providers:["anthropic"]},{source:"cerebras",providers:["cerebras"]},{source:"cloudflare-ai-gateway",providers:["cloudflare-ai-gateway"]},{source:"cloudflare-workers-ai",providers:["cloudflare-workers-ai"]},{source:"deepseek",providers:["deepseek"]},{source:"fireworks-ai",providers:["fireworks"]},{source:"github-copilot",providers:["github-copilot"]},{source:"google",providers:["google"]},{source:"google-vertex",providers:["google-vertex"]},{source:"groq",providers:["groq"]},{source:"huggingface",providers:["huggingface"]},{source:"kimi-for-coding",providers:["kimi-coding"]},{source:"minimax",providers:["minimax"]},{source:"mistral",providers:["mistral"]},{source:"moonshotai",providers:["moonshotai"]},{source:"nvidia",providers:["nvidia"]},{source:"openai",providers:["openai","azure-openai-responses"]},{source:"opencode",providers:["opencode"]},{source:"opencode-go",providers:["opencode-go"]},{source:"openrouter",providers:["openrouter"]},{source:"alibaba-token-plan",providers:["qwen-token-plan"]},{source:"vercel-ai-gateway",providers:["vercel-ai-gateway"]},{source:"xai",providers:["xai"]},{source:"zai-coding-plan",providers:["zai"]}],FB=[{provider:"github-copilot",id:"gpt-5.3-codex",name:"GPT-5.3 Codex",api:"openai-responses",contextWindow:128000,maxOutput:32000,modalities:["text","image"],thinking:!0,pricing:e1},{provider:"kimi-coding",id:"kimi-for-coding",name:"Kimi For Coding",api:"anthropic-messages",contextWindow:262144,maxOutput:65536,modalities:["text"],thinking:!0,pricing:e1},{provider:"openrouter",id:"auto",name:"OpenRouter Auto",api:"openai-completions",contextWindow:2000000,maxOutput:30000,modalities:["text","image"],thinking:!0,pricing:e1},{provider:"xai",id:"grok-4.3",name:"Grok 4.3",api:"openai-completions",contextWindow:256000,maxOutput:64000,modalities:["text","image"],thinking:!0,pricing:e1},{provider:"zai",id:"glm-5.1",name:"GLM-5.1",api:"openai-completions",contextWindow:202752,maxOutput:65536,modalities:["text"],thinking:!0,pricing:e1},{provider:"qwen-token-plan",id:"qwen3.7-max",name:"Qwen3.7 Max",api:"openai-completions",contextWindow:1e6,maxOutput:65536,modalities:["text","image"],thinking:!0,pricing:e1}],f6=[...t9.models,...FB],U0=[...f6],FQ=new Set;function N0($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function V1($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function k6($){return Array.isArray($)?$.filter((Z)=>typeof Z==="string"):[]}function DB($){if($.tool_call!==!0||$.status==="deprecated")return!1;let Z=N0($.limit)?$.limit:{};if((V1(Z.context)??0)<=0||(V1(Z.output)??0)<=0)return!1;if(!N0($.modalities))return!0;let Q=k6($.modalities.input),Y=k6($.modalities.output);return Q.includes("text")&&Y.includes("text")}function LB($){if(!Array.isArray($.reasoning_options))return"budget";return $.reasoning_options.some((Z)=>N0(Z)&&Z.type==="effort")?"adaptive":"budget"}function UB($){if(!Array.isArray($.reasoning_options))return;let Z=[];for(let Q of $.reasoning_options){if(!N0(Q)||Q.type!=="effort"||!Array.isArray(Q.values))continue;for(let Y of Q.values){if(typeof Y!=="string"||Y.length===0||Y==="default")continue;if(!Z.includes(Y))Z.push(Y)}}return Z.length>0?Z:void 0}function qB($,Z){if($==="cloudflare-ai-gateway"&&typeof Z.id==="string"){if(Z.id.startsWith("openai/"))return"openai-responses";if(Z.id.startsWith("anthropic/"))return"anthropic-messages";return"openai-completions"}if($==="fireworks"&&typeof Z.id==="string"&&Z.id.includes("glm-5p2"))return"openai-completions";if($==="github-copilot"){if(typeof Z.id==="string"&&/^claude-(haiku|sonnet|opus)-[45](?=[.-]|$)/.test(Z.id))return"anthropic-messages";if(typeof Z.id==="string"&&(Z.id.startsWith("gpt-5")||Z.id.startsWith("oswe")||Z.id.startsWith("mai-")))return"openai-responses";return"openai-completions"}if($==="xai"&&Z.id==="grok-4.5")return"openai-responses";if($==="opencode"||$==="opencode-go"){let Q=N0(Z.provider)?Z.provider.npm:void 0;if(Q==="@ai-sdk/openai")return"openai-responses";if(Q==="@ai-sdk/anthropic")return"anthropic-messages";if(Q==="@ai-sdk/google")return"google-generative-ai";return"openai-completions"}return y$({provider:$,id:"",contextWindow:1,maxOutput:1,modalities:["text"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0}})}function DQ($,Z){if(typeof Z.id!=="string")return;let Q=qB($,Z),Y=Z.id,W=p0.get($)?.baseUrl;if($==="cloudflare-ai-gateway"){let G=Y.indexOf("/"),X=G===-1?"":Y.slice(0,G);if(X==="openai"||X==="anthropic")Y=Y.slice(G+1)}else if($==="fireworks"&&Q==="openai-completions")W="https://api.fireworks.ai/inference/v1";else if(($==="opencode"||$==="opencode-go")&&Q==="anthropic-messages")W=W?.replace(/\/v1$/,"");return{id:Y,api:Q,...W?{baseUrl:W}:{}}}function AB($,Z){if(!DB(Z)||typeof Z.id!=="string")return;let Q=N0(Z.limit)?Z.limit:{},Y=V1(Q.context),W=V1(Q.output);if(Y===void 0||W===void 0)return;let G=N0(Z.cost)?Z.cost:{},X=N0(Z.modalities)?k6(Z.modalities.input):["text"],J=["text"];if(X.includes("image"))J.push("image");let B=Z.reasoning===!0,K=B?UB(Z):void 0,V=DQ($,Z);if(!V)return;return{provider:$,id:V.id,...typeof Z.name==="string"?{name:Z.name}:{},api:V.api,...V.baseUrl?{baseUrl:V.baseUrl}:{},contextWindow:Y,maxOutput:W,modalities:J,...B?{thinking:!0}:{},...K?{thinkingLevels:K}:{},...B&&$==="anthropic"?{thinkingMode:LB(Z)}:{},pricing:{input:V1(G.input)??0,output:V1(G.output)??0,cacheRead:V1(G.cache_read)??0,cacheWrite:V1(G.cache_write)??0}}}async function NB($){let Z=await($.fetch??fetch)($.url??HB,{headers:{accept:"application/json"},signal:$.signal??AbortSignal.timeout(VB)});if(!Z.ok)throw Error(`Could not discover models: ${Z.status} ${Z.statusText}`.trim());let Q=await Z.json();if(!N0(Q))throw Error("Could not discover models: invalid catalog response");let Y=[],W=new Set;for(let G of zB){let X=Q[G.source];if(!N0(X)||!N0(X.models))continue;for(let J of G.providers){let B=0;for(let[K,V]of Object.entries(X.models)){if(!N0(V))continue;let z=typeof V.id==="string"?V:{...V,id:K},F=AB(J,z);if(F)Y.push(F),B++}if(B>0)W.add(J)}}if(Y.length===0)throw Error("Could not discover models: catalog contained no compatible models");return{models:Y,authoritativeProviders:W}}function VQ($){return $ instanceof Error?$.message:String($)}async function LQ($){let Z=[],Q=new Set,Y=[],W=U0;try{let B=await NB($);Z.push(...B.models);for(let V of B.authoritativeProviders)Q.add(V);let K=new Map(U0.map((V)=>[`${V.provider}/${V.id}`,V]));for(let V of B.models)K.set(`${V.provider}/${V.id}`,V);W=[...K.values()]}catch(B){Y.push(VQ(B))}let G=[],X=$.getCredentials;for(let B of $.providers??s1.values()){if(!B.discoverModels)continue;G.push(B.discoverModels({...$.fetch?{fetch:$.fetch}:{},...$.signal?{signal:$.signal}:{},...X?{getCredentials:()=>X(B.id)}:{},...$.clientVersion?{clientVersion:$.clientVersion}:{},currentModels:W}).then((K)=>{if(K===void 0)return;if(K.length===0)throw Error(`Could not discover ${B.id} models: catalog returned no models`);return{models:K,authoritativeProviders:new Set([B.id])}}))}let J=await Promise.allSettled(G);for(let B of J){if(B.status==="rejected"){Y.push(VQ(B.reason));continue}if(!B.value)continue;for(let K of B.value.authoritativeProviders){for(let V=Z.length-1;V>=0;V--)if(Z[V]?.provider===K)Z.splice(V,1);Q.add(K)}Z.push(...B.value.models)}if(Q.size===0)throw Error(Y[0]??"Could not discover models: no discovery source was available");for(let B of Y)$.onWarning?.(B);return{models:Z,authoritativeProviders:Q}}async function UQ($={}){return(await LQ($)).models}async function qQ($={}){let Z=await LQ($);for(let Y of Z.authoritativeProviders)FQ.add(Y);let Q=U0.filter((Y)=>!Z.authoritativeProviders.has(Y.provider));for(let Y of f6){if(Z.authoritativeProviders.has(Y.provider))continue;if(!Q.some((W)=>W.provider===Y.provider&&W.id===Y.id))Q.push(Y)}for(let Y of Z.models){let W=Q.findIndex((G)=>G.provider===Y.provider&&G.id===Y.id);if(W===-1)Q.push(Y);else Q[W]=Y}return U0=Q,f$()}function f$(){return[...U0]}function AQ($){for(let Z of $){let Q=U0.findIndex((Y)=>Y.provider===Z.provider&&Y.id===Z.id);if(Q===-1)U0.push(Z);else U0[Q]=Z}}function $$($){let Z=$.indexOf("/");if(Z!==-1){let Q=$.slice(0,Z),Y=$.slice(Z+1),W=U0.find((J)=>J.provider===Q&&J.id===Y);if(W)return W;if(FQ.has(Q))return;if(!p0.get(Q)||!Y)return;let X=DQ(Q,{id:Y});if(!X)return;return{provider:Q,id:X.id,name:X.id,api:X.api,...X.baseUrl?{baseUrl:X.baseUrl}:{},contextWindow:128000,maxOutput:32000,modalities:["text","image"],thinking:!0,pricing:{input:0,output:0,cacheRead:0,cacheWrite:0}}}return U0.find((Q)=>Q.id===$)}function NQ($){return`${$.provider}/${$.id}`}function v6($,Z=process.env){if($==="openai-codex")return!1;let Q=r1($);return Q.length===0||Q.some((Y)=>Boolean(Z[Y]))}var g6={"openai-codex":"gpt-5.6-sol",openai:"gpt-5.6-sol",anthropic:"claude-opus-5",google:"gemini-2.5-pro","github-copilot":"gpt-5.3-codex","kimi-coding":"kimi-for-coding",xai:"grok-4.3"};function OQ($){return g6[$]}function zQ($){for(let Z of $){let Q=U0.filter((G)=>G.provider===Z);if(Q.length===0)continue;let Y=g6[Z];return(Y?Q.find((G)=>G.id===Y):void 0)??Q[0]}return}function Z$($=process.env,Z){let Q=Z?[...Z]:[...new Set(U0.map((W)=>W.provider))].filter((W)=>v6(W,$)),Y=zQ(Q)??zQ(Object.keys(g6))??U0[0]??f6[0];if(!Y)throw Error("No models are available");return NQ(Y)}var OB=["off","low","medium","high"];function Q$($){if(!$.thinking)return["off"];if($.thinkingLevels&&$.thinkingLevels.length>0)return[...new Set($.thinkingLevels)];return[...OB]}function h6($){let Z=Q$($);if($.defaultThinkingLevel&&Z.includes($.defaultThinkingLevel))return $.defaultThinkingLevel;return Z[0]??"off"}function a0($,Z){let Q=Q$($);if(Z&&Q.includes(Z))return Z;return h6($)}function v$($){if($.stopReason!=="error")return!1;return mZ($.errorMessage??"")}var jQ=3.5;function iZ($){return Math.ceil($.length/jQ)}function l($){let Z=0;for(let Q of $)if(Q.role==="toolResult"||Q.role==="user"||Q.role==="custom")for(let Y of Q.content)Z+=Y.type==="text"?Y.text.length:1500;else for(let Y of Q.content)if(Y.type==="text")Z+=Y.text.length;else if(Y.type==="thinking")Z+=Y.thinking.length;else Z+=JSON.stringify(Y.arguments).length+Y.name.length;return Math.ceil(Z/jQ)}function h$($,Z,Q,Y){let W=l(Z),G=Q?Q.inputTokens+Q.cacheReadTokens+Q.cacheWriteTokens:0,X=Q&&Y!==void 0?Math.max(0,W-Y):0,J=Math.max(G+X,W),B=$.contextWindow;return{tokens:J,limit:B,percent:B>0?J/B:0}}var R1=0.85;function l6($,Z=R1){return $.percent>=Z}class h0 extends Error{usage;constructor($,Z){super($);this.usage=Z;this.name="CompactionError"}}var Y$=20000;function MB($,Z){for(let Q=Math.min(Z,$.length-1);Q>=0;Q--)if($[Q]?.role==="user")return Q;return null}function PQ($,Z=Y$){if($.length<=4&&l($)<=Z)return{keepFromIndex:$.length,keptTokens:0,isSplitTurn:!1,turnStartIndex:null};let Q=0,Y=$.length;while(Y>0&&Q<Z){let X=Y-1,J=l([$[X]]);if(Q>0&&Q+J>Z)break;Y=X,Q+=J}while(Y>0&&$[Y]?.role==="toolResult")Y--,Q+=l([$[Y]]);if(Y===0){if($.length===1)Y=$.length;else if(Y=$.findIndex((X,J)=>J>0&&X.role!=="toolResult"),Y<0)Y=$.length;Q=l($.slice(Y))}let W=Y<$.length?MB($,Y):null,G=W!==null&&W<Y;return{keepFromIndex:Y,keptTokens:Q,isSplitTurn:G,turnStartIndex:W}}var u6=`Summarize the conversation so far so that work can continue without the original transcript.
|
|
23
23
|
|
|
24
24
|
Preserve, in this order:
|
|
25
25
|
1. What the user asked for \u2014 the goal, in their terms, including any constraints they stated.
|
|
@@ -28,71 +28,71 @@ Preserve, in this order:
|
|
|
28
28
|
4. Concrete facts discovered that would be expensive to rediscover (file locations, API shapes, error messages, command invocations that work).
|
|
29
29
|
5. Anything the user corrected you on.
|
|
30
30
|
|
|
31
|
-
Be specific and factual. Do not include pleasantries or narration. This summary replaces the transcript, so anything you omit is lost.`,
|
|
32
|
-
[... ${$.length-Z} characters omitted]`}function
|
|
33
|
-
`)}function
|
|
34
|
-
${X}`);if(Q.content.some((J)=>J.type==="image"))Z.push("[User image omitted from compaction input]");continue}if(Q.role==="custom"){let X=
|
|
35
|
-
${X}`);continue}if(Q.role==="toolResult"){let X=
|
|
36
|
-
${X||"(non-text output omitted)"}`);continue}let
|
|
37
|
-
`),
|
|
38
|
-
`);if(
|
|
39
|
-
${
|
|
40
|
-
${
|
|
31
|
+
Be specific and factual. Do not include pleasantries or narration. This summary replaces the transcript, so anything you omit is lost.`,jB="The retained transcript begins part-way through a large user turn. Preserve the original request and the early progress needed to understand the retained suffix. Do not imply that the retained suffix starts a new task.",PB=2000,wB=4000,IB=3;function MQ($,Z){if($.length<=Z)return $;return`${$.slice(0,Z)}
|
|
32
|
+
[... ${$.length-Z} characters omitted]`}function g$($){return $.content.filter((Z)=>Z.type==="text").map((Z)=>Z.text).join(`
|
|
33
|
+
`)}function wQ($){let Z=[];for(let Q of $){if(Q.role==="user"){let X=g$(Q);if(X)Z.push(`[User]
|
|
34
|
+
${X}`);if(Q.content.some((J)=>J.type==="image"))Z.push("[User image omitted from compaction input]");continue}if(Q.role==="custom"){let X=g$(Q);if(X)Z.push(`[Injected context: ${Q.customType}]
|
|
35
|
+
${X}`);continue}if(Q.role==="toolResult"){let X=MQ(g$(Q),PB);Z.push(`[Tool result: ${Q.toolName}${Q.isError?" (error)":""}]
|
|
36
|
+
${X||"(non-text output omitted)"}`);continue}let Y=Q.content.filter((X)=>X.type==="thinking").map((X)=>X.thinking).join(`
|
|
37
|
+
`),W=g$(Q),G=Q.content.filter((X)=>X.type==="toolCall").map((X)=>`${X.name}(${MQ(JSON.stringify(X.arguments),wB)})`).join(`
|
|
38
|
+
`);if(Y)Z.push(`[Assistant thinking]
|
|
39
|
+
${Y}`);if(W)Z.push(`[Assistant]
|
|
40
|
+
${W}`);if(G)Z.push(`[Assistant tool calls]
|
|
41
41
|
${G}`)}return Z.join(`
|
|
42
42
|
|
|
43
|
-
`)}async function
|
|
43
|
+
`)}async function nZ($,Z){let Q=Z.keepRecentTokens??Math.min(Y$,Math.max(2,Math.floor(Z.model.contextWindow*0.2))),Y=PQ($,Q),{keepFromIndex:W}=Y,G=$.slice(0,W),X=$.slice(W);if(G.length===0)return{summary:"",keptMessages:$,tokensFreed:0,usage:{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,costUsd:0}};let J=Z.carryoverExtractor?.(G);if(J!==void 0)dZ(J);let B=G.findIndex((U)=>U.role==="custom"&&U.customType==="compaction-summary"),K=B===-1?void 0:g$(G[B]),V=G.filter((U,q)=>q!==B),z,F=0;for(;;){let U=[u6,K?"Update the previous summary with the newly summarized conversation.":"",Y.isSplitTurn?jB:"",Z.customInstructions?`Additional focus from the user: ${Z.customInstructions}`:""].filter(Boolean).join(`
|
|
44
44
|
|
|
45
45
|
`),q=[`<conversation>
|
|
46
|
-
${
|
|
47
|
-
</conversation>`,...
|
|
48
|
-
${
|
|
46
|
+
${wQ(V)}
|
|
47
|
+
</conversation>`,...K?[`<previous-summary>
|
|
48
|
+
${K}
|
|
49
49
|
</previous-summary>`]:[],U,"Produce the summary now."].join(`
|
|
50
50
|
|
|
51
51
|
`),A={systemPrompt:[{text:`You are a context summarization assistant. Do not continue the conversation. Output only the requested handoff summary.
|
|
52
52
|
|
|
53
|
-
${
|
|
53
|
+
${u6}`}],messages:[{role:"user",content:[{type:"text",text:q}],timestamp:Date.now()}]};if(z=await Z.provider.stream(Z.model,A,{...Z.streamOpts,sessionId:`${Z.streamOpts?.sessionId??"mu"}:compact:${Date.now().toString(36)}:${F}`,maxTokens:Math.min(Z.model.maxOutput,8192),...Z.signal?{signal:Z.signal}:{}}).result(),!v$(z)||V.length<=1||F+1>=IB)break;V=V.slice(Math.max(1,Math.floor(V.length/2))),F++}if(z.stopReason!=="end")throw new h0(`Compaction failed: ${z.errorMessage??`incomplete response (${z.stopReason})`}`,z.usage);let D=z.content.filter((U)=>U.type==="text").map((U)=>U.text).join("").trim();if(D.length===0)throw new h0("Compaction failed: the provider returned no usable summary",z.usage);let L={summary:D,...J!==void 0?{carryover:J}:{},keptMessages:X,tokensFreed:0,usage:z.usage};return L.tokensFreed=Math.max(0,l($)-l(u$(L))),L}function u$($){if($.summary.length===0)return $.keptMessages;return[m$($.summary,$.carryover),...$.keptMessages]}function m$($,Z,Q=Date.now()){let Y=Z===void 0?"":`
|
|
54
54
|
|
|
55
55
|
Carried forward:
|
|
56
|
-
${
|
|
56
|
+
${IQ(Z)}`;return{role:"custom",customType:"compaction-summary",content:[{type:"text",text:`Summary of the earlier conversation:
|
|
57
57
|
|
|
58
|
-
${$}${
|
|
59
|
-
${
|
|
60
|
-
</${Z}>`}:W);return{role:"user",content:Q,timestamp:$.timestamp}}function C6($){return $.map((Z)=>Z.role==="custom"?WW(Z):Z)}function t1($){return{role:"user",content:[{type:"text",text:$}],timestamp:Date.now()}}function k$($,Z,Q=!1){return{role:"custom",customType:$,content:[{type:"text",text:Z}],display:Q,timestamp:Date.now()}}function y($){return{content:[{type:"text",text:$}],isError:!0}}function YW($){return{content:[{type:"text",text:$}]}}function vZ($,Z){if($.executionMode==="sequential")return!1;if(!$.isConcurrencySafe)return!1;try{return $.isConcurrencySafe(Z)===!0}catch{return!1}}var sK=10,GW=3;function eK($){return $.content.filter((Z)=>Z.type==="toolCall")}function $B($){return`${$.name}:${JSON.stringify($.arguments)}`}async function S6($,Z,Q,W,Y){let G=Y??new AbortController().signal,X=[...$],J={...Z,messages:[...Z.messages,...$]},K=Q,B=0,z=[],V=async(D)=>{return await W({type:"agent_end",messages:X,reason:D}),{messages:X,reason:D}};await W({type:"agent_start"});for(let D of $)await W({type:"message_start",message:D}),await W({type:"message_end",message:D});let F=await K.getSteeringMessages?.()??[];for(;;){let D=!0;while(D||F.length>0){if(G.aborted)return V("aborted");if(K.maxTurns!==void 0&&B>=K.maxTurns)return V("maxTurns");B++,await W({type:"turn_start"});for(let O of F)await W({type:"message_start",message:O}),await W({type:"message_end",message:O}),J.messages.push(O),X.push(O);if(F=[],K.prepareContext){let O=await K.prepareContext(J.messages),C=Array.isArray(O)?{messages:O}:O;if(J={...J,messages:C.messages},C.stop)return V("budget")}let U=await WB(J,K,W,G),q=U.message;if(J.messages.push(q),X.push(q),q.stopReason==="error"||q.stopReason==="aborted"){if(await W({type:"turn_end",message:q,toolResults:[]}),q.stopReason==="error"&&await K.recoverFromError?.(q)===!0){D=!0;continue}return V(q.stopReason==="aborted"?"aborted":"error")}let A=eK(q),N=[];if(D=!1,A.length>0){let O=q.stopReason==="length"?await YB(A,W):await KB(A,q,J,K,W,G);N.push(...O.results),F.push(...O.steering),D=!O.terminate;for(let v of O.results)J.messages.push(v),X.push(v);let C=ZB(A,z);if(C)J.messages.push(C),X.push(C),await W({type:"message_start",message:C}),await W({type:"message_end",message:C})}await W({type:"turn_end",message:q,toolResults:N});let j={message:q,toolResults:N,context:J,requestMessages:U.messages,newMessages:X},P=await K.prepareNextTurn?.(j);if(P){if(P.context)J=P.context;K={...K,...P.model?{model:P.model}:{},...P.thinkingLevel!==void 0?{thinkingLevel:P.thinkingLevel}:{}}}if(await K.shouldStopAfterTurn?.(j))return V("done");F.push(...await K.getSteeringMessages?.()??[])}let L=await K.getFollowUpMessages?.()??[];if(L.length>0){F=L;continue}break}return V("done")}function ZB($,Z){for(let W of $){let Y=$B(W);if(Z[Z.length-1]===Y)Z.push(Y);else Z.length=0,Z.push(Y)}if(Z.length<GW)return;let Q=$[$.length-1]?.name??"the tool";return Z.length=0,{role:"custom",customType:"system-reminder",content:[{type:"text",text:`You have called ${Q} with identical arguments ${GW} times in a row and the result is not changing. Stop repeating it \u2014 try a different approach, or explain what is blocking you.`}],display:!0,timestamp:Date.now()}}function QB($){let Z=$.contentIndex??0;switch($.type){case"text_start":return{kind:"text_start",contentIndex:Z};case"text_delta":return{kind:"text_delta",contentIndex:Z,text:$.delta??""};case"text_end":return{kind:"text_end",contentIndex:Z};case"thinking_start":return{kind:"thinking_start",contentIndex:Z};case"thinking_delta":return{kind:"thinking_delta",contentIndex:Z,text:$.delta??""};case"thinking_end":return{kind:"thinking_end",contentIndex:Z};case"toolcall_start":return{kind:"toolcall_start",contentIndex:Z};case"toolcall_delta":return{kind:"toolcall_delta",contentIndex:Z,argsFragment:$.delta??""};case"toolcall_end":return{kind:"toolcall_end",contentIndex:Z,toolCallId:$.toolCall?.id??""};default:return}}async function WB($,Z,Q,W){let Y=Z.transformContext?await Z.transformContext($.messages):$.messages,G={...$.systemPrompt?{systemPrompt:$.systemPrompt}:{},messages:C6(Y),...$.tools?{tools:$.tools.map((B)=>({name:B.name,description:B.description,inputSchema:B.inputSchema}))}:{}},X=Z.provider.stream(Z.model,G,{...Z.streamOpts,...Z.thinkingLevel!==void 0?{thinkingLevel:Z.thinkingLevel}:{},signal:W}),J=!1;for await(let B of X){if(B.type==="start"){J=!0,await Q({type:"message_start",message:{...B.partial}});continue}if(B.type==="done"||B.type==="error")break;let z=QB(B);if(z)await Q({type:"message_update",message:{...B.partial},delta:z})}let K=await X.result();if(!J)await Q({type:"message_start",message:{...K}});return await Q({type:"message_end",message:K}),{message:K,messages:Y}}function y6($,Z,Q){return{role:"toolResult",toolCallId:$.id,toolName:$.name,content:Z.content??[],...Z.details!==void 0?{details:Z.details}:{},isError:Q,timestamp:Date.now()}}async function gZ($,Z){await Z({type:"tool_execution_end",toolCallId:$.toolCallId,result:$}),await Z({type:"message_start",message:$}),await Z({type:"message_end",message:$})}async function YB($,Z){let Q=[];for(let W of $){await Z({type:"tool_execution_start",toolCallId:W.id,toolName:W.name,args:W.arguments});let Y=y6(W,y(`Tool call "${W.name}" was not executed: the response hit the output token limit, so its arguments may be truncated. Re-issue the tool call with complete arguments.`),!0);await gZ(Y,Z),Q.push(Y)}return{results:Q,terminate:!1,steering:[]}}async function GB($,Z){let Q=[];for(let W of $){await Z({type:"tool_execution_start",toolCallId:W.id,toolName:W.name,args:W.arguments});let Y=y6(W,y(`Tool call "${W.name}" was not executed because a steering message interrupted the remaining tool calls. Re-evaluate the plan before re-issuing it.`),!0);await gZ(Y,Z),Q.push(Y)}return Q}async function XB($,Z,Q,W,Y){let G=Q.tools?.find((X)=>X.name===$.name);if(!G)return{kind:"immediate",result:y(`Tool ${$.name} not found`)};try{let X=$.arguments,J=await W.beforeToolCall?.({assistantMessage:Z,toolCall:$,args:X,context:Q},Y);if(Y.aborted)return{kind:"immediate",result:y("Operation aborted")};if(J?.block)return{kind:"immediate",result:y(J.reason||"Tool execution was blocked")};if(J?.rewrittenArgs)X=J.rewrittenArgs;return{kind:"prepared",prepared:{call:$,tool:G,args:X}}}catch(X){return{kind:"immediate",result:y(X instanceof Error?X.message:String(X))}}}async function JB($,Z,Q,W,Y,G){let X,J;try{X=await $.tool.execute($.call.id,$.args,G,(K)=>{Y({type:"tool_execution_update",toolCallId:$.call.id,partial:K})}),J=X.isError===!0}catch(K){X=y(K instanceof Error?K.message:String(K)),J=!0}if(W.afterToolCall)try{let K=await W.afterToolCall({assistantMessage:Z,toolCall:$.call,args:$.args,context:Q,result:X,isError:J},G);if(K)X=K,J=K.isError??J}catch(K){X=y(K instanceof Error?K.message:String(K)),J=!0}return{result:X,isError:J}}async function KB($,Z,Q,W,Y,G){let X=[],J=[],K=[],B=async(V)=>{await Y({type:"tool_execution_start",toolCallId:V.id,toolName:V.name,args:V.arguments});let F=await XB(V,Z,Q,W,G),D=F.kind==="immediate"?{result:F.result,isError:!0}:await JB(F.prepared,Z,Q,W,Y,G);return J.push(D.result.terminate===!0),y6(V,D.result,D.isError)},z=0;while(z<$.length){let V=$[z],F=Q.tools?.find((q)=>q.name===V.name);if(!(F?vZ(F,V.arguments):!1)){let q=await B(V);if(await gZ(q,Y),X.push(q),z++,G.aborted)break;if(K=await W.getSteeringMessages?.()??[],K.length>0)break;continue}let L=[];while(z<$.length&&L.length<sK){let q=$[z],A=Q.tools?.find((N)=>N.name===q.name);if(!A||!vZ(A,q.arguments))break;L.push(q),z++}let U=await Promise.all(L.map(B));for(let q of U)await gZ(q,Y),X.push(q);if(G.aborted)break;if(K=await W.getSteeringMessages?.()??[],K.length>0)break}if(K.length>0&&z<$.length)X.push(...await GB($.slice(z),Y));return{results:X,terminate:J.length>0&&J.every(Boolean),steering:K}}var b6="[output cleared to save context \u2014 re-run the tool if you need it]",JW="[image cleared to save context]";function XW($){return $.type==="image"&&$.evictable!==!1}function hZ($,Z={}){let Q=Z.keepRecent??6,W=p($),Y=Z.targetTokens,G=[...$],X=Math.max(0,G.length-Q),J=0,K=()=>Y!==void 0&&p(G)<=Y;for(let B=0;B<X;B++){let z=G[B];if(!z||z.role!=="toolResult"||z.evicted)continue;if(K())break;if(!z.content.some(XW))continue;G[B]={...z,content:z.content.map((F)=>XW(F)?{type:"text",text:JW}:F)},J++}for(let B=0;B<X;B++){let z=G[B];if(!z||z.role!=="toolResult"||z.evicted)continue;if(K())break;if(z.isError)continue;if(z.content.filter((F)=>F.type==="text").map((F)=>F.text).join("").length<b6.length)continue;G[B]={...z,content:[{type:"text",text:b6}],evicted:!0},J++}return{messages:G,evicted:J,tokensFreed:Math.max(0,W-p(G))}}var _6=0.6;function KW($,Z){if($==="*")return!0;let Q=$.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${Q}$`,"s").test(Z)}function k6($,Z,Q){let W=typeof Z==="string"?[Z]:Z,Y="ask";for(let G of $)if(W.some((X)=>KW(G.permission,X))&&KW(G.pattern,Q))Y=G.action;return Y}var BB=new TextEncoder,I1=new TextDecoder;function BW($,Z){if($.length===0)return Z.slice();if(Z.length===0)return $;let Q=new Uint8Array($.length+Z.length);return Q.set($),Q.set(Z,$.length),Q}function HB($,Z){let Q=Math.min($.length,Math.max(0,Z));while(Q>0&&($[Q]??0)>=128&&($[Q]??0)<192)Q-=1;if(Q===$.length)return Q;let W=$[Q]??0,Y=W<128?1:W<224?2:W<240?3:4;return Q+Y<=Z?Q+Y:Q}function VB($,Z){let Q=Math.max(0,Z);while(Q<$.length&&($[Q]??0)>=128&&($[Q]??0)<192)Q+=1;return Q}class x6{headLimit;tailLimit;head=new Uint8Array;tail=new Uint8Array;headComplete=!1;total=0;constructor($=8000,Z=8000){this.headLimit=$;this.tailLimit=Z}append($){let Z=BB.encode($);if(this.total+=Z.length,!this.headComplete&&this.head.length<this.headLimit){let Q=this.headLimit-this.head.length,W=HB(Z,Q);if(this.head=BW(this.head,Z.subarray(0,W)),Z=Z.subarray(W),Z.length===0)return;this.headComplete=!0}if(this.tail=BW(this.tail,Z),this.tail.length>this.tailLimit){let Q=this.tail.length-this.tailLimit;this.tail=this.tail.slice(VB(this.tail,Q))}}get bytes(){return this.total}get truncated(){return this.droppedBytes>0}read(){let $=I1.decode(this.head),Z=I1.decode(this.tail);if(this.droppedBytes===0)return $+Z;return`${$}
|
|
58
|
+
${$}${Y}`}],display:!1,timestamp:Q}}function IQ($){if(typeof $==="string")return $;return dZ($),JSON.stringify(m6($),null,2)}function dZ($,Z=new Set){if($===null||typeof $==="string"||typeof $==="boolean"||typeof $==="number"&&Number.isFinite($))return;if(typeof $!=="object")throw new h0("Compaction failed: carryover must be JSON-serializable");let Q=Object.getPrototypeOf($);if(!Array.isArray($)&&Q!==Object.prototype&&Q!==null)throw new h0("Compaction failed: carryover must contain only plain objects");if(Z.has($))throw new h0("Compaction failed: carryover must not contain cycles");if(Z.add($),Array.isArray($))for(let Y of $)dZ(Y,Z);else for(let Y of Object.values($))dZ(Y,Z);Z.delete($)}function m6($){if(Array.isArray($))return $.map(m6);if($&&typeof $==="object")return Object.fromEntries(Object.entries($).sort(([Z],[Q])=>Z<Q?-1:Z>Q?1:0).map(([Z,Q])=>[Z,m6(Q)]));return $}class p6{tools=new Map;commands=new T1;providers=new Map;models=new Map;renderers=new Map;logs=[];extensions=[];eventHandlers=new Map;toolCallHooks=[];toolResultHooks=[];contextHooks=[];inputHooks=[];async register($){let Z={on:(Q,Y)=>{let W=this.eventHandlers.get(Q)??[];W.push(Y),this.eventHandlers.set(Q,W)},onToolCall:(Q)=>void this.toolCallHooks.push(Q),onToolResult:(Q)=>void this.toolResultHooks.push(Q),onContext:(Q)=>void this.contextHooks.push(Q),onInput:(Q)=>void this.inputHooks.push(Q),registerTool:(Q)=>void this.tools.set(Q.name,Q),registerCommand:(Q)=>this.commands.register(Q),registerProvider:(Q)=>void this.providers.set(Q.id,Q),registerModels:(Q)=>{for(let Y of Q)this.models.set(`${Y.provider}/${Y.id}`,Y)},registerRenderer:(Q,Y)=>void this.renderers.set(Q,Y),log:(Q)=>void this.logs.push(`[${$.name}] ${Q}`)};await $.activate(Z),this.extensions.push($)}async shutdown(){for(let $ of this.extensions)await $.deactivate?.();this.extensions=[]}emit($){for(let Z of this.eventHandlers.get($.type)??[])try{Promise.resolve(Z($)).catch((Q)=>{this.logs.push(`[extension observer] ${$.type}: ${Q instanceof Error?Q.message:String(Q)}`)})}catch(Q){this.logs.push(`[extension observer] ${$.type}: ${Q instanceof Error?Q.message:String(Q)}`)}}emitLifecycle($){for(let Z of this.eventHandlers.get($.type)??[])try{Promise.resolve(Z($)).catch((Q)=>{this.logs.push(`[extension observer] ${$.type}: ${Q instanceof Error?Q.message:String(Q)}`)})}catch(Q){this.logs.push(`[extension observer] ${$.type}: ${Q instanceof Error?Q.message:String(Q)}`)}}findModel($){if($.indexOf("/")!==-1)return this.models.get($);return[...this.models.values()].find((Q)=>Q.id===$)}async runToolCallHooks($){let Z=$.args;for(let Q of this.toolCallHooks){let Y=await Q({...$,args:Z});if(Y?.block)return Y;if(Y?.args)Z=Y.args}return Z===$.args?void 0:{args:Z}}async runToolResultHooks($){let Z=$.result.content,Q=$.isError,Y=!1;for(let W of this.toolResultHooks){let G=await W({...$,result:{...$.result,content:Z},isError:Q});if(!G)continue;if(G.content)Z=G.content,Y=!0;if(G.isError!==void 0)Q=G.isError,Y=!0}return Y?{content:Z,isError:Q}:void 0}async runContextHooks($){let Z=$;for(let Q of this.contextHooks)Z=await Q(Z);return Z}async runInputHooks($){let Z=$;for(let Q of this.inputHooks){let Y=await Q(Z);if(Y?.consume)return{consume:!0,...Y.text!==void 0?{text:Y.text}:{}};if(Y?.text!==void 0)Z=Y.text}return Z===$?void 0:{text:Z}}get hasContextHooks(){return this.contextHooks.length>0}}function TQ($){let Z=$.customType,Q=[];for(let Y of $.content)Q.push(Y.type==="text"?{type:"text",text:`<${Z}>
|
|
59
|
+
${Y.text}
|
|
60
|
+
</${Z}>`}:Y);return{role:"user",content:Q,timestamp:$.timestamp}}function c6($){return $.map((Z)=>Z.role==="custom"?TQ(Z):Z)}function W$($){return{role:"user",content:[{type:"text",text:$}],timestamp:Date.now()}}function l$($,Z,Q=!1){return{role:"custom",customType:$,content:[{type:"text",text:Z}],display:Q,timestamp:Date.now()}}function S($){return{content:[{type:"text",text:$}],isError:!0}}function EQ($){return{content:[{type:"text",text:$}]}}function aZ($,Z){if($.executionMode==="sequential")return!1;if(!$.isConcurrencySafe)return!1;try{return $.isConcurrencySafe(Z)===!0}catch{return!1}}var TB=10,RQ=3;function EB($){return $.content.filter((Z)=>Z.type==="toolCall")}function RB($){return`${$.name}:${JSON.stringify($.arguments)}`}async function d6($,Z,Q,Y,W){let G=W??new AbortController().signal,X=[...$],J={...Z,messages:[...Z.messages,...$]},B=Q,K=0,V=[],z=async(D)=>{return await Y({type:"agent_end",messages:X,reason:D}),{messages:X,reason:D}};await Y({type:"agent_start"});for(let D of $)await Y({type:"message_start",message:D}),await Y({type:"message_end",message:D});let F=await B.getSteeringMessages?.()??[];for(;;){let D=!0;while(D||F.length>0){if(G.aborted)return z("aborted");if(B.maxTurns!==void 0&&K>=B.maxTurns)return z("maxTurns");K++,await Y({type:"turn_start"});for(let O of F)await Y({type:"message_start",message:O}),await Y({type:"message_end",message:O}),J.messages.push(O),X.push(O);if(F=[],B.prepareContext){let O=await B.prepareContext(J.messages),C=Array.isArray(O)?{messages:O}:O;if(J={...J,messages:C.messages},C.stop)return z("budget")}let U=await yB(J,B,Y,G),q=U.message;if(J.messages.push(q),X.push(q),q.stopReason==="error"||q.stopReason==="aborted"){if(await Y({type:"turn_end",message:q,toolResults:[]}),q.stopReason==="error"&&await B.recoverFromError?.(q)===!0){D=!0;continue}return z(q.stopReason==="aborted"?"aborted":"error")}let A=EB(q),N=[];if(D=!1,A.length>0){let O=q.stopReason==="length"?await bB(A,Y):await fB(A,q,J,B,Y,G);N.push(...O.results),F.push(...O.steering),D=!O.terminate;for(let g of O.results)J.messages.push(g),X.push(g);let C=CB(A,V);if(C)J.messages.push(C),X.push(C),await Y({type:"message_start",message:C}),await Y({type:"message_end",message:C})}await Y({type:"turn_end",message:q,toolResults:N});let j={message:q,toolResults:N,context:J,requestMessages:U.messages,newMessages:X},P=await B.prepareNextTurn?.(j);if(P){if(P.context)J=P.context;B={...B,...P.model?{model:P.model}:{},...P.thinkingLevel!==void 0?{thinkingLevel:P.thinkingLevel}:{}}}if(await B.shouldStopAfterTurn?.(j))return z("done");F.push(...await B.getSteeringMessages?.()??[])}let L=await B.getFollowUpMessages?.()??[];if(L.length>0){F=L;continue}break}return z("done")}function CB($,Z){for(let Y of $){let W=RB(Y);if(Z[Z.length-1]===W)Z.push(W);else Z.length=0,Z.push(W)}if(Z.length<RQ)return;let Q=$[$.length-1]?.name??"the tool";return Z.length=0,{role:"custom",customType:"system-reminder",content:[{type:"text",text:`You have called ${Q} with identical arguments ${RQ} times in a row and the result is not changing. Stop repeating it \u2014 try a different approach, or explain what is blocking you.`}],display:!0,timestamp:Date.now()}}function SB($){let Z=$.contentIndex??0;switch($.type){case"text_start":return{kind:"text_start",contentIndex:Z};case"text_delta":return{kind:"text_delta",contentIndex:Z,text:$.delta??""};case"text_end":return{kind:"text_end",contentIndex:Z};case"thinking_start":return{kind:"thinking_start",contentIndex:Z};case"thinking_delta":return{kind:"thinking_delta",contentIndex:Z,text:$.delta??""};case"thinking_end":return{kind:"thinking_end",contentIndex:Z};case"toolcall_start":return{kind:"toolcall_start",contentIndex:Z};case"toolcall_delta":return{kind:"toolcall_delta",contentIndex:Z,argsFragment:$.delta??""};case"toolcall_end":return{kind:"toolcall_end",contentIndex:Z,toolCallId:$.toolCall?.id??""};default:return}}async function yB($,Z,Q,Y){let W=Z.transformContext?await Z.transformContext($.messages):$.messages,G={...$.systemPrompt?{systemPrompt:$.systemPrompt}:{},messages:c6(W),...$.tools?{tools:$.tools.map((K)=>({name:K.name,description:K.description,inputSchema:K.inputSchema}))}:{}},X=Z.provider.stream(Z.model,G,{...Z.streamOpts,...Z.thinkingLevel!==void 0?{thinkingLevel:Z.thinkingLevel}:{},signal:Y}),J=!1;for await(let K of X){if(K.type==="start"){J=!0,await Q({type:"message_start",message:{...K.partial}});continue}if(K.type==="done"||K.type==="error")break;let V=SB(K);if(V)await Q({type:"message_update",message:{...K.partial},delta:V})}let B=await X.result();if(!J)await Q({type:"message_start",message:{...B}});return await Q({type:"message_end",message:B}),{message:B,messages:W}}function i6($,Z,Q){return{role:"toolResult",toolCallId:$.id,toolName:$.name,content:Z.content??[],...Z.details!==void 0?{details:Z.details}:{},isError:Q,timestamp:Date.now()}}async function rZ($,Z){await Z({type:"tool_execution_end",toolCallId:$.toolCallId,result:$}),await Z({type:"message_start",message:$}),await Z({type:"message_end",message:$})}async function bB($,Z){let Q=[];for(let Y of $){await Z({type:"tool_execution_start",toolCallId:Y.id,toolName:Y.name,args:Y.arguments});let W=i6(Y,S(`Tool call "${Y.name}" was not executed: the response hit the output token limit, so its arguments may be truncated. Re-issue the tool call with complete arguments.`),!0);await rZ(W,Z),Q.push(W)}return{results:Q,terminate:!1,steering:[]}}async function _B($,Z){let Q=[];for(let Y of $){await Z({type:"tool_execution_start",toolCallId:Y.id,toolName:Y.name,args:Y.arguments});let W=i6(Y,S(`Tool call "${Y.name}" was not executed because a steering message interrupted the remaining tool calls. Re-evaluate the plan before re-issuing it.`),!0);await rZ(W,Z),Q.push(W)}return Q}async function xB($,Z,Q,Y,W){let G=Q.tools?.find((X)=>X.name===$.name);if(!G)return{kind:"immediate",result:S(`Tool ${$.name} not found`)};try{let X=$.arguments,J=await Y.beforeToolCall?.({assistantMessage:Z,toolCall:$,args:X,context:Q},W);if(W.aborted)return{kind:"immediate",result:S("Operation aborted")};if(J?.block)return{kind:"immediate",result:S(J.reason||"Tool execution was blocked")};if(J?.rewrittenArgs)X=J.rewrittenArgs;return{kind:"prepared",prepared:{call:$,tool:G,args:X}}}catch(X){return{kind:"immediate",result:S(X instanceof Error?X.message:String(X))}}}async function kB($,Z,Q,Y,W,G){let X,J,B=Promise.resolve();try{X=await $.tool.execute($.call.id,$.args,G,(K)=>{B=B.then(()=>W({type:"tool_execution_update",toolCallId:$.call.id,partial:K}))}),await B,J=X.isError===!0}catch(K){X=S(K instanceof Error?K.message:String(K)),J=!0}if(Y.afterToolCall)try{let K=await Y.afterToolCall({assistantMessage:Z,toolCall:$.call,args:$.args,context:Q,result:X,isError:J},G);if(K)X=K,J=K.isError??J}catch(K){X=S(K instanceof Error?K.message:String(K)),J=!0}return{result:X,isError:J}}async function fB($,Z,Q,Y,W,G){let X=[],J=[],B=[],K=async(z)=>{await W({type:"tool_execution_start",toolCallId:z.id,toolName:z.name,args:z.arguments});let F=await xB(z,Z,Q,Y,G),D=F.kind==="immediate"?{result:F.result,isError:!0}:await kB(F.prepared,Z,Q,Y,W,G);return J.push(D.result.terminate===!0),i6(z,D.result,D.isError)},V=0;while(V<$.length){let z=$[V],F=Q.tools?.find((q)=>q.name===z.name);if(!(F?aZ(F,z.arguments):!1)){let q=await K(z);if(await rZ(q,W),X.push(q),V++,G.aborted)break;if(B=await Y.getSteeringMessages?.()??[],B.length>0)break;continue}let L=[];while(V<$.length&&L.length<TB){let q=$[V],A=Q.tools?.find((N)=>N.name===q.name);if(!A||!aZ(A,q.arguments))break;L.push(q),V++}let U=await Promise.all(L.map(K));for(let q of U)await rZ(q,W),X.push(q);if(G.aborted)break;if(B=await Y.getSteeringMessages?.()??[],B.length>0)break}if(B.length>0&&V<$.length)X.push(...await _B($.slice(V),W));return{results:X,terminate:J.length>0&&J.every(Boolean),steering:B}}var n6="[output cleared to save context \u2014 re-run the tool if you need it]",SQ="[image cleared to save context]";function CQ($){return $.type==="image"&&$.evictable!==!1}function tZ($,Z={}){let Q=Z.keepRecent??6,Y=l($),W=Z.targetTokens,G=[...$],X=Math.max(0,G.length-Q),J=0,B=()=>W!==void 0&&l(G)<=W;for(let K=0;K<X;K++){let V=G[K];if(!V||V.role!=="toolResult"||V.evicted)continue;if(B())break;if(!V.content.some(CQ))continue;G[K]={...V,content:V.content.map((F)=>CQ(F)?{type:"text",text:SQ}:F)},J++}for(let K=0;K<X;K++){let V=G[K];if(!V||V.role!=="toolResult"||V.evicted)continue;if(B())break;if(V.isError)continue;if(V.content.filter((F)=>F.type==="text").map((F)=>F.text).join("").length<n6.length)continue;G[K]={...V,content:[{type:"text",text:n6}],evicted:!0},J++}return{messages:G,evicted:J,tokensFreed:Math.max(0,Y-l(G))}}var a6=0.6;function yQ($,Z){if($==="*")return!0;let Q=$.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${Q}$`,"s").test(Z)}function r6($,Z,Q){let Y=typeof Z==="string"?[Z]:Z,W="ask";for(let G of $)if(Y.some((X)=>yQ(G.permission,X))&&yQ(G.pattern,Q))W=G.action;return W}var vB=new TextEncoder,C1=new TextDecoder;function bQ($,Z){if($.length===0)return Z.slice();if(Z.length===0)return $;let Q=new Uint8Array($.length+Z.length);return Q.set($),Q.set(Z,$.length),Q}function gB($,Z){let Q=Math.min($.length,Math.max(0,Z));while(Q>0&&($[Q]??0)>=128&&($[Q]??0)<192)Q-=1;if(Q===$.length)return Q;let Y=$[Q]??0,W=Y<128?1:Y<224?2:Y<240?3:4;return Q+W<=Z?Q+W:Q}function hB($,Z){let Q=Math.max(0,Z);while(Q<$.length&&($[Q]??0)>=128&&($[Q]??0)<192)Q+=1;return Q}class S1{headLimit;tailLimit;head=new Uint8Array;tail=new Uint8Array;headComplete=!1;total=0;constructor($=8000,Z=8000){this.headLimit=$;this.tailLimit=Z}append($){let Z=vB.encode($);if(this.total+=Z.length,!this.headComplete&&this.head.length<this.headLimit){let Q=this.headLimit-this.head.length,Y=gB(Z,Q);if(this.head=bQ(this.head,Z.subarray(0,Y)),Z=Z.subarray(Y),Z.length===0)return;this.headComplete=!0}if(this.tail=bQ(this.tail,Z),this.tail.length>this.tailLimit){let Q=this.tail.length-this.tailLimit;this.tail=this.tail.slice(hB(this.tail,Q))}}get bytes(){return this.total}get truncated(){return this.droppedBytes>0}read(){let $=C1.decode(this.head),Z=C1.decode(this.tail);if(this.droppedBytes===0)return $+Z;return`${$}
|
|
61
61
|
|
|
62
62
|
\u2026 [${this.droppedBytes} bytes omitted] \u2026
|
|
63
63
|
|
|
64
|
-
${Z}`}readSince($){if($>=this.total)return{text:"",offset:this.total,gap:!1};let Z=this.total-this.tail.length;if($<this.head.length){let Q=
|
|
64
|
+
${Z}`}readSince($){if($>=this.total)return{text:"",offset:this.total,gap:!1};let Z=this.total-this.tail.length;if($<this.head.length){let Q=C1.decode(this.head.slice($)),Y=Z>this.head.length;return{text:Y?`${Q}
|
|
65
65
|
|
|
66
66
|
\u2026 [output omitted] \u2026
|
|
67
67
|
|
|
68
|
-
${
|
|
68
|
+
${C1.decode(this.tail)}`:Q+C1.decode(this.tail),offset:this.total,gap:Y}}if($<Z)return{text:`\u2026 [output omitted] \u2026
|
|
69
69
|
|
|
70
|
-
${
|
|
70
|
+
${C1.decode(this.tail)}`,offset:this.total,gap:!0};return{text:C1.decode(this.tail.slice($-Z)),offset:this.total,gap:!1}}get droppedBytes(){return this.total-this.head.length-this.tail.length}}class oZ{spawn;events;tasks=new Map;counter=0;constructor($,Z={}){this.spawn=$;this.events=Z}setEvents($){this.events=$}start($,Z={}){let Q=`task_${++this.counter}`,Y=new S1,W={id:Q,command:$,status:"running",exitCode:null,startedAt:Date.now(),outputBytes:0,truncated:!1,detached:!1},G=this.spawn({command:$,cols:Z.cols??80,rows:Z.rows??24,onOutput:(J)=>{Y.append(J),W.outputBytes=Y.bytes,W.truncated=Y.truncated,this.events.onOutput?.(Q,J)}}),X={info:W,buffer:Y,handle:G,readOffset:0,killRequested:!1};return this.tasks.set(Q,X),this.events.onStarted?.({...W}),G.exited.then((J)=>{if(W.status==="running")W.status=X.killRequested||J===null?"killed":"exited";W.exitCode=J,W.endedAt=Date.now(),this.events.onExited?.({...W})}),{...W}}get($){let Z=this.tasks.get($);return Z?{...Z.info}:void 0}list(){return[...this.tasks.values()].map(($)=>({...$.info}))}get runningCount(){return[...this.tasks.values()].filter(($)=>$.info.status==="running").length}output($,Z){let Q=this.tasks.get($);if(!Q)return;if(Z==="new"){let{text:Y,offset:W}=Q.buffer.readSince(Q.readOffset);return Q.readOffset=W,{text:Y,truncated:Q.buffer.truncated}}return Q.readOffset=Q.buffer.bytes,{text:Q.buffer.read(),truncated:Q.buffer.truncated}}writeStdin($,Z){let Q=this.tasks.get($);if(!Q||Q.info.status!=="running")return!1;return Q.handle.write(Z),!0}resize($,Z,Q){let Y=this.tasks.get($);if(!Y||Y.info.status!=="running"||Z<=0||Q<=0)return!1;return Y.handle.resize(Z,Q),!0}resizeAll($,Z){for(let Q of this.tasks.values())if(Q.info.status==="running")Q.handle.resize($,Z)}detach($){let Z=this.tasks.get($);if(!Z||Z.info.status!=="running"||Z.info.detached)return!1;return Z.info.detached=!0,Z.handle.detach(),!0}kill($){let Z=this.tasks.get($);if(!Z||Z.info.status!=="running"||Z.killRequested)return!1;return Z.killRequested=!0,Z.handle.kill(),!0}stopAll(){this.requestStops()}async killAll(){let $=this.requestStops();await Promise.allSettled($)}requestStops(){let $=[];for(let Z of this.tasks.values())if(Z.info.status==="running"&&!Z.info.detached){if($.push(Z.handle.exited),!Z.killRequested)Z.killRequested=!0,Z.handle.kill()}return $}async wait($){let Z=this.tasks.get($);if(!Z)return;return await Z.handle.exited,this.get($)}}function t6($){let Z=$.status==="killed"?"was killed":$.exitCode===0?"finished successfully":`failed with exit code ${$.exitCode}`,Q=$.endedAt?`${$.endedAt-$.startedAt}ms`:"unknown duration";return`Background task ${$.id} (${$.command}) ${Z} after ${Q}. Use task_output to read its output.`}var p$=1;function y1($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function v($){return typeof $==="string"}function sZ($){return typeof $==="string"&&$.length>0}function V0($){return typeof $==="number"&&Number.isFinite($)}function d($,Z){return $===void 0||Z($)}function o6($){if(!y1($))return!1;return V0($.inputTokens)&&$.inputTokens>=0&&V0($.outputTokens)&&$.outputTokens>=0&&V0($.cacheReadTokens)&&$.cacheReadTokens>=0&&V0($.cacheWriteTokens)&&$.cacheWriteTokens>=0&&d($.costUsd,(Z)=>V0(Z)&&Z>=0)}function eZ($,Z){if(!y1($)||!v($.type)||!Z.includes($.type))return!1;if($.type==="text")return v($.text);if($.type==="image")return v($.mimeType)&&v($.data)&&d($.evictable,(Q)=>typeof Q==="boolean");if($.type==="thinking")return v($.thinking)&&d($.signature,v)&&d($.redacted,(Q)=>typeof Q==="boolean");return v($.id)&&v($.name)&&y1($.arguments)&&d($.signature,v)}function _Q($){if(!y1($)||!v($.role)||!Array.isArray($.content))return!1;if(!V0($.timestamp))return!1;if($.role==="user")return $.content.every((Z)=>eZ(Z,["text","image"]));if($.role==="custom")return v($.customType)&&d($.display,(Z)=>typeof Z==="boolean")&&$.content.every((Z)=>eZ(Z,["text","image"]));if($.role==="toolResult")return v($.toolCallId)&&v($.toolName)&&typeof $.isError==="boolean"&&d($.evicted,(Z)=>typeof Z==="boolean")&&$.content.every((Z)=>eZ(Z,["text","image"]));if($.role==="assistant")return v($.model)&&o6($.usage)&&["end","toolUse","length","aborted","error"].includes(String($.stopReason))&&d($.errorMessage,v)&&$.content.every((Z)=>eZ(Z,["text","thinking","toolCall"]));return!1}function s6($){if(!y1($)||!v($.type))throw Error("Invalid session entry: expected an object with a type");if($.type==="session"){if(!V0($.version)||!sZ($.id)||!v($.createdAt)||!v($.profile)||!y1($.environment)||!Object.values($.environment).every(v))throw Error("Invalid session header");return}if(!sZ($.id)||!($.parentId===null||sZ($.parentId)))throw Error(`Invalid ${$.type} session entry identity`);switch($.type){case"message":if(!_Q($.message)||!d($.checkpointRef,v))throw Error("Invalid message session entry");return;case"compaction":if(!v($.summary)||!($.firstKeptEntryId===null||v($.firstKeptEntryId))||!d($.timestamp,V0)||!d($.contextTokensBefore,V0)||!d($.contextTokensAfter,V0)||!d($.model,v)||!d($.compactorModel,v)||!d($.windowNumber,V0)||!d($.keptTokens,V0)||!d($.toolResultsCleared,V0)||!d($.usage,o6))throw Error("Invalid compaction session entry");return;case"microcompaction":if(!Array.isArray($.replacements)||!$.replacements.every((Z)=>y1(Z)&&v(Z.entryId)&&_Q(Z.message)))throw Error("Invalid microcompaction session entry");return;case"compaction-attempt":if(!["failed","cancelled"].includes(String($.status))||!["manual","threshold","overflow","model-change"].includes(String($.trigger))||!v($.model)||!v($.compactorModel)||!V0($.timestamp)||!o6($.usage))throw Error("Invalid compaction-attempt session entry");return;case"checkpoint":if(!($.beforeEntryId===null||v($.beforeEntryId))||!v($.checkpointRef)||!v($.checkpointAfterRef)||!d($.label,v))throw Error("Invalid checkpoint session entry");return;case"settings-change":if(!d($.model,v)||!d($.thinkingLevel,v))throw Error("Invalid settings-change session entry");return;case"custom":if(!sZ($.customType)||!Object.hasOwn($,"data"))throw Error("Invalid custom session entry");return;default:throw Error(`Unknown session entry type: ${$.type}`)}}function kQ($){return $.type!=="session"}function fQ($){return JSON.stringify($)}function vQ($){let Z=JSON.parse($);return s6(Z),Z}function gQ($){return $.map(fQ).join(`
|
|
71
71
|
`)+($.length>0?`
|
|
72
|
-
`:"")}function
|
|
73
|
-
`).filter((Z)=>Z.trim().length>0).map(
|
|
74
|
-
`,"utf8"),(await this.git("rev-parse","--git-dir")).exitCode!==0)await this.git("init","--quiet");await
|
|
75
|
-
`,"utf8");let
|
|
76
|
-
`,"utf8");this.initialized=!0}async ignoredDisposableDirectories(){let $=await this.git("ls-files","--cached","--others","--ignored","--exclude-standard","--directory","-z");if($.exitCode!==0)
|
|
77
|
-
`)}return
|
|
72
|
+
`:"")}function hQ($){return $.split(`
|
|
73
|
+
`).filter((Z)=>Z.trim().length>0).map(vQ)}var xQ=0;function uQ(){return xQ+=1,`e${Date.now().toString(36)}${xQ.toString(36)}`}class s{entries=[];byId=new Map;headId=null;constructor($){if($)s6($),this.entries.push($)}static fromJsonl($){let Z=new s,Q=hQ($);if(Q.length===0||Q[0]?.type!=="session")throw Error("Invalid session: line 1 must be the session header");for(let Y of Q)Z.push(Y);return Z}toJsonl(){return gQ(this.entries)}get header(){let $=this.entries[0];return $?.type==="session"?$:void 0}get head(){return this.headId}all(){return[...this.entries]}get($){return this.byId.get($)}has($){return $===null||this.byId.has($)}push($){if(s6($),$.type==="session"){if(this.entries.length!==0)throw Error("Invalid session: header must appear only on line 1")}else{if(this.entries.length===0||this.entries[0]?.type!=="session")throw Error("Invalid session: missing header");if(this.byId.has($.id))throw Error(`Invalid session: duplicate entry id ${$.id}`);if($.parentId!==null&&!this.byId.has($.parentId))throw Error(`Invalid session: unknown parent ${$.parentId}`)}if(this.entries.push($),kQ($))this.byId.set($.id,$),this.headId=$.id}append($){let Z={...$,id:$.id??uQ(),parentId:$.parentId!==void 0?$.parentId:this.headId};return this.push(Z),Z}appendMessage($,Z){return this.append({type:"message",message:$,...Z?{checkpointRef:Z}:{}})}pathTo($){let Z=[],Q=new Set,Y=$;while(Y){if(Q.has(Y))break;Q.add(Y);let W=this.byId.get(Y);if(!W)break;Z.push(W),Y=W.parentId}return Z.reverse()}activePath(){return this.headId?this.pathTo(this.headId):[]}entryIdForMessage($){let Z=this.activePath();for(let Q=Z.length-1;Q>=0;Q--){let Y=Z[Q];if(Y?.type==="message"&&Y.message===$)return Y.id;if(Y?.type==="microcompaction"){let W=Y.replacements.find((G)=>G.message===$);if(W)return W.entryId}}return}messagesAt($=this.headId){if(!$)return[];let Z=this.pathTo($),Q=[];for(let Y of Z){if(Y.type==="message"){Q.push({message:Y.message,entryId:Y.id});continue}if(Y.type==="microcompaction"){for(let W of Y.replacements){let G=Q.findIndex((X)=>X.entryId===W.entryId);if(G!==-1)Q[G]={message:W.message,entryId:W.entryId}}continue}if(Y.type==="compaction"){if(Y.firstKeptEntryId===null){Q=[{message:m$(Y.summary,Y.carryover,Y.timestamp)}];continue}let W=Q.findIndex((G)=>G.entryId===Y.firstKeptEntryId);if(W===-1)continue;Q=[{message:m$(Y.summary,Y.carryover,Y.timestamp)},...Q.slice(W)]}}return Q.map((Y)=>Y.message)}fork($){if($!==null&&!this.byId.has($))throw Error(`Cannot fork from unknown entry: ${$}`);this.headId=$}}class c${sessions=new Map;async load($){let Z=this.sessions.get($);return Z===void 0?void 0:s.fromJsonl(Z)}async save($,Z){this.sessions.set($,Z.toJsonl())}async list(){return[...this.sessions.keys()]}}import{createHash as uB}from"crypto";import{realpathSync as mB}from"fs";import{chmod as mQ,mkdir as e6,readFile as lQ,rm as pQ,writeFile as $8}from"fs/promises";import{homedir as lB}from"os";import{basename as pB,join as d$,relative as i$,resolve as Q8}from"path";function iQ($=process.platform){return $==="win32"?"NUL":"/dev/null"}var cB=async($,Z,Q)=>{let Y=Bun.spawn(["git",...$],{cwd:Q,env:{...process.env,...Z},stdout:"pipe",stderr:"pipe",stdin:"ignore",windowsHide:!0}),[W,G,X]=await Promise.all([new Response(Y.stdout).text(),new Response(Y.stderr).text(),Y.exited]);return{stdout:W,stderr:G,exitCode:X}};function dB($){let Z=[];for(let Q of $.split("\x00")){if(Q.length===0)continue;let Y=Q.indexOf("\t"),W=Q.indexOf("\t",Y+1);if(Y===-1||W===-1)continue;let G=Q.slice(0,Y),X=Q.slice(Y+1,W),J=Q.slice(W+1);Z.push({path:J,added:G==="-"?0:Number(G),removed:X==="-"?0:Number(X),hunks:[]})}return Z}function iB($){let Z=Q8($);try{return mB.native(Z)}catch{return Z}}function nB($,Z){let Q=(Z??pB($)).replace(/[^A-Za-z0-9._-]+/g,"-")||"workspace",Y=uB("sha256").update($).digest("hex").slice(0,16);return`${Q}-${Y}`}var aB=new Set([".venv","venv","node_modules","__pycache__",".pytest_cache",".mypy_cache",".ruff_cache",".next",".nuxt",".cache","coverage"]),cQ="2",Z8=".mu";function rB($){let Z=$.replaceAll("\\","/").replace(/^\.\//,"").replace(/\/+$/,"").split("/"),Q=Z.findIndex((Y)=>aB.has(Y));if(Q===-1)return;return Z.slice(0,Q+1).join("/")}function dQ($){return`/${$.replaceAll("\\","\\\\").replace(/[?*[#]/g,"\\$&")}/`}class $5{root;shadowDir;run;excludedPathspecs;initialized=!1;constructor($){this.root=iB($.root);let Z=nB(this.root,$.scope);this.shadowDir=$.shadowDir??d$(lB(),".mu","checkpoints",Z),this.run=$.run??cB;let Q=i$(this.root,this.shadowDir).replaceAll("\\","/");this.excludedPathspecs=[":(exclude,literal).git",":(exclude,glob).git/**",`:(exclude,literal)${Z8}`,`:(exclude,glob)${Z8}/**`,...Q.length>0&&!Q.startsWith("..")?[`:(exclude,literal)${Q}`,`:(exclude,glob)${Q}/**`]:[]]}get directory(){return this.shadowDir}env(){return{GIT_DIR:this.shadowDir,GIT_WORK_TREE:this.root,GIT_AUTHOR_NAME:"mu",GIT_AUTHOR_EMAIL:"mu@localhost",GIT_COMMITTER_NAME:"mu",GIT_COMMITTER_EMAIL:"mu@localhost",GIT_CONFIG_GLOBAL:iQ(),GIT_CONFIG_NOSYSTEM:"1"}}async git(...$){return this.run($,this.env(),this.root)}async ensure(){if(this.initialized)return;if(await e6(this.shadowDir,{recursive:!0,mode:448}),process.platform!=="win32")await mQ(this.shadowDir,448);let $=d$(this.shadowDir,"mu-worktree"),Z=!1;try{let G=(await lQ($,"utf8")).trim();if(G!==this.root)throw Error(`Checkpoint store belongs to ${G}, not ${this.root}`);Z=!0}catch(G){if(G.code!=="ENOENT")throw G}let Q=d$(this.shadowDir,"mu-checkpoint-version");if(Z){if((await lQ(Q,"utf8").catch((X)=>{if(X.code==="ENOENT")return;throw X}))?.trim()!==cQ){if(await pQ(this.shadowDir,{recursive:!0,force:!0}),await e6(this.shadowDir,{recursive:!0,mode:448}),process.platform!=="win32")await mQ(this.shadowDir,448)}}if(await $8($,`${this.root}
|
|
74
|
+
`,"utf8"),(await this.git("rev-parse","--git-dir")).exitCode!==0)await this.git("init","--quiet");await $8(Q,`${cQ}
|
|
75
|
+
`,"utf8");let W=i$(this.root,this.shadowDir).replaceAll("\\","/");if(W.length>0&&!W.startsWith(".."))await e6(d$(this.shadowDir,"info"),{recursive:!0}),await $8(d$(this.shadowDir,"info","exclude"),`/${W}/
|
|
76
|
+
`,"utf8");this.initialized=!0}async ignoredDisposableDirectories(){let $=await this.git("ls-files","--cached","--others","--ignored","--exclude-standard","--directory","-z");if($.exitCode!==0)throw Error(`Could not enumerate ignored checkpoint paths: ${$.stderr.trim()}`);let Z=new Set;for(let Q of $.stdout.split("\x00")){if(Q.length===0)continue;let Y=rB(Q);if(Y)Z.add(Y)}return[...Z].sort()}checkpointPathspecs($){return[...this.excludedPathspecs,...$.map((Z)=>`:(exclude,literal)${Z}`)]}async snapshot($){await this.ensure();let Z=await this.ignoredDisposableDirectories();if((await this.git("add","-A","--force","--",".",...this.checkpointPathspecs(Z))).exitCode!==0)return;if((await this.git("commit","--quiet","--allow-empty","--no-verify","-m",$??`checkpoint ${new Date().toISOString()}`)).exitCode!==0)return;let G=(await this.git("rev-parse","HEAD")).stdout.trim();return G.length>0?G:void 0}async restore($){await this.ensure();let Z=await this.git("read-tree","--reset","-u",$);if(Z.exitCode!==0)throw Error(`Could not restore checkpoint ${$}: ${Z.stderr.trim()}`);let Q=await this.ignoredDisposableDirectories(),Y=await this.git("clean","--force","-d","-x","--quiet","-e",".git","-e",dQ(Z8),...i$(this.root,this.shadowDir).startsWith("..")?[]:["-e",i$(this.root,this.shadowDir).replaceAll("\\","/")],...Q.flatMap((W)=>["-e",dQ(W)]));if(Y.exitCode!==0)throw Error(`Could not clean checkpoint ${$}: ${Y.stderr.trim()}`)}async restoreResources($,Z){await this.ensure();let Q=[...new Set(Z.map((J)=>{let B=Q8(this.root,J),K=i$(this.root,B).replaceAll("\\","/");if(K.length===0||K===".."||K.startsWith("../"))throw Error(`Checkpoint resource escapes the workspace: ${J}`);return K}))];if(Q.length===0)return;let Y=Q.map((J)=>`:(literal)${J}`),W=await this.git("reset","--quiet",$,"--",...Y);if(W.exitCode!==0)throw Error(`Could not reset checkpoint ${$}: ${W.stderr.trim()}`);let G=[],X=[];for(let J of Q){let B=await this.git("ls-tree","-z",$,"--",`:(literal)${J}`);if(B.exitCode!==0)throw Error(`Could not inspect checkpoint ${$}: ${B.stderr.trim()}`);(B.stdout.length>0?G:X).push(J)}if(G.length>0){let J=await this.git("checkout","--force",$,"--",...G.map((B)=>`:(literal)${B}`));if(J.exitCode!==0)throw Error(`Could not restore checkpoint ${$}: ${J.stderr.trim()}`)}await Promise.all(X.map((J)=>pQ(Q8(this.root,J),{recursive:!0,force:!0})))}async diff($,Z){if(await this.ensure(),!Z){let G=await this.ignoredDisposableDirectories(),X=await this.git("add","-A","--force","--",".",...this.checkpointPathspecs(G));if(X.exitCode!==0)throw Error(`Could not stage workspace for checkpoint diff: ${X.stderr.trim()}`)}let Q=Z?["diff","--no-renames","--numstat","-z",$,Z]:["diff","--no-renames","--cached","--numstat","-z",$],Y=await this.git(...Q);if(Y.exitCode!==0)throw Error(`Could not calculate checkpoint diff: ${Y.stderr.trim()}`);let W=dB(Y.stdout);for(let G of W){let X=Z?["diff","--no-renames","--unified=3",$,Z,"--",G.path]:["diff","--no-renames","--cached","--unified=3",$,"--",G.path],J=await this.git(...X);if(J.exitCode!==0)throw Error(`Could not calculate checkpoint patch for ${G.path}: ${J.stderr.trim()}`);G.hunks=J.stdout.split(`
|
|
77
|
+
`)}return W}}import{createHash as tB}from"crypto";import{realpathSync as oB}from"fs";import{open as sB,readdir as eQ,readFile as eB,realpath as nQ,stat as Y8}from"fs/promises";import{homedir as $H}from"os";import{basename as X8,dirname as n$,extname as ZH,isAbsolute as Q5,join as O0,relative as K8,resolve as T0,sep as QH}from"path";var $7=[".git"],Z7=[".mu/AGENTS.md","CLAUDE.local.md","CLAUDE.md","CLAUDE.MD",".claude/CLAUDE.md"],YH=["AGENTS.override.md","AGENTS.md","AGENTS.MD"],J8="project-instructions-",aQ=5,WH=8192,GH=new Set(["",".md",".txt",".json",".yaml",".yml",".toml",".xml",".csv",".html",".css",".scss",".js",".jsx",".ts",".tsx",".mjs",".cjs",".py",".rb",".go",".rs",".java",".kt",".c",".cc",".cpp",".h",".hpp",".cs",".swift",".sh",".bash",".zsh",".fish",".ps1",".sql",".graphql",".proto",".vue",".svelte",".astro",".php",".lua",".r",".R",".dart",".ex",".exs",".erl",".clj",".hs",".ml",".ini",".cfg",".conf",".properties",".lock",".rst",".adoc",".org",".tex",".diff",".patch"]);function a$($,Z){let Q=K8(T0($),T0(Z));return Q===""||!Q.startsWith(`..${QH}`)&&Q!==".."&&!Q5(Q)}function W8($){let Z=T0($);try{return oB.native(Z)}catch{return Z}}function XH($){if(!$||Q5($))return!1;let Z=$.replaceAll("\\","/");return Z!==".."&&!Z.startsWith("../")&&!Z.includes("/../")}function JH($){return[...new Set($.filter(XH))]}function G8($,Z){let Q=tB("sha256");Q.update(Z?"enabled\x00":"disabled\x00");for(let Y of $)Q.update(Y.path),Q.update("\x00"),Q.update(Y.scope),Q.update("\x00"),Q.update(Y.parent??""),Q.update("\x00"),Q.update(Y.content),Q.update("\x00");return Q.digest("hex").slice(0,16)}async function KH($){let Z=await sB($,"r");try{let Q=Buffer.alloc(WH),{bytesRead:Y}=await Z.read(Q,0,Q.length,0);return Q.subarray(0,Y).toString("utf8")}finally{await Z.close()}}function BH($){for(let Z=$.length-1;Z>=0;Z--){let Q=$[Z];if(Q?.role!=="custom"||!Q.customType.startsWith(J8))continue;return Q.customType.slice(J8.length)}return}function Z5($,Z){if(a$(Z,$.path))return K8(Z,$.path)||X8($.path);return $.path}function rQ($,Z){let Q=Z?"This is the complete current instruction snapshot. It supersedes every earlier project-instructions message in this conversation.":"Codebase and user instructions are shown below. Follow them carefully. Sources are ordered from lower to higher precedence; later instructions override conflicting earlier instructions.",Y=$.sources.length===0?"No instruction files are currently active.":$.sources.map((W)=>{let G=W.scope==="import"&&W.parent?`imported by ${Z5({...W,path:W.parent},$.projectRoot)}`:`${W.scope} instructions`;return`Contents of ${Z5(W,$.projectRoot)} (${G}):
|
|
78
78
|
|
|
79
|
-
${
|
|
79
|
+
${W.content.trim()}`}).join(`
|
|
80
80
|
|
|
81
|
-
`);return
|
|
81
|
+
`);return l$(`${J8}${$.signature}`,`${Q}
|
|
82
82
|
|
|
83
|
-
${
|
|
83
|
+
${Y}`)}function tQ($){let Z=$.replaceAll(`\r
|
|
84
84
|
`,`
|
|
85
85
|
`);if(!Z.startsWith(`---
|
|
86
86
|
`))return{content:$};let Q=Z.indexOf(`
|
|
87
87
|
---
|
|
88
|
-
`,4);if(Q===-1)return{content:$};let
|
|
89
|
-
`),X=[],J=!1;for(let
|
|
90
|
-
Use project/user config or remove --no-instructions to enable loading.`;let Z=[...this.current.sources,...this.nestedSources.values()],Q=this.current.
|
|
91
|
-
`)}async discoverPrimaryFiles($){let Z=[],Q=$?
|
|
92
|
-
`),sources:
|
|
88
|
+
`,4);if(Q===-1)return{content:$};let Y=Z.slice(4,Q),W=Z.slice(Q+5),G=Y.split(`
|
|
89
|
+
`),X=[],J=!1;for(let B of G){let K=B.match(/^paths?\s*:\s*(.*)$/i);if(K){J=!0;let z=K[1]?.trim()??"";if(z){let F=z.startsWith("[")&&z.endsWith("]")?z.slice(1,-1):z;X.push(...F.split(",").map((D)=>D.trim().replace(/^['"]|['"]$/g,"")).filter(Boolean))}continue}if(!J)continue;let V=B.match(/^\s*-\s*(.+?)\s*$/);if(V?.[1]){X.push(V[1].replace(/^['"]|['"]$/g,""));continue}if(B.trim())J=!1}return{content:W,...X.length>0?{patterns:X}:{}}}function HH($){let Z="",Q=$.replaceAll("\\","/").replace(/^\.\//,"");if(!Q||Q.startsWith("!"))return;for(let Y=0;Y<Q.length;Y++){let W=Q[Y];if(W==="*")if(Q[Y+1]==="*")if(Y++,Q[Y+1]==="/")Y++,Z+="(?:.*/)?";else Z+=".*";else Z+="[^/]*";else if(W==="?")Z+="[^/]";else Z+=W?.replace(/[|\\{}()[\]^$+?.]/g,"\\$&")??""}try{return new RegExp(`^${Z}$`)}catch{return}}function VH($,Z){if(!$.patterns||$.patterns.length===0)return!0;let Q=K8($.base,Z).replaceAll("\\","/");if(!Q||Q===".."||Q.startsWith("../")||Q5(Q))return!1;let Y=!1;for(let W of $.patterns){let G=W.startsWith("!");if(HH(G?W.slice(1):W)?.test(Q))Y=!G}return Y}function zH($){let Z=new Set,Q;for(let Y of $.split(/\r?\n/)){let W=Y.match(/^\s*(`{3,}|~{3,})/);if(W?.[1]){let J=W[1][0];Q=Q===J?void 0:Q??J;continue}if(Q)continue;let G=Y.split(/(`[^`]*`)/g).filter((J)=>!J.startsWith("`")).join(" "),X=/(?:^|\s)@((?:\\ |[^\s`])+)/g;for(let J of G.matchAll(X)){let B=J[1]?.replace(/\\ /g," ");if(!B)continue;B=B.replace(/[),.;:!?]+$/,"");let K=B.indexOf("#");if(K>=0)B=B.slice(0,K);if(B&&!B.startsWith("@"))Z.add(B)}}return[...Z]}function FH($){return $<1024?`${$} B`:`${($/1024).toFixed(1)} KiB`}function oQ($){return $<1000?`~${$} tokens`:`~${($/1000).toFixed(1)}k tokens`}class Y5{root;home;settings;managedPaths;settingDiagnostics;current;nestedSources=new Map;nestedSerial=Promise.resolve();activeSessionId;constructor($){this.root=W8($.root),this.home=W8($.home??$H());let Z=[],Q=(G,X,J)=>{if(G===void 0)return X;if(typeof G==="boolean")return G;return Z.push({level:"warning",message:`instructions.${J} must be a boolean; using ${X}`}),X},Y=(G,X,J)=>{if(G===void 0)return X;if(!Array.isArray(G)||G.some((K)=>typeof K!=="string"))return Z.push({level:"warning",message:`instructions.${J} must be an array of relative filenames; using defaults`}),X;let B=JH(G);if(B.length!==G.length)Z.push({level:"warning",message:`instructions.${J} ignored unsafe or duplicate entries`});return B};this.settings={enabled:Q($.enabled,!0,"enabled"),fallbackFilenames:Y($.fallbackFilenames,Z7,"fallbackFilenames"),projectRootMarkers:Y($.projectRootMarkers,$7,"projectRootMarkers"),imports:Q($.imports,!0,"imports"),claudeRules:Q($.claudeRules,!0,"claudeRules")},this.settingDiagnostics=Z;let W=process.platform==="win32"?process.env.PROGRAMDATA?[O0(process.env.PROGRAMDATA,"mu","AGENTS.md")]:[]:["/etc/mu/AGENTS.md"];this.managedPaths=($.managedPaths??W).map((G)=>T0(G)),this.current={enabled:this.settings.enabled,projectRoot:this.root,sources:[],diagnostics:[],bytes:0,signature:G8([],this.settings.enabled)}}get snapshot(){return{...this.current,sources:this.current.sources.map(($)=>({...$})),diagnostics:this.current.diagnostics.map(($)=>({...$}))}}async reload($={}){if($.resetNested)this.nestedSources.clear();let Z=this.settingDiagnostics.map((J)=>({...J})),Q=await this.findProjectRoot(Z);if(!this.settings.enabled)return this.current={enabled:!1,projectRoot:Q,sources:[],diagnostics:Z,bytes:0,signature:G8([],!1)},this.snapshot;let Y={processed:new Set,diagnostics:Z,sources:[]};for(let J of this.managedPaths)await this.loadSource(J,"managed",Y,void 0,n$(J),0);let W=await this.firstReadableCandidate([O0(this.home,".mu","AGENTS.override.md"),O0(this.home,".mu","AGENTS.md"),O0(this.home,".mu","AGENTS.MD"),O0(this.home,".claude","CLAUDE.md")],Z);if(W)await this.loadSource(W,"global",Y,void 0,this.home,0);let G=this.dirsBetween(Q,this.root);for(let J of G){for(let K of await this.rulesForDirectory(J,Z))if(!K.patterns)await this.loadSource(K.path,"rule",Y,void 0,Q,0);let B=await this.primaryForDirectory(J,Z);if(B){let K=X8(B)==="CLAUDE.local.md"?"local":"project";await this.loadSource(B,K,Y,void 0,Q,0)}}let X=Y.sources.reduce((J,B)=>J+Buffer.byteLength(B.content),0);return this.current={enabled:!0,projectRoot:Q,sources:Y.sources,diagnostics:Z,bytes:X,signature:G8(Y.sources,!0)},this.snapshot}async refreshedMessages($,Z){let Q=BH($);if(Z!==void 0&&Z!==this.activeSessionId)this.activeSessionId=Z,this.nestedSources.clear();else if(Z===void 0&&$.length===0)this.nestedSources.clear();let Y=await this.reload();if(Y.sources.length===0&&Q===void 0)return[];if(Q===Y.signature)return[];return[rQ(Y,Q!==void 0)]}async instructionsForPath($){let Z={text:"",sources:[]},Q=this.nestedSerial,Y;this.nestedSerial=new Promise((W)=>{Y=W}),await Q;try{Z=await this.loadNested($)}finally{Y?.()}return Z}formatStatus($="instructions"){if(!this.current.enabled)return`${$} disabled
|
|
90
|
+
Use project/user config or remove --no-instructions to enable loading.`;let Z=[...this.current.sources,...this.nestedSources.values()],Q=this.current.bytes+[...this.nestedSources.values()].reduce((G,X)=>G+Buffer.byteLength(X.content),0),Y=l([rQ(this.current,!1)])+[...this.nestedSources.values()].reduce((G,X)=>G+iZ(X.content),0),W=[`${$} \xB7 ${Z.length} file${Z.length===1?"":"s"} \xB7 ${oQ(Y)} \xB7 ${FH(Q)}`,...Z.map((G)=>` ${G.scope.padEnd(7)} ${Z5(G,this.current.projectRoot)} \xB7 ${oQ(iZ(G.content))}`)];if(Z.length===0)W.push(" no instruction files found");if(this.current.diagnostics.length>0)W.push("warnings:",...this.current.diagnostics.map((G)=>` ${G.path?`${G.path}: `:""}${G.message}`));return W.push("precedence: managed < global < outer project < inner project; AGENTS.override.md wins within one directory"),W.join(`
|
|
91
|
+
`)}async discoverPrimaryFiles($){let Z=[],Q=$?T0($):await this.findProjectRoot(Z),Y=[];for(let W of this.dirsBetween(Q,this.root)){let G=await this.primaryForDirectory(W,Z);if(G)Y.push(G)}return Y}async findProjectRoot($){if(this.settings.projectRootMarkers.length===0)return this.root;let Z=this.root;for(;;){for(let Y of this.settings.projectRootMarkers){let W=O0(Z,Y);try{return await Y8(W),Z}catch(G){let X=G.code;if(X!=="ENOENT"&&X!=="ENOTDIR")$.push({level:"warning",path:W,message:`could not inspect project-root marker: ${G instanceof Error?G.message:String(G)}`})}}let Q=n$(Z);if(Q===Z)return this.root;Z=Q}}dirsBetween($,Z){if(!a$($,Z))return[Z];let Q=[],Y=Z;for(;;){if(Q.push(Y),Y===$)break;let W=n$(Y);if(W===Y)break;Y=W}return Q.reverse()}async primaryForDirectory($,Z){return this.firstReadableCandidate([...YH.map((Q)=>O0($,Q)),...this.settings.fallbackFilenames.map((Q)=>O0($,Q))],Z)}async firstReadableCandidate($,Z){for(let Q of $)try{if((await Y8(Q)).isFile())return Q;Z.push({level:"warning",path:Q,message:"instruction candidate is not a file"})}catch(Y){let W=Y.code;if(W==="ENOENT"||W==="ENOTDIR")continue;Z.push({level:"warning",path:Q,message:`could not inspect instruction file: ${Y instanceof Error?Y.message:String(Y)}`})}return}async ruleFiles($,Z){let Q=[],Y=async(W,G)=>{let X;try{X=await nQ(W)}catch(B){let K=B.code;if(K==="ENOENT"||K==="ENOTDIR")return;Z.push({level:"warning",path:W,message:`could not read rules directory: ${B instanceof Error?B.message:String(B)}`});return}if(G.has(X))return;G.add(X);let J;try{J=await eQ(W,{withFileTypes:!0})}catch(B){Z.push({level:"warning",path:W,message:`could not list rules directory: ${B instanceof Error?B.message:String(B)}`});return}for(let B of J.sort((K,V)=>K.name.localeCompare(V.name))){let K=O0(W,B.name),V=B.isDirectory(),z=B.isFile();if(B.isSymbolicLink())try{let F=await Y8(K);V=F.isDirectory(),z=F.isFile()}catch(F){Z.push({level:"warning",path:K,message:`could not inspect rule symlink: ${F instanceof Error?F.message:String(F)}`});continue}if(V)await Y(K,G);else if(z&&B.name.toLowerCase().endsWith(".md"))Q.push(K)}};return await Y($,new Set),Q}async rulesForDirectory($,Z){let Q=[O0($,".mu","rules")];if(this.settings.claudeRules)Q.push(O0($,".claude","rules"));let Y=[];for(let W of Q)for(let G of await this.ruleFiles(W,Z))try{let X=tQ(await KH(G));Y.push({path:G,base:$,...X.patterns?{patterns:X.patterns}:{}})}catch(X){Z.push({level:"warning",path:G,message:`could not read rule frontmatter: ${X instanceof Error?X.message:String(X)}`})}return Y}async loadSource($,Z,Q,Y,W,G){if(G>aQ){Q.diagnostics.push({level:"warning",path:$,message:`import depth exceeds ${aQ}`});return}let X;try{X=await nQ($)}catch(z){let F=z.code;if(Y||F!=="ENOENT"&&F!=="ENOTDIR")Q.diagnostics.push({level:"warning",path:$,message:F==="ENOENT"?`import referenced by ${Y} does not exist`:`could not resolve instruction file: ${z instanceof Error?z.message:String(z)}`});return}if(Q.processed.has(X))return;if(!a$(W,X)){Q.diagnostics.push({level:"warning",path:$,message:`external import is outside the allowed instruction root ${W}`});return}if(!GH.has(ZH(X))){Q.diagnostics.push({level:"warning",path:$,message:"skipped non-text instruction import"});return}Q.processed.add(X);let J;try{J=await eB(X,"utf8")}catch(z){Q.diagnostics.push({level:"warning",path:$,message:`could not read instruction file: ${z instanceof Error?z.message:String(z)}`});return}if(J.includes("\x00")){Q.diagnostics.push({level:"warning",path:$,message:"skipped binary instruction file"});return}let B=tQ(J),K=B.content.trim(),V=K?{path:X,content:K,scope:Z,...Y?{parent:Y}:{}}:void 0;if(this.settings.imports)for(let z of zH(B.content)){let F=z.startsWith("~/")?O0(this.home,z.slice(2)):Q5(z)?z:T0(n$(X),z);await this.loadSource(F,"import",Q,X,Z==="global"?this.home:W,G+1)}if(V)Q.sources.push(V)}async loadNested($){if(!this.settings.enabled)return{text:"",sources:[]};let Z=T0($);if(!a$(this.root,Z))return{text:"",sources:[]};let Q=n$(Z),Y=this.current.projectRoot,W=this.current.diagnostics,G=[];for(let K of this.dirsBetween(Y,Q)){for(let V of await this.rulesForDirectory(K,W))if(T0(V.path)!==Z&&VH(V,Z))G.push({path:V.path,scope:"rule",allowedRoot:Y});if(a$(this.root,K)&&K!==this.root){let V=await this.primaryForDirectory(K,W);if(V&&T0(V)!==Z)G.push({path:V,scope:X8(V)==="CLAUDE.local.md"?"local":"project",allowedRoot:Y})}}let J={processed:new Set([...this.current.sources.map((K)=>W8(K.path)),...this.nestedSources.keys()]),diagnostics:W,sources:[]};for(let K of G)await this.loadSource(K.path,K.scope,J,void 0,K.allowedRoot,0);for(let K of J.sources)this.nestedSources.set(T0(K.path),K);if(J.sources.length===0)return{text:"",sources:[]};return{text:["<system-reminder>","Additional instructions apply to the file just read. Later sources have higher precedence:","",...J.sources.flatMap((K)=>[`Contents of ${Z5(K,Y)}:`,K.content.trim(),""]),"</system-reminder>"].join(`
|
|
92
|
+
`),sources:J.sources.map((K)=>K.path)}}}async function sQ($,Z){try{let Q=Bun.spawn(["git",...$],{cwd:Z,stdout:"pipe",stderr:"ignore",windowsHide:!0}),Y=await new Response(Q.stdout).text();return await Q.exited===0?Y:void 0}catch{return}}async function W5($){let Z={directory:T0($),platform:process.platform,date:new Date().toISOString().slice(0,10)},Y=(await sQ(["rev-parse","--abbrev-ref","HEAD"],$))?.trim().split(/\r?\n/)[0];if(Y){Z.branch=Y;let W=await sQ(["status","--porcelain"],$);if(W!==void 0)Z.uncommittedFiles=String(W.split(/\r?\n/).filter(Boolean).length)}try{let W=await eQ($);Z.topLevelEntries=W.filter((G)=>!G.startsWith(".")).sort().slice(0,40).join(", ")}catch{}return Z}function B8($){let Z=Object.entries($).map(([Q,Y])=>`${Q}: ${Y}`);return l$("environment",`Session environment:
|
|
93
93
|
${Z.join(`
|
|
94
|
-
`)}`)}import{mkdir as
|
|
95
|
-
`,"utf8")}function
|
|
94
|
+
`)}`)}import{mkdir as DH,readFile as LH,writeFile as UH}from"fs/promises";import{dirname as qH,join as AH}from"path";import{z as X0}from"zod";var V8=[{permission:"*",pattern:"*",action:"ask"},{permission:"read",pattern:"*",action:"allow"},{permission:"ls",pattern:"*",action:"allow"},{permission:"glob",pattern:"*",action:"allow"},{permission:"grep",pattern:"*",action:"allow"},{permission:"todo",pattern:"*",action:"allow"},{permission:"task_output",pattern:"*",action:"allow"},{permission:"task_list",pattern:"*",action:"allow"},{permission:"bash:inspect",pattern:"*",action:"allow"}],z8=[{id:"default",label:"default",description:"Read freely; ask before edits and commands.",rules:[]},{id:"accept-edits",label:"accept edits",description:"Read and edit files freely; ask before commands.",tone:"permissive",rules:[{permission:"write",pattern:"*",action:"allow"},{permission:"edit",pattern:"*",action:"allow"}]},{id:"plan-readonly",label:"plan (read-only)",description:"Allow inspection and planning; deny file, command, and task mutations.",tone:"restrictive",rules:[{permission:"write",pattern:"*",action:"deny"},{permission:"edit",pattern:"*",action:"deny"},{permission:"bash",pattern:"*",action:"deny"},{permission:"bash:inspect",pattern:"*",action:"allow"},{permission:"task_write_stdin",pattern:"*",action:"deny"},{permission:"task_kill",pattern:"*",action:"deny"},{permission:"task_detach",pattern:"*",action:"deny"}]},{id:"yolo",label:"full access",description:"Allow every tool call without asking.",tone:"unrestricted",rules:[{permission:"*",pattern:"*",action:"allow"}]}],NH=X0.object({permission:X0.string().min(1),pattern:X0.string(),action:X0.enum(["allow","ask","deny"])}),F8=X0.object({enabled:X0.boolean().optional(),fallbackFilenames:X0.array(X0.string().min(1)).optional(),projectRootMarkers:X0.array(X0.string().min(1)).optional(),imports:X0.boolean().optional(),claudeRules:X0.boolean().optional()}),OH=X0.object({permissions:X0.array(NH).optional(),model:X0.string().min(1).optional(),instructions:F8.optional()}).loose();function H8($){return AH($,".mu","config.json")}async function G5($,Z){try{let Q=await LH(H8($),"utf8"),Y=JSON.parse(Q),W=OH.safeParse(Y);if(!W.success){let V=W.error.issues.map((z)=>`${z.path.join(".")||"config"}: ${z.message}`).join("; ");throw Error(`Invalid project config at ${H8($)}: ${V}`)}let{permissions:G,model:X,instructions:J,...B}=W.data,K=J?{...J.enabled!==void 0?{enabled:J.enabled}:{},...J.fallbackFilenames!==void 0?{fallbackFilenames:J.fallbackFilenames}:{},...J.projectRootMarkers!==void 0?{projectRootMarkers:J.projectRootMarkers}:{},...J.imports!==void 0?{imports:J.imports}:{},...J.claudeRules!==void 0?{claudeRules:J.claudeRules}:{}}:void 0;return{...B,...G!==void 0?{permissions:G}:{},...X!==void 0?{model:X}:{},...K!==void 0?{instructions:K}:{}}}catch(Q){if(Q.code==="ENOENT")return{};if(!Z)throw Q;return Z(Q instanceof Error?Q.message:String(Q)),{}}}function D8(...$){return $.flatMap((Z)=>Z??[])}async function L8($,Z,Q){let Y=H8($),W=await G5($),G=W.permissions??[];if(!G.some((J)=>J.permission===Z&&J.pattern===Q&&J.action==="allow"))G.push({permission:Z,pattern:Q,action:"allow"});await DH(qH(Y),{recursive:!0}),await UH(Y,`${JSON.stringify({...W,permissions:G},null,2)}
|
|
95
|
+
`,"utf8")}function U8($){let Z=[{text:`You are mu, an expert software engineer working in a codebase through tools.
|
|
96
96
|
|
|
97
97
|
Approach:
|
|
98
98
|
- Understand before you change: read the relevant files and search the codebase rather than guessing at names or APIs.
|
|
@@ -120,14 +120,14 @@ Communication:
|
|
|
120
120
|
- Only write code comments that state something the code cannot \u2014 never narrate what a line does.
|
|
121
121
|
- If you cannot complete something, say so plainly and explain what is blocking you.`}],Q=$.toLowerCase();if(Q.includes("gpt")||Q.includes("openai"))Z.push({text:`
|
|
122
122
|
Be explicit and literal in your tool use. State briefly what you are about to do before a batch of tool calls, then do it. Do not ask for confirmation for steps that follow directly from the request.`.trim()});else if(Q.includes("gemini")||Q.includes("google"))Z.push({text:`
|
|
123
|
-
Prefer a small number of well-chosen tool calls over many exploratory ones. When editing, reproduce the exact surrounding text in oldString so the match is unambiguous.`.trim()});return Z}import{statSync as yW}from"fs";import{resolve as rZ}from"path";class tZ{reads=new Map;modified=new Set;markRead($){let Z=rZ($);try{this.reads.set(Z,yW(Z).mtimeMs)}catch{this.reads.set(Z,0)}}markWritten($){let Z=rZ($);this.modified.add(Z),this.markRead(Z)}hasRead($){return this.reads.has(rZ($))}isStale($){let Z=rZ($),Q=this.reads.get(Z);if(Q===void 0)return!1;try{return yW(Z).mtimeMs>Q}catch{return!1}}readFiles(){return[...this.reads.keys()]}modifiedFiles(){return[...this.modified]}}import{randomUUID as pB}from"crypto";function bW($){return $.inputTokens+$.outputTokens+$.cacheReadTokens+$.cacheWriteTokens}function e6($,Z){if(!$)return;if($.maxCostUsd!==void 0&&(Z.costUsd??0)>=$.maxCostUsd)return"maxCostUsd";if($.maxTokens!==void 0&&bW(Z)>=$.maxTokens)return"maxTokens";return}import{z as lB}from"zod";var o1="structured_output";function $8($,Z){let Q=lB.toJSONSchema($,{io:"input"});return{name:o1,description:"Report the final answer. Call this exactly once, when you have the complete result. Do not call any other tool afterwards.",inputSchema:Q,execute:async(W,Y)=>{let G=$.safeParse(Y);if(!G.success)return{content:[{type:"text",text:`Output did not match the required schema: ${G.error.issues.map((J)=>`${J.path.join(".")||"(root)"}: ${J.message}`).join("; ")}. Call ${o1} again with corrected values.`}],isError:!0};return Z(G.data),{content:[{type:"text",text:"Final answer recorded."}],terminate:!0}}}}function Z8(){return`When you have the final answer, call the ${o1} tool with it. That call ends the task.`}var cB=[{permission:"*",pattern:"*",action:"allow"}],dB="You are mu, a capable and direct assistant. Use the tools available to you to complete the user's task. Be concise: answer what was asked without padding. When a task is done, say so plainly.";function m$($,Z){if($&&typeof $!=="string")return $;let Q=$??n1(),W=Z?.findModel(Q)??w1(Q);if(!W)throw Error(`Unknown model: ${Q}. Pass a ModelInfo to use a custom model.`);return W}function iB($){if($===void 0)return[{text:dB}];return typeof $==="string"?[{text:$}]:$}function nB($){for(let Z=$.length-1;Z>=0;Z--){let Q=$[Z];if(Q?.role!=="assistant")continue;let W=Q.content.filter((Y)=>Y.type==="text").map((Y)=>Y.text).join("");if(W.trim().length>0)return W}return""}function _W(){return`s${Date.now().toString(36)}-${pB().slice(0,8)}`}class l${options;model;provider;store;tree;_sessionId;controller=new AbortController;steering=[];followUps=[];totals=w$();compactRequested=!1;compactRequestedFocus;queuedManualCompactionFocus;manualCompactionQueued=!1;compacting=!1;compactorOverride;lastContextPercent=0;lastContextTokens=0;lastContextUsage;checkpoints=new SZ;recoveryAttempted=!1;reactiveRecoveryPending=!1;pendingCheckpoint;currentThinking;running=!1;stopping=!1;activeEmit;activeExecution;autonomousScheduled=!1;subscribers=new Set;idleWaiters=new Set;shutdownPromise;sessionStarted=!1;permissionRules;constructor($={}){this.options=$,this.permissionRules=[...$.permissions??cB],this.model=m$($.model,$.extensions),this.currentThinking=d0(this.model,$.thinkingLevel),this.provider=this.providerFor(this.model),this.store=$.session??new f$,this._sessionId=$.sessionId??_W(),this.tree=new W0({type:"session",version:x$,id:this._sessionId,createdAt:new Date().toISOString(),profile:"default",environment:{}}),$.runtime?.attach({emit:(Z)=>this.emitTaskEvent(Z),followUp:(Z)=>this.followUp(Z)})}get sessionId(){return this._sessionId}get usage(){return this.totals}get session(){return this.tree}get sessionStore(){return this.store}get modelRef(){return`${this.model.provider}/${this.model.id}`}get contextWindow(){return this.model.contextWindow}get thinking(){return this.currentThinking}get thinkingLevels(){return a1(this.model)}get isRunning(){return this.running}get isCompacting(){return this.compacting}get permissions(){return[...this.permissionRules]}setPermissions($){this.permissionRules=[...$]}addPermissionRule($){this.permissionRules.push($)}setModel($){let Z={model:this.model,provider:this.provider},Q=m$($,this.options.extensions),W=this.tree.messagesAt();if(W.length>0&&p(W)>=Q.contextWindow*(this.options.compactThreshold??T1))this.compactRequested=!0,this.compactorOverride=Z;this.model=Q,this.provider=this.providerFor(Q);let Y=d0(Q,this.currentThinking),G=Y!==this.currentThinking;this.currentThinking=Y,this.lastContextUsage=void 0,this.refreshContextAccounting(),this.tree.append({type:"settings-change",model:this.modelRef,...G?{thinkingLevel:Y}:{}}),this.options.extensions?.emitLifecycle({type:"model_select",model:this.modelRef})}setThinking($){let Z=d0(this.model,$);if(Z===this.currentThinking)return;this.currentThinking=Z,this.tree.append({type:"settings-change",thinkingLevel:Z})}resume($){if(this.running)throw Error("Cannot resume a session while a run is active.");let Z=W0.fromJsonl($.toJsonl()),Q=Z.header;if(!Q||Q.version!==x$)throw Error("Cannot resume an invalid or unsupported session.");this.tree=Z,this._sessionId=Q.id;let W=w$();for(let Y of Z.all())if(Y.type==="message"&&Y.message.role==="assistant")W=j1(W,Y.message.usage);else if(Y.type==="compaction"&&Y.usage)W=j1(W,Y.usage);this.totals=W,this.lastContextUsage=void 0,this.compactRequested=!1,this.compactRequestedFocus=void 0,this.queuedManualCompactionFocus=void 0,this.manualCompactionQueued=!1,this.compacting=!1,this.compactorOverride=void 0,this.recoveryAttempted=!1,this.reactiveRecoveryPending=!1,this.steering=[],this.followUps=[],this.pendingCheckpoint=void 0,this.sessionStarted=!1,this.controller=new AbortController,this.model=m$(this.options.model,this.options.extensions),this.provider=this.providerFor(this.model),this.currentThinking=d0(this.model,this.options.thinkingLevel);for(let Y of Z.activePath()){if(Y.type!=="settings-change")continue;if(Y.model)try{this.model=m$(Y.model,this.options.extensions),this.provider=this.providerFor(this.model)}catch{}if(typeof Y.thinkingLevel==="string"&&Y.thinkingLevel.length>0)this.currentThinking=Y.thinkingLevel}this.currentThinking=d0(this.model,this.currentThinking),this.rebuildCheckpointHistory(),this.refreshContextAccounting()}newSession($=_W()){if(this.running)throw Error("Cannot start a new session while a run is active.");this._sessionId=$,this.tree=new W0({type:"session",version:x$,id:$,createdAt:new Date().toISOString(),profile:"default",environment:{}}),this.tree.append({type:"settings-change",model:this.modelRef,thinkingLevel:this.currentThinking}),this.totals=w$(),this.lastContextUsage=void 0,this.compactRequested=!1,this.compactRequestedFocus=void 0,this.queuedManualCompactionFocus=void 0,this.manualCompactionQueued=!1,this.compacting=!1,this.compactorOverride=void 0,this.recoveryAttempted=!1,this.reactiveRecoveryPending=!1,this.steering=[],this.followUps=[],this.pendingCheckpoint=void 0,this.checkpoints.restore([]),this.sessionStarted=!1,this.controller=new AbortController,this.refreshContextAccounting()}send($){this.steering.push(t1($))}followUp($){if(this.stopping)return;if(this.followUps.push(t1($)),!this.running)this.scheduleAutonomousRun()}removeQueuedMessage($,Z){let Q=$==="steer"?this.steering:this.followUps;for(let W=Q.length-1;W>=0;W--){let Y=Q[W];if(Y?.role!=="user")continue;if(Y.content.filter((X)=>X.type==="text").map((X)=>X.text).join("")!==Z)continue;return Q.splice(W,1),this.resolveIdleIfDone(),!0}return!1}emitTaskEvent($){this.publishEvent($)}subscribe($){return this.subscribers.add($),()=>this.subscribers.delete($)}resize($,Z){if($>0&&Z>0)this.options.runtime?.resize?.($,Z)}waitForIdle(){if(!this.running&&!this.autonomousScheduled&&!this.manualCompactionQueued&&this.followUps.length===0)return Promise.resolve();return new Promise(($)=>this.idleWaiters.add($))}stop(){if(this.stopping)return;this.stopping=!0,this.followUps=[],this.manualCompactionQueued=!1,this.queuedManualCompactionFocus=void 0;try{this.options.runtime?.stop?.()}catch{}this.controller.abort(),this.resolveIdleIfDone()}shutdown(){if(this.shutdownPromise)return this.shutdownPromise;return this.stop(),this.shutdownPromise=(async()=>{await this.activeExecution?.catch(()=>{}),this.options.extensions?.emitLifecycle({type:"session_shutdown",sessionId:this._sessionId}),await Promise.allSettled([Promise.resolve().then(()=>this.options.runtime?.shutdown?.()),Promise.resolve().then(()=>this.options.extensions?.shutdown())]),this.resolveIdleIfDone()})(),this.shutdownPromise}abort(){this.controller.abort()}requestCompaction($){this.compactRequested=!0,this.compactRequestedFocus=$?.trim()||void 0}compactNow($){let Z=$?.trim()||void 0;if(this.stopping)return Promise.resolve({status:"failed",message:"Compaction is unavailable after stop."});if(this.running)return this.manualCompactionQueued=!0,this.queuedManualCompactionFocus=Z,Promise.resolve({status:"queued",message:"Compaction queued \u2014 it will run after the current turn."});this.running=!0,this.compacting=!0,this.controller=new AbortController;let Q=(Y)=>{if(this.publishToSubscribers(Y),Y.type==="agent_start"&&!this.sessionStarted)this.sessionStarted=!0,this.options.extensions?.emitLifecycle({type:"session_start",sessionId:this._sessionId});this.options.extensions?.emit(Y)};this.activeEmit=Q;let W=this.executeManualCompaction(Z,Q).finally(()=>{if(this.running=!1,this.compacting=!1,this.activeEmit=void 0,this.activeExecution=void 0,this.manualCompactionQueued&&!this.stopping)this.scheduleManualCompaction();else if(this.followUps.length>0&&!this.stopping)this.scheduleAutonomousRun();this.resolveIdleIfDone()});return this.activeExecution=W,W}async executeManualCompaction($,Z){Z({type:"agent_start"});let Q=this.tree.messagesAt(),W=y$(this.model,Q,this.lastContextUsage?.usage,this.lastContextUsage?.estimatedTokensAtUsage).tokens;Z({type:"compaction_start",layer:2,trigger:"manual",contextTokensBefore:W});let Y=hZ(Q,{targetTokens:Math.floor(this.model.contextWindow*(this.options.compactThreshold??T1)*0.8)}),G=Q,X=[];if(Y.evicted>0){Z({type:"compaction_update",layer:2,stage:"clearing-tool-output",toolResultsCleared:Y.evicted}),X=Y.messages.flatMap((V,F)=>{let D=Q[F];if(!D||V===D)return[];let L=this.tree.entryIdForMessage(D);return L?[{entryId:L,message:V}]:[]});let z=Y.messages.filter((V,F)=>V!==Q[F]).length;if(X.length===z)G=Y.messages;else X=[]}let J=this.compactorOverride??{model:this.model,provider:this.provider};this.compactorOverride=void 0,Z({type:"compaction_update",layer:2,stage:"summarizing"});let K,B=!1;try{let z=this.options.getCredentials,V=await fZ(G,{provider:J.provider,model:J.model,keepRecentTokens:Math.min(r1,Math.max(2,Math.floor(this.model.contextWindow*0.2))),...$?{customInstructions:$}:{},...this.options.carryoverExtractor?{carryoverExtractor:this.options.carryoverExtractor}:{},signal:this.controller.signal,streamOpts:{sessionId:this._sessionId,...this.options.apiKey?{apiKey:this.options.apiKey}:{},...z?{getCredentials:()=>z(J.model.provider)}:{}}});if(K=V.usage,V.summary.length===0){let d=p(Q);return Z({type:"compaction_end",layer:2,trigger:"manual",status:"noop",tokensFreed:0,contextTokensBefore:W,contextTokensAfter:d}),Z({type:"agent_end",messages:Q,reason:"done"}),{status:"noop",message:"Context is already compact enough \u2014 no changes made.",tokensBefore:W,tokensAfter:d,tokensFreed:0}}Z({type:"compaction_update",layer:2,stage:"installing"});let F=b$(V),D=V.keptMessages[0],L=null;if(D){let d=G.indexOf(D),w=d===-1?D:Q[d],_=w?this.tree.entryIdForMessage(w):void 0;if(!_)throw Error("Compaction tail could not be mapped to the session");L=_}let U=F[0],q=await this.options.refreshContext?.(F,{sessionId:this._sessionId})??[],A=p([...F,...q]),N=W0.fromJsonl(this.tree.toJsonl());if(X.length>0)N.append({type:"microcompaction",replacements:X});let j=N.activePath().filter((d)=>d.type==="compaction").length+1,P=N.append({type:"compaction",summary:V.summary,...V.carryover!==void 0?{carryover:V.carryover}:{},firstKeptEntryId:L,...U?{timestamp:U.timestamp}:{},trigger:"manual",contextTokensBefore:W,contextTokensAfter:A,model:this.modelRef,compactorModel:`${J.model.provider}/${J.model.id}`,windowNumber:j,strategy:"summary-tail",keptTokens:p(V.keptMessages),toolResultsCleared:X.length,usage:V.usage});for(let d of q)N.appendMessage(d);let O=N.messagesAt(),C=p(O),v=Math.max(0,W-C);return await this.store.save(this._sessionId,N),this.tree=N,this.totals=j1(this.totals,V.usage),B=!0,this.lastContextUsage=void 0,this.lastContextPercent=this.model.contextWindow>0?C/this.model.contextWindow:0,this.lastContextTokens=C,Z({type:"usage_updated",sessionTotals:this.totals,contextTokens:C,contextPercent:this.lastContextPercent}),Z({type:"compaction_end",layer:2,trigger:"manual",status:"completed",tokensFreed:v,summaryEntryId:P.id,contextTokensBefore:W,contextTokensAfter:C,toolResultsCleared:X.length,keptTokens:p(V.keptMessages)}),Z({type:"agent_end",messages:O,reason:"done"}),{status:"completed",message:`Context compacted: ${W.toLocaleString()} \u2192 ${C.toLocaleString()} tokens (${v.toLocaleString()} freed).`,tokensBefore:W,tokensAfter:C,tokensFreed:v,toolResultsCleared:X.length,summaryEntryId:P.id}}catch(z){let V=K??(z instanceof _0?z.usage:void 0);if(V&&!B)this.totals=j1(this.totals,V),Z({type:"usage_updated",sessionTotals:this.totals,contextTokens:W,contextPercent:this.model.contextWindow>0?W/this.model.contextWindow:0});let F=this.controller.signal.aborted,D=F?"Compaction cancelled \u2014 original conversation preserved.":`Compaction failed: ${z instanceof Error?z.message:String(z)} Original conversation preserved.`;return Z({type:"compaction_end",layer:2,trigger:"manual",status:F?"cancelled":"failed",tokensFreed:0,contextTokensBefore:W,contextTokensAfter:W,errorMessage:D}),Z({type:"agent_end",messages:Q,reason:F?"aborted":"done"}),{status:F?"cancelled":"failed",message:D,tokensBefore:W,tokensAfter:W,tokensFreed:0}}}get checkpointHistory(){return this.checkpoints}async undo(){if(this.running)return{ok:!1,message:"Cannot undo while a run is active."};let $=this.options.checkpointProvider;if(!$)return{ok:!1,message:"This profile does not support undo."};let Z=this.checkpoints.peekUndo();if(!Z)return{ok:!1,message:"Nothing to undo."};if(!this.tree.has(Z.beforeEntryId))return{ok:!1,message:"Could not undo: the conversation checkpoint is missing."};let Q;try{Q=await $.diff(Z.beforeRef,Z.afterRef)}catch(z){return{ok:!1,message:`Could not undo: ${z instanceof Error?z.message:String(z)}`}}let W;try{W=await $.snapshot("before undo of last turn")}catch(z){return{ok:!1,message:`Could not undo: ${z instanceof Error?z.message:String(z)}`}}if(!W)return{ok:!1,message:"Could not undo: failed to capture current state."};try{await this.restoreCheckpointResources($,Z.beforeRef,Q)}catch(z){let V=await this.restoreCheckpointResources($,W,Q).then(()=>{return}).catch((F)=>F);return{ok:!1,message:`Could not undo: ${z instanceof Error?z.message:String(z)}${V?`; rollback failed: ${V instanceof Error?V.message:String(V)}`:""}`}}let Y=this.tree,G=W0.fromJsonl(Y.toJsonl());G.fork(Z.beforeEntryId);let X=this.checkpoints.state(),J=X.done.slice(0,-1),K=[...X.undone,{...Z,redoRef:W}];this.appendCheckpointCursor(G,J,K);try{await this.store.save(this._sessionId,G)}catch(z){return await this.restoreCheckpointResources($,W,Q).catch(()=>{}),await this.store.save(this._sessionId,Y).catch(()=>{}),{ok:!1,message:`Could not undo: ${z instanceof Error?z.message:String(z)}`}}let B=this.checkpointDetails(Z);return this.checkpoints.restore(J,K),this.tree=G,this.refreshContextAccounting(),{ok:!0,message:"Undid the last turn.",data:{kind:"checkpoint",action:"undo",files:Q,messageCount:B.messageCount,...B.prompt!==void 0?{prompt:B.prompt}:{}}}}async redo(){if(this.running)return{ok:!1,message:"Cannot redo while a run is active."};let $=this.options.checkpointProvider;if(!$)return{ok:!1,message:"This profile does not support redo."};let Z=this.checkpoints.peekRedo();if(!Z)return{ok:!1,message:"Nothing to redo."};if(!this.tree.has(Z.id))return{ok:!1,message:"Could not redo: the conversation checkpoint is missing."};let Q;try{Q=await $.diff(Z.beforeRef,Z.afterRef)}catch(F){return{ok:!1,message:`Could not redo: ${F instanceof Error?F.message:String(F)}`}}let W;try{W=await $.snapshot("before redo of last turn")}catch(F){return{ok:!1,message:`Could not redo: ${F instanceof Error?F.message:String(F)}`}}if(!W)return{ok:!1,message:"Could not redo: failed to capture current state."};try{await this.restoreCheckpointResources($,Z.redoRef??Z.afterRef,Q)}catch(F){let D=await this.restoreCheckpointResources($,W,Q).then(()=>{return}).catch((L)=>L);return{ok:!1,message:`Could not redo: ${F instanceof Error?F.message:String(F)}${D?`; rollback failed: ${D instanceof Error?D.message:String(D)}`:""}`}}let Y=this.tree,G=W0.fromJsonl(Y.toJsonl());G.fork(Z.id);let X=this.checkpoints.state(),{redoRef:J,...K}=Z,B=[...X.done,K],z=X.undone.slice(0,-1);this.appendCheckpointCursor(G,B,z);try{await this.store.save(this._sessionId,G)}catch(F){return await this.restoreCheckpointResources($,W,Q).catch(()=>{}),await this.store.save(this._sessionId,Y).catch(()=>{}),{ok:!1,message:`Could not redo: ${F instanceof Error?F.message:String(F)}`}}let V=this.checkpointDetails(Z);return this.checkpoints.restore(B,z),this.tree=G,this.refreshContextAccounting(),{ok:!0,message:"Redid the turn.",data:{kind:"checkpoint",action:"redo",files:Q,messageCount:V.messageCount}}}async sessionDiff(){let $=this.options.checkpointProvider,Z=this.checkpoints.first();if(!$||!Z)return[];return $.diff(Z.beforeRef)}forkPoints(){let $=[];for(let Z of this.tree.activePath()){if(Z.type!=="message")continue;let Q=Z.message;if(Q.role==="toolResult")continue;if(Q.role==="assistant"&&Q.content.some((G)=>G.type==="toolCall"))continue;let W=Q.content.filter((G)=>G.type==="text").map((G)=>G.text).join("").replace(/\s+/g," ").trim(),Y=Q.role==="assistant"?"mu":Q.role;$.push({id:Z.id,description:`${Y} \xB7 ${W.slice(0,80)||"(no text)"}`})}return $}async fork($){if(this.running)return{ok:!1,message:"Cannot fork while a run is active."};if(!this.tree.get($))return{ok:!1,message:`Could not fork: unknown entry ${$}.`};let Z=W0.fromJsonl(this.tree.toJsonl());Z.fork($),Z.append({type:"custom",customType:"fork",data:{fromEntryId:this.tree.head,targetEntryId:$}});try{await this.store.save(this._sessionId,Z)}catch(Q){return{ok:!1,message:`Could not fork: ${Q instanceof Error?Q.message:String(Q)}`}}return this.tree=Z,this.rebuildCheckpointHistory(),this.refreshContextAccounting(),{ok:!0,message:`Forked from ${$}.`}}get contextPercent(){return this.lastContextPercent}get contextTokens(){return this.lastContextTokens}async run($,Z){return this.execute($,Z,()=>{})}stream($,Z){let Q=[],W=[],Y=!1,G=(J)=>{let K=W.shift();if(K)K({value:J,done:!1});else Q.push(J)},X=this.execute($,Z,G).finally(()=>{Y=!0;while(W.length>0)W.shift()?.({value:void 0,done:!0})});return{async*[Symbol.asyncIterator](){for(;;){if(Q.length>0){yield Q.shift();continue}if(Y)return;let J=await new Promise((K)=>W.push(K));if(J.done)return;yield J.value}},result:()=>X}}async beginCheckpoint($){let Z=this.options.checkpointProvider;if(this.pendingCheckpoint=void 0,!Z)return;try{let Q=await Z.snapshot("before user turn");if(Q)this.pendingCheckpoint={beforeEntryId:$,beforeRef:Q}}catch{}}async finishCheckpoint(){let $=this.pendingCheckpoint,Z=this.options.checkpointProvider;if(this.pendingCheckpoint=void 0,!$||!Z)return;let Q=await Z.snapshot("after user turn").catch(()=>{return});if(!Q)return;let Y={id:this.tree.append({type:"checkpoint",beforeEntryId:$.beforeEntryId,checkpointRef:$.beforeRef,checkpointAfterRef:Q,label:"turn"}).id,beforeEntryId:$.beforeEntryId,beforeRef:$.beforeRef,afterRef:Q,label:"turn"};this.checkpoints.record(Y);let G=this.checkpoints.state();this.appendCheckpointCursor(this.tree,G.done,G.undone)}appendCheckpointCursor($,Z,Q){let W=(Y)=>({id:Y.id,...Y.redoRef?{redoRef:Y.redoRef}:{}});$.append({type:"custom",customType:"checkpoint-cursor",data:{done:Z.map(W),undone:Q.map(W)}})}async restoreCheckpointResources($,Z,Q){if(Q.length===0)return;let W=Q.map((Y)=>Y.path);if($.restoreResources){await $.restoreResources(Z,W);return}await $.restore(Z)}checkpointDetails($){let Z=this.tree.pathTo($.id),Q=$.beforeEntryId?Z.findIndex((X)=>X.id===$.beforeEntryId):-1,W=Z.slice(Q+1),Y=W.find((X)=>X.type==="message"&&X.message.role==="user"),G=Y?.type==="message"?Y.message.content.filter((X)=>X.type==="text").map((X)=>X.text).join(`
|
|
124
|
-
`):void 0;return{messageCount:W.filter((X)=>X.type==="message").length,...G!==void 0?{prompt:G}:{}}}rebuildCheckpointHistory(){let $=new Map;for(let Y of this.tree.all()){if(Y.type!=="checkpoint")continue;$.set(Y.id,{id:Y.id,beforeEntryId:Y.beforeEntryId,beforeRef:Y.checkpointRef,afterRef:Y.checkpointAfterRef,...Y.label?{label:Y.label}:{}})}let Z=this.tree.activePath(),Q=Z.findLastIndex((Y)=>Y.type==="custom"&&Y.customType==="checkpoint-cursor"),W=Q===-1?void 0:Z[Q];if(W?.type==="custom"){let Y=W.data,G=(K)=>Array.isArray(K)?K.map((B)=>{let z=typeof B==="string"?B:typeof B==="object"&&B!==null&&typeof B.id==="string"?B.id:void 0,V=z?$.get(z):void 0;if(!V)return;let F=typeof B==="object"&&B!==null&&typeof B.redoRef==="string"?B.redoRef:void 0;return{...V,...F?{redoRef:F}:{}}}).filter((B)=>B!==void 0):[],X=G(Y.done),J=G(Y.undone);for(let K of Z.slice(Q+1)){if(K.type!=="checkpoint")continue;let B=$.get(K.id);if(B)X.push(B);J=[]}this.checkpoints.restore(X,J);return}this.checkpoints.restore(Z.filter((Y)=>Y.type==="checkpoint").map((Y)=>$.get(Y.id)).filter((Y)=>Y!==void 0))}execute($,Z,Q){if(this.stopping)return Promise.reject(Error("Agent has been stopped."));if(this.running)return Promise.reject(Error("Agent already has an active run; use send() to steer it."));this.running=!0;let W=(G)=>{if(Q(G),this.publishToSubscribers(G),G.type==="agent_start"&&!this.sessionStarted)this.sessionStarted=!0,this.options.extensions?.emitLifecycle({type:"session_start",sessionId:this._sessionId});this.options.extensions?.emit(G)};this.activeEmit=W;let Y=this.executeRun($,Z,W).finally(()=>{if(this.running=!1,this.activeEmit=void 0,this.activeExecution=void 0,this.manualCompactionQueued&&!this.stopping)this.scheduleManualCompaction();else if(this.followUps.length>0&&!this.stopping)this.scheduleAutonomousRun();this.resolveIdleIfDone()});return this.activeExecution=Y,Y}async executeRun($,Z,Q){this.controller=new AbortController,this.recoveryAttempted=!1,this.reactiveRecoveryPending=!1;let W=this.options.extensions,Y=$;if(typeof $==="string"&&W){W.emitLifecycle({type:"input",text:$});let w=await W.runInputHooks($);if(w?.consume){if(Z?.output)throw Error("Structured output is unavailable because an extension consumed the input.");let _=[{type:"agent_start"},{type:"agent_end",messages:[],reason:"done"}];for(let r of _)Q(r);return{text:"",messages:[],usage:this.totals,reason:"done",sessionId:this._sessionId}}if(w?.text!==void 0)Y=w.text}let G=typeof Y==="string"?t1(Y):{role:"user",content:Y,timestamp:Date.now()},X,J=[...this.options.tools??[],...W?[...W.tools.values()]:[]];if(Z?.allowedTools){let w=new Set(J.map((g)=>g.name)),_=Z.allowedTools.filter((g)=>!w.has(g));if(_.length>0)throw Error(`Unknown allowed tool${_.length===1?"":"s"}: ${_.join(", ")}`);let r=new Set(Z.allowedTools);J=J.filter((g)=>r.has(g.name))}let K=Z?.model?m$(Z.model,this.options.extensions):this.model,B=Z?.model?this.providerFor(K):this.provider,z=d0(K,this.currentThinking),V=Z?.model?void 0:this.lastContextUsage;if(Z?.model)this.lastContextUsage=void 0;let F=iB(this.options.systemPrompt);if(Z?.output)J.push($8(Z.output,(w)=>{X=w})),F.push({text:Z8(),dynamic:!0});let D=this.tree.messagesAt(),L=D.length===0&&this.options.initialMessages?this.options.initialMessages:[];for(let w of L)this.tree.appendMessage(w);let U=await this.options.refreshContext?.([...D,...L],{sessionId:this._sessionId})??[];for(let w of U)this.tree.appendMessage(w);let q={systemPrompt:F,messages:[...D,...L,...U],...J.length>0?{tools:J}:{}};await this.beginCheckpoint(this.tree.head);let A,N=(w)=>y$(K,w,V?.usage,V?.estimatedTokensAtUsage),j=(w,_,r)=>{if(this.totals=j1(this.totals,w),r){if(V={usage:w,estimatedTokensAtUsage:p(r)},!Z?.model)this.lastContextUsage=V}let g=N(_);this.lastContextPercent=g.percent,this.lastContextTokens=g.tokens,Q({type:"usage_updated",sessionTotals:this.totals,contextTokens:g.tokens,contextPercent:g.percent});let a=e6(this.options.budget,this.totals);if(a)A=a;return a},P=this.options.getCredentials,O={provider:B,model:K,streamOpts:{sessionId:this._sessionId,...this.options.apiKey?{apiKey:this.options.apiKey}:{},...P?{getCredentials:()=>P(K.provider)}:{}},thinkingLevel:z,...this.options.budget?.maxTurns!==void 0?{maxTurns:this.options.budget.maxTurns}:{},getSteeringMessages:()=>{let w=this.steering;return this.steering=[],w},getFollowUpMessages:()=>{let w=this.followUps.shift();return w?[w]:[]},beforeToolCall:async(w)=>{if(w.toolCall.name===o1)return;let _=w.args;if(W){let h0=await W.runToolCallHooks({toolName:w.toolCall.name,toolCallId:w.toolCall.id,args:_});if(h0?.block)return{block:!0,reason:h0.reason??"Blocked by an extension"};if(h0?.args)_=h0.args}let r=J.find((h0)=>h0.name===w.toolCall.name),g=w.toolCall.name;try{g=r?.permissionScope?.(_)??g}catch{}let a=JSON.stringify(_);try{a=r?.permissionPattern?.(_)??a}catch{}let RZ=g===w.toolCall.name?[w.toolCall.name]:[w.toolCall.name,g],O1=k6(this.permissionRules,RZ,a),N$=_===w.args?void 0:{rewrittenArgs:_};if(O1==="allow")return N$;if(O1==="deny")return{block:!0,reason:`Permission denied for ${w.toolCall.name}`};let v0=await Promise.resolve(r?.permissionDetails?.(_)).catch(()=>{return}),g0={id:`p${Date.now().toString(36)}${Math.random().toString(36).slice(2,6)}`,toolCallId:w.toolCall.id,toolName:w.toolCall.name,permission:g,pattern:a,description:v0?.description??`Run ${w.toolCall.name}`,...v0?.preview?{preview:v0.preview}:{}};Q({type:"permission_asked",request:g0});let O$=this.options.onPermission?await this.options.onPermission(g0):"deny";if(Q({type:"permission_resolved",requestId:g0.id,outcome:O$}),O$==="allow")return N$;return{block:!0,reason:`Permission denied for ${w.toolCall.name}`}},prepareContext:async(w)=>{let _=N(w);this.lastContextPercent=_.percent,this.lastContextTokens=_.tokens;let r=this.options.autoCompact!==!1,g=w;if(r&&_.percent>=_6&&!this.compactRequested){let m=hZ(g,{targetTokens:Math.floor(K.contextWindow*(this.options.compactThreshold??T1)*0.8)});if(m.evicted>0){let N0=m.messages.flatMap((y0,h1)=>{let u1=g[h1];if(!u1||y0===u1)return[];let H6=this.tree.entryIdForMessage(u1);return H6?[{entryId:H6,message:y0}]:[]}),M$=m.messages.filter((y0,h1)=>y0!==g[h1]).length;if(N0.length===M$){Q({type:"compaction_start",layer:1}),this.tree.append({type:"microcompaction",replacements:N0}),g=m.messages,V=void 0,this.lastContextUsage=void 0;let y0=N(g);this.lastContextPercent=y0.percent,this.lastContextTokens=y0.tokens,Q({type:"compaction_end",layer:1,tokensFreed:m.tokensFreed})}}}let a=N(g);if(!(this.compactRequested||r&&E6(a,this.options.compactThreshold??T1)))return{messages:g};let O1=this.reactiveRecoveryPending?"overflow":this.compactorOverride?"model-change":this.compactRequested?"manual":"threshold",N$=this.compactRequestedFocus,v0=this.compactorOverride??{model:K,provider:B};this.compactRequested=!1,this.compactRequestedFocus=void 0,this.compactorOverride=void 0;let g0=this.reactiveRecoveryPending?3:2;if(g0===2)Q({type:"compaction_start",layer:g0,trigger:O1,contextTokensBefore:a.tokens});let O$,h0=!1;try{Q({type:"compaction_update",layer:g0,stage:"summarizing"});let m=await fZ(g,{provider:v0.provider,model:v0.model,keepRecentTokens:Math.min(r1,Math.max(2,Math.floor(K.contextWindow*0.2))),...O.streamOpts?{streamOpts:{...O.streamOpts,...P?{getCredentials:()=>P(v0.model.provider)}:{}}}:{},...this.options.carryoverExtractor?{carryoverExtractor:this.options.carryoverExtractor}:{},...N$?{customInstructions:N$}:{},signal:this.controller.signal});O$=m.usage;let N0=b$(m),M$;if(m.summary.length>0){let y0=m.keptMessages[0],h1=null;if(y0){let CZ=this.tree.entryIdForMessage(y0);if(!CZ)throw Error("Compaction tail could not be mapped to the session");h1=CZ}let u1=N0[0];M$=this.tree.append({type:"compaction",summary:m.summary,...m.carryover!==void 0?{carryover:m.carryover}:{},firstKeptEntryId:h1,...u1?{timestamp:u1.timestamp}:{},trigger:O1,contextTokensBefore:a.tokens,contextTokensAfter:p(N0),model:`${K.provider}/${K.id}`,compactorModel:`${v0.model.provider}/${v0.model.id}`,windowNumber:this.tree.activePath().filter((CZ)=>CZ.type==="compaction").length+1,strategy:"summary-tail",keptTokens:p(m.keptMessages),usage:m.usage}).id}return V=void 0,this.lastContextUsage=void 0,j(m.usage,N0),h0=!0,Q({type:"compaction_end",layer:g0,tokensFreed:m.tokensFreed,trigger:O1,status:m.summary.length>0?"completed":"noop",contextTokensBefore:a.tokens,contextTokensAfter:N(N0).tokens,keptTokens:p(m.keptMessages),...M$?{summaryEntryId:M$}:{}}),this.reactiveRecoveryPending=!1,{messages:N0,stop:A!==void 0}}catch(m){let N0=O$??(m instanceof _0?m.usage:void 0);if(N0&&!h0)j(N0,g);return Q({type:"compaction_end",layer:g0,tokensFreed:0,trigger:O1,status:this.controller.signal.aborted?"cancelled":"failed",contextTokensBefore:a.tokens,contextTokensAfter:a.tokens,errorMessage:m instanceof Error?m.message:"Compaction failed for an unknown reason"}),this.reactiveRecoveryPending=!1,{messages:g,stop:A!==void 0}}},...W?{transformContext:(w)=>W.runContextHooks(w)}:{},...W?{afterToolCall:async(w)=>{let _=await W.runToolResultHooks({toolName:w.toolCall.name,toolCallId:w.toolCall.id,result:w.result,isError:w.isError});if(!_)return;return{...w.result,..._.content?{content:_.content}:{},..._.isError!==void 0?{isError:_.isError}:{}}}}:{},recoverFromError:(w)=>{if(this.recoveryAttempted||!C$(w))return!1;return this.recoveryAttempted=!0,this.compactRequested=!0,this.reactiveRecoveryPending=!0,Q({type:"compaction_start",layer:3,trigger:"overflow"}),!0},shouldStopAfterTurn:async(w)=>{if(this.recoveryAttempted=!1,j(w.message.usage,w.context.messages,w.requestMessages))return!0;return!1}},C=await(async()=>{try{return await S6([G],q,O,(w)=>{if(Q(w),w.type==="message_end")this.tree.appendMessage(w.message)},this.controller.signal)}finally{await this.finishCheckpoint()}})();await this.store.save(this._sessionId,this.tree);let v=A??(C.reason==="budget"?"maxCostUsd":C.reason),d={text:nB(C.messages),messages:C.messages,usage:this.totals,reason:v,sessionId:this._sessionId};if(!Z?.output)return d;if(X===void 0)throw Error(`Structured output was requested but the model never produced a valid one (run ended: ${v}).`);return{...d,output:X}}providerFor($){return this.options.provider??this.options.extensions?.providers.get($.provider)??O6($.provider)}publishEvent($){if(this.activeEmit){this.activeEmit($);return}this.publishToSubscribers($),this.options.extensions?.emit($)}refreshContextAccounting(){let $=y$(this.model,this.tree.messagesAt(),this.lastContextUsage?.usage,this.lastContextUsage?.estimatedTokensAtUsage);this.lastContextPercent=$.percent,this.lastContextTokens=$.tokens,this.publishEvent({type:"usage_updated",sessionTotals:this.totals,contextTokens:$.tokens,contextPercent:$.percent})}publishToSubscribers($){for(let Z of this.subscribers)try{Promise.resolve(Z($)).catch(()=>{})}catch{}}scheduleAutonomousRun(){if(this.running||this.autonomousScheduled||this.stopping||this.followUps.length===0)return;this.autonomousScheduled=!0,queueMicrotask(()=>{if(this.autonomousScheduled=!1,this.running||this.stopping){this.resolveIdleIfDone();return}let $=this.followUps.shift();if(!$||$.role!=="user"){this.resolveIdleIfDone();return}this.execute($.content,void 0,()=>{}).catch(()=>{})})}scheduleManualCompaction(){if(this.running||this.autonomousScheduled||this.stopping||!this.manualCompactionQueued)return;let $=this.queuedManualCompactionFocus;this.manualCompactionQueued=!1,this.queuedManualCompactionFocus=void 0,this.autonomousScheduled=!0,queueMicrotask(()=>{if(this.autonomousScheduled=!1,this.running||this.stopping){this.resolveIdleIfDone();return}this.compactNow($).catch(()=>{})})}resolveIdleIfDone(){if(this.running||this.autonomousScheduled||this.manualCompactionQueued||this.followUps.length>0)return;for(let $ of this.idleWaiters)$();this.idleWaiters.clear()}}import{createHash as tB,randomBytes as $5}from"crypto";import{chmod as Y8,mkdir as oB,readFile as sB,rename as eB,stat as $H,unlink as ZH,writeFile as QH}from"fs/promises";import{createServer as hW}from"http";import{homedir as WH}from"os";import{dirname as YH,join as uW}from"path";var aB=[{x:0,y:0,w:5,h:1},{x:0,y:1,w:1,h:4},{x:2,y:1,w:1,h:4},{x:4,y:1,w:1,h:4},{x:6,y:0,w:1,h:5},{x:9,y:0,w:1,h:5},{x:7,y:4,w:2,h:1}];function Q8($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function rB(){return`<svg class="mark" viewBox="0 0 10 5" role="img" aria-label="mu">${aB.map((Z)=>`<rect x="${Z.x}" y="${Z.y}" width="${Z.w}" height="${Z.h}"/>`).join("")}</svg>`}function W8($){let Z=$.status==="success"?"#fff":"#f87171";return`<!doctype html>
|
|
123
|
+
Prefer a small number of well-chosen tool calls over many exploratory ones. When editing, reproduce the exact surrounding text in oldString so the match is unambiguous.`.trim()});return Z}import{createHash as MH}from"crypto";import{readFileSync as jH,statSync as PH}from"fs";import{resolve as X5}from"path";function wH($){return MH("sha256").update($).digest("hex")}function Q7($,Z){try{let Q=PH($);return{exists:!0,device:Q.dev,inode:Q.ino,size:Q.size,mtimeMs:Q.mtimeMs,ctimeMs:Q.ctimeMs,digest:wH(Z??jH($))}}catch{return{exists:!1}}}class J5{reads=new Map;modified=new Set;markRead($,Z){let Q=X5($);this.reads.set(Q,Q7(Q,Z))}markWritten($){let Z=X5($);this.modified.add(Z),this.markRead(Z)}hasRead($){return this.reads.has(X5($))}isStale($,Z){let Q=X5($),Y=this.reads.get(Q);if(Y===void 0)return!1;let W=Q7(Q,Z);return W.exists!==Y.exists||W.device!==Y.device||W.inode!==Y.inode||W.size!==Y.size||W.mtimeMs!==Y.mtimeMs||W.ctimeMs!==Y.ctimeMs||W.digest!==Y.digest}readFiles(){return[...this.reads.keys()]}modifiedFiles(){return[...this.modified]}}import{randomUUID as TH}from"crypto";function Y7($){return $.inputTokens+$.outputTokens+$.cacheReadTokens+$.cacheWriteTokens}function q8($,Z){if(!$)return;if($.maxCostUsd!==void 0&&(Z.costUsd??0)>=$.maxCostUsd)return"maxCostUsd";if($.maxTokens!==void 0&&Y7(Z)>=$.maxTokens)return"maxTokens";return}import{z as IH}from"zod";var G$="structured_output";function A8($,Z){let Q=IH.toJSONSchema($,{io:"input"});return{name:G$,description:"Report the final answer. Call this exactly once, when you have the complete result. Do not call any other tool afterwards.",inputSchema:Q,execute:async(Y,W)=>{let G=$.safeParse(W);if(!G.success)return{content:[{type:"text",text:`Output did not match the required schema: ${G.error.issues.map((J)=>`${J.path.join(".")||"(root)"}: ${J.message}`).join("; ")}. Call ${G$} again with corrected values.`}],isError:!0};return Z(G.data),{content:[{type:"text",text:"Final answer recorded."}],terminate:!0}}}}function N8(){return`When you have the final answer, call the ${G$} tool with it. That call ends the task.`}var EH=[{permission:"*",pattern:"*",action:"allow"}],RH="You are mu, a capable and direct assistant. Use the tools available to you to complete the user's task. Be concise: answer what was asked without padding. When a task is done, say so plainly.";function r$($,Z){if($&&typeof $!=="string")return $;let Q=$??Z$(),Y=Z?.findModel(Q)??$$(Q);if(!Y)throw Error(`Unknown model: ${Q}. Pass a ModelInfo to use a custom model.`);return Y}function CH($){if($===void 0)return[{text:RH}];return typeof $==="string"?[{text:$}]:$}function SH($){for(let Z=$.length-1;Z>=0;Z--){let Q=$[Z];if(Q?.role!=="assistant")continue;let Y=Q.content.filter((W)=>W.type==="text").map((W)=>W.text).join("");if(Y.trim().length>0)return Y}return""}function W7(){return`s${Date.now().toString(36)}-${TH().slice(0,8)}`}class t${options;model;provider;store;tree;_sessionId;controller=new AbortController;steering=[];followUps=[];totals=b$();compactRequested=!1;compactRequestedFocus;queuedManualCompactionFocus;manualCompactionQueued=!1;compacting=!1;compactorOverride;lastContextPercent=0;lastContextTokens=0;lastContextUsage;checkpoints=new uZ;recoveryAttempted=!1;reactiveRecoveryPending=!1;pendingCheckpoint;currentThinking;running=!1;stopping=!1;activeEmit;activeExecution;autonomousScheduled=!1;subscribers=new Set;subscriberQueues=new Map;idleWaiters=new Set;shutdownPromise;sessionStarted=!1;permissionRules;constructor($={}){this.options=$,this.permissionRules=[...$.permissions??EH],this.model=r$($.model,$.extensions),this.currentThinking=a0(this.model,$.thinkingLevel),this.provider=this.providerFor(this.model),this.store=$.session??new c$,this._sessionId=$.sessionId??W7(),this.tree=new s({type:"session",version:p$,id:this._sessionId,createdAt:new Date().toISOString(),profile:"default",environment:{}}),$.runtime?.attach({emit:(Z)=>this.emitTaskEvent(Z),followUp:(Z)=>this.followUp(Z)})}get sessionId(){return this._sessionId}get usage(){return this.totals}get session(){return this.tree}get sessionStore(){return this.store}get modelRef(){return`${this.model.provider}/${this.model.id}`}get contextWindow(){return this.model.contextWindow}get thinking(){return this.currentThinking}get thinkingLevels(){return Q$(this.model)}get isRunning(){return this.running}get isCompacting(){return this.compacting}get permissions(){return[...this.permissionRules]}setPermissions($){this.permissionRules=[...$]}addPermissionRule($){this.permissionRules.push($)}setModel($){let Z={model:this.model,provider:this.provider},Q=r$($,this.options.extensions),Y=this.tree.messagesAt();if(Y.length>0&&l(Y)>=Q.contextWindow*(this.options.compactThreshold??R1))this.compactRequested=!0,this.compactorOverride=Z;this.model=Q,this.provider=this.providerFor(Q);let W=a0(Q,this.currentThinking),G=W!==this.currentThinking;this.currentThinking=W,this.lastContextUsage=void 0,this.refreshContextAccounting(),this.tree.append({type:"settings-change",model:this.modelRef,...G?{thinkingLevel:W}:{}}),this.options.extensions?.emitLifecycle({type:"model_select",model:this.modelRef})}setThinking($){let Z=a0(this.model,$);if(Z===this.currentThinking)return;this.currentThinking=Z,this.tree.append({type:"settings-change",thinkingLevel:Z})}resume($){if(this.running)throw Error("Cannot resume a session while a run is active.");let Z;try{Z=s.fromJsonl($.toJsonl())}catch(W){throw Error("Cannot resume an invalid or unsupported session.",{cause:W})}let Q=Z.header;if(!Q||Q.version!==p$)throw Error("Cannot resume an invalid or unsupported session.");this.tree=Z,this._sessionId=Q.id;let Y=b$();for(let W of Z.all())if(W.type==="message"&&W.message.role==="assistant")Y=K1(Y,W.message.usage);else if(W.type==="compaction"&&W.usage)Y=K1(Y,W.usage);else if(W.type==="compaction-attempt")Y=K1(Y,W.usage);this.totals=Y,this.lastContextUsage=void 0,this.compactRequested=!1,this.compactRequestedFocus=void 0,this.queuedManualCompactionFocus=void 0,this.manualCompactionQueued=!1,this.compacting=!1,this.compactorOverride=void 0,this.recoveryAttempted=!1,this.reactiveRecoveryPending=!1,this.steering=[],this.followUps=[],this.pendingCheckpoint=void 0,this.sessionStarted=!1,this.controller=new AbortController,this.model=r$(this.options.model,this.options.extensions),this.provider=this.providerFor(this.model),this.currentThinking=a0(this.model,this.options.thinkingLevel);for(let W of Z.activePath()){if(W.type!=="settings-change")continue;if(W.model)try{this.model=r$(W.model,this.options.extensions),this.provider=this.providerFor(this.model)}catch{}if(typeof W.thinkingLevel==="string"&&W.thinkingLevel.length>0)this.currentThinking=W.thinkingLevel}this.currentThinking=a0(this.model,this.currentThinking),this.rebuildCheckpointHistory(),this.refreshContextAccounting()}newSession($=W7()){if(this.running)throw Error("Cannot start a new session while a run is active.");this._sessionId=$,this.tree=new s({type:"session",version:p$,id:$,createdAt:new Date().toISOString(),profile:"default",environment:{}}),this.tree.append({type:"settings-change",model:this.modelRef,thinkingLevel:this.currentThinking}),this.totals=b$(),this.lastContextUsage=void 0,this.compactRequested=!1,this.compactRequestedFocus=void 0,this.queuedManualCompactionFocus=void 0,this.manualCompactionQueued=!1,this.compacting=!1,this.compactorOverride=void 0,this.recoveryAttempted=!1,this.reactiveRecoveryPending=!1,this.steering=[],this.followUps=[],this.pendingCheckpoint=void 0,this.checkpoints.restore([]),this.sessionStarted=!1,this.controller=new AbortController,this.refreshContextAccounting()}send($){this.steering.push(W$($))}followUp($){if(this.stopping)return;if(this.followUps.push(W$($)),!this.running)this.scheduleAutonomousRun()}removeQueuedMessage($,Z){let Q=$==="steer"?this.steering:this.followUps;for(let Y=Q.length-1;Y>=0;Y--){let W=Q[Y];if(W?.role!=="user")continue;if(W.content.filter((X)=>X.type==="text").map((X)=>X.text).join("")!==Z)continue;return Q.splice(Y,1),this.resolveIdleIfDone(),!0}return!1}emitTaskEvent($){this.publishEvent($)}subscribe($){return this.subscribers.add($),()=>{this.subscribers.delete($),this.subscriberQueues.delete($)}}resize($,Z){if($>0&&Z>0)this.options.runtime?.resize?.($,Z)}waitForIdle(){if(!this.running&&!this.autonomousScheduled&&!this.manualCompactionQueued&&this.followUps.length===0)return Promise.resolve();return new Promise(($)=>this.idleWaiters.add($))}stop(){if(this.stopping)return;this.stopping=!0,this.followUps=[],this.manualCompactionQueued=!1,this.queuedManualCompactionFocus=void 0;try{this.options.runtime?.stop?.()}catch{}this.controller.abort(),this.resolveIdleIfDone()}shutdown(){if(this.shutdownPromise)return this.shutdownPromise;return this.stop(),this.shutdownPromise=(async()=>{await this.activeExecution?.catch(()=>{}),this.options.extensions?.emitLifecycle({type:"session_shutdown",sessionId:this._sessionId}),await Promise.allSettled([Promise.resolve().then(()=>this.options.runtime?.shutdown?.()),Promise.resolve().then(()=>this.options.extensions?.shutdown())]),this.resolveIdleIfDone()})(),this.shutdownPromise}abort(){this.controller.abort()}requestCompaction($){this.compactRequested=!0,this.compactRequestedFocus=$?.trim()||void 0}compactNow($){let Z=$?.trim()||void 0;if(this.stopping)return Promise.resolve({status:"failed",message:"Compaction is unavailable after stop."});if(this.running)return this.manualCompactionQueued=!0,this.queuedManualCompactionFocus=Z,Promise.resolve({status:"queued",message:"Compaction queued \u2014 it will run after the current turn."});this.running=!0,this.compacting=!0,this.controller=new AbortController;let Q=(W)=>{if(this.publishToSubscribers(W),W.type==="agent_start"&&!this.sessionStarted)this.sessionStarted=!0,this.options.extensions?.emitLifecycle({type:"session_start",sessionId:this._sessionId});this.options.extensions?.emit(W)};this.activeEmit=Q;let Y=this.executeManualCompaction(Z,Q).finally(()=>{if(this.running=!1,this.compacting=!1,this.activeEmit=void 0,this.activeExecution=void 0,this.manualCompactionQueued&&!this.stopping)this.scheduleManualCompaction();else if(this.followUps.length>0&&!this.stopping)this.scheduleAutonomousRun();this.resolveIdleIfDone()});return this.activeExecution=Y,Y}async executeManualCompaction($,Z){Z({type:"agent_start"});let Q=this.tree.messagesAt(),Y=h$(this.model,Q,this.lastContextUsage?.usage,this.lastContextUsage?.estimatedTokensAtUsage).tokens;Z({type:"compaction_start",layer:2,trigger:"manual",contextTokensBefore:Y});let W=tZ(Q,{targetTokens:Math.floor(this.model.contextWindow*(this.options.compactThreshold??R1)*0.8)}),G=Q,X=[];if(W.evicted>0){Z({type:"compaction_update",layer:2,stage:"clearing-tool-output",toolResultsCleared:W.evicted}),X=W.messages.flatMap((z,F)=>{let D=Q[F];if(!D||z===D)return[];let L=this.tree.entryIdForMessage(D);return L?[{entryId:L,message:z}]:[]});let V=W.messages.filter((z,F)=>z!==Q[F]).length;if(X.length===V)G=W.messages;else X=[]}let J=this.compactorOverride??{model:this.model,provider:this.provider};this.compactorOverride=void 0,Z({type:"compaction_update",layer:2,stage:"summarizing"});let B,K=!1;try{let V=this.options.getCredentials,z=await nZ(G,{provider:J.provider,model:J.model,keepRecentTokens:Math.min(Y$,Math.max(2,Math.floor(this.model.contextWindow*0.2))),...$?{customInstructions:$}:{},...this.options.carryoverExtractor?{carryoverExtractor:this.options.carryoverExtractor}:{},signal:this.controller.signal,streamOpts:{sessionId:this._sessionId,...this.options.apiKey?{apiKey:this.options.apiKey}:{},...V?{getCredentials:()=>V(J.model.provider)}:{}}});if(B=z.usage,z.summary.length===0){let n=l(Q);return Z({type:"compaction_end",layer:2,trigger:"manual",status:"noop",tokensFreed:0,contextTokensBefore:Y,contextTokensAfter:n}),Z({type:"agent_end",messages:Q,reason:"done"}),{status:"noop",message:"Context is already compact enough \u2014 no changes made.",tokensBefore:Y,tokensAfter:n,tokensFreed:0}}Z({type:"compaction_update",layer:2,stage:"installing"});let F=u$(z),D=z.keptMessages[0],L=null;if(D){let n=G.indexOf(D),w=n===-1?D:Q[n],_=w?this.tree.entryIdForMessage(w):void 0;if(!_)throw Error("Compaction tail could not be mapped to the session");L=_}let U=F[0],q=await this.options.refreshContext?.(F,{sessionId:this._sessionId})??[],A=l([...F,...q]),N=s.fromJsonl(this.tree.toJsonl());if(X.length>0)N.append({type:"microcompaction",replacements:X});let j=N.activePath().filter((n)=>n.type==="compaction").length+1,P=N.append({type:"compaction",summary:z.summary,...z.carryover!==void 0?{carryover:z.carryover}:{},firstKeptEntryId:L,...U?{timestamp:U.timestamp}:{},trigger:"manual",contextTokensBefore:Y,contextTokensAfter:A,model:this.modelRef,compactorModel:`${J.model.provider}/${J.model.id}`,windowNumber:j,strategy:"summary-tail",keptTokens:l(z.keptMessages),toolResultsCleared:X.length,usage:z.usage});for(let n of q)N.appendMessage(n);let O=N.messagesAt(),C=l(O),g=Math.max(0,Y-C);return await this.store.save(this._sessionId,N),this.tree=N,this.totals=K1(this.totals,z.usage),K=!0,this.lastContextUsage=void 0,this.lastContextPercent=this.model.contextWindow>0?C/this.model.contextWindow:0,this.lastContextTokens=C,Z({type:"usage_updated",sessionTotals:this.totals,contextTokens:C,contextPercent:this.lastContextPercent}),Z({type:"compaction_end",layer:2,trigger:"manual",status:"completed",tokensFreed:g,summaryEntryId:P.id,contextTokensBefore:Y,contextTokensAfter:C,toolResultsCleared:X.length,keptTokens:l(z.keptMessages)}),Z({type:"agent_end",messages:O,reason:"done"}),{status:"completed",message:`Context compacted: ${Y.toLocaleString()} \u2192 ${C.toLocaleString()} tokens (${g.toLocaleString()} freed).`,tokensBefore:Y,tokensAfter:C,tokensFreed:g,toolResultsCleared:X.length,summaryEntryId:P.id}}catch(V){let z=B??(V instanceof h0?V.usage:void 0);if(z&&!K)this.tree.append({type:"compaction-attempt",status:this.controller.signal.aborted?"cancelled":"failed",trigger:"manual",model:this.modelRef,compactorModel:`${J.model.provider}/${J.model.id}`,timestamp:Date.now(),usage:z}),await this.store.save(this._sessionId,this.tree).catch(()=>{}),this.totals=K1(this.totals,z),Z({type:"usage_updated",sessionTotals:this.totals,contextTokens:Y,contextPercent:this.model.contextWindow>0?Y/this.model.contextWindow:0});let F=this.controller.signal.aborted,D=F?"Compaction cancelled \u2014 original conversation preserved.":`Compaction failed: ${V instanceof Error?V.message:String(V)} Original conversation preserved.`;return Z({type:"compaction_end",layer:2,trigger:"manual",status:F?"cancelled":"failed",tokensFreed:0,contextTokensBefore:Y,contextTokensAfter:Y,errorMessage:D}),Z({type:"agent_end",messages:Q,reason:F?"aborted":"done"}),{status:F?"cancelled":"failed",message:D,tokensBefore:Y,tokensAfter:Y,tokensFreed:0}}}get checkpointHistory(){return this.checkpoints}async undo(){if(this.running)return{ok:!1,message:"Cannot undo while a run is active."};let $=this.options.checkpointProvider;if(!$)return{ok:!1,message:"This profile does not support undo."};let Z=this.checkpoints.peekUndo();if(!Z)return{ok:!1,message:"Nothing to undo."};if(!this.tree.has(Z.beforeEntryId))return{ok:!1,message:"Could not undo: the conversation checkpoint is missing."};let Q;try{Q=await $.diff(Z.beforeRef,Z.afterRef)}catch(V){return{ok:!1,message:`Could not undo: ${V instanceof Error?V.message:String(V)}`}}let Y;try{Y=await $.snapshot("before undo of last turn")}catch(V){return{ok:!1,message:`Could not undo: ${V instanceof Error?V.message:String(V)}`}}if(!Y)return{ok:!1,message:"Could not undo: failed to capture current state."};try{await this.restoreCheckpointResources($,Z.beforeRef,Q)}catch(V){let z=await this.restoreCheckpointResources($,Y,Q).then(()=>{return}).catch((F)=>F);return{ok:!1,message:`Could not undo: ${V instanceof Error?V.message:String(V)}${z?`; rollback failed: ${z instanceof Error?z.message:String(z)}`:""}`}}let W=this.tree,G=s.fromJsonl(W.toJsonl());G.fork(Z.beforeEntryId);let X=this.checkpoints.state(),J=X.done.slice(0,-1),B=[...X.undone,{...Z,redoRef:Y}];this.appendCheckpointCursor(G,J,B);try{await this.store.save(this._sessionId,G)}catch(V){return await this.restoreCheckpointResources($,Y,Q).catch(()=>{}),await this.store.save(this._sessionId,W).catch(()=>{}),{ok:!1,message:`Could not undo: ${V instanceof Error?V.message:String(V)}`}}let K=this.checkpointDetails(Z);return this.checkpoints.restore(J,B),this.tree=G,this.refreshContextAccounting(),{ok:!0,message:"Undid the last turn.",data:{kind:"checkpoint",action:"undo",files:Q,messageCount:K.messageCount,...K.prompt!==void 0?{prompt:K.prompt}:{}}}}async redo(){if(this.running)return{ok:!1,message:"Cannot redo while a run is active."};let $=this.options.checkpointProvider;if(!$)return{ok:!1,message:"This profile does not support redo."};let Z=this.checkpoints.peekRedo();if(!Z)return{ok:!1,message:"Nothing to redo."};if(!this.tree.has(Z.id))return{ok:!1,message:"Could not redo: the conversation checkpoint is missing."};let Q;try{Q=await $.diff(Z.beforeRef,Z.afterRef)}catch(F){return{ok:!1,message:`Could not redo: ${F instanceof Error?F.message:String(F)}`}}let Y;try{Y=await $.snapshot("before redo of last turn")}catch(F){return{ok:!1,message:`Could not redo: ${F instanceof Error?F.message:String(F)}`}}if(!Y)return{ok:!1,message:"Could not redo: failed to capture current state."};try{await this.restoreCheckpointResources($,Z.redoRef??Z.afterRef,Q)}catch(F){let D=await this.restoreCheckpointResources($,Y,Q).then(()=>{return}).catch((L)=>L);return{ok:!1,message:`Could not redo: ${F instanceof Error?F.message:String(F)}${D?`; rollback failed: ${D instanceof Error?D.message:String(D)}`:""}`}}let W=this.tree,G=s.fromJsonl(W.toJsonl());G.fork(Z.id);let X=this.checkpoints.state(),{redoRef:J,...B}=Z,K=[...X.done,B],V=X.undone.slice(0,-1);this.appendCheckpointCursor(G,K,V);try{await this.store.save(this._sessionId,G)}catch(F){return await this.restoreCheckpointResources($,Y,Q).catch(()=>{}),await this.store.save(this._sessionId,W).catch(()=>{}),{ok:!1,message:`Could not redo: ${F instanceof Error?F.message:String(F)}`}}let z=this.checkpointDetails(Z);return this.checkpoints.restore(K,V),this.tree=G,this.refreshContextAccounting(),{ok:!0,message:"Redid the turn.",data:{kind:"checkpoint",action:"redo",files:Q,messageCount:z.messageCount}}}async sessionDiff(){let $=this.options.checkpointProvider,Z=this.checkpoints.first();if(!$||!Z)return[];return $.diff(Z.beforeRef)}forkPoints(){let $=[];for(let Z of this.tree.activePath()){if(Z.type!=="message")continue;let Q=Z.message;if(Q.role==="toolResult")continue;if(Q.role==="assistant"&&Q.content.some((G)=>G.type==="toolCall"))continue;let Y=Q.content.filter((G)=>G.type==="text").map((G)=>G.text).join("").replace(/\s+/g," ").trim(),W=Q.role==="assistant"?"mu":Q.role;$.push({id:Z.id,description:`${W} \xB7 ${Y.slice(0,80)||"(no text)"}`})}return $}async fork($){if(this.running)return{ok:!1,message:"Cannot fork while a run is active."};if(!this.tree.get($))return{ok:!1,message:`Could not fork: unknown entry ${$}.`};let Z=s.fromJsonl(this.tree.toJsonl());Z.fork($),Z.append({type:"custom",customType:"fork",data:{fromEntryId:this.tree.head,targetEntryId:$}});try{await this.store.save(this._sessionId,Z)}catch(Q){return{ok:!1,message:`Could not fork: ${Q instanceof Error?Q.message:String(Q)}`}}return this.tree=Z,this.rebuildCheckpointHistory(),this.refreshContextAccounting(),{ok:!0,message:`Forked from ${$}.`}}get contextPercent(){return this.lastContextPercent}get contextTokens(){return this.lastContextTokens}async run($,Z){return this.execute($,Z,()=>{})}stream($,Z){let Q=[],Y=[],W=!1,G=(J)=>{let B=Y.shift();if(B)B({value:J,done:!1});else Q.push(J)},X=this.execute($,Z,G).finally(()=>{W=!0;while(Y.length>0)Y.shift()?.({value:void 0,done:!0})});return{async*[Symbol.asyncIterator](){for(;;){if(Q.length>0){yield Q.shift();continue}if(W)return;let J=await new Promise((B)=>Y.push(B));if(J.done)return;yield J.value}},result:()=>X}}async beginCheckpoint($){let Z=this.options.checkpointProvider;if(this.pendingCheckpoint=void 0,!Z)return;try{let Q=await Z.snapshot("before user turn");if(Q)this.pendingCheckpoint={beforeEntryId:$,beforeRef:Q}}catch{}}async finishCheckpoint(){let $=this.pendingCheckpoint,Z=this.options.checkpointProvider;if(this.pendingCheckpoint=void 0,!$||!Z)return;let Q=await Z.snapshot("after user turn").catch(()=>{return});if(!Q)return;let W={id:this.tree.append({type:"checkpoint",beforeEntryId:$.beforeEntryId,checkpointRef:$.beforeRef,checkpointAfterRef:Q,label:"turn"}).id,beforeEntryId:$.beforeEntryId,beforeRef:$.beforeRef,afterRef:Q,label:"turn"};this.checkpoints.record(W);let G=this.checkpoints.state();this.appendCheckpointCursor(this.tree,G.done,G.undone)}appendCheckpointCursor($,Z,Q){let Y=(W)=>({id:W.id,...W.redoRef?{redoRef:W.redoRef}:{}});$.append({type:"custom",customType:"checkpoint-cursor",data:{done:Z.map(Y),undone:Q.map(Y)}})}async restoreCheckpointResources($,Z,Q){if(Q.length===0)return;let Y=Q.map((W)=>W.path);if($.restoreResources){await $.restoreResources(Z,Y);return}await $.restore(Z)}checkpointDetails($){let Z=this.tree.pathTo($.id),Q=$.beforeEntryId?Z.findIndex((X)=>X.id===$.beforeEntryId):-1,Y=Z.slice(Q+1),W=Y.find((X)=>X.type==="message"&&X.message.role==="user"),G=W?.type==="message"?W.message.content.filter((X)=>X.type==="text").map((X)=>X.text).join(`
|
|
124
|
+
`):void 0;return{messageCount:Y.filter((X)=>X.type==="message").length,...G!==void 0?{prompt:G}:{}}}rebuildCheckpointHistory(){let $=new Map;for(let W of this.tree.all()){if(W.type!=="checkpoint")continue;$.set(W.id,{id:W.id,beforeEntryId:W.beforeEntryId,beforeRef:W.checkpointRef,afterRef:W.checkpointAfterRef,...W.label?{label:W.label}:{}})}let Z=this.tree.activePath(),Q=Z.findLastIndex((W)=>W.type==="custom"&&W.customType==="checkpoint-cursor"),Y=Q===-1?void 0:Z[Q];if(Y?.type==="custom"){let W=Y.data,G=(B)=>Array.isArray(B)?B.map((K)=>{let V=typeof K==="string"?K:typeof K==="object"&&K!==null&&typeof K.id==="string"?K.id:void 0,z=V?$.get(V):void 0;if(!z)return;let F=typeof K==="object"&&K!==null&&typeof K.redoRef==="string"?K.redoRef:void 0;return{...z,...F?{redoRef:F}:{}}}).filter((K)=>K!==void 0):[],X=G(W.done),J=G(W.undone);for(let B of Z.slice(Q+1)){if(B.type!=="checkpoint")continue;let K=$.get(B.id);if(K)X.push(K);J=[]}this.checkpoints.restore(X,J);return}this.checkpoints.restore(Z.filter((W)=>W.type==="checkpoint").map((W)=>$.get(W.id)).filter((W)=>W!==void 0))}execute($,Z,Q){if(this.stopping)return Promise.reject(Error("Agent has been stopped."));if(this.running)return Promise.reject(Error("Agent already has an active run; use send() to steer it."));this.running=!0;let Y=(G)=>{if(Q(G),this.publishToSubscribers(G),G.type==="agent_start"&&!this.sessionStarted)this.sessionStarted=!0,this.options.extensions?.emitLifecycle({type:"session_start",sessionId:this._sessionId});this.options.extensions?.emit(G)};this.activeEmit=Y;let W=this.executeRun($,Z,Y).finally(()=>{if(this.running=!1,this.activeEmit=void 0,this.activeExecution=void 0,this.manualCompactionQueued&&!this.stopping)this.scheduleManualCompaction();else if(this.followUps.length>0&&!this.stopping)this.scheduleAutonomousRun();this.resolveIdleIfDone()});return this.activeExecution=W,W}async executeRun($,Z,Q){this.controller=new AbortController,this.recoveryAttempted=!1,this.reactiveRecoveryPending=!1;let Y=this.options.extensions,W=$;if(typeof $==="string"&&Y){Y.emitLifecycle({type:"input",text:$});let w=await Y.runInputHooks($);if(w?.consume){if(Z?.output)throw Error("Structured output is unavailable because an extension consumed the input.");let _=[{type:"agent_start"},{type:"agent_end",messages:[],reason:"done"}];for(let o of _)Q(o);return{text:"",messages:[],usage:this.totals,reason:"done",sessionId:this._sessionId}}if(w?.text!==void 0)W=w.text}let G=typeof W==="string"?W$(W):{role:"user",content:W,timestamp:Date.now()},X,J=[...this.options.tools??[],...Y?[...Y.tools.values()]:[]];if(Z?.allowedTools){let w=new Set(J.map((h)=>h.name)),_=Z.allowedTools.filter((h)=>!w.has(h));if(_.length>0)throw Error(`Unknown allowed tool${_.length===1?"":"s"}: ${_.join(", ")}`);let o=new Set(Z.allowedTools);J=J.filter((h)=>o.has(h.name))}let B=Z?.model?r$(Z.model,this.options.extensions):this.model,K=Z?.model?this.providerFor(B):this.provider,V=a0(B,this.currentThinking),z=Z?.model?void 0:this.lastContextUsage;if(Z?.model)this.lastContextUsage=void 0;let F=CH(this.options.systemPrompt);if(Z?.output)J.push(A8(Z.output,(w)=>{X=w})),F.push({text:N8(),dynamic:!0});let D=this.tree.messagesAt(),L=D.length===0&&this.options.initialMessages?this.options.initialMessages:[];for(let w of L)this.tree.appendMessage(w);let U=await this.options.refreshContext?.([...D,...L],{sessionId:this._sessionId})??[];for(let w of U)this.tree.appendMessage(w);let q={systemPrompt:F,messages:[...D,...L,...U],...J.length>0?{tools:J}:{}};await this.beginCheckpoint(this.tree.head);let A,N=(w)=>h$(B,w,z?.usage,z?.estimatedTokensAtUsage),j=(w,_,o)=>{if(this.totals=K1(this.totals,w),o){if(z={usage:w,estimatedTokensAtUsage:l(o)},!Z?.model)this.lastContextUsage=z}let h=N(_);this.lastContextPercent=h.percent,this.lastContextTokens=h.tokens,Q({type:"usage_updated",sessionTotals:this.totals,contextTokens:h.tokens,contextPercent:h.percent});let t=q8(this.options.budget,this.totals);if(t)A=t;return t},P=this.options.getCredentials,O={provider:K,model:B,streamOpts:{sessionId:this._sessionId,...this.options.apiKey?{apiKey:this.options.apiKey}:{},...P?{getCredentials:()=>P(B.provider)}:{}},thinkingLevel:V,...this.options.budget?.maxTurns!==void 0?{maxTurns:this.options.budget.maxTurns}:{},getSteeringMessages:()=>{let w=this.steering;return this.steering=[],w},getFollowUpMessages:()=>{let w=this.followUps.shift();return w?[w]:[]},beforeToolCall:async(w)=>{if(w.toolCall.name===G$)return;let _=w.args;if(Y){let A0=await Y.runToolCallHooks({toolName:w.toolCall.name,toolCallId:w.toolCall.id,args:_});if(A0?.block)return{block:!0,reason:A0.reason??"Blocked by an extension"};if(A0?.args)_=A0.args}let o=J.find((A0)=>A0.name===w.toolCall.name),h=w.toolCall.name;try{h=o?.permissionScope?.(_)??h}catch{}let t=JSON.stringify(_);try{t=o?.permissionPattern?.(_)??t}catch{}let gZ=h===w.toolCall.name?[w.toolCall.name]:[w.toolCall.name,h],Y1=r6(this.permissionRules,gZ,t),C$=_===w.args?void 0:{rewrittenArgs:_};if(Y1==="allow")return C$;if(Y1==="deny")return{block:!0,reason:`Permission denied for ${w.toolCall.name}`};let I0=await Promise.resolve(o?.permissionDetails?.(_)).catch(()=>{return}),l0={id:`p${Date.now().toString(36)}${Math.random().toString(36).slice(2,6)}`,toolCallId:w.toolCall.id,toolName:w.toolCall.name,permission:h,pattern:t,description:I0?.description??`Run ${w.toolCall.name}`,...I0?.preview?{preview:I0.preview}:{}};Q({type:"permission_asked",request:l0});let d1="deny";if(this.options.onPermission&&!this.controller.signal.aborted){let A0=this.controller.signal,u,H0=new Promise((I1)=>{u=()=>I1("deny"),A0.addEventListener("abort",u,{once:!0})});try{d1=await Promise.race([this.options.onPermission(l0),H0])}finally{if(u)A0.removeEventListener("abort",u)}}if(Q({type:"permission_resolved",requestId:l0.id,outcome:d1}),d1==="allow")return C$;return{block:!0,reason:`Permission denied for ${w.toolCall.name}`}},prepareContext:async(w)=>{let _=N(w);this.lastContextPercent=_.percent,this.lastContextTokens=_.tokens;let o=this.options.autoCompact!==!1,h=w;if(o&&_.percent>=a6&&!this.compactRequested){let u=tZ(h,{targetTokens:Math.floor(B.contextWindow*(this.options.compactThreshold??R1)*0.8)});if(u.evicted>0){let H0=u.messages.flatMap((v0,i1)=>{let n1=h[i1];if(!n1||v0===n1)return[];let w6=this.tree.entryIdForMessage(n1);return w6?[{entryId:w6,message:v0}]:[]}),I1=u.messages.filter((v0,i1)=>v0!==h[i1]).length;if(H0.length===I1){Q({type:"compaction_start",layer:1}),this.tree.append({type:"microcompaction",replacements:H0}),h=u.messages,z=void 0,this.lastContextUsage=void 0;let v0=N(h);this.lastContextPercent=v0.percent,this.lastContextTokens=v0.tokens,Q({type:"compaction_end",layer:1,tokensFreed:u.tokensFreed})}}}let t=N(h);if(!(this.compactRequested||o&&l6(t,this.options.compactThreshold??R1)))return{messages:h};let Y1=this.reactiveRecoveryPending?"overflow":this.compactorOverride?"model-change":this.compactRequested?"manual":"threshold",C$=this.compactRequestedFocus,I0=this.compactorOverride??{model:B,provider:K};this.compactRequested=!1,this.compactRequestedFocus=void 0,this.compactorOverride=void 0;let l0=this.reactiveRecoveryPending?3:2;if(l0===2)Q({type:"compaction_start",layer:l0,trigger:Y1,contextTokensBefore:t.tokens});let d1,A0=!1;try{Q({type:"compaction_update",layer:l0,stage:"summarizing"});let u=await nZ(h,{provider:I0.provider,model:I0.model,keepRecentTokens:Math.min(Y$,Math.max(2,Math.floor(B.contextWindow*0.2))),...O.streamOpts?{streamOpts:{...O.streamOpts,...P?{getCredentials:()=>P(I0.model.provider)}:{}}}:{},...this.options.carryoverExtractor?{carryoverExtractor:this.options.carryoverExtractor}:{},...C$?{customInstructions:C$}:{},signal:this.controller.signal});d1=u.usage;let H0=u$(u),I1;if(u.summary.length>0){let v0=u.keptMessages[0],i1=null;if(v0){let hZ=this.tree.entryIdForMessage(v0);if(!hZ)throw Error("Compaction tail could not be mapped to the session");i1=hZ}let n1=H0[0];I1=this.tree.append({type:"compaction",summary:u.summary,...u.carryover!==void 0?{carryover:u.carryover}:{},firstKeptEntryId:i1,...n1?{timestamp:n1.timestamp}:{},trigger:Y1,contextTokensBefore:t.tokens,contextTokensAfter:l(H0),model:`${B.provider}/${B.id}`,compactorModel:`${I0.model.provider}/${I0.model.id}`,windowNumber:this.tree.activePath().filter((hZ)=>hZ.type==="compaction").length+1,strategy:"summary-tail",keptTokens:l(u.keptMessages),usage:u.usage}).id}return z=void 0,this.lastContextUsage=void 0,j(u.usage,H0),A0=!0,Q({type:"compaction_end",layer:l0,tokensFreed:u.tokensFreed,trigger:Y1,status:u.summary.length>0?"completed":"noop",contextTokensBefore:t.tokens,contextTokensAfter:N(H0).tokens,keptTokens:l(u.keptMessages),...I1?{summaryEntryId:I1}:{}}),this.reactiveRecoveryPending=!1,{messages:H0,stop:A!==void 0}}catch(u){let H0=d1??(u instanceof h0?u.usage:void 0);if(H0&&!A0)this.tree.append({type:"compaction-attempt",status:this.controller.signal.aborted?"cancelled":"failed",trigger:Y1,model:`${B.provider}/${B.id}`,compactorModel:`${I0.model.provider}/${I0.model.id}`,timestamp:Date.now(),usage:H0}),j(H0,h);return Q({type:"compaction_end",layer:l0,tokensFreed:0,trigger:Y1,status:this.controller.signal.aborted?"cancelled":"failed",contextTokensBefore:t.tokens,contextTokensAfter:t.tokens,errorMessage:u instanceof Error?u.message:"Compaction failed for an unknown reason"}),this.reactiveRecoveryPending=!1,{messages:h,stop:A!==void 0}}},...Y?{transformContext:(w)=>Y.runContextHooks(w)}:{},...Y?{afterToolCall:async(w)=>{let _=await Y.runToolResultHooks({toolName:w.toolCall.name,toolCallId:w.toolCall.id,result:w.result,isError:w.isError});if(!_)return;return{...w.result,..._.content?{content:_.content}:{},..._.isError!==void 0?{isError:_.isError}:{}}}}:{},recoverFromError:(w)=>{if(this.recoveryAttempted||!v$(w))return!1;return this.recoveryAttempted=!0,this.compactRequested=!0,this.reactiveRecoveryPending=!0,Q({type:"compaction_start",layer:3,trigger:"overflow"}),!0},shouldStopAfterTurn:async(w)=>{if(this.recoveryAttempted=!1,j(w.message.usage,w.context.messages,w.requestMessages))return!0;return!1}},C=await(async()=>{try{return await d6([G],q,O,(w)=>{if(Q(w),w.type==="message_end")this.tree.appendMessage(w.message)},this.controller.signal)}finally{await this.finishCheckpoint()}})();await this.store.save(this._sessionId,this.tree);let g=A??(C.reason==="budget"?"maxCostUsd":C.reason),n={text:SH(C.messages),messages:C.messages,usage:this.totals,reason:g,sessionId:this._sessionId};if(!Z?.output)return n;if(X===void 0)throw Error(`Structured output was requested but the model never produced a valid one (run ended: ${g}).`);return{...n,output:X}}providerFor($){return this.options.provider??this.options.extensions?.providers.get($.provider)??x6($.provider)}publishEvent($){if(this.activeEmit){this.activeEmit($);return}this.publishToSubscribers($),this.options.extensions?.emit($)}refreshContextAccounting(){let $=h$(this.model,this.tree.messagesAt(),this.lastContextUsage?.usage,this.lastContextUsage?.estimatedTokensAtUsage);this.lastContextPercent=$.percent,this.lastContextTokens=$.tokens,this.publishEvent({type:"usage_updated",sessionTotals:this.totals,contextTokens:$.tokens,contextPercent:$.percent})}publishToSubscribers($){for(let Z of this.subscribers){let Y=(this.subscriberQueues.get(Z)??Promise.resolve()).then(()=>Z($)).catch(()=>{});this.subscriberQueues.set(Z,Y),Y.finally(()=>{if(this.subscriberQueues.get(Z)===Y&&!this.subscribers.has(Z))this.subscriberQueues.delete(Z)})}}scheduleAutonomousRun(){if(this.running||this.autonomousScheduled||this.stopping||this.followUps.length===0)return;this.autonomousScheduled=!0,queueMicrotask(()=>{if(this.autonomousScheduled=!1,this.running||this.stopping){this.resolveIdleIfDone();return}let $=this.followUps.shift();if(!$||$.role!=="user"){this.resolveIdleIfDone();return}this.execute($.content,void 0,()=>{}).catch(()=>{})})}scheduleManualCompaction(){if(this.running||this.autonomousScheduled||this.stopping||!this.manualCompactionQueued)return;let $=this.queuedManualCompactionFocus;this.manualCompactionQueued=!1,this.queuedManualCompactionFocus=void 0,this.autonomousScheduled=!0,queueMicrotask(()=>{if(this.autonomousScheduled=!1,this.running||this.stopping){this.resolveIdleIfDone();return}this.compactNow($).catch(()=>{})})}resolveIdleIfDone(){if(this.running||this.autonomousScheduled||this.manualCompactionQueued||this.followUps.length>0)return;for(let $ of this.idleWaiters)$();this.idleWaiters.clear()}}import{createHash as _H,randomBytes as V5}from"crypto";import{chmod as j8,mkdir as xH,readFile as kH,rename as fH,stat as vH,unlink as gH,writeFile as hH}from"fs/promises";import{createServer as H7}from"http";import{homedir as uH}from"os";import{dirname as mH,join as V7}from"path";var yH=[{x:0,y:0,w:5,h:1},{x:0,y:1,w:1,h:4},{x:2,y:1,w:1,h:4},{x:4,y:1,w:1,h:4},{x:6,y:0,w:1,h:5},{x:9,y:0,w:1,h:5},{x:7,y:4,w:2,h:1}];function O8($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function bH(){return`<svg class="mark" viewBox="0 0 10 5" role="img" aria-label="mu">${yH.map((Z)=>`<rect x="${Z.x}" y="${Z.y}" width="${Z.w}" height="${Z.h}"/>`).join("")}</svg>`}function M8($){let Z=$.status==="success"?"#fff":"#f87171";return`<!doctype html>
|
|
125
125
|
<html lang="en">
|
|
126
126
|
<head>
|
|
127
127
|
<meta charset="utf-8">
|
|
128
128
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
129
129
|
<meta name="color-scheme" content="dark">
|
|
130
|
-
<title>mu \u2014 ${
|
|
130
|
+
<title>mu \u2014 ${O8($.heading.toLowerCase())}</title>
|
|
131
131
|
<style>
|
|
132
132
|
:root { color-scheme: dark; }
|
|
133
133
|
html, body { height: 100%; }
|
|
@@ -179,97 +179,97 @@ Prefer a small number of well-chosen tool calls over many exploratory ones. When
|
|
|
179
179
|
</head>
|
|
180
180
|
<body>
|
|
181
181
|
<main>
|
|
182
|
-
${
|
|
183
|
-
<h1>${
|
|
184
|
-
<p>${
|
|
182
|
+
${bH()}
|
|
183
|
+
<h1>${O8($.heading)}</h1>
|
|
184
|
+
<p>${O8($.detail)}</p>
|
|
185
185
|
</main>
|
|
186
186
|
</body>
|
|
187
187
|
</html>
|
|
188
|
-
`}function
|
|
189
|
-
`,{encoding:"utf8",mode:384,flag:"wx"}),await eB(Y,Q),process.platform!=="win32")await Y8(Q,384)}catch(G){throw await ZH(Y).catch(()=>{}),G}}async function FH($,Z,Q={}){let W=$.trim(),Y=Z.trim();if(!W)throw Error("Provider is required");if(!Y)throw Error("API key cannot be empty");let G=await n0(Q);G.providers[W]={type:"apiKey",apiKey:Y},G.activeProvider=W,await c$(G,Q)}async function DH($,Z={}){let Q=$.trim();if(!Q)throw Error("Provider is required");let W=await n0(Z);if(!W.providers[Q])return!1;if(delete W.providers[Q],W.activeProvider===Q){let Y=Object.keys(W.providers)[0];if(Y)W.activeProvider=Y;else delete W.activeProvider}return await c$(W,Z),!0}async function LH($={}){return Object.keys((await n0($)).providers)}async function UH($={}){let Z=await n0($);return Z.activeProvider&&Z.providers[Z.activeProvider]?Z.activeProvider:Object.keys(Z.providers)[0]}async function Q5($,Z,Q){let W=await n0(Q);W.providers[$]=Z,W.activeProvider=$,await c$(W,Q)}function lW($){let Z=$.split(".")[1];if(!Z)return;try{let Q=JSON.parse(Buffer.from(Z,"base64url").toString("utf8"));return p$(Q)?Q:void 0}catch{return}}function kW($){let Z=lW($)?.[XH]?.chatgpt_account_id;return typeof Z==="string"&&Z.length>0?Z:void 0}function qH($){let Z=lW($)?.exp;return typeof Z==="number"&&Number.isFinite(Z)?Z*1000:void 0}function AH($,Z,Q){let W=Q.trim()?`: ${Q.trim().slice(0,1000)}`:"";return Error(`OpenAI token ${$} failed (${Z.status})${W}`)}async function pW($,Z){if(!$.ok)throw AH(Z,$,await $.text().catch(()=>""));let Q=await $.json();if(!p$(Q))throw Error(`OpenAI token ${Z} returned invalid JSON`);return Q}function cW($,Z,Q){let W=typeof $.access_token==="string"?$.access_token:Q?.accessToken,Y=typeof $.refresh_token==="string"?$.refresh_token:Q?.refreshToken,G=typeof $.id_token==="string"?$.id_token:Q?.idToken;if(!W||!Y)throw Error("OpenAI token response is missing access or refresh token");let X=kW(W)??(G?kW(G):void 0)??Q?.accountId;if(!X)throw Error("OpenAI token did not include a ChatGPT account");if(Q?.accountId&&X!==Q.accountId)throw Error("Refusing to rotate OpenAI credentials across ChatGPT accounts");let J=typeof $.expires_in==="number"&&Number.isFinite($.expires_in)?$.expires_in*1000:void 0,K=qH(W)??(J!==void 0?Z+J:Z+3600000);return{type:"oauth",accessToken:W,refreshToken:Y,...G?{idToken:G}:{},expiresAt:K,accountId:X}}async function NH($,Z){let Q=(Z.openAiIssuer??mW).replace(/\/+$/,""),W=await(Z.fetch??fetch)(`${Q}/oauth/token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({client_id:Z.openAiClientId??X8,grant_type:"refresh_token",refresh_token:$.refreshToken}),signal:AbortSignal.timeout(R1)});return cW(await pW(W,"refresh"),(Z.now??Date.now)(),$)}function xW($){return{type:"oauth",accessToken:$.accessToken,...$.accountId?{accountId:$.accountId}:{},...$.baseUrl?{baseUrl:$.baseUrl}:{},...$.availableModelIds?{availableModelIds:$.availableModelIds}:{}}}function fW($,Z,Q){return Z.expiresAt>Q+KH&&($!==J8||Z.availableModelIds!==void 0)}async function K1($,Z){let Q=await $.text(),W;try{W=JSON.parse(Q)}catch{throw Error(`${Z} returned invalid JSON (${$.status})`)}if(!$.ok){let Y=typeof W==="object"&&W!==null?W:{},G=Y.error_description??Y.message??Y.error;throw Error(`${Z} failed (${$.status})${typeof G==="string"?`: ${G}`:""}`)}if(typeof W!=="object"||W===null||Array.isArray(W))throw Error(`${Z} returned invalid JSON`);return W}function vW($,Z,Q=60000){let W=typeof $.access_token==="string"?$.access_token:Z.accessToken,Y=typeof $.refresh_token==="string"?$.refresh_token:Z.refreshToken,G=typeof $.expires_in==="number"&&Number.isFinite($.expires_in)?$.expires_in:3600;if(!W||!Y)throw Error("OAuth response is missing tokens");return{...Z,accessToken:W,refreshToken:Y,expiresAt:Date.now()+G*1000-Q}}function dW($){let Z=$.match(/(?:^|;)proxy-ep=([^;]+)/)?.[1];return Z?`https://${Z.replace(/^proxy\./,"api.")}`:"https://api.individual.githubcopilot.com"}function OH($){if(typeof $!=="object"||$===null||!Array.isArray($.data))throw Error("GitHub Copilot models response is invalid");return $.data.filter((Z)=>typeof Z==="object"&&Z!==null&&!Array.isArray(Z))}function MH($){let Z=typeof $.policy==="object"&&$.policy!==null?$.policy:void 0,Q=typeof $.capabilities==="object"&&$.capabilities!==null?$.capabilities:void 0,W=typeof Q?.supports==="object"&&Q.supports!==null?Q.supports:void 0;return $.model_picker_enabled===!0&&Z?.state!=="disabled"&&W?.tool_calls!==!1}async function iW($,Z,Q,W){let Y=await Q(`${Z.replace(/\/+$/,"")}/models`,{headers:{accept:"application/json",authorization:`Bearer ${$}`,...Z5,"x-github-api-version":JH},...W?{signal:W}:{}});return OH(await K1(Y,"GitHub Copilot model discovery"))}async function nW($,Z,Q,W){return(await iW($,Z,Q,W)).filter(MH).map((Y)=>Y.id).filter((Y)=>typeof Y==="string"&&Y.length>0)}async function aW($,Z,Q,W){let Y=await iW($,Z,Q,W);return await Promise.all(Y.map(async(G)=>{if(typeof G.id!=="string"||G.id.length===0)return;await Q(`${Z.replace(/\/+$/,"")}/models/${encodeURIComponent(G.id)}/policy`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${$}`,...Z5,"openai-intent":"chat-policy","x-interaction-type":"chat-policy"},body:JSON.stringify({state:"enabled"}),...W?{signal:W}:{}}).catch(()=>{return})})),nW($,Z,Q,W)}async function jH($,Z,Q){let W=Q.fetch??fetch;if($==="kimi-coding"){let Y=await W("https://auth.kimi.com/api/oauth/token",{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:"17e5f671-d194-4dfb-9706-5516cb48c098",grant_type:"refresh_token",refresh_token:Z.refreshToken}),signal:AbortSignal.timeout(R1)});return vW(await K1(Y,"Kimi Code token refresh"),Z)}if($==="xai"){let Y=await W("https://auth.x.ai/oauth2/token",{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:"b1a00492-073a-47ea-816f-4c329264a828",grant_type:"refresh_token",refresh_token:Z.refreshToken}),signal:AbortSignal.timeout(R1)});return vW(await K1(Y,"xAI token refresh"),Z,300000)}if($===J8){let Y=await W("https://api.github.com/copilot_internal/v2/token",{headers:{accept:"application/json",authorization:`Bearer ${Z.refreshToken}`,...Z5},signal:AbortSignal.timeout(R1)}),G=await K1(Y,"GitHub Copilot token refresh");if(typeof G.token!=="string"||typeof G.expires_at!=="number")throw Error("GitHub Copilot token refresh returned invalid credentials");let X=G.token,J=dW(X),K=AbortSignal.timeout(R1),B=Z.availableModelIds?await nW(X,J,W,K):await aW(X,J,W,K);return{...Z,accessToken:X,expiresAt:G.expires_at*1000-300000,baseUrl:J,availableModelIds:B}}if($===J1){if(!Z.accountId)throw Error("OpenAI login is missing its ChatGPT account");return NH(Z,Q)}throw Error(`OAuth refresh is not implemented for provider "${$}"`)}function PH($={}){let Z=new Map;return async(Q)=>{let Y=(await n0($)).providers[Q];if(!Y)return;if(Y.type==="apiKey")return{type:"apiKey",apiKey:Y.apiKey};let G=($.now??Date.now)();if(fW(Q,Y,G))return xW(Y);let X=Z.get(Q);if(X)return X;let J=(async()=>{let K=await n0($),B=K.providers[Q];if(!B||B.type!=="oauth")throw Error(`${Q} login is no longer available`);let z=($.now??Date.now)(),V=fW(Q,B,z)?B:await jH(Q,B,$);if(V!==B)K.providers[Q]=V,await c$(K,$);return xW(V)})().finally(()=>{Z.delete(Q)});return Z.set(Q,J),J}}function rW(){let $=$5(64).toString("base64url");return{verifier:$,challenge:tB("sha256").update($).digest("base64url")}}function tW($,Z){return new Promise((Q,W)=>{let Y=(X)=>{$.off("listening",G),W(X)},G=()=>{$.off("error",Y);let X=$.address();if(!X||typeof X==="string"){W(Error("Could not determine OAuth callback port"));return}Q(X.port)};$.once("error",Y),$.once("listening",G),$.listen(Z,"127.0.0.1")})}async function wH($,Z,Q){if(Q.aborted)throw Error("OpenAI login cancelled");let W=Z===void 0?HH:[Z],Y;for(let G of W){let X=()=>{},J=()=>{},K=new Promise((V,F)=>{X=V,J=F}),B=!1,z=hW((V,F)=>{let D=new URL(V.url??"/","http://localhost");if(F.setHeader("content-type","text/html; charset=utf-8"),D.pathname!=="/auth/callback"){F.statusCode=404,F.end(E1(sZ,"That page does not exist."));return}if(D.searchParams.get("state")!==$){F.statusCode=400,F.end(E1(sZ,"State mismatch. Return to mu and try again."));return}let L=D.searchParams.get("error"),U=D.searchParams.get("code");if(L||!U){if(F.statusCode=400,F.end(E1(sZ,"Return to mu and try again.")),!B)B=!0,J(Error(`OpenAI login failed: ${L??"missing authorization code"}`));return}if(F.end(oZ(sZ)),!B)B=!0,X(U)});try{let V=await tW(z,G),F=()=>{if(!B)B=!0,J(Error("OpenAI login cancelled"));z.close()};if(Q.addEventListener("abort",F,{once:!0}),Q.aborted)F();return{redirectUri:`http://localhost:${V}/auth/callback`,callback:K.finally(()=>Q.removeEventListener("abort",F)),close:()=>z.close()}}catch(V){Y=V,z.close()}}throw Error(`Could not start OpenAI login callback server: ${Y instanceof Error?Y.message:String(Y)}`)}async function TH($={}){let Z=new AbortController,Q=()=>Z.abort();if($.signal?.addEventListener("abort",Q,{once:!0}),$.signal?.aborted)Z.abort();let W=setTimeout(Q,$.timeoutMs??BH);W.unref?.();let Y=$5(32).toString("base64url"),G=rW(),X=($.openAiIssuer??mW).replace(/\/+$/,""),J;try{J=$.callbackServer?await $.callbackServer(Y,Z.signal):await wH(Y,$.port,Z.signal);let K=new URL(`${X}/oauth/authorize`);K.search=new URLSearchParams({response_type:"code",client_id:$.openAiClientId??X8,redirect_uri:J.redirectUri,scope:GH,code_challenge:G.challenge,code_challenge_method:"S256",id_token_add_organizations:"true",codex_cli_simplified_flow:"true",state:Y,originator:"mu"}).toString(),await $.onAuthUrl?.(K.toString());let B=await J.callback,z=await($.fetch??fetch)(`${X}/oauth/token`,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",client_id:$.openAiClientId??X8,code:B,code_verifier:G.verifier,redirect_uri:J.redirectUri}),signal:Z.signal}),V=cW(await pW(z,"exchange"),($.now??Date.now)()),F=await n0($);return F.providers[J1]=V,F.activeProvider=J1,await c$(F,$),{provider:J1,accountId:V.accountId}}finally{clearTimeout(W),$.signal?.removeEventListener("abort",Q),J?.close()}}function $0($,Z,Q){let W=$[Z];if(typeof W!=="string"||W.length===0)throw Error(`${Q} response is missing ${Z}`);return W}function eZ($,Z){let Q;try{Q=new URL($)}catch{throw Error(`${Z} returned an invalid authorization URL`)}if(Q.protocol!=="https:"&&Q.protocol!=="http:")throw Error(`${Z} returned an unsafe authorization URL`);return Q.toString()}function gW($,Z){let Q=eZ($,Z);if(!Q.startsWith("https:"))throw Error(`${Z} returned an unsafe authorization URL`);return Q}function i0($,Z,Q){let W=$[Z];return typeof W==="number"&&Number.isFinite(W)&&W>0?W:Q}async function IH($,Z){if(Z?.aborted)throw Error("Login cancelled");await new Promise((Q,W)=>{let G=setTimeout(()=>{Z?.removeEventListener("abort",X),Q()},$),X=()=>{clearTimeout(G),Z?.removeEventListener("abort",X),W(Error("Login cancelled"))};if(Z?.addEventListener("abort",X,{once:!0}),Z?.aborted)X()})}async function B8($){let Z=Date.now()+$.expiresInSeconds*1000,Q=Math.max(0.05,$.intervalSeconds);while(Date.now()<Z){await IH(Q*1000,$.signal);let W=await $.fetch($.url,{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams($.fields),...$.signal?{signal:$.signal}:{}}),Y=await K1(W.status>=400&&W.status<500?new Response(await W.text(),{status:200,headers:W.headers}):W,`${$.provider} device token request`);if(W.ok&&typeof Y.access_token==="string")return Y;if(Y.error==="authorization_pending")continue;if(Y.error==="slow_down"){Q=i0(Y,"interval",Q+5);continue}throw Error(`${$.provider} login failed${typeof Y.error_description==="string"?`: ${Y.error_description}`:typeof Y.error==="string"?`: ${Y.error}`:""}`)}throw Error(`${$.provider} login timed out`)}async function H8($,Z,Q,W){let Y=await($.fetch??fetch)(Q,{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams(W),...$.signal?{signal:$.signal}:{}});return K1(Y,`${Z} device authorization`)}async function EH($={}){let Q=$.fetch??fetch,W=await H8($,"Kimi Code","https://auth.kimi.com/api/oauth/device_authorization",{client_id:"17e5f671-d194-4dfb-9706-5516cb48c098"}),Y=typeof W.verification_uri_complete==="string"?eZ(W.verification_uri_complete,"Kimi Code"):eZ($0(W,"verification_uri","Kimi Code"),"Kimi Code"),G=$0(W,"user_code","Kimi Code");await $.onDeviceCode?.(Y,G),await $.onAuthUrl?.(Y);let X=await B8({fetch:Q,url:"https://auth.kimi.com/api/oauth/token",fields:{client_id:"17e5f671-d194-4dfb-9706-5516cb48c098",device_code:$0(W,"device_code","Kimi Code"),grant_type:"urn:ietf:params:oauth:grant-type:device_code"},intervalSeconds:i0(W,"interval",5),expiresInSeconds:i0(W,"expires_in",900),...$.signal?{signal:$.signal}:{},provider:"Kimi Code"}),J=i0(X,"expires_in",3600);return await Q5("kimi-coding",{type:"oauth",accessToken:$0(X,"access_token","Kimi Code"),refreshToken:$0(X,"refresh_token","Kimi Code"),expiresAt:($.now??Date.now)()+J*1000},$),{provider:"kimi-coding"}}async function RH($={}){let Q=$.fetch??fetch,W=await H8($,"xAI","https://auth.x.ai/oauth2/device/code",{client_id:"b1a00492-073a-47ea-816f-4c329264a828",scope:"openid profile email offline_access grok-cli:access api:access",referrer:"mu"}),Y=typeof W.verification_uri_complete==="string"?gW(W.verification_uri_complete,"xAI"):gW($0(W,"verification_uri","xAI"),"xAI"),G=$0(W,"user_code","xAI");await $.onDeviceCode?.(Y,G),await $.onAuthUrl?.(Y);let X=await B8({fetch:Q,url:"https://auth.x.ai/oauth2/token",fields:{client_id:"b1a00492-073a-47ea-816f-4c329264a828",device_code:$0(W,"device_code","xAI"),grant_type:"urn:ietf:params:oauth:grant-type:device_code"},intervalSeconds:i0(W,"interval",5),expiresInSeconds:i0(W,"expires_in",900),...$.signal?{signal:$.signal}:{},provider:"xAI"}),J=i0(X,"expires_in",3600);return await Q5("xai",{type:"oauth",accessToken:$0(X,"access_token","xAI"),refreshToken:$0(X,"refresh_token","xAI"),expiresAt:($.now??Date.now)()+J*1000-300000},$),{provider:"xai"}}async function CH($={}){let Z=Buffer.from("SXYxLmI1MDdhMDhjODdlY2ZlOTg=","base64").toString("utf8"),Q=$.fetch??fetch,W=await H8($,"GitHub Copilot","https://github.com/login/device/code",{client_id:Z,scope:"read:user"}),Y=eZ($0(W,"verification_uri","GitHub Copilot"),"GitHub Copilot"),G=$0(W,"user_code","GitHub Copilot");await $.onDeviceCode?.(Y,G),await $.onAuthUrl?.(Y);let X=await B8({fetch:Q,url:"https://github.com/login/oauth/access_token",fields:{client_id:Z,device_code:$0(W,"device_code","GitHub Copilot"),grant_type:"urn:ietf:params:oauth:grant-type:device_code"},intervalSeconds:i0(W,"interval",5),expiresInSeconds:i0(W,"expires_in",900),...$.signal?{signal:$.signal}:{},provider:"GitHub Copilot"}),J=$0(X,"access_token","GitHub Copilot"),K=await Q("https://api.github.com/copilot_internal/v2/token",{headers:{accept:"application/json",authorization:`Bearer ${J}`,...Z5},...$.signal?{signal:$.signal}:{}}),B=await K1(K,"GitHub Copilot token exchange"),z=$0(B,"token","GitHub Copilot"),V=B.expires_at;if(typeof V!=="number"||!Number.isFinite(V))throw Error("GitHub Copilot response is missing expires_at");let F=dW(z),D=$.signal?AbortSignal.any([$.signal,AbortSignal.timeout(R1)]):AbortSignal.timeout(R1),L=await aW(z,F,Q,D);return await Q5(J8,{type:"oauth",accessToken:z,refreshToken:J,expiresAt:V*1000-300000,baseUrl:F,availableModelIds:L},$),{provider:"github-copilot"}}async function SH($,Z){let Q=`/oauth/callback/${$5(18).toString("base64url")}`,W=()=>{},Y=()=>{},G=new Promise((z,V)=>{W=z,Y=V}),X=!1,J=hW((z,V)=>{let F=new URL(z.url??"/","http://127.0.0.1");if(V.setHeader("content-type","text/html; charset=utf-8"),F.pathname!==Q){V.statusCode=404,V.end(E1($,"That page does not exist."));return}let D=F.searchParams.get("error"),L=F.searchParams.get("code");if(D||!L){if(V.statusCode=400,V.end(E1($,"Authorization was not completed.")),!X)X=!0,Y(Error(`${$} login failed: ${D??"missing authorization code"}`));return}if(V.end(oZ($)),!X)X=!0,W(L)});await tW(J,0);let K=J.address();if(!K||typeof K==="string")throw J.close(),Error(`Could not start the ${$} callback server`);let B=()=>{if(!X)X=!0,Y(Error(`${$} login cancelled`));J.close()};if(Z?.addEventListener("abort",B,{once:!0}),Z?.aborted)B();return{callbackUrl:`http://127.0.0.1:${K.port}${Q}`,code:G.finally(()=>Z?.removeEventListener("abort",B)),close:()=>J.close()}}async function yH($={}){let Z=rW(),Q=$.callbackServer?await $.callbackServer("OpenRouter",$.signal):await SH("OpenRouter",$.signal);try{let W=new URL("https://openrouter.ai/auth");W.search=new URLSearchParams({callback_url:Q.callbackUrl,code_challenge:Z.challenge,code_challenge_method:"S256"}).toString(),await $.onAuthUrl?.(W.toString());let Y=await Q.code,G=await($.fetch??fetch)("https://openrouter.ai/api/v1/auth/keys",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({code:Y,code_verifier:Z.verifier,code_challenge_method:"S256"}),...$.signal?{signal:$.signal}:{}}),X=await K1(G,"OpenRouter key exchange");return await Q5("openrouter",{type:"oauth",accessToken:$0(X,"key","OpenRouter"),refreshToken:"",expiresAt:Number.MAX_SAFE_INTEGER},$),{provider:"openrouter"}}finally{Q.close()}}function bH($){let Z=$.inputTokens+$.outputTokens+$.cacheReadTokens+$.cacheWriteTokens,Q=(W)=>Math.max(0,Math.trunc(W)).toLocaleString("en-US");return["Session usage",` Input tokens: ${Q($.inputTokens)}`,` Output tokens: ${Q($.outputTokens)}`,` Cache read tokens: ${Q($.cacheReadTokens)}`,` Cache write tokens: ${Q($.cacheWriteTokens)}`,` Total tokens: ${Q(Z)}`,` Cost: $${($.costUsd??0).toFixed(6)}`,` Active context: ${(Math.max(0,$.contextPercent)*100).toFixed(1)}%`].join(`
|
|
190
|
-
`)}function
|
|
191
|
-
`),data:{kind:"fork-points",points:
|
|
192
|
-
${
|
|
193
|
-
`)}`),{handled:!0}}}),Z}import{readdir as
|
|
194
|
-
`),Q=/^---\n([\s\S]*?)\n---\n?/.exec(Z);if(!Q)return{meta:{},body:Z.trim()};let
|
|
195
|
-
`)){let G=
|
|
196
|
-
|
|
197
|
-
${Z.trim()}`;return Y}function Q9($,Z){let{meta:Q,body:W}=W5(Z),Y=typeof Q.description==="string"?Q.description:`Run the ${$} command`,G=typeof Q.model==="string"?Q.model:void 0,X=Q["allowed-tools"],J=Array.isArray(X)?X:typeof X==="string"&&X.length>0?X.split(",").map((K)=>K.trim()):void 0;return{name:$,description:Y,body:W,...G?{model:G}:{},...J?{allowedTools:J}:{}}}async function $9($){let Z;try{Z=await tH($)}catch{return[]}let Q=[];for(let W of Z.filter((Y)=>Y.endsWith(".md")).sort())try{let Y=await oH(D8($,W),"utf8");Q.push(Q9(eH(W,".md"),Y))}catch{}return Q}async function $V($={}){let Z=await $9($.userDir??D8(sH(),".mu","commands")),Q=$.projectDir?await $9(D8($.projectDir,".mu","commands")):[],W=new Map;for(let Y of[...Z,...Q])W.set(Y.name,Y);return[...W.values()]}function ZV($,Z){return{name:$.name,description:$.description,run:async(Q)=>{let W={kind:"markdown-command",prompt:Z9($.body,Q.args),...$.model?{model:$.model}:{},...$.allowedTools?{allowedTools:$.allowedTools}:{}};if(Z)return await Z(W.prompt,{...W.model?{model:W.model}:{},...W.allowedTools?{allowedTools:W.allowedTools}:{}}),{handled:!0};return{handled:!0,data:W}}}}import{readFile as gM}from"fs/promises";import{homedir as hM}from"os";import{dirname as uM,isAbsolute as mM,join as $3,resolve as lM}from"path";import*as QV from"zod/v3";import*as Y5 from"zod/v4-mini";function s1($){return!!$._zod}function M0($,Z){if(s1($))return Y5.safeParse($,Z);return $.safeParse(Z)}function G5($){if(!$)return;let Z;if(s1($))Z=$._zod?.def?.shape;else Z=$.shape;if(!Z)return;if(typeof Z==="function")try{return Z()}catch{return}return Z}function W9($){if(s1($)){let G=$._zod?.def;if(G){if(G.value!==void 0)return G.value;if(Array.isArray(G.values)&&G.values.length>0)return G.values[0]}}let Q=$._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 W=$.value;if(W!==void 0)return W;return}import*as H from"zod/v4";var L8="2025-11-25";var Y9=[L8,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],B1="io.modelcontextprotocol/related-task",J5="2.0",i=H.custom(($)=>$!==null&&(typeof $==="object"||typeof $==="function")),G9=H.union([H.string(),H.number().int()]),X9=H.string(),LI=H.looseObject({ttl:H.number().optional(),pollInterval:H.number().optional()}),WV=H.object({ttl:H.number().optional()}),YV=H.object({taskId:H.string()}),U8=H.looseObject({progressToken:G9.optional(),[B1]:YV.optional()}),V0=H.object({_meta:U8.optional()}),d$=V0.extend({task:WV.optional()}),J9=($)=>d$.safeParse($).success,t=H.object({method:H.string(),params:V0.loose().optional()}),L0=H.object({_meta:U8.optional()}),U0=H.object({method:H.string(),params:L0.loose().optional()}),o=H.looseObject({_meta:U8.optional()}),K5=H.union([H.string(),H.number().int()]),K9=H.object({jsonrpc:H.literal(J5),id:K5,...t.shape}).strict(),q8=($)=>K9.safeParse($).success,B9=H.object({jsonrpc:H.literal(J5),...U0.shape}).strict(),H9=($)=>B9.safeParse($).success,A8=H.object({jsonrpc:H.literal(J5),id:K5,result:o}).strict(),i$=($)=>A8.safeParse($).success;var E;(function($){$[$.ConnectionClosed=-32000]="ConnectionClosed",$[$.RequestTimeout=-32001]="RequestTimeout",$[$.ParseError=-32700]="ParseError",$[$.InvalidRequest=-32600]="InvalidRequest",$[$.MethodNotFound=-32601]="MethodNotFound",$[$.InvalidParams=-32602]="InvalidParams",$[$.InternalError=-32603]="InternalError",$[$.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(E||(E={}));var N8=H.object({jsonrpc:H.literal(J5),id:K5.optional(),error:H.object({code:H.number().int(),message:H.string(),data:H.unknown().optional()})}).strict();var V9=($)=>N8.safeParse($).success;var z9=H.union([K9,B9,A8,N8]),UI=H.union([A8,N8]),C1=o.strict(),GV=L0.extend({requestId:K5.optional(),reason:H.string().optional()}),B5=U0.extend({method:H.literal("notifications/cancelled"),params:GV}),XV=H.object({src:H.string(),mimeType:H.string().optional(),sizes:H.array(H.string()).optional(),theme:H.enum(["light","dark"]).optional()}),n$=H.object({icons:H.array(XV).optional()}),e1=H.object({name:H.string(),title:H.string().optional()}),F9=e1.extend({...e1.shape,...n$.shape,version:H.string(),websiteUrl:H.string().optional(),description:H.string().optional()}),JV=H.intersection(H.object({applyDefaults:H.boolean().optional()}),H.record(H.string(),H.unknown())),KV=H.preprocess(($)=>{if($&&typeof $==="object"&&!Array.isArray($)){if(Object.keys($).length===0)return{form:{}}}return $},H.intersection(H.object({form:JV.optional(),url:i.optional()}),H.record(H.string(),H.unknown()).optional())),BV=H.looseObject({list:i.optional(),cancel:i.optional(),requests:H.looseObject({sampling:H.looseObject({createMessage:i.optional()}).optional(),elicitation:H.looseObject({create:i.optional()}).optional()}).optional()}),HV=H.looseObject({list:i.optional(),cancel:i.optional(),requests:H.looseObject({tools:H.looseObject({call:i.optional()}).optional()}).optional()}),VV=H.object({experimental:H.record(H.string(),i).optional(),sampling:H.object({context:i.optional(),tools:i.optional()}).optional(),elicitation:KV.optional(),roots:H.object({listChanged:H.boolean().optional()}).optional(),tasks:BV.optional(),extensions:H.record(H.string(),i).optional()}),zV=V0.extend({protocolVersion:H.string(),capabilities:VV,clientInfo:F9}),FV=t.extend({method:H.literal("initialize"),params:zV});var DV=H.object({experimental:H.record(H.string(),i).optional(),logging:i.optional(),completions:i.optional(),prompts:H.object({listChanged:H.boolean().optional()}).optional(),resources:H.object({subscribe:H.boolean().optional(),listChanged:H.boolean().optional()}).optional(),tools:H.object({listChanged:H.boolean().optional()}).optional(),tasks:HV.optional(),extensions:H.record(H.string(),i).optional()}),O8=o.extend({protocolVersion:H.string(),capabilities:DV,serverInfo:F9,instructions:H.string().optional()}),LV=U0.extend({method:H.literal("notifications/initialized"),params:L0.optional()});var H5=t.extend({method:H.literal("ping"),params:V0.optional()}),UV=H.object({progress:H.number(),total:H.optional(H.number()),message:H.optional(H.string())}),qV=H.object({...L0.shape,...UV.shape,progressToken:G9}),V5=U0.extend({method:H.literal("notifications/progress"),params:qV}),AV=V0.extend({cursor:X9.optional()}),a$=t.extend({params:AV.optional()}),r$=o.extend({nextCursor:X9.optional()}),NV=H.enum(["working","input_required","completed","failed","cancelled"]),t$=H.object({taskId:H.string(),status:NV,ttl:H.union([H.number(),H.null()]),createdAt:H.string(),lastUpdatedAt:H.string(),pollInterval:H.optional(H.number()),statusMessage:H.optional(H.string())}),S1=o.extend({task:t$}),OV=L0.merge(t$),o$=U0.extend({method:H.literal("notifications/tasks/status"),params:OV}),z5=t.extend({method:H.literal("tasks/get"),params:V0.extend({taskId:H.string()})}),F5=o.merge(t$),D5=t.extend({method:H.literal("tasks/result"),params:V0.extend({taskId:H.string()})}),qI=o.loose(),L5=a$.extend({method:H.literal("tasks/list")}),U5=r$.extend({tasks:H.array(t$)}),q5=t.extend({method:H.literal("tasks/cancel"),params:V0.extend({taskId:H.string()})}),D9=o.merge(t$),L9=H.object({uri:H.string(),mimeType:H.optional(H.string()),_meta:H.record(H.string(),H.unknown()).optional()}),U9=L9.extend({text:H.string()}),M8=H.string().refine(($)=>{try{return atob($),!0}catch{return!1}},{message:"Invalid Base64 string"}),q9=L9.extend({blob:M8}),s$=H.enum(["user","assistant"]),$$=H.object({audience:H.array(s$).optional(),priority:H.number().min(0).max(1).optional(),lastModified:H.iso.datetime({offset:!0}).optional()}),A9=H.object({...e1.shape,...n$.shape,uri:H.string(),description:H.optional(H.string()),mimeType:H.optional(H.string()),size:H.optional(H.number()),annotations:$$.optional(),_meta:H.optional(H.looseObject({}))}),MV=H.object({...e1.shape,...n$.shape,uriTemplate:H.string(),description:H.optional(H.string()),mimeType:H.optional(H.string()),annotations:$$.optional(),_meta:H.optional(H.looseObject({}))}),jV=a$.extend({method:H.literal("resources/list")}),j8=r$.extend({resources:H.array(A9)}),PV=a$.extend({method:H.literal("resources/templates/list")}),P8=r$.extend({resourceTemplates:H.array(MV)}),w8=V0.extend({uri:H.string()}),wV=w8,TV=t.extend({method:H.literal("resources/read"),params:wV}),T8=o.extend({contents:H.array(H.union([U9,q9]))}),I8=U0.extend({method:H.literal("notifications/resources/list_changed"),params:L0.optional()}),IV=w8,EV=t.extend({method:H.literal("resources/subscribe"),params:IV}),RV=w8,CV=t.extend({method:H.literal("resources/unsubscribe"),params:RV}),SV=L0.extend({uri:H.string()}),yV=U0.extend({method:H.literal("notifications/resources/updated"),params:SV}),bV=H.object({name:H.string(),description:H.optional(H.string()),required:H.optional(H.boolean())}),_V=H.object({...e1.shape,...n$.shape,description:H.optional(H.string()),arguments:H.optional(H.array(bV)),_meta:H.optional(H.looseObject({}))}),kV=a$.extend({method:H.literal("prompts/list")}),E8=r$.extend({prompts:H.array(_V)}),xV=V0.extend({name:H.string(),arguments:H.record(H.string(),H.string()).optional()}),fV=t.extend({method:H.literal("prompts/get"),params:xV}),R8=H.object({type:H.literal("text"),text:H.string(),annotations:$$.optional(),_meta:H.record(H.string(),H.unknown()).optional()}),C8=H.object({type:H.literal("image"),data:M8,mimeType:H.string(),annotations:$$.optional(),_meta:H.record(H.string(),H.unknown()).optional()}),S8=H.object({type:H.literal("audio"),data:M8,mimeType:H.string(),annotations:$$.optional(),_meta:H.record(H.string(),H.unknown()).optional()}),vV=H.object({type:H.literal("tool_use"),name:H.string(),id:H.string(),input:H.record(H.string(),H.unknown()),_meta:H.record(H.string(),H.unknown()).optional()}),gV=H.object({type:H.literal("resource"),resource:H.union([U9,q9]),annotations:$$.optional(),_meta:H.record(H.string(),H.unknown()).optional()}),hV=A9.extend({type:H.literal("resource_link")}),y8=H.union([R8,C8,S8,hV,gV]),uV=H.object({role:s$,content:y8}),b8=o.extend({description:H.string().optional(),messages:H.array(uV)}),_8=U0.extend({method:H.literal("notifications/prompts/list_changed"),params:L0.optional()}),mV=H.object({title:H.string().optional(),readOnlyHint:H.boolean().optional(),destructiveHint:H.boolean().optional(),idempotentHint:H.boolean().optional(),openWorldHint:H.boolean().optional()}),lV=H.object({taskSupport:H.enum(["required","optional","forbidden"]).optional()}),N9=H.object({...e1.shape,...n$.shape,description:H.string().optional(),inputSchema:H.object({type:H.literal("object"),properties:H.record(H.string(),i).optional(),required:H.array(H.string()).optional()}).catchall(H.unknown()),outputSchema:H.object({type:H.literal("object"),properties:H.record(H.string(),i).optional(),required:H.array(H.string()).optional()}).catchall(H.unknown()).optional(),annotations:mV.optional(),execution:lV.optional(),_meta:H.record(H.string(),H.unknown()).optional()}),pV=a$.extend({method:H.literal("tools/list")}),k8=r$.extend({tools:H.array(N9)}),Z$=o.extend({content:H.array(y8).default([]),structuredContent:H.record(H.string(),H.unknown()).optional(),isError:H.boolean().optional()}),AI=Z$.or(o.extend({toolResult:H.unknown()})),cV=d$.extend({name:H.string(),arguments:H.record(H.string(),H.unknown()).optional()}),dV=t.extend({method:H.literal("tools/call"),params:cV}),x8=U0.extend({method:H.literal("notifications/tools/list_changed"),params:L0.optional()}),O9=H.object({autoRefresh:H.boolean().default(!0),debounceMs:H.number().int().nonnegative().default(300)}),M9=H.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),iV=V0.extend({level:M9}),nV=t.extend({method:H.literal("logging/setLevel"),params:iV}),aV=L0.extend({level:M9,logger:H.string().optional(),data:H.unknown()}),rV=U0.extend({method:H.literal("notifications/message"),params:aV}),tV=H.object({name:H.string().optional()}),oV=H.object({hints:H.array(tV).optional(),costPriority:H.number().min(0).max(1).optional(),speedPriority:H.number().min(0).max(1).optional(),intelligencePriority:H.number().min(0).max(1).optional()}),sV=H.object({mode:H.enum(["auto","required","none"]).optional()}),eV=H.object({type:H.literal("tool_result"),toolUseId:H.string().describe("The unique identifier for the corresponding tool call."),content:H.array(y8).default([]),structuredContent:H.object({}).loose().optional(),isError:H.boolean().optional(),_meta:H.record(H.string(),H.unknown()).optional()}),$z=H.discriminatedUnion("type",[R8,C8,S8]),X5=H.discriminatedUnion("type",[R8,C8,S8,vV,eV]),Zz=H.object({role:s$,content:H.union([X5,H.array(X5)]),_meta:H.record(H.string(),H.unknown()).optional()}),Qz=d$.extend({messages:H.array(Zz),modelPreferences:oV.optional(),systemPrompt:H.string().optional(),includeContext:H.enum(["none","thisServer","allServers"]).optional(),temperature:H.number().optional(),maxTokens:H.number().int(),stopSequences:H.array(H.string()).optional(),metadata:i.optional(),tools:H.array(N9).optional(),toolChoice:sV.optional()}),f8=t.extend({method:H.literal("sampling/createMessage"),params:Qz}),v8=o.extend({model:H.string(),stopReason:H.optional(H.enum(["endTurn","stopSequence","maxTokens"]).or(H.string())),role:s$,content:$z}),g8=o.extend({model:H.string(),stopReason:H.optional(H.enum(["endTurn","stopSequence","maxTokens","toolUse"]).or(H.string())),role:s$,content:H.union([X5,H.array(X5)])}),Wz=H.object({type:H.literal("boolean"),title:H.string().optional(),description:H.string().optional(),default:H.boolean().optional()}),Yz=H.object({type:H.literal("string"),title:H.string().optional(),description:H.string().optional(),minLength:H.number().optional(),maxLength:H.number().optional(),format:H.enum(["email","uri","date","date-time"]).optional(),default:H.string().optional()}),Gz=H.object({type:H.enum(["number","integer"]),title:H.string().optional(),description:H.string().optional(),minimum:H.number().optional(),maximum:H.number().optional(),default:H.number().optional()}),Xz=H.object({type:H.literal("string"),title:H.string().optional(),description:H.string().optional(),enum:H.array(H.string()),default:H.string().optional()}),Jz=H.object({type:H.literal("string"),title:H.string().optional(),description:H.string().optional(),oneOf:H.array(H.object({const:H.string(),title:H.string()})),default:H.string().optional()}),Kz=H.object({type:H.literal("string"),title:H.string().optional(),description:H.string().optional(),enum:H.array(H.string()),enumNames:H.array(H.string()).optional(),default:H.string().optional()}),Bz=H.union([Xz,Jz]),Hz=H.object({type:H.literal("array"),title:H.string().optional(),description:H.string().optional(),minItems:H.number().optional(),maxItems:H.number().optional(),items:H.object({type:H.literal("string"),enum:H.array(H.string())}),default:H.array(H.string()).optional()}),Vz=H.object({type:H.literal("array"),title:H.string().optional(),description:H.string().optional(),minItems:H.number().optional(),maxItems:H.number().optional(),items:H.object({anyOf:H.array(H.object({const:H.string(),title:H.string()}))}),default:H.array(H.string()).optional()}),zz=H.union([Hz,Vz]),Fz=H.union([Kz,Bz,zz]),Dz=H.union([Fz,Wz,Yz,Gz]),Lz=d$.extend({mode:H.literal("form").optional(),message:H.string(),requestedSchema:H.object({type:H.literal("object"),properties:H.record(H.string(),Dz),required:H.array(H.string()).optional()})}),Uz=d$.extend({mode:H.literal("url"),message:H.string(),elicitationId:H.string(),url:H.string().url()}),qz=H.union([Lz,Uz]),h8=t.extend({method:H.literal("elicitation/create"),params:qz}),Az=L0.extend({elicitationId:H.string()}),Nz=U0.extend({method:H.literal("notifications/elicitation/complete"),params:Az}),u8=o.extend({action:H.enum(["accept","decline","cancel"]),content:H.preprocess(($)=>$===null?void 0:$,H.record(H.string(),H.union([H.string(),H.number(),H.boolean(),H.array(H.string())])).optional())}),Oz=H.object({type:H.literal("ref/resource"),uri:H.string()});var Mz=H.object({type:H.literal("ref/prompt"),name:H.string()}),jz=V0.extend({ref:H.union([Mz,Oz]),argument:H.object({name:H.string(),value:H.string()}),context:H.object({arguments:H.record(H.string(),H.string()).optional()}).optional()}),Pz=t.extend({method:H.literal("completion/complete"),params:jz});var m8=o.extend({completion:H.looseObject({values:H.array(H.string()).max(100),total:H.optional(H.number().int()),hasMore:H.optional(H.boolean())})}),wz=H.object({uri:H.string().startsWith("file://"),name:H.string().optional(),_meta:H.record(H.string(),H.unknown()).optional()}),Tz=t.extend({method:H.literal("roots/list"),params:V0.optional()}),Iz=o.extend({roots:H.array(wz)}),Ez=U0.extend({method:H.literal("notifications/roots/list_changed"),params:L0.optional()}),NI=H.union([H5,FV,Pz,nV,fV,kV,jV,PV,TV,EV,CV,dV,pV,z5,D5,L5,q5]),OI=H.union([B5,V5,LV,Ez,o$]),MI=H.union([C1,v8,g8,u8,Iz,F5,U5,S1]),jI=H.union([H5,f8,h8,Tz,z5,D5,L5,q5]),PI=H.union([B5,V5,rV,yV,I8,x8,_8,o$,Nz]),wI=H.union([C1,O8,m8,b8,E8,j8,P8,T8,Z$,k8,F5,U5,S1]);class I extends Error{constructor($,Z,Q){super(`MCP error ${$}: ${Z}`);this.code=$,this.data=Q,this.name="McpError"}static fromError($,Z,Q){if($===E.UrlElicitationRequired&&Q){let W=Q;if(W.elicitations)return new j9(W.elicitations,Z)}return new I($,Z,Q)}}class j9 extends I{constructor($,Z=`URL elicitation${$.length>1?"s":""} required`){super(E.UrlElicitationRequired,Z,{elicitations:$})}get elicitations(){return this.data?.elicitations??[]}}function H1($){return $==="completed"||$==="failed"||$==="cancelled"}import*as kz from"zod/v4-mini";var Rz=Symbol("Let zodToJsonSchema decide on which parser to use");import{ZodFirstPartyTypeKind as wR}from"zod/v3";import{ZodFirstPartyTypeKind as fI}from"zod/v3";import{ZodFirstPartyTypeKind as KE}from"zod/v3";var GE=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function l8($){let Q=G5($)?.method;if(!Q)throw Error("Schema is missing a method literal");let W=W9(Q);if(typeof W!=="string")throw Error("Schema method literal must be a string");return W}function p8($,Z){let Q=M0($,Z);if(!Q.success)throw Q.error;return Q.data}var xz=60000;class c8{constructor($){if(this._options=$,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(B5,(Z)=>{this._oncancel(Z)}),this.setNotificationHandler(V5,(Z)=>{this._onprogress(Z)}),this.setRequestHandler(H5,(Z)=>({})),this._taskStore=$?.taskStore,this._taskMessageQueue=$?.taskMessageQueue,this._taskStore)this.setRequestHandler(z5,async(Z,Q)=>{let W=await this._taskStore.getTask(Z.params.taskId,Q.sessionId);if(!W)throw new I(E.InvalidParams,"Failed to retrieve task: Task not found");return{...W}}),this.setRequestHandler(D5,async(Z,Q)=>{let W=async()=>{let Y=Z.params.taskId;if(this._taskMessageQueue){let X;while(X=await this._taskMessageQueue.dequeue(Y,Q.sessionId)){if(X.type==="response"||X.type==="error"){let J=X.message,K=J.id,B=this._requestResolvers.get(K);if(B)if(this._requestResolvers.delete(K),X.type==="response")B(J);else{let z=J,V=new I(z.error.code,z.error.message,z.error.data);B(V)}else{let z=X.type==="response"?"Response":"Error";this._onerror(Error(`${z} handler missing for request ${K}`))}continue}await this._transport?.send(X.message,{relatedRequestId:Q.requestId})}}let G=await this._taskStore.getTask(Y,Q.sessionId);if(!G)throw new I(E.InvalidParams,`Task not found: ${Y}`);if(!H1(G.status))return await this._waitForTaskUpdate(Y,Q.signal),await W();if(H1(G.status)){let X=await this._taskStore.getTaskResult(Y,Q.sessionId);return this._clearTaskQueue(Y),{...X,_meta:{...X._meta,[B1]:{taskId:Y}}}}return await W()};return await W()}),this.setRequestHandler(L5,async(Z,Q)=>{try{let{tasks:W,nextCursor:Y}=await this._taskStore.listTasks(Z.params?.cursor,Q.sessionId);return{tasks:W,nextCursor:Y,_meta:{}}}catch(W){throw new I(E.InvalidParams,`Failed to list tasks: ${W instanceof Error?W.message:String(W)}`)}}),this.setRequestHandler(q5,async(Z,Q)=>{try{let W=await this._taskStore.getTask(Z.params.taskId,Q.sessionId);if(!W)throw new I(E.InvalidParams,`Task not found: ${Z.params.taskId}`);if(H1(W.status))throw new I(E.InvalidParams,`Cannot cancel task in terminal status: ${W.status}`);await this._taskStore.updateTaskStatus(Z.params.taskId,"cancelled","Client cancelled task execution.",Q.sessionId),this._clearTaskQueue(Z.params.taskId);let Y=await this._taskStore.getTask(Z.params.taskId,Q.sessionId);if(!Y)throw new I(E.InvalidParams,`Task not found after cancellation: ${Z.params.taskId}`);return{_meta:{},...Y}}catch(W){if(W instanceof I)throw W;throw new I(E.InvalidRequest,`Failed to cancel task: ${W instanceof Error?W.message:String(W)}`)}})}async _oncancel($){if(!$.params.requestId)return;this._requestHandlerAbortControllers.get($.params.requestId)?.abort($.params.reason)}_setupTimeout($,Z,Q,W,Y=!1){this._timeoutInfo.set($,{timeoutId:setTimeout(W,Z),startTime:Date.now(),timeout:Z,maxTotalTimeout:Q,resetTimeoutOnProgress:Y,onTimeout:W})}_resetTimeout($){let Z=this._timeoutInfo.get($);if(!Z)return!1;let Q=Date.now()-Z.startTime;if(Z.maxTotalTimeout&&Q>=Z.maxTotalTimeout)throw this._timeoutInfo.delete($),I.fromError(E.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:Z.maxTotalTimeout,totalElapsed:Q});return clearTimeout(Z.timeoutId),Z.timeoutId=setTimeout(Z.onTimeout,Z.timeout),!0}_cleanupTimeout($){let Z=this._timeoutInfo.get($);if(Z)clearTimeout(Z.timeoutId),this._timeoutInfo.delete($)}async connect($){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=$;let Z=this.transport?.onclose;this._transport.onclose=()=>{Z?.(),this._onclose()};let Q=this.transport?.onerror;this._transport.onerror=(Y)=>{Q?.(Y),this._onerror(Y)};let W=this._transport?.onmessage;this._transport.onmessage=(Y,G)=>{if(W?.(Y,G),i$(Y)||V9(Y))this._onresponse(Y);else if(q8(Y))this._onrequest(Y,G);else if(H9(Y))this._onnotification(Y);else this._onerror(Error(`Unknown message type: ${JSON.stringify(Y)}`))},await this._transport.start()}_onclose(){let $=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let Q of this._timeoutInfo.values())clearTimeout(Q.timeoutId);this._timeoutInfo.clear();for(let Q of this._requestHandlerAbortControllers.values())Q.abort();this._requestHandlerAbortControllers.clear();let Z=I.fromError(E.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let Q of $.values())Q(Z)}_onerror($){this.onerror?.($)}_onnotification($){let Z=this._notificationHandlers.get($.method)??this.fallbackNotificationHandler;if(Z===void 0)return;Promise.resolve().then(()=>Z($)).catch((Q)=>this._onerror(Error(`Uncaught error in notification handler: ${Q}`)))}_onrequest($,Z){let Q=this._requestHandlers.get($.method)??this.fallbackRequestHandler,W=this._transport,Y=$.params?._meta?.[B1]?.taskId;if(Q===void 0){let B={jsonrpc:"2.0",id:$.id,error:{code:E.MethodNotFound,message:"Method not found"}};if(Y&&this._taskMessageQueue)this._enqueueTaskMessage(Y,{type:"error",message:B,timestamp:Date.now()},W?.sessionId).catch((z)=>this._onerror(Error(`Failed to enqueue error response: ${z}`)));else W?.send(B).catch((z)=>this._onerror(Error(`Failed to send an error response: ${z}`)));return}let G=new AbortController;this._requestHandlerAbortControllers.set($.id,G);let X=J9($.params)?$.params.task:void 0,J=this._taskStore?this.requestTaskStore($,W?.sessionId):void 0,K={signal:G.signal,sessionId:W?.sessionId,_meta:$.params?._meta,sendNotification:async(B)=>{if(G.signal.aborted)return;let z={relatedRequestId:$.id};if(Y)z.relatedTask={taskId:Y};await this.notification(B,z)},sendRequest:async(B,z,V)=>{if(G.signal.aborted)throw new I(E.ConnectionClosed,"Request was cancelled");let F={...V,relatedRequestId:$.id};if(Y&&!F.relatedTask)F.relatedTask={taskId:Y};let D=F.relatedTask?.taskId??Y;if(D&&J)await J.updateTaskStatus(D,"input_required");return await this.request(B,z,F)},authInfo:Z?.authInfo,requestId:$.id,requestInfo:Z?.requestInfo,taskId:Y,taskStore:J,taskRequestedTtl:X?.ttl,closeSSEStream:Z?.closeSSEStream,closeStandaloneSSEStream:Z?.closeStandaloneSSEStream};Promise.resolve().then(()=>{if(X)this.assertTaskHandlerCapability($.method)}).then(()=>Q($,K)).then(async(B)=>{if(G.signal.aborted)return;let z={result:B,jsonrpc:"2.0",id:$.id};if(Y&&this._taskMessageQueue)await this._enqueueTaskMessage(Y,{type:"response",message:z,timestamp:Date.now()},W?.sessionId);else await W?.send(z)},async(B)=>{if(G.signal.aborted)return;let z={jsonrpc:"2.0",id:$.id,error:{code:Number.isSafeInteger(B.code)?B.code:E.InternalError,message:B.message??"Internal error",...B.data!==void 0&&{data:B.data}}};if(Y&&this._taskMessageQueue)await this._enqueueTaskMessage(Y,{type:"error",message:z,timestamp:Date.now()},W?.sessionId);else await W?.send(z)}).catch((B)=>this._onerror(Error(`Failed to send response: ${B}`))).finally(()=>{if(this._requestHandlerAbortControllers.get($.id)===G)this._requestHandlerAbortControllers.delete($.id)})}_onprogress($){let{progressToken:Z,...Q}=$.params,W=Number(Z),Y=this._progressHandlers.get(W);if(!Y){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify($)}`));return}let G=this._responseHandlers.get(W),X=this._timeoutInfo.get(W);if(X&&G&&X.resetTimeoutOnProgress)try{this._resetTimeout(W)}catch(J){this._responseHandlers.delete(W),this._progressHandlers.delete(W),this._cleanupTimeout(W),G(J);return}Y(Q)}_onresponse($){let Z=Number($.id),Q=this._requestResolvers.get(Z);if(Q){if(this._requestResolvers.delete(Z),i$($))Q($);else{let G=new I($.error.code,$.error.message,$.error.data);Q(G)}return}let W=this._responseHandlers.get(Z);if(W===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify($)}`));return}this._responseHandlers.delete(Z),this._cleanupTimeout(Z);let Y=!1;if(i$($)&&$.result&&typeof $.result==="object"){let G=$.result;if(G.task&&typeof G.task==="object"){let X=G.task;if(typeof X.taskId==="string")Y=!0,this._taskProgressTokens.set(X.taskId,Z)}}if(!Y)this._progressHandlers.delete(Z);if(i$($))W($);else{let G=I.fromError($.error.code,$.error.message,$.error.data);W(G)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream($,Z,Q){let{task:W}=Q??{};if(!W){try{yield{type:"result",result:await this.request($,Z,Q)}}catch(G){yield{type:"error",error:G instanceof I?G:new I(E.InternalError,String(G))}}return}let Y;try{let G=await this.request($,S1,Q);if(G.task)Y=G.task.taskId,yield{type:"taskCreated",task:G.task};else throw new I(E.InternalError,"Task creation did not return a task");while(!0){let X=await this.getTask({taskId:Y},Q);if(yield{type:"taskStatus",task:X},H1(X.status)){if(X.status==="completed")yield{type:"result",result:await this.getTaskResult({taskId:Y},Z,Q)};else if(X.status==="failed")yield{type:"error",error:new I(E.InternalError,`Task ${Y} failed`)};else if(X.status==="cancelled")yield{type:"error",error:new I(E.InternalError,`Task ${Y} was cancelled`)};return}if(X.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:Y},Z,Q)};return}let J=X.pollInterval??this._options?.defaultTaskPollInterval??1000;await new Promise((K)=>setTimeout(K,J)),Q?.signal?.throwIfAborted()}}catch(G){yield{type:"error",error:G instanceof I?G:new I(E.InternalError,String(G))}}}request($,Z,Q){let{relatedRequestId:W,resumptionToken:Y,onresumptiontoken:G,task:X,relatedTask:J}=Q??{};return new Promise((K,B)=>{let z=(A)=>{B(A)};if(!this._transport){z(Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{if(this.assertCapabilityForMethod($.method),X)this.assertTaskCapability($.method)}catch(A){z(A);return}Q?.signal?.throwIfAborted();let V=this._requestMessageId++,F={...$,jsonrpc:"2.0",id:V};if(Q?.onprogress)this._progressHandlers.set(V,Q.onprogress),F.params={...$.params,_meta:{...$.params?._meta||{},progressToken:V}};if(X)F.params={...F.params,task:X};if(J)F.params={...F.params,_meta:{...F.params?._meta||{},[B1]:J}};let D=(A)=>{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(A)}},{relatedRequestId:W,resumptionToken:Y,onresumptiontoken:G}).catch((j)=>this._onerror(Error(`Failed to send cancellation: ${j}`)));let N=A instanceof I?A:new I(E.RequestTimeout,String(A));B(N)};this._responseHandlers.set(V,(A)=>{if(Q?.signal?.aborted)return;if(A instanceof Error)return B(A);try{let N=M0(Z,A.result);if(!N.success)B(N.error);else K(N.data)}catch(N){B(N)}}),Q?.signal?.addEventListener("abort",()=>{D(Q?.signal?.reason)});let L=Q?.timeout??xz,U=()=>D(I.fromError(E.RequestTimeout,"Request timed out",{timeout:L}));this._setupTimeout(V,L,Q?.maxTotalTimeout,U,Q?.resetTimeoutOnProgress??!1);let q=J?.taskId;if(q){let A=(N)=>{let j=this._responseHandlers.get(V);if(j)j(N);else this._onerror(Error(`Response handler missing for side-channeled request ${V}`))};this._requestResolvers.set(V,A),this._enqueueTaskMessage(q,{type:"request",message:F,timestamp:Date.now()}).catch((N)=>{this._cleanupTimeout(V),B(N)})}else this._transport.send(F,{relatedRequestId:W,resumptionToken:Y,onresumptiontoken:G}).catch((A)=>{this._cleanupTimeout(V),B(A)})})}async getTask($,Z){return this.request({method:"tasks/get",params:$},F5,Z)}async getTaskResult($,Z,Q){return this.request({method:"tasks/result",params:$},Z,Q)}async listTasks($,Z){return this.request({method:"tasks/list",params:$},U5,Z)}async cancelTask($,Z){return this.request({method:"tasks/cancel",params:$},D9,Z)}async notification($,Z){if(!this._transport)throw Error("Not connected");this.assertNotificationCapability($.method);let Q=Z?.relatedTask?.taskId;if(Q){let X={...$,jsonrpc:"2.0",params:{...$.params,_meta:{...$.params?._meta||{},[B1]:Z.relatedTask}}};await this._enqueueTaskMessage(Q,{type:"notification",message:X,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes($.method)&&!$.params&&!Z?.relatedRequestId&&!Z?.relatedTask){if(this._pendingDebouncedNotifications.has($.method))return;this._pendingDebouncedNotifications.add($.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete($.method),!this._transport)return;let X={...$,jsonrpc:"2.0"};if(Z?.relatedTask)X={...X,params:{...X.params,_meta:{...X.params?._meta||{},[B1]:Z.relatedTask}}};this._transport?.send(X,Z).catch((J)=>this._onerror(J))});return}let G={...$,jsonrpc:"2.0"};if(Z?.relatedTask)G={...G,params:{...G.params,_meta:{...G.params?._meta||{},[B1]:Z.relatedTask}}};await this._transport.send(G,Z)}setRequestHandler($,Z){let Q=l8($);this.assertRequestHandlerCapability(Q),this._requestHandlers.set(Q,(W,Y)=>{let G=p8($,W);return Promise.resolve(Z(G,Y))})}removeRequestHandler($){this._requestHandlers.delete($)}assertCanSetRequestHandler($){if(this._requestHandlers.has($))throw Error(`A request handler for ${$} already exists, which would be overridden`)}setNotificationHandler($,Z){let Q=l8($);this._notificationHandlers.set(Q,(W)=>{let Y=p8($,W);return Promise.resolve(Z(Y))})}removeNotificationHandler($){this._notificationHandlers.delete($)}_cleanupTaskProgressHandler($){let Z=this._taskProgressTokens.get($);if(Z!==void 0)this._progressHandlers.delete(Z),this._taskProgressTokens.delete($)}async _enqueueTaskMessage($,Z,Q){if(!this._taskStore||!this._taskMessageQueue)throw Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let W=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue($,Z,Q,W)}async _clearTaskQueue($,Z){if(this._taskMessageQueue){let Q=await this._taskMessageQueue.dequeueAll($,Z);for(let W of Q)if(W.type==="request"&&q8(W.message)){let Y=W.message.id,G=this._requestResolvers.get(Y);if(G)G(new I(E.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(Y);else this._onerror(Error(`Resolver missing for request ${Y} during task ${$} cleanup`))}}}async _waitForTaskUpdate($,Z){let Q=this._options?.defaultTaskPollInterval??1000;try{let W=await this._taskStore?.getTask($);if(W?.pollInterval)Q=W.pollInterval}catch{}return new Promise((W,Y)=>{if(Z.aborted){Y(new I(E.InvalidRequest,"Request cancelled"));return}let G=setTimeout(W,Q);Z.addEventListener("abort",()=>{clearTimeout(G),Y(new I(E.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore($,Z){let Q=this._taskStore;if(!Q)throw Error("No task store configured");return{createTask:async(W)=>{if(!$)throw Error("No request provided");return await Q.createTask(W,$.id,{method:$.method,params:$.params},Z)},getTask:async(W)=>{let Y=await Q.getTask(W,Z);if(!Y)throw new I(E.InvalidParams,"Failed to retrieve task: Task not found");return Y},storeTaskResult:async(W,Y,G)=>{await Q.storeTaskResult(W,Y,G,Z);let X=await Q.getTask(W,Z);if(X){let J=o$.parse({method:"notifications/tasks/status",params:X});if(await this.notification(J),H1(X.status))this._cleanupTaskProgressHandler(W)}},getTaskResult:(W)=>{return Q.getTaskResult(W,Z)},updateTaskStatus:async(W,Y,G)=>{let X=await Q.getTask(W,Z);if(!X)throw new I(E.InvalidParams,`Task "${W}" not found - it may have been cleaned up`);if(H1(X.status))throw new I(E.InvalidParams,`Cannot update task "${W}" from terminal status "${X.status}" to "${Y}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await Q.updateTaskStatus(W,Y,G,Z);let J=await Q.getTask(W,Z);if(J){let K=o$.parse({method:"notifications/tasks/status",params:J});if(await this.notification(K),H1(J.status))this._cleanupTaskProgressHandler(W)}},listTasks:(W)=>{return Q.listTasks(W,Z)}}}}function P9($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function w9($,Z){let Q={...$};for(let W in Z){let Y=W,G=Z[Y];if(G===void 0)continue;let X=Q[Y];if(P9(X)&&P9(G))Q[Y]={...X,...G};else Q[Y]=G}return Q}var XJ=V6(h4(),1),JJ=V6(GJ(),1);function YM(){let $=new XJ.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return JJ.default($),$}class r4{constructor($){this._ajv=$??YM()}getValidator($){let Z="$id"in $&&typeof $.$id==="string"?this._ajv.getSchema($.$id)??this._ajv.compile($):this._ajv.compile($);return(Q)=>{if(Z(Q))return{valid:!0,data:Q,errorMessage:void 0};else return{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(Z.errors)}}}}class t4{constructor($){this._client=$}async*callToolStream($,Z=Z$,Q){let W=this._client,Y={...Q,task:Q?.task??(W.isToolTask($.name)?{}:void 0)},G=W.requestStream({method:"tools/call",params:$},Z,Y),X=W.getToolOutputValidator($.name);for await(let J of G){if(J.type==="result"&&X){let K=J.result;if(!K.structuredContent&&!K.isError){yield{type:"error",error:new I(E.InvalidRequest,`Tool ${$.name} has an output schema but did not return structured content`)};return}if(K.structuredContent)try{let B=X(K.structuredContent);if(!B.valid){yield{type:"error",error:new I(E.InvalidParams,`Structured content does not match the tool's output schema: ${B.errorMessage}`)};return}}catch(B){if(B instanceof I){yield{type:"error",error:B};return}yield{type:"error",error:new I(E.InvalidParams,`Failed to validate structured content: ${B instanceof Error?B.message:String(B)}`)};return}}yield J}}async getTask($,Z){return this._client.getTask({taskId:$},Z)}async getTaskResult($,Z,Q){return this._client.getTaskResult({taskId:$},Z,Q)}async listTasks($,Z){return this._client.listTasks($?{cursor:$}:void 0,Z)}async cancelTask($,Z){return this._client.cancelTask({taskId:$},Z)}requestStream($,Z,Q){return this._client.requestStream($,Z,Q)}}function KJ($,Z,Q){if(!$)throw Error(`${Q} does not support task creation (required for ${Z})`);switch(Z){case"tools/call":if(!$.tools?.call)throw Error(`${Q} does not support task creation for tools/call (required for ${Z})`);break;default:break}}function BJ($,Z,Q){if(!$)throw Error(`${Q} does not support task creation (required for ${Z})`);switch(Z){case"sampling/createMessage":if(!$.sampling?.createMessage)throw Error(`${Q} does not support task creation for sampling/createMessage (required for ${Z})`);break;case"elicitation/create":if(!$.elicitation?.create)throw Error(`${Q} does not support task creation for elicitation/create (required for ${Z})`);break;default:break}}function $6($,Z){if(!$||Z===null||typeof Z!=="object")return;if($.type==="object"&&$.properties&&typeof $.properties==="object"){let Q=Z,W=$.properties;for(let Y of Object.keys(W)){let G=W[Y];if(Q[Y]===void 0&&Object.prototype.hasOwnProperty.call(G,"default"))Q[Y]=G.default;if(Q[Y]!==void 0)$6(G,Q[Y])}}if(Array.isArray($.anyOf)){for(let Q of $.anyOf)if(typeof Q!=="boolean")$6(Q,Z)}if(Array.isArray($.oneOf)){for(let Q of $.oneOf)if(typeof Q!=="boolean")$6(Q,Z)}}function GM($){if(!$)return{supportsFormMode:!1,supportsUrlMode:!1};let Z=$.form!==void 0,Q=$.url!==void 0;return{supportsFormMode:Z||!Z&&!Q,supportsUrlMode:Q}}class o4 extends c8{constructor($,Z){super(Z);if(this._clientInfo=$,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=Z?.capabilities??{},this._jsonSchemaValidator=Z?.jsonSchemaValidator??new r4,Z?.listChanged)this._pendingListChangedConfig=Z.listChanged}_setupListChangedHandlers($){if($.tools&&this._serverCapabilities?.tools?.listChanged)this._setupListChangedHandler("tools",x8,$.tools,async()=>{return(await this.listTools()).tools});if($.prompts&&this._serverCapabilities?.prompts?.listChanged)this._setupListChangedHandler("prompts",_8,$.prompts,async()=>{return(await this.listPrompts()).prompts});if($.resources&&this._serverCapabilities?.resources?.listChanged)this._setupListChangedHandler("resources",I8,$.resources,async()=>{return(await this.listResources()).resources})}get experimental(){if(!this._experimental)this._experimental={tasks:new t4(this)};return this._experimental}registerCapabilities($){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=w9(this._capabilities,$)}setRequestHandler($,Z){let W=G5($)?.method;if(!W)throw Error("Schema is missing a method literal");let Y;if(s1(W)){let X=W;Y=X._zod?.def?.value??X.value}else{let X=W;Y=X._def?.value??X.value}if(typeof Y!=="string")throw Error("Schema method literal must be a string");let G=Y;if(G==="elicitation/create"){let X=async(J,K)=>{let B=M0(h8,J);if(!B.success){let A=B.error instanceof Error?B.error.message:String(B.error);throw new I(E.InvalidParams,`Invalid elicitation request: ${A}`)}let{params:z}=B.data;z.mode=z.mode??"form";let{supportsFormMode:V,supportsUrlMode:F}=GM(this._capabilities.elicitation);if(z.mode==="form"&&!V)throw new I(E.InvalidParams,"Client does not support form-mode elicitation requests");if(z.mode==="url"&&!F)throw new I(E.InvalidParams,"Client does not support URL-mode elicitation requests");let D=await Promise.resolve(Z(J,K));if(z.task){let A=M0(S1,D);if(!A.success){let N=A.error instanceof Error?A.error.message:String(A.error);throw new I(E.InvalidParams,`Invalid task creation result: ${N}`)}return A.data}let L=M0(u8,D);if(!L.success){let A=L.error instanceof Error?L.error.message:String(L.error);throw new I(E.InvalidParams,`Invalid elicitation result: ${A}`)}let U=L.data,q=z.mode==="form"?z.requestedSchema:void 0;if(z.mode==="form"&&U.action==="accept"&&U.content&&q){if(this._capabilities.elicitation?.form?.applyDefaults)try{$6(q,U.content)}catch{}}return U};return super.setRequestHandler($,X)}if(G==="sampling/createMessage"){let X=async(J,K)=>{let B=M0(f8,J);if(!B.success){let U=B.error instanceof Error?B.error.message:String(B.error);throw new I(E.InvalidParams,`Invalid sampling request: ${U}`)}let{params:z}=B.data,V=await Promise.resolve(Z(J,K));if(z.task){let U=M0(S1,V);if(!U.success){let q=U.error instanceof Error?U.error.message:String(U.error);throw new I(E.InvalidParams,`Invalid task creation result: ${q}`)}return U.data}let D=z.tools||z.toolChoice?g8:v8,L=M0(D,V);if(!L.success){let U=L.error instanceof Error?L.error.message:String(L.error);throw new I(E.InvalidParams,`Invalid sampling result: ${U}`)}return L.data};return super.setRequestHandler($,X)}return super.setRequestHandler($,Z)}assertCapability($,Z){if(!this._serverCapabilities?.[$])throw Error(`Server does not support ${$} (required for ${Z})`)}async connect($,Z){if(await super.connect($),$.sessionId!==void 0)return;try{let Q=await this.request({method:"initialize",params:{protocolVersion:L8,capabilities:this._capabilities,clientInfo:this._clientInfo}},O8,Z);if(Q===void 0)throw Error(`Server sent invalid initialize result: ${Q}`);if(!Y9.includes(Q.protocolVersion))throw Error(`Server's protocol version is not supported: ${Q.protocolVersion}`);if(this._serverCapabilities=Q.capabilities,this._serverVersion=Q.serverInfo,$.setProtocolVersion)$.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($){switch($){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw Error(`Server does not support logging (required for ${$})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw Error(`Server does not support prompts (required for ${$})`);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 ${$})`);if($==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw Error(`Server does not support resource subscriptions (required for ${$})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw Error(`Server does not support tools (required for ${$})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw Error(`Server does not support completions (required for ${$})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability($){switch($){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw Error(`Client does not support roots list changed notifications (required for ${$})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability($){if(!this._capabilities)return;switch($){case"sampling/createMessage":if(!this._capabilities.sampling)throw Error(`Client does not support sampling capability (required for ${$})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw Error(`Client does not support elicitation capability (required for ${$})`);break;case"roots/list":if(!this._capabilities.roots)throw Error(`Client does not support roots capability (required for ${$})`);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 ${$})`);break;case"ping":break}}assertTaskCapability($){KJ(this._serverCapabilities?.tasks?.requests,$,"Server")}assertTaskHandlerCapability($){if(!this._capabilities)return;BJ(this._capabilities.tasks?.requests,$,"Client")}async ping($){return this.request({method:"ping"},C1,$)}async complete($,Z){return this.request({method:"completion/complete",params:$},m8,Z)}async setLoggingLevel($,Z){return this.request({method:"logging/setLevel",params:{level:$}},C1,Z)}async getPrompt($,Z){return this.request({method:"prompts/get",params:$},b8,Z)}async listPrompts($,Z){return this.request({method:"prompts/list",params:$},E8,Z)}async listResources($,Z){return this.request({method:"resources/list",params:$},j8,Z)}async listResourceTemplates($,Z){return this.request({method:"resources/templates/list",params:$},P8,Z)}async readResource($,Z){return this.request({method:"resources/read",params:$},T8,Z)}async subscribeResource($,Z){return this.request({method:"resources/subscribe",params:$},C1,Z)}async unsubscribeResource($,Z){return this.request({method:"resources/unsubscribe",params:$},C1,Z)}async callTool($,Z=Z$,Q){if(this.isToolTaskRequired($.name))throw new I(E.InvalidRequest,`Tool "${$.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let W=await this.request({method:"tools/call",params:$},Z,Q),Y=this.getToolOutputValidator($.name);if(Y){if(!W.structuredContent&&!W.isError)throw new I(E.InvalidRequest,`Tool ${$.name} has an output schema but did not return structured content`);if(W.structuredContent)try{let G=Y(W.structuredContent);if(!G.valid)throw new I(E.InvalidParams,`Structured content does not match the tool's output schema: ${G.errorMessage}`)}catch(G){if(G instanceof I)throw G;throw new I(E.InvalidParams,`Failed to validate structured content: ${G instanceof Error?G.message:String(G)}`)}}return W}isToolTask($){if(!this._serverCapabilities?.tasks?.requests?.tools?.call)return!1;return this._cachedKnownTaskTools.has($)}isToolTaskRequired($){return this._cachedRequiredTaskTools.has($)}cacheToolMetadata($){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let Z of $){if(Z.outputSchema){let W=this._jsonSchemaValidator.getValidator(Z.outputSchema);this._cachedToolOutputValidators.set(Z.name,W)}let Q=Z.execution?.taskSupport;if(Q==="required"||Q==="optional")this._cachedKnownTaskTools.add(Z.name);if(Q==="required")this._cachedRequiredTaskTools.add(Z.name)}}getToolOutputValidator($){return this._cachedToolOutputValidators.get($)}async listTools($,Z){let Q=await this.request({method:"tools/list",params:$},k8,Z);return this.cacheToolMetadata(Q.tools),Q}_setupListChangedHandler($,Z,Q,W){let Y=O9.safeParse(Q);if(!Y.success)throw Error(`Invalid ${$} listChanged options: ${Y.error.message}`);if(typeof Q.onChanged!=="function")throw Error(`Invalid ${$} listChanged options: onChanged must be a function`);let{autoRefresh:G,debounceMs:X}=Y.data,{onChanged:J}=Q,K=async()=>{if(!G){J(null,null);return}try{let z=await W();J(null,z)}catch(z){let V=z instanceof Error?z:Error(String(z));J(V,null)}},B=()=>{if(X){let z=this._listChangedDebounceTimers.get($);if(z)clearTimeout(z);let V=setTimeout(K,X);this._listChangedDebounceTimers.set($,V)}else K()};this.setNotificationHandler(Z,B)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}}var eJ=V6(oJ(),1);import KQ from"process";import{PassThrough as fM}from"stream";class JQ{append($){this._buffer=this._buffer?Buffer.concat([this._buffer,$]):$}readMessage(){if(!this._buffer)return null;let $=this._buffer.indexOf(`
|
|
198
|
-
`);if($===-1)return null;let Z=this._buffer.toString("utf8",0,$).replace(/\r$/,"");return this._buffer=this._buffer.subarray($+1),
|
|
199
|
-
`}var
|
|
188
|
+
`}function K5($){return M8({provider:$,status:"success",heading:"Authentication successful",detail:`${$} authentication completed. You can close this window.`})}function b1($,Z){return M8({provider:$,status:"error",heading:"Authentication failed",detail:Z})}var P8=1,w8="app_EMoamEEZ73f0CkXaXp7hrann",B5="OpenAI",z7="https://auth.openai.com",lH="openid profile email offline_access api.connectors.read api.connectors.invoke",pH="https://api.openai.com/auth",z1="openai-codex",I8="github-copilot",z5={"user-agent":"GitHubCopilotChat/0.35.0","editor-version":"vscode/1.107.0","editor-plugin-version":"copilot-chat/0.35.0","copilot-integration-id":"vscode-chat"},cH="2026-06-01",dH=60000,_1=15000,iH=300000,nH=[1455,1457];function T8(){return V7(uH(),".mu","auth.json")}function aH(){return{version:P8,providers:{}}}function o$($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function rH($,Z){if(!o$($))throw Error(`Invalid stored credentials for "${Z}"`);if($.type==="apiKey"&&typeof $.apiKey==="string"&&$.apiKey.length>0)return{type:"apiKey",apiKey:$.apiKey};if($.type==="oauth"&&typeof $.accessToken==="string"&&typeof $.refreshToken==="string"&&typeof $.expiresAt==="number"&&Number.isFinite($.expiresAt)){if((Z==="openai"||Z===z1)&&(typeof $.accountId!=="string"||$.accountId.length===0))throw Error(`Invalid stored credentials for "${Z}"`);return{type:"oauth",accessToken:$.accessToken,refreshToken:$.refreshToken,...typeof $.idToken==="string"?{idToken:$.idToken}:{},expiresAt:$.expiresAt,...typeof $.accountId==="string"?{accountId:$.accountId}:{},...typeof $.baseUrl==="string"?{baseUrl:$.baseUrl}:{},...Array.isArray($.availableModelIds)&&$.availableModelIds.every((Q)=>typeof Q==="string")?{availableModelIds:$.availableModelIds}:{}}}throw Error(`Invalid stored credentials for "${Z}"`)}async function t0($={}){let Z=$.authFile??T8(),Q;try{Q=await kH(Z,"utf8")}catch(X){if(X.code==="ENOENT")return aH();throw X}let Y;try{Y=JSON.parse(Q)}catch{throw Error(`Could not parse authentication file: ${Z}`)}if(!o$(Y)||Y.version!==P8||!o$(Y.providers))throw Error(`Unsupported authentication file: ${Z}`);let W={};for(let[X,J]of Object.entries(Y.providers)){let B=rH(J,X),K=X==="openai"&&B.type==="oauth"?z1:X;if(K===X)W[K]=B;else W[K]??=B}let G=Y.activeProvider==="openai"&&!W.openai&&W[z1]?.type==="oauth"?z1:Y.activeProvider;if(process.platform!=="win32"){if(((await vH(Z)).mode&63)!==0)await j8(Z,384)}return{version:P8,...typeof G==="string"?{activeProvider:G}:{},providers:W}}async function s$($,Z={}){let Q=Z.authFile??T8(),Y=mH(Q);if(await xH(Y,{recursive:!0,mode:448}),process.platform!=="win32")await j8(Y,448);let W=V7(Y,`.auth-${process.pid}-${V5(8).toString("hex")}.tmp`);try{if(await hH(W,`${JSON.stringify($,null,2)}
|
|
189
|
+
`,{encoding:"utf8",mode:384,flag:"wx"}),await fH(W,Q),process.platform!=="win32")await j8(Q,384)}catch(G){throw await gH(W).catch(()=>{}),G}}async function tH($,Z,Q={}){let Y=$.trim(),W=Z.trim();if(!Y)throw Error("Provider is required");if(!W)throw Error("API key cannot be empty");let G=await t0(Q);G.providers[Y]={type:"apiKey",apiKey:W},G.activeProvider=Y,await s$(G,Q)}async function oH($,Z={}){let Q=$.trim();if(!Q)throw Error("Provider is required");let Y=await t0(Z);if(!Y.providers[Q])return!1;if(delete Y.providers[Q],Y.activeProvider===Q){let W=Object.keys(Y.providers)[0];if(W)Y.activeProvider=W;else delete Y.activeProvider}return await s$(Y,Z),!0}async function sH($={}){return Object.keys((await t0($)).providers)}async function eH($={}){let Z=await t0($);return Z.activeProvider&&Z.providers[Z.activeProvider]?Z.activeProvider:Object.keys(Z.providers)[0]}async function F5($,Z,Q){let Y=await t0(Q);Y.providers[$]=Z,Y.activeProvider=$,await s$(Y,Q)}function F7($){let Z=$.split(".")[1];if(!Z)return;try{let Q=JSON.parse(Buffer.from(Z,"base64url").toString("utf8"));return o$(Q)?Q:void 0}catch{return}}function G7($){let Z=F7($)?.[pH]?.chatgpt_account_id;return typeof Z==="string"&&Z.length>0?Z:void 0}function $V($){let Z=F7($)?.exp;return typeof Z==="number"&&Number.isFinite(Z)?Z*1000:void 0}function ZV($,Z,Q){let Y=Q.trim()?`: ${Q.trim().slice(0,1000)}`:"";return Error(`OpenAI token ${$} failed (${Z.status})${Y}`)}async function D7($,Z){if(!$.ok)throw ZV(Z,$,await $.text().catch(()=>""));let Q=await $.json();if(!o$(Q))throw Error(`OpenAI token ${Z} returned invalid JSON`);return Q}function L7($,Z,Q){let Y=typeof $.access_token==="string"?$.access_token:Q?.accessToken,W=typeof $.refresh_token==="string"?$.refresh_token:Q?.refreshToken,G=typeof $.id_token==="string"?$.id_token:Q?.idToken;if(!Y||!W)throw Error("OpenAI token response is missing access or refresh token");let X=G7(Y)??(G?G7(G):void 0)??Q?.accountId;if(!X)throw Error("OpenAI token did not include a ChatGPT account");if(Q?.accountId&&X!==Q.accountId)throw Error("Refusing to rotate OpenAI credentials across ChatGPT accounts");let J=typeof $.expires_in==="number"&&Number.isFinite($.expires_in)?$.expires_in*1000:void 0,B=$V(Y)??(J!==void 0?Z+J:Z+3600000);return{type:"oauth",accessToken:Y,refreshToken:W,...G?{idToken:G}:{},expiresAt:B,accountId:X}}async function QV($,Z){let Q=(Z.openAiIssuer??z7).replace(/\/+$/,""),Y=await(Z.fetch??fetch)(`${Q}/oauth/token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({client_id:Z.openAiClientId??w8,grant_type:"refresh_token",refresh_token:$.refreshToken}),signal:AbortSignal.timeout(_1)});return L7(await D7(Y,"refresh"),(Z.now??Date.now)(),$)}function X7($){return{type:"oauth",accessToken:$.accessToken,...$.accountId?{accountId:$.accountId}:{},...$.baseUrl?{baseUrl:$.baseUrl}:{},...$.availableModelIds?{availableModelIds:$.availableModelIds}:{}}}function J7($,Z,Q){return Z.expiresAt>Q+dH&&($!==I8||Z.availableModelIds!==void 0)}async function F1($,Z){let Q=await $.text(),Y;try{Y=JSON.parse(Q)}catch{throw Error(`${Z} returned invalid JSON (${$.status})`)}if(!$.ok){let W=typeof Y==="object"&&Y!==null?Y:{},G=W.error_description??W.message??W.error;throw Error(`${Z} failed (${$.status})${typeof G==="string"?`: ${G}`:""}`)}if(typeof Y!=="object"||Y===null||Array.isArray(Y))throw Error(`${Z} returned invalid JSON`);return Y}function K7($,Z,Q=60000){let Y=typeof $.access_token==="string"?$.access_token:Z.accessToken,W=typeof $.refresh_token==="string"?$.refresh_token:Z.refreshToken,G=typeof $.expires_in==="number"&&Number.isFinite($.expires_in)?$.expires_in:3600;if(!Y||!W)throw Error("OAuth response is missing tokens");return{...Z,accessToken:Y,refreshToken:W,expiresAt:Date.now()+G*1000-Q}}function U7($){let Z=$.match(/(?:^|;)proxy-ep=([^;]+)/)?.[1];return Z?`https://${Z.replace(/^proxy\./,"api.")}`:"https://api.individual.githubcopilot.com"}function YV($){if(typeof $!=="object"||$===null||!Array.isArray($.data))throw Error("GitHub Copilot models response is invalid");return $.data.filter((Z)=>typeof Z==="object"&&Z!==null&&!Array.isArray(Z))}function WV($){let Z=typeof $.policy==="object"&&$.policy!==null?$.policy:void 0,Q=typeof $.capabilities==="object"&&$.capabilities!==null?$.capabilities:void 0,Y=typeof Q?.supports==="object"&&Q.supports!==null?Q.supports:void 0;return $.model_picker_enabled===!0&&Z?.state!=="disabled"&&Y?.tool_calls!==!1}async function q7($,Z,Q,Y){let W=await Q(`${Z.replace(/\/+$/,"")}/models`,{headers:{accept:"application/json",authorization:`Bearer ${$}`,...z5,"x-github-api-version":cH},...Y?{signal:Y}:{}});return YV(await F1(W,"GitHub Copilot model discovery"))}async function A7($,Z,Q,Y){return(await q7($,Z,Q,Y)).filter(WV).map((W)=>W.id).filter((W)=>typeof W==="string"&&W.length>0)}async function N7($,Z,Q,Y){let W=await q7($,Z,Q,Y);return await Promise.all(W.map(async(G)=>{if(typeof G.id!=="string"||G.id.length===0)return;await Q(`${Z.replace(/\/+$/,"")}/models/${encodeURIComponent(G.id)}/policy`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${$}`,...z5,"openai-intent":"chat-policy","x-interaction-type":"chat-policy"},body:JSON.stringify({state:"enabled"}),...Y?{signal:Y}:{}}).catch(()=>{return})})),A7($,Z,Q,Y)}async function GV($,Z,Q){let Y=Q.fetch??fetch;if($==="kimi-coding"){let W=await Y("https://auth.kimi.com/api/oauth/token",{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:"17e5f671-d194-4dfb-9706-5516cb48c098",grant_type:"refresh_token",refresh_token:Z.refreshToken}),signal:AbortSignal.timeout(_1)});return K7(await F1(W,"Kimi Code token refresh"),Z)}if($==="xai"){let W=await Y("https://auth.x.ai/oauth2/token",{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:"b1a00492-073a-47ea-816f-4c329264a828",grant_type:"refresh_token",refresh_token:Z.refreshToken}),signal:AbortSignal.timeout(_1)});return K7(await F1(W,"xAI token refresh"),Z,300000)}if($===I8){let W=await Y("https://api.github.com/copilot_internal/v2/token",{headers:{accept:"application/json",authorization:`Bearer ${Z.refreshToken}`,...z5},signal:AbortSignal.timeout(_1)}),G=await F1(W,"GitHub Copilot token refresh");if(typeof G.token!=="string"||typeof G.expires_at!=="number")throw Error("GitHub Copilot token refresh returned invalid credentials");let X=G.token,J=U7(X),B=AbortSignal.timeout(_1),K=Z.availableModelIds?await A7(X,J,Y,B):await N7(X,J,Y,B);return{...Z,accessToken:X,expiresAt:G.expires_at*1000-300000,baseUrl:J,availableModelIds:K}}if($===z1){if(!Z.accountId)throw Error("OpenAI login is missing its ChatGPT account");return QV(Z,Q)}throw Error(`OAuth refresh is not implemented for provider "${$}"`)}function XV($={}){let Z=new Map;return async(Q)=>{let W=(await t0($)).providers[Q];if(!W)return;if(W.type==="apiKey")return{type:"apiKey",apiKey:W.apiKey};let G=($.now??Date.now)();if(J7(Q,W,G))return X7(W);let X=Z.get(Q);if(X)return X;let J=(async()=>{let B=await t0($),K=B.providers[Q];if(!K||K.type!=="oauth")throw Error(`${Q} login is no longer available`);let V=($.now??Date.now)(),z=J7(Q,K,V)?K:await GV(Q,K,$);if(z!==K)B.providers[Q]=z,await s$(B,$);return X7(z)})().finally(()=>{Z.delete(Q)});return Z.set(Q,J),J}}function O7(){let $=V5(64).toString("base64url");return{verifier:$,challenge:_H("sha256").update($).digest("base64url")}}function M7($,Z){return new Promise((Q,Y)=>{let W=(X)=>{$.off("listening",G),Y(X)},G=()=>{$.off("error",W);let X=$.address();if(!X||typeof X==="string"){Y(Error("Could not determine OAuth callback port"));return}Q(X.port)};$.once("error",W),$.once("listening",G),$.listen(Z,"127.0.0.1")})}async function JV($,Z,Q){if(Q.aborted)throw Error("OpenAI login cancelled");let Y=Z===void 0?nH:[Z],W;for(let G of Y){let X=()=>{},J=()=>{},B=new Promise((z,F)=>{X=z,J=F}),K=!1,V=H7((z,F)=>{let D=new URL(z.url??"/","http://localhost");if(F.setHeader("content-type","text/html; charset=utf-8"),D.pathname!=="/auth/callback"){F.statusCode=404,F.end(b1(B5,"That page does not exist."));return}if(D.searchParams.get("state")!==$){F.statusCode=400,F.end(b1(B5,"State mismatch. Return to mu and try again."));return}let L=D.searchParams.get("error"),U=D.searchParams.get("code");if(L||!U){if(F.statusCode=400,F.end(b1(B5,"Return to mu and try again.")),!K)K=!0,J(Error(`OpenAI login failed: ${L??"missing authorization code"}`));return}if(F.end(K5(B5)),!K)K=!0,X(U)});try{let z=await M7(V,G),F=()=>{if(!K)K=!0,J(Error("OpenAI login cancelled"));V.close()};if(Q.addEventListener("abort",F,{once:!0}),Q.aborted)F();return{redirectUri:`http://localhost:${z}/auth/callback`,callback:B.finally(()=>Q.removeEventListener("abort",F)),close:()=>V.close()}}catch(z){W=z,V.close()}}throw Error(`Could not start OpenAI login callback server: ${W instanceof Error?W.message:String(W)}`)}async function KV($={}){let Z=new AbortController,Q=()=>Z.abort();if($.signal?.addEventListener("abort",Q,{once:!0}),$.signal?.aborted)Z.abort();let Y=setTimeout(Q,$.timeoutMs??iH);Y.unref?.();let W=V5(32).toString("base64url"),G=O7(),X=($.openAiIssuer??z7).replace(/\/+$/,""),J;try{J=$.callbackServer?await $.callbackServer(W,Z.signal):await JV(W,$.port,Z.signal);let B=new URL(`${X}/oauth/authorize`);B.search=new URLSearchParams({response_type:"code",client_id:$.openAiClientId??w8,redirect_uri:J.redirectUri,scope:lH,code_challenge:G.challenge,code_challenge_method:"S256",id_token_add_organizations:"true",codex_cli_simplified_flow:"true",state:W,originator:"mu"}).toString(),await $.onAuthUrl?.(B.toString());let K=await J.callback,V=await($.fetch??fetch)(`${X}/oauth/token`,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",client_id:$.openAiClientId??w8,code:K,code_verifier:G.verifier,redirect_uri:J.redirectUri}),signal:Z.signal}),z=L7(await D7(V,"exchange"),($.now??Date.now)()),F=await t0($);return F.providers[z1]=z,F.activeProvider=z1,await s$(F,$),{provider:z1,accountId:z.accountId}}finally{clearTimeout(Y),$.signal?.removeEventListener("abort",Q),J?.close()}}function Y0($,Z,Q){let Y=$[Z];if(typeof Y!=="string"||Y.length===0)throw Error(`${Q} response is missing ${Z}`);return Y}function H5($,Z){let Q;try{Q=new URL($)}catch{throw Error(`${Z} returned an invalid authorization URL`)}if(Q.protocol!=="https:"&&Q.protocol!=="http:")throw Error(`${Z} returned an unsafe authorization URL`);return Q.toString()}function B7($,Z){let Q=H5($,Z);if(!Q.startsWith("https:"))throw Error(`${Z} returned an unsafe authorization URL`);return Q}function r0($,Z,Q){let Y=$[Z];return typeof Y==="number"&&Number.isFinite(Y)&&Y>0?Y:Q}async function BV($,Z){if(Z?.aborted)throw Error("Login cancelled");await new Promise((Q,Y)=>{let G=setTimeout(()=>{Z?.removeEventListener("abort",X),Q()},$),X=()=>{clearTimeout(G),Z?.removeEventListener("abort",X),Y(Error("Login cancelled"))};if(Z?.addEventListener("abort",X,{once:!0}),Z?.aborted)X()})}async function E8($){let Z=Date.now()+$.expiresInSeconds*1000,Q=Math.max(0.05,$.intervalSeconds);while(Date.now()<Z){await BV(Q*1000,$.signal);let Y=await $.fetch($.url,{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams($.fields),...$.signal?{signal:$.signal}:{}}),W=await F1(Y.status>=400&&Y.status<500?new Response(await Y.text(),{status:200,headers:Y.headers}):Y,`${$.provider} device token request`);if(Y.ok&&typeof W.access_token==="string")return W;if(W.error==="authorization_pending")continue;if(W.error==="slow_down"){Q=r0(W,"interval",Q+5);continue}throw Error(`${$.provider} login failed${typeof W.error_description==="string"?`: ${W.error_description}`:typeof W.error==="string"?`: ${W.error}`:""}`)}throw Error(`${$.provider} login timed out`)}async function R8($,Z,Q,Y){let W=await($.fetch??fetch)(Q,{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams(Y),...$.signal?{signal:$.signal}:{}});return F1(W,`${Z} device authorization`)}async function HV($={}){let Q=$.fetch??fetch,Y=await R8($,"Kimi Code","https://auth.kimi.com/api/oauth/device_authorization",{client_id:"17e5f671-d194-4dfb-9706-5516cb48c098"}),W=typeof Y.verification_uri_complete==="string"?H5(Y.verification_uri_complete,"Kimi Code"):H5(Y0(Y,"verification_uri","Kimi Code"),"Kimi Code"),G=Y0(Y,"user_code","Kimi Code");await $.onDeviceCode?.(W,G),await $.onAuthUrl?.(W);let X=await E8({fetch:Q,url:"https://auth.kimi.com/api/oauth/token",fields:{client_id:"17e5f671-d194-4dfb-9706-5516cb48c098",device_code:Y0(Y,"device_code","Kimi Code"),grant_type:"urn:ietf:params:oauth:grant-type:device_code"},intervalSeconds:r0(Y,"interval",5),expiresInSeconds:r0(Y,"expires_in",900),...$.signal?{signal:$.signal}:{},provider:"Kimi Code"}),J=r0(X,"expires_in",3600);return await F5("kimi-coding",{type:"oauth",accessToken:Y0(X,"access_token","Kimi Code"),refreshToken:Y0(X,"refresh_token","Kimi Code"),expiresAt:($.now??Date.now)()+J*1000},$),{provider:"kimi-coding"}}async function VV($={}){let Q=$.fetch??fetch,Y=await R8($,"xAI","https://auth.x.ai/oauth2/device/code",{client_id:"b1a00492-073a-47ea-816f-4c329264a828",scope:"openid profile email offline_access grok-cli:access api:access",referrer:"mu"}),W=typeof Y.verification_uri_complete==="string"?B7(Y.verification_uri_complete,"xAI"):B7(Y0(Y,"verification_uri","xAI"),"xAI"),G=Y0(Y,"user_code","xAI");await $.onDeviceCode?.(W,G),await $.onAuthUrl?.(W);let X=await E8({fetch:Q,url:"https://auth.x.ai/oauth2/token",fields:{client_id:"b1a00492-073a-47ea-816f-4c329264a828",device_code:Y0(Y,"device_code","xAI"),grant_type:"urn:ietf:params:oauth:grant-type:device_code"},intervalSeconds:r0(Y,"interval",5),expiresInSeconds:r0(Y,"expires_in",900),...$.signal?{signal:$.signal}:{},provider:"xAI"}),J=r0(X,"expires_in",3600);return await F5("xai",{type:"oauth",accessToken:Y0(X,"access_token","xAI"),refreshToken:Y0(X,"refresh_token","xAI"),expiresAt:($.now??Date.now)()+J*1000-300000},$),{provider:"xai"}}async function zV($={}){let Z=Buffer.from("SXYxLmI1MDdhMDhjODdlY2ZlOTg=","base64").toString("utf8"),Q=$.fetch??fetch,Y=await R8($,"GitHub Copilot","https://github.com/login/device/code",{client_id:Z,scope:"read:user"}),W=H5(Y0(Y,"verification_uri","GitHub Copilot"),"GitHub Copilot"),G=Y0(Y,"user_code","GitHub Copilot");await $.onDeviceCode?.(W,G),await $.onAuthUrl?.(W);let X=await E8({fetch:Q,url:"https://github.com/login/oauth/access_token",fields:{client_id:Z,device_code:Y0(Y,"device_code","GitHub Copilot"),grant_type:"urn:ietf:params:oauth:grant-type:device_code"},intervalSeconds:r0(Y,"interval",5),expiresInSeconds:r0(Y,"expires_in",900),...$.signal?{signal:$.signal}:{},provider:"GitHub Copilot"}),J=Y0(X,"access_token","GitHub Copilot"),B=await Q("https://api.github.com/copilot_internal/v2/token",{headers:{accept:"application/json",authorization:`Bearer ${J}`,...z5},...$.signal?{signal:$.signal}:{}}),K=await F1(B,"GitHub Copilot token exchange"),V=Y0(K,"token","GitHub Copilot"),z=K.expires_at;if(typeof z!=="number"||!Number.isFinite(z))throw Error("GitHub Copilot response is missing expires_at");let F=U7(V),D=$.signal?AbortSignal.any([$.signal,AbortSignal.timeout(_1)]):AbortSignal.timeout(_1),L=await N7(V,F,Q,D);return await F5(I8,{type:"oauth",accessToken:V,refreshToken:J,expiresAt:z*1000-300000,baseUrl:F,availableModelIds:L},$),{provider:"github-copilot"}}async function FV($,Z){let Q=`/oauth/callback/${V5(18).toString("base64url")}`,Y=()=>{},W=()=>{},G=new Promise((V,z)=>{Y=V,W=z}),X=!1,J=H7((V,z)=>{let F=new URL(V.url??"/","http://127.0.0.1");if(z.setHeader("content-type","text/html; charset=utf-8"),F.pathname!==Q){z.statusCode=404,z.end(b1($,"That page does not exist."));return}let D=F.searchParams.get("error"),L=F.searchParams.get("code");if(D||!L){if(z.statusCode=400,z.end(b1($,"Authorization was not completed.")),!X)X=!0,W(Error(`${$} login failed: ${D??"missing authorization code"}`));return}if(z.end(K5($)),!X)X=!0,Y(L)});await M7(J,0);let B=J.address();if(!B||typeof B==="string")throw J.close(),Error(`Could not start the ${$} callback server`);let K=()=>{if(!X)X=!0,W(Error(`${$} login cancelled`));J.close()};if(Z?.addEventListener("abort",K,{once:!0}),Z?.aborted)K();return{callbackUrl:`http://127.0.0.1:${B.port}${Q}`,code:G.finally(()=>Z?.removeEventListener("abort",K)),close:()=>J.close()}}async function DV($={}){let Z=O7(),Q=$.callbackServer?await $.callbackServer("OpenRouter",$.signal):await FV("OpenRouter",$.signal);try{let Y=new URL("https://openrouter.ai/auth");Y.search=new URLSearchParams({callback_url:Q.callbackUrl,code_challenge:Z.challenge,code_challenge_method:"S256"}).toString(),await $.onAuthUrl?.(Y.toString());let W=await Q.code,G=await($.fetch??fetch)("https://openrouter.ai/api/v1/auth/keys",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({code:W,code_verifier:Z.verifier,code_challenge_method:"S256"}),...$.signal?{signal:$.signal}:{}}),X=await F1(G,"OpenRouter key exchange");return await F5("openrouter",{type:"oauth",accessToken:Y0(X,"key","OpenRouter"),refreshToken:"",expiresAt:Number.MAX_SAFE_INTEGER},$),{provider:"openrouter"}}finally{Q.close()}}function LV($){let Z=$.inputTokens+$.outputTokens+$.cacheReadTokens+$.cacheWriteTokens,Q=(Y)=>Math.max(0,Math.trunc(Y)).toLocaleString("en-US");return["Session usage",` Input tokens: ${Q($.inputTokens)}`,` Output tokens: ${Q($.outputTokens)}`,` Cache read tokens: ${Q($.cacheReadTokens)}`,` Cache write tokens: ${Q($.cacheWriteTokens)}`,` Total tokens: ${Q(Z)}`,` Cost: $${($.costUsd??0).toFixed(6)}`,` Active context: ${(Math.max(0,$.contextPercent)*100).toFixed(1)}%`].join(`
|
|
190
|
+
`)}function j7($={}){return[{name:"help",description:"List available commands",run:(Z)=>{return Z.print("Commands are listed by the registry that owns them."),{handled:!0}}},{name:"model",description:"Show or switch the active model",run:(Z)=>{let Q=Z.args.trim();if(!Q)return Z.print(`Current model: ${Z.getModel()}`),{handled:!0};let Y=$$(Q);if(!Y){let W=f$().map((G)=>`${G.provider}/${G.id}`).join(", ");return{handled:!0,message:`Unknown model "${Q}". Known models: ${W}`}}return Z.setModel(`${Y.provider}/${Y.id}`),{handled:!0,message:`Model set to ${Y.provider}/${Y.id}`}}},{name:"compact",description:"Summarize older context now while preserving recent work: /compact [focus]",run:async(Z)=>{if(!$.requestCompaction)return{handled:!0,message:"Compaction is not available on this surface."};let Q=await $.requestCompaction(Z.args.trim()||void 0);if(!Q)return{handled:!0,message:"Compaction requested."};return{handled:!0,message:Q.message,data:{kind:"compaction",...Q}}}},{name:"undo",description:"Revert the last step \u2014 both the workspace and the conversation",run:async()=>{if(!$.undo)return{handled:!0,message:"Undo is not available here."};let Z=await $.undo();return{handled:!0,message:Z.message,...Z.data?{data:Z.data}:{}}}},{name:"redo",description:"Re-apply the step that was undone",run:async()=>{if(!$.redo)return{handled:!0,message:"Redo is not available here."};let Z=await $.redo();return{handled:!0,message:Z.message,...Z.data?{data:Z.data}:{}}}},{name:"fork",description:"Branch the conversation from an earlier point",run:async(Z)=>{if(!$.fork)return{handled:!0,message:"Fork is not available here."};let Q=Z.args.trim();if(!Q){let W=$.forkPoints?.()??[];if(W.length===0)return{handled:!0,message:"No branch points yet."};return{handled:!0,message:W.map((G)=>`${G.id} \xB7 ${G.description}`).join(`
|
|
191
|
+
`),data:{kind:"fork-points",points:W}}}return{handled:!0,message:(await $.fork(Q)).message}}},{name:"diff",description:"Show everything this session has changed",run:async()=>{if(!$.diff)return{handled:!0,message:"Diff is not available here."};let Z=await $.diff();if(Z.length===0)return{handled:!0,message:"No changes yet."};return{handled:!0,data:{kind:"diff",files:Z}}}},{name:"cost",description:"Show token usage and cost for this session",run:()=>{let Z=$.usage?.();return{handled:!0,message:Z?LV(Z):"Usage is reported by the surface that owns the session."}}}]}function UV($={}){let Z=new T1;for(let Q of j7($))Z.register(Q);return Z.register({name:"help",description:"List available commands",run:(Q)=>{let Y=Z.list().map((W)=>` /${W.name.padEnd(12)} ${W.description}`);return Q.print(`Available commands:
|
|
192
|
+
${Y.join(`
|
|
193
|
+
`)}`),{handled:!0}}}),Z}import{readdir as qV,stat as AV}from"fs/promises";import{homedir as NV}from"os";import{isAbsolute as OV,join as C8,resolve as MV}from"path";function jV($){return typeof $==="object"&&$!==null&&typeof $.name==="string"&&typeof $.activate==="function"}async function S8($){try{return(await qV($)).filter((Q)=>Q.endsWith(".ts")||Q.endsWith(".js")).sort().map((Q)=>C8($,Q))}catch(Z){if(Z.code==="ENOENT")return[];throw Z}}async function PV($){try{return(await AV($)).isDirectory()?S8($):[$]}catch(Z){if(Z.code==="ENOENT")return[];throw Z}}async function P7($={}){let Z=[];if($.userDir!==!1)Z.push(...await S8(C8(NV(),".mu","extensions")));if($.projectDir)Z.push(...await S8(C8($.projectDir,".mu","extensions")));for(let Q of $.paths??[])Z.push(...await PV(OV(Q)?Q:MV(Q)));return Z}async function wV($,Z={}){let Q={loaded:[],failed:[]};for(let Y of await P7(Z))try{let W=await import(Y),G=W.default??W.extension;if(!jV(G)){Q.failed.push({file:Y,error:"no default export with { name, activate } found"});continue}await $.register(G),Q.loaded.push(Y)}catch(W){Q.failed.push({file:Y,error:W instanceof Error?W.message:String(W)})}return Q}import{randomUUID as IV}from"crypto";import{chmod as w7,mkdir as TV,readdir as EV,readFile as I7,rename as RV,rm as CV,writeFile as SV}from"fs/promises";import{homedir as yV}from"os";import{join as D5}from"path";class T7{dir;constructor($={}){let Z=$.root??D5(yV(),".mu","sessions");this.dir=$.scope?D5(Z,$.scope):Z}path($){let Z=Buffer.from($,"utf8").toString("base64url");return D5(this.dir,`${Z}.jsonl`)}fallbackId($){let Z=$.slice(0,-6);try{let Q=Buffer.from(Z,"base64url").toString("utf8");return this.path(Q).endsWith($)?Q:Z}catch{return Z}}async load($){try{return s.fromJsonl(await I7(this.path($),"utf8"))}catch(Z){if(Z.code==="ENOENT")return;throw Z}}async save($,Z){if(await TV(this.dir,{recursive:!0,mode:448}),process.platform!=="win32")await w7(this.dir,448);let Q=this.path($),Y=`${Q}.${process.pid}.${IV()}.tmp`;try{if(await SV(Y,Z.toJsonl(),{encoding:"utf8",mode:384,flag:"wx"}),await RV(Y,Q),process.platform!=="win32")await w7(Q,384)}catch(W){throw await CV(Y,{force:!0}).catch(()=>{}),W}}async list(){try{let $=await EV(this.dir),Z=await Promise.all($.filter((Q)=>Q.endsWith(".jsonl")).map(async(Q)=>{try{return s.fromJsonl(await I7(D5(this.dir,Q),"utf8")).header?.id??this.fallbackId(Q)}catch{return this.fallbackId(Q)}}));return[...new Set(Z)]}catch($){if($.code==="ENOENT")return[];throw $}}}import{readdir as bV,readFile as _V}from"fs/promises";import{homedir as xV}from"os";import{basename as kV,join as y8}from"path";function L5($){let Z=$.replace(/^\uFEFF/,"").replace(/\r\n?/g,`
|
|
194
|
+
`),Q=/^---\n([\s\S]*?)\n---\n?/.exec(Z);if(!Q)return{meta:{},body:Z.trim()};let Y={};for(let W of(Q[1]??"").split(`
|
|
195
|
+
`)){let G=W.indexOf(":");if(G===-1)continue;let X=W.slice(0,G).trim(),J=W.slice(G+1).trim();if(X.length===0)continue;Y[X]=J.startsWith("[")&&J.endsWith("]")?J.slice(1,-1).split(",").map((B)=>B.trim().replace(/^["']|["']$/g,"")).filter((B)=>B.length>0):J.replace(/^["']|["']$/g,"")}return{meta:Y,body:Z.slice(Q[0].length).trim()}}function R7($,Z){let Q=Z.trim().length>0?Z.trim().split(/\s+/):[],Y=!1,W=$.replace(/\$ARGUMENTS\b/g,()=>{return Y=!0,Z.trim()});if(W=W.replace(/\$([1-9])\b/g,(G,X)=>{return Y=!0,Q[Number(X)-1]??""}),!Y&&Z.trim().length>0)return`${W}
|
|
196
|
+
|
|
197
|
+
${Z.trim()}`;return W}function C7($,Z){let{meta:Q,body:Y}=L5(Z),W=typeof Q.description==="string"?Q.description:`Run the ${$} command`,G=typeof Q.model==="string"?Q.model:void 0,X=Q["allowed-tools"],J=Array.isArray(X)?X:typeof X==="string"&&X.length>0?X.split(",").map((B)=>B.trim()):void 0;return{name:$,description:W,body:Y,...G?{model:G}:{},...J?{allowedTools:J}:{}}}async function E7($){let Z;try{Z=await bV($)}catch{return[]}let Q=[];for(let Y of Z.filter((W)=>W.endsWith(".md")).sort())try{let W=await _V(y8($,Y),"utf8");Q.push(C7(kV(Y,".md"),W))}catch{}return Q}async function fV($={}){let Z=await E7($.userDir??y8(xV(),".mu","commands")),Q=$.projectDir?await E7(y8($.projectDir,".mu","commands")):[],Y=new Map;for(let W of[...Z,...Q])Y.set(W.name,W);return[...Y.values()]}function vV($,Z){return{name:$.name,description:$.description,run:async(Q)=>{let Y={kind:"markdown-command",prompt:R7($.body,Q.args),...$.model?{model:$.model}:{},...$.allowedTools?{allowedTools:$.allowedTools}:{}};if(Z)return await Z(Y.prompt,{...Y.model?{model:Y.model}:{},...Y.allowedTools?{allowedTools:Y.allowedTools}:{}}),{handled:!0};return{handled:!0,data:Y}}}}import{readFile as Oj}from"fs/promises";import{homedir as Mj}from"os";import{dirname as jj,isAbsolute as Pj,join as E3,resolve as wj}from"path";import*as gV from"zod/v3";import*as U5 from"zod/v4-mini";function X$($){return!!$._zod}function E0($,Z){if(X$($))return U5.safeParse($,Z);return $.safeParse(Z)}function q5($){if(!$)return;let Z;if(X$($))Z=$._zod?.def?.shape;else Z=$.shape;if(!Z)return;if(typeof Z==="function")try{return Z()}catch{return}return Z}function S7($){if(X$($)){let G=$._zod?.def;if(G){if(G.value!==void 0)return G.value;if(Array.isArray(G.values)&&G.values.length>0)return G.values[0]}}let Q=$._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 Y=$.value;if(Y!==void 0)return Y;return}import*as H from"zod/v4";var b8="2025-11-25";var y7=[b8,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],D1="io.modelcontextprotocol/related-task",N5="2.0",a=H.custom(($)=>$!==null&&(typeof $==="object"||typeof $==="function")),b7=H.union([H.string(),H.number().int()]),_7=H.string(),YE=H.looseObject({ttl:H.number().optional(),pollInterval:H.number().optional()}),hV=H.object({ttl:H.number().optional()}),uV=H.object({taskId:H.string()}),_8=H.looseObject({progressToken:b7.optional(),[D1]:uV.optional()}),q0=H.object({_meta:_8.optional()}),e$=q0.extend({task:hV.optional()}),x7=($)=>e$.safeParse($).success,e=H.object({method:H.string(),params:q0.loose().optional()}),M0=H.object({_meta:_8.optional()}),j0=H.object({method:H.string(),params:M0.loose().optional()}),$0=H.looseObject({_meta:_8.optional()}),O5=H.union([H.string(),H.number().int()]),k7=H.object({jsonrpc:H.literal(N5),id:O5,...e.shape}).strict(),x8=($)=>k7.safeParse($).success,f7=H.object({jsonrpc:H.literal(N5),...j0.shape}).strict(),v7=($)=>f7.safeParse($).success,k8=H.object({jsonrpc:H.literal(N5),id:O5,result:$0}).strict(),$Z=($)=>k8.safeParse($).success;var E;(function($){$[$.ConnectionClosed=-32000]="ConnectionClosed",$[$.RequestTimeout=-32001]="RequestTimeout",$[$.ParseError=-32700]="ParseError",$[$.InvalidRequest=-32600]="InvalidRequest",$[$.MethodNotFound=-32601]="MethodNotFound",$[$.InvalidParams=-32602]="InvalidParams",$[$.InternalError=-32603]="InternalError",$[$.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(E||(E={}));var f8=H.object({jsonrpc:H.literal(N5),id:O5.optional(),error:H.object({code:H.number().int(),message:H.string(),data:H.unknown().optional()})}).strict();var g7=($)=>f8.safeParse($).success;var h7=H.union([k7,f7,k8,f8]),WE=H.union([k8,f8]),x1=$0.strict(),mV=M0.extend({requestId:O5.optional(),reason:H.string().optional()}),M5=j0.extend({method:H.literal("notifications/cancelled"),params:mV}),lV=H.object({src:H.string(),mimeType:H.string().optional(),sizes:H.array(H.string()).optional(),theme:H.enum(["light","dark"]).optional()}),ZZ=H.object({icons:H.array(lV).optional()}),J$=H.object({name:H.string(),title:H.string().optional()}),u7=J$.extend({...J$.shape,...ZZ.shape,version:H.string(),websiteUrl:H.string().optional(),description:H.string().optional()}),pV=H.intersection(H.object({applyDefaults:H.boolean().optional()}),H.record(H.string(),H.unknown())),cV=H.preprocess(($)=>{if($&&typeof $==="object"&&!Array.isArray($)){if(Object.keys($).length===0)return{form:{}}}return $},H.intersection(H.object({form:pV.optional(),url:a.optional()}),H.record(H.string(),H.unknown()).optional())),dV=H.looseObject({list:a.optional(),cancel:a.optional(),requests:H.looseObject({sampling:H.looseObject({createMessage:a.optional()}).optional(),elicitation:H.looseObject({create:a.optional()}).optional()}).optional()}),iV=H.looseObject({list:a.optional(),cancel:a.optional(),requests:H.looseObject({tools:H.looseObject({call:a.optional()}).optional()}).optional()}),nV=H.object({experimental:H.record(H.string(),a).optional(),sampling:H.object({context:a.optional(),tools:a.optional()}).optional(),elicitation:cV.optional(),roots:H.object({listChanged:H.boolean().optional()}).optional(),tasks:dV.optional(),extensions:H.record(H.string(),a).optional()}),aV=q0.extend({protocolVersion:H.string(),capabilities:nV,clientInfo:u7}),rV=e.extend({method:H.literal("initialize"),params:aV});var tV=H.object({experimental:H.record(H.string(),a).optional(),logging:a.optional(),completions:a.optional(),prompts:H.object({listChanged:H.boolean().optional()}).optional(),resources:H.object({subscribe:H.boolean().optional(),listChanged:H.boolean().optional()}).optional(),tools:H.object({listChanged:H.boolean().optional()}).optional(),tasks:iV.optional(),extensions:H.record(H.string(),a).optional()}),v8=$0.extend({protocolVersion:H.string(),capabilities:tV,serverInfo:u7,instructions:H.string().optional()}),oV=j0.extend({method:H.literal("notifications/initialized"),params:M0.optional()});var j5=e.extend({method:H.literal("ping"),params:q0.optional()}),sV=H.object({progress:H.number(),total:H.optional(H.number()),message:H.optional(H.string())}),eV=H.object({...M0.shape,...sV.shape,progressToken:b7}),P5=j0.extend({method:H.literal("notifications/progress"),params:eV}),$z=q0.extend({cursor:_7.optional()}),QZ=e.extend({params:$z.optional()}),YZ=$0.extend({nextCursor:_7.optional()}),Zz=H.enum(["working","input_required","completed","failed","cancelled"]),WZ=H.object({taskId:H.string(),status:Zz,ttl:H.union([H.number(),H.null()]),createdAt:H.string(),lastUpdatedAt:H.string(),pollInterval:H.optional(H.number()),statusMessage:H.optional(H.string())}),k1=$0.extend({task:WZ}),Qz=M0.merge(WZ),GZ=j0.extend({method:H.literal("notifications/tasks/status"),params:Qz}),w5=e.extend({method:H.literal("tasks/get"),params:q0.extend({taskId:H.string()})}),I5=$0.merge(WZ),T5=e.extend({method:H.literal("tasks/result"),params:q0.extend({taskId:H.string()})}),GE=$0.loose(),E5=QZ.extend({method:H.literal("tasks/list")}),R5=YZ.extend({tasks:H.array(WZ)}),C5=e.extend({method:H.literal("tasks/cancel"),params:q0.extend({taskId:H.string()})}),m7=$0.merge(WZ),l7=H.object({uri:H.string(),mimeType:H.optional(H.string()),_meta:H.record(H.string(),H.unknown()).optional()}),p7=l7.extend({text:H.string()}),g8=H.string().refine(($)=>{try{return atob($),!0}catch{return!1}},{message:"Invalid Base64 string"}),c7=l7.extend({blob:g8}),XZ=H.enum(["user","assistant"]),K$=H.object({audience:H.array(XZ).optional(),priority:H.number().min(0).max(1).optional(),lastModified:H.iso.datetime({offset:!0}).optional()}),d7=H.object({...J$.shape,...ZZ.shape,uri:H.string(),description:H.optional(H.string()),mimeType:H.optional(H.string()),size:H.optional(H.number()),annotations:K$.optional(),_meta:H.optional(H.looseObject({}))}),Yz=H.object({...J$.shape,...ZZ.shape,uriTemplate:H.string(),description:H.optional(H.string()),mimeType:H.optional(H.string()),annotations:K$.optional(),_meta:H.optional(H.looseObject({}))}),Wz=QZ.extend({method:H.literal("resources/list")}),h8=YZ.extend({resources:H.array(d7)}),Gz=QZ.extend({method:H.literal("resources/templates/list")}),u8=YZ.extend({resourceTemplates:H.array(Yz)}),m8=q0.extend({uri:H.string()}),Xz=m8,Jz=e.extend({method:H.literal("resources/read"),params:Xz}),l8=$0.extend({contents:H.array(H.union([p7,c7]))}),p8=j0.extend({method:H.literal("notifications/resources/list_changed"),params:M0.optional()}),Kz=m8,Bz=e.extend({method:H.literal("resources/subscribe"),params:Kz}),Hz=m8,Vz=e.extend({method:H.literal("resources/unsubscribe"),params:Hz}),zz=M0.extend({uri:H.string()}),Fz=j0.extend({method:H.literal("notifications/resources/updated"),params:zz}),Dz=H.object({name:H.string(),description:H.optional(H.string()),required:H.optional(H.boolean())}),Lz=H.object({...J$.shape,...ZZ.shape,description:H.optional(H.string()),arguments:H.optional(H.array(Dz)),_meta:H.optional(H.looseObject({}))}),Uz=QZ.extend({method:H.literal("prompts/list")}),c8=YZ.extend({prompts:H.array(Lz)}),qz=q0.extend({name:H.string(),arguments:H.record(H.string(),H.string()).optional()}),Az=e.extend({method:H.literal("prompts/get"),params:qz}),d8=H.object({type:H.literal("text"),text:H.string(),annotations:K$.optional(),_meta:H.record(H.string(),H.unknown()).optional()}),i8=H.object({type:H.literal("image"),data:g8,mimeType:H.string(),annotations:K$.optional(),_meta:H.record(H.string(),H.unknown()).optional()}),n8=H.object({type:H.literal("audio"),data:g8,mimeType:H.string(),annotations:K$.optional(),_meta:H.record(H.string(),H.unknown()).optional()}),Nz=H.object({type:H.literal("tool_use"),name:H.string(),id:H.string(),input:H.record(H.string(),H.unknown()),_meta:H.record(H.string(),H.unknown()).optional()}),Oz=H.object({type:H.literal("resource"),resource:H.union([p7,c7]),annotations:K$.optional(),_meta:H.record(H.string(),H.unknown()).optional()}),Mz=d7.extend({type:H.literal("resource_link")}),a8=H.union([d8,i8,n8,Mz,Oz]),jz=H.object({role:XZ,content:a8}),r8=$0.extend({description:H.string().optional(),messages:H.array(jz)}),t8=j0.extend({method:H.literal("notifications/prompts/list_changed"),params:M0.optional()}),Pz=H.object({title:H.string().optional(),readOnlyHint:H.boolean().optional(),destructiveHint:H.boolean().optional(),idempotentHint:H.boolean().optional(),openWorldHint:H.boolean().optional()}),wz=H.object({taskSupport:H.enum(["required","optional","forbidden"]).optional()}),i7=H.object({...J$.shape,...ZZ.shape,description:H.string().optional(),inputSchema:H.object({type:H.literal("object"),properties:H.record(H.string(),a).optional(),required:H.array(H.string()).optional()}).catchall(H.unknown()),outputSchema:H.object({type:H.literal("object"),properties:H.record(H.string(),a).optional(),required:H.array(H.string()).optional()}).catchall(H.unknown()).optional(),annotations:Pz.optional(),execution:wz.optional(),_meta:H.record(H.string(),H.unknown()).optional()}),Iz=QZ.extend({method:H.literal("tools/list")}),o8=YZ.extend({tools:H.array(i7)}),B$=$0.extend({content:H.array(a8).default([]),structuredContent:H.record(H.string(),H.unknown()).optional(),isError:H.boolean().optional()}),XE=B$.or($0.extend({toolResult:H.unknown()})),Tz=e$.extend({name:H.string(),arguments:H.record(H.string(),H.unknown()).optional()}),Ez=e.extend({method:H.literal("tools/call"),params:Tz}),s8=j0.extend({method:H.literal("notifications/tools/list_changed"),params:M0.optional()}),n7=H.object({autoRefresh:H.boolean().default(!0),debounceMs:H.number().int().nonnegative().default(300)}),a7=H.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),Rz=q0.extend({level:a7}),Cz=e.extend({method:H.literal("logging/setLevel"),params:Rz}),Sz=M0.extend({level:a7,logger:H.string().optional(),data:H.unknown()}),yz=j0.extend({method:H.literal("notifications/message"),params:Sz}),bz=H.object({name:H.string().optional()}),_z=H.object({hints:H.array(bz).optional(),costPriority:H.number().min(0).max(1).optional(),speedPriority:H.number().min(0).max(1).optional(),intelligencePriority:H.number().min(0).max(1).optional()}),xz=H.object({mode:H.enum(["auto","required","none"]).optional()}),kz=H.object({type:H.literal("tool_result"),toolUseId:H.string().describe("The unique identifier for the corresponding tool call."),content:H.array(a8).default([]),structuredContent:H.object({}).loose().optional(),isError:H.boolean().optional(),_meta:H.record(H.string(),H.unknown()).optional()}),fz=H.discriminatedUnion("type",[d8,i8,n8]),A5=H.discriminatedUnion("type",[d8,i8,n8,Nz,kz]),vz=H.object({role:XZ,content:H.union([A5,H.array(A5)]),_meta:H.record(H.string(),H.unknown()).optional()}),gz=e$.extend({messages:H.array(vz),modelPreferences:_z.optional(),systemPrompt:H.string().optional(),includeContext:H.enum(["none","thisServer","allServers"]).optional(),temperature:H.number().optional(),maxTokens:H.number().int(),stopSequences:H.array(H.string()).optional(),metadata:a.optional(),tools:H.array(i7).optional(),toolChoice:xz.optional()}),e8=e.extend({method:H.literal("sampling/createMessage"),params:gz}),$4=$0.extend({model:H.string(),stopReason:H.optional(H.enum(["endTurn","stopSequence","maxTokens"]).or(H.string())),role:XZ,content:fz}),Z4=$0.extend({model:H.string(),stopReason:H.optional(H.enum(["endTurn","stopSequence","maxTokens","toolUse"]).or(H.string())),role:XZ,content:H.union([A5,H.array(A5)])}),hz=H.object({type:H.literal("boolean"),title:H.string().optional(),description:H.string().optional(),default:H.boolean().optional()}),uz=H.object({type:H.literal("string"),title:H.string().optional(),description:H.string().optional(),minLength:H.number().optional(),maxLength:H.number().optional(),format:H.enum(["email","uri","date","date-time"]).optional(),default:H.string().optional()}),mz=H.object({type:H.enum(["number","integer"]),title:H.string().optional(),description:H.string().optional(),minimum:H.number().optional(),maximum:H.number().optional(),default:H.number().optional()}),lz=H.object({type:H.literal("string"),title:H.string().optional(),description:H.string().optional(),enum:H.array(H.string()),default:H.string().optional()}),pz=H.object({type:H.literal("string"),title:H.string().optional(),description:H.string().optional(),oneOf:H.array(H.object({const:H.string(),title:H.string()})),default:H.string().optional()}),cz=H.object({type:H.literal("string"),title:H.string().optional(),description:H.string().optional(),enum:H.array(H.string()),enumNames:H.array(H.string()).optional(),default:H.string().optional()}),dz=H.union([lz,pz]),iz=H.object({type:H.literal("array"),title:H.string().optional(),description:H.string().optional(),minItems:H.number().optional(),maxItems:H.number().optional(),items:H.object({type:H.literal("string"),enum:H.array(H.string())}),default:H.array(H.string()).optional()}),nz=H.object({type:H.literal("array"),title:H.string().optional(),description:H.string().optional(),minItems:H.number().optional(),maxItems:H.number().optional(),items:H.object({anyOf:H.array(H.object({const:H.string(),title:H.string()}))}),default:H.array(H.string()).optional()}),az=H.union([iz,nz]),rz=H.union([cz,dz,az]),tz=H.union([rz,hz,uz,mz]),oz=e$.extend({mode:H.literal("form").optional(),message:H.string(),requestedSchema:H.object({type:H.literal("object"),properties:H.record(H.string(),tz),required:H.array(H.string()).optional()})}),sz=e$.extend({mode:H.literal("url"),message:H.string(),elicitationId:H.string(),url:H.string().url()}),ez=H.union([oz,sz]),Q4=e.extend({method:H.literal("elicitation/create"),params:ez}),$F=M0.extend({elicitationId:H.string()}),ZF=j0.extend({method:H.literal("notifications/elicitation/complete"),params:$F}),Y4=$0.extend({action:H.enum(["accept","decline","cancel"]),content:H.preprocess(($)=>$===null?void 0:$,H.record(H.string(),H.union([H.string(),H.number(),H.boolean(),H.array(H.string())])).optional())}),QF=H.object({type:H.literal("ref/resource"),uri:H.string()});var YF=H.object({type:H.literal("ref/prompt"),name:H.string()}),WF=q0.extend({ref:H.union([YF,QF]),argument:H.object({name:H.string(),value:H.string()}),context:H.object({arguments:H.record(H.string(),H.string()).optional()}).optional()}),GF=e.extend({method:H.literal("completion/complete"),params:WF});var W4=$0.extend({completion:H.looseObject({values:H.array(H.string()).max(100),total:H.optional(H.number().int()),hasMore:H.optional(H.boolean())})}),XF=H.object({uri:H.string().startsWith("file://"),name:H.string().optional(),_meta:H.record(H.string(),H.unknown()).optional()}),JF=e.extend({method:H.literal("roots/list"),params:q0.optional()}),KF=$0.extend({roots:H.array(XF)}),BF=j0.extend({method:H.literal("notifications/roots/list_changed"),params:M0.optional()}),JE=H.union([j5,rV,GF,Cz,Az,Uz,Wz,Gz,Jz,Bz,Vz,Ez,Iz,w5,T5,E5,C5]),KE=H.union([M5,P5,oV,BF,GZ]),BE=H.union([x1,$4,Z4,Y4,KF,I5,R5,k1]),HE=H.union([j5,e8,Q4,JF,w5,T5,E5,C5]),VE=H.union([M5,P5,yz,Fz,p8,s8,t8,GZ,ZF]),zE=H.union([x1,v8,W4,r8,c8,h8,u8,l8,B$,o8,I5,R5,k1]);class T extends Error{constructor($,Z,Q){super(`MCP error ${$}: ${Z}`);this.code=$,this.data=Q,this.name="McpError"}static fromError($,Z,Q){if($===E.UrlElicitationRequired&&Q){let Y=Q;if(Y.elicitations)return new r7(Y.elicitations,Z)}return new T($,Z,Q)}}class r7 extends T{constructor($,Z=`URL elicitation${$.length>1?"s":""} required`){super(E.UrlElicitationRequired,Z,{elicitations:$})}get elicitations(){return this.data?.elicitations??[]}}function L1($){return $==="completed"||$==="failed"||$==="cancelled"}import*as UF from"zod/v4-mini";var HF=Symbol("Let zodToJsonSchema decide on which parser to use");import{ZodFirstPartyTypeKind as zC}from"zod/v3";import{ZodFirstPartyTypeKind as wE}from"zod/v3";import{ZodFirstPartyTypeKind as tE}from"zod/v3";var nE=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function G4($){let Q=q5($)?.method;if(!Q)throw Error("Schema is missing a method literal");let Y=S7(Q);if(typeof Y!=="string")throw Error("Schema method literal must be a string");return Y}function X4($,Z){let Q=E0($,Z);if(!Q.success)throw Q.error;return Q.data}var qF=60000;class J4{constructor($){if(this._options=$,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(M5,(Z)=>{this._oncancel(Z)}),this.setNotificationHandler(P5,(Z)=>{this._onprogress(Z)}),this.setRequestHandler(j5,(Z)=>({})),this._taskStore=$?.taskStore,this._taskMessageQueue=$?.taskMessageQueue,this._taskStore)this.setRequestHandler(w5,async(Z,Q)=>{let Y=await this._taskStore.getTask(Z.params.taskId,Q.sessionId);if(!Y)throw new T(E.InvalidParams,"Failed to retrieve task: Task not found");return{...Y}}),this.setRequestHandler(T5,async(Z,Q)=>{let Y=async()=>{let W=Z.params.taskId;if(this._taskMessageQueue){let X;while(X=await this._taskMessageQueue.dequeue(W,Q.sessionId)){if(X.type==="response"||X.type==="error"){let J=X.message,B=J.id,K=this._requestResolvers.get(B);if(K)if(this._requestResolvers.delete(B),X.type==="response")K(J);else{let V=J,z=new T(V.error.code,V.error.message,V.error.data);K(z)}else{let V=X.type==="response"?"Response":"Error";this._onerror(Error(`${V} handler missing for request ${B}`))}continue}await this._transport?.send(X.message,{relatedRequestId:Q.requestId})}}let G=await this._taskStore.getTask(W,Q.sessionId);if(!G)throw new T(E.InvalidParams,`Task not found: ${W}`);if(!L1(G.status))return await this._waitForTaskUpdate(W,Q.signal),await Y();if(L1(G.status)){let X=await this._taskStore.getTaskResult(W,Q.sessionId);return this._clearTaskQueue(W),{...X,_meta:{...X._meta,[D1]:{taskId:W}}}}return await Y()};return await Y()}),this.setRequestHandler(E5,async(Z,Q)=>{try{let{tasks:Y,nextCursor:W}=await this._taskStore.listTasks(Z.params?.cursor,Q.sessionId);return{tasks:Y,nextCursor:W,_meta:{}}}catch(Y){throw new T(E.InvalidParams,`Failed to list tasks: ${Y instanceof Error?Y.message:String(Y)}`)}}),this.setRequestHandler(C5,async(Z,Q)=>{try{let Y=await this._taskStore.getTask(Z.params.taskId,Q.sessionId);if(!Y)throw new T(E.InvalidParams,`Task not found: ${Z.params.taskId}`);if(L1(Y.status))throw new T(E.InvalidParams,`Cannot cancel task in terminal status: ${Y.status}`);await this._taskStore.updateTaskStatus(Z.params.taskId,"cancelled","Client cancelled task execution.",Q.sessionId),this._clearTaskQueue(Z.params.taskId);let W=await this._taskStore.getTask(Z.params.taskId,Q.sessionId);if(!W)throw new T(E.InvalidParams,`Task not found after cancellation: ${Z.params.taskId}`);return{_meta:{},...W}}catch(Y){if(Y instanceof T)throw Y;throw new T(E.InvalidRequest,`Failed to cancel task: ${Y instanceof Error?Y.message:String(Y)}`)}})}async _oncancel($){if(!$.params.requestId)return;this._requestHandlerAbortControllers.get($.params.requestId)?.abort($.params.reason)}_setupTimeout($,Z,Q,Y,W=!1){this._timeoutInfo.set($,{timeoutId:setTimeout(Y,Z),startTime:Date.now(),timeout:Z,maxTotalTimeout:Q,resetTimeoutOnProgress:W,onTimeout:Y})}_resetTimeout($){let Z=this._timeoutInfo.get($);if(!Z)return!1;let Q=Date.now()-Z.startTime;if(Z.maxTotalTimeout&&Q>=Z.maxTotalTimeout)throw this._timeoutInfo.delete($),T.fromError(E.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:Z.maxTotalTimeout,totalElapsed:Q});return clearTimeout(Z.timeoutId),Z.timeoutId=setTimeout(Z.onTimeout,Z.timeout),!0}_cleanupTimeout($){let Z=this._timeoutInfo.get($);if(Z)clearTimeout(Z.timeoutId),this._timeoutInfo.delete($)}async connect($){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=$;let Z=this.transport?.onclose;this._transport.onclose=()=>{Z?.(),this._onclose()};let Q=this.transport?.onerror;this._transport.onerror=(W)=>{Q?.(W),this._onerror(W)};let Y=this._transport?.onmessage;this._transport.onmessage=(W,G)=>{if(Y?.(W,G),$Z(W)||g7(W))this._onresponse(W);else if(x8(W))this._onrequest(W,G);else if(v7(W))this._onnotification(W);else this._onerror(Error(`Unknown message type: ${JSON.stringify(W)}`))},await this._transport.start()}_onclose(){let $=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let Q of this._timeoutInfo.values())clearTimeout(Q.timeoutId);this._timeoutInfo.clear();for(let Q of this._requestHandlerAbortControllers.values())Q.abort();this._requestHandlerAbortControllers.clear();let Z=T.fromError(E.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let Q of $.values())Q(Z)}_onerror($){this.onerror?.($)}_onnotification($){let Z=this._notificationHandlers.get($.method)??this.fallbackNotificationHandler;if(Z===void 0)return;Promise.resolve().then(()=>Z($)).catch((Q)=>this._onerror(Error(`Uncaught error in notification handler: ${Q}`)))}_onrequest($,Z){let Q=this._requestHandlers.get($.method)??this.fallbackRequestHandler,Y=this._transport,W=$.params?._meta?.[D1]?.taskId;if(Q===void 0){let K={jsonrpc:"2.0",id:$.id,error:{code:E.MethodNotFound,message:"Method not found"}};if(W&&this._taskMessageQueue)this._enqueueTaskMessage(W,{type:"error",message:K,timestamp:Date.now()},Y?.sessionId).catch((V)=>this._onerror(Error(`Failed to enqueue error response: ${V}`)));else Y?.send(K).catch((V)=>this._onerror(Error(`Failed to send an error response: ${V}`)));return}let G=new AbortController;this._requestHandlerAbortControllers.set($.id,G);let X=x7($.params)?$.params.task:void 0,J=this._taskStore?this.requestTaskStore($,Y?.sessionId):void 0,B={signal:G.signal,sessionId:Y?.sessionId,_meta:$.params?._meta,sendNotification:async(K)=>{if(G.signal.aborted)return;let V={relatedRequestId:$.id};if(W)V.relatedTask={taskId:W};await this.notification(K,V)},sendRequest:async(K,V,z)=>{if(G.signal.aborted)throw new T(E.ConnectionClosed,"Request was cancelled");let F={...z,relatedRequestId:$.id};if(W&&!F.relatedTask)F.relatedTask={taskId:W};let D=F.relatedTask?.taskId??W;if(D&&J)await J.updateTaskStatus(D,"input_required");return await this.request(K,V,F)},authInfo:Z?.authInfo,requestId:$.id,requestInfo:Z?.requestInfo,taskId:W,taskStore:J,taskRequestedTtl:X?.ttl,closeSSEStream:Z?.closeSSEStream,closeStandaloneSSEStream:Z?.closeStandaloneSSEStream};Promise.resolve().then(()=>{if(X)this.assertTaskHandlerCapability($.method)}).then(()=>Q($,B)).then(async(K)=>{if(G.signal.aborted)return;let V={result:K,jsonrpc:"2.0",id:$.id};if(W&&this._taskMessageQueue)await this._enqueueTaskMessage(W,{type:"response",message:V,timestamp:Date.now()},Y?.sessionId);else await Y?.send(V)},async(K)=>{if(G.signal.aborted)return;let V={jsonrpc:"2.0",id:$.id,error:{code:Number.isSafeInteger(K.code)?K.code:E.InternalError,message:K.message??"Internal error",...K.data!==void 0&&{data:K.data}}};if(W&&this._taskMessageQueue)await this._enqueueTaskMessage(W,{type:"error",message:V,timestamp:Date.now()},Y?.sessionId);else await Y?.send(V)}).catch((K)=>this._onerror(Error(`Failed to send response: ${K}`))).finally(()=>{if(this._requestHandlerAbortControllers.get($.id)===G)this._requestHandlerAbortControllers.delete($.id)})}_onprogress($){let{progressToken:Z,...Q}=$.params,Y=Number(Z),W=this._progressHandlers.get(Y);if(!W){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify($)}`));return}let G=this._responseHandlers.get(Y),X=this._timeoutInfo.get(Y);if(X&&G&&X.resetTimeoutOnProgress)try{this._resetTimeout(Y)}catch(J){this._responseHandlers.delete(Y),this._progressHandlers.delete(Y),this._cleanupTimeout(Y),G(J);return}W(Q)}_onresponse($){let Z=Number($.id),Q=this._requestResolvers.get(Z);if(Q){if(this._requestResolvers.delete(Z),$Z($))Q($);else{let G=new T($.error.code,$.error.message,$.error.data);Q(G)}return}let Y=this._responseHandlers.get(Z);if(Y===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify($)}`));return}this._responseHandlers.delete(Z),this._cleanupTimeout(Z);let W=!1;if($Z($)&&$.result&&typeof $.result==="object"){let G=$.result;if(G.task&&typeof G.task==="object"){let X=G.task;if(typeof X.taskId==="string")W=!0,this._taskProgressTokens.set(X.taskId,Z)}}if(!W)this._progressHandlers.delete(Z);if($Z($))Y($);else{let G=T.fromError($.error.code,$.error.message,$.error.data);Y(G)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream($,Z,Q){let{task:Y}=Q??{};if(!Y){try{yield{type:"result",result:await this.request($,Z,Q)}}catch(G){yield{type:"error",error:G instanceof T?G:new T(E.InternalError,String(G))}}return}let W;try{let G=await this.request($,k1,Q);if(G.task)W=G.task.taskId,yield{type:"taskCreated",task:G.task};else throw new T(E.InternalError,"Task creation did not return a task");while(!0){let X=await this.getTask({taskId:W},Q);if(yield{type:"taskStatus",task:X},L1(X.status)){if(X.status==="completed")yield{type:"result",result:await this.getTaskResult({taskId:W},Z,Q)};else if(X.status==="failed")yield{type:"error",error:new T(E.InternalError,`Task ${W} failed`)};else if(X.status==="cancelled")yield{type:"error",error:new T(E.InternalError,`Task ${W} was cancelled`)};return}if(X.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:W},Z,Q)};return}let J=X.pollInterval??this._options?.defaultTaskPollInterval??1000;await new Promise((B)=>setTimeout(B,J)),Q?.signal?.throwIfAborted()}}catch(G){yield{type:"error",error:G instanceof T?G:new T(E.InternalError,String(G))}}}request($,Z,Q){let{relatedRequestId:Y,resumptionToken:W,onresumptiontoken:G,task:X,relatedTask:J}=Q??{};return new Promise((B,K)=>{let V=(A)=>{K(A)};if(!this._transport){V(Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{if(this.assertCapabilityForMethod($.method),X)this.assertTaskCapability($.method)}catch(A){V(A);return}Q?.signal?.throwIfAborted();let z=this._requestMessageId++,F={...$,jsonrpc:"2.0",id:z};if(Q?.onprogress)this._progressHandlers.set(z,Q.onprogress),F.params={...$.params,_meta:{...$.params?._meta||{},progressToken:z}};if(X)F.params={...F.params,task:X};if(J)F.params={...F.params,_meta:{...F.params?._meta||{},[D1]:J}};let D=(A)=>{this._responseHandlers.delete(z),this._progressHandlers.delete(z),this._cleanupTimeout(z),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:z,reason:String(A)}},{relatedRequestId:Y,resumptionToken:W,onresumptiontoken:G}).catch((j)=>this._onerror(Error(`Failed to send cancellation: ${j}`)));let N=A instanceof T?A:new T(E.RequestTimeout,String(A));K(N)};this._responseHandlers.set(z,(A)=>{if(Q?.signal?.aborted)return;if(A instanceof Error)return K(A);try{let N=E0(Z,A.result);if(!N.success)K(N.error);else B(N.data)}catch(N){K(N)}}),Q?.signal?.addEventListener("abort",()=>{D(Q?.signal?.reason)});let L=Q?.timeout??qF,U=()=>D(T.fromError(E.RequestTimeout,"Request timed out",{timeout:L}));this._setupTimeout(z,L,Q?.maxTotalTimeout,U,Q?.resetTimeoutOnProgress??!1);let q=J?.taskId;if(q){let A=(N)=>{let j=this._responseHandlers.get(z);if(j)j(N);else this._onerror(Error(`Response handler missing for side-channeled request ${z}`))};this._requestResolvers.set(z,A),this._enqueueTaskMessage(q,{type:"request",message:F,timestamp:Date.now()}).catch((N)=>{this._cleanupTimeout(z),K(N)})}else this._transport.send(F,{relatedRequestId:Y,resumptionToken:W,onresumptiontoken:G}).catch((A)=>{this._cleanupTimeout(z),K(A)})})}async getTask($,Z){return this.request({method:"tasks/get",params:$},I5,Z)}async getTaskResult($,Z,Q){return this.request({method:"tasks/result",params:$},Z,Q)}async listTasks($,Z){return this.request({method:"tasks/list",params:$},R5,Z)}async cancelTask($,Z){return this.request({method:"tasks/cancel",params:$},m7,Z)}async notification($,Z){if(!this._transport)throw Error("Not connected");this.assertNotificationCapability($.method);let Q=Z?.relatedTask?.taskId;if(Q){let X={...$,jsonrpc:"2.0",params:{...$.params,_meta:{...$.params?._meta||{},[D1]:Z.relatedTask}}};await this._enqueueTaskMessage(Q,{type:"notification",message:X,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes($.method)&&!$.params&&!Z?.relatedRequestId&&!Z?.relatedTask){if(this._pendingDebouncedNotifications.has($.method))return;this._pendingDebouncedNotifications.add($.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete($.method),!this._transport)return;let X={...$,jsonrpc:"2.0"};if(Z?.relatedTask)X={...X,params:{...X.params,_meta:{...X.params?._meta||{},[D1]:Z.relatedTask}}};this._transport?.send(X,Z).catch((J)=>this._onerror(J))});return}let G={...$,jsonrpc:"2.0"};if(Z?.relatedTask)G={...G,params:{...G.params,_meta:{...G.params?._meta||{},[D1]:Z.relatedTask}}};await this._transport.send(G,Z)}setRequestHandler($,Z){let Q=G4($);this.assertRequestHandlerCapability(Q),this._requestHandlers.set(Q,(Y,W)=>{let G=X4($,Y);return Promise.resolve(Z(G,W))})}removeRequestHandler($){this._requestHandlers.delete($)}assertCanSetRequestHandler($){if(this._requestHandlers.has($))throw Error(`A request handler for ${$} already exists, which would be overridden`)}setNotificationHandler($,Z){let Q=G4($);this._notificationHandlers.set(Q,(Y)=>{let W=X4($,Y);return Promise.resolve(Z(W))})}removeNotificationHandler($){this._notificationHandlers.delete($)}_cleanupTaskProgressHandler($){let Z=this._taskProgressTokens.get($);if(Z!==void 0)this._progressHandlers.delete(Z),this._taskProgressTokens.delete($)}async _enqueueTaskMessage($,Z,Q){if(!this._taskStore||!this._taskMessageQueue)throw Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let Y=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue($,Z,Q,Y)}async _clearTaskQueue($,Z){if(this._taskMessageQueue){let Q=await this._taskMessageQueue.dequeueAll($,Z);for(let Y of Q)if(Y.type==="request"&&x8(Y.message)){let W=Y.message.id,G=this._requestResolvers.get(W);if(G)G(new T(E.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(W);else this._onerror(Error(`Resolver missing for request ${W} during task ${$} cleanup`))}}}async _waitForTaskUpdate($,Z){let Q=this._options?.defaultTaskPollInterval??1000;try{let Y=await this._taskStore?.getTask($);if(Y?.pollInterval)Q=Y.pollInterval}catch{}return new Promise((Y,W)=>{if(Z.aborted){W(new T(E.InvalidRequest,"Request cancelled"));return}let G=setTimeout(Y,Q);Z.addEventListener("abort",()=>{clearTimeout(G),W(new T(E.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore($,Z){let Q=this._taskStore;if(!Q)throw Error("No task store configured");return{createTask:async(Y)=>{if(!$)throw Error("No request provided");return await Q.createTask(Y,$.id,{method:$.method,params:$.params},Z)},getTask:async(Y)=>{let W=await Q.getTask(Y,Z);if(!W)throw new T(E.InvalidParams,"Failed to retrieve task: Task not found");return W},storeTaskResult:async(Y,W,G)=>{await Q.storeTaskResult(Y,W,G,Z);let X=await Q.getTask(Y,Z);if(X){let J=GZ.parse({method:"notifications/tasks/status",params:X});if(await this.notification(J),L1(X.status))this._cleanupTaskProgressHandler(Y)}},getTaskResult:(Y)=>{return Q.getTaskResult(Y,Z)},updateTaskStatus:async(Y,W,G)=>{let X=await Q.getTask(Y,Z);if(!X)throw new T(E.InvalidParams,`Task "${Y}" not found - it may have been cleaned up`);if(L1(X.status))throw new T(E.InvalidParams,`Cannot update task "${Y}" from terminal status "${X.status}" to "${W}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await Q.updateTaskStatus(Y,W,G,Z);let J=await Q.getTask(Y,Z);if(J){let B=GZ.parse({method:"notifications/tasks/status",params:J});if(await this.notification(B),L1(J.status))this._cleanupTaskProgressHandler(Y)}},listTasks:(Y)=>{return Q.listTasks(Y,Z)}}}}function t7($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function o7($,Z){let Q={...$};for(let Y in Z){let W=Y,G=Z[W];if(G===void 0)continue;let X=Q[W];if(t7(X)&&t7(G))Q[W]={...X,...G};else Q[W]=G}return Q}var _J=I6(Q9(),1),xJ=I6(bJ(),1);function uM(){let $=new _J.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return xJ.default($),$}class z9{constructor($){this._ajv=$??uM()}getValidator($){let Z="$id"in $&&typeof $.$id==="string"?this._ajv.getSchema($.$id)??this._ajv.compile($):this._ajv.compile($);return(Q)=>{if(Z(Q))return{valid:!0,data:Q,errorMessage:void 0};else return{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(Z.errors)}}}}class F9{constructor($){this._client=$}async*callToolStream($,Z=B$,Q){let Y=this._client,W={...Q,task:Q?.task??(Y.isToolTask($.name)?{}:void 0)},G=Y.requestStream({method:"tools/call",params:$},Z,W),X=Y.getToolOutputValidator($.name);for await(let J of G){if(J.type==="result"&&X){let B=J.result;if(!B.structuredContent&&!B.isError){yield{type:"error",error:new T(E.InvalidRequest,`Tool ${$.name} has an output schema but did not return structured content`)};return}if(B.structuredContent)try{let K=X(B.structuredContent);if(!K.valid){yield{type:"error",error:new T(E.InvalidParams,`Structured content does not match the tool's output schema: ${K.errorMessage}`)};return}}catch(K){if(K instanceof T){yield{type:"error",error:K};return}yield{type:"error",error:new T(E.InvalidParams,`Failed to validate structured content: ${K instanceof Error?K.message:String(K)}`)};return}}yield J}}async getTask($,Z){return this._client.getTask({taskId:$},Z)}async getTaskResult($,Z,Q){return this._client.getTaskResult({taskId:$},Z,Q)}async listTasks($,Z){return this._client.listTasks($?{cursor:$}:void 0,Z)}async cancelTask($,Z){return this._client.cancelTask({taskId:$},Z)}requestStream($,Z,Q){return this._client.requestStream($,Z,Q)}}function kJ($,Z,Q){if(!$)throw Error(`${Q} does not support task creation (required for ${Z})`);switch(Z){case"tools/call":if(!$.tools?.call)throw Error(`${Q} does not support task creation for tools/call (required for ${Z})`);break;default:break}}function fJ($,Z,Q){if(!$)throw Error(`${Q} does not support task creation (required for ${Z})`);switch(Z){case"sampling/createMessage":if(!$.sampling?.createMessage)throw Error(`${Q} does not support task creation for sampling/createMessage (required for ${Z})`);break;case"elicitation/create":if(!$.elicitation?.create)throw Error(`${Q} does not support task creation for elicitation/create (required for ${Z})`);break;default:break}}function z6($,Z){if(!$||Z===null||typeof Z!=="object")return;if($.type==="object"&&$.properties&&typeof $.properties==="object"){let Q=Z,Y=$.properties;for(let W of Object.keys(Y)){let G=Y[W];if(Q[W]===void 0&&Object.prototype.hasOwnProperty.call(G,"default"))Q[W]=G.default;if(Q[W]!==void 0)z6(G,Q[W])}}if(Array.isArray($.anyOf)){for(let Q of $.anyOf)if(typeof Q!=="boolean")z6(Q,Z)}if(Array.isArray($.oneOf)){for(let Q of $.oneOf)if(typeof Q!=="boolean")z6(Q,Z)}}function mM($){if(!$)return{supportsFormMode:!1,supportsUrlMode:!1};let Z=$.form!==void 0,Q=$.url!==void 0;return{supportsFormMode:Z||!Z&&!Q,supportsUrlMode:Q}}class D9 extends J4{constructor($,Z){super(Z);if(this._clientInfo=$,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=Z?.capabilities??{},this._jsonSchemaValidator=Z?.jsonSchemaValidator??new z9,Z?.listChanged)this._pendingListChangedConfig=Z.listChanged}_setupListChangedHandlers($){if($.tools&&this._serverCapabilities?.tools?.listChanged)this._setupListChangedHandler("tools",s8,$.tools,async()=>{return(await this.listTools()).tools});if($.prompts&&this._serverCapabilities?.prompts?.listChanged)this._setupListChangedHandler("prompts",t8,$.prompts,async()=>{return(await this.listPrompts()).prompts});if($.resources&&this._serverCapabilities?.resources?.listChanged)this._setupListChangedHandler("resources",p8,$.resources,async()=>{return(await this.listResources()).resources})}get experimental(){if(!this._experimental)this._experimental={tasks:new F9(this)};return this._experimental}registerCapabilities($){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=o7(this._capabilities,$)}setRequestHandler($,Z){let Y=q5($)?.method;if(!Y)throw Error("Schema is missing a method literal");let W;if(X$(Y)){let X=Y;W=X._zod?.def?.value??X.value}else{let X=Y;W=X._def?.value??X.value}if(typeof W!=="string")throw Error("Schema method literal must be a string");let G=W;if(G==="elicitation/create"){let X=async(J,B)=>{let K=E0(Q4,J);if(!K.success){let A=K.error instanceof Error?K.error.message:String(K.error);throw new T(E.InvalidParams,`Invalid elicitation request: ${A}`)}let{params:V}=K.data;V.mode=V.mode??"form";let{supportsFormMode:z,supportsUrlMode:F}=mM(this._capabilities.elicitation);if(V.mode==="form"&&!z)throw new T(E.InvalidParams,"Client does not support form-mode elicitation requests");if(V.mode==="url"&&!F)throw new T(E.InvalidParams,"Client does not support URL-mode elicitation requests");let D=await Promise.resolve(Z(J,B));if(V.task){let A=E0(k1,D);if(!A.success){let N=A.error instanceof Error?A.error.message:String(A.error);throw new T(E.InvalidParams,`Invalid task creation result: ${N}`)}return A.data}let L=E0(Y4,D);if(!L.success){let A=L.error instanceof Error?L.error.message:String(L.error);throw new T(E.InvalidParams,`Invalid elicitation result: ${A}`)}let U=L.data,q=V.mode==="form"?V.requestedSchema:void 0;if(V.mode==="form"&&U.action==="accept"&&U.content&&q){if(this._capabilities.elicitation?.form?.applyDefaults)try{z6(q,U.content)}catch{}}return U};return super.setRequestHandler($,X)}if(G==="sampling/createMessage"){let X=async(J,B)=>{let K=E0(e8,J);if(!K.success){let U=K.error instanceof Error?K.error.message:String(K.error);throw new T(E.InvalidParams,`Invalid sampling request: ${U}`)}let{params:V}=K.data,z=await Promise.resolve(Z(J,B));if(V.task){let U=E0(k1,z);if(!U.success){let q=U.error instanceof Error?U.error.message:String(U.error);throw new T(E.InvalidParams,`Invalid task creation result: ${q}`)}return U.data}let D=V.tools||V.toolChoice?Z4:$4,L=E0(D,z);if(!L.success){let U=L.error instanceof Error?L.error.message:String(L.error);throw new T(E.InvalidParams,`Invalid sampling result: ${U}`)}return L.data};return super.setRequestHandler($,X)}return super.setRequestHandler($,Z)}assertCapability($,Z){if(!this._serverCapabilities?.[$])throw Error(`Server does not support ${$} (required for ${Z})`)}async connect($,Z){if(await super.connect($),$.sessionId!==void 0)return;try{let Q=await this.request({method:"initialize",params:{protocolVersion:b8,capabilities:this._capabilities,clientInfo:this._clientInfo}},v8,Z);if(Q===void 0)throw Error(`Server sent invalid initialize result: ${Q}`);if(!y7.includes(Q.protocolVersion))throw Error(`Server's protocol version is not supported: ${Q.protocolVersion}`);if(this._serverCapabilities=Q.capabilities,this._serverVersion=Q.serverInfo,$.setProtocolVersion)$.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($){switch($){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw Error(`Server does not support logging (required for ${$})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw Error(`Server does not support prompts (required for ${$})`);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 ${$})`);if($==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw Error(`Server does not support resource subscriptions (required for ${$})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw Error(`Server does not support tools (required for ${$})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw Error(`Server does not support completions (required for ${$})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability($){switch($){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw Error(`Client does not support roots list changed notifications (required for ${$})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability($){if(!this._capabilities)return;switch($){case"sampling/createMessage":if(!this._capabilities.sampling)throw Error(`Client does not support sampling capability (required for ${$})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw Error(`Client does not support elicitation capability (required for ${$})`);break;case"roots/list":if(!this._capabilities.roots)throw Error(`Client does not support roots capability (required for ${$})`);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 ${$})`);break;case"ping":break}}assertTaskCapability($){kJ(this._serverCapabilities?.tasks?.requests,$,"Server")}assertTaskHandlerCapability($){if(!this._capabilities)return;fJ(this._capabilities.tasks?.requests,$,"Client")}async ping($){return this.request({method:"ping"},x1,$)}async complete($,Z){return this.request({method:"completion/complete",params:$},W4,Z)}async setLoggingLevel($,Z){return this.request({method:"logging/setLevel",params:{level:$}},x1,Z)}async getPrompt($,Z){return this.request({method:"prompts/get",params:$},r8,Z)}async listPrompts($,Z){return this.request({method:"prompts/list",params:$},c8,Z)}async listResources($,Z){return this.request({method:"resources/list",params:$},h8,Z)}async listResourceTemplates($,Z){return this.request({method:"resources/templates/list",params:$},u8,Z)}async readResource($,Z){return this.request({method:"resources/read",params:$},l8,Z)}async subscribeResource($,Z){return this.request({method:"resources/subscribe",params:$},x1,Z)}async unsubscribeResource($,Z){return this.request({method:"resources/unsubscribe",params:$},x1,Z)}async callTool($,Z=B$,Q){if(this.isToolTaskRequired($.name))throw new T(E.InvalidRequest,`Tool "${$.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let Y=await this.request({method:"tools/call",params:$},Z,Q),W=this.getToolOutputValidator($.name);if(W){if(!Y.structuredContent&&!Y.isError)throw new T(E.InvalidRequest,`Tool ${$.name} has an output schema but did not return structured content`);if(Y.structuredContent)try{let G=W(Y.structuredContent);if(!G.valid)throw new T(E.InvalidParams,`Structured content does not match the tool's output schema: ${G.errorMessage}`)}catch(G){if(G instanceof T)throw G;throw new T(E.InvalidParams,`Failed to validate structured content: ${G instanceof Error?G.message:String(G)}`)}}return Y}isToolTask($){if(!this._serverCapabilities?.tasks?.requests?.tools?.call)return!1;return this._cachedKnownTaskTools.has($)}isToolTaskRequired($){return this._cachedRequiredTaskTools.has($)}cacheToolMetadata($){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let Z of $){if(Z.outputSchema){let Y=this._jsonSchemaValidator.getValidator(Z.outputSchema);this._cachedToolOutputValidators.set(Z.name,Y)}let Q=Z.execution?.taskSupport;if(Q==="required"||Q==="optional")this._cachedKnownTaskTools.add(Z.name);if(Q==="required")this._cachedRequiredTaskTools.add(Z.name)}}getToolOutputValidator($){return this._cachedToolOutputValidators.get($)}async listTools($,Z){let Q=await this.request({method:"tools/list",params:$},o8,Z);return this.cacheToolMetadata(Q.tools),Q}_setupListChangedHandler($,Z,Q,Y){let W=n7.safeParse(Q);if(!W.success)throw Error(`Invalid ${$} listChanged options: ${W.error.message}`);if(typeof Q.onChanged!=="function")throw Error(`Invalid ${$} listChanged options: onChanged must be a function`);let{autoRefresh:G,debounceMs:X}=W.data,{onChanged:J}=Q,B=async()=>{if(!G){J(null,null);return}try{let V=await Y();J(null,V)}catch(V){let z=V instanceof Error?V:Error(String(V));J(z,null)}},K=()=>{if(X){let V=this._listChangedDebounceTimers.get($);if(V)clearTimeout(V);let z=setTimeout(B,X);this._listChangedDebounceTimers.set($,z)}else B()};this.setNotificationHandler(Z,K)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}}var T3=I6(w3(),1);import I9 from"process";import{PassThrough as Aj}from"stream";class w9{append($){this._buffer=this._buffer?Buffer.concat([this._buffer,$]):$}readMessage(){if(!this._buffer)return null;let $=this._buffer.indexOf(`
|
|
198
|
+
`);if($===-1)return null;let Z=this._buffer.toString("utf8",0,$).replace(/\r$/,"");return this._buffer=this._buffer.subarray($+1),qj(Z)}clear(){this._buffer=void 0}}function qj($){return h7.parse(JSON.parse($))}function I3($){return JSON.stringify($)+`
|
|
199
|
+
`}var Nj=I9.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function T9(){let $={};for(let Z of Nj){let Q=I9.env[Z];if(Q===void 0)continue;if(Q.startsWith("()"))continue;$[Z]=Q}return $}class E9{constructor($){if(this._readBuffer=new w9,this._stderrStream=null,this._serverParams=$,$.stderr==="pipe"||$.stderr==="overlapped")this._stderrStream=new Aj}async start(){if(this._process)throw Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise(($,Z)=>{if(this._process=T3.default(this._serverParams.command,this._serverParams.args??[],{env:{...T9(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:I9.platform==="win32",cwd:this._serverParams.cwd}),this._process.on("error",(Q)=>{Z(Q),this.onerror?.(Q)}),this._process.on("spawn",()=>{$()}),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 $=this._readBuffer.readMessage();if($===null)break;this.onmessage?.($)}catch($){this.onerror?.($)}}async close(){if(this._process){let $=this._process;this._process=void 0;let Z=new Promise((Q)=>{$.once("close",()=>{Q()})});try{$.stdin?.end()}catch{}if(await Promise.race([Z,new Promise((Q)=>setTimeout(Q,2000).unref())]),$.exitCode===null){try{$.kill("SIGTERM")}catch{}await Promise.race([Z,new Promise((Q)=>setTimeout(Q,2000).unref())])}if($.exitCode===null)try{$.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send($){return new Promise((Z)=>{if(!this._process?.stdin)throw Error("Not connected");let Q=I3($);if(this._process.stdin.write(Q))Z();else this._process.stdin.once("drain",Z)})}}var Ij=1e4,Tj=60000,R3=50000;function p1($){if($.length<=R3)return $;let Z=Math.floor(R3/2);return`${$.slice(0,Z)}
|
|
200
200
|
|
|
201
201
|
\u2026 [${$.length-Z*2} characters omitted] \u2026
|
|
202
202
|
|
|
203
|
-
${$.slice(-Z)}`}function
|
|
204
|
-
${Z.text}`)}];if(Z.mimeType?.startsWith("image/"))return[{type:"image",mimeType:Z.mimeType,data:Z.blob,evictable:!0}];return[{type:"text",text:`[resource ${Z.uri}, ${Z.mimeType??"application/octet-stream"}, ${Z.blob.length.toLocaleString()} base64 characters]`}]}function
|
|
205
|
-
${j.text}`)});continue}if(j.mimeType?.startsWith("image/")){N.push({type:"image",mimeType:j.mimeType,data:j.blob,evictable:!0});continue}N.push({type:"text",text:`[resource ${j.uri}, ${j.mimeType??"application/octet-stream"}, ${j.blob.length.toLocaleString()} base64 characters]`})}return{content:N.length>0?N:[{type:"text",text:"(empty)"}]}}catch(A){return
|
|
206
|
-
`),
|
|
203
|
+
${$.slice(-Z)}`}function D6($){try{return JSON.stringify($,null,2)}catch{return String($)}}function C3($,Z){return $.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"_").replace(/^_+|_+$/g,"")||Z}function Ej($){if($.type==="text")return[{type:"text",text:p1($.text)}];if($.type==="image")return[{type:"image",mimeType:$.mimeType,data:$.data,evictable:!0}];if($.type==="audio")return[{type:"text",text:`[audio ${$.mimeType}, ${$.data.length.toLocaleString()} base64 characters]`}];if($.type==="resource_link")return[{type:"text",text:p1(D6({type:$.type,uri:$.uri,name:$.name,...$.description?{description:$.description}:{},...$.mimeType?{mimeType:$.mimeType}:{}}))}];let Z=$.resource;if("text"in Z)return[{type:"text",text:p1(`[resource ${Z.uri}]
|
|
204
|
+
${Z.text}`)}];if(Z.mimeType?.startsWith("image/"))return[{type:"image",mimeType:Z.mimeType,data:Z.blob,evictable:!0}];return[{type:"text",text:`[resource ${Z.uri}, ${Z.mimeType??"application/octet-stream"}, ${Z.blob.length.toLocaleString()} base64 characters]`}]}function Rj($){let Z=$.content.flatMap(Ej);if(Z.length===0&&$.structuredContent!==void 0)Z.push({type:"text",text:p1(D6($.structuredContent))});if(Z.length===0)Z.push({type:"text",text:"(no content)"});return{content:Z,...$.structuredContent!==void 0?{details:{structuredContent:$.structuredContent}}:{},...$.isError?{isError:!0}:{}}}function Cj($){return typeof $==="object"&&$!==null&&Array.isArray($.content)}function S3($){return typeof $==="number"&&Number.isFinite($)&&$>0}function Sj($,Z){if(typeof $!=="object"||$===null)return;let Q=$;if(typeof Q.command!=="string"||Q.command.trim().length===0)return;if(Q.args!==void 0&&(!Array.isArray(Q.args)||Q.args.some((W)=>typeof W!=="string")))return;if(Q.env!==void 0&&(typeof Q.env!=="object"||Q.env===null||Array.isArray(Q.env)||Object.values(Q.env).some((W)=>typeof W!=="string")))return;if(Q.cwd!==void 0&&typeof Q.cwd!=="string")return;if(Q.startupTimeoutMs!==void 0&&!S3(Q.startupTimeoutMs))return;if(Q.toolTimeoutMs!==void 0&&!S3(Q.toolTimeoutMs))return;let Y=typeof Q.cwd==="string"?Pj(Q.cwd)?Q.cwd:wj(Z,Q.cwd):void 0;return{command:Q.command,...Q.args?{args:Q.args}:{},...Q.env?{env:Q.env}:{},...Y?{cwd:Y}:{},...Q.startupTimeoutMs?{startupTimeoutMs:Q.startupTimeoutMs}:{},...Q.toolTimeoutMs?{toolTimeoutMs:Q.toolTimeoutMs}:{}}}async function yj($){let Z;try{Z=await Oj($,"utf8")}catch(Q){if(Q.code==="ENOENT")return{servers:{}};return{servers:{},error:Q instanceof Error?Q.message:String(Q)}}try{let Q=JSON.parse(Z);if(typeof Q!=="object"||Q===null||Q.mcpServers===void 0)return{servers:{}};if(typeof Q.mcpServers!=="object"||Q.mcpServers===null||Array.isArray(Q.mcpServers))return{servers:{},error:"mcpServers must be an object"};let Y={},W=[];for(let[G,X]of Object.entries(Q.mcpServers)){let J=Sj(X,jj($));if(J)Y[G]=J;else W.push(G)}return{servers:Y,...W.length>0?{error:`invalid MCP server config${W.length===1?"":"s"}: ${W.join(", ")}`}:{}}}catch(Q){return{servers:{},error:Q instanceof Error?Q.message:String(Q)}}}async function bj($={}){let Z=[$.userFile??E3(Mj(),".mu","config.json"),...$.projectDir?[E3($.projectDir,".mu","config.json")]:[]],Q={},Y=[];for(let W of Z){let G=await yj(W);if(Object.assign(Q,G.servers),G.error)Y.push({file:W,message:G.error})}return{servers:Q,errors:Y}}async function _j($,Z,Q){let Y=[],W;do{let G=await $.listResources(W?{cursor:W}:void 0,{signal:Z,timeout:Q});Y.push(...G.resources),W=G.nextCursor}while(W);return Y}function xj($){let Z=[];return{name:"mcp",activate:async(Q)=>{let Y=new Set;for(let[W,G]of Object.entries($)){let X=C3(W,"server"),J=new D9({name:"mu",version:"0.0.1"}),B=new E9({command:G.command,...G.args?{args:G.args}:{},env:{...T9(),...G.env??{}},...G.cwd?{cwd:G.cwd}:{},stderr:"pipe"});B.stderr?.on("data",(L)=>{let U=String(L).trim();if(U)Q.log(`${W}: ${U}`)});try{await J.connect(B,{timeout:G.startupTimeoutMs??Ij})}catch(L){await B.close().catch(()=>{}),Q.log(`could not connect ${W}: ${L instanceof Error?L.message:String(L)}`);continue}Z.push(J);let K=G.toolTimeoutMs??Tj,V=[],z;try{do{let L=await J.listTools(z?{cursor:z}:void 0,{timeout:K});V.push(...L.tools),z=L.nextCursor}while(z)}catch(L){Z.pop(),await J.close().catch(()=>{}),Q.log(`could not discover tools from ${W}: ${L instanceof Error?L.message:String(L)}`);continue}for(let L of V){let U=`mcp_${X}_${C3(L.name,"tool")}`,q=2;while(Y.has(U))U=`${U}_${q++}`;Y.add(U),Q.registerTool({name:U,description:L.description??`Run the ${L.name} tool provided by the ${W} MCP server.`,inputSchema:L.inputSchema,...L.annotations?.readOnlyHint&&!L.annotations.destructiveHint?{isConcurrencySafe:()=>!0}:{},execute:async(A,N,j,P)=>{try{let O=await J.callTool({name:L.name,arguments:N},void 0,{signal:j,timeout:K,resetTimeoutOnProgress:!0,maxTotalTimeout:K,onprogress:({progress:C,total:g})=>{P?.([{type:"text",text:`mcp progress ${C}${g===void 0?"":`/${g}`}`}])}});if(!Cj(O))return{content:[{type:"text",text:p1(D6(O.toolResult))}]};return Rj(O)}catch(O){return S(`MCP tool ${W}/${L.name} failed: ${O instanceof Error?O.message:String(O)}`)}}})}if(!J.getServerCapabilities()?.resources)continue;let F=`mcp_${X}_resources_list`;if(!Y.has(F))Y.add(F),Q.registerTool({name:F,description:`List resources exposed by the ${W} MCP server.`,inputSchema:{type:"object",properties:{},additionalProperties:!1},isConcurrencySafe:()=>!0,execute:async(L,U,q)=>{try{return{content:[{type:"text",text:p1(D6(await _j(J,q,K)))}]}}catch(A){return S(`Could not list MCP resources from ${W}: ${A instanceof Error?A.message:String(A)}`)}}});let D=`mcp_${X}_resource_read`;if(!Y.has(D))Y.add(D),Q.registerTool({name:D,description:`Read a resource exposed by the ${W} MCP server.`,inputSchema:{type:"object",properties:{uri:{type:"string",description:"Resource URI to read"}},required:["uri"],additionalProperties:!1},isConcurrencySafe:()=>!0,execute:async(L,U,q)=>{if(typeof U.uri!=="string"||U.uri.length===0)return S("uri must be a non-empty string");try{let A=await J.readResource({uri:U.uri},{signal:q,timeout:K}),N=[];for(let j of A.contents){if("text"in j){N.push({type:"text",text:p1(`[resource ${j.uri}]
|
|
205
|
+
${j.text}`)});continue}if(j.mimeType?.startsWith("image/")){N.push({type:"image",mimeType:j.mimeType,data:j.blob,evictable:!0});continue}N.push({type:"text",text:`[resource ${j.uri}, ${j.mimeType??"application/octet-stream"}, ${j.blob.length.toLocaleString()} base64 characters]`})}return{content:N.length>0?N:[{type:"text",text:"(empty)"}]}}catch(A){return S(`Could not read MCP resource ${U.uri}: ${A instanceof Error?A.message:String(A)}`)}}})}},deactivate:async()=>{await Promise.allSettled(Z.splice(0).map((Q)=>Q.close()))}}}async function R9($,Z,Q={}){let Y=await $.contextMessages?.()??[];return{...Q,model:Q.model??Z,systemPrompt:Q.systemPrompt??$.promptFor(Z),tools:[...$.toolset,...Q.tools??[]],permissions:[...$.permissionDefaults,...Q.permissions??[]],...Y.length>0?{initialMessages:Y}:{},...$.refreshContext?{refreshContext:$.refreshContext}:{},...$.carryoverExtractor?{carryoverExtractor:$.carryoverExtractor}:{},...Q.runtime??$.runtime?{runtime:Q.runtime??$.runtime}:{},...Q.checkpointProvider??$.checkpointProvider?{checkpointProvider:Q.checkpointProvider??$.checkpointProvider}:{}}}async function kj($,Z={},Q=(Y)=>import(Y)){let Y=await Q($),W=Y.default??Y.profile??Y.codingProfile;if(typeof W==="function")return await W(Z);if(W&&typeof W==="object"&&"toolset"in W)return W;throw Error(`Module "${$}" does not export a profile`)}var L6=30000,fj=1000;async function y3($){let Z=$.getReader(),Q=new TextDecoder,Y=new S1;for(;;){let{done:W,value:G}=await Z.read();if(W)break;Y.append(Q.decode(G,{stream:!0}))}return Y.append(Q.decode()),Y.read()}function b3($,Z){if(process.platform==="win32"){try{Bun.spawn(["taskkill.exe","/PID",String($.pid),"/T","/F"],{stdin:"ignore",stdout:"ignore",stderr:"ignore",windowsHide:!0})}catch{$.kill(Z)}return}try{process.kill(-$.pid,Z)}catch{$.kill(Z)}}async function vj($,Z,Q){let Y=Bun.spawn(["sh","-c",$],{stdin:new TextEncoder().encode(Z),stdout:"pipe",stderr:"pipe",detached:process.platform!=="win32"}),W,G=setTimeout(()=>{b3(Y,"SIGTERM"),W=setTimeout(()=>b3(Y,"SIGKILL"),fj)},Q);try{let[X,J,B]=await Promise.all([y3(Y.stdout),y3(Y.stderr),Y.exited]);return{exitCode:B,stdout:X,stderr:J}}finally{if(clearTimeout(G),W)clearTimeout(W)}}function _3($,Z){if(!$||$==="*")return!0;let Q=$.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${Q}$`).test(Z)}function C9($){let Z=$.trim();if(!Z.startsWith("{"))return;try{return JSON.parse(Z)}catch{return}}function gj($,Z=vj){let Q=(Y)=>$.filter((W)=>W.event===Y);return{name:"shell-hooks",activate(Y){let W=Q("PreToolUse");if(W.length>0)Y.onToolCall(async(J)=>{for(let B of W){if(!_3(B.matcher,J.toolName))continue;let K=JSON.stringify({event:"PreToolUse",tool_name:J.toolName,tool_call_id:J.toolCallId,tool_input:J.args}),V=await Z(B.command,K,B.timeoutMs??L6),z=C9(V.stdout);if(V.exitCode===2)return{block:!0,reason:(typeof z?.reason==="string"?z.reason:void 0)??V.stderr.trim()??`Blocked by ${B.command}`};if(V.exitCode===0&&z?.tool_input&&typeof z.tool_input==="object")return{args:z.tool_input}}return});let G=Q("PostToolUse");if(G.length>0)Y.onToolResult(async(J)=>{for(let B of G){if(!_3(B.matcher,J.toolName))continue;let K=J.result.content.filter((D)=>D.type==="text").map((D)=>D.text).join(`
|
|
206
|
+
`),V=JSON.stringify({event:"PostToolUse",tool_name:J.toolName,tool_call_id:J.toolCallId,tool_output:K,is_error:J.isError}),z=await Z(B.command,V,B.timeoutMs??L6),F=C9(z.stdout);if(typeof F?.tool_output==="string")return{content:[{type:"text",text:F.tool_output}]}}return});let X=Q("UserPromptSubmit");if(X.length>0)Y.onInput(async(J)=>{for(let B of X){let K=await Z(B.command,JSON.stringify({event:"UserPromptSubmit",prompt:J}),B.timeoutMs??L6);if(K.exitCode===2)return{consume:!0};let V=C9(K.stdout);if(typeof V?.prompt==="string")return{text:V.prompt}}return});for(let J of["SessionStart","Stop"]){let B=Q(J);if(B.length===0)continue;let K=J==="SessionStart"?"session_start":"agent_end";Y.on(K,()=>{for(let V of B)Z(V.command,JSON.stringify({event:J}),V.timeoutMs??L6).catch((z)=>Y.log(`${J} hook failed: ${z instanceof Error?z.message:String(z)}`))})}}}}import{readdir as hj,readFile as uj,stat as mj}from"fs/promises";import{homedir as lj}from"os";import{basename as pj,join as U6}from"path";async function S9($){try{let Z=await uj(U6($,"SKILL.md"),"utf8"),{meta:Q,body:Y}=L5(Z),W=typeof Q.name==="string"&&Q.name?Q.name:pj($),G=typeof Q.description==="string"&&Q.description?Q.description:`The ${W} skill`;return{name:W,description:G,body:Y,directory:$}}catch{return}}async function cj($){let Z=[];for(let Q of $){let Y;try{Y=await hj(Q)}catch{continue}for(let W of Y.sort()){let G=U6(Q,W);try{if(!(await mj(G)).isDirectory())continue}catch{continue}let X=await S9(G);if(X)Z.push(X)}}return Z}function dj($){let Z=[U6(lj(),".mu","skills")];if($)Z.push(U6($,".mu","skills"));return Z}function x3($){if($.length===0)return"";return`Available skills (load one with the skill tool when it is relevant):
|
|
207
207
|
${$.map((Q)=>`- ${Q.name}: ${Q.description}`).join(`
|
|
208
|
-
`)}`}function
|
|
208
|
+
`)}`}function ij($){return{name:"skills",activate(Z){if($.length===0)return;let Q=new Map($.map((Y)=>[Y.name,Y]));Z.registerTool({name:"skill",description:`Load the full instructions for a skill. ${x3($)}`,inputSchema:{type:"object",properties:{name:{type:"string",description:"The skill to load"}},required:["name"]},isConcurrencySafe:()=>!0,execute:async(Y,W)=>{let G=W.name??"",X=Q.get(G),J=X?await S9(X.directory)??X:void 0;if(!J)return{content:[{type:"text",text:`No such skill: ${G}. Available: ${[...Q.keys()].join(", ")}`}],isError:!0};return{content:[{type:"text",text:`Skill "${J.name}" (files are in ${J.directory}):
|
|
209
209
|
|
|
210
|
-
${J.body}`}],details:{skill:J.name}}}}),Z.onContext((
|
|
210
|
+
${J.body}`}],details:{skill:J.name}}}}),Z.onContext((Y)=>Y),Z.log(`loaded ${$.length} skill(s)`)}}}import{z as nj}from"zod";function aj($){return typeof $==="string"?{content:[{type:"text",text:$}]}:$}function r($){let Z=nj.toJSONSchema($.inputSchema,{io:"input"}),Q=(G)=>{let X=G;if($.coerceInput)try{X=$.coerceInput(G)}catch{X=G}return $.inputSchema.safeParse(X)},Y=$.isConcurrencySafe,W=$.changesState;return{name:$.name,description:$.description,inputSchema:Z,...Y?{isConcurrencySafe:(G)=>{let X=Q(G);if(!X.success)return!1;try{return Y(X.data)===!0}catch{return!1}}}:{},...$.executionMode?{executionMode:$.executionMode}:{},...W!==void 0?{changesState:typeof W==="function"?(G)=>{let X=Q(G);if(!X.success)return!0;try{return W(X.data)===!0}catch{return!0}}:W}:{},...$.permissionScope?{permissionScope:(G)=>{let X=Q(G);return X.success?$.permissionScope?.(X.data)??$.name:$.name}}:{},...$.permissionPattern?{permissionPattern:(G)=>{let X=Q(G);return X.success?$.permissionPattern?.(X.data)??JSON.stringify(G):JSON.stringify(G)}}:{},...$.permissionDetails?{permissionDetails:async(G)=>{let X=Q(G);return X.success?$.permissionDetails?.(X.data):void 0}}:{},execute:async(G,X,J,B)=>{let K=Q(X);if(!K.success){let z=K.error.issues.map((F)=>`${F.path.join(".")||"(root)"}: ${F.message}`).join("; ");return S(`Invalid arguments for ${$.name}: ${z}`)}let V=(z)=>B?.([{type:"text",text:z}]);return aj(await $.execute(K.data,{toolCallId:G,signal:J,update:V}))}}}function q6($,Z="text"){let Q=Math.max(0,...[...$.matchAll(/`+/g)].map((W)=>W[0].length)),Y="`".repeat(Math.max(3,Q+1));return`${Y}${Z}
|
|
211
211
|
${$}
|
|
212
|
-
${
|
|
213
|
-
`}function
|
|
214
|
-
`)}function
|
|
215
|
-
`);return["<details>",`<summary>Tool call: <code>${
|
|
216
|
-
`)});if($.errorMessage)Z.push(`> Error: ${$.errorMessage}`);return["## Mu",
|
|
217
|
-
`)}function
|
|
218
|
-
`),Q=$.details===void 0?[]:["","**Details**","",
|
|
219
|
-
`)}function
|
|
220
|
-
`)}function
|
|
212
|
+
${Y}`}function k3($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function A6($){let Z=new Date($);return Number.isNaN(Z.getTime())?"":`_${Z.toISOString()}_
|
|
213
|
+
`}function f3($){return`> [Image omitted from text export: ${$}]`}function v3($){return $.content.map((Z)=>Z.type==="text"?Z.text:f3(Z.mimeType))}function rj($){return["## User",A6($.timestamp),...v3($)].filter(Boolean).join(`
|
|
214
|
+
`)}function tj($){let Z=$.content.map((Q)=>{if(Q.type==="text")return Q.text;if(Q.type==="thinking")return["<details>","<summary>Thinking</summary>","",Q.thinking,"","</details>"].join(`
|
|
215
|
+
`);return["<details>",`<summary>Tool call: <code>${k3(Q.name)}</code></summary>`,"",q6(JSON.stringify(Q.arguments,null,2)??"null","json"),"","</details>"].join(`
|
|
216
|
+
`)});if($.errorMessage)Z.push(`> Error: ${$.errorMessage}`);return["## Mu",A6($.timestamp),...Z].filter(Boolean).join(`
|
|
217
|
+
`)}function oj($){let Z=$.content.map((Y)=>Y.type==="text"?Y.text:f3(Y.mimeType)).join(`
|
|
218
|
+
`),Q=$.details===void 0?[]:["","**Details**","",q6(JSON.stringify($.details,null,2)??"null","json")];return["<details>",`<summary>Tool result: <code>${k3($.toolName)}</code>${$.isError?" (error)":""}</summary>`,"",A6($.timestamp),q6(Z||"(no output)"),...Q,"","</details>"].filter(Boolean).join(`
|
|
219
|
+
`)}function sj($){let Z=$.customType.replaceAll(/[^\p{L}\p{N} _-]/gu,"").trim();return[`## ${$.customType==="user_shell_command"?"User shell":Z||"Context"}`,A6($.timestamp),...v3($).map((Y)=>q6(Y))].filter(Boolean).join(`
|
|
220
|
+
`)}function ej($){return $.role!=="custom"||$.display===!0||$.customType==="user_shell_command"}function $P($){if($.role==="user")return rj($);if($.role==="assistant")return tj($);if($.role==="toolResult")return oj($);return sj($)}function ZP($,Z={}){let Q=$.activePath().filter((X)=>X.type==="message").map((X)=>X.message).filter(ej),Y=Z.exportedAt??new Date,W=[Z.sessionId?`- Session: \`${Z.sessionId}\``:void 0,Z.model?`- Model: \`${Z.model}\``:void 0,`- Exported: ${Y.toISOString()}`].filter((X)=>X!==void 0),G=Q.map($P);return{markdown:["# Mu chat transcript","",...W,...G.length>0?["",G.join(`
|
|
221
221
|
|
|
222
222
|
`)]:[],""].join(`
|
|
223
|
-
`),messageCount:Q.length}}import{z as
|
|
224
|
-
`)
|
|
225
|
-
`)Y=!0,W+=V,X=!1;continue}if(z==="$"||z==="`"||"<>(){}".includes(z))return;if(z==="#"&&!Y)return;if(z===`
|
|
226
|
-
`||z==="\r"){if(z==="\r"&&$[B+1]===`
|
|
227
|
-
`)B++;if(!K())return;X=!0;continue}if(/\s/.test(z)){J();continue}if(z===";"){if(!K())return;X=!0;continue}if(z==="&"){if($[B+1]!=="&"||!K())return;B++,X=!1;continue}if(z==="|"){let V=$[B+1]==="|";if(!K())return;if(V)B++;X=!1;continue}Y=!0,W+=z,X=!1}if(G)return;if(J(),Q.length>0)Z.push(Q);return Z.length>0&&(Q.length>0||X)?Z:void 0}function V3($){let Z=H3($);return Z?.length&&Z.every(Ej)?"inspect":"other"}function PZ($){return V3($)==="inspect"}function R0($,Z=30000,Q=1000){let W=$.split(`
|
|
228
|
-
`);if($.length<=Z&&W.length<=Q)return{text:$,truncated:!1};if(W.length>Q){let Y=W.slice(0,Math.floor(Q/2)),G=W.slice(-Math.floor(Q/2)),X=W.length-Y.length-G.length,J=`${Y.join(`
|
|
223
|
+
`),messageCount:Q.length}}import{z as fZ}from"zod";import{delimiter as AP,dirname as NP}from"path";import{accessSync as e3,constants as $K,statSync as ZK}from"fs";import{lstat as KP,open as BP,readdir as HP}from"fs/promises";import{dirname as g9,relative as _Z,resolve as w1}from"path";import{z as P1}from"zod";function x0($,Z=30000,Q=1000){let Y=$.split(`
|
|
224
|
+
`);if($.length<=Z&&Y.length<=Q)return{text:$,truncated:!1};if(Y.length>Q){let W=Y.slice(0,Math.floor(Q/2)),G=Y.slice(-Math.floor(Q/2)),X=Y.length-W.length-G.length,J=`${W.join(`
|
|
229
225
|
`)}
|
|
230
226
|
|
|
231
227
|
\u2026 [${X} lines omitted] \u2026
|
|
232
228
|
|
|
233
229
|
${G.join(`
|
|
234
|
-
`)}`;return{text:J.length>Z?
|
|
230
|
+
`)}`;return{text:J.length>Z?g3(J,Z):J,truncated:!0}}return{text:g3($,Z),truncated:!0}}function g3($,Z){let Q=Math.floor(Z/2),Y=$.length-Q*2;return`${$.slice(0,Q)}
|
|
231
|
+
|
|
232
|
+
\u2026 [${Y} characters omitted] \u2026
|
|
233
|
+
|
|
234
|
+
${$.slice(-Q)}`}function k0($,Z){return $.truncated?`${$.text}
|
|
235
|
+
|
|
236
|
+
[output truncated \u2014 ${Z}. Narrow the request to see more.]`:$.text}import{mkdir as QP,readdir as YP,readFile as bZ,realpath as yZ,stat as i3,writeFile as n3}from"fs/promises";import{dirname as a3,isAbsolute as b9,relative as N6,resolve as I$,sep as r3}from"path";import{z as G0}from"zod";var h3=16777216;function T$($,Z){let Q=b9(Z)?I$(Z):I$($,Z),Y=N6(I$($),Q);if(Y===".."||Y.startsWith(`..${r3}`)||b9(Y))throw Error(`Path escapes the session root: ${Z}`);return Q}function _9($,Z,Q){let Y=N6($,Z);if(Y===".."||Y.startsWith(`..${r3}`)||b9(Y))throw Error(`Path escapes the session root through a symbolic link: ${Q}`)}async function c1($,Z){let Q=T$($,Z),Y=await yZ($),W=await yZ(Q);return _9(Y,W,Z),W}async function u3($,Z){let Q=T$($,Z),Y=await yZ($);try{let X=await yZ(Q);return _9(Y,X,Z),X}catch(X){if(X.code!=="ENOENT")throw X}let W=[],G=Q;for(;;)try{let X=await yZ(G);return _9(Y,X,Z),I$(X,...W.reverse())}catch(X){if(X.code!=="ENOENT")throw X;let J=a3(G);if(J===G)throw X;W.push(N6(J,G)),G=J}}function B0($,Z){let Q=N6(I$($),Z);return Q===""?".":Q}function m3($){let Z=$.split(`
|
|
237
|
+
`);if(Z.at(-1)==="")Z.pop();return Z}function t3($,Z,Q){let Y=Z===void 0?[]:m3(Z),W=m3(Q),G=0;while(G<Y.length&&G<W.length&&Y[G]===W[G])G++;let X=0;while(X<Y.length-G&&X<W.length-G&&Y[Y.length-1-X]===W[W.length-1-X])X++;let J=Y.length-G-X,B=W.length-G-X;if(B===0&&J===0)return{path:$,added:B,removed:J,hunks:[]};let K=Math.min(3,G),V=Math.min(3,X),z=G-K,F=G-K,D=K+J+V,L=K+B+V,U=[`@@ -${Y.length===0?0:z+1},${D} +${W.length===0?0:F+1},${L} @@`,...Y.slice(z,G).map((q)=>` ${q}`),...Y.slice(G,Y.length-X).map((q)=>`-${q}`),...W.slice(G,W.length-X).map((q)=>`+${q}`),...W.slice(W.length-X,W.length-X+V).map((q)=>` ${q}`)];return{path:$,added:B,removed:J,hunks:U}}function x9($){return r({name:"read",description:"Read a file from the filesystem. Returns contents with line numbers for grounded path:line citations. Read a file before editing it.",inputSchema:G0.object({path:G0.string().describe("Path to the file, absolute or relative to the session root"),offset:G0.number().int().min(1).optional().describe("First line to read (1-based)"),limit:G0.number().int().min(1).optional().describe("Maximum number of lines to read")}),isConcurrencySafe:()=>!0,execute:async({path:Z,offset:Q,limit:Y})=>{let W=T$($.root,Z),G;try{W=await c1($.root,Z);let D=await i3(W);if(D.size>h3)return S(`${B0($.root,W)} is ${D.size.toLocaleString()} bytes; read refuses files larger than ${h3.toLocaleString()} bytes. Use grep or a bounded shell command to inspect it.`);G=await bZ(W,"utf8")}catch(D){let L=D.code;if(L==="ENOENT")return S(`File not found: ${B0($.root,W)}`);if(L==="EISDIR")return S(`${B0($.root,W)} is a directory \u2014 use ls instead.`);throw D}$.state.markRead(W,G);let X=G.split(`
|
|
238
|
+
`),J=(Q??1)-1,K=X.slice(J,Y?J+Y:void 0).map((D,L)=>`${String(J+L+1).padStart(5)} ${D}`),V=k0(x0(K.join(`
|
|
239
|
+
`)),"file is large"),z=await $.instructions?.instructionsForPath(W);return{content:[{type:"text",text:[V||"(empty file)",z?.text].filter(Boolean).join(`
|
|
240
|
+
|
|
241
|
+
`)}],details:{path:W,lines:X.length,...z&&z.sources.length>0?{loadedInstructions:z.sources}:{}}}}})}function k9($){return r({name:"write",changesState:!0,description:"Write a complete file, creating it or replacing its contents. To change part of an existing file, prefer edit.",inputSchema:G0.object({path:G0.string().describe("Path to the file"),content:G0.string().describe("The complete file contents")}),permissionDetails:async({path:Z,content:Q})=>{let Y=await u3($.root,Z),W;try{W=await bZ(Y,"utf8")}catch{W=void 0}let G=B0($.root,Y);return{description:`${W===void 0?"Create":"Overwrite"} ${G}`,preview:{kind:"diff",file:t3(G,W,Q)}}},execute:async({path:Z,content:Q})=>{let Y=await u3($.root,Z),W=!0,G;try{G=await bZ(Y,"utf8")}catch(J){if(J.code==="ENOENT")W=!1;else throw J}if(W&&!$.state.hasRead(Y))return S(`Refusing to overwrite ${B0($.root,Y)} because it has not been read in this session. Read it first, then write.`);if($.state.hasRead(Y)&&$.state.isStale(Y,G))return S(`${B0($.root,Y)} changed on disk since you read it. Read it again before writing.`);await QP(a3(Y),{recursive:!0}),await n3(Y,Q,"utf8"),$.state.markWritten(Y);let X=Q.split(`
|
|
242
|
+
`).length;return{content:[{type:"text",text:`${W?"Updated":"Created"} ${B0($.root,Y)} (${X} lines)`}],details:{path:Y,created:!W}}}})}var WP=G0.object({oldString:G0.string().describe("Exact text to replace, including indentation"),newString:G0.string().describe("Replacement text"),replaceAll:G0.boolean().optional().describe("Replace every occurrence of this oldString")}),y9=($)=>$.split(`
|
|
243
|
+
`).length-1,l3="\uFEFF";function p3($){return $.startsWith(l3)?{bom:l3,text:$.slice(1)}:{bom:"",text:$}}var c3=($)=>$.replace(/\r?\n/g,`\r
|
|
244
|
+
`),GP=($)=>$.replace(/\r\n/g,`
|
|
245
|
+
`);function XP($,Z,Q){if(Z.includes(`
|
|
246
|
+
`)&&!$.includes(Z)){for(let Y of[c3,GP]){let W=Y(Z);if(W!==Z&&$.includes(W))return{oldString:W,newString:Y(Q)}}return{oldString:Z,newString:Q}}return{oldString:Z,newString:$.includes(`\r
|
|
247
|
+
`)?c3(Q):Q}}function d3($,Z,Q){let Y=(z)=>Z.length>1?`edits[${z}]: `:"",W=[];for(let[z,F]of Z.entries()){let{replaceAll:D}=F,{oldString:L,newString:U}=XP($,F.oldString,F.newString);if(L==="")return{ok:!1,message:`${Y(z)}oldString is empty \u2014 nothing to match.`};if(L===U)return{ok:!1,message:`${Y(z)}oldString and newString are identical \u2014 nothing to do.`};let q=$.split(L).length-1;if(q===0)return{ok:!1,message:`${Y(z)}oldString was not found in ${Q}. The text must match exactly, including whitespace and indentation.`};if(q>1&&!D)return{ok:!1,message:`${Y(z)}oldString appears ${q} times in ${Q}. Include more surrounding context to make it unique, or set replaceAll.`};let A=0;for(;;){let N=$.indexOf(L,A);if(N===-1)break;if(W.push({start:N,end:N+L.length,newString:U,index:z}),!D)break;A=N+L.length}}W.sort((z,F)=>z.start-F.start);let G;for(let z of W){if(G&&G.end>z.start)return{ok:!1,message:G.start===z.start&&G.end===z.end?`edits[${G.index}] and edits[${z.index}] match the same text in ${Q}. Drop the duplicate, or give each edit different text to match.`:`edits[${G.index}] and edits[${z.index}] overlap in ${Q}. Merge them into one edit, or target text that does not overlap.`};G=z}let X="",J=0,B=1,K=1,V=[];for(let z of W){let F=$.slice(J,z.start),D=y9(F);B+=D,K+=D,V.push({edit:z.index,oldLine:B,newLine:K}),X+=F+z.newString,B+=y9($.slice(z.start,z.end)),K+=y9(z.newString),J=z.end}return X+=$.slice(J),{ok:!0,updated:X,replacements:W.length,hunks:V}}function JP($){if(!$||typeof $!=="object"||Array.isArray($))return $;let Z={...$};if(typeof Z.edits==="string")try{let Q=JSON.parse(Z.edits);if(Array.isArray(Q))Z.edits=Q}catch{}if(typeof Z.oldString==="string"&&typeof Z.newString==="string"){let{oldString:Q,newString:Y,replaceAll:W,...G}=Z,X=Array.isArray(Z.edits)?Z.edits:[];return{...G,edits:[...X,{oldString:Q,newString:Y,...W===void 0?{}:{replaceAll:W}}]}}return Z}function f9($){return r({name:"edit",changesState:!0,description:"Replace exact strings in a file. Each oldString must appear exactly once unless that edit sets replaceAll. Pass several edits to change one file in a single call. Read the file first.",inputSchema:G0.object({path:G0.string().describe("Path to the file"),edits:G0.array(WP).min(1).describe("One or more replacements applied in a single write. Each is matched against the file as you read it, not against the result of earlier edits in this call, and they must not overlap \u2014 merge changes that touch the same text into one edit.")}),coerceInput:JP,permissionDetails:async({path:Z,edits:Q})=>{let Y=await c1($.root,Z),W=B0($.root,Y),G;try{G=await bZ(Y,"utf8")}catch{return{description:`Edit ${W}`}}let{text:X}=p3(G),J=d3(X,Q,W);if(!J.ok)return{description:`Edit ${W}`};return{description:`Edit ${W}`,preview:{kind:"diff",file:t3(W,X,J.updated)}}},execute:async({path:Z,edits:Q})=>{let Y=T$($.root,Z);try{Y=await c1($.root,Z)}catch(z){if(z.code==="ENOENT")return S(`File not found: ${B0($.root,Y)}`);throw z}if(!$.state.hasRead(Y))return S(`Read ${B0($.root,Y)} before editing it, so you can see what you are changing.`);let W;try{W=await bZ(Y,"utf8")}catch(z){if(z.code==="ENOENT")return S(`File not found: ${B0($.root,Y)}`);throw z}if($.state.isStale(Y,W))return S(`${B0($.root,Y)} changed on disk since you read it. Read it again before editing.`);let{bom:G,text:X}=p3(W),J=d3(X,Q,B0($.root,Y));if(!J.ok)return S(J.message);let{updated:B,replacements:K,hunks:V}=J;return await n3(Y,G+B,"utf8"),$.state.markWritten(Y),{content:[{type:"text",text:`Edited ${B0($.root,Y)} (${K} replacement${K===1?"":"s"})`}],details:{path:Y,occurrences:K,edits:Q.length,hunks:V}}}})}function v9($){return r({name:"ls",description:"List the entries of a directory.",inputSchema:G0.object({path:G0.string().optional().describe("Directory to list; defaults to the session root")}),isConcurrencySafe:()=>!0,execute:async({path:Z})=>{let Q=Z??".",Y=T$($.root,Q),W;try{Y=await c1($.root,Q),W=await YP(Y)}catch(X){if(X.code==="ENOENT")return S(`Directory not found: ${B0($.root,Y)}`);throw X}let G=await Promise.all(W.sort().map(async(X)=>{try{return(await i3(I$(Y,X))).isDirectory()?`${X}/`:X}catch{return X}}));return k0(x0(G.join(`
|
|
248
|
+
`)||"(empty directory)"),"directory has many entries")}})}var h9=new Set(["node_modules",".git","dist","build",".next","coverage",".venv"]),E$=200,o3=2000000;async function VP($,Z){let Q=await BP($,"r");try{let Y=await Q.stat(),W=Math.min(Y.size,Z),G=Buffer.alloc(W),{bytesRead:X}=await Q.read(G,0,W,0);return{content:new TextDecoder().decode(G.subarray(0,X)),truncated:Y.size>X}}finally{await Q.close()}}function zP($,Z){let Q=Z==="win32"?"rg.exe":"rg",Y=w1(g9($),"..","mu-path",Q);try{if(!ZK(Y).isFile())return;if(Z!=="win32")e3(Y,$K.X_OK);return Y}catch{return}}var FP={darwin:{arm64:"@mu-agent/ripgrep-darwin-arm64"},linux:{x64:"@mu-agent/ripgrep-linux-x64"},win32:{x64:"@mu-agent/ripgrep-windows-x64"}};function QK($=process.platform,Z=process.arch,Q=process.argv[1]?g9(w1(process.argv[1])):process.cwd(),Y=(W,G)=>Bun.resolveSync(W,G)){let W=FP[$]?.[Z];if(!W)return;try{let G=Y(`${W}/package.json`,Q),X=$==="win32"?"rg.exe":"rg",J=w1(g9(G),"vendor",X);if(!ZK(J).isFile())return;if($!=="win32")e3(J,$K.X_OK);return J}catch{return}}function O6($=process.execPath,Z=process.platform,Q=(W)=>Bun.which(W),Y=()=>QK(Z,process.arch)){return zP($,Z)??Y()??Q("rg")??void 0}async function DP($,Z,Q){let Y=$.getReader(),W=new TextDecoder,G="";while(!0){let{done:J,value:B}=await Y.read();if(J)break;G+=W.decode(B,{stream:!0});let K=G.indexOf(`
|
|
249
|
+
`);while(K!==-1){let V=G.slice(0,K).replace(/\r$/,"");if(G=G.slice(K+1),!Z(V))return Q(),await Y.cancel(),!1;K=G.indexOf(`
|
|
250
|
+
`)}}G+=W.decode();let X=G.length===0||Z(G.replace(/\r$/,""));if(!X)Q();return X}var LP=async($,Z,Q,Y)=>{Q.throwIfAborted();let W=O6();if(!W)return;let G;try{G=Bun.spawn([W,...$],{cwd:Z,stdin:"ignore",stdout:"pipe",stderr:"pipe",windowsHide:!0})}catch(J){if(J.code==="ENOENT")return;throw J}let X=()=>G.kill("SIGTERM");Q.addEventListener("abort",X,{once:!0});try{let[J,B,K]=await Promise.all([DP(G.stdout,Y,X),new Response(G.stderr).text(),G.exited]);return Q.throwIfAborted(),{exitCode:K,stderr:B,stopped:!J}}finally{Q.removeEventListener("abort",X)}};function YK($){return $.ripgrep===!1?void 0:$.ripgrep??LP}function WK(){let $=["--hidden","--no-ignore","--no-config","--no-messages","--sort","path"];for(let Z of h9)$.push("--glob",`!${Z}`,"--glob",`!${Z}/**`,"--glob",`!**/${Z}`,"--glob",`!**/${Z}/**`);return $}function GK($){return $.split(/[\\/]/).some((Z)=>h9.has(Z))}function XK($,Z,Q){return _Z(w1($),w1(Z,Q.replace(/^\.[\\/]/,"")))}function JK($){return $!==void 0&&($.stopped||$.exitCode===0||$.exitCode===1)}function u9($){let Z="";for(let Q=0;Q<$.length;Q++){let Y=$[Q];if(Y==="*")if($[Q+1]==="*")if($[Q+2]==="/")Z+="(?:.*/)?",Q+=2;else Z+=".*",Q+=1;else Z+="[^/]*";else if(Y==="?")Z+="[^/]";else if(".+^${}()|[]\\".includes(Y))Z+=`\\${Y}`;else Z+=Y}return new RegExp(`^${Z}$`)}async function*m9($,Z){Z.throwIfAborted();let Q;try{Q=await HP($)}catch{return}for(let Y of Q.sort()){if(Z.throwIfAborted(),h9.has(Y))continue;let W=w1($,Y),G;try{G=await KP(W)}catch{continue}if(G.isSymbolicLink())continue;if(G.isDirectory())yield*m9(W,Z);else yield W}}async function UP($,Z,Q,Y,W){if(!W)return;let G=[],X=await W(["--files",...WK()],Z,Y,(J)=>{if(!J||GK(J))return!0;let B=J.replaceAll("\\","/");if(Q.test(B))G.push(XK($,Z,J));return G.length<E$});return JK(X)?G:void 0}async function qP($,Z,Q,Y,W,G,X){if(!X)return;let J=[],B=["--json","--engine","auto",...WK(),...W?["--ignore-case"]:[],"--",Q,"."],K=await X(B,Z,G,(V)=>{let z;try{z=JSON.parse(V)}catch{return!0}if(z.type!=="match")return!0;let F=z.data?.path?.text,D=z.data?.lines?.text,L=z.data?.line_number;if(typeof F!=="string"||typeof D!=="string"||typeof L!=="number")return!0;let U=F.replace(/^\.[\\/]/,"");if(GK(U))return!0;let q=U.replaceAll("\\","/");if(Y&&!Y.test(q))return!0;return J.push(`${XK($,Z,U)}:${L}: ${D.trim()}`),J.length<E$});if(!JK(K))return;return{results:J,hitLimit:K?.stopped===!0||J.length>=E$}}function l9($,Z={}){return r({name:"glob",description:"Find files by glob pattern (e.g. 'src/**/*.ts'). Returns paths relative to the session root.",inputSchema:P1.object({pattern:P1.string().describe("Glob pattern, e.g. **/*.test.ts"),path:P1.string().optional().describe("Directory to search; defaults to the session root")}),isConcurrencySafe:()=>!0,execute:async({pattern:Q,path:Y},{signal:W})=>{let G=await c1($.root,Y??"."),X=u9(Q),J=await UP($.root,G,X,W,YK(Z)),B=J??[];if(!J)for await(let K of m9(G,W)){let V=_Z(G,K).replaceAll("\\","/");if(X.test(V))B.push(_Z(w1($.root),K));if(B.length>=E$)break}if(B.length===0)return`No files matched ${Q}`;return k0(x0(B.join(`
|
|
251
|
+
`)),`showing the first ${E$} matches`)}})}function p9($,Z={}){return r({name:"grep",description:"Search file contents with a regular expression. Returns matching lines with file and line numbers for grounded path:line citations.",inputSchema:P1.object({pattern:P1.string().describe("Regular expression to search for"),path:P1.string().optional().describe("Directory to search; defaults to the session root"),include:P1.string().optional().describe("Only search files matching this glob"),ignoreCase:P1.boolean().optional()}),isConcurrencySafe:()=>!0,execute:async({pattern:Q,path:Y,include:W,ignoreCase:G},{signal:X})=>{let J=await c1($.root,Y??"."),B;try{B=new RegExp(Q,G?"i":"")}catch(L){return S(`Invalid regular expression: ${L instanceof Error?L.message:String(L)}`)}let K=W?u9(W):void 0,V=await qP($.root,J,Q,K,G,X,YK(Z));if(V)return s3(Q,V.results,V.hitLimit);let z=[],F=0,D=!1;for await(let L of m9(J,X)){let U=_Z(J,L).replaceAll("\\","/");if(K&&!K.test(U))continue;let q;try{let N=o3-F;if(N<=0){D=!0;break}let j=await VP(L,N);if(q=j.content,j.truncated)D=!0}catch{continue}if(F+=Buffer.byteLength(q),q.includes("\x00"))continue;let A=q.split(`
|
|
252
|
+
`);for(let N=0;N<A.length;N++){X.throwIfAborted();let j=A[N];if(!B.test(j))continue;if(z.push(`${_Z(w1($.root),L)}:${N+1}: ${j.trim()}`),z.length>=E$){D=!0;break}}if(D||F>=o3){D=!0;break}}return s3(Q,z,D)}})}function s3($,Z,Q){if(Z.length===0)return`No matches for ${$}`;let Y=Z.join(`
|
|
253
|
+
`);return Q?`${Y}
|
|
254
|
+
|
|
255
|
+
[search stopped early \u2014 narrow the pattern or scope to see the rest]`:k0(x0(Y),"many matches")}function R$($,Z={}){if((Z.platform??process.platform)==="win32")return["powershell.exe","-NoLogo","-NoProfile",...Z.interactive?[]:["-NonInteractive"],"-Command",$];return["bash","-c",$]}function KK($){return["taskkill.exe","/PID",String($),"/T","/F"]}var c9;function OP(){if(c9===void 0){let $=O6(void 0,void 0,()=>null);c9=$?NP($):null}return c9??void 0}function xZ($={},Z=OP){let Q={...process.env,...$},Y=Z();if(!Y)return Q;let W=Object.keys(Q).find((X)=>X.toUpperCase()==="PATH")??"PATH",G=Q[W];return Q[W]=G?`${Y}${AP}${G}`:Y,Q}function M6($,Z){try{$.kill(Z)}catch{}}function Q1($,Z,Q=globalThis.process.platform){if(Q!=="win32"){try{globalThis.process.kill(-$.pid,Z)}catch{M6($,Z)}return}try{Bun.spawn(KK($.pid),{stdin:"ignore",stdout:"ignore",stderr:"ignore",windowsHide:!0}).exited.then((W)=>{if(W!==0&&$.exitCode===null)M6($,Z)}).catch(()=>M6($,Z))}catch{M6($,Z)}}var MP=new Set(["base64","cat","cd","cut","echo","expr","false","grep","head","id","ls","nl","paste","pwd","rev","seq","stat","tail","tr","true","uname","uniq","wc","which","whoami"]),jP=new Set(["-delete","-exec","-execdir","-fls","-fprint","-fprint0","-fprintf","-ok","-okdir"]),PP=["--hostname-bin","--pre"],wP=["-C","-c","-p","--config-env","--exec-path","--git-dir","--namespace","--paginate","--super-prefix","--work-tree"],IP=["--exec","--ext-diff","--output","--textconv"];function TP($){return($.split(/[\\/]/).at(-1)?.toLowerCase()??$.toLowerCase()).replace(/\.(?:exe|cmd|bat|com)$/i,"")}function EP($,Z){if($===Z||$.startsWith(`${Z}=`))return!0;return Z.length===2&&$.startsWith(Z)&&$.length>Z.length}function j6($,Z){return $.some((Q)=>Z.some((Y)=>EP(Q,Y)))}function RP($){let Z=[],Q=-1,Y=!1;for(let X=1;X<$.length;X++){let J=$[X]??"";if(Y){Z.push(J),Y=!1;continue}if(J==="--")return!1;if(J.startsWith("-")){if(Z.push(J),["-C","-c","--config-env","--exec-path","--git-dir","--namespace","--super-prefix","--work-tree"].includes(J))Y=!0;continue}Q=X;break}if(Q===-1||j6(Z,wP))return!1;let W=$[Q]?.toLowerCase(),G=$.slice(Q+1);if(!W||!["branch","diff","log","show","status"].includes(W))return!1;if(j6(G,IP))return!1;if(W!=="branch")return!0;if(G.length===0)return!0;return G.every((X)=>["--all","--list","--remotes","--show-current","--verbose","-a","-l","-r","-v","-vv"].includes(X)||X.startsWith("--format="))}function CP($){let Z=$[0]??"";if(Z.includes("/")||Z.includes("\\"))return!1;let Q=TP(Z);if(MP.has(Q)){if(Q!=="base64")return!0;return!j6($.slice(1),["-o","--output"])}if(Q==="find")return!$.slice(1).some((Y)=>jP.has(Y));if(Q==="rg")return!$.slice(1).some((Y)=>Y==="-z"||Y==="--search-zip")&&!j6($.slice(1),PP);if(Q==="git")return RP($);if(Q==="sed")return $.length>=3&&$.length<=4&&$[1]==="-n"&&/^(?:\d+,)?\d+p$/.test($[2]??"");return process.platform==="linux"&&(Q==="numfmt"||Q==="tac")}function BK($){let Z=[],Q=[],Y="",W=!1,G,X=!1,J=()=>{if(!W)return;Q.push(Y),Y="",W=!1},B=()=>{if(J(),Q.length===0)return!1;return Z.push(Q),Q=[],!0};for(let K=0;K<$.length;K++){let V=$[K]??"";if(G==="single"){if(V==="'")G=void 0;else Y+=V;continue}if(G==="double"){if(V==='"')G=void 0;else if(V==="$"||V==="`")return;else if(V==="\\"&&process.platform!=="win32"){let z=$[++K];if(z===void 0)return;if(z!==`
|
|
256
|
+
`)Y+=z}else Y+=V;continue}if(V==="'"||V==='"'){G=V==="'"?"single":"double",W=!0,X=!1;continue}if(V==="\\"&&process.platform!=="win32"){let z=$[++K];if(z===void 0)return;if(z!==`
|
|
257
|
+
`)W=!0,Y+=z,X=!1;continue}if(V==="$"||V==="`"||"<>(){}".includes(V))return;if(V==="#"&&!W)return;if(V===`
|
|
258
|
+
`||V==="\r"){if(V==="\r"&&$[K+1]===`
|
|
259
|
+
`)K++;if(!B())return;X=!0;continue}if(/\s/.test(V)){J();continue}if(V===";"){if(!B())return;X=!0;continue}if(V==="&"){if($[K+1]!=="&"||!B())return;K++,X=!1;continue}if(V==="|"){let z=$[K+1]==="|";if(!B())return;if(z)K++;X=!1;continue}W=!0,Y+=V,X=!1}if(G)return;if(J(),Q.length>0)Z.push(Q);return Z.length>0&&(Q.length>0||X)?Z:void 0}function HK($){let Z=BK($);return Z?.length&&Z.every(CP)?"inspect":"other"}function kZ($){return HK($)==="inspect"}var SP=120000,yP=600000,bP=80,_P=1000;async function VK($,Z,Q){let Y=$.getReader(),W=new TextDecoder,G=new S1;while(!0){let{done:J,value:B}=await Y.read();if(J)break;let K=W.decode(B,{stream:!0});if(!K)continue;G.append(K),Q?.(K,Z)}let X=W.decode();if(X)G.append(X),Q?.(X,Z);return G.read()}async function xP($,Z,Q,Y,W){let G=Bun.spawn(R$($),{cwd:Z,detached:process.platform!=="win32",env:xZ(),stdout:"pipe",stderr:"pipe",stdin:"ignore",windowsHide:!0}),X=!1,J,B=()=>{Q1(G,"SIGTERM"),J??=setTimeout(()=>Q1(G,"SIGKILL"),_P)},K=setTimeout(()=>{X=!0,B()},Y),V=B;Q.addEventListener("abort",V,{once:!0});try{let[z,F,D]=await Promise.all([VK(G.stdout,"stdout",W),VK(G.stderr,"stderr",W),G.exited]);return{stdout:z,stderr:F,exitCode:D,timedOut:X}}finally{if(clearTimeout(K),J)clearTimeout(J);Q.removeEventListener("abort",V)}}function kP($){let Z="",Q,Y=!1,W=()=>{if(Q)clearTimeout(Q);if(Q=void 0,!Z)return;$(Z),Z=""};return{push(G,X){if(X==="stderr"&&!Y)Z+=`${Z.endsWith(`
|
|
260
|
+
`)||Z.length===0?"":`
|
|
261
|
+
`}[stderr]
|
|
262
|
+
`,Y=!0;Z+=G,Q??=setTimeout(W,bP)},flush:W}}function d9($){let Z=$.spawn??xP;return r({name:"bash",changesState:({command:Q,run_in_background:Y})=>Y===!0||!kZ(Q),isConcurrencySafe:({command:Q,run_in_background:Y})=>Y!==!0&&kZ(Q),permissionScope:({command:Q,run_in_background:Y})=>Y!==!0&&kZ(Q)?"bash:inspect":"bash",permissionPattern:({command:Q})=>Q,description:"Run a command with the platform-native shell in the session root. For repository exploration, batch read-only rg, sed, head, tail, find, and git status/diff commands to search and narrow before reading files. Use write/edit tools for file changes.",inputSchema:fZ.object({command:fZ.string().describe("The shell command to run"),description:fZ.string().optional().describe("A short description of what this command does, for the user"),timeoutMs:fZ.number().int().positive().max(yP).optional(),run_in_background:fZ.boolean().optional().describe("Start the command in the background and return a task id immediately")}),execute:async({command:Q,timeoutMs:Y,run_in_background:W},{signal:G,update:X})=>{if(G.aborted)return S("Aborted before the command started.");if(W){if(!$.processes)return S("Background execution is not available in this session.");let L=$.processes.start(Q);return{content:[{type:"text",text:`Started ${L.id} in the background. Use task_output to read it, task_kill to stop it.`}],details:{taskId:L.id,command:Q,background:!0}}}let J=Date.now(),B=kP(X),K;try{K=await Z(Q,$.root,G,Y??SP,B.push)}finally{B.flush()}let V=Date.now()-J,z=[];if(K.stdout.trim())z.push(K.stdout.trimEnd());if(K.stderr.trim())z.push(`[stderr]
|
|
263
|
+
${K.stderr.trimEnd()}`);let F=k0(x0(z.join(`
|
|
235
264
|
|
|
236
|
-
|
|
265
|
+
`)||"(no output)"),"command produced a lot of output");if(K.timedOut)return{content:[{type:"text",text:`${F}
|
|
237
266
|
|
|
238
|
-
|
|
267
|
+
[command timed out and was killed]`}],details:{command:Q,exitCode:K.exitCode,timedOut:!0,durationMs:V},isError:!0};let D=K.exitCode!==0;return{content:[{type:"text",text:D?`${F}
|
|
239
268
|
|
|
240
|
-
[
|
|
241
|
-
|
|
242
|
-
`}
|
|
243
|
-
|
|
244
|
-
${
|
|
245
|
-
|
|
246
|
-
`)||"(
|
|
247
|
-
|
|
248
|
-
[command timed out and was killed]`}],details:{command:Q,exitCode:B.exitCode,timedOut:!0,durationMs:z},isError:!0};let D=B.exitCode!==0;return{content:[{type:"text",text:D?`${F}
|
|
249
|
-
|
|
250
|
-
[exit code ${B.exitCode}]`:F}],details:{command:Q,exitCode:B.exitCode,durationMs:z},isError:D}}})}import{mkdir as _j,readdir as kj,readFile as K6,stat as N3,writeFile as O3}from"fs/promises";import{dirname as xj,isAbsolute as fj,relative as M3,resolve as TZ}from"path";import{z as Q0}from"zod";function f0($,Z){let Q=fj(Z)?TZ(Z):TZ($,Z);if(M3(TZ($),Q).startsWith(".."))throw Error(`Path escapes the session root: ${Z}`);return Q}function z0($,Z){let Q=M3(TZ($),Z);return Q===""?".":Q}function D3($){let Z=$.split(`
|
|
251
|
-
`);if(Z.at(-1)==="")Z.pop();return Z}function j3($,Z,Q){let W=Z===void 0?[]:D3(Z),Y=D3(Q),G=0;while(G<W.length&&G<Y.length&&W[G]===Y[G])G++;let X=0;while(X<W.length-G&&X<Y.length-G&&W[W.length-1-X]===Y[Y.length-1-X])X++;let J=W.length-G-X,K=Y.length-G-X;if(K===0&&J===0)return{path:$,added:K,removed:J,hunks:[]};let B=Math.min(3,G),z=Math.min(3,X),V=G-B,F=G-B,D=B+J+z,L=B+K+z,U=[`@@ -${W.length===0?0:V+1},${D} +${Y.length===0?0:F+1},${L} @@`,...W.slice(V,G).map((q)=>` ${q}`),...W.slice(G,W.length-X).map((q)=>`-${q}`),...Y.slice(G,Y.length-X).map((q)=>`+${q}`),...Y.slice(Y.length-X,Y.length-X+z).map((q)=>` ${q}`)];return{path:$,added:K,removed:J,hunks:U}}function UQ($){return n({name:"read",description:"Read a file from the filesystem. Returns contents with line numbers for grounded path:line citations. Read a file before editing it.",inputSchema:Q0.object({path:Q0.string().describe("Path to the file, absolute or relative to the session root"),offset:Q0.number().int().min(1).optional().describe("First line to read (1-based)"),limit:Q0.number().int().min(1).optional().describe("Maximum number of lines to read")}),isConcurrencySafe:()=>!0,execute:async({path:Z,offset:Q,limit:W})=>{let Y=f0($.root,Z),G;try{G=await K6(Y,"utf8")}catch(D){let L=D.code;if(L==="ENOENT")return y(`File not found: ${z0($.root,Y)}`);if(L==="EISDIR")return y(`${z0($.root,Y)} is a directory \u2014 use ls instead.`);throw D}$.state.markRead(Y);let X=G.split(`
|
|
252
|
-
`),J=(Q??1)-1,B=X.slice(J,W?J+W:void 0).map((D,L)=>`${String(J+L+1).padStart(5)} ${D}`),z=C0(R0(B.join(`
|
|
253
|
-
`)),"file is large"),V=await $.instructions?.instructionsForPath(Y);return{content:[{type:"text",text:[z||"(empty file)",V?.text].filter(Boolean).join(`
|
|
254
|
-
|
|
255
|
-
`)}],details:{path:Y,lines:X.length,...V&&V.sources.length>0?{loadedInstructions:V.sources}:{}}}}})}function qQ($){return n({name:"write",changesState:!0,description:"Write a complete file, creating it or replacing its contents. To change part of an existing file, prefer edit.",inputSchema:Q0.object({path:Q0.string().describe("Path to the file"),content:Q0.string().describe("The complete file contents")}),permissionDetails:async({path:Z,content:Q})=>{let W=f0($.root,Z),Y;try{Y=await K6(W,"utf8")}catch{Y=void 0}let G=z0($.root,W);return{description:`${Y===void 0?"Create":"Overwrite"} ${G}`,preview:{kind:"diff",file:j3(G,Y,Q)}}},execute:async({path:Z,content:Q})=>{let W=f0($.root,Z),Y=!0;try{await N3(W)}catch{Y=!1}if(Y&&!$.state.hasRead(W))return y(`Refusing to overwrite ${z0($.root,W)} because it has not been read in this session. Read it first, then write.`);if(Y&&$.state.isStale(W))return y(`${z0($.root,W)} changed on disk since you read it. Read it again before writing.`);await _j(xj(W),{recursive:!0}),await O3(W,Q,"utf8"),$.state.markWritten(W);let G=Q.split(`
|
|
256
|
-
`).length;return{content:[{type:"text",text:`${Y?"Updated":"Created"} ${z0($.root,W)} (${G} lines)`}],details:{path:W,created:!Y}}}})}var vj=Q0.object({oldString:Q0.string().describe("Exact text to replace, including indentation"),newString:Q0.string().describe("Replacement text"),replaceAll:Q0.boolean().optional().describe("Replace every occurrence of this oldString")}),LQ=($)=>$.split(`
|
|
257
|
-
`).length-1,L3="\uFEFF";function U3($){return $.startsWith(L3)?{bom:L3,text:$.slice(1)}:{bom:"",text:$}}var q3=($)=>$.replace(/\r?\n/g,`\r
|
|
258
|
-
`),gj=($)=>$.replace(/\r\n/g,`
|
|
259
|
-
`);function hj($,Z,Q){if(Z.includes(`
|
|
260
|
-
`)&&!$.includes(Z)){for(let W of[q3,gj]){let Y=W(Z);if(Y!==Z&&$.includes(Y))return{oldString:Y,newString:W(Q)}}return{oldString:Z,newString:Q}}return{oldString:Z,newString:$.includes(`\r
|
|
261
|
-
`)?q3(Q):Q}}function A3($,Z,Q){let W=(V)=>Z.length>1?`edits[${V}]: `:"",Y=[];for(let[V,F]of Z.entries()){let{replaceAll:D}=F,{oldString:L,newString:U}=hj($,F.oldString,F.newString);if(L==="")return{ok:!1,message:`${W(V)}oldString is empty \u2014 nothing to match.`};if(L===U)return{ok:!1,message:`${W(V)}oldString and newString are identical \u2014 nothing to do.`};let q=$.split(L).length-1;if(q===0)return{ok:!1,message:`${W(V)}oldString was not found in ${Q}. The text must match exactly, including whitespace and indentation.`};if(q>1&&!D)return{ok:!1,message:`${W(V)}oldString appears ${q} times in ${Q}. Include more surrounding context to make it unique, or set replaceAll.`};let A=0;for(;;){let N=$.indexOf(L,A);if(N===-1)break;if(Y.push({start:N,end:N+L.length,newString:U,index:V}),!D)break;A=N+L.length}}Y.sort((V,F)=>V.start-F.start);let G;for(let V of Y){if(G&&G.end>V.start)return{ok:!1,message:G.start===V.start&&G.end===V.end?`edits[${G.index}] and edits[${V.index}] match the same text in ${Q}. Drop the duplicate, or give each edit different text to match.`:`edits[${G.index}] and edits[${V.index}] overlap in ${Q}. Merge them into one edit, or target text that does not overlap.`};G=V}let X="",J=0,K=1,B=1,z=[];for(let V of Y){let F=$.slice(J,V.start),D=LQ(F);K+=D,B+=D,z.push({edit:V.index,oldLine:K,newLine:B}),X+=F+V.newString,K+=LQ($.slice(V.start,V.end)),B+=LQ(V.newString),J=V.end}return X+=$.slice(J),{ok:!0,updated:X,replacements:Y.length,hunks:z}}function uj($){if(!$||typeof $!=="object"||Array.isArray($))return $;let Z={...$};if(typeof Z.edits==="string")try{let Q=JSON.parse(Z.edits);if(Array.isArray(Q))Z.edits=Q}catch{}if(typeof Z.oldString==="string"&&typeof Z.newString==="string"){let{oldString:Q,newString:W,replaceAll:Y,...G}=Z,X=Array.isArray(Z.edits)?Z.edits:[];return{...G,edits:[...X,{oldString:Q,newString:W,...Y===void 0?{}:{replaceAll:Y}}]}}return Z}function AQ($){return n({name:"edit",changesState:!0,description:"Replace exact strings in a file. Each oldString must appear exactly once unless that edit sets replaceAll. Pass several edits to change one file in a single call. Read the file first.",inputSchema:Q0.object({path:Q0.string().describe("Path to the file"),edits:Q0.array(vj).min(1).describe("One or more replacements applied in a single write. Each is matched against the file as you read it, not against the result of earlier edits in this call, and they must not overlap \u2014 merge changes that touch the same text into one edit.")}),coerceInput:uj,permissionDetails:async({path:Z,edits:Q})=>{let W=f0($.root,Z),Y=z0($.root,W),G;try{G=await K6(W,"utf8")}catch{return{description:`Edit ${Y}`}}let{text:X}=U3(G),J=A3(X,Q,Y);if(!J.ok)return{description:`Edit ${Y}`};return{description:`Edit ${Y}`,preview:{kind:"diff",file:j3(Y,X,J.updated)}}},execute:async({path:Z,edits:Q})=>{let W=f0($.root,Z);if(!$.state.hasRead(W))return y(`Read ${z0($.root,W)} before editing it, so you can see what you are changing.`);let Y;try{Y=await K6(W,"utf8")}catch(V){if(V.code==="ENOENT")return y(`File not found: ${z0($.root,W)}`);throw V}if($.state.isStale(W))return y(`${z0($.root,W)} changed on disk since you read it. Read it again before editing.`);let{bom:G,text:X}=U3(Y),J=A3(X,Q,z0($.root,W));if(!J.ok)return y(J.message);let{updated:K,replacements:B,hunks:z}=J;return await O3(W,G+K,"utf8"),$.state.markWritten(W),{content:[{type:"text",text:`Edited ${z0($.root,W)} (${B} replacement${B===1?"":"s"})`}],details:{path:W,occurrences:B,edits:Q.length,hunks:z}}}})}function NQ($){return n({name:"ls",description:"List the entries of a directory.",inputSchema:Q0.object({path:Q0.string().optional().describe("Directory to list; defaults to the session root")}),isConcurrencySafe:()=>!0,execute:async({path:Z})=>{let Q=f0($.root,Z??"."),W;try{W=await kj(Q)}catch(G){if(G.code==="ENOENT")return y(`Directory not found: ${z0($.root,Q)}`);throw G}let Y=await Promise.all(W.sort().map(async(G)=>{try{return(await N3(TZ(Q,G))).isDirectory()?`${G}/`:G}catch{return G}}));return C0(R0(Y.join(`
|
|
262
|
-
`)||"(empty directory)"),"directory has many entries")}})}import{accessSync as T3,constants as I3,statSync as E3}from"fs";import{readdir as mj,readFile as lj,stat as pj}from"fs/promises";import{dirname as OQ,relative as IZ,resolve as N1}from"path";import{z as A1}from"zod";var MQ=new Set(["node_modules",".git","dist","build",".next","coverage",".venv"]),A$=200,P3=2000000;function cj($,Z){let Q=Z==="win32"?"rg.exe":"rg",W=N1(OQ($),"..","mu-path",Q);try{if(!E3(W).isFile())return;if(Z!=="win32")T3(W,I3.X_OK);return W}catch{return}}var dj={darwin:{arm64:"@mu-agent/ripgrep-darwin-arm64"},linux:{x64:"@mu-agent/ripgrep-linux-x64"},win32:{x64:"@mu-agent/ripgrep-windows-x64"}};function R3($=process.platform,Z=process.arch,Q=process.argv[1]?OQ(N1(process.argv[1])):process.cwd(),W=(Y,G)=>Bun.resolveSync(Y,G)){let Y=dj[$]?.[Z];if(!Y)return;try{let G=W(`${Y}/package.json`,Q),X=$==="win32"?"rg.exe":"rg",J=N1(OQ(G),"vendor",X);if(!E3(J).isFile())return;if($!=="win32")T3(J,I3.X_OK);return J}catch{return}}function C3($=process.execPath,Z=process.platform,Q=(Y)=>Bun.which(Y),W=()=>R3(Z,process.arch)){return cj($,Z)??W()??Q("rg")??void 0}async function ij($,Z,Q){let W=$.getReader(),Y=new TextDecoder,G="";while(!0){let{done:J,value:K}=await W.read();if(J)break;G+=Y.decode(K,{stream:!0});let B=G.indexOf(`
|
|
263
|
-
`);while(B!==-1){let z=G.slice(0,B).replace(/\r$/,"");if(G=G.slice(B+1),!Z(z))return Q(),await W.cancel(),!1;B=G.indexOf(`
|
|
264
|
-
`)}}G+=Y.decode();let X=G.length===0||Z(G.replace(/\r$/,""));if(!X)Q();return X}var nj=async($,Z,Q,W)=>{Q.throwIfAborted();let Y=C3();if(!Y)return;let G;try{G=Bun.spawn([Y,...$],{cwd:Z,stdin:"ignore",stdout:"pipe",stderr:"pipe",windowsHide:!0})}catch(J){if(J.code==="ENOENT")return;throw J}let X=()=>G.kill("SIGTERM");Q.addEventListener("abort",X,{once:!0});try{let[J,K,B]=await Promise.all([ij(G.stdout,W,X),new Response(G.stderr).text(),G.exited]);return Q.throwIfAborted(),{exitCode:B,stderr:K,stopped:!J}}finally{Q.removeEventListener("abort",X)}};function S3($){return $.ripgrep===!1?void 0:$.ripgrep??nj}function y3(){let $=["--hidden","--no-ignore","--no-config","--no-messages","--sort","path"];for(let Z of MQ)$.push("--glob",`!${Z}`,"--glob",`!${Z}/**`,"--glob",`!**/${Z}`,"--glob",`!**/${Z}/**`);return $}function b3($){return $.split(/[\\/]/).some((Z)=>MQ.has(Z))}function _3($,Z,Q){return IZ(N1($),N1(Z,Q.replace(/^\.[\\/]/,"")))}function k3($){return $!==void 0&&($.stopped||$.exitCode===0||$.exitCode===1)}function jQ($){let Z="";for(let Q=0;Q<$.length;Q++){let W=$[Q];if(W==="*")if($[Q+1]==="*")if($[Q+2]==="/")Z+="(?:.*/)?",Q+=2;else Z+=".*",Q+=1;else Z+="[^/]*";else if(W==="?")Z+="[^/]";else if(".+^${}()|[]\\".includes(W))Z+=`\\${W}`;else Z+=W}return new RegExp(`^${Z}$`)}async function*PQ($,Z){Z.throwIfAborted();let Q;try{Q=await mj($)}catch{return}for(let W of Q.sort()){if(Z.throwIfAborted(),MQ.has(W))continue;let Y=N1($,W),G;try{G=await pj(Y)}catch{continue}if(G.isDirectory())yield*PQ(Y,Z);else yield Y}}async function aj($,Z,Q,W,Y){if(!Y)return;let G=[],X=await Y(["--files",...y3()],Z,W,(J)=>{if(!J||b3(J))return!0;let K=J.replaceAll("\\","/");if(Q.test(K))G.push(_3($,Z,J));return G.length<A$});return k3(X)?G:void 0}async function rj($,Z,Q,W,Y,G,X){if(!X)return;let J=[],K=["--json","--engine","auto",...y3(),...Y?["--ignore-case"]:[],"--",Q,"."],B=await X(K,Z,G,(z)=>{let V;try{V=JSON.parse(z)}catch{return!0}if(V.type!=="match")return!0;let F=V.data?.path?.text,D=V.data?.lines?.text,L=V.data?.line_number;if(typeof F!=="string"||typeof D!=="string"||typeof L!=="number")return!0;let U=F.replace(/^\.[\\/]/,"");if(b3(U))return!0;let q=U.replaceAll("\\","/");if(W&&!W.test(q))return!0;return J.push(`${_3($,Z,U)}:${L}: ${D.trim()}`),J.length<A$});if(!k3(B))return;return{results:J,hitLimit:B?.stopped===!0||J.length>=A$}}function wQ($,Z={}){return n({name:"glob",description:"Find files by glob pattern (e.g. 'src/**/*.ts'). Returns paths relative to the session root.",inputSchema:A1.object({pattern:A1.string().describe("Glob pattern, e.g. **/*.test.ts"),path:A1.string().optional().describe("Directory to search; defaults to the session root")}),isConcurrencySafe:()=>!0,execute:async({pattern:Q,path:W},{signal:Y})=>{let G=f0($.root,W??"."),X=jQ(Q),J=await aj($.root,G,X,Y,S3(Z)),K=J??[];if(!J)for await(let B of PQ(G,Y)){let z=IZ(G,B).replaceAll("\\","/");if(X.test(z))K.push(IZ(N1($.root),B));if(K.length>=A$)break}if(K.length===0)return`No files matched ${Q}`;return C0(R0(K.join(`
|
|
265
|
-
`)),`showing the first ${A$} matches`)}})}function TQ($,Z={}){return n({name:"grep",description:"Search file contents with a regular expression. Returns matching lines with file and line numbers for grounded path:line citations.",inputSchema:A1.object({pattern:A1.string().describe("Regular expression to search for"),path:A1.string().optional().describe("Directory to search; defaults to the session root"),include:A1.string().optional().describe("Only search files matching this glob"),ignoreCase:A1.boolean().optional()}),isConcurrencySafe:()=>!0,execute:async({pattern:Q,path:W,include:Y,ignoreCase:G},{signal:X})=>{let J=f0($.root,W??"."),K;try{K=new RegExp(Q,G?"i":"")}catch(L){return y(`Invalid regular expression: ${L instanceof Error?L.message:String(L)}`)}let B=Y?jQ(Y):void 0,z=await rj($.root,J,Q,B,G,X,S3(Z));if(z)return w3(Q,z.results,z.hitLimit);let V=[],F=0,D=!1;for await(let L of PQ(J,X)){let U=IZ(J,L).replaceAll("\\","/");if(B&&!B.test(U))continue;let q;try{q=await lj(L,"utf8")}catch{continue}if(F+=q.length,q.includes("\x00"))continue;let A=q.split(`
|
|
266
|
-
`);for(let N=0;N<A.length;N++){X.throwIfAborted();let j=A[N];if(!K.test(j))continue;if(V.push(`${IZ(N1($.root),L)}:${N+1}: ${j.trim()}`),V.length>=A$){D=!0;break}}if(D||F>P3){D=D||F>P3;break}}return w3(Q,V,D)}})}function w3($,Z,Q){if(Z.length===0)return`No matches for ${$}`;let W=Z.join(`
|
|
267
|
-
`);return Q?`${W}
|
|
268
|
-
|
|
269
|
-
[search stopped early \u2014 narrow the pattern or scope to see the rest]`:C0(R0(W),"many matches")}import{z as S0}from"zod";function IQ($){return({command:Z,onOutput:Q,cols:W,rows:Y})=>{if(process.platform==="win32"){let L=Bun.spawn(q$(Z,{interactive:!0}),{cwd:$,detached:!1,env:process.env,stdin:"pipe",stdout:"pipe",stderr:"pipe",windowsHide:!0}),U=async(N)=>{let j=N.getReader(),P=new TextDecoder;while(!0){let{done:C,value:v}=await j.read();if(C)break;let d=P.decode(v,{stream:!0});if(d)Q(d)}let O=P.decode();if(O)Q(O)},q=Promise.all([U(L.stdout),U(L.stderr)]),A;return{write:(N)=>{L.stdin.write(N),L.stdin.flush()},resize:()=>{},detach:()=>L.unref(),kill:()=>{e0(L,"SIGTERM"),A=setTimeout(()=>{if(L.exitCode===null)e0(L,"SIGKILL")},1000),A.unref?.()},exited:Promise.all([L.exited,q]).then(([N])=>N??null).finally(()=>{if(A)clearTimeout(A)})}}let G=new TextDecoder,X=!1,J,K=new Promise((L)=>{J=L}),B=()=>{if(X)return;X=!0;let L=G.decode();if(L)Q(L)},z=Bun.spawn(q$(Z,{interactive:!0}),{cwd:$,detached:!0,env:{...process.env,TERM:"xterm-256color"},terminal:{cols:W,rows:Y,data:(L,U)=>{let q=G.decode(U,{stream:!0});if(q)Q(q)},exit:()=>{B(),J?.()}}}),V=z.terminal;if(!V)throw Error("Could not allocate a pseudo-terminal.");let F=Promise.all([z.exited,K]).then(([L])=>{if(B(),!V.closed)V.close();return L??null}),D;return{write:(L)=>void V.write(L),resize:(L,U)=>V.resize(L,U),detach:()=>{z.unref(),V.unref()},kill:()=>{e0(z,"SIGTERM"),D=setTimeout(()=>{if(z.exitCode===null)e0(z,"SIGKILL")},1000),D.unref?.()},exited:F.finally(()=>{if(D)clearTimeout(D)})}}}function EQ($){let Z=n({name:"task_output",description:"Read output from a background task. Returns only what is new since the last read unless full is set.",inputSchema:S0.object({taskId:S0.string(),full:S0.boolean().optional().describe("Return all output rather than only what is new")}),isConcurrencySafe:()=>!0,execute:({taskId:X,full:J})=>{let K=$.get(X);if(!K)return y(`No such task: ${X}`);let B=$.output(X,J?"start":"new"),z=K.status==="running"?"still running":`${K.status}${K.exitCode!==null?` (exit ${K.exitCode})`:""}`,V=B?.text.trim().length?B.text:"(no new output)";return{content:[{type:"text",text:`${C0(R0(V),"task output is large")}
|
|
270
|
-
|
|
271
|
-
[${z}]`}],details:{taskId:X,status:K.status,exitCode:K.exitCode}}}}),Q=n({name:"task_write_stdin",description:"Write to a background task's stdin \u2014 use for REPLs and interactive processes. Include a trailing newline to submit a line.",inputSchema:S0.object({taskId:S0.string(),data:S0.string()}),execute:({taskId:X,data:J})=>{if(!$.get(X))return y(`No such task: ${X}`);return $.writeStdin(X,J)?`Wrote ${J.length} characters to ${X}.`:y(`Task ${X} is not running.`)}}),W=n({name:"task_kill",description:"Stop a background task.",inputSchema:S0.object({taskId:S0.string()}),execute:({taskId:X})=>{if(!$.get(X))return y(`No such task: ${X}`);return $.kill(X)?`Killed ${X}.`:`Task ${X} had already stopped.`}}),Y=n({name:"task_detach",description:"Detach a background task so it is not stopped when the mu session exits. Use only for work that must outlive the session.",inputSchema:S0.object({taskId:S0.string()}),execute:({taskId:X})=>{if(!$.get(X))return y(`No such task: ${X}`);return $.detach(X)?`Detached ${X}. It will continue after this session exits.`:y(`Task ${X} is not running or was already detached.`)}}),G=n({name:"task_list",description:"List background tasks started in this session.",inputSchema:S0.object({}),isConcurrencySafe:()=>!0,execute:()=>{let X=$.list();if(X.length===0)return"No background tasks.";return X.map((J)=>`${J.id} \xB7 ${J.status}${J.detached?" (detached)":""}${J.exitCode!==null?` (exit ${J.exitCode})`:""} \xB7 ${J.command}`).join(`
|
|
272
|
-
`)}});return[Z,Q,W,Y,G]}import{z as EZ}from"zod";class B6{items=[];replace($){this.items=$}all(){return[...this.items]}}var tj={pending:"[ ]",in_progress:"[~]",completed:"[x]"};function x3($){if($.length===0)return"(no tasks)";return $.map((Z)=>`${tj[Z.status]} ${Z.content}`).join(`
|
|
273
|
-
`)}function RQ($){return n({name:"todo",description:"Record and update the task list for multi-step work. Send the complete list every time; it replaces the previous one. Mark exactly one task in_progress while you work on it.",inputSchema:EZ.object({items:EZ.array(EZ.object({content:EZ.string().describe("What needs doing"),status:EZ.enum(["pending","in_progress","completed"])})).describe("The complete task list")}),execute:({items:Z})=>{let Q=Z.filter((G)=>G.status==="in_progress").length;$.replace(Z);let W=x3(Z),Y=Q>1?`
|
|
274
|
-
|
|
275
|
-
[note: more than one task is in_progress \u2014 work on one at a time]`:"";return{content:[{type:"text",text:`${W}${Y}`}],details:{items:Z}}}})}async function $P($){try{let Z=JSON.parse(await oj(ej($,".mu","config.json"),"utf8"));return Z.instructions&&typeof Z.instructions==="object"&&!Array.isArray(Z.instructions)?Z.instructions:{}}catch{return{}}}async function v3($={}){let Z=f3($.root??process.cwd()),Q=f3($.home??sj()),W=new tZ,Y=new B6,G=await aZ(Z),X=new iZ({root:Z,home:Q,...await $P(Q),...G.instructions??{},...$.instructions??{},...$.managedInstructionPaths?{managedPaths:$.managedInstructionPaths}:{}});await X.reload();let J={root:Z,state:W,instructions:X},K=new uZ($.spawner??IQ(Z),$.processEvents??{}),B=[UQ(J),qQ(J),AQ(J),NQ(J),wQ(J),TQ(J),DQ({root:Z,processes:K,...$.spawn?{spawn:$.spawn}:{}}),RQ(Y),...EQ(K)],z={attach:(V)=>{K.setEvents({onStarted:(F)=>{$.processEvents?.onStarted?.(F),V.emit({type:"task_started",taskId:F.id,command:F.command,background:!0})},onOutput:(F,D)=>{$.processEvents?.onOutput?.(F,D),V.emit({type:"task_output",taskId:F,chunk:D})},onExited:(F)=>{if($.processEvents?.onExited?.(F),V.emit({type:"task_exited",taskId:F.id,exitCode:F.exitCode,status:F.status==="killed"?"killed":"exited"}),!F.detached)V.followUp(f6(F))}})},resize:(V,F)=>K.resizeAll(V,F),stop:()=>K.stopAll(),shutdown:()=>K.killAll()};return{name:"coding",toolset:B,promptFor:s6,permissionDefaults:t6(a6,G.permissions),permissionModes:r6,defaultPermissionMode:"default",rememberPermission:(V,F)=>o6(Z,V,F),environment:()=>nZ(Z),contextMessages:async()=>[n6(await nZ(Z))],refreshContext:(V,F)=>X.refreshedMessages(V,F.sessionId),diagnostics:X.snapshot.diagnostics.map((V)=>V.path?`${V.path}: ${V.message}`:V.message),commands:[{name:"instructions",description:"Show or reload instruction files",run:async(V)=>{let F=V.args.trim();if(F&&F!=="reload")return{handled:!0,message:"Usage: /instructions [reload]"};if(F==="reload")await X.reload({resetNested:!0});return{handled:!0,message:X.formatStatus(F==="reload"?"instructions reloaded":"instructions")}}},{name:"reload",description:"Reload instruction files",run:async()=>{return await X.reload({resetNested:!0}),{handled:!0,message:X.formatStatus("instructions reloaded")}}}],carryoverExtractor:()=>({readFiles:W.readFiles(),modifiedFiles:W.modifiedFiles(),todos:Y.all()}),scope:()=>Z.replace(/[^A-Za-z0-9]+/g,"-").replace(/^-|-$/g,""),checkpointProvider:new mZ({root:Z}),runtime:z,fileState:W,todos:Y,processes:K,instructions:X}}function ZP($){if(typeof $.model==="string")return $.model;if($.model)return`${$.model.provider}/${$.model.id}`;return n1()}async function O_($={}){let{profile:Z,profileOptions:Q,...W}=$;if(!Z)return new l$(W);let Y=Z==="coding"?await v3(Q):Z;return new l$(await VQ(Y,ZP(W),W))}export{t1 as userMessage,bW as totalTokens,n as tool,ZV as toCommand,d0 as thinkingLevelForModel,YW as textResult,a1 as supportedThinkingLevels,Z9 as substituteArguments,$8 as structuredOutputTool,Z8 as structuredOutputPrompt,LH as storedAuthProviders,Bj as skillsExtension,G3 as skillListing,Zj as shellHooksExtension,Aj as sessionToMarkdown,FH as saveApiKey,sW as resolveExtensionFiles,W8 as renderAuthPage,DH as removeStoredCredential,_H as registryWithCoreCommands,cQ as registerProvider,oQ as registerModels,tQ as refreshModels,n0 as readAuthFile,P6 as providerHasCredentials,UH as preferredAuthProvider,Q9 as parseMarkdownCommand,W5 as parseFrontmatter,VQ as optionsFromProfile,sM as mcpExtension,RH as loginXai,yH as loginOpenRouter,TH as loginOpenAI,EH as loginKimiCoding,CH as loginGitHubCopilot,FQ as loadSkill,eM as loadProfile,tM as loadMcpConfig,$V as loadMarkdownCommands,mH as loadExtensions,R$ as listModels,w1 as findModel,y as errorResult,Jj as discoverSkills,rQ as discoverModels,w6 as defaultThinkingLevel,Kj as defaultSkillRoots,n1 as defaultModelRef,K8 as defaultAuthFile,k$ as customMessage,PH as createCredentialResolver,O_ as createAgent,oW as coreCommands,v3 as codingProfile,e6 as checkBudget,u0 as builtinProviderConfigs,oZ as authSuccessPage,E1 as authErrorPage,W0 as SessionTree,o1 as STRUCTURED_OUTPUT_TOOL,f$ as MemorySessionStore,eW as FileSessionStore,R6 as ExtensionHost,M1 as CommandRegistry,l$ as Agent};
|
|
269
|
+
[exit code ${K.exitCode}]`:F}],details:{command:Q,exitCode:K.exitCode,durationMs:V},isError:D}}})}import{z as f0}from"zod";function i9($){return({command:Z,onOutput:Q,cols:Y,rows:W})=>{if(process.platform==="win32"){let L=Bun.spawn(R$(Z,{interactive:!0}),{cwd:$,detached:!1,env:xZ(),stdin:"pipe",stdout:"pipe",stderr:"pipe",windowsHide:!0}),U=async(N)=>{let j=N.getReader(),P=new TextDecoder;while(!0){let{done:C,value:g}=await j.read();if(C)break;let n=P.decode(g,{stream:!0});if(n)Q(n)}let O=P.decode();if(O)Q(O)},q=Promise.all([U(L.stdout),U(L.stderr)]),A;return{write:(N)=>{L.stdin.write(N),L.stdin.flush()},resize:()=>{},detach:()=>L.unref(),kill:()=>{Q1(L,"SIGTERM"),A=setTimeout(()=>{if(L.exitCode===null)Q1(L,"SIGKILL")},1000),A.unref?.()},exited:Promise.all([L.exited,q]).then(([N])=>N??null).finally(()=>{if(A)clearTimeout(A)})}}let G=new TextDecoder,X=!1,J,B=new Promise((L)=>{J=L}),K=()=>{if(X)return;X=!0;let L=G.decode();if(L)Q(L)},V=Bun.spawn(R$(Z,{interactive:!0}),{cwd:$,detached:!0,env:xZ({TERM:"xterm-256color"}),terminal:{cols:Y,rows:W,data:(L,U)=>{let q=G.decode(U,{stream:!0});if(q)Q(q)},exit:()=>{K(),J?.()}}}),z=V.terminal;if(!z)throw Error("Could not allocate a pseudo-terminal.");let F=Promise.all([V.exited,B]).then(([L])=>{if(K(),!z.closed)z.close();return L??null}),D;return{write:(L)=>void z.write(L),resize:(L,U)=>z.resize(L,U),detach:()=>{V.unref(),z.unref()},kill:()=>{Q1(V,"SIGTERM"),D=setTimeout(()=>{if(V.exitCode===null)Q1(V,"SIGKILL")},1000),D.unref?.()},exited:F.finally(()=>{if(D)clearTimeout(D)})}}}function n9($){let Z=r({name:"task_output",description:"Read output from a background task. Returns only what is new since the last read unless full is set.",inputSchema:f0.object({taskId:f0.string(),full:f0.boolean().optional().describe("Return all output rather than only what is new")}),isConcurrencySafe:()=>!0,execute:({taskId:X,full:J})=>{let B=$.get(X);if(!B)return S(`No such task: ${X}`);let K=$.output(X,J?"start":"new"),V=B.status==="running"?"still running":`${B.status}${B.exitCode!==null?` (exit ${B.exitCode})`:""}`,z=K?.text.trim().length?K.text:"(no new output)";return{content:[{type:"text",text:`${k0(x0(z),"task output is large")}
|
|
270
|
+
|
|
271
|
+
[${V}]`}],details:{taskId:X,status:B.status,exitCode:B.exitCode}}}}),Q=r({name:"task_write_stdin",description:"Write to a background task's stdin \u2014 use for REPLs and interactive processes. Include a trailing newline to submit a line.",inputSchema:f0.object({taskId:f0.string(),data:f0.string()}),execute:({taskId:X,data:J})=>{if(!$.get(X))return S(`No such task: ${X}`);return $.writeStdin(X,J)?`Wrote ${J.length} characters to ${X}.`:S(`Task ${X} is not running.`)}}),Y=r({name:"task_kill",description:"Stop a background task.",inputSchema:f0.object({taskId:f0.string()}),execute:({taskId:X})=>{if(!$.get(X))return S(`No such task: ${X}`);return $.kill(X)?`Killed ${X}.`:`Task ${X} had already stopped.`}}),W=r({name:"task_detach",description:"Detach a background task so it is not stopped when the mu session exits. Use only for work that must outlive the session.",inputSchema:f0.object({taskId:f0.string()}),execute:({taskId:X})=>{if(!$.get(X))return S(`No such task: ${X}`);return $.detach(X)?`Detached ${X}. It will continue after this session exits.`:S(`Task ${X} is not running or was already detached.`)}}),G=r({name:"task_list",description:"List background tasks started in this session.",inputSchema:f0.object({}),isConcurrencySafe:()=>!0,execute:()=>{let X=$.list();if(X.length===0)return"No background tasks.";return X.map((J)=>`${J.id} \xB7 ${J.status}${J.detached?" (detached)":""}${J.exitCode!==null?` (exit ${J.exitCode})`:""} \xB7 ${J.command}`).join(`
|
|
272
|
+
`)}});return[Z,Q,Y,W,G]}import{z as vZ}from"zod";class P6{items=[];replace($){this.items=$}all(){return[...this.items]}}var fP={pending:"[ ]",in_progress:"[~]",completed:"[x]"};function zK($){if($.length===0)return"(no tasks)";return $.map((Z)=>`${fP[Z.status]} ${Z.content}`).join(`
|
|
273
|
+
`)}function a9($){return r({name:"todo",description:"Record and update the task list for multi-step work. Send the complete list every time; it replaces the previous one. Mark exactly one task in_progress while you work on it.",inputSchema:vZ.object({items:vZ.array(vZ.object({content:vZ.string().describe("What needs doing"),status:vZ.enum(["pending","in_progress","completed"])})).describe("The complete task list")}),execute:({items:Z})=>{let Q=Z.filter((G)=>G.status==="in_progress").length;$.replace(Z);let Y=zK(Z),W=Q>1?`
|
|
274
|
+
|
|
275
|
+
[note: more than one task is in_progress \u2014 work on one at a time]`:"";return{content:[{type:"text",text:`${Y}${W}`}],details:{items:Z}}}})}async function uP($,Z){let Q=hP($,".mu","config.json");try{let Y=JSON.parse(await vP(Q,"utf8"));if(typeof Y!=="object"||Y===null||Array.isArray(Y))return Z(`Invalid user config at ${Q}: config must be an object`),{};let W=Y.instructions;if(W===void 0)return{};let G=F8.safeParse(W);if(!G.success)return Z(`Invalid user config at ${Q}: ${G.error.issues.map((z)=>`instructions.${z.path.join(".")}: ${z.message}`).join("; ")}`),{};let{enabled:X,fallbackFilenames:J,projectRootMarkers:B,imports:K,claudeRules:V}=G.data;return{...X!==void 0?{enabled:X}:{},...J!==void 0?{fallbackFilenames:J}:{},...B!==void 0?{projectRootMarkers:B}:{},...K!==void 0?{imports:K}:{},...V!==void 0?{claudeRules:V}:{}}}catch(Y){if(Y.code!=="ENOENT")Z(`Invalid user config at ${Q}: ${Y instanceof Error?Y.message:Y}`);return{}}}async function DK($={}){let Z=FK($.root??process.cwd()),Q=FK($.home??gP()),Y=new J5,W=new P6,G=[],X=await G5(Z,(F)=>G.push(F)),J=new Y5({root:Z,home:Q,...await uP(Q,(F)=>G.push(F)),...X.instructions??{},...$.instructions??{},...$.managedInstructionPaths?{managedPaths:$.managedInstructionPaths}:{}});await J.reload();let B={root:Z,state:Y,instructions:J},K=new oZ($.spawner??i9(Z),$.processEvents??{}),V=[x9(B),k9(B),f9(B),v9(B),l9(B),p9(B),d9({root:Z,processes:K,...$.spawn?{spawn:$.spawn}:{}}),a9(W),...n9(K)],z={attach:(F)=>{K.setEvents({onStarted:(D)=>{$.processEvents?.onStarted?.(D),F.emit({type:"task_started",taskId:D.id,command:D.command,background:!0})},onOutput:(D,L)=>{$.processEvents?.onOutput?.(D,L),F.emit({type:"task_output",taskId:D,chunk:L})},onExited:(D)=>{if($.processEvents?.onExited?.(D),F.emit({type:"task_exited",taskId:D.id,exitCode:D.exitCode,status:D.status==="killed"?"killed":"exited"}),!D.detached)F.followUp(t6(D))}})},resize:(F,D)=>K.resizeAll(F,D),stop:()=>K.stopAll(),shutdown:()=>K.killAll()};return{name:"coding",toolset:V,promptFor:U8,permissionDefaults:D8(V8,X.permissions),permissionModes:z8,defaultPermissionMode:"default",rememberPermission:(F,D)=>L8(Z,F,D),environment:()=>W5(Z),contextMessages:async()=>[B8(await W5(Z))],refreshContext:(F,D)=>J.refreshedMessages(F,D.sessionId),diagnostics:[...G,...J.snapshot.diagnostics.map((F)=>F.path?`${F.path}: ${F.message}`:F.message)],commands:[{name:"instructions",description:"Show or reload instruction files",run:async(F)=>{let D=F.args.trim();if(D&&D!=="reload")return{handled:!0,message:"Usage: /instructions [reload]"};if(D==="reload")await J.reload({resetNested:!0});return{handled:!0,message:J.formatStatus(D==="reload"?"instructions reloaded":"instructions")}}},{name:"reload",description:"Reload instruction files",run:async()=>{return await J.reload({resetNested:!0}),{handled:!0,message:J.formatStatus("instructions reloaded")}}}],carryoverExtractor:()=>({readFiles:Y.readFiles(),modifiedFiles:Y.modifiedFiles(),todos:W.all()}),scope:()=>Z.replace(/[^A-Za-z0-9]+/g,"-").replace(/^-|-$/g,""),checkpointProvider:new $5({root:Z}),runtime:z,fileState:Y,todos:W,processes:K,instructions:J}}function mP($){if(typeof $.model==="string")return $.model;if($.model)return`${$.model.provider}/${$.model.id}`;return Z$()}async function Vx($={}){let{profile:Z,profileOptions:Q,...Y}=$;if(!Z)return new t$(Y);let W=Z==="coding"?await DK(Q):Z;return new t$(await R9(W,mP(Y),Y))}export{W$ as userMessage,Y7 as totalTokens,r as tool,vV as toCommand,a0 as thinkingLevelForModel,EQ as textResult,Q$ as supportedThinkingLevels,R7 as substituteArguments,A8 as structuredOutputTool,N8 as structuredOutputPrompt,sH as storedAuthProviders,ij as skillsExtension,x3 as skillListing,gj as shellHooksExtension,ZP as sessionToMarkdown,tH as saveApiKey,P7 as resolveExtensionFiles,M8 as renderAuthPage,oH as removeStoredCredential,UV as registryWithCoreCommands,HQ as registerProvider,AQ as registerModels,qQ as refreshModels,t0 as readAuthFile,v6 as providerHasCredentials,eH as preferredAuthProvider,C7 as parseMarkdownCommand,L5 as parseFrontmatter,R9 as optionsFromProfile,xj as mcpExtension,VV as loginXai,DV as loginOpenRouter,KV as loginOpenAI,HV as loginKimiCoding,zV as loginGitHubCopilot,S9 as loadSkill,kj as loadProfile,bj as loadMcpConfig,fV as loadMarkdownCommands,wV as loadExtensions,f$ as listModels,$$ as findModel,S as errorResult,cj as discoverSkills,UQ as discoverModels,h6 as defaultThinkingLevel,dj as defaultSkillRoots,Z$ as defaultModelRef,OQ as defaultModelId,T8 as defaultAuthFile,l$ as customMessage,XV as createCredentialResolver,Vx as createAgent,j7 as coreCommands,DK as codingProfile,q8 as checkBudget,p0 as builtinProviderConfigs,K5 as authSuccessPage,b1 as authErrorPage,s as SessionTree,G$ as STRUCTURED_OUTPUT_TOOL,c$ as MemorySessionStore,T7 as FileSessionStore,p6 as ExtensionHost,T1 as CommandRegistry,t$ as Agent};
|