@swifty.js/swifty 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __swiftyCreateRequire } from "node:module";
3
3
  const require = __swiftyCreateRequire(import.meta.url);
4
- import{a as ql,b as Dl,d as Ll,j as lo}from"./chunk-IZ23BHLA.js";import{e as tr}from"./chunk-S2DPVNBA.js";import{a as co,b as Ul,c as Fl,f as Hl}from"./chunk-UBV5T4TV.js";import{a as er}from"./chunk-DCI5RJC7.js";import{a as Qs,b as Ue,c as El,d as io,e as Pl}from"./chunk-KYXKZJ3Z.js";import{a as ft}from"./chunk-7MHXMDYC.js";import{A as ze,B as P,C as re,D as Ol,E as ti,F as jl,G as Nl,H as O,I as _,L as ri,N,P as Rt,Q as Wr,R as x,S as ao,e as C,f as xl,i as Rl,j as $e,k as Cl,l as Ml,m as p,n as zl,o as B,p as Z,q as Al,r as Il,s as se,t as T,u as $,v as ce,w as ee,x as Xs,y as ei,z as Y}from"./chunk-4KVSJNS6.js";import{a as mt,b as S,d as Ys}from"./chunk-X3UA5OZL.js";var sn=S(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.regexpCode=G.getEsmExportName=G.getProperty=G.safeStringify=G.stringify=G.strConcat=G.addCodeArg=G.str=G._=G.nil=G._Code=G.Name=G.IDENTIFIER=G._CodeOrName=void 0;var nn=class{};G._CodeOrName=nn;G.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var It=class extends nn{constructor(e){if(super(),!G.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};G.Name=It;var Ne=class extends nn{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof It&&(r[n.str]=(r[n.str]||0)+1),r),{})}};G._Code=Ne;G.nil=new Ne("");function ed(t,...e){let r=[t[0]],n=0;for(;n<e.length;)Bi(r,e[n]),r.push(t[++n]);return new Ne(r)}G._=ed;var Vi=new Ne("+");function td(t,...e){let r=[on(t[0])],n=0;for(;n<e.length;)r.push(Vi),Bi(r,e[n]),r.push(Vi,on(t[++n]));return nw(r),new Ne(r)}G.str=td;function Bi(t,e){e instanceof Ne?t.push(...e._items):e instanceof It?t.push(e):t.push(iw(e))}G.addCodeArg=Bi;function nw(t){let e=1;for(;e<t.length-1;){if(t[e]===Vi){let r=ow(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function ow(t,e){if(e==='""')return t;if(t==='""')return e;if(typeof t=="string")return e instanceof It||t[t.length-1]!=='"'?void 0:typeof e!="string"?`${t.slice(0,-1)}${e}"`:e[0]==='"'?t.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(t instanceof It))return`"${t}${e.slice(1)}`}function sw(t,e){return e.emptyStr()?t:t.emptyStr()?e:td`${t}${e}`}G.strConcat=sw;function iw(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:on(Array.isArray(t)?t.join(","):t)}function aw(t){return new Ne(on(t))}G.stringify=aw;function on(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}G.safeStringify=on;function cw(t){return typeof t=="string"&&G.IDENTIFIER.test(t)?new Ne(`.${t}`):ed`[${t}]`}G.getProperty=cw;function lw(t){if(typeof t=="string"&&G.IDENTIFIER.test(t))return new Ne(`${t}`);throw new Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}G.getEsmExportName=lw;function uw(t){return new Ne(t.toString())}G.regexpCode=uw});var Zi=S(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.ValueScope=Pe.ValueScopeName=Pe.Scope=Pe.varKinds=Pe.UsedValueState=void 0;var Ee=sn(),Gi=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},zo;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(zo||(Pe.UsedValueState=zo={}));Pe.varKinds={const:new Ee.Name("const"),let:new Ee.Name("let"),var:new Ee.Name("var")};var Ao=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof Ee.Name?e:this.name(e)}name(e){return new Ee.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Pe.Scope=Ao;var Io=class extends Ee.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,Ee._)`.${new Ee.Name(r)}[${n}]`}};Pe.ValueScopeName=Io;var dw=(0,Ee._)`\n`,Ki=class extends Ao{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?dw:Ee.nil}}get(){return this._scope}name(e){return new Io(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(e),{prefix:s}=o,i=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[s];if(a){let l=a.get(i);if(l)return l}else a=this._values[s]=new Map;a.set(i,o);let c=this._scope[s]||(this._scope[s]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:s,itemIndex:u}),o}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Ee._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(e,r,n={},o){let s=Ee.nil;for(let i in e){let a=e[i];if(!a)continue;let c=n[i]=n[i]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,zo.Started);let l=r(u);if(l){let d=this.opts.es5?Pe.varKinds.var:Pe.varKinds.const;s=(0,Ee._)`${s}${d} ${u} = ${l};${this.opts._n}`}else if(l=o?.(u))s=(0,Ee._)`${s}${l}${this.opts._n}`;else throw new Gi(u);c.set(u,zo.Completed)})}return s}};Pe.ValueScope=Ki});var D=S(L=>{"use strict";Object.defineProperty(L,"__esModule",{value:!0});L.or=L.and=L.not=L.CodeGen=L.operators=L.varKinds=L.ValueScopeName=L.ValueScope=L.Scope=L.Name=L.regexpCode=L.stringify=L.getProperty=L.nil=L.strConcat=L.str=L._=void 0;var H=sn(),Fe=Zi(),wt=sn();Object.defineProperty(L,"_",{enumerable:!0,get:function(){return wt._}});Object.defineProperty(L,"str",{enumerable:!0,get:function(){return wt.str}});Object.defineProperty(L,"strConcat",{enumerable:!0,get:function(){return wt.strConcat}});Object.defineProperty(L,"nil",{enumerable:!0,get:function(){return wt.nil}});Object.defineProperty(L,"getProperty",{enumerable:!0,get:function(){return wt.getProperty}});Object.defineProperty(L,"stringify",{enumerable:!0,get:function(){return wt.stringify}});Object.defineProperty(L,"regexpCode",{enumerable:!0,get:function(){return wt.regexpCode}});Object.defineProperty(L,"Name",{enumerable:!0,get:function(){return wt.Name}});var qo=Zi();Object.defineProperty(L,"Scope",{enumerable:!0,get:function(){return qo.Scope}});Object.defineProperty(L,"ValueScope",{enumerable:!0,get:function(){return qo.ValueScope}});Object.defineProperty(L,"ValueScopeName",{enumerable:!0,get:function(){return qo.ValueScopeName}});Object.defineProperty(L,"varKinds",{enumerable:!0,get:function(){return qo.varKinds}});L.operators={GT:new H._Code(">"),GTE:new H._Code(">="),LT:new H._Code("<"),LTE:new H._Code("<="),EQ:new H._Code("==="),NEQ:new H._Code("!=="),NOT:new H._Code("!"),OR:new H._Code("||"),AND:new H._Code("&&"),ADD:new H._Code("+")};var tt=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Ji=class extends tt{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?Fe.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=ur(this.rhs,e,r)),this}get names(){return this.rhs instanceof H._CodeOrName?this.rhs.names:{}}},Oo=class extends tt{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof H.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=ur(this.rhs,e,r),this}get names(){let e=this.lhs instanceof H.Name?{}:{...this.lhs.names};return No(e,this.rhs)}},Yi=class extends Oo{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Qi=class extends tt{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Xi=class extends tt{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},ea=class extends tt{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},ta=class extends tt{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=ur(this.code,e,r),this}get names(){return this.code instanceof H._CodeOrName?this.code.names:{}}},an=class extends tt{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,o=n.length;for(;o--;){let s=n[o];s.optimizeNames(e,r)||(pw(e,s.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>Nt(e,r.names),{})}},rt=class extends an{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},ra=class extends an{},lr=class extends rt{};lr.kind="else";var Ot=class t extends rt{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new lr(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(rd(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=ur(this.condition,e,r),this}get names(){let e=super.names;return No(e,this.condition),this.else&&Nt(e,this.else.names),e}};Ot.kind="if";var jt=class extends rt{};jt.kind="for";var na=class extends jt{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=ur(this.iteration,e,r),this}get names(){return Nt(super.names,this.iteration.names)}},oa=class extends jt{constructor(e,r,n,o){super(),this.varKind=e,this.name=r,this.from=n,this.to=o}render(e){let r=e.es5?Fe.varKinds.var:this.varKind,{name:n,from:o,to:s}=this;return`for(${r} ${n}=${o}; ${n}<${s}; ${n}++)`+super.render(e)}get names(){let e=No(super.names,this.from);return No(e,this.to)}},jo=class extends jt{constructor(e,r,n,o){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=o}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=ur(this.iterable,e,r),this}get names(){return Nt(super.names,this.iterable.names)}},cn=class extends rt{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};cn.kind="func";var ln=class extends an{render(e){return"return "+super.render(e)}};ln.kind="return";var sa=class extends rt{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,o;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(o=this.finally)===null||o===void 0||o.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&Nt(e,this.catch.names),this.finally&&Nt(e,this.finally.names),e}},un=class extends rt{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};un.kind="catch";var dn=class extends rt{render(e){return"finally"+super.render(e)}};dn.kind="finally";var ia=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
5
- `:""},this._extScope=e,this._scope=new Fe.Scope({parent:e}),this._nodes=[new ra]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,o){let s=this._scope.toName(r);return n!==void 0&&o&&(this._constants[s.str]=n),this._leafNode(new Ji(e,s,n)),s}const(e,r,n){return this._def(Fe.varKinds.const,e,r,n)}let(e,r,n){return this._def(Fe.varKinds.let,e,r,n)}var(e,r,n){return this._def(Fe.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new Oo(e,r,n))}add(e,r){return this._leafNode(new Yi(e,L.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==H.nil&&this._leafNode(new ta(e)),this}object(...e){let r=["{"];for(let[n,o]of e)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,H.addCodeArg)(r,o));return r.push("}"),new H._Code(r)}if(e,r,n){if(this._blockNode(new Ot(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new Ot(e))}else(){return this._elseNode(new lr)}endIf(){return this._endBlockNode(Ot,lr)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new na(e),r)}forRange(e,r,n,o,s=this.opts.es5?Fe.varKinds.var:Fe.varKinds.let){let i=this._scope.toName(e);return this._for(new oa(s,i,r,n),()=>o(i))}forOf(e,r,n,o=Fe.varKinds.const){let s=this._scope.toName(e);if(this.opts.es5){let i=r instanceof H.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,H._)`${i}.length`,a=>{this.var(s,(0,H._)`${i}[${a}]`),n(s)})}return this._for(new jo("of",o,s,r),()=>n(s))}forIn(e,r,n,o=this.opts.es5?Fe.varKinds.var:Fe.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,H._)`Object.keys(${r})`,n);let s=this._scope.toName(e);return this._for(new jo("in",o,s,r),()=>n(s))}endFor(){return this._endBlockNode(jt)}label(e){return this._leafNode(new Qi(e))}break(e){return this._leafNode(new Xi(e))}return(e){let r=new ln;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(ln)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new sa;if(this._blockNode(o),this.code(e),r){let s=this.name("e");this._currNode=o.catch=new un(s),r(s)}return n&&(this._currNode=o.finally=new dn,this.code(n)),this._endBlockNode(un,dn)}throw(e){return this._leafNode(new ea(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=H.nil,n,o){return this._blockNode(new cn(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(cn)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof Ot))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};L.CodeGen=ia;function Nt(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function No(t,e){return e instanceof H._CodeOrName?Nt(t,e.names):t}function ur(t,e,r){if(t instanceof H.Name)return n(t);if(!o(t))return t;return new H._Code(t._items.reduce((s,i)=>(i instanceof H.Name&&(i=n(i)),i instanceof H._Code?s.push(...i._items):s.push(i),s),[]));function n(s){let i=r[s.str];return i===void 0||e[s.str]!==1?s:(delete e[s.str],i)}function o(s){return s instanceof H._Code&&s._items.some(i=>i instanceof H.Name&&e[i.str]===1&&r[i.str]!==void 0)}}function pw(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function rd(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,H._)`!${aa(t)}`}L.not=rd;var mw=nd(L.operators.AND);function fw(...t){return t.reduce(mw)}L.and=fw;var hw=nd(L.operators.OR);function gw(...t){return t.reduce(hw)}L.or=gw;function nd(t){return(e,r)=>e===H.nil?r:r===H.nil?e:(0,H._)`${aa(e)} ${t} ${aa(r)}`}function aa(t){return t instanceof H.Name?t:(0,H._)`(${t})`}});var W=S(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var J=D(),yw=sn();function _w(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=_w;function ww(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(id(t,e),!ad(e,t.self.RULES.all))}U.alwaysValidSchema=ww;function id(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let o=n.RULES.keywords;for(let s in e)o[s]||ud(t,`unknown keyword: "${s}"`)}U.checkUnknownRules=id;function ad(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=ad;function vw(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}U.schemaHasRulesButRef=vw;function bw({topSchemaRef:t,schemaPath:e},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,J._)`${r}`}return(0,J._)`${t}${e}${(0,J.getProperty)(n)}`}U.schemaRefOrVal=bw;function Sw(t){return cd(decodeURIComponent(t))}U.unescapeFragment=Sw;function kw(t){return encodeURIComponent(la(t))}U.escapeFragment=kw;function la(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=la;function cd(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=cd;function Tw(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=Tw;function od({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(o,s,i,a)=>{let c=i===void 0?s:i instanceof J.Name?(s instanceof J.Name?t(o,s,i):e(o,s,i),i):s instanceof J.Name?(e(o,i,s),s):r(s,i);return a===J.Name&&!(c instanceof J.Name)?n(o,c):c}}U.mergeEvaluated={props:od({mergeNames:(t,e,r)=>t.if((0,J._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,J._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,J._)`${r} || {}`).code((0,J._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,J._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,J._)`${r} || {}`),ua(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:ld}),items:od({mergeNames:(t,e,r)=>t.if((0,J._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,J._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,J._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,J._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function ld(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,J._)`{}`);return e!==void 0&&ua(t,r,e),r}U.evaluatedPropsToName=ld;function ua(t,e,r){Object.keys(r).forEach(n=>t.assign((0,J._)`${e}${(0,J.getProperty)(n)}`,!0))}U.setEvaluated=ua;var sd={};function $w(t,e){return t.scopeValue("func",{ref:e,code:sd[e.code]||(sd[e.code]=new yw._Code(e.code))})}U.useFunc=$w;var ca;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(ca||(U.Type=ca={}));function xw(t,e,r){if(t instanceof J.Name){let n=e===ca.Num;return r?n?(0,J._)`"[" + ${t} + "]"`:(0,J._)`"['" + ${t} + "']"`:n?(0,J._)`"/" + ${t}`:(0,J._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,J.getProperty)(t).toString():"/"+la(t)}U.getErrorPath=xw;function ud(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}U.checkStrictMode=ud});var nt=S(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});var _e=D(),Ew={data:new _e.Name("data"),valCxt:new _e.Name("valCxt"),instancePath:new _e.Name("instancePath"),parentData:new _e.Name("parentData"),parentDataProperty:new _e.Name("parentDataProperty"),rootData:new _e.Name("rootData"),dynamicAnchors:new _e.Name("dynamicAnchors"),vErrors:new _e.Name("vErrors"),errors:new _e.Name("errors"),this:new _e.Name("this"),self:new _e.Name("self"),scope:new _e.Name("scope"),json:new _e.Name("json"),jsonPos:new _e.Name("jsonPos"),jsonLen:new _e.Name("jsonLen"),jsonPart:new _e.Name("jsonPart")};da.default=Ew});var pn=S(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.extendErrors=we.resetErrorsCount=we.reportExtraError=we.reportError=we.keyword$DataError=we.keywordError=void 0;var V=D(),Do=W(),be=nt();we.keywordError={message:({keyword:t})=>(0,V.str)`must pass "${t}" keyword validation`};we.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,V.str)`"${t}" keyword must be ${e} ($data)`:(0,V.str)`"${t}" keyword is invalid ($data)`};function Pw(t,e=we.keywordError,r,n){let{it:o}=t,{gen:s,compositeRule:i,allErrors:a}=o,c=md(t,e,r);n??(i||a)?dd(s,c):pd(o,(0,V._)`[${c}]`)}we.reportError=Pw;function Rw(t,e=we.keywordError,r){let{it:n}=t,{gen:o,compositeRule:s,allErrors:i}=n,a=md(t,e,r);dd(o,a),s||i||pd(n,be.default.vErrors)}we.reportExtraError=Rw;function Cw(t,e){t.assign(be.default.errors,e),t.if((0,V._)`${be.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,V._)`${be.default.vErrors}.length`,e),()=>t.assign(be.default.vErrors,null)))}we.resetErrorsCount=Cw;function Mw({gen:t,keyword:e,schemaValue:r,data:n,errsCount:o,it:s}){if(o===void 0)throw new Error("ajv implementation error");let i=t.name("err");t.forRange("i",o,be.default.errors,a=>{t.const(i,(0,V._)`${be.default.vErrors}[${a}]`),t.if((0,V._)`${i}.instancePath === undefined`,()=>t.assign((0,V._)`${i}.instancePath`,(0,V.strConcat)(be.default.instancePath,s.errorPath))),t.assign((0,V._)`${i}.schemaPath`,(0,V.str)`${s.errSchemaPath}/${e}`),s.opts.verbose&&(t.assign((0,V._)`${i}.schema`,r),t.assign((0,V._)`${i}.data`,n))})}we.extendErrors=Mw;function dd(t,e){let r=t.const("err",e);t.if((0,V._)`${be.default.vErrors} === null`,()=>t.assign(be.default.vErrors,(0,V._)`[${r}]`),(0,V._)`${be.default.vErrors}.push(${r})`),t.code((0,V._)`${be.default.errors}++`)}function pd(t,e){let{gen:r,validateName:n,schemaEnv:o}=t;o.$async?r.throw((0,V._)`new ${t.ValidationError}(${e})`):(r.assign((0,V._)`${n}.errors`,e),r.return(!1))}var qt={keyword:new V.Name("keyword"),schemaPath:new V.Name("schemaPath"),params:new V.Name("params"),propertyName:new V.Name("propertyName"),message:new V.Name("message"),schema:new V.Name("schema"),parentSchema:new V.Name("parentSchema")};function md(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,V._)`{}`:zw(t,e,r)}function zw(t,e,r={}){let{gen:n,it:o}=t,s=[Aw(o,r),Iw(t,r)];return Ow(t,e,s),n.object(...s)}function Aw({errorPath:t},{instancePath:e}){let r=e?(0,V.str)`${t}${(0,Do.getErrorPath)(e,Do.Type.Str)}`:t;return[be.default.instancePath,(0,V.strConcat)(be.default.instancePath,r)]}function Iw({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,V.str)`${e}/${t}`;return r&&(o=(0,V.str)`${o}${(0,Do.getErrorPath)(r,Do.Type.Str)}`),[qt.schemaPath,o]}function Ow(t,{params:e,message:r},n){let{keyword:o,data:s,schemaValue:i,it:a}=t,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=a;n.push([qt.keyword,o],[qt.params,typeof e=="function"?e(t):e||(0,V._)`{}`]),c.messages&&n.push([qt.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([qt.schema,i],[qt.parentSchema,(0,V._)`${l}${d}`],[be.default.data,s]),u&&n.push([qt.propertyName,u])}});var hd=S(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.boolOrEmptySchema=dr.topBoolOrEmptySchema=void 0;var jw=pn(),Nw=D(),qw=nt(),Dw={message:"boolean schema is false"};function Lw(t){let{gen:e,schema:r,validateName:n}=t;r===!1?fd(t,!1):typeof r=="object"&&r.$async===!0?e.return(qw.default.data):(e.assign((0,Nw._)`${n}.errors`,null),e.return(!0))}dr.topBoolOrEmptySchema=Lw;function Uw(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),fd(t)):r.var(e,!0)}dr.boolOrEmptySchema=Uw;function fd(t,e){let{gen:r,data:n}=t,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,jw.reportError)(o,Dw,void 0,e)}});var pa=S(pr=>{"use strict";Object.defineProperty(pr,"__esModule",{value:!0});pr.getRules=pr.isJSONType=void 0;var Fw=["string","number","integer","boolean","null","object","array"],Hw=new Set(Fw);function Ww(t){return typeof t=="string"&&Hw.has(t)}pr.isJSONType=Ww;function Vw(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}pr.getRules=Vw});var ma=S(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.shouldUseRule=vt.shouldUseGroup=vt.schemaHasRulesForType=void 0;function Bw({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&gd(t,n)}vt.schemaHasRulesForType=Bw;function gd(t,e){return e.rules.some(r=>yd(t,r))}vt.shouldUseGroup=gd;function yd(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}vt.shouldUseRule=yd});var mn=S(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.reportTypeError=ve.checkDataTypes=ve.checkDataType=ve.coerceAndCheckDataType=ve.getJSONTypes=ve.getSchemaTypes=ve.DataType=void 0;var Gw=pa(),Kw=ma(),Zw=pn(),q=D(),_d=W(),mr;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(mr||(ve.DataType=mr={}));function Jw(t){let e=wd(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}ve.getSchemaTypes=Jw;function wd(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(Gw.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}ve.getJSONTypes=wd;function Yw(t,e){let{gen:r,data:n,opts:o}=t,s=Qw(e,o.coerceTypes),i=e.length>0&&!(s.length===0&&e.length===1&&(0,Kw.schemaHasRulesForType)(t,e[0]));if(i){let a=ha(e,n,o.strictNumbers,mr.Wrong);r.if(a,()=>{s.length?Xw(t,e,s):ga(t)})}return i}ve.coerceAndCheckDataType=Yw;var vd=new Set(["string","number","integer","boolean","null"]);function Qw(t,e){return e?t.filter(r=>vd.has(r)||e==="array"&&r==="array"):[]}function Xw(t,e,r){let{gen:n,data:o,opts:s}=t,i=n.let("dataType",(0,q._)`typeof ${o}`),a=n.let("coerced",(0,q._)`undefined`);s.coerceTypes==="array"&&n.if((0,q._)`${i} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,q._)`${o}[0]`).assign(i,(0,q._)`typeof ${o}`).if(ha(e,o,s.strictNumbers),()=>n.assign(a,o))),n.if((0,q._)`${a} !== undefined`);for(let u of r)(vd.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);n.else(),ga(t),n.endIf(),n.if((0,q._)`${a} !== undefined`,()=>{n.assign(o,a),ev(t,a)});function c(u){switch(u){case"string":n.elseIf((0,q._)`${i} == "number" || ${i} == "boolean"`).assign(a,(0,q._)`"" + ${o}`).elseIf((0,q._)`${o} === null`).assign(a,(0,q._)`""`);return;case"number":n.elseIf((0,q._)`${i} == "boolean" || ${o} === null
4
+ import{a as ql,b as Dl,d as Ll,j as po}from"./chunk-IZ23BHLA.js";import{e as tr}from"./chunk-S2DPVNBA.js";import{a as uo,b as Ul,c as Fl,f as Hl}from"./chunk-UBV5T4TV.js";import{a as er}from"./chunk-DCI5RJC7.js";import{a as Ue,b as Pl,c as ao,d as co}from"./chunk-HU7ELU2V.js";import{a as ft}from"./chunk-7MHXMDYC.js";import{A as ze,B as P,C as re,D as Ol,E as ti,F as jl,G as Nl,H as O,I as _,L as ri,N,P as Rt,Q as Wr,R as E,S as lo,e as C,f as El,i as Rl,j as xe,k as Cl,l as Ml,m as p,n as zl,o as B,p as Z,q as Al,r as Il,s as se,t as T,u as x,v as ce,w as ee,x as Qs,y as ei,z as Y}from"./chunk-4KVSJNS6.js";import{a as mt,b as S,d as io}from"./chunk-X3UA5OZL.js";var sn=S(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.regexpCode=G.getEsmExportName=G.getProperty=G.safeStringify=G.stringify=G.strConcat=G.addCodeArg=G.str=G._=G.nil=G._Code=G.Name=G.IDENTIFIER=G._CodeOrName=void 0;var nn=class{};G._CodeOrName=nn;G.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var It=class extends nn{constructor(e){if(super(),!G.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};G.Name=It;var Ne=class extends nn{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof It&&(r[n.str]=(r[n.str]||0)+1),r),{})}};G._Code=Ne;G.nil=new Ne("");function ed(t,...e){let r=[t[0]],n=0;for(;n<e.length;)Bi(r,e[n]),r.push(t[++n]);return new Ne(r)}G._=ed;var Vi=new Ne("+");function td(t,...e){let r=[on(t[0])],n=0;for(;n<e.length;)r.push(Vi),Bi(r,e[n]),r.push(Vi,on(t[++n]));return lw(r),new Ne(r)}G.str=td;function Bi(t,e){e instanceof Ne?t.push(...e._items):e instanceof It?t.push(e):t.push(pw(e))}G.addCodeArg=Bi;function lw(t){let e=1;for(;e<t.length-1;){if(t[e]===Vi){let r=uw(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function uw(t,e){if(e==='""')return t;if(t==='""')return e;if(typeof t=="string")return e instanceof It||t[t.length-1]!=='"'?void 0:typeof e!="string"?`${t.slice(0,-1)}${e}"`:e[0]==='"'?t.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(t instanceof It))return`"${t}${e.slice(1)}`}function dw(t,e){return e.emptyStr()?t:t.emptyStr()?e:td`${t}${e}`}G.strConcat=dw;function pw(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:on(Array.isArray(t)?t.join(","):t)}function mw(t){return new Ne(on(t))}G.stringify=mw;function on(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}G.safeStringify=on;function fw(t){return typeof t=="string"&&G.IDENTIFIER.test(t)?new Ne(`.${t}`):ed`[${t}]`}G.getProperty=fw;function hw(t){if(typeof t=="string"&&G.IDENTIFIER.test(t))return new Ne(`${t}`);throw new Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}G.getEsmExportName=hw;function gw(t){return new Ne(t.toString())}G.regexpCode=gw});var Zi=S(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.ValueScope=Pe.ValueScopeName=Pe.Scope=Pe.varKinds=Pe.UsedValueState=void 0;var Ee=sn(),Gi=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},Io;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(Io||(Pe.UsedValueState=Io={}));Pe.varKinds={const:new Ee.Name("const"),let:new Ee.Name("let"),var:new Ee.Name("var")};var Oo=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof Ee.Name?e:this.name(e)}name(e){return new Ee.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Pe.Scope=Oo;var jo=class extends Ee.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,Ee._)`.${new Ee.Name(r)}[${n}]`}};Pe.ValueScopeName=jo;var yw=(0,Ee._)`\n`,Ki=class extends Oo{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?yw:Ee.nil}}get(){return this._scope}name(e){return new jo(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(e),{prefix:s}=o,i=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[s];if(a){let l=a.get(i);if(l)return l}else a=this._values[s]=new Map;a.set(i,o);let c=this._scope[s]||(this._scope[s]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:s,itemIndex:u}),o}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Ee._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(e,r,n={},o){let s=Ee.nil;for(let i in e){let a=e[i];if(!a)continue;let c=n[i]=n[i]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,Io.Started);let l=r(u);if(l){let d=this.opts.es5?Pe.varKinds.var:Pe.varKinds.const;s=(0,Ee._)`${s}${d} ${u} = ${l};${this.opts._n}`}else if(l=o?.(u))s=(0,Ee._)`${s}${l}${this.opts._n}`;else throw new Gi(u);c.set(u,Io.Completed)})}return s}};Pe.ValueScope=Ki});var D=S(L=>{"use strict";Object.defineProperty(L,"__esModule",{value:!0});L.or=L.and=L.not=L.CodeGen=L.operators=L.varKinds=L.ValueScopeName=L.ValueScope=L.Scope=L.Name=L.regexpCode=L.stringify=L.getProperty=L.nil=L.strConcat=L.str=L._=void 0;var H=sn(),Fe=Zi(),wt=sn();Object.defineProperty(L,"_",{enumerable:!0,get:function(){return wt._}});Object.defineProperty(L,"str",{enumerable:!0,get:function(){return wt.str}});Object.defineProperty(L,"strConcat",{enumerable:!0,get:function(){return wt.strConcat}});Object.defineProperty(L,"nil",{enumerable:!0,get:function(){return wt.nil}});Object.defineProperty(L,"getProperty",{enumerable:!0,get:function(){return wt.getProperty}});Object.defineProperty(L,"stringify",{enumerable:!0,get:function(){return wt.stringify}});Object.defineProperty(L,"regexpCode",{enumerable:!0,get:function(){return wt.regexpCode}});Object.defineProperty(L,"Name",{enumerable:!0,get:function(){return wt.Name}});var Lo=Zi();Object.defineProperty(L,"Scope",{enumerable:!0,get:function(){return Lo.Scope}});Object.defineProperty(L,"ValueScope",{enumerable:!0,get:function(){return Lo.ValueScope}});Object.defineProperty(L,"ValueScopeName",{enumerable:!0,get:function(){return Lo.ValueScopeName}});Object.defineProperty(L,"varKinds",{enumerable:!0,get:function(){return Lo.varKinds}});L.operators={GT:new H._Code(">"),GTE:new H._Code(">="),LT:new H._Code("<"),LTE:new H._Code("<="),EQ:new H._Code("==="),NEQ:new H._Code("!=="),NOT:new H._Code("!"),OR:new H._Code("||"),AND:new H._Code("&&"),ADD:new H._Code("+")};var tt=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Ji=class extends tt{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?Fe.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=ur(this.rhs,e,r)),this}get names(){return this.rhs instanceof H._CodeOrName?this.rhs.names:{}}},No=class extends tt{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof H.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=ur(this.rhs,e,r),this}get names(){let e=this.lhs instanceof H.Name?{}:{...this.lhs.names};return Do(e,this.rhs)}},Yi=class extends No{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Xi=class extends tt{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Qi=class extends tt{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},ea=class extends tt{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},ta=class extends tt{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=ur(this.code,e,r),this}get names(){return this.code instanceof H._CodeOrName?this.code.names:{}}},an=class extends tt{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,o=n.length;for(;o--;){let s=n[o];s.optimizeNames(e,r)||(_w(e,s.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>Nt(e,r.names),{})}},rt=class extends an{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},ra=class extends an{},lr=class extends rt{};lr.kind="else";var Ot=class t extends rt{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new lr(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(rd(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=ur(this.condition,e,r),this}get names(){let e=super.names;return Do(e,this.condition),this.else&&Nt(e,this.else.names),e}};Ot.kind="if";var jt=class extends rt{};jt.kind="for";var na=class extends jt{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=ur(this.iteration,e,r),this}get names(){return Nt(super.names,this.iteration.names)}},oa=class extends jt{constructor(e,r,n,o){super(),this.varKind=e,this.name=r,this.from=n,this.to=o}render(e){let r=e.es5?Fe.varKinds.var:this.varKind,{name:n,from:o,to:s}=this;return`for(${r} ${n}=${o}; ${n}<${s}; ${n}++)`+super.render(e)}get names(){let e=Do(super.names,this.from);return Do(e,this.to)}},qo=class extends jt{constructor(e,r,n,o){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=o}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=ur(this.iterable,e,r),this}get names(){return Nt(super.names,this.iterable.names)}},cn=class extends rt{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};cn.kind="func";var ln=class extends an{render(e){return"return "+super.render(e)}};ln.kind="return";var sa=class extends rt{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,o;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(o=this.finally)===null||o===void 0||o.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&Nt(e,this.catch.names),this.finally&&Nt(e,this.finally.names),e}},un=class extends rt{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};un.kind="catch";var dn=class extends rt{render(e){return"finally"+super.render(e)}};dn.kind="finally";var ia=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
5
+ `:""},this._extScope=e,this._scope=new Fe.Scope({parent:e}),this._nodes=[new ra]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,o){let s=this._scope.toName(r);return n!==void 0&&o&&(this._constants[s.str]=n),this._leafNode(new Ji(e,s,n)),s}const(e,r,n){return this._def(Fe.varKinds.const,e,r,n)}let(e,r,n){return this._def(Fe.varKinds.let,e,r,n)}var(e,r,n){return this._def(Fe.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new No(e,r,n))}add(e,r){return this._leafNode(new Yi(e,L.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==H.nil&&this._leafNode(new ta(e)),this}object(...e){let r=["{"];for(let[n,o]of e)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,H.addCodeArg)(r,o));return r.push("}"),new H._Code(r)}if(e,r,n){if(this._blockNode(new Ot(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new Ot(e))}else(){return this._elseNode(new lr)}endIf(){return this._endBlockNode(Ot,lr)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new na(e),r)}forRange(e,r,n,o,s=this.opts.es5?Fe.varKinds.var:Fe.varKinds.let){let i=this._scope.toName(e);return this._for(new oa(s,i,r,n),()=>o(i))}forOf(e,r,n,o=Fe.varKinds.const){let s=this._scope.toName(e);if(this.opts.es5){let i=r instanceof H.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,H._)`${i}.length`,a=>{this.var(s,(0,H._)`${i}[${a}]`),n(s)})}return this._for(new qo("of",o,s,r),()=>n(s))}forIn(e,r,n,o=this.opts.es5?Fe.varKinds.var:Fe.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,H._)`Object.keys(${r})`,n);let s=this._scope.toName(e);return this._for(new qo("in",o,s,r),()=>n(s))}endFor(){return this._endBlockNode(jt)}label(e){return this._leafNode(new Xi(e))}break(e){return this._leafNode(new Qi(e))}return(e){let r=new ln;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(ln)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new sa;if(this._blockNode(o),this.code(e),r){let s=this.name("e");this._currNode=o.catch=new un(s),r(s)}return n&&(this._currNode=o.finally=new dn,this.code(n)),this._endBlockNode(un,dn)}throw(e){return this._leafNode(new ea(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=H.nil,n,o){return this._blockNode(new cn(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(cn)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof Ot))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};L.CodeGen=ia;function Nt(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function Do(t,e){return e instanceof H._CodeOrName?Nt(t,e.names):t}function ur(t,e,r){if(t instanceof H.Name)return n(t);if(!o(t))return t;return new H._Code(t._items.reduce((s,i)=>(i instanceof H.Name&&(i=n(i)),i instanceof H._Code?s.push(...i._items):s.push(i),s),[]));function n(s){let i=r[s.str];return i===void 0||e[s.str]!==1?s:(delete e[s.str],i)}function o(s){return s instanceof H._Code&&s._items.some(i=>i instanceof H.Name&&e[i.str]===1&&r[i.str]!==void 0)}}function _w(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function rd(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,H._)`!${aa(t)}`}L.not=rd;var ww=nd(L.operators.AND);function vw(...t){return t.reduce(ww)}L.and=vw;var bw=nd(L.operators.OR);function Sw(...t){return t.reduce(bw)}L.or=Sw;function nd(t){return(e,r)=>e===H.nil?r:r===H.nil?e:(0,H._)`${aa(e)} ${t} ${aa(r)}`}function aa(t){return t instanceof H.Name?t:(0,H._)`(${t})`}});var W=S(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var J=D(),kw=sn();function Tw(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=Tw;function xw(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(id(t,e),!ad(e,t.self.RULES.all))}U.alwaysValidSchema=xw;function id(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let o=n.RULES.keywords;for(let s in e)o[s]||ud(t,`unknown keyword: "${s}"`)}U.checkUnknownRules=id;function ad(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=ad;function $w(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}U.schemaHasRulesButRef=$w;function Ew({topSchemaRef:t,schemaPath:e},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,J._)`${r}`}return(0,J._)`${t}${e}${(0,J.getProperty)(n)}`}U.schemaRefOrVal=Ew;function Pw(t){return cd(decodeURIComponent(t))}U.unescapeFragment=Pw;function Rw(t){return encodeURIComponent(la(t))}U.escapeFragment=Rw;function la(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=la;function cd(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=cd;function Cw(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=Cw;function od({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(o,s,i,a)=>{let c=i===void 0?s:i instanceof J.Name?(s instanceof J.Name?t(o,s,i):e(o,s,i),i):s instanceof J.Name?(e(o,i,s),s):r(s,i);return a===J.Name&&!(c instanceof J.Name)?n(o,c):c}}U.mergeEvaluated={props:od({mergeNames:(t,e,r)=>t.if((0,J._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,J._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,J._)`${r} || {}`).code((0,J._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,J._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,J._)`${r} || {}`),ua(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:ld}),items:od({mergeNames:(t,e,r)=>t.if((0,J._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,J._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,J._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,J._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function ld(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,J._)`{}`);return e!==void 0&&ua(t,r,e),r}U.evaluatedPropsToName=ld;function ua(t,e,r){Object.keys(r).forEach(n=>t.assign((0,J._)`${e}${(0,J.getProperty)(n)}`,!0))}U.setEvaluated=ua;var sd={};function Mw(t,e){return t.scopeValue("func",{ref:e,code:sd[e.code]||(sd[e.code]=new kw._Code(e.code))})}U.useFunc=Mw;var ca;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(ca||(U.Type=ca={}));function zw(t,e,r){if(t instanceof J.Name){let n=e===ca.Num;return r?n?(0,J._)`"[" + ${t} + "]"`:(0,J._)`"['" + ${t} + "']"`:n?(0,J._)`"/" + ${t}`:(0,J._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,J.getProperty)(t).toString():"/"+la(t)}U.getErrorPath=zw;function ud(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}U.checkStrictMode=ud});var nt=S(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});var _e=D(),Aw={data:new _e.Name("data"),valCxt:new _e.Name("valCxt"),instancePath:new _e.Name("instancePath"),parentData:new _e.Name("parentData"),parentDataProperty:new _e.Name("parentDataProperty"),rootData:new _e.Name("rootData"),dynamicAnchors:new _e.Name("dynamicAnchors"),vErrors:new _e.Name("vErrors"),errors:new _e.Name("errors"),this:new _e.Name("this"),self:new _e.Name("self"),scope:new _e.Name("scope"),json:new _e.Name("json"),jsonPos:new _e.Name("jsonPos"),jsonLen:new _e.Name("jsonLen"),jsonPart:new _e.Name("jsonPart")};da.default=Aw});var pn=S(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.extendErrors=we.resetErrorsCount=we.reportExtraError=we.reportError=we.keyword$DataError=we.keywordError=void 0;var V=D(),Uo=W(),be=nt();we.keywordError={message:({keyword:t})=>(0,V.str)`must pass "${t}" keyword validation`};we.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,V.str)`"${t}" keyword must be ${e} ($data)`:(0,V.str)`"${t}" keyword is invalid ($data)`};function Iw(t,e=we.keywordError,r,n){let{it:o}=t,{gen:s,compositeRule:i,allErrors:a}=o,c=md(t,e,r);n??(i||a)?dd(s,c):pd(o,(0,V._)`[${c}]`)}we.reportError=Iw;function Ow(t,e=we.keywordError,r){let{it:n}=t,{gen:o,compositeRule:s,allErrors:i}=n,a=md(t,e,r);dd(o,a),s||i||pd(n,be.default.vErrors)}we.reportExtraError=Ow;function jw(t,e){t.assign(be.default.errors,e),t.if((0,V._)`${be.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,V._)`${be.default.vErrors}.length`,e),()=>t.assign(be.default.vErrors,null)))}we.resetErrorsCount=jw;function Nw({gen:t,keyword:e,schemaValue:r,data:n,errsCount:o,it:s}){if(o===void 0)throw new Error("ajv implementation error");let i=t.name("err");t.forRange("i",o,be.default.errors,a=>{t.const(i,(0,V._)`${be.default.vErrors}[${a}]`),t.if((0,V._)`${i}.instancePath === undefined`,()=>t.assign((0,V._)`${i}.instancePath`,(0,V.strConcat)(be.default.instancePath,s.errorPath))),t.assign((0,V._)`${i}.schemaPath`,(0,V.str)`${s.errSchemaPath}/${e}`),s.opts.verbose&&(t.assign((0,V._)`${i}.schema`,r),t.assign((0,V._)`${i}.data`,n))})}we.extendErrors=Nw;function dd(t,e){let r=t.const("err",e);t.if((0,V._)`${be.default.vErrors} === null`,()=>t.assign(be.default.vErrors,(0,V._)`[${r}]`),(0,V._)`${be.default.vErrors}.push(${r})`),t.code((0,V._)`${be.default.errors}++`)}function pd(t,e){let{gen:r,validateName:n,schemaEnv:o}=t;o.$async?r.throw((0,V._)`new ${t.ValidationError}(${e})`):(r.assign((0,V._)`${n}.errors`,e),r.return(!1))}var qt={keyword:new V.Name("keyword"),schemaPath:new V.Name("schemaPath"),params:new V.Name("params"),propertyName:new V.Name("propertyName"),message:new V.Name("message"),schema:new V.Name("schema"),parentSchema:new V.Name("parentSchema")};function md(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,V._)`{}`:qw(t,e,r)}function qw(t,e,r={}){let{gen:n,it:o}=t,s=[Dw(o,r),Lw(t,r)];return Uw(t,e,s),n.object(...s)}function Dw({errorPath:t},{instancePath:e}){let r=e?(0,V.str)`${t}${(0,Uo.getErrorPath)(e,Uo.Type.Str)}`:t;return[be.default.instancePath,(0,V.strConcat)(be.default.instancePath,r)]}function Lw({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,V.str)`${e}/${t}`;return r&&(o=(0,V.str)`${o}${(0,Uo.getErrorPath)(r,Uo.Type.Str)}`),[qt.schemaPath,o]}function Uw(t,{params:e,message:r},n){let{keyword:o,data:s,schemaValue:i,it:a}=t,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=a;n.push([qt.keyword,o],[qt.params,typeof e=="function"?e(t):e||(0,V._)`{}`]),c.messages&&n.push([qt.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([qt.schema,i],[qt.parentSchema,(0,V._)`${l}${d}`],[be.default.data,s]),u&&n.push([qt.propertyName,u])}});var hd=S(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.boolOrEmptySchema=dr.topBoolOrEmptySchema=void 0;var Fw=pn(),Hw=D(),Ww=nt(),Vw={message:"boolean schema is false"};function Bw(t){let{gen:e,schema:r,validateName:n}=t;r===!1?fd(t,!1):typeof r=="object"&&r.$async===!0?e.return(Ww.default.data):(e.assign((0,Hw._)`${n}.errors`,null),e.return(!0))}dr.topBoolOrEmptySchema=Bw;function Gw(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),fd(t)):r.var(e,!0)}dr.boolOrEmptySchema=Gw;function fd(t,e){let{gen:r,data:n}=t,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,Fw.reportError)(o,Vw,void 0,e)}});var pa=S(pr=>{"use strict";Object.defineProperty(pr,"__esModule",{value:!0});pr.getRules=pr.isJSONType=void 0;var Kw=["string","number","integer","boolean","null","object","array"],Zw=new Set(Kw);function Jw(t){return typeof t=="string"&&Zw.has(t)}pr.isJSONType=Jw;function Yw(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}pr.getRules=Yw});var ma=S(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.shouldUseRule=vt.shouldUseGroup=vt.schemaHasRulesForType=void 0;function Xw({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&gd(t,n)}vt.schemaHasRulesForType=Xw;function gd(t,e){return e.rules.some(r=>yd(t,r))}vt.shouldUseGroup=gd;function yd(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}vt.shouldUseRule=yd});var mn=S(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.reportTypeError=ve.checkDataTypes=ve.checkDataType=ve.coerceAndCheckDataType=ve.getJSONTypes=ve.getSchemaTypes=ve.DataType=void 0;var Qw=pa(),ev=ma(),tv=pn(),q=D(),_d=W(),mr;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(mr||(ve.DataType=mr={}));function rv(t){let e=wd(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}ve.getSchemaTypes=rv;function wd(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(Qw.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}ve.getJSONTypes=wd;function nv(t,e){let{gen:r,data:n,opts:o}=t,s=ov(e,o.coerceTypes),i=e.length>0&&!(s.length===0&&e.length===1&&(0,ev.schemaHasRulesForType)(t,e[0]));if(i){let a=ha(e,n,o.strictNumbers,mr.Wrong);r.if(a,()=>{s.length?sv(t,e,s):ga(t)})}return i}ve.coerceAndCheckDataType=nv;var vd=new Set(["string","number","integer","boolean","null"]);function ov(t,e){return e?t.filter(r=>vd.has(r)||e==="array"&&r==="array"):[]}function sv(t,e,r){let{gen:n,data:o,opts:s}=t,i=n.let("dataType",(0,q._)`typeof ${o}`),a=n.let("coerced",(0,q._)`undefined`);s.coerceTypes==="array"&&n.if((0,q._)`${i} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,q._)`${o}[0]`).assign(i,(0,q._)`typeof ${o}`).if(ha(e,o,s.strictNumbers),()=>n.assign(a,o))),n.if((0,q._)`${a} !== undefined`);for(let u of r)(vd.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);n.else(),ga(t),n.endIf(),n.if((0,q._)`${a} !== undefined`,()=>{n.assign(o,a),iv(t,a)});function c(u){switch(u){case"string":n.elseIf((0,q._)`${i} == "number" || ${i} == "boolean"`).assign(a,(0,q._)`"" + ${o}`).elseIf((0,q._)`${o} === null`).assign(a,(0,q._)`""`);return;case"number":n.elseIf((0,q._)`${i} == "boolean" || ${o} === null
6
6
  || (${i} == "string" && ${o} && ${o} == +${o})`).assign(a,(0,q._)`+${o}`);return;case"integer":n.elseIf((0,q._)`${i} === "boolean" || ${o} === null
7
7
  || (${i} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(a,(0,q._)`+${o}`);return;case"boolean":n.elseIf((0,q._)`${o} === "false" || ${o} === 0 || ${o} === null`).assign(a,!1).elseIf((0,q._)`${o} === "true" || ${o} === 1`).assign(a,!0);return;case"null":n.elseIf((0,q._)`${o} === "" || ${o} === 0 || ${o} === false`),n.assign(a,null);return;case"array":n.elseIf((0,q._)`${i} === "string" || ${i} === "number"
8
- || ${i} === "boolean" || ${o} === null`).assign(a,(0,q._)`[${o}]`)}}}function ev({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,q._)`${e} !== undefined`,()=>t.assign((0,q._)`${e}[${r}]`,n))}function fa(t,e,r,n=mr.Correct){let o=n===mr.Correct?q.operators.EQ:q.operators.NEQ,s;switch(t){case"null":return(0,q._)`${e} ${o} null`;case"array":s=(0,q._)`Array.isArray(${e})`;break;case"object":s=(0,q._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":s=i((0,q._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":s=i();break;default:return(0,q._)`typeof ${e} ${o} ${t}`}return n===mr.Correct?s:(0,q.not)(s);function i(a=q.nil){return(0,q.and)((0,q._)`typeof ${e} == "number"`,a,r?(0,q._)`isFinite(${e})`:q.nil)}}ve.checkDataType=fa;function ha(t,e,r,n){if(t.length===1)return fa(t[0],e,r,n);let o,s=(0,_d.toHash)(t);if(s.array&&s.object){let i=(0,q._)`typeof ${e} != "object"`;o=s.null?i:(0,q._)`!${e} || ${i}`,delete s.null,delete s.array,delete s.object}else o=q.nil;s.number&&delete s.integer;for(let i in s)o=(0,q.and)(o,fa(i,e,r,n));return o}ve.checkDataTypes=ha;var tv={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,q._)`{type: ${t}}`:(0,q._)`{type: ${e}}`};function ga(t){let e=rv(t);(0,Zw.reportError)(e,tv)}ve.reportTypeError=ga;function rv(t){let{gen:e,data:r,schema:n}=t,o=(0,_d.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var Sd=S(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.assignDefaults=void 0;var fr=D(),nv=W();function ov(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)bd(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,s)=>bd(t,s,o.default))}Lo.assignDefaults=ov;function bd(t,e,r){let{gen:n,compositeRule:o,data:s,opts:i}=t;if(r===void 0)return;let a=(0,fr._)`${s}${(0,fr.getProperty)(e)}`;if(o){(0,nv.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,fr._)`${a} === undefined`;i.useDefaults==="empty"&&(c=(0,fr._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,fr._)`${a} = ${(0,fr.stringify)(r)}`)}});var qe=S(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.validateUnion=K.validateArray=K.usePattern=K.callValidateCode=K.schemaProperties=K.allSchemaProperties=K.noPropertyInData=K.propertyInData=K.isOwnProperty=K.hasPropFunc=K.reportMissingProp=K.checkMissingProp=K.checkReportMissingProp=void 0;var Q=D(),ya=W(),bt=nt(),sv=W();function iv(t,e){let{gen:r,data:n,it:o}=t;r.if(wa(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,Q._)`${e}`},!0),t.error()})}K.checkReportMissingProp=iv;function av({gen:t,data:e,it:{opts:r}},n,o){return(0,Q.or)(...n.map(s=>(0,Q.and)(wa(t,e,s,r.ownProperties),(0,Q._)`${o} = ${s}`)))}K.checkMissingProp=av;function cv(t,e){t.setParams({missingProperty:e},!0),t.error()}K.reportMissingProp=cv;function kd(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,Q._)`Object.prototype.hasOwnProperty`})}K.hasPropFunc=kd;function _a(t,e,r){return(0,Q._)`${kd(t)}.call(${e}, ${r})`}K.isOwnProperty=_a;function lv(t,e,r,n){let o=(0,Q._)`${e}${(0,Q.getProperty)(r)} !== undefined`;return n?(0,Q._)`${o} && ${_a(t,e,r)}`:o}K.propertyInData=lv;function wa(t,e,r,n){let o=(0,Q._)`${e}${(0,Q.getProperty)(r)} === undefined`;return n?(0,Q.or)(o,(0,Q.not)(_a(t,e,r))):o}K.noPropertyInData=wa;function Td(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}K.allSchemaProperties=Td;function uv(t,e){return Td(e).filter(r=>!(0,ya.alwaysValidSchema)(t,e[r]))}K.schemaProperties=uv;function dv({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:s},it:i},a,c,u){let l=u?(0,Q._)`${t}, ${e}, ${n}${o}`:e,d=[[bt.default.instancePath,(0,Q.strConcat)(bt.default.instancePath,s)],[bt.default.parentData,i.parentData],[bt.default.parentDataProperty,i.parentDataProperty],[bt.default.rootData,bt.default.rootData]];i.opts.dynamicRef&&d.push([bt.default.dynamicAnchors,bt.default.dynamicAnchors]);let m=(0,Q._)`${l}, ${r.object(...d)}`;return c!==Q.nil?(0,Q._)`${a}.call(${c}, ${m})`:(0,Q._)`${a}(${m})`}K.callValidateCode=dv;var pv=(0,Q._)`new RegExp`;function mv({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:o}=e.code,s=o(r,n);return t.scopeValue("pattern",{key:s.toString(),ref:s,code:(0,Q._)`${o.code==="new RegExp"?pv:(0,sv.useFunc)(t,o)}(${r}, ${n})`})}K.usePattern=mv;function fv(t){let{gen:e,data:r,keyword:n,it:o}=t,s=e.name("valid");if(o.allErrors){let a=e.let("valid",!0);return i(()=>e.assign(a,!1)),a}return e.var(s,!0),i(()=>e.break()),s;function i(a){let c=e.const("len",(0,Q._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:ya.Type.Num},s),e.if((0,Q.not)(s),a)})}}K.validateArray=fv;function hv(t){let{gen:e,schema:r,keyword:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,ya.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let i=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let l=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(i,(0,Q._)`${i} || ${a}`),t.mergeValidEvaluated(l,a)||e.if((0,Q.not)(i))})),t.result(i,()=>t.reset(),()=>t.error(!0))}K.validateUnion=hv});var Ed=S(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.validateKeywordUsage=Ke.validSchemaType=Ke.funcKeywordCode=Ke.macroKeywordCode=void 0;var Se=D(),Dt=nt(),gv=qe(),yv=pn();function _v(t,e){let{gen:r,keyword:n,schema:o,parentSchema:s,it:i}=t,a=e.macro.call(i.self,o,s,i),c=xd(r,n,a);i.opts.validateSchema!==!1&&i.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Se.nil,errSchemaPath:`${i.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Ke.macroKeywordCode=_v;function wv(t,e){var r;let{gen:n,keyword:o,schema:s,parentSchema:i,$data:a,it:c}=t;bv(c,e);let u=!a&&e.compile?e.compile.call(c.self,s,i,c):e.validate,l=xd(n,o,u),d=n.let("valid");t.block$data(d,m),t.ok((r=e.valid)!==null&&r!==void 0?r:d);function m(){if(e.errors===!1)h(),e.modifying&&$d(t),y(()=>t.error());else{let v=e.async?f():g();e.modifying&&$d(t),y(()=>vv(t,v))}}function f(){let v=n.let("ruleErrs",null);return n.try(()=>h((0,Se._)`await `),E=>n.assign(d,!1).if((0,Se._)`${E} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,Se._)`${E}.errors`),()=>n.throw(E))),v}function g(){let v=(0,Se._)`${l}.errors`;return n.assign(v,null),h(Se.nil),v}function h(v=e.async?(0,Se._)`await `:Se.nil){let E=c.opts.passContext?Dt.default.this:Dt.default.self,k=!("compile"in e&&!a||e.schema===!1);n.assign(d,(0,Se._)`${v}${(0,gv.callValidateCode)(t,l,E,k)}`,e.modifying)}function y(v){var E;n.if((0,Se.not)((E=e.valid)!==null&&E!==void 0?E:d),v)}}Ke.funcKeywordCode=wv;function $d(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Se._)`${n.parentData}[${n.parentDataProperty}]`))}function vv(t,e){let{gen:r}=t;r.if((0,Se._)`Array.isArray(${e})`,()=>{r.assign(Dt.default.vErrors,(0,Se._)`${Dt.default.vErrors} === null ? ${e} : ${Dt.default.vErrors}.concat(${e})`).assign(Dt.default.errors,(0,Se._)`${Dt.default.vErrors}.length`),(0,yv.extendErrors)(t)},()=>t.error())}function bv({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function xd(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Se.stringify)(r)})}function Sv(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Ke.validSchemaType=Sv;function kv({schema:t,opts:e,self:r,errSchemaPath:n},o,s){if(Array.isArray(o.keyword)?!o.keyword.includes(s):o.keyword!==s)throw new Error("ajv implementation error");let i=o.dependencies;if(i?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${s}: ${i.join(",")}`);if(o.validateSchema&&!o.validateSchema(t[s])){let c=`keyword "${s}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Ke.validateKeywordUsage=kv});var Rd=S(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.extendSubschemaMode=St.extendSubschemaData=St.getSubschema=void 0;var Ze=D(),Pd=W();function Tv(t,{keyword:e,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:s,topSchemaRef:i}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let a=t.schema[e];return r===void 0?{schema:a,schemaPath:(0,Ze._)`${t.schemaPath}${(0,Ze.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Ze._)`${t.schemaPath}${(0,Ze.getProperty)(e)}${(0,Ze.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,Pd.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||s===void 0||i===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:i,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}St.getSubschema=Tv;function $v(t,e,{dataProp:r,dataPropType:n,data:o,dataTypes:s,propertyName:i}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=e;if(r!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=e,m=a.let("data",(0,Ze._)`${e.data}${(0,Ze.getProperty)(r)}`,!0);c(m),t.errorPath=(0,Ze.str)`${u}${(0,Pd.getErrorPath)(r,n,d.jsPropertySyntax)}`,t.parentDataProperty=(0,Ze._)`${r}`,t.dataPathArr=[...l,t.parentDataProperty]}if(o!==void 0){let u=o instanceof Ze.Name?o:a.let("data",o,!0);c(u),i!==void 0&&(t.propertyName=i)}s&&(t.dataTypes=s);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}St.extendSubschemaData=$v;function xv(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:s}){n!==void 0&&(t.compositeRule=n),o!==void 0&&(t.createErrors=o),s!==void 0&&(t.allErrors=s),t.jtdDiscriminator=e,t.jtdMetadata=r}St.extendSubschemaMode=xv});var va=S((wA,Cd)=>{"use strict";Cd.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,o,s;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!t(e[o],r[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(s=Object.keys(e),n=s.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,s[o]))return!1;for(o=n;o--!==0;){var i=s[o];if(!t(e[i],r[i]))return!1}return!0}return e!==e&&r!==r}});var zd=S((vA,Md)=>{"use strict";var kt=Md.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};Uo(e,n,o,t,"",t)};kt.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};kt.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};kt.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};kt.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 Uo(t,e,r,n,o,s,i,a,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,o,s,i,a,c,u);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in kt.arrayKeywords)for(var m=0;m<d.length;m++)Uo(t,e,r,d[m],o+"/"+l+"/"+m,s,o,l,n,m)}else if(l in kt.propsKeywords){if(d&&typeof d=="object")for(var f in d)Uo(t,e,r,d[f],o+"/"+l+"/"+Ev(f),s,o,l,n,f)}else(l in kt.keywords||t.allKeys&&!(l in kt.skipKeywords))&&Uo(t,e,r,d,o+"/"+l,s,o,l,n)}r(n,o,s,i,a,c,u)}}function Ev(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var fn=S(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.getSchemaRefs=Re.resolveUrl=Re.normalizeId=Re._getFullPath=Re.getFullPath=Re.inlineRef=void 0;var Pv=W(),Rv=va(),Cv=zd(),Mv=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function zv(t,e=!0){return typeof t=="boolean"?!0:e===!0?!ba(t):e?Ad(t)<=e:!1}Re.inlineRef=zv;var Av=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ba(t){for(let e in t){if(Av.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(ba)||typeof r=="object"&&ba(r))return!0}return!1}function Ad(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!Mv.has(r)&&(typeof t[r]=="object"&&(0,Pv.eachItem)(t[r],n=>e+=Ad(n)),e===1/0))return 1/0}return e}function Id(t,e="",r){r!==!1&&(e=hr(e));let n=t.parse(e);return Od(t,n)}Re.getFullPath=Id;function Od(t,e){return t.serialize(e).split("#")[0]+"#"}Re._getFullPath=Od;var Iv=/#\/?$/;function hr(t){return t?t.replace(Iv,""):""}Re.normalizeId=hr;function Ov(t,e,r){return r=hr(r),t.resolve(e,r)}Re.resolveUrl=Ov;var jv=/^[a-z_][-a-z0-9._]*$/i;function Nv(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=hr(t[r]||e),s={"":o},i=Id(n,o,!1),a={},c=new Set;return Cv(t,{allKeys:!0},(d,m,f,g)=>{if(g===void 0)return;let h=i+m,y=s[g];typeof d[r]=="string"&&(y=v.call(this,d[r])),E.call(this,d.$anchor),E.call(this,d.$dynamicAnchor),s[m]=y;function v(k){let z=this.opts.uriResolver.resolve;if(k=hr(y?z(y,k):k),c.has(k))throw l(k);c.add(k);let w=this.refs[k];return typeof w=="string"&&(w=this.refs[w]),typeof w=="object"?u(d,w.schema,k):k!==hr(h)&&(k[0]==="#"?(u(d,a[k],k),a[k]=d):this.refs[k]=h),k}function E(k){if(typeof k=="string"){if(!jv.test(k))throw new Error(`invalid anchor "${k}"`);v.call(this,`#${k}`)}}}),a;function u(d,m,f){if(m!==void 0&&!Rv(d,m))throw l(f)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Re.getSchemaRefs=Nv});var yn=S(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.getData=Tt.KeywordCxt=Tt.validateFunctionCode=void 0;var Ld=hd(),jd=mn(),ka=ma(),Fo=mn(),qv=Sd(),gn=Ed(),Sa=Rd(),R=D(),I=nt(),Dv=fn(),ot=W(),hn=pn();function Lv(t){if(Hd(t)&&(Wd(t),Fd(t))){Hv(t);return}Ud(t,()=>(0,Ld.topBoolOrEmptySchema)(t))}Tt.validateFunctionCode=Lv;function Ud({gen:t,validateName:e,schema:r,schemaEnv:n,opts:o},s){o.code.es5?t.func(e,(0,R._)`${I.default.data}, ${I.default.valCxt}`,n.$async,()=>{t.code((0,R._)`"use strict"; ${Nd(r,o)}`),Fv(t,o),t.code(s)}):t.func(e,(0,R._)`${I.default.data}, ${Uv(o)}`,n.$async,()=>t.code(Nd(r,o)).code(s))}function Uv(t){return(0,R._)`{${I.default.instancePath}="", ${I.default.parentData}, ${I.default.parentDataProperty}, ${I.default.rootData}=${I.default.data}${t.dynamicRef?(0,R._)`, ${I.default.dynamicAnchors}={}`:R.nil}}={}`}function Fv(t,e){t.if(I.default.valCxt,()=>{t.var(I.default.instancePath,(0,R._)`${I.default.valCxt}.${I.default.instancePath}`),t.var(I.default.parentData,(0,R._)`${I.default.valCxt}.${I.default.parentData}`),t.var(I.default.parentDataProperty,(0,R._)`${I.default.valCxt}.${I.default.parentDataProperty}`),t.var(I.default.rootData,(0,R._)`${I.default.valCxt}.${I.default.rootData}`),e.dynamicRef&&t.var(I.default.dynamicAnchors,(0,R._)`${I.default.valCxt}.${I.default.dynamicAnchors}`)},()=>{t.var(I.default.instancePath,(0,R._)`""`),t.var(I.default.parentData,(0,R._)`undefined`),t.var(I.default.parentDataProperty,(0,R._)`undefined`),t.var(I.default.rootData,I.default.data),e.dynamicRef&&t.var(I.default.dynamicAnchors,(0,R._)`{}`)})}function Hv(t){let{schema:e,opts:r,gen:n}=t;Ud(t,()=>{r.$comment&&e.$comment&&Bd(t),Kv(t),n.let(I.default.vErrors,null),n.let(I.default.errors,0),r.unevaluated&&Wv(t),Vd(t),Yv(t)})}function Wv(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,R._)`${r}.evaluated`),e.if((0,R._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,R._)`${t.evaluated}.props`,(0,R._)`undefined`)),e.if((0,R._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,R._)`${t.evaluated}.items`,(0,R._)`undefined`))}function Nd(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,R._)`/*# sourceURL=${r} */`:R.nil}function Vv(t,e){if(Hd(t)&&(Wd(t),Fd(t))){Bv(t,e);return}(0,Ld.boolOrEmptySchema)(t,e)}function Fd({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function Hd(t){return typeof t.schema!="boolean"}function Bv(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&Bd(t),Zv(t),Jv(t);let s=n.const("_errs",I.default.errors);Vd(t,s),n.var(e,(0,R._)`${s} === ${I.default.errors}`)}function Wd(t){(0,ot.checkUnknownRules)(t),Gv(t)}function Vd(t,e){if(t.opts.jtd)return qd(t,[],!1,e);let r=(0,jd.getSchemaTypes)(t.schema),n=(0,jd.coerceAndCheckDataType)(t,r);qd(t,r,!n,e)}function Gv(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,ot.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function Kv(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,ot.checkStrictMode)(t,"default is ignored in the schema root")}function Zv(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,Dv.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function Jv(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function Bd({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:o}){let s=r.$comment;if(o.$comment===!0)t.code((0,R._)`${I.default.self}.logger.log(${s})`);else if(typeof o.$comment=="function"){let i=(0,R.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,R._)`${I.default.self}.opts.$comment(${s}, ${i}, ${a}.schema)`)}}function Yv(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:o,opts:s}=t;r.$async?e.if((0,R._)`${I.default.errors} === 0`,()=>e.return(I.default.data),()=>e.throw((0,R._)`new ${o}(${I.default.vErrors})`)):(e.assign((0,R._)`${n}.errors`,I.default.vErrors),s.unevaluated&&Qv(t),e.return((0,R._)`${I.default.errors} === 0`))}function Qv({gen:t,evaluated:e,props:r,items:n}){r instanceof R.Name&&t.assign((0,R._)`${e}.props`,r),n instanceof R.Name&&t.assign((0,R._)`${e}.items`,n)}function qd(t,e,r,n){let{gen:o,schema:s,data:i,allErrors:a,opts:c,self:u}=t,{RULES:l}=u;if(s.$ref&&(c.ignoreKeywordsWithRef||!(0,ot.schemaHasRulesButRef)(s,l))){o.block(()=>Kd(t,"$ref",l.all.$ref.definition));return}c.jtd||Xv(t,e),o.block(()=>{for(let m of l.rules)d(m);d(l.post)});function d(m){(0,ka.shouldUseGroup)(s,m)&&(m.type?(o.if((0,Fo.checkDataType)(m.type,i,c.strictNumbers)),Dd(t,m),e.length===1&&e[0]===m.type&&r&&(o.else(),(0,Fo.reportTypeError)(t)),o.endIf()):Dd(t,m),a||o.if((0,R._)`${I.default.errors} === ${n||0}`))}}function Dd(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,qv.assignDefaults)(t,e.type),r.block(()=>{for(let s of e.rules)(0,ka.shouldUseRule)(n,s)&&Kd(t,s.keyword,s.definition,e.type)})}function Xv(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(eb(t,e),t.opts.allowUnionTypes||tb(t,e),rb(t,t.dataTypes))}function eb(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{Gd(t.dataTypes,r)||Ta(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),ob(t,e)}}function tb(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Ta(t,"use allowUnionTypes to allow union type keyword")}function rb(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,ka.shouldUseRule)(t.schema,o)){let{type:s}=o.definition;s.length&&!s.some(i=>nb(e,i))&&Ta(t,`missing type "${s.join(",")}" for keyword "${n}"`)}}}function nb(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function Gd(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function ob(t,e){let r=[];for(let n of t.dataTypes)Gd(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function Ta(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,ot.checkStrictMode)(t,e,t.opts.strictTypes)}var Ho=class{constructor(e,r,n){if((0,gn.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,ot.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",Zd(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,gn.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",I.default.errors))}result(e,r,n){this.failResult((0,R.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,R.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,R._)`${r} !== undefined && (${(0,R.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?hn.reportExtraError:hn.reportError)(this,this.def.error,r)}$dataError(){(0,hn.reportError)(this,this.def.$dataError||hn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,hn.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=R.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=R.nil,r=R.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:s,def:i}=this;n.if((0,R.or)((0,R._)`${o} === undefined`,r)),e!==R.nil&&n.assign(e,!0),(s.length||i.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==R.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:s}=this;return(0,R.or)(i(),a());function i(){if(n.length){if(!(r instanceof R.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,R._)`${(0,Fo.checkDataTypes)(c,r,s.opts.strictNumbers,Fo.DataType.Wrong)}`}return R.nil}function a(){if(o.validateSchema){let c=e.scopeValue("validate$data",{ref:o.validateSchema});return(0,R._)`!${c}(${r})`}return R.nil}}subschema(e,r){let n=(0,Sa.getSubschema)(this.it,e);(0,Sa.extendSubschemaData)(n,this.it,e),(0,Sa.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return Vv(o,r),o}mergeEvaluated(e,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=ot.mergeEvaluated.props(o,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=ot.mergeEvaluated.items(o,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(e,R.Name)),!0}};Tt.KeywordCxt=Ho;function Kd(t,e,r,n){let o=new Ho(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,gn.funcKeywordCode)(o,r):"macro"in r?(0,gn.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,gn.funcKeywordCode)(o,r)}var sb=/^\/(?:[^~]|~0|~1)*$/,ib=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Zd(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,s;if(t==="")return I.default.rootData;if(t[0]==="/"){if(!sb.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,s=I.default.rootData}else{let u=ib.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+u[1];if(o=u[2],o==="#"){if(l>=e)throw new Error(c("property/index",l));return n[e-l]}if(l>e)throw new Error(c("data",l));if(s=r[e-l],!o)return s}let i=s,a=o.split("/");for(let u of a)u&&(s=(0,R._)`${s}${(0,R.getProperty)((0,ot.unescapeJsonPointer)(u))}`,i=(0,R._)`${i} && ${s}`);return i;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${e}`}}Tt.getData=Zd});var Wo=S(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});var $a=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};xa.default=$a});var _n=S(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});var Ea=fn(),Pa=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Ea.resolveUrl)(e,r,n),this.missingSchema=(0,Ea.normalizeId)((0,Ea.getFullPath)(e,this.missingRef))}};Ra.default=Pa});var Bo=S(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.resolveSchema=De.getCompilingSchema=De.resolveRef=De.compileSchema=De.SchemaEnv=void 0;var He=D(),ab=Wo(),Lt=nt(),We=fn(),Jd=W(),cb=yn(),gr=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,We.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};De.SchemaEnv=gr;function Ma(t){let e=Yd.call(this,t);if(e)return e;let r=(0,We.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:s}=this.opts,i=new He.CodeGen(this.scope,{es5:n,lines:o,ownProperties:s}),a;t.$async&&(a=i.scopeValue("Error",{ref:ab.default,code:(0,He._)`require("ajv/dist/runtime/validation_error").default`}));let c=i.scopeName("validate");t.validateName=c;let u={gen:i,allErrors:this.opts.allErrors,data:Lt.default.data,parentData:Lt.default.parentData,parentDataProperty:Lt.default.parentDataProperty,dataNames:[Lt.default.data],dataPathArr:[He.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:i.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,He.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:a,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:He.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,He._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,cb.validateFunctionCode)(u),i.optimize(this.opts.code.optimize);let d=i.toString();l=`${i.scopeRefs(Lt.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let f=new Function(`${Lt.default.self}`,`${Lt.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:f}),f.errors=null,f.schema=t.schema,f.schemaEnv=t,t.$async&&(f.$async=!0),this.opts.code.source===!0&&(f.source={validateName:c,validateCode:d,scopeValues:i._values}),this.opts.unevaluated){let{props:g,items:h}=u;f.evaluated={props:g instanceof He.Name?void 0:g,items:h instanceof He.Name?void 0:h,dynamicProps:g instanceof He.Name,dynamicItems:h instanceof He.Name},f.source&&(f.source.evaluated=(0,He.stringify)(f.evaluated))}return t.validate=f,t}catch(d){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(t)}}De.compileSchema=Ma;function lb(t,e,r){var n;r=(0,We.resolveUrl)(this.opts.uriResolver,e,r);let o=t.refs[r];if(o)return o;let s=pb.call(this,t,r);if(s===void 0){let i=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:a}=this.opts;i&&(s=new gr({schema:i,schemaId:a,root:t,baseId:e}))}if(s!==void 0)return t.refs[r]=ub.call(this,s)}De.resolveRef=lb;function ub(t){return(0,We.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:Ma.call(this,t)}function Yd(t){for(let e of this._compilations)if(db(e,t))return e}De.getCompilingSchema=Yd;function db(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function pb(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Vo.call(this,t,e)}function Vo(t,e){let r=this.opts.uriResolver.parse(e),n=(0,We._getFullPath)(this.opts.uriResolver,r),o=(0,We.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===o)return Ca.call(this,r,t);let s=(0,We.normalizeId)(n),i=this.refs[s]||this.schemas[s];if(typeof i=="string"){let a=Vo.call(this,t,i);return typeof a?.schema!="object"?void 0:Ca.call(this,r,a)}if(typeof i?.schema=="object"){if(i.validate||Ma.call(this,i),s===(0,We.normalizeId)(e)){let{schema:a}=i,{schemaId:c}=this.opts,u=a[c];return u&&(o=(0,We.resolveUrl)(this.opts.uriResolver,o,u)),new gr({schema:a,schemaId:c,root:t,baseId:o})}return Ca.call(this,r,i)}}De.resolveSchema=Vo;var mb=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Ca(t,{baseId:e,schema:r,root:n}){var o;if(((o=t.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let a of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,Jd.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!mb.has(a)&&u&&(e=(0,We.resolveUrl)(this.opts.uriResolver,e,u))}let s;if(typeof r!="boolean"&&r.$ref&&!(0,Jd.schemaHasRulesButRef)(r,this.RULES)){let a=(0,We.resolveUrl)(this.opts.uriResolver,e,r.$ref);s=Vo.call(this,n,a)}let{schemaId:i}=this.opts;if(s=s||new gr({schema:r,schemaId:i,root:n,baseId:e}),s.schema!==s.root.schema)return s}});var Qd=S((xA,fb)=>{fb.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 Ia=S((EA,op)=>{"use strict";var hb=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),ep=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),za=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),tp=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),gb=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Aa(t){let e="",r=0,n=0;for(n=0;n<t.length;n++)if(r=t[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n<t.length;n++){if(r=t[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var yb=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Xd(t){return t.length=0,!0}function _b(t,e,r){if(t.length){let n=Aa(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function wb(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],s=!1,i=!1,a=_b;for(let c=0;c<t.length;c++){let u=t[c];if(!(u==="["||u==="]"))if(u===":"){if(s===!0&&(i=!0),!a(o,n,r))break;if(++e>7){r.error=!0;break}c>0&&t[c-1]===":"&&(s=!0),n.push(":");continue}else if(u==="%"){if(!a(o,n,r))break;a=Xd}else{o.push(u);continue}}return o.length&&(a===Xd?r.zone=o.join(""):i?n.push(o.join("")):n.push(Aa(o))),r.address=n.join(""),r}function rp(t){if(vb(t,":")<2)return{host:t,isIPV6:!1};let e=wb(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function vb(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function bb(t){let e=t,r=[],n=-1,o=0;for(;o=e.length;){if(o===1){if(e===".")break;if(e==="/"){r.push("/");break}else{r.push(e);break}}else if(o===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){r.push("/");break}}else if(o===3&&e==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),r.length!==0&&r.pop();continue}}if((n=e.indexOf("/",1))===-1){r.push(e);break}else r.push(e.slice(0,n)),e=e.slice(n)}return r.join("")}var Sb={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},kb=/[@/?#:]/g,Tb=/[@/?#]/g;function np(t,e){let r=e?Tb:kb;return r.lastIndex=0,t.replace(r,n=>Sb[n])}function $b(t,e=!1){if(t.indexOf("%")===-1)return t;let r="";for(let n=0;n<t.length;n++){if(t[n]==="%"&&n+2<t.length){let o=t.slice(n+1,n+3);if(za(o)){let s=o.toUpperCase(),i=String.fromCharCode(parseInt(s,16));e&&tp(i)?r+=i:r+="%"+s,n+=2;continue}}r+=t[n]}return r}function xb(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(za(n)){let o=n.toUpperCase(),s=String.fromCharCode(parseInt(o,16));s!=="."&&tp(s)?e+=s:e+="%"+o,r+=2;continue}}gb(t[r])?e+=t[r]:e+=escape(t[r])}return e}function Eb(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(za(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function Pb(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!ep(r)){let n=rp(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=np(r,!1)}e.push(r)}return(typeof t.port=="number"||typeof t.port=="string")&&(e.push(":"),e.push(String(t.port))),e.length?e.join(""):void 0}op.exports={nonSimpleDomain:yb,recomposeAuthority:Pb,reescapeHostDelimiters:np,normalizePercentEncoding:$b,normalizePathEncoding:xb,escapePreservingEscapes:Eb,removeDotSegments:bb,isIPv4:ep,isUUID:hb,normalizeIPv6:rp,stringArrayToHexStripped:Aa}});var lp=S((PA,cp)=>{"use strict";var{isUUID:Rb}=Ia(),Cb=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Mb=["http","https","ws","wss","urn","urn:uuid"];function zb(t){return Mb.indexOf(t)!==-1}function Oa(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function sp(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function ip(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function Ab(t){return t.secure=Oa(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function Ib(t){if((t.port===(Oa(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function Ob(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(Cb);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let o=`${n}:${e.nid||t.nid}`,s=ja(o);t.path=void 0,s&&(t=s.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function jb(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),o=`${r}:${e.nid||n}`,s=ja(o);s&&(t=s.serialize(t,e));let i=t,a=t.nss;return i.path=`${n||e.nid}:${a}`,e.skipEscape=!0,i}function Nb(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!Rb(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function qb(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var ap={scheme:"http",domainHost:!0,parse:sp,serialize:ip},Db={scheme:"https",domainHost:ap.domainHost,parse:sp,serialize:ip},Go={scheme:"ws",domainHost:!0,parse:Ab,serialize:Ib},Lb={scheme:"wss",domainHost:Go.domainHost,parse:Go.parse,serialize:Go.serialize},Ub={scheme:"urn",parse:Ob,serialize:jb,skipNormalize:!0},Fb={scheme:"urn:uuid",parse:Nb,serialize:qb,skipNormalize:!0},Ko={http:ap,https:Db,ws:Go,wss:Lb,urn:Ub,"urn:uuid":Fb};Object.setPrototypeOf(Ko,null);function ja(t){return t&&(Ko[t]||Ko[t.toLowerCase()])||void 0}cp.exports={wsIsSecure:Oa,SCHEMES:Ko,isValidSchemeName:zb,getSchemeHandler:ja}});var hp=S((RA,Zo)=>{"use strict";var{normalizeIPv6:Hb,removeDotSegments:wn,recomposeAuthority:Wb,normalizePercentEncoding:Vb,normalizePathEncoding:Bb,escapePreservingEscapes:Gb,reescapeHostDelimiters:Kb,isIPv4:Zb,nonSimpleDomain:Jb}=Ia(),{SCHEMES:Yb,getSchemeHandler:dp}=lp();function Qb(t,e){return typeof t=="string"?t=nS(t,e):typeof t=="object"&&(t=yr(Ut(t,e),e)),t}function Xb(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},o=pp(yr(t,n),yr(e,n),n,!0);return n.skipEscape=!0,Ut(o,n)}function pp(t,e,r,n){let o={};return n||(t=yr(Ut(t,r),r),e=yr(Ut(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(o.scheme=e.scheme,o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=wn(e.path||""),o.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=wn(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=wn(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?o.path="/"+e.path:t.path?o.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:o.path=e.path,o.path=wn(o.path)),o.query=e.query):(o.path=t.path,e.query!==void 0?o.query=e.query:o.query=t.query),o.userinfo=t.userinfo,o.host=t.host,o.port=t.port),o.scheme=t.scheme),o.fragment=e.fragment,o}function eS(t,e,r){let n=up(t,r),o=up(e,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function Ut(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),o=[],s=dp(n.scheme||r.scheme);s&&s.serialize&&s.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Vb(r.path):(r.path=Gb(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let i=Wb(r);if(i!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(i),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let a=r.path;!n.absolutePath&&(!s||!s.absolutePath)&&(a=wn(a)),i===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),o.push(a)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var tS=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function rS(t,e){if(e[2]!==void 0&&t.path&&t.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof t.port=="number"&&(t.port<0||t.port>65535))return"URI port is malformed."}function mp(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,s=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let i=t.match(tS);if(i){n.scheme=i[1],n.userinfo=i[3],n.host=i[4],n.port=parseInt(i[5],10),n.path=i[6]||"",n.query=i[7],n.fragment=i[8],isNaN(n.port)&&(n.port=i[5]);let a=rS(n,i);if(a!==void 0&&(n.error=n.error||a,o=!0),n.host)if(Zb(n.host)===!1){let l=Hb(n.host);n.host=l.host.toLowerCase(),s=l.isIPV6}else s=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let c=dp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!c||!c.unicodeSupport)&&n.host&&(r.domainHost||c&&c.domainHost)&&s===!1&&Jb(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(u){n.error=n.error||"Host's domain name can not be converted to ASCII: "+u}if((!c||c&&!c.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=Kb(unescape(n.host),s))),n.path&&(n.path=Bb(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}c&&c.parse&&c.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:o}}function yr(t,e){return mp(t,e).parsed}function nS(t,e){return fp(t,e).normalized}function fp(t,e){let{parsed:r,malformedAuthorityOrPort:n}=mp(t,e);return{normalized:n?t:Ut(r,e),malformedAuthorityOrPort:n}}function up(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=fp(t,e);return n?void 0:r}if(typeof t=="object")return Ut(t,e)}var Na={SCHEMES:Yb,normalize:Qb,resolve:Xb,resolveComponent:pp,equal:eS,serialize:Ut,parse:yr};Zo.exports=Na;Zo.exports.default=Na;Zo.exports.fastUri=Na});var yp=S(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});var gp=hp();gp.code='require("ajv/dist/runtime/uri").default';qa.default=gp});var $p=S(he=>{"use strict";Object.defineProperty(he,"__esModule",{value:!0});he.CodeGen=he.Name=he.nil=he.stringify=he.str=he._=he.KeywordCxt=void 0;var oS=yn();Object.defineProperty(he,"KeywordCxt",{enumerable:!0,get:function(){return oS.KeywordCxt}});var _r=D();Object.defineProperty(he,"_",{enumerable:!0,get:function(){return _r._}});Object.defineProperty(he,"str",{enumerable:!0,get:function(){return _r.str}});Object.defineProperty(he,"stringify",{enumerable:!0,get:function(){return _r.stringify}});Object.defineProperty(he,"nil",{enumerable:!0,get:function(){return _r.nil}});Object.defineProperty(he,"Name",{enumerable:!0,get:function(){return _r.Name}});Object.defineProperty(he,"CodeGen",{enumerable:!0,get:function(){return _r.CodeGen}});var sS=Wo(),Sp=_n(),iS=pa(),vn=Bo(),aS=D(),bn=fn(),Jo=mn(),La=W(),_p=Qd(),cS=yp(),kp=(t,e)=>new RegExp(t,e);kp.code="new RegExp";var lS=["removeAdditional","useDefaults","coerceTypes"],uS=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),dS={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."},pS={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},wp=200;function mS(t){var e,r,n,o,s,i,a,c,u,l,d,m,f,g,h,y,v,E,k,z,w,b,j,ne,oe;let Te=t.strict,Hr=(e=t.code)===null||e===void 0?void 0:e.optimize,oo=Hr===!0||Hr===void 0?1:Hr||0,so=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:kp,pt=(o=t.uriResolver)!==null&&o!==void 0?o:cS.default;return{strictSchema:(i=(s=t.strictSchema)!==null&&s!==void 0?s:Te)!==null&&i!==void 0?i:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:Te)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=t.strictTypes)!==null&&u!==void 0?u:Te)!==null&&l!==void 0?l:"log",strictTuples:(m=(d=t.strictTuples)!==null&&d!==void 0?d:Te)!==null&&m!==void 0?m:"log",strictRequired:(g=(f=t.strictRequired)!==null&&f!==void 0?f:Te)!==null&&g!==void 0?g:!1,code:t.code?{...t.code,optimize:oo,regExp:so}:{optimize:oo,regExp:so},loopRequired:(h=t.loopRequired)!==null&&h!==void 0?h:wp,loopEnum:(y=t.loopEnum)!==null&&y!==void 0?y:wp,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(E=t.messages)!==null&&E!==void 0?E:!0,inlineRefs:(k=t.inlineRefs)!==null&&k!==void 0?k:!0,schemaId:(z=t.schemaId)!==null&&z!==void 0?z:"$id",addUsedSchema:(w=t.addUsedSchema)!==null&&w!==void 0?w:!0,validateSchema:(b=t.validateSchema)!==null&&b!==void 0?b:!0,validateFormats:(j=t.validateFormats)!==null&&j!==void 0?j:!0,unicodeRegExp:(ne=t.unicodeRegExp)!==null&&ne!==void 0?ne:!0,int32range:(oe=t.int32range)!==null&&oe!==void 0?oe:!0,uriResolver:pt}}var Sn=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...mS(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new aS.ValueScope({scope:{},prefixes:uS,es5:r,lines:n}),this.logger=wS(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,iS.getRules)(),vp.call(this,dS,e,"NOT SUPPORTED"),vp.call(this,pS,e,"DEPRECATED","warn"),this._metaOpts=yS.call(this),e.formats&&hS.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&gS.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),fS.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=_p;n==="id"&&(o={..._p},o.id=o.$id,delete o.$id),r&&e&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,e,r);async function o(l,d){await s.call(this,l.$schema);let m=this._addSchema(l,d);return m.validate||i.call(this,m)}async function s(l){l&&!this.getSchema(l)&&await o.call(this,{$ref:l},!0)}async function i(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof Sp.default))throw d;return a.call(this,d),await c.call(this,d.missingSchema),i.call(this,l)}}function a({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await s.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,r)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(e,r,n,o=this.opts.validateSchema){if(Array.isArray(e)){for(let i of e)this.addSchema(i,void 0,n,o);return this}let s;if(typeof e=="object"){let{schemaId:i}=this.opts;if(s=e[i],s!==void 0&&typeof s!="string")throw new Error(`schema ${i} must be string`)}return r=(0,bn.normalizeId)(r||s),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,o,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,e);if(!o&&r){let s="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(s);else throw new Error(s)}return o}getSchema(e){let r;for(;typeof(r=bp.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new vn.SchemaEnv({schema:{},schemaId:n});if(r=vn.resolveSchema.call(this,o,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=bp.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,bn.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(bS.call(this,n,r),!r)return(0,La.eachItem)(n,s=>Da.call(this,s)),this;kS.call(this,r);let o={...r,type:(0,Jo.getJSONTypes)(r.type),schemaType:(0,Jo.getJSONTypes)(r.schemaType)};return(0,La.eachItem)(n,o.type.length===0?s=>Da.call(this,s,o):s=>o.type.forEach(i=>Da.call(this,s,o,i))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let o=n.rules.findIndex(s=>s.keyword===e);o>=0&&n.rules.splice(o,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,s)=>o+r+s)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let o of r){let s=o.split("/").slice(1),i=e;for(let a of s)i=i[a];for(let a in n){let c=n[a];if(typeof c!="object")continue;let{$data:u}=c.definition,l=i[a];u&&l&&(i[a]=Tp(l))}}return e}_removeAllSchemas(e,r){for(let n in e){let o=e[n];(!r||r.test(n))&&(typeof o=="string"?delete e[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete e[n]))}}_addSchema(e,r,n,o=this.opts.validateSchema,s=this.opts.addUsedSchema){let i,{schemaId:a}=this.opts;if(typeof e=="object")i=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,bn.normalizeId)(i||n);let u=bn.getSchemaRefs.call(this,e,n);return c=new vn.SchemaEnv({schema:e,schemaId:a,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),s&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):vn.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{vn.compileSchema.call(this,e)}finally{this.opts=r}}};Sn.ValidationError=sS.default;Sn.MissingRefError=Sp.default;he.default=Sn;function vp(t,e,r,n="error"){for(let o in t){let s=o;s in e&&this.logger[n](`${r}: option ${o}. ${t[s]}`)}}function bp(t){return t=(0,bn.normalizeId)(t),this.schemas[t]||this.refs[t]}function fS(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function hS(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function gS(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function yS(){let t={...this.opts};for(let e of lS)delete t[e];return t}var _S={log(){},warn(){},error(){}};function wS(t){if(t===!1)return _S;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var vS=/^[a-z_$][a-z0-9_$:-]*$/i;function bS(t,e){let{RULES:r}=this;if((0,La.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!vS.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function Da(t,e,r){var n;let o=e?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:s}=this,i=o?s.post:s.rules.find(({type:c})=>c===r);if(i||(i={type:r,rules:[]},s.rules.push(i)),s.keywords[t]=!0,!e)return;let a={keyword:t,definition:{...e,type:(0,Jo.getJSONTypes)(e.type),schemaType:(0,Jo.getJSONTypes)(e.schemaType)}};e.before?SS.call(this,i,a,e.before):i.rules.push(a),s.all[t]=a,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function SS(t,e,r){let n=t.rules.findIndex(o=>o.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function kS(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=Tp(e)),t.validateSchema=this.compile(e,!0))}var TS={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Tp(t){return{anyOf:[t,TS]}}});var xp=S(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});var $S={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Ua.default=$S});var Cp=S(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.callRef=Ft.getValidate=void 0;var xS=_n(),Ep=qe(),Ce=D(),wr=nt(),Pp=Bo(),Yo=W(),ES={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:o,schemaEnv:s,validateName:i,opts:a,self:c}=n,{root:u}=s;if((r==="#"||r==="#/")&&o===u.baseId)return d();let l=Pp.resolveRef.call(c,u,o,r);if(l===void 0)throw new xS.default(n.opts.uriResolver,o,r);if(l instanceof Pp.SchemaEnv)return m(l);return f(l);function d(){if(s===u)return Qo(t,i,s,s.$async);let g=e.scopeValue("root",{ref:u});return Qo(t,(0,Ce._)`${g}.validate`,u,u.$async)}function m(g){let h=Rp(t,g);Qo(t,h,g,g.$async)}function f(g){let h=e.scopeValue("schema",a.code.source===!0?{ref:g,code:(0,Ce.stringify)(g)}:{ref:g}),y=e.name("valid"),v=t.subschema({schema:g,dataTypes:[],schemaPath:Ce.nil,topSchemaRef:h,errSchemaPath:r},y);t.mergeEvaluated(v),t.ok(y)}}};function Rp(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,Ce._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Ft.getValidate=Rp;function Qo(t,e,r,n){let{gen:o,it:s}=t,{allErrors:i,schemaEnv:a,opts:c}=s,u=c.passContext?wr.default.this:Ce.nil;n?l():d();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");let g=o.let("valid");o.try(()=>{o.code((0,Ce._)`await ${(0,Ep.callValidateCode)(t,e,u)}`),f(e),i||o.assign(g,!0)},h=>{o.if((0,Ce._)`!(${h} instanceof ${s.ValidationError})`,()=>o.throw(h)),m(h),i||o.assign(g,!1)}),t.ok(g)}function d(){t.result((0,Ep.callValidateCode)(t,e,u),()=>f(e),()=>m(e))}function m(g){let h=(0,Ce._)`${g}.errors`;o.assign(wr.default.vErrors,(0,Ce._)`${wr.default.vErrors} === null ? ${h} : ${wr.default.vErrors}.concat(${h})`),o.assign(wr.default.errors,(0,Ce._)`${wr.default.vErrors}.length`)}function f(g){var h;if(!s.opts.unevaluated)return;let y=(h=r?.validate)===null||h===void 0?void 0:h.evaluated;if(s.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(s.props=Yo.mergeEvaluated.props(o,y.props,s.props));else{let v=o.var("props",(0,Ce._)`${g}.evaluated.props`);s.props=Yo.mergeEvaluated.props(o,v,s.props,Ce.Name)}if(s.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(s.items=Yo.mergeEvaluated.items(o,y.items,s.items));else{let v=o.var("items",(0,Ce._)`${g}.evaluated.items`);s.items=Yo.mergeEvaluated.items(o,v,s.items,Ce.Name)}}}Ft.callRef=Qo;Ft.default=ES});var Mp=S(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});var PS=xp(),RS=Cp(),CS=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",PS.default,RS.default];Fa.default=CS});var zp=S(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});var Xo=D(),$t=Xo.operators,es={maximum:{okStr:"<=",ok:$t.LTE,fail:$t.GT},minimum:{okStr:">=",ok:$t.GTE,fail:$t.LT},exclusiveMaximum:{okStr:"<",ok:$t.LT,fail:$t.GTE},exclusiveMinimum:{okStr:">",ok:$t.GT,fail:$t.LTE}},MS={message:({keyword:t,schemaCode:e})=>(0,Xo.str)`must be ${es[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Xo._)`{comparison: ${es[t].okStr}, limit: ${e}}`},zS={keyword:Object.keys(es),type:"number",schemaType:"number",$data:!0,error:MS,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Xo._)`${r} ${es[e].fail} ${n} || isNaN(${r})`)}};Ha.default=zS});var Ap=S(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});var kn=D(),AS={message:({schemaCode:t})=>(0,kn.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,kn._)`{multipleOf: ${t}}`},IS={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:AS,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,s=o.opts.multipleOfPrecision,i=e.let("res"),a=s?(0,kn._)`Math.abs(Math.round(${i}) - ${i}) > 1e-${s}`:(0,kn._)`${i} !== parseInt(${i})`;t.fail$data((0,kn._)`(${n} === 0 || (${i} = ${r}/${n}, ${a}))`)}};Wa.default=IS});var Op=S(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});function Ip(t){let e=t.length,r=0,n=0,o;for(;n<e;)r++,o=t.charCodeAt(n++),o>=55296&&o<=56319&&n<e&&(o=t.charCodeAt(n),(o&64512)===56320&&n++);return r}Va.default=Ip;Ip.code='require("ajv/dist/runtime/ucs2length").default'});var jp=S(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});var Ht=D(),OS=W(),jS=Op(),NS={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,Ht.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,Ht._)`{limit: ${t}}`},qS={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:NS,code(t){let{keyword:e,data:r,schemaCode:n,it:o}=t,s=e==="maxLength"?Ht.operators.GT:Ht.operators.LT,i=o.opts.unicode===!1?(0,Ht._)`${r}.length`:(0,Ht._)`${(0,OS.useFunc)(t.gen,jS.default)}(${r})`;t.fail$data((0,Ht._)`${i} ${s} ${n}`)}};Ba.default=qS});var Np=S(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var DS=qe(),LS=W(),vr=D(),US={message:({schemaCode:t})=>(0,vr.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,vr._)`{pattern: ${t}}`},FS={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:US,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:s,it:i}=t,a=i.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=i.opts.code,u=c.code==="new RegExp"?(0,vr._)`new RegExp`:(0,LS.useFunc)(e,c),l=e.let("valid");e.try(()=>e.assign(l,(0,vr._)`${u}(${s}, ${a}).test(${r})`),()=>e.assign(l,!1)),t.fail$data((0,vr._)`!${l}`)}else{let c=(0,DS.usePattern)(t,o);t.fail$data((0,vr._)`!${c}.test(${r})`)}}};Ga.default=FS});var qp=S(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Tn=D(),HS={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Tn.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Tn._)`{limit: ${t}}`},WS={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:HS,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?Tn.operators.GT:Tn.operators.LT;t.fail$data((0,Tn._)`Object.keys(${r}).length ${o} ${n}`)}};Ka.default=WS});var Dp=S(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});var $n=qe(),xn=D(),VS=W(),BS={message:({params:{missingProperty:t}})=>(0,xn.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,xn._)`{missingProperty: ${t}}`},GS={keyword:"required",type:"object",schemaType:"array",$data:!0,error:BS,code(t){let{gen:e,schema:r,schemaCode:n,data:o,$data:s,it:i}=t,{opts:a}=i;if(!s&&r.length===0)return;let c=r.length>=a.loopRequired;if(i.allErrors?u():l(),a.strictRequired){let f=t.parentSchema.properties,{definedProperties:g}=t.it;for(let h of r)if(f?.[h]===void 0&&!g.has(h)){let y=i.schemaEnv.baseId+i.errSchemaPath,v=`required property "${h}" is not defined at "${y}" (strictRequired)`;(0,VS.checkStrictMode)(i,v,i.opts.strictRequired)}}function u(){if(c||s)t.block$data(xn.nil,d);else for(let f of r)(0,$n.checkReportMissingProp)(t,f)}function l(){let f=e.let("missing");if(c||s){let g=e.let("valid",!0);t.block$data(g,()=>m(f,g)),t.ok(g)}else e.if((0,$n.checkMissingProp)(t,r,f)),(0,$n.reportMissingProp)(t,f),e.else()}function d(){e.forOf("prop",n,f=>{t.setParams({missingProperty:f}),e.if((0,$n.noPropertyInData)(e,o,f,a.ownProperties),()=>t.error())})}function m(f,g){t.setParams({missingProperty:f}),e.forOf(f,n,()=>{e.assign(g,(0,$n.propertyInData)(e,o,f,a.ownProperties)),e.if((0,xn.not)(g),()=>{t.error(),e.break()})},xn.nil)}}};Za.default=GS});var Lp=S(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});var En=D(),KS={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,En.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,En._)`{limit: ${t}}`},ZS={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:KS,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?En.operators.GT:En.operators.LT;t.fail$data((0,En._)`${r}.length ${o} ${n}`)}};Ja.default=ZS});var ts=S(Ya=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});var Up=va();Up.code='require("ajv/dist/runtime/equal").default';Ya.default=Up});var Fp=S(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});var Qa=mn(),ge=D(),JS=W(),YS=ts(),QS={message:({params:{i:t,j:e}})=>(0,ge.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,ge._)`{i: ${t}, j: ${e}}`},XS={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:QS,code(t){let{gen:e,data:r,$data:n,schema:o,parentSchema:s,schemaCode:i,it:a}=t;if(!n&&!o)return;let c=e.let("valid"),u=s.items?(0,Qa.getSchemaTypes)(s.items):[];t.block$data(c,l,(0,ge._)`${i} === false`),t.ok(c);function l(){let g=e.let("i",(0,ge._)`${r}.length`),h=e.let("j");t.setParams({i:g,j:h}),e.assign(c,!0),e.if((0,ge._)`${g} > 1`,()=>(d()?m:f)(g,h))}function d(){return u.length>0&&!u.some(g=>g==="object"||g==="array")}function m(g,h){let y=e.name("item"),v=(0,Qa.checkDataTypes)(u,y,a.opts.strictNumbers,Qa.DataType.Wrong),E=e.const("indices",(0,ge._)`{}`);e.for((0,ge._)`;${g}--;`,()=>{e.let(y,(0,ge._)`${r}[${g}]`),e.if(v,(0,ge._)`continue`),u.length>1&&e.if((0,ge._)`typeof ${y} == "string"`,(0,ge._)`${y} += "_"`),e.if((0,ge._)`typeof ${E}[${y}] == "number"`,()=>{e.assign(h,(0,ge._)`${E}[${y}]`),t.error(),e.assign(c,!1).break()}).code((0,ge._)`${E}[${y}] = ${g}`)})}function f(g,h){let y=(0,JS.useFunc)(e,YS.default),v=e.name("outer");e.label(v).for((0,ge._)`;${g}--;`,()=>e.for((0,ge._)`${h} = ${g}; ${h}--;`,()=>e.if((0,ge._)`${y}(${r}[${g}], ${r}[${h}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};Xa.default=XS});var Hp=S(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var ec=D(),ek=W(),tk=ts(),rk={message:"must be equal to constant",params:({schemaCode:t})=>(0,ec._)`{allowedValue: ${t}}`},nk={keyword:"const",$data:!0,error:rk,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:s}=t;n||s&&typeof s=="object"?t.fail$data((0,ec._)`!${(0,ek.useFunc)(e,tk.default)}(${r}, ${o})`):t.fail((0,ec._)`${s} !== ${r}`)}};tc.default=nk});var Wp=S(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var Pn=D(),ok=W(),sk=ts(),ik={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Pn._)`{allowedValues: ${t}}`},ak={keyword:"enum",schemaType:"array",$data:!0,error:ik,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:s,it:i}=t;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let a=o.length>=i.opts.loopEnum,c,u=()=>c??(c=(0,ok.useFunc)(e,sk.default)),l;if(a||n)l=e.let("valid"),t.block$data(l,d);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let f=e.const("vSchema",s);l=(0,Pn.or)(...o.map((g,h)=>m(f,h)))}t.pass(l);function d(){e.assign(l,!1),e.forOf("v",s,f=>e.if((0,Pn._)`${u()}(${r}, ${f})`,()=>e.assign(l,!0).break()))}function m(f,g){let h=o[g];return typeof h=="object"&&h!==null?(0,Pn._)`${u()}(${r}, ${f}[${g}])`:(0,Pn._)`${r} === ${h}`}}};rc.default=ak});var Vp=S(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var ck=zp(),lk=Ap(),uk=jp(),dk=Np(),pk=qp(),mk=Dp(),fk=Lp(),hk=Fp(),gk=Hp(),yk=Wp(),_k=[ck.default,lk.default,uk.default,dk.default,pk.default,mk.default,fk.default,hk.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},gk.default,yk.default];nc.default=_k});var sc=S(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.validateAdditionalItems=void 0;var Wt=D(),oc=W(),wk={message:({params:{len:t}})=>(0,Wt.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Wt._)`{limit: ${t}}`},vk={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:wk,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,oc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}Bp(t,n)}};function Bp(t,e){let{gen:r,schema:n,data:o,keyword:s,it:i}=t;i.items=!0;let a=r.const("len",(0,Wt._)`${o}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Wt._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,oc.alwaysValidSchema)(i,n)){let u=r.var("valid",(0,Wt._)`${a} <= ${e.length}`);r.if((0,Wt.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,l=>{t.subschema({keyword:s,dataProp:l,dataPropType:oc.Type.Num},u),i.allErrors||r.if((0,Wt.not)(u),()=>r.break())})}}Rn.validateAdditionalItems=Bp;Rn.default=vk});var ic=S(Cn=>{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});Cn.validateTuple=void 0;var Gp=D(),rs=W(),bk=qe(),Sk={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return Kp(t,"additionalItems",e);r.items=!0,!(0,rs.alwaysValidSchema)(r,e)&&t.ok((0,bk.validateArray)(t))}};function Kp(t,e,r=t.schema){let{gen:n,parentSchema:o,data:s,keyword:i,it:a}=t;l(o),a.opts.unevaluated&&r.length&&a.items!==!0&&(a.items=rs.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,Gp._)`${s}.length`);r.forEach((d,m)=>{(0,rs.alwaysValidSchema)(a,d)||(n.if((0,Gp._)`${u} > ${m}`,()=>t.subschema({keyword:i,schemaProp:m,dataProp:m},c)),t.ok(c))});function l(d){let{opts:m,errSchemaPath:f}=a,g=r.length,h=g===d.minItems&&(g===d.maxItems||d[e]===!1);if(m.strictTuples&&!h){let y=`"${i}" is ${g}-tuple, but minItems or maxItems/${e} are not specified or different at path "${f}"`;(0,rs.checkStrictMode)(a,y,m.strictTuples)}}}Cn.validateTuple=Kp;Cn.default=Sk});var Zp=S(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var kk=ic(),Tk={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,kk.validateTuple)(t,"items")};ac.default=Tk});var Yp=S(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var Jp=D(),$k=W(),xk=qe(),Ek=sc(),Pk={message:({params:{len:t}})=>(0,Jp.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Jp._)`{limit: ${t}}`},Rk={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Pk,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,$k.alwaysValidSchema)(n,e)&&(o?(0,Ek.validateAdditionalItems)(t,o):t.ok((0,xk.validateArray)(t)))}};cc.default=Rk});var Qp=S(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});var Le=D(),ns=W(),Ck={message:({params:{min:t,max:e}})=>e===void 0?(0,Le.str)`must contain at least ${t} valid item(s)`:(0,Le.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Le._)`{minContains: ${t}}`:(0,Le._)`{minContains: ${t}, maxContains: ${e}}`},Mk={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Ck,code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:s}=t,i,a,{minContains:c,maxContains:u}=n;s.opts.next?(i=c===void 0?1:c,a=u):i=1;let l=e.const("len",(0,Le._)`${o}.length`);if(t.setParams({min:i,max:a}),a===void 0&&i===0){(0,ns.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&i>a){(0,ns.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,ns.alwaysValidSchema)(s,r)){let h=(0,Le._)`${l} >= ${i}`;a!==void 0&&(h=(0,Le._)`${h} && ${l} <= ${a}`),t.pass(h);return}s.items=!0;let d=e.name("valid");a===void 0&&i===1?f(d,()=>e.if(d,()=>e.break())):i===0?(e.let(d,!0),a!==void 0&&e.if((0,Le._)`${o}.length > 0`,m)):(e.let(d,!1),m()),t.result(d,()=>t.reset());function m(){let h=e.name("_valid"),y=e.let("count",0);f(h,()=>e.if(h,()=>g(y)))}function f(h,y){e.forRange("i",0,l,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:ns.Type.Num,compositeRule:!0},h),y()})}function g(h){e.code((0,Le._)`${h}++`),a===void 0?e.if((0,Le._)`${h} >= ${i}`,()=>e.assign(d,!0).break()):(e.if((0,Le._)`${h} > ${a}`,()=>e.assign(d,!1).break()),i===1?e.assign(d,!0):e.if((0,Le._)`${h} >= ${i}`,()=>e.assign(d,!0)))}}};lc.default=Mk});var tm=S(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.validateSchemaDeps=Je.validatePropertyDeps=Je.error=void 0;var uc=D(),zk=W(),Mn=qe();Je.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,uc.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,uc._)`{property: ${t},
8
+ || ${i} === "boolean" || ${o} === null`).assign(a,(0,q._)`[${o}]`)}}}function iv({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,q._)`${e} !== undefined`,()=>t.assign((0,q._)`${e}[${r}]`,n))}function fa(t,e,r,n=mr.Correct){let o=n===mr.Correct?q.operators.EQ:q.operators.NEQ,s;switch(t){case"null":return(0,q._)`${e} ${o} null`;case"array":s=(0,q._)`Array.isArray(${e})`;break;case"object":s=(0,q._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":s=i((0,q._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":s=i();break;default:return(0,q._)`typeof ${e} ${o} ${t}`}return n===mr.Correct?s:(0,q.not)(s);function i(a=q.nil){return(0,q.and)((0,q._)`typeof ${e} == "number"`,a,r?(0,q._)`isFinite(${e})`:q.nil)}}ve.checkDataType=fa;function ha(t,e,r,n){if(t.length===1)return fa(t[0],e,r,n);let o,s=(0,_d.toHash)(t);if(s.array&&s.object){let i=(0,q._)`typeof ${e} != "object"`;o=s.null?i:(0,q._)`!${e} || ${i}`,delete s.null,delete s.array,delete s.object}else o=q.nil;s.number&&delete s.integer;for(let i in s)o=(0,q.and)(o,fa(i,e,r,n));return o}ve.checkDataTypes=ha;var av={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,q._)`{type: ${t}}`:(0,q._)`{type: ${e}}`};function ga(t){let e=cv(t);(0,tv.reportError)(e,av)}ve.reportTypeError=ga;function cv(t){let{gen:e,data:r,schema:n}=t,o=(0,_d.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var Sd=S(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.assignDefaults=void 0;var fr=D(),lv=W();function uv(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)bd(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,s)=>bd(t,s,o.default))}Fo.assignDefaults=uv;function bd(t,e,r){let{gen:n,compositeRule:o,data:s,opts:i}=t;if(r===void 0)return;let a=(0,fr._)`${s}${(0,fr.getProperty)(e)}`;if(o){(0,lv.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,fr._)`${a} === undefined`;i.useDefaults==="empty"&&(c=(0,fr._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,fr._)`${a} = ${(0,fr.stringify)(r)}`)}});var qe=S(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.validateUnion=K.validateArray=K.usePattern=K.callValidateCode=K.schemaProperties=K.allSchemaProperties=K.noPropertyInData=K.propertyInData=K.isOwnProperty=K.hasPropFunc=K.reportMissingProp=K.checkMissingProp=K.checkReportMissingProp=void 0;var X=D(),ya=W(),bt=nt(),dv=W();function pv(t,e){let{gen:r,data:n,it:o}=t;r.if(wa(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,X._)`${e}`},!0),t.error()})}K.checkReportMissingProp=pv;function mv({gen:t,data:e,it:{opts:r}},n,o){return(0,X.or)(...n.map(s=>(0,X.and)(wa(t,e,s,r.ownProperties),(0,X._)`${o} = ${s}`)))}K.checkMissingProp=mv;function fv(t,e){t.setParams({missingProperty:e},!0),t.error()}K.reportMissingProp=fv;function kd(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,X._)`Object.prototype.hasOwnProperty`})}K.hasPropFunc=kd;function _a(t,e,r){return(0,X._)`${kd(t)}.call(${e}, ${r})`}K.isOwnProperty=_a;function hv(t,e,r,n){let o=(0,X._)`${e}${(0,X.getProperty)(r)} !== undefined`;return n?(0,X._)`${o} && ${_a(t,e,r)}`:o}K.propertyInData=hv;function wa(t,e,r,n){let o=(0,X._)`${e}${(0,X.getProperty)(r)} === undefined`;return n?(0,X.or)(o,(0,X.not)(_a(t,e,r))):o}K.noPropertyInData=wa;function Td(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}K.allSchemaProperties=Td;function gv(t,e){return Td(e).filter(r=>!(0,ya.alwaysValidSchema)(t,e[r]))}K.schemaProperties=gv;function yv({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:s},it:i},a,c,u){let l=u?(0,X._)`${t}, ${e}, ${n}${o}`:e,d=[[bt.default.instancePath,(0,X.strConcat)(bt.default.instancePath,s)],[bt.default.parentData,i.parentData],[bt.default.parentDataProperty,i.parentDataProperty],[bt.default.rootData,bt.default.rootData]];i.opts.dynamicRef&&d.push([bt.default.dynamicAnchors,bt.default.dynamicAnchors]);let m=(0,X._)`${l}, ${r.object(...d)}`;return c!==X.nil?(0,X._)`${a}.call(${c}, ${m})`:(0,X._)`${a}(${m})`}K.callValidateCode=yv;var _v=(0,X._)`new RegExp`;function wv({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:o}=e.code,s=o(r,n);return t.scopeValue("pattern",{key:s.toString(),ref:s,code:(0,X._)`${o.code==="new RegExp"?_v:(0,dv.useFunc)(t,o)}(${r}, ${n})`})}K.usePattern=wv;function vv(t){let{gen:e,data:r,keyword:n,it:o}=t,s=e.name("valid");if(o.allErrors){let a=e.let("valid",!0);return i(()=>e.assign(a,!1)),a}return e.var(s,!0),i(()=>e.break()),s;function i(a){let c=e.const("len",(0,X._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:ya.Type.Num},s),e.if((0,X.not)(s),a)})}}K.validateArray=vv;function bv(t){let{gen:e,schema:r,keyword:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,ya.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let i=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let l=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(i,(0,X._)`${i} || ${a}`),t.mergeValidEvaluated(l,a)||e.if((0,X.not)(i))})),t.result(i,()=>t.reset(),()=>t.error(!0))}K.validateUnion=bv});var Ed=S(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.validateKeywordUsage=Ke.validSchemaType=Ke.funcKeywordCode=Ke.macroKeywordCode=void 0;var Se=D(),Dt=nt(),Sv=qe(),kv=pn();function Tv(t,e){let{gen:r,keyword:n,schema:o,parentSchema:s,it:i}=t,a=e.macro.call(i.self,o,s,i),c=$d(r,n,a);i.opts.validateSchema!==!1&&i.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Se.nil,errSchemaPath:`${i.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Ke.macroKeywordCode=Tv;function xv(t,e){var r;let{gen:n,keyword:o,schema:s,parentSchema:i,$data:a,it:c}=t;Ev(c,e);let u=!a&&e.compile?e.compile.call(c.self,s,i,c):e.validate,l=$d(n,o,u),d=n.let("valid");t.block$data(d,m),t.ok((r=e.valid)!==null&&r!==void 0?r:d);function m(){if(e.errors===!1)h(),e.modifying&&xd(t),y(()=>t.error());else{let v=e.async?f():g();e.modifying&&xd(t),y(()=>$v(t,v))}}function f(){let v=n.let("ruleErrs",null);return n.try(()=>h((0,Se._)`await `),$=>n.assign(d,!1).if((0,Se._)`${$} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,Se._)`${$}.errors`),()=>n.throw($))),v}function g(){let v=(0,Se._)`${l}.errors`;return n.assign(v,null),h(Se.nil),v}function h(v=e.async?(0,Se._)`await `:Se.nil){let $=c.opts.passContext?Dt.default.this:Dt.default.self,k=!("compile"in e&&!a||e.schema===!1);n.assign(d,(0,Se._)`${v}${(0,Sv.callValidateCode)(t,l,$,k)}`,e.modifying)}function y(v){var $;n.if((0,Se.not)(($=e.valid)!==null&&$!==void 0?$:d),v)}}Ke.funcKeywordCode=xv;function xd(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Se._)`${n.parentData}[${n.parentDataProperty}]`))}function $v(t,e){let{gen:r}=t;r.if((0,Se._)`Array.isArray(${e})`,()=>{r.assign(Dt.default.vErrors,(0,Se._)`${Dt.default.vErrors} === null ? ${e} : ${Dt.default.vErrors}.concat(${e})`).assign(Dt.default.errors,(0,Se._)`${Dt.default.vErrors}.length`),(0,kv.extendErrors)(t)},()=>t.error())}function Ev({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function $d(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Se.stringify)(r)})}function Pv(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Ke.validSchemaType=Pv;function Rv({schema:t,opts:e,self:r,errSchemaPath:n},o,s){if(Array.isArray(o.keyword)?!o.keyword.includes(s):o.keyword!==s)throw new Error("ajv implementation error");let i=o.dependencies;if(i?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${s}: ${i.join(",")}`);if(o.validateSchema&&!o.validateSchema(t[s])){let c=`keyword "${s}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Ke.validateKeywordUsage=Rv});var Rd=S(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.extendSubschemaMode=St.extendSubschemaData=St.getSubschema=void 0;var Ze=D(),Pd=W();function Cv(t,{keyword:e,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:s,topSchemaRef:i}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let a=t.schema[e];return r===void 0?{schema:a,schemaPath:(0,Ze._)`${t.schemaPath}${(0,Ze.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Ze._)`${t.schemaPath}${(0,Ze.getProperty)(e)}${(0,Ze.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,Pd.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||s===void 0||i===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:i,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}St.getSubschema=Cv;function Mv(t,e,{dataProp:r,dataPropType:n,data:o,dataTypes:s,propertyName:i}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=e;if(r!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=e,m=a.let("data",(0,Ze._)`${e.data}${(0,Ze.getProperty)(r)}`,!0);c(m),t.errorPath=(0,Ze.str)`${u}${(0,Pd.getErrorPath)(r,n,d.jsPropertySyntax)}`,t.parentDataProperty=(0,Ze._)`${r}`,t.dataPathArr=[...l,t.parentDataProperty]}if(o!==void 0){let u=o instanceof Ze.Name?o:a.let("data",o,!0);c(u),i!==void 0&&(t.propertyName=i)}s&&(t.dataTypes=s);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}St.extendSubschemaData=Mv;function zv(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:s}){n!==void 0&&(t.compositeRule=n),o!==void 0&&(t.createErrors=o),s!==void 0&&(t.allErrors=s),t.jtdDiscriminator=e,t.jtdMetadata=r}St.extendSubschemaMode=zv});var va=S((jA,Cd)=>{"use strict";Cd.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,o,s;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!t(e[o],r[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(s=Object.keys(e),n=s.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,s[o]))return!1;for(o=n;o--!==0;){var i=s[o];if(!t(e[i],r[i]))return!1}return!0}return e!==e&&r!==r}});var zd=S((NA,Md)=>{"use strict";var kt=Md.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};Ho(e,n,o,t,"",t)};kt.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};kt.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};kt.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};kt.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 Ho(t,e,r,n,o,s,i,a,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,o,s,i,a,c,u);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in kt.arrayKeywords)for(var m=0;m<d.length;m++)Ho(t,e,r,d[m],o+"/"+l+"/"+m,s,o,l,n,m)}else if(l in kt.propsKeywords){if(d&&typeof d=="object")for(var f in d)Ho(t,e,r,d[f],o+"/"+l+"/"+Av(f),s,o,l,n,f)}else(l in kt.keywords||t.allKeys&&!(l in kt.skipKeywords))&&Ho(t,e,r,d,o+"/"+l,s,o,l,n)}r(n,o,s,i,a,c,u)}}function Av(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var fn=S(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.getSchemaRefs=Re.resolveUrl=Re.normalizeId=Re._getFullPath=Re.getFullPath=Re.inlineRef=void 0;var Iv=W(),Ov=va(),jv=zd(),Nv=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function qv(t,e=!0){return typeof t=="boolean"?!0:e===!0?!ba(t):e?Ad(t)<=e:!1}Re.inlineRef=qv;var Dv=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ba(t){for(let e in t){if(Dv.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(ba)||typeof r=="object"&&ba(r))return!0}return!1}function Ad(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!Nv.has(r)&&(typeof t[r]=="object"&&(0,Iv.eachItem)(t[r],n=>e+=Ad(n)),e===1/0))return 1/0}return e}function Id(t,e="",r){r!==!1&&(e=hr(e));let n=t.parse(e);return Od(t,n)}Re.getFullPath=Id;function Od(t,e){return t.serialize(e).split("#")[0]+"#"}Re._getFullPath=Od;var Lv=/#\/?$/;function hr(t){return t?t.replace(Lv,""):""}Re.normalizeId=hr;function Uv(t,e,r){return r=hr(r),t.resolve(e,r)}Re.resolveUrl=Uv;var Fv=/^[a-z_][-a-z0-9._]*$/i;function Hv(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=hr(t[r]||e),s={"":o},i=Id(n,o,!1),a={},c=new Set;return jv(t,{allKeys:!0},(d,m,f,g)=>{if(g===void 0)return;let h=i+m,y=s[g];typeof d[r]=="string"&&(y=v.call(this,d[r])),$.call(this,d.$anchor),$.call(this,d.$dynamicAnchor),s[m]=y;function v(k){let z=this.opts.uriResolver.resolve;if(k=hr(y?z(y,k):k),c.has(k))throw l(k);c.add(k);let w=this.refs[k];return typeof w=="string"&&(w=this.refs[w]),typeof w=="object"?u(d,w.schema,k):k!==hr(h)&&(k[0]==="#"?(u(d,a[k],k),a[k]=d):this.refs[k]=h),k}function $(k){if(typeof k=="string"){if(!Fv.test(k))throw new Error(`invalid anchor "${k}"`);v.call(this,`#${k}`)}}}),a;function u(d,m,f){if(m!==void 0&&!Ov(d,m))throw l(f)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Re.getSchemaRefs=Hv});var yn=S(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.getData=Tt.KeywordCxt=Tt.validateFunctionCode=void 0;var Ld=hd(),jd=mn(),ka=ma(),Wo=mn(),Wv=Sd(),gn=Ed(),Sa=Rd(),R=D(),I=nt(),Vv=fn(),ot=W(),hn=pn();function Bv(t){if(Hd(t)&&(Wd(t),Fd(t))){Zv(t);return}Ud(t,()=>(0,Ld.topBoolOrEmptySchema)(t))}Tt.validateFunctionCode=Bv;function Ud({gen:t,validateName:e,schema:r,schemaEnv:n,opts:o},s){o.code.es5?t.func(e,(0,R._)`${I.default.data}, ${I.default.valCxt}`,n.$async,()=>{t.code((0,R._)`"use strict"; ${Nd(r,o)}`),Kv(t,o),t.code(s)}):t.func(e,(0,R._)`${I.default.data}, ${Gv(o)}`,n.$async,()=>t.code(Nd(r,o)).code(s))}function Gv(t){return(0,R._)`{${I.default.instancePath}="", ${I.default.parentData}, ${I.default.parentDataProperty}, ${I.default.rootData}=${I.default.data}${t.dynamicRef?(0,R._)`, ${I.default.dynamicAnchors}={}`:R.nil}}={}`}function Kv(t,e){t.if(I.default.valCxt,()=>{t.var(I.default.instancePath,(0,R._)`${I.default.valCxt}.${I.default.instancePath}`),t.var(I.default.parentData,(0,R._)`${I.default.valCxt}.${I.default.parentData}`),t.var(I.default.parentDataProperty,(0,R._)`${I.default.valCxt}.${I.default.parentDataProperty}`),t.var(I.default.rootData,(0,R._)`${I.default.valCxt}.${I.default.rootData}`),e.dynamicRef&&t.var(I.default.dynamicAnchors,(0,R._)`${I.default.valCxt}.${I.default.dynamicAnchors}`)},()=>{t.var(I.default.instancePath,(0,R._)`""`),t.var(I.default.parentData,(0,R._)`undefined`),t.var(I.default.parentDataProperty,(0,R._)`undefined`),t.var(I.default.rootData,I.default.data),e.dynamicRef&&t.var(I.default.dynamicAnchors,(0,R._)`{}`)})}function Zv(t){let{schema:e,opts:r,gen:n}=t;Ud(t,()=>{r.$comment&&e.$comment&&Bd(t),eb(t),n.let(I.default.vErrors,null),n.let(I.default.errors,0),r.unevaluated&&Jv(t),Vd(t),nb(t)})}function Jv(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,R._)`${r}.evaluated`),e.if((0,R._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,R._)`${t.evaluated}.props`,(0,R._)`undefined`)),e.if((0,R._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,R._)`${t.evaluated}.items`,(0,R._)`undefined`))}function Nd(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,R._)`/*# sourceURL=${r} */`:R.nil}function Yv(t,e){if(Hd(t)&&(Wd(t),Fd(t))){Xv(t,e);return}(0,Ld.boolOrEmptySchema)(t,e)}function Fd({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function Hd(t){return typeof t.schema!="boolean"}function Xv(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&Bd(t),tb(t),rb(t);let s=n.const("_errs",I.default.errors);Vd(t,s),n.var(e,(0,R._)`${s} === ${I.default.errors}`)}function Wd(t){(0,ot.checkUnknownRules)(t),Qv(t)}function Vd(t,e){if(t.opts.jtd)return qd(t,[],!1,e);let r=(0,jd.getSchemaTypes)(t.schema),n=(0,jd.coerceAndCheckDataType)(t,r);qd(t,r,!n,e)}function Qv(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,ot.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function eb(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,ot.checkStrictMode)(t,"default is ignored in the schema root")}function tb(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,Vv.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function rb(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function Bd({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:o}){let s=r.$comment;if(o.$comment===!0)t.code((0,R._)`${I.default.self}.logger.log(${s})`);else if(typeof o.$comment=="function"){let i=(0,R.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,R._)`${I.default.self}.opts.$comment(${s}, ${i}, ${a}.schema)`)}}function nb(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:o,opts:s}=t;r.$async?e.if((0,R._)`${I.default.errors} === 0`,()=>e.return(I.default.data),()=>e.throw((0,R._)`new ${o}(${I.default.vErrors})`)):(e.assign((0,R._)`${n}.errors`,I.default.vErrors),s.unevaluated&&ob(t),e.return((0,R._)`${I.default.errors} === 0`))}function ob({gen:t,evaluated:e,props:r,items:n}){r instanceof R.Name&&t.assign((0,R._)`${e}.props`,r),n instanceof R.Name&&t.assign((0,R._)`${e}.items`,n)}function qd(t,e,r,n){let{gen:o,schema:s,data:i,allErrors:a,opts:c,self:u}=t,{RULES:l}=u;if(s.$ref&&(c.ignoreKeywordsWithRef||!(0,ot.schemaHasRulesButRef)(s,l))){o.block(()=>Kd(t,"$ref",l.all.$ref.definition));return}c.jtd||sb(t,e),o.block(()=>{for(let m of l.rules)d(m);d(l.post)});function d(m){(0,ka.shouldUseGroup)(s,m)&&(m.type?(o.if((0,Wo.checkDataType)(m.type,i,c.strictNumbers)),Dd(t,m),e.length===1&&e[0]===m.type&&r&&(o.else(),(0,Wo.reportTypeError)(t)),o.endIf()):Dd(t,m),a||o.if((0,R._)`${I.default.errors} === ${n||0}`))}}function Dd(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,Wv.assignDefaults)(t,e.type),r.block(()=>{for(let s of e.rules)(0,ka.shouldUseRule)(n,s)&&Kd(t,s.keyword,s.definition,e.type)})}function sb(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(ib(t,e),t.opts.allowUnionTypes||ab(t,e),cb(t,t.dataTypes))}function ib(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{Gd(t.dataTypes,r)||Ta(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),ub(t,e)}}function ab(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Ta(t,"use allowUnionTypes to allow union type keyword")}function cb(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,ka.shouldUseRule)(t.schema,o)){let{type:s}=o.definition;s.length&&!s.some(i=>lb(e,i))&&Ta(t,`missing type "${s.join(",")}" for keyword "${n}"`)}}}function lb(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function Gd(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function ub(t,e){let r=[];for(let n of t.dataTypes)Gd(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function Ta(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,ot.checkStrictMode)(t,e,t.opts.strictTypes)}var Vo=class{constructor(e,r,n){if((0,gn.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,ot.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",Zd(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,gn.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",I.default.errors))}result(e,r,n){this.failResult((0,R.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,R.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,R._)`${r} !== undefined && (${(0,R.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?hn.reportExtraError:hn.reportError)(this,this.def.error,r)}$dataError(){(0,hn.reportError)(this,this.def.$dataError||hn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,hn.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=R.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=R.nil,r=R.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:s,def:i}=this;n.if((0,R.or)((0,R._)`${o} === undefined`,r)),e!==R.nil&&n.assign(e,!0),(s.length||i.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==R.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:s}=this;return(0,R.or)(i(),a());function i(){if(n.length){if(!(r instanceof R.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,R._)`${(0,Wo.checkDataTypes)(c,r,s.opts.strictNumbers,Wo.DataType.Wrong)}`}return R.nil}function a(){if(o.validateSchema){let c=e.scopeValue("validate$data",{ref:o.validateSchema});return(0,R._)`!${c}(${r})`}return R.nil}}subschema(e,r){let n=(0,Sa.getSubschema)(this.it,e);(0,Sa.extendSubschemaData)(n,this.it,e),(0,Sa.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return Yv(o,r),o}mergeEvaluated(e,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=ot.mergeEvaluated.props(o,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=ot.mergeEvaluated.items(o,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(e,R.Name)),!0}};Tt.KeywordCxt=Vo;function Kd(t,e,r,n){let o=new Vo(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,gn.funcKeywordCode)(o,r):"macro"in r?(0,gn.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,gn.funcKeywordCode)(o,r)}var db=/^\/(?:[^~]|~0|~1)*$/,pb=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Zd(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,s;if(t==="")return I.default.rootData;if(t[0]==="/"){if(!db.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,s=I.default.rootData}else{let u=pb.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+u[1];if(o=u[2],o==="#"){if(l>=e)throw new Error(c("property/index",l));return n[e-l]}if(l>e)throw new Error(c("data",l));if(s=r[e-l],!o)return s}let i=s,a=o.split("/");for(let u of a)u&&(s=(0,R._)`${s}${(0,R.getProperty)((0,ot.unescapeJsonPointer)(u))}`,i=(0,R._)`${i} && ${s}`);return i;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${e}`}}Tt.getData=Zd});var Bo=S($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});var xa=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};$a.default=xa});var _n=S(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});var Ea=fn(),Pa=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Ea.resolveUrl)(e,r,n),this.missingSchema=(0,Ea.normalizeId)((0,Ea.getFullPath)(e,this.missingRef))}};Ra.default=Pa});var Ko=S(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.resolveSchema=De.getCompilingSchema=De.resolveRef=De.compileSchema=De.SchemaEnv=void 0;var He=D(),mb=Bo(),Lt=nt(),We=fn(),Jd=W(),fb=yn(),gr=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,We.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};De.SchemaEnv=gr;function Ma(t){let e=Yd.call(this,t);if(e)return e;let r=(0,We.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:s}=this.opts,i=new He.CodeGen(this.scope,{es5:n,lines:o,ownProperties:s}),a;t.$async&&(a=i.scopeValue("Error",{ref:mb.default,code:(0,He._)`require("ajv/dist/runtime/validation_error").default`}));let c=i.scopeName("validate");t.validateName=c;let u={gen:i,allErrors:this.opts.allErrors,data:Lt.default.data,parentData:Lt.default.parentData,parentDataProperty:Lt.default.parentDataProperty,dataNames:[Lt.default.data],dataPathArr:[He.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:i.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,He.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:a,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:He.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,He._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,fb.validateFunctionCode)(u),i.optimize(this.opts.code.optimize);let d=i.toString();l=`${i.scopeRefs(Lt.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let f=new Function(`${Lt.default.self}`,`${Lt.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:f}),f.errors=null,f.schema=t.schema,f.schemaEnv=t,t.$async&&(f.$async=!0),this.opts.code.source===!0&&(f.source={validateName:c,validateCode:d,scopeValues:i._values}),this.opts.unevaluated){let{props:g,items:h}=u;f.evaluated={props:g instanceof He.Name?void 0:g,items:h instanceof He.Name?void 0:h,dynamicProps:g instanceof He.Name,dynamicItems:h instanceof He.Name},f.source&&(f.source.evaluated=(0,He.stringify)(f.evaluated))}return t.validate=f,t}catch(d){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(t)}}De.compileSchema=Ma;function hb(t,e,r){var n;r=(0,We.resolveUrl)(this.opts.uriResolver,e,r);let o=t.refs[r];if(o)return o;let s=_b.call(this,t,r);if(s===void 0){let i=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:a}=this.opts;i&&(s=new gr({schema:i,schemaId:a,root:t,baseId:e}))}if(s!==void 0)return t.refs[r]=gb.call(this,s)}De.resolveRef=hb;function gb(t){return(0,We.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:Ma.call(this,t)}function Yd(t){for(let e of this._compilations)if(yb(e,t))return e}De.getCompilingSchema=Yd;function yb(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function _b(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Go.call(this,t,e)}function Go(t,e){let r=this.opts.uriResolver.parse(e),n=(0,We._getFullPath)(this.opts.uriResolver,r),o=(0,We.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===o)return Ca.call(this,r,t);let s=(0,We.normalizeId)(n),i=this.refs[s]||this.schemas[s];if(typeof i=="string"){let a=Go.call(this,t,i);return typeof a?.schema!="object"?void 0:Ca.call(this,r,a)}if(typeof i?.schema=="object"){if(i.validate||Ma.call(this,i),s===(0,We.normalizeId)(e)){let{schema:a}=i,{schemaId:c}=this.opts,u=a[c];return u&&(o=(0,We.resolveUrl)(this.opts.uriResolver,o,u)),new gr({schema:a,schemaId:c,root:t,baseId:o})}return Ca.call(this,r,i)}}De.resolveSchema=Go;var wb=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Ca(t,{baseId:e,schema:r,root:n}){var o;if(((o=t.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let a of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,Jd.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!wb.has(a)&&u&&(e=(0,We.resolveUrl)(this.opts.uriResolver,e,u))}let s;if(typeof r!="boolean"&&r.$ref&&!(0,Jd.schemaHasRulesButRef)(r,this.RULES)){let a=(0,We.resolveUrl)(this.opts.uriResolver,e,r.$ref);s=Go.call(this,n,a)}let{schemaId:i}=this.opts;if(s=s||new gr({schema:r,schemaId:i,root:n,baseId:e}),s.schema!==s.root.schema)return s}});var Xd=S((HA,vb)=>{vb.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 Ia=S((WA,op)=>{"use strict";var bb=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),ep=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),za=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),tp=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),Sb=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Aa(t){let e="",r=0,n=0;for(n=0;n<t.length;n++)if(r=t[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n<t.length;n++){if(r=t[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var kb=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Qd(t){return t.length=0,!0}function Tb(t,e,r){if(t.length){let n=Aa(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function xb(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],s=!1,i=!1,a=Tb;for(let c=0;c<t.length;c++){let u=t[c];if(!(u==="["||u==="]"))if(u===":"){if(s===!0&&(i=!0),!a(o,n,r))break;if(++e>7){r.error=!0;break}c>0&&t[c-1]===":"&&(s=!0),n.push(":");continue}else if(u==="%"){if(!a(o,n,r))break;a=Qd}else{o.push(u);continue}}return o.length&&(a===Qd?r.zone=o.join(""):i?n.push(o.join("")):n.push(Aa(o))),r.address=n.join(""),r}function rp(t){if($b(t,":")<2)return{host:t,isIPV6:!1};let e=xb(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function $b(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function Eb(t){let e=t,r=[],n=-1,o=0;for(;o=e.length;){if(o===1){if(e===".")break;if(e==="/"){r.push("/");break}else{r.push(e);break}}else if(o===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){r.push("/");break}}else if(o===3&&e==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),r.length!==0&&r.pop();continue}}if((n=e.indexOf("/",1))===-1){r.push(e);break}else r.push(e.slice(0,n)),e=e.slice(n)}return r.join("")}var Pb={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},Rb=/[@/?#:]/g,Cb=/[@/?#]/g;function np(t,e){let r=e?Cb:Rb;return r.lastIndex=0,t.replace(r,n=>Pb[n])}function Mb(t,e=!1){if(t.indexOf("%")===-1)return t;let r="";for(let n=0;n<t.length;n++){if(t[n]==="%"&&n+2<t.length){let o=t.slice(n+1,n+3);if(za(o)){let s=o.toUpperCase(),i=String.fromCharCode(parseInt(s,16));e&&tp(i)?r+=i:r+="%"+s,n+=2;continue}}r+=t[n]}return r}function zb(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(za(n)){let o=n.toUpperCase(),s=String.fromCharCode(parseInt(o,16));s!=="."&&tp(s)?e+=s:e+="%"+o,r+=2;continue}}Sb(t[r])?e+=t[r]:e+=escape(t[r])}return e}function Ab(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(za(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function Ib(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!ep(r)){let n=rp(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=np(r,!1)}e.push(r)}return(typeof t.port=="number"||typeof t.port=="string")&&(e.push(":"),e.push(String(t.port))),e.length?e.join(""):void 0}op.exports={nonSimpleDomain:kb,recomposeAuthority:Ib,reescapeHostDelimiters:np,normalizePercentEncoding:Mb,normalizePathEncoding:zb,escapePreservingEscapes:Ab,removeDotSegments:Eb,isIPv4:ep,isUUID:bb,normalizeIPv6:rp,stringArrayToHexStripped:Aa}});var lp=S((VA,cp)=>{"use strict";var{isUUID:Ob}=Ia(),jb=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Nb=["http","https","ws","wss","urn","urn:uuid"];function qb(t){return Nb.indexOf(t)!==-1}function Oa(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function sp(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function ip(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function Db(t){return t.secure=Oa(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function Lb(t){if((t.port===(Oa(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function Ub(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(jb);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let o=`${n}:${e.nid||t.nid}`,s=ja(o);t.path=void 0,s&&(t=s.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function Fb(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),o=`${r}:${e.nid||n}`,s=ja(o);s&&(t=s.serialize(t,e));let i=t,a=t.nss;return i.path=`${n||e.nid}:${a}`,e.skipEscape=!0,i}function Hb(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!Ob(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Wb(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var ap={scheme:"http",domainHost:!0,parse:sp,serialize:ip},Vb={scheme:"https",domainHost:ap.domainHost,parse:sp,serialize:ip},Zo={scheme:"ws",domainHost:!0,parse:Db,serialize:Lb},Bb={scheme:"wss",domainHost:Zo.domainHost,parse:Zo.parse,serialize:Zo.serialize},Gb={scheme:"urn",parse:Ub,serialize:Fb,skipNormalize:!0},Kb={scheme:"urn:uuid",parse:Hb,serialize:Wb,skipNormalize:!0},Jo={http:ap,https:Vb,ws:Zo,wss:Bb,urn:Gb,"urn:uuid":Kb};Object.setPrototypeOf(Jo,null);function ja(t){return t&&(Jo[t]||Jo[t.toLowerCase()])||void 0}cp.exports={wsIsSecure:Oa,SCHEMES:Jo,isValidSchemeName:qb,getSchemeHandler:ja}});var hp=S((BA,Yo)=>{"use strict";var{normalizeIPv6:Zb,removeDotSegments:wn,recomposeAuthority:Jb,normalizePercentEncoding:Yb,normalizePathEncoding:Xb,escapePreservingEscapes:Qb,reescapeHostDelimiters:eS,isIPv4:tS,nonSimpleDomain:rS}=Ia(),{SCHEMES:nS,getSchemeHandler:dp}=lp();function oS(t,e){return typeof t=="string"?t=uS(t,e):typeof t=="object"&&(t=yr(Ut(t,e),e)),t}function sS(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},o=pp(yr(t,n),yr(e,n),n,!0);return n.skipEscape=!0,Ut(o,n)}function pp(t,e,r,n){let o={};return n||(t=yr(Ut(t,r),r),e=yr(Ut(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(o.scheme=e.scheme,o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=wn(e.path||""),o.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=wn(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=wn(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?o.path="/"+e.path:t.path?o.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:o.path=e.path,o.path=wn(o.path)),o.query=e.query):(o.path=t.path,e.query!==void 0?o.query=e.query:o.query=t.query),o.userinfo=t.userinfo,o.host=t.host,o.port=t.port),o.scheme=t.scheme),o.fragment=e.fragment,o}function iS(t,e,r){let n=up(t,r),o=up(e,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function Ut(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),o=[],s=dp(n.scheme||r.scheme);s&&s.serialize&&s.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Yb(r.path):(r.path=Qb(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let i=Jb(r);if(i!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(i),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let a=r.path;!n.absolutePath&&(!s||!s.absolutePath)&&(a=wn(a)),i===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),o.push(a)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var aS=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,cS=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/;function lS(t,e){if(e[2]!==void 0&&t.path&&t.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof t.port=="number"&&(t.port<0||t.port>65535))return"URI port is malformed."}function mp(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,s=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let i=t.match(cS);i!==null&&i[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(aS);if(a){n.scheme=a[1],n.userinfo=a[3],n.host=a[4],n.port=parseInt(a[5],10),n.path=a[6]||"",n.query=a[7],n.fragment=a[8],isNaN(n.port)&&(n.port=a[5]);let c=lS(n,a);if(c!==void 0&&(n.error=n.error||c,o=!0),n.host)if(tS(n.host)===!1){let d=Zb(n.host);n.host=d.host.toLowerCase(),s=d.isIPV6}else s=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let u=dp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!u||!u.unicodeSupport)&&n.host&&(r.domainHost||u&&u.domainHost)&&s===!1&&rS(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(l){n.error=n.error||"Host's domain name can not be converted to ASCII: "+l}if((!u||u&&!u.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=eS(unescape(n.host),s))),n.path&&(n.path=Xb(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}u&&u.parse&&u.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:o}}function yr(t,e){return mp(t,e).parsed}function uS(t,e){return fp(t,e).normalized}function fp(t,e){let{parsed:r,malformedAuthorityOrPort:n}=mp(t,e);return{normalized:n?t:Ut(r,e),malformedAuthorityOrPort:n}}function up(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=fp(t,e);return n?void 0:r}if(typeof t=="object")return Ut(t,e)}var Na={SCHEMES:nS,normalize:oS,resolve:sS,resolveComponent:pp,equal:iS,serialize:Ut,parse:yr};Yo.exports=Na;Yo.exports.default=Na;Yo.exports.fastUri=Na});var yp=S(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});var gp=hp();gp.code='require("ajv/dist/runtime/uri").default';qa.default=gp});var xp=S(he=>{"use strict";Object.defineProperty(he,"__esModule",{value:!0});he.CodeGen=he.Name=he.nil=he.stringify=he.str=he._=he.KeywordCxt=void 0;var dS=yn();Object.defineProperty(he,"KeywordCxt",{enumerable:!0,get:function(){return dS.KeywordCxt}});var _r=D();Object.defineProperty(he,"_",{enumerable:!0,get:function(){return _r._}});Object.defineProperty(he,"str",{enumerable:!0,get:function(){return _r.str}});Object.defineProperty(he,"stringify",{enumerable:!0,get:function(){return _r.stringify}});Object.defineProperty(he,"nil",{enumerable:!0,get:function(){return _r.nil}});Object.defineProperty(he,"Name",{enumerable:!0,get:function(){return _r.Name}});Object.defineProperty(he,"CodeGen",{enumerable:!0,get:function(){return _r.CodeGen}});var pS=Bo(),Sp=_n(),mS=pa(),vn=Ko(),fS=D(),bn=fn(),Xo=mn(),La=W(),_p=Xd(),hS=yp(),kp=(t,e)=>new RegExp(t,e);kp.code="new RegExp";var gS=["removeAdditional","useDefaults","coerceTypes"],yS=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),_S={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."},wS={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},wp=200;function vS(t){var e,r,n,o,s,i,a,c,u,l,d,m,f,g,h,y,v,$,k,z,w,b,j,ne,oe;let Te=t.strict,Hr=(e=t.code)===null||e===void 0?void 0:e.optimize,oo=Hr===!0||Hr===void 0?1:Hr||0,so=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:kp,pt=(o=t.uriResolver)!==null&&o!==void 0?o:hS.default;return{strictSchema:(i=(s=t.strictSchema)!==null&&s!==void 0?s:Te)!==null&&i!==void 0?i:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:Te)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=t.strictTypes)!==null&&u!==void 0?u:Te)!==null&&l!==void 0?l:"log",strictTuples:(m=(d=t.strictTuples)!==null&&d!==void 0?d:Te)!==null&&m!==void 0?m:"log",strictRequired:(g=(f=t.strictRequired)!==null&&f!==void 0?f:Te)!==null&&g!==void 0?g:!1,code:t.code?{...t.code,optimize:oo,regExp:so}:{optimize:oo,regExp:so},loopRequired:(h=t.loopRequired)!==null&&h!==void 0?h:wp,loopEnum:(y=t.loopEnum)!==null&&y!==void 0?y:wp,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:($=t.messages)!==null&&$!==void 0?$:!0,inlineRefs:(k=t.inlineRefs)!==null&&k!==void 0?k:!0,schemaId:(z=t.schemaId)!==null&&z!==void 0?z:"$id",addUsedSchema:(w=t.addUsedSchema)!==null&&w!==void 0?w:!0,validateSchema:(b=t.validateSchema)!==null&&b!==void 0?b:!0,validateFormats:(j=t.validateFormats)!==null&&j!==void 0?j:!0,unicodeRegExp:(ne=t.unicodeRegExp)!==null&&ne!==void 0?ne:!0,int32range:(oe=t.int32range)!==null&&oe!==void 0?oe:!0,uriResolver:pt}}var Sn=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...vS(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new fS.ValueScope({scope:{},prefixes:yS,es5:r,lines:n}),this.logger=$S(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,mS.getRules)(),vp.call(this,_S,e,"NOT SUPPORTED"),vp.call(this,wS,e,"DEPRECATED","warn"),this._metaOpts=TS.call(this),e.formats&&SS.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&kS.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),bS.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=_p;n==="id"&&(o={..._p},o.id=o.$id,delete o.$id),r&&e&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,e,r);async function o(l,d){await s.call(this,l.$schema);let m=this._addSchema(l,d);return m.validate||i.call(this,m)}async function s(l){l&&!this.getSchema(l)&&await o.call(this,{$ref:l},!0)}async function i(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof Sp.default))throw d;return a.call(this,d),await c.call(this,d.missingSchema),i.call(this,l)}}function a({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await s.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,r)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(e,r,n,o=this.opts.validateSchema){if(Array.isArray(e)){for(let i of e)this.addSchema(i,void 0,n,o);return this}let s;if(typeof e=="object"){let{schemaId:i}=this.opts;if(s=e[i],s!==void 0&&typeof s!="string")throw new Error(`schema ${i} must be string`)}return r=(0,bn.normalizeId)(r||s),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,o,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,e);if(!o&&r){let s="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(s);else throw new Error(s)}return o}getSchema(e){let r;for(;typeof(r=bp.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new vn.SchemaEnv({schema:{},schemaId:n});if(r=vn.resolveSchema.call(this,o,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=bp.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,bn.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(PS.call(this,n,r),!r)return(0,La.eachItem)(n,s=>Da.call(this,s)),this;CS.call(this,r);let o={...r,type:(0,Xo.getJSONTypes)(r.type),schemaType:(0,Xo.getJSONTypes)(r.schemaType)};return(0,La.eachItem)(n,o.type.length===0?s=>Da.call(this,s,o):s=>o.type.forEach(i=>Da.call(this,s,o,i))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let o=n.rules.findIndex(s=>s.keyword===e);o>=0&&n.rules.splice(o,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,s)=>o+r+s)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let o of r){let s=o.split("/").slice(1),i=e;for(let a of s)i=i[a];for(let a in n){let c=n[a];if(typeof c!="object")continue;let{$data:u}=c.definition,l=i[a];u&&l&&(i[a]=Tp(l))}}return e}_removeAllSchemas(e,r){for(let n in e){let o=e[n];(!r||r.test(n))&&(typeof o=="string"?delete e[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete e[n]))}}_addSchema(e,r,n,o=this.opts.validateSchema,s=this.opts.addUsedSchema){let i,{schemaId:a}=this.opts;if(typeof e=="object")i=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,bn.normalizeId)(i||n);let u=bn.getSchemaRefs.call(this,e,n);return c=new vn.SchemaEnv({schema:e,schemaId:a,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),s&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):vn.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{vn.compileSchema.call(this,e)}finally{this.opts=r}}};Sn.ValidationError=pS.default;Sn.MissingRefError=Sp.default;he.default=Sn;function vp(t,e,r,n="error"){for(let o in t){let s=o;s in e&&this.logger[n](`${r}: option ${o}. ${t[s]}`)}}function bp(t){return t=(0,bn.normalizeId)(t),this.schemas[t]||this.refs[t]}function bS(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function SS(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function kS(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function TS(){let t={...this.opts};for(let e of gS)delete t[e];return t}var xS={log(){},warn(){},error(){}};function $S(t){if(t===!1)return xS;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var ES=/^[a-z_$][a-z0-9_$:-]*$/i;function PS(t,e){let{RULES:r}=this;if((0,La.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!ES.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function Da(t,e,r){var n;let o=e?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:s}=this,i=o?s.post:s.rules.find(({type:c})=>c===r);if(i||(i={type:r,rules:[]},s.rules.push(i)),s.keywords[t]=!0,!e)return;let a={keyword:t,definition:{...e,type:(0,Xo.getJSONTypes)(e.type),schemaType:(0,Xo.getJSONTypes)(e.schemaType)}};e.before?RS.call(this,i,a,e.before):i.rules.push(a),s.all[t]=a,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function RS(t,e,r){let n=t.rules.findIndex(o=>o.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function CS(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=Tp(e)),t.validateSchema=this.compile(e,!0))}var MS={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Tp(t){return{anyOf:[t,MS]}}});var $p=S(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});var zS={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Ua.default=zS});var Cp=S(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.callRef=Ft.getValidate=void 0;var AS=_n(),Ep=qe(),Ce=D(),wr=nt(),Pp=Ko(),Qo=W(),IS={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:o,schemaEnv:s,validateName:i,opts:a,self:c}=n,{root:u}=s;if((r==="#"||r==="#/")&&o===u.baseId)return d();let l=Pp.resolveRef.call(c,u,o,r);if(l===void 0)throw new AS.default(n.opts.uriResolver,o,r);if(l instanceof Pp.SchemaEnv)return m(l);return f(l);function d(){if(s===u)return es(t,i,s,s.$async);let g=e.scopeValue("root",{ref:u});return es(t,(0,Ce._)`${g}.validate`,u,u.$async)}function m(g){let h=Rp(t,g);es(t,h,g,g.$async)}function f(g){let h=e.scopeValue("schema",a.code.source===!0?{ref:g,code:(0,Ce.stringify)(g)}:{ref:g}),y=e.name("valid"),v=t.subschema({schema:g,dataTypes:[],schemaPath:Ce.nil,topSchemaRef:h,errSchemaPath:r},y);t.mergeEvaluated(v),t.ok(y)}}};function Rp(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,Ce._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Ft.getValidate=Rp;function es(t,e,r,n){let{gen:o,it:s}=t,{allErrors:i,schemaEnv:a,opts:c}=s,u=c.passContext?wr.default.this:Ce.nil;n?l():d();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");let g=o.let("valid");o.try(()=>{o.code((0,Ce._)`await ${(0,Ep.callValidateCode)(t,e,u)}`),f(e),i||o.assign(g,!0)},h=>{o.if((0,Ce._)`!(${h} instanceof ${s.ValidationError})`,()=>o.throw(h)),m(h),i||o.assign(g,!1)}),t.ok(g)}function d(){t.result((0,Ep.callValidateCode)(t,e,u),()=>f(e),()=>m(e))}function m(g){let h=(0,Ce._)`${g}.errors`;o.assign(wr.default.vErrors,(0,Ce._)`${wr.default.vErrors} === null ? ${h} : ${wr.default.vErrors}.concat(${h})`),o.assign(wr.default.errors,(0,Ce._)`${wr.default.vErrors}.length`)}function f(g){var h;if(!s.opts.unevaluated)return;let y=(h=r?.validate)===null||h===void 0?void 0:h.evaluated;if(s.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(s.props=Qo.mergeEvaluated.props(o,y.props,s.props));else{let v=o.var("props",(0,Ce._)`${g}.evaluated.props`);s.props=Qo.mergeEvaluated.props(o,v,s.props,Ce.Name)}if(s.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(s.items=Qo.mergeEvaluated.items(o,y.items,s.items));else{let v=o.var("items",(0,Ce._)`${g}.evaluated.items`);s.items=Qo.mergeEvaluated.items(o,v,s.items,Ce.Name)}}}Ft.callRef=es;Ft.default=IS});var Mp=S(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});var OS=$p(),jS=Cp(),NS=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",OS.default,jS.default];Fa.default=NS});var zp=S(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});var ts=D(),xt=ts.operators,rs={maximum:{okStr:"<=",ok:xt.LTE,fail:xt.GT},minimum:{okStr:">=",ok:xt.GTE,fail:xt.LT},exclusiveMaximum:{okStr:"<",ok:xt.LT,fail:xt.GTE},exclusiveMinimum:{okStr:">",ok:xt.GT,fail:xt.LTE}},qS={message:({keyword:t,schemaCode:e})=>(0,ts.str)`must be ${rs[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,ts._)`{comparison: ${rs[t].okStr}, limit: ${e}}`},DS={keyword:Object.keys(rs),type:"number",schemaType:"number",$data:!0,error:qS,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,ts._)`${r} ${rs[e].fail} ${n} || isNaN(${r})`)}};Ha.default=DS});var Ap=S(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});var kn=D(),LS={message:({schemaCode:t})=>(0,kn.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,kn._)`{multipleOf: ${t}}`},US={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:LS,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,s=o.opts.multipleOfPrecision,i=e.let("res"),a=s?(0,kn._)`Math.abs(Math.round(${i}) - ${i}) > 1e-${s}`:(0,kn._)`${i} !== parseInt(${i})`;t.fail$data((0,kn._)`(${n} === 0 || (${i} = ${r}/${n}, ${a}))`)}};Wa.default=US});var Op=S(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});function Ip(t){let e=t.length,r=0,n=0,o;for(;n<e;)r++,o=t.charCodeAt(n++),o>=55296&&o<=56319&&n<e&&(o=t.charCodeAt(n),(o&64512)===56320&&n++);return r}Va.default=Ip;Ip.code='require("ajv/dist/runtime/ucs2length").default'});var jp=S(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});var Ht=D(),FS=W(),HS=Op(),WS={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,Ht.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,Ht._)`{limit: ${t}}`},VS={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:WS,code(t){let{keyword:e,data:r,schemaCode:n,it:o}=t,s=e==="maxLength"?Ht.operators.GT:Ht.operators.LT,i=o.opts.unicode===!1?(0,Ht._)`${r}.length`:(0,Ht._)`${(0,FS.useFunc)(t.gen,HS.default)}(${r})`;t.fail$data((0,Ht._)`${i} ${s} ${n}`)}};Ba.default=VS});var Np=S(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var BS=qe(),GS=W(),vr=D(),KS={message:({schemaCode:t})=>(0,vr.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,vr._)`{pattern: ${t}}`},ZS={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:KS,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:s,it:i}=t,a=i.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=i.opts.code,u=c.code==="new RegExp"?(0,vr._)`new RegExp`:(0,GS.useFunc)(e,c),l=e.let("valid");e.try(()=>e.assign(l,(0,vr._)`${u}(${s}, ${a}).test(${r})`),()=>e.assign(l,!1)),t.fail$data((0,vr._)`!${l}`)}else{let c=(0,BS.usePattern)(t,o);t.fail$data((0,vr._)`!${c}.test(${r})`)}}};Ga.default=ZS});var qp=S(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Tn=D(),JS={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Tn.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Tn._)`{limit: ${t}}`},YS={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:JS,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?Tn.operators.GT:Tn.operators.LT;t.fail$data((0,Tn._)`Object.keys(${r}).length ${o} ${n}`)}};Ka.default=YS});var Dp=S(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});var xn=qe(),$n=D(),XS=W(),QS={message:({params:{missingProperty:t}})=>(0,$n.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,$n._)`{missingProperty: ${t}}`},ek={keyword:"required",type:"object",schemaType:"array",$data:!0,error:QS,code(t){let{gen:e,schema:r,schemaCode:n,data:o,$data:s,it:i}=t,{opts:a}=i;if(!s&&r.length===0)return;let c=r.length>=a.loopRequired;if(i.allErrors?u():l(),a.strictRequired){let f=t.parentSchema.properties,{definedProperties:g}=t.it;for(let h of r)if(f?.[h]===void 0&&!g.has(h)){let y=i.schemaEnv.baseId+i.errSchemaPath,v=`required property "${h}" is not defined at "${y}" (strictRequired)`;(0,XS.checkStrictMode)(i,v,i.opts.strictRequired)}}function u(){if(c||s)t.block$data($n.nil,d);else for(let f of r)(0,xn.checkReportMissingProp)(t,f)}function l(){let f=e.let("missing");if(c||s){let g=e.let("valid",!0);t.block$data(g,()=>m(f,g)),t.ok(g)}else e.if((0,xn.checkMissingProp)(t,r,f)),(0,xn.reportMissingProp)(t,f),e.else()}function d(){e.forOf("prop",n,f=>{t.setParams({missingProperty:f}),e.if((0,xn.noPropertyInData)(e,o,f,a.ownProperties),()=>t.error())})}function m(f,g){t.setParams({missingProperty:f}),e.forOf(f,n,()=>{e.assign(g,(0,xn.propertyInData)(e,o,f,a.ownProperties)),e.if((0,$n.not)(g),()=>{t.error(),e.break()})},$n.nil)}}};Za.default=ek});var Lp=S(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});var En=D(),tk={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,En.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,En._)`{limit: ${t}}`},rk={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:tk,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?En.operators.GT:En.operators.LT;t.fail$data((0,En._)`${r}.length ${o} ${n}`)}};Ja.default=rk});var ns=S(Ya=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});var Up=va();Up.code='require("ajv/dist/runtime/equal").default';Ya.default=Up});var Fp=S(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});var Xa=mn(),ge=D(),nk=W(),ok=ns(),sk={message:({params:{i:t,j:e}})=>(0,ge.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,ge._)`{i: ${t}, j: ${e}}`},ik={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:sk,code(t){let{gen:e,data:r,$data:n,schema:o,parentSchema:s,schemaCode:i,it:a}=t;if(!n&&!o)return;let c=e.let("valid"),u=s.items?(0,Xa.getSchemaTypes)(s.items):[];t.block$data(c,l,(0,ge._)`${i} === false`),t.ok(c);function l(){let g=e.let("i",(0,ge._)`${r}.length`),h=e.let("j");t.setParams({i:g,j:h}),e.assign(c,!0),e.if((0,ge._)`${g} > 1`,()=>(d()?m:f)(g,h))}function d(){return u.length>0&&!u.some(g=>g==="object"||g==="array")}function m(g,h){let y=e.name("item"),v=(0,Xa.checkDataTypes)(u,y,a.opts.strictNumbers,Xa.DataType.Wrong),$=e.const("indices",(0,ge._)`{}`);e.for((0,ge._)`;${g}--;`,()=>{e.let(y,(0,ge._)`${r}[${g}]`),e.if(v,(0,ge._)`continue`),u.length>1&&e.if((0,ge._)`typeof ${y} == "string"`,(0,ge._)`${y} += "_"`),e.if((0,ge._)`typeof ${$}[${y}] == "number"`,()=>{e.assign(h,(0,ge._)`${$}[${y}]`),t.error(),e.assign(c,!1).break()}).code((0,ge._)`${$}[${y}] = ${g}`)})}function f(g,h){let y=(0,nk.useFunc)(e,ok.default),v=e.name("outer");e.label(v).for((0,ge._)`;${g}--;`,()=>e.for((0,ge._)`${h} = ${g}; ${h}--;`,()=>e.if((0,ge._)`${y}(${r}[${g}], ${r}[${h}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};Qa.default=ik});var Hp=S(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var ec=D(),ak=W(),ck=ns(),lk={message:"must be equal to constant",params:({schemaCode:t})=>(0,ec._)`{allowedValue: ${t}}`},uk={keyword:"const",$data:!0,error:lk,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:s}=t;n||s&&typeof s=="object"?t.fail$data((0,ec._)`!${(0,ak.useFunc)(e,ck.default)}(${r}, ${o})`):t.fail((0,ec._)`${s} !== ${r}`)}};tc.default=uk});var Wp=S(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var Pn=D(),dk=W(),pk=ns(),mk={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Pn._)`{allowedValues: ${t}}`},fk={keyword:"enum",schemaType:"array",$data:!0,error:mk,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:s,it:i}=t;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let a=o.length>=i.opts.loopEnum,c,u=()=>c??(c=(0,dk.useFunc)(e,pk.default)),l;if(a||n)l=e.let("valid"),t.block$data(l,d);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let f=e.const("vSchema",s);l=(0,Pn.or)(...o.map((g,h)=>m(f,h)))}t.pass(l);function d(){e.assign(l,!1),e.forOf("v",s,f=>e.if((0,Pn._)`${u()}(${r}, ${f})`,()=>e.assign(l,!0).break()))}function m(f,g){let h=o[g];return typeof h=="object"&&h!==null?(0,Pn._)`${u()}(${r}, ${f}[${g}])`:(0,Pn._)`${r} === ${h}`}}};rc.default=fk});var Vp=S(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var hk=zp(),gk=Ap(),yk=jp(),_k=Np(),wk=qp(),vk=Dp(),bk=Lp(),Sk=Fp(),kk=Hp(),Tk=Wp(),xk=[hk.default,gk.default,yk.default,_k.default,wk.default,vk.default,bk.default,Sk.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},kk.default,Tk.default];nc.default=xk});var sc=S(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.validateAdditionalItems=void 0;var Wt=D(),oc=W(),$k={message:({params:{len:t}})=>(0,Wt.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Wt._)`{limit: ${t}}`},Ek={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:$k,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,oc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}Bp(t,n)}};function Bp(t,e){let{gen:r,schema:n,data:o,keyword:s,it:i}=t;i.items=!0;let a=r.const("len",(0,Wt._)`${o}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Wt._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,oc.alwaysValidSchema)(i,n)){let u=r.var("valid",(0,Wt._)`${a} <= ${e.length}`);r.if((0,Wt.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,l=>{t.subschema({keyword:s,dataProp:l,dataPropType:oc.Type.Num},u),i.allErrors||r.if((0,Wt.not)(u),()=>r.break())})}}Rn.validateAdditionalItems=Bp;Rn.default=Ek});var ic=S(Cn=>{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});Cn.validateTuple=void 0;var Gp=D(),os=W(),Pk=qe(),Rk={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return Kp(t,"additionalItems",e);r.items=!0,!(0,os.alwaysValidSchema)(r,e)&&t.ok((0,Pk.validateArray)(t))}};function Kp(t,e,r=t.schema){let{gen:n,parentSchema:o,data:s,keyword:i,it:a}=t;l(o),a.opts.unevaluated&&r.length&&a.items!==!0&&(a.items=os.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,Gp._)`${s}.length`);r.forEach((d,m)=>{(0,os.alwaysValidSchema)(a,d)||(n.if((0,Gp._)`${u} > ${m}`,()=>t.subschema({keyword:i,schemaProp:m,dataProp:m},c)),t.ok(c))});function l(d){let{opts:m,errSchemaPath:f}=a,g=r.length,h=g===d.minItems&&(g===d.maxItems||d[e]===!1);if(m.strictTuples&&!h){let y=`"${i}" is ${g}-tuple, but minItems or maxItems/${e} are not specified or different at path "${f}"`;(0,os.checkStrictMode)(a,y,m.strictTuples)}}}Cn.validateTuple=Kp;Cn.default=Rk});var Zp=S(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var Ck=ic(),Mk={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,Ck.validateTuple)(t,"items")};ac.default=Mk});var Yp=S(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var Jp=D(),zk=W(),Ak=qe(),Ik=sc(),Ok={message:({params:{len:t}})=>(0,Jp.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Jp._)`{limit: ${t}}`},jk={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Ok,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,zk.alwaysValidSchema)(n,e)&&(o?(0,Ik.validateAdditionalItems)(t,o):t.ok((0,Ak.validateArray)(t)))}};cc.default=jk});var Xp=S(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});var Le=D(),ss=W(),Nk={message:({params:{min:t,max:e}})=>e===void 0?(0,Le.str)`must contain at least ${t} valid item(s)`:(0,Le.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Le._)`{minContains: ${t}}`:(0,Le._)`{minContains: ${t}, maxContains: ${e}}`},qk={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Nk,code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:s}=t,i,a,{minContains:c,maxContains:u}=n;s.opts.next?(i=c===void 0?1:c,a=u):i=1;let l=e.const("len",(0,Le._)`${o}.length`);if(t.setParams({min:i,max:a}),a===void 0&&i===0){(0,ss.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&i>a){(0,ss.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,ss.alwaysValidSchema)(s,r)){let h=(0,Le._)`${l} >= ${i}`;a!==void 0&&(h=(0,Le._)`${h} && ${l} <= ${a}`),t.pass(h);return}s.items=!0;let d=e.name("valid");a===void 0&&i===1?f(d,()=>e.if(d,()=>e.break())):i===0?(e.let(d,!0),a!==void 0&&e.if((0,Le._)`${o}.length > 0`,m)):(e.let(d,!1),m()),t.result(d,()=>t.reset());function m(){let h=e.name("_valid"),y=e.let("count",0);f(h,()=>e.if(h,()=>g(y)))}function f(h,y){e.forRange("i",0,l,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:ss.Type.Num,compositeRule:!0},h),y()})}function g(h){e.code((0,Le._)`${h}++`),a===void 0?e.if((0,Le._)`${h} >= ${i}`,()=>e.assign(d,!0).break()):(e.if((0,Le._)`${h} > ${a}`,()=>e.assign(d,!1).break()),i===1?e.assign(d,!0):e.if((0,Le._)`${h} >= ${i}`,()=>e.assign(d,!0)))}}};lc.default=qk});var tm=S(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.validateSchemaDeps=Je.validatePropertyDeps=Je.error=void 0;var uc=D(),Dk=W(),Mn=qe();Je.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,uc.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,uc._)`{property: ${t},
9
9
  missingProperty: ${n},
10
10
  depsCount: ${e},
11
- deps: ${r}}`};var Ak={keyword:"dependencies",type:"object",schemaType:"object",error:Je.error,code(t){let[e,r]=Ik(t);Xp(t,e),em(t,r)}};function Ik({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let o=Array.isArray(t[n])?e:r;o[n]=t[n]}return[e,r]}function Xp(t,e=t.schema){let{gen:r,data:n,it:o}=t;if(Object.keys(e).length===0)return;let s=r.let("missing");for(let i in e){let a=e[i];if(a.length===0)continue;let c=(0,Mn.propertyInData)(r,n,i,o.opts.ownProperties);t.setParams({property:i,depsCount:a.length,deps:a.join(", ")}),o.allErrors?r.if(c,()=>{for(let u of a)(0,Mn.checkReportMissingProp)(t,u)}):(r.if((0,uc._)`${c} && (${(0,Mn.checkMissingProp)(t,a,s)})`),(0,Mn.reportMissingProp)(t,s),r.else())}}Je.validatePropertyDeps=Xp;function em(t,e=t.schema){let{gen:r,data:n,keyword:o,it:s}=t,i=r.name("valid");for(let a in e)(0,zk.alwaysValidSchema)(s,e[a])||(r.if((0,Mn.propertyInData)(r,n,a,s.opts.ownProperties),()=>{let c=t.subschema({keyword:o,schemaProp:a},i);t.mergeValidEvaluated(c,i)},()=>r.var(i,!0)),t.ok(i))}Je.validateSchemaDeps=em;Je.default=Ak});var nm=S(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var rm=D(),Ok=W(),jk={message:"property name must be valid",params:({params:t})=>(0,rm._)`{propertyName: ${t.propertyName}}`},Nk={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:jk,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,Ok.alwaysValidSchema)(o,r))return;let s=e.name("valid");e.forIn("key",n,i=>{t.setParams({propertyName:i}),t.subschema({keyword:"propertyNames",data:i,dataTypes:["string"],propertyName:i,compositeRule:!0},s),e.if((0,rm.not)(s),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(s)}};dc.default=Nk});var mc=S(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var os=qe(),Ve=D(),qk=nt(),ss=W(),Dk={message:"must NOT have additional properties",params:({params:t})=>(0,Ve._)`{additionalProperty: ${t.additionalProperty}}`},Lk={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Dk,code(t){let{gen:e,schema:r,parentSchema:n,data:o,errsCount:s,it:i}=t;if(!s)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=i;if(i.props=!0,c.removeAdditional!=="all"&&(0,ss.alwaysValidSchema)(i,r))return;let u=(0,os.allSchemaProperties)(n.properties),l=(0,os.allSchemaProperties)(n.patternProperties);d(),t.ok((0,Ve._)`${s} === ${qk.default.errors}`);function d(){e.forIn("key",o,y=>{!u.length&&!l.length?g(y):e.if(m(y),()=>g(y))})}function m(y){let v;if(u.length>8){let E=(0,ss.schemaRefOrVal)(i,n.properties,"properties");v=(0,os.isOwnProperty)(e,E,y)}else u.length?v=(0,Ve.or)(...u.map(E=>(0,Ve._)`${y} === ${E}`)):v=Ve.nil;return l.length&&(v=(0,Ve.or)(v,...l.map(E=>(0,Ve._)`${(0,os.usePattern)(t,E)}.test(${y})`))),(0,Ve.not)(v)}function f(y){e.code((0,Ve._)`delete ${o}[${y}]`)}function g(y){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){f(y);return}if(r===!1){t.setParams({additionalProperty:y}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,ss.alwaysValidSchema)(i,r)){let v=e.name("valid");c.removeAdditional==="failing"?(h(y,v,!1),e.if((0,Ve.not)(v),()=>{t.reset(),f(y)})):(h(y,v),a||e.if((0,Ve.not)(v),()=>e.break()))}}function h(y,v,E){let k={keyword:"additionalProperties",dataProp:y,dataPropType:ss.Type.Str};E===!1&&Object.assign(k,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(k,v)}}};pc.default=Lk});var im=S(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var Uk=yn(),om=qe(),fc=W(),sm=mc(),Fk={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:s}=t;s.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&sm.default.code(new Uk.KeywordCxt(s,sm.default,"additionalProperties"));let i=(0,om.allSchemaProperties)(r);for(let d of i)s.definedProperties.add(d);s.opts.unevaluated&&i.length&&s.props!==!0&&(s.props=fc.mergeEvaluated.props(e,(0,fc.toHash)(i),s.props));let a=i.filter(d=>!(0,fc.alwaysValidSchema)(s,r[d]));if(a.length===0)return;let c=e.name("valid");for(let d of a)u(d)?l(d):(e.if((0,om.propertyInData)(e,o,d,s.opts.ownProperties)),l(d),s.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(d),t.ok(c);function u(d){return s.opts.useDefaults&&!s.compositeRule&&r[d].default!==void 0}function l(d){t.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};hc.default=Fk});var um=S(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var am=qe(),is=D(),cm=W(),lm=W(),Hk={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:o,it:s}=t,{opts:i}=s,a=(0,am.allSchemaProperties)(r),c=a.filter(h=>(0,cm.alwaysValidSchema)(s,r[h]));if(a.length===0||c.length===a.length&&(!s.opts.unevaluated||s.props===!0))return;let u=i.strictSchema&&!i.allowMatchingProperties&&o.properties,l=e.name("valid");s.props!==!0&&!(s.props instanceof is.Name)&&(s.props=(0,lm.evaluatedPropsToName)(e,s.props));let{props:d}=s;m();function m(){for(let h of a)u&&f(h),s.allErrors?g(h):(e.var(l,!0),g(h),e.if(l))}function f(h){for(let y in u)new RegExp(h).test(y)&&(0,cm.checkStrictMode)(s,`property ${y} matches pattern ${h} (use allowMatchingProperties)`)}function g(h){e.forIn("key",n,y=>{e.if((0,is._)`${(0,am.usePattern)(t,h)}.test(${y})`,()=>{let v=c.includes(h);v||t.subschema({keyword:"patternProperties",schemaProp:h,dataProp:y,dataPropType:lm.Type.Str},l),s.opts.unevaluated&&d!==!0?e.assign((0,is._)`${d}[${y}]`,!0):!v&&!s.allErrors&&e.if((0,is.not)(l),()=>e.break())})})}}};gc.default=Hk});var dm=S(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var Wk=W(),Vk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,Wk.alwaysValidSchema)(n,r)){t.fail();return}let o=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),t.failResult(o,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};yc.default=Vk});var pm=S(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var Bk=qe(),Gk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Bk.validateUnion,error:{message:"must match a schema in anyOf"}};_c.default=Gk});var mm=S(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var as=D(),Kk=W(),Zk={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,as._)`{passingSchemas: ${t.passing}}`},Jk={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Zk,code(t){let{gen:e,schema:r,parentSchema:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let s=r,i=e.let("valid",!1),a=e.let("passing",null),c=e.name("_valid");t.setParams({passing:a}),e.block(u),t.result(i,()=>t.reset(),()=>t.error(!0));function u(){s.forEach((l,d)=>{let m;(0,Kk.alwaysValidSchema)(o,l)?e.var(c,!0):m=t.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&e.if((0,as._)`${c} && ${i}`).assign(i,!1).assign(a,(0,as._)`[${a}, ${d}]`).else(),e.if(c,()=>{e.assign(i,!0),e.assign(a,d),m&&t.mergeEvaluated(m,as.Name)})})}}};wc.default=Jk});var fm=S(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var Yk=W(),Qk={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let o=e.name("valid");r.forEach((s,i)=>{if((0,Yk.alwaysValidSchema)(n,s))return;let a=t.subschema({keyword:"allOf",schemaProp:i},o);t.ok(o),t.mergeEvaluated(a)})}};vc.default=Qk});var ym=S(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var cs=D(),gm=W(),Xk={message:({params:t})=>(0,cs.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,cs._)`{failingKeyword: ${t.ifClause}}`},e0={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Xk,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,gm.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=hm(n,"then"),s=hm(n,"else");if(!o&&!s)return;let i=e.let("valid",!0),a=e.name("_valid");if(c(),t.reset(),o&&s){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(a,u("then",l),u("else",l))}else o?e.if(a,u("then")):e.if((0,cs.not)(a),u("else"));t.pass(i,()=>t.error(!0));function c(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);t.mergeEvaluated(l)}function u(l,d){return()=>{let m=t.subschema({keyword:l},a);e.assign(i,a),t.mergeValidEvaluated(m,i),d?e.assign(d,(0,cs._)`${l}`):t.setParams({ifClause:l})}}}};function hm(t,e){let r=t.schema[e];return r!==void 0&&!(0,gm.alwaysValidSchema)(t,r)}bc.default=e0});var _m=S(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var t0=W(),r0={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,t0.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Sc.default=r0});var wm=S(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var n0=sc(),o0=Zp(),s0=ic(),i0=Yp(),a0=Qp(),c0=tm(),l0=nm(),u0=mc(),d0=im(),p0=um(),m0=dm(),f0=pm(),h0=mm(),g0=fm(),y0=ym(),_0=_m();function w0(t=!1){let e=[m0.default,f0.default,h0.default,g0.default,y0.default,_0.default,l0.default,u0.default,c0.default,d0.default,p0.default];return t?e.push(o0.default,i0.default):e.push(n0.default,s0.default),e.push(a0.default),e}kc.default=w0});var vm=S(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var ie=D(),v0={message:({schemaCode:t})=>(0,ie.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,ie._)`{format: ${t}}`},b0={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:v0,code(t,e){let{gen:r,data:n,$data:o,schema:s,schemaCode:i,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=a;if(!c.validateFormats)return;o?m():f();function m(){let g=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),h=r.const("fDef",(0,ie._)`${g}[${i}]`),y=r.let("fType"),v=r.let("format");r.if((0,ie._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>r.assign(y,(0,ie._)`${h}.type || "string"`).assign(v,(0,ie._)`${h}.validate`),()=>r.assign(y,(0,ie._)`"string"`).assign(v,h)),t.fail$data((0,ie.or)(E(),k()));function E(){return c.strictSchema===!1?ie.nil:(0,ie._)`${i} && !${v}`}function k(){let z=l.$async?(0,ie._)`(${h}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,ie._)`${v}(${n})`,w=(0,ie._)`(typeof ${v} == "function" ? ${z} : ${v}.test(${n}))`;return(0,ie._)`${v} && ${v} !== true && ${y} === ${e} && !${w}`}}function f(){let g=d.formats[s];if(!g){E();return}if(g===!0)return;let[h,y,v]=k(g);h===e&&t.pass(z());function E(){if(c.strictSchema===!1){d.logger.warn(w());return}throw new Error(w());function w(){return`unknown format "${s}" ignored in schema at path "${u}"`}}function k(w){let b=w instanceof RegExp?(0,ie.regexpCode)(w):c.code.formats?(0,ie._)`${c.code.formats}${(0,ie.getProperty)(s)}`:void 0,j=r.scopeValue("formats",{key:s,ref:w,code:b});return typeof w=="object"&&!(w instanceof RegExp)?[w.type||"string",w.validate,(0,ie._)`${j}.validate`]:["string",w,j]}function z(){if(typeof g=="object"&&!(g instanceof RegExp)&&g.async){if(!l.$async)throw new Error("async format in sync schema");return(0,ie._)`await ${v}(${n})`}return typeof y=="function"?(0,ie._)`${v}(${n})`:(0,ie._)`${v}.test(${n})`}}}};Tc.default=b0});var bm=S($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var S0=vm(),k0=[S0.default];$c.default=k0});var Sm=S(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.contentVocabulary=br.metadataVocabulary=void 0;br.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];br.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Tm=S(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var T0=Mp(),$0=Vp(),x0=wm(),E0=bm(),km=Sm(),P0=[T0.default,$0.default,(0,x0.default)(),E0.default,km.metadataVocabulary,km.contentVocabulary];xc.default=P0});var xm=S(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.DiscrError=void 0;var $m;(function(t){t.Tag="tag",t.Mapping="mapping"})($m||(ls.DiscrError=$m={}))});var Pm=S(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});var Sr=D(),Ec=xm(),Em=Bo(),R0=_n(),C0=W(),M0={message:({params:{discrError:t,tagName:e}})=>t===Ec.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Sr._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},z0={keyword:"discriminator",type:"object",schemaType:"object",error:M0,code(t){let{gen:e,data:r,schema:n,parentSchema:o,it:s}=t,{oneOf:i}=o;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=n.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!i)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,Sr._)`${r}${(0,Sr.getProperty)(a)}`);e.if((0,Sr._)`typeof ${u} == "string"`,()=>l(),()=>t.error(!1,{discrError:Ec.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function l(){let f=m();e.if(!1);for(let g in f)e.elseIf((0,Sr._)`${u} === ${g}`),e.assign(c,d(f[g]));e.else(),t.error(!1,{discrError:Ec.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function d(f){let g=e.name("valid"),h=t.subschema({keyword:"oneOf",schemaProp:f},g);return t.mergeEvaluated(h,Sr.Name),g}function m(){var f;let g={},h=v(o),y=!0;for(let z=0;z<i.length;z++){let w=i[z];if(w?.$ref&&!(0,C0.schemaHasRulesButRef)(w,s.self.RULES)){let j=w.$ref;if(w=Em.resolveRef.call(s.self,s.schemaEnv.root,s.baseId,j),w instanceof Em.SchemaEnv&&(w=w.schema),w===void 0)throw new R0.default(s.opts.uriResolver,s.baseId,j)}let b=(f=w?.properties)===null||f===void 0?void 0:f[a];if(typeof b!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);y=y&&(h||v(w)),E(b,z)}if(!y)throw new Error(`discriminator: "${a}" must be required`);return g;function v({required:z}){return Array.isArray(z)&&z.includes(a)}function E(z,w){if(z.const)k(z.const,w);else if(z.enum)for(let b of z.enum)k(b,w);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function k(z,w){if(typeof z!="string"||z in g)throw new Error(`discriminator: "${a}" values must be unique strings`);g[z]=w}}}};Pc.default=z0});var Rm=S((yI,A0)=>{A0.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 Cc=S((X,Rc)=>{"use strict";Object.defineProperty(X,"__esModule",{value:!0});X.MissingRefError=X.ValidationError=X.CodeGen=X.Name=X.nil=X.stringify=X.str=X._=X.KeywordCxt=X.Ajv=void 0;var I0=$p(),O0=Tm(),j0=Pm(),Cm=Rm(),N0=["/properties"],us="http://json-schema.org/draft-07/schema",kr=class extends I0.default{_addVocabularies(){super._addVocabularies(),O0.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(j0.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(Cm,N0):Cm;this.addMetaSchema(e,us,!1),this.refs["http://json-schema.org/schema"]=us}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(us)?us:void 0)}};X.Ajv=kr;Rc.exports=X=kr;Rc.exports.Ajv=kr;Object.defineProperty(X,"__esModule",{value:!0});X.default=kr;var q0=yn();Object.defineProperty(X,"KeywordCxt",{enumerable:!0,get:function(){return q0.KeywordCxt}});var Tr=D();Object.defineProperty(X,"_",{enumerable:!0,get:function(){return Tr._}});Object.defineProperty(X,"str",{enumerable:!0,get:function(){return Tr.str}});Object.defineProperty(X,"stringify",{enumerable:!0,get:function(){return Tr.stringify}});Object.defineProperty(X,"nil",{enumerable:!0,get:function(){return Tr.nil}});Object.defineProperty(X,"Name",{enumerable:!0,get:function(){return Tr.Name}});Object.defineProperty(X,"CodeGen",{enumerable:!0,get:function(){return Tr.CodeGen}});var D0=Wo();Object.defineProperty(X,"ValidationError",{enumerable:!0,get:function(){return D0.default}});var L0=_n();Object.defineProperty(X,"MissingRefError",{enumerable:!0,get:function(){return L0.default}})});var qm=S(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.formatNames=Qe.fastFormats=Qe.fullFormats=void 0;function Ye(t,e){return{validate:t,compare:e}}Qe.fullFormats={date:Ye(Im,Ic),time:Ye(zc(!0),Oc),"date-time":Ye(Mm(!0),jm),"iso-time":Ye(zc(),Om),"iso-date-time":Ye(Mm(),Nm),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:B0,"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:X0,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:G0,int32:{type:"number",validate:J0},int64:{type:"number",validate:Y0},float:{type:"number",validate:Am},double:{type:"number",validate:Am},password:!0,binary:!0};Qe.fastFormats={...Qe.fullFormats,date:Ye(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Ic),time:Ye(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Oc),"date-time":Ye(/^\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,jm),"iso-time":Ye(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Om),"iso-date-time":Ye(/^\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,Nm),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};Qe.formatNames=Object.keys(Qe.fullFormats);function U0(t){return t%4===0&&(t%100!==0||t%400===0)}var F0=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,H0=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Im(t){let e=F0.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],o=+e[3];return n>=1&&n<=12&&o>=1&&o<=(n===2&&U0(r)?29:H0[n])}function Ic(t,e){if(t&&e)return t>e?1:t<e?-1:0}var Mc=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function zc(t){return function(r){let n=Mc.exec(r);if(!n)return!1;let o=+n[1],s=+n[2],i=+n[3],a=n[4],c=n[5]==="-"?-1:1,u=+(n[6]||0),l=+(n[7]||0);if(u>23||l>59||t&&!a)return!1;if(o<=23&&s<=59&&i<60)return!0;let d=s-l*c,m=o-u*c-(d<0?1:0);return(m===23||m===-1)&&(d===59||d===-1)&&i<61}}function Oc(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function Om(t,e){if(!(t&&e))return;let r=Mc.exec(t),n=Mc.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t<e?-1:0}var Ac=/t|\s/i;function Mm(t){let e=zc(t);return function(n){let o=n.split(Ac);return o.length===2&&Im(o[0])&&e(o[1])}}function jm(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function Nm(t,e){if(!(t&&e))return;let[r,n]=t.split(Ac),[o,s]=e.split(Ac),i=Ic(r,o);if(i!==void 0)return i||Oc(n,s)}var W0=/\/|:/,V0=/^(?:[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 B0(t){return W0.test(t)&&V0.test(t)}var zm=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function G0(t){return zm.lastIndex=0,zm.test(t)}var K0=-(2**31),Z0=2**31-1;function J0(t){return Number.isInteger(t)&&t<=Z0&&t>=K0}function Y0(t){return Number.isInteger(t)}function Am(){return!0}var Q0=/[^\\]\\Z/;function X0(t){if(Q0.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var Dm=S($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.formatLimitDefinition=void 0;var eT=Cc(),Be=D(),xt=Be.operators,ds={formatMaximum:{okStr:"<=",ok:xt.LTE,fail:xt.GT},formatMinimum:{okStr:">=",ok:xt.GTE,fail:xt.LT},formatExclusiveMaximum:{okStr:"<",ok:xt.LT,fail:xt.GTE},formatExclusiveMinimum:{okStr:">",ok:xt.GT,fail:xt.LTE}},tT={message:({keyword:t,schemaCode:e})=>(0,Be.str)`should be ${ds[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Be._)`{comparison: ${ds[t].okStr}, limit: ${e}}`};$r.formatLimitDefinition={keyword:Object.keys(ds),type:"string",schemaType:"string",$data:!0,error:tT,code(t){let{gen:e,data:r,schemaCode:n,keyword:o,it:s}=t,{opts:i,self:a}=s;if(!i.validateFormats)return;let c=new eT.KeywordCxt(s,a.RULES.all.format.definition,"format");c.$data?u():l();function u(){let m=e.scopeValue("formats",{ref:a.formats,code:i.code.formats}),f=e.const("fmt",(0,Be._)`${m}[${c.schemaCode}]`);t.fail$data((0,Be.or)((0,Be._)`typeof ${f} != "object"`,(0,Be._)`${f} instanceof RegExp`,(0,Be._)`typeof ${f}.compare != "function"`,d(f)))}function l(){let m=c.schema,f=a.formats[m];if(!f||f===!0)return;if(typeof f!="object"||f instanceof RegExp||typeof f.compare!="function")throw new Error(`"${o}": format "${m}" does not define "compare" function`);let g=e.scopeValue("formats",{key:m,ref:f,code:i.code.formats?(0,Be._)`${i.code.formats}${(0,Be.getProperty)(m)}`:void 0});t.fail$data(d(g))}function d(m){return(0,Be._)`${m}.compare(${r}, ${n}) ${ds[o].fail} 0`}},dependencies:["format"]};var rT=t=>(t.addKeyword($r.formatLimitDefinition),t);$r.default=rT});var Hm=S((zn,Fm)=>{"use strict";Object.defineProperty(zn,"__esModule",{value:!0});var xr=qm(),nT=Dm(),jc=D(),Lm=new jc.Name("fullFormats"),oT=new jc.Name("fastFormats"),Nc=(t,e={keywords:!0})=>{if(Array.isArray(e))return Um(t,e,xr.fullFormats,Lm),t;let[r,n]=e.mode==="fast"?[xr.fastFormats,oT]:[xr.fullFormats,Lm],o=e.formats||xr.formatNames;return Um(t,o,r,n),e.keywords&&(0,nT.default)(t),t};Nc.get=(t,e="full")=>{let n=(e==="fast"?xr.fastFormats:xr.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function Um(t,e,r,n){var o,s;(o=(s=t.opts.code).formats)!==null&&o!==void 0||(s.formats=(0,jc._)`require("ajv-formats/dist/formats").${n}`);for(let i of e)t.addFormat(i,r[i])}Fm.exports=zn=Nc;Object.defineProperty(zn,"__esModule",{value:!0});zn.default=Nc});var Qm=S((MI,Ym)=>{"use strict";Ym.exports=Jm;Jm.sync=cT;var Km=mt("fs");function aT(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var o=r[n].toLowerCase();if(o&&t.substr(-o.length).toLowerCase()===o)return!0}return!1}function Zm(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:aT(e,r)}function Jm(t,e,r){Km.stat(t,function(n,o){r(n,n?!1:Zm(o,t,e))})}function cT(t,e){return Zm(Km.statSync(t),t,e)}});var nf=S((zI,rf)=>{"use strict";rf.exports=ef;ef.sync=lT;var Xm=mt("fs");function ef(t,e,r){Xm.stat(t,function(n,o){r(n,n?!1:tf(o,e))})}function lT(t,e){return tf(Xm.statSync(t),e)}function tf(t,e){return t.isFile()&&uT(t,e)}function uT(t,e){var r=t.mode,n=t.uid,o=t.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),i=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),l=a|c,d=r&u||r&c&&o===i||r&a&&n===s||r&l&&s===0;return d}});var sf=S((II,of)=>{"use strict";var AI=mt("fs"),gs;process.platform==="win32"||global.TESTING_WINDOWS?gs=Qm():gs=nf();of.exports=qc;qc.sync=dT;function qc(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,o){qc(t,e||{},function(s,i){s?o(s):n(i)})})}gs(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function dT(t,e){try{return gs.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var mf=S((OI,pf)=>{"use strict";var Er=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",af=mt("path"),pT=Er?";":":",cf=sf(),lf=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),uf=(t,e)=>{let r=e.colon||pT,n=t.match(/\//)||Er&&t.match(/\\/)?[""]:[...Er?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=Er?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Er?o.split(r):[""];return Er&&t.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:n,pathExt:s,pathExtExe:o}},df=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:s}=uf(t,e),i=[],a=u=>new Promise((l,d)=>{if(u===n.length)return e.all&&i.length?l(i):d(lf(t));let m=n[u],f=/^".*"$/.test(m)?m.slice(1,-1):m,g=af.join(f,t),h=!f&&/^\.[\\\/]/.test(t)?t.slice(0,2)+g:g;l(c(h,u,0))}),c=(u,l,d)=>new Promise((m,f)=>{if(d===o.length)return m(a(l+1));let g=o[d];cf(u+g,{pathExt:s},(h,y)=>{if(!h&&y)if(e.all)i.push(u+g);else return m(u+g);return m(c(u,l,d+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},mT=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=uf(t,e),s=[];for(let i=0;i<r.length;i++){let a=r[i],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=af.join(c,t),l=!c&&/^\.[\\\/]/.test(t)?t.slice(0,2)+u:u;for(let d=0;d<n.length;d++){let m=l+n[d];try{if(cf.sync(m,{pathExt:o}))if(e.all)s.push(m);else return m}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw lf(t)};pf.exports=df;df.sync=mT});var hf=S((jI,Dc)=>{"use strict";var ff=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Dc.exports=ff;Dc.exports.default=ff});var wf=S((NI,_f)=>{"use strict";var gf=mt("path"),fT=mf(),hT=hf();function yf(t,e){let r=t.options.env||process.env,n=process.cwd(),o=t.options.cwd!=null,s=o&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(t.options.cwd)}catch{}let i;try{i=fT.sync(t.command,{path:r[hT({env:r})],pathExt:e?gf.delimiter:void 0})}catch{}finally{s&&process.chdir(n)}return i&&(i=gf.resolve(o?t.options.cwd:"",i)),i}function gT(t){return yf(t)||yf(t,!0)}_f.exports=gT});var vf=S((qI,Uc)=>{"use strict";var Lc=/([()\][%!^"`<>&|;, *?])/g;function yT(t){return t=t.replace(Lc,"^$1"),t}function _T(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Lc,"^$1"),e&&(t=t.replace(Lc,"^$1")),t}Uc.exports.command=yT;Uc.exports.argument=_T});var Sf=S((DI,bf)=>{"use strict";bf.exports=/^#!(.*)/});var Tf=S((LI,kf)=>{"use strict";var wT=Sf();kf.exports=(t="")=>{let e=t.match(wT);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var xf=S((UI,$f)=>{"use strict";var Fc=mt("fs"),vT=Tf();function bT(t){let r=Buffer.alloc(150),n;try{n=Fc.openSync(t,"r"),Fc.readSync(n,r,0,150,0),Fc.closeSync(n)}catch{}return vT(r.toString())}$f.exports=bT});var Cf=S((FI,Rf)=>{"use strict";var ST=mt("path"),Ef=wf(),Pf=vf(),kT=xf(),TT=process.platform==="win32",$T=/\.(?:com|exe)$/i,xT=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function ET(t){t.file=Ef(t);let e=t.file&&kT(t.file);return e?(t.args.unshift(t.file),t.command=e,Ef(t)):t.file}function PT(t){if(!TT)return t;let e=ET(t),r=!$T.test(e);if(t.options.forceShell||r){let n=xT.test(e);t.command=ST.normalize(t.command),t.command=Pf.command(t.command),t.args=t.args.map(s=>Pf.argument(s,n));let o=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${o}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function RT(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:PT(n)}Rf.exports=RT});var Af=S((HI,zf)=>{"use strict";var Hc=process.platform==="win32";function Wc(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function CT(t,e){if(!Hc)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let s=Mf(o,e);if(s)return r.call(t,"error",s)}return r.apply(t,arguments)}}function Mf(t,e){return Hc&&t===1&&!e.file?Wc(e.original,"spawn"):null}function MT(t,e){return Hc&&t===1&&!e.file?Wc(e.original,"spawnSync"):null}zf.exports={hookChildProcess:CT,verifyENOENT:Mf,verifyENOENTSync:MT,notFoundError:Wc}});var jf=S((WI,Pr)=>{"use strict";var If=mt("child_process"),Vc=Cf(),Bc=Af();function Of(t,e,r){let n=Vc(t,e,r),o=If.spawn(n.command,n.args,n.options);return Bc.hookChildProcess(o,n),o}function zT(t,e,r){let n=Vc(t,e,r),o=If.spawnSync(n.command,n.args,n.options);return o.error=o.error||Bc.verifyENOENTSync(o.status,n),o}Pr.exports=Of;Pr.exports.spawn=Of;Pr.exports.sync=zT;Pr.exports._parse=Vc;Pr.exports._enoent=Bc});async function ni(t,e){switch(t.protocol){case"anthropic":{let{AnthropicClient:r}=await import("./anthropic-4E5EEQM6.js");return new r(t,e)}case"openai":{let{OpenAIClient:r}=await import("./openai-UNFIBQUL.js");return new r(t,e)}case"openai-compat":{let{OpenAICompatClient:r}=await import("./openai-UNFIBQUL.js");return new r(t,e)}default:throw new Error(`Unknown protocol: ${String(t.protocol)}`)}}import{execSync as Ql}from"child_process";import{platform as xg,arch as Eg}from"os";function Wl(){return{name:"Identity",priority:0,content:`You are Swifty, an AI programming assistant running in a terminal.
11
+ deps: ${r}}`};var Lk={keyword:"dependencies",type:"object",schemaType:"object",error:Je.error,code(t){let[e,r]=Uk(t);Qp(t,e),em(t,r)}};function Uk({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let o=Array.isArray(t[n])?e:r;o[n]=t[n]}return[e,r]}function Qp(t,e=t.schema){let{gen:r,data:n,it:o}=t;if(Object.keys(e).length===0)return;let s=r.let("missing");for(let i in e){let a=e[i];if(a.length===0)continue;let c=(0,Mn.propertyInData)(r,n,i,o.opts.ownProperties);t.setParams({property:i,depsCount:a.length,deps:a.join(", ")}),o.allErrors?r.if(c,()=>{for(let u of a)(0,Mn.checkReportMissingProp)(t,u)}):(r.if((0,uc._)`${c} && (${(0,Mn.checkMissingProp)(t,a,s)})`),(0,Mn.reportMissingProp)(t,s),r.else())}}Je.validatePropertyDeps=Qp;function em(t,e=t.schema){let{gen:r,data:n,keyword:o,it:s}=t,i=r.name("valid");for(let a in e)(0,Dk.alwaysValidSchema)(s,e[a])||(r.if((0,Mn.propertyInData)(r,n,a,s.opts.ownProperties),()=>{let c=t.subschema({keyword:o,schemaProp:a},i);t.mergeValidEvaluated(c,i)},()=>r.var(i,!0)),t.ok(i))}Je.validateSchemaDeps=em;Je.default=Lk});var nm=S(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var rm=D(),Fk=W(),Hk={message:"property name must be valid",params:({params:t})=>(0,rm._)`{propertyName: ${t.propertyName}}`},Wk={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Hk,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,Fk.alwaysValidSchema)(o,r))return;let s=e.name("valid");e.forIn("key",n,i=>{t.setParams({propertyName:i}),t.subschema({keyword:"propertyNames",data:i,dataTypes:["string"],propertyName:i,compositeRule:!0},s),e.if((0,rm.not)(s),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(s)}};dc.default=Wk});var mc=S(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var is=qe(),Ve=D(),Vk=nt(),as=W(),Bk={message:"must NOT have additional properties",params:({params:t})=>(0,Ve._)`{additionalProperty: ${t.additionalProperty}}`},Gk={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Bk,code(t){let{gen:e,schema:r,parentSchema:n,data:o,errsCount:s,it:i}=t;if(!s)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=i;if(i.props=!0,c.removeAdditional!=="all"&&(0,as.alwaysValidSchema)(i,r))return;let u=(0,is.allSchemaProperties)(n.properties),l=(0,is.allSchemaProperties)(n.patternProperties);d(),t.ok((0,Ve._)`${s} === ${Vk.default.errors}`);function d(){e.forIn("key",o,y=>{!u.length&&!l.length?g(y):e.if(m(y),()=>g(y))})}function m(y){let v;if(u.length>8){let $=(0,as.schemaRefOrVal)(i,n.properties,"properties");v=(0,is.isOwnProperty)(e,$,y)}else u.length?v=(0,Ve.or)(...u.map($=>(0,Ve._)`${y} === ${$}`)):v=Ve.nil;return l.length&&(v=(0,Ve.or)(v,...l.map($=>(0,Ve._)`${(0,is.usePattern)(t,$)}.test(${y})`))),(0,Ve.not)(v)}function f(y){e.code((0,Ve._)`delete ${o}[${y}]`)}function g(y){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){f(y);return}if(r===!1){t.setParams({additionalProperty:y}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,as.alwaysValidSchema)(i,r)){let v=e.name("valid");c.removeAdditional==="failing"?(h(y,v,!1),e.if((0,Ve.not)(v),()=>{t.reset(),f(y)})):(h(y,v),a||e.if((0,Ve.not)(v),()=>e.break()))}}function h(y,v,$){let k={keyword:"additionalProperties",dataProp:y,dataPropType:as.Type.Str};$===!1&&Object.assign(k,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(k,v)}}};pc.default=Gk});var im=S(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var Kk=yn(),om=qe(),fc=W(),sm=mc(),Zk={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:s}=t;s.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&sm.default.code(new Kk.KeywordCxt(s,sm.default,"additionalProperties"));let i=(0,om.allSchemaProperties)(r);for(let d of i)s.definedProperties.add(d);s.opts.unevaluated&&i.length&&s.props!==!0&&(s.props=fc.mergeEvaluated.props(e,(0,fc.toHash)(i),s.props));let a=i.filter(d=>!(0,fc.alwaysValidSchema)(s,r[d]));if(a.length===0)return;let c=e.name("valid");for(let d of a)u(d)?l(d):(e.if((0,om.propertyInData)(e,o,d,s.opts.ownProperties)),l(d),s.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(d),t.ok(c);function u(d){return s.opts.useDefaults&&!s.compositeRule&&r[d].default!==void 0}function l(d){t.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};hc.default=Zk});var um=S(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var am=qe(),cs=D(),cm=W(),lm=W(),Jk={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:o,it:s}=t,{opts:i}=s,a=(0,am.allSchemaProperties)(r),c=a.filter(h=>(0,cm.alwaysValidSchema)(s,r[h]));if(a.length===0||c.length===a.length&&(!s.opts.unevaluated||s.props===!0))return;let u=i.strictSchema&&!i.allowMatchingProperties&&o.properties,l=e.name("valid");s.props!==!0&&!(s.props instanceof cs.Name)&&(s.props=(0,lm.evaluatedPropsToName)(e,s.props));let{props:d}=s;m();function m(){for(let h of a)u&&f(h),s.allErrors?g(h):(e.var(l,!0),g(h),e.if(l))}function f(h){for(let y in u)new RegExp(h).test(y)&&(0,cm.checkStrictMode)(s,`property ${y} matches pattern ${h} (use allowMatchingProperties)`)}function g(h){e.forIn("key",n,y=>{e.if((0,cs._)`${(0,am.usePattern)(t,h)}.test(${y})`,()=>{let v=c.includes(h);v||t.subschema({keyword:"patternProperties",schemaProp:h,dataProp:y,dataPropType:lm.Type.Str},l),s.opts.unevaluated&&d!==!0?e.assign((0,cs._)`${d}[${y}]`,!0):!v&&!s.allErrors&&e.if((0,cs.not)(l),()=>e.break())})})}}};gc.default=Jk});var dm=S(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var Yk=W(),Xk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,Yk.alwaysValidSchema)(n,r)){t.fail();return}let o=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),t.failResult(o,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};yc.default=Xk});var pm=S(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var Qk=qe(),e0={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Qk.validateUnion,error:{message:"must match a schema in anyOf"}};_c.default=e0});var mm=S(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var ls=D(),t0=W(),r0={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,ls._)`{passingSchemas: ${t.passing}}`},n0={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:r0,code(t){let{gen:e,schema:r,parentSchema:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let s=r,i=e.let("valid",!1),a=e.let("passing",null),c=e.name("_valid");t.setParams({passing:a}),e.block(u),t.result(i,()=>t.reset(),()=>t.error(!0));function u(){s.forEach((l,d)=>{let m;(0,t0.alwaysValidSchema)(o,l)?e.var(c,!0):m=t.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&e.if((0,ls._)`${c} && ${i}`).assign(i,!1).assign(a,(0,ls._)`[${a}, ${d}]`).else(),e.if(c,()=>{e.assign(i,!0),e.assign(a,d),m&&t.mergeEvaluated(m,ls.Name)})})}}};wc.default=n0});var fm=S(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var o0=W(),s0={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let o=e.name("valid");r.forEach((s,i)=>{if((0,o0.alwaysValidSchema)(n,s))return;let a=t.subschema({keyword:"allOf",schemaProp:i},o);t.ok(o),t.mergeEvaluated(a)})}};vc.default=s0});var ym=S(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var us=D(),gm=W(),i0={message:({params:t})=>(0,us.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,us._)`{failingKeyword: ${t.ifClause}}`},a0={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:i0,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,gm.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=hm(n,"then"),s=hm(n,"else");if(!o&&!s)return;let i=e.let("valid",!0),a=e.name("_valid");if(c(),t.reset(),o&&s){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(a,u("then",l),u("else",l))}else o?e.if(a,u("then")):e.if((0,us.not)(a),u("else"));t.pass(i,()=>t.error(!0));function c(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);t.mergeEvaluated(l)}function u(l,d){return()=>{let m=t.subschema({keyword:l},a);e.assign(i,a),t.mergeValidEvaluated(m,i),d?e.assign(d,(0,us._)`${l}`):t.setParams({ifClause:l})}}}};function hm(t,e){let r=t.schema[e];return r!==void 0&&!(0,gm.alwaysValidSchema)(t,r)}bc.default=a0});var _m=S(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var c0=W(),l0={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,c0.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Sc.default=l0});var wm=S(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var u0=sc(),d0=Zp(),p0=ic(),m0=Yp(),f0=Xp(),h0=tm(),g0=nm(),y0=mc(),_0=im(),w0=um(),v0=dm(),b0=pm(),S0=mm(),k0=fm(),T0=ym(),x0=_m();function $0(t=!1){let e=[v0.default,b0.default,S0.default,k0.default,T0.default,x0.default,g0.default,y0.default,h0.default,_0.default,w0.default];return t?e.push(d0.default,m0.default):e.push(u0.default,p0.default),e.push(f0.default),e}kc.default=$0});var vm=S(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var ie=D(),E0={message:({schemaCode:t})=>(0,ie.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,ie._)`{format: ${t}}`},P0={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:E0,code(t,e){let{gen:r,data:n,$data:o,schema:s,schemaCode:i,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=a;if(!c.validateFormats)return;o?m():f();function m(){let g=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),h=r.const("fDef",(0,ie._)`${g}[${i}]`),y=r.let("fType"),v=r.let("format");r.if((0,ie._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>r.assign(y,(0,ie._)`${h}.type || "string"`).assign(v,(0,ie._)`${h}.validate`),()=>r.assign(y,(0,ie._)`"string"`).assign(v,h)),t.fail$data((0,ie.or)($(),k()));function $(){return c.strictSchema===!1?ie.nil:(0,ie._)`${i} && !${v}`}function k(){let z=l.$async?(0,ie._)`(${h}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,ie._)`${v}(${n})`,w=(0,ie._)`(typeof ${v} == "function" ? ${z} : ${v}.test(${n}))`;return(0,ie._)`${v} && ${v} !== true && ${y} === ${e} && !${w}`}}function f(){let g=d.formats[s];if(!g){$();return}if(g===!0)return;let[h,y,v]=k(g);h===e&&t.pass(z());function $(){if(c.strictSchema===!1){d.logger.warn(w());return}throw new Error(w());function w(){return`unknown format "${s}" ignored in schema at path "${u}"`}}function k(w){let b=w instanceof RegExp?(0,ie.regexpCode)(w):c.code.formats?(0,ie._)`${c.code.formats}${(0,ie.getProperty)(s)}`:void 0,j=r.scopeValue("formats",{key:s,ref:w,code:b});return typeof w=="object"&&!(w instanceof RegExp)?[w.type||"string",w.validate,(0,ie._)`${j}.validate`]:["string",w,j]}function z(){if(typeof g=="object"&&!(g instanceof RegExp)&&g.async){if(!l.$async)throw new Error("async format in sync schema");return(0,ie._)`await ${v}(${n})`}return typeof y=="function"?(0,ie._)`${v}(${n})`:(0,ie._)`${v}.test(${n})`}}}};Tc.default=P0});var bm=S(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var R0=vm(),C0=[R0.default];xc.default=C0});var Sm=S(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.contentVocabulary=br.metadataVocabulary=void 0;br.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];br.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Tm=S($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var M0=Mp(),z0=Vp(),A0=wm(),I0=bm(),km=Sm(),O0=[M0.default,z0.default,(0,A0.default)(),I0.default,km.metadataVocabulary,km.contentVocabulary];$c.default=O0});var $m=S(ds=>{"use strict";Object.defineProperty(ds,"__esModule",{value:!0});ds.DiscrError=void 0;var xm;(function(t){t.Tag="tag",t.Mapping="mapping"})(xm||(ds.DiscrError=xm={}))});var Pm=S(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});var Sr=D(),Ec=$m(),Em=Ko(),j0=_n(),N0=W(),q0={message:({params:{discrError:t,tagName:e}})=>t===Ec.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Sr._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},D0={keyword:"discriminator",type:"object",schemaType:"object",error:q0,code(t){let{gen:e,data:r,schema:n,parentSchema:o,it:s}=t,{oneOf:i}=o;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=n.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!i)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,Sr._)`${r}${(0,Sr.getProperty)(a)}`);e.if((0,Sr._)`typeof ${u} == "string"`,()=>l(),()=>t.error(!1,{discrError:Ec.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function l(){let f=m();e.if(!1);for(let g in f)e.elseIf((0,Sr._)`${u} === ${g}`),e.assign(c,d(f[g]));e.else(),t.error(!1,{discrError:Ec.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function d(f){let g=e.name("valid"),h=t.subschema({keyword:"oneOf",schemaProp:f},g);return t.mergeEvaluated(h,Sr.Name),g}function m(){var f;let g={},h=v(o),y=!0;for(let z=0;z<i.length;z++){let w=i[z];if(w?.$ref&&!(0,N0.schemaHasRulesButRef)(w,s.self.RULES)){let j=w.$ref;if(w=Em.resolveRef.call(s.self,s.schemaEnv.root,s.baseId,j),w instanceof Em.SchemaEnv&&(w=w.schema),w===void 0)throw new j0.default(s.opts.uriResolver,s.baseId,j)}let b=(f=w?.properties)===null||f===void 0?void 0:f[a];if(typeof b!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);y=y&&(h||v(w)),$(b,z)}if(!y)throw new Error(`discriminator: "${a}" must be required`);return g;function v({required:z}){return Array.isArray(z)&&z.includes(a)}function $(z,w){if(z.const)k(z.const,w);else if(z.enum)for(let b of z.enum)k(b,w);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function k(z,w){if(typeof z!="string"||z in g)throw new Error(`discriminator: "${a}" values must be unique strings`);g[z]=w}}}};Pc.default=D0});var Rm=S((II,L0)=>{L0.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 Cc=S((Q,Rc)=>{"use strict";Object.defineProperty(Q,"__esModule",{value:!0});Q.MissingRefError=Q.ValidationError=Q.CodeGen=Q.Name=Q.nil=Q.stringify=Q.str=Q._=Q.KeywordCxt=Q.Ajv=void 0;var U0=xp(),F0=Tm(),H0=Pm(),Cm=Rm(),W0=["/properties"],ps="http://json-schema.org/draft-07/schema",kr=class extends U0.default{_addVocabularies(){super._addVocabularies(),F0.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(H0.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(Cm,W0):Cm;this.addMetaSchema(e,ps,!1),this.refs["http://json-schema.org/schema"]=ps}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(ps)?ps:void 0)}};Q.Ajv=kr;Rc.exports=Q=kr;Rc.exports.Ajv=kr;Object.defineProperty(Q,"__esModule",{value:!0});Q.default=kr;var V0=yn();Object.defineProperty(Q,"KeywordCxt",{enumerable:!0,get:function(){return V0.KeywordCxt}});var Tr=D();Object.defineProperty(Q,"_",{enumerable:!0,get:function(){return Tr._}});Object.defineProperty(Q,"str",{enumerable:!0,get:function(){return Tr.str}});Object.defineProperty(Q,"stringify",{enumerable:!0,get:function(){return Tr.stringify}});Object.defineProperty(Q,"nil",{enumerable:!0,get:function(){return Tr.nil}});Object.defineProperty(Q,"Name",{enumerable:!0,get:function(){return Tr.Name}});Object.defineProperty(Q,"CodeGen",{enumerable:!0,get:function(){return Tr.CodeGen}});var B0=Bo();Object.defineProperty(Q,"ValidationError",{enumerable:!0,get:function(){return B0.default}});var G0=_n();Object.defineProperty(Q,"MissingRefError",{enumerable:!0,get:function(){return G0.default}})});var qm=S(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.formatNames=Xe.fastFormats=Xe.fullFormats=void 0;function Ye(t,e){return{validate:t,compare:e}}Xe.fullFormats={date:Ye(Im,Ic),time:Ye(zc(!0),Oc),"date-time":Ye(Mm(!0),jm),"iso-time":Ye(zc(),Om),"iso-date-time":Ye(Mm(),Nm),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:Q0,"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:iT,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:eT,int32:{type:"number",validate:nT},int64:{type:"number",validate:oT},float:{type:"number",validate:Am},double:{type:"number",validate:Am},password:!0,binary:!0};Xe.fastFormats={...Xe.fullFormats,date:Ye(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Ic),time:Ye(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Oc),"date-time":Ye(/^\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,jm),"iso-time":Ye(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Om),"iso-date-time":Ye(/^\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,Nm),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};Xe.formatNames=Object.keys(Xe.fullFormats);function K0(t){return t%4===0&&(t%100!==0||t%400===0)}var Z0=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,J0=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Im(t){let e=Z0.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],o=+e[3];return n>=1&&n<=12&&o>=1&&o<=(n===2&&K0(r)?29:J0[n])}function Ic(t,e){if(t&&e)return t>e?1:t<e?-1:0}var Mc=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function zc(t){return function(r){let n=Mc.exec(r);if(!n)return!1;let o=+n[1],s=+n[2],i=+n[3],a=n[4],c=n[5]==="-"?-1:1,u=+(n[6]||0),l=+(n[7]||0);if(u>23||l>59||t&&!a)return!1;if(o<=23&&s<=59&&i<60)return!0;let d=s-l*c,m=o-u*c-(d<0?1:0);return(m===23||m===-1)&&(d===59||d===-1)&&i<61}}function Oc(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function Om(t,e){if(!(t&&e))return;let r=Mc.exec(t),n=Mc.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t<e?-1:0}var Ac=/t|\s/i;function Mm(t){let e=zc(t);return function(n){let o=n.split(Ac);return o.length===2&&Im(o[0])&&e(o[1])}}function jm(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function Nm(t,e){if(!(t&&e))return;let[r,n]=t.split(Ac),[o,s]=e.split(Ac),i=Ic(r,o);if(i!==void 0)return i||Oc(n,s)}var Y0=/\/|:/,X0=/^(?:[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 Q0(t){return Y0.test(t)&&X0.test(t)}var zm=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function eT(t){return zm.lastIndex=0,zm.test(t)}var tT=-(2**31),rT=2**31-1;function nT(t){return Number.isInteger(t)&&t<=rT&&t>=tT}function oT(t){return Number.isInteger(t)}function Am(){return!0}var sT=/[^\\]\\Z/;function iT(t){if(sT.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var Dm=S(xr=>{"use strict";Object.defineProperty(xr,"__esModule",{value:!0});xr.formatLimitDefinition=void 0;var aT=Cc(),Be=D(),$t=Be.operators,ms={formatMaximum:{okStr:"<=",ok:$t.LTE,fail:$t.GT},formatMinimum:{okStr:">=",ok:$t.GTE,fail:$t.LT},formatExclusiveMaximum:{okStr:"<",ok:$t.LT,fail:$t.GTE},formatExclusiveMinimum:{okStr:">",ok:$t.GT,fail:$t.LTE}},cT={message:({keyword:t,schemaCode:e})=>(0,Be.str)`should be ${ms[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Be._)`{comparison: ${ms[t].okStr}, limit: ${e}}`};xr.formatLimitDefinition={keyword:Object.keys(ms),type:"string",schemaType:"string",$data:!0,error:cT,code(t){let{gen:e,data:r,schemaCode:n,keyword:o,it:s}=t,{opts:i,self:a}=s;if(!i.validateFormats)return;let c=new aT.KeywordCxt(s,a.RULES.all.format.definition,"format");c.$data?u():l();function u(){let m=e.scopeValue("formats",{ref:a.formats,code:i.code.formats}),f=e.const("fmt",(0,Be._)`${m}[${c.schemaCode}]`);t.fail$data((0,Be.or)((0,Be._)`typeof ${f} != "object"`,(0,Be._)`${f} instanceof RegExp`,(0,Be._)`typeof ${f}.compare != "function"`,d(f)))}function l(){let m=c.schema,f=a.formats[m];if(!f||f===!0)return;if(typeof f!="object"||f instanceof RegExp||typeof f.compare!="function")throw new Error(`"${o}": format "${m}" does not define "compare" function`);let g=e.scopeValue("formats",{key:m,ref:f,code:i.code.formats?(0,Be._)`${i.code.formats}${(0,Be.getProperty)(m)}`:void 0});t.fail$data(d(g))}function d(m){return(0,Be._)`${m}.compare(${r}, ${n}) ${ms[o].fail} 0`}},dependencies:["format"]};var lT=t=>(t.addKeyword(xr.formatLimitDefinition),t);xr.default=lT});var Hm=S((zn,Fm)=>{"use strict";Object.defineProperty(zn,"__esModule",{value:!0});var $r=qm(),uT=Dm(),jc=D(),Lm=new jc.Name("fullFormats"),dT=new jc.Name("fastFormats"),Nc=(t,e={keywords:!0})=>{if(Array.isArray(e))return Um(t,e,$r.fullFormats,Lm),t;let[r,n]=e.mode==="fast"?[$r.fastFormats,dT]:[$r.fullFormats,Lm],o=e.formats||$r.formatNames;return Um(t,o,r,n),e.keywords&&(0,uT.default)(t),t};Nc.get=(t,e="full")=>{let n=(e==="fast"?$r.fastFormats:$r.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function Um(t,e,r,n){var o,s;(o=(s=t.opts.code).formats)!==null&&o!==void 0||(s.formats=(0,jc._)`require("ajv-formats/dist/formats").${n}`);for(let i of e)t.addFormat(i,r[i])}Fm.exports=zn=Nc;Object.defineProperty(zn,"__esModule",{value:!0});zn.default=Nc});var Xm=S((KI,Ym)=>{"use strict";Ym.exports=Jm;Jm.sync=hT;var Km=mt("fs");function fT(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var o=r[n].toLowerCase();if(o&&t.substr(-o.length).toLowerCase()===o)return!0}return!1}function Zm(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:fT(e,r)}function Jm(t,e,r){Km.stat(t,function(n,o){r(n,n?!1:Zm(o,t,e))})}function hT(t,e){return Zm(Km.statSync(t),t,e)}});var nf=S((ZI,rf)=>{"use strict";rf.exports=ef;ef.sync=gT;var Qm=mt("fs");function ef(t,e,r){Qm.stat(t,function(n,o){r(n,n?!1:tf(o,e))})}function gT(t,e){return tf(Qm.statSync(t),e)}function tf(t,e){return t.isFile()&&yT(t,e)}function yT(t,e){var r=t.mode,n=t.uid,o=t.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),i=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),l=a|c,d=r&u||r&c&&o===i||r&a&&n===s||r&l&&s===0;return d}});var sf=S((YI,of)=>{"use strict";var JI=mt("fs"),_s;process.platform==="win32"||global.TESTING_WINDOWS?_s=Xm():_s=nf();of.exports=qc;qc.sync=_T;function qc(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,o){qc(t,e||{},function(s,i){s?o(s):n(i)})})}_s(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function _T(t,e){try{return _s.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var mf=S((XI,pf)=>{"use strict";var Er=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",af=mt("path"),wT=Er?";":":",cf=sf(),lf=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),uf=(t,e)=>{let r=e.colon||wT,n=t.match(/\//)||Er&&t.match(/\\/)?[""]:[...Er?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=Er?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Er?o.split(r):[""];return Er&&t.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:n,pathExt:s,pathExtExe:o}},df=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:s}=uf(t,e),i=[],a=u=>new Promise((l,d)=>{if(u===n.length)return e.all&&i.length?l(i):d(lf(t));let m=n[u],f=/^".*"$/.test(m)?m.slice(1,-1):m,g=af.join(f,t),h=!f&&/^\.[\\\/]/.test(t)?t.slice(0,2)+g:g;l(c(h,u,0))}),c=(u,l,d)=>new Promise((m,f)=>{if(d===o.length)return m(a(l+1));let g=o[d];cf(u+g,{pathExt:s},(h,y)=>{if(!h&&y)if(e.all)i.push(u+g);else return m(u+g);return m(c(u,l,d+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},vT=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=uf(t,e),s=[];for(let i=0;i<r.length;i++){let a=r[i],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=af.join(c,t),l=!c&&/^\.[\\\/]/.test(t)?t.slice(0,2)+u:u;for(let d=0;d<n.length;d++){let m=l+n[d];try{if(cf.sync(m,{pathExt:o}))if(e.all)s.push(m);else return m}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw lf(t)};pf.exports=df;df.sync=vT});var hf=S((QI,Dc)=>{"use strict";var ff=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Dc.exports=ff;Dc.exports.default=ff});var wf=S((eO,_f)=>{"use strict";var gf=mt("path"),bT=mf(),ST=hf();function yf(t,e){let r=t.options.env||process.env,n=process.cwd(),o=t.options.cwd!=null,s=o&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(t.options.cwd)}catch{}let i;try{i=bT.sync(t.command,{path:r[ST({env:r})],pathExt:e?gf.delimiter:void 0})}catch{}finally{s&&process.chdir(n)}return i&&(i=gf.resolve(o?t.options.cwd:"",i)),i}function kT(t){return yf(t)||yf(t,!0)}_f.exports=kT});var vf=S((tO,Uc)=>{"use strict";var Lc=/([()\][%!^"`<>&|;, *?])/g;function TT(t){return t=t.replace(Lc,"^$1"),t}function xT(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Lc,"^$1"),e&&(t=t.replace(Lc,"^$1")),t}Uc.exports.command=TT;Uc.exports.argument=xT});var Sf=S((rO,bf)=>{"use strict";bf.exports=/^#!(.*)/});var Tf=S((nO,kf)=>{"use strict";var $T=Sf();kf.exports=(t="")=>{let e=t.match($T);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var $f=S((oO,xf)=>{"use strict";var Fc=mt("fs"),ET=Tf();function PT(t){let r=Buffer.alloc(150),n;try{n=Fc.openSync(t,"r"),Fc.readSync(n,r,0,150,0),Fc.closeSync(n)}catch{}return ET(r.toString())}xf.exports=PT});var Cf=S((sO,Rf)=>{"use strict";var RT=mt("path"),Ef=wf(),Pf=vf(),CT=$f(),MT=process.platform==="win32",zT=/\.(?:com|exe)$/i,AT=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function IT(t){t.file=Ef(t);let e=t.file&&CT(t.file);return e?(t.args.unshift(t.file),t.command=e,Ef(t)):t.file}function OT(t){if(!MT)return t;let e=IT(t),r=!zT.test(e);if(t.options.forceShell||r){let n=AT.test(e);t.command=RT.normalize(t.command),t.command=Pf.command(t.command),t.args=t.args.map(s=>Pf.argument(s,n));let o=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${o}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function jT(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:OT(n)}Rf.exports=jT});var Af=S((iO,zf)=>{"use strict";var Hc=process.platform==="win32";function Wc(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function NT(t,e){if(!Hc)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let s=Mf(o,e);if(s)return r.call(t,"error",s)}return r.apply(t,arguments)}}function Mf(t,e){return Hc&&t===1&&!e.file?Wc(e.original,"spawn"):null}function qT(t,e){return Hc&&t===1&&!e.file?Wc(e.original,"spawnSync"):null}zf.exports={hookChildProcess:NT,verifyENOENT:Mf,verifyENOENTSync:qT,notFoundError:Wc}});var jf=S((aO,Pr)=>{"use strict";var If=mt("child_process"),Vc=Cf(),Bc=Af();function Of(t,e,r){let n=Vc(t,e,r),o=If.spawn(n.command,n.args,n.options);return Bc.hookChildProcess(o,n),o}function DT(t,e,r){let n=Vc(t,e,r),o=If.spawnSync(n.command,n.args,n.options);return o.error=o.error||Bc.verifyENOENTSync(o.status,n),o}Pr.exports=Of;Pr.exports.spawn=Of;Pr.exports.sync=DT;Pr.exports._parse=Vc;Pr.exports._enoent=Bc});var Ff=S(Kc=>{"use strict";var Df=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,VT=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Lf=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,BT=/\\([\u000b\u0020-\u00ff])/g,GT=/([\\"])/g,Uf=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Kc.format=KT;Kc.parse=ZT;function KT(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!Uf.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var o,s=Object.keys(e).sort(),i=0;i<s.length;i++){if(o=s[i],!Lf.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+YT(e[o])}return n}function ZT(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?JT(t):t;if(typeof e!="string")throw new TypeError("argument string is required to be a string");var r=e.indexOf(";"),n=r!==-1?e.slice(0,r).trim():e.trim();if(!Uf.test(n))throw new TypeError("invalid media type");var o=new XT(n.toLowerCase());if(r!==-1){var s,i,a;for(Df.lastIndex=r;i=Df.exec(e);){if(i.index!==r)throw new TypeError("invalid parameter format");r+=i[0].length,s=i[1].toLowerCase(),a=i[2],a.charCodeAt(0)===34&&(a=a.slice(1,-1),a.indexOf("\\")!==-1&&(a=a.replace(BT,"$1"))),o.parameters[s]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function JT(t){var e;if(typeof t.getHeader=="function"?e=t.getHeader("content-type"):typeof t.headers=="object"&&(e=t.headers&&t.headers["content-type"]),typeof e!="string")throw new TypeError("content-type header is missing from object");return e}function YT(t){var e=String(t);if(Lf.test(e))return e;if(e.length>0&&!VT.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(GT,"\\$1")+'"'}function XT(t){this.parameters=Object.create(null),this.type=t}});async function ni(t,e){switch(t.protocol){case"anthropic":{let{AnthropicClient:r}=await import("./anthropic-25O6Y2EC.js");return new r(t,e)}case"openai":{let{OpenAIClient:r}=await import("./openai-2MX6GD45.js");return new r(t,e)}case"openai-compat":{let{OpenAICompatClient:r}=await import("./openai-2MX6GD45.js");return new r(t,e)}default:throw new Error(`Unknown protocol: ${String(t.protocol)}`)}}import{execSync as Xl}from"child_process";import{platform as zg,arch as Ag}from"os";function Wl(){return{name:"Identity",priority:0,content:`You are Swifty, an AI programming assistant running in a terminal.
12
12
  You assist users with software engineering tasks, including writing code, debugging, refactoring, explaining code, and executing commands.
13
13
 
14
14
  IMPORTANT: Avoid introducing security vulnerabilities such as command injection, XSS, SQL injection, and other common exploits. Prioritize writing secure, correct code.
@@ -73,9 +73,9 @@ End-of-turn summary: one to two sentences. What changed, what is next. No more.
73
73
  Match the response style to the task: for simple questions, give a direct answer without headings or sections.
74
74
 
75
75
  In code: do not write comments by default. Never write multi-paragraph docstring or multi-line comment blocks \u2014 at most one short comment line. Do not create planning, decision, or analysis documents unless the user requests them \u2014 work from the conversation context and do not produce intermediate files.`}}function Yl(t){let e=["# Environment",` - Working directory: ${t.workDir}`,` - Platform: ${t.os}/${t.arch}`,` - Shell: ${t.shell}`,` - Git repository: ${t.isGitRepo?"true":"false"}`];return t.isGitRepo&&t.gitBranch&&e.push(` - Git branch: ${t.gitBranch}`),t.model&&e.push(` - Model: ${t.model}`),e.push(` - Date: ${t.date}`),{name:"Environment",priority:70,content:e.join(`
76
- `)}}var Pg=C({module:"prompt"}),oi=class{sections=[];add(e){return this.sections.push(e),this}build(){return[...this.sections].sort((r,n)=>r.priority-n.priority).map(r=>r.content.trim()).filter(Boolean).join(`
76
+ `)}}var Ig=C({module:"prompt"}),oi=class{sections=[];add(e){return this.sections.push(e),this}build(){return[...this.sections].sort((r,n)=>r.priority-n.priority).map(r=>r.content.trim()).filter(Boolean).join(`
77
77
 
78
- `)}};function Xl(t){let e={workDir:t,os:xg(),arch:Eg(),shell:process.env.SHELL??"bash",isGitRepo:!1,gitBranch:"",model:"",date:new Date().toISOString().split("T")[0]};try{Ql("git rev-parse --is-inside-work-tree",{cwd:t,stdio:["pipe","pipe","pipe"],encoding:"utf-8"}).trim()==="true"&&(e.isGitRepo=!0,e.gitBranch=Ql("git rev-parse --abbrev-ref HEAD",{cwd:t,stdio:["pipe","pipe","pipe"],encoding:"utf-8"}).trim())}catch(r){Pg.error({err:r},"prompt operation failed")}return e}function eu(t){let e=new oi;return e.add(Wl()),e.add(Vl()),e.add(Bl()),e.add(Gl()),e.add(Kl()),e.add(Zl()),e.add(Jl()),e.add(Yl(t)),e.build()}import{existsSync as Og,readFileSync as jg,statSync as Ng}from"fs";import{readFileSync as Mg,statSync as zg}from"fs";import{basename as Ag}from"path";import si from"sharp";var tu=[80,60,40,20],RE=10,Ct=class extends Error{constructor(e){super(e),this.name="ImageTooLargeError"}};var Rg=C({module:"images"});function ai(t,e){return{data:t.toString("base64"),mediaType:e,byteLength:t.length}}function Vr(t){return`${(t/(1024*1024)).toFixed(1)}MB`}async function nu(t,e){if(t.length===0)throw new Ct("Image file is empty (0 bytes)");if(t.length<=3932160)return ai(t,e);try{return await Cg(t,e)}catch(r){throw r instanceof Ct?r:(Rg.warn({err:r},"sharp compression failed"),new Ct(`Image is ${Vr(t.length)} raw (${Vr(t.length*4/3)} base64-encoded, API limit ${Vr(5242880)}) and compression failed. Please provide a smaller image.`))}}async function Cg(t,e){let r=await si(t).metadata(),n=r.width??2e3,o=r.height??2e3;n>2e3&&(o=Math.max(1,Math.round(o*2e3/n)),n=2e3),o>2e3&&(n=Math.max(1,Math.round(n*2e3/o)),o=2e3);let s=e==="image/png"||e==="image/gif";for(let i=0;i<3;i++){if(s){let a=await si(t).resize(n,o,{fit:"inside",withoutEnlargement:!0}).png({compressionLevel:9,palette:!0}).toBuffer();if(a.length<=3932160)return ai(a,"image/png")}for(let a of tu){let c=await si(t).resize(n,o,{fit:"inside",withoutEnlargement:!0}).jpeg({quality:a}).toBuffer();if(c.length<=3932160)return ai(c,"image/jpeg")}n=Math.max(1,Math.round(n/2)),o=Math.max(1,Math.round(o/2))}throw new Ct(`Unable to compress image (${Vr(t.length)} raw) under the ${Vr(5242880)} API limit. Please provide a smaller image.`)}async function ou(t){if(!zg(t).isFile())throw new Error(`Not a file: ${t}`);let r=Mg(t),n=Dl(r);if(!n)throw new Error(`File ${t} has an image extension but its contents are not a supported image format (png/jpeg/gif/webp)`);let o=await nu(r,n);return{mediaType:o.mediaType,data:o.data,sourcePath:t,byteLength:o.byteLength}}function Ig(t){return t>=1024*1024?`${(t/(1024*1024)).toFixed(1)}MB`:t>=1024?`${String(Math.round(t/1024))}KB`:`${String(t)}B`}function su(t){return`[image: ${t.sourcePath?Ag(t.sourcePath):"image"} \xB7 ${t.mediaType} \xB7 ${Ig(t.byteLength)}]`}var iu=`
78
+ `)}};function Ql(t){let e={workDir:t,os:zg(),arch:Ag(),shell:process.env.SHELL??"bash",isGitRepo:!1,gitBranch:"",model:"",date:new Date().toISOString().split("T")[0]};try{Xl("git rev-parse --is-inside-work-tree",{cwd:t,stdio:["pipe","pipe","pipe"],encoding:"utf-8"}).trim()==="true"&&(e.isGitRepo=!0,e.gitBranch=Xl("git rev-parse --abbrev-ref HEAD",{cwd:t,stdio:["pipe","pipe","pipe"],encoding:"utf-8"}).trim())}catch(r){Ig.error({err:r},"prompt operation failed")}return e}function eu(t){let e=new oi;return e.add(Wl()),e.add(Vl()),e.add(Bl()),e.add(Gl()),e.add(Kl()),e.add(Zl()),e.add(Jl()),e.add(Yl(t)),e.build()}import{existsSync as Ug,readFileSync as Fg,statSync as Hg}from"fs";import{readFileSync as Ng,statSync as qg}from"fs";import{basename as Dg}from"path";import si from"sharp";var tu=[80,60,40,20],VE=10,Ct=class extends Error{constructor(e){super(e),this.name="ImageTooLargeError"}};var Og=C({module:"images"});function ai(t,e){return{data:t.toString("base64"),mediaType:e,byteLength:t.length}}function Vr(t){return`${(t/(1024*1024)).toFixed(1)}MB`}async function nu(t,e){if(t.length===0)throw new Ct("Image file is empty (0 bytes)");if(t.length<=3932160)return ai(t,e);try{return await jg(t,e)}catch(r){throw r instanceof Ct?r:(Og.warn({err:r},"sharp compression failed"),new Ct(`Image is ${Vr(t.length)} raw (${Vr(t.length*4/3)} base64-encoded, API limit ${Vr(5242880)}) and compression failed. Please provide a smaller image.`))}}async function jg(t,e){let r=await si(t).metadata(),n=r.width??2e3,o=r.height??2e3;n>2e3&&(o=Math.max(1,Math.round(o*2e3/n)),n=2e3),o>2e3&&(n=Math.max(1,Math.round(n*2e3/o)),o=2e3);let s=e==="image/png"||e==="image/gif";for(let i=0;i<3;i++){if(s){let a=await si(t).resize(n,o,{fit:"inside",withoutEnlargement:!0}).png({compressionLevel:9,palette:!0}).toBuffer();if(a.length<=3932160)return ai(a,"image/png")}for(let a of tu){let c=await si(t).resize(n,o,{fit:"inside",withoutEnlargement:!0}).jpeg({quality:a}).toBuffer();if(c.length<=3932160)return ai(c,"image/jpeg")}n=Math.max(1,Math.round(n/2)),o=Math.max(1,Math.round(o/2))}throw new Ct(`Unable to compress image (${Vr(t.length)} raw) under the ${Vr(5242880)} API limit. Please provide a smaller image.`)}async function ou(t){if(!qg(t).isFile())throw new Error(`Not a file: ${t}`);let r=Ng(t),n=Dl(r);if(!n)throw new Error(`File ${t} has an image extension but its contents are not a supported image format (png/jpeg/gif/webp)`);let o=await nu(r,n);return{mediaType:o.mediaType,data:o.data,sourcePath:t,byteLength:o.byteLength}}function Lg(t){return t>=1024*1024?`${(t/(1024*1024)).toFixed(1)}MB`:t>=1024?`${String(Math.round(t/1024))}KB`:`${String(t)}B`}function su(t){return`[image: ${t.sourcePath?Dg(t.sourcePath):"image"} \xB7 ${t.mediaType} \xB7 ${Lg(t.byteLength)}]`}var iu=`
79
79
  Execute a shell command and return stdout and stderr.
80
80
 
81
81
  IMPORTANT: Avoid using this tool to run cat, head, tail, sed, awk or echo commands. Instead use the dedicated ReadFile, EditFile, or WriteFile tools which provide a better experience.
@@ -148,36 +148,36 @@ Usage Notes
148
148
  - Search from ". or a specific path, never from "/".
149
149
  - Automatically skips .git, node_modules, __pycache__, and similar directories.
150
150
  - Use this instead of grep or rg commands via Bash.
151
- `;var uo=new Set([".claude",".git",".swifty",".next",".venv",".mypy_cache",".tox","__pycache__","build","dist","node_modules","vendor","venv"]);var pu=C({module:"tools"}),po=class{name="ReadFile";description=au;category="read";schema(){let e={type:"object",properties:{file_path:{type:"string",description:"Absolute path to the file"},offset:{type:"integer",description:"Line number to start from (0-based)",default:0},limit:{type:"integer",description:"Max lines to read",default:2e3}},required:["file_path"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=x(r,"file_path");if(!n)return{output:"Error: file_path is required",isError:!0};if(!Og(n))return{output:`Error: file not found: ${n}`,isError:!0};let o=Ng(n);if(o.isDirectory())return{output:`Error: ${n} is a directory, not a file. Use Glob to list directory contents.`,isError:!0};if(ql(n))try{let a=await ou(n);return e.fileStateCache?.record(n,o.mtimeMs),{output:su(a),isError:!1,images:[a]}}catch(a){return pu.error({err:a},"tool operation failed"),{output:`Error reading image: ${N(a)}`,isError:!0}}let s=Rt(r,"offset",0),i=Rt(r,"limit",2e3);try{let u=jg(n,"utf-8").split(`
151
+ `;var mo=new Set([".claude",".git",".swifty",".next",".venv",".mypy_cache",".tox","__pycache__","build","dist","node_modules","vendor","venv"]);var pu=C({module:"tools"}),fo=class{name="ReadFile";description=au;category="read";schema(){let e={type:"object",properties:{file_path:{type:"string",description:"Absolute path to the file"},offset:{type:"integer",description:"Line number to start from (0-based)",default:0},limit:{type:"integer",description:"Max lines to read",default:2e3}},required:["file_path"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=E(r,"file_path");if(!n)return{output:"Error: file_path is required",isError:!0};if(!Ug(n))return{output:`Error: file not found: ${n}`,isError:!0};let o=Hg(n);if(o.isDirectory())return{output:`Error: ${n} is a directory, not a file. Use Glob to list directory contents.`,isError:!0};if(ql(n))try{let a=await ou(n);return e.fileStateCache?.record(n,o.mtimeMs),{output:su(a),isError:!1,images:[a]}}catch(a){return pu.error({err:a},"tool operation failed"),{output:`Error reading image: ${N(a)}`,isError:!0}}let s=Rt(r,"offset",0),i=Rt(r,"limit",2e3);try{let u=Fg(n,"utf-8").split(`
152
152
  `).slice(s,s+i);return e.fileStateCache?.record(n,o.mtimeMs),{output:u.map((d,m)=>`${String(s+m+1)} ${d}`).join(`
153
- `),isError:!1}}catch(a){return pu.error({err:a},"tool operation failed"),{output:`Error reading file: ${N(a)}`,isError:!0}}}};import{spawnSync as qg}from"child_process";var mu=600;function Dg(t){let r=(t.split("|").pop()?.trim()??t).split(/\s+/);for(let n of r)if(!(n.includes("=")&&!n.startsWith("-")))return n.split("/").pop()??n;return""}var Lg=new Map([["grep",new Map([[1,"no matches found"]])],["egrep",new Map([[1,"no matches found"]])],["fgrep",new Map([[1,"no matches found"]])],["rg",new Map([[1,"no matches found"]])],["diff",new Map([[1,"files differ"]])],["test",new Map([[1,"condition is false"]])],["[",new Map([[1,"condition is false"]])],["find",new Map([[1,"partial success"]])]]);function Ug(t,e){let r=Dg(t);return Lg.get(r)?.get(e)??""}var fu=class{name="Bash";description=iu;category="command";sandbox=null;sandboxConfig={allowWrite:[],denyWrite:[],networkEnabled:!0};schema(){let e={type:"object",properties:{command:{type:"string",description:"Shell command to execute"},timeout:{type:"integer",description:"Timeout in seconds (max 600)",default:120}},required:["command"]};return{name:this.name,description:this.description,input_schema:e}}execute(e,r){let n=x(r,"command");if(!n)return Promise.resolve({output:"Error: command is required",isError:!0});let o=Rt(r,"timeout",120);o>mu&&(o=mu);let s=n;this.sandbox?.available()&&(s=this.sandbox.wrap(n,this.sandboxConfig));let i=qg("bash",["-c",s],{cwd:e.workDir,timeout:o*1e3,encoding:"utf-8",stdio:["pipe","pipe","pipe"],maxBuffer:10*1024*1024});if(i.error&&i.signal==="SIGTERM")return Promise.resolve({output:`Error: command timed out after ${String(o)}s`,isError:!0});if(i.error&&!i.stdout&&!i.stderr)return Promise.resolve({output:`Error executing command: ${i.error.message}`,isError:!0});let a=i.status??0,c=`$ ${n}
154
- `;if(i.stdout&&(c+=i.stdout),i.stderr&&(c+=i.stderr),a!==0){let u=Ug(n,a);c+=u?`
153
+ `),isError:!1}}catch(a){return pu.error({err:a},"tool operation failed"),{output:`Error reading file: ${N(a)}`,isError:!0}}}};import{spawnSync as Wg}from"child_process";var mu=600;function Vg(t){let r=(t.split("|").pop()?.trim()??t).split(/\s+/);for(let n of r)if(!(n.includes("=")&&!n.startsWith("-")))return n.split("/").pop()??n;return""}var Bg=new Map([["grep",new Map([[1,"no matches found"]])],["egrep",new Map([[1,"no matches found"]])],["fgrep",new Map([[1,"no matches found"]])],["rg",new Map([[1,"no matches found"]])],["diff",new Map([[1,"files differ"]])],["test",new Map([[1,"condition is false"]])],["[",new Map([[1,"condition is false"]])],["find",new Map([[1,"partial success"]])]]);function Gg(t,e){let r=Vg(t);return Bg.get(r)?.get(e)??""}var fu=class{name="Bash";description=iu;category="command";sandbox=null;sandboxConfig={allowWrite:[],denyWrite:[],networkEnabled:!0};schema(){let e={type:"object",properties:{command:{type:"string",description:"Shell command to execute"},timeout:{type:"integer",description:"Timeout in seconds (max 600)",default:120}},required:["command"]};return{name:this.name,description:this.description,input_schema:e}}execute(e,r){let n=E(r,"command");if(!n)return Promise.resolve({output:"Error: command is required",isError:!0});let o=Rt(r,"timeout",120);o>mu&&(o=mu);let s=n;this.sandbox?.available()&&(s=this.sandbox.wrap(n,this.sandboxConfig));let i=Wg("bash",["-c",s],{cwd:e.workDir,timeout:o*1e3,encoding:"utf-8",stdio:["pipe","pipe","pipe"],maxBuffer:10*1024*1024});if(i.error&&i.signal==="SIGTERM")return Promise.resolve({output:`Error: command timed out after ${String(o)}s`,isError:!0});if(i.error&&!i.stdout&&!i.stderr)return Promise.resolve({output:`Error executing command: ${i.error.message}`,isError:!0});let a=i.status??0,c=`$ ${n}
154
+ `;if(i.stdout&&(c+=i.stdout),i.stderr&&(c+=i.stderr),a!==0){let u=Gg(n,a);c+=u?`
155
155
  Exit code ${String(a)} (${u})`:`
156
- Exit code ${String(a)}`}return Promise.resolve({output:c,isError:!1})}};import{statSync as _u}from"fs";import{readdir as Fg}from"fs/promises";import{join as hu,relative as Hg}from"path";var mo=null,ci=null;async function gu(){return mo||(ci||(ci=import("./release-OQD3IZ5W.js").then(t=>(mo=t.match,mo))),ci)}var rr=class{pattern;dot;isFilenameOnly;constructor(e,r){this.pattern=e,this.dot=r?.dot??!1,this.isFilenameOnly=!e.includes("/")}async match(e){return(await gu())(this.pattern,e)}async*scan(e){let r=e?.cwd??".",n=e?.exclude,o=await gu();yield*this.walkDir(r,r,o,n)}async*walkDir(e,r,n,o){let s;try{s=await Fg(e,{withFileTypes:!0})}catch{return}s.sort((i,a)=>i.name.localeCompare(a.name));for(let i of s){let a=i.name;if(i.isDirectory()){if(a.startsWith(".")||o&&o(a))continue;yield*this.walkDir(hu(e,a),r,n,o)}else if(i.isFile()){if(!this.dot&&a.startsWith("."))continue;let c=Hg(r,hu(e,a)),u=this.isFilenameOnly?a:c;n(this.pattern,u)&&(yield c)}}}};import{join as wu}from"path";var yu=C({module:"tools"}),fo=class{name="Glob";description=uu;category="read";schema(){let e={type:"object",properties:{pattern:{type:"string",description:"Glob pattern (e.g., '**/*.ts', '**/*.go')"},path:{type:"string",description:"Base directory to search from",default:"."}},required:["pattern"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=x(r,"pattern");if(!n)return{output:"Error: pattern is required",isError:!0};let o=x(r,"path",e.workDir);try{let s=[],i=new rr(n);for await(let a of i.scan({cwd:o,exclude:c=>c.startsWith(".")||uo.has(c)}))if(s.push(a),s.length>=1e3)break;return s.sort((a,c)=>{try{let u=_u(wu(o,a)).mtimeMs;return _u(wu(o,c)).mtimeMs-u}catch(u){return yu.error({err:u},"tool operation failed"),a.localeCompare(c)}}),s.length===0?{output:"No files matched the pattern.",isError:!1}:{output:s.join(`
157
- `),isError:!1}}catch(s){return yu.error({err:s},"tool operation failed"),{output:`Error: ${N(s)}`,isError:!0}}}};import{readdir as Wg,readFile as Vg,stat as vu}from"fs/promises";import{join as Bg,relative as Gg}from"path";var ho=C({module:"tools"}),Br=500,go=class{name="Grep";description=du;category="read";schema(){let e={type:"object",properties:{pattern:{type:"string",description:"Regex pattern to search"},path:{type:"string",description:"Directory or file to search",default:"."},include:{type:"string",description:"File pattern filter (e.g., '*.ts')"}},required:["pattern"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=x(r,"pattern");if(!n)return{output:"Error: pattern is required",isError:!0};let o=x(r,"path",e.workDir),s=x(r,"include"),i;try{i=new RegExp(n)}catch(m){return ho.error({err:m},"tool operation failed"),{output:`Error: invalid regex pattern: ${n}`,isError:!0}}let a=s?new rr(s):null,c=[],u=async m=>{if(c.length>=Br)return;let f;try{f=await Wg(m)}catch(g){ho.error({err:g},"tool operation failed");return}for(let g of f){if(c.length>=Br)return;if(uo.has(g))continue;let h=Bg(m,g),y;try{y=await vu(h)}catch(v){ho.error({err:v},"tool operation failed");continue}if(y.isDirectory())await u(h);else if(y.isFile()){if(a&&!await a.match(g))continue;await l(h)}}},l=async m=>{try{let g=(await Vg(m,"utf-8")).split(`
158
- `),h=Gg(e.workDir,m);for(let y=0;y<g.length&&c.length<Br;y++)i.test(g[y])&&c.push(`${h}:${String(y+1)}:${g[y]}`)}catch(f){ho.error({err:f},"tool operation failed")}};try{(await vu(o)).isFile()?await l(o):await u(o)}catch(m){return{output:`Error: ${N(m)}`,isError:!0}}if(c.length===0)return{output:"No matches found.",isError:!1};let d=c.join(`
156
+ Exit code ${String(a)}`}return Promise.resolve({output:c,isError:!1})}};import{statSync as _u}from"fs";import{readdir as Kg}from"fs/promises";import{join as hu,relative as Zg}from"path";var ho=null,ci=null;async function gu(){return ho||(ci||(ci=import("./release-OQD3IZ5W.js").then(t=>(ho=t.match,ho))),ci)}var rr=class{pattern;dot;isFilenameOnly;constructor(e,r){this.pattern=e,this.dot=r?.dot??!1,this.isFilenameOnly=!e.includes("/")}async match(e){return(await gu())(this.pattern,e)}async*scan(e){let r=e?.cwd??".",n=e?.exclude,o=await gu();yield*this.walkDir(r,r,o,n)}async*walkDir(e,r,n,o){let s;try{s=await Kg(e,{withFileTypes:!0})}catch{return}s.sort((i,a)=>i.name.localeCompare(a.name));for(let i of s){let a=i.name;if(i.isDirectory()){if(a.startsWith(".")||o&&o(a))continue;yield*this.walkDir(hu(e,a),r,n,o)}else if(i.isFile()){if(!this.dot&&a.startsWith("."))continue;let c=Zg(r,hu(e,a)),u=this.isFilenameOnly?a:c;n(this.pattern,u)&&(yield c)}}}};import{join as wu}from"path";var yu=C({module:"tools"}),go=class{name="Glob";description=uu;category="read";schema(){let e={type:"object",properties:{pattern:{type:"string",description:"Glob pattern (e.g., '**/*.ts', '**/*.go')"},path:{type:"string",description:"Base directory to search from",default:"."}},required:["pattern"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=E(r,"pattern");if(!n)return{output:"Error: pattern is required",isError:!0};let o=E(r,"path",e.workDir);try{let s=[],i=new rr(n);for await(let a of i.scan({cwd:o,exclude:c=>c.startsWith(".")||mo.has(c)}))if(s.push(a),s.length>=1e3)break;return s.sort((a,c)=>{try{let u=_u(wu(o,a)).mtimeMs;return _u(wu(o,c)).mtimeMs-u}catch(u){return yu.error({err:u},"tool operation failed"),a.localeCompare(c)}}),s.length===0?{output:"No files matched the pattern.",isError:!1}:{output:s.join(`
157
+ `),isError:!1}}catch(s){return yu.error({err:s},"tool operation failed"),{output:`Error: ${N(s)}`,isError:!0}}}};import{readdir as Jg,readFile as Yg,stat as vu}from"fs/promises";import{join as Xg,relative as Qg}from"path";var yo=C({module:"tools"}),Br=500,_o=class{name="Grep";description=du;category="read";schema(){let e={type:"object",properties:{pattern:{type:"string",description:"Regex pattern to search"},path:{type:"string",description:"Directory or file to search",default:"."},include:{type:"string",description:"File pattern filter (e.g., '*.ts')"}},required:["pattern"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=E(r,"pattern");if(!n)return{output:"Error: pattern is required",isError:!0};let o=E(r,"path",e.workDir),s=E(r,"include"),i;try{i=new RegExp(n)}catch(m){return yo.error({err:m},"tool operation failed"),{output:`Error: invalid regex pattern: ${n}`,isError:!0}}let a=s?new rr(s):null,c=[],u=async m=>{if(c.length>=Br)return;let f;try{f=await Jg(m)}catch(g){yo.error({err:g},"tool operation failed");return}for(let g of f){if(c.length>=Br)return;if(mo.has(g))continue;let h=Xg(m,g),y;try{y=await vu(h)}catch(v){yo.error({err:v},"tool operation failed");continue}if(y.isDirectory())await u(h);else if(y.isFile()){if(a&&!await a.match(g))continue;await l(h)}}},l=async m=>{try{let g=(await Yg(m,"utf-8")).split(`
158
+ `),h=Qg(e.workDir,m);for(let y=0;y<g.length&&c.length<Br;y++)i.test(g[y])&&c.push(`${h}:${String(y+1)}:${g[y]}`)}catch(f){yo.error({err:f},"tool operation failed")}};try{(await vu(o)).isFile()?await l(o):await u(o)}catch(m){return{output:`Error: ${N(m)}`,isError:!0}}if(c.length===0)return{output:"No matches found.",isError:!1};let d=c.join(`
159
159
  `);return c.length>=Br&&(d+=`
160
160
 
161
- (results truncated at ${String(Br)} matches)`),{output:d,isError:!1}}};import{existsSync as Zg,mkdirSync as Jg,writeFileSync as Yg}from"fs";import{dirname as Qg}from"path";var Kg=C({module:"tools"}),yo=class{name="WriteFile";description=lu;category="write";schema(){let e={type:"object",properties:{file_path:{type:"string",description:"Absolute path to write"},content:{type:"string",description:"Content to write"}},required:["file_path","content"]};return{name:this.name,description:this.description,input_schema:e}}execute(e,r){let n=x(r,"file_path"),o=x(r,"content");if(!n)return Promise.resolve({output:"Error: file_path is required",isError:!0});if(e.fileStateCache&&Zg(n)){let s=e.fileStateCache.check(n);if(!s.ok)return Promise.resolve({output:s.error,isError:!0})}try{e.fileHistory?.trackEdit(n),Jg(Qg(n),{recursive:!0}),Yg(n,o,"utf-8"),e.fileStateCache?.update(n);let s=o.split(`
162
- `).length;return Promise.resolve({output:`Successfully wrote to ${n} (${String(s)} lines)`,isError:!1})}catch(s){return Kg.error({err:s},"tool operation failed"),Promise.resolve({output:`Error writing file: ${N(s)}`,isError:!0})}}};import{readFile as Xg,writeFile as ey}from"fs/promises";function bu(t,e){let r=t.split(`
161
+ (results truncated at ${String(Br)} matches)`),{output:d,isError:!1}}};import{existsSync as ty,mkdirSync as ry,writeFileSync as ny}from"fs";import{dirname as oy}from"path";var ey=C({module:"tools"}),wo=class{name="WriteFile";description=lu;category="write";schema(){let e={type:"object",properties:{file_path:{type:"string",description:"Absolute path to write"},content:{type:"string",description:"Content to write"}},required:["file_path","content"]};return{name:this.name,description:this.description,input_schema:e}}execute(e,r){let n=E(r,"file_path"),o=E(r,"content");if(!n)return Promise.resolve({output:"Error: file_path is required",isError:!0});if(e.fileStateCache&&ty(n)){let s=e.fileStateCache.check(n);if(!s.ok)return Promise.resolve({output:s.error,isError:!0})}try{e.fileHistory?.trackEdit(n),ry(oy(n),{recursive:!0}),ny(n,o,"utf-8"),e.fileStateCache?.update(n);let s=o.split(`
162
+ `).length;return Promise.resolve({output:`Successfully wrote to ${n} (${String(s)} lines)`,isError:!1})}catch(s){return ey.error({err:s},"tool operation failed"),Promise.resolve({output:`Error writing file: ${N(s)}`,isError:!0})}}};import{readFile as sy,writeFile as iy}from"fs/promises";function bu(t,e){let r=t.split(`
163
163
  `),n=e.split(`
164
- `),o=0,s=Math.min(r.length,n.length);for(;o<s&&r[o]===n[o];)o++;let i=0,a=s-o;for(;i<a&&r[r.length-1-i]===n[n.length-1-i];)i++;let c=r.slice(o,r.length-i),u=n.slice(o,n.length-i),l=Math.max(0,o-3),d=r.slice(l,o),m=Math.min(r.length,r.length-i+3),f=r.slice(r.length-i,m),g=[],h=l+1,y=l+1,v=!1,E=(k,z,w)=>{if(g.length>=200){v=!0;return}g.push(`${k} ${String(z).padStart(4)} ${w}`)};for(let k of d)E(" ",h,k),h++,y++;for(let k of c)E("-",h,k),h++;for(let k of u)E("+",y,k),y++;for(let k of f)E(" ",h,k),h++,y++;return v&&g.push(` ... (diff truncated at ${String(200)} lines)`),{text:g.join(`
165
- `),additions:u.length,removals:c.length}}var Su=C({module:"tools"}),_o=class{name="EditFile";description=cu;category="write";schema(){let e={type:"object",properties:{file_path:{type:"string",description:"Absolute path to the file"},old_string:{type:"string",description:"Exact string to find and replace"},new_string:{type:"string",description:"Replacement string"},replace_all:{type:"boolean",description:"Replace all occurrences of old_string (default false)",default:!1}},required:["file_path","old_string","new_string"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=x(r,"file_path"),o=x(r,"old_string"),s=x(r,"new_string"),i=ao(r,"replace_all");if(!n)return{output:"Error: file_path is required",isError:!0};if(!o)return{output:"Error: old_string is required",isError:!0};if(o===s)return{output:"Error: old_string and new_string MUST be different",isError:!0};if(e.fileStateCache){let l=e.fileStateCache.check(n);if(!l.ok)return{output:l.error,isError:!0}}e.fileHistory?.trackEdit(n);let a;try{a=await Xg(n,"utf-8")}catch(l){return Su.error({err:l},"tool operation failed"),{output:`Error reading file: ${N(l)}`,isError:!0}}let c=a.split(o).length-1;if(c===0)return{output:"Error: old_string not found in file",isError:!0};if(!i&&c>1)return{output:`Error: old_string found ${String(c)} times in file. It must be unique. Add more surrounding context, or set replace_all to true`,isError:!0};let u=i?a.replaceAll(o,s):a.replace(o,s);try{await ey(n,u,"utf-8"),e.fileStateCache?.update(n);let{text:l,additions:d,removals:m}=bu(a,u);return{output:`${i&&c>1?`Updated ${n} with ${String(d)} addition${d===1?"":"s"} and ${String(m)} removal${m===1?"":"s"} (${String(c)} replacements)`:`Updated ${n} with ${String(d)} addition${d===1?"":"s"} and ${String(m)} removal${m===1?"":"s"}`}
164
+ `),o=0,s=Math.min(r.length,n.length);for(;o<s&&r[o]===n[o];)o++;let i=0,a=s-o;for(;i<a&&r[r.length-1-i]===n[n.length-1-i];)i++;let c=r.slice(o,r.length-i),u=n.slice(o,n.length-i),l=Math.max(0,o-3),d=r.slice(l,o),m=Math.min(r.length,r.length-i+3),f=r.slice(r.length-i,m),g=[],h=l+1,y=l+1,v=!1,$=(k,z,w)=>{if(g.length>=200){v=!0;return}g.push(`${k} ${String(z).padStart(4)} ${w}`)};for(let k of d)$(" ",h,k),h++,y++;for(let k of c)$("-",h,k),h++;for(let k of u)$("+",y,k),y++;for(let k of f)$(" ",h,k),h++,y++;return v&&g.push(` ... (diff truncated at ${String(200)} lines)`),{text:g.join(`
165
+ `),additions:u.length,removals:c.length}}var Su=C({module:"tools"}),vo=class{name="EditFile";description=cu;category="write";schema(){let e={type:"object",properties:{file_path:{type:"string",description:"Absolute path to the file"},old_string:{type:"string",description:"Exact string to find and replace"},new_string:{type:"string",description:"Replacement string"},replace_all:{type:"boolean",description:"Replace all occurrences of old_string (default false)",default:!1}},required:["file_path","old_string","new_string"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=E(r,"file_path"),o=E(r,"old_string"),s=E(r,"new_string"),i=lo(r,"replace_all");if(!n)return{output:"Error: file_path is required",isError:!0};if(!o)return{output:"Error: old_string is required",isError:!0};if(o===s)return{output:"Error: old_string and new_string MUST be different",isError:!0};if(e.fileStateCache){let l=e.fileStateCache.check(n);if(!l.ok)return{output:l.error,isError:!0}}e.fileHistory?.trackEdit(n);let a;try{a=await sy(n,"utf-8")}catch(l){return Su.error({err:l},"tool operation failed"),{output:`Error reading file: ${N(l)}`,isError:!0}}let c=a.split(o).length-1;if(c===0)return{output:"Error: old_string not found in file",isError:!0};if(!i&&c>1)return{output:`Error: old_string found ${String(c)} times in file. It must be unique. Add more surrounding context, or set replace_all to true`,isError:!0};let u=i?a.replaceAll(o,s):a.replace(o,s);try{await iy(n,u,"utf-8"),e.fileStateCache?.update(n);let{text:l,additions:d,removals:m}=bu(a,u);return{output:`${i&&c>1?`Updated ${n} with ${String(d)} addition${d===1?"":"s"} and ${String(m)} removal${m===1?"":"s"} (${String(c)} replacements)`:`Updated ${n} with ${String(d)} addition${d===1?"":"s"} and ${String(m)} removal${m===1?"":"s"}`}
166
166
  ${l}`,isError:!1}}catch(l){return Su.error({err:l},"tool operation failed"),{output:`Error writing file: ${N(l)}`,isError:!0}}}};var ku=class{name="ExitPlanMode";description=`
167
167
  Exit plan mode and present the plan for user approval.
168
168
  Call this when your plan is complete and written to the plan file.
169
- `;category="read";isPlanMode=null;planExists=null;schema(){let e={type:"object",properties:{}};return{name:this.name,description:this.description,input_schema:e}}execute(e,r){return this.isPlanMode&&!this.isPlanMode()?Promise.resolve({output:"You are not in plan mode. This tool is only for exiting plan mode after writing a plan.",isError:!0}):this.planExists&&!this.planExists()?Promise.resolve({output:"No plan file found. Please write your plan to the plan file before calling ExitPlanMode.",isError:!0}):Promise.resolve({output:"Plan mode will be exited after this turn. The user will be shown the plan approval dialog. Do not call any more tools \u2014 end your turn now.",isError:!1})}};var Tu=class{name="ToolSearch";description="Search for and load deferred tools by name or keyword.";category="read";registry;constructor(e){this.registry=e}schema(){let e={type:"object",properties:{query:{type:"string",description:'Search query. Use "select:name1,name2" to load specific tools by name, or keywords to search.'},max_results:{type:"integer",description:"Max results to return",default:5}},required:["query"]};return{name:this.name,description:this.description,input_schema:e}}execute(e,r){let n=x(r,"query"),o=Rt(r,"max_results",5);if(!n)return Promise.resolve({output:"Error: query is required",isError:!0});if(n.startsWith("select:")){let a=n.slice(7).split(",").map(l=>l.trim()),c=this.registry.findDeferredByNames(a);for(let l of c)this.registry.markDiscovered(l.name);if(c.length===0)return Promise.resolve({output:`No deferred tools found matching: ${a.join(", ")}`,isError:!1});let u=c.map(l=>JSON.stringify(l.schema(),null,2));return Promise.resolve({output:u.join(`
169
+ `;category="read";isPlanMode=null;planExists=null;schema(){let e={type:"object",properties:{}};return{name:this.name,description:this.description,input_schema:e}}execute(e,r){return this.isPlanMode&&!this.isPlanMode()?Promise.resolve({output:"You are not in plan mode. This tool is only for exiting plan mode after writing a plan.",isError:!0}):this.planExists&&!this.planExists()?Promise.resolve({output:"No plan file found. Please write your plan to the plan file before calling ExitPlanMode.",isError:!0}):Promise.resolve({output:"Plan mode will be exited after this turn. The user will be shown the plan approval dialog. Do not call any more tools \u2014 end your turn now.",isError:!1})}};var Tu=class{name="ToolSearch";description="Search for and load deferred tools by name or keyword.";category="read";registry;constructor(e){this.registry=e}schema(){let e={type:"object",properties:{query:{type:"string",description:'Search query. Use "select:name1,name2" to load specific tools by name, or keywords to search.'},max_results:{type:"integer",description:"Max results to return",default:5}},required:["query"]};return{name:this.name,description:this.description,input_schema:e}}execute(e,r){let n=E(r,"query"),o=Rt(r,"max_results",5);if(!n)return Promise.resolve({output:"Error: query is required",isError:!0});if(n.startsWith("select:")){let a=n.slice(7).split(",").map(l=>l.trim()),c=this.registry.findDeferredByNames(a);for(let l of c)this.registry.markDiscovered(l.name);if(c.length===0)return Promise.resolve({output:`No deferred tools found matching: ${a.join(", ")}`,isError:!1});let u=c.map(l=>JSON.stringify(l.schema(),null,2));return Promise.resolve({output:u.join(`
170
170
 
171
171
  `),isError:!1})}let s=this.registry.searchDeferred(n,o);if(s.length===0)return Promise.resolve({output:"No deferred tools matched the query.",isError:!1});let i=s.map(a=>JSON.stringify(a.schema(),null,2));return Promise.resolve({output:i.join(`
172
172
 
173
- `),isError:!1})}};import{exec as ty}from"child_process";import{access as ry,cp as li,mkdir as ny,readFile as nr,stat as xu,symlink as oy}from"fs/promises";import{dirname as sy,isAbsolute as Eu,join as de}from"path";import{promisify as iy}from"util";var xe=C({module:"worktree"}),Xe=iy(ty),ay=/^[a-zA-Z0-9/._+@-]+$/,ui=/^[0-9a-f]{40}([0-9a-f]{24})?$/;function di(t){if(!t||t.startsWith("-")||t.startsWith("/")||t.includes(".."))return!1;let e=t.split("/");for(let r of e)if(r==="."||r==="")return!1;return ay.test(t)}async function or(t){try{return await ry(t),!0}catch(e){return xe.error({err:e},"worktree operation failed"),!1}}async function cy(t){try{let e=de(t,"commondir"),r=(await nr(e,"utf-8")).trim();return Eu(r)?r:de(t,r)}catch(e){return xe.error({err:e},"worktree operation failed"),""}}async function ly(t){let e;try{e=(await nr(de(t,"HEAD"),"utf-8")).trim()}catch(r){return xe.error({err:r},"worktree operation failed"),null}if(e.startsWith("ref:")){let r=e.slice(4).trim();if(r.startsWith("refs/heads/")){let o=r.slice(11);return di(o)?{branch:o}:null}if(!di(r))return null;let n=await mi(t,r);return n?{sha:n}:null}return ui.test(e)?{sha:e}:null}async function $u(t,e){try{let r=(await nr(de(t,e),"utf-8")).trim();if(r.startsWith("ref:")){let n=r.slice(4).trim();return di(n)?await mi(t,n):""}return ui.test(r)?r:""}catch(r){xe.error({err:r},"worktree operation failed")}try{let r=await nr(de(t,"packed-refs"),"utf-8");for(let n of r.split(`
174
- `)){if(!n||n.startsWith("#")||n.startsWith("^"))continue;let o=n.indexOf(" ");if(o!==-1&&n.slice(o+1)===e){let s=n.slice(0,o);return ui.test(s)?s:""}}}catch(r){xe.error({err:r},"worktree operation failed")}return""}async function mi(t,e){let r=await $u(t,e);if(r)return r;let n=await cy(t);return n&&n!==t?$u(n,e):""}async function pi(t){let e;try{e=(await nr(de(t,".git"),"utf-8")).trim()}catch(s){return xe.error({err:s},"worktree operation failed"),""}if(!e.startsWith("gitdir:"))return"";let r=e.slice(7).trim(),n=Eu(r)?r:de(t,r),o=await ly(n);return o?o.branch?mi(n,"refs/heads/"+o.branch):o.sha??"":""}async function Gr(t,e){let r=e??(await Xe("git rev-parse --show-toplevel")).stdout.trim(),n=de(r,".swifty","worktrees",t),o=`worktree-${t}`;if(await or(n)){let a=await pi(n);if(a)return{path:n,branch:o,headCommit:a,gitRoot:r};let{stdout:c}=await Xe("git rev-parse HEAD",{cwd:n});return{path:n,branch:o,headCommit:c.trim(),gitRoot:r}}await Xe(`git worktree add -B "${o}" "${n}"`,{cwd:r}),await uy(r,n);let s=await pi(n);if(s)return{path:n,branch:o,headCommit:s,gitRoot:r};let{stdout:i}=await Xe("git rev-parse HEAD",{cwd:n});return{path:n,branch:o,headCommit:i.trim(),gitRoot:r}}async function Pu(t,e,r){try{await Xe(`git worktree remove "${t}" --force`,{cwd:r})}catch(n){xe.error({err:n},"worktree operation failed")}try{await Xe(`git branch -D "${e}"`,{cwd:r})}catch(n){xe.error({err:n},"worktree operation failed")}}async function Ru(t,e){try{let{stdout:r}=await Xe("git status --porcelain",{cwd:t});return r.trim()?!0:(await pi(t)||(await Xe("git rev-parse HEAD",{cwd:t})).stdout.trim())!==e}catch(r){return xe.error({err:r},"worktree operation failed"),!0}}function fi(t,e){return`You are working in a git worktree at: ${e}
173
+ `),isError:!1})}};import{exec as ay}from"child_process";import{access as cy,cp as li,mkdir as ly,readFile as nr,stat as $u,symlink as uy}from"fs/promises";import{dirname as dy,isAbsolute as Eu,join as de}from"path";import{promisify as py}from"util";var $e=C({module:"worktree"}),Qe=py(ay),my=/^[a-zA-Z0-9/._+@-]+$/,ui=/^[0-9a-f]{40}([0-9a-f]{24})?$/;function di(t){if(!t||t.startsWith("-")||t.startsWith("/")||t.includes(".."))return!1;let e=t.split("/");for(let r of e)if(r==="."||r==="")return!1;return my.test(t)}async function or(t){try{return await cy(t),!0}catch(e){return $e.error({err:e},"worktree operation failed"),!1}}async function fy(t){try{let e=de(t,"commondir"),r=(await nr(e,"utf-8")).trim();return Eu(r)?r:de(t,r)}catch(e){return $e.error({err:e},"worktree operation failed"),""}}async function hy(t){let e;try{e=(await nr(de(t,"HEAD"),"utf-8")).trim()}catch(r){return $e.error({err:r},"worktree operation failed"),null}if(e.startsWith("ref:")){let r=e.slice(4).trim();if(r.startsWith("refs/heads/")){let o=r.slice(11);return di(o)?{branch:o}:null}if(!di(r))return null;let n=await mi(t,r);return n?{sha:n}:null}return ui.test(e)?{sha:e}:null}async function xu(t,e){try{let r=(await nr(de(t,e),"utf-8")).trim();if(r.startsWith("ref:")){let n=r.slice(4).trim();return di(n)?await mi(t,n):""}return ui.test(r)?r:""}catch(r){$e.error({err:r},"worktree operation failed")}try{let r=await nr(de(t,"packed-refs"),"utf-8");for(let n of r.split(`
174
+ `)){if(!n||n.startsWith("#")||n.startsWith("^"))continue;let o=n.indexOf(" ");if(o!==-1&&n.slice(o+1)===e){let s=n.slice(0,o);return ui.test(s)?s:""}}}catch(r){$e.error({err:r},"worktree operation failed")}return""}async function mi(t,e){let r=await xu(t,e);if(r)return r;let n=await fy(t);return n&&n!==t?xu(n,e):""}async function pi(t){let e;try{e=(await nr(de(t,".git"),"utf-8")).trim()}catch(s){return $e.error({err:s},"worktree operation failed"),""}if(!e.startsWith("gitdir:"))return"";let r=e.slice(7).trim(),n=Eu(r)?r:de(t,r),o=await hy(n);return o?o.branch?mi(n,"refs/heads/"+o.branch):o.sha??"":""}async function Gr(t,e){let r=e??(await Qe("git rev-parse --show-toplevel")).stdout.trim(),n=de(r,".swifty","worktrees",t),o=`worktree-${t}`;if(await or(n)){let a=await pi(n);if(a)return{path:n,branch:o,headCommit:a,gitRoot:r};let{stdout:c}=await Qe("git rev-parse HEAD",{cwd:n});return{path:n,branch:o,headCommit:c.trim(),gitRoot:r}}await Qe(`git worktree add -B "${o}" "${n}"`,{cwd:r}),await gy(r,n);let s=await pi(n);if(s)return{path:n,branch:o,headCommit:s,gitRoot:r};let{stdout:i}=await Qe("git rev-parse HEAD",{cwd:n});return{path:n,branch:o,headCommit:i.trim(),gitRoot:r}}async function Pu(t,e,r){try{await Qe(`git worktree remove "${t}" --force`,{cwd:r})}catch(n){$e.error({err:n},"worktree operation failed")}try{await Qe(`git branch -D "${e}"`,{cwd:r})}catch(n){$e.error({err:n},"worktree operation failed")}}async function Ru(t,e){try{let{stdout:r}=await Qe("git status --porcelain",{cwd:t});return r.trim()?!0:(await pi(t)||(await Qe("git rev-parse HEAD",{cwd:t})).stdout.trim())!==e}catch(r){return $e.error({err:r},"worktree operation failed"),!0}}function fi(t,e){return`You are working in a git worktree at: ${e}
175
175
  The parent project is at: ${t}
176
- Changes made here are isolated from the parent working tree.`}async function uy(t,e){await dy(t,e),await py(t,e),await my(t,e),await fy(t,e)}async function dy(t,e){try{let r=de(t,".swifty");if(!await or(r))return;let n=de(e,".swifty");await li(r,n,{recursive:!0})}catch(r){xe.error({err:r},"failed to copy .swifty/ to worktree")}}async function py(t,e){try{let r=[de(t,".husky"),de(t,".git","hooks")],n;for(let o of r)try{if((await xu(o)).isDirectory()){n=o;break}}catch(s){xe.error({err:s},"worktree operation failed")}if(!n)return;await Xe(`git config core.hooksPath "${n}"`,{cwd:e})}catch(r){xe.error({err:r},"failed to configure hooks path in worktree")}}async function my(t,e){try{let r=de(t,"node_modules");if(!await or(r))return;let n=de(e,"node_modules");if(await or(n))return;await oy(r,n)}catch(r){console.error(`Warning: failed to symlink node_modules in worktree: ${N(r)}`)}}async function fy(t,e){try{let r=de(t,".worktreeinclude");if(!await or(r))return;let o=(await nr(r,"utf-8")).split(`
177
- `).map(s=>s.trim()).filter(s=>s&&!s.startsWith("#"));for(let s of o)if(!s.includes(".."))try{let i=de(t,s);if(!await or(i))continue;let a=de(e,s);await ny(sy(a),{recursive:!0}),(await xu(i)).isDirectory()?await li(i,a,{recursive:!0}):await li(i,a)}catch(i){xe.error({err:i},"worktree operation failed")}}catch(r){xe.error({err:r},"failed to process .worktreeinclude")}}var hy=C({module:"tools"}),Cu=class{name="EnterWorktree";description="Create and enter a git worktree for isolated work.";category="write";schema(){let e={type:"object",properties:{slug:{type:"string",description:"Short identifier for the worktree (branch name suffix)."}},required:["slug"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=x(r,"slug");if(!n)return Promise.resolve({output:"Error: slug is required",isError:!0});if(!/^[a-zA-Z0-9_-]+$/.test(n))return Promise.resolve({output:"Error: slug must contain only alphanumeric, hyphen, underscore",isError:!0});try{let o=await Gr(n);return{output:`Worktree created at ${o.path}
176
+ Changes made here are isolated from the parent working tree.`}async function gy(t,e){await yy(t,e),await _y(t,e),await wy(t,e),await vy(t,e)}async function yy(t,e){try{let r=de(t,".swifty");if(!await or(r))return;let n=de(e,".swifty");await li(r,n,{recursive:!0})}catch(r){$e.error({err:r},"failed to copy .swifty/ to worktree")}}async function _y(t,e){try{let r=[de(t,".husky"),de(t,".git","hooks")],n;for(let o of r)try{if((await $u(o)).isDirectory()){n=o;break}}catch(s){$e.error({err:s},"worktree operation failed")}if(!n)return;await Qe(`git config core.hooksPath "${n}"`,{cwd:e})}catch(r){$e.error({err:r},"failed to configure hooks path in worktree")}}async function wy(t,e){try{let r=de(t,"node_modules");if(!await or(r))return;let n=de(e,"node_modules");if(await or(n))return;await uy(r,n)}catch(r){console.error(`Warning: failed to symlink node_modules in worktree: ${N(r)}`)}}async function vy(t,e){try{let r=de(t,".worktreeinclude");if(!await or(r))return;let o=(await nr(r,"utf-8")).split(`
177
+ `).map(s=>s.trim()).filter(s=>s&&!s.startsWith("#"));for(let s of o)if(!s.includes(".."))try{let i=de(t,s);if(!await or(i))continue;let a=de(e,s);await ly(dy(a),{recursive:!0}),(await $u(i)).isDirectory()?await li(i,a,{recursive:!0}):await li(i,a)}catch(i){$e.error({err:i},"worktree operation failed")}}catch(r){$e.error({err:r},"failed to process .worktreeinclude")}}var by=C({module:"tools"}),Cu=class{name="EnterWorktree";description="Create and enter a git worktree for isolated work.";category="write";schema(){let e={type:"object",properties:{slug:{type:"string",description:"Short identifier for the worktree (branch name suffix)."}},required:["slug"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=E(r,"slug");if(!n)return Promise.resolve({output:"Error: slug is required",isError:!0});if(!/^[a-zA-Z0-9_-]+$/.test(n))return Promise.resolve({output:"Error: slug must contain only alphanumeric, hyphen, underscore",isError:!0});try{let o=await Gr(n);return{output:`Worktree created at ${o.path}
178
178
  Branch: ${o.branch}
179
- Head: ${o.headCommit}`,isError:!1}}catch(o){return hy.error({err:o},"tool operation failed"),{output:`Error creating worktree: ${N(o)}`,isError:!0}}}};var gy=C({module:"tools"}),Mu=class{name="ExitWorktree";description="Exit and optionally cleanup a git worktree";category="write";schema(){let e={type:"object",properties:{path:{type:"string",description:"Worktree path"},branch:{type:"string",description:"Worktree branch name"},git_root:{type:"string",description:"Git root directory"},head_commit:{type:"string",description:"Original HEAD commit for change detection"}},required:["path","branch","git_root"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=x(r,"path"),o=x(r,"branch"),s=x(r,"git_root"),i=x(r,"head_commit");if(!n||!o||!s)return{output:"Error: path, branch and git_root are required",isError:!0};if(!(i?Ru(n,i):!1))try{return await Pu(n,o,s),{output:`Worktree cleaned up (no changes): ${n}`,isError:!1}}catch(c){return gy.error({err:c},"tool operation failed"),{output:`Error cleaning up worktree: ${N(c)}`,isError:!0}}return{output:`Worktree has changes, kept at: ${n}
180
- Branch: ${o}`,isError:!1}}};var hi=class{commands=new Map;aliasMap=new Map;register(e){if(this.commands.has(e.name))throw new Error(`Command '${e.name}' already registered`);if(this.aliasMap.has(e.name))throw new Error(`Command name '${e.name}' collides with alias of '${this.aliasMap.get(e.name)??""}'`);for(let r of e.aliases){if(this.commands.has(r))throw new Error(`Alias '${r}' for '${e.name}' collides with existing command name`);if(this.aliasMap.has(r))throw new Error(`Alias '${r}' for '${e.name}' already registered by '${this.aliasMap.get(r)??""}'`)}this.commands.set(e.name,e);for(let r of e.aliases)this.aliasMap.set(r,e.name)}hasConflict(e){if(this.find(e.name))return!0;for(let r of e.aliases)if(this.find(r))return!0;return!1}find(e){return this.commands.get(e)??this.commands.get(this.aliasMap.get(e)??"")}complete(e){let r=e.toLowerCase();return[...this.commands.values()].filter(n=>n.name.toLowerCase().startsWith(r)||n.aliases.some(o=>o.toLowerCase().startsWith(r)))}listCommands(){return[...this.commands.values()].sort((e,r)=>e.name.localeCompare(r.name))}};function cR(t){if(!t.startsWith("/"))return null;let e=t.slice(1).trim(),r=e.indexOf(" ");return r===-1?{name:e,args:""}:{name:e.slice(0,r),args:e.slice(r+1).trim()}}function lR(){let t=new hi;return t.register({name:"help",aliases:["h","?"],type:"local",description:"Show available commands",handler:e=>{if(e.args){let o=t.find(e.args);if(!o)return`Unknown command: ${e.args}`;let s=`/${o.name} \u2014 ${o.description}
179
+ Head: ${o.headCommit}`,isError:!1}}catch(o){return by.error({err:o},"tool operation failed"),{output:`Error creating worktree: ${N(o)}`,isError:!0}}}};var Sy=C({module:"tools"}),Mu=class{name="ExitWorktree";description="Exit and optionally cleanup a git worktree";category="write";schema(){let e={type:"object",properties:{path:{type:"string",description:"Worktree path"},branch:{type:"string",description:"Worktree branch name"},git_root:{type:"string",description:"Git root directory"},head_commit:{type:"string",description:"Original HEAD commit for change detection"}},required:["path","branch","git_root"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let n=E(r,"path"),o=E(r,"branch"),s=E(r,"git_root"),i=E(r,"head_commit");if(!n||!o||!s)return{output:"Error: path, branch and git_root are required",isError:!0};if(!(i?Ru(n,i):!1))try{return await Pu(n,o,s),{output:`Worktree cleaned up (no changes): ${n}`,isError:!1}}catch(c){return Sy.error({err:c},"tool operation failed"),{output:`Error cleaning up worktree: ${N(c)}`,isError:!0}}return{output:`Worktree has changes, kept at: ${n}
180
+ Branch: ${o}`,isError:!1}}};var hi=class{commands=new Map;aliasMap=new Map;register(e){if(this.commands.has(e.name))throw new Error(`Command '${e.name}' already registered`);if(this.aliasMap.has(e.name))throw new Error(`Command name '${e.name}' collides with alias of '${this.aliasMap.get(e.name)??""}'`);for(let r of e.aliases){if(this.commands.has(r))throw new Error(`Alias '${r}' for '${e.name}' collides with existing command name`);if(this.aliasMap.has(r))throw new Error(`Alias '${r}' for '${e.name}' already registered by '${this.aliasMap.get(r)??""}'`)}this.commands.set(e.name,e);for(let r of e.aliases)this.aliasMap.set(r,e.name)}hasConflict(e){if(this.find(e.name))return!0;for(let r of e.aliases)if(this.find(r))return!0;return!1}find(e){return this.commands.get(e)??this.commands.get(this.aliasMap.get(e)??"")}complete(e){let r=e.toLowerCase();return[...this.commands.values()].filter(n=>n.name.toLowerCase().startsWith(r)||n.aliases.some(o=>o.toLowerCase().startsWith(r)))}listCommands(){return[...this.commands.values()].sort((e,r)=>e.name.localeCompare(r.name))}};function TR(t){if(!t.startsWith("/"))return null;let e=t.slice(1).trim(),r=e.indexOf(" ");return r===-1?{name:e,args:""}:{name:e.slice(0,r),args:e.slice(r+1).trim()}}function xR(){let t=new hi;return t.register({name:"help",aliases:["h","?"],type:"local",description:"Show available commands",handler:e=>{if(e.args){let o=t.find(e.args);if(!o)return`Unknown command: ${e.args}`;let s=`/${o.name} \u2014 ${o.description}
181
181
  `;return o.aliases.length>0&&(s+=` Aliases: ${o.aliases.join(", ")}
182
182
  `),s}let r=t.listCommands(),n=`Available commands:
183
183
 
@@ -189,76 +189,76 @@ Type /help <command> for details.`,n}}),t.register({name:"clear",aliases:[],type
189
189
  `)}}),t.register({name:"session",aliases:[],type:"local",description:"Show session info",handler:()=>"Session is active. Use /resume to list past sessions."}),t.register({name:"plan",aliases:["p"],type:"local_ui",description:"Enter plan mode",handler:()=>"plan"}),t.register({name:"resume",aliases:["r"],type:"local_ui",description:"Resume a previous session",handler:()=>"resume"}),t.register({name:"quit",aliases:["exit","q"],type:"local_ui",description:"Exit Swifty",handler:()=>"quit"}),t.register({name:"memory",aliases:[],type:"local",description:"Show memory status",handler:()=>"memory"}),t.register({name:"skills",aliases:[],type:"local_ui",description:"List available skills",handler:()=>"skills"}),t.register({name:"worktree",aliases:["wt"],type:"local_ui",description:"Manage git worktrees",handler:()=>"worktree"}),t.register({name:"code-review",aliases:["cr"],type:"local",description:"Manage code review team (create, add, remove, list)",handler:e=>{let r=e.args.trim();return r?`code-review:${r}`:`Usage: /code-review <command> [args]
190
190
  Commands: create, add <name>, remove <name>, list, status`}}),t.register({name:"review",aliases:[],type:"prompt",description:"Review the uncommitted code changes for bugs and improvements",handler:e=>"Review the current uncommitted changes. Run `git status` and `git diff` to see them, then report concrete findings (file:line) for correctness bugs, security issues, and obvious simplifications. Be specific and concise."+(e.args?`
191
191
 
192
- Focus on: ${e.args}`:"")}),t.register({name:"rewind",aliases:[],type:"local_ui",description:"Rewind conversation to a previous checkpoint",handler:()=>"rewind"}),t.register({name:"mcp",aliases:[],type:"local",description:"Show MCP server connection status",handler:()=>"mcp"}),t.register({name:"sandbox",aliases:["sb"],type:"local_ui",description:"Toggle OS sandbox mode for command execution",handler:()=>"sandbox"}),t}import{readdirSync as yy,readFileSync as _y,statSync as wy,existsSync as vy}from"fs";import{join as gi}from"path";import{homedir as by}from"os";function gR(t){let e=new Map,r=[gi(by(),".swifty","commands"),gi(t,".swifty","commands")];for(let n of r)if(vy(n))for(let o of zu(n,n))e.set(o.name,o);return[...e.values()]}function zu(t,e){let r;try{r=yy(e)}catch{return[]}let n=[];for(let o of r){let s=gi(e,o),i;try{i=wy(s)}catch{continue}if(i.isDirectory())n.push(...zu(t,s));else if(o.endsWith(".md")){let a=Ty(t,s);a&&n.push(a)}}return n}function Sy(t,e){return e.slice(t.length+1).replace(/\.md$/,"").split(/[/\\]/).map(n=>n.toLowerCase().replace(/ /g,"-")).join(":")}var ky=O.object({description:O.string().optional(),"argument-hint":O.string().optional(),aliases:O.array(O.string()).optional()});function Ty(t,e){let r;try{r=_y(e,"utf-8")}catch{return null}let n="",o="",s=[],i=r;if(r.startsWith("---")){let c=r.indexOf("---",3);if(c!==-1){let u=r.slice(3,c).trim();i=r.slice(c+3).trim();try{let l=ft.load(u),d=$e(ky,l);n=d.description??"",o=d["argument-hint"]??"",s=d.aliases??[]}catch{}}}let a=Sy(t,e);return a?{name:a,aliases:Array.isArray(s)?s:[],type:"prompt",description:n||(o?`custom command (args: ${o})`:"custom command"),handler:c=>$y(i,c.args)}:null}function $y(t,e){return t.includes("$ARGUMENTS")?t.replaceAll("$ARGUMENTS",e):e?`${t}
192
+ Focus on: ${e.args}`:"")}),t.register({name:"rewind",aliases:[],type:"local_ui",description:"Rewind conversation to a previous checkpoint",handler:()=>"rewind"}),t.register({name:"mcp",aliases:[],type:"local",description:"Show MCP server connection status",handler:()=>"mcp"}),t.register({name:"sandbox",aliases:["sb"],type:"local_ui",description:"Toggle OS sandbox mode for command execution",handler:()=>"sandbox"}),t}import{readdirSync as ky,readFileSync as Ty,statSync as xy,existsSync as $y}from"fs";import{join as gi}from"path";import{homedir as Ey}from"os";function zR(t){let e=new Map,r=[gi(Ey(),".swifty","commands"),gi(t,".swifty","commands")];for(let n of r)if($y(n))for(let o of zu(n,n))e.set(o.name,o);return[...e.values()]}function zu(t,e){let r;try{r=ky(e)}catch{return[]}let n=[];for(let o of r){let s=gi(e,o),i;try{i=xy(s)}catch{continue}if(i.isDirectory())n.push(...zu(t,s));else if(o.endsWith(".md")){let a=Cy(t,s);a&&n.push(a)}}return n}function Py(t,e){return e.slice(t.length+1).replace(/\.md$/,"").split(/[/\\]/).map(n=>n.toLowerCase().replace(/ /g,"-")).join(":")}var Ry=O.object({description:O.string().optional(),"argument-hint":O.string().optional(),aliases:O.array(O.string()).optional()});function Cy(t,e){let r;try{r=Ty(e,"utf-8")}catch{return null}let n="",o="",s=[],i=r;if(r.startsWith("---")){let c=r.indexOf("---",3);if(c!==-1){let u=r.slice(3,c).trim();i=r.slice(c+3).trim();try{let l=ft.load(u),d=xe(Ry,l);n=d.description??"",o=d["argument-hint"]??"",s=d.aliases??[]}catch{}}}let a=Py(t,e);return a?{name:a,aliases:Array.isArray(s)?s:[],type:"prompt",description:n||(o?`custom command (args: ${o})`:"custom command"),handler:c=>My(i,c.args)}:null}function My(t,e){return t.includes("$ARGUMENTS")?t.replaceAll("$ARGUMENTS",e):e?`${t}
193
193
 
194
- ${e}`:t}var ir="2025-11-25";var Au=[ir,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],gt="io.modelcontextprotocol/related-task",vo="2.0",le=Ol(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Iu=ee([p(),B().int()]),Ou=p(),_R=ce({ttl:B().optional(),pollInterval:B().optional()}),Ey=$({ttl:B().optional()}),Py=$({taskId:p()}),_i=ce({progressToken:Iu.optional(),[gt]:Py.optional()}),Ae=$({_meta:_i.optional()}),Kr=Ae.extend({task:Ey.optional()}),ju=t=>Kr.safeParse(t).success,pe=$({method:p(),params:Ae.loose().optional()}),Oe=$({_meta:_i.optional()}),je=$({method:p(),params:Oe.loose().optional()}),me=ce({_meta:_i.optional()}),bo=ee([p(),B().int()]),Nu=$({jsonrpc:P(vo),id:bo,...pe.shape}).strict(),Zr=t=>Nu.safeParse(t).success,qu=$({jsonrpc:P(vo),...je.shape}).strict(),Du=t=>qu.safeParse(t).success,wi=$({jsonrpc:P(vo),id:bo,result:me}).strict(),Mt=t=>wi.safeParse(t).success;var A;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(A||(A={}));var vi=$({jsonrpc:P(vo),id:bo.optional(),error:$({code:B().int(),message:p(),data:se().optional()})}).strict();var Lu=t=>vi.safeParse(t).success;var yt=ee([Nu,qu,wi,vi]),wR=ee([wi,vi]),zt=me.strict(),Ry=Oe.extend({requestId:bo.optional(),reason:p().optional()}),So=je.extend({method:P("notifications/cancelled"),params:Ry}),Cy=$({src:p(),mimeType:p().optional(),sizes:T(p()).optional(),theme:ze(["light","dark"]).optional()}),Jr=$({icons:T(Cy).optional()}),sr=$({name:p(),title:p().optional()}),Uu=sr.extend({...sr.shape,...Jr.shape,version:p(),websiteUrl:p().optional(),description:p().optional()}),My=ei($({applyDefaults:Z().optional()}),Y(p(),se())),zy=ti(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,ei($({form:My.optional(),url:le.optional()}),Y(p(),se()).optional())),Ay=ce({list:le.optional(),cancel:le.optional(),requests:ce({sampling:ce({createMessage:le.optional()}).optional(),elicitation:ce({create:le.optional()}).optional()}).optional()}),Iy=ce({list:le.optional(),cancel:le.optional(),requests:ce({tools:ce({call:le.optional()}).optional()}).optional()}),Oy=$({experimental:Y(p(),le).optional(),sampling:$({context:le.optional(),tools:le.optional()}).optional(),elicitation:zy.optional(),roots:$({listChanged:Z().optional()}).optional(),tasks:Ay.optional(),extensions:Y(p(),le).optional()}),jy=Ae.extend({protocolVersion:p(),capabilities:Oy,clientInfo:Uu}),Ny=pe.extend({method:P("initialize"),params:jy});var qy=$({experimental:Y(p(),le).optional(),logging:le.optional(),completions:le.optional(),prompts:$({listChanged:Z().optional()}).optional(),resources:$({subscribe:Z().optional(),listChanged:Z().optional()}).optional(),tools:$({listChanged:Z().optional()}).optional(),tasks:Iy.optional(),extensions:Y(p(),le).optional()}),bi=me.extend({protocolVersion:p(),capabilities:qy,serverInfo:Uu,instructions:p().optional()}),Fu=je.extend({method:P("notifications/initialized"),params:Oe.optional()}),Hu=t=>Fu.safeParse(t).success,ko=pe.extend({method:P("ping"),params:Ae.optional()}),Dy=$({progress:B(),total:re(B()),message:re(p())}),Ly=$({...Oe.shape,...Dy.shape,progressToken:Iu}),To=je.extend({method:P("notifications/progress"),params:Ly}),Uy=Ae.extend({cursor:Ou.optional()}),Yr=pe.extend({params:Uy.optional()}),Qr=me.extend({nextCursor:Ou.optional()}),Fy=ze(["working","input_required","completed","failed","cancelled"]),Xr=$({taskId:p(),status:Fy,ttl:ee([B(),Al()]),createdAt:p(),lastUpdatedAt:p(),pollInterval:re(B()),statusMessage:re(p())}),At=me.extend({task:Xr}),Hy=Oe.merge(Xr),en=je.extend({method:P("notifications/tasks/status"),params:Hy}),$o=pe.extend({method:P("tasks/get"),params:Ae.extend({taskId:p()})}),xo=me.merge(Xr),Eo=pe.extend({method:P("tasks/result"),params:Ae.extend({taskId:p()})}),vR=me.loose(),Po=Yr.extend({method:P("tasks/list")}),Ro=Qr.extend({tasks:T(Xr)}),Co=pe.extend({method:P("tasks/cancel"),params:Ae.extend({taskId:p()})}),Wu=me.merge(Xr),Vu=$({uri:p(),mimeType:re(p()),_meta:Y(p(),se()).optional()}),Bu=Vu.extend({text:p()}),Si=p().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Gu=Vu.extend({blob:Si}),tn=ze(["user","assistant"]),ar=$({audience:T(tn).optional(),priority:B().min(0).max(1).optional(),lastModified:Rl.datetime({offset:!0}).optional()}),Ku=$({...sr.shape,...Jr.shape,uri:p(),description:re(p()),mimeType:re(p()),size:re(B()),annotations:ar.optional(),_meta:re(ce({}))}),Wy=$({...sr.shape,...Jr.shape,uriTemplate:p(),description:re(p()),mimeType:re(p()),annotations:ar.optional(),_meta:re(ce({}))}),Vy=Yr.extend({method:P("resources/list")}),ki=Qr.extend({resources:T(Ku)}),By=Yr.extend({method:P("resources/templates/list")}),Ti=Qr.extend({resourceTemplates:T(Wy)}),$i=Ae.extend({uri:p()}),Gy=$i,Ky=pe.extend({method:P("resources/read"),params:Gy}),xi=me.extend({contents:T(ee([Bu,Gu]))}),Ei=je.extend({method:P("notifications/resources/list_changed"),params:Oe.optional()}),Zy=$i,Jy=pe.extend({method:P("resources/subscribe"),params:Zy}),Yy=$i,Qy=pe.extend({method:P("resources/unsubscribe"),params:Yy}),Xy=Oe.extend({uri:p()}),e_=je.extend({method:P("notifications/resources/updated"),params:Xy}),t_=$({name:p(),description:re(p()),required:re(Z())}),r_=$({...sr.shape,...Jr.shape,description:re(p()),arguments:re(T(t_)),_meta:re(ce({}))}),n_=Yr.extend({method:P("prompts/list")}),Pi=Qr.extend({prompts:T(r_)}),o_=Ae.extend({name:p(),arguments:Y(p(),p()).optional()}),s_=pe.extend({method:P("prompts/get"),params:o_}),Ri=$({type:P("text"),text:p(),annotations:ar.optional(),_meta:Y(p(),se()).optional()}),Ci=$({type:P("image"),data:Si,mimeType:p(),annotations:ar.optional(),_meta:Y(p(),se()).optional()}),Mi=$({type:P("audio"),data:Si,mimeType:p(),annotations:ar.optional(),_meta:Y(p(),se()).optional()}),i_=$({type:P("tool_use"),name:p(),id:p(),input:Y(p(),se()),_meta:Y(p(),se()).optional()}),a_=$({type:P("resource"),resource:ee([Bu,Gu]),annotations:ar.optional(),_meta:Y(p(),se()).optional()}),c_=Ku.extend({type:P("resource_link")}),zi=ee([Ri,Ci,Mi,c_,a_]),l_=$({role:tn,content:zi}),Ai=me.extend({description:p().optional(),messages:T(l_)}),Ii=je.extend({method:P("notifications/prompts/list_changed"),params:Oe.optional()}),u_=$({title:p().optional(),readOnlyHint:Z().optional(),destructiveHint:Z().optional(),idempotentHint:Z().optional(),openWorldHint:Z().optional()}),d_=$({taskSupport:ze(["required","optional","forbidden"]).optional()}),Zu=$({...sr.shape,...Jr.shape,description:p().optional(),inputSchema:$({type:P("object"),properties:Y(p(),le).optional(),required:T(p()).optional()}).catchall(se()),outputSchema:$({type:P("object"),properties:Y(p(),le).optional(),required:T(p()).optional()}).catchall(se()).optional(),annotations:u_.optional(),execution:d_.optional(),_meta:Y(p(),se()).optional()}),p_=Yr.extend({method:P("tools/list")}),Oi=Qr.extend({tools:T(Zu)}),cr=me.extend({content:T(zi).default([]),structuredContent:Y(p(),se()).optional(),isError:Z().optional()}),bR=cr.or(me.extend({toolResult:se()})),m_=Kr.extend({name:p(),arguments:Y(p(),se()).optional()}),f_=pe.extend({method:P("tools/call"),params:m_}),ji=je.extend({method:P("notifications/tools/list_changed"),params:Oe.optional()}),Ju=$({autoRefresh:Z().default(!0),debounceMs:B().int().nonnegative().default(300)}),Yu=ze(["debug","info","notice","warning","error","critical","alert","emergency"]),h_=Ae.extend({level:Yu}),g_=pe.extend({method:P("logging/setLevel"),params:h_}),y_=Oe.extend({level:Yu,logger:p().optional(),data:se()}),__=je.extend({method:P("notifications/message"),params:y_}),w_=$({name:p().optional()}),v_=$({hints:T(w_).optional(),costPriority:B().min(0).max(1).optional(),speedPriority:B().min(0).max(1).optional(),intelligencePriority:B().min(0).max(1).optional()}),b_=$({mode:ze(["auto","required","none"]).optional()}),S_=$({type:P("tool_result"),toolUseId:p().describe("The unique identifier for the corresponding tool call."),content:T(zi).default([]),structuredContent:$({}).loose().optional(),isError:Z().optional(),_meta:Y(p(),se()).optional()}),k_=Xs("type",[Ri,Ci,Mi]),wo=Xs("type",[Ri,Ci,Mi,i_,S_]),T_=$({role:tn,content:ee([wo,T(wo)]),_meta:Y(p(),se()).optional()}),$_=Kr.extend({messages:T(T_),modelPreferences:v_.optional(),systemPrompt:p().optional(),includeContext:ze(["none","thisServer","allServers"]).optional(),temperature:B().optional(),maxTokens:B().int(),stopSequences:T(p()).optional(),metadata:le.optional(),tools:T(Zu).optional(),toolChoice:b_.optional()}),Ni=pe.extend({method:P("sampling/createMessage"),params:$_}),qi=me.extend({model:p(),stopReason:re(ze(["endTurn","stopSequence","maxTokens"]).or(p())),role:tn,content:k_}),Di=me.extend({model:p(),stopReason:re(ze(["endTurn","stopSequence","maxTokens","toolUse"]).or(p())),role:tn,content:ee([wo,T(wo)])}),x_=$({type:P("boolean"),title:p().optional(),description:p().optional(),default:Z().optional()}),E_=$({type:P("string"),title:p().optional(),description:p().optional(),minLength:B().optional(),maxLength:B().optional(),format:ze(["email","uri","date","date-time"]).optional(),default:p().optional()}),P_=$({type:ze(["number","integer"]),title:p().optional(),description:p().optional(),minimum:B().optional(),maximum:B().optional(),default:B().optional()}),R_=$({type:P("string"),title:p().optional(),description:p().optional(),enum:T(p()),default:p().optional()}),C_=$({type:P("string"),title:p().optional(),description:p().optional(),oneOf:T($({const:p(),title:p()})),default:p().optional()}),M_=$({type:P("string"),title:p().optional(),description:p().optional(),enum:T(p()),enumNames:T(p()).optional(),default:p().optional()}),z_=ee([R_,C_]),A_=$({type:P("array"),title:p().optional(),description:p().optional(),minItems:B().optional(),maxItems:B().optional(),items:$({type:P("string"),enum:T(p())}),default:T(p()).optional()}),I_=$({type:P("array"),title:p().optional(),description:p().optional(),minItems:B().optional(),maxItems:B().optional(),items:$({anyOf:T($({const:p(),title:p()}))}),default:T(p()).optional()}),O_=ee([A_,I_]),j_=ee([M_,z_,O_]),N_=ee([j_,x_,E_,P_]),q_=Kr.extend({mode:P("form").optional(),message:p(),requestedSchema:$({type:P("object"),properties:Y(p(),N_),required:T(p()).optional()})}),D_=Kr.extend({mode:P("url"),message:p(),elicitationId:p(),url:p().url()}),L_=ee([q_,D_]),Li=pe.extend({method:P("elicitation/create"),params:L_}),U_=Oe.extend({elicitationId:p()}),F_=je.extend({method:P("notifications/elicitation/complete"),params:U_}),Ui=me.extend({action:ze(["accept","decline","cancel"]),content:ti(t=>t===null?void 0:t,Y(p(),ee([p(),B(),Z(),T(p())])).optional())}),H_=$({type:P("ref/resource"),uri:p()});var W_=$({type:P("ref/prompt"),name:p()}),V_=Ae.extend({ref:ee([W_,H_]),argument:$({name:p(),value:p()}),context:$({arguments:Y(p(),p()).optional()}).optional()}),B_=pe.extend({method:P("completion/complete"),params:V_});var Fi=me.extend({completion:ce({values:T(p()).max(100),total:re(B().int()),hasMore:re(Z())})}),G_=$({uri:p().startsWith("file://"),name:p().optional(),_meta:Y(p(),se()).optional()}),K_=pe.extend({method:P("roots/list"),params:Ae.optional()}),Z_=me.extend({roots:T(G_)}),J_=je.extend({method:P("notifications/roots/list_changed"),params:Oe.optional()}),SR=ee([ko,Ny,B_,g_,s_,n_,Vy,By,Ky,Jy,Qy,f_,p_,$o,Eo,Po,Co]),kR=ee([So,To,Fu,J_,en]),TR=ee([zt,qi,Di,Ui,Z_,xo,Ro,At]),$R=ee([ko,Ni,Li,K_,$o,Eo,Po,Co]),xR=ee([So,To,__,e_,Ei,ji,Ii,en,F_]),ER=ee([zt,bi,Fi,Ai,Pi,ki,Ti,xi,cr,Oi,xo,Ro,At]),M=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===A.UrlElicitationRequired&&n){let o=n;if(o.elicitations)return new yi(o.elicitations,r)}return new t(e,r,n)}},yi=class extends M{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(A.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function _t(t){return t==="completed"||t==="failed"||t==="cancelled"}var iC=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Hi(t){let r=io(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Pl(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Wi(t,e){let r=Ue(t,e);if(!r.success)throw r.error;return r.data}var rw=6e4,Mo=class{constructor(e){this._options=e,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(So,r=>{this._oncancel(r)}),this.setNotificationHandler(To,r=>{this._onprogress(r)}),this.setRequestHandler(ko,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler($o,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M(A.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(Eo,async(r,n)=>{let o=async()=>{let s=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,n.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,m=new M(d.error.code,d.error.message,d.error.data);l(m)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let i=await this._taskStore.getTask(s,n.sessionId);if(!i)throw new M(A.InvalidParams,`Task not found: ${s}`);if(!_t(i.status))return await this._waitForTaskUpdate(s,n.signal),await o();if(_t(i.status)){let a=await this._taskStore.getTaskResult(s,n.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[gt]:{taskId:s}}}}return await o()};return await o()}),this.setRequestHandler(Po,async(r,n)=>{try{let{tasks:o,nextCursor:s}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:s,_meta:{}}}catch(o){throw new M(A.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(Co,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M(A.InvalidParams,`Task not found: ${r.params.taskId}`);if(_t(o.status))throw new M(A.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new M(A.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...s}}catch(o){throw o instanceof M?o:new M(A.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,o,s=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:s,onTimeout:o})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),M.fromError(A.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=s=>{n?.(s),this._onerror(s)};let o=this._transport?.onmessage;this._transport.onmessage=(s,i)=>{o?.(s,i),Mt(s)||Lu(s)?this._onresponse(s):Zr(s)?this._onrequest(s,i):Du(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=M.fromError(A.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,o=this._transport,s=e.params?._meta?.[gt]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:A.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},o?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):o?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let i=new AbortController;this._requestHandlerAbortControllers.set(e.id,i);let a=ju(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,o?.sessionId):void 0,u={signal:i.signal,sessionId:o?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{if(i.signal.aborted)return;let d={relatedRequestId:e.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,m)=>{if(i.signal.aborted)throw new M(A.ConnectionClosed,"Request was cancelled");let f={...m,relatedRequestId:e.id};s&&!f.relatedTask&&(f.relatedTask={taskId:s});let g=f.relatedTask?.taskId??s;return g&&c&&await c.updateTaskStatus(g,"input_required"),await this.request(l,d,f)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:s,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async l=>{if(i.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:e.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)},async l=>{if(i.signal.aborted)return;let d={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:A.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"error",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===i&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,o=Number(r),s=this._progressHandlers.get(o);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let i=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&i&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),i(c);return}s(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Mt(e))n(e);else{let i=new M(e.error.code,e.error.message,e.error.data);n(i)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let s=!1;if(Mt(e)&&e.result&&typeof e.result=="object"){let i=e.result;if(i.task&&typeof i.task=="object"){let a=i.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,r))}}if(s||this._progressHandlers.delete(r),Mt(e))o(e);else{let i=M.fromError(e.error.code,e.error.message,e.error.data);o(i)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(e,r,n)}}catch(i){yield{type:"error",error:i instanceof M?i:new M(A.InternalError,String(i))}}return}let s;try{let i=await this.request(e,At,n);if(i.task)s=i.task.taskId,yield{type:"taskCreated",task:i.task};else throw new M(A.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},n);if(yield{type:"taskStatus",task:a},_t(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},r,n)}:a.status==="failed"?yield{type:"error",error:new M(A.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new M(A.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(i){yield{type:"error",error:i instanceof M?i:new M(A.InternalError,String(i))}}}request(e,r,n){let{relatedRequestId:o,resumptionToken:s,onresumptiontoken:i,task:a,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=E=>{l(E)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(E){d(E);return}n?.signal?.throwIfAborted();let m=this._requestMessageId++,f={...e,jsonrpc:"2.0",id:m};n?.onprogress&&(this._progressHandlers.set(m,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta||{},progressToken:m}}),a&&(f.params={...f.params,task:a}),c&&(f.params={...f.params,_meta:{...f.params?._meta||{},[gt]:c}});let g=E=>{this._responseHandlers.delete(m),this._progressHandlers.delete(m),this._cleanupTimeout(m),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:m,reason:String(E)}},{relatedRequestId:o,resumptionToken:s,onresumptiontoken:i}).catch(z=>this._onerror(new Error(`Failed to send cancellation: ${z}`)));let k=E instanceof M?E:new M(A.RequestTimeout,String(E));l(k)};this._responseHandlers.set(m,E=>{if(!n?.signal?.aborted){if(E instanceof Error)return l(E);try{let k=Ue(r,E.result);k.success?u(k.data):l(k.error)}catch(k){l(k)}}}),n?.signal?.addEventListener("abort",()=>{g(n?.signal?.reason)});let h=n?.timeout??rw,y=()=>g(M.fromError(A.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(m,h,n?.maxTotalTimeout,y,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let E=k=>{let z=this._responseHandlers.get(m);z?z(k):this._onerror(new Error(`Response handler missing for side-channeled request ${m}`))};this._requestResolvers.set(m,E),this._enqueueTaskMessage(v,{type:"request",message:f,timestamp:Date.now()}).catch(k=>{this._cleanupTimeout(m),l(k)})}else this._transport.send(f,{relatedRequestId:o,resumptionToken:s,onresumptiontoken:i}).catch(E=>{this._cleanupTimeout(m),l(E)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},xo,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},Ro,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},Wu,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[gt]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[gt]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let i={...e,jsonrpc:"2.0"};r?.relatedTask&&(i={...i,params:{...i.params,_meta:{...i.params?._meta||{},[gt]:r.relatedTask}}}),await this._transport.send(i,r)}setRequestHandler(e,r){let n=Hi(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,s)=>{let i=Wi(e,o);return Promise.resolve(r(i,s))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=Hi(e);this._notificationHandlers.set(n,o=>{let s=Wi(e,o);return Promise.resolve(r(s))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,o)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let o of n)if(o.type==="request"&&Zr(o.message)){let s=o.message.id,i=this._requestResolvers.get(s);i?(i(new M(A.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(e);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,s)=>{if(r.aborted){s(new M(A.InvalidRequest,"Request cancelled"));return}let i=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(i),s(new M(A.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!e)throw new Error("No request provided");return await n.createTask(o,e.id,{method:e.method,params:e.params},r)},getTask:async o=>{let s=await n.getTask(o,r);if(!s)throw new M(A.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(o,s,i)=>{await n.storeTaskResult(o,s,i,r);let a=await n.getTask(o,r);if(a){let c=en.parse({method:"notifications/tasks/status",params:a});await this.notification(c),_t(a.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,s,i)=>{let a=await n.getTask(o,r);if(!a)throw new M(A.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(_t(a.status))throw new M(A.InvalidParams,`Cannot update task "${o}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,s,i,r);let c=await n.getTask(o,r);if(c){let u=en.parse({method:"notifications/tasks/status",params:c});await this.notification(u),_t(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function Qu(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Xu(t,e){let r={...t};for(let n in e){let o=n,s=e[o];if(s===void 0)continue;let i=r[o];Qu(i)&&Qu(s)?r[o]={...i,...s}:r[o]=s}return r}var Wm=Ys(Cc(),1),Vm=Ys(Hm(),1);function sT(){let t=new Wm.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,Vm.default)(t),t}var ps=class{constructor(e){this._ajv=e??sT()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var ms=class{constructor(e){this._client=e}async*callToolStream(e,r=cr,n){let o=this._client,s={...n,task:n?.task??(o.isToolTask(e.name)?{}:void 0)},i=o.requestStream({method:"tools/call",params:e},r,s),a=o.getToolOutputValidator(e.name);for await(let c of i){if(c.type==="result"&&a){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new M(A.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let l=a(u.structuredContent);if(!l.valid){yield{type:"error",error:new M(A.InvalidParams,`Structured content does not match the tool's output schema: ${l.errorMessage}`)};return}}catch(l){if(l instanceof M){yield{type:"error",error:l};return}yield{type:"error",error:new M(A.InvalidParams,`Failed to validate structured content: ${l instanceof Error?l.message:String(l)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function Bm(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function Gm(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function fs(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let o of Object.keys(n)){let s=n[o];r[o]===void 0&&Object.prototype.hasOwnProperty.call(s,"default")&&(r[o]=s.default),r[o]!==void 0&&fs(s,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&fs(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&fs(r,e)}}function iT(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var hs=class extends Mo{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new ps,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",ji,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",Ii,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",Ei,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new ms(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Xu(this._capabilities,e)}setRequestHandler(e,r){let o=io(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let s;if(Qs(o)){let a=o;s=a._zod?.def?.value??a.value}else{let a=o;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");let i=s;if(i==="elicitation/create"){let a=async(c,u)=>{let l=Ue(Li,c);if(!l.success){let E=l.error instanceof Error?l.error.message:String(l.error);throw new M(A.InvalidParams,`Invalid elicitation request: ${E}`)}let{params:d}=l.data;d.mode=d.mode??"form";let{supportsFormMode:m,supportsUrlMode:f}=iT(this._capabilities.elicitation);if(d.mode==="form"&&!m)throw new M(A.InvalidParams,"Client does not support form-mode elicitation requests");if(d.mode==="url"&&!f)throw new M(A.InvalidParams,"Client does not support URL-mode elicitation requests");let g=await Promise.resolve(r(c,u));if(d.task){let E=Ue(At,g);if(!E.success){let k=E.error instanceof Error?E.error.message:String(E.error);throw new M(A.InvalidParams,`Invalid task creation result: ${k}`)}return E.data}let h=Ue(Ui,g);if(!h.success){let E=h.error instanceof Error?h.error.message:String(h.error);throw new M(A.InvalidParams,`Invalid elicitation result: ${E}`)}let y=h.data,v=d.mode==="form"?d.requestedSchema:void 0;if(d.mode==="form"&&y.action==="accept"&&y.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{fs(v,y.content)}catch{}return y};return super.setRequestHandler(e,a)}if(i==="sampling/createMessage"){let a=async(c,u)=>{let l=Ue(Ni,c);if(!l.success){let y=l.error instanceof Error?l.error.message:String(l.error);throw new M(A.InvalidParams,`Invalid sampling request: ${y}`)}let{params:d}=l.data,m=await Promise.resolve(r(c,u));if(d.task){let y=Ue(At,m);if(!y.success){let v=y.error instanceof Error?y.error.message:String(y.error);throw new M(A.InvalidParams,`Invalid task creation result: ${v}`)}return y.data}let g=d.tools||d.toolChoice?Di:qi,h=Ue(g,m);if(!h.success){let y=h.error instanceof Error?h.error.message:String(h.error);throw new M(A.InvalidParams,`Invalid sampling result: ${y}`)}return h.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:ir,capabilities:this._capabilities,clientInfo:this._clientInfo}},bi,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!Au.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){Bm(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&Gm(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},zt,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},Fi,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},zt,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},Ai,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Pi,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},ki,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Ti,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},xi,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},zt,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},zt,r)}async callTool(e,r=cr,n){if(this.isToolTaskRequired(e.name))throw new M(A.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let o=await this.request({method:"tools/call",params:e},r,n),s=this.getToolOutputValidator(e.name);if(s){if(!o.structuredContent&&!o.isError)throw new M(A.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(o.structuredContent)try{let i=s(o.structuredContent);if(!i.valid)throw new M(A.InvalidParams,`Structured content does not match the tool's output schema: ${i.errorMessage}`)}catch(i){throw i instanceof M?i:new M(A.InvalidParams,`Failed to validate structured content: ${i instanceof Error?i.message:String(i)}`)}}return o}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let o=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,o)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},Oi,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let s=Ju.safeParse(n);if(!s.success)throw new Error(`Invalid ${e} listChanged options: ${s.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:i,debounceMs:a}=s.data,{onChanged:c}=n,u=async()=>{if(!i){c(null,null);return}try{let d=await o();c(null,d)}catch(d){let m=d instanceof Error?d:new Error(String(d));c(m,null)}},l=()=>{if(a){let d=this._listChangedDebounceTimers.get(e);d&&clearTimeout(d);let m=setTimeout(u,a);this._listChangedDebounceTimers.set(e,m)}else u()};this.setNotificationHandler(r,l)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var qf=Ys(jf(),1);import Gc from"process";import{PassThrough as IT}from"stream";var ys=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
195
- `);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),AT(r)}clear(){this._buffer=void 0}};function AT(t){return yt.parse(JSON.parse(t))}function Nf(t){return JSON.stringify(t)+`
196
- `}var OT=Gc.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function jT(){let t={};for(let e of OT){let r=Gc.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var _s=class{constructor(e){this._readBuffer=new ys,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new IT)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,qf.default)(this._serverParams.command,this._serverParams.args??[],{env:{...jT(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Gc.platform==="win32",cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{this._readBuffer.append(n),this.processReadBuffer()}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=Nf(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};function Rr(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function ws(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Rr(e.headers),...Rr(n.headers)}:e.headers};return t(r,o)}:t}var Kc;Kc=globalThis.crypto?.webcrypto??globalThis.crypto??import("crypto").then(t=>t.webcrypto);async function NT(t){return(await Kc).getRandomValues(new Uint8Array(t))}async function qT(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await NT(t-n.length);for(let s of o)s<r&&(n+=e[s%e.length])}return n}async function DT(t){return await qT(t)}async function LT(t){let e=await(await Kc).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Zc(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await DT(t),r=await LT(e);return{code_verifier:e,code_challenge:r}}var ye=zl().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:jl.custom,message:"URL must be parseable",fatal:!0}),xl}).refine(t=>{let e=new URL(t);return e.protocol!=="javascript:"&&e.protocol!=="data:"&&e.protocol!=="vbscript:"},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),Lf=ce({resource:p().url(),authorization_servers:T(ye).optional(),jwks_uri:p().url().optional(),scopes_supported:T(p()).optional(),bearer_methods_supported:T(p()).optional(),resource_signing_alg_values_supported:T(p()).optional(),resource_name:p().optional(),resource_documentation:p().optional(),resource_policy_uri:p().url().optional(),resource_tos_uri:p().url().optional(),tls_client_certificate_bound_access_tokens:Z().optional(),authorization_details_types_supported:T(p()).optional(),dpop_signing_alg_values_supported:T(p()).optional(),dpop_bound_access_tokens_required:Z().optional()}),Jc=ce({issuer:p(),authorization_endpoint:ye,token_endpoint:ye,registration_endpoint:ye.optional(),scopes_supported:T(p()).optional(),response_types_supported:T(p()),response_modes_supported:T(p()).optional(),grant_types_supported:T(p()).optional(),token_endpoint_auth_methods_supported:T(p()).optional(),token_endpoint_auth_signing_alg_values_supported:T(p()).optional(),service_documentation:ye.optional(),revocation_endpoint:ye.optional(),revocation_endpoint_auth_methods_supported:T(p()).optional(),revocation_endpoint_auth_signing_alg_values_supported:T(p()).optional(),introspection_endpoint:p().optional(),introspection_endpoint_auth_methods_supported:T(p()).optional(),introspection_endpoint_auth_signing_alg_values_supported:T(p()).optional(),code_challenge_methods_supported:T(p()).optional(),client_id_metadata_document_supported:Z().optional()}),UT=ce({issuer:p(),authorization_endpoint:ye,token_endpoint:ye,userinfo_endpoint:ye.optional(),jwks_uri:ye,registration_endpoint:ye.optional(),scopes_supported:T(p()).optional(),response_types_supported:T(p()),response_modes_supported:T(p()).optional(),grant_types_supported:T(p()).optional(),acr_values_supported:T(p()).optional(),subject_types_supported:T(p()),id_token_signing_alg_values_supported:T(p()),id_token_encryption_alg_values_supported:T(p()).optional(),id_token_encryption_enc_values_supported:T(p()).optional(),userinfo_signing_alg_values_supported:T(p()).optional(),userinfo_encryption_alg_values_supported:T(p()).optional(),userinfo_encryption_enc_values_supported:T(p()).optional(),request_object_signing_alg_values_supported:T(p()).optional(),request_object_encryption_alg_values_supported:T(p()).optional(),request_object_encryption_enc_values_supported:T(p()).optional(),token_endpoint_auth_methods_supported:T(p()).optional(),token_endpoint_auth_signing_alg_values_supported:T(p()).optional(),display_values_supported:T(p()).optional(),claim_types_supported:T(p()).optional(),claims_supported:T(p()).optional(),service_documentation:p().optional(),claims_locales_supported:T(p()).optional(),ui_locales_supported:T(p()).optional(),claims_parameter_supported:Z().optional(),request_parameter_supported:Z().optional(),request_uri_parameter_supported:Z().optional(),require_request_uri_registration:Z().optional(),op_policy_uri:ye.optional(),op_tos_uri:ye.optional(),client_id_metadata_document_supported:Z().optional()}),Uf=$({...UT.shape,...Jc.pick({code_challenge_methods_supported:!0}).shape}),Ff=$({access_token:p(),id_token:p().optional(),token_type:p(),expires_in:Nl.number().optional(),scope:p().optional(),refresh_token:p().optional()}).strip(),Hf=$({error:p(),error_description:p().optional(),error_uri:p().optional()}),Df=ye.optional().or(P("").transform(()=>{})),FT=$({redirect_uris:T(ye),token_endpoint_auth_method:p().optional(),grant_types:T(p()).optional(),response_types:T(p()).optional(),client_name:p().optional(),client_uri:ye.optional(),logo_uri:Df,scope:p().optional(),contacts:T(p()).optional(),tos_uri:Df,policy_uri:p().optional(),jwks_uri:ye.optional(),jwks:Il().optional(),software_id:p().optional(),software_version:p().optional(),software_statement:p().optional()}).strip(),HT=$({client_id:p(),client_secret:p().optional(),client_id_issued_at:B().optional(),client_secret_expires_at:B().optional()}).strip(),Wf=FT.merge(HT),XI=$({error:p(),error_description:p().optional()}).strip(),eO=$({token:p(),token_type_hint:p().optional()}).strip();function Vf(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function Bf({requestedResource:t,configuredResource:e}){let r=typeof t=="string"?new URL(t):new URL(t.href),n=typeof e=="string"?new URL(e):new URL(e.href);if(r.origin!==n.origin||r.pathname.length<n.pathname.length)return!1;let o=r.pathname.endsWith("/")?r.pathname:r.pathname+"/",s=n.pathname.endsWith("/")?n.pathname:n.pathname+"/";return o.startsWith(s)}var ae=class extends Error{constructor(e,r){super(e),this.errorUri=r,this.name=this.constructor.name}toResponseObject(){let e={error:this.errorCode,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}get errorCode(){return this.constructor.errorCode}},An=class extends ae{};An.errorCode="invalid_request";var Vt=class extends ae{};Vt.errorCode="invalid_client";var Bt=class extends ae{};Bt.errorCode="invalid_grant";var Gt=class extends ae{};Gt.errorCode="unauthorized_client";var In=class extends ae{};In.errorCode="unsupported_grant_type";var On=class extends ae{};On.errorCode="invalid_scope";var jn=class extends ae{};jn.errorCode="access_denied";var st=class extends ae{};st.errorCode="server_error";var Nn=class extends ae{};Nn.errorCode="temporarily_unavailable";var qn=class extends ae{};qn.errorCode="unsupported_response_type";var Dn=class extends ae{};Dn.errorCode="unsupported_token_type";var Ln=class extends ae{};Ln.errorCode="invalid_token";var Un=class extends ae{};Un.errorCode="method_not_allowed";var Fn=class extends ae{};Fn.errorCode="too_many_requests";var Kt=class extends ae{};Kt.errorCode="invalid_client_metadata";var Hn=class extends ae{};Hn.errorCode="insufficient_scope";var Wn=class extends ae{};Wn.errorCode="invalid_target";var Gf={[An.errorCode]:An,[Vt.errorCode]:Vt,[Bt.errorCode]:Bt,[Gt.errorCode]:Gt,[In.errorCode]:In,[On.errorCode]:On,[jn.errorCode]:jn,[st.errorCode]:st,[Nn.errorCode]:Nn,[qn.errorCode]:qn,[Dn.errorCode]:Dn,[Ln.errorCode]:Ln,[Un.errorCode]:Un,[Fn.errorCode]:Fn,[Kt.errorCode]:Kt,[Hn.errorCode]:Hn,[Wn.errorCode]:Wn};var ke=class extends Error{constructor(e){super(e??"Unauthorized")}};function WT(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var Yc="code",Qc="S256";function VT(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&WT(t.token_endpoint_auth_method)&&(e.length===0||e.includes(t.token_endpoint_auth_method))?t.token_endpoint_auth_method:e.length===0?r?"client_secret_basic":"none":r&&e.includes("client_secret_basic")?"client_secret_basic":r&&e.includes("client_secret_post")?"client_secret_post":e.includes("none")?"none":r?"client_secret_post":"none"}function BT(t,e,r,n){let{client_id:o,client_secret:s}=e;switch(t){case"client_secret_basic":GT(o,s,r);return;case"client_secret_post":KT(o,s,n);return;case"none":ZT(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function GT(t,e,r){if(!e)throw new Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${t}:${e}`);r.set("Authorization",`Basic ${n}`)}function KT(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function ZT(t,e){e.set("client_id",t)}async function Zf(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=Hf.parse(JSON.parse(r)),{error:o,error_description:s,error_uri:i}=n,a=Gf[o]||st;return new a(s||"",i)}catch(n){let o=`${e?`HTTP ${e}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new st(o)}}async function it(t,e){try{return await Xc(t,e)}catch(r){if(r instanceof Vt||r instanceof Gt)return await t.invalidateCredentials?.("all"),await Xc(t,e);if(r instanceof Bt)return await t.invalidateCredentials?.("tokens"),await Xc(t,e);throw r}}async function Xc(t,{serverUrl:e,authorizationCode:r,scope:n,resourceMetadataUrl:o,fetchFn:s}){let i=await t.discoveryState?.(),a,c,u,l=o;if(!l&&i?.resourceMetadataUrl&&(l=new URL(i.resourceMetadataUrl)),i?.authorizationServerUrl){if(c=i.authorizationServerUrl,a=i.resourceMetadata,u=i.authorizationServerMetadata??await Yf(c,{fetchFn:s}),!a)try{a=await Jf(e,{resourceMetadataUrl:l},s)}catch{}(u!==i.authorizationServerMetadata||a!==i.resourceMetadata)&&await t.saveDiscoveryState?.({authorizationServerUrl:String(c),resourceMetadataUrl:l?.toString(),resourceMetadata:a,authorizationServerMetadata:u})}else{let k=await r$(e,{resourceMetadataUrl:l,fetchFn:s});c=k.authorizationServerUrl,u=k.authorizationServerMetadata,a=k.resourceMetadata,await t.saveDiscoveryState?.({authorizationServerUrl:String(c),resourceMetadataUrl:l?.toString(),resourceMetadata:a,authorizationServerMetadata:u})}let d=await YT(e,t,a),m=n||a?.scopes_supported?.join(" ")||t.clientMetadata.scope,f=await Promise.resolve(t.clientInformation());if(!f){if(r!==void 0)throw new Error("Existing OAuth client information is required when exchanging an authorization code");let k=u?.client_id_metadata_document_supported===!0,z=t.clientMetadataUrl;if(z&&!JT(z))throw new Kt(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${z}`);if(k&&z)f={client_id:z},await t.saveClientInformation?.(f);else{if(!t.saveClientInformation)throw new Error("OAuth client information must be saveable for dynamic registration");let b=await a$(c,{metadata:u,clientMetadata:t.clientMetadata,scope:m,fetchFn:s});await t.saveClientInformation(b),f=b}}let g=!t.redirectUrl;if(r!==void 0||g){let k=await i$(t,c,{metadata:u,resource:d,authorizationCode:r,fetchFn:s});return await t.saveTokens(k),"AUTHORIZED"}let h=await t.tokens();if(h?.refresh_token)try{let k=await s$(c,{metadata:u,clientInformation:f,refreshToken:h.refresh_token,resource:d,addClientAuthentication:t.addClientAuthentication,fetchFn:s});return await t.saveTokens(k),"AUTHORIZED"}catch(k){if(!(!(k instanceof ae)||k instanceof st))throw k}let y=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:E}=await n$(c,{metadata:u,clientInformation:f,state:y,redirectUrl:t.redirectUrl,scope:m,resource:d});return await t.saveCodeVerifier(E),await t.redirectToAuthorization(v),"REDIRECT"}function JT(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function YT(t,e,r){let n=Vf(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!Bf({requestedResource:n,configuredResource:r.resource}))throw new Error(`Protected resource ${r.resource} does not match expected ${n} (or origin)`);return new URL(r.resource)}}function Cr(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=el(t,"resource_metadata")||void 0,s;if(o)try{s=new URL(o)}catch{}let i=el(t,"scope")||void 0,a=el(t,"error")||void 0;return{resourceMetadataUrl:s,scope:i,error:a}}function el(t,e){let r=t.headers.get("WWW-Authenticate");if(!r)return null;let n=new RegExp(`${e}=(?:"([^"]+)"|([^\\s,]+))`),o=r.match(n);return o?o[1]||o[2]:null}async function Jf(t,e,r=fetch){let n=await e$(t,"oauth-protected-resource",r,{protocolVersion:e?.protocolVersion,metadataUrl:e?.resourceMetadataUrl});if(!n||n.status===404)throw await n?.body?.cancel(),new Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!n.ok)throw await n.body?.cancel(),new Error(`HTTP ${n.status} trying to load well-known OAuth protected resource metadata.`);return Lf.parse(await n.json())}async function tl(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?tl(t,void 0,r):void 0;throw n}}function QT(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function Kf(t,e,r=fetch){return await tl(t,{"MCP-Protocol-Version":e},r)}function XT(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function e$(t,e,r,n){let o=new URL(t),s=n?.protocolVersion??ir,i;if(n?.metadataUrl)i=new URL(n.metadataUrl);else{let c=QT(e,o.pathname);i=new URL(c,n?.metadataServerUrl??o),i.search=o.search}let a=await Kf(i,s,r);if(!n?.metadataUrl&&XT(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await Kf(c,s,r)}return a}function t$(t){let e=typeof t=="string"?new URL(t):t,r=e.pathname!=="/",n=[];if(!r)return n.push({url:new URL("/.well-known/oauth-authorization-server",e.origin),type:"oauth"}),n.push({url:new URL("/.well-known/openid-configuration",e.origin),type:"oidc"}),n;let o=e.pathname;return o.endsWith("/")&&(o=o.slice(0,-1)),n.push({url:new URL(`/.well-known/oauth-authorization-server${o}`,e.origin),type:"oauth"}),n.push({url:new URL(`/.well-known/openid-configuration${o}`,e.origin),type:"oidc"}),n.push({url:new URL(`${o}/.well-known/openid-configuration`,e.origin),type:"oidc"}),n}async function Yf(t,{fetchFn:e=fetch,protocolVersion:r=ir}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=t$(t);for(let{url:s,type:i}of o){let a=await tl(s,n,e);if(a){if(!a.ok){if(await a.body?.cancel(),a.status>=400&&a.status<500)continue;throw new Error(`HTTP ${a.status} trying to load ${i==="oauth"?"OAuth":"OpenID provider"} metadata from ${s}`)}return i==="oauth"?Jc.parse(await a.json()):Uf.parse(await a.json())}}}async function r$(t,e){let r,n;try{r=await Jf(t,{resourceMetadataUrl:e?.resourceMetadataUrl},e?.fetchFn),r.authorization_servers&&r.authorization_servers.length>0&&(n=r.authorization_servers[0])}catch{}n||(n=String(new URL("/",t)));let o=await Yf(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function n$(t,{metadata:e,clientInformation:r,redirectUrl:n,scope:o,state:s,resource:i}){let a;if(e){if(a=new URL(e.authorization_endpoint),!e.response_types_supported.includes(Yc))throw new Error(`Incompatible auth server: does not support response type ${Yc}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Qc))throw new Error(`Incompatible auth server: does not support code challenge method ${Qc}`)}else a=new URL("/authorize",t);let c=await Zc(),u=c.code_verifier,l=c.code_challenge;return a.searchParams.set("response_type",Yc),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",l),a.searchParams.set("code_challenge_method",Qc),a.searchParams.set("redirect_uri",String(n)),s&&a.searchParams.set("state",s),o&&a.searchParams.set("scope",o),o?.includes("offline_access")&&a.searchParams.append("prompt","consent"),i&&a.searchParams.set("resource",i.href),{authorizationUrl:a,codeVerifier:u}}function o$(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function Qf(t,{metadata:e,tokenRequestParams:r,clientInformation:n,addClientAuthentication:o,resource:s,fetchFn:i}){let a=e?.token_endpoint?new URL(e.token_endpoint):new URL("/token",t),c=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"});if(s&&r.set("resource",s.href),o)await o(c,r,a,e);else if(n){let l=e?.token_endpoint_auth_methods_supported??[],d=VT(n,l);BT(d,n,c,r)}let u=await(i??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await Zf(u);return Ff.parse(await u.json())}async function s$(t,{metadata:e,clientInformation:r,refreshToken:n,resource:o,addClientAuthentication:s,fetchFn:i}){let a=new URLSearchParams({grant_type:"refresh_token",refresh_token:n}),c=await Qf(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:s,resource:o,fetchFn:i});return{refresh_token:n,...c}}async function i$(t,e,{metadata:r,resource:n,authorizationCode:o,fetchFn:s}={}){let i=t.clientMetadata.scope,a;if(t.prepareTokenRequest&&(a=await t.prepareTokenRequest(i)),!a){if(!o)throw new Error("Either provider.prepareTokenRequest() or authorizationCode is required");if(!t.redirectUrl)throw new Error("redirectUrl is required for authorization_code flow");let u=await t.codeVerifier();a=o$(o,u,t.redirectUrl)}let c=await t.clientInformation();return Qf(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:s})}async function a$(t,{metadata:e,clientMetadata:r,scope:n,fetchFn:o}){let s;if(e){if(!e.registration_endpoint)throw new Error("Incompatible auth server: does not support dynamic client registration");s=new URL(e.registration_endpoint)}else s=new URL("/register",t);let i=await(o??fetch)(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,...n!==void 0?{scope:n}:{}})});if(!i.ok)throw await Zf(i);return Wf.parse(await i.json())}var Vn=class extends Error{constructor(e,r){super(e),this.name="ParseError",this.type=r.type,this.field=r.field,this.value=r.value,this.line=r.line}},Xf=10,c$=13,Zt=32;function rl(t){}function vs(t){if(typeof t=="function")throw new TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:e=rl,onError:r=rl,onRetry:n=rl,onComment:o,maxBufferSize:s}=t,i=[],a=0,c=!0,u,l="",d=0,m,f=!1;function g(w){if(f)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(c&&(c=!1,w.charCodeAt(0)===239&&w.charCodeAt(1)===187&&w.charCodeAt(2)===191&&(w=w.slice(3))),i.length===0){let ne=y(w);ne!==""&&(i.push(ne),a=ne.length),h();return}if(w.indexOf(`
194
+ ${e}`:t}var ir="2025-11-25";var Au=[ir,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],gt="io.modelcontextprotocol/related-task",So="2.0",le=Ol(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Iu=ee([p(),B().int()]),Ou=p(),IR=ce({ttl:B().optional(),pollInterval:B().optional()}),Ay=x({ttl:B().optional()}),Iy=x({taskId:p()}),_i=ce({progressToken:Iu.optional(),[gt]:Iy.optional()}),Ae=x({_meta:_i.optional()}),Kr=Ae.extend({task:Ay.optional()}),ju=t=>Kr.safeParse(t).success,pe=x({method:p(),params:Ae.loose().optional()}),Oe=x({_meta:_i.optional()}),je=x({method:p(),params:Oe.loose().optional()}),me=ce({_meta:_i.optional()}),ko=ee([p(),B().int()]),Nu=x({jsonrpc:P(So),id:ko,...pe.shape}).strict(),Zr=t=>Nu.safeParse(t).success,qu=x({jsonrpc:P(So),...je.shape}).strict(),Du=t=>qu.safeParse(t).success,wi=x({jsonrpc:P(So),id:ko,result:me}).strict(),Mt=t=>wi.safeParse(t).success;var A;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(A||(A={}));var vi=x({jsonrpc:P(So),id:ko.optional(),error:x({code:B().int(),message:p(),data:se().optional()})}).strict();var Lu=t=>vi.safeParse(t).success;var yt=ee([Nu,qu,wi,vi]),OR=ee([wi,vi]),zt=me.strict(),Oy=Oe.extend({requestId:ko.optional(),reason:p().optional()}),To=je.extend({method:P("notifications/cancelled"),params:Oy}),jy=x({src:p(),mimeType:p().optional(),sizes:T(p()).optional(),theme:ze(["light","dark"]).optional()}),Jr=x({icons:T(jy).optional()}),sr=x({name:p(),title:p().optional()}),Uu=sr.extend({...sr.shape,...Jr.shape,version:p(),websiteUrl:p().optional(),description:p().optional()}),Ny=ei(x({applyDefaults:Z().optional()}),Y(p(),se())),qy=ti(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,ei(x({form:Ny.optional(),url:le.optional()}),Y(p(),se()).optional())),Dy=ce({list:le.optional(),cancel:le.optional(),requests:ce({sampling:ce({createMessage:le.optional()}).optional(),elicitation:ce({create:le.optional()}).optional()}).optional()}),Ly=ce({list:le.optional(),cancel:le.optional(),requests:ce({tools:ce({call:le.optional()}).optional()}).optional()}),Uy=x({experimental:Y(p(),le).optional(),sampling:x({context:le.optional(),tools:le.optional()}).optional(),elicitation:qy.optional(),roots:x({listChanged:Z().optional()}).optional(),tasks:Dy.optional(),extensions:Y(p(),le).optional()}),Fy=Ae.extend({protocolVersion:p(),capabilities:Uy,clientInfo:Uu}),Hy=pe.extend({method:P("initialize"),params:Fy});var Wy=x({experimental:Y(p(),le).optional(),logging:le.optional(),completions:le.optional(),prompts:x({listChanged:Z().optional()}).optional(),resources:x({subscribe:Z().optional(),listChanged:Z().optional()}).optional(),tools:x({listChanged:Z().optional()}).optional(),tasks:Ly.optional(),extensions:Y(p(),le).optional()}),bi=me.extend({protocolVersion:p(),capabilities:Wy,serverInfo:Uu,instructions:p().optional()}),Fu=je.extend({method:P("notifications/initialized"),params:Oe.optional()}),Hu=t=>Fu.safeParse(t).success,xo=pe.extend({method:P("ping"),params:Ae.optional()}),Vy=x({progress:B(),total:re(B()),message:re(p())}),By=x({...Oe.shape,...Vy.shape,progressToken:Iu}),$o=je.extend({method:P("notifications/progress"),params:By}),Gy=Ae.extend({cursor:Ou.optional()}),Yr=pe.extend({params:Gy.optional()}),Xr=me.extend({nextCursor:Ou.optional()}),Ky=ze(["working","input_required","completed","failed","cancelled"]),Qr=x({taskId:p(),status:Ky,ttl:ee([B(),Al()]),createdAt:p(),lastUpdatedAt:p(),pollInterval:re(B()),statusMessage:re(p())}),At=me.extend({task:Qr}),Zy=Oe.merge(Qr),en=je.extend({method:P("notifications/tasks/status"),params:Zy}),Eo=pe.extend({method:P("tasks/get"),params:Ae.extend({taskId:p()})}),Po=me.merge(Qr),Ro=pe.extend({method:P("tasks/result"),params:Ae.extend({taskId:p()})}),jR=me.loose(),Co=Yr.extend({method:P("tasks/list")}),Mo=Xr.extend({tasks:T(Qr)}),zo=pe.extend({method:P("tasks/cancel"),params:Ae.extend({taskId:p()})}),Wu=me.merge(Qr),Vu=x({uri:p(),mimeType:re(p()),_meta:Y(p(),se()).optional()}),Bu=Vu.extend({text:p()}),Si=p().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Gu=Vu.extend({blob:Si}),tn=ze(["user","assistant"]),ar=x({audience:T(tn).optional(),priority:B().min(0).max(1).optional(),lastModified:Rl.datetime({offset:!0}).optional()}),Ku=x({...sr.shape,...Jr.shape,uri:p(),description:re(p()),mimeType:re(p()),size:re(B()),annotations:ar.optional(),_meta:re(ce({}))}),Jy=x({...sr.shape,...Jr.shape,uriTemplate:p(),description:re(p()),mimeType:re(p()),annotations:ar.optional(),_meta:re(ce({}))}),Yy=Yr.extend({method:P("resources/list")}),ki=Xr.extend({resources:T(Ku)}),Xy=Yr.extend({method:P("resources/templates/list")}),Ti=Xr.extend({resourceTemplates:T(Jy)}),xi=Ae.extend({uri:p()}),Qy=xi,e_=pe.extend({method:P("resources/read"),params:Qy}),$i=me.extend({contents:T(ee([Bu,Gu]))}),Ei=je.extend({method:P("notifications/resources/list_changed"),params:Oe.optional()}),t_=xi,r_=pe.extend({method:P("resources/subscribe"),params:t_}),n_=xi,o_=pe.extend({method:P("resources/unsubscribe"),params:n_}),s_=Oe.extend({uri:p()}),i_=je.extend({method:P("notifications/resources/updated"),params:s_}),a_=x({name:p(),description:re(p()),required:re(Z())}),c_=x({...sr.shape,...Jr.shape,description:re(p()),arguments:re(T(a_)),_meta:re(ce({}))}),l_=Yr.extend({method:P("prompts/list")}),Pi=Xr.extend({prompts:T(c_)}),u_=Ae.extend({name:p(),arguments:Y(p(),p()).optional()}),d_=pe.extend({method:P("prompts/get"),params:u_}),Ri=x({type:P("text"),text:p(),annotations:ar.optional(),_meta:Y(p(),se()).optional()}),Ci=x({type:P("image"),data:Si,mimeType:p(),annotations:ar.optional(),_meta:Y(p(),se()).optional()}),Mi=x({type:P("audio"),data:Si,mimeType:p(),annotations:ar.optional(),_meta:Y(p(),se()).optional()}),p_=x({type:P("tool_use"),name:p(),id:p(),input:Y(p(),se()),_meta:Y(p(),se()).optional()}),m_=x({type:P("resource"),resource:ee([Bu,Gu]),annotations:ar.optional(),_meta:Y(p(),se()).optional()}),f_=Ku.extend({type:P("resource_link")}),zi=ee([Ri,Ci,Mi,f_,m_]),h_=x({role:tn,content:zi}),Ai=me.extend({description:p().optional(),messages:T(h_)}),Ii=je.extend({method:P("notifications/prompts/list_changed"),params:Oe.optional()}),g_=x({title:p().optional(),readOnlyHint:Z().optional(),destructiveHint:Z().optional(),idempotentHint:Z().optional(),openWorldHint:Z().optional()}),y_=x({taskSupport:ze(["required","optional","forbidden"]).optional()}),Zu=x({...sr.shape,...Jr.shape,description:p().optional(),inputSchema:x({type:P("object"),properties:Y(p(),le).optional(),required:T(p()).optional()}).catchall(se()),outputSchema:x({type:P("object"),properties:Y(p(),le).optional(),required:T(p()).optional()}).catchall(se()).optional(),annotations:g_.optional(),execution:y_.optional(),_meta:Y(p(),se()).optional()}),__=Yr.extend({method:P("tools/list")}),Oi=Xr.extend({tools:T(Zu)}),cr=me.extend({content:T(zi).default([]),structuredContent:Y(p(),se()).optional(),isError:Z().optional()}),NR=cr.or(me.extend({toolResult:se()})),w_=Kr.extend({name:p(),arguments:Y(p(),se()).optional()}),v_=pe.extend({method:P("tools/call"),params:w_}),ji=je.extend({method:P("notifications/tools/list_changed"),params:Oe.optional()}),Ju=x({autoRefresh:Z().default(!0),debounceMs:B().int().nonnegative().default(300)}),Yu=ze(["debug","info","notice","warning","error","critical","alert","emergency"]),b_=Ae.extend({level:Yu}),S_=pe.extend({method:P("logging/setLevel"),params:b_}),k_=Oe.extend({level:Yu,logger:p().optional(),data:se()}),T_=je.extend({method:P("notifications/message"),params:k_}),x_=x({name:p().optional()}),$_=x({hints:T(x_).optional(),costPriority:B().min(0).max(1).optional(),speedPriority:B().min(0).max(1).optional(),intelligencePriority:B().min(0).max(1).optional()}),E_=x({mode:ze(["auto","required","none"]).optional()}),P_=x({type:P("tool_result"),toolUseId:p().describe("The unique identifier for the corresponding tool call."),content:T(zi).default([]),structuredContent:x({}).loose().optional(),isError:Z().optional(),_meta:Y(p(),se()).optional()}),R_=Qs("type",[Ri,Ci,Mi]),bo=Qs("type",[Ri,Ci,Mi,p_,P_]),C_=x({role:tn,content:ee([bo,T(bo)]),_meta:Y(p(),se()).optional()}),M_=Kr.extend({messages:T(C_),modelPreferences:$_.optional(),systemPrompt:p().optional(),includeContext:ze(["none","thisServer","allServers"]).optional(),temperature:B().optional(),maxTokens:B().int(),stopSequences:T(p()).optional(),metadata:le.optional(),tools:T(Zu).optional(),toolChoice:E_.optional()}),Ni=pe.extend({method:P("sampling/createMessage"),params:M_}),qi=me.extend({model:p(),stopReason:re(ze(["endTurn","stopSequence","maxTokens"]).or(p())),role:tn,content:R_}),Di=me.extend({model:p(),stopReason:re(ze(["endTurn","stopSequence","maxTokens","toolUse"]).or(p())),role:tn,content:ee([bo,T(bo)])}),z_=x({type:P("boolean"),title:p().optional(),description:p().optional(),default:Z().optional()}),A_=x({type:P("string"),title:p().optional(),description:p().optional(),minLength:B().optional(),maxLength:B().optional(),format:ze(["email","uri","date","date-time"]).optional(),default:p().optional()}),I_=x({type:ze(["number","integer"]),title:p().optional(),description:p().optional(),minimum:B().optional(),maximum:B().optional(),default:B().optional()}),O_=x({type:P("string"),title:p().optional(),description:p().optional(),enum:T(p()),default:p().optional()}),j_=x({type:P("string"),title:p().optional(),description:p().optional(),oneOf:T(x({const:p(),title:p()})),default:p().optional()}),N_=x({type:P("string"),title:p().optional(),description:p().optional(),enum:T(p()),enumNames:T(p()).optional(),default:p().optional()}),q_=ee([O_,j_]),D_=x({type:P("array"),title:p().optional(),description:p().optional(),minItems:B().optional(),maxItems:B().optional(),items:x({type:P("string"),enum:T(p())}),default:T(p()).optional()}),L_=x({type:P("array"),title:p().optional(),description:p().optional(),minItems:B().optional(),maxItems:B().optional(),items:x({anyOf:T(x({const:p(),title:p()}))}),default:T(p()).optional()}),U_=ee([D_,L_]),F_=ee([N_,q_,U_]),H_=ee([F_,z_,A_,I_]),W_=Kr.extend({mode:P("form").optional(),message:p(),requestedSchema:x({type:P("object"),properties:Y(p(),H_),required:T(p()).optional()})}),V_=Kr.extend({mode:P("url"),message:p(),elicitationId:p(),url:p().url()}),B_=ee([W_,V_]),Li=pe.extend({method:P("elicitation/create"),params:B_}),G_=Oe.extend({elicitationId:p()}),K_=je.extend({method:P("notifications/elicitation/complete"),params:G_}),Ui=me.extend({action:ze(["accept","decline","cancel"]),content:ti(t=>t===null?void 0:t,Y(p(),ee([p(),B(),Z(),T(p())])).optional())}),Z_=x({type:P("ref/resource"),uri:p()});var J_=x({type:P("ref/prompt"),name:p()}),Y_=Ae.extend({ref:ee([J_,Z_]),argument:x({name:p(),value:p()}),context:x({arguments:Y(p(),p()).optional()}).optional()}),X_=pe.extend({method:P("completion/complete"),params:Y_});var Fi=me.extend({completion:ce({values:T(p()).max(100),total:re(B().int()),hasMore:re(Z())})}),Q_=x({uri:p().startsWith("file://"),name:p().optional(),_meta:Y(p(),se()).optional()}),ew=pe.extend({method:P("roots/list"),params:Ae.optional()}),tw=me.extend({roots:T(Q_)}),rw=je.extend({method:P("notifications/roots/list_changed"),params:Oe.optional()}),qR=ee([xo,Hy,X_,S_,d_,l_,Yy,Xy,e_,r_,o_,v_,__,Eo,Ro,Co,zo]),DR=ee([To,$o,Fu,rw,en]),LR=ee([zt,qi,Di,Ui,tw,Po,Mo,At]),UR=ee([xo,Ni,Li,ew,Eo,Ro,Co,zo]),FR=ee([To,$o,T_,i_,Ei,ji,Ii,en,K_]),HR=ee([zt,bi,Fi,Ai,Pi,ki,Ti,$i,cr,Oi,Po,Mo,At]),M=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===A.UrlElicitationRequired&&n){let o=n;if(o.elicitations)return new yi(o.elicitations,r)}return new t(e,r,n)}},yi=class extends M{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(A.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function _t(t){return t==="completed"||t==="failed"||t==="cancelled"}var SC=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Hi(t){let r=ao(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=co(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Wi(t,e){let r=Ue(t,e);if(!r.success)throw r.error;return r.data}var cw=6e4,Ao=class{constructor(e){this._options=e,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(To,r=>{this._oncancel(r)}),this.setNotificationHandler($o,r=>{this._onprogress(r)}),this.setRequestHandler(xo,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Eo,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M(A.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(Ro,async(r,n)=>{let o=async()=>{let s=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,n.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,m=new M(d.error.code,d.error.message,d.error.data);l(m)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let i=await this._taskStore.getTask(s,n.sessionId);if(!i)throw new M(A.InvalidParams,`Task not found: ${s}`);if(!_t(i.status))return await this._waitForTaskUpdate(s,n.signal),await o();if(_t(i.status)){let a=await this._taskStore.getTaskResult(s,n.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[gt]:{taskId:s}}}}return await o()};return await o()}),this.setRequestHandler(Co,async(r,n)=>{try{let{tasks:o,nextCursor:s}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:s,_meta:{}}}catch(o){throw new M(A.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(zo,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M(A.InvalidParams,`Task not found: ${r.params.taskId}`);if(_t(o.status))throw new M(A.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new M(A.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...s}}catch(o){throw o instanceof M?o:new M(A.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,o,s=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:s,onTimeout:o})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),M.fromError(A.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=s=>{n?.(s),this._onerror(s)};let o=this._transport?.onmessage;this._transport.onmessage=(s,i)=>{o?.(s,i),Mt(s)||Lu(s)?this._onresponse(s):Zr(s)?this._onrequest(s,i):Du(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=M.fromError(A.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,o=this._transport,s=e.params?._meta?.[gt]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:A.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},o?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):o?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let i=new AbortController;this._requestHandlerAbortControllers.set(e.id,i);let a=ju(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,o?.sessionId):void 0,u={signal:i.signal,sessionId:o?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{if(i.signal.aborted)return;let d={relatedRequestId:e.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,m)=>{if(i.signal.aborted)throw new M(A.ConnectionClosed,"Request was cancelled");let f={...m,relatedRequestId:e.id};s&&!f.relatedTask&&(f.relatedTask={taskId:s});let g=f.relatedTask?.taskId??s;return g&&c&&await c.updateTaskStatus(g,"input_required"),await this.request(l,d,f)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:s,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async l=>{if(i.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:e.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)},async l=>{if(i.signal.aborted)return;let d={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:A.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"error",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===i&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,o=Number(r),s=this._progressHandlers.get(o);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let i=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&i&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),i(c);return}s(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Mt(e))n(e);else{let i=new M(e.error.code,e.error.message,e.error.data);n(i)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let s=!1;if(Mt(e)&&e.result&&typeof e.result=="object"){let i=e.result;if(i.task&&typeof i.task=="object"){let a=i.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,r))}}if(s||this._progressHandlers.delete(r),Mt(e))o(e);else{let i=M.fromError(e.error.code,e.error.message,e.error.data);o(i)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(e,r,n)}}catch(i){yield{type:"error",error:i instanceof M?i:new M(A.InternalError,String(i))}}return}let s;try{let i=await this.request(e,At,n);if(i.task)s=i.task.taskId,yield{type:"taskCreated",task:i.task};else throw new M(A.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},n);if(yield{type:"taskStatus",task:a},_t(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},r,n)}:a.status==="failed"?yield{type:"error",error:new M(A.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new M(A.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(i){yield{type:"error",error:i instanceof M?i:new M(A.InternalError,String(i))}}}request(e,r,n){let{relatedRequestId:o,resumptionToken:s,onresumptiontoken:i,task:a,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=$=>{l($)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch($){d($);return}n?.signal?.throwIfAborted();let m=this._requestMessageId++,f={...e,jsonrpc:"2.0",id:m};n?.onprogress&&(this._progressHandlers.set(m,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta||{},progressToken:m}}),a&&(f.params={...f.params,task:a}),c&&(f.params={...f.params,_meta:{...f.params?._meta||{},[gt]:c}});let g=$=>{this._responseHandlers.delete(m),this._progressHandlers.delete(m),this._cleanupTimeout(m),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:m,reason:String($)}},{relatedRequestId:o,resumptionToken:s,onresumptiontoken:i}).catch(z=>this._onerror(new Error(`Failed to send cancellation: ${z}`)));let k=$ instanceof M?$:new M(A.RequestTimeout,String($));l(k)};this._responseHandlers.set(m,$=>{if(!n?.signal?.aborted){if($ instanceof Error)return l($);try{let k=Ue(r,$.result);k.success?u(k.data):l(k.error)}catch(k){l(k)}}}),n?.signal?.addEventListener("abort",()=>{g(n?.signal?.reason)});let h=n?.timeout??cw,y=()=>g(M.fromError(A.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(m,h,n?.maxTotalTimeout,y,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let $=k=>{let z=this._responseHandlers.get(m);z?z(k):this._onerror(new Error(`Response handler missing for side-channeled request ${m}`))};this._requestResolvers.set(m,$),this._enqueueTaskMessage(v,{type:"request",message:f,timestamp:Date.now()}).catch(k=>{this._cleanupTimeout(m),l(k)})}else this._transport.send(f,{relatedRequestId:o,resumptionToken:s,onresumptiontoken:i}).catch($=>{this._cleanupTimeout(m),l($)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},Po,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},Mo,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},Wu,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[gt]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[gt]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let i={...e,jsonrpc:"2.0"};r?.relatedTask&&(i={...i,params:{...i.params,_meta:{...i.params?._meta||{},[gt]:r.relatedTask}}}),await this._transport.send(i,r)}setRequestHandler(e,r){let n=Hi(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,s)=>{let i=Wi(e,o);return Promise.resolve(r(i,s))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=Hi(e);this._notificationHandlers.set(n,o=>{let s=Wi(e,o);return Promise.resolve(r(s))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,o)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let o of n)if(o.type==="request"&&Zr(o.message)){let s=o.message.id,i=this._requestResolvers.get(s);i?(i(new M(A.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(e);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,s)=>{if(r.aborted){s(new M(A.InvalidRequest,"Request cancelled"));return}let i=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(i),s(new M(A.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!e)throw new Error("No request provided");return await n.createTask(o,e.id,{method:e.method,params:e.params},r)},getTask:async o=>{let s=await n.getTask(o,r);if(!s)throw new M(A.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(o,s,i)=>{await n.storeTaskResult(o,s,i,r);let a=await n.getTask(o,r);if(a){let c=en.parse({method:"notifications/tasks/status",params:a});await this.notification(c),_t(a.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,s,i)=>{let a=await n.getTask(o,r);if(!a)throw new M(A.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(_t(a.status))throw new M(A.InvalidParams,`Cannot update task "${o}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,s,i,r);let c=await n.getTask(o,r);if(c){let u=en.parse({method:"notifications/tasks/status",params:c});await this.notification(u),_t(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function Xu(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Qu(t,e){let r={...t};for(let n in e){let o=n,s=e[o];if(s===void 0)continue;let i=r[o];Xu(i)&&Xu(s)?r[o]={...i,...s}:r[o]=s}return r}var Wm=io(Cc(),1),Vm=io(Hm(),1);function pT(){let t=new Wm.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,Vm.default)(t),t}var fs=class{constructor(e){this._ajv=e??pT()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var hs=class{constructor(e){this._client=e}async*callToolStream(e,r=cr,n){let o=this._client,s={...n,task:n?.task??(o.isToolTask(e.name)?{}:void 0)},i=o.requestStream({method:"tools/call",params:e},r,s),a=o.getToolOutputValidator(e.name);for await(let c of i){if(c.type==="result"&&a){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new M(A.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let l=a(u.structuredContent);if(!l.valid){yield{type:"error",error:new M(A.InvalidParams,`Structured content does not match the tool's output schema: ${l.errorMessage}`)};return}}catch(l){if(l instanceof M){yield{type:"error",error:l};return}yield{type:"error",error:new M(A.InvalidParams,`Failed to validate structured content: ${l instanceof Error?l.message:String(l)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function Bm(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function Gm(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function gs(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let o of Object.keys(n)){let s=n[o];r[o]===void 0&&Object.prototype.hasOwnProperty.call(s,"default")&&(r[o]=s.default),r[o]!==void 0&&gs(s,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&gs(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&gs(r,e)}}function mT(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var ys=class extends Ao{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new fs,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",ji,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",Ii,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",Ei,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new hs(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Qu(this._capabilities,e)}setRequestHandler(e,r){let o=ao(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let s=co(o);if(typeof s!="string")throw new Error("Schema method literal must be a string");let i=s;if(i==="elicitation/create"){let a=async(c,u)=>{let l=Ue(Li,c);if(!l.success){let $=l.error instanceof Error?l.error.message:String(l.error);throw new M(A.InvalidParams,`Invalid elicitation request: ${$}`)}let{params:d}=l.data;d.mode=d.mode??"form";let{supportsFormMode:m,supportsUrlMode:f}=mT(this._capabilities.elicitation);if(d.mode==="form"&&!m)throw new M(A.InvalidParams,"Client does not support form-mode elicitation requests");if(d.mode==="url"&&!f)throw new M(A.InvalidParams,"Client does not support URL-mode elicitation requests");let g=await Promise.resolve(r(c,u));if(d.task){let $=Ue(At,g);if(!$.success){let k=$.error instanceof Error?$.error.message:String($.error);throw new M(A.InvalidParams,`Invalid task creation result: ${k}`)}return $.data}let h=Ue(Ui,g);if(!h.success){let $=h.error instanceof Error?h.error.message:String(h.error);throw new M(A.InvalidParams,`Invalid elicitation result: ${$}`)}let y=h.data,v=d.mode==="form"?d.requestedSchema:void 0;if(d.mode==="form"&&y.action==="accept"&&y.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{gs(v,y.content)}catch{}return y};return super.setRequestHandler(e,a)}if(i==="sampling/createMessage"){let a=async(c,u)=>{let l=Ue(Ni,c);if(!l.success){let y=l.error instanceof Error?l.error.message:String(l.error);throw new M(A.InvalidParams,`Invalid sampling request: ${y}`)}let{params:d}=l.data,m=await Promise.resolve(r(c,u));if(d.task){let y=Ue(At,m);if(!y.success){let v=y.error instanceof Error?y.error.message:String(y.error);throw new M(A.InvalidParams,`Invalid task creation result: ${v}`)}return y.data}let g=d.tools||d.toolChoice?Di:qi,h=Ue(g,m);if(!h.success){let y=h.error instanceof Error?h.error.message:String(h.error);throw new M(A.InvalidParams,`Invalid sampling result: ${y}`)}return h.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:ir,capabilities:this._capabilities,clientInfo:this._clientInfo}},bi,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!Au.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){Bm(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&Gm(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},zt,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},Fi,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},zt,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},Ai,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Pi,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},ki,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Ti,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},$i,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},zt,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},zt,r)}async callTool(e,r=cr,n){if(this.isToolTaskRequired(e.name))throw new M(A.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let o=await this.request({method:"tools/call",params:e},r,n),s=this.getToolOutputValidator(e.name);if(s){if(!o.structuredContent&&!o.isError)throw new M(A.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(o.structuredContent)try{let i=s(o.structuredContent);if(!i.valid)throw new M(A.InvalidParams,`Structured content does not match the tool's output schema: ${i.errorMessage}`)}catch(i){throw i instanceof M?i:new M(A.InvalidParams,`Failed to validate structured content: ${i instanceof Error?i.message:String(i)}`)}}return o}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let o=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,o)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},Oi,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let s=Ju.safeParse(n);if(!s.success)throw new Error(`Invalid ${e} listChanged options: ${s.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:i,debounceMs:a}=s.data,{onChanged:c}=n,u=async()=>{if(!i){c(null,null);return}try{let d=await o();c(null,d)}catch(d){let m=d instanceof Error?d:new Error(String(d));c(m,null)}},l=()=>{if(a){let d=this._listChangedDebounceTimers.get(e);d&&clearTimeout(d);let m=setTimeout(u,a);this._listChangedDebounceTimers.set(e,m)}else u()};this.setNotificationHandler(r,l)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var qf=io(jf(),1);import Gc from"process";import{PassThrough as FT}from"stream";var LT=10*1024*1024,ws=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??LT}append(e){if((this._buffer?.length??0)+e.length>this._maxBufferSize)throw this.clear(),new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
195
+ `);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),UT(r)}clear(){this._buffer=void 0}};function UT(t){return yt.parse(JSON.parse(t))}function Nf(t){return JSON.stringify(t)+`
196
+ `}var HT=Gc.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function WT(){let t={};for(let e of HT){let r=Gc.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var vs=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new ws({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new FT)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,qf.default)(this._serverParams.command,this._serverParams.args??[],{env:{...WT(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Gc.platform==="win32",cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{try{this._readBuffer.append(n),this.processReadBuffer()}catch(o){this.onerror?.(o),this.close().catch(()=>{})}}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=Nf(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var Hf=io(Ff(),1);function Wf(t){if(t)try{return Hf.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}function Rr(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function bs(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Rr(e.headers),...Rr(n.headers)}:e.headers};return t(r,o)}:t}var Zc;Zc=globalThis.crypto?.webcrypto??globalThis.crypto??import("crypto").then(t=>t.webcrypto);async function QT(t){return(await Zc).getRandomValues(new Uint8Array(t))}async function ex(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await QT(t-n.length);for(let s of o)s<r&&(n+=e[s%e.length])}return n}async function tx(t){return await ex(t)}async function rx(t){let e=await(await Zc).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Jc(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await tx(t),r=await rx(e);return{code_verifier:e,code_challenge:r}}var ye=zl().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:jl.custom,message:"URL must be parseable",fatal:!0}),El}).refine(t=>{let e=new URL(t);return e.protocol!=="javascript:"&&e.protocol!=="data:"&&e.protocol!=="vbscript:"},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),Bf=ce({resource:p().url(),authorization_servers:T(ye).optional(),jwks_uri:p().url().optional(),scopes_supported:T(p()).optional(),bearer_methods_supported:T(p()).optional(),resource_signing_alg_values_supported:T(p()).optional(),resource_name:p().optional(),resource_documentation:p().optional(),resource_policy_uri:p().url().optional(),resource_tos_uri:p().url().optional(),tls_client_certificate_bound_access_tokens:Z().optional(),authorization_details_types_supported:T(p()).optional(),dpop_signing_alg_values_supported:T(p()).optional(),dpop_bound_access_tokens_required:Z().optional()}),Yc=ce({issuer:p(),authorization_endpoint:ye,token_endpoint:ye,registration_endpoint:ye.optional(),scopes_supported:T(p()).optional(),response_types_supported:T(p()),response_modes_supported:T(p()).optional(),grant_types_supported:T(p()).optional(),token_endpoint_auth_methods_supported:T(p()).optional(),token_endpoint_auth_signing_alg_values_supported:T(p()).optional(),service_documentation:ye.optional(),revocation_endpoint:ye.optional(),revocation_endpoint_auth_methods_supported:T(p()).optional(),revocation_endpoint_auth_signing_alg_values_supported:T(p()).optional(),introspection_endpoint:p().optional(),introspection_endpoint_auth_methods_supported:T(p()).optional(),introspection_endpoint_auth_signing_alg_values_supported:T(p()).optional(),code_challenge_methods_supported:T(p()).optional(),client_id_metadata_document_supported:Z().optional()}),nx=ce({issuer:p(),authorization_endpoint:ye,token_endpoint:ye,userinfo_endpoint:ye.optional(),jwks_uri:ye,registration_endpoint:ye.optional(),scopes_supported:T(p()).optional(),response_types_supported:T(p()),response_modes_supported:T(p()).optional(),grant_types_supported:T(p()).optional(),acr_values_supported:T(p()).optional(),subject_types_supported:T(p()),id_token_signing_alg_values_supported:T(p()),id_token_encryption_alg_values_supported:T(p()).optional(),id_token_encryption_enc_values_supported:T(p()).optional(),userinfo_signing_alg_values_supported:T(p()).optional(),userinfo_encryption_alg_values_supported:T(p()).optional(),userinfo_encryption_enc_values_supported:T(p()).optional(),request_object_signing_alg_values_supported:T(p()).optional(),request_object_encryption_alg_values_supported:T(p()).optional(),request_object_encryption_enc_values_supported:T(p()).optional(),token_endpoint_auth_methods_supported:T(p()).optional(),token_endpoint_auth_signing_alg_values_supported:T(p()).optional(),display_values_supported:T(p()).optional(),claim_types_supported:T(p()).optional(),claims_supported:T(p()).optional(),service_documentation:p().optional(),claims_locales_supported:T(p()).optional(),ui_locales_supported:T(p()).optional(),claims_parameter_supported:Z().optional(),request_parameter_supported:Z().optional(),request_uri_parameter_supported:Z().optional(),require_request_uri_registration:Z().optional(),op_policy_uri:ye.optional(),op_tos_uri:ye.optional(),client_id_metadata_document_supported:Z().optional()}),Gf=x({...nx.shape,...Yc.pick({code_challenge_methods_supported:!0}).shape}),Kf=x({access_token:p(),id_token:p().optional(),token_type:p(),expires_in:Nl.number().optional(),scope:p().optional(),refresh_token:p().optional()}).strip(),Zf=x({error:p(),error_description:p().optional(),error_uri:p().optional()}),Vf=ye.optional().or(P("").transform(()=>{})),ox=x({redirect_uris:T(ye),token_endpoint_auth_method:p().optional(),grant_types:T(p()).optional(),response_types:T(p()).optional(),client_name:p().optional(),client_uri:ye.optional(),logo_uri:Vf,scope:p().optional(),contacts:T(p()).optional(),tos_uri:Vf,policy_uri:p().optional(),jwks_uri:ye.optional(),jwks:Il().optional(),software_id:p().optional(),software_version:p().optional(),software_statement:p().optional()}).strip(),sx=x({client_id:p(),client_secret:p().optional(),client_id_issued_at:B().optional(),client_secret_expires_at:B().optional()}).strip(),Jf=ox.merge(sx),_O=x({error:p(),error_description:p().optional()}).strip(),wO=x({token:p(),token_type_hint:p().optional()}).strip();function Yf(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function Xf({requestedResource:t,configuredResource:e}){let r=typeof t=="string"?new URL(t):new URL(t.href),n=typeof e=="string"?new URL(e):new URL(e.href);if(r.origin!==n.origin||r.pathname.length<n.pathname.length)return!1;let o=r.pathname.endsWith("/")?r.pathname:r.pathname+"/",s=n.pathname.endsWith("/")?n.pathname:n.pathname+"/";return o.startsWith(s)}var ae=class extends Error{constructor(e,r){super(e),this.errorUri=r,this.name=this.constructor.name}toResponseObject(){let e={error:this.errorCode,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}get errorCode(){return this.constructor.errorCode}},An=class extends ae{};An.errorCode="invalid_request";var Vt=class extends ae{};Vt.errorCode="invalid_client";var Bt=class extends ae{};Bt.errorCode="invalid_grant";var Gt=class extends ae{};Gt.errorCode="unauthorized_client";var In=class extends ae{};In.errorCode="unsupported_grant_type";var On=class extends ae{};On.errorCode="invalid_scope";var jn=class extends ae{};jn.errorCode="access_denied";var st=class extends ae{};st.errorCode="server_error";var Nn=class extends ae{};Nn.errorCode="temporarily_unavailable";var qn=class extends ae{};qn.errorCode="unsupported_response_type";var Dn=class extends ae{};Dn.errorCode="unsupported_token_type";var Ln=class extends ae{};Ln.errorCode="invalid_token";var Un=class extends ae{};Un.errorCode="method_not_allowed";var Fn=class extends ae{};Fn.errorCode="too_many_requests";var Kt=class extends ae{};Kt.errorCode="invalid_client_metadata";var Hn=class extends ae{};Hn.errorCode="insufficient_scope";var Wn=class extends ae{};Wn.errorCode="invalid_target";var Qf={[An.errorCode]:An,[Vt.errorCode]:Vt,[Bt.errorCode]:Bt,[Gt.errorCode]:Gt,[In.errorCode]:In,[On.errorCode]:On,[jn.errorCode]:jn,[st.errorCode]:st,[Nn.errorCode]:Nn,[qn.errorCode]:qn,[Dn.errorCode]:Dn,[Ln.errorCode]:Ln,[Un.errorCode]:Un,[Fn.errorCode]:Fn,[Kt.errorCode]:Kt,[Hn.errorCode]:Hn,[Wn.errorCode]:Wn};var ke=class extends Error{constructor(e){super(e??"Unauthorized")}};function ix(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var Xc="code",Qc="S256";function ax(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&ix(t.token_endpoint_auth_method)&&(e.length===0||e.includes(t.token_endpoint_auth_method))?t.token_endpoint_auth_method:e.length===0?r?"client_secret_basic":"none":r&&e.includes("client_secret_basic")?"client_secret_basic":r&&e.includes("client_secret_post")?"client_secret_post":e.includes("none")?"none":r?"client_secret_post":"none"}function cx(t,e,r,n){let{client_id:o,client_secret:s}=e;switch(t){case"client_secret_basic":lx(o,s,r);return;case"client_secret_post":ux(o,s,n);return;case"none":dx(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function lx(t,e,r){if(!e)throw new Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${t}:${e}`);r.set("Authorization",`Basic ${n}`)}function ux(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function dx(t,e){e.set("client_id",t)}async function th(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=Zf.parse(JSON.parse(r)),{error:o,error_description:s,error_uri:i}=n,a=Qf[o]||st;return new a(s||"",i)}catch(n){let o=`${e?`HTTP ${e}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new st(o)}}async function it(t,e){try{return await el(t,e)}catch(r){if(r instanceof Vt||r instanceof Gt)return await t.invalidateCredentials?.("all"),await el(t,e);if(r instanceof Bt)return await t.invalidateCredentials?.("tokens"),await el(t,e);throw r}}async function el(t,{serverUrl:e,authorizationCode:r,scope:n,resourceMetadataUrl:o,fetchFn:s}){let i=await t.discoveryState?.(),a,c,u,l=o;if(!l&&i?.resourceMetadataUrl&&(l=new URL(i.resourceMetadataUrl)),i?.authorizationServerUrl){if(c=i.authorizationServerUrl,a=i.resourceMetadata,u=i.authorizationServerMetadata??await nh(c,{fetchFn:s}),!a)try{a=await rh(e,{resourceMetadataUrl:l},s)}catch{}(u!==i.authorizationServerMetadata||a!==i.resourceMetadata)&&await t.saveDiscoveryState?.({authorizationServerUrl:String(c),resourceMetadataUrl:l?.toString(),resourceMetadata:a,authorizationServerMetadata:u})}else{let k=await _x(e,{resourceMetadataUrl:l,fetchFn:s});c=k.authorizationServerUrl,u=k.authorizationServerMetadata,a=k.resourceMetadata,await t.saveDiscoveryState?.({authorizationServerUrl:String(c),resourceMetadataUrl:l?.toString(),resourceMetadata:a,authorizationServerMetadata:u})}let d=await mx(e,t,a),m=n||a?.scopes_supported?.join(" ")||t.clientMetadata.scope,f=await Promise.resolve(t.clientInformation());if(!f){if(r!==void 0)throw new Error("Existing OAuth client information is required when exchanging an authorization code");let k=u?.client_id_metadata_document_supported===!0,z=t.clientMetadataUrl;if(z&&!px(z))throw new Kt(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${z}`);if(k&&z)f={client_id:z},await t.saveClientInformation?.(f);else{if(!t.saveClientInformation)throw new Error("OAuth client information must be saveable for dynamic registration");let b=await kx(c,{metadata:u,clientMetadata:t.clientMetadata,scope:m,fetchFn:s});await t.saveClientInformation(b),f=b}}let g=!t.redirectUrl;if(r!==void 0||g){let k=await Sx(t,c,{metadata:u,resource:d,authorizationCode:r,fetchFn:s});return await t.saveTokens(k),"AUTHORIZED"}let h=await t.tokens();if(h?.refresh_token)try{let k=await bx(c,{metadata:u,clientInformation:f,refreshToken:h.refresh_token,resource:d,addClientAuthentication:t.addClientAuthentication,fetchFn:s});return await t.saveTokens(k),"AUTHORIZED"}catch(k){if(!(!(k instanceof ae)||k instanceof st))throw k}let y=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:$}=await wx(c,{metadata:u,clientInformation:f,state:y,redirectUrl:t.redirectUrl,scope:m,resource:d});return await t.saveCodeVerifier($),await t.redirectToAuthorization(v),"REDIRECT"}function px(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function mx(t,e,r){let n=Yf(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!Xf({requestedResource:n,configuredResource:r.resource}))throw new Error(`Protected resource ${r.resource} does not match expected ${n} (or origin)`);return new URL(r.resource)}}function Cr(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=tl(t,"resource_metadata")||void 0,s;if(o)try{s=new URL(o)}catch{}let i=tl(t,"scope")||void 0,a=tl(t,"error")||void 0;return{resourceMetadataUrl:s,scope:i,error:a}}function tl(t,e){let r=t.headers.get("WWW-Authenticate");if(!r)return null;let n=new RegExp(`${e}=(?:"([^"]+)"|([^\\s,]+))`),o=r.match(n);return o?o[1]||o[2]:null}async function rh(t,e,r=fetch){let n=await gx(t,"oauth-protected-resource",r,{protocolVersion:e?.protocolVersion,metadataUrl:e?.resourceMetadataUrl});if(!n||n.status===404)throw await n?.body?.cancel(),new Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!n.ok)throw await n.body?.cancel(),new Error(`HTTP ${n.status} trying to load well-known OAuth protected resource metadata.`);return Bf.parse(await n.json())}async function rl(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?rl(t,void 0,r):void 0;throw n}}function fx(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function eh(t,e,r=fetch){return await rl(t,{"MCP-Protocol-Version":e},r)}function hx(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function gx(t,e,r,n){let o=new URL(t),s=n?.protocolVersion??ir,i;if(n?.metadataUrl)i=new URL(n.metadataUrl);else{let c=fx(e,o.pathname);i=new URL(c,n?.metadataServerUrl??o),i.search=o.search}let a=await eh(i,s,r);if(!n?.metadataUrl&&hx(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await eh(c,s,r)}return a}function yx(t){let e=typeof t=="string"?new URL(t):t,r=e.pathname!=="/",n=[];if(!r)return n.push({url:new URL("/.well-known/oauth-authorization-server",e.origin),type:"oauth"}),n.push({url:new URL("/.well-known/openid-configuration",e.origin),type:"oidc"}),n;let o=e.pathname;return o.endsWith("/")&&(o=o.slice(0,-1)),n.push({url:new URL(`/.well-known/oauth-authorization-server${o}`,e.origin),type:"oauth"}),n.push({url:new URL(`/.well-known/openid-configuration${o}`,e.origin),type:"oidc"}),n.push({url:new URL(`${o}/.well-known/openid-configuration`,e.origin),type:"oidc"}),n}async function nh(t,{fetchFn:e=fetch,protocolVersion:r=ir}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=yx(t);for(let{url:s,type:i}of o){let a=await rl(s,n,e);if(a){if(!a.ok){if(await a.body?.cancel(),a.status>=400&&a.status<500)continue;throw new Error(`HTTP ${a.status} trying to load ${i==="oauth"?"OAuth":"OpenID provider"} metadata from ${s}`)}return i==="oauth"?Yc.parse(await a.json()):Gf.parse(await a.json())}}}async function _x(t,e){let r,n;try{r=await rh(t,{resourceMetadataUrl:e?.resourceMetadataUrl},e?.fetchFn),r.authorization_servers&&r.authorization_servers.length>0&&(n=r.authorization_servers[0])}catch{}n||(n=String(new URL("/",t)));let o=await nh(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function wx(t,{metadata:e,clientInformation:r,redirectUrl:n,scope:o,state:s,resource:i}){let a;if(e){if(a=new URL(e.authorization_endpoint),!e.response_types_supported.includes(Xc))throw new Error(`Incompatible auth server: does not support response type ${Xc}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Qc))throw new Error(`Incompatible auth server: does not support code challenge method ${Qc}`)}else a=new URL("/authorize",t);let c=await Jc(),u=c.code_verifier,l=c.code_challenge;return a.searchParams.set("response_type",Xc),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",l),a.searchParams.set("code_challenge_method",Qc),a.searchParams.set("redirect_uri",String(n)),s&&a.searchParams.set("state",s),o&&a.searchParams.set("scope",o),o?.includes("offline_access")&&a.searchParams.append("prompt","consent"),i&&a.searchParams.set("resource",i.href),{authorizationUrl:a,codeVerifier:u}}function vx(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function oh(t,{metadata:e,tokenRequestParams:r,clientInformation:n,addClientAuthentication:o,resource:s,fetchFn:i}){let a=e?.token_endpoint?new URL(e.token_endpoint):new URL("/token",t),c=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"});if(s&&r.set("resource",s.href),o)await o(c,r,a,e);else if(n){let l=e?.token_endpoint_auth_methods_supported??[],d=ax(n,l);cx(d,n,c,r)}let u=await(i??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await th(u);return Kf.parse(await u.json())}async function bx(t,{metadata:e,clientInformation:r,refreshToken:n,resource:o,addClientAuthentication:s,fetchFn:i}){let a=new URLSearchParams({grant_type:"refresh_token",refresh_token:n}),c=await oh(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:s,resource:o,fetchFn:i});return{refresh_token:n,...c}}async function Sx(t,e,{metadata:r,resource:n,authorizationCode:o,fetchFn:s}={}){let i=t.clientMetadata.scope,a;if(t.prepareTokenRequest&&(a=await t.prepareTokenRequest(i)),!a){if(!o)throw new Error("Either provider.prepareTokenRequest() or authorizationCode is required");if(!t.redirectUrl)throw new Error("redirectUrl is required for authorization_code flow");let u=await t.codeVerifier();a=vx(o,u,t.redirectUrl)}let c=await t.clientInformation();return oh(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:s})}async function kx(t,{metadata:e,clientMetadata:r,scope:n,fetchFn:o}){let s;if(e){if(!e.registration_endpoint)throw new Error("Incompatible auth server: does not support dynamic client registration");s=new URL(e.registration_endpoint)}else s=new URL("/register",t);let i=await(o??fetch)(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,...n!==void 0?{scope:n}:{}})});if(!i.ok)throw await th(i);return Jf.parse(await i.json())}var Vn=class extends Error{constructor(e,r){super(e),this.name="ParseError",this.type=r.type,this.field=r.field,this.value=r.value,this.line=r.line}},sh=10,Tx=13,Zt=32;function nl(t){}function Ss(t){if(typeof t=="function")throw new TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:e=nl,onError:r=nl,onRetry:n=nl,onComment:o,maxBufferSize:s}=t,i=[],a=0,c=!0,u,l="",d=0,m,f=!1;function g(w){if(f)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(c&&(c=!1,w.charCodeAt(0)===239&&w.charCodeAt(1)===187&&w.charCodeAt(2)===191&&(w=w.slice(3))),i.length===0){let ne=y(w);ne!==""&&(i.push(ne),a=ne.length),h();return}if(w.indexOf(`
197
197
  `)===-1&&w.indexOf("\r")===-1){i.push(w),a+=w.length,h();return}i.push(w);let b=i.join("");i.length=0,a=0;let j=y(b);j!==""&&(i.push(j),a=j.length),h()}function h(){s!==void 0&&(a+l.length<=s||(f=!0,i.length=0,a=0,u=void 0,l="",d=0,m=void 0,r(new Vn(`Buffered data exceeded max buffer size of ${s} characters`,{type:"max-buffer-size-exceeded"}))))}function y(w){let b=0;if(w.indexOf("\r")===-1){let j=w.indexOf(`
198
198
  `,b);for(;j!==-1;){if(b===j){d>0&&e({id:u,event:m,data:l}),u=void 0,l="",d=0,m=void 0,b=j+1,j=w.indexOf(`
199
- `,b);continue}let ne=w.charCodeAt(b);if(eh(w,b,ne)){let oe=w.charCodeAt(b+5)===Zt?b+6:b+5,Te=w.slice(oe,j);if(d===0&&w.charCodeAt(j+1)===Xf){e({id:u,event:m,data:Te}),u=void 0,l="",m=void 0,b=j+2,j=w.indexOf(`
199
+ `,b);continue}let ne=w.charCodeAt(b);if(ih(w,b,ne)){let oe=w.charCodeAt(b+5)===Zt?b+6:b+5,Te=w.slice(oe,j);if(d===0&&w.charCodeAt(j+1)===sh){e({id:u,event:m,data:Te}),u=void 0,l="",m=void 0,b=j+2,j=w.indexOf(`
200
200
  `,b);continue}l=d===0?Te:`${l}
201
- ${Te}`,d++}else th(w,b,ne)?m=w.slice(w.charCodeAt(b+6)===Zt?b+7:b+6,j)||void 0:v(w,b,j);b=j+1,j=w.indexOf(`
201
+ ${Te}`,d++}else ah(w,b,ne)?m=w.slice(w.charCodeAt(b+6)===Zt?b+7:b+6,j)||void 0:v(w,b,j);b=j+1,j=w.indexOf(`
202
202
  `,b)}return w.slice(b)}for(;b<w.length;){let j=w.indexOf("\r",b),ne=w.indexOf(`
203
- `,b),oe=-1;if(j!==-1&&ne!==-1?oe=j<ne?j:ne:j!==-1?j===w.length-1?oe=-1:oe=j:ne!==-1&&(oe=ne),oe===-1)break;v(w,b,oe),b=oe+1,w.charCodeAt(b-1)===c$&&w.charCodeAt(b)===Xf&&b++}return w.slice(b)}function v(w,b,j){if(b===j){k();return}let ne=w.charCodeAt(b);if(eh(w,b,ne)){let pt=w.charCodeAt(b+5)===Zt?b+6:b+5,$l=w.slice(pt,j);l=d===0?$l:`${l}
204
- ${$l}`,d++;return}if(th(w,b,ne)){m=w.slice(w.charCodeAt(b+6)===Zt?b+7:b+6,j)||void 0;return}if(ne===105&&w.charCodeAt(b+1)===100&&w.charCodeAt(b+2)===58){let pt=w.slice(w.charCodeAt(b+3)===Zt?b+4:b+3,j);u=pt.includes("\0")?void 0:pt;return}if(ne===58){if(o){let pt=w.slice(b,j);o(pt.slice(w.charCodeAt(b+1)===Zt?2:1))}return}let oe=w.slice(b,j),Te=oe.indexOf(":");if(Te===-1){E(oe,"",oe);return}let Hr=oe.slice(0,Te),oo=oe.charCodeAt(Te+1)===Zt?2:1,so=oe.slice(Te+oo);E(Hr,so,oe)}function E(w,b,j){switch(w){case"event":m=b||void 0;break;case"data":l=d===0?b:`${l}
205
- ${b}`,d++;break;case"id":u=b.includes("\0")?void 0:b;break;case"retry":/^\d+$/.test(b)?n(parseInt(b,10)):r(new Vn(`Invalid \`retry\` value: "${b}"`,{type:"invalid-retry",value:b,line:j}));break;default:r(new Vn(`Unknown field "${w.length>20?`${w.slice(0,20)}\u2026`:w}"`,{type:"unknown-field",field:w,value:b,line:j}));break}}function k(){d>0&&e({id:u,event:m,data:l}),u=void 0,l="",d=0,m=void 0}function z(w={}){if(w.consume&&i.length>0){let b=i.join("");v(b,0,b.length)}c=!0,u=void 0,l="",d=0,m=void 0,i.length=0,a=0,f=!1}return{feed:g,reset:z}}function eh(t,e,r){return r===100&&t.charCodeAt(e+1)===97&&t.charCodeAt(e+2)===116&&t.charCodeAt(e+3)===97&&t.charCodeAt(e+4)===58}function th(t,e,r){return r===101&&t.charCodeAt(e+1)===118&&t.charCodeAt(e+2)===101&&t.charCodeAt(e+3)===110&&t.charCodeAt(e+4)===116&&t.charCodeAt(e+5)===58}var bs=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let s;super({start(i){s=vs({onEvent:a=>{i.enqueue(a)},onError(a){typeof e=="function"&&e(a),(e==="terminate"||a.type==="max-buffer-size-exceeded")&&i.error(a)},onRetry:r,onComment:n,maxBufferSize:o})},transform(i){s.feed(i)}})}};var l$={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Et=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},Ss=class{constructor(e,r){this._hasCompletedAuthFlow=!1,this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=ws(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??l$}async _authThenStart(){if(!this._authProvider)throw new ke("No auth provider");let e;try{e=await it(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new ke;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._sessionId&&(e["mcp-session-id"]=this._sessionId),this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Rr(this._requestInit?.headers);return new Headers({...e,...r})}async _startOrAuthSse(e){let{resumptionToken:r}=e;try{let n=await this._commonHeaders();n.set("Accept","text/event-stream"),r&&n.set("last-event-id",r);let o=await(this._fetch??fetch)(this._url,{method:"GET",headers:n,signal:this._abortController?.signal});if(!o.ok){if(await o.body?.cancel(),o.status===401&&this._authProvider)return await this._authThenStart();if(o.status===405)return;throw new Et(o.status,`Failed to open SSE stream: ${o.statusText}`)}this._handleSseStream(o.body,e,!0)}catch(n){throw this.onerror?.(n),n}}_getNextReconnectionDelay(e){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let r=this._reconnectionOptions.initialReconnectionDelay,n=this._reconnectionOptions.reconnectionDelayGrowFactor,o=this._reconnectionOptions.maxReconnectionDelay;return Math.min(r*Math.pow(n,e),o)}_scheduleReconnection(e,r=0){let n=this._reconnectionOptions.maxRetries;if(r>=n){this.onerror?.(new Error(`Maximum reconnection attempts (${n}) exceeded.`));return}let o=this._getNextReconnectionDelay(r);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(e).catch(s=>{this.onerror?.(new Error(`Failed to reconnect SSE stream: ${s instanceof Error?s.message:String(s)}`)),this._scheduleReconnection(e,r+1)})},o)}_handleSseStream(e,r,n){if(!e)return;let{onresumptiontoken:o,replayMessageId:s}=r,i,a=!1,c=!1;(async()=>{try{let l=e.pipeThrough(new TextDecoderStream).pipeThrough(new bs({onRetry:f=>{this._serverRetryMs=f}})).getReader();for(;;){let{value:f,done:g}=await l.read();if(g)break;if(f.id&&(i=f.id,a=!0,o?.(f.id)),!!f.data&&(!f.event||f.event==="message"))try{let h=yt.parse(JSON.parse(f.data));Mt(h)&&(c=!0,s!==void 0&&(h.id=s)),this.onmessage?.(h)}catch(h){this.onerror?.(h)}}(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:i,onresumptiontoken:o,replayMessageId:s},0)}catch(l){if(this.onerror?.(new Error(`SSE stream disconnected: ${l}`)),(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:i,onresumptiontoken:o,replayMessageId:s},0)}catch(f){this.onerror?.(new Error(`Failed to reconnect: ${f instanceof Error?f.message:String(f)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new ke("No auth provider");if(await it(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new ke("Failed to authorize")}async close(){this._reconnectionTimeout&&(clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0),this._abortController?.abort(),this.onclose?.()}async send(e,r){try{let{resumptionToken:n,onresumptiontoken:o}=r||{};if(n){this._startOrAuthSse({resumptionToken:n,replayMessageId:Zr(e)?e.id:void 0}).catch(m=>this.onerror?.(m));return}let s=await this._commonHeaders();s.set("content-type","application/json"),s.set("accept","application/json, text/event-stream");let i={...this._requestInit,method:"POST",headers:s,body:JSON.stringify(e),signal:this._abortController?.signal},a=await(this._fetch??fetch)(this._url,i),c=a.headers.get("mcp-session-id");if(c&&(this._sessionId=c),!a.ok){let m=await a.text().catch(()=>null);if(a.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new Et(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:f,scope:g}=Cr(a);if(this._resourceMetadataUrl=f,this._scope=g,await it(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new ke;return this._hasCompletedAuthFlow=!0,this.send(e)}if(a.status===403&&this._authProvider){let{resourceMetadataUrl:f,scope:g,error:h}=Cr(a);if(h==="insufficient_scope"){let y=a.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===y)throw new Et(403,"Server returned 403 after trying upscoping");if(g&&(this._scope=g),f&&(this._resourceMetadataUrl=f),this._lastUpscopingHeader=y??void 0,await it(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new ke;return this.send(e)}}throw new Et(a.status,`Error POSTing to endpoint: ${m}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,a.status===202){await a.body?.cancel(),Hu(e)&&this._startOrAuthSse({resumptionToken:void 0}).catch(m=>this.onerror?.(m));return}let l=(Array.isArray(e)?e:[e]).filter(m=>"method"in m&&"id"in m&&m.id!==void 0).length>0,d=a.headers.get("content-type");if(l)if(d?.includes("text/event-stream"))this._handleSseStream(a.body,{onresumptiontoken:o},!1);else if(d?.includes("application/json")){let m=await a.json(),f=Array.isArray(m)?m.map(g=>yt.parse(g)):[yt.parse(m)];for(let g of f)this.onmessage?.(g)}else throw await a.body?.cancel(),new Et(-1,`Unexpected content type: ${d}`);else await a.body?.cancel()}catch(n){throw this.onerror?.(n),n}}get sessionId(){return this._sessionId}async terminateSession(){if(this._sessionId)try{let e=await this._commonHeaders(),r={...this._requestInit,method:"DELETE",headers:e,signal:this._abortController?.signal},n=await(this._fetch??fetch)(this._url,r);if(await n.body?.cancel(),!n.ok&&n.status!==405)throw new Et(n.status,`Failed to terminate session: ${n.statusText}`);this._sessionId=void 0}catch(e){throw this.onerror?.(e),e}}setProtocolVersion(e){this._protocolVersion=e}get protocolVersion(){return this._protocolVersion}async resumeStream(e,r){await this._startOrAuthSse({resumptionToken:e,onresumptiontoken:r?.onresumptiontoken})}};var Ts=class extends Event{constructor(e,r){var n,o;super(e),this.code=(n=r?.code)!=null?n:void 0,this.message=(o=r?.message)!=null?o:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,r,n){return n(rh(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(rh(this),r)}};function u$(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function nl(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(nl).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${nl(t.cause)}`:t.message:`${t}`}function rh(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var oh=t=>{throw TypeError(t)},dl=(t,e,r)=>e.has(t)||oh("Cannot "+r),F=(t,e,r)=>(dl(t,e,"read from private field"),r?r.call(t):e.get(t)),ue=(t,e,r)=>e.has(t)?oh("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),te=(t,e,r,n)=>(dl(t,e,"write to private field"),e.set(t,r),r),at=(t,e,r)=>(dl(t,e,"access private method"),r),Me,Jt,Mr,ks,$s,Kn,Ir,Zn,Pt,zr,Or,Ar,Bn,Ge,ol,sl,il,nh,al,cl,Gn,ll,ul,Yt=class extends EventTarget{constructor(e,r){var n,o;super(),ue(this,Ge),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,ue(this,Me),ue(this,Jt),ue(this,Mr),ue(this,ks),ue(this,$s),ue(this,Kn),ue(this,Ir),ue(this,Zn,null),ue(this,Pt),ue(this,zr),ue(this,Or,null),ue(this,Ar,null),ue(this,Bn,null),ue(this,sl,async s=>{var i;F(this,zr).reset();let{body:a,redirected:c,status:u,headers:l}=s;if(u===204){at(this,Ge,Gn).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?te(this,Mr,new URL(s.url)):te(this,Mr,void 0),u!==200){at(this,Ge,Gn).call(this,`Non-200 status code (${u})`,u);return}if(!(l.get("content-type")||"").startsWith("text/event-stream")){at(this,Ge,Gn).call(this,'Invalid content type, expected "text/event-stream"',u);return}if(F(this,Me)===this.CLOSED)return;te(this,Me,this.OPEN);let d=new Event("open");if((i=F(this,Bn))==null||i.call(this,d),this.dispatchEvent(d),typeof a!="object"||!a||!("getReader"in a)){at(this,Ge,Gn).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let m=new TextDecoder,f=a.getReader(),g=!0;do{let{done:h,value:y}=await f.read();y&&F(this,zr).feed(m.decode(y,{stream:!h})),h&&(g=!1,F(this,zr).reset(),at(this,Ge,ll).call(this))}while(g)}),ue(this,il,s=>{te(this,Pt,void 0),!(s.name==="AbortError"||s.type==="aborted")&&at(this,Ge,ll).call(this,nl(s))}),ue(this,al,s=>{typeof s.id=="string"&&te(this,Zn,s.id);let i=new MessageEvent(s.event||"message",{data:s.data,origin:F(this,Mr)?F(this,Mr).origin:F(this,Jt).origin,lastEventId:s.id||""});F(this,Ar)&&(!s.event||s.event==="message")&&F(this,Ar).call(this,i),this.dispatchEvent(i)}),ue(this,cl,s=>{te(this,Kn,s)}),ue(this,ul,()=>{te(this,Ir,void 0),F(this,Me)===this.CONNECTING&&at(this,Ge,ol).call(this)});try{if(e instanceof URL)te(this,Jt,e);else if(typeof e=="string")te(this,Jt,new URL(e,d$()));else throw new Error("Invalid URL")}catch{throw u$("An invalid or illegal string was specified")}te(this,zr,vs({onEvent:F(this,al),onRetry:F(this,cl)})),te(this,Me,this.CONNECTING),te(this,Kn,3e3),te(this,$s,(n=r?.fetch)!=null?n:globalThis.fetch),te(this,ks,(o=r?.withCredentials)!=null?o:!1),at(this,Ge,ol).call(this)}get readyState(){return F(this,Me)}get url(){return F(this,Jt).href}get withCredentials(){return F(this,ks)}get onerror(){return F(this,Or)}set onerror(e){te(this,Or,e)}get onmessage(){return F(this,Ar)}set onmessage(e){te(this,Ar,e)}get onopen(){return F(this,Bn)}set onopen(e){te(this,Bn,e)}addEventListener(e,r,n){let o=r;super.addEventListener(e,o,n)}removeEventListener(e,r,n){let o=r;super.removeEventListener(e,o,n)}close(){F(this,Ir)&&clearTimeout(F(this,Ir)),F(this,Me)!==this.CLOSED&&(F(this,Pt)&&F(this,Pt).abort(),te(this,Me,this.CLOSED),te(this,Pt,void 0))}};Me=new WeakMap,Jt=new WeakMap,Mr=new WeakMap,ks=new WeakMap,$s=new WeakMap,Kn=new WeakMap,Ir=new WeakMap,Zn=new WeakMap,Pt=new WeakMap,zr=new WeakMap,Or=new WeakMap,Ar=new WeakMap,Bn=new WeakMap,Ge=new WeakSet,ol=function(){te(this,Me,this.CONNECTING),te(this,Pt,new AbortController),F(this,$s)(F(this,Jt),at(this,Ge,nh).call(this)).then(F(this,sl)).catch(F(this,il))},sl=new WeakMap,il=new WeakMap,nh=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...F(this,Zn)?{"Last-Event-ID":F(this,Zn)}:void 0},cache:"no-store",signal:(t=F(this,Pt))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},al=new WeakMap,cl=new WeakMap,Gn=function(t,e){var r;F(this,Me)!==this.CLOSED&&te(this,Me,this.CLOSED);let n=new Ts("error",{code:e,message:t});(r=F(this,Or))==null||r.call(this,n),this.dispatchEvent(n)},ll=function(t,e){var r;if(F(this,Me)===this.CLOSED)return;te(this,Me,this.CONNECTING);let n=new Ts("error",{code:e,message:t});(r=F(this,Or))==null||r.call(this,n),this.dispatchEvent(n),te(this,Ir,setTimeout(F(this,ul),F(this,Kn)))},ul=new WeakMap,Yt.CONNECTING=0,Yt.OPEN=1,Yt.CLOSED=2;function d$(){let t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}var pl=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},xs=class{constructor(e,r){this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=r?.eventSourceInit,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=ws(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new ke("No auth provider");let e;try{e=await it(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new ke;return await this._startOrAuth()}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Rr(this._requestInit?.headers);return new Headers({...e,...r})}_startOrAuth(){let e=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((r,n)=>{this._eventSource=new Yt(this._url.href,{...this._eventSourceInit,fetch:async(o,s)=>{let i=await this._commonHeaders();i.set("Accept","text/event-stream");let a=await e(o,{...s,headers:i});if(a.status===401&&a.headers.has("www-authenticate")){let{resourceMetadataUrl:c,scope:u}=Cr(a);this._resourceMetadataUrl=c,this._scope=u}return a}}),this._abortController=new AbortController,this._eventSource.onerror=o=>{if(o.code===401&&this._authProvider){this._authThenStart().then(r,n);return}let s=new pl(o.code,o.message,o);n(s),this.onerror?.(s)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",o=>{let s=o;try{if(this._endpoint=new URL(s.data,this._url),this._endpoint.origin!==this._url.origin)throw new Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(i){n(i),this.onerror?.(i),this.close();return}r()}),this._eventSource.onmessage=o=>{let s=o,i;try{i=yt.parse(JSON.parse(s.data))}catch(a){this.onerror?.(a);return}this.onmessage?.(i)}})}async start(){if(this._eventSource)throw new Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(e){if(!this._authProvider)throw new ke("No auth provider");if(await it(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new ke("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(e){if(!this._endpoint)throw new Error("Not connected");try{let r=await this._commonHeaders();r.set("content-type","application/json");let n={...this._requestInit,method:"POST",headers:r,body:JSON.stringify(e),signal:this._abortController?.signal},o=await(this._fetch??fetch)(this._endpoint,n);if(!o.ok){let s=await o.text().catch(()=>null);if(o.status===401&&this._authProvider){let{resourceMetadataUrl:i,scope:a}=Cr(o);if(this._resourceMetadataUrl=i,this._scope=a,await it(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new ke;return this.send(e)}throw new Error(`Error POSTing to endpoint (HTTP ${o.status}): ${s}`)}await o.body?.cancel()}catch(r){throw this.onerror?.(r),r}}setProtocolVersion(e){this._protocolVersion=e}};var p$=C({module:"mcp"});function sh(t){return t.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,r,n)=>process.env[r||n]??"")}function m$(t){let e={};for(let[r,n]of Object.entries(t))e[r]=n??"";return e}var Es=class{name;config;client=null;transport=null;constructor(e){this.name=e.name,this.config=e}async connect(){if(this.config.command){let e=process.env;if(this.config.env)for(let[r,n]of Object.entries(this.config.env))e[r]=sh(n);this.transport=new _s({command:this.config.command,args:this.config.args??[],env:m$(e),stderr:"ignore"})}else if(this.config.url){let e=new URL(this.config.url),r={};if(this.config.headers)for(let[o,s]of Object.entries(this.config.headers))r[o]=sh(s);let n={requestInit:{headers:r}};this.transport=this.config.transport==="sse"?new xs(e,n):new Ss(e,n)}else throw new Error(`MCP server '${this.name}': needs either 'command' (stdio) or 'url' (http/sse)`);this.client=new hs({name:"swifty",version:"0.1.0"},{}),await this.client.connect(this.transport)}getInstructions(){return this.client?.getInstructions()??""}async listTools(){if(!this.client)throw new Error("Not connected");return(await this.client.listTools()).tools.map(({name:r,description:n,inputSchema:{properties:o,...s}})=>({name:r,description:n??"",inputSchema:{...s,properties:o??{}}}))}async callTool(e,r){if(!this.client)throw new Error("Not connected");let n=await this.client.callTool({name:e,arguments:r}),o;return n.content&&Array.isArray(n.content)?o=n.content.map(s=>s.type==="text"?s.text??"":JSON.stringify(s)).join(`
206
- `):o=JSON.stringify(n),{output:o,isError:n.isError===!0}}async disconnect(){try{await this.client?.close()}catch(e){p$.error({err:e},"mcp operation failed")}this.client=null,this.transport=null}};var f$=C({module:"mcp"}),ih=class{clients=new Map;async connectAll(e){let r={tools:[],servers:[],errors:[],instructions:[]};for(let n of e){let o=new Es(n);try{await o.connect(),this.clients.set(n.name,o),r.servers.push(n.name);let s=await o.listTools();for(let a of s)r.tools.push({serverName:n.name,tool:a});let i=o.getInstructions();i&&r.instructions.push({serverName:n.name,text:i})}catch(s){f$.error({err:s},"mcp operation failed"),r.errors.push({serverName:n.name,error:N(s)})}}return r}getClient(e){return this.clients.get(e)}async disconnectAll(){for(let e of this.clients.values())await e.disconnect();this.clients.clear()}};var h$=C({module:"mcp"});function g$(t,e){let r=n=>n.replace(/[^a-zA-Z0-9_-]/g,"_");return`mcp__${r(t)}__${r(e)}`}var ah=class{name;description;category="command";deferred=!0;client;originalName;inputSchema;constructor(e,r,n){this.name=g$(r,n.name),this.description=n.description,this.originalName=n.name,this.client=e,this.inputSchema=n.inputSchema}schema(){return{name:this.name,description:this.description,input_schema:this.inputSchema}}async execute(e,r){try{let{output:n,isError:o}=await this.client.callTool(this.originalName,r);return{output:n,isError:o}}catch(n){return h$.error({err:n},"mcp operation failed"),{output:`MCP tool error: ${N(n)}`,isError:!0}}}};import{readFileSync as ch,existsSync as lh}from"fs";import{join as ct,dirname as Ps,resolve as ml,isAbsolute as y$,relative as _$}from"path";import{homedir as uh}from"os";var lt=C({module:"memory"}),w$=5;function HO(t){let e=v$(t);if(e.length===0)return"";let r=[];for(let n of e){let o=n.path;try{let s=_$(t,n.path);s.startsWith("..")||(o=s)}catch(s){lt.error({err:s},"memory operation failed")}r.push(`Contents of ${o}:
203
+ `,b),oe=-1;if(j!==-1&&ne!==-1?oe=j<ne?j:ne:j!==-1?j===w.length-1?oe=-1:oe=j:ne!==-1&&(oe=ne),oe===-1)break;v(w,b,oe),b=oe+1,w.charCodeAt(b-1)===Tx&&w.charCodeAt(b)===sh&&b++}return w.slice(b)}function v(w,b,j){if(b===j){k();return}let ne=w.charCodeAt(b);if(ih(w,b,ne)){let pt=w.charCodeAt(b+5)===Zt?b+6:b+5,$l=w.slice(pt,j);l=d===0?$l:`${l}
204
+ ${$l}`,d++;return}if(ah(w,b,ne)){m=w.slice(w.charCodeAt(b+6)===Zt?b+7:b+6,j)||void 0;return}if(ne===105&&w.charCodeAt(b+1)===100&&w.charCodeAt(b+2)===58){let pt=w.slice(w.charCodeAt(b+3)===Zt?b+4:b+3,j);u=pt.includes("\0")?void 0:pt;return}if(ne===58){if(o){let pt=w.slice(b,j);o(pt.slice(w.charCodeAt(b+1)===Zt?2:1))}return}let oe=w.slice(b,j),Te=oe.indexOf(":");if(Te===-1){$(oe,"",oe);return}let Hr=oe.slice(0,Te),oo=oe.charCodeAt(Te+1)===Zt?2:1,so=oe.slice(Te+oo);$(Hr,so,oe)}function $(w,b,j){switch(w){case"event":m=b||void 0;break;case"data":l=d===0?b:`${l}
205
+ ${b}`,d++;break;case"id":u=b.includes("\0")?void 0:b;break;case"retry":/^\d+$/.test(b)?n(parseInt(b,10)):r(new Vn(`Invalid \`retry\` value: "${b}"`,{type:"invalid-retry",value:b,line:j}));break;default:r(new Vn(`Unknown field "${w.length>20?`${w.slice(0,20)}\u2026`:w}"`,{type:"unknown-field",field:w,value:b,line:j}));break}}function k(){d>0&&e({id:u,event:m,data:l}),u=void 0,l="",d=0,m=void 0}function z(w={}){if(w.consume&&i.length>0){let b=i.join("");v(b,0,b.length)}c=!0,u=void 0,l="",d=0,m=void 0,i.length=0,a=0,f=!1}return{feed:g,reset:z}}function ih(t,e,r){return r===100&&t.charCodeAt(e+1)===97&&t.charCodeAt(e+2)===116&&t.charCodeAt(e+3)===97&&t.charCodeAt(e+4)===58}function ah(t,e,r){return r===101&&t.charCodeAt(e+1)===118&&t.charCodeAt(e+2)===101&&t.charCodeAt(e+3)===110&&t.charCodeAt(e+4)===116&&t.charCodeAt(e+5)===58}var ks=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let s;super({start(i){s=Ss({onEvent:a=>{i.enqueue(a)},onError(a){typeof e=="function"&&e(a),(e==="terminate"||a.type==="max-buffer-size-exceeded")&&i.error(a)},onRetry:r,onComment:n,maxBufferSize:o})},transform(i){s.feed(i)}})}};var xx={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Et=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},Ts=class{constructor(e,r){this._hasCompletedAuthFlow=!1,this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=bs(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??xx}async _authThenStart(){if(!this._authProvider)throw new ke("No auth provider");let e;try{e=await it(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new ke;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._sessionId&&(e["mcp-session-id"]=this._sessionId),this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Rr(this._requestInit?.headers);return new Headers({...e,...r})}async _startOrAuthSse(e){let{resumptionToken:r}=e;try{let n=await this._commonHeaders();n.set("Accept","text/event-stream"),r&&n.set("last-event-id",r);let o=await(this._fetch??fetch)(this._url,{method:"GET",headers:n,signal:this._abortController?.signal});if(!o.ok){if(await o.body?.cancel(),o.status===401&&this._authProvider)return await this._authThenStart();if(o.status===405)return;throw new Et(o.status,`Failed to open SSE stream: ${o.statusText}`)}this._handleSseStream(o.body,e,!0)}catch(n){throw this.onerror?.(n),n}}_getNextReconnectionDelay(e){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let r=this._reconnectionOptions.initialReconnectionDelay,n=this._reconnectionOptions.reconnectionDelayGrowFactor,o=this._reconnectionOptions.maxReconnectionDelay;return Math.min(r*Math.pow(n,e),o)}_scheduleReconnection(e,r=0){let n=this._reconnectionOptions.maxRetries;if(r>=n){this.onerror?.(new Error(`Maximum reconnection attempts (${n}) exceeded.`));return}let o=this._getNextReconnectionDelay(r);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(e).catch(s=>{this.onerror?.(new Error(`Failed to reconnect SSE stream: ${s instanceof Error?s.message:String(s)}`)),this._scheduleReconnection(e,r+1)})},o)}_handleSseStream(e,r,n){if(!e)return;let{onresumptiontoken:o,replayMessageId:s}=r,i,a=!1,c=!1;(async()=>{try{let l=e.pipeThrough(new TextDecoderStream).pipeThrough(new ks({onRetry:f=>{this._serverRetryMs=f}})).getReader();for(;;){let{value:f,done:g}=await l.read();if(g)break;if(f.id&&(i=f.id,a=!0,o?.(f.id)),!!f.data&&(!f.event||f.event==="message"))try{let h=yt.parse(JSON.parse(f.data));Mt(h)&&(c=!0,s!==void 0&&(h.id=s)),this.onmessage?.(h)}catch(h){this.onerror?.(h)}}(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:i,onresumptiontoken:o,replayMessageId:s},0)}catch(l){if(this.onerror?.(new Error(`SSE stream disconnected: ${l}`)),(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:i,onresumptiontoken:o,replayMessageId:s},0)}catch(f){this.onerror?.(new Error(`Failed to reconnect: ${f instanceof Error?f.message:String(f)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new ke("No auth provider");if(await it(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new ke("Failed to authorize")}async close(){this._reconnectionTimeout&&(clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0),this._abortController?.abort(),this.onclose?.()}async send(e,r){try{let{resumptionToken:n,onresumptiontoken:o}=r||{};if(n){this._startOrAuthSse({resumptionToken:n,replayMessageId:Zr(e)?e.id:void 0}).catch(f=>this.onerror?.(f));return}let s=await this._commonHeaders();s.set("content-type","application/json"),s.set("accept","application/json, text/event-stream");let i={...this._requestInit,method:"POST",headers:s,body:JSON.stringify(e),signal:this._abortController?.signal},a=await(this._fetch??fetch)(this._url,i),c=a.headers.get("mcp-session-id");if(c&&(this._sessionId=c),!a.ok){let f=await a.text().catch(()=>null);if(a.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new Et(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:g,scope:h}=Cr(a);if(this._resourceMetadataUrl=g,this._scope=h,await it(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new ke;return this._hasCompletedAuthFlow=!0,this.send(e)}if(a.status===403&&this._authProvider){let{resourceMetadataUrl:g,scope:h,error:y}=Cr(a);if(y==="insufficient_scope"){let v=a.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===v)throw new Et(403,"Server returned 403 after trying upscoping");if(h&&(this._scope=h),g&&(this._resourceMetadataUrl=g),this._lastUpscopingHeader=v??void 0,await it(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new ke;return this.send(e)}}throw new Et(a.status,`Error POSTing to endpoint: ${f}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,a.status===202){await a.body?.cancel(),Hu(e)&&this._startOrAuthSse({resumptionToken:void 0}).catch(f=>this.onerror?.(f));return}let l=(Array.isArray(e)?e:[e]).filter(f=>"method"in f&&"id"in f&&f.id!==void 0).length>0,d=a.headers.get("content-type"),m=Wf(d);if(l)if(m==="text/event-stream")this._handleSseStream(a.body,{onresumptiontoken:o},!1);else if(m==="application/json"){let f=await a.json(),g=Array.isArray(f)?f.map(h=>yt.parse(h)):[yt.parse(f)];for(let h of g)this.onmessage?.(h)}else throw await a.body?.cancel(),new Et(-1,`Unexpected content type: ${d}`);else await a.body?.cancel()}catch(n){throw this.onerror?.(n),n}}get sessionId(){return this._sessionId}async terminateSession(){if(this._sessionId)try{let e=await this._commonHeaders(),r={...this._requestInit,method:"DELETE",headers:e,signal:this._abortController?.signal},n=await(this._fetch??fetch)(this._url,r);if(await n.body?.cancel(),!n.ok&&n.status!==405)throw new Et(n.status,`Failed to terminate session: ${n.statusText}`);this._sessionId=void 0}catch(e){throw this.onerror?.(e),e}}setProtocolVersion(e){this._protocolVersion=e}get protocolVersion(){return this._protocolVersion}async resumeStream(e,r){await this._startOrAuthSse({resumptionToken:e,onresumptiontoken:r?.onresumptiontoken})}};var $s=class extends Event{constructor(e,r){var n,o;super(e),this.code=(n=r?.code)!=null?n:void 0,this.message=(o=r?.message)!=null?o:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,r,n){return n(ch(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(ch(this),r)}};function $x(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function ol(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(ol).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${ol(t.cause)}`:t.message:`${t}`}function ch(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var uh=t=>{throw TypeError(t)},pl=(t,e,r)=>e.has(t)||uh("Cannot "+r),F=(t,e,r)=>(pl(t,e,"read from private field"),r?r.call(t):e.get(t)),ue=(t,e,r)=>e.has(t)?uh("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),te=(t,e,r,n)=>(pl(t,e,"write to private field"),e.set(t,r),r),at=(t,e,r)=>(pl(t,e,"access private method"),r),Me,Jt,Mr,xs,Es,Kn,Ir,Zn,Pt,zr,Or,Ar,Bn,Ge,sl,il,al,lh,cl,ll,Gn,ul,dl,Yt=class extends EventTarget{constructor(e,r){var n,o;super(),ue(this,Ge),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,ue(this,Me),ue(this,Jt),ue(this,Mr),ue(this,xs),ue(this,Es),ue(this,Kn),ue(this,Ir),ue(this,Zn,null),ue(this,Pt),ue(this,zr),ue(this,Or,null),ue(this,Ar,null),ue(this,Bn,null),ue(this,il,async s=>{var i;F(this,zr).reset();let{body:a,redirected:c,status:u,headers:l}=s;if(u===204){at(this,Ge,Gn).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?te(this,Mr,new URL(s.url)):te(this,Mr,void 0),u!==200){at(this,Ge,Gn).call(this,`Non-200 status code (${u})`,u);return}if(!(l.get("content-type")||"").startsWith("text/event-stream")){at(this,Ge,Gn).call(this,'Invalid content type, expected "text/event-stream"',u);return}if(F(this,Me)===this.CLOSED)return;te(this,Me,this.OPEN);let d=new Event("open");if((i=F(this,Bn))==null||i.call(this,d),this.dispatchEvent(d),typeof a!="object"||!a||!("getReader"in a)){at(this,Ge,Gn).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let m=new TextDecoder,f=a.getReader(),g=!0;do{let{done:h,value:y}=await f.read();y&&F(this,zr).feed(m.decode(y,{stream:!h})),h&&(g=!1,F(this,zr).reset(),at(this,Ge,ul).call(this))}while(g)}),ue(this,al,s=>{te(this,Pt,void 0),!(s.name==="AbortError"||s.type==="aborted")&&at(this,Ge,ul).call(this,ol(s))}),ue(this,cl,s=>{typeof s.id=="string"&&te(this,Zn,s.id);let i=new MessageEvent(s.event||"message",{data:s.data,origin:F(this,Mr)?F(this,Mr).origin:F(this,Jt).origin,lastEventId:s.id||""});F(this,Ar)&&(!s.event||s.event==="message")&&F(this,Ar).call(this,i),this.dispatchEvent(i)}),ue(this,ll,s=>{te(this,Kn,s)}),ue(this,dl,()=>{te(this,Ir,void 0),F(this,Me)===this.CONNECTING&&at(this,Ge,sl).call(this)});try{if(e instanceof URL)te(this,Jt,e);else if(typeof e=="string")te(this,Jt,new URL(e,Ex()));else throw new Error("Invalid URL")}catch{throw $x("An invalid or illegal string was specified")}te(this,zr,Ss({onEvent:F(this,cl),onRetry:F(this,ll)})),te(this,Me,this.CONNECTING),te(this,Kn,3e3),te(this,Es,(n=r?.fetch)!=null?n:globalThis.fetch),te(this,xs,(o=r?.withCredentials)!=null?o:!1),at(this,Ge,sl).call(this)}get readyState(){return F(this,Me)}get url(){return F(this,Jt).href}get withCredentials(){return F(this,xs)}get onerror(){return F(this,Or)}set onerror(e){te(this,Or,e)}get onmessage(){return F(this,Ar)}set onmessage(e){te(this,Ar,e)}get onopen(){return F(this,Bn)}set onopen(e){te(this,Bn,e)}addEventListener(e,r,n){let o=r;super.addEventListener(e,o,n)}removeEventListener(e,r,n){let o=r;super.removeEventListener(e,o,n)}close(){F(this,Ir)&&clearTimeout(F(this,Ir)),F(this,Me)!==this.CLOSED&&(F(this,Pt)&&F(this,Pt).abort(),te(this,Me,this.CLOSED),te(this,Pt,void 0))}};Me=new WeakMap,Jt=new WeakMap,Mr=new WeakMap,xs=new WeakMap,Es=new WeakMap,Kn=new WeakMap,Ir=new WeakMap,Zn=new WeakMap,Pt=new WeakMap,zr=new WeakMap,Or=new WeakMap,Ar=new WeakMap,Bn=new WeakMap,Ge=new WeakSet,sl=function(){te(this,Me,this.CONNECTING),te(this,Pt,new AbortController),F(this,Es)(F(this,Jt),at(this,Ge,lh).call(this)).then(F(this,il)).catch(F(this,al))},il=new WeakMap,al=new WeakMap,lh=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...F(this,Zn)?{"Last-Event-ID":F(this,Zn)}:void 0},cache:"no-store",signal:(t=F(this,Pt))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},cl=new WeakMap,ll=new WeakMap,Gn=function(t,e){var r;F(this,Me)!==this.CLOSED&&te(this,Me,this.CLOSED);let n=new $s("error",{code:e,message:t});(r=F(this,Or))==null||r.call(this,n),this.dispatchEvent(n)},ul=function(t,e){var r;if(F(this,Me)===this.CLOSED)return;te(this,Me,this.CONNECTING);let n=new $s("error",{code:e,message:t});(r=F(this,Or))==null||r.call(this,n),this.dispatchEvent(n),te(this,Ir,setTimeout(F(this,dl),F(this,Kn)))},dl=new WeakMap,Yt.CONNECTING=0,Yt.OPEN=1,Yt.CLOSED=2;function Ex(){let t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}var ml=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},Ps=class{constructor(e,r){this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=r?.eventSourceInit,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=bs(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new ke("No auth provider");let e;try{e=await it(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new ke;return await this._startOrAuth()}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Rr(this._requestInit?.headers);return new Headers({...e,...r})}_startOrAuth(){let e=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((r,n)=>{this._eventSource=new Yt(this._url.href,{...this._eventSourceInit,fetch:async(o,s)=>{let i=await this._commonHeaders();i.set("Accept","text/event-stream");let a=await e(o,{...s,headers:i});if(a.status===401&&a.headers.has("www-authenticate")){let{resourceMetadataUrl:c,scope:u}=Cr(a);this._resourceMetadataUrl=c,this._scope=u}return a}}),this._abortController=new AbortController,this._eventSource.onerror=o=>{if(o.code===401&&this._authProvider){this._authThenStart().then(r,n);return}let s=new ml(o.code,o.message,o);n(s),this.onerror?.(s)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",o=>{let s=o;try{if(this._endpoint=new URL(s.data,this._url),this._endpoint.origin!==this._url.origin)throw new Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(i){n(i),this.onerror?.(i),this.close();return}r()}),this._eventSource.onmessage=o=>{let s=o,i;try{i=yt.parse(JSON.parse(s.data))}catch(a){this.onerror?.(a);return}this.onmessage?.(i)}})}async start(){if(this._eventSource)throw new Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(e){if(!this._authProvider)throw new ke("No auth provider");if(await it(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new ke("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(e){if(!this._endpoint)throw new Error("Not connected");try{let r=await this._commonHeaders();r.set("content-type","application/json");let n={...this._requestInit,method:"POST",headers:r,body:JSON.stringify(e),signal:this._abortController?.signal},o=await(this._fetch??fetch)(this._endpoint,n);if(!o.ok){let s=await o.text().catch(()=>null);if(o.status===401&&this._authProvider){let{resourceMetadataUrl:i,scope:a}=Cr(o);if(this._resourceMetadataUrl=i,this._scope=a,await it(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new ke;return this.send(e)}throw new Error(`Error POSTing to endpoint (HTTP ${o.status}): ${s}`)}await o.body?.cancel()}catch(r){throw this.onerror?.(r),r}}setProtocolVersion(e){this._protocolVersion=e}};var Px=C({module:"mcp"});function dh(t){return t.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,r,n)=>process.env[r||n]??"")}function Rx(t){let e={};for(let[r,n]of Object.entries(t))e[r]=n??"";return e}var Rs=class{name;config;client=null;transport=null;constructor(e){this.name=e.name,this.config=e}async connect(){if(this.config.command){let e=process.env;if(this.config.env)for(let[r,n]of Object.entries(this.config.env))e[r]=dh(n);this.transport=new vs({command:this.config.command,args:this.config.args??[],env:Rx(e),stderr:"ignore"})}else if(this.config.url){let e=new URL(this.config.url),r={};if(this.config.headers)for(let[o,s]of Object.entries(this.config.headers))r[o]=dh(s);let n={requestInit:{headers:r}};this.transport=this.config.transport==="sse"?new Ps(e,n):new Ts(e,n)}else throw new Error(`MCP server '${this.name}': needs either 'command' (stdio) or 'url' (http/sse)`);this.client=new ys({name:"swifty",version:"0.1.0"},{}),await this.client.connect(this.transport)}getInstructions(){return this.client?.getInstructions()??""}async listTools(){if(!this.client)throw new Error("Not connected");return(await this.client.listTools()).tools.map(({name:r,description:n,inputSchema:{properties:o,...s}})=>({name:r,description:n??"",inputSchema:{...s,properties:o??{}}}))}async callTool(e,r){if(!this.client)throw new Error("Not connected");let n=await this.client.callTool({name:e,arguments:r}),o;return n.content&&Array.isArray(n.content)?o=n.content.map(s=>s.type==="text"?s.text??"":JSON.stringify(s)).join(`
206
+ `):o=JSON.stringify(n),{output:o,isError:n.isError===!0}}async disconnect(){try{await this.client?.close()}catch(e){Px.error({err:e},"mcp operation failed")}this.client=null,this.transport=null}};var Cx=C({module:"mcp"}),ph=class{clients=new Map;async connectAll(e){let r={tools:[],servers:[],errors:[],instructions:[]};for(let n of e){let o=new Rs(n);try{await o.connect(),this.clients.set(n.name,o),r.servers.push(n.name);let s=await o.listTools();for(let a of s)r.tools.push({serverName:n.name,tool:a});let i=o.getInstructions();i&&r.instructions.push({serverName:n.name,text:i})}catch(s){Cx.error({err:s},"mcp operation failed"),r.errors.push({serverName:n.name,error:N(s)})}}return r}getClient(e){return this.clients.get(e)}async disconnectAll(){for(let e of this.clients.values())await e.disconnect();this.clients.clear()}};var Mx=C({module:"mcp"});function zx(t,e){let r=n=>n.replace(/[^a-zA-Z0-9_-]/g,"_");return`mcp__${r(t)}__${r(e)}`}var mh=class{name;description;category="command";deferred=!0;client;originalName;inputSchema;constructor(e,r,n){this.name=zx(r,n.name),this.description=n.description,this.originalName=n.name,this.client=e,this.inputSchema=n.inputSchema}schema(){return{name:this.name,description:this.description,input_schema:this.inputSchema}}async execute(e,r){try{let{output:n,isError:o}=await this.client.callTool(this.originalName,r);return{output:n,isError:o}}catch(n){return Mx.error({err:n},"mcp operation failed"),{output:`MCP tool error: ${N(n)}`,isError:!0}}}};import{readFileSync as fh,existsSync as hh}from"fs";import{join as ct,dirname as Cs,resolve as fl,isAbsolute as Ax,relative as Ix}from"path";import{homedir as gh}from"os";var lt=C({module:"memory"}),Ox=5;function l1(t){let e=jx(t);if(e.length===0)return"";let r=[];for(let n of e){let o=n.path;try{let s=Ix(t,n.path);s.startsWith("..")||(o=s)}catch(s){lt.error({err:s},"memory operation failed")}r.push(`Contents of ${o}:
207
207
 
208
208
  ${n.content.replace(/\n+$/,"")}`)}return r.join(`
209
209
 
210
210
  ---
211
211
 
212
- `)}function v$(t){let e=[],r=new Set;try{let o=uh();jr(e,r,ct(o,".swifty","SWIFTY.md")),jr(e,r,ct(o,".swifty","AGENTS.md"))}catch(o){lt.error({err:o},"memory operation failed")}let n=k$(t);for(let o of n)jr(e,r,ct(o,"SWIFTY.md")),jr(e,r,ct(o,"AGENTS.md")),jr(e,r,ct(o,".swifty","SWIFTY.md"));return jr(e,r,ct(t,"SWIFTY.local.md")),e}function jr(t,e,r){let n;try{n=ml(r)}catch(i){lt.error({err:i},"memory operation failed");return}if(e.has(n)||!lh(n))return;let o;try{o=ch(n,"utf-8")}catch(i){lt.error({err:i},"memory operation failed");return}e.add(n);let s=dh(o,Ps(n),e,0);t.push({path:n,content:s})}function dh(t,e,r,n){if(n>w$)return t;let o=t.split(`
213
- `),s=[],i=!1;for(let a of o){let c=a.trim();if(c.startsWith("```")){i=!i,s.push(a);continue}if(!i){let u=b$(c);if(u){let l=S$(u,e);if(l){let d;try{d=ml(l)}catch(m){lt.error({err:m},"memory operation failed"),s.push(a);continue}if(!r.has(d))try{let m=ch(d,"utf-8");r.add(d),s.push(`<!-- included from ${u} -->`),s.push(dh(m,Ps(d),r,n+1));continue}catch(m){lt.error({err:m},"memory operation failed")}}}}s.push(a)}return s.join(`
214
- `)}function b$(t){if(!t.startsWith("@")||t.startsWith("@@"))return"";let e=t.slice(1);return!e||/[\s\t]/.test(e)?"":e.startsWith("./")||e.startsWith("../")||e.startsWith("~/")||e.startsWith("/")?e:""}function S$(t,e){if(t.startsWith("~/"))try{return ct(uh(),t.slice(2))}catch(r){return lt.error({err:r},"memory operation failed"),""}return y$(t)?t:ct(e,t)}function k$(t){let e;try{e=ml(t)}catch(s){return lt.error({err:s},"memory operation failed"),[t]}let r=T$(e);if(!r)return[e];let n=[],o=e;for(;n.unshift(o),o!==r;){let s=Ps(o);if(s===o)break;o=s}return n}function T$(t){let e=t;for(;;){try{let n=ct(e,".git");if(lh(n))return e}catch(n){lt.error({err:n},"memory operation failed")}let r=Ps(e);if(r===e)return"";e=r}}import{readFileSync as Rs,readdirSync as Cs,unlinkSync as $$,existsSync as Ms,mkdirSync as x$,writeFileSync as E$,statSync as P$}from"fs";import{join as Qt,relative as R$,basename as C$}from"path";import{homedir as M$}from"os";function ph(t){return Math.max(0,Math.floor((Date.now()-t)/864e5))}function mh(t){let e=ph(t);return e===0?"today":e===1?"yesterday":`${String(e)} days ago`}function fh(t){let e=ph(t);return e<=1?"":`This memory is ${String(e)} days old. Memories are point-in-time observations, not live state \u2014 claims about code behavior or file:line citations may be outdated. Verify against current code before asserting as fact.`}var ut=C({module:"memory"}),Nr=200,Yn=25e3,Jn="MEMORY.md";function hh(t){let e=Buffer.from(t,"utf-8");if(e.length<=Yn)return t;let r=e.lastIndexOf(10,Yn-1);if(r>0)return e.subarray(0,r).toString("utf-8");let n=Yn;for(;n>0&&(e[n]&192)===128;)n--;return e.subarray(0,n).toString("utf-8")}function fl(t){return t<1024?`${String(t)}B`:t<1024*1024?`${(t/1024).toFixed(1)}KB`:`${(t/1024/1024).toFixed(1)}MB`}var z$=_.object({selected_memories:_.array(_.string())}),A$=`You are selecting memories that will be useful to Swifty as it processes a user's query. You will be given the user's query and a list of available memory files with their filenames and descriptions.
212
+ `)}function jx(t){let e=[],r=new Set;try{let o=gh();jr(e,r,ct(o,".swifty","SWIFTY.md")),jr(e,r,ct(o,".swifty","AGENTS.md"))}catch(o){lt.error({err:o},"memory operation failed")}let n=Dx(t);for(let o of n)jr(e,r,ct(o,"SWIFTY.md")),jr(e,r,ct(o,"AGENTS.md")),jr(e,r,ct(o,".swifty","SWIFTY.md"));return jr(e,r,ct(t,"SWIFTY.local.md")),e}function jr(t,e,r){let n;try{n=fl(r)}catch(i){lt.error({err:i},"memory operation failed");return}if(e.has(n)||!hh(n))return;let o;try{o=fh(n,"utf-8")}catch(i){lt.error({err:i},"memory operation failed");return}e.add(n);let s=yh(o,Cs(n),e,0);t.push({path:n,content:s})}function yh(t,e,r,n){if(n>Ox)return t;let o=t.split(`
213
+ `),s=[],i=!1;for(let a of o){let c=a.trim();if(c.startsWith("```")){i=!i,s.push(a);continue}if(!i){let u=Nx(c);if(u){let l=qx(u,e);if(l){let d;try{d=fl(l)}catch(m){lt.error({err:m},"memory operation failed"),s.push(a);continue}if(!r.has(d))try{let m=fh(d,"utf-8");r.add(d),s.push(`<!-- included from ${u} -->`),s.push(yh(m,Cs(d),r,n+1));continue}catch(m){lt.error({err:m},"memory operation failed")}}}}s.push(a)}return s.join(`
214
+ `)}function Nx(t){if(!t.startsWith("@")||t.startsWith("@@"))return"";let e=t.slice(1);return!e||/[\s\t]/.test(e)?"":e.startsWith("./")||e.startsWith("../")||e.startsWith("~/")||e.startsWith("/")?e:""}function qx(t,e){if(t.startsWith("~/"))try{return ct(gh(),t.slice(2))}catch(r){return lt.error({err:r},"memory operation failed"),""}return Ax(t)?t:ct(e,t)}function Dx(t){let e;try{e=fl(t)}catch(s){return lt.error({err:s},"memory operation failed"),[t]}let r=Lx(e);if(!r)return[e];let n=[],o=e;for(;n.unshift(o),o!==r;){let s=Cs(o);if(s===o)break;o=s}return n}function Lx(t){let e=t;for(;;){try{let n=ct(e,".git");if(hh(n))return e}catch(n){lt.error({err:n},"memory operation failed")}let r=Cs(e);if(r===e)return"";e=r}}import{readFileSync as Ms,readdirSync as zs,unlinkSync as Ux,existsSync as As,mkdirSync as Fx,writeFileSync as Hx,statSync as Wx}from"fs";import{join as Xt,relative as Vx,basename as Bx}from"path";import{homedir as Gx}from"os";function _h(t){return Math.max(0,Math.floor((Date.now()-t)/864e5))}function wh(t){let e=_h(t);return e===0?"today":e===1?"yesterday":`${String(e)} days ago`}function vh(t){let e=_h(t);return e<=1?"":`This memory is ${String(e)} days old. Memories are point-in-time observations, not live state \u2014 claims about code behavior or file:line citations may be outdated. Verify against current code before asserting as fact.`}var ut=C({module:"memory"}),Nr=200,Yn=25e3,Jn="MEMORY.md";function bh(t){let e=Buffer.from(t,"utf-8");if(e.length<=Yn)return t;let r=e.lastIndexOf(10,Yn-1);if(r>0)return e.subarray(0,r).toString("utf-8");let n=Yn;for(;n>0&&(e[n]&192)===128;)n--;return e.subarray(0,n).toString("utf-8")}function hl(t){return t<1024?`${String(t)}B`:t<1024*1024?`${(t/1024).toFixed(1)}KB`:`${(t/1024/1024).toFixed(1)}MB`}var Kx=_.object({selected_memories:_.array(_.string())}),Zx=`You are selecting memories that will be useful to Swifty as it processes a user's query. You will be given the user's query and a list of available memory files with their filenames and descriptions.
215
215
 
216
216
  Return a list of filenames for the memories that will clearly be useful to Swifty as it processes the user's query (up to 5). Only include memories that you are certain will be helpful based on their name and description.
217
217
  - If you are unsure if a memory will be useful in processing the user's query, then do not include it in your list. Be selective and discerning.
218
218
  - If there are no memories in the list that would clearly be useful, feel free to return an empty list.
219
219
  - If a list of recently-used tools is provided, do not select memories that are usage reference or API documentation for those tools (Swifty is already exercising them). DO still select memories containing warnings, gotchas, or known issues about those tools \u2014 active use is exactly when those matter.
220
220
 
221
- Respond with valid JSON only, no markdown, in this exact shape: {"selected_memories": ["filename1.md", "filename2.md"]}`,zs=class{userDir;projectDir;constructor(e){this.userDir=Qt(M$(),".swifty","memory"),this.projectDir=Qt(e,".swifty","memory")}loadAll(){let e=[];for(let r of[this.userDir,this.projectDir]){if(!Ms(r))continue;let n=Cs(r).filter(o=>o.endsWith(".md")&&o!==Jn);for(let o of n){let s=Qt(r,o);try{let i=Rs(s,"utf-8"),a=hl(i);a&&e.push({path:s,name:a.name??o.replace(".md",""),description:a.description??"",type:a.type??"reference",content:a.body})}catch(i){ut.error({err:i},"memory operation failed");continue}}}return this.rebuildIndex(),e}getMemories(){return this.loadAll()}buildSystemReminder(){let e=this.loadAll();if(e.length===0)return"";let r=e.map(l=>`- [${l.name}] (${l.type}): ${l.description}`),n=r.length,o=r.join(`
221
+ Respond with valid JSON only, no markdown, in this exact shape: {"selected_memories": ["filename1.md", "filename2.md"]}`,Is=class{userDir;projectDir;constructor(e){this.userDir=Xt(Gx(),".swifty","memory"),this.projectDir=Xt(e,".swifty","memory")}loadAll(){let e=[];for(let r of[this.userDir,this.projectDir]){if(!As(r))continue;let n=zs(r).filter(o=>o.endsWith(".md")&&o!==Jn);for(let o of n){let s=Xt(r,o);try{let i=Ms(s,"utf-8"),a=gl(i);a&&e.push({path:s,name:a.name??o.replace(".md",""),description:a.description??"",type:a.type??"reference",content:a.body})}catch(i){ut.error({err:i},"memory operation failed");continue}}}return this.rebuildIndex(),e}getMemories(){return this.loadAll()}buildSystemReminder(){let e=this.loadAll();if(e.length===0)return"";let r=e.map(l=>`- [${l.name}] (${l.type}): ${l.description}`),n=r.length,o=r.join(`
222
222
  `),s=Buffer.byteLength(o,"utf-8"),i=n>Nr,a=s>Yn;if(!i&&!a)return`Active memories:
223
- ${o}`;let c=hh(r.slice(0,Nr).join(`
224
- `)),u;return a&&!i?u=`${fl(s)} (limit: ${fl(Yn)}) \u2014 index entries are too long`:i&&!a?u=`${String(n)} lines (limit: ${String(Nr)})`:u=`${String(n)} lines and ${fl(s)}`,`Active memories:
223
+ ${o}`;let c=bh(r.slice(0,Nr).join(`
224
+ `)),u;return a&&!i?u=`${hl(s)} (limit: ${hl(Yn)}) \u2014 index entries are too long`:i&&!a?u=`${String(n)} lines (limit: ${String(Nr)})`:u=`${String(n)} lines and ${hl(s)}`,`Active memories:
225
225
  ${c}
226
226
 
227
- > WARNING: ${Jn} is ${u}. Only part of it was loaded. Keep index entries to one line under ~200 chars; move detail into topic files.`}clear(){for(let e of[this.userDir,this.projectDir]){if(!Ms(e))continue;let r=Cs(e).filter(n=>n.endsWith(".md"));for(let n of r)try{$$(Qt(e,n))}catch(o){ut.error({err:o},"memory operation failed");continue}}}rebuildIndex(){let e=[];for(let o of[this.userDir,this.projectDir]){if(!Ms(o))continue;let s=Cs(o).filter(i=>i.endsWith(".md")&&i!==Jn);try{for(let i of s){let a=Qt(o,i);try{let c=Rs(a,"utf-8"),u=hl(c);if(!u)continue;let l=u.name??i.replace(".md",""),d=u.description??"",m=R$(this.projectDir,a)||i;e.push({name:l,relPath:m,description:d})}catch(c){ut.error({err:c},"memory operation failed");continue}}}catch(i){ut.error({err:i},"memory operation failed");continue}}e.sort((o,s)=>o.name.localeCompare(s.name,void 0,{sensitivity:"base"}));let r=[];for(let o of e)o.description?r.push(`- [${o.name}](${o.relPath}) \u2014 ${o.description}`):r.push(`- [${o.name}](${o.relPath})`);let n=hh(r.slice(0,Nr).join(`
228
- `));x$(this.projectDir,{recursive:!0}),E$(Qt(this.projectDir,Jn),n+`
229
- `,"utf-8")}async findRelevantMemories(e,r,n=[],o=new Set){let s=[];for(let[h,y]of[[this.userDir,"user"],[this.projectDir,"project"]]){let v=I$(h,y);s.push(...v)}let i=s.filter(h=>!o.has(h.filePath));if(i.length===0)return[];let a=O$(i),c="";n.length>0&&(c=`
227
+ > WARNING: ${Jn} is ${u}. Only part of it was loaded. Keep index entries to one line under ~200 chars; move detail into topic files.`}clear(){for(let e of[this.userDir,this.projectDir]){if(!As(e))continue;let r=zs(e).filter(n=>n.endsWith(".md"));for(let n of r)try{Ux(Xt(e,n))}catch(o){ut.error({err:o},"memory operation failed");continue}}}rebuildIndex(){let e=[];for(let o of[this.userDir,this.projectDir]){if(!As(o))continue;let s=zs(o).filter(i=>i.endsWith(".md")&&i!==Jn);try{for(let i of s){let a=Xt(o,i);try{let c=Ms(a,"utf-8"),u=gl(c);if(!u)continue;let l=u.name??i.replace(".md",""),d=u.description??"",m=Vx(this.projectDir,a)||i;e.push({name:l,relPath:m,description:d})}catch(c){ut.error({err:c},"memory operation failed");continue}}}catch(i){ut.error({err:i},"memory operation failed");continue}}e.sort((o,s)=>o.name.localeCompare(s.name,void 0,{sensitivity:"base"}));let r=[];for(let o of e)o.description?r.push(`- [${o.name}](${o.relPath}) \u2014 ${o.description}`):r.push(`- [${o.name}](${o.relPath})`);let n=bh(r.slice(0,Nr).join(`
228
+ `));Fx(this.projectDir,{recursive:!0}),Hx(Xt(this.projectDir,Jn),n+`
229
+ `,"utf-8")}async findRelevantMemories(e,r,n=[],o=new Set){let s=[];for(let[h,y]of[[this.userDir,"user"],[this.projectDir,"project"]]){let v=Jx(h,y);s.push(...v)}let i=s.filter(h=>!o.has(h.filePath));if(i.length===0)return[];let a=Yx(i),c="";n.length>0&&(c=`
230
230
 
231
231
  Recently used tools: `+n.join(", "));let u=`Query: ${e}
232
232
 
233
233
  Available memories:
234
- ${a}${c}`,l="";try{let h=new er;h.addUserMessage(A$+`
234
+ ${a}${c}`,l="";try{let h=new er;h.addUserMessage(Zx+`
235
235
 
236
- `+u);let y=r.stream(h,[]);for await(let v of y)v.type==="text_delta"&&(l+=v.text)}catch(h){return ut.error({err:h},"memory operation failed"),[]}let d=j$(l);if(!d)return[];let m;try{let h=JSON.parse(d);m=$e(z$,h)}catch(h){return ut.error({err:h},"memory operation failed"),[]}let f=new Map;for(let h of i)f.set(h.filePath,h),f.has(h.filename)||f.set(h.filename,h);let g=[];for(let h of m.selected_memories){let y=f.get(h);y&&g.push({path:y.filePath,mtimeMs:y.mtimeMs})}return g}renderReminder(e){if(e.length===0)return"";let r=[`The following relevant memories from prior conversations may help:
237
- `];for(let n of e){let o;try{o=Rs(n.path,"utf-8")}catch{continue}let s=C$(n.path);r.push(`## Memory: ${s} (saved ${mh(n.mtimeMs)})
238
- `);let i=fh(n.mtimeMs);i&&r.push(i+`
236
+ `+u);let y=r.stream(h,[]);for await(let v of y)v.type==="text_delta"&&(l+=v.text)}catch(h){return ut.error({err:h},"memory operation failed"),[]}let d=Xx(l);if(!d)return[];let m;try{let h=JSON.parse(d);m=xe(Kx,h)}catch(h){return ut.error({err:h},"memory operation failed"),[]}let f=new Map;for(let h of i)f.set(h.filePath,h),f.has(h.filename)||f.set(h.filename,h);let g=[];for(let h of m.selected_memories){let y=f.get(h);y&&g.push({path:y.filePath,mtimeMs:y.mtimeMs})}return g}renderReminder(e){if(e.length===0)return"";let r=[`The following relevant memories from prior conversations may help:
237
+ `];for(let n of e){let o;try{o=Ms(n.path,"utf-8")}catch{continue}let s=Bx(n.path);r.push(`## Memory: ${s} (saved ${wh(n.mtimeMs)})
238
+ `);let i=vh(n.mtimeMs);i&&r.push(i+`
239
239
  `),r.push(o+`
240
240
 
241
241
  ---
242
242
  `)}return r.join(`
243
- `)}};function I$(t,e){if(!Ms(t))return[];let r;try{r=Cs(t).filter(o=>o.endsWith(".md")&&o!==Jn)}catch(o){return ut.error({err:o},"memory operation failed"),[]}let n=[];for(let o of r){let s=Qt(t,o);try{let i=P$(s);if(!i.isFile())continue;let a=Rs(s,"utf-8"),c=hl(a);if(!c)continue;n.push({filename:o,filePath:s,scope:e,mtimeMs:i.mtimeMs,description:c.description??"",type:c.type??""})}catch(i){ut.error({err:i},"memory operation failed");continue}}return n.sort((o,s)=>s.mtimeMs-o.mtimeMs),n.length>Nr&&(n.length=Nr),n}function O$(t){if(t.length===0)return"";let e=[];for(let r of t){let n=r.scope?`[${r.scope}-scope] `:"",o=r.type?`[${r.type}] `:"",s=new Date(r.mtimeMs).toISOString(),i=r.filePath||r.filename;r.description?e.push(`- ${n}${o}${i} (${s}): ${r.description}`):e.push(`- ${n}${o}${i} (${s})`)}return e.join(`
244
- `)}function j$(t){let e=t.trim();if(e.startsWith("{"))return e;let r=e.indexOf("{");if(r<0)return"";let n=e.lastIndexOf("}");return n<r?"":e.slice(r,n+1)}var N$=_.looseObject({name:_.string().optional(),description:_.string().optional(),type:_.string().optional(),metadata:_.looseObject({type:_.string().optional()}).optional()});function hl(t){if(!t.startsWith("---"))return{body:t};let e=t.indexOf("---",3);if(e===-1)return{body:t};let r=t.slice(3,e).trim(),n=t.slice(e+3).trim();try{let o=ft.load(r),s=$e(N$,o),i=s.type,a=s.metadata?.type;return{name:s.name,description:s.description,type:i??a,body:n}}catch(o){return ut.error({err:o},"memory operation failed"),{body:t}}}import{readdirSync as q$,readFileSync as D$,existsSync as L$,mkdirSync as U$,writeFileSync as F$}from"fs";import{join as dt,basename as gh}from"path";import{homedir as As}from"os";var yh=class{client;workDir;inProgress=!1;pendingContext=null;turnsSinceLastExtraction=0;lastMemoryMessageIdx=0;constructor(e,r){this.client=e,this.workDir=r}async extract(e){return this.inProgress?(this.pendingContext=e,[]):this.runExtraction(e,!1)}async runExtraction(e,r){if(!r&&(this.turnsSinceLastExtraction++,this.turnsSinceLastExtraction<1))return[];this.turnsSinceLastExtraction=0,this.inProgress=!0;let n=[];try{n=await this.doExtract(e)}finally{this.inProgress=!1;let o=this.pendingContext;if(this.pendingContext=null,o!==null){let s=await this.runExtraction(o,!0);n=[...n,...s]}}return n}scanExistingMemories(){let e=[dt(this.workDir,".swifty","memory"),dt(As(),".swifty","memory")],r=[];for(let n of e)if(L$(n))try{let o=q$(n).filter(s=>s.endsWith(".md")&&s!=="MEMORY.md");for(let s of o)try{let i=D$(dt(n,s),"utf-8"),a=/type:\s*(.+)/.exec(i),c=/description:\s*(.+)/.exec(i),u=a?.[1]?.trim()??"reference",l=c?.[1]?.trim()??"";r.push(`- [${u}] ${s}: ${l}`)}catch{}}catch{}return r.length>0?r.join(`
245
- `):""}buildExtractionPrompt(e){let r=this.scanExistingMemories(),n=dt(this.workDir,".swifty","memory"),o=dt(As(),".swifty","memory"),s="";return r&&(s=`
243
+ `)}};function Jx(t,e){if(!As(t))return[];let r;try{r=zs(t).filter(o=>o.endsWith(".md")&&o!==Jn)}catch(o){return ut.error({err:o},"memory operation failed"),[]}let n=[];for(let o of r){let s=Xt(t,o);try{let i=Wx(s);if(!i.isFile())continue;let a=Ms(s,"utf-8"),c=gl(a);if(!c)continue;n.push({filename:o,filePath:s,scope:e,mtimeMs:i.mtimeMs,description:c.description??"",type:c.type??""})}catch(i){ut.error({err:i},"memory operation failed");continue}}return n.sort((o,s)=>s.mtimeMs-o.mtimeMs),n.length>Nr&&(n.length=Nr),n}function Yx(t){if(t.length===0)return"";let e=[];for(let r of t){let n=r.scope?`[${r.scope}-scope] `:"",o=r.type?`[${r.type}] `:"",s=new Date(r.mtimeMs).toISOString(),i=r.filePath||r.filename;r.description?e.push(`- ${n}${o}${i} (${s}): ${r.description}`):e.push(`- ${n}${o}${i} (${s})`)}return e.join(`
244
+ `)}function Xx(t){let e=t.trim();if(e.startsWith("{"))return e;let r=e.indexOf("{");if(r<0)return"";let n=e.lastIndexOf("}");return n<r?"":e.slice(r,n+1)}var Qx=_.looseObject({name:_.string().optional(),description:_.string().optional(),type:_.string().optional(),metadata:_.looseObject({type:_.string().optional()}).optional()});function gl(t){if(!t.startsWith("---"))return{body:t};let e=t.indexOf("---",3);if(e===-1)return{body:t};let r=t.slice(3,e).trim(),n=t.slice(e+3).trim();try{let o=ft.load(r),s=xe(Qx,o),i=s.type,a=s.metadata?.type;return{name:s.name,description:s.description,type:i??a,body:n}}catch(o){return ut.error({err:o},"memory operation failed"),{body:t}}}import{readdirSync as e$,readFileSync as t$,existsSync as r$,mkdirSync as n$,writeFileSync as o$}from"fs";import{join as dt,basename as Sh}from"path";import{homedir as Os}from"os";var kh=class{client;workDir;inProgress=!1;pendingContext=null;turnsSinceLastExtraction=0;lastMemoryMessageIdx=0;constructor(e,r){this.client=e,this.workDir=r}async extract(e){return this.inProgress?(this.pendingContext=e,[]):this.runExtraction(e,!1)}async runExtraction(e,r){if(!r&&(this.turnsSinceLastExtraction++,this.turnsSinceLastExtraction<1))return[];this.turnsSinceLastExtraction=0,this.inProgress=!0;let n=[];try{n=await this.doExtract(e)}finally{this.inProgress=!1;let o=this.pendingContext;if(this.pendingContext=null,o!==null){let s=await this.runExtraction(o,!0);n=[...n,...s]}}return n}scanExistingMemories(){let e=[dt(this.workDir,".swifty","memory"),dt(Os(),".swifty","memory")],r=[];for(let n of e)if(r$(n))try{let o=e$(n).filter(s=>s.endsWith(".md")&&s!=="MEMORY.md");for(let s of o)try{let i=t$(dt(n,s),"utf-8"),a=/type:\s*(.+)/.exec(i),c=/description:\s*(.+)/.exec(i),u=a?.[1]?.trim()??"reference",l=c?.[1]?.trim()??"";r.push(`- [${u}] ${s}: ${l}`)}catch{}}catch{}return r.length>0?r.join(`
245
+ `):""}buildExtractionPrompt(e){let r=this.scanExistingMemories(),n=dt(this.workDir,".swifty","memory"),o=dt(Os(),".swifty","memory"),s="";return r&&(s=`
246
246
 
247
247
  ## Existing memory files
248
248
 
249
249
  ${r}
250
250
 
251
251
  Check this list before writing \u2014 update an existing file rather than creating a duplicate.`),["You are now acting as the memory extraction subagent. Analyze the conversation below and use the tools to update persistent memory files.","","Available tools: ReadFile, WriteFile, EditFile, Glob, Grep. EditFile requires a prior ReadFile of the same file.","","You have a limited turn budget. The efficient strategy is: turn 1 \u2014 issue all ReadFile calls in parallel for every file you might update; turn 2 \u2014 issue all WriteFile/EditFile calls in parallel.","",`You MUST only use content from the conversation to update memories. Do not investigate source code.${s}`,"","## Memory storage paths","",`- \`user\` and \`feedback\` type \u2192 write to \`${o}/\` (user-level; follows the human across projects)`,`- \`project\` and \`reference\` type \u2192 write to \`${n}/\` (project-level; lives with this repo)`,"","Pick the type first, then write the memory file (and its MEMORY.md pointer) into the matching directory.","","## Memory types","","- **user**: Information about the user's role, goals, preferences, knowledge","- **feedback**: Guidance the user gave about how to approach work (corrections AND confirmations)","- **project**: Ongoing work, goals, decisions, deadlines within the project","- **reference**: Pointers to external resources (URLs, docs, tools)","","## What NOT to save","","- Code patterns, architecture, file paths \u2014 derivable from reading the project","- Git history \u2014 use git log/blame","- Debugging solutions \u2014 the fix is in the code","- Anything in CLAUDE.md / SWIFTY.md files","- Ephemeral task details, current conversation context","","## How to save memories","","**Step 1** \u2014 write the memory to its own file using this frontmatter format:","","```markdown","---","name: {{short-kebab-case-slug}}","description: {{one-line summary}}","metadata:"," type: {{user, feedback, project, reference}}","---","","{{memory content}}","```","","**Step 2** \u2014 add a pointer to MEMORY.md in the SAME directory. Each entry one line: `- [Title](file.md) \u2014 one-line hook`","","- Do not write duplicate memories. Check existing files first.","- If no memories are worth saving, do nothing.","","## Conversation to analyze","",e].join(`
252
- `)}async doExtract(e){let r=this.buildExtractionPrompt(e),n=new co;n.register(new po),n.register(new yo),n.register(new _o),n.register(new fo),n.register(new go);let o=new tr(this.workDir,"bypassPermissions");o.allowExtraRoot(dt(As(),".swifty","memory"));let s=new er;s.addUserMessage(r);let i=new lo({client:this.client,registry:n,checker:o,conversation:s,workDir:this.workDir,maxIterations:5}),a="";for await(let d of i.run())d.type==="stream_text"&&(a+=d.text);let u=this.extractWrittenPaths(s.getMessages()).filter(d=>gh(d)!=="MEMORY.md"),l;return u.length>0?l=u.map(d=>gh(d)):l=this.persistTextMemories(a),l.length>0&&new zs(this.workDir).rebuildIndex(),l}extractWrittenPaths(e){let r=[];for(let n of e){if(n.role!=="assistant")continue;let o=n.content.matchAll(/"file_path"\s*:\s*"([^"]+)"/g);for(let s of o)s[1]&&(s[1].includes("memory")||s[1].endsWith(".md"))&&r.push(s[1])}return[...new Set(r)]}persistTextMemories(e){let r=this.parseTextMemoryBlocks(e);if(r.length===0)return[];let n=[];for(let o of r){let s=this.dirForMemoryType(o.type);U$(s,{recursive:!0}),F$(dt(s,`${o.name}.md`),this.formatMemoryFile(o),"utf-8"),n.push(o.name)}return n}parseTextMemoryBlocks(e){let r=e.trim();if(r===""||r==="NONE")return[];let n=[],o=r.split(/^---\s*$/m);for(let s of o){let i=this.parseTextMemoryBlock(s);i&&n.push(i)}return n}parseTextMemoryBlock(e){let r=e.split(`
252
+ `)}async doExtract(e){let r=this.buildExtractionPrompt(e),n=new uo;n.register(new fo),n.register(new wo),n.register(new vo),n.register(new go),n.register(new _o);let o=new tr(this.workDir,"bypassPermissions");o.allowExtraRoot(dt(Os(),".swifty","memory"));let s=new er;s.addUserMessage(r);let i=new po({client:this.client,registry:n,checker:o,conversation:s,workDir:this.workDir,maxIterations:5}),a="";for await(let d of i.run())d.type==="stream_text"&&(a+=d.text);let u=this.extractWrittenPaths(s.getMessages()).filter(d=>Sh(d)!=="MEMORY.md"),l;return u.length>0?l=u.map(d=>Sh(d)):l=this.persistTextMemories(a),l.length>0&&new Is(this.workDir).rebuildIndex(),l}extractWrittenPaths(e){let r=[];for(let n of e){if(n.role!=="assistant")continue;let o=n.content.matchAll(/"file_path"\s*:\s*"([^"]+)"/g);for(let s of o)s[1]&&(s[1].includes("memory")||s[1].endsWith(".md"))&&r.push(s[1])}return[...new Set(r)]}persistTextMemories(e){let r=this.parseTextMemoryBlocks(e);if(r.length===0)return[];let n=[];for(let o of r){let s=this.dirForMemoryType(o.type);n$(s,{recursive:!0}),o$(dt(s,`${o.name}.md`),this.formatMemoryFile(o),"utf-8"),n.push(o.name)}return n}parseTextMemoryBlocks(e){let r=e.trim();if(r===""||r==="NONE")return[];let n=[],o=r.split(/^---\s*$/m);for(let s of o){let i=this.parseTextMemoryBlock(s);i&&n.push(i)}return n}parseTextMemoryBlock(e){let r=e.split(`
253
253
  `),n={name:"",type:"",description:"",body:""},o=[],s=!1;for(let i of r){let a=/^MEMORY_NAME:\s*(.*)$/i.exec(i),c=/^MEMORY_TYPE:\s*(.*)$/i.exec(i),u=/^MEMORY_DESC:\s*(.*)$/i.exec(i),l=/^MEMORY_BODY:\s?(.*)$/i.exec(i);a?(n.name=a[1].trim(),s=!1):c?(n.type=c[1].trim(),s=!1):u?(n.description=u[1].trim(),s=!1):l?(n.body=l[1],s=!0):s&&o.push(i)}return n.body&&(n.body=[n.body,...o].join(`
254
- `).replace(/\s+$/,"")),n.name?(n.type||(n.type="reference"),n):null}dirForMemoryType(e){let r=e.toLowerCase();return r==="user"||r==="feedback"?dt(As(),".swifty","memory"):dt(this.workDir,".swifty","memory")}formatMemoryFile(e){return["---",`name: ${e.name}`,`description: ${e.description}`,`type: ${e.type}`,"---","",e.body,""].join(`
255
- `)}};import{readdirSync as H$,readFileSync as wh,existsSync as vh,statSync as qr}from"fs";import{join as Ie}from"path";import{homedir as Qn}from"os";function _h(){return[]}var Xn=C({module:"skills"}),bh=class{entries=new Map;workDir="";dirModTimes=new Map;load(e){this.workDir=e;for(let n of _h())this.entries.set(n.meta.name,{skill:n,filePath:"",loadedMtimeMs:0});let r=[Ie(Qn(),".trae","skills"),Ie(Qn(),".claude","skills"),Ie(Qn(),".github","skills"),Ie(Qn(),".swifty","skills"),Ie(e,".trae","skills"),Ie(e,".claude","skills"),Ie(e,".github","skills"),Ie(e,".swifty","skills")];for(let n of r)vh(n)&&this.scanDirectory(n);this.snapshotDirModTimes()}needsReload(){for(let[r,n]of this.dirModTimes)try{if(qr(r).mtimeMs!==n)return!0}catch{if(n!==0)return!0}let e=this.skillDirPaths();for(let r of e)if(!this.dirModTimes.has(r))try{return qr(r),!0}catch{}return!1}reload(){this.entries.clear(),this.load(this.workDir)}snapshotDirModTimes(){this.dirModTimes.clear();for(let e of this.skillDirPaths())try{this.dirModTimes.set(e,qr(e).mtimeMs)}catch{this.dirModTimes.set(e,0)}}skillDirPaths(){return[Ie(Qn(),".swifty","skills"),...this.workDir?[Ie(this.workDir,".swifty","skills")]:[]]}scanDirectory(e){let r;try{r=H$(e)}catch(n){Xn.error({err:n},"skills operation failed");return}for(let n of r){let o=Ie(e,n);if(qr(o).isDirectory()){let i=Ie(o,"SKILL.md");vh(i)&&this.loadSkill(i,o,!0)}}}loadSkill(e,r,n){try{let o=wh(e,"utf-8"),s=Sh(o);if(!s)return;let i={meta:s.meta,body:s.body,sourceDir:r,isDirectory:n},a=0;try{a=qr(e).mtimeMs}catch(c){Xn.error({err:c},"skills operation failed")}this.entries.set(i.meta.name,{skill:i,filePath:e,loadedMtimeMs:a})}catch(o){Xn.error({err:o},"skills operation failed")}}list(){return[...this.entries.values()].map(e=>e.skill.meta)}get(e){let r=this.entries.get(e);if(r){if(r.filePath&&r.loadedMtimeMs>0)try{let n=qr(r.filePath).mtimeMs;if(n>r.loadedMtimeMs){let o=wh(r.filePath,"utf-8"),s=Sh(o);s&&(r.skill={meta:s.meta,body:s.body,sourceDir:r.skill.sourceDir,isDirectory:r.skill.isDirectory},r.loadedMtimeMs=n)}}catch(n){Xn.error({err:n},"skills operation failed")}return r.skill}}has(e){return this.entries.has(e)}};function W$(t){let e=x(ri(t),"mode");return e==="inline"||e==="fork"?e:x(ri(t),"context")==="fork"?"fork":"inline"}var V$=O.looseObject({name:O.string(),description:O.string().optional(),allowed_tools:O.array(O.string()).optional(),mode:O.enum(["inline","fork"]).optional(),model:O.string().optional(),fork_context:O.enum(["full","none","recent"]).optional()});function Sh(t){if(!t.startsWith("---"))return null;let e=t.indexOf("---",3);if(e===-1)return null;let r=t.slice(3,e).trim(),n=t.slice(e+3).trim();try{let o=ft.load(r),s=$e(V$,o);return{meta:{name:s.name,description:s.description??"",mode:W$(o),model:s.model,forkContext:s.fork_context},body:n}}catch(o){return Xn.error({err:o},"skills operation failed"),null}}function Tj(t,e){let r=t.list();if(r.length===0)return"";let o=[`## Available Skills
254
+ `).replace(/\s+$/,"")),n.name?(n.type||(n.type="reference"),n):null}dirForMemoryType(e){let r=e.toLowerCase();return r==="user"||r==="feedback"?dt(Os(),".swifty","memory"):dt(this.workDir,".swifty","memory")}formatMemoryFile(e){return["---",`name: ${e.name}`,`description: ${e.description}`,`type: ${e.type}`,"---","",e.body,""].join(`
255
+ `)}};import{readdirSync as s$,readFileSync as xh,existsSync as $h,statSync as qr}from"fs";import{join as Ie}from"path";import{homedir as Xn}from"os";function Th(){return[]}var Qn=C({module:"skills"}),Eh=class{entries=new Map;workDir="";dirModTimes=new Map;load(e){this.workDir=e;for(let n of Th())this.entries.set(n.meta.name,{skill:n,filePath:"",loadedMtimeMs:0});let r=[Ie(Xn(),".trae","skills"),Ie(Xn(),".claude","skills"),Ie(Xn(),".github","skills"),Ie(Xn(),".swifty","skills"),Ie(e,".trae","skills"),Ie(e,".claude","skills"),Ie(e,".github","skills"),Ie(e,".swifty","skills")];for(let n of r)$h(n)&&this.scanDirectory(n);this.snapshotDirModTimes()}needsReload(){for(let[r,n]of this.dirModTimes)try{if(qr(r).mtimeMs!==n)return!0}catch{if(n!==0)return!0}let e=this.skillDirPaths();for(let r of e)if(!this.dirModTimes.has(r))try{return qr(r),!0}catch{}return!1}reload(){this.entries.clear(),this.load(this.workDir)}snapshotDirModTimes(){this.dirModTimes.clear();for(let e of this.skillDirPaths())try{this.dirModTimes.set(e,qr(e).mtimeMs)}catch{this.dirModTimes.set(e,0)}}skillDirPaths(){return[Ie(Xn(),".swifty","skills"),...this.workDir?[Ie(this.workDir,".swifty","skills")]:[]]}scanDirectory(e){let r;try{r=s$(e)}catch(n){Qn.error({err:n},"skills operation failed");return}for(let n of r){let o=Ie(e,n);if(qr(o).isDirectory()){let i=Ie(o,"SKILL.md");$h(i)&&this.loadSkill(i,o,!0)}}}loadSkill(e,r,n){try{let o=xh(e,"utf-8"),s=Ph(o);if(!s)return;let i={meta:s.meta,body:s.body,sourceDir:r,isDirectory:n},a=0;try{a=qr(e).mtimeMs}catch(c){Qn.error({err:c},"skills operation failed")}this.entries.set(i.meta.name,{skill:i,filePath:e,loadedMtimeMs:a})}catch(o){Qn.error({err:o},"skills operation failed")}}list(){return[...this.entries.values()].map(e=>e.skill.meta)}get(e){let r=this.entries.get(e);if(r){if(r.filePath&&r.loadedMtimeMs>0)try{let n=qr(r.filePath).mtimeMs;if(n>r.loadedMtimeMs){let o=xh(r.filePath,"utf-8"),s=Ph(o);s&&(r.skill={meta:s.meta,body:s.body,sourceDir:r.skill.sourceDir,isDirectory:r.skill.isDirectory},r.loadedMtimeMs=n)}}catch(n){Qn.error({err:n},"skills operation failed")}return r.skill}}has(e){return this.entries.has(e)}};function i$(t){let e=E(ri(t),"mode");return e==="inline"||e==="fork"?e:E(ri(t),"context")==="fork"?"fork":"inline"}var a$=O.looseObject({name:O.string(),description:O.string().optional(),allowed_tools:O.array(O.string()).optional(),mode:O.enum(["inline","fork"]).optional(),model:O.string().optional(),fork_context:O.enum(["full","none","recent"]).optional()});function Ph(t){if(!t.startsWith("---"))return null;let e=t.indexOf("---",3);if(e===-1)return null;let r=t.slice(3,e).trim(),n=t.slice(e+3).trim();try{let o=ft.load(r),s=xe(a$,o);return{meta:{name:s.name,description:s.description??"",mode:i$(o),model:s.model,forkContext:s.fork_context},body:n}}catch(o){return Qn.error({err:o},"skills operation failed"),null}}function W1(t,e){let r=t.list();if(r.length===0)return"";let o=[`## Available Skills
256
256
  `,`Skills are installed at: ${Ie(e,".swifty","skills")}`,`When creating new skills, always place them under this directory as <skill-name>/SKILL.md.
257
257
  `,`Only Skill names and one-line descriptions are listed below. To activate a Skill on demand call the LoadSkill tool with {name: "<skill-name>"}. After activation the Skill's full SOP gets pinned to the environment context, and any tools the Skill declares get registered. Users can also invoke a Skill directly with /<name>.
258
258
  `,`If the user pastes a Skill URL (skills.sh, github.com tree URL, or raw SKILL.md URL) and asks to install / add / get it, call the InstallSkill tool with {url: "<url>"} \u2014 the new Skill becomes available immediately afterwards.
259
259
  `];for(let s of r){let i=s.description.length>200?s.description.slice(0,200)+"\u2026":s.description;o.push(`- /${s.name}: ${i}`)}return o.join(`
260
- `)}var kh=class{tasks=new Map;nextId=1;store;constructor(e){e&&this.useStore(e)}useStore(e){this.store=e,this.tasks.clear();let r=0;for(let n of e.load()){this.tasks.set(n.id,n);let o=parseInt(n.id,10);!Number.isNaN(o)&&o>r&&(r=o)}this.nextId=r+1}persist(){this.store?.save([...this.tasks.values()])}create(e,r,n){let o={id:String(this.nextId++),subject:e,description:r,status:"pending",activeForm:n,blocks:[],blockedBy:[],metadata:{}};return this.tasks.set(o.id,o),this.persist(),o}get(e){return this.tasks.get(e)}list(){return[...this.tasks.values()]}update(e,r){let n=this.tasks.get(e);if(n)return n={...n,...r},this.tasks.set(e,n),this.persist(),n}delete(e){let r=this.tasks.delete(e);return r&&this.persist(),r}addBlocks(e,r){let n=this.tasks.get(e);if(n){for(let o of r){n.blocks.includes(o)||n.blocks.push(o);let s=this.tasks.get(o);s&&!s.blockedBy.includes(e)&&s.blockedBy.push(e)}this.persist()}}addBlockedBy(e,r){let n=this.tasks.get(e);if(n){for(let o of r){n.blockedBy.includes(o)||n.blockedBy.push(o);let s=this.tasks.get(o);s&&!s.blocks.includes(e)&&s.blocks.push(e)}this.persist()}}};var Th=class{name="TaskCreate";description="Create a new task to track work.";category="read";list;constructor(e){this.list=e}schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{subject:{type:"string",description:"Brief task title"},description:{type:"string",description:"What needs to be done"},activeForm:{type:"string",description:"Present continuous form for spinner"}},required:["subject","description"]}}}execute(e,r){let n=x(r,"subject"),o=x(r,"description"),s=x(r,"activeForm")||void 0;if(!n)return Promise.resolve({output:"Error: subject is required",isError:!0});let i=this.list.create(n,o,s);return Promise.resolve({output:`Task #${i.id} created successfully: ${i.subject}`,isError:!1})}},$h=class{name="TaskGet";description="Get a task by its ID.";category="read";list;constructor(e){this.list=e}schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{taskId:{type:"string",description:"Task ID"}},required:["taskId"]}}}execute(e,r){let n=x(r,"taskId"),o=this.list.get(n);return o?Promise.resolve({output:JSON.stringify(o,null,2),isError:!1}):Promise.resolve({output:"Task not found",isError:!0})}},xh=class{name="TaskList";description="List all tasks.";category="read";list;constructor(e){this.list=e}schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{}}}}execute(){let e=this.list.list();if(e.length===0)return Promise.resolve({output:"No tasks found",isError:!1});let r=e.map(n=>`#${n.id}. [${n.status}] ${n.subject}${n.owner?` (${n.owner})`:""}`);return Promise.resolve({output:r.join(`
261
- `),isError:!1})}},Eh=class{name="TaskUpdate";description="Update a task's status, subject, or other fields.";category="read";list;constructor(e){this.list=e}schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{taskId:{type:"string",description:"Task ID"},status:{type:"string",description:"New status: pending, in_progress, completed, deleted"},subject:{type:"string",description:"New subject"},description:{type:"string",description:"New description"},owner:{type:"string",description:"New owner"},addBlocks:{type:"array",items:{type:"string"},description:"Tasks this one blocks"},addBlockedBy:{type:"array",items:{type:"string"},description:"Tasks blocking this one"}},required:["taskId"]}}}async execute(e,r){let n=await El(B$,r);if(!n.success)return{output:N(n.error),isError:!0};let{taskId:o,status:s,subject:i,description:a,owner:c,addBlocks:u,addBlockedBy:l}=n.data;if(!o)return Promise.resolve({output:"Error: taskId is required",isError:!0});if(s==="deleted")return this.list.delete(o),Promise.resolve({output:`Task #${o} deleted`,isError:!1});let d={};return s&&(d.status=s),i&&(d.subject=i),a&&(d.description=a),c&&(d.owner=c),this.list.update(o,d)?(u&&this.list.addBlocks(o,u),l&&this.list.addBlockedBy(o,l),{output:`Updated task #${o} status`,isError:!1}):{output:"Task not found",isError:!0}}},B$=_.object({taskId:_.string(),subject:_.string().optional(),description:_.string().optional(),status:_.enum(["pending","in_progress","completed","deleted"]).optional(),owner:_.string().optional(),addBlocks:_.array(_.string()).optional(),addBlockedBy:_.array(_.string()).optional()});import{readFileSync as K$,writeFileSync as Z$,mkdirSync as J$,existsSync as Y$}from"fs";import{join as Q$,dirname as X$}from"path";var G$=C({module:"todo"}),ex=_.enum(["pending","in_progress","completed"]),tx=_.object({id:_.string(),subject:_.string(),description:_.string(),status:ex,owner:_.string().optional(),activeForm:_.string().optional(),blocks:_.array(_.string()),blockedBy:_.array(_.string()),metadata:_.record(_.string(),_.unknown())}),Ph=class{filePath;constructor(e,r){this.filePath=Q$(e,".swifty","tasks",`${r}.json`)}load(){if(!Y$(this.filePath))return[];try{let e=K$(this.filePath,"utf-8"),r=JSON.parse(e);return $e(_.array(tx),r)}catch(e){return G$.error({err:e},"todo operation failed"),[]}}save(e){J$(X$(this.filePath),{recursive:!0}),Z$(this.filePath,JSON.stringify(e,null,2),"utf-8")}};var Rh=[{name:"general-purpose",description:"General-purpose agent for researching complex questions, exploring codebase, and executing multi-step tasks."},{name:"plan",description:`You are a software architect. This is a read-only planning task.
260
+ `)}var Rh=class{tasks=new Map;nextId=1;store;constructor(e){e&&this.useStore(e)}useStore(e){this.store=e,this.tasks.clear();let r=0;for(let n of e.load()){this.tasks.set(n.id,n);let o=parseInt(n.id,10);!Number.isNaN(o)&&o>r&&(r=o)}this.nextId=r+1}persist(){this.store?.save([...this.tasks.values()])}create(e,r,n){let o={id:String(this.nextId++),subject:e,description:r,status:"pending",activeForm:n,blocks:[],blockedBy:[],metadata:{}};return this.tasks.set(o.id,o),this.persist(),o}get(e){return this.tasks.get(e)}list(){return[...this.tasks.values()]}update(e,r){let n=this.tasks.get(e);if(n)return n={...n,...r},this.tasks.set(e,n),this.persist(),n}delete(e){let r=this.tasks.delete(e);return r&&this.persist(),r}addBlocks(e,r){let n=this.tasks.get(e);if(n){for(let o of r){n.blocks.includes(o)||n.blocks.push(o);let s=this.tasks.get(o);s&&!s.blockedBy.includes(e)&&s.blockedBy.push(e)}this.persist()}}addBlockedBy(e,r){let n=this.tasks.get(e);if(n){for(let o of r){n.blockedBy.includes(o)||n.blockedBy.push(o);let s=this.tasks.get(o);s&&!s.blocks.includes(e)&&s.blocks.push(e)}this.persist()}}};var Ch=class{name="TaskCreate";description="Create a new task to track work.";category="read";list;constructor(e){this.list=e}schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{subject:{type:"string",description:"Brief task title"},description:{type:"string",description:"What needs to be done"},activeForm:{type:"string",description:"Present continuous form for spinner"}},required:["subject","description"]}}}execute(e,r){let n=E(r,"subject"),o=E(r,"description"),s=E(r,"activeForm")||void 0;if(!n)return Promise.resolve({output:"Error: subject is required",isError:!0});let i=this.list.create(n,o,s);return Promise.resolve({output:`Task #${i.id} created successfully: ${i.subject}`,isError:!1})}},Mh=class{name="TaskGet";description="Get a task by its ID.";category="read";list;constructor(e){this.list=e}schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{taskId:{type:"string",description:"Task ID"}},required:["taskId"]}}}execute(e,r){let n=E(r,"taskId"),o=this.list.get(n);return o?Promise.resolve({output:JSON.stringify(o,null,2),isError:!1}):Promise.resolve({output:"Task not found",isError:!0})}},zh=class{name="TaskList";description="List all tasks.";category="read";list;constructor(e){this.list=e}schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{}}}}execute(){let e=this.list.list();if(e.length===0)return Promise.resolve({output:"No tasks found",isError:!1});let r=e.map(n=>`#${n.id}. [${n.status}] ${n.subject}${n.owner?` (${n.owner})`:""}`);return Promise.resolve({output:r.join(`
261
+ `),isError:!1})}},Ah=class{name="TaskUpdate";description="Update a task's status, subject, or other fields.";category="read";list;constructor(e){this.list=e}schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{taskId:{type:"string",description:"Task ID"},status:{type:"string",description:"New status: pending, in_progress, completed, deleted"},subject:{type:"string",description:"New subject"},description:{type:"string",description:"New description"},owner:{type:"string",description:"New owner"},addBlocks:{type:"array",items:{type:"string"},description:"Tasks this one blocks"},addBlockedBy:{type:"array",items:{type:"string"},description:"Tasks blocking this one"}},required:["taskId"]}}}async execute(e,r){let n=await Pl(c$,r);if(!n.success)return{output:N(n.error),isError:!0};let{taskId:o,status:s,subject:i,description:a,owner:c,addBlocks:u,addBlockedBy:l}=n.data;if(!o)return Promise.resolve({output:"Error: taskId is required",isError:!0});if(s==="deleted")return this.list.delete(o),Promise.resolve({output:`Task #${o} deleted`,isError:!1});let d={};return s&&(d.status=s),i&&(d.subject=i),a&&(d.description=a),c&&(d.owner=c),this.list.update(o,d)?(u&&this.list.addBlocks(o,u),l&&this.list.addBlockedBy(o,l),{output:`Updated task #${o} status`,isError:!1}):{output:"Task not found",isError:!0}}},c$=_.object({taskId:_.string(),subject:_.string().optional(),description:_.string().optional(),status:_.enum(["pending","in_progress","completed","deleted"]).optional(),owner:_.string().optional(),addBlocks:_.array(_.string()).optional(),addBlockedBy:_.array(_.string()).optional()});import{readFileSync as u$,writeFileSync as d$,mkdirSync as p$,existsSync as m$}from"fs";import{join as f$,dirname as h$}from"path";var l$=C({module:"todo"}),g$=_.enum(["pending","in_progress","completed"]),y$=_.object({id:_.string(),subject:_.string(),description:_.string(),status:g$,owner:_.string().optional(),activeForm:_.string().optional(),blocks:_.array(_.string()),blockedBy:_.array(_.string()),metadata:_.record(_.string(),_.unknown())}),Ih=class{filePath;constructor(e,r){this.filePath=f$(e,".swifty","tasks",`${r}.json`)}load(){if(!m$(this.filePath))return[];try{let e=u$(this.filePath,"utf-8"),r=JSON.parse(e);return xe(_.array(y$),r)}catch(e){return l$.error({err:e},"todo operation failed"),[]}}save(e){p$(h$(this.filePath),{recursive:!0}),d$(this.filePath,JSON.stringify(e,null,2),"utf-8")}};var Oh=[{name:"general-purpose",description:"General-purpose agent for researching complex questions, exploring codebase, and executing multi-step tasks."},{name:"plan",description:`You are a software architect. This is a read-only planning task.
262
262
  Prohibited actions:
263
263
  Creating, modifying, or deleting files, Asking questions
264
264
  Workflow:
@@ -275,14 +275,14 @@ Tool invocation strategy:
275
275
  - Use ReadFile to read files at specified paths
276
276
  - Only execute read-only Bash commands
277
277
  - Invoke multiple tools in parallel whenever possible to maximize efficiency
278
- `,disallowedTools:["EditFile","WriteFile"],permissionMode:"plan",model:"haiku"}];var gl=class{names=new Map;register(e,r){this.names.set(e,r)}resolve(e){let r=this.names.get(e);if(r!==void 0)return r;for(let n of this.names.values())if(n===e)return e}unregister(e){this.names.delete(e)}clear(){this.names.clear()}},Ch;function Dr(){return Ch??=new gl,Ch}import{randomBytes as rx}from"crypto";var Is="text",Xt="shutdown_request",Os="shutdown_response",nx="plan_approval_request",Lr="plan_approval_response",Mh="[shutdown]";function zh(){return`req-${rx(8).toString("hex")}`}function js(t,e,r,n,o){return{from:t,text:n,timestamp:new Date().toISOString(),type:e,requestId:r,...o===void 0?{}:{approve:o}}}function Ns(t,e=""){let r=e||"team is wrapping up";return js(t,Xt,zh(),`${Mh} ${r}`)}function qs(t,e,r,n=""){return js(t,Os,e,n,r)}function Ah(t,e){return js(t,nx,zh(),e)}function Ih(t,e,r,n=""){return js(t,Lr,e,n,r)}function Oh(t){return t.type===Xt?!0:(t.text??"").trim().startsWith(Mh)}function yl(t){return t.approve===!0}var ox=C({module:"teams"}),jh=class{constructor(e){this.mgr=e}mgr;name="TeamCreate";description="Create a team for coordinating multiple agents.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{team_name:{type:"string",description:"Name for the team"},description:{type:"string",description:"What this team will work on"}},required:["team_name"]}}}async execute(e,r){let n=x(r,"team_name");if(!n)return Promise.resolve({output:"Error: team_name is required",isError:!0});let o=n;for(let a=2;this.mgr.get(o);a++)o=`${n}-${String(a)}`;let s=x(r,"description"),i=this.mgr.create(o,void 0,{leadAgentId:"lead",description:s});return{output:`Team '${i.name}' created (mode: ${i.mode}). Use Agent tool with team_name='${i.name}' to add teammates.`,isError:!1}}},Nh=class{constructor(e,r){this.mgr=e;this.runAgent=r}mgr;runAgent;name="SpawnTeammate";description="Spawn a teammate in a team to work on a task in the background. Its result is delivered back to you on the team channel when it finishes.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{team:{type:"string",description:"Team name (created if missing)"},name:{type:"string",description:"Teammate name"},task:{type:"string",description:"The task for the teammate"}},required:["team","name","task"]}}}async execute(e,r){let n=x(r,"team"),o=x(r,"name"),s=x(r,"task");return!n||!o||!s?Promise.resolve({output:"Error: team, name and task are required",isError:!0}):((this.mgr.get(n)??this.mgr.create(n)).spawnTeammate(o,s,this.runAgent),Promise.resolve({output:`Teammate '${o}' spawned in team '${n}'. Its result will arrive on the team channel; keep working and watch for it.`,isError:!1}))}},Ds=class{constructor(e,r="lead"){this.mgr=e;this.senderName=r}mgr;senderName;name="SendMessage";description="Send a message to a teammate's mailbox. Use to='*' to broadcast to all teammates.";category="read";senderTeam(){let e=this.mgr.list();for(let r of e)if(r.getMember(this.senderName))return r;return e[0]}schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{to:{type:"string",description:"Teammate name, or '*' to broadcast"},content:{type:"string",description:"Message content. For shutdown_request this is the reason; for plan_approval_response this is your feedback when rejecting."},type:{type:"string",enum:[Is,Xt,Os,Lr],description:"Message kind, defaults to 'text'. Use 'shutdown_request' to ask a teammate to wrap up (it replies with shutdown_response). Use 'plan_approval_response' to answer a teammate's plan, together with 'approve' and, when rejecting, feedback in 'content'."},request_id:{type:"string",description:"Required for plan_approval_response: copy the requestId from the teammate's plan approval request so it knows which plan you are answering."},approve:{type:"boolean",description:"Required for plan_approval_response: true to let the teammate start executing, false to send it back to revise."}},required:["to","content"]}}}async execute(e,r){let n=x(r,"to"),o=x(r,"content"),s=this.senderTeam();if(!s)return{output:"No active team found for this sender.",isError:!0};let i=typeof r.type=="string"?r.type:Is;if(i!==Is){let c=typeof r.request_id=="string"?r.request_id:"",u=typeof r.approve=="boolean"?r.approve:void 0,l;switch(i){case Xt:l=Ns(this.senderName,o);break;case Os:if(u===void 0)return{output:"shutdown_response requires 'approve'.",isError:!0};l=qs(this.senderName,c,u,o);break;case Lr:if(!c||u===void 0)return{output:"plan_approval_response requires both 'request_id' and 'approve'.",isError:!0};l=Ih(this.senderName,c,u,o);break;default:return{output:`Unsupported message type ${i}.`,isError:!0}}let d=n==="lead"?s.leadMailbox:s.getMember(n)?.mailbox;return d?(await d.send(this.senderName,l.text,l),{output:`${i} sent to '${n}'.`,isError:!1}):{output:`Teammate '${n}' not found.`,isError:!0}}if(n==="*"){let c=0;for(let u of s.listMembers())u.name!==this.senderName&&(await s.sendMessage(this.senderName,u.name,o),c++);return{output:`Message broadcast to ${String(c)} teammate(s).`,isError:!1}}let a=Dr().resolve(n)??n;try{await s.sendMessage(this.senderName,a,o)}catch(c){return ox.error({err:c},"teams operation failed"),{output:`Error: ${N(c)}`,isError:!0}}return{output:`Message sent to '${n}'.`,isError:!1}}},qh=class{constructor(e){this.mgr=e}mgr;name="ListTeams";description="List teams and their members.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{},required:[]}}}execute(){let e=this.mgr.list();if(e.length===0)return Promise.resolve({output:"No teams.",isError:!1});let r=e.map(n=>{let o=n.listMembers().map(s=>`${s.name}${s.active?" (active)":""}`).join(", ")||"(no members)";return`${n.name} [${n.mode}]: ${o}`});return Promise.resolve({output:r.join(`
279
- `),isError:!1})}},Dh=class{constructor(e){this.mgr=e}mgr;name="TeamDelete";description="Delete a team and stop its members.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{name:{type:"string"}},required:["name"]}}}async execute(e,r){let n=x(r,"name");return await this.mgr.delete(n),{output:`Team '${n}' deleted.`,isError:!1}}};import{readdirSync as sx,readFileSync as ix,existsSync as ax}from"fs";import{join as _l}from"path";import{homedir as cx}from"os";var Uh=C({module:"subagent"});function Fh(t){let e=[...Rh],r=cx();r&&Lh(_l(r,".swifty","agents"),e);let n=[_l(t,".swifty","agents")];for(let o of n)Lh(o,e);return e}function Lh(t,e){if(!ax(t))return;let r=sx(t).filter(n=>n.endsWith(".md"));for(let n of r)try{let o=ix(_l(t,n),"utf-8"),s=ux(o);if(s){let i=e.findIndex(a=>a.name===s.name);i>=0?e[i]=s:e.push(s)}}catch(o){Uh.error({err:o},"subagent operation failed");continue}}var lx=_.looseObject({name:_.string(),description:_.string().optional(),tools:_.array(_.string()).optional(),disallowed_tools:_.array(_.string()).optional(),system_prompt:_.string().optional(),max_turns:_.number().optional(),model:_.string().optional(),background:_.boolean().optional(),isolation:_.literal("worktree").optional()});function ux(t){if(!t.startsWith("---"))return null;let e=t.indexOf("---",3);if(e===-1)return null;let r=t.slice(3,e).trim(),n=t.slice(e+3).trim();try{let o=ft.load(r),s=$e(lx,o);return{name:s.name,description:s.description??n.slice(0,200),tools:s.tools,disallowedTools:s.disallowed_tools,systemPromptOverride:s.system_prompt,maxTurns:s.max_turns,model:s.model,background:s.background,isolation:s.isolation,initialPrompt:n}}catch(o){return Uh.error({err:o},"subagent operation failed"),null}}var dx=new Set(["pending","in_progress","completed","blocked"]),Ls=class{constructor(e,r,n=""){this.mgr=e;this.teamName=r;this.agentName=n}mgr;teamName;agentName;name="TaskCreate";description="Create a shared task in the team's task board. Supports dependency tracking with blocks/blocked_by fields.";category="command";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{title:{type:"string",description:"Short task title"},description:{type:"string",description:"Optional task details"},assignee:{type:"string",description:"Teammate name to assign this task to"},blocks:{type:"array",items:{type:"string"},description:"IDs of tasks that this task blocks"},blocked_by:{type:"array",items:{type:"string"},description:"IDs of tasks that block this task"}},required:["title"]}}}execute(e,r){let n=x(r,"title");if(!n)return Promise.resolve({output:"Error: 'title' is required",isError:!0});let o=this.mgr.getTaskStore(this.teamName);if(!o)return Promise.resolve({output:`Task store not found for team '${this.teamName}'`,isError:!0});let s=o.create(n,x(r,"description"),x(r,"assignee"),Wr(r.blocks),Wr(r.blocked_by),this.agentName);return Promise.resolve({output:`Task created:
278
+ `,disallowedTools:["EditFile","WriteFile"],permissionMode:"plan",model:"haiku"}];var yl=class{names=new Map;register(e,r){this.names.set(e,r)}resolve(e){let r=this.names.get(e);if(r!==void 0)return r;for(let n of this.names.values())if(n===e)return e}unregister(e){this.names.delete(e)}clear(){this.names.clear()}},jh;function Dr(){return jh??=new yl,jh}import{randomBytes as _$}from"crypto";var js="text",Qt="shutdown_request",Ns="shutdown_response",w$="plan_approval_request",Lr="plan_approval_response",Nh="[shutdown]";function qh(){return`req-${_$(8).toString("hex")}`}function qs(t,e,r,n,o){return{from:t,text:n,timestamp:new Date().toISOString(),type:e,requestId:r,...o===void 0?{}:{approve:o}}}function Ds(t,e=""){let r=e||"team is wrapping up";return qs(t,Qt,qh(),`${Nh} ${r}`)}function Ls(t,e,r,n=""){return qs(t,Ns,e,n,r)}function Dh(t,e){return qs(t,w$,qh(),e)}function Lh(t,e,r,n=""){return qs(t,Lr,e,n,r)}function Uh(t){return t.type===Qt?!0:(t.text??"").trim().startsWith(Nh)}function _l(t){return t.approve===!0}var v$=C({module:"teams"}),Fh=class{constructor(e){this.mgr=e}mgr;name="TeamCreate";description="Create a team for coordinating multiple agents.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{team_name:{type:"string",description:"Name for the team"},description:{type:"string",description:"What this team will work on"}},required:["team_name"]}}}async execute(e,r){let n=E(r,"team_name");if(!n)return Promise.resolve({output:"Error: team_name is required",isError:!0});let o=n;for(let a=2;this.mgr.get(o);a++)o=`${n}-${String(a)}`;let s=E(r,"description"),i=this.mgr.create(o,void 0,{leadAgentId:"lead",description:s});return{output:`Team '${i.name}' created (mode: ${i.mode}). Use Agent tool with team_name='${i.name}' to add teammates.`,isError:!1}}},Hh=class{constructor(e,r){this.mgr=e;this.runAgent=r}mgr;runAgent;name="SpawnTeammate";description="Spawn a teammate in a team to work on a task in the background. Its result is delivered back to you on the team channel when it finishes.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{team:{type:"string",description:"Team name (created if missing)"},name:{type:"string",description:"Teammate name"},task:{type:"string",description:"The task for the teammate"}},required:["team","name","task"]}}}async execute(e,r){let n=E(r,"team"),o=E(r,"name"),s=E(r,"task");return!n||!o||!s?Promise.resolve({output:"Error: team, name and task are required",isError:!0}):((this.mgr.get(n)??this.mgr.create(n)).spawnTeammate(o,s,this.runAgent),Promise.resolve({output:`Teammate '${o}' spawned in team '${n}'. Its result will arrive on the team channel; keep working and watch for it.`,isError:!1}))}},Us=class{constructor(e,r="lead"){this.mgr=e;this.senderName=r}mgr;senderName;name="SendMessage";description="Send a message to a teammate's mailbox. Use to='*' to broadcast to all teammates.";category="read";senderTeam(){let e=this.mgr.list();for(let r of e)if(r.getMember(this.senderName))return r;return e[0]}schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{to:{type:"string",description:"Teammate name, or '*' to broadcast"},content:{type:"string",description:"Message content. For shutdown_request this is the reason; for plan_approval_response this is your feedback when rejecting."},type:{type:"string",enum:[js,Qt,Ns,Lr],description:"Message kind, defaults to 'text'. Use 'shutdown_request' to ask a teammate to wrap up (it replies with shutdown_response). Use 'plan_approval_response' to answer a teammate's plan, together with 'approve' and, when rejecting, feedback in 'content'."},request_id:{type:"string",description:"Required for plan_approval_response: copy the requestId from the teammate's plan approval request so it knows which plan you are answering."},approve:{type:"boolean",description:"Required for plan_approval_response: true to let the teammate start executing, false to send it back to revise."}},required:["to","content"]}}}async execute(e,r){let n=E(r,"to"),o=E(r,"content"),s=this.senderTeam();if(!s)return{output:"No active team found for this sender.",isError:!0};let i=typeof r.type=="string"?r.type:js;if(i!==js){let c=typeof r.request_id=="string"?r.request_id:"",u=typeof r.approve=="boolean"?r.approve:void 0,l;switch(i){case Qt:l=Ds(this.senderName,o);break;case Ns:if(u===void 0)return{output:"shutdown_response requires 'approve'.",isError:!0};l=Ls(this.senderName,c,u,o);break;case Lr:if(!c||u===void 0)return{output:"plan_approval_response requires both 'request_id' and 'approve'.",isError:!0};l=Lh(this.senderName,c,u,o);break;default:return{output:`Unsupported message type ${i}.`,isError:!0}}let d=n==="lead"?s.leadMailbox:s.getMember(n)?.mailbox;return d?(await d.send(this.senderName,l.text,l),{output:`${i} sent to '${n}'.`,isError:!1}):{output:`Teammate '${n}' not found.`,isError:!0}}if(n==="*"){let c=0;for(let u of s.listMembers())u.name!==this.senderName&&(await s.sendMessage(this.senderName,u.name,o),c++);return{output:`Message broadcast to ${String(c)} teammate(s).`,isError:!1}}let a=Dr().resolve(n)??n;try{await s.sendMessage(this.senderName,a,o)}catch(c){return v$.error({err:c},"teams operation failed"),{output:`Error: ${N(c)}`,isError:!0}}return{output:`Message sent to '${n}'.`,isError:!1}}},Wh=class{constructor(e){this.mgr=e}mgr;name="ListTeams";description="List teams and their members.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{},required:[]}}}execute(){let e=this.mgr.list();if(e.length===0)return Promise.resolve({output:"No teams.",isError:!1});let r=e.map(n=>{let o=n.listMembers().map(s=>`${s.name}${s.active?" (active)":""}`).join(", ")||"(no members)";return`${n.name} [${n.mode}]: ${o}`});return Promise.resolve({output:r.join(`
279
+ `),isError:!1})}},Vh=class{constructor(e){this.mgr=e}mgr;name="TeamDelete";description="Delete a team and stop its members.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{name:{type:"string"}},required:["name"]}}}async execute(e,r){let n=E(r,"name");return await this.mgr.delete(n),{output:`Team '${n}' deleted.`,isError:!1}}};import{readdirSync as b$,readFileSync as S$,existsSync as k$}from"fs";import{join as wl}from"path";import{homedir as T$}from"os";var Gh=C({module:"subagent"});function Kh(t){let e=[...Oh],r=T$();r&&Bh(wl(r,".swifty","agents"),e);let n=[wl(t,".swifty","agents")];for(let o of n)Bh(o,e);return e}function Bh(t,e){if(!k$(t))return;let r=b$(t).filter(n=>n.endsWith(".md"));for(let n of r)try{let o=S$(wl(t,n),"utf-8"),s=$$(o);if(s){let i=e.findIndex(a=>a.name===s.name);i>=0?e[i]=s:e.push(s)}}catch(o){Gh.error({err:o},"subagent operation failed");continue}}var x$=_.looseObject({name:_.string(),description:_.string().optional(),tools:_.array(_.string()).optional(),disallowed_tools:_.array(_.string()).optional(),system_prompt:_.string().optional(),max_turns:_.number().optional(),model:_.string().optional(),background:_.boolean().optional(),isolation:_.literal("worktree").optional()});function $$(t){if(!t.startsWith("---"))return null;let e=t.indexOf("---",3);if(e===-1)return null;let r=t.slice(3,e).trim(),n=t.slice(e+3).trim();try{let o=ft.load(r),s=xe(x$,o);return{name:s.name,description:s.description??n.slice(0,200),tools:s.tools,disallowedTools:s.disallowed_tools,systemPromptOverride:s.system_prompt,maxTurns:s.max_turns,model:s.model,background:s.background,isolation:s.isolation,initialPrompt:n}}catch(o){return Gh.error({err:o},"subagent operation failed"),null}}var E$=new Set(["pending","in_progress","completed","blocked"]),Fs=class{constructor(e,r,n=""){this.mgr=e;this.teamName=r;this.agentName=n}mgr;teamName;agentName;name="TaskCreate";description="Create a shared task in the team's task board. Supports dependency tracking with blocks/blocked_by fields.";category="command";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{title:{type:"string",description:"Short task title"},description:{type:"string",description:"Optional task details"},assignee:{type:"string",description:"Teammate name to assign this task to"},blocks:{type:"array",items:{type:"string"},description:"IDs of tasks that this task blocks"},blocked_by:{type:"array",items:{type:"string"},description:"IDs of tasks that block this task"}},required:["title"]}}}execute(e,r){let n=E(r,"title");if(!n)return Promise.resolve({output:"Error: 'title' is required",isError:!0});let o=this.mgr.getTaskStore(this.teamName);if(!o)return Promise.resolve({output:`Task store not found for team '${this.teamName}'`,isError:!0});let s=o.create(n,E(r,"description"),E(r,"assignee"),Wr(r.blocks),Wr(r.blocked_by),this.agentName);return Promise.resolve({output:`Task created:
280
280
  ID: ${s.id}
281
281
  Title: ${s.title}
282
282
  Status: ${s.status}
283
- Assignee: ${s.assignee||"(unassigned)"}`,isError:!1})}},Us=class{constructor(e,r){this.mgr=e;this.teamName=r}mgr;teamName;name="TaskGet";description="Get details of a shared task by ID, including dependency information.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{task_id:{type:"string",description:"ID of the task to fetch"}},required:["task_id"]}}}execute(e,r){let n=x(r,"task_id");if(!n)return Promise.resolve({output:"Error: 'task_id' is required",isError:!0});let o=this.mgr.getTaskStore(this.teamName);if(!o)return Promise.resolve({output:`Task store not found for team '${this.teamName}'`,isError:!0});let s=o.get(n);if(!s)return Promise.resolve({output:`Task '${n}' not found`,isError:!0});let i=[`Task ${s.id}:`,` Title: ${s.title}`,` Status: ${s.status}`,` Assignee: ${s.assignee||"(unassigned)"}`,` Created by: ${s.createdBy||"(unknown)"}`];return s.description&&i.push(` Description: ${s.description}`),s.blocks.length&&i.push(` Blocks: ${s.blocks.join(", ")}`),s.blockedBy.length&&i.push(` Blocked by: ${s.blockedBy.join(", ")}`),Promise.resolve({output:i.join(`
284
- `),isError:!1})}},Fs=class{constructor(e,r){this.mgr=e;this.teamName=r}mgr;teamName;name="TaskList";description="List all shared tasks in the team's task board. Optionally filter by status (pending/in_progress/completed/blocked) or assignee.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{status:{type:"string",description:"Filter by status"},assignee:{type:"string",description:"Filter by assignee name"}},required:[]}}}execute(e,r){let n=this.mgr.getTaskStore(this.teamName);if(!n)return Promise.resolve({output:`Task store not found for team '${this.teamName}'`,isError:!0});let o=x(r,"status")||void 0,s=x(r,"assignee")||void 0,i=n.listTasks(o,s);if(i.length===0){let u=[];o&&u.push(`status=${o}`),s&&u.push(`assignee=${s}`);let l=u.length?` (filters: ${u.join(", ")})`:"";return Promise.resolve({output:`No tasks found${l}`,isError:!1})}let a={pending:"\u25CB",in_progress:"\u25D0",completed:"\u25CF",blocked:"\u2715"},c=[`Tasks (${String(i.length)}):`];for(let u of i){let l=a[u.status]??"?",d=u.assignee?` [${u.assignee}]`:"",m=u.blockedBy.length?` (blocked by: ${u.blockedBy.join(", ")})`:"";c.push(` ${l} [${u.id}] ${u.title}${d}${m}`)}return Promise.resolve({output:c.join(`
285
- `),isError:!1})}},Hs=class{constructor(e,r){this.mgr=e;this.teamName=r}mgr;teamName;name="TaskUpdate";description="Update a shared task's status, assignee, description, or dependencies. Use add_blocks/add_blocked_by to add dependency relations.";category="command";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{task_id:{type:"string",description:"ID of the task to update"},status:{type:"string",description:"New status: pending/in_progress/completed/blocked"},assignee:{type:"string",description:"Teammate name to assign"},description:{type:"string",description:"New description"},add_blocks:{type:"array",items:{type:"string"},description:"Task IDs to add to the blocks list"},add_blocked_by:{type:"array",items:{type:"string"},description:"Task IDs to add to the blocked_by list"}},required:["task_id"]}}}execute(e,r){let n=x(r,"task_id");if(!n)return Promise.resolve({output:"Error: 'task_id' is required",isError:!0});let o=x(r,"status");if(o&&!dx.has(o))return Promise.resolve({output:`Invalid status '${o}'. Must be one of: blocked, completed, in_progress, pending`,isError:!0});let s=this.mgr.getTaskStore(this.teamName);if(!s)return Promise.resolve({output:`Task store not found for team '${this.teamName}'`,isError:!0});let i=[],a={};o&&(a.status=o,i.push(`status \u2192 ${o}`)),typeof r.assignee=="string"&&(a.assignee=r.assignee,i.push(`assignee \u2192 ${a.assignee||"(unassigned)"}`)),typeof r.description=="string"&&(a.description=r.description,i.push("description updated"));let c=Wr(r.add_blocks);c.length&&(a.addBlocks=c,i.push(`blocks += ${c.join(", ")}`));let u=Wr(r.add_blocked_by);u.length&&(a.addBlockedBy=u,i.push(`blocked_by += ${u.join(", ")}`));let l=s.update(n,a);return l?Promise.resolve({output:`Task ${l.id} updated: ${i.length?i.join("; "):"no changes"}`,isError:!1}):Promise.resolve({output:`Task '${n}' not found`,isError:!0})}};import{randomBytes as px}from"crypto";var mx=C({module:"subagent"}),fx="general-purpose";function Hh(){return`agent-a${px(4).toString("hex").slice(0,7)}`}var Vh="<fork_boilerplate>",hx="agent:builtin:fork",gx=`${Vh}
283
+ Assignee: ${s.assignee||"(unassigned)"}`,isError:!1})}},Hs=class{constructor(e,r){this.mgr=e;this.teamName=r}mgr;teamName;name="TaskGet";description="Get details of a shared task by ID, including dependency information.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{task_id:{type:"string",description:"ID of the task to fetch"}},required:["task_id"]}}}execute(e,r){let n=E(r,"task_id");if(!n)return Promise.resolve({output:"Error: 'task_id' is required",isError:!0});let o=this.mgr.getTaskStore(this.teamName);if(!o)return Promise.resolve({output:`Task store not found for team '${this.teamName}'`,isError:!0});let s=o.get(n);if(!s)return Promise.resolve({output:`Task '${n}' not found`,isError:!0});let i=[`Task ${s.id}:`,` Title: ${s.title}`,` Status: ${s.status}`,` Assignee: ${s.assignee||"(unassigned)"}`,` Created by: ${s.createdBy||"(unknown)"}`];return s.description&&i.push(` Description: ${s.description}`),s.blocks.length&&i.push(` Blocks: ${s.blocks.join(", ")}`),s.blockedBy.length&&i.push(` Blocked by: ${s.blockedBy.join(", ")}`),Promise.resolve({output:i.join(`
284
+ `),isError:!1})}},Ws=class{constructor(e,r){this.mgr=e;this.teamName=r}mgr;teamName;name="TaskList";description="List all shared tasks in the team's task board. Optionally filter by status (pending/in_progress/completed/blocked) or assignee.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{status:{type:"string",description:"Filter by status"},assignee:{type:"string",description:"Filter by assignee name"}},required:[]}}}execute(e,r){let n=this.mgr.getTaskStore(this.teamName);if(!n)return Promise.resolve({output:`Task store not found for team '${this.teamName}'`,isError:!0});let o=E(r,"status")||void 0,s=E(r,"assignee")||void 0,i=n.listTasks(o,s);if(i.length===0){let u=[];o&&u.push(`status=${o}`),s&&u.push(`assignee=${s}`);let l=u.length?` (filters: ${u.join(", ")})`:"";return Promise.resolve({output:`No tasks found${l}`,isError:!1})}let a={pending:"\u25CB",in_progress:"\u25D0",completed:"\u25CF",blocked:"\u2715"},c=[`Tasks (${String(i.length)}):`];for(let u of i){let l=a[u.status]??"?",d=u.assignee?` [${u.assignee}]`:"",m=u.blockedBy.length?` (blocked by: ${u.blockedBy.join(", ")})`:"";c.push(` ${l} [${u.id}] ${u.title}${d}${m}`)}return Promise.resolve({output:c.join(`
285
+ `),isError:!1})}},Vs=class{constructor(e,r){this.mgr=e;this.teamName=r}mgr;teamName;name="TaskUpdate";description="Update a shared task's status, assignee, description, or dependencies. Use add_blocks/add_blocked_by to add dependency relations.";category="command";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{task_id:{type:"string",description:"ID of the task to update"},status:{type:"string",description:"New status: pending/in_progress/completed/blocked"},assignee:{type:"string",description:"Teammate name to assign"},description:{type:"string",description:"New description"},add_blocks:{type:"array",items:{type:"string"},description:"Task IDs to add to the blocks list"},add_blocked_by:{type:"array",items:{type:"string"},description:"Task IDs to add to the blocked_by list"}},required:["task_id"]}}}execute(e,r){let n=E(r,"task_id");if(!n)return Promise.resolve({output:"Error: 'task_id' is required",isError:!0});let o=E(r,"status");if(o&&!E$.has(o))return Promise.resolve({output:`Invalid status '${o}'. Must be one of: blocked, completed, in_progress, pending`,isError:!0});let s=this.mgr.getTaskStore(this.teamName);if(!s)return Promise.resolve({output:`Task store not found for team '${this.teamName}'`,isError:!0});let i=[],a={};o&&(a.status=o,i.push(`status \u2192 ${o}`)),typeof r.assignee=="string"&&(a.assignee=r.assignee,i.push(`assignee \u2192 ${a.assignee||"(unassigned)"}`)),typeof r.description=="string"&&(a.description=r.description,i.push("description updated"));let c=Wr(r.add_blocks);c.length&&(a.addBlocks=c,i.push(`blocks += ${c.join(", ")}`));let u=Wr(r.add_blocked_by);u.length&&(a.addBlockedBy=u,i.push(`blocked_by += ${u.join(", ")}`));let l=s.update(n,a);return l?Promise.resolve({output:`Task ${l.id} updated: ${i.length?i.join("; "):"no changes"}`,isError:!1}):Promise.resolve({output:`Task '${n}' not found`,isError:!0})}};import{randomBytes as P$}from"crypto";var R$=C({module:"subagent"}),C$="general-purpose";function Zh(){return`agent-a${P$(4).toString("hex").slice(0,7)}`}var Yh="<fork_boilerplate>",M$="agent:builtin:fork",z$=`${Yh}
286
286
  You are a forked worker process. You are NOT the main agent.
287
287
  Rules (non-negotiable):
288
288
  1. Do NOT fork again.
@@ -290,7 +290,7 @@ Rules (non-negotiable):
290
290
  3. Use tools directly: read files, search code, make changes.
291
291
  4. Stay strictly within your assigned task scope.
292
292
  5. Final report must be under 500 characters, starting with "Scope:".
293
- </fork_boilerplate>`,Wh=class{name="Agent";description="Launch a subagent to handle complex, multi-step tasks.";category="read";definitions;registry;conversation;querySource="";teamManager;workDir;forkDisabled=!1;teamRunAgentFactory;spawnHandler;forkHandler;constructor(e,r,n,o,s){this.definitions=Fh(e),this.workDir=e,this.registry=r,this.spawnHandler=n,this.conversation=o,this.forkHandler=s}setTeamManager(e,r){this.teamManager=e,this.teamRunAgentFactory=r}schema(){let e=this.definitions.map(r=>r.name);return{name:this.name,description:this.buildDescription(),input_schema:{type:"object",properties:{description:{type:"string",description:"Short description of what the agent will do"},prompt:{type:"string",description:"The task for the agent to perform"},subagent_type:{type:"string",enum:e,description:"Agent type. Omit to fork current conversation context."},model:{type:"string",description:"Override the model for this agent."},run_in_background:{type:"boolean",description:"Run in background",default:!1},isolation:{type:"string",enum:["worktree"],description:"Set to 'worktree' to run the agent in its own Git worktree, so its edits cannot collide with the parent or with other agents working in parallel."},plan_mode_required:{type:"boolean",description:"Only meaningful together with team_name. When true, the teammate starts in plan mode: it can read and investigate but cannot modify anything until it submits a plan and you approve it via SendMessage with type='plan_approval_response'. Use it for risky or ambiguous tasks where a wrong direction would cost a lot of rework."},team_name:{type:"string",description:"REQUIRED when creating team members. Spawns the agent as a long-running teammate under this team (created via TeamCreate). Unlike regular subagents, team members persist after the lead returns and communicate via SendMessage. Without team_name the agent runs as a one-shot subagent that blocks and returns inline."}},required:["description","prompt"]}}}buildDescription(){let e=`Launch a subagent to handle a complex task. Each subagent runs independently with its own context. The subagent cannot see the current conversation.
293
+ </fork_boilerplate>`,Jh=class{name="Agent";description="Launch a subagent to handle complex, multi-step tasks.";category="read";definitions;registry;conversation;querySource="";teamManager;workDir;forkDisabled=!1;teamRunAgentFactory;spawnHandler;forkHandler;constructor(e,r,n,o,s){this.definitions=Kh(e),this.workDir=e,this.registry=r,this.spawnHandler=n,this.conversation=o,this.forkHandler=s}setTeamManager(e,r){this.teamManager=e,this.teamRunAgentFactory=r}schema(){let e=this.definitions.map(r=>r.name);return{name:this.name,description:this.buildDescription(),input_schema:{type:"object",properties:{description:{type:"string",description:"Short description of what the agent will do"},prompt:{type:"string",description:"The task for the agent to perform"},subagent_type:{type:"string",enum:e,description:"Agent type. Omit to fork current conversation context."},model:{type:"string",description:"Override the model for this agent."},run_in_background:{type:"boolean",description:"Run in background",default:!1},isolation:{type:"string",enum:["worktree"],description:"Set to 'worktree' to run the agent in its own Git worktree, so its edits cannot collide with the parent or with other agents working in parallel."},plan_mode_required:{type:"boolean",description:"Only meaningful together with team_name. When true, the teammate starts in plan mode: it can read and investigate but cannot modify anything until it submits a plan and you approve it via SendMessage with type='plan_approval_response'. Use it for risky or ambiguous tasks where a wrong direction would cost a lot of rework."},team_name:{type:"string",description:"REQUIRED when creating team members. Spawns the agent as a long-running teammate under this team (created via TeamCreate). Unlike regular subagents, team members persist after the lead returns and communicate via SendMessage. Without team_name the agent runs as a one-shot subagent that blocks and returns inline."}},required:["description","prompt"]}}}buildDescription(){let e=`Launch a subagent to handle a complex task. Each subagent runs independently with its own context. The subagent cannot see the current conversation.
294
294
 
295
295
  This is ONE tool with multiple roles. Roles are NOT separate tools \u2014 you pick one by passing its name in the "subagent_type" parameter. Do not search for a tool named after a role; call THIS tool ("Agent") and set "subagent_type".
296
296
 
@@ -308,19 +308,19 @@ Example call shape:
308
308
  }
309
309
 
310
310
  Write a detailed prompt explaining what the subagent should do and why \u2014 it has no prior context.
311
- When tasks are independent, launch multiple subagents in parallel by making multiple Agent tool calls in a single response.`,e}async execute(e,r){let n=x(r,"description"),o=x(r,"prompt");if(!n||!o)return{output:"Error: description and prompt are required",isError:!0};let s=x(r,"subagent_type")||(this.forkDisabled?fx:""),i=x(r,"model"),a=ao(r,"run_in_background"),c=x(r,"team_name"),u=x(r,"isolation");if(c&&this.teamManager&&this.teamRunAgentFactory)return await this.runAsTeammate(c,n,o,r.plan_mode_required===!0,u==="worktree");if(!s)return this.runFork(o,n,i);let l=this.definitions.find(f=>f.name===s);if(!l)return{output:`Error: unknown agent type '${s}'. Available: ${this.definitions.map(f=>f.name).join(", ")}`,isError:!0};let d=o,m;if(u==="worktree"||l.isolation==="worktree")try{let f=await Gr(Hh());m=f.path,d=`${fi(this.workDir,f.path)}
311
+ When tasks are independent, launch multiple subagents in parallel by making multiple Agent tool calls in a single response.`,e}async execute(e,r){let n=E(r,"description"),o=E(r,"prompt");if(!n||!o)return{output:"Error: description and prompt are required",isError:!0};let s=E(r,"subagent_type")||(this.forkDisabled?C$:""),i=E(r,"model"),a=lo(r,"run_in_background"),c=E(r,"team_name"),u=E(r,"isolation");if(c&&this.teamManager&&this.teamRunAgentFactory)return await this.runAsTeammate(c,n,o,r.plan_mode_required===!0,u==="worktree");if(!s)return this.runFork(o,n,i);let l=this.definitions.find(f=>f.name===s);if(!l)return{output:`Error: unknown agent type '${s}'. Available: ${this.definitions.map(f=>f.name).join(", ")}`,isError:!0};let d=o,m;if(u==="worktree"||l.isolation==="worktree")try{let f=await Gr(Zh());m=f.path,d=`${fi(this.workDir,f.path)}
312
312
 
313
- ${o}`}catch(f){return{output:`Error creating agent worktree: ${N(f)}`,isError:!0}}try{return{output:await this.spawnHandler(l,d,a||!!l.background,i,m),isError:!1}}catch(f){return{output:`Agent error: ${N(f)}`,isError:!0}}}async runAsTeammate(e,r,n,o,s){if(!this.teamManager)return{output:`Error: team manager '${e}' not found.`,isError:!0};let i=this.teamManager.get(e)??this.teamManager.create(e,void 0,{leadAgentId:"lead",description:r}),a=r.replace(/\s+/g,"-").toLowerCase().slice(0,30),c=2,u=a;for(;i.getMember(a);)a=`${u}-${String(c++)}`;let l=new co;for(let g of this.registry.listTools())Ul.has(g.name)||Fl.has(g.name)||l.register(g);l.register(new Ds(this.teamManager,a)),l.register(new Ls(this.teamManager,e,a)),l.register(new Us(this.teamManager,e)),l.register(new Fs(this.teamManager,e)),l.register(new Hs(this.teamManager,e));let d=o?new tr(this.workDir,"plan"):void 0,m=n;if(s)try{let g=await Gr(Hh());i.setMemberMeta(a,{worktreePath:g.path}),m=`${fi(this.workDir,g.path)}
313
+ ${o}`}catch(f){return{output:`Error creating agent worktree: ${N(f)}`,isError:!0}}try{return{output:await this.spawnHandler(l,d,a||!!l.background,i,m),isError:!1}}catch(f){return{output:`Agent error: ${N(f)}`,isError:!0}}}async runAsTeammate(e,r,n,o,s){if(!this.teamManager)return{output:`Error: team manager '${e}' not found.`,isError:!0};let i=this.teamManager.get(e)??this.teamManager.create(e,void 0,{leadAgentId:"lead",description:r}),a=r.replace(/\s+/g,"-").toLowerCase().slice(0,30),c=2,u=a;for(;i.getMember(a);)a=`${u}-${String(c++)}`;let l=new uo;for(let g of this.registry.listTools())Ul.has(g.name)||Fl.has(g.name)||l.register(g);l.register(new Us(this.teamManager,a)),l.register(new Fs(this.teamManager,e,a)),l.register(new Hs(this.teamManager,e)),l.register(new Ws(this.teamManager,e)),l.register(new Vs(this.teamManager,e));let d=o?new tr(this.workDir,"plan"):void 0,m=n;if(s)try{let g=await Gr(Zh());i.setMemberMeta(a,{worktreePath:g.path}),m=`${fi(this.workDir,g.path)}
314
314
 
315
315
  ${n}`}catch(g){return{output:`Error creating teammate worktree: ${N(g)}`,isError:!0}}let f=this.teamRunAgentFactory?.(l,d);return f&&i.spawnTeammate(a,m,f,d),{output:`Teammate '${a}' spawned in team '${e}' (mode: ${i.mode})${o?", starting in plan mode":""}.
316
- The teammate is now working on the assigned task.`,isError:!1}}async runFork(e,r,n){if(!this.conversation||!this.forkHandler)return{output:"Error: fork requires parent conversation context",isError:!0};if(this.querySource===hx)return{output:"Error: cannot fork from a forked agent. Use subagent_type to spawn a definition-based agent instead.",isError:!0};for(let o of this.conversation.getMessages())if(o.content.includes(Vh))return{output:"Error: cannot fork from a forked agent. Use subagent_type to spawn a definition-based agent instead.",isError:!0};try{let{cloneRegistryForFork:o}=await import("./tool-filter-ERUPKZYV.js"),s=o(this.registry);return await this.forkHandler(`${gx}
316
+ The teammate is now working on the assigned task.`,isError:!1}}async runFork(e,r,n){if(!this.conversation||!this.forkHandler)return{output:"Error: fork requires parent conversation context",isError:!0};if(this.querySource===M$)return{output:"Error: cannot fork from a forked agent. Use subagent_type to spawn a definition-based agent instead.",isError:!0};for(let o of this.conversation.getMessages())if(o.content.includes(Yh))return{output:"Error: cannot fork from a forked agent. Use subagent_type to spawn a definition-based agent instead.",isError:!0};try{let{cloneRegistryForFork:o}=await import("./tool-filter-ERUPKZYV.js"),s=o(this.registry);return await this.forkHandler(`${z$}
317
317
 
318
318
  Your task:
319
- ${e}`,this.conversation,s,n),{output:`Forked agent "${r}" launched in background. Results will arrive via task-notification.`,isError:!1}}catch(o){return mx.error({err:o},"subagent operation failed"),{output:`Fork error: ${N(o)}`,isError:!0}}}};var yx={haiku:"claude-haiku-4-5-20251001",sonnet:"claude-sonnet-4-6-20250514",opus:"claude-opus-4-6-20250514"};function Bh(t){return yx[t]??t}async function b1(t,e,r,n,o,s,i,a,c,u){let l=c??t.model,d=l?Bh(l):o.model,m=Xl(s);m.model=d;let f=t.systemPromptOverride??eu(m),g=l?await ni({...o,model:d},f):r,h=Hl(n,t.tools,t.disallowedTools,!1),y=t.permissionMode??"acceptEdits",v=u??new tr(s,y),E=new er;E.addUserMessage(e);let k=new lo({client:g,registry:h,checker:v,conversation:E,workDir:s,maxIterations:t.maxTurns??200}),z="",w=0;for await(let b of k.run())switch(b.type){case"stream_text":z+=b.text;break;case"tool_use":i?.({lastTool:b.toolName}),a?.({type:"tool_use",toolName:b.toolName,args:b.args});break;case"usage":a?.({type:"usage",usage:{inputTokens:b.usage.inputTokens,outputTokens:b.usage.outputTokens}});break;case"turn_complete":i?.({turn:++w});break;case"loop_complete":return z||"[No output]";case"error":return z?`${z}
319
+ ${e}`,this.conversation,s,n),{output:`Forked agent "${r}" launched in background. Results will arrive via task-notification.`,isError:!1}}catch(o){return R$.error({err:o},"subagent operation failed"),{output:`Fork error: ${N(o)}`,isError:!0}}}};var A$={haiku:"claude-haiku-4-5-20251001",sonnet:"claude-sonnet-4-6-20250514",opus:"claude-opus-4-6-20250514"};function Xh(t){return A$[t]??t}async function Uj(t,e,r,n,o,s,i,a,c,u){let l=c??t.model,d=l?Xh(l):o.model,m=Ql(s);m.model=d;let f=t.systemPromptOverride??eu(m),g=l?await ni({...o,model:d},f):r,h=Hl(n,t.tools,t.disallowedTools,!1),y=t.permissionMode??"acceptEdits",v=u??new tr(s,y),$=new er;$.addUserMessage(e);let k=new po({client:g,registry:h,checker:v,conversation:$,workDir:s,maxIterations:t.maxTurns??200}),z="",w=0;for await(let b of k.run())switch(b.type){case"stream_text":z+=b.text;break;case"tool_use":i?.({lastTool:b.toolName}),a?.({type:"tool_use",toolName:b.toolName,args:b.args});break;case"usage":a?.({type:"usage",usage:{inputTokens:b.usage.inputTokens,outputTokens:b.usage.outputTokens}});break;case"turn_complete":i?.({turn:++w});break;case"loop_complete":return z||"[No output]";case"error":return z?`${z}
320
320
 
321
- [Error: ${b.error.message}]`:`Error: ${b.error.message}`}return z||"[No output]"}var Gh=class{constructor(e){this.teamManager=e}teamManager;name="TaskStop";description="Stop a running teammate. Pass the teammate name as it appears in the from= field of a team-notification. Use this when you sent a teammate in the wrong direction \u2014 for example when the user changes requirements after you launched it.";category="command";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{teammate:{type:"string",description:"Name of the teammate to stop, exactly as it appears in the from= field of a team-notification"}},required:["teammate"]}}}async execute(e,r){let n=x(r,"teammate","");if(!n)return{output:"Error: teammate is required",isError:!0};for(let o of this.teamManager.list()){let s=o.members.get(n);if(s)return s.active?(await o.stopMember(n),{output:`Teammate '${n}' in team '${o.name}' stopped.`,isError:!1}):{output:`Teammate '${n}' in team '${o.name}' is not running, nothing to stop`,isError:!1}}return{output:`Error: teammate '${n}' not found. Known teammates: ${this.knownMembers()}`,isError:!0}}knownMembers(){let e=[];for(let r of this.teamManager.list())for(let n of r.members.keys())e.push(n);return e.length>0?e.join(", "):"(none)"}};var Kh=class{constructor(e){this.jsonSchema=e}jsonSchema;name="SyntheticOutput";description="Return structured output in JSON format. Use this tool to return your final response as structured data in non-interactive or coordinator mode sessions.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{output:{description:"The structured result: an object, an array, or a plain string"}},required:["output"]}}}execute(e,r){if(!("output"in r))return Promise.resolve({output:"Error: output is required",isError:!0});let n=r.output,o=this.validateSchema(n);if(o)return Promise.resolve({output:`Output does not match required schema: ${o}`,isError:!0});if(typeof n=="string")return Promise.resolve({output:n,isError:!1});try{return Promise.resolve({output:JSON.stringify(n,null,2),isError:!1})}catch(s){return Promise.resolve({output:`Error: output is not serializable: ${N(s)}`,isError:!0})}}validateSchema(e){if(!this.jsonSchema)return"";let r=this.jsonSchema.type;if(typeof r=="string"){let o=Array.isArray(e);if(r==="object"&&!(typeof e=="object"&&e!==null&&!o))return`Expected object, got ${o?"array":typeof e}`;if(r==="array"&&!o)return`Expected array, got ${typeof e}`;if(r==="string"&&typeof e!="string")return`Expected string, got ${o?"array":typeof e}`}let n=this.jsonSchema.required;if(Array.isArray(n)&&typeof e=="object"&&e!==null&&!Array.isArray(e)){let o=n.filter(s=>typeof s=="string"&&!(s in e));if(o.length>0)return`Missing required fields: ${o.join(", ")}`}return""}};import{exec as _x}from"child_process";var Ur=C({module:"hooks"});function wx(t,e){return new Promise((r,n)=>{_x(t,{shell:"bash",encoding:"utf-8",timeout:3e4,env:e.env,maxBuffer:10*1024*1024},(o,s)=>{o?n(o):r(s)})})}var Zh=class{hooks;firedOnce=new Set;notifications=[];agentRunner;constructor(e){this.hooks=e}recordNotification(e){e.trim()&&this.notifications.push(e)}drainNotifications(){let e=this.notifications;return this.notifications=[],e}async fire(e,r){let n=[];for(let o of this.hooks)if(o.event===e){if(o.once){let s=o.id??`${o.event}-${o.action.type}`;if(this.firedOnce.has(s))continue;this.firedOnce.add(s)}if(!(o.condition&&!vx(o.condition,r))){if(o.async){this.executeAction(o,r).then(s=>{this.recordNotification(s.output)}).catch(s=>{this.recordNotification(`Async hook error: ${N(s)}`)}),n.push({output:"(async)",success:!0,reject:!1});continue}try{let s=await this.executeAction(o,r);if(n.push(s),s.reject&&e==="pre_tool_use")break}catch(s){Ur.error({err:s},"hooks operation failed");let i=o.on_error??"ignore";if(i==="fail"){let a=`Hook error: ${N(s)}`;n.push({output:a,success:!1,reject:!1})}else if(i==="reject"){let a=`Hook error (rejecting): ${N(s)}`;n.push({output:a,success:!1,reject:!0})}}}}return n}async firePreToolHooks(e,r){let n={event:"pre_tool_use",toolName:e,args:r,filePath:x(r,"file_path",x(r,"path",""))},o=await this.fire("pre_tool_use",n);for(let s of o)if(s.reject)return{rejected:!0,reason:s.output};return{rejected:!1,reason:""}}async executeAction(e,r){switch(e.action.type){case"command":{let n=e.action.command??"";try{return{output:(await wx(n,{env:{...process.env,SWIFTY_EVENT:r.event,SWIFTY_TOOL:r.toolName??"",SWIFTY_FILE_PATH:r.filePath??""}})).trim(),success:!0,reject:e.reject??!1}}catch(o){throw Ur.error({err:o},"hooks operation failed"),o}}case"prompt":return{output:e.action.prompt??"",success:!0,reject:!1};case"http":{let n=e.action.url??"",o=e.action.method??"POST";try{let s=await fetch(n,{method:o,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});return{output:await s.text(),success:s.ok,reject:e.reject??!1}}catch(s){throw Ur.error({err:s},"hooks operation failed"),s}}case"agent":{if(!this.agentRunner)return{output:"agent-type hook configured but no AgentRunner registered",success:!1,reject:e.reject??!1};let n=e.action.prompt??e.action.command??"";try{return{output:await this.agentRunner(n,r),success:!0,reject:e.reject??!1}}catch(o){return Ur.error({err:o},"hooks operation failed"),{output:N(o),success:!1,reject:e.reject??!1}}}default:return{output:"",success:!0,reject:!1}}}};function vx(t,e){let r=t.split(/\s*(&&|\|\|)\s*/),n=wl(r[0],e);for(let o=1;o<r.length;o+=2){let s=r[o],i=wl(r[o+1],e);s==="&&"?n=n&&i:s==="||"&&(n=n||i)}return n}function wl(t,e){let r=t.trim();if(r.startsWith("!"))return!wl(r.slice(1),e);let n=/^(\w+)\s*==\s*"([^"]*)"$/.exec(r);if(n)return Ws(n[1],e)===n[2];let o=/^(\w+)\s*!=\s*"([^"]*)"$/.exec(r);if(o)return Ws(o[1],e)!==o[2];let s=/^(\w+)\s*=~\s*"([^"]*)"$/.exec(r);if(s){let a=Ws(s[1],e);try{return new RegExp(s[2]).test(a)}catch(c){return Ur.error({err:c},"hooks operation failed"),!1}}let i=/^(\w+)\s*=\*\s*"([^"]*)"$/.exec(r);if(i){let a=Ws(i[1],e),c=i[2].replace(/\*\*/g,".*").replace(/\*/g,"[^/]*").replace(/\?/g,".");try{return new RegExp(`^${c}$`).test(a)}catch(u){return Ur.error({err:u},"hooks operation failed"),!1}}return!1}function Ws(t,e){switch(t){case"tool":return e.toolName??"";case"event":return e.event;case"file_path":return e.filePath??"";case"message":return e.message??"";default:return x(e.args??{},t,"")}}function M1(t){let e=new Set(["session_start","session_end","turn_start","turn_end","pre_send","post_receive","pre_tool_use","post_tool_use","shutdown"]),r=new Set(["command","prompt","http","agent"]),n=[];for(let o=0;o<t.length;o++){let s=t[o],i=s.id?`hook[${String(o)}] (id="${s.id}")`:`hook[${String(o)}]`;if(s.event?e.has(s.event)||n.push(`${i}: invalid event '${s.event}'`):n.push(`${i}: event is required`),!s.action.type)n.push(`${i}: action.type is required`);else if(!r.has(s.action.type))n.push(`${i}: invalid action type '${s.action.type}'`);else switch(s.action.type){case"command":s.action.command?.trim()||n.push(`${i}: action.command must be non-empty for type "command"`);break;case"prompt":s.action.prompt?.trim()||n.push(`${i}: action.prompt must be non-empty for type "prompt"`);break;case"http":s.action.url?.trim()||n.push(`${i}: action.url must be non-empty for type "http"`);break;case"agent":!s.action.prompt?.trim()&&!s.action.command?.trim()&&n.push(`${i}: action.prompt (or action.command) must be non-empty for type "agent"`);break}s.reject&&s.async&&n.push(`${i}: reject and async are mutually exclusive`)}return n.length>0?new Error(n.join("; ")):null}function Jh(t,e,r){let n=t.body;return n.includes("$ARGUMENTS")?n=n.replaceAll("$ARGUMENTS",e):e&&(n+=`
321
+ [Error: ${b.error.message}]`:`Error: ${b.error.message}`}return z||"[No output]"}var Qh=class{constructor(e){this.teamManager=e}teamManager;name="TaskStop";description="Stop a running teammate. Pass the teammate name as it appears in the from= field of a team-notification. Use this when you sent a teammate in the wrong direction \u2014 for example when the user changes requirements after you launched it.";category="command";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{teammate:{type:"string",description:"Name of the teammate to stop, exactly as it appears in the from= field of a team-notification"}},required:["teammate"]}}}async execute(e,r){let n=E(r,"teammate","");if(!n)return{output:"Error: teammate is required",isError:!0};for(let o of this.teamManager.list()){let s=o.members.get(n);if(s)return s.active?(await o.stopMember(n),{output:`Teammate '${n}' in team '${o.name}' stopped.`,isError:!1}):{output:`Teammate '${n}' in team '${o.name}' is not running, nothing to stop`,isError:!1}}return{output:`Error: teammate '${n}' not found. Known teammates: ${this.knownMembers()}`,isError:!0}}knownMembers(){let e=[];for(let r of this.teamManager.list())for(let n of r.members.keys())e.push(n);return e.length>0?e.join(", "):"(none)"}};var eg=class{constructor(e){this.jsonSchema=e}jsonSchema;name="SyntheticOutput";description="Return structured output in JSON format. Use this tool to return your final response as structured data in non-interactive or coordinator mode sessions.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{output:{description:"The structured result: an object, an array, or a plain string"}},required:["output"]}}}execute(e,r){if(!("output"in r))return Promise.resolve({output:"Error: output is required",isError:!0});let n=r.output,o=this.validateSchema(n);if(o)return Promise.resolve({output:`Output does not match required schema: ${o}`,isError:!0});if(typeof n=="string")return Promise.resolve({output:n,isError:!1});try{return Promise.resolve({output:JSON.stringify(n,null,2),isError:!1})}catch(s){return Promise.resolve({output:`Error: output is not serializable: ${N(s)}`,isError:!0})}}validateSchema(e){if(!this.jsonSchema)return"";let r=this.jsonSchema.type;if(typeof r=="string"){let o=Array.isArray(e);if(r==="object"&&!(typeof e=="object"&&e!==null&&!o))return`Expected object, got ${o?"array":typeof e}`;if(r==="array"&&!o)return`Expected array, got ${typeof e}`;if(r==="string"&&typeof e!="string")return`Expected string, got ${o?"array":typeof e}`}let n=this.jsonSchema.required;if(Array.isArray(n)&&typeof e=="object"&&e!==null&&!Array.isArray(e)){let o=n.filter(s=>typeof s=="string"&&!(s in e));if(o.length>0)return`Missing required fields: ${o.join(", ")}`}return""}};import{exec as I$}from"child_process";var Ur=C({module:"hooks"});function O$(t,e){return new Promise((r,n)=>{I$(t,{shell:"bash",encoding:"utf-8",timeout:3e4,env:e.env,maxBuffer:10*1024*1024},(o,s)=>{o?n(o):r(s)})})}var tg=class{hooks;firedOnce=new Set;notifications=[];agentRunner;constructor(e){this.hooks=e}recordNotification(e){e.trim()&&this.notifications.push(e)}drainNotifications(){let e=this.notifications;return this.notifications=[],e}async fire(e,r){let n=[];for(let o of this.hooks)if(o.event===e){if(o.once){let s=o.id??`${o.event}-${o.action.type}`;if(this.firedOnce.has(s))continue;this.firedOnce.add(s)}if(!(o.condition&&!j$(o.condition,r))){if(o.async){this.executeAction(o,r).then(s=>{this.recordNotification(s.output)}).catch(s=>{this.recordNotification(`Async hook error: ${N(s)}`)}),n.push({output:"(async)",success:!0,reject:!1});continue}try{let s=await this.executeAction(o,r);if(n.push(s),s.reject&&e==="pre_tool_use")break}catch(s){Ur.error({err:s},"hooks operation failed");let i=o.on_error??"ignore";if(i==="fail"){let a=`Hook error: ${N(s)}`;n.push({output:a,success:!1,reject:!1})}else if(i==="reject"){let a=`Hook error (rejecting): ${N(s)}`;n.push({output:a,success:!1,reject:!0})}}}}return n}async firePreToolHooks(e,r){let n={event:"pre_tool_use",toolName:e,args:r,filePath:E(r,"file_path",E(r,"path",""))},o=await this.fire("pre_tool_use",n);for(let s of o)if(s.reject)return{rejected:!0,reason:s.output};return{rejected:!1,reason:""}}async executeAction(e,r){switch(e.action.type){case"command":{let n=e.action.command??"";try{return{output:(await O$(n,{env:{...process.env,SWIFTY_EVENT:r.event,SWIFTY_TOOL:r.toolName??"",SWIFTY_FILE_PATH:r.filePath??""}})).trim(),success:!0,reject:e.reject??!1}}catch(o){throw Ur.error({err:o},"hooks operation failed"),o}}case"prompt":return{output:e.action.prompt??"",success:!0,reject:!1};case"http":{let n=e.action.url??"",o=e.action.method??"POST";try{let s=await fetch(n,{method:o,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});return{output:await s.text(),success:s.ok,reject:e.reject??!1}}catch(s){throw Ur.error({err:s},"hooks operation failed"),s}}case"agent":{if(!this.agentRunner)return{output:"agent-type hook configured but no AgentRunner registered",success:!1,reject:e.reject??!1};let n=e.action.prompt??e.action.command??"";try{return{output:await this.agentRunner(n,r),success:!0,reject:e.reject??!1}}catch(o){return Ur.error({err:o},"hooks operation failed"),{output:N(o),success:!1,reject:e.reject??!1}}}default:return{output:"",success:!0,reject:!1}}}};function j$(t,e){let r=t.split(/\s*(&&|\|\|)\s*/),n=vl(r[0],e);for(let o=1;o<r.length;o+=2){let s=r[o],i=vl(r[o+1],e);s==="&&"?n=n&&i:s==="||"&&(n=n||i)}return n}function vl(t,e){let r=t.trim();if(r.startsWith("!"))return!vl(r.slice(1),e);let n=/^(\w+)\s*==\s*"([^"]*)"$/.exec(r);if(n)return Bs(n[1],e)===n[2];let o=/^(\w+)\s*!=\s*"([^"]*)"$/.exec(r);if(o)return Bs(o[1],e)!==o[2];let s=/^(\w+)\s*=~\s*"([^"]*)"$/.exec(r);if(s){let a=Bs(s[1],e);try{return new RegExp(s[2]).test(a)}catch(c){return Ur.error({err:c},"hooks operation failed"),!1}}let i=/^(\w+)\s*=\*\s*"([^"]*)"$/.exec(r);if(i){let a=Bs(i[1],e),c=i[2].replace(/\*\*/g,".*").replace(/\*/g,"[^/]*").replace(/\?/g,".");try{return new RegExp(`^${c}$`).test(a)}catch(u){return Ur.error({err:u},"hooks operation failed"),!1}}return!1}function Bs(t,e){switch(t){case"tool":return e.toolName??"";case"event":return e.event;case"file_path":return e.filePath??"";case"message":return e.message??"";default:return E(e.args??{},t,"")}}function Yj(t){let e=new Set(["session_start","session_end","turn_start","turn_end","pre_send","post_receive","pre_tool_use","post_tool_use","shutdown"]),r=new Set(["command","prompt","http","agent"]),n=[];for(let o=0;o<t.length;o++){let s=t[o],i=s.id?`hook[${String(o)}] (id="${s.id}")`:`hook[${String(o)}]`;if(s.event?e.has(s.event)||n.push(`${i}: invalid event '${s.event}'`):n.push(`${i}: event is required`),!s.action.type)n.push(`${i}: action.type is required`);else if(!r.has(s.action.type))n.push(`${i}: invalid action type '${s.action.type}'`);else switch(s.action.type){case"command":s.action.command?.trim()||n.push(`${i}: action.command must be non-empty for type "command"`);break;case"prompt":s.action.prompt?.trim()||n.push(`${i}: action.prompt must be non-empty for type "prompt"`);break;case"http":s.action.url?.trim()||n.push(`${i}: action.url must be non-empty for type "http"`);break;case"agent":!s.action.prompt?.trim()&&!s.action.command?.trim()&&n.push(`${i}: action.prompt (or action.command) must be non-empty for type "agent"`);break}s.reject&&s.async&&n.push(`${i}: reject and async are mutually exclusive`)}return n.length>0?new Error(n.join("; ")):null}function rg(t,e,r){let n=t.body;return n.includes("$ARGUMENTS")?n=n.replaceAll("$ARGUMENTS",e):e&&(n+=`
322
322
 
323
- User Request: ${e}`),r.activateSkill(t.meta.name,n),n}async function Yh(t,e,r){let n=t.body;e&&(n+=`
323
+ User Request: ${e}`),r.activateSkill(t.meta.name,n),n}async function ng(t,e,r){let n=t.body;e&&(n+=`
324
324
 
325
325
  ARGUMENTS: ${e}`);let o=t.meta.forkContext??"none";return o==="recent"?n=`Context from parent conversation:
326
326
  ${r.snapshotParentMessages(5)}
@@ -328,15 +328,24 @@ ${r.snapshotParentMessages(5)}
328
328
  ${n}`:o==="full"&&(n=`Context from parent conversation:
329
329
  ${r.snapshotParentMessages(100)}
330
330
 
331
- ${n}`),r.runSubagent(n)}var Qh=class{constructor(e,r,n){this.catalog=e;this.host=r;this.forkHost=n}catalog;host;forkHost;name="LoadSkill";description="Activate a skill by name. Returns the full SOP body so you can follow its instructions.. Call this when the user's request matches one of the available Skills listed in the available-skills section. Pass the Skill name without a leading slash.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{name:{type:"string",description:"Name of the skill to activate"}},required:["name"]}}}async execute(e,r){let n=x(r,"name"),o=this.catalog.get(n);if(!o){let i=this.catalog.list().map(a=>a.name).join(", ")||"(none)";return{output:`Skill '${n}' not found. Available skills: ${i}`,isError:!0}}if(o.meta.mode==="fork"&&this.forkHost)try{return{output:await Yh(o,"",this.forkHost),isError:!1}}catch(i){return{output:`Skill '${n}' fork execution failed: ${N(i)}`,isError:!0}}let s=Jh(o,"",this.host);return{output:`Skill '${n}' activated.
331
+ ${n}`),r.runSubagent(n)}var og=class{constructor(e,r,n){this.catalog=e;this.host=r;this.forkHost=n}catalog;host;forkHost;name="LoadSkill";description="Activate a skill by name. Returns the full SOP body so you can follow its instructions.. Call this when the user's request matches one of the available Skills listed in the available-skills section. Pass the Skill name without a leading slash.";category="read";schema(){return{name:this.name,description:this.description,input_schema:{type:"object",properties:{name:{type:"string",description:"Name of the skill to activate"}},required:["name"]}}}async execute(e,r){let n=E(r,"name"),o=this.catalog.get(n);if(!o){let i=this.catalog.list().map(a=>a.name).join(", ")||"(none)";return{output:`Skill '${n}' not found. Available skills: ${i}`,isError:!0}}if(o.meta.mode==="fork"&&this.forkHost)try{return{output:await ng(o,"",this.forkHost),isError:!1}}catch(i){return{output:`Skill '${n}' fork execution failed: ${N(i)}`,isError:!0}}let s=rg(o,"",this.host);return{output:`Skill '${n}' activated.
332
332
 
333
- ${s}`,isError:!1}}};import{join as Tl}from"path";import{mkdirSync as uE,readFileSync as dE,rmSync as pE}from"fs";import{readFileSync as bx,writeFileSync as Sx,mkdirSync as kx,existsSync as Tx,unlinkSync as eg,statSync as $x,openSync as xx,closeSync as Ex}from"fs";import{join as Px}from"path";var eo=C({module:"teams"}),Rx=_.object({from:_.string(),text:_.string(),timestamp:_.string(),read:_.boolean().optional(),type:_.string().optional(),requestId:_.string().optional(),approve:_.boolean().optional()}),Xh=5e3,Cx=1e4,Mx=5,zx=80,Ax=_.looseObject({errno:_.number().optional(),code:_.string().optional(),path:_.string().optional(),syscall:_.string().optional()});function Ix(t){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,t)}function Ox(t){let e=Date.now()+Xh,r=Mx;for(;;)try{let n=xx(t,"wx");Ex(n);return}catch(n){eo.error({err:n},"teams operation failed");let{data:o,success:s}=Cl(Ax,n),i="";if(s&&o.code&&(i=o.code),i!=="EEXIST")throw n;try{let a=$x(t);if(Date.now()-a.mtimeMs>Cx)try{eg(t);continue}catch(c){eo.error({err:c},"teams operation failed")}}catch(a){eo.error({err:a},"teams operation failed")}if(Date.now()>=e)throw new Error(`mailbox lock ${t}: timed out after ${String(Xh)}ms, message not written`);Ix(r+Math.floor(Math.random()*r)),r=Math.min(r*2,zx)}}function jx(t){try{eg(t)}catch(e){eo.error({err:e},"teams operation failed")}}function vl(t,e){let r=t+".lock";Ox(r);try{return e()}finally{jx(r)}}var to=class{filePath;constructor(e,r){kx(e,{recursive:!0}),this.filePath=Px(e,`${r}.json`)}readAll(){if(!Tx(this.filePath))return[];try{let e=JSON.parse(bx(this.filePath,"utf-8")),r=[];if(Array.isArray(e))for(let n of e){let o=Rx.safeParse(n);o.success&&r.push(o.data)}return r}catch(e){return eo.error({err:e},"teams operation failed"),[]}}writeAll(e){Sx(this.filePath,JSON.stringify(e,null,2),"utf-8")}async send(e,r,n){let o=n??{from:e,text:r,timestamp:new Date().toISOString()};return o.read=!1,vl(this.filePath,()=>{let s=this.readAll();s.push(o),this.writeAll(s)}),Promise.resolve()}receiveSync(){return vl(this.filePath,()=>{let e=this.readAll(),r=e.filter(n=>!n.read);if(r.length>0){for(let n of e)n.read=!0;this.writeAll(e)}return r})}async receive(){return Promise.resolve(this.receiveSync())}unreadCount(){return this.readAll().filter(e=>!e.read).length}markAllRead(){vl(this.filePath,()=>{let e=this.readAll(),r=!1;for(let n of e)n.read||(n.read=!0,r=!0);r&&this.writeAll(e)})}async*poll(e=1e3){for(;;){let r=await this.receive();for(let n of r)yield n;await new Promise(n=>setTimeout(n,e))}}};import{existsSync as Nx,mkdirSync as qx,readFileSync as Dx,writeFileSync as Lx}from"fs";import{homedir as Ux}from"os";import{dirname as Fx,join as bl}from"path";var Hx=_.object({agentId:_.string(),name:_.string(),agentType:_.string().optional(),model:_.string().optional(),joinedAt:_.number(),worktreePath:_.string().optional(),backendType:_.string().optional(),isActive:_.boolean().optional()}),Wx=_.object({name:_.string(),description:_.string().optional(),createdAt:_.number(),leadAgentId:_.string(),members:_.array(Hx)});function Vx(){return bl(Ux(),".swifty","teams")}function Bx(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function ro(t){return bl(Vx(),Bx(t))}function tg(t){return bl(ro(t),"config.json")}function rg(t){let e=tg(t);if(!Nx(e))return null;try{let r=JSON.parse(Dx(e,"utf-8"));return Wx.parse(r)}catch{return null}}function ng(t,e){try{let r=tg(t);qx(Fx(r),{recursive:!0}),Lx(r,JSON.stringify(e,null,2),"utf-8")}catch{}}import{execSync as Vs,spawn as Gx}from"child_process";var og=C({module:"teams"});function ig(){return process.platform==="win32"?"in-process":Kx()}function Kx(){return process.env.TMUX?"tmux":process.env.ITERM_SESSION_ID?"iterm":"in-process"}function ag(t){return/^[A-Za-z0-9_/.:=-]+$/.test(t)?t:`'${t.replace(/'/g,"'\\''")}'`}function sg(t){return[t.command,...t.args].map(ag).join(" ")}function cg(t){switch(t.mode){case"in-process":{let e=Gx(t.command,t.args,{cwd:t.cwd,stdio:["pipe","pipe","pipe"],env:{...process.env,...t.env}});return{cancel:()=>e.kill("SIGTERM")}}case"tmux":{let e=`swifty-${Date.now().toString(36)}`,r=sg(t);try{Vs(`tmux new-window -t "${e}" -n teammate "${r}"`,{cwd:t.cwd,encoding:"utf-8",stdio:["pipe","pipe","pipe"]})}catch(n){og.error({err:n},"teams operation failed"),Vs(`tmux new-session -d -s "${e}" -n teammate "${r}"`,{cwd:t.cwd,encoding:"utf-8",stdio:["pipe","pipe","pipe"]})}return{cancel:()=>{try{Vs(`tmux kill-session -t "${e}"`,{stdio:["pipe","pipe","pipe"]})}catch(n){og.error({err:n},"teams operation failed")}},paneId:e}}case"iterm":{let e=sg(t),s=['tell application "iTerm2"'," tell current window"," create tab with default profile",` tell current session to write text "${`cd ${ag(t.cwd)} && ${e}`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`," end tell","end tell"].map(i=>`-e '${i.replace(/'/g,"'\\''")}'`).join(" ");return Vs(`osascript ${s}`,{cwd:t.cwd,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}),{cancel:()=>{}}}default:throw new Error(`Unknown team mode: ${String(t.mode)}`)}}var lg=O.object({toolName:O.string(),input:O.record(O.string(),O.unknown()),activityDescription:O.string()}),Zx=O.object({toolUseCount:O.number(),tokenCount:O.number(),lastActivity:lg.optional(),recentActivities:O.array(lg)}),Q1=O.object({name:O.string(),teamName:O.string(),status:O.enum(["running","idle","completed","failed","stopped"]),progress:Zx,startTime:O.number(),spinnerVerb:O.string(),lastMessage:O.string().optional()});function Sl(){return{toolUseCount:0,tokenCount:0,lastActivity:void 0,recentActivities:[]}}function ug(t,e,r){t.toolUseCount++;let n=Jx(e,r),o={toolName:e,input:r,activityDescription:n};t.lastActivity=o,t.recentActivities.push(o),t.recentActivities.length>5&&t.recentActivities.shift()}function dg(t,e,r){t.tokenCount=e+r}function Jx(t,e){switch(t){case"ReadFile":return`Reading ${x(e,"file_path","file")}`;case"EditFile":return`Editing ${x(e,"file_path","file")}`;case"WriteFile":return`Writing ${x(e,"file_path","file")}`;case"Bash":{let r=x(e,"command","");return`Running ${r.length>40?r.slice(0,40)+"...":r}`}case"Glob":return`Searching ${x(e,"pattern","files")}`;case"Grep":return`Grepping ${x(e,"pattern","pattern")}`;default:return t}}function X1(t){return t.length?t[t.length-1].activityDescription:""}function eN(t){return t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"k":String(t)}var pg=["Accomplishing","Architecting","Baking","Be-bopping'","Befuddling","Boogieing","Boondoggling","Bootstrapping","Brewing","Calculating","Canoodling","Caramelizing","Cascading","Cerebrating","Choreographing","Churning","Coalescing","Cogitating","Combobulating","Composing","Computing","Concocting","Considering","Contemplating","Cooking","Crafting","Creating","Crunching","Crystallizing","Cultivating","Deciphering","Deliberating","Dilly-dallying","Discombobulating","Doodling","Elucidating","Enchanting","Envisioning","Fermenting","Finagling","Flamb\xE9ing","Flummoxing","Forging","Frolicking","Gallivanting","Garnishing","Generating","Germinating","Grooving","Harmonizing","Hatching","Honking","Ideating","Imagining","Improvising","Incubating","Inferring","Infusing","Kneading","Lollygagging","Manifesting","Marinating","Meandering","Metamorphosing","Mewing","Moonwalking","Moseying","Mulling","Musing","Noodling","Orbiting","Orchestrating","Percolating","Philosophizing","Pondering","Pontificating","Pouncing","Purring","Puzzling","Razzle-dazzling","Ruminating","Scampering","Simmering","Sketching","Spelunking","Spinning","Sprouting","Synthesizing","Thinking","Tinkering","Transfiguring","Transmuting","Undulating","Unfurling","Unravelling","Vibing","Wandering","Whisking","Working","Wrangling","Zigzagging"];function kl(){return pg[Math.floor(Math.random()*pg.length)]}var mg=["Accomplished","Baked","Brewed","Cooked","Crafted","Crunched","Forged","Hatched","Pondered","Synthesized","Tinkered","Worked","Wrangled","Computed","Created","Composed","Conjured","Concocted","Cultivated","Deciphered"];function rN(){return mg[Math.floor(Math.random()*mg.length)]}import{mkdirSync as Yx,readFileSync as aN,writeFileSync as Qx,existsSync as cN}from"fs";import{join as fg}from"path";var sN=C({module:"teams"}),Xx=_.object({tool_use_id:_.string(),tool_name:_.string(),arguments:_.record(_.string(),_.unknown())}),eE=_.object({tool_use_id:_.string(),content:_.string(),is_error:_.boolean().optional()}),dN=_.object({role:_.string(),content:_.string().optional(),tool_uses:_.array(Xx).optional(),tool_results:_.array(eE).optional()});function tE(t){let e=[];for(let r of t.getMessages()){let n={role:r.role,content:r.content};r.toolUses&&r.toolUses.length>0&&(n.tool_uses=r.toolUses.map(o=>({tool_use_id:o.toolUseId,tool_name:o.toolName,arguments:o.arguments}))),r.toolResults&&r.toolResults.length>0&&(n.tool_results=r.toolResults.map(o=>({tool_use_id:o.toolUseId,content:o.content,is_error:o.isError||void 0}))),e.push(n)}return e}function rE(t,e){return fg(t,".swifty","teams",e,"transcripts")}function hg(t,e,r,n){let o=rE(t,e);Yx(o,{recursive:!0});let s=fg(o,`${r}.json`),i=tE(n);return Qx(s,JSON.stringify(i,null,2),"utf-8"),s}import{readFileSync as nE,writeFileSync as oE,mkdirSync as sE,existsSync as iE}from"fs";import{dirname as aE}from"path";var cE=_.object({id:_.string(),title:_.string(),description:_.string().default(""),status:_.string().default("pending"),assignee:_.string().default(""),blocks:_.array(_.string()).default([]),blocked_by:_.array(_.string()).default([]),created_by:_.string().default("")}),lE=_.object({next_id:_.number().int().positive().default(1),tasks:_.array(cE).default([])}),no=class{path;nextId=1;tasks=[];constructor(e){this.path=e,this.load()}load(){if(iE(this.path))try{let e=JSON.parse(nE(this.path,"utf-8")),r=$e(lE,e);this.nextId=r.next_id,this.tasks=r.tasks.map(n=>({id:n.id,title:n.title,description:n.description,status:n.status,assignee:n.assignee,blocks:n.blocks,blockedBy:n.blocked_by,createdBy:n.created_by}))}catch{}}save(){sE(aE(this.path),{recursive:!0});let e={next_id:this.nextId,tasks:this.tasks.map(r=>({id:r.id,title:r.title,description:r.description,status:r.status,assignee:r.assignee,blocks:r.blocks,blocked_by:r.blockedBy,created_by:r.createdBy}))};oE(this.path,JSON.stringify(e,null,2),"utf-8")}create(e,r="",n="",o=[],s=[],i=""){let a={id:String(this.nextId++),title:e,description:r,status:"pending",assignee:n,blocks:[...o],blockedBy:[...s],createdBy:i};return this.tasks.push(a),this.save(),a}get(e){return this.load(),this.tasks.find(r=>r.id===e)}listTasks(e,r){return this.load(),this.tasks.filter(n=>!(e&&n.status!==e||r&&n.assignee!==r))}update(e,r){this.load();let n=this.tasks.find(o=>o.id===e);if(n){r.status!==void 0&&(n.status=r.status),r.assignee!==void 0&&(n.assignee=r.assignee),r.description!==void 0&&(n.description=r.description);for(let o of r.addBlocks??[])n.blocks.includes(o)||n.blocks.push(o);for(let o of r.addBlockedBy??[])n.blockedBy.includes(o)||n.blockedBy.push(o);return this.save(),n}}initEmpty(){this.tasks=[],this.nextId=1,this.save()}};var gg=C({module:"teams"}),Bs=class t{name;mode;members=new Map;leadMailbox;mailboxDir;workDir;leadAgentId="";description;createdAt=Math.floor(Date.now()/1e3);constructor(e,r,n){this.name=e,this.mode=r,this.workDir=n,this.mailboxDir=Tl(ro(e),"inboxes"),uE(this.mailboxDir,{recursive:!0}),this.leadMailbox=new to(this.mailboxDir,"lead")}addMember(e){let r=new to(this.mailboxDir,e),n={name:e,active:!1,mailbox:r,agentId:e,joinedAt:Math.floor(Date.now()/1e3)};return this.members.set(e,n),this.persist(),n}setMemberMeta(e,r){let n=this.members.get(e);n&&(n.agentType=r.agentType,n.model=r.model,n.worktreePath=r.worktreePath,this.persist())}snapshot(){return{name:this.name,description:this.description,createdAt:this.createdAt,leadAgentId:this.leadAgentId,members:[...this.members.values()].map(e=>({agentId:e.agentId??e.name,name:e.name,agentType:e.agentType,model:e.model,joinedAt:e.joinedAt??0,worktreePath:e.worktreePath,backendType:this.mode,isActive:e.active}))}}persist(){ng(this.name,this.snapshot())}static IDLE_POLL_INTERVAL_MS=500;static SHUTDOWN_PREFIX="[shutdown]";spawnTeammate(e,r,n,o){if(this.mode==="in-process"){this.spawnInProcess(e,r,n,o);return}try{this.spawnExternal(e,r)}catch{this.spawnInProcess(e,r,n,o)}}spawnExternal(e,r){let n=this.addMember(e);n.active=!0,Dr().register(e,e),n.uiState={name:e,teamName:this.name,status:"running",progress:Sl(),startTime:Date.now(),spinnerVerb:kl()};let o=process.argv[1]??"src/main.tsx",s={mode:this.mode,command:"bun",args:["run",o,"--teammate","--team-dir",this.mailboxDir,"--team-name",this.name,"--member-name",e,"--task",r],cwd:this.workDir},{cancel:i,paneId:a}=cg(s);n.cancel=i,n.paneId=a,n.external=!0}spawnInProcess(e,r,n,o){let s=this.addMember(e);s.active=!0,s.checker=o,Dr().register(e,e);let i={name:e,teamName:this.name,status:"running",progress:Sl(),startTime:Date.now(),spinnerVerb:kl()};s.uiState=i;let a=c=>{switch(c.type){case"tool_use":c.toolName&&c.args&&ug(i.progress,c.toolName,c.args);break;case"usage":c.usage&&dg(i.progress,c.usage.inputTokens,c.usage.outputTokens);break;case"stream_text":c.text&&(i.lastMessage=c.text);break}};(async()=>{let c=r,u="available";try{for(;s.active;){i.status="running";let l=await n(c,a);if(i.lastMessage=l.length>200?l.slice(0,200)+"...":l,s.checker?.mode==="plan"){i.status="idle";let m=await this.runPlanApproval(s,this.readPlanForReview());if(m===null)break;c=m;continue}i.status="idle",await this.leadMailbox.send(e,`[idle] ${e} (reason: ${u})`),u="available";let d=await this.waitForNextPromptOrShutdown(s);if(d.shutdown||!s.active){let m=d.shutdown;if(m?.type===Xt){let f=qs(s.name,m.requestId??"",!0,"acknowledged, shutting down");await this.leadMailbox.send(s.name,f.text,f)}break}c=d.prompt}i.status="completed"}catch(l){gg.error({err:l},"teams operation failed"),i.status="failed",i.lastMessage=N(l),await this.leadMailbox.send(e,`[idle] ${e} (reason: failed)`)}finally{if(s.active=!1,i.status==="running"&&(i.status="idle"),s.conversation)try{hg(this.workDir,this.name,e,s.conversation)}catch(l){gg.error({err:l},"teams operation failed")}}})()}async waitForNextPromptOrShutdown(e){for(;e.active;){await new Promise(s=>setTimeout(s,t.IDLE_POLL_INTERVAL_MS));let r=e.mailbox.receiveSync();if(r.length===0)continue;let n=r.find(s=>Oh(s));return n?{prompt:"",shutdown:n}:{prompt:`You have new messages from your team:
333
+ ${s}`,isError:!1}}};import{join as xl}from"path";import{mkdirSync as $E,readFileSync as EE,rmSync as PE}from"fs";import{readFileSync as N$,writeFileSync as q$,mkdirSync as D$,existsSync as L$,unlinkSync as ig,statSync as U$,openSync as F$,closeSync as H$}from"fs";import{join as W$}from"path";var eo=C({module:"teams"}),V$=_.object({from:_.string(),text:_.string(),timestamp:_.string(),read:_.boolean().optional(),type:_.string().optional(),requestId:_.string().optional(),approve:_.boolean().optional()}),sg=5e3,B$=1e4,G$=5,K$=80,Z$=_.looseObject({errno:_.number().optional(),code:_.string().optional(),path:_.string().optional(),syscall:_.string().optional()});function J$(t){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,t)}function Y$(t){let e=Date.now()+sg,r=G$;for(;;)try{let n=F$(t,"wx");H$(n);return}catch(n){eo.error({err:n},"teams operation failed");let{data:o,success:s}=Cl(Z$,n),i="";if(s&&o.code&&(i=o.code),i!=="EEXIST")throw n;try{let a=U$(t);if(Date.now()-a.mtimeMs>B$)try{ig(t);continue}catch(c){eo.error({err:c},"teams operation failed")}}catch(a){eo.error({err:a},"teams operation failed")}if(Date.now()>=e)throw new Error(`mailbox lock ${t}: timed out after ${String(sg)}ms, message not written`);J$(r+Math.floor(Math.random()*r)),r=Math.min(r*2,K$)}}function X$(t){try{ig(t)}catch(e){eo.error({err:e},"teams operation failed")}}function bl(t,e){let r=t+".lock";Y$(r);try{return e()}finally{X$(r)}}var to=class{filePath;constructor(e,r){D$(e,{recursive:!0}),this.filePath=W$(e,`${r}.json`)}readAll(){if(!L$(this.filePath))return[];try{let e=JSON.parse(N$(this.filePath,"utf-8")),r=[];if(Array.isArray(e))for(let n of e){let o=V$.safeParse(n);o.success&&r.push(o.data)}return r}catch(e){return eo.error({err:e},"teams operation failed"),[]}}writeAll(e){q$(this.filePath,JSON.stringify(e,null,2),"utf-8")}async send(e,r,n){let o=n??{from:e,text:r,timestamp:new Date().toISOString()};return o.read=!1,bl(this.filePath,()=>{let s=this.readAll();s.push(o),this.writeAll(s)}),Promise.resolve()}receiveSync(){return bl(this.filePath,()=>{let e=this.readAll(),r=e.filter(n=>!n.read);if(r.length>0){for(let n of e)n.read=!0;this.writeAll(e)}return r})}async receive(){return Promise.resolve(this.receiveSync())}unreadCount(){return this.readAll().filter(e=>!e.read).length}markAllRead(){bl(this.filePath,()=>{let e=this.readAll(),r=!1;for(let n of e)n.read||(n.read=!0,r=!0);r&&this.writeAll(e)})}async*poll(e=1e3){for(;;){let r=await this.receive();for(let n of r)yield n;await new Promise(n=>setTimeout(n,e))}}};import{existsSync as Q$,mkdirSync as eE,readFileSync as tE,writeFileSync as rE}from"fs";import{homedir as nE}from"os";import{dirname as oE,join as Sl}from"path";var sE=_.object({agentId:_.string(),name:_.string(),agentType:_.string().optional(),model:_.string().optional(),joinedAt:_.number(),worktreePath:_.string().optional(),backendType:_.string().optional(),isActive:_.boolean().optional()}),iE=_.object({name:_.string(),description:_.string().optional(),createdAt:_.number(),leadAgentId:_.string(),members:_.array(sE)});function aE(){return Sl(nE(),".swifty","teams")}function cE(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function ro(t){return Sl(aE(),cE(t))}function ag(t){return Sl(ro(t),"config.json")}function cg(t){let e=ag(t);if(!Q$(e))return null;try{let r=JSON.parse(tE(e,"utf-8"));return iE.parse(r)}catch{return null}}function lg(t,e){try{let r=ag(t);eE(oE(r),{recursive:!0}),rE(r,JSON.stringify(e,null,2),"utf-8")}catch{}}import{execSync as Gs,spawn as lE}from"child_process";var ug=C({module:"teams"});function pg(){return process.platform==="win32"?"in-process":uE()}function uE(){return process.env.TMUX?"tmux":process.env.ITERM_SESSION_ID?"iterm":"in-process"}function mg(t){return/^[A-Za-z0-9_/.:=-]+$/.test(t)?t:`'${t.replace(/'/g,"'\\''")}'`}function dg(t){return[t.command,...t.args].map(mg).join(" ")}function fg(t){switch(t.mode){case"in-process":{let e=lE(t.command,t.args,{cwd:t.cwd,stdio:["pipe","pipe","pipe"],env:{...process.env,...t.env}});return{cancel:()=>e.kill("SIGTERM")}}case"tmux":{let e=`swifty-${Date.now().toString(36)}`,r=dg(t);try{Gs(`tmux new-window -t "${e}" -n teammate "${r}"`,{cwd:t.cwd,encoding:"utf-8",stdio:["pipe","pipe","pipe"]})}catch(n){ug.error({err:n},"teams operation failed"),Gs(`tmux new-session -d -s "${e}" -n teammate "${r}"`,{cwd:t.cwd,encoding:"utf-8",stdio:["pipe","pipe","pipe"]})}return{cancel:()=>{try{Gs(`tmux kill-session -t "${e}"`,{stdio:["pipe","pipe","pipe"]})}catch(n){ug.error({err:n},"teams operation failed")}},paneId:e}}case"iterm":{let e=dg(t),s=['tell application "iTerm2"'," tell current window"," create tab with default profile",` tell current session to write text "${`cd ${mg(t.cwd)} && ${e}`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`," end tell","end tell"].map(i=>`-e '${i.replace(/'/g,"'\\''")}'`).join(" ");return Gs(`osascript ${s}`,{cwd:t.cwd,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}),{cancel:()=>{}}}default:throw new Error(`Unknown team mode: ${String(t.mode)}`)}}var hg=O.object({toolName:O.string(),input:O.record(O.string(),O.unknown()),activityDescription:O.string()}),dE=O.object({toolUseCount:O.number(),tokenCount:O.number(),lastActivity:hg.optional(),recentActivities:O.array(hg)}),_N=O.object({name:O.string(),teamName:O.string(),status:O.enum(["running","idle","completed","failed","stopped"]),progress:dE,startTime:O.number(),spinnerVerb:O.string(),lastMessage:O.string().optional()});function kl(){return{toolUseCount:0,tokenCount:0,lastActivity:void 0,recentActivities:[]}}function gg(t,e,r){t.toolUseCount++;let n=pE(e,r),o={toolName:e,input:r,activityDescription:n};t.lastActivity=o,t.recentActivities.push(o),t.recentActivities.length>5&&t.recentActivities.shift()}function yg(t,e,r){t.tokenCount=e+r}function pE(t,e){switch(t){case"ReadFile":return`Reading ${E(e,"file_path","file")}`;case"EditFile":return`Editing ${E(e,"file_path","file")}`;case"WriteFile":return`Writing ${E(e,"file_path","file")}`;case"Bash":{let r=E(e,"command","");return`Running ${r.length>40?r.slice(0,40)+"...":r}`}case"Glob":return`Searching ${E(e,"pattern","files")}`;case"Grep":return`Grepping ${E(e,"pattern","pattern")}`;default:return t}}function wN(t){return t.length?t[t.length-1].activityDescription:""}function vN(t){return t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"k":String(t)}var _g=["Accomplishing","Architecting","Baking","Be-bopping'","Befuddling","Boogieing","Boondoggling","Bootstrapping","Brewing","Calculating","Canoodling","Caramelizing","Cascading","Cerebrating","Choreographing","Churning","Coalescing","Cogitating","Combobulating","Composing","Computing","Concocting","Considering","Contemplating","Cooking","Crafting","Creating","Crunching","Crystallizing","Cultivating","Deciphering","Deliberating","Dilly-dallying","Discombobulating","Doodling","Elucidating","Enchanting","Envisioning","Fermenting","Finagling","Flamb\xE9ing","Flummoxing","Forging","Frolicking","Gallivanting","Garnishing","Generating","Germinating","Grooving","Harmonizing","Hatching","Honking","Ideating","Imagining","Improvising","Incubating","Inferring","Infusing","Kneading","Lollygagging","Manifesting","Marinating","Meandering","Metamorphosing","Mewing","Moonwalking","Moseying","Mulling","Musing","Noodling","Orbiting","Orchestrating","Percolating","Philosophizing","Pondering","Pontificating","Pouncing","Purring","Puzzling","Razzle-dazzling","Ruminating","Scampering","Simmering","Sketching","Spelunking","Spinning","Sprouting","Synthesizing","Thinking","Tinkering","Transfiguring","Transmuting","Undulating","Unfurling","Unravelling","Vibing","Wandering","Whisking","Working","Wrangling","Zigzagging"];function Tl(){return _g[Math.floor(Math.random()*_g.length)]}var wg=["Accomplished","Baked","Brewed","Cooked","Crafted","Crunched","Forged","Hatched","Pondered","Synthesized","Tinkered","Worked","Wrangled","Computed","Created","Composed","Conjured","Concocted","Cultivated","Deciphered"];function SN(){return wg[Math.floor(Math.random()*wg.length)]}import{mkdirSync as mE,readFileSync as EN,writeFileSync as fE,existsSync as PN}from"fs";import{join as vg}from"path";var xN=C({module:"teams"}),hE=_.object({tool_use_id:_.string(),tool_name:_.string(),arguments:_.record(_.string(),_.unknown())}),gE=_.object({tool_use_id:_.string(),content:_.string(),is_error:_.boolean().optional()}),MN=_.object({role:_.string(),content:_.string().optional(),tool_uses:_.array(hE).optional(),tool_results:_.array(gE).optional()});function yE(t){let e=[];for(let r of t.getMessages()){let n={role:r.role,content:r.content};r.toolUses&&r.toolUses.length>0&&(n.tool_uses=r.toolUses.map(o=>({tool_use_id:o.toolUseId,tool_name:o.toolName,arguments:o.arguments}))),r.toolResults&&r.toolResults.length>0&&(n.tool_results=r.toolResults.map(o=>({tool_use_id:o.toolUseId,content:o.content,is_error:o.isError||void 0}))),e.push(n)}return e}function _E(t,e){return vg(t,".swifty","teams",e,"transcripts")}function bg(t,e,r,n){let o=_E(t,e);mE(o,{recursive:!0});let s=vg(o,`${r}.json`),i=yE(n);return fE(s,JSON.stringify(i,null,2),"utf-8"),s}import{readFileSync as wE,writeFileSync as vE,mkdirSync as bE,existsSync as SE}from"fs";import{dirname as kE}from"path";var TE=_.object({id:_.string(),title:_.string(),description:_.string().default(""),status:_.string().default("pending"),assignee:_.string().default(""),blocks:_.array(_.string()).default([]),blocked_by:_.array(_.string()).default([]),created_by:_.string().default("")}),xE=_.object({next_id:_.number().int().positive().default(1),tasks:_.array(TE).default([])}),no=class{path;nextId=1;tasks=[];constructor(e){this.path=e,this.load()}load(){if(SE(this.path))try{let e=JSON.parse(wE(this.path,"utf-8")),r=xe(xE,e);this.nextId=r.next_id,this.tasks=r.tasks.map(n=>({id:n.id,title:n.title,description:n.description,status:n.status,assignee:n.assignee,blocks:n.blocks,blockedBy:n.blocked_by,createdBy:n.created_by}))}catch{}}save(){bE(kE(this.path),{recursive:!0});let e={next_id:this.nextId,tasks:this.tasks.map(r=>({id:r.id,title:r.title,description:r.description,status:r.status,assignee:r.assignee,blocks:r.blocks,blocked_by:r.blockedBy,created_by:r.createdBy}))};vE(this.path,JSON.stringify(e,null,2),"utf-8")}create(e,r="",n="",o=[],s=[],i=""){let a={id:String(this.nextId++),title:e,description:r,status:"pending",assignee:n,blocks:[...o],blockedBy:[...s],createdBy:i};return this.tasks.push(a),this.save(),a}get(e){return this.load(),this.tasks.find(r=>r.id===e)}listTasks(e,r){return this.load(),this.tasks.filter(n=>!(e&&n.status!==e||r&&n.assignee!==r))}update(e,r){this.load();let n=this.tasks.find(o=>o.id===e);if(n){r.status!==void 0&&(n.status=r.status),r.assignee!==void 0&&(n.assignee=r.assignee),r.description!==void 0&&(n.description=r.description);for(let o of r.addBlocks??[])n.blocks.includes(o)||n.blocks.push(o);for(let o of r.addBlockedBy??[])n.blockedBy.includes(o)||n.blockedBy.push(o);return this.save(),n}}initEmpty(){this.tasks=[],this.nextId=1,this.save()}};var Sg=C({module:"teams"}),Ks=class t{name;mode;members=new Map;leadMailbox;mailboxDir;workDir;leadAgentId="";description;createdAt=Math.floor(Date.now()/1e3);constructor(e,r,n){this.name=e,this.mode=r,this.workDir=n,this.mailboxDir=xl(ro(e),"inboxes"),$E(this.mailboxDir,{recursive:!0}),this.leadMailbox=new to(this.mailboxDir,"lead")}addMember(e){let r=new to(this.mailboxDir,e),n={name:e,active:!1,mailbox:r,agentId:e,joinedAt:Math.floor(Date.now()/1e3)};return this.members.set(e,n),this.persist(),n}setMemberMeta(e,r){let n=this.members.get(e);n&&(n.agentType=r.agentType,n.model=r.model,n.worktreePath=r.worktreePath,this.persist())}snapshot(){return{name:this.name,description:this.description,createdAt:this.createdAt,leadAgentId:this.leadAgentId,members:[...this.members.values()].map(e=>({agentId:e.agentId??e.name,name:e.name,agentType:e.agentType,model:e.model,joinedAt:e.joinedAt??0,worktreePath:e.worktreePath,backendType:this.mode,isActive:e.active}))}}persist(){lg(this.name,this.snapshot())}static IDLE_POLL_INTERVAL_MS=500;static SHUTDOWN_PREFIX="[shutdown]";spawnTeammate(e,r,n,o){if(this.mode==="in-process"){this.spawnInProcess(e,r,n,o);return}try{this.spawnExternal(e,r)}catch{this.spawnInProcess(e,r,n,o)}}spawnExternal(e,r){let n=this.addMember(e);n.active=!0,Dr().register(e,e),n.uiState={name:e,teamName:this.name,status:"running",progress:kl(),startTime:Date.now(),spinnerVerb:Tl()};let o=process.argv[1]??"src/main.tsx",s={mode:this.mode,command:"bun",args:["run",o,"--teammate","--team-dir",this.mailboxDir,"--team-name",this.name,"--member-name",e,"--task",r],cwd:this.workDir},{cancel:i,paneId:a}=fg(s);n.cancel=i,n.paneId=a,n.external=!0}spawnInProcess(e,r,n,o){let s=this.addMember(e);s.active=!0,s.checker=o,Dr().register(e,e);let i={name:e,teamName:this.name,status:"running",progress:kl(),startTime:Date.now(),spinnerVerb:Tl()};s.uiState=i;let a=c=>{switch(c.type){case"tool_use":c.toolName&&c.args&&gg(i.progress,c.toolName,c.args);break;case"usage":c.usage&&yg(i.progress,c.usage.inputTokens,c.usage.outputTokens);break;case"stream_text":c.text&&(i.lastMessage=c.text);break}};(async()=>{let c=r,u="available";try{for(;s.active;){i.status="running";let l=await n(c,a);if(i.lastMessage=l.length>200?l.slice(0,200)+"...":l,s.checker?.mode==="plan"){i.status="idle";let m=await this.runPlanApproval(s,this.readPlanForReview());if(m===null)break;c=m;continue}i.status="idle",await this.leadMailbox.send(e,`[idle] ${e} (reason: ${u})`),u="available";let d=await this.waitForNextPromptOrShutdown(s);if(d.shutdown||!s.active){let m=d.shutdown;if(m?.type===Qt){let f=Ls(s.name,m.requestId??"",!0,"acknowledged, shutting down");await this.leadMailbox.send(s.name,f.text,f)}break}c=d.prompt}i.status="completed"}catch(l){Sg.error({err:l},"teams operation failed"),i.status="failed",i.lastMessage=N(l),await this.leadMailbox.send(e,`[idle] ${e} (reason: failed)`)}finally{if(s.active=!1,i.status==="running"&&(i.status="idle"),s.conversation)try{bg(this.workDir,this.name,e,s.conversation)}catch(l){Sg.error({err:l},"teams operation failed")}}})()}async waitForNextPromptOrShutdown(e){for(;e.active;){await new Promise(s=>setTimeout(s,t.IDLE_POLL_INTERVAL_MS));let r=e.mailbox.receiveSync();if(r.length===0)continue;let n=r.find(s=>Uh(s));return n?{prompt:"",shutdown:n}:{prompt:`You have new messages from your team:
334
334
 
335
335
  ${r.map(s=>`From ${s.from}: ${s.text}`).join(`
336
336
 
337
- `)}`}}return{prompt:"",shutdown:Ns("lead","member deactivated")}}readPlanForReview(){try{let e=dE(Ll(this.workDir),"utf-8");if(e.trim())return e}catch{}return"(Plan file is empty \u2014 the teammate may not have written the plan as expected)"}async runPlanApproval(e,r){let n=Ah(e.name,r);for(await this.leadMailbox.send(e.name,n.text,n);e.active;){await new Promise(o=>setTimeout(o,t.IDLE_POLL_INTERVAL_MS));for(let o of e.mailbox.receiveSync())if(o.type===Lr&&o.requestId===n.requestId)return yl(o)&&e.checker&&(e.checker.mode="default"),yl(o)?"The Lead has approved your plan. Begin execution now.":`The Lead rejected your plan. Feedback: ${o.text}
338
- Please revise the plan accordingly and resubmit.`}return null}getMember(e){return this.members.get(e)}async sendMessage(e,r,n){let o=this.members.get(r);if(!o)throw new Error(`Member '${r}' not found in team '${this.name}'`);await o.mailbox.send(e,n)}async stopMember(e){let r=this.members.get(e);r&&(await this.stopOne(r),this.persist())}async stopAll(){for(let e of this.members.values())await this.stopOne(e)}async stopOne(e){if(e.active=!1,e.uiState?.status==="running"&&(e.uiState.status="stopped"),e.external)try{await e.mailbox.send("lead",`${t.SHUTDOWN_PREFIX} stop`)}catch{}e.cancel?.()}listMembers(){return[...this.members.values()]}getTeammateStates(){return this.listMembers().filter(e=>e.uiState).map(e=>e.uiState)}},yg=class{teams=new Map;workDir;taskStores=new Map;constructor(e){this.workDir=e}teamDir(e){return ro(e)}create(e,r=ig(),n={}){let o=new Bs(e,r,this.workDir);o.leadAgentId=n.leadAgentId??"",o.description=n.description,this.teams.set(e,o);let s=new no(Tl(this.teamDir(e),"tasks.json"));return s.initEmpty(),this.taskStores.set(e,s),o.persist(),o}get(e){let r=this.teams.get(e);if(r)return r;let n=rg(e);if(!n)return;let o=n.members.find(i=>i.backendType)?.backendType,s=new Bs(n.name,mE(o)?o:"in-process",this.workDir);s.leadAgentId=n.leadAgentId,s.description=n.description,s.createdAt=n.createdAt;for(let i of n.members){let a=s.addMember(i.name);a.agentId=i.agentId,a.agentType=i.agentType,a.model=i.model,a.worktreePath=i.worktreePath,a.joinedAt=i.joinedAt,a.active=i.isActive===!0}return this.teams.set(e,s),s}getTaskStore(e){let r=this.taskStores.get(e);if(r)return r;let n=new no(Tl(this.teamDir(e),"tasks.json"));return this.taskStores.set(e,n),n}list(){return[...this.teams.values()]}async delete(e){let r=this.teams.get(e);if(r){let n=Dr();for(let o of r.listMembers())n.unregister(o.name);await r.stopAll(),this.teams.delete(e)}this.taskStores.delete(e),pE(ro(e),{recursive:!0,force:!0})}getAllTeammateStates(){return this.list().flatMap(e=>e.getTeammateStates())}drainLeads(){let e=[];for(let r of this.teams.values()){let n=r.leadMailbox.receiveSync();if(n.length===0)continue;let o=[];o.push(`<task-notification team="${r.name}">`);for(let s of n)o.push(`from=${s.from}: ${s.text}`);o.push("</task-notification>"),e.push(o.join(`
339
- `))}return e}};function mE(t){return t==="in-process"||t==="tmux"||t==="iterm"}var fE=new Set(["Agent","SendMessage","TaskStop","SyntheticOutput","TeamDelete"]);function hE(t){return fE.has(t)}function zN(t=!1){return t?hE:()=>!0}function AN(t=!1){return t}import{createHash as gE}from"crypto";import{existsSync as Gs,mkdirSync as yE,readFileSync as Ks,unlinkSync as _E,writeFileSync as Zs}from"fs";import{join as Js,resolve as wE}from"path";var Fr=C({module:"file-history"}),_g=100,wg=60;function vg(t,e){return`${gE("sha256").update(t).digest("hex").slice(0,16)}@v${String(e)}`}var bg=class{sessionDir;trackedFiles=new Map;snapshots=[];constructor(e,r){this.sessionDir=Js(e,".swifty","file-history",r),yE(this.sessionDir,{recursive:!0})}trackEdit(e){let r=wE(e),o=(this.trackedFiles.get(r)??0)+1;if(Gs(r))try{let s=Ks(r),i=vg(r,o);Zs(Js(this.sessionDir,i),s)}catch(s){Fr.error({err:s},"file-history operation failed")}this.trackedFiles.set(r,o)}makeSnapshot(e,r){let n=r;n.length>wg&&(n=n.slice(0,wg)+"...");let o={};for(let[s,i]of this.trackedFiles){let a=vg(s,i),c=Js(this.sessionDir,a);if(!Gs(c)&&Gs(s))try{Zs(c,Ks(s))}catch(u){Fr.error({err:u},"file-history operation failed")}o[s]={backupPath:c,version:i,time:new Date().toISOString()}}this.snapshots.push({messageIndex:e,userText:n,backups:o,timestamp:new Date().toISOString()}),this.snapshots.length>_g&&(this.snapshots=this.snapshots.slice(this.snapshots.length-_g))}rewind(e){if(e<0||e>=this.snapshots.length)throw new Error(`Invalid snapshot index: ${String(e)}`);let r=this.snapshots[e],n=[];for(let[o,s]of Object.entries(r.backups)){let i=null;try{i=Ks(s.backupPath)}catch(l){if(Fr.error({err:l},"file-history operation failed"),Gs(o))try{_E(o)}catch(d){Fr.error({err:d},"file-history operation failed")}continue}let a=null;try{a=Ks(o)}catch(l){Fr.error({err:l},"file-history operation failed")}let c=i.toString(),u=a?.toString();if(c!==u)try{Zs(o,i),n.push(o)}catch(l){Fr.error({err:l},"file-history operation failed")}}this.snapshots=this.snapshots.slice(0,e+1);for(let[o,s]of Object.entries(r.backups))this.trackedFiles.set(o,s.version);return n}getSnapshots(){return[...this.snapshots]}hasSnapshots(){return this.snapshots.length>0}save(){let e=Js(this.sessionDir,"snapshots.json");Zs(e,JSON.stringify(this.snapshots,null,2),"utf-8")}};import{statSync as kg}from"fs";var Sg=C({module:"file-state-cache"}),Tg=class{cache=new Map;record(e,r){this.cache.set(e,r)}check(e){let r=this.cache.get(e);if(r===void 0)return{ok:!1,error:"Error: file has not been read yet, read it first before editing."};let n;try{n=kg(e).mtimeMs}catch(o){return Sg.error({err:o},"file state cache operation failed"),{ok:!0}}return n>r?{ok:!1,error:"Error: file has been modified since last read, read it again before editing."}:{ok:!0}}update(e){let r;try{r=kg(e).mtimeMs}catch(n){Sg.error({err:n},"file state cache operation failed"),this.cache.delete(e);return}this.cache.set(e,r)}};var vE=O.object({label:O.string(),description:O.string().optional()}),bE=O.object({question:O.string(),header:O.string(),options:O.array(vE),multiSelect:O.boolean()}),$g=class{constructor(e){this.ask=e}ask;name="AskUserQuestion";description=`
337
+ `)}`}}return{prompt:"",shutdown:Ds("lead","member deactivated")}}readPlanForReview(){try{let e=EE(Ll(this.workDir),"utf-8");if(e.trim())return e}catch{}return"(Plan file is empty \u2014 the teammate may not have written the plan as expected)"}async runPlanApproval(e,r){let n=Dh(e.name,r);for(await this.leadMailbox.send(e.name,n.text,n);e.active;){await new Promise(o=>setTimeout(o,t.IDLE_POLL_INTERVAL_MS));for(let o of e.mailbox.receiveSync())if(o.type===Lr&&o.requestId===n.requestId)return _l(o)&&e.checker&&(e.checker.mode="default"),_l(o)?"The Lead has approved your plan. Begin execution now.":`The Lead rejected your plan. Feedback: ${o.text}
338
+ Please revise the plan accordingly and resubmit.`}return null}getMember(e){return this.members.get(e)}async sendMessage(e,r,n){let o=this.members.get(r);if(!o)throw new Error(`Member '${r}' not found in team '${this.name}'`);await o.mailbox.send(e,n)}async stopMember(e){let r=this.members.get(e);r&&(await this.stopOne(r),this.persist())}async stopAll(){for(let e of this.members.values())await this.stopOne(e)}async stopOne(e){if(e.active=!1,e.uiState?.status==="running"&&(e.uiState.status="stopped"),e.external)try{await e.mailbox.send("lead",`${t.SHUTDOWN_PREFIX} stop`)}catch{}e.cancel?.()}listMembers(){return[...this.members.values()]}getTeammateStates(){return this.listMembers().filter(e=>e.uiState).map(e=>e.uiState)}},kg=class{teams=new Map;workDir;taskStores=new Map;constructor(e){this.workDir=e}teamDir(e){return ro(e)}create(e,r=pg(),n={}){let o=new Ks(e,r,this.workDir);o.leadAgentId=n.leadAgentId??"",o.description=n.description,this.teams.set(e,o);let s=new no(xl(this.teamDir(e),"tasks.json"));return s.initEmpty(),this.taskStores.set(e,s),o.persist(),o}get(e){let r=this.teams.get(e);if(r)return r;let n=cg(e);if(!n)return;let o=n.members.find(i=>i.backendType)?.backendType,s=new Ks(n.name,RE(o)?o:"in-process",this.workDir);s.leadAgentId=n.leadAgentId,s.description=n.description,s.createdAt=n.createdAt;for(let i of n.members){let a=s.addMember(i.name);a.agentId=i.agentId,a.agentType=i.agentType,a.model=i.model,a.worktreePath=i.worktreePath,a.joinedAt=i.joinedAt,a.active=i.isActive===!0}return this.teams.set(e,s),s}getTaskStore(e){let r=this.taskStores.get(e);if(r)return r;let n=new no(xl(this.teamDir(e),"tasks.json"));return this.taskStores.set(e,n),n}list(){return[...this.teams.values()]}async delete(e){let r=this.teams.get(e);if(r){let n=Dr();for(let o of r.listMembers())n.unregister(o.name);await r.stopAll(),this.teams.delete(e)}this.taskStores.delete(e),PE(ro(e),{recursive:!0,force:!0})}getAllTeammateStates(){return this.list().flatMap(e=>e.getTeammateStates())}drainLeads(){let e=[];for(let r of this.teams.values()){let n=r.leadMailbox.receiveSync();if(n.length===0)continue;let o=[];o.push(`<task-notification team="${r.name}">`);for(let s of n)o.push(`from=${s.from}: ${s.text}`);o.push("</task-notification>"),e.push(o.join(`
339
+ `))}return e}};function RE(t){return t==="in-process"||t==="tmux"||t==="iterm"}var CE=new Set(["Agent","SendMessage","TaskStop","SyntheticOutput","TeamDelete"]);function ME(t){return CE.has(t)}function XN(t=!1){return t?ME:()=>!0}function QN(t=!1){return t}import{createHash as zE}from"crypto";import{existsSync as Zs,mkdirSync as AE,readFileSync as Js,unlinkSync as IE,writeFileSync as Ys}from"fs";import{join as Xs,resolve as OE}from"path";var Fr=C({module:"file-history"}),Tg=100,xg=60;function $g(t,e){return`${zE("sha256").update(t).digest("hex").slice(0,16)}@v${String(e)}`}var Eg=class{sessionDir;trackedFiles=new Map;snapshots=[];constructor(e,r){this.sessionDir=Xs(e,".swifty","file-history",r),AE(this.sessionDir,{recursive:!0})}trackEdit(e){let r=OE(e),o=(this.trackedFiles.get(r)??0)+1;if(Zs(r))try{let s=Js(r),i=$g(r,o);Ys(Xs(this.sessionDir,i),s)}catch(s){Fr.error({err:s},"file-history operation failed")}this.trackedFiles.set(r,o)}makeSnapshot(e,r){let n=r;n.length>xg&&(n=n.slice(0,xg)+"...");let o={};for(let[s,i]of this.trackedFiles){let a=$g(s,i),c=Xs(this.sessionDir,a);if(!Zs(c)&&Zs(s))try{Ys(c,Js(s))}catch(u){Fr.error({err:u},"file-history operation failed")}o[s]={backupPath:c,version:i,time:new Date().toISOString()}}this.snapshots.push({messageIndex:e,userText:n,backups:o,timestamp:new Date().toISOString()}),this.snapshots.length>Tg&&(this.snapshots=this.snapshots.slice(this.snapshots.length-Tg))}rewind(e){if(e<0||e>=this.snapshots.length)throw new Error(`Invalid snapshot index: ${String(e)}`);let r=this.snapshots[e],n=[];for(let[o,s]of Object.entries(r.backups)){let i=null;try{i=Js(s.backupPath)}catch(l){if(Fr.error({err:l},"file-history operation failed"),Zs(o))try{IE(o)}catch(d){Fr.error({err:d},"file-history operation failed")}continue}let a=null;try{a=Js(o)}catch(l){Fr.error({err:l},"file-history operation failed")}let c=i.toString(),u=a?.toString();if(c!==u)try{Ys(o,i),n.push(o)}catch(l){Fr.error({err:l},"file-history operation failed")}}this.snapshots=this.snapshots.slice(0,e+1);for(let[o,s]of Object.entries(r.backups))this.trackedFiles.set(o,s.version);return n}getSnapshots(){return[...this.snapshots]}hasSnapshots(){return this.snapshots.length>0}save(){let e=Xs(this.sessionDir,"snapshots.json");Ys(e,JSON.stringify(this.snapshots,null,2),"utf-8")}};import{statSync as Rg}from"fs";var Pg=C({module:"file-state-cache"}),Cg=class{cache=new Map;record(e,r){this.cache.set(e,r)}check(e){let r=this.cache.get(e);if(r===void 0)return{ok:!1,error:"Error: file has not been read yet, read it first before editing."};let n;try{n=Rg(e).mtimeMs}catch(o){return Pg.error({err:o},"file state cache operation failed"),{ok:!0}}return n>r?{ok:!1,error:"Error: file has been modified since last read, read it again before editing."}:{ok:!0}}update(e){let r;try{r=Rg(e).mtimeMs}catch(n){Pg.error({err:n},"file state cache operation failed"),this.cache.delete(e);return}this.cache.set(e,r)}};var jE=O.object({label:O.string(),description:O.string().optional()}),NE=O.object({question:O.string(),header:O.string(),options:O.array(jE),multiSelect:O.boolean()}),Mg=class{constructor(e){this.ask=e}ask;name="AskUserQuestion";description=`
340
340
  Ask the user 1 to 4 single-choice or multiple-choices questions and wait for their answers. Each question needs 1 to 4 options; an "Other" option for custom input is added automatically.
341
341
  Set "multiSelect: true" when choices are not mutually exclusive (single-choice), set "multiSelect: false" otherwise (multiple-choices).
342
- `;category="read";schema(){let e={type:"object",properties:{questions:{type:"array",description:"question",minItems:1,maxItems:4,items:{type:"object",properties:{question:{type:"string",description:"The question to ask"},header:{type:"string",description:"Short label/category (<=12 chars)"},options:{type:"array",description:"options",minItems:2,maxItems:4,items:{type:"object",properties:{label:{type:"string",description:"label"},description:{type:"string",description:"description"}},required:["label"]}},multiSelect:{type:"boolean",description:"Set to true for multiple-choice, false for single-choice"}},required:["question","header","options","multiSelect"]}}},required:["questions"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let{success:n,data:o,error:s}=await Ml(O.object({questions:O.array(bE)}),r);if(!n)return{output:s.message,isError:!0};let i=o.questions;if(!Array.isArray(i)||i.length<1||i.length>4)return{output:"Error: must have 1-4 questions",isError:!0};for(let u of i)if(!Array.isArray(u.options)||u.options.length<2||u.options.length>4)return{output:`Error: question '${u.question}' must have 2-4 options`,isError:!0};let a=await this.ask(i);return{output:`User has answered your questions: ${Object.entries(a).map(([u,l])=>`"${u}" = "${l}"`).join(", ")}. You can now continue with the user's answers`,isError:!1}}};export{ni as a,Xl as b,eu as c,RE as d,ou as e,uo as f,po as g,fu as h,fo as i,go as j,yo as k,_o as l,ku as m,Tu as n,Cu as o,Mu as p,cR as q,lR as r,gR as s,ih as t,ah as u,HO as v,zs as w,yh as x,bh as y,Tj as z,kh as A,Th as B,$h as C,xh as D,Eh as E,Ph as F,Rh as G,Ls as H,Us as I,Fs as J,Hs as K,jh as L,Nh as M,Ds as N,qh as O,Dh as P,Wh as Q,Bh as R,b1 as S,Gh as T,Kh as U,Zh as V,M1 as W,Jh as X,Yh as Y,Qh as Z,to as _,X1 as $,eN as aa,kl as ba,rN as ca,yg as da,zN as ea,AN as fa,bg as ga,Tg as ha,$g as ia};
342
+ `;category="read";schema(){let e={type:"object",properties:{questions:{type:"array",description:"question",minItems:1,maxItems:4,items:{type:"object",properties:{question:{type:"string",description:"The question to ask"},header:{type:"string",description:"Short label/category (<=12 chars)"},options:{type:"array",description:"options",minItems:2,maxItems:4,items:{type:"object",properties:{label:{type:"string",description:"label"},description:{type:"string",description:"description"}},required:["label"]}},multiSelect:{type:"boolean",description:"Set to true for multiple-choice, false for single-choice"}},required:["question","header","options","multiSelect"]}}},required:["questions"]};return{name:this.name,description:this.description,input_schema:e}}async execute(e,r){let{success:n,data:o,error:s}=await Ml(O.object({questions:O.array(NE)}),r);if(!n)return{output:s.message,isError:!0};let i=o.questions;if(!Array.isArray(i)||i.length<1||i.length>4)return{output:"Error: must have 1-4 questions",isError:!0};for(let u of i)if(!Array.isArray(u.options)||u.options.length<2||u.options.length>4)return{output:`Error: question '${u.question}' must have 2-4 options`,isError:!0};let a=await this.ask(i);return{output:`User has answered your questions: ${Object.entries(a).map(([u,l])=>`"${u}" = "${l}"`).join(", ")}. You can now continue with the user's answers`,isError:!1}}};export{ni as a,Ql as b,eu as c,VE as d,ou as e,mo as f,fo as g,fu as h,go as i,_o as j,wo as k,vo as l,ku as m,Tu as n,Cu as o,Mu as p,TR as q,xR as r,zR as s,yt as t,ys as u,Ff as v,ph as w,mh as x,l1 as y,Is as z,kh as A,Eh as B,W1 as C,Rh as D,Ch as E,Mh as F,zh as G,Ah as H,Ih as I,Oh as J,Fs as K,Hs as L,Ws as M,Vs as N,Fh as O,Hh as P,Us as Q,Wh as R,Vh as S,Jh as T,Xh as U,Uj as V,Qh as W,eg as X,tg as Y,Yj as Z,rg as _,ng as $,og as aa,to as ba,wN as ca,vN as da,Tl as ea,SN as fa,kg as ga,XN as ha,QN as ia,Eg as ja,Cg as ka,Mg as la};
343
+ /*! Bundled license information:
344
+
345
+ content-type/index.js:
346
+ (*!
347
+ * content-type
348
+ * Copyright(c) 2015 Douglas Christopher Wilson
349
+ * MIT Licensed
350
+ *)
351
+ */