@xiaozhiclaw/qlogicagent-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # @xiaozhiclaw/qlogicagent-core
2
+
3
+ Host-neutral qlogicagent turn and tool-loop runtime for server embedding.
4
+
5
+ ```ts
6
+ import {
7
+ createEmbeddedAgent,
8
+ type LLMTransport,
9
+ type ToolInvoker,
10
+ } from "@xiaozhiclaw/qlogicagent-core";
11
+
12
+ const agent = createEmbeddedAgent({
13
+ llmTransport: transport satisfies LLMTransport,
14
+ toolInvoker: tools satisfies ToolInvoker,
15
+ apiKey: process.env.MODEL_API_KEY,
16
+ maxRounds: 6,
17
+ });
18
+
19
+ for await (const event of agent.run({
20
+ turnId: crypto.randomUUID(),
21
+ sessionId: conversationId,
22
+ messages,
23
+ tools,
24
+ config: { model: "model-id", maxToolCalls: 3 },
25
+ })) {
26
+ // Persist or forward the typed turn events required by the host product.
27
+ }
28
+ ```
29
+
30
+ The embedding boundary owns only model/tool turn behavior. The caller retains
31
+ authentication, tenant and conversation authority, persistence, knowledge,
32
+ business workflows, and deployment. The package does not require the desktop
33
+ Host, ACP, MCP, SQLite, Redis, Skills, sub-agents, filesystem tools, or shell
34
+ tools.
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ var zu=Object.create;var Li=Object.defineProperty;var Vu=Object.getOwnPropertyDescriptor;var Ku=Object.getOwnPropertyNames;var Gu=Object.getPrototypeOf,Hu=Object.prototype.hasOwnProperty;var b=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Wu=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ku(t))!Hu.call(e,o)&&o!==n&&Li(e,o,{get:()=>t[o],enumerable:!(r=Vu(t,o))||r.enumerable});return e};var Ju=(e,t,n)=>(n=e!=null?zu(Gu(e)):{},Wu(t||!e||!e.__esModule?Li(n,"default",{value:e,enumerable:!0}):n,e));var Yt=b(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.regexpCode=j.getEsmExportName=j.getProperty=j.safeStringify=j.stringify=j.strConcat=j.addCodeArg=j.str=j._=j.nil=j._Code=j.Name=j.IDENTIFIER=j._CodeOrName=void 0;var Wt=class{};j._CodeOrName=Wt;j.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var nt=class extends Wt{constructor(t){if(super(),!j.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};j.Name=nt;var fe=class extends Wt{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((n,r)=>`${n}${r}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((n,r)=>(r instanceof nt&&(n[r.str]=(n[r.str]||0)+1),n),{})}};j._Code=fe;j.nil=new fe("");function fa(e,...t){let n=[e[0]],r=0;for(;r<t.length;)po(n,t[r]),n.push(e[++r]);return new fe(n)}j._=fa;var fo=new fe("+");function pa(e,...t){let n=[Jt(e[0])],r=0;for(;r<t.length;)n.push(fo),po(n,t[r]),n.push(fo,Jt(e[++r]));return Qd(n),new fe(n)}j.str=pa;function po(e,t){t instanceof fe?e.push(...t._items):t instanceof nt?e.push(t):e.push(tf(t))}j.addCodeArg=po;function Qd(e){let t=1;for(;t<e.length-1;){if(e[t]===fo){let n=Zd(e[t-1],e[t+1]);if(n!==void 0){e.splice(t-1,3,n);continue}e[t++]="+"}t++}}function Zd(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof nt||e[e.length-1]!=='"'?void 0:typeof t!="string"?`${e.slice(0,-1)}${t}"`:t[0]==='"'?e.slice(0,-1)+t.slice(1):void 0;if(typeof t=="string"&&t[0]==='"'&&!(e instanceof nt))return`"${e}${t.slice(1)}`}function ef(e,t){return t.emptyStr()?e:e.emptyStr()?t:pa`${e}${t}`}j.strConcat=ef;function tf(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Jt(Array.isArray(e)?e.join(","):e)}function nf(e){return new fe(Jt(e))}j.stringify=nf;function Jt(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}j.safeStringify=Jt;function rf(e){return typeof e=="string"&&j.IDENTIFIER.test(e)?new fe(`.${e}`):fa`[${e}]`}j.getProperty=rf;function of(e){if(typeof e=="string"&&j.IDENTIFIER.test(e))return new fe(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}j.getEsmExportName=of;function sf(e){return new fe(e.toString())}j.regexpCode=sf});var go=b(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.ValueScope=ie.ValueScopeName=ie.Scope=ie.varKinds=ie.UsedValueState=void 0;var se=Yt(),mo=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Vn;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Vn||(ie.UsedValueState=Vn={}));ie.varKinds={const:new se.Name("const"),let:new se.Name("let"),var:new se.Name("var")};var Kn=class{constructor({prefixes:t,parent:n}={}){this._names={},this._prefixes=t,this._parent=n}toName(t){return t instanceof se.Name?t:this.name(t)}name(t){return new se.Name(this._newName(t))}_newName(t){let n=this._names[t]||this._nameGroup(t);return`${t}${n.index++}`}_nameGroup(t){var n,r;if(!((r=(n=this._parent)===null||n===void 0?void 0:n._prefixes)===null||r===void 0)&&r.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};ie.Scope=Kn;var Gn=class extends se.Name{constructor(t,n){super(n),this.prefix=t}setValue(t,{property:n,itemIndex:r}){this.value=t,this.scopePath=(0,se._)`.${new se.Name(n)}[${r}]`}};ie.ValueScopeName=Gn;var af=(0,se._)`\n`,ho=class extends Kn{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?af:se.nil}}get(){return this._scope}name(t){return new Gn(t,this._newName(t))}value(t,n){var r;if(n.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(t),{prefix:s}=o,i=(r=n.key)!==null&&r!==void 0?r:n.ref,a=this._values[s];if(a){let u=a.get(i);if(u)return u}else a=this._values[s]=new Map;a.set(i,o);let l=this._scope[s]||(this._scope[s]=[]),c=l.length;return l[c]=n.ref,o.setValue(n,{property:s,itemIndex:c}),o}getValue(t,n){let r=this._values[t];if(r)return r.get(n)}scopeRefs(t,n=this._values){return this._reduceValues(n,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return(0,se._)`${t}${r.scopePath}`})}scopeCode(t=this._values,n,r){return this._reduceValues(t,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},n,r)}_reduceValues(t,n,r={},o){let s=se.nil;for(let i in t){let a=t[i];if(!a)continue;let l=r[i]=r[i]||new Map;a.forEach(c=>{if(l.has(c))return;l.set(c,Vn.Started);let u=n(c);if(u){let d=this.opts.es5?ie.varKinds.var:ie.varKinds.const;s=(0,se._)`${s}${d} ${c} = ${u};${this.opts._n}`}else if(u=o?.(c))s=(0,se._)`${s}${u}${this.opts._n}`;else throw new mo(c);l.set(c,Vn.Completed)})}return s}};ie.ValueScope=ho});var S=b(A=>{"use strict";Object.defineProperty(A,"__esModule",{value:!0});A.or=A.and=A.not=A.CodeGen=A.operators=A.varKinds=A.ValueScopeName=A.ValueScope=A.Scope=A.Name=A.regexpCode=A.stringify=A.getProperty=A.nil=A.strConcat=A.str=A._=void 0;var O=Yt(),Re=go(),Fe=Yt();Object.defineProperty(A,"_",{enumerable:!0,get:function(){return Fe._}});Object.defineProperty(A,"str",{enumerable:!0,get:function(){return Fe.str}});Object.defineProperty(A,"strConcat",{enumerable:!0,get:function(){return Fe.strConcat}});Object.defineProperty(A,"nil",{enumerable:!0,get:function(){return Fe.nil}});Object.defineProperty(A,"getProperty",{enumerable:!0,get:function(){return Fe.getProperty}});Object.defineProperty(A,"stringify",{enumerable:!0,get:function(){return Fe.stringify}});Object.defineProperty(A,"regexpCode",{enumerable:!0,get:function(){return Fe.regexpCode}});Object.defineProperty(A,"Name",{enumerable:!0,get:function(){return Fe.Name}});var Yn=go();Object.defineProperty(A,"Scope",{enumerable:!0,get:function(){return Yn.Scope}});Object.defineProperty(A,"ValueScope",{enumerable:!0,get:function(){return Yn.ValueScope}});Object.defineProperty(A,"ValueScopeName",{enumerable:!0,get:function(){return Yn.ValueScopeName}});Object.defineProperty(A,"varKinds",{enumerable:!0,get:function(){return Yn.varKinds}});A.operators={GT:new O._Code(">"),GTE:new O._Code(">="),LT:new O._Code("<"),LTE:new O._Code("<="),EQ:new O._Code("==="),NEQ:new O._Code("!=="),NOT:new O._Code("!"),OR:new O._Code("||"),AND:new O._Code("&&"),ADD:new O._Code("+")};var Le=class{optimizeNodes(){return this}optimizeNames(t,n){return this}},yo=class extends Le{constructor(t,n,r){super(),this.varKind=t,this.name=n,this.rhs=r}render({es5:t,_n:n}){let r=t?Re.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${r} ${this.name}${o};`+n}optimizeNames(t,n){if(t[this.name.str])return this.rhs&&(this.rhs=Rt(this.rhs,t,n)),this}get names(){return this.rhs instanceof O._CodeOrName?this.rhs.names:{}}},Hn=class extends Le{constructor(t,n,r){super(),this.lhs=t,this.rhs=n,this.sideEffects=r}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,n){if(!(this.lhs instanceof O.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Rt(this.rhs,t,n),this}get names(){let t=this.lhs instanceof O.Name?{}:{...this.lhs.names};return Jn(t,this.rhs)}},_o=class extends Hn{constructor(t,n,r,o){super(t,r,o),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},To=class extends Le{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},bo=class extends Le{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},vo=class extends Le{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Ro=class extends Le{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,n){return this.code=Rt(this.code,t,n),this}get names(){return this.code instanceof O._CodeOrName?this.code.names:{}}},Xt=class extends Le{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((n,r)=>n+r.render(t),"")}optimizeNodes(){let{nodes:t}=this,n=t.length;for(;n--;){let r=t[n].optimizeNodes();Array.isArray(r)?t.splice(n,1,...r):r?t[n]=r:t.splice(n,1)}return t.length>0?this:void 0}optimizeNames(t,n){let{nodes:r}=this,o=r.length;for(;o--;){let s=r[o];s.optimizeNames(t,n)||(lf(t,s.names),r.splice(o,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>st(t,n.names),{})}},je=class extends Xt{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Co=class extends Xt{},vt=class extends je{};vt.kind="else";var rt=class e extends je{constructor(t,n){super(n),this.condition=t}render(t){let n=`if(${this.condition})`+super.render(t);return this.else&&(n+="else "+this.else.render(t)),n}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let r=n.optimizeNodes();n=this.else=Array.isArray(r)?new vt(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(ma(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,n){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(t,n),!!(super.optimizeNames(t,n)||this.else))return this.condition=Rt(this.condition,t,n),this}get names(){let t=super.names;return Jn(t,this.condition),this.else&&st(t,this.else.names),t}};rt.kind="if";var ot=class extends je{};ot.kind="for";var ko=class extends ot{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,n){if(super.optimizeNames(t,n))return this.iteration=Rt(this.iteration,t,n),this}get names(){return st(super.names,this.iteration.names)}},Eo=class extends ot{constructor(t,n,r,o){super(),this.varKind=t,this.name=n,this.from=r,this.to=o}render(t){let n=t.es5?Re.varKinds.var:this.varKind,{name:r,from:o,to:s}=this;return`for(${n} ${r}=${o}; ${r}<${s}; ${r}++)`+super.render(t)}get names(){let t=Jn(super.names,this.from);return Jn(t,this.to)}},Wn=class extends ot{constructor(t,n,r,o){super(),this.loop=t,this.varKind=n,this.name=r,this.iterable=o}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,n){if(super.optimizeNames(t,n))return this.iterable=Rt(this.iterable,t,n),this}get names(){return st(super.names,this.iterable.names)}},Qt=class extends je{constructor(t,n,r){super(),this.name=t,this.args=n,this.async=r}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};Qt.kind="func";var Zt=class extends Xt{render(t){return"return "+super.render(t)}};Zt.kind="return";var wo=class extends je{render(t){let n="try"+super.render(t);return this.catch&&(n+=this.catch.render(t)),this.finally&&(n+=this.finally.render(t)),n}optimizeNodes(){var t,n;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(n=this.finally)===null||n===void 0||n.optimizeNodes(),this}optimizeNames(t,n){var r,o;return super.optimizeNames(t,n),(r=this.catch)===null||r===void 0||r.optimizeNames(t,n),(o=this.finally)===null||o===void 0||o.optimizeNames(t,n),this}get names(){let t=super.names;return this.catch&&st(t,this.catch.names),this.finally&&st(t,this.finally.names),t}},en=class extends je{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};en.kind="catch";var tn=class extends je{render(t){return"finally"+super.render(t)}};tn.kind="finally";var $o=class{constructor(t,n={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...n,_n:n.lines?`
2
+ `:""},this._extScope=t,this._scope=new Re.Scope({parent:t}),this._nodes=[new Co]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,n){let r=this._extScope.value(t,n);return(this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(t,n){return this._extScope.getValue(t,n)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,n,r,o){let s=this._scope.toName(n);return r!==void 0&&o&&(this._constants[s.str]=r),this._leafNode(new yo(t,s,r)),s}const(t,n,r){return this._def(Re.varKinds.const,t,n,r)}let(t,n,r){return this._def(Re.varKinds.let,t,n,r)}var(t,n,r){return this._def(Re.varKinds.var,t,n,r)}assign(t,n,r){return this._leafNode(new Hn(t,n,r))}add(t,n){return this._leafNode(new _o(t,A.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==O.nil&&this._leafNode(new Ro(t)),this}object(...t){let n=["{"];for(let[r,o]of t)n.length>1&&n.push(","),n.push(r),(r!==o||this.opts.es5)&&(n.push(":"),(0,O.addCodeArg)(n,o));return n.push("}"),new O._Code(n)}if(t,n,r){if(this._blockNode(new rt(t)),n&&r)this.code(n).else().code(r).endIf();else if(n)this.code(n).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new rt(t))}else(){return this._elseNode(new vt)}endIf(){return this._endBlockNode(rt,vt)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new ko(t),n)}forRange(t,n,r,o,s=this.opts.es5?Re.varKinds.var:Re.varKinds.let){let i=this._scope.toName(t);return this._for(new Eo(s,i,n,r),()=>o(i))}forOf(t,n,r,o=Re.varKinds.const){let s=this._scope.toName(t);if(this.opts.es5){let i=n instanceof O.Name?n:this.var("_arr",n);return this.forRange("_i",0,(0,O._)`${i}.length`,a=>{this.var(s,(0,O._)`${i}[${a}]`),r(s)})}return this._for(new Wn("of",o,s,n),()=>r(s))}forIn(t,n,r,o=this.opts.es5?Re.varKinds.var:Re.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,O._)`Object.keys(${n})`,r);let s=this._scope.toName(t);return this._for(new Wn("in",o,s,n),()=>r(s))}endFor(){return this._endBlockNode(ot)}label(t){return this._leafNode(new To(t))}break(t){return this._leafNode(new bo(t))}return(t){let n=new Zt;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Zt)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new wo;if(this._blockNode(o),this.code(t),n){let s=this.name("e");this._currNode=o.catch=new en(s),n(s)}return r&&(this._currNode=o.finally=new tn,this.code(r)),this._endBlockNode(en,tn)}throw(t){return this._leafNode(new vo(t))}block(t,n){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(n),this}endBlock(t){let n=this._blockStarts.pop();if(n===void 0)throw new Error("CodeGen: not in self-balancing block");let r=this._nodes.length-n;if(r<0||t!==void 0&&r!==t)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${t} expected`);return this._nodes.length=n,this}func(t,n=O.nil,r,o){return this._blockNode(new Qt(t,n,r)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(Qt)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,n){let r=this._currNode;if(r instanceof t||n&&r instanceof n)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${n?`${t.kind}/${n.kind}`:t.kind}"`)}_elseNode(t){let n=this._currNode;if(!(n instanceof rt))throw new Error('CodeGen: "else" without "if"');return this._currNode=n.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let n=this._nodes;n[n.length-1]=t}};A.CodeGen=$o;function st(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function Jn(e,t){return t instanceof O._CodeOrName?st(e,t.names):e}function Rt(e,t,n){if(e instanceof O.Name)return r(e);if(!o(e))return e;return new O._Code(e._items.reduce((s,i)=>(i instanceof O.Name&&(i=r(i)),i instanceof O._Code?s.push(...i._items):s.push(i),s),[]));function r(s){let i=n[s.str];return i===void 0||t[s.str]!==1?s:(delete t[s.str],i)}function o(s){return s instanceof O._Code&&s._items.some(i=>i instanceof O.Name&&t[i.str]===1&&n[i.str]!==void 0)}}function lf(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function ma(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,O._)`!${So(e)}`}A.not=ma;var cf=ha(A.operators.AND);function uf(...e){return e.reduce(cf)}A.and=uf;var df=ha(A.operators.OR);function ff(...e){return e.reduce(df)}A.or=ff;function ha(e){return(t,n)=>t===O.nil?n:n===O.nil?t:(0,O._)`${So(t)} ${e} ${So(n)}`}function So(e){return e instanceof O.Name?e:(0,O._)`(${e})`}});var M=b(P=>{"use strict";Object.defineProperty(P,"__esModule",{value:!0});P.checkStrictMode=P.getErrorPath=P.Type=P.useFunc=P.setEvaluated=P.evaluatedPropsToName=P.mergeEvaluated=P.eachItem=P.unescapeJsonPointer=P.escapeJsonPointer=P.escapeFragment=P.unescapeFragment=P.schemaRefOrVal=P.schemaHasRulesButRef=P.schemaHasRules=P.checkUnknownRules=P.alwaysValidSchema=P.toHash=void 0;var z=S(),pf=Yt();function mf(e){let t={};for(let n of e)t[n]=!0;return t}P.toHash=mf;function hf(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(_a(e,t),!Ta(t,e.self.RULES.all))}P.alwaysValidSchema=hf;function _a(e,t=e.schema){let{opts:n,self:r}=e;if(!n.strictSchema||typeof t=="boolean")return;let o=r.RULES.keywords;for(let s in t)o[s]||Ra(e,`unknown keyword: "${s}"`)}P.checkUnknownRules=_a;function Ta(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}P.schemaHasRules=Ta;function gf(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(n!=="$ref"&&t.all[n])return!0;return!1}P.schemaHasRulesButRef=gf;function yf({topSchemaRef:e,schemaPath:t},n,r,o){if(!o){if(typeof n=="number"||typeof n=="boolean")return n;if(typeof n=="string")return(0,z._)`${n}`}return(0,z._)`${e}${t}${(0,z.getProperty)(r)}`}P.schemaRefOrVal=yf;function _f(e){return ba(decodeURIComponent(e))}P.unescapeFragment=_f;function Tf(e){return encodeURIComponent(Ao(e))}P.escapeFragment=Tf;function Ao(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}P.escapeJsonPointer=Ao;function ba(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}P.unescapeJsonPointer=ba;function bf(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}P.eachItem=bf;function ga({mergeNames:e,mergeToName:t,mergeValues:n,resultToName:r}){return(o,s,i,a)=>{let l=i===void 0?s:i instanceof z.Name?(s instanceof z.Name?e(o,s,i):t(o,s,i),i):s instanceof z.Name?(t(o,i,s),s):n(s,i);return a===z.Name&&!(l instanceof z.Name)?r(o,l):l}}P.mergeEvaluated={props:ga({mergeNames:(e,t,n)=>e.if((0,z._)`${n} !== true && ${t} !== undefined`,()=>{e.if((0,z._)`${t} === true`,()=>e.assign(n,!0),()=>e.assign(n,(0,z._)`${n} || {}`).code((0,z._)`Object.assign(${n}, ${t})`))}),mergeToName:(e,t,n)=>e.if((0,z._)`${n} !== true`,()=>{t===!0?e.assign(n,!0):(e.assign(n,(0,z._)`${n} || {}`),Po(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:va}),items:ga({mergeNames:(e,t,n)=>e.if((0,z._)`${n} !== true && ${t} !== undefined`,()=>e.assign(n,(0,z._)`${t} === true ? true : ${n} > ${t} ? ${n} : ${t}`)),mergeToName:(e,t,n)=>e.if((0,z._)`${n} !== true`,()=>e.assign(n,t===!0?!0:(0,z._)`${n} > ${t} ? ${n} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function va(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,z._)`{}`);return t!==void 0&&Po(e,n,t),n}P.evaluatedPropsToName=va;function Po(e,t,n){Object.keys(n).forEach(r=>e.assign((0,z._)`${t}${(0,z.getProperty)(r)}`,!0))}P.setEvaluated=Po;var ya={};function vf(e,t){return e.scopeValue("func",{ref:t,code:ya[t.code]||(ya[t.code]=new pf._Code(t.code))})}P.useFunc=vf;var xo;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(xo||(P.Type=xo={}));function Rf(e,t,n){if(e instanceof z.Name){let r=t===xo.Num;return n?r?(0,z._)`"[" + ${e} + "]"`:(0,z._)`"['" + ${e} + "']"`:r?(0,z._)`"/" + ${e}`:(0,z._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return n?(0,z.getProperty)(e).toString():"/"+Ao(e)}P.getErrorPath=Rf;function Ra(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,n===!0)throw new Error(t);e.self.logger.warn(t)}}P.checkStrictMode=Ra});var pe=b(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});var Z=S(),Cf={data:new Z.Name("data"),valCxt:new Z.Name("valCxt"),instancePath:new Z.Name("instancePath"),parentData:new Z.Name("parentData"),parentDataProperty:new Z.Name("parentDataProperty"),rootData:new Z.Name("rootData"),dynamicAnchors:new Z.Name("dynamicAnchors"),vErrors:new Z.Name("vErrors"),errors:new Z.Name("errors"),this:new Z.Name("this"),self:new Z.Name("self"),scope:new Z.Name("scope"),json:new Z.Name("json"),jsonPos:new Z.Name("jsonPos"),jsonLen:new Z.Name("jsonLen"),jsonPart:new Z.Name("jsonPart")};Mo.default=Cf});var nn=b(ee=>{"use strict";Object.defineProperty(ee,"__esModule",{value:!0});ee.extendErrors=ee.resetErrorsCount=ee.reportExtraError=ee.reportError=ee.keyword$DataError=ee.keywordError=void 0;var N=S(),Xn=M(),ne=pe();ee.keywordError={message:({keyword:e})=>(0,N.str)`must pass "${e}" keyword validation`};ee.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,N.str)`"${e}" keyword must be ${t} ($data)`:(0,N.str)`"${e}" keyword is invalid ($data)`};function kf(e,t=ee.keywordError,n,r){let{it:o}=e,{gen:s,compositeRule:i,allErrors:a}=o,l=Ea(e,t,n);r??(i||a)?Ca(s,l):ka(o,(0,N._)`[${l}]`)}ee.reportError=kf;function Ef(e,t=ee.keywordError,n){let{it:r}=e,{gen:o,compositeRule:s,allErrors:i}=r,a=Ea(e,t,n);Ca(o,a),s||i||ka(r,ne.default.vErrors)}ee.reportExtraError=Ef;function wf(e,t){e.assign(ne.default.errors,t),e.if((0,N._)`${ne.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,N._)`${ne.default.vErrors}.length`,t),()=>e.assign(ne.default.vErrors,null)))}ee.resetErrorsCount=wf;function $f({gen:e,keyword:t,schemaValue:n,data:r,errsCount:o,it:s}){if(o===void 0)throw new Error("ajv implementation error");let i=e.name("err");e.forRange("i",o,ne.default.errors,a=>{e.const(i,(0,N._)`${ne.default.vErrors}[${a}]`),e.if((0,N._)`${i}.instancePath === undefined`,()=>e.assign((0,N._)`${i}.instancePath`,(0,N.strConcat)(ne.default.instancePath,s.errorPath))),e.assign((0,N._)`${i}.schemaPath`,(0,N.str)`${s.errSchemaPath}/${t}`),s.opts.verbose&&(e.assign((0,N._)`${i}.schema`,n),e.assign((0,N._)`${i}.data`,r))})}ee.extendErrors=$f;function Ca(e,t){let n=e.const("err",t);e.if((0,N._)`${ne.default.vErrors} === null`,()=>e.assign(ne.default.vErrors,(0,N._)`[${n}]`),(0,N._)`${ne.default.vErrors}.push(${n})`),e.code((0,N._)`${ne.default.errors}++`)}function ka(e,t){let{gen:n,validateName:r,schemaEnv:o}=e;o.$async?n.throw((0,N._)`new ${e.ValidationError}(${t})`):(n.assign((0,N._)`${r}.errors`,t),n.return(!1))}var it={keyword:new N.Name("keyword"),schemaPath:new N.Name("schemaPath"),params:new N.Name("params"),propertyName:new N.Name("propertyName"),message:new N.Name("message"),schema:new N.Name("schema"),parentSchema:new N.Name("parentSchema")};function Ea(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,N._)`{}`:Sf(e,t,n)}function Sf(e,t,n={}){let{gen:r,it:o}=e,s=[xf(o,n),Af(e,n)];return Pf(e,t,s),r.object(...s)}function xf({errorPath:e},{instancePath:t}){let n=t?(0,N.str)`${e}${(0,Xn.getErrorPath)(t,Xn.Type.Str)}`:e;return[ne.default.instancePath,(0,N.strConcat)(ne.default.instancePath,n)]}function Af({keyword:e,it:{errSchemaPath:t}},{schemaPath:n,parentSchema:r}){let o=r?t:(0,N.str)`${t}/${e}`;return n&&(o=(0,N.str)`${o}${(0,Xn.getErrorPath)(n,Xn.Type.Str)}`),[it.schemaPath,o]}function Pf(e,{params:t,message:n},r){let{keyword:o,data:s,schemaValue:i,it:a}=e,{opts:l,propertyName:c,topSchemaRef:u,schemaPath:d}=a;r.push([it.keyword,o],[it.params,typeof t=="function"?t(e):t||(0,N._)`{}`]),l.messages&&r.push([it.message,typeof n=="function"?n(e):n]),l.verbose&&r.push([it.schema,i],[it.parentSchema,(0,N._)`${u}${d}`],[ne.default.data,s]),c&&r.push([it.propertyName,c])}});var $a=b(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.boolOrEmptySchema=Ct.topBoolOrEmptySchema=void 0;var Mf=nn(),Of=S(),If=pe(),Nf={message:"boolean schema is false"};function Lf(e){let{gen:t,schema:n,validateName:r}=e;n===!1?wa(e,!1):typeof n=="object"&&n.$async===!0?t.return(If.default.data):(t.assign((0,Of._)`${r}.errors`,null),t.return(!0))}Ct.topBoolOrEmptySchema=Lf;function jf(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),wa(e)):n.var(t,!0)}Ct.boolOrEmptySchema=jf;function wa(e,t){let{gen:n,data:r}=e,o={gen:n,keyword:"false schema",data:r,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,Mf.reportError)(o,Nf,void 0,t)}});var Oo=b(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.getRules=kt.isJSONType=void 0;var qf=["string","number","integer","boolean","null","object","array"],Df=new Set(qf);function Ff(e){return typeof e=="string"&&Df.has(e)}kt.isJSONType=Ff;function Uf(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}kt.getRules=Uf});var Io=b(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.shouldUseRule=Ue.shouldUseGroup=Ue.schemaHasRulesForType=void 0;function Bf({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&Sa(e,r)}Ue.schemaHasRulesForType=Bf;function Sa(e,t){return t.rules.some(n=>xa(e,n))}Ue.shouldUseGroup=Sa;function xa(e,t){var n;return e[t.keyword]!==void 0||((n=t.definition.implements)===null||n===void 0?void 0:n.some(r=>e[r]!==void 0))}Ue.shouldUseRule=xa});var rn=b(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.reportTypeError=te.checkDataTypes=te.checkDataType=te.coerceAndCheckDataType=te.getJSONTypes=te.getSchemaTypes=te.DataType=void 0;var zf=Oo(),Vf=Io(),Kf=nn(),x=S(),Aa=M(),Et;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Et||(te.DataType=Et={}));function Gf(e){let t=Pa(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}te.getSchemaTypes=Gf;function Pa(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(zf.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}te.getJSONTypes=Pa;function Hf(e,t){let{gen:n,data:r,opts:o}=e,s=Wf(t,o.coerceTypes),i=t.length>0&&!(s.length===0&&t.length===1&&(0,Vf.schemaHasRulesForType)(e,t[0]));if(i){let a=Lo(t,r,o.strictNumbers,Et.Wrong);n.if(a,()=>{s.length?Jf(e,t,s):jo(e)})}return i}te.coerceAndCheckDataType=Hf;var Ma=new Set(["string","number","integer","boolean","null"]);function Wf(e,t){return t?e.filter(n=>Ma.has(n)||t==="array"&&n==="array"):[]}function Jf(e,t,n){let{gen:r,data:o,opts:s}=e,i=r.let("dataType",(0,x._)`typeof ${o}`),a=r.let("coerced",(0,x._)`undefined`);s.coerceTypes==="array"&&r.if((0,x._)`${i} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>r.assign(o,(0,x._)`${o}[0]`).assign(i,(0,x._)`typeof ${o}`).if(Lo(t,o,s.strictNumbers),()=>r.assign(a,o))),r.if((0,x._)`${a} !== undefined`);for(let c of n)(Ma.has(c)||c==="array"&&s.coerceTypes==="array")&&l(c);r.else(),jo(e),r.endIf(),r.if((0,x._)`${a} !== undefined`,()=>{r.assign(o,a),Yf(e,a)});function l(c){switch(c){case"string":r.elseIf((0,x._)`${i} == "number" || ${i} == "boolean"`).assign(a,(0,x._)`"" + ${o}`).elseIf((0,x._)`${o} === null`).assign(a,(0,x._)`""`);return;case"number":r.elseIf((0,x._)`${i} == "boolean" || ${o} === null
3
+ || (${i} == "string" && ${o} && ${o} == +${o})`).assign(a,(0,x._)`+${o}`);return;case"integer":r.elseIf((0,x._)`${i} === "boolean" || ${o} === null
4
+ || (${i} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(a,(0,x._)`+${o}`);return;case"boolean":r.elseIf((0,x._)`${o} === "false" || ${o} === 0 || ${o} === null`).assign(a,!1).elseIf((0,x._)`${o} === "true" || ${o} === 1`).assign(a,!0);return;case"null":r.elseIf((0,x._)`${o} === "" || ${o} === 0 || ${o} === false`),r.assign(a,null);return;case"array":r.elseIf((0,x._)`${i} === "string" || ${i} === "number"
5
+ || ${i} === "boolean" || ${o} === null`).assign(a,(0,x._)`[${o}]`)}}}function Yf({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,x._)`${t} !== undefined`,()=>e.assign((0,x._)`${t}[${n}]`,r))}function No(e,t,n,r=Et.Correct){let o=r===Et.Correct?x.operators.EQ:x.operators.NEQ,s;switch(e){case"null":return(0,x._)`${t} ${o} null`;case"array":s=(0,x._)`Array.isArray(${t})`;break;case"object":s=(0,x._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":s=i((0,x._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":s=i();break;default:return(0,x._)`typeof ${t} ${o} ${e}`}return r===Et.Correct?s:(0,x.not)(s);function i(a=x.nil){return(0,x.and)((0,x._)`typeof ${t} == "number"`,a,n?(0,x._)`isFinite(${t})`:x.nil)}}te.checkDataType=No;function Lo(e,t,n,r){if(e.length===1)return No(e[0],t,n,r);let o,s=(0,Aa.toHash)(e);if(s.array&&s.object){let i=(0,x._)`typeof ${t} != "object"`;o=s.null?i:(0,x._)`!${t} || ${i}`,delete s.null,delete s.array,delete s.object}else o=x.nil;s.number&&delete s.integer;for(let i in s)o=(0,x.and)(o,No(i,t,n,r));return o}te.checkDataTypes=Lo;var Xf={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,x._)`{type: ${e}}`:(0,x._)`{type: ${t}}`};function jo(e){let t=Qf(e);(0,Kf.reportError)(t,Xf)}te.reportTypeError=jo;function Qf(e){let{gen:t,data:n,schema:r}=e,o=(0,Aa.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:o,schemaValue:o,parentSchema:r,params:{},it:e}}});var Ia=b(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});Qn.assignDefaults=void 0;var wt=S(),Zf=M();function ep(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let o in n)Oa(e,o,n[o].default);else t==="array"&&Array.isArray(r)&&r.forEach((o,s)=>Oa(e,s,o.default))}Qn.assignDefaults=ep;function Oa(e,t,n){let{gen:r,compositeRule:o,data:s,opts:i}=e;if(n===void 0)return;let a=(0,wt._)`${s}${(0,wt.getProperty)(t)}`;if(o){(0,Zf.checkStrictMode)(e,`default is ignored for: ${a}`);return}let l=(0,wt._)`${a} === undefined`;i.useDefaults==="empty"&&(l=(0,wt._)`${l} || ${a} === null || ${a} === ""`),r.if(l,(0,wt._)`${a} = ${(0,wt.stringify)(n)}`)}});var me=b(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.validateUnion=B.validateArray=B.usePattern=B.callValidateCode=B.schemaProperties=B.allSchemaProperties=B.noPropertyInData=B.propertyInData=B.isOwnProperty=B.hasPropFunc=B.reportMissingProp=B.checkMissingProp=B.checkReportMissingProp=void 0;var V=S(),qo=M(),Be=pe(),tp=M();function np(e,t){let{gen:n,data:r,it:o}=e;n.if(Fo(n,r,t,o.opts.ownProperties),()=>{e.setParams({missingProperty:(0,V._)`${t}`},!0),e.error()})}B.checkReportMissingProp=np;function rp({gen:e,data:t,it:{opts:n}},r,o){return(0,V.or)(...r.map(s=>(0,V.and)(Fo(e,t,s,n.ownProperties),(0,V._)`${o} = ${s}`)))}B.checkMissingProp=rp;function op(e,t){e.setParams({missingProperty:t},!0),e.error()}B.reportMissingProp=op;function Na(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,V._)`Object.prototype.hasOwnProperty`})}B.hasPropFunc=Na;function Do(e,t,n){return(0,V._)`${Na(e)}.call(${t}, ${n})`}B.isOwnProperty=Do;function sp(e,t,n,r){let o=(0,V._)`${t}${(0,V.getProperty)(n)} !== undefined`;return r?(0,V._)`${o} && ${Do(e,t,n)}`:o}B.propertyInData=sp;function Fo(e,t,n,r){let o=(0,V._)`${t}${(0,V.getProperty)(n)} === undefined`;return r?(0,V.or)(o,(0,V.not)(Do(e,t,n))):o}B.noPropertyInData=Fo;function La(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}B.allSchemaProperties=La;function ip(e,t){return La(t).filter(n=>!(0,qo.alwaysValidSchema)(e,t[n]))}B.schemaProperties=ip;function ap({schemaCode:e,data:t,it:{gen:n,topSchemaRef:r,schemaPath:o,errorPath:s},it:i},a,l,c){let u=c?(0,V._)`${e}, ${t}, ${r}${o}`:t,d=[[Be.default.instancePath,(0,V.strConcat)(Be.default.instancePath,s)],[Be.default.parentData,i.parentData],[Be.default.parentDataProperty,i.parentDataProperty],[Be.default.rootData,Be.default.rootData]];i.opts.dynamicRef&&d.push([Be.default.dynamicAnchors,Be.default.dynamicAnchors]);let m=(0,V._)`${u}, ${n.object(...d)}`;return l!==V.nil?(0,V._)`${a}.call(${l}, ${m})`:(0,V._)`${a}(${m})`}B.callValidateCode=ap;var lp=(0,V._)`new RegExp`;function cp({gen:e,it:{opts:t}},n){let r=t.unicodeRegExp?"u":"",{regExp:o}=t.code,s=o(n,r);return e.scopeValue("pattern",{key:s.toString(),ref:s,code:(0,V._)`${o.code==="new RegExp"?lp:(0,tp.useFunc)(e,o)}(${n}, ${r})`})}B.usePattern=cp;function up(e){let{gen:t,data:n,keyword:r,it:o}=e,s=t.name("valid");if(o.allErrors){let a=t.let("valid",!0);return i(()=>t.assign(a,!1)),a}return t.var(s,!0),i(()=>t.break()),s;function i(a){let l=t.const("len",(0,V._)`${n}.length`);t.forRange("i",0,l,c=>{e.subschema({keyword:r,dataProp:c,dataPropType:qo.Type.Num},s),t.if((0,V.not)(s),a)})}}B.validateArray=up;function dp(e){let{gen:t,schema:n,keyword:r,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some(l=>(0,qo.alwaysValidSchema)(o,l))&&!o.opts.unevaluated)return;let i=t.let("valid",!1),a=t.name("_valid");t.block(()=>n.forEach((l,c)=>{let u=e.subschema({keyword:r,schemaProp:c,compositeRule:!0},a);t.assign(i,(0,V._)`${i} || ${a}`),e.mergeValidEvaluated(u,a)||t.if((0,V.not)(i))})),e.result(i,()=>e.reset(),()=>e.error(!0))}B.validateUnion=dp});var Da=b(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.validateKeywordUsage=Pe.validSchemaType=Pe.funcKeywordCode=Pe.macroKeywordCode=void 0;var re=S(),at=pe(),fp=me(),pp=nn();function mp(e,t){let{gen:n,keyword:r,schema:o,parentSchema:s,it:i}=e,a=t.macro.call(i.self,o,s,i),l=qa(n,r,a);i.opts.validateSchema!==!1&&i.self.validateSchema(a,!0);let c=n.name("valid");e.subschema({schema:a,schemaPath:re.nil,errSchemaPath:`${i.errSchemaPath}/${r}`,topSchemaRef:l,compositeRule:!0},c),e.pass(c,()=>e.error(!0))}Pe.macroKeywordCode=mp;function hp(e,t){var n;let{gen:r,keyword:o,schema:s,parentSchema:i,$data:a,it:l}=e;yp(l,t);let c=!a&&t.compile?t.compile.call(l.self,s,i,l):t.validate,u=qa(r,o,c),d=r.let("valid");e.block$data(d,m),e.ok((n=t.valid)!==null&&n!==void 0?n:d);function m(){if(t.errors===!1)f(),t.modifying&&ja(e),h(()=>e.error());else{let T=t.async?_():p();t.modifying&&ja(e),h(()=>gp(e,T))}}function _(){let T=r.let("ruleErrs",null);return r.try(()=>f((0,re._)`await `),E=>r.assign(d,!1).if((0,re._)`${E} instanceof ${l.ValidationError}`,()=>r.assign(T,(0,re._)`${E}.errors`),()=>r.throw(E))),T}function p(){let T=(0,re._)`${u}.errors`;return r.assign(T,null),f(re.nil),T}function f(T=t.async?(0,re._)`await `:re.nil){let E=l.opts.passContext?at.default.this:at.default.self,w=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,re._)`${T}${(0,fp.callValidateCode)(e,u,E,w)}`,t.modifying)}function h(T){var E;r.if((0,re.not)((E=t.valid)!==null&&E!==void 0?E:d),T)}}Pe.funcKeywordCode=hp;function ja(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,re._)`${r.parentData}[${r.parentDataProperty}]`))}function gp(e,t){let{gen:n}=e;n.if((0,re._)`Array.isArray(${t})`,()=>{n.assign(at.default.vErrors,(0,re._)`${at.default.vErrors} === null ? ${t} : ${at.default.vErrors}.concat(${t})`).assign(at.default.errors,(0,re._)`${at.default.vErrors}.length`),(0,pp.extendErrors)(e)},()=>e.error())}function yp({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function qa(e,t,n){if(n===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof n=="function"?{ref:n}:{ref:n,code:(0,re.stringify)(n)})}function _p(e,t,n=!1){return!t.length||t.some(r=>r==="array"?Array.isArray(e):r==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==r||n&&typeof e>"u")}Pe.validSchemaType=_p;function Tp({schema:e,opts:t,self:n,errSchemaPath:r},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(e,a)))throw new Error(`parent schema must have dependencies of ${s}: ${i.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[s])){let l=`keyword "${s}" value is invalid at path "${r}": `+n.errorsText(o.validateSchema.errors);if(t.validateSchema==="log")n.logger.error(l);else throw new Error(l)}}Pe.validateKeywordUsage=Tp});var Ua=b(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.extendSubschemaMode=ze.extendSubschemaData=ze.getSubschema=void 0;var Me=S(),Fa=M();function bp(e,{keyword:t,schemaProp:n,schema:r,schemaPath:o,errSchemaPath:s,topSchemaRef:i}){if(t!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let a=e.schema[t];return n===void 0?{schema:a,schemaPath:(0,Me._)`${e.schemaPath}${(0,Me.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:a[n],schemaPath:(0,Me._)`${e.schemaPath}${(0,Me.getProperty)(t)}${(0,Me.getProperty)(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Fa.escapeFragment)(n)}`}}if(r!==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:r,schemaPath:o,topSchemaRef:i,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}ze.getSubschema=bp;function vp(e,t,{dataProp:n,dataPropType:r,data:o,dataTypes:s,propertyName:i}){if(o!==void 0&&n!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=t;if(n!==void 0){let{errorPath:c,dataPathArr:u,opts:d}=t,m=a.let("data",(0,Me._)`${t.data}${(0,Me.getProperty)(n)}`,!0);l(m),e.errorPath=(0,Me.str)`${c}${(0,Fa.getErrorPath)(n,r,d.jsPropertySyntax)}`,e.parentDataProperty=(0,Me._)`${n}`,e.dataPathArr=[...u,e.parentDataProperty]}if(o!==void 0){let c=o instanceof Me.Name?o:a.let("data",o,!0);l(c),i!==void 0&&(e.propertyName=i)}s&&(e.dataTypes=s);function l(c){e.data=c,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,c]}}ze.extendSubschemaData=vp;function Rp(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:o,allErrors:s}){r!==void 0&&(e.compositeRule=r),o!==void 0&&(e.createErrors=o),s!==void 0&&(e.allErrors=s),e.jtdDiscriminator=t,e.jtdMetadata=n}ze.extendSubschemaMode=Rp});var Uo=b((dv,Ba)=>{"use strict";Ba.exports=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var r,o,s;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(o=r;o--!==0;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(s=Object.keys(t),r=s.length,r!==Object.keys(n).length)return!1;for(o=r;o--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[o]))return!1;for(o=r;o--!==0;){var i=s[o];if(!e(t[i],n[i]))return!1}return!0}return t!==t&&n!==n}});var Va=b((fv,za)=>{"use strict";var Ve=za.exports=function(e,t,n){typeof t=="function"&&(n=t,t={}),n=t.cb||n;var r=typeof n=="function"?n:n.pre||function(){},o=n.post||function(){};Zn(t,r,o,e,"",e)};Ve.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Ve.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Ve.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Ve.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 Zn(e,t,n,r,o,s,i,a,l,c){if(r&&typeof r=="object"&&!Array.isArray(r)){t(r,o,s,i,a,l,c);for(var u in r){var d=r[u];if(Array.isArray(d)){if(u in Ve.arrayKeywords)for(var m=0;m<d.length;m++)Zn(e,t,n,d[m],o+"/"+u+"/"+m,s,o,u,r,m)}else if(u in Ve.propsKeywords){if(d&&typeof d=="object")for(var _ in d)Zn(e,t,n,d[_],o+"/"+u+"/"+Cp(_),s,o,u,r,_)}else(u in Ve.keywords||e.allKeys&&!(u in Ve.skipKeywords))&&Zn(e,t,n,d,o+"/"+u,s,o,u,r)}n(r,o,s,i,a,l,c)}}function Cp(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var on=b(ae=>{"use strict";Object.defineProperty(ae,"__esModule",{value:!0});ae.getSchemaRefs=ae.resolveUrl=ae.normalizeId=ae._getFullPath=ae.getFullPath=ae.inlineRef=void 0;var kp=M(),Ep=Uo(),wp=Va(),$p=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Sp(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Bo(e):t?Ka(e)<=t:!1}ae.inlineRef=Sp;var xp=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Bo(e){for(let t in e){if(xp.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(Bo)||typeof n=="object"&&Bo(n))return!0}return!1}function Ka(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!$p.has(n)&&(typeof e[n]=="object"&&(0,kp.eachItem)(e[n],r=>t+=Ka(r)),t===1/0))return 1/0}return t}function Ga(e,t="",n){n!==!1&&(t=$t(t));let r=e.parse(t);return Ha(e,r)}ae.getFullPath=Ga;function Ha(e,t){return e.serialize(t).split("#")[0]+"#"}ae._getFullPath=Ha;var Ap=/#\/?$/;function $t(e){return e?e.replace(Ap,""):""}ae.normalizeId=$t;function Pp(e,t,n){return n=$t(n),e.resolve(t,n)}ae.resolveUrl=Pp;var Mp=/^[a-z_][-a-z0-9._]*$/i;function Op(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,o=$t(e[n]||t),s={"":o},i=Ga(r,o,!1),a={},l=new Set;return wp(e,{allKeys:!0},(d,m,_,p)=>{if(p===void 0)return;let f=i+m,h=s[p];typeof d[n]=="string"&&(h=T.call(this,d[n])),E.call(this,d.$anchor),E.call(this,d.$dynamicAnchor),s[m]=h;function T(w){let q=this.opts.uriResolver.resolve;if(w=$t(h?q(h,w):w),l.has(w))throw u(w);l.add(w);let k=this.refs[w];return typeof k=="string"&&(k=this.refs[k]),typeof k=="object"?c(d,k.schema,w):w!==$t(f)&&(w[0]==="#"?(c(d,a[w],w),a[w]=d):this.refs[w]=f),w}function E(w){if(typeof w=="string"){if(!Mp.test(w))throw new Error(`invalid anchor "${w}"`);T.call(this,`#${w}`)}}}),a;function c(d,m,_){if(m!==void 0&&!Ep(d,m))throw u(_)}function u(d){return new Error(`reference "${d}" resolves to more than one schema`)}}ae.getSchemaRefs=Op});var ln=b(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.getData=Ke.KeywordCxt=Ke.validateFunctionCode=void 0;var Qa=$a(),Wa=rn(),Vo=Io(),er=rn(),Ip=Ia(),an=Da(),zo=Ua(),C=S(),$=pe(),Np=on(),qe=M(),sn=nn();function Lp(e){if(tl(e)&&(nl(e),el(e))){Dp(e);return}Za(e,()=>(0,Qa.topBoolOrEmptySchema)(e))}Ke.validateFunctionCode=Lp;function Za({gen:e,validateName:t,schema:n,schemaEnv:r,opts:o},s){o.code.es5?e.func(t,(0,C._)`${$.default.data}, ${$.default.valCxt}`,r.$async,()=>{e.code((0,C._)`"use strict"; ${Ja(n,o)}`),qp(e,o),e.code(s)}):e.func(t,(0,C._)`${$.default.data}, ${jp(o)}`,r.$async,()=>e.code(Ja(n,o)).code(s))}function jp(e){return(0,C._)`{${$.default.instancePath}="", ${$.default.parentData}, ${$.default.parentDataProperty}, ${$.default.rootData}=${$.default.data}${e.dynamicRef?(0,C._)`, ${$.default.dynamicAnchors}={}`:C.nil}}={}`}function qp(e,t){e.if($.default.valCxt,()=>{e.var($.default.instancePath,(0,C._)`${$.default.valCxt}.${$.default.instancePath}`),e.var($.default.parentData,(0,C._)`${$.default.valCxt}.${$.default.parentData}`),e.var($.default.parentDataProperty,(0,C._)`${$.default.valCxt}.${$.default.parentDataProperty}`),e.var($.default.rootData,(0,C._)`${$.default.valCxt}.${$.default.rootData}`),t.dynamicRef&&e.var($.default.dynamicAnchors,(0,C._)`${$.default.valCxt}.${$.default.dynamicAnchors}`)},()=>{e.var($.default.instancePath,(0,C._)`""`),e.var($.default.parentData,(0,C._)`undefined`),e.var($.default.parentDataProperty,(0,C._)`undefined`),e.var($.default.rootData,$.default.data),t.dynamicRef&&e.var($.default.dynamicAnchors,(0,C._)`{}`)})}function Dp(e){let{schema:t,opts:n,gen:r}=e;Za(e,()=>{n.$comment&&t.$comment&&ol(e),Vp(e),r.let($.default.vErrors,null),r.let($.default.errors,0),n.unevaluated&&Fp(e),rl(e),Hp(e)})}function Fp(e){let{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",(0,C._)`${n}.evaluated`),t.if((0,C._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,C._)`${e.evaluated}.props`,(0,C._)`undefined`)),t.if((0,C._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,C._)`${e.evaluated}.items`,(0,C._)`undefined`))}function Ja(e,t){let n=typeof e=="object"&&e[t.schemaId];return n&&(t.code.source||t.code.process)?(0,C._)`/*# sourceURL=${n} */`:C.nil}function Up(e,t){if(tl(e)&&(nl(e),el(e))){Bp(e,t);return}(0,Qa.boolOrEmptySchema)(e,t)}function el({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let n in e)if(t.RULES.all[n])return!0;return!1}function tl(e){return typeof e.schema!="boolean"}function Bp(e,t){let{schema:n,gen:r,opts:o}=e;o.$comment&&n.$comment&&ol(e),Kp(e),Gp(e);let s=r.const("_errs",$.default.errors);rl(e,s),r.var(t,(0,C._)`${s} === ${$.default.errors}`)}function nl(e){(0,qe.checkUnknownRules)(e),zp(e)}function rl(e,t){if(e.opts.jtd)return Ya(e,[],!1,t);let n=(0,Wa.getSchemaTypes)(e.schema),r=(0,Wa.coerceAndCheckDataType)(e,n);Ya(e,n,!r,t)}function zp(e){let{schema:t,errSchemaPath:n,opts:r,self:o}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,qe.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function Vp(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,qe.checkStrictMode)(e,"default is ignored in the schema root")}function Kp(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,Np.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function Gp(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function ol({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:o}){let s=n.$comment;if(o.$comment===!0)e.code((0,C._)`${$.default.self}.logger.log(${s})`);else if(typeof o.$comment=="function"){let i=(0,C.str)`${r}/$comment`,a=e.scopeValue("root",{ref:t.root});e.code((0,C._)`${$.default.self}.opts.$comment(${s}, ${i}, ${a}.schema)`)}}function Hp(e){let{gen:t,schemaEnv:n,validateName:r,ValidationError:o,opts:s}=e;n.$async?t.if((0,C._)`${$.default.errors} === 0`,()=>t.return($.default.data),()=>t.throw((0,C._)`new ${o}(${$.default.vErrors})`)):(t.assign((0,C._)`${r}.errors`,$.default.vErrors),s.unevaluated&&Wp(e),t.return((0,C._)`${$.default.errors} === 0`))}function Wp({gen:e,evaluated:t,props:n,items:r}){n instanceof C.Name&&e.assign((0,C._)`${t}.props`,n),r instanceof C.Name&&e.assign((0,C._)`${t}.items`,r)}function Ya(e,t,n,r){let{gen:o,schema:s,data:i,allErrors:a,opts:l,self:c}=e,{RULES:u}=c;if(s.$ref&&(l.ignoreKeywordsWithRef||!(0,qe.schemaHasRulesButRef)(s,u))){o.block(()=>il(e,"$ref",u.all.$ref.definition));return}l.jtd||Jp(e,t),o.block(()=>{for(let m of u.rules)d(m);d(u.post)});function d(m){(0,Vo.shouldUseGroup)(s,m)&&(m.type?(o.if((0,er.checkDataType)(m.type,i,l.strictNumbers)),Xa(e,m),t.length===1&&t[0]===m.type&&n&&(o.else(),(0,er.reportTypeError)(e)),o.endIf()):Xa(e,m),a||o.if((0,C._)`${$.default.errors} === ${r||0}`))}}function Xa(e,t){let{gen:n,schema:r,opts:{useDefaults:o}}=e;o&&(0,Ip.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,Vo.shouldUseRule)(r,s)&&il(e,s.keyword,s.definition,t.type)})}function Jp(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Yp(e,t),e.opts.allowUnionTypes||Xp(e,t),Qp(e,e.dataTypes))}function Yp(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{sl(e.dataTypes,n)||Ko(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),em(e,t)}}function Xp(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ko(e,"use allowUnionTypes to allow union type keyword")}function Qp(e,t){let n=e.self.RULES.all;for(let r in n){let o=n[r];if(typeof o=="object"&&(0,Vo.shouldUseRule)(e.schema,o)){let{type:s}=o.definition;s.length&&!s.some(i=>Zp(t,i))&&Ko(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function Zp(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function sl(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function em(e,t){let n=[];for(let r of e.dataTypes)sl(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function Ko(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,qe.checkStrictMode)(e,t,e.opts.strictTypes)}var tr=class{constructor(t,n,r){if((0,an.validateKeywordUsage)(t,n,r),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=r,this.data=t.data,this.schema=t.schema[r],this.$data=n.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,qe.schemaRefOrVal)(t,this.schema,r,this.$data),this.schemaType=n.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=n,this.$data)this.schemaCode=t.gen.const("vSchema",al(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,an.validSchemaType)(this.schema,n.schemaType,n.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(n.schemaType)}`);("code"in n?n.trackErrors:n.errors!==!1)&&(this.errsCount=t.gen.const("_errs",$.default.errors))}result(t,n,r){this.failResult((0,C.not)(t),n,r)}failResult(t,n,r){this.gen.if(t),r?r():this.error(),n?(this.gen.else(),n(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,n){this.failResult((0,C.not)(t),void 0,n)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:n}=this;this.fail((0,C._)`${n} !== undefined && (${(0,C.or)(this.invalid$data(),t)})`)}error(t,n,r){if(n){this.setParams(n),this._error(t,r),this.setParams({});return}this._error(t,r)}_error(t,n){(t?sn.reportExtraError:sn.reportError)(this,this.def.error,n)}$dataError(){(0,sn.reportError)(this,this.def.$dataError||sn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,sn.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,n){n?Object.assign(this.params,t):this.params=t}block$data(t,n,r=C.nil){this.gen.block(()=>{this.check$data(t,r),n()})}check$data(t=C.nil,n=C.nil){if(!this.$data)return;let{gen:r,schemaCode:o,schemaType:s,def:i}=this;r.if((0,C.or)((0,C._)`${o} === undefined`,n)),t!==C.nil&&r.assign(t,!0),(s.length||i.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),t!==C.nil&&r.assign(t,!1)),r.else()}invalid$data(){let{gen:t,schemaCode:n,schemaType:r,def:o,it:s}=this;return(0,C.or)(i(),a());function i(){if(r.length){if(!(n instanceof C.Name))throw new Error("ajv implementation error");let l=Array.isArray(r)?r:[r];return(0,C._)`${(0,er.checkDataTypes)(l,n,s.opts.strictNumbers,er.DataType.Wrong)}`}return C.nil}function a(){if(o.validateSchema){let l=t.scopeValue("validate$data",{ref:o.validateSchema});return(0,C._)`!${l}(${n})`}return C.nil}}subschema(t,n){let r=(0,zo.getSubschema)(this.it,t);(0,zo.extendSubschemaData)(r,this.it,t),(0,zo.extendSubschemaMode)(r,t);let o={...this.it,...r,items:void 0,props:void 0};return Up(o,n),o}mergeEvaluated(t,n){let{it:r,gen:o}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=qe.mergeEvaluated.props(o,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=qe.mergeEvaluated.items(o,t.items,r.items,n)))}mergeValidEvaluated(t,n){let{it:r,gen:o}=this;if(r.opts.unevaluated&&(r.props!==!0||r.items!==!0))return o.if(n,()=>this.mergeEvaluated(t,C.Name)),!0}};Ke.KeywordCxt=tr;function il(e,t,n,r){let o=new tr(e,n,t);"code"in n?n.code(o,r):o.$data&&n.validate?(0,an.funcKeywordCode)(o,n):"macro"in n?(0,an.macroKeywordCode)(o,n):(n.compile||n.validate)&&(0,an.funcKeywordCode)(o,n)}var tm=/^\/(?:[^~]|~0|~1)*$/,nm=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function al(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let o,s;if(e==="")return $.default.rootData;if(e[0]==="/"){if(!tm.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,s=$.default.rootData}else{let c=nm.exec(e);if(!c)throw new Error(`Invalid JSON-pointer: ${e}`);let u=+c[1];if(o=c[2],o==="#"){if(u>=t)throw new Error(l("property/index",u));return r[t-u]}if(u>t)throw new Error(l("data",u));if(s=n[t-u],!o)return s}let i=s,a=o.split("/");for(let c of a)c&&(s=(0,C._)`${s}${(0,C.getProperty)((0,qe.unescapeJsonPointer)(c))}`,i=(0,C._)`${i} && ${s}`);return i;function l(c,u){return`Cannot access ${c} ${u} levels up, current level is ${t}`}}Ke.getData=al});var nr=b(Ho=>{"use strict";Object.defineProperty(Ho,"__esModule",{value:!0});var Go=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Ho.default=Go});var cn=b(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});var Wo=on(),Jo=class extends Error{constructor(t,n,r,o){super(o||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,Wo.resolveUrl)(t,n,r),this.missingSchema=(0,Wo.normalizeId)((0,Wo.getFullPath)(t,this.missingRef))}};Yo.default=Jo});var un=b(he=>{"use strict";Object.defineProperty(he,"__esModule",{value:!0});he.resolveSchema=he.getCompilingSchema=he.resolveRef=he.compileSchema=he.SchemaEnv=void 0;var Ce=S(),rm=nr(),lt=pe(),ke=on(),ll=M(),om=ln(),St=class{constructor(t){var n;this.refs={},this.dynamicAnchors={};let r;typeof t.schema=="object"&&(r=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(n=t.baseId)!==null&&n!==void 0?n:(0,ke.normalizeId)(r?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=r?.$async,this.refs={}}};he.SchemaEnv=St;function Qo(e){let t=cl.call(this,e);if(t)return t;let n=(0,ke.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:r,lines:o}=this.opts.code,{ownProperties:s}=this.opts,i=new Ce.CodeGen(this.scope,{es5:r,lines:o,ownProperties:s}),a;e.$async&&(a=i.scopeValue("Error",{ref:rm.default,code:(0,Ce._)`require("ajv/dist/runtime/validation_error").default`}));let l=i.scopeName("validate");e.validateName=l;let c={gen:i,allErrors:this.opts.allErrors,data:lt.default.data,parentData:lt.default.parentData,parentDataProperty:lt.default.parentDataProperty,dataNames:[lt.default.data],dataPathArr:[Ce.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:i.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,Ce.stringify)(e.schema)}:{ref:e.schema}),validateName:l,ValidationError:a,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:Ce.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Ce._)`""`,opts:this.opts,self:this},u;try{this._compilations.add(e),(0,om.validateFunctionCode)(c),i.optimize(this.opts.code.optimize);let d=i.toString();u=`${i.scopeRefs(lt.default.scope)}return ${d}`,this.opts.code.process&&(u=this.opts.code.process(u,e));let _=new Function(`${lt.default.self}`,`${lt.default.scope}`,u)(this,this.scope.get());if(this.scope.value(l,{ref:_}),_.errors=null,_.schema=e.schema,_.schemaEnv=e,e.$async&&(_.$async=!0),this.opts.code.source===!0&&(_.source={validateName:l,validateCode:d,scopeValues:i._values}),this.opts.unevaluated){let{props:p,items:f}=c;_.evaluated={props:p instanceof Ce.Name?void 0:p,items:f instanceof Ce.Name?void 0:f,dynamicProps:p instanceof Ce.Name,dynamicItems:f instanceof Ce.Name},_.source&&(_.source.evaluated=(0,Ce.stringify)(_.evaluated))}return e.validate=_,e}catch(d){throw delete e.validate,delete e.validateName,u&&this.logger.error("Error compiling schema, function code:",u),d}finally{this._compilations.delete(e)}}he.compileSchema=Qo;function sm(e,t,n){var r;n=(0,ke.resolveUrl)(this.opts.uriResolver,t,n);let o=e.refs[n];if(o)return o;let s=lm.call(this,e,n);if(s===void 0){let i=(r=e.localRefs)===null||r===void 0?void 0:r[n],{schemaId:a}=this.opts;i&&(s=new St({schema:i,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=im.call(this,s)}he.resolveRef=sm;function im(e){return(0,ke.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Qo.call(this,e)}function cl(e){for(let t of this._compilations)if(am(t,e))return t}he.getCompilingSchema=cl;function am(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function lm(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||rr.call(this,e,t)}function rr(e,t){let n=this.opts.uriResolver.parse(t),r=(0,ke._getFullPath)(this.opts.uriResolver,n),o=(0,ke.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===o)return Xo.call(this,n,e);let s=(0,ke.normalizeId)(r),i=this.refs[s]||this.schemas[s];if(typeof i=="string"){let a=rr.call(this,e,i);return typeof a?.schema!="object"?void 0:Xo.call(this,n,a)}if(typeof i?.schema=="object"){if(i.validate||Qo.call(this,i),s===(0,ke.normalizeId)(t)){let{schema:a}=i,{schemaId:l}=this.opts,c=a[l];return c&&(o=(0,ke.resolveUrl)(this.opts.uriResolver,o,c)),new St({schema:a,schemaId:l,root:e,baseId:o})}return Xo.call(this,n,i)}}he.resolveSchema=rr;var cm=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Xo(e,{baseId:t,schema:n,root:r}){var o;if(((o=e.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let a of e.fragment.slice(1).split("/")){if(typeof n=="boolean")return;let l=n[(0,ll.unescapeFragment)(a)];if(l===void 0)return;n=l;let c=typeof n=="object"&&n[this.opts.schemaId];!cm.has(a)&&c&&(t=(0,ke.resolveUrl)(this.opts.uriResolver,t,c))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,ll.schemaHasRulesButRef)(n,this.RULES)){let a=(0,ke.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=rr.call(this,r,a)}let{schemaId:i}=this.opts;if(s=s||new St({schema:n,schemaId:i,root:r,baseId:t}),s.schema!==s.root.schema)return s}});var ul=b((_v,um)=>{um.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 ts=b((Tv,gl)=>{"use strict";var dm=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),fl=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),Zo=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),pl=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),fm=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function es(e){let t="",n=0,r=0;for(r=0;r<e.length;r++)if(n=e[r].charCodeAt(0),n!==48){if(!(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r];break}for(r+=1;r<e.length;r++){if(n=e[r].charCodeAt(0),!(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r]}return t}var pm=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function dl(e){return e.length=0,!0}function mm(e,t,n){if(e.length){let r=es(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function hm(e){let t=0,n={error:!1,address:"",zone:""},r=[],o=[],s=!1,i=!1,a=mm;for(let l=0;l<e.length;l++){let c=e[l];if(!(c==="["||c==="]"))if(c===":"){if(s===!0&&(i=!0),!a(o,r,n))break;if(++t>7){n.error=!0;break}l>0&&e[l-1]===":"&&(s=!0),r.push(":");continue}else if(c==="%"){if(!a(o,r,n))break;a=dl}else{o.push(c);continue}}return o.length&&(a===dl?n.zone=o.join(""):i?r.push(o.join("")):r.push(es(o))),n.address=r.join(""),n}function ml(e){if(gm(e,":")<2)return{host:e,isIPV6:!1};let t=hm(e);if(t.error)return{host:e,isIPV6:!1};{let n=t.address,r=t.address;return t.zone&&(n+="%"+t.zone,r+="%25"+t.zone),{host:n,isIPV6:!0,escapedHost:r}}}function gm(e,t){let n=0;for(let r=0;r<e.length;r++)e[r]===t&&n++;return n}function ym(e){let t=e,n=[],r=-1,o=0;for(;o=t.length;){if(o===1){if(t===".")break;if(t==="/"){n.push("/");break}else{n.push(t);break}}else if(o===2){if(t[0]==="."){if(t[1]===".")break;if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&(t[1]==="."||t[1]==="/")){n.push("/");break}}else if(o===3&&t==="/.."){n.length!==0&&n.pop(),n.push("/");break}if(t[0]==="."){if(t[1]==="."){if(t[2]==="/"){t=t.slice(3);continue}}else if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&t[1]==="."){if(t[2]==="/"){t=t.slice(2);continue}else if(t[2]==="."&&t[3]==="/"){t=t.slice(3),n.length!==0&&n.pop();continue}}if((r=t.indexOf("/",1))===-1){n.push(t);break}else n.push(t.slice(0,r)),t=t.slice(r)}return n.join("")}var _m={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},Tm=/[@/?#:]/g,bm=/[@/?#]/g;function hl(e,t){let n=t?bm:Tm;return n.lastIndex=0,e.replace(n,r=>_m[r])}function vm(e,t=!1){if(e.indexOf("%")===-1)return e;let n="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let o=e.slice(r+1,r+3);if(Zo(o)){let s=o.toUpperCase(),i=String.fromCharCode(parseInt(s,16));t&&pl(i)?n+=i:n+="%"+s,r+=2;continue}}n+=e[r]}return n}function Rm(e){let t="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let r=e.slice(n+1,n+3);if(Zo(r)){let o=r.toUpperCase(),s=String.fromCharCode(parseInt(o,16));s!=="."&&pl(s)?t+=s:t+="%"+o,n+=2;continue}}fm(e[n])?t+=e[n]:t+=escape(e[n])}return t}function Cm(e){let t="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let r=e.slice(n+1,n+3);if(Zo(r)){t+="%"+r.toUpperCase(),n+=2;continue}}t+=escape(e[n])}return t}function km(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let n=unescape(e.host);if(!fl(n)){let r=ml(n);r.isIPV6===!0?n=`[${r.escapedHost}]`:n=hl(n,!1)}t.push(n)}return(typeof e.port=="number"||typeof e.port=="string")&&(t.push(":"),t.push(String(e.port))),t.length?t.join(""):void 0}gl.exports={nonSimpleDomain:pm,recomposeAuthority:km,reescapeHostDelimiters:hl,normalizePercentEncoding:vm,normalizePathEncoding:Rm,escapePreservingEscapes:Cm,removeDotSegments:ym,isIPv4:fl,isUUID:dm,normalizeIPv6:ml,stringArrayToHexStripped:es}});var vl=b((bv,bl)=>{"use strict";var{isUUID:Em}=ts(),wm=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,$m=["http","https","ws","wss","urn","urn:uuid"];function Sm(e){return $m.indexOf(e)!==-1}function ns(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function yl(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function _l(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function xm(e){return e.secure=ns(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Am(e){if((e.port===(ns(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,n]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=n,e.resourceName=void 0}return e.fragment=void 0,e}function Pm(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(wm);if(n){let r=t.scheme||e.scheme||"urn";e.nid=n[1].toLowerCase(),e.nss=n[2];let o=`${r}:${t.nid||e.nid}`,s=rs(o);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Mm(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let n=t.scheme||e.scheme||"urn",r=e.nid.toLowerCase(),o=`${n}:${t.nid||r}`,s=rs(o);s&&(e=s.serialize(e,t));let i=e,a=e.nss;return i.path=`${r||t.nid}:${a}`,t.skipEscape=!0,i}function Om(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!Em(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function Im(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var Tl={scheme:"http",domainHost:!0,parse:yl,serialize:_l},Nm={scheme:"https",domainHost:Tl.domainHost,parse:yl,serialize:_l},or={scheme:"ws",domainHost:!0,parse:xm,serialize:Am},Lm={scheme:"wss",domainHost:or.domainHost,parse:or.parse,serialize:or.serialize},jm={scheme:"urn",parse:Pm,serialize:Mm,skipNormalize:!0},qm={scheme:"urn:uuid",parse:Om,serialize:Im,skipNormalize:!0},sr={http:Tl,https:Nm,ws:or,wss:Lm,urn:jm,"urn:uuid":qm};Object.setPrototypeOf(sr,null);function rs(e){return e&&(sr[e]||sr[e.toLowerCase()])||void 0}bl.exports={wsIsSecure:ns,SCHEMES:sr,isValidSchemeName:Sm,getSchemeHandler:rs}});var $l=b((vv,ir)=>{"use strict";var{normalizeIPv6:Dm,removeDotSegments:dn,recomposeAuthority:Fm,normalizePercentEncoding:Um,normalizePathEncoding:Bm,escapePreservingEscapes:zm,reescapeHostDelimiters:Vm,isIPv4:Km,nonSimpleDomain:Gm}=ts(),{SCHEMES:Hm,getSchemeHandler:Cl}=vl();function Wm(e,t){return typeof e=="string"?e=Zm(e,t):typeof e=="object"&&(e=xt(ct(e,t),t)),e}function Jm(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},o=kl(xt(e,r),xt(t,r),r,!0);return r.skipEscape=!0,ct(o,r)}function kl(e,t,n,r){let o={};return r||(e=xt(ct(e,n),n),t=xt(ct(t,n),n)),n=n||{},!n.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=dn(t.path||""),o.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=dn(t.path||""),o.query=t.query):(t.path?(t.path[0]==="/"?o.path=dn(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?o.path="/"+t.path:e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path,o.path=dn(o.path)),o.query=t.query):(o.path=e.path,t.query!==void 0?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function Ym(e,t,n){let r=Rl(e,n),o=Rl(t,n);return r!==void 0&&o!==void 0&&r.toLowerCase()===o.toLowerCase()}function ct(e,t){let n={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},r=Object.assign({},t),o=[],s=Cl(r.scheme||n.scheme);s&&s.serialize&&s.serialize(n,r),n.path!==void 0&&(r.skipEscape?n.path=Um(n.path):(n.path=zm(n.path),n.scheme!==void 0&&(n.path=n.path.split("%3A").join(":")))),r.reference!=="suffix"&&n.scheme&&o.push(n.scheme,":");let i=Fm(n);if(i!==void 0&&(r.reference!=="suffix"&&o.push("//"),o.push(i),n.path&&n.path[0]!=="/"&&o.push("/")),n.path!==void 0){let a=n.path;!r.absolutePath&&(!s||!s.absolutePath)&&(a=dn(a)),i===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),o.push(a)}return n.query!==void 0&&o.push("?",n.query),n.fragment!==void 0&&o.push("#",n.fragment),o.join("")}var Xm=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Qm(e,t){if(t[2]!==void 0&&e.path&&e.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof e.port=="number"&&(e.port<0||e.port>65535))return"URI port is malformed."}function El(e,t){let n=Object.assign({},t),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,s=!1;n.reference==="suffix"&&(n.scheme?e=n.scheme+":"+e:e="//"+e);let i=e.match(Xm);if(i){r.scheme=i[1],r.userinfo=i[3],r.host=i[4],r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=i[7],r.fragment=i[8],isNaN(r.port)&&(r.port=i[5]);let a=Qm(r,i);if(a!==void 0&&(r.error=r.error||a,o=!0),r.host)if(Km(r.host)===!1){let u=Dm(r.host);r.host=u.host.toLowerCase(),s=u.isIPV6}else s=!0;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",n.reference&&n.reference!=="suffix"&&n.reference!==r.reference&&(r.error=r.error||"URI is not a "+n.reference+" reference.");let l=Cl(n.scheme||r.scheme);if(!n.unicodeSupport&&(!l||!l.unicodeSupport)&&r.host&&(n.domainHost||l&&l.domainHost)&&s===!1&&Gm(r.host))try{r.host=URL.domainToASCII(r.host.toLowerCase())}catch(c){r.error=r.error||"Host's domain name can not be converted to ASCII: "+c}if((!l||l&&!l.skipNormalize)&&(e.indexOf("%")!==-1&&(r.scheme!==void 0&&(r.scheme=unescape(r.scheme)),r.host!==void 0&&(r.host=Vm(unescape(r.host),s))),r.path&&(r.path=Bm(r.path)),r.fragment))try{r.fragment=encodeURI(decodeURIComponent(r.fragment))}catch{r.error=r.error||"URI malformed"}l&&l.parse&&l.parse(r,n)}else r.error=r.error||"URI can not be parsed.";return{parsed:r,malformedAuthorityOrPort:o}}function xt(e,t){return El(e,t).parsed}function Zm(e,t){return wl(e,t).normalized}function wl(e,t){let{parsed:n,malformedAuthorityOrPort:r}=El(e,t);return{normalized:r?e:ct(n,t),malformedAuthorityOrPort:r}}function Rl(e,t){if(typeof e=="string"){let{normalized:n,malformedAuthorityOrPort:r}=wl(e,t);return r?void 0:n}if(typeof e=="object")return ct(e,t)}var os={SCHEMES:Hm,normalize:Wm,resolve:Jm,resolveComponent:kl,equal:Ym,serialize:ct,parse:xt};ir.exports=os;ir.exports.default=os;ir.exports.fastUri=os});var xl=b(ss=>{"use strict";Object.defineProperty(ss,"__esModule",{value:!0});var Sl=$l();Sl.code='require("ajv/dist/runtime/uri").default';ss.default=Sl});var jl=b(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.CodeGen=Y.Name=Y.nil=Y.stringify=Y.str=Y._=Y.KeywordCxt=void 0;var eh=ln();Object.defineProperty(Y,"KeywordCxt",{enumerable:!0,get:function(){return eh.KeywordCxt}});var At=S();Object.defineProperty(Y,"_",{enumerable:!0,get:function(){return At._}});Object.defineProperty(Y,"str",{enumerable:!0,get:function(){return At.str}});Object.defineProperty(Y,"stringify",{enumerable:!0,get:function(){return At.stringify}});Object.defineProperty(Y,"nil",{enumerable:!0,get:function(){return At.nil}});Object.defineProperty(Y,"Name",{enumerable:!0,get:function(){return At.Name}});Object.defineProperty(Y,"CodeGen",{enumerable:!0,get:function(){return At.CodeGen}});var th=nr(),Il=cn(),nh=Oo(),fn=un(),rh=S(),pn=on(),ar=rn(),as=M(),Al=ul(),oh=xl(),Nl=(e,t)=>new RegExp(e,t);Nl.code="new RegExp";var sh=["removeAdditional","useDefaults","coerceTypes"],ih=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ah={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."},lh={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Pl=200;function ch(e){var t,n,r,o,s,i,a,l,c,u,d,m,_,p,f,h,T,E,w,q,k,Q,W,we,$e;let ye=e.strict,Se=(t=e.code)===null||t===void 0?void 0:t.optimize,We=Se===!0||Se===void 0?1:Se||0,mt=(r=(n=e.code)===null||n===void 0?void 0:n.regExp)!==null&&r!==void 0?r:Nl,wn=(o=e.uriResolver)!==null&&o!==void 0?o:oh.default;return{strictSchema:(i=(s=e.strictSchema)!==null&&s!==void 0?s:ye)!==null&&i!==void 0?i:!0,strictNumbers:(l=(a=e.strictNumbers)!==null&&a!==void 0?a:ye)!==null&&l!==void 0?l:!0,strictTypes:(u=(c=e.strictTypes)!==null&&c!==void 0?c:ye)!==null&&u!==void 0?u:"log",strictTuples:(m=(d=e.strictTuples)!==null&&d!==void 0?d:ye)!==null&&m!==void 0?m:"log",strictRequired:(p=(_=e.strictRequired)!==null&&_!==void 0?_:ye)!==null&&p!==void 0?p:!1,code:e.code?{...e.code,optimize:We,regExp:mt}:{optimize:We,regExp:mt},loopRequired:(f=e.loopRequired)!==null&&f!==void 0?f:Pl,loopEnum:(h=e.loopEnum)!==null&&h!==void 0?h:Pl,meta:(T=e.meta)!==null&&T!==void 0?T:!0,messages:(E=e.messages)!==null&&E!==void 0?E:!0,inlineRefs:(w=e.inlineRefs)!==null&&w!==void 0?w:!0,schemaId:(q=e.schemaId)!==null&&q!==void 0?q:"$id",addUsedSchema:(k=e.addUsedSchema)!==null&&k!==void 0?k:!0,validateSchema:(Q=e.validateSchema)!==null&&Q!==void 0?Q:!0,validateFormats:(W=e.validateFormats)!==null&&W!==void 0?W:!0,unicodeRegExp:(we=e.unicodeRegExp)!==null&&we!==void 0?we:!0,int32range:($e=e.int32range)!==null&&$e!==void 0?$e:!0,uriResolver:wn}}var mn=class{constructor(t={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...ch(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new rh.ValueScope({scope:{},prefixes:ih,es5:n,lines:r}),this.logger=hh(t.logger);let o=t.validateFormats;t.validateFormats=!1,this.RULES=(0,nh.getRules)(),Ml.call(this,ah,t,"NOT SUPPORTED"),Ml.call(this,lh,t,"DEPRECATED","warn"),this._metaOpts=ph.call(this),t.formats&&dh.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&fh.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),uh.call(this),t.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,o=Al;r==="id"&&(o={...Al},o.id=o.$id,delete o.$id),n&&t&&this.addMetaSchema(o,o[r],!1)}defaultMeta(){let{meta:t,schemaId:n}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[n]||t:void 0}validate(t,n){let r;if(typeof t=="string"){if(r=this.getSchema(t),!r)throw new Error(`no schema with key or ref "${t}"`)}else r=this.compile(t);let o=r(n);return"$async"in r||(this.errors=r.errors),o}compile(t,n){let r=this._addSchema(t,n);return r.validate||this._compileSchemaEnv(r)}compileAsync(t,n){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return o.call(this,t,n);async function o(u,d){await s.call(this,u.$schema);let m=this._addSchema(u,d);return m.validate||i.call(this,m)}async function s(u){u&&!this.getSchema(u)&&await o.call(this,{$ref:u},!0)}async function i(u){try{return this._compileSchemaEnv(u)}catch(d){if(!(d instanceof Il.default))throw d;return a.call(this,d),await l.call(this,d.missingSchema),i.call(this,u)}}function a({missingSchema:u,missingRef:d}){if(this.refs[u])throw new Error(`AnySchema ${u} is loaded but ${d} cannot be resolved`)}async function l(u){let d=await c.call(this,u);this.refs[u]||await s.call(this,d.$schema),this.refs[u]||this.addSchema(d,u,n)}async function c(u){let d=this._loading[u];if(d)return d;try{return await(this._loading[u]=r(u))}finally{delete this._loading[u]}}}addSchema(t,n,r,o=this.opts.validateSchema){if(Array.isArray(t)){for(let i of t)this.addSchema(i,void 0,r,o);return this}let s;if(typeof t=="object"){let{schemaId:i}=this.opts;if(s=t[i],s!==void 0&&typeof s!="string")throw new Error(`schema ${i} must be string`)}return n=(0,pn.normalizeId)(n||s),this._checkUnique(n),this.schemas[n]=this._addSchema(t,r,n,o,!0),this}addMetaSchema(t,n,r=this.opts.validateSchema){return this.addSchema(t,n,!0,r),this}validateSchema(t,n){if(typeof t=="boolean")return!0;let r;if(r=t.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(r,t);if(!o&&n){let s="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(s);else throw new Error(s)}return o}getSchema(t){let n;for(;typeof(n=Ol.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,o=new fn.SchemaEnv({schema:{},schemaId:r});if(n=fn.resolveSchema.call(this,o,t),!n)return;this.refs[t]=n}return n.validate||this._compileSchemaEnv(n)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let n=Ol.call(this,t);return typeof n=="object"&&this._cache.delete(n.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let n=t;this._cache.delete(n);let r=t[this.opts.schemaId];return r&&(r=(0,pn.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let n of t)this.addKeyword(n);return this}addKeyword(t,n){let r;if(typeof t=="string")r=t,typeof n=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),n.keyword=r);else if(typeof t=="object"&&n===void 0){if(n=t,r=n.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(yh.call(this,r,n),!n)return(0,as.eachItem)(r,s=>is.call(this,s)),this;Th.call(this,n);let o={...n,type:(0,ar.getJSONTypes)(n.type),schemaType:(0,ar.getJSONTypes)(n.schemaType)};return(0,as.eachItem)(r,o.type.length===0?s=>is.call(this,s,o):s=>o.type.forEach(i=>is.call(this,s,o,i))),this}getKeyword(t){let n=this.RULES.all[t];return typeof n=="object"?n.definition:!!n}removeKeyword(t){let{RULES:n}=this;delete n.keywords[t],delete n.all[t];for(let r of n.rules){let o=r.rules.findIndex(s=>s.keyword===t);o>=0&&r.rules.splice(o,1)}return this}addFormat(t,n){return typeof n=="string"&&(n=new RegExp(n)),this.formats[t]=n,this}errorsText(t=this.errors,{separator:n=", ",dataVar:r="data"}={}){return!t||t.length===0?"No errors":t.map(o=>`${r}${o.instancePath} ${o.message}`).reduce((o,s)=>o+n+s)}$dataMetaSchema(t,n){let r=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let o of n){let s=o.split("/").slice(1),i=t;for(let a of s)i=i[a];for(let a in r){let l=r[a];if(typeof l!="object")continue;let{$data:c}=l.definition,u=i[a];c&&u&&(i[a]=Ll(u))}}return t}_removeAllSchemas(t,n){for(let r in t){let o=t[r];(!n||n.test(r))&&(typeof o=="string"?delete t[r]:o&&!o.meta&&(this._cache.delete(o.schema),delete t[r]))}}_addSchema(t,n,r,o=this.opts.validateSchema,s=this.opts.addUsedSchema){let i,{schemaId:a}=this.opts;if(typeof t=="object")i=t[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let l=this._cache.get(t);if(l!==void 0)return l;r=(0,pn.normalizeId)(i||r);let c=pn.getSchemaRefs.call(this,t,r);return l=new fn.SchemaEnv({schema:t,schemaId:a,meta:n,baseId:r,localRefs:c}),this._cache.set(l.schema,l),s&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=l),o&&this.validateSchema(t,!0),l}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):fn.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let n=this.opts;this.opts=this._metaOpts;try{fn.compileSchema.call(this,t)}finally{this.opts=n}}};mn.ValidationError=th.default;mn.MissingRefError=Il.default;Y.default=mn;function Ml(e,t,n,r="error"){for(let o in e){let s=o;s in t&&this.logger[r](`${n}: option ${o}. ${e[s]}`)}}function Ol(e){return e=(0,pn.normalizeId)(e),this.schemas[e]||this.refs[e]}function uh(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function dh(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function fh(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}function ph(){let e={...this.opts};for(let t of sh)delete e[t];return e}var mh={log(){},warn(){},error(){}};function hh(e){if(e===!1)return mh;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var gh=/^[a-z_$][a-z0-9_$:-]*$/i;function yh(e,t){let{RULES:n}=this;if((0,as.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!gh.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function is(e,t,n){var r;let o=t?.post;if(n&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:s}=this,i=o?s.post:s.rules.find(({type:l})=>l===n);if(i||(i={type:n,rules:[]},s.rules.push(i)),s.keywords[e]=!0,!t)return;let a={keyword:e,definition:{...t,type:(0,ar.getJSONTypes)(t.type),schemaType:(0,ar.getJSONTypes)(t.schemaType)}};t.before?_h.call(this,i,a,t.before):i.rules.push(a),s.all[e]=a,(r=t.implements)===null||r===void 0||r.forEach(l=>this.addKeyword(l))}function _h(e,t,n){let r=e.rules.findIndex(o=>o.keyword===n);r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function Th(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Ll(t)),e.validateSchema=this.compile(t,!0))}var bh={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Ll(e){return{anyOf:[e,bh]}}});var ql=b(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});var vh={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};ls.default=vh});var ur=b(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.callRef=ut.getValidate=void 0;var Rh=cn(),Dl=me(),le=S(),Pt=pe(),Fl=un(),lr=M(),Ch={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:n,it:r}=e,{baseId:o,schemaEnv:s,validateName:i,opts:a,self:l}=r,{root:c}=s;if((n==="#"||n==="#/")&&o===c.baseId)return d();let u=Fl.resolveRef.call(l,c,o,n);if(u===void 0)throw new Rh.default(r.opts.uriResolver,o,n);if(u instanceof Fl.SchemaEnv)return m(u);return _(u);function d(){if(s===c)return cr(e,i,s,s.$async);let p=t.scopeValue("root",{ref:c});return cr(e,(0,le._)`${p}.validate`,c,c.$async)}function m(p){let f=Ul(e,p);cr(e,f,p,p.$async)}function _(p){let f=t.scopeValue("schema",a.code.source===!0?{ref:p,code:(0,le.stringify)(p)}:{ref:p}),h=t.name("valid"),T=e.subschema({schema:p,dataTypes:[],schemaPath:le.nil,topSchemaRef:f,errSchemaPath:n},h);e.mergeEvaluated(T),e.ok(h)}}};function Ul(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,le._)`${n.scopeValue("wrapper",{ref:t})}.validate`}ut.getValidate=Ul;function cr(e,t,n,r){let{gen:o,it:s}=e,{allErrors:i,schemaEnv:a,opts:l}=s,c=l.passContext?Pt.default.this:le.nil;r?u():d();function u(){if(!a.$async)throw new Error("async schema referenced by sync schema");let p=o.let("valid");o.try(()=>{o.code((0,le._)`await ${(0,Dl.callValidateCode)(e,t,c)}`),_(t),i||o.assign(p,!0)},f=>{o.if((0,le._)`!(${f} instanceof ${s.ValidationError})`,()=>o.throw(f)),m(f),i||o.assign(p,!1)}),e.ok(p)}function d(){e.result((0,Dl.callValidateCode)(e,t,c),()=>_(t),()=>m(t))}function m(p){let f=(0,le._)`${p}.errors`;o.assign(Pt.default.vErrors,(0,le._)`${Pt.default.vErrors} === null ? ${f} : ${Pt.default.vErrors}.concat(${f})`),o.assign(Pt.default.errors,(0,le._)`${Pt.default.vErrors}.length`)}function _(p){var f;if(!s.opts.unevaluated)return;let h=(f=n?.validate)===null||f===void 0?void 0:f.evaluated;if(s.props!==!0)if(h&&!h.dynamicProps)h.props!==void 0&&(s.props=lr.mergeEvaluated.props(o,h.props,s.props));else{let T=o.var("props",(0,le._)`${p}.evaluated.props`);s.props=lr.mergeEvaluated.props(o,T,s.props,le.Name)}if(s.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(s.items=lr.mergeEvaluated.items(o,h.items,s.items));else{let T=o.var("items",(0,le._)`${p}.evaluated.items`);s.items=lr.mergeEvaluated.items(o,T,s.items,le.Name)}}}ut.callRef=cr;ut.default=Ch});var Bl=b(cs=>{"use strict";Object.defineProperty(cs,"__esModule",{value:!0});var kh=ql(),Eh=ur(),wh=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",kh.default,Eh.default];cs.default=wh});var zl=b(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});var dr=S(),Ge=dr.operators,fr={maximum:{okStr:"<=",ok:Ge.LTE,fail:Ge.GT},minimum:{okStr:">=",ok:Ge.GTE,fail:Ge.LT},exclusiveMaximum:{okStr:"<",ok:Ge.LT,fail:Ge.GTE},exclusiveMinimum:{okStr:">",ok:Ge.GT,fail:Ge.LTE}},$h={message:({keyword:e,schemaCode:t})=>(0,dr.str)`must be ${fr[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,dr._)`{comparison: ${fr[e].okStr}, limit: ${t}}`},Sh={keyword:Object.keys(fr),type:"number",schemaType:"number",$data:!0,error:$h,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,dr._)`${n} ${fr[t].fail} ${r} || isNaN(${n})`)}};us.default=Sh});var Vl=b(ds=>{"use strict";Object.defineProperty(ds,"__esModule",{value:!0});var hn=S(),xh={message:({schemaCode:e})=>(0,hn.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,hn._)`{multipleOf: ${e}}`},Ah={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:xh,code(e){let{gen:t,data:n,schemaCode:r,it:o}=e,s=o.opts.multipleOfPrecision,i=t.let("res"),a=s?(0,hn._)`Math.abs(Math.round(${i}) - ${i}) > 1e-${s}`:(0,hn._)`${i} !== parseInt(${i})`;e.fail$data((0,hn._)`(${r} === 0 || (${i} = ${n}/${r}, ${a}))`)}};ds.default=Ah});var Gl=b(fs=>{"use strict";Object.defineProperty(fs,"__esModule",{value:!0});function Kl(e){let t=e.length,n=0,r=0,o;for(;r<t;)n++,o=e.charCodeAt(r++),o>=55296&&o<=56319&&r<t&&(o=e.charCodeAt(r),(o&64512)===56320&&r++);return n}fs.default=Kl;Kl.code='require("ajv/dist/runtime/ucs2length").default'});var Hl=b(ps=>{"use strict";Object.defineProperty(ps,"__esModule",{value:!0});var dt=S(),Ph=M(),Mh=Gl(),Oh={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,dt.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,dt._)`{limit: ${e}}`},Ih={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Oh,code(e){let{keyword:t,data:n,schemaCode:r,it:o}=e,s=t==="maxLength"?dt.operators.GT:dt.operators.LT,i=o.opts.unicode===!1?(0,dt._)`${n}.length`:(0,dt._)`${(0,Ph.useFunc)(e.gen,Mh.default)}(${n})`;e.fail$data((0,dt._)`${i} ${s} ${r}`)}};ps.default=Ih});var Wl=b(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});var Nh=me(),Lh=M(),Mt=S(),jh={message:({schemaCode:e})=>(0,Mt.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,Mt._)`{pattern: ${e}}`},qh={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:jh,code(e){let{gen:t,data:n,$data:r,schema:o,schemaCode:s,it:i}=e,a=i.opts.unicodeRegExp?"u":"";if(r){let{regExp:l}=i.opts.code,c=l.code==="new RegExp"?(0,Mt._)`new RegExp`:(0,Lh.useFunc)(t,l),u=t.let("valid");t.try(()=>t.assign(u,(0,Mt._)`${c}(${s}, ${a}).test(${n})`),()=>t.assign(u,!1)),e.fail$data((0,Mt._)`!${u}`)}else{let l=(0,Nh.usePattern)(e,o);e.fail$data((0,Mt._)`!${l}.test(${n})`)}}};ms.default=qh});var Jl=b(hs=>{"use strict";Object.defineProperty(hs,"__esModule",{value:!0});var gn=S(),Dh={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,gn.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,gn._)`{limit: ${e}}`},Fh={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Dh,code(e){let{keyword:t,data:n,schemaCode:r}=e,o=t==="maxProperties"?gn.operators.GT:gn.operators.LT;e.fail$data((0,gn._)`Object.keys(${n}).length ${o} ${r}`)}};hs.default=Fh});var Yl=b(gs=>{"use strict";Object.defineProperty(gs,"__esModule",{value:!0});var yn=me(),_n=S(),Uh=M(),Bh={message:({params:{missingProperty:e}})=>(0,_n.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,_n._)`{missingProperty: ${e}}`},zh={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Bh,code(e){let{gen:t,schema:n,schemaCode:r,data:o,$data:s,it:i}=e,{opts:a}=i;if(!s&&n.length===0)return;let l=n.length>=a.loopRequired;if(i.allErrors?c():u(),a.strictRequired){let _=e.parentSchema.properties,{definedProperties:p}=e.it;for(let f of n)if(_?.[f]===void 0&&!p.has(f)){let h=i.schemaEnv.baseId+i.errSchemaPath,T=`required property "${f}" is not defined at "${h}" (strictRequired)`;(0,Uh.checkStrictMode)(i,T,i.opts.strictRequired)}}function c(){if(l||s)e.block$data(_n.nil,d);else for(let _ of n)(0,yn.checkReportMissingProp)(e,_)}function u(){let _=t.let("missing");if(l||s){let p=t.let("valid",!0);e.block$data(p,()=>m(_,p)),e.ok(p)}else t.if((0,yn.checkMissingProp)(e,n,_)),(0,yn.reportMissingProp)(e,_),t.else()}function d(){t.forOf("prop",r,_=>{e.setParams({missingProperty:_}),t.if((0,yn.noPropertyInData)(t,o,_,a.ownProperties),()=>e.error())})}function m(_,p){e.setParams({missingProperty:_}),t.forOf(_,r,()=>{t.assign(p,(0,yn.propertyInData)(t,o,_,a.ownProperties)),t.if((0,_n.not)(p),()=>{e.error(),t.break()})},_n.nil)}}};gs.default=zh});var Xl=b(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});var Tn=S(),Vh={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,Tn.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,Tn._)`{limit: ${e}}`},Kh={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Vh,code(e){let{keyword:t,data:n,schemaCode:r}=e,o=t==="maxItems"?Tn.operators.GT:Tn.operators.LT;e.fail$data((0,Tn._)`${n}.length ${o} ${r}`)}};ys.default=Kh});var pr=b(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});var Ql=Uo();Ql.code='require("ajv/dist/runtime/equal").default';_s.default=Ql});var Zl=b(bs=>{"use strict";Object.defineProperty(bs,"__esModule",{value:!0});var Ts=rn(),X=S(),Gh=M(),Hh=pr(),Wh={message:({params:{i:e,j:t}})=>(0,X.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,X._)`{i: ${e}, j: ${t}}`},Jh={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Wh,code(e){let{gen:t,data:n,$data:r,schema:o,parentSchema:s,schemaCode:i,it:a}=e;if(!r&&!o)return;let l=t.let("valid"),c=s.items?(0,Ts.getSchemaTypes)(s.items):[];e.block$data(l,u,(0,X._)`${i} === false`),e.ok(l);function u(){let p=t.let("i",(0,X._)`${n}.length`),f=t.let("j");e.setParams({i:p,j:f}),t.assign(l,!0),t.if((0,X._)`${p} > 1`,()=>(d()?m:_)(p,f))}function d(){return c.length>0&&!c.some(p=>p==="object"||p==="array")}function m(p,f){let h=t.name("item"),T=(0,Ts.checkDataTypes)(c,h,a.opts.strictNumbers,Ts.DataType.Wrong),E=t.const("indices",(0,X._)`{}`);t.for((0,X._)`;${p}--;`,()=>{t.let(h,(0,X._)`${n}[${p}]`),t.if(T,(0,X._)`continue`),c.length>1&&t.if((0,X._)`typeof ${h} == "string"`,(0,X._)`${h} += "_"`),t.if((0,X._)`typeof ${E}[${h}] == "number"`,()=>{t.assign(f,(0,X._)`${E}[${h}]`),e.error(),t.assign(l,!1).break()}).code((0,X._)`${E}[${h}] = ${p}`)})}function _(p,f){let h=(0,Gh.useFunc)(t,Hh.default),T=t.name("outer");t.label(T).for((0,X._)`;${p}--;`,()=>t.for((0,X._)`${f} = ${p}; ${f}--;`,()=>t.if((0,X._)`${h}(${n}[${p}], ${n}[${f}])`,()=>{e.error(),t.assign(l,!1).break(T)})))}}};bs.default=Jh});var ec=b(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});var vs=S(),Yh=M(),Xh=pr(),Qh={message:"must be equal to constant",params:({schemaCode:e})=>(0,vs._)`{allowedValue: ${e}}`},Zh={keyword:"const",$data:!0,error:Qh,code(e){let{gen:t,data:n,$data:r,schemaCode:o,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,vs._)`!${(0,Yh.useFunc)(t,Xh.default)}(${n}, ${o})`):e.fail((0,vs._)`${s} !== ${n}`)}};Rs.default=Zh});var tc=b(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});var bn=S(),eg=M(),tg=pr(),ng={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,bn._)`{allowedValues: ${e}}`},rg={keyword:"enum",schemaType:"array",$data:!0,error:ng,code(e){let{gen:t,data:n,$data:r,schema:o,schemaCode:s,it:i}=e;if(!r&&o.length===0)throw new Error("enum must have non-empty array");let a=o.length>=i.opts.loopEnum,l,c=()=>l??(l=(0,eg.useFunc)(t,tg.default)),u;if(a||r)u=t.let("valid"),e.block$data(u,d);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let _=t.const("vSchema",s);u=(0,bn.or)(...o.map((p,f)=>m(_,f)))}e.pass(u);function d(){t.assign(u,!1),t.forOf("v",s,_=>t.if((0,bn._)`${c()}(${n}, ${_})`,()=>t.assign(u,!0).break()))}function m(_,p){let f=o[p];return typeof f=="object"&&f!==null?(0,bn._)`${c()}(${n}, ${_}[${p}])`:(0,bn._)`${n} === ${f}`}}};Cs.default=rg});var nc=b(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});var og=zl(),sg=Vl(),ig=Hl(),ag=Wl(),lg=Jl(),cg=Yl(),ug=Xl(),dg=Zl(),fg=ec(),pg=tc(),mg=[og.default,sg.default,ig.default,ag.default,lg.default,cg.default,ug.default,dg.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},fg.default,pg.default];ks.default=mg});var ws=b(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});vn.validateAdditionalItems=void 0;var ft=S(),Es=M(),hg={message:({params:{len:e}})=>(0,ft.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,ft._)`{limit: ${e}}`},gg={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:hg,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,Es.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}rc(e,r)}};function rc(e,t){let{gen:n,schema:r,data:o,keyword:s,it:i}=e;i.items=!0;let a=n.const("len",(0,ft._)`${o}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,ft._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,Es.alwaysValidSchema)(i,r)){let c=n.var("valid",(0,ft._)`${a} <= ${t.length}`);n.if((0,ft.not)(c),()=>l(c)),e.ok(c)}function l(c){n.forRange("i",t.length,a,u=>{e.subschema({keyword:s,dataProp:u,dataPropType:Es.Type.Num},c),i.allErrors||n.if((0,ft.not)(c),()=>n.break())})}}vn.validateAdditionalItems=rc;vn.default=gg});var $s=b(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.validateTuple=void 0;var oc=S(),mr=M(),yg=me(),_g={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return sc(e,"additionalItems",t);n.items=!0,!(0,mr.alwaysValidSchema)(n,t)&&e.ok((0,yg.validateArray)(e))}};function sc(e,t,n=e.schema){let{gen:r,parentSchema:o,data:s,keyword:i,it:a}=e;u(o),a.opts.unevaluated&&n.length&&a.items!==!0&&(a.items=mr.mergeEvaluated.items(r,n.length,a.items));let l=r.name("valid"),c=r.const("len",(0,oc._)`${s}.length`);n.forEach((d,m)=>{(0,mr.alwaysValidSchema)(a,d)||(r.if((0,oc._)`${c} > ${m}`,()=>e.subschema({keyword:i,schemaProp:m,dataProp:m},l)),e.ok(l))});function u(d){let{opts:m,errSchemaPath:_}=a,p=n.length,f=p===d.minItems&&(p===d.maxItems||d[t]===!1);if(m.strictTuples&&!f){let h=`"${i}" is ${p}-tuple, but minItems or maxItems/${t} are not specified or different at path "${_}"`;(0,mr.checkStrictMode)(a,h,m.strictTuples)}}}Rn.validateTuple=sc;Rn.default=_g});var ic=b(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});var Tg=$s(),bg={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Tg.validateTuple)(e,"items")};Ss.default=bg});var lc=b(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});var ac=S(),vg=M(),Rg=me(),Cg=ws(),kg={message:({params:{len:e}})=>(0,ac.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,ac._)`{limit: ${e}}`},Eg={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:kg,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:o}=n;r.items=!0,!(0,vg.alwaysValidSchema)(r,t)&&(o?(0,Cg.validateAdditionalItems)(e,o):e.ok((0,Rg.validateArray)(e)))}};xs.default=Eg});var cc=b(As=>{"use strict";Object.defineProperty(As,"__esModule",{value:!0});var ge=S(),hr=M(),wg={message:({params:{min:e,max:t}})=>t===void 0?(0,ge.str)`must contain at least ${e} valid item(s)`:(0,ge.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,ge._)`{minContains: ${e}}`:(0,ge._)`{minContains: ${e}, maxContains: ${t}}`},$g={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:wg,code(e){let{gen:t,schema:n,parentSchema:r,data:o,it:s}=e,i,a,{minContains:l,maxContains:c}=r;s.opts.next?(i=l===void 0?1:l,a=c):i=1;let u=t.const("len",(0,ge._)`${o}.length`);if(e.setParams({min:i,max:a}),a===void 0&&i===0){(0,hr.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&i>a){(0,hr.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,hr.alwaysValidSchema)(s,n)){let f=(0,ge._)`${u} >= ${i}`;a!==void 0&&(f=(0,ge._)`${f} && ${u} <= ${a}`),e.pass(f);return}s.items=!0;let d=t.name("valid");a===void 0&&i===1?_(d,()=>t.if(d,()=>t.break())):i===0?(t.let(d,!0),a!==void 0&&t.if((0,ge._)`${o}.length > 0`,m)):(t.let(d,!1),m()),e.result(d,()=>e.reset());function m(){let f=t.name("_valid"),h=t.let("count",0);_(f,()=>t.if(f,()=>p(h)))}function _(f,h){t.forRange("i",0,u,T=>{e.subschema({keyword:"contains",dataProp:T,dataPropType:hr.Type.Num,compositeRule:!0},f),h()})}function p(f){t.code((0,ge._)`${f}++`),a===void 0?t.if((0,ge._)`${f} >= ${i}`,()=>t.assign(d,!0).break()):(t.if((0,ge._)`${f} > ${a}`,()=>t.assign(d,!1).break()),i===1?t.assign(d,!0):t.if((0,ge._)`${f} >= ${i}`,()=>t.assign(d,!0)))}}};As.default=$g});var gr=b(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.validateSchemaDeps=Oe.validatePropertyDeps=Oe.error=void 0;var Ps=S(),Sg=M(),Cn=me();Oe.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,Ps.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,Ps._)`{property: ${e},
6
+ missingProperty: ${r},
7
+ depsCount: ${t},
8
+ deps: ${n}}`};var xg={keyword:"dependencies",type:"object",schemaType:"object",error:Oe.error,code(e){let[t,n]=Ag(e);uc(e,t),dc(e,n)}};function Ag({schema:e}){let t={},n={};for(let r in e){if(r==="__proto__")continue;let o=Array.isArray(e[r])?t:n;o[r]=e[r]}return[t,n]}function uc(e,t=e.schema){let{gen:n,data:r,it:o}=e;if(Object.keys(t).length===0)return;let s=n.let("missing");for(let i in t){let a=t[i];if(a.length===0)continue;let l=(0,Cn.propertyInData)(n,r,i,o.opts.ownProperties);e.setParams({property:i,depsCount:a.length,deps:a.join(", ")}),o.allErrors?n.if(l,()=>{for(let c of a)(0,Cn.checkReportMissingProp)(e,c)}):(n.if((0,Ps._)`${l} && (${(0,Cn.checkMissingProp)(e,a,s)})`),(0,Cn.reportMissingProp)(e,s),n.else())}}Oe.validatePropertyDeps=uc;function dc(e,t=e.schema){let{gen:n,data:r,keyword:o,it:s}=e,i=n.name("valid");for(let a in t)(0,Sg.alwaysValidSchema)(s,t[a])||(n.if((0,Cn.propertyInData)(n,r,a,s.opts.ownProperties),()=>{let l=e.subschema({keyword:o,schemaProp:a},i);e.mergeValidEvaluated(l,i)},()=>n.var(i,!0)),e.ok(i))}Oe.validateSchemaDeps=dc;Oe.default=xg});var pc=b(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});var fc=S(),Pg=M(),Mg={message:"property name must be valid",params:({params:e})=>(0,fc._)`{propertyName: ${e.propertyName}}`},Og={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Mg,code(e){let{gen:t,schema:n,data:r,it:o}=e;if((0,Pg.alwaysValidSchema)(o,n))return;let s=t.name("valid");t.forIn("key",r,i=>{e.setParams({propertyName:i}),e.subschema({keyword:"propertyNames",data:i,dataTypes:["string"],propertyName:i,compositeRule:!0},s),t.if((0,fc.not)(s),()=>{e.error(!0),o.allErrors||t.break()})}),e.ok(s)}};Ms.default=Og});var Is=b(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});var yr=me(),Ee=S(),Ig=pe(),_r=M(),Ng={message:"must NOT have additional properties",params:({params:e})=>(0,Ee._)`{additionalProperty: ${e.additionalProperty}}`},Lg={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Ng,code(e){let{gen:t,schema:n,parentSchema:r,data:o,errsCount:s,it:i}=e;if(!s)throw new Error("ajv implementation error");let{allErrors:a,opts:l}=i;if(i.props=!0,l.removeAdditional!=="all"&&(0,_r.alwaysValidSchema)(i,n))return;let c=(0,yr.allSchemaProperties)(r.properties),u=(0,yr.allSchemaProperties)(r.patternProperties);d(),e.ok((0,Ee._)`${s} === ${Ig.default.errors}`);function d(){t.forIn("key",o,h=>{!c.length&&!u.length?p(h):t.if(m(h),()=>p(h))})}function m(h){let T;if(c.length>8){let E=(0,_r.schemaRefOrVal)(i,r.properties,"properties");T=(0,yr.isOwnProperty)(t,E,h)}else c.length?T=(0,Ee.or)(...c.map(E=>(0,Ee._)`${h} === ${E}`)):T=Ee.nil;return u.length&&(T=(0,Ee.or)(T,...u.map(E=>(0,Ee._)`${(0,yr.usePattern)(e,E)}.test(${h})`))),(0,Ee.not)(T)}function _(h){t.code((0,Ee._)`delete ${o}[${h}]`)}function p(h){if(l.removeAdditional==="all"||l.removeAdditional&&n===!1){_(h);return}if(n===!1){e.setParams({additionalProperty:h}),e.error(),a||t.break();return}if(typeof n=="object"&&!(0,_r.alwaysValidSchema)(i,n)){let T=t.name("valid");l.removeAdditional==="failing"?(f(h,T,!1),t.if((0,Ee.not)(T),()=>{e.reset(),_(h)})):(f(h,T),a||t.if((0,Ee.not)(T),()=>t.break()))}}function f(h,T,E){let w={keyword:"additionalProperties",dataProp:h,dataPropType:_r.Type.Str};E===!1&&Object.assign(w,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(w,T)}}};Os.default=Lg});var gc=b(Ls=>{"use strict";Object.defineProperty(Ls,"__esModule",{value:!0});var jg=ln(),mc=me(),Ns=M(),hc=Is(),qg={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,parentSchema:r,data:o,it:s}=e;s.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&hc.default.code(new jg.KeywordCxt(s,hc.default,"additionalProperties"));let i=(0,mc.allSchemaProperties)(n);for(let d of i)s.definedProperties.add(d);s.opts.unevaluated&&i.length&&s.props!==!0&&(s.props=Ns.mergeEvaluated.props(t,(0,Ns.toHash)(i),s.props));let a=i.filter(d=>!(0,Ns.alwaysValidSchema)(s,n[d]));if(a.length===0)return;let l=t.name("valid");for(let d of a)c(d)?u(d):(t.if((0,mc.propertyInData)(t,o,d,s.opts.ownProperties)),u(d),s.allErrors||t.else().var(l,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(l);function c(d){return s.opts.useDefaults&&!s.compositeRule&&n[d].default!==void 0}function u(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},l)}}};Ls.default=qg});var bc=b(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});var yc=me(),Tr=S(),_c=M(),Tc=M(),Dg={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,data:r,parentSchema:o,it:s}=e,{opts:i}=s,a=(0,yc.allSchemaProperties)(n),l=a.filter(f=>(0,_c.alwaysValidSchema)(s,n[f]));if(a.length===0||l.length===a.length&&(!s.opts.unevaluated||s.props===!0))return;let c=i.strictSchema&&!i.allowMatchingProperties&&o.properties,u=t.name("valid");s.props!==!0&&!(s.props instanceof Tr.Name)&&(s.props=(0,Tc.evaluatedPropsToName)(t,s.props));let{props:d}=s;m();function m(){for(let f of a)c&&_(f),s.allErrors?p(f):(t.var(u,!0),p(f),t.if(u))}function _(f){for(let h in c)new RegExp(f).test(h)&&(0,_c.checkStrictMode)(s,`property ${h} matches pattern ${f} (use allowMatchingProperties)`)}function p(f){t.forIn("key",r,h=>{t.if((0,Tr._)`${(0,yc.usePattern)(e,f)}.test(${h})`,()=>{let T=l.includes(f);T||e.subschema({keyword:"patternProperties",schemaProp:f,dataProp:h,dataPropType:Tc.Type.Str},u),s.opts.unevaluated&&d!==!0?t.assign((0,Tr._)`${d}[${h}]`,!0):!T&&!s.allErrors&&t.if((0,Tr.not)(u),()=>t.break())})})}}};js.default=Dg});var vc=b(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});var Fg=M(),Ug={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,Fg.alwaysValidSchema)(r,n)){e.fail();return}let o=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};qs.default=Ug});var Rc=b(Ds=>{"use strict";Object.defineProperty(Ds,"__esModule",{value:!0});var Bg=me(),zg={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Bg.validateUnion,error:{message:"must match a schema in anyOf"}};Ds.default=zg});var Cc=b(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});var br=S(),Vg=M(),Kg={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,br._)`{passingSchemas: ${e.passing}}`},Gg={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Kg,code(e){let{gen:t,schema:n,parentSchema:r,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(o.opts.discriminator&&r.discriminator)return;let s=n,i=t.let("valid",!1),a=t.let("passing",null),l=t.name("_valid");e.setParams({passing:a}),t.block(c),e.result(i,()=>e.reset(),()=>e.error(!0));function c(){s.forEach((u,d)=>{let m;(0,Vg.alwaysValidSchema)(o,u)?t.var(l,!0):m=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},l),d>0&&t.if((0,br._)`${l} && ${i}`).assign(i,!1).assign(a,(0,br._)`[${a}, ${d}]`).else(),t.if(l,()=>{t.assign(i,!0),t.assign(a,d),m&&e.mergeEvaluated(m,br.Name)})})}}};Fs.default=Gg});var kc=b(Us=>{"use strict";Object.defineProperty(Us,"__esModule",{value:!0});var Hg=M(),Wg={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:n,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");let o=t.name("valid");n.forEach((s,i)=>{if((0,Hg.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:i},o);e.ok(o),e.mergeEvaluated(a)})}};Us.default=Wg});var $c=b(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});var vr=S(),wc=M(),Jg={message:({params:e})=>(0,vr.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,vr._)`{failingKeyword: ${e.ifClause}}`},Yg={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Jg,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,wc.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let o=Ec(r,"then"),s=Ec(r,"else");if(!o&&!s)return;let i=t.let("valid",!0),a=t.name("_valid");if(l(),e.reset(),o&&s){let u=t.let("ifClause");e.setParams({ifClause:u}),t.if(a,c("then",u),c("else",u))}else o?t.if(a,c("then")):t.if((0,vr.not)(a),c("else"));e.pass(i,()=>e.error(!0));function l(){let u=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);e.mergeEvaluated(u)}function c(u,d){return()=>{let m=e.subschema({keyword:u},a);t.assign(i,a),e.mergeValidEvaluated(m,i),d?t.assign(d,(0,vr._)`${u}`):e.setParams({ifClause:u})}}}};function Ec(e,t){let n=e.schema[t];return n!==void 0&&!(0,wc.alwaysValidSchema)(e,n)}Bs.default=Yg});var Sc=b(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});var Xg=M(),Qg={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,Xg.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};zs.default=Qg});var xc=b(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});var Zg=ws(),ey=ic(),ty=$s(),ny=lc(),ry=cc(),oy=gr(),sy=pc(),iy=Is(),ay=gc(),ly=bc(),cy=vc(),uy=Rc(),dy=Cc(),fy=kc(),py=$c(),my=Sc();function hy(e=!1){let t=[cy.default,uy.default,dy.default,fy.default,py.default,my.default,sy.default,iy.default,oy.default,ay.default,ly.default];return e?t.push(ey.default,ny.default):t.push(Zg.default,ty.default),t.push(ry.default),t}Vs.default=hy});var Gs=b(kn=>{"use strict";Object.defineProperty(kn,"__esModule",{value:!0});kn.dynamicAnchor=void 0;var Ks=S(),gy=pe(),Ac=un(),yy=ur(),_y={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Pc(e,e.schema)};function Pc(e,t){let{gen:n,it:r}=e;r.schemaEnv.root.dynamicAnchors[t]=!0;let o=(0,Ks._)`${gy.default.dynamicAnchors}${(0,Ks.getProperty)(t)}`,s=r.errSchemaPath==="#"?r.validateName:Ty(e);n.if((0,Ks._)`!${o}`,()=>n.assign(o,s))}kn.dynamicAnchor=Pc;function Ty(e){let{schemaEnv:t,schema:n,self:r}=e.it,{root:o,baseId:s,localRefs:i,meta:a}=t.root,{schemaId:l}=r.opts,c=new Ac.SchemaEnv({schema:n,schemaId:l,root:o,baseId:s,localRefs:i,meta:a});return Ac.compileSchema.call(r,c),(0,yy.getValidate)(e,c)}kn.default=_y});var Hs=b(En=>{"use strict";Object.defineProperty(En,"__esModule",{value:!0});En.dynamicRef=void 0;var Mc=S(),by=pe(),Oc=ur(),vy={keyword:"$dynamicRef",schemaType:"string",code:e=>Ic(e,e.schema)};function Ic(e,t){let{gen:n,keyword:r,it:o}=e;if(t[0]!=="#")throw new Error(`"${r}" only supports hash fragment reference`);let s=t.slice(1);if(o.allErrors)i();else{let l=n.let("valid",!1);i(l),e.ok(l)}function i(l){if(o.schemaEnv.root.dynamicAnchors[s]){let c=n.let("_v",(0,Mc._)`${by.default.dynamicAnchors}${(0,Mc.getProperty)(s)}`);n.if(c,a(c,l),a(o.validateName,l))}else a(o.validateName,l)()}function a(l,c){return c?()=>n.block(()=>{(0,Oc.callRef)(e,l),n.let(c,!0)}):()=>(0,Oc.callRef)(e,l)}}En.dynamicRef=Ic;En.default=vy});var Nc=b(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});var Ry=Gs(),Cy=M(),ky={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,Ry.dynamicAnchor)(e,""):(0,Cy.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Ws.default=ky});var Lc=b(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});var Ey=Hs(),wy={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,Ey.dynamicRef)(e,e.schema)};Js.default=wy});var jc=b(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var $y=Gs(),Sy=Hs(),xy=Nc(),Ay=Lc(),Py=[$y.default,Sy.default,xy.default,Ay.default];Ys.default=Py});var Dc=b(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});var qc=gr(),My={keyword:"dependentRequired",type:"object",schemaType:"object",error:qc.error,code:e=>(0,qc.validatePropertyDeps)(e)};Xs.default=My});var Fc=b(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});var Oy=gr(),Iy={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,Oy.validateSchemaDeps)(e)};Qs.default=Iy});var Uc=b(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var Ny=M(),Ly={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:n}){t.contains===void 0&&(0,Ny.checkStrictMode)(n,`"${e}" without "contains" is ignored`)}};Zs.default=Ly});var Bc=b(ei=>{"use strict";Object.defineProperty(ei,"__esModule",{value:!0});var jy=Dc(),qy=Fc(),Dy=Uc(),Fy=[jy.default,qy.default,Dy.default];ei.default=Fy});var Vc=b(ti=>{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});var He=S(),zc=M(),Uy=pe(),By={message:"must NOT have unevaluated properties",params:({params:e})=>(0,He._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},zy={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:By,code(e){let{gen:t,schema:n,data:r,errsCount:o,it:s}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:i,props:a}=s;a instanceof He.Name?t.if((0,He._)`${a} !== true`,()=>t.forIn("key",r,d=>t.if(c(a,d),()=>l(d)))):a!==!0&&t.forIn("key",r,d=>a===void 0?l(d):t.if(u(a,d),()=>l(d))),s.props=!0,e.ok((0,He._)`${o} === ${Uy.default.errors}`);function l(d){if(n===!1){e.setParams({unevaluatedProperty:d}),e.error(),i||t.break();return}if(!(0,zc.alwaysValidSchema)(s,n)){let m=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:d,dataPropType:zc.Type.Str},m),i||t.if((0,He.not)(m),()=>t.break())}}function c(d,m){return(0,He._)`!${d} || !${d}[${m}]`}function u(d,m){let _=[];for(let p in d)d[p]===!0&&_.push((0,He._)`${m} !== ${p}`);return(0,He.and)(..._)}}};ti.default=zy});var Gc=b(ni=>{"use strict";Object.defineProperty(ni,"__esModule",{value:!0});var pt=S(),Kc=M(),Vy={message:({params:{len:e}})=>(0,pt.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,pt._)`{limit: ${e}}`},Ky={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:Vy,code(e){let{gen:t,schema:n,data:r,it:o}=e,s=o.items||0;if(s===!0)return;let i=t.const("len",(0,pt._)`${r}.length`);if(n===!1)e.setParams({len:s}),e.fail((0,pt._)`${i} > ${s}`);else if(typeof n=="object"&&!(0,Kc.alwaysValidSchema)(o,n)){let l=t.var("valid",(0,pt._)`${i} <= ${s}`);t.if((0,pt.not)(l),()=>a(l,s)),e.ok(l)}o.items=!0;function a(l,c){t.forRange("i",c,i,u=>{e.subschema({keyword:"unevaluatedItems",dataProp:u,dataPropType:Kc.Type.Num},l),o.allErrors||t.if((0,pt.not)(l),()=>t.break())})}}};ni.default=Ky});var Hc=b(ri=>{"use strict";Object.defineProperty(ri,"__esModule",{value:!0});var Gy=Vc(),Hy=Gc(),Wy=[Gy.default,Hy.default];ri.default=Wy});var Wc=b(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});var G=S(),Jy={message:({schemaCode:e})=>(0,G.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,G._)`{format: ${e}}`},Yy={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Jy,code(e,t){let{gen:n,data:r,$data:o,schema:s,schemaCode:i,it:a}=e,{opts:l,errSchemaPath:c,schemaEnv:u,self:d}=a;if(!l.validateFormats)return;o?m():_();function m(){let p=n.scopeValue("formats",{ref:d.formats,code:l.code.formats}),f=n.const("fDef",(0,G._)`${p}[${i}]`),h=n.let("fType"),T=n.let("format");n.if((0,G._)`typeof ${f} == "object" && !(${f} instanceof RegExp)`,()=>n.assign(h,(0,G._)`${f}.type || "string"`).assign(T,(0,G._)`${f}.validate`),()=>n.assign(h,(0,G._)`"string"`).assign(T,f)),e.fail$data((0,G.or)(E(),w()));function E(){return l.strictSchema===!1?G.nil:(0,G._)`${i} && !${T}`}function w(){let q=u.$async?(0,G._)`(${f}.async ? await ${T}(${r}) : ${T}(${r}))`:(0,G._)`${T}(${r})`,k=(0,G._)`(typeof ${T} == "function" ? ${q} : ${T}.test(${r}))`;return(0,G._)`${T} && ${T} !== true && ${h} === ${t} && !${k}`}}function _(){let p=d.formats[s];if(!p){E();return}if(p===!0)return;let[f,h,T]=w(p);f===t&&e.pass(q());function E(){if(l.strictSchema===!1){d.logger.warn(k());return}throw new Error(k());function k(){return`unknown format "${s}" ignored in schema at path "${c}"`}}function w(k){let Q=k instanceof RegExp?(0,G.regexpCode)(k):l.code.formats?(0,G._)`${l.code.formats}${(0,G.getProperty)(s)}`:void 0,W=n.scopeValue("formats",{key:s,ref:k,code:Q});return typeof k=="object"&&!(k instanceof RegExp)?[k.type||"string",k.validate,(0,G._)`${W}.validate`]:["string",k,W]}function q(){if(typeof p=="object"&&!(p instanceof RegExp)&&p.async){if(!u.$async)throw new Error("async format in sync schema");return(0,G._)`await ${T}(${r})`}return typeof h=="function"?(0,G._)`${T}(${r})`:(0,G._)`${T}.test(${r})`}}}};oi.default=Yy});var Jc=b(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});var Xy=Wc(),Qy=[Xy.default];si.default=Qy});var Yc=b(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.contentVocabulary=Ot.metadataVocabulary=void 0;Ot.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Ot.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Qc=b(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});var Zy=Bl(),e_=nc(),t_=xc(),n_=jc(),r_=Bc(),o_=Hc(),s_=Jc(),Xc=Yc(),i_=[n_.default,Zy.default,e_.default,(0,t_.default)(!0),s_.default,Xc.metadataVocabulary,Xc.contentVocabulary,r_.default,o_.default];ii.default=i_});var eu=b(Rr=>{"use strict";Object.defineProperty(Rr,"__esModule",{value:!0});Rr.DiscrError=void 0;var Zc;(function(e){e.Tag="tag",e.Mapping="mapping"})(Zc||(Rr.DiscrError=Zc={}))});var nu=b(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});var It=S(),ai=eu(),tu=un(),a_=cn(),l_=M(),c_={message:({params:{discrError:e,tagName:t}})=>e===ai.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,It._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},u_={keyword:"discriminator",type:"object",schemaType:"object",error:c_,code(e){let{gen:t,data:n,schema:r,parentSchema:o,it:s}=e,{oneOf:i}=o;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=r.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!i)throw new Error("discriminator: requires oneOf keyword");let l=t.let("valid",!1),c=t.const("tag",(0,It._)`${n}${(0,It.getProperty)(a)}`);t.if((0,It._)`typeof ${c} == "string"`,()=>u(),()=>e.error(!1,{discrError:ai.DiscrError.Tag,tag:c,tagName:a})),e.ok(l);function u(){let _=m();t.if(!1);for(let p in _)t.elseIf((0,It._)`${c} === ${p}`),t.assign(l,d(_[p]));t.else(),e.error(!1,{discrError:ai.DiscrError.Mapping,tag:c,tagName:a}),t.endIf()}function d(_){let p=t.name("valid"),f=e.subschema({keyword:"oneOf",schemaProp:_},p);return e.mergeEvaluated(f,It.Name),p}function m(){var _;let p={},f=T(o),h=!0;for(let q=0;q<i.length;q++){let k=i[q];if(k?.$ref&&!(0,l_.schemaHasRulesButRef)(k,s.self.RULES)){let W=k.$ref;if(k=tu.resolveRef.call(s.self,s.schemaEnv.root,s.baseId,W),k instanceof tu.SchemaEnv&&(k=k.schema),k===void 0)throw new a_.default(s.opts.uriResolver,s.baseId,W)}let Q=(_=k?.properties)===null||_===void 0?void 0:_[a];if(typeof Q!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);h=h&&(f||T(k)),E(Q,q)}if(!h)throw new Error(`discriminator: "${a}" must be required`);return p;function T({required:q}){return Array.isArray(q)&&q.includes(a)}function E(q,k){if(q.const)w(q.const,k);else if(q.enum)for(let Q of q.enum)w(Q,k);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function w(q,k){if(typeof q!="string"||q in p)throw new Error(`discriminator: "${a}" values must be unique strings`);p[q]=k}}}};li.default=u_});var ru=b((v0,d_)=>{d_.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var ou=b((R0,f_)=>{f_.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}}});var su=b((C0,p_)=>{p_.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var iu=b((k0,m_)=>{m_.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}}});var au=b((E0,h_)=>{h_.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}}});var lu=b((w0,g_)=>{g_.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var cu=b(($0,y_)=>{y_.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:!0,deprecated:{type:"boolean",default:!1},readOnly:{type:"boolean",default:!1},writeOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0}}}});var uu=b((S0,__)=>{__.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}}}});var du=b(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});var T_=ru(),b_=ou(),v_=su(),R_=iu(),C_=au(),k_=lu(),E_=cu(),w_=uu(),$_=["/properties"];function S_(e){return[T_,b_,v_,R_,C_,t(this,k_),E_,t(this,w_)].forEach(n=>this.addMetaSchema(n,void 0,!1)),this;function t(n,r){return e?n.$dataMetaSchema(r,$_):r}}ci.default=S_});var fu=b((K,di)=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.MissingRefError=K.ValidationError=K.CodeGen=K.Name=K.nil=K.stringify=K.str=K._=K.KeywordCxt=K.Ajv2020=void 0;var x_=jl(),A_=Qc(),P_=nu(),M_=du(),ui="https://json-schema.org/draft/2020-12/schema",Nt=class extends x_.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),A_.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(P_.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:n}=this.opts;n&&(M_.default.call(this,t),this.refs["http://json-schema.org/schema"]=ui)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(ui)?ui:void 0)}};K.Ajv2020=Nt;di.exports=K=Nt;di.exports.Ajv2020=Nt;Object.defineProperty(K,"__esModule",{value:!0});K.default=Nt;var O_=ln();Object.defineProperty(K,"KeywordCxt",{enumerable:!0,get:function(){return O_.KeywordCxt}});var Lt=S();Object.defineProperty(K,"_",{enumerable:!0,get:function(){return Lt._}});Object.defineProperty(K,"str",{enumerable:!0,get:function(){return Lt.str}});Object.defineProperty(K,"stringify",{enumerable:!0,get:function(){return Lt.stringify}});Object.defineProperty(K,"nil",{enumerable:!0,get:function(){return Lt.nil}});Object.defineProperty(K,"Name",{enumerable:!0,get:function(){return Lt.Name}});Object.defineProperty(K,"CodeGen",{enumerable:!0,get:function(){return Lt.CodeGen}});var I_=nr();Object.defineProperty(K,"ValidationError",{enumerable:!0,get:function(){return I_.default}});var N_=cn();Object.defineProperty(K,"MissingRefError",{enumerable:!0,get:function(){return N_.default}})});function Ur(e,t,n,r){return{role:"assistant",content:t||null,tool_calls:e,...n&&n.length>0?{thinkingBlocks:n}:{},...r?{reasoning_content:r}:{}}}function zt(e,t){let n=t.ok?typeof t.payload=="string"?t.payload:JSON.stringify(t.payload??""):`Error: ${t.error??"Tool execution failed"}`;return{role:"tool",tool_call_id:e,content:n,...!t.ok&&{is_error:!0},...t.toolReferences?.length?{toolReferences:t.toolReferences}:{},...t.imageUrls?.length?{imageUrls:t.imageUrls}:{},...t.contentBlocks!==void 0?{contentBlocks:t.contentBlocks}:{},...t.structuredContent!==void 0?{structuredContent:t.structuredContent}:{},...t.mcpMeta!==void 0?{mcpMeta:t.mcpMeta}:{},...t.mcpIsError!==void 0?{mcpIsError:t.mcpIsError}:{}}}var Yu=/\b(?:daily|weekly|monthly)(?:\/(?:daily|weekly|monthly))* (?:usage )?limit(?:s)?(?: (?:exhausted|reached|exceeded))?\b/i,Qe={rateLimit:[/rate[_ ]limit|too many requests|429/,"model_cooldown","exceeded your current quota","resource has been exhausted","quota exceeded","resource_exhausted","usage limit",/\btpm\b/i,"tokens per minute","tokens per day"],overloaded:[/overloaded_error|"type"\s*:\s*"overloaded_error"/i,"overloaded",/service[_ ]unavailable.*(?:overload|capacity|high[_ ]demand)|(?:overload|capacity|high[_ ]demand).*service[_ ]unavailable/i,"high demand"],timeout:["timeout","timed out","service unavailable","deadline exceeded","context deadline exceeded","connection error","network error","network request failed","fetch failed","socket hang up",/\beconn(?:refused|reset|aborted)\b/i,/\benotfound\b/i,/\beai_again\b/i,/without sending (?:any )?chunks?/i,/\bstop reason:\s*(?:abort|error|network_error)\b/i,/\breason:\s*(?:abort|error|network_error)\b/i,/\bunhandled stop reason:\s*(?:abort|error|network_error)\b/i],billing:[/["']?(?:status|code)["']?\s*[:=]\s*402\b|\bhttp\s*402\b|\berror(?:\s+code)?\s*[:=]?\s*402\b|\b(?:got|returned|received)\s+(?:a\s+)?402\b|^\s*402\s+payment/i,"payment required","insufficient credits",/insufficient[_ ]quota/i,"credit balance","plans & billing","insufficient balance"],authPermanent:[/api[_ ]?key[_ ]?(?:revoked|invalid|deactivated|deleted)/i,"invalid_api_key","key has been disabled","key has been revoked","account has been deactivated",/could not (?:authenticate|validate).*(?:api[_ ]?key|credentials)/i,"permission_error","not allowed for this organization"],auth:[/invalid[_ ]?api[_ ]?key/,"incorrect api key","invalid token","authentication","re-authenticate","oauth token refresh failed","unauthorized","forbidden","access denied","insufficient permissions","insufficient permission",/missing scopes?:/i,"expired","token has expired",/\b401\b/,/\b403\b/,"no credentials found","no api key found"],format:["string should match pattern","tool_use.id","tool_use_id","messages.1.content.1.tool_use.id","invalid request format",/tool call id was.*must be/i]},Xu=/^(?:error[:\s-]+)?billing(?:\s+error)?(?:[:\s-]+|$)|^(?:error[:\s-]+)?(?:credit balance|insufficient credits?|payment required|http\s*402\b)/i,Qu=/["']?(?:status|code)["']?\s*[:=]\s*402\b|\bhttp\s*402\b|\berror(?:\s+code)?\s*[:=]?\s*402\b|^\s*402\s+payment/i,Zu=512,ed=/^(?:http\s*)?(\d{3})(?:\s+([\s\S]+))?$/i;var td=new Set([500,502,503,504,521,522,523,524,529]),nd=["insufficient credits","insufficient quota","credit balance","insufficient balance","plans & billing","add more credits","top up"],rd=["upgrade your plan","upgrade plan","current plan","subscription"],od=["daily","weekly","monthly"],sd=["try again","retry","temporary","cooldown"],id=["usage limit","rate limit","organization usage"],ad=["organization","workspace"],ld=["billing period","exceeded","reached","exhausted"],cd=/["']?(?:status|code)["']?\s*[:=]\s*402\b|\bhttp\s*402\b|\berror(?:\s+code)?\s*[:=]?\s*402\b|\b(?:got|returned|received)\s+(?:a\s+)?402\b|^\s*402\s+payment required\b/i,ud=/^(?:error[:\s-]+)?(?:(?:http\s*)?402(?:\s+payment required)?|payment required)(?:[:\s-]+|$)/i;function Ze(e,t){if(!e)return!1;let n=e.toLowerCase();return t.some(r=>r instanceof RegExp?r.test(n):n.includes(r))}function dd(e){return Ze(e,Qe.format)}function ji(e){return Ze(e,Qe.rateLimit)}function fd(e){return Ze(e,Qe.timeout)}function pd(e){return Yu.test(e)}function Br(e){let t=e.toLowerCase();return t?e.length>Zu?Qu.test(t):Ze(t,Qe.billing)?!0:Xu.test(e)?t.includes("upgrade")||t.includes("credits")||t.includes("payment")||t.includes("plan"):!1:!1}function qi(e){return Ze(e,Qe.authPermanent)}function md(e){return Ze(e,Qe.auth)}function Di(e){return Ze(e,Qe.overloaded)}function Xe(e,t){return t.some(n=>e.includes(n))}function hd(e){return Xe(e,nd)||Xe(e,rd)&&e.includes("limit")||e.includes("billing hard limit")||e.includes("hard limit reached")||e.includes("maximum allowed")&&e.includes("limit")}function gd(e){let t=Xe(e,od),n=e.includes("spend limit")||e.includes("spending limit"),r=Xe(e,ad);return Xe(e,sd)&&Xe(e,id)||t&&(e.includes("usage limit")||n)||t&&e.includes("limit")&&e.includes("reset")||r&&e.includes("limit")&&(n||Xe(e,ld))}function yd(e){return e.trim().toLowerCase().replace(ud,"").trim()}function Fi(e){let t=yd(e);return!t||hd(t)?"billing":ji(t)||gd(t)?"rate_limit":"billing"}function _d(e){return cd.test(e)?Fi(e):null}function Ui(e){let t=e.match(ed);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?{code:n,rest:(t[2]??"").trim()}:null}function Td(e){if(!e)return!1;let t=e.toLowerCase();return t.includes('"type":"api_error"')&&t.includes("internal server error")}function bd(e){let t=e.trim();if(!t)return!1;let n=Ui(t);return n?td.has(n.code):!1}function Bi(e,t){return typeof e!="number"||!Number.isFinite(e)?null:e===402?t?Fi(t):"billing":e===429?"rate_limit":e===401||e===403?t&&qi(t)?"auth_permanent":"auth":e===408?"timeout":e===503?t&&Di(t)?"overloaded":"timeout":e===502||e===504?"timeout":e===529?"overloaded":e===400?t&&Br(t)?"billing":"format":null}function vd(e){if(!e)return!1;let t=e.toLowerCase();return!!(t.includes("unknown model")||t.includes("model not found")||t.includes("model_not_found")||t.includes("not_found_error")||t.includes("does not exist")&&t.includes("model")||t.includes("invalid model")&&!t.includes("invalid model reference")||/models\/[^\s]+ is not found/i.test(e)||/\b404\b/.test(e)&&/not[-_ ]?found/i.test(e))}function Rd(e){if(!e)return!1;let t=e.toLowerCase();return t.includes("session not found")||t.includes("session does not exist")||t.includes("session expired")||t.includes("session invalid")||t.includes("conversation not found")||t.includes("conversation does not exist")||t.includes("conversation expired")||t.includes("conversation invalid")||t.includes("no such session")||t.includes("invalid session")||t.includes("session id not found")||t.includes("conversation id not found")}function zi(e){if(Rd(e))return"session_expired";if(vd(e))return"model_not_found";let t=_d(e);return t||(pd(e)?Br(e)?"billing":"rate_limit":ji(e)?"rate_limit":Di(e)?"overloaded":bd(e)?Ui(e.trim())?.code===529?"overloaded":"timeout":Td(e)?"timeout":dd(e)?"format":Br(e)?"billing":fd(e)?"timeout":qi(e)?"auth_permanent":md(e)?"auth":null)}var Cd=new Set(["RETRYABLE_TRANSIENT","RETRYABLE_DEGRADED","TOOL_EXECUTION_FAILED"]);function qn(e){return Cd.has(e)}var kd={timeout:"RETRYABLE_TRANSIENT",overloaded:"RETRYABLE_TRANSIENT",rate_limit:"RETRYABLE_DEGRADED",auth:"NON_RETRYABLE_AUTH",auth_permanent:"NON_RETRYABLE_AUTH",billing:"NON_RETRYABLE_QUOTA",format:"NON_RETRYABLE_CONTENT",model_not_found:"NON_RETRYABLE_CONTENT",session_expired:"NON_RETRYABLE_CONTENT",unknown:"RETRYABLE_TRANSIENT"};function bt(e,t){let n=Bi(e,t)??(t?zi(t):null);return n?kd[n]:typeof e=="number"&&e>=400&&e<500?"NON_RETRYABLE_CONTENT":"RETRYABLE_TRANSIENT"}var Vi=4;function Ki(e){return{role:"system",content:`[${e} earlier messages removed to fit the context budget]`}}var Vt=class{constructor(t){this.estimateTokens=t}estimateTokens;compress(t,n){let r=[],o=[];for(let d of t)d.role==="system"?r.push(d):o.push(d);let s=n;for(let d of r)s-=this.estimateTokens(d);let i;for(let d of o)if(d.role==="user"){i=d;break}if(i&&(s-=this.estimateTokens(i)),s<=0){let d=o.length-(i?1:0),m=i?[...r,i]:[...r];return d>0&&m.push(Ki(d)),{messages:m,droppedCount:d,strategy:"sliding-window"}}let a=[],l=0;for(let d=o.length-1;d>=0;d--){let m=o[d];if(m===i)continue;let _=this.estimateTokens(m);if(s-_<0&&l>=Vi)break;if(s-_<0&&l<Vi){a.unshift(m),l++;continue}s-=_,a.unshift(m),l++}let c=o.length-(a.length+(i&&!a.includes(i)?1:0)),u=[...r];return i&&!a.includes(i)&&u.push(i),c>0&&u.push(Ki(c)),u.push(...a),{messages:u,droppedCount:c,strategy:"sliding-window"}}};var Kt=class{constructor(t=8e3){this.maxToolResultChars=t}maxToolResultChars;compress(t,n){let r=0;return{messages:t.map(s=>s.role!=="tool"||typeof s.content!="string"||s.content.length<=this.maxToolResultChars?s:(r++,{...s,content:Ed(s.content,this.maxToolResultChars)})),droppedCount:r,strategy:"tool-result-trim"}}};function Ed(e,t){if(e.length<=t)return e;let n=e.slice(0,t);if(e.trimStart().startsWith("{")||e.trimStart().startsWith("[")){let s=Math.max(n.lastIndexOf("},"),n.lastIndexOf("],"),n.lastIndexOf(`}
9
+ `),n.lastIndexOf(`]
10
+ `));if(s>t*.5)return n.slice(0,s+1)+`
11
+ [...truncated: ${e.length-s-1} chars omitted]`}let o=n.lastIndexOf(`
12
+ `);return o>t*.7?n.slice(0,o)+`
13
+ [...truncated: ${e.length-o} chars omitted]`:n+`
14
+ [...truncated: ${e.length-t} chars omitted]`}function zr(...e){return{compress(t,n){let r=t,o=0,s=[];for(let i of e){let a=i.compress(r,n);r=a.messages,o+=a.droppedCount,a.droppedCount>0&&s.push(a.strategy)}return{messages:r,droppedCount:o,strategy:s.length>0?s.join("+"):"none"}}}}function Gi(e){let t=typeof e.content=="string"?e.content:e.content!=null?JSON.stringify(e.content):"";return Math.ceil(t.length/4)}var wd=new Set(["file_read","read","Read","bash","shell","Bash","grep","search","Grep","grep_search","glob","Glob","file_search","web_search","WebSearch","web_fetch","WebFetch","file_edit","edit","Edit","file_write","write","Write"]);function $d(e){let t=e;for(let n=0;n<3;n+=1){if(!t||typeof t!="object"||Array.isArray(t))return;let r=t,o=r.outcome??r.status;if(o==="committed"||o==="not-applied"||o==="indeterminate")return o;t=r.structuredContent}}var et=class{constructor(t=20,n=Gi){this.preserveRecentCount=t;this.estimateTokens=n}preserveRecentCount;estimateTokens;compress(t,n){if(t.length<=this.preserveRecentCount)return{messages:t,droppedCount:0,strategy:"micro-compact"};let r=new Map;for(let l of t){let c=l.tool_calls;if(Array.isArray(c))for(let u of c)u?.id&&u.function?.name&&r.set(u.id,u.function.name)}let o=t.length-this.preserveRecentCount,s=0,i=0;return{messages:t.map((l,c)=>{if(c>=o||l.role!=="tool"||typeof l.content!="string")return l;let u=l.name??r.get(l.tool_call_id??""),d=$d(l.structuredContent);if(!d&&(!u||!wd.has(u)))return l;let m=l.structuredContent?JSON.stringify(l.structuredContent).length:0;if(l.content.length<=200&&m<=200)return l;let _=this.estimateTokens(l);return i+=_,s++,{...l,content:`[result cleared \u2014 ${l.content.length+m} chars]`,...d?{structuredContent:{status:d,outcome:d}}:{}}}),droppedCount:s,strategy:"micro-compact",metrics:s>0?{tokensBefore:0,tokensAfter:0,compressionRatio:0,latencyMs:0,usedLlm:!1,cacheInvalidated:!1}:void 0}}};function Vr(e,t,n=Gi){if(t.size===0)return{messages:e,tokensFreed:0,removedCount:0};let r=0,o=0,s=[];for(let a of e){let l=a.tool_call_id??"";if(l&&t.has(l)){r+=n(a),o++,t.delete(l);continue}s.push(a)}let i=o>0?{role:"system",content:`[${o} messages removed by snip]`}:void 0;return{messages:s,tokensFreed:r,removedCount:o,boundaryMessage:i}}function Kr(){return{stages:[]}}function Gr(e,t,n){let r=n?.thresholdMessages??40;if(e.filter(a=>a.role!=="system").length<=r)return{messages:e,stagedCount:0};let s=Hi(e,t),i=Sd(s,t,r);if(i.length===0)return{messages:s,stagedCount:0};for(let a of i)t.stages.push(a);return s=Hi(e,t),{messages:s,stagedCount:i.length}}function Hr(e,t){let n=0;for(let r of t.stages)r.committed||(r.committed=!0,n++);return n===0?{messages:e,committed:0}:{messages:Wi(e,t),committed:n}}function Hi(e,t){return t.stages.filter(r=>r.committed).length===0?e:Wi(e,t)}function Wi(e,t){let n=t.stages.filter(o=>o.committed).sort((o,s)=>s.range[0]-o.range[0]),r=[...e];for(let o of n){let[s,i]=o.range;if(s>=r.length)continue;let a=Math.min(i,r.length),l={role:"system",content:o.summary};r.splice(s,a-s,l)}return r}function Sd(e,t,n){let r=Math.max(0,e.length-Math.floor(n/2)),o=[],s=new Set(t.stages.map(l=>`${l.range[0]}-${l.range[1]}`)),i=-1,a=0;for(let l=0;l<r;l++){let c=e[l];if(c.role==="tool"||c.role==="assistant"&&typeof c.content=="string"&&c.content==="")i<0&&(i=l),a++;else{if(a>=3){let d=`${i}-${i+a}`;s.has(d)||o.push({id:`collapse_${i}_${i+a}`,range:[i,i+a],summary:`[${a} tool results collapsed]`,committed:!1})}i=-1,a=0}}if(a>=3){let l=`${i}-${i+a}`;s.has(l)||o.push({id:`collapse_${i}_${i+a}`,range:[i,i+a],summary:`[${a} tool results collapsed]`,committed:!1})}return o}function Ji(e){return e.function&&typeof e.function=="object"&&typeof e.function.name=="string"?e.function.name.trim():typeof e.name=="string"?e.name.trim():""}function xd(e){return e==="enabled-eligible"||e==="installed-awaiting-approval"}function Ad(e){return new Map((e??[]).map(t=>[t.toolName,t]))}function Pd(e){if(!e.eligibility?.length)return[...e.tools];let t=Ad(e.eligibility);return e.tools.filter(n=>{let r=Ji(n);if(!r)return!1;let o=t.get(r);return!o||xd(o.status)})}function Md(e){let t=[],n=e.compatibility??{},r=e.toolChoice;if(e.thinkingEnabled&&n.requireAutoWhenThinking){let o=typeof r=="object"&&r&&!Array.isArray(r)?String(r.type??""):r;o&&o!=="auto"&&o!=="none"&&(t.push("tool_choice downgraded to auto because thinking mode requires auto/none compatibility."),r="auto")}if(r==="required"&&n.allowRequiredToolChoice===!1){let o=n.requiredFallback??"auto";t.push(`tool_choice=required is not supported by this provider; downgraded to ${o}.`),r=o}if(r&&typeof r=="object"&&!Array.isArray(r)&&r.type==="function"&&n.allowNamedToolChoice===!1){let o=n.namedFallback??"required";t.push(`named tool_choice is not supported by this provider; downgraded to ${o}.`),r=o}return{normalizedToolChoice:r,warnings:t}}function Wr(e){let t=Md({toolChoice:e.toolChoice,thinkingEnabled:e.thinkingEnabled,compatibility:e.compatibility}),n=t.normalizedToolChoice,r=[...t.warnings],o=Pd({tools:e.tools,eligibility:e.eligibility});if(!n||n==="auto")return{tools:o,normalizedToolChoice:n,warnings:r};if(n==="none")return{tools:[],normalizedToolChoice:"none",warnings:r};if(n==="required"){if(o.length===0)throw new Error("tool_choice=required but no tools were provided");return{tools:o,normalizedToolChoice:"required",warnings:r}}if(typeof n=="object"&&!Array.isArray(n)&&n.type==="function"){let s=n.function??void 0,i=typeof s?.name=="string"?s.name.trim():"";if(!i)throw new Error("tool_choice.function.name is required");let a=o.filter(l=>Ji(l)===i);if(a.length===0)throw new Error(`tool_choice requested unknown tool: ${i}`);return{tools:a,normalizedToolChoice:{type:"function",function:{name:i}},warnings:r}}return{tools:o,normalizedToolChoice:n,warnings:r}}var Od=["stop","aborted","timeout","cancelled","interrupted","error"],Id=["tool_calls","toolCalls","function_call","functionCall","raw_tool_calls","rawToolCalls"];function Yi(e){return e==null?[]:typeof e=="string"?e.length>0?[{type:"text",text:e}]:[]:Array.isArray(e)?e:[{type:"text",text:String(e)}]}function Nd(e,t){return{...e,...t,content:[...Yi(e.content),...Yi(t.content)]}}function Ld(e){let t=new Set;if(e.role!=="assistant"||!Array.isArray(e.tool_calls))return t;for(let n of e.tool_calls)typeof n.id=="string"&&n.id&&t.add(n.id);return t}function jd(e){let t=new Set,n=[];for(let r=0;r<e.length;r+=1){if(t.has(r))continue;let o=e[r];if(!o)continue;n.push(o);let s=Ld(o);if(s.size!==0)for(let i=r+1;i<e.length;i+=1){if(t.has(i))continue;let a=e[i];a?.role==="tool"&&typeof a.tool_call_id=="string"&&s.has(a.tool_call_id)&&(n.push(a),t.add(i))}}return n}function qd(e){if(!e||typeof e!="object")return!1;if(e.function&&typeof e.function=="object"){let t=e.function.name;if(typeof t=="string"&&t.length>0)return!0}return typeof e.name=="string"&&e.name.length>0}function Dd(e){return new Set((e??Od).map(t=>t.trim().toLowerCase()))}function Fd(e,t){return e?Dd(t).has(e.trim().toLowerCase()):!1}function Jr(e){if(!Array.isArray(e)||e.length===0)return[...e];let t=e.map(l=>{if(l.role==="assistant"&&Array.isArray(l.tool_calls)){let c=l.tool_calls.filter(u=>qd(u));return{...l,...c.length>0?{tool_calls:c}:{tool_calls:void 0}}}return{...l}}),n=new Set;for(let l of t)if(!(l.role!=="assistant"||!Array.isArray(l.tool_calls)))for(let c of l.tool_calls)typeof c.id=="string"&&c.id&&n.add(c.id);let r=t.filter(l=>l.role!=="tool"?!0:!!(l.tool_call_id&&n.has(l.tool_call_id))),o=new Set;for(let l of r)l.role==="tool"&&typeof l.tool_call_id=="string"&&l.tool_call_id&&o.add(l.tool_call_id);let s=[];for(let l of r){if(l.role==="assistant"&&Array.isArray(l.tool_calls)&&l.tool_calls.length>0){let c=l.tool_calls.filter(u=>typeof u.id=="string"&&o.has(u.id));if(c.length===0){let{tool_calls:u,...d}=l;d.content!=null&&d.content!==""&&s.push(d);continue}if(c.length<l.tool_calls.length){s.push({...l,tool_calls:c});continue}}s.push(l)}let i=jd(s),a=[];for(let l of i){let c=a.length>0?a[a.length-1]:void 0;if(l.role==="user"&&c?.role==="user"){a[a.length-1]=Nd(c,l);continue}a.push(l)}return a}function Yr(e,t){return Fd(t?.stopReason,t?.forcedStopReasons)?e.map(n=>{if(n.role!=="assistant")return{...n};let r={...n};for(let o of Id)delete r[o];return r}):[...e]}function Xr(e,t){let n=t?.placeholderToolResult??"Error: Tool loop interrupted before the tool result was replayed.",r=new Set;for(let s of e)s.role==="tool"&&typeof s.tool_call_id=="string"&&s.tool_call_id&&r.add(s.tool_call_id);let o=[];for(let s of e)if(o.push({...s}),!(s.role!=="assistant"||!Array.isArray(s.tool_calls)||s.tool_calls.length===0))for(let i of s.tool_calls)typeof i.id!="string"||!i.id||r.has(i.id)||(r.add(i.id),o.push({role:"tool",tool_call_id:i.id,content:n}));return o}function Qr(e,t){let n=Jr(e),r=Yr(n,t);return Xr(r,t)}function Ud(e){let t=new Set,n=new Set;for(let r of e){if(r.role==="assistant"&&Array.isArray(r.tool_calls))for(let o of r.tool_calls)typeof o.id=="string"&&o.id&&t.add(o.id);r.role==="tool"&&typeof r.tool_call_id=="string"&&r.tool_call_id&&n.add(r.tool_call_id)}return[...t].filter(r=>!n.has(r))}function Bd(e){let t=new Set;for(let n of e)n.role==="tool"&&typeof n.tool_call_id=="string"&&n.tool_call_id&&t.add(n.tool_call_id);return[...t]}function zd(e){return{round:e.round??0,maxRounds:e.maxRounds,pendingToolCallIds:[...e.pendingToolCallIds??[]],completedToolCallIds:[...e.completedToolCallIds??[]],lastStopReason:e.lastStopReason,replayMessages:[...e.replayMessages??[]]}}function Zr(e,t){return{round:e.round+1,maxRounds:e.maxRounds,pendingToolCallIds:[...t.pendingToolCallIds??e.pendingToolCallIds],completedToolCallIds:[...t.completedToolCallIds??e.completedToolCallIds],lastStopReason:t.lastStopReason??e.lastStopReason,replayMessages:[...t.replayMessages??e.replayMessages]}}function Dn(e,t){return{round:e.round,maxRounds:e.maxRounds,pendingToolCallIds:[],completedToolCallIds:[...t.completedToolCallIds??e.completedToolCallIds],lastStopReason:t.lastStopReason??e.lastStopReason,replayMessages:[...t.replayMessages??e.replayMessages]}}function Fn(e){let t=[],n=Jr(e.replayMessages);n.length!==e.replayMessages.length&&t.push({kind:"drop-orphan-tool-result",detail:"Removed orphan tool results or invalid assistant tool calls."});let r=Yr(n,e.options);r.some((s,i)=>s!==n[i])&&t.push({kind:"strip-forced-stop-tool-metadata",detail:"Removed assistant tool-call metadata after forced stop."});let o=Xr(r,e.options);return o.length>r.length&&t.push({kind:"inject-placeholder-tool-result",detail:"Injected placeholder tool result for pending tool calls."}),{state:zd({maxRounds:e.maxRounds,round:e.round,lastStopReason:e.lastStopReason,replayMessages:o,pendingToolCallIds:Ud(o),completedToolCallIds:Bd(o)}),recoveryActions:t}}var Vd=new Set(["main","sdk","agent","compact","hook","verification","side_question"]);function eo(e){return e?Vd.has(e):!0}function to(e){return e===429||e===529}function Un(e,t=500,n=32e3){let r=Math.min(t*Math.pow(2,e-1),n);return r+Math.floor(Math.random()*r*.25)}var RT={maxBackoffMs:300*1e3,resetCapMs:360*60*1e3,heartbeatIntervalMs:3e4};function Bn(){let e=process.env.QLOGICAGENT_PERSISTENT_RETRY;return e==="1"||e==="true"}var Gt=class extends Error{constructor(n,r){super(`Model fallback triggered: ${n} -> ${r}`);this.originalModel=n;this.fallbackModel=r;this.name="FallbackTriggeredError"}originalModel;fallbackModel};var Xi=Math.max(1e3,Number(process.env.TOOL_LOOP_TOOL_TIMEOUT_MS)||24e4),Qi=128e3,Zi=13e3,ea=16384,ta=65536,na=3;var ra=3e4,oa=3,tt=2;var kT=50*1024,ET=500*1024,wT=500*1024*1024,$T=50*1024*1024;function no(e){let t=Number.isFinite(e.totalPromptTokens)&&(e.totalPromptTokens??0)>0?Math.floor(e.totalPromptTokens):0,n=Number.isFinite(e.promptTokens)&&e.promptTokens>0?Math.floor(e.promptTokens):0,r=Number.isFinite(e.cacheReadTokens)&&(e.cacheReadTokens??0)>0?Math.floor(e.cacheReadTokens):0,o=Number.isFinite(e.cacheCreationTokens)&&(e.cacheCreationTokens??0)>0?Math.floor(e.cacheCreationTokens):0,s=r+o,i=s>n?n+s:n;return Math.max(t,i)}function ro(e){return{promptTokens:0,hasAttemptedReactiveCompact:!1,currentMaxOutputTokens:e.maxOutputTokens,consecutiveTruncations:0,aborted:e.abortSignal?.aborted??!1}}function oo(e,t){let n=t.contextWindowTokens-t.responseBufferTokens-e.currentMaxOutputTokens,r=n>0?e.promptTokens/n*100:100;return r>=85?{level:"warning",usagePercent:r,remainingTokens:Math.max(0,n-e.promptTokens)}:{level:"ok"}}function so(e,t,n){let r=e.message?.toLowerCase()??"",o=e.status??0;return o===413||r.includes("prompt_too_long")||r.includes("context_length_exceeded")?!t.hasAttemptedReactiveCompact&&n.reactiveCompactEnabled?{action:"reactive_compact"}:{action:"abort",reason:"prompt_too_long_unrecoverable"}:o>=500&&o<600?{action:"retry",reason:`server_error_${o}`}:o===429?{action:"retry",reason:"rate_limited"}:o===401||o===403?{action:"abort",reason:"auth_error"}:o===404?{action:"abort",reason:"model_not_found"}:{action:"abort",reason:r||"unknown_error"}}function io(e,t,n){if(!t.outputEscalationEnabled)return{shouldEscalate:!1,newMax:e.currentMaxOutputTokens};if(e.consecutiveTruncations>=3)return{shouldEscalate:!1,newMax:e.currentMaxOutputTokens};let r=Math.min(e.currentMaxOutputTokens*2,n);return r<=e.currentMaxOutputTokens?{shouldEscalate:!1,newMax:e.currentMaxOutputTokens}:{shouldEscalate:!0,newMax:r}}function ao(e,t){return e.aborted?!0:t.abortSignal?.aborted?(e.aborted=!0,!0):!1}function lo(){return{attemptedThisTurn:!1,lastCompactAt:null,toolsAtLastCompact:[]}}function Ht(e){return!e.attemptedThisTurn}function zn(e,t){let n=t.ok?typeof t.payload=="string"?t.payload:JSON.stringify(t.payload??""):`Error: ${t.error??"Tool execution failed"}`;return{role:"tool",tool_call_id:e,content:n,...!t.ok&&{is_error:!0},...t.toolReferences?.length?{toolReferences:t.toolReferences}:{},...t.imageUrls?.length?{imageUrls:t.imageUrls}:{},...t.contentBlocks?{contentBlocks:t.contentBlocks}:{},...t.structuredContent!==void 0?{structuredContent:t.structuredContent}:{},...t.mcpMeta!==void 0?{mcpMeta:t.mcpMeta}:{},...t.mcpIsError!==void 0?{mcpIsError:t.mcpIsError}:{}}}function co(e,t){let n=e.get(t.index)??{id:"",name:"",arguments:""};t.id&&(n.id=t.id),t.name&&(n.name=t.name),n.arguments+=t.arguments??"",e.set(t.index,n)}function sa(e){let t=e.indexOf("__");return t<=0||t+2>=e.length?e:e.slice(t+2)}function ia(e){let t=e.indexOf("__");if(!(t<=0||t+2>=e.length))return e.slice(0,t)}var uo="tool_schema_load";function aa(e){return e?.type!=="tool_schema_load"||!Array.isArray(e.requestedToolNames)?[]:[...new Set(e.requestedToolNames.filter(t=>typeof t=="string"&&t.trim().length>0))]}function H(e,t,n,r){e?.invoke(t,n).catch(o=>{let s=o instanceof Error?o.message:String(o);r.warn(`[hook:${t}] handler failed: ${s}`)})}function la(e){if(e.blocked)return"policy_blocked";let t=typeof e.details?.error=="string"?e.details.error:"",n=`${t} ${e.error??""}`;return t==="semantic_quality_failed"?"semantic_quality_failed":/MCP_START_FAILED/iu.test(n)?"mcp_start_failed":/mcp_not_connected|mcp_unavailable/iu.test(n)?"mcp_unavailable":/\bTIMEOUT\b|timed out/iu.test(n)?"timeout":"tool_execution_failed"}function ca(e,t){let n=typeof t.message?.content=="string"?t.message.content:"",r=n?n.slice(0,2e3):void 0,o=t.details,s=typeof o?.stdout=="string"?o.stdout.slice(0,8e3):void 0,i=typeof o?.stderr=="string"?o.stderr.slice(0,4e3):void 0,a=typeof o?.exitCode=="number"?o.exitCode:void 0;return{type:"tool_result",turnId:e,callId:t.callId,name:t.toolName,ok:t.ok,error:t.error,outputPreview:r,durationMs:t.durationMs,exitCode:a,stdout:s,stderr:i,details:o}}function ua(e,t){if(!t.ok)return[];let n=t.details;if(!n)return[];let r=[],o=Array.isArray(n.inlineImageUrls)?n.inlineImageUrls.filter(s=>typeof s=="string"&&s.trim().length>0):[];for(let s of o)r.push(Gd(e,"image",s,n));return r}function Gd(e,t,n,r){return{type:"media_result",turnId:e,mediaType:t,url:n,model:typeof r.model=="string"?r.model:void 0,provider:typeof r.provider=="string"?r.provider:void 0,durationSeconds:typeof r.durationMs=="number"?r.durationMs/1e3:void 0,...typeof r.mimeType=="string"?{mimeType:r.mimeType}:{},...typeof r.filename=="string"?{filename:r.filename}:{},...typeof r.size=="number"?{size:r.size}:{},taskId:typeof r.taskId=="string"?r.taskId:void 0}}var Hd=new Set(["write","edit","patch"]);function da(e){let{turnId:t,result:n,toolCalls:r}=e;if(!n.ok)return[];let o=r.find(a=>a.id===n.callId);if(!o)return[];let s=[],i=Wd(o.function.arguments);if(!i)return s;if(Hd.has(n.toolName)){let a=Jd(i);a&&s.push({type:"artifact",turnId:t,artifactId:`artifact-${n.callId}`,artifactType:Yd(a),title:a.split(/[\\/]/).pop()||a,filePath:a,language:Xd(a)})}return s}function Wd(e){try{return JSON.parse(e)}catch{return null}}function Jd(e){return typeof e.file_path=="string"?e.file_path:typeof e.filePath=="string"?e.filePath:typeof e.path=="string"?e.path:void 0}function Yd(e){let t=e.split(".").pop()?.toLowerCase()??"";return["png","jpg","jpeg","gif","webp","svg","bmp","ico"].includes(t)?"image":["md","txt","pdf","doc","docx","rtf","html"].includes(t)?"document":["mermaid","mmd","dot","puml","plantuml"].includes(t)?"diagram":["csv","tsv","xlsx","xls"].includes(t)?"table":["ts","tsx","js","jsx","py","rs","go","java","c","cpp","h","cs","rb","sh","sql","json","yaml","yml","toml","xml","css","scss","vue","svelte"].includes(t)?"code":"file"}function Xd(e){let t=e.split(".").pop()?.toLowerCase()??"";return{ts:"typescript",tsx:"typescriptreact",js:"javascript",jsx:"javascriptreact",py:"python",rs:"rust",go:"go",java:"java",c:"c",cpp:"cpp",h:"c",cs:"csharp",rb:"ruby",sh:"shellscript",sql:"sql",json:"json",yaml:"yaml",yml:"yaml",toml:"toml",xml:"xml",html:"html",css:"css",scss:"scss",vue:"vue",svelte:"svelte",md:"markdown"}[t]}var mu=Ju(fu(),1),L_=new mu.Ajv2020({allErrors:!0,allowUnionTypes:!0,strict:!1,validateFormats:!1}),pu=new WeakMap;function j_(e){let t=pu.get(e);if(t)return t;let n=L_.compile(e);return pu.set(e,n),n}function q_(e){return e.instancePath?`arguments${e.instancePath}`:e.keyword==="required"&&typeof e.params.missingProperty=="string"?`arguments/${e.params.missingProperty}`:"arguments"}function D_(e){return(e??[]).slice(0,4).map(t=>`${q_(t)} ${t.message??`violates ${t.keyword}`}`).join("; ")}function hu(e,t,n){let r;try{r=JSON.parse(n)}catch{return{ok:!1,error:`Tool "${e}" arguments must be valid JSON.`}}if(!r||typeof r!="object"||Array.isArray(r))return{ok:!1,error:`Tool "${e}" arguments must be a JSON object.`};if(!t)return{ok:!0};try{let o=j_(t);return o(r)?{ok:!0}:{ok:!1,error:`Tool "${e}" arguments do not match the offered schema: ${D_(o.errors)}.`}}catch(o){return{ok:!1,error:`Tool "${e}" has an invalid offered JSON Schema: ${o instanceof Error?o.message:String(o)}.`}}}function Cr(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.round(e):0}function kr(e){if(typeof e=="number"&&Number.isFinite(e)&&e>=1)return Math.round(e)}function gu(e){return e.filter(t=>t.role!=="assistant"?!0:!(typeof t.content=="string"&&t.content.trim()===""))}function yu(e){try{let t=JSON.parse(e),r=[t.description,t.command,t.query,t.url,t.path,t.file_path,t.filePath,t.pattern,t.model].find(s=>typeof s=="string"&&s.trim().length>0);if(typeof r=="string")return r.trim().slice(0,240);let o=Object.keys(t);return o.length>0?o.slice(0,5).join(" / "):void 0}catch{return}}function fi(e){let t=e.message.toLowerCase();return e.status===413||t.includes("prompt_too_long")||t.includes("context_length_exceeded")||t.includes("maximum context length")}function pi(e){return e==="length"||e==="max_tokens"}function mi(e){let t=e.message.toLowerCase();return(t.includes("image")||t.includes("media")||t.includes("file too large")||t.includes("payload too large"))&&(e.status===413||t.includes("too large")||t.includes("size"))}function _u(e){let t=e.headers;if(!t)return null;let n=t["retry-after"]??t["Retry-After"];if(!n)return null;let r=parseInt(n,10);return!isNaN(r)&&r>0?r*1e3:null}function Tu(e){if(e.status!==400)return null;let t=e.message.match(/input length and `max_tokens` exceed context limit: (\d+) \+ (\d+) > (\d+)/);if(!t?.[1]||!t?.[3])return null;let n=parseInt(t[1],10),r=parseInt(t[3],10);if(isNaN(n)||isNaN(r))return null;let o=r-n-1e3;return o>=3e3?o:null}async function*bu(e){let{messages:t,contentReplacementState:n,snipRemovedIds:r,collapseStore:o,guardConfig:s,runtimePorts:i,hooks:a,hookCtx:l,sessionId:c,currentModel:u,log:d,recovery:m,onAutocompact:_}=e,p;{let f=await i.enforceToolResultBudget(t,n,c);if(p=f.messages,f.newlyReplacedCount>0){let h=f.newlyPersistedBytes??0,T=h>0?` (~${Math.max(1,Math.round(h/1024))} KB)`:"";d.info(`tool-result-budget: persisted ${f.newlyReplacedCount} oversized tool results${T}`),yield m("tool_result_budget",`${f.newlyReplacedCount} persisted${T}`)}}{let f=Vr(p,r);if(p=f.messages,f.removedCount>0){if(f.boundaryMessage){let h=p,T=0;for(;T<h.length&&h[T]?.role==="system";)T++;p=[...h.slice(0,T),f.boundaryMessage,...h.slice(T)]}d.info(`snip: removed ${f.removedCount} messages, freed ~${f.tokensFreed} tokens`),yield m("snip",`${f.removedCount} messages`)}}{let h=new et().compress(p,0);h.droppedCount>0&&(p=h.messages,d.info(`microcompact: cleared ${h.droppedCount} old tool results`),yield m("microcompact",`${h.droppedCount} old tool results cleared`))}if(p=Gr(p,o).messages,s.contextWindowTokens>0){let f=s.contextWindowTokens*.75,h=i.getActiveContextCompressionEngine(),T;h?T=await h.compressAsync(p,f,{model:u,sessionId:c}):T=i.compressMessages(p,{budget:f,model:u}),T.droppedCount>0&&(p=T.messages,d.info(`autocompact: ${T.strategy}, dropped ${T.droppedCount}`),yield m("autocompact",`${T.strategy}: ${T.droppedCount} dropped`),yield{type:"lifecycle",turnId:l.turnId,kind:"context_compression",status:"completed",detail:`${T.strategy}: ${T.droppedCount} dropped`},_(),H(a,"context.after_compact",{...l,removedCount:T.droppedCount},d))}if(i.restoreRequiredContextMessages){let f=i.restoreRequiredContextMessages(t,p,n);p=f.messages,f.recoveredCount>0&&(d.info(`typed-context-budget: recovered ${f.recoveredCount} required skill context message(s)`),yield m("typed_context_recovery",`${f.recoveredCount} required skill context message(s)`))}return p=gu(p),p}async function*vu(e,t){let{state:n,guardState:r,fallbackModel:o,signal:s,querySource:i,turnId:a,log:l,emitRecovery:c}=t;if(e instanceof Gt&&o)return l.info(`model fallback triggered: ${e.originalModel} -> ${e.fallbackModel}`),yield c("model_fallback",`${e.originalModel} -> ${e.fallbackModel}`),{kind:"continue",patch:{currentModel:e.fallbackModel,consecutive529Errors:0,consecutiveApiRetries:0,transition:void 0}};let u=e instanceof Error?e.message:String(e),d=typeof e?.status=="number"?e.status:void 0;if(!d&&u&&(u.includes("ECONNRESET")||u.includes("EPIPE"))){let _=(n.consecutiveApiRetries??0)+1;return _>tt?(l.info(`stale connection retry limit reached (${tt}), aborting`),yield{type:"error",turnId:a,error:u,code:"RETRIES_EXHAUSTED",usage:n.totalUsage},{kind:"return"}):(l.info(`stale connection (${u.includes("ECONNRESET")?"ECONNRESET":"EPIPE"}): retrying`),yield c("stale_connection_retry",u.slice(0,80)),{kind:"continue",patch:{consecutiveApiRetries:_,transition:void 0}})}let m=Tu({status:d,message:u});if(m!==null)return l.info(`max_tokens overflow: adjusting to ${m}`),r.currentMaxOutputTokens=m,{kind:"continue",patch:{maxOutputTokensOverride:m,transition:void 0}};if(to(d)){n.consecutive529Errors++;let _=2,p=o&&n.currentModel!==o;if(n.consecutive529Errors>_&&!p&&!Bn())return l.info(`transient ${d} \xD7 ${n.consecutive529Errors}: hard limit reached, aborting`),yield{type:"error",turnId:a,error:`API unavailable after ${n.consecutive529Errors} consecutive ${d} errors`,code:"API_ERROR",usage:n.totalUsage},{kind:"return"};if(n.consecutive529Errors>=oa&&o&&n.currentModel!==o)return l.info(`529 \xD7 ${n.consecutive529Errors}: triggering fallback to ${o}`),yield c("model_fallback",`529 \xD7 ${n.consecutive529Errors}`),{kind:"continue",patch:{currentModel:o,consecutive529Errors:0,transition:void 0}};if(Bn()){let f=Un(n.consecutive529Errors);l.info(`persistent retry: waiting ${f}ms (attempt ${n.consecutive529Errors})`);let h=f;for(;h>0;){if(s?.aborted)return yield{type:"error",turnId:a,error:"Aborted during retry wait",code:"ABORTED",usage:n.totalUsage},{kind:"return"};yield{type:"heartbeat",turnId:a,message:`Retrying in ${Math.ceil(h/1e3)}s (${d})`};let T=Math.min(h,ra);await new Promise(E=>setTimeout(E,T)),h-=T}return{kind:"continue",patch:{transition:void 0}}}if(eo(i)){let h=_u({status:d,message:u})??Un(n.consecutive529Errors);return l.info(`transient ${d}: retry in ${h}ms`),yield c("retry",`${d} retry in ${h}ms`),await new Promise(T=>setTimeout(T,h)),{kind:"continue",patch:{transition:void 0}}}l.info(`background source ${i}: not retrying ${d}`)}return{kind:"streamError",streamError:{status:d,message:u}}}function Ru(e){return[...new Set(e.map(t=>t.function.name))].sort()}function U_(e){let t=new Set,n=[];for(let r of e){let o=`${r.name}\0${r.reason}`;t.has(o)||(t.add(o),n.push(r))}return n.sort((r,o)=>`${r.name}:${r.reason}`.localeCompare(`${o.name}:${o.reason}`))}function B_(e){let t=typeof e.blockReason=="string"?e.blockReason:void 0;if(e.blocked&&/confirmation timed out/i.test(t??""))return"confirmation-timeout";if(e.blocked)return"blocked-by-policy";let n=typeof e.details?.error=="string"?e.details.error:void 0;if(n==="write.target_exists")return"existing-file-update-tool-required";if(n==="invalid_arguments")return"invalid-arguments";if(n==="blocked_global_process_kill")return"global-process-kill-blocked";if(n==="blocked_by_guard")return"blocked-by-policy";if(n==="semantic_quality_failed")return"semantic-quality-failed"}function z_(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(!(n.role!=="user"||typeof n.content!="string"))return/[\u3400-\u9fff]/u.test(n.content)?"zh":"en"}return"en"}function Cu(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function V_(e,t){if(!e)return null;let n=Cu(e.function.parameters),r=Cu(n?.properties)??{},o=Array.isArray(n?.required)?n.required.filter(a=>typeof a=="string"&&a.trim().length>0):[],s=Y_(t);if(!s)return`Tool "${e.function.name}" arguments must be a JSON object.`;for(let a of o){let l=s[a];if(typeof l=="string"?l.trim().length===0:l==null)return`Tool "${e.function.name}" missing required field \`${a}\`. Use the offered tool schema exactly.`}if(n?.additionalProperties===!1){let a=new Set(Object.keys(r)),l=Object.keys(s).filter(c=>!a.has(c));if(l.length>0){let c=[...a].map(u=>`\`${u}\``).join(", ")||"none";return`Tool "${e.function.name}" has unexpected field${l.length===1?"":"s"} ${l.map(u=>`\`${u}\``).join(", ")}. Remove ${l.length===1?"it":"them"}; the only allowed fields are ${c}. Use the canonical tool schema exactly and do not retry the rejected arguments unchanged.`}}let i=hu(e.function.name,n??void 0,t);return i.ok?null:i.error??`Tool "${e.function.name}" arguments do not match the offered schema.`}function K_(e,t){let n=e?.meta?.identity;if(n?.schemaVersion===1&&n.wireName===t)return n;let r=e?.meta?.category,o=sa(t),s=ia(t),a=r==="orchestration"?"orchestration":o==="skill_search"||o==="skill_load"||o==="skill_resource_read"?"skill":s!==void 0||r==="mcp"?"mcp":"builtin",l="agent";return{schemaVersion:1,wireName:t,logicalName:o,family:a,owner:l,...s?{serverId:s}:{},capabilityId:`${l}:${s??"native"}:${o}`}}function ku(e){return{role:"system",content:`Background sub-agent result(s) became available while you continued the main task. The bounded structured results are included below; incorporate them when useful. Do not poll, cancel, or relaunch these tasks merely to acknowledge this update.
15
+ `+e.join(`
16
+ `)}}function G_(e,t){for(let s=e.length-1;s>=0;s--){let i=e[s];if(i?.role!=="assistant"||!Array.isArray(i.tool_calls))continue;let a=i.tool_calls.map(c=>c?.id).filter(c=>typeof c=="string"&&c.length>0);if(a.length!==t.length||!a.every((c,u)=>c===t[u]))continue;let l=e.slice(s+1);return l.length>0?l:void 0}let n=new Set(t);if(n.size!==t.length||n.size===0)return;let r=new Set,o=-1;for(let s=0;s<e.length;s++){let i=e[s];i?.role!=="tool"||typeof i.tool_call_id!="string"||n.has(i.tool_call_id)&&(r.add(i.tool_call_id),o<0&&(o=s))}if(!(r.size!==n.size||o<0))return e.slice(o)}function H_(e){return/previous[_\s-]*response[_\s-]*id.*(?:not found|unknown|expired|invalid)|(?:not found|unknown|expired|invalid).*previous[_\s-]*response[_\s-]*id/i.test(e)}var W_=18e4,Er=class extends Error{constructor(n){super(`LLM stream idle timeout after ${n}ms without a chunk.`);this.timeoutMs=n;this.name="LLMStreamIdleTimeoutError"}timeoutMs;code="LLM_STREAM_TIMEOUT"};async function*J_(e,t){if(!Number.isFinite(t)||t<=0){yield*e;return}let n=e[Symbol.asyncIterator]();try{for(;;){let r,o=await Promise.race([n.next(),new Promise(s=>{r=setTimeout(()=>s("timeout"),t)})]);if(r&&clearTimeout(r),o==="timeout")throw new Er(t);if(o.done)return;yield o.value}}finally{n.return?.().catch(()=>{})}}function Y_(e){try{let t=JSON.parse(e);return t&&typeof t=="object"&&!Array.isArray(t)?t:null}catch{return null}}async function*Eu(e,t,n,r){let{turnId:o,sessionId:s,messages:i,availableTools:a,tools:l,model:c,apiKey:u,temperature:d=0,hooks:m,signal:_}=e,p=(R,U)=>{R.push(U)},f={sessionId:s,turnId:o},h=e.maxTurns??0,T=e.querySource,E=a??l,w=e.runtimePorts.resolveToolEligibility(E,e.toolEligibilityContext),q=new Set(l.map(R=>R.function.name)),k=w.eligibleTools,Q=new Map(k.map(R=>[R.function.name,R])),W=w.eligibleTools.filter(R=>q.has(R.function.name)),we=[];for(let R of w.blockedTools)we.push({name:R.toolName,reason:"blocked-by-policy"}),yield{type:"tool_blocked",turnId:o,callId:"",name:R.toolName,reason:"blocked-by-policy"};let $e=Cr(e.maxRounds,i),ye=kr(e.maxToolCalls),Se={contextWindowTokens:e.contextWindowTokens??Qi,responseBufferTokens:Zi,maxOutputTokens:e.maxOutputTokens??ea,abortSignal:_,reactiveCompactEnabled:!0,outputEscalationEnabled:!0},We=new Set,mt=[],wn=new Map,Sr=0,xu=new Set,Au=0,$n=new Set(e.deferredToolNames??[]),ht=new Set;for(let R of e.loadedDeferredToolNames??[])$n.has(R)&&Q.has(R)?ht.add(R):e.loadedDeferredToolNames?.delete(R);let xr=()=>{let R=new Map(W.map(U=>[U.function.name,U]));for(let U of ht){let ce=Q.get(U);ce&&R.set(U,ce)}return[...R.values()]},hi=(R,U)=>U?R.filter(ce=>U.has(ce.function.name)):[...R],xe=xr(),Pu=()=>Ru(xe),gi=!1,jt=!1,gt,v={messages:[...i],maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,maxOutputTokensOverride:void 0,turnCount:1,transition:void 0,guardState:ro(Se),reactiveCompactState:lo(),toolLoopState:Fn({maxRounds:$e,replayMessages:[...i]}).state,finalText:"",totalUsage:{inputTokens:0,outputTokens:0},collapseStore:Kr(),currentModel:c,consecutive529Errors:0,consecutiveApiRetries:0,lastResponseId:void 0,snipRemovedIds:new Set,contentReplacementState:e.runtimePorts.createContentReplacementState(),recoveryTrace:new Map},Mu=4,Ou=4,yi=0,Ar=!1,_i=new Map,Pr,_e=(R,U)=>{let ce=`${R}:${U??""}`,be=(_i.get(ce)??0)+1;if(_i.set(ce,be),R==="autocompact"){let J=v.recoveryTrace.get("autocompact")??0;if(be>Mu||J>=Ou){let Ae=`Repeated context compression made no forward progress: ${U??"autocompact"}`;return Pr=Ae,v.recoveryTrace.set("compression_loop_guard",(v.recoveryTrace.get("compression_loop_guard")??0)+1),{type:"recovery",turnId:o,action:"compression_loop_guard",detail:Ae}}}return v.recoveryTrace.set(R,(v.recoveryTrace.get(R)??0)+1),{type:"recovery",turnId:o,action:R,detail:U}},Ti=()=>({type:"tool_use_summary",turnId:o,ledgerSchemaVersion:5,toolCalls:mt.map(R=>({...R})),availableToolNames:Ru(a??l),enabledToolNames:Pu(),toolCallNames:[...We].sort(),blockedToolCalls:U_(we)}),Iu=(R,U)=>({type:"end",turnId:o,content:R,turnStatus:U,taskOutcome:"unverified",usage:v.totalUsage,model:v.currentModel,...v.recoveryTrace.size>0?{recoveryTrace:Object.fromEntries(v.recoveryTrace)}:{}}),bi=z_(i);function*Sn(R,U="completed"){yield Ti(),yield Iu(R,U)}function*Te(R,U){yield Ti(),yield{type:"error",turnId:o,error:R,code:U,usage:v.totalUsage}}let Mr=(R,U)=>{if(U?.cleanStopWithFinalText&&v.finalText)return v.finalText;let ce=v.finalText,be=bi==="zh"?`\u26A0\uFE0F \u672C\u8F6E\u88AB\u5F15\u64CE\u9650\u5236\u63D0\u524D\u4E2D\u6B62,\u4E0B\u9762\u7684\u7ED3\u679C\u53EF\u80FD\u4E0D\u5B8C\u6574\u3002(${R})`:`\u26A0\uFE0F This turn was stopped early by an engine limit; the result below may be incomplete. (${R})`;return ce?`${be}
17
+
18
+ ${ce}`:be},yt=0,qt=0;function*Nu(R){yt<=qt||(yield{type:"text_rollback",turnId:o,keepLength:qt,reason:R},yt=qt)}for(xe=xr();;){yield*Nu("round_restart"),yi++,Ar=!1;let{messages:R,maxOutputTokensRecoveryCount:U,maxOutputTokensOverride:ce,turnCount:be,guardState:J,reactiveCompactState:Ae,collapseStore:Or}=v,{toolLoopState:ue}=v;if(e.refreshTools&&yi>1){let g=e.refreshTools(),y=new Set(g.map(L=>L.function.name)),I=hi(k.filter(L=>!$n.has(L.function.name)||ht.has(L.function.name)),y),F=I;F!==xe&&(xe=F,r.debug(`tools refreshed within initial turn snapshot: ${I.length}/${k.length} tools`))}if(e.drainPendingGuidance)for(let g of e.drainPendingGuidance()){let y=g.trim();y&&(R.push({role:"user",content:y}),r.info(`mid-turn guidance injected (${y.length} chars)`))}if(e.drainPendingTaskNotifications){let g=e.drainPendingTaskNotifications().filter(y=>y.trim());g.length>0&&(R.push(ku(g)),r.info(`background task result injected (${g.length} item(s))`))}if(ao(J,Se)){r.info(`turn aborted by guard at turn ${be}`),yield*Te("Turn aborted","ABORTED");return}let Je=yield*bu({messages:R,contentReplacementState:v.contentReplacementState,snipRemovedIds:v.snipRemovedIds,collapseStore:Or,guardState:J,guardConfig:Se,runtimePorts:e.runtimePorts,hooks:m,hookCtx:f,sessionId:s,currentModel:v.currentModel,log:r,recovery:(g,y)=>_e(g,y),onAutocompact:()=>{v.hasAttemptedReactiveCompact=!1}});if(Je!==R&&R.splice(0,R.length,...Je),Pr){yield*Sn(`${Pr}. Stop compressing the same context repeatedly; continue from the compacted transcript or report the incomplete state explicitly.`,"stopped");return}let Ir=oo(J,Se);Ir.level==="warning"&&r.info(`token budget warning: ${Ir.usagePercent}% used, ${Ir.remainingTokens} remaining`);let vi=e.toolChoice==="required"&&gi?"auto":e.toolChoice??"auto",xn=Wr({tools:xe,toolChoice:vi}),Ri=!jt&&v.lastResponseId&&gt?G_(Je,gt):void 0,An=Fn({maxRounds:$e,replayMessages:Je,lastStopReason:ue.lastStopReason,options:{stopReason:ue.lastStopReason}}),Lu=An.state.replayMessages,Pn=Ri?v.lastResponseId:void 0;v.lastResponseId&&!jt&&!Pn&&(yield _e("stateless_retry","local transcript changed; replaying canonical history"),v.lastResponseId=void 0,gt=void 0);let Ci=Ri??Lu;ue=An.state,An.recoveryActions.length>0&&r.debug(`tool loop recovery: ${An.recoveryActions.map(g=>g.detail??g.kind).join("; ")}`),r.debug(`turn ${be}, messages: ${Ci.length}`),H(m,"turn.before_inference",{...f,model:v.currentModel},r);let Dt=!1,ki=[],Ei=vi==="required",Nr=0,Ft="";function*ju(g){if(g){if(Ei){Ft+=g;return}Nr+=g.length,yt+=g.length,yield{type:"delta",turnId:o,text:g}}}function*qu(){if(!Ft)return;let g=Ft;Ft="",Nr+=g.length,yt+=g.length,yield{type:"delta",turnId:o,text:g}}let wi=new Map,Lr="stop",oe,Mn,D=null,On=null,Du=performance.now(),jr,$i=0,Si=0,xi=0,qr=0,In,Ye,Ai=!1,Nn=!1,Pi=!1,_t=[],Ut=[];try{let g=t.stream({model:v.currentModel,messages:Ci,...xn.tools.length>0?{tools:xn.tools,toolChoice:xn.normalizedToolChoice??"auto"}:{},temperature:d,maxTokens:(ce??J.currentMaxOutputTokens)||void 0,streamRequired:e.streamRequired,previousResponseId:Pn,reasoning:e.reasoning,store:!0,promptCacheKey:e.promptCacheKey,promptCacheRetention:e.promptCacheRetention,serviceTier:e.serviceTier,openaiBuiltinTools:e.openaiBuiltinTools,...ye!==void 0?{maxToolCalls:ye}:{},parallelToolCalls:e.parallelToolCalls,textVerbosity:e.textVerbosity},u,_);for await(let y of J_(g,e.llmStreamIdleTimeoutMs??W_))switch(jr===void 0&&y.type!=="usage"&&y.type!=="response_id"&&(jr=Math.max(0,Math.round(performance.now()-Du))),y.type){case"delta":$i+=1,Si+=y.text.length,Ye===void 0&&(Ye="text"),qr===0&&(Ai=!0),ki.push(y.text),yield*ju(y.text);break;case"tool_call_delta":qr+=1,Ye===void 0&&(Ye="tool_call"),Dt=!0,co(wi,y);break;case"reasoning_delta":xi+=1,Ye===void 0&&(Ye="reasoning"),_t.push(y.text),yield{type:"reasoning_delta",turnId:o,text:y.text};break;case"reasoning_block_complete":y.signature&&Ut.push({thinking:_t.join(""),signature:y.signature}),_t.length=0;break;case"usage":Mn=no(y),oe={inputTokens:y.promptTokens,outputTokens:y.completionTokens,reasoningTokens:y.reasoningTokens,cacheRead:y.cacheReadTokens,cacheWrite:y.cacheCreationTokens};break;case"response_id":In=y.id;break;case"annotations":yield{type:"annotations",turnId:o,annotations:y.annotations};break;case"builtin_tool_status":yield{type:"heartbeat",turnId:o,message:`${y.toolType}: ${y.event}`};break;case"error":On=y.message||"LLM provider returned an error chunk";break;case"done":Pi=!0,Lr=y.finishReason;break}if(On){H(m,"stop.failure",{sessionId:s,reason:"PROVIDER_STREAM_ERROR",error:On},r),yield*Te(On,"PROVIDER_STREAM_ERROR");return}if(Dt||H(m,"turn.after_inference",{...f,model:v.currentModel},r),e.postSamplingHooks&&e.postSamplingHooks.length>0){let y=v.currentModel;for(let I of e.postSamplingHooks)try{I({messages:[...Je],model:y,sessionId:s})}catch{}}}catch(g){if(g instanceof Er){H(m,"stop.failure",{sessionId:s,reason:g.code,error:g.message},r),yield*Te(g.message,g.code);return}let y=yield*vu(g,{state:v,guardState:J,fallbackModel:e.fallbackModel,signal:_,querySource:T,turnId:o,log:r,emitRecovery:_e});if(y.kind==="return")return;if(y.kind==="continue"){v={...v,...y.patch};continue}D=y.streamError}if(!D&&!Pi){let g="LLM stream closed before a terminal event; the response was likely truncated upstream.";H(m,"stop.failure",{sessionId:s,reason:"RETRYABLE_TRANSIENT",error:g},r),yield*Te(g,"RETRYABLE_TRANSIENT");return}if(D&&H(m,"turn.after_inference",{...f,model:v.currentModel,response:{error:D.message}},r),D){if(!jt&&Pn&&H_(D.message)){let g=(v.consecutiveApiRetries??0)+1;if(g<=tt){r.info("previous_response_id unavailable; retrying from the canonical local transcript"),yield _e("stateless_retry","previous_response_id unavailable; replaying canonical history"),jt=!0,v={...v,lastResponseId:void 0,consecutiveApiRetries:g,transition:void 0},gt=void 0;continue}}if(fi(D))Nn=!0,r.info(`withheld prompt_too_long error (status=${D.status})`);else if(mi(D))Nn=!0,r.info(`withheld media_size error (status=${D.status})`);else{let g=so({status:D.status??500,message:D.message},J,Se);if(g.action==="reactive_compact"&&Ht(Ae)&&(Ae.attemptedThisTurn=!0,J.hasAttemptedReactiveCompact=!0,yield _e("reactive_compact",`API ${D.status??500}: ${D.message}`)),g.action==="retry"){let I=(v.consecutiveApiRetries??0)+1;if(I>tt){r.info(`API retry limit reached (${tt}), aborting`);let F=bt(D.status,D.message);yield*Te(D.message,F);return}yield _e("retry",g.reason),v={...v,consecutiveApiRetries:I,transition:void 0};continue}let y=bt(D.status,D.message);H(m,"stop.failure",{sessionId:s,reason:y,error:D.message},r),yield*Te(D.message,y);return}}oe&&(v.totalUsage.inputTokens+=oe.inputTokens,v.totalUsage.outputTokens+=oe.outputTokens,oe.reasoningTokens&&(v.totalUsage.reasoningTokens=(v.totalUsage.reasoningTokens??0)+oe.reasoningTokens),oe.cacheRead&&(v.totalUsage.cacheRead=(v.totalUsage.cacheRead??0)+oe.cacheRead),oe.cacheWrite&&(v.totalUsage.cacheWrite=(v.totalUsage.cacheWrite??0)+oe.cacheWrite)),r.info(`[provider-context] ${JSON.stringify({event:"context_ledger_round",turnId:o,round:be,ttftMs:jr,inputTokens:oe?.inputTokens??0,outputTokens:oe?.outputTokens??0,cacheReadTokens:oe?.cacheRead??0,cacheWriteTokens:oe?.cacheWrite??0,totalPromptTokens:Mn??0,previousResponseIdUsed:Pn!==void 0,responseIdReceived:In!==void 0,toolDefinitionCount:xe.length,providerTextChunkCount:$i,providerTextChars:Si,providerReasoningChunkCount:xi,providerToolCallDeltaCount:qr,firstSemanticProviderEvent:Ye??"none",textBeforeFirstToolCall:Ai,suppressLiveText:Ei,liveEmittedTextChars:Nr,bufferedSuppressedTextChars:Ft.length})}`),Mn&&(J.promptTokens=Mn);let de=ki.join(""),Ie=[...wi.values()].map((g,y)=>({id:g.id||`tc_${o}_${be}_${y}`,type:"function",function:{name:g.name,arguments:g.arguments}}));if(!D&&Sr===0&&Ie.length===0&&!Dt&&de.trim()===""&&_t.join("").trim()===""&&Ut.length===0){let g="LLM returned an empty response before any tool use.";H(m,"stop.failure",{sessionId:s,reason:"EMPTY_MODEL_RESPONSE",error:g},r),yield*Te(g,"EMPTY_MODEL_RESPONSE");return}if(!D&&Sr>0&&Ie.length===0&&!Dt&&de.trim()===""&&!pi(Lr)){let g="LLM returned no user-visible response after tool use.";H(m,"stop.failure",{sessionId:s,reason:"EMPTY_MODEL_RESPONSE_AFTER_TOOL",error:g},r),yield*Te(g,"EMPTY_MODEL_RESPONSE_AFTER_TOOL");return}if(Ie.length===0&&!Dt){if(e.drainPendingTaskNotifications){let F=e.drainPendingTaskNotifications().filter(L=>L.trim());if(F.length>0){v={...v,messages:[...R,...de?[{role:"assistant",content:de}]:[],ku(F)]},r.info(`late background task result consumed at completion (${F.length} item(s)) \u2014 running another round`);continue}}if(e.drainPendingGuidance){let F=e.drainPendingGuidance().map(L=>L.trim()).filter(Boolean);if(F.length>0){v={...v,messages:[...R,...de?[{role:"assistant",content:de}]:[],...F.map(L=>({role:"user",content:L}))]},r.info(`late mid-turn guidance consumed at completion (${F.length} item(s)) \u2014 running another round`);continue}}if(de){let F=v.transition?.reason==="max_output_tokens_escalate"||v.transition?.reason==="max_output_tokens_recovery";v.finalText=F?`${v.finalText}${de}`:de}if(Nn&&D&&fi(D)){if(v.transition?.reason!=="collapse_drain_retry"){let F=Hr(Je,Or);if(F.committed>0){r.info(`collapse drain: committed ${F.committed} stages`),yield _e("collapse_drain",`${F.committed} stages committed`),v={...v,messages:F.messages,transition:{reason:"collapse_drain_retry",committed:F.committed}};continue}}if(Ht(Ae)){Ae.attemptedThisTurn=!0,J.hasAttemptedReactiveCompact=!0,r.info("withheld 413: reactive compact attempt"),yield _e("reactive_compact","withheld prompt_too_long"),v={...v,hasAttemptedReactiveCompact:!0,transition:{reason:"reactive_compact_retry"}};continue}r.info("withheld 413: recovery exhausted, surfacing error"),H(m,"stop.failure",{sessionId:s,reason:"prompt_too_long",error:D.message},r),yield*Te(D.message,"PROMPT_TOO_LONG");return}if(Nn&&D&&mi(D)){if(Ht(Ae)){Ae.attemptedThisTurn=!0,J.hasAttemptedReactiveCompact=!0,r.info("withheld media error: reactive compact strip-retry"),yield _e("reactive_compact","media error strip-retry"),v={...v,hasAttemptedReactiveCompact:!0,transition:{reason:"reactive_compact_retry"}};continue}r.info("withheld media error: recovery exhausted"),H(m,"stop.failure",{sessionId:s,reason:"media_error",error:D.message},r),yield*Te(D.message,"IMAGE_ERROR");return}if(pi(Lr)){J.consecutiveTruncations+=1;let F=e.modelMaxOutputTokens??ta,L=io(J,Se,F),Ne={role:"user",content:"Output token limit hit. Resume directly - no apology, no recap of what you were doing. Pick up mid-thought if that is where the cut happened. Break remaining work into smaller pieces."},De=[...Je,...de?[{role:"assistant",content:de}]:[],Ne];if(L.shouldEscalate&&ce===void 0){J.currentMaxOutputTokens=L.newMax,r.info(`max_output_tokens escalate: ${L.newMax} tokens`),yield _e("output_escalation",`${L.newMax} tokens`),v={...v,messages:De,maxOutputTokensOverride:L.newMax,transition:{reason:"max_output_tokens_escalate"}};continue}if(U<na){r.info(`max_output_tokens recovery #${U+1}`),yield _e("max_output_tokens_recovery",`attempt ${U+1}`),v={...v,messages:De,maxOutputTokensRecoveryCount:U+1,maxOutputTokensOverride:void 0,transition:{reason:"max_output_tokens_recovery",attempt:U+1}};continue}r.info("max_output_tokens recovery exhausted, completing with partial content"),Ar=!0}else J.consecutiveTruncations=0;ue=Dn(ue,{replayMessages:R,lastStopReason:"completed"});let g=!v.finalText,y=Mr("the model ended with an empty response after tool use",{cleanStopWithFinalText:!0}),I=Ar?bi==="zh"?"\u26A0\uFE0F \u8F93\u51FA\u7ECF\u591A\u6B21\u7EED\u5199\u540E\u4ECD\u88AB\u957F\u5EA6\u4E0A\u9650\u622A\u65AD,\u4EE5\u4E0B\u5185\u5BB9\u53EF\u80FD\u4E0D\u5B8C\u6574\u3002":"\u26A0\uFE0F Output was still cut off by the length limit after multiple continuation attempts; the content below may be incomplete.":null;yield*Sn(I&&y?`${I}
19
+
20
+ ${y}`:y,I||g?"stopped":"completed");return}let Fu=Ut.length===0&&_t.length>0?_t.join(""):void 0;qt=yt,p(R,Ur(Ie,de||void 0,Ut.length>0?Ut:void 0,Fu)),!jt&&In?(v.lastResponseId=In,gt=Ie.map(g=>g.id)):(v.lastResponseId=void 0,gt=void 0),ue=Zr(ue,{replayMessages:R,pendingToolCallIds:Ie.map(g=>g.id),completedToolCallIds:ue.completedToolCallIds,lastStopReason:"tool_calls"});let Bt=[],Uu=new Set(xe.map(g=>g.function.name)),Mi=[],Oi=[];for(let g of Ie)Uu.has(g.function.name)?Mi.push(g):Oi.push(g);for(let g of Oi){let I=$n.has(g.function.name)&&!ht.has(g.function.name)?`Tool "${g.function.name}" schema is not loaded. Call "${uo}" with that exact tool name before invoking it.`:`Tool "${g.function.name}" was not offered for this turn and will not be executed. Use only the tools listed in the current request.`;we.push({name:g.function.name,reason:"not-offered"}),p(R,zt(g.id,{ok:!1,error:I})),Bt.push(g.id),We.add(g.function.name),r.warn(`unoffered tool call suppressed: ${g.function.name}`)}let Dr=[],Ii=[];for(let g of Mi){let y=xn.tools.find(F=>F.function.name===g.function.name),I=V_(y,g.function.arguments);I?Ii.push({call:g,error:I}):Dr.push(g)}for(let g of Ii){let y=g.call;we.push({name:y.function.name,reason:"invalid-arguments"}),p(R,zt(y.id,{ok:!1,error:g.error})),Bt.push(y.id),We.add(y.function.name),r.info(`invalid tool arguments blocked: ${y.function.name}`)}let Ln=Dr.slice(0,ye);Ln.length>0&&(yield*qu(),qt=yt);let Ni=Dr.slice(Ln.length);if(Ni.length>0){let g=`This model round proposed more than ${ye} tool calls. Only the first ${ye} were executed; re-issue any still-needed calls in the next round.`;for(let y of Ni){we.push({name:y.function.name,reason:"per-round-tool-call-limit"});let I=zt(y.id,{ok:!1,error:g});p(R,I),Bt.push(y.id)}}for(let g of Ln){let y=g.function.arguments,I=xe.find(L=>L.function.name===g.function.name);if(I?.backfillObservableInput)try{let L=JSON.parse(g.function.arguments),Ne={...L};I.backfillObservableInput(Ne),Object.keys(Ne).some(Tt=>!(Tt in L))&&(y=JSON.stringify(Ne))}catch{}let F={sequence:mt.length,callId:g.id,name:g.function.name,identity:K_(I,g.function.name),status:"running",arguments:y};mt.push(F),wn.set(g.id,F),yield{type:"tool_call",turnId:o,callId:g.id,name:g.function.name,...I?.meta?.displayName?.fallback?.trim()?{displayName:I.meta.displayName.fallback.trim()}:{},arguments:y,inputSummary:yu(y)},xu.add(g.function.name),Au++}try{let g=e.runtimePorts.createStreamingToolExecutor({toolInvoker:n,hooks:m,sessionId:s,turnId:o,log:r,signal:_,maxConcurrentTools:e?.maxConcurrentTools,maxExecutionMs:Xi,executionTimeoutMsByTool:new Map(xe.flatMap(y=>{let I=y.meta?.executionTimeoutMs;return typeof I=="number"&&Number.isFinite(I)&&I>0?[[y.function.name,I]]:[]})),contextState:v.contentReplacementState});for(let y of Ln)g.addTool(y);for await(let y of g.getRemainingResults()){let I=wn.get(y.callId);I&&(I.status=y.blocked?"blocked":y.ok?"succeeded":"failed",!y.ok&&typeof y.error=="string"&&y.error.trim()&&(I.error=y.error),y.ok||(I.failureKind=la(y)));let F=B_(y);if(F&&we.push({name:y.toolName,reason:F}),y.blocked&&(yield{type:"tool_blocked",turnId:o,callId:y.callId,name:y.toolName,reason:y.blockReason??"blocked"}),y.ok&&y.toolName===uo){let L=aa(y.details),Ne=e.refreshTools?new Set(e.refreshTools().map(ve=>ve.function.name)):void 0,De=[],Tt=[],jn=[];for(let ve of L)!Q.get(ve)||Ne&&!Ne.has(ve)?jn.push(ve):!$n.has(ve)||ht.has(ve)?Tt.push(ve):(ht.add(ve),e.loadedDeferredToolNames?.add(ve),De.push(ve));xe=hi(xr(),Ne);let Bu=y.message;Bu.content=JSON.stringify({loaded:De,alreadyResident:Tt,unavailable:jn}),y.details={type:"tool_schema_load",requestedToolNames:L,loaded:De,alreadyResident:Tt,unavailable:jn},r.info({turnId:o,loaded:De,alreadyResident:Tt,unavailable:jn},"tool schemas materialized by Agent selection")}{let L=y.message;e.sanitizeToolResultMedia&&(Array.isArray(L.imageUrls)||Array.isArray(L.audioUrls)||Array.isArray(L.videoUrls))&&await e.sanitizeToolResultMedia(L)}p(R,y.message),Bt.push(y.callId),y.blocked||(We.add(y.toolName),Sr++),yield ca(o,y);for(let L of ua(o,y))yield L;for(let L of da({turnId:o,result:y,toolCalls:Ie}))yield L}}catch(g){let y=g instanceof Error?g.message:String(g);yield*Te(y,"TOOL_EXECUTION_ERROR");return}ue=Dn(ue,{replayMessages:R,completedToolCallIds:[...ue.completedToolCallIds,...Bt],lastStopReason:"tool_calls"}),e.toolChoice==="required"&&Ie.length>0&&(gi=!0);let Fr=be+1;if(h>0&&Fr>h){r.info(`max turns reached (${h}), completing`);let g=Mr(`tool loop max turns reached (${h})`);yield*Sn(g,"stopped");return}if($e>0&&Fr>$e){r.info(`tool loop budget exhausted (${$e} rounds), returning`);let g=Mr(`explicit maxRounds reached (${$e})`);yield*Sn(g,"stopped");return}v={messages:R,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,maxOutputTokensOverride:void 0,turnCount:Fr,transition:{reason:"next_turn"},guardState:J,reactiveCompactState:Ae,toolLoopState:ue,finalText:v.finalText,totalUsage:v.totalUsage,collapseStore:Or,currentModel:v.currentModel,consecutive529Errors:0,consecutiveApiRetries:0,lastResponseId:v.lastResponseId,snipRemovedIds:v.snipRemovedIds,contentReplacementState:v.contentReplacementState,recoveryTrace:v.recoveryTrace}}}function wu(e){return[...new Set((e??[]).map(t=>t.function.name))].sort()}var wr=class{transport;apiKey;toolInvoker;log;hooks;configuredMaxRounds;projectRoot;runtimePorts;constructor(t){this.transport=t.llmTransport,this.apiKey=t.apiKey,this.toolInvoker=t.toolInvoker,this.log=t.log,this.hooks=t.hooks,this.projectRoot=t.projectRoot,this.runtimePorts=t.runtimePorts,this.configuredMaxRounds=typeof t.maxRounds=="number"&&Number.isFinite(t.maxRounds)&&t.maxRounds>=1?Math.round(t.maxRounds):void 0}async*run(t,n){let{turnId:r,messages:o,availableTools:s,tools:i,systemPrompt:a,config:l}=t,c={sessionId:t.sessionId,turnId:r},u=[...o].reverse().find(E=>E.role==="user"&&typeof E.content=="string")?.content,d=!1,m=()=>({type:"tool_use_summary",turnId:r,telemetrySource:"agent",ledgerSchemaVersion:5,toolCalls:[],availableToolNames:wu(s??i),enabledToolNames:wu(i),toolCallNames:[],blockedToolCalls:[]}),_=typeof l?.maxRounds=="number"&&Number.isFinite(l.maxRounds)?l.maxRounds:this.configuredMaxRounds,p=_===void 0?void 0:Math.round(_),h=typeof l?.maxToolCalls=="number"&&Number.isFinite(l.maxToolCalls)?l.maxToolCalls:void 0,T=kr(h);yield{type:"start",turnId:r,effectiveMaxRounds:Cr(p,o),...T!==void 0?{effectiveMaxToolCalls:T}:{}};try{H(this.hooks,"turn.submitted",{...c,prompt:o[o.length-1]?.content??void 0},this.log);let E=Qr(o),w=[];a&&w.push({role:"system",content:a}),w.push(...E);let q=l?.model??"",k=l?.reasoning;l?.reasoning?.effort==="auto"&&(k=void 0);let Q={turnId:r,sessionId:t.sessionId,messages:w,availableTools:s,tools:i,deferredToolNames:t.deferredToolNames,loadedDeferredToolNames:t.loadedDeferredToolNames,refreshTools:t.refreshTools,drainPendingGuidance:t.drainPendingGuidance,drainPendingTaskNotifications:t.drainPendingTaskNotifications,sanitizeToolResultMedia:t.sanitizeToolResultMedia,model:q,apiKey:l?.apiKey??this.apiKey,temperature:l?.temperature,maxRounds:p,contextWindowTokens:l?.contextWindowTokens,maxOutputTokens:l?.maxOutputTokens,modelMaxOutputTokens:l?.modelMaxOutputTokens,toolChoice:l?.toolChoice,parentDepth:l?.parentDepth,hooks:this.hooks,fallbackModel:l?.fallbackModel,maxTurns:l?.maxTurns,maxConcurrentTools:l?.maxConcurrentTools,streamRequired:l?.streamRequired,reasoning:k,promptCacheKey:l?.promptCacheKey,promptCacheRetention:l?.promptCacheRetention,serviceTier:l?.serviceTier,openaiBuiltinTools:l?.openaiBuiltinTools,maxToolCalls:h,parallelToolCalls:l?.parallelToolCalls??!1,textVerbosity:l?.textVerbosity,projectRoot:this.projectRoot,runtimePorts:this.runtimePorts.toolLoop,signal:n};for await(let W of Eu(Q,this.transport,this.toolInvoker,this.log))W.type==="tool_use_summary"&&(d=!0),W.type==="end"?H(this.hooks,"turn.completed",{...c,...u?{prompt:u}:{},response:W.content},this.log):W.type==="error"&&H(this.hooks,"turn.failed",{...c,code:W.code,error:W.error},this.log),yield W}catch(E){if(d||(d=!0,yield m()),n?.aborted)H(this.hooks,"turn.failed",{...c,code:"ABORTED",error:"Turn aborted"},this.log),yield{type:"error",turnId:r,error:"Turn aborted",code:"ABORTED"};else{let w=E instanceof Error?E.message:String(E),q=typeof E?.status=="number"?E.status:void 0,k=bt(q,w);this.log.error(`turn ${r} error [${k}, retryable=${qn(k)}]: ${w}`),H(this.hooks,"turn.failed",{...c,code:k,error:w},this.log),yield{type:"error",turnId:r,error:w,code:k}}}}};function X_(e,t){let n=e.executionTimeoutMsByTool?.get(t)??e.maxExecutionMs;return typeof n=="number"&&Number.isFinite(n)&&n>0?Math.round(n):void 0}function Q_(e,t){let n=[e,t?AbortSignal.timeout(t):void 0].filter(r=>r!==void 0);if(n.length!==0)return n.length===1?n[0]:AbortSignal.any(n)}async function Z_(e,t){let{call:n}=e,r=n.function.name,o=Date.now();try{let s=await t.toolInvoker.invoke(t.turnId,r,n.function.arguments,Q_(t.signal,X_(t,r))),i=s.error??(s.mcpIsError?"Tool execution failed":void 0),a=i===void 0;return{callId:n.id,toolName:r,ok:a,...i?{error:i}:{},durationMs:Date.now()-o,...s.details?{details:s.details}:{},message:zn(n.id,{ok:a,payload:s.result,...i?{error:i}:{},toolReferences:s.toolReferences,imageUrls:s.imageUrls,contentBlocks:s.contentBlocks,structuredContent:s.structuredContent,mcpMeta:s.mcpMeta,mcpIsError:s.mcpIsError})}}catch(s){let i=s instanceof Error?s.message:String(s);return{callId:n.id,toolName:r,ok:!1,error:i,durationMs:Date.now()-o,message:zn(n.id,{ok:!1,error:i})}}}var $r=class{constructor(t){this.config=t}config;calls=[];addTool(t){this.calls.push({call:t,index:this.calls.length})}async*getRemainingResults(){let t=Math.max(1,Math.min(this.config.maxConcurrentTools??1,Math.max(1,this.calls.length))),n=new Array(this.calls.length),r=0,o=async()=>{for(;r<this.calls.length;){let s=this.calls[r++];if(!s)return;n[s.index]=await Z_(s,this.config)}};await Promise.all(Array.from({length:t},()=>o()));for(let s of n)s&&(yield s)}};var eT=8e3;function tT(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.round(e):t}function $u(e){let t=typeof e.content=="string"?e.content:JSON.stringify(e.content??"");return Math.ceil(t.length/4)}function nT(e){let t=tT(e.maxToolResultChars,eT),n=zr(new Kt(t),new et(20,$u),new Vt($u));return{createContentReplacementState:()=>({}),enforceToolResultBudget:async r=>{let o=0;return{messages:r.map(i=>{if(i.role!=="tool"||typeof i.content!="string"||i.content.length<=t)return i;o+=1;let a=`
21
+ [tool result truncated: ${i.content.length-t} characters omitted]`;return{...i,content:`${i.content.slice(0,Math.max(0,t-a.length))}${a}`}}),newlyReplacedCount:o}},restoreRequiredContextMessages:(r,o)=>({messages:o,recoveredCount:0}),getActiveContextCompressionEngine:()=>null,compressMessages:(r,o)=>{let s=n.compress(r,o.budget);return{messages:s.messages,droppedCount:s.droppedCount,strategy:s.strategy}},createStreamingToolExecutor:r=>new $r(r),resolveToolEligibility:r=>({eligibleTools:r,blockedTools:[]})}}function Su(e={}){return{resolveModelForPurpose:()=>null,toolLoop:nT(e)}}var rT={info:()=>{},warn:()=>{},error:()=>{},debug:()=>{}};function mR(e){let t=new wr({llmTransport:e.llmTransport,toolInvoker:e.toolInvoker,apiKey:e.apiKey??"",log:e.logger??rT,maxRounds:e.maxRounds,runtimePorts:Su(e.runtime)});return{async*run(n,r){for await(let o of t.run(n,r))yield o}}}export{mR as createEmbeddedAgent};
@@ -0,0 +1,244 @@
1
+ export interface AgentLogger {
2
+ info(message: string): void;
3
+ info(context: Record<string, unknown>, message: string): void;
4
+ warn(message: string): void;
5
+ warn(context: Record<string, unknown>, message: string): void;
6
+ error(message: string): void;
7
+ error(context: Record<string, unknown>, message: string): void;
8
+ debug(message: string): void;
9
+ debug(context: Record<string, unknown>, message: string): void;
10
+ }
11
+ export interface ToolCallMessage {
12
+ id: string;
13
+ type: "function";
14
+ function: {
15
+ name: string;
16
+ arguments: string;
17
+ };
18
+ }
19
+ export interface ChatMessage {
20
+ role: "system" | "user" | "assistant" | "tool";
21
+ content: string | null;
22
+ tool_calls?: ToolCallMessage[];
23
+ tool_call_id?: string;
24
+ name?: string;
25
+ is_error?: boolean;
26
+ reasoning_content?: string;
27
+ thinkingBlocks?: Array<{
28
+ thinking: string;
29
+ signature: string;
30
+ }>;
31
+ }
32
+ export interface ToolDefinition {
33
+ type: "function";
34
+ function: {
35
+ name: string;
36
+ description: string;
37
+ parameters?: Record<string, unknown>;
38
+ };
39
+ }
40
+ export interface LLMRequest {
41
+ model: string;
42
+ messages: ChatMessage[];
43
+ tools?: ToolDefinition[];
44
+ toolChoice?: "auto" | "none" | "required" | {
45
+ type: "function";
46
+ name: string;
47
+ };
48
+ temperature?: number;
49
+ maxTokens?: number;
50
+ reasoning?: {
51
+ effort: "minimal" | "low" | "medium" | "high" | "xhigh";
52
+ includeEncryptedReasoning?: boolean;
53
+ };
54
+ maxToolCalls?: number;
55
+ streamRequired?: boolean;
56
+ promptCacheKey?: string;
57
+ promptCacheRetention?: "in_memory" | "24h";
58
+ serviceTier?: "auto" | "default" | "flex" | "priority";
59
+ parallelToolCalls?: boolean;
60
+ textVerbosity?: "low" | "medium" | "high";
61
+ }
62
+ export type LLMChunk = {
63
+ type: "delta";
64
+ text: string;
65
+ } | {
66
+ type: "tool_call_delta";
67
+ index: number;
68
+ id?: string;
69
+ name?: string;
70
+ arguments: string;
71
+ } | {
72
+ type: "reasoning_delta";
73
+ text: string;
74
+ } | {
75
+ type: "reasoning_block_complete";
76
+ thinking: string;
77
+ signature: string;
78
+ } | {
79
+ type: "usage";
80
+ totalPromptTokens?: number;
81
+ promptTokens: number;
82
+ completionTokens: number;
83
+ reasoningTokens?: number;
84
+ cacheReadTokens?: number;
85
+ cacheCreationTokens?: number;
86
+ } | {
87
+ type: "response_id";
88
+ id: string;
89
+ } | {
90
+ type: "annotations";
91
+ annotations: Array<{
92
+ type: string;
93
+ url?: string;
94
+ title?: string;
95
+ [key: string]: unknown;
96
+ }>;
97
+ } | {
98
+ type: "error";
99
+ message: string;
100
+ } | {
101
+ type: "done";
102
+ finishReason: string;
103
+ };
104
+ export interface LLMTransport {
105
+ stream(request: LLMRequest, apiKey: string, signal?: AbortSignal): AsyncGenerator<LLMChunk>;
106
+ }
107
+ export interface ToolInvoker {
108
+ invoke(turnId: string, name: string, args: string, signal?: AbortSignal): Promise<{
109
+ result: string;
110
+ error?: string;
111
+ toolReferences?: string[];
112
+ imageUrls?: string[];
113
+ details?: Record<string, unknown>;
114
+ }>;
115
+ }
116
+ export interface TurnConfig {
117
+ model?: string;
118
+ maxRounds?: number;
119
+ temperature?: number;
120
+ contextWindowTokens?: number;
121
+ maxOutputTokens?: number;
122
+ modelMaxOutputTokens?: number;
123
+ maxTurns?: number;
124
+ maxToolCalls?: number;
125
+ maxConcurrentTools?: number;
126
+ parallelToolCalls?: boolean;
127
+ streamRequired?: boolean;
128
+ toolChoice?: "auto" | "none" | "required";
129
+ }
130
+ export interface TurnRequest {
131
+ turnId: string;
132
+ sessionId: string;
133
+ messages: ChatMessage[];
134
+ availableTools?: ToolDefinition[];
135
+ tools: ToolDefinition[];
136
+ systemPrompt?: string;
137
+ config?: TurnConfig;
138
+ }
139
+ export interface TokenUsage {
140
+ inputTokens?: number;
141
+ outputTokens?: number;
142
+ reasoningTokens?: number;
143
+ cacheRead?: number;
144
+ cacheWrite?: number;
145
+ }
146
+ export type TurnEvent = {
147
+ type: "start";
148
+ turnId: string;
149
+ effectiveMaxRounds?: number;
150
+ effectiveMaxToolCalls?: number;
151
+ } | {
152
+ type: "delta";
153
+ turnId: string;
154
+ text: string;
155
+ } | {
156
+ type: "tool_call";
157
+ turnId: string;
158
+ callId: string;
159
+ name: string;
160
+ displayName?: string;
161
+ arguments: string;
162
+ inputSummary?: string;
163
+ } | {
164
+ type: "tool_result";
165
+ turnId: string;
166
+ callId: string;
167
+ name: string;
168
+ ok: boolean;
169
+ error?: string;
170
+ outputPreview?: string;
171
+ durationMs?: number;
172
+ details?: Record<string, unknown>;
173
+ } | {
174
+ type: "tool_blocked";
175
+ turnId: string;
176
+ callId: string;
177
+ name: string;
178
+ reason: string;
179
+ } | {
180
+ type: "recovery";
181
+ turnId: string;
182
+ action: string;
183
+ detail?: string;
184
+ } | {
185
+ type: "text_rollback";
186
+ turnId: string;
187
+ keepLength: number;
188
+ reason: string;
189
+ } | {
190
+ type: "reasoning_delta";
191
+ turnId: string;
192
+ text: string;
193
+ } | {
194
+ type: "annotations";
195
+ turnId: string;
196
+ annotations: Array<{
197
+ type: string;
198
+ url?: string;
199
+ title?: string;
200
+ [key: string]: unknown;
201
+ }>;
202
+ } | {
203
+ type: "tool_use_summary";
204
+ turnId: string;
205
+ ledgerSchemaVersion: 5;
206
+ toolCalls: Array<Record<string, unknown>>;
207
+ availableToolNames: string[];
208
+ enabledToolNames: string[];
209
+ toolCallNames: string[];
210
+ blockedToolCalls: Array<{
211
+ name: string;
212
+ reason: string;
213
+ }>;
214
+ } | {
215
+ type: "end";
216
+ turnId: string;
217
+ content: string;
218
+ turnStatus?: "completed" | "stopped";
219
+ taskOutcome?: "unverified";
220
+ usage?: TokenUsage;
221
+ model?: string;
222
+ provider?: string;
223
+ recoveryTrace?: Record<string, number>;
224
+ } | {
225
+ type: "error";
226
+ turnId: string;
227
+ error: string;
228
+ code?: string;
229
+ usage?: TokenUsage;
230
+ };
231
+ export interface EmbeddedRuntimeOptions {
232
+ maxToolResultChars?: number;
233
+ }
234
+ export interface EmbeddedAgent {
235
+ run(request: TurnRequest, signal?: AbortSignal): AsyncGenerator<TurnEvent>;
236
+ }
237
+ export interface CreateEmbeddedAgentOptions {
238
+ llmTransport: LLMTransport;
239
+ toolInvoker: ToolInvoker;
240
+ apiKey?: string;
241
+ logger?: AgentLogger;
242
+ maxRounds?: number;
243
+ runtime?: EmbeddedRuntimeOptions;
244
+ }
@@ -0,0 +1,3 @@
1
+ import type { CreateEmbeddedAgentOptions, EmbeddedAgent } from "./contracts.js";
2
+ export declare function createEmbeddedAgent(options: CreateEmbeddedAgentOptions): EmbeddedAgent;
3
+ export type { AgentLogger, ChatMessage, CreateEmbeddedAgentOptions, EmbeddedAgent, EmbeddedRuntimeOptions, LLMChunk, LLMRequest, LLMTransport, ToolDefinition, ToolInvoker, TurnConfig, TurnEvent, TurnRequest, } from "./contracts.js";
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@xiaozhiclaw/qlogicagent-core",
3
+ "version": "0.1.0",
4
+ "description": "Host-neutral qlogicagent tool-loop runtime for server embedding",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/types/embedded/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/types/embedded/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist/",
16
+ "README.md"
17
+ ],
18
+ "scripts": {
19
+ "build": "node scripts/build.mjs",
20
+ "prepare": "node scripts/build.mjs"
21
+ },
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
25
+ "engines": {
26
+ "node": ">=24.0.0 <25"
27
+ },
28
+ "devDependencies": {
29
+ "@types/node": "^22.15.0",
30
+ "esbuild": "^0.28.0",
31
+ "typescript": "^5.9.3"
32
+ }
33
+ }