@aipt/cli 0.1.16 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,127 +1,127 @@
1
- import{a as E,b as Gr,c as En,d as _d,e as T,f as Ad,g as Ed,h as Pd,i as Nd,j as Od}from"./chunk.js";var On=E(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.regexpCode=K.getEsmExportName=K.getProperty=K.safeStringify=K.stringify=K.strConcat=K.addCodeArg=K.str=K._=K.nil=K._Code=K.Name=K.IDENTIFIER=K._CodeOrName=void 0;var Pn=class{};K._CodeOrName=Pn;K.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var dr=class extends Pn{constructor(t){if(super(),!K.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}}};K.Name=dr;var et=class extends Pn{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((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof dr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};K._Code=et;K.nil=new et("");function Sd(e,...t){let r=[e[0]],n=0;for(;n<t.length;)Wi(r,t[n]),r.push(e[++n]);return new et(r)}K._=Sd;var Gi=new et("+");function Dd(e,...t){let r=[Nn(e[0])],n=0;for(;n<t.length;)r.push(Gi),Wi(r,t[n]),r.push(Gi,Nn(e[++n]));return cy(r),new et(r)}K.str=Dd;function Wi(e,t){t instanceof et?e.push(...t._items):t instanceof dr?e.push(t):e.push(py(t))}K.addCodeArg=Wi;function cy(e){let t=1;for(;t<e.length-1;){if(e[t]===Gi){let r=ly(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function ly(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof dr||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 dr))return`"${e}${t.slice(1)}`}function dy(e,t){return t.emptyStr()?e:e.emptyStr()?t:Dd`${e}${t}`}K.strConcat=dy;function py(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Nn(Array.isArray(e)?e.join(","):e)}function uy(e){return new et(Nn(e))}K.stringify=uy;function Nn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}K.safeStringify=Nn;function fy(e){return typeof e=="string"&&K.IDENTIFIER.test(e)?new et(`.${e}`):Sd`[${e}]`}K.getProperty=fy;function my(e){if(typeof e=="string"&&K.IDENTIFIER.test(e))return new et(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}K.getEsmExportName=my;function gy(e){return new et(e.toString())}K.regexpCode=gy});var Hi=E(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.ValueScope=ze.ValueScopeName=ze.Scope=ze.varKinds=ze.UsedValueState=void 0;var Be=On(),Ki=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Wo;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Wo||(ze.UsedValueState=Wo={}));ze.varKinds={const:new Be.Name("const"),let:new Be.Name("let"),var:new Be.Name("var")};var Ko=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Be.Name?t:this.name(t)}name(t){return new Be.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.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}}};ze.Scope=Ko;var Yo=class extends Be.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Be._)`.${new Be.Name(r)}[${n}]`}};ze.ValueScopeName=Yo;var hy=(0,Be._)`\n`,Yi=class extends Ko{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?hy:Be.nil}}get(){return this._scope}name(t){return new Yo(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(t),{prefix:a}=o,i=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[a];if(s){let d=s.get(i);if(d)return d}else s=this._values[a]=new Map;s.set(i,o);let c=this._scope[a]||(this._scope[a]=[]),l=c.length;return c[l]=r.ref,o.setValue(r,{property:a,itemIndex:l}),o}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Be._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(t,r,n={},o){let a=Be.nil;for(let i in t){let s=t[i];if(!s)continue;let c=n[i]=n[i]||new Map;s.forEach(l=>{if(c.has(l))return;c.set(l,Wo.Started);let d=r(l);if(d){let p=this.opts.es5?ze.varKinds.var:ze.varKinds.const;a=(0,Be._)`${a}${p} ${l} = ${d};${this.opts._n}`}else if(d=o?.(l))a=(0,Be._)`${a}${d}${this.opts._n}`;else throw new Ki(l);c.set(l,Wo.Completed)})}return a}};ze.ValueScope=Yi});var x=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.or=U.and=U.not=U.CodeGen=U.operators=U.varKinds=U.ValueScopeName=U.ValueScope=U.Scope=U.Name=U.regexpCode=U.stringify=U.getProperty=U.nil=U.strConcat=U.str=U._=void 0;var B=On(),ft=Hi(),Jt=On();Object.defineProperty(U,"_",{enumerable:!0,get:function(){return Jt._}});Object.defineProperty(U,"str",{enumerable:!0,get:function(){return Jt.str}});Object.defineProperty(U,"strConcat",{enumerable:!0,get:function(){return Jt.strConcat}});Object.defineProperty(U,"nil",{enumerable:!0,get:function(){return Jt.nil}});Object.defineProperty(U,"getProperty",{enumerable:!0,get:function(){return Jt.getProperty}});Object.defineProperty(U,"stringify",{enumerable:!0,get:function(){return Jt.stringify}});Object.defineProperty(U,"regexpCode",{enumerable:!0,get:function(){return Jt.regexpCode}});Object.defineProperty(U,"Name",{enumerable:!0,get:function(){return Jt.Name}});var Qo=Hi();Object.defineProperty(U,"Scope",{enumerable:!0,get:function(){return Qo.Scope}});Object.defineProperty(U,"ValueScope",{enumerable:!0,get:function(){return Qo.ValueScope}});Object.defineProperty(U,"ValueScopeName",{enumerable:!0,get:function(){return Qo.ValueScopeName}});Object.defineProperty(U,"varKinds",{enumerable:!0,get:function(){return Qo.varKinds}});U.operators={GT:new B._Code(">"),GTE:new B._Code(">="),LT:new B._Code("<"),LTE:new B._Code("<="),EQ:new B._Code("==="),NEQ:new B._Code("!=="),NOT:new B._Code("!"),OR:new B._Code("||"),AND:new B._Code("&&"),ADD:new B._Code("+")};var Ot=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Xi=class extends Ot{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?ft.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=Kr(this.rhs,t,r)),this}get names(){return this.rhs instanceof B._CodeOrName?this.rhs.names:{}}},Ho=class extends Ot{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof B.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Kr(this.rhs,t,r),this}get names(){let t=this.lhs instanceof B.Name?{}:{...this.lhs.names};return Zo(t,this.rhs)}},Zi=class extends Ho{constructor(t,r,n,o){super(t,n,o),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Qi=class extends Ot{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},es=class extends Ot{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ts=class extends Ot{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},rs=class extends Ot{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=Kr(this.code,t,r),this}get names(){return this.code instanceof B._CodeOrName?this.code.names:{}}},Sn=class extends Ot{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,o=n.length;for(;o--;){let a=n[o];a.optimizeNames(t,r)||(yy(t,a.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>fr(t,r.names),{})}},St=class extends Sn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},ns=class extends Sn{},Wr=class extends St{};Wr.kind="else";var pr=class e extends St{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Wr(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(jd(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=Kr(this.condition,t,r),this}get names(){let t=super.names;return Zo(t,this.condition),this.else&&fr(t,this.else.names),t}};pr.kind="if";var ur=class extends St{};ur.kind="for";var os=class extends ur{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=Kr(this.iteration,t,r),this}get names(){return fr(super.names,this.iteration.names)}},as=class extends ur{constructor(t,r,n,o){super(),this.varKind=t,this.name=r,this.from=n,this.to=o}render(t){let r=t.es5?ft.varKinds.var:this.varKind,{name:n,from:o,to:a}=this;return`for(${r} ${n}=${o}; ${n}<${a}; ${n}++)`+super.render(t)}get names(){let t=Zo(super.names,this.from);return Zo(t,this.to)}},Xo=class extends ur{constructor(t,r,n,o){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=o}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=Kr(this.iterable,t,r),this}get names(){return fr(super.names,this.iterable.names)}},Dn=class extends St{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};Dn.kind="func";var jn=class extends Sn{render(t){return"return "+super.render(t)}};jn.kind="return";var is=class extends St{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,o;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(o=this.finally)===null||o===void 0||o.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&fr(t,this.catch.names),this.finally&&fr(t,this.finally.names),t}},$n=class extends St{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};$n.kind="catch";var Cn=class extends St{render(t){return"finally"+super.render(t)}};Cn.kind="finally";var ss=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
2
- `:""},this._extScope=t,this._scope=new ft.Scope({parent:t}),this._nodes=[new ns]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,o){let a=this._scope.toName(r);return n!==void 0&&o&&(this._constants[a.str]=n),this._leafNode(new Xi(t,a,n)),a}const(t,r,n){return this._def(ft.varKinds.const,t,r,n)}let(t,r,n){return this._def(ft.varKinds.let,t,r,n)}var(t,r,n){return this._def(ft.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new Ho(t,r,n))}add(t,r){return this._leafNode(new Zi(t,U.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==B.nil&&this._leafNode(new rs(t)),this}object(...t){let r=["{"];for(let[n,o]of t)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,B.addCodeArg)(r,o));return r.push("}"),new B._Code(r)}if(t,r,n){if(this._blockNode(new pr(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new pr(t))}else(){return this._elseNode(new Wr)}endIf(){return this._endBlockNode(pr,Wr)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new os(t),r)}forRange(t,r,n,o,a=this.opts.es5?ft.varKinds.var:ft.varKinds.let){let i=this._scope.toName(t);return this._for(new as(a,i,r,n),()=>o(i))}forOf(t,r,n,o=ft.varKinds.const){let a=this._scope.toName(t);if(this.opts.es5){let i=r instanceof B.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,B._)`${i}.length`,s=>{this.var(a,(0,B._)`${i}[${s}]`),n(a)})}return this._for(new Xo("of",o,a,r),()=>n(a))}forIn(t,r,n,o=this.opts.es5?ft.varKinds.var:ft.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,B._)`Object.keys(${r})`,n);let a=this._scope.toName(t);return this._for(new Xo("in",o,a,r),()=>n(a))}endFor(){return this._endBlockNode(ur)}label(t){return this._leafNode(new Qi(t))}break(t){return this._leafNode(new es(t))}return(t){let r=new jn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(jn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new is;if(this._blockNode(o),this.code(t),r){let a=this.name("e");this._currNode=o.catch=new $n(a),r(a)}return n&&(this._currNode=o.finally=new Cn,this.code(n)),this._endBlockNode($n,Cn)}throw(t){return this._leafNode(new ts(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=B.nil,n,o){return this._blockNode(new Dn(t,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(Dn)}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,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof pr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};U.CodeGen=ss;function fr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function Zo(e,t){return t instanceof B._CodeOrName?fr(e,t.names):e}function Kr(e,t,r){if(e instanceof B.Name)return n(e);if(!o(e))return e;return new B._Code(e._items.reduce((a,i)=>(i instanceof B.Name&&(i=n(i)),i instanceof B._Code?a.push(...i._items):a.push(i),a),[]));function n(a){let i=r[a.str];return i===void 0||t[a.str]!==1?a:(delete t[a.str],i)}function o(a){return a instanceof B._Code&&a._items.some(i=>i instanceof B.Name&&t[i.str]===1&&r[i.str]!==void 0)}}function yy(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function jd(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,B._)`!${cs(e)}`}U.not=jd;var wy=$d(U.operators.AND);function Iy(...e){return e.reduce(wy)}U.and=Iy;var vy=$d(U.operators.OR);function by(...e){return e.reduce(vy)}U.or=by;function $d(e){return(t,r)=>t===B.nil?r:r===B.nil?t:(0,B._)`${cs(t)} ${e} ${cs(r)}`}function cs(e){return e instanceof B.Name?e:(0,B._)`(${e})`}});var q=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.checkStrictMode=F.getErrorPath=F.Type=F.useFunc=F.setEvaluated=F.evaluatedPropsToName=F.mergeEvaluated=F.eachItem=F.unescapeJsonPointer=F.escapeJsonPointer=F.escapeFragment=F.unescapeFragment=F.schemaRefOrVal=F.schemaHasRulesButRef=F.schemaHasRules=F.checkUnknownRules=F.alwaysValidSchema=F.toHash=void 0;var ne=x(),ky=On();function Ry(e){let t={};for(let r of e)t[r]=!0;return t}F.toHash=Ry;function _y(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Ld(e,t),!xd(t,e.self.RULES.all))}F.alwaysValidSchema=_y;function Ld(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let o=n.RULES.keywords;for(let a in t)o[a]||Ud(e,`unknown keyword: "${a}"`)}F.checkUnknownRules=Ld;function xd(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}F.schemaHasRules=xd;function Ay(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}F.schemaHasRulesButRef=Ay;function Ey({topSchemaRef:e,schemaPath:t},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,ne._)`${r}`}return(0,ne._)`${e}${t}${(0,ne.getProperty)(n)}`}F.schemaRefOrVal=Ey;function Py(e){return Vd(decodeURIComponent(e))}F.unescapeFragment=Py;function Ny(e){return encodeURIComponent(ds(e))}F.escapeFragment=Ny;function ds(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}F.escapeJsonPointer=ds;function Vd(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}F.unescapeJsonPointer=Vd;function Oy(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}F.eachItem=Oy;function Cd({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(o,a,i,s)=>{let c=i===void 0?a:i instanceof ne.Name?(a instanceof ne.Name?e(o,a,i):t(o,a,i),i):a instanceof ne.Name?(t(o,i,a),a):r(a,i);return s===ne.Name&&!(c instanceof ne.Name)?n(o,c):c}}F.mergeEvaluated={props:Cd({mergeNames:(e,t,r)=>e.if((0,ne._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,ne._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,ne._)`${r} || {}`).code((0,ne._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,ne._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,ne._)`${r} || {}`),ps(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Md}),items:Cd({mergeNames:(e,t,r)=>e.if((0,ne._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,ne._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,ne._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,ne._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function Md(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ne._)`{}`);return t!==void 0&&ps(e,r,t),r}F.evaluatedPropsToName=Md;function ps(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ne._)`${t}${(0,ne.getProperty)(n)}`,!0))}F.setEvaluated=ps;var Td={};function Sy(e,t){return e.scopeValue("func",{ref:t,code:Td[t.code]||(Td[t.code]=new ky._Code(t.code))})}F.useFunc=Sy;var ls;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(ls||(F.Type=ls={}));function Dy(e,t,r){if(e instanceof ne.Name){let n=t===ls.Num;return r?n?(0,ne._)`"[" + ${e} + "]"`:(0,ne._)`"['" + ${e} + "']"`:n?(0,ne._)`"/" + ${e}`:(0,ne._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,ne.getProperty)(e).toString():"/"+ds(e)}F.getErrorPath=Dy;function Ud(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}F.checkStrictMode=Ud});var tt=E(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});var je=x(),jy={data:new je.Name("data"),valCxt:new je.Name("valCxt"),instancePath:new je.Name("instancePath"),parentData:new je.Name("parentData"),parentDataProperty:new je.Name("parentDataProperty"),rootData:new je.Name("rootData"),dynamicAnchors:new je.Name("dynamicAnchors"),vErrors:new je.Name("vErrors"),errors:new je.Name("errors"),this:new je.Name("this"),self:new je.Name("self"),scope:new je.Name("scope"),json:new je.Name("json"),jsonPos:new je.Name("jsonPos"),jsonLen:new je.Name("jsonLen"),jsonPart:new je.Name("jsonPart")};us.default=jy});var Tn=E($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.extendErrors=$e.resetErrorsCount=$e.reportExtraError=$e.reportError=$e.keyword$DataError=$e.keywordError=void 0;var G=x(),ea=q(),Me=tt();$e.keywordError={message:({keyword:e})=>(0,G.str)`must pass "${e}" keyword validation`};$e.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,G.str)`"${e}" keyword must be ${t} ($data)`:(0,G.str)`"${e}" keyword is invalid ($data)`};function $y(e,t=$e.keywordError,r,n){let{it:o}=e,{gen:a,compositeRule:i,allErrors:s}=o,c=Bd(e,t,r);n??(i||s)?Fd(a,c):qd(o,(0,G._)`[${c}]`)}$e.reportError=$y;function Cy(e,t=$e.keywordError,r){let{it:n}=e,{gen:o,compositeRule:a,allErrors:i}=n,s=Bd(e,t,r);Fd(o,s),a||i||qd(n,Me.default.vErrors)}$e.reportExtraError=Cy;function Ty(e,t){e.assign(Me.default.errors,t),e.if((0,G._)`${Me.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,G._)`${Me.default.vErrors}.length`,t),()=>e.assign(Me.default.vErrors,null)))}$e.resetErrorsCount=Ty;function Ly({gen:e,keyword:t,schemaValue:r,data:n,errsCount:o,it:a}){if(o===void 0)throw new Error("ajv implementation error");let i=e.name("err");e.forRange("i",o,Me.default.errors,s=>{e.const(i,(0,G._)`${Me.default.vErrors}[${s}]`),e.if((0,G._)`${i}.instancePath === undefined`,()=>e.assign((0,G._)`${i}.instancePath`,(0,G.strConcat)(Me.default.instancePath,a.errorPath))),e.assign((0,G._)`${i}.schemaPath`,(0,G.str)`${a.errSchemaPath}/${t}`),a.opts.verbose&&(e.assign((0,G._)`${i}.schema`,r),e.assign((0,G._)`${i}.data`,n))})}$e.extendErrors=Ly;function Fd(e,t){let r=e.const("err",t);e.if((0,G._)`${Me.default.vErrors} === null`,()=>e.assign(Me.default.vErrors,(0,G._)`[${r}]`),(0,G._)`${Me.default.vErrors}.push(${r})`),e.code((0,G._)`${Me.default.errors}++`)}function qd(e,t){let{gen:r,validateName:n,schemaEnv:o}=e;o.$async?r.throw((0,G._)`new ${e.ValidationError}(${t})`):(r.assign((0,G._)`${n}.errors`,t),r.return(!1))}var mr={keyword:new G.Name("keyword"),schemaPath:new G.Name("schemaPath"),params:new G.Name("params"),propertyName:new G.Name("propertyName"),message:new G.Name("message"),schema:new G.Name("schema"),parentSchema:new G.Name("parentSchema")};function Bd(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,G._)`{}`:xy(e,t,r)}function xy(e,t,r={}){let{gen:n,it:o}=e,a=[Vy(o,r),My(e,r)];return Uy(e,t,a),n.object(...a)}function Vy({errorPath:e},{instancePath:t}){let r=t?(0,G.str)`${e}${(0,ea.getErrorPath)(t,ea.Type.Str)}`:e;return[Me.default.instancePath,(0,G.strConcat)(Me.default.instancePath,r)]}function My({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let o=n?t:(0,G.str)`${t}/${e}`;return r&&(o=(0,G.str)`${o}${(0,ea.getErrorPath)(r,ea.Type.Str)}`),[mr.schemaPath,o]}function Uy(e,{params:t,message:r},n){let{keyword:o,data:a,schemaValue:i,it:s}=e,{opts:c,propertyName:l,topSchemaRef:d,schemaPath:p}=s;n.push([mr.keyword,o],[mr.params,typeof t=="function"?t(e):t||(0,G._)`{}`]),c.messages&&n.push([mr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([mr.schema,i],[mr.parentSchema,(0,G._)`${d}${p}`],[Me.default.data,a]),l&&n.push([mr.propertyName,l])}});var Jd=E(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.boolOrEmptySchema=Yr.topBoolOrEmptySchema=void 0;var Fy=Tn(),qy=x(),By=tt(),zy={message:"boolean schema is false"};function Jy(e){let{gen:t,schema:r,validateName:n}=e;r===!1?zd(e,!1):typeof r=="object"&&r.$async===!0?t.return(By.default.data):(t.assign((0,qy._)`${n}.errors`,null),t.return(!0))}Yr.topBoolOrEmptySchema=Jy;function Gy(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),zd(e)):r.var(t,!0)}Yr.boolOrEmptySchema=Gy;function zd(e,t){let{gen:r,data:n}=e,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,Fy.reportError)(o,zy,void 0,t)}});var fs=E(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.getRules=Hr.isJSONType=void 0;var Wy=["string","number","integer","boolean","null","object","array"],Ky=new Set(Wy);function Yy(e){return typeof e=="string"&&Ky.has(e)}Hr.isJSONType=Yy;function Hy(){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:{}}}Hr.getRules=Hy});var ms=E(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.shouldUseRule=Gt.shouldUseGroup=Gt.schemaHasRulesForType=void 0;function Xy({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Gd(e,n)}Gt.schemaHasRulesForType=Xy;function Gd(e,t){return t.rules.some(r=>Wd(e,r))}Gt.shouldUseGroup=Gd;function Wd(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Gt.shouldUseRule=Wd});var Ln=E(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.reportTypeError=Ce.checkDataTypes=Ce.checkDataType=Ce.coerceAndCheckDataType=Ce.getJSONTypes=Ce.getSchemaTypes=Ce.DataType=void 0;var Zy=fs(),Qy=ms(),ew=Tn(),V=x(),Kd=q(),Xr;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Xr||(Ce.DataType=Xr={}));function tw(e){let t=Yd(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}Ce.getSchemaTypes=tw;function Yd(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Zy.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Ce.getJSONTypes=Yd;function rw(e,t){let{gen:r,data:n,opts:o}=e,a=nw(t,o.coerceTypes),i=t.length>0&&!(a.length===0&&t.length===1&&(0,Qy.schemaHasRulesForType)(e,t[0]));if(i){let s=hs(t,n,o.strictNumbers,Xr.Wrong);r.if(s,()=>{a.length?ow(e,t,a):ys(e)})}return i}Ce.coerceAndCheckDataType=rw;var Hd=new Set(["string","number","integer","boolean","null"]);function nw(e,t){return t?e.filter(r=>Hd.has(r)||t==="array"&&r==="array"):[]}function ow(e,t,r){let{gen:n,data:o,opts:a}=e,i=n.let("dataType",(0,V._)`typeof ${o}`),s=n.let("coerced",(0,V._)`undefined`);a.coerceTypes==="array"&&n.if((0,V._)`${i} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,V._)`${o}[0]`).assign(i,(0,V._)`typeof ${o}`).if(hs(t,o,a.strictNumbers),()=>n.assign(s,o))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(Hd.has(l)||l==="array"&&a.coerceTypes==="array")&&c(l);n.else(),ys(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(o,s),aw(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${i} == "number" || ${i} == "boolean"`).assign(s,(0,V._)`"" + ${o}`).elseIf((0,V._)`${o} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${i} == "boolean" || ${o} === null
1
+ import{a as E,b as Wr,c as Nn,d as Od,e as T,f as Dd,g as Sd,h as jd,i as $d,j as Cd}from"./chunk.js";var Sn=E(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.regexpCode=K.getEsmExportName=K.getProperty=K.safeStringify=K.stringify=K.strConcat=K.addCodeArg=K.str=K._=K.nil=K._Code=K.Name=K.IDENTIFIER=K._CodeOrName=void 0;var On=class{};K._CodeOrName=On;K.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var dr=class extends On{constructor(t){if(super(),!K.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}}};K.Name=dr;var nt=class extends On{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((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof dr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};K._Code=nt;K.nil=new nt("");function Td(e,...t){let r=[e[0]],n=0;for(;n<t.length;)Yi(r,t[n]),r.push(e[++n]);return new nt(r)}K._=Td;var Ki=new nt("+");function Ld(e,...t){let r=[Dn(e[0])],n=0;for(;n<t.length;)r.push(Ki),Yi(r,t[n]),r.push(Ki,Dn(e[++n]));return ly(r),new nt(r)}K.str=Ld;function Yi(e,t){t instanceof nt?e.push(...t._items):t instanceof dr?e.push(t):e.push(uy(t))}K.addCodeArg=Yi;function ly(e){let t=1;for(;t<e.length-1;){if(e[t]===Ki){let r=dy(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function dy(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof dr||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 dr))return`"${e}${t.slice(1)}`}function py(e,t){return t.emptyStr()?e:e.emptyStr()?t:Ld`${e}${t}`}K.strConcat=py;function uy(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Dn(Array.isArray(e)?e.join(","):e)}function fy(e){return new nt(Dn(e))}K.stringify=fy;function Dn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}K.safeStringify=Dn;function my(e){return typeof e=="string"&&K.IDENTIFIER.test(e)?new nt(`.${e}`):Td`[${e}]`}K.getProperty=my;function gy(e){if(typeof e=="string"&&K.IDENTIFIER.test(e))return new nt(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}K.getEsmExportName=gy;function hy(e){return new nt(e.toString())}K.regexpCode=hy});var Zi=E(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.ValueScope=Je.ValueScopeName=Je.Scope=Je.varKinds=Je.UsedValueState=void 0;var ze=Sn(),Hi=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Ko;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Ko||(Je.UsedValueState=Ko={}));Je.varKinds={const:new ze.Name("const"),let:new ze.Name("let"),var:new ze.Name("var")};var Yo=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof ze.Name?t:this.name(t)}name(t){return new ze.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.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}}};Je.Scope=Yo;var Ho=class extends ze.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,ze._)`.${new ze.Name(r)}[${n}]`}};Je.ValueScopeName=Ho;var yy=(0,ze._)`\n`,Xi=class extends Yo{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?yy:ze.nil}}get(){return this._scope}name(t){return new Ho(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(t),{prefix:a}=o,i=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[a];if(s){let d=s.get(i);if(d)return d}else s=this._values[a]=new Map;s.set(i,o);let c=this._scope[a]||(this._scope[a]=[]),l=c.length;return c[l]=r.ref,o.setValue(r,{property:a,itemIndex:l}),o}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,ze._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(t,r,n={},o){let a=ze.nil;for(let i in t){let s=t[i];if(!s)continue;let c=n[i]=n[i]||new Map;s.forEach(l=>{if(c.has(l))return;c.set(l,Ko.Started);let d=r(l);if(d){let p=this.opts.es5?Je.varKinds.var:Je.varKinds.const;a=(0,ze._)`${a}${p} ${l} = ${d};${this.opts._n}`}else if(d=o?.(l))a=(0,ze._)`${a}${d}${this.opts._n}`;else throw new Hi(l);c.set(l,Ko.Completed)})}return a}};Je.ValueScope=Xi});var x=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.or=U.and=U.not=U.CodeGen=U.operators=U.varKinds=U.ValueScopeName=U.ValueScope=U.Scope=U.Name=U.regexpCode=U.stringify=U.getProperty=U.nil=U.strConcat=U.str=U._=void 0;var B=Sn(),mt=Zi(),Jt=Sn();Object.defineProperty(U,"_",{enumerable:!0,get:function(){return Jt._}});Object.defineProperty(U,"str",{enumerable:!0,get:function(){return Jt.str}});Object.defineProperty(U,"strConcat",{enumerable:!0,get:function(){return Jt.strConcat}});Object.defineProperty(U,"nil",{enumerable:!0,get:function(){return Jt.nil}});Object.defineProperty(U,"getProperty",{enumerable:!0,get:function(){return Jt.getProperty}});Object.defineProperty(U,"stringify",{enumerable:!0,get:function(){return Jt.stringify}});Object.defineProperty(U,"regexpCode",{enumerable:!0,get:function(){return Jt.regexpCode}});Object.defineProperty(U,"Name",{enumerable:!0,get:function(){return Jt.Name}});var ea=Zi();Object.defineProperty(U,"Scope",{enumerable:!0,get:function(){return ea.Scope}});Object.defineProperty(U,"ValueScope",{enumerable:!0,get:function(){return ea.ValueScope}});Object.defineProperty(U,"ValueScopeName",{enumerable:!0,get:function(){return ea.ValueScopeName}});Object.defineProperty(U,"varKinds",{enumerable:!0,get:function(){return ea.varKinds}});U.operators={GT:new B._Code(">"),GTE:new B._Code(">="),LT:new B._Code("<"),LTE:new B._Code("<="),EQ:new B._Code("==="),NEQ:new B._Code("!=="),NOT:new B._Code("!"),OR:new B._Code("||"),AND:new B._Code("&&"),ADD:new B._Code("+")};var St=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Qi=class extends St{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?mt.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=Yr(this.rhs,t,r)),this}get names(){return this.rhs instanceof B._CodeOrName?this.rhs.names:{}}},Xo=class extends St{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof B.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Yr(this.rhs,t,r),this}get names(){let t=this.lhs instanceof B.Name?{}:{...this.lhs.names};return Qo(t,this.rhs)}},es=class extends Xo{constructor(t,r,n,o){super(t,n,o),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ts=class extends St{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},rs=class extends St{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ns=class extends St{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},os=class extends St{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=Yr(this.code,t,r),this}get names(){return this.code instanceof B._CodeOrName?this.code.names:{}}},jn=class extends St{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,o=n.length;for(;o--;){let a=n[o];a.optimizeNames(t,r)||(wy(t,a.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>fr(t,r.names),{})}},jt=class extends jn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},as=class extends jn{},Kr=class extends jt{};Kr.kind="else";var pr=class e extends jt{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Kr(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(xd(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=Yr(this.condition,t,r),this}get names(){let t=super.names;return Qo(t,this.condition),this.else&&fr(t,this.else.names),t}};pr.kind="if";var ur=class extends jt{};ur.kind="for";var is=class extends ur{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=Yr(this.iteration,t,r),this}get names(){return fr(super.names,this.iteration.names)}},ss=class extends ur{constructor(t,r,n,o){super(),this.varKind=t,this.name=r,this.from=n,this.to=o}render(t){let r=t.es5?mt.varKinds.var:this.varKind,{name:n,from:o,to:a}=this;return`for(${r} ${n}=${o}; ${n}<${a}; ${n}++)`+super.render(t)}get names(){let t=Qo(super.names,this.from);return Qo(t,this.to)}},Zo=class extends ur{constructor(t,r,n,o){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=o}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=Yr(this.iterable,t,r),this}get names(){return fr(super.names,this.iterable.names)}},$n=class extends jt{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};$n.kind="func";var Cn=class extends jn{render(t){return"return "+super.render(t)}};Cn.kind="return";var cs=class extends jt{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,o;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(o=this.finally)===null||o===void 0||o.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&fr(t,this.catch.names),this.finally&&fr(t,this.finally.names),t}},Tn=class extends jt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Tn.kind="catch";var Ln=class extends jt{render(t){return"finally"+super.render(t)}};Ln.kind="finally";var ls=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
2
+ `:""},this._extScope=t,this._scope=new mt.Scope({parent:t}),this._nodes=[new as]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,o){let a=this._scope.toName(r);return n!==void 0&&o&&(this._constants[a.str]=n),this._leafNode(new Qi(t,a,n)),a}const(t,r,n){return this._def(mt.varKinds.const,t,r,n)}let(t,r,n){return this._def(mt.varKinds.let,t,r,n)}var(t,r,n){return this._def(mt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new Xo(t,r,n))}add(t,r){return this._leafNode(new es(t,U.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==B.nil&&this._leafNode(new os(t)),this}object(...t){let r=["{"];for(let[n,o]of t)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,B.addCodeArg)(r,o));return r.push("}"),new B._Code(r)}if(t,r,n){if(this._blockNode(new pr(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new pr(t))}else(){return this._elseNode(new Kr)}endIf(){return this._endBlockNode(pr,Kr)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new is(t),r)}forRange(t,r,n,o,a=this.opts.es5?mt.varKinds.var:mt.varKinds.let){let i=this._scope.toName(t);return this._for(new ss(a,i,r,n),()=>o(i))}forOf(t,r,n,o=mt.varKinds.const){let a=this._scope.toName(t);if(this.opts.es5){let i=r instanceof B.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,B._)`${i}.length`,s=>{this.var(a,(0,B._)`${i}[${s}]`),n(a)})}return this._for(new Zo("of",o,a,r),()=>n(a))}forIn(t,r,n,o=this.opts.es5?mt.varKinds.var:mt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,B._)`Object.keys(${r})`,n);let a=this._scope.toName(t);return this._for(new Zo("in",o,a,r),()=>n(a))}endFor(){return this._endBlockNode(ur)}label(t){return this._leafNode(new ts(t))}break(t){return this._leafNode(new rs(t))}return(t){let r=new Cn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Cn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new cs;if(this._blockNode(o),this.code(t),r){let a=this.name("e");this._currNode=o.catch=new Tn(a),r(a)}return n&&(this._currNode=o.finally=new Ln,this.code(n)),this._endBlockNode(Tn,Ln)}throw(t){return this._leafNode(new ns(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=B.nil,n,o){return this._blockNode(new $n(t,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode($n)}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,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof pr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};U.CodeGen=ls;function fr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function Qo(e,t){return t instanceof B._CodeOrName?fr(e,t.names):e}function Yr(e,t,r){if(e instanceof B.Name)return n(e);if(!o(e))return e;return new B._Code(e._items.reduce((a,i)=>(i instanceof B.Name&&(i=n(i)),i instanceof B._Code?a.push(...i._items):a.push(i),a),[]));function n(a){let i=r[a.str];return i===void 0||t[a.str]!==1?a:(delete t[a.str],i)}function o(a){return a instanceof B._Code&&a._items.some(i=>i instanceof B.Name&&t[i.str]===1&&r[i.str]!==void 0)}}function wy(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function xd(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,B._)`!${ds(e)}`}U.not=xd;var Iy=Vd(U.operators.AND);function vy(...e){return e.reduce(Iy)}U.and=vy;var by=Vd(U.operators.OR);function ky(...e){return e.reduce(by)}U.or=ky;function Vd(e){return(t,r)=>t===B.nil?r:r===B.nil?t:(0,B._)`${ds(t)} ${e} ${ds(r)}`}function ds(e){return e instanceof B.Name?e:(0,B._)`(${e})`}});var q=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.checkStrictMode=F.getErrorPath=F.Type=F.useFunc=F.setEvaluated=F.evaluatedPropsToName=F.mergeEvaluated=F.eachItem=F.unescapeJsonPointer=F.escapeJsonPointer=F.escapeFragment=F.unescapeFragment=F.schemaRefOrVal=F.schemaHasRulesButRef=F.schemaHasRules=F.checkUnknownRules=F.alwaysValidSchema=F.toHash=void 0;var ne=x(),Ry=Sn();function _y(e){let t={};for(let r of e)t[r]=!0;return t}F.toHash=_y;function Ay(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Fd(e,t),!qd(t,e.self.RULES.all))}F.alwaysValidSchema=Ay;function Fd(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let o=n.RULES.keywords;for(let a in t)o[a]||Jd(e,`unknown keyword: "${a}"`)}F.checkUnknownRules=Fd;function qd(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}F.schemaHasRules=qd;function Ey(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}F.schemaHasRulesButRef=Ey;function Py({topSchemaRef:e,schemaPath:t},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,ne._)`${r}`}return(0,ne._)`${e}${t}${(0,ne.getProperty)(n)}`}F.schemaRefOrVal=Py;function Ny(e){return Bd(decodeURIComponent(e))}F.unescapeFragment=Ny;function Oy(e){return encodeURIComponent(us(e))}F.escapeFragment=Oy;function us(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}F.escapeJsonPointer=us;function Bd(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}F.unescapeJsonPointer=Bd;function Dy(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}F.eachItem=Dy;function Md({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(o,a,i,s)=>{let c=i===void 0?a:i instanceof ne.Name?(a instanceof ne.Name?e(o,a,i):t(o,a,i),i):a instanceof ne.Name?(t(o,i,a),a):r(a,i);return s===ne.Name&&!(c instanceof ne.Name)?n(o,c):c}}F.mergeEvaluated={props:Md({mergeNames:(e,t,r)=>e.if((0,ne._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,ne._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,ne._)`${r} || {}`).code((0,ne._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,ne._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,ne._)`${r} || {}`),fs(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:zd}),items:Md({mergeNames:(e,t,r)=>e.if((0,ne._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,ne._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,ne._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,ne._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function zd(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ne._)`{}`);return t!==void 0&&fs(e,r,t),r}F.evaluatedPropsToName=zd;function fs(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ne._)`${t}${(0,ne.getProperty)(n)}`,!0))}F.setEvaluated=fs;var Ud={};function Sy(e,t){return e.scopeValue("func",{ref:t,code:Ud[t.code]||(Ud[t.code]=new Ry._Code(t.code))})}F.useFunc=Sy;var ps;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(ps||(F.Type=ps={}));function jy(e,t,r){if(e instanceof ne.Name){let n=t===ps.Num;return r?n?(0,ne._)`"[" + ${e} + "]"`:(0,ne._)`"['" + ${e} + "']"`:n?(0,ne._)`"/" + ${e}`:(0,ne._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,ne.getProperty)(e).toString():"/"+us(e)}F.getErrorPath=jy;function Jd(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}F.checkStrictMode=Jd});var ot=E(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});var $e=x(),$y={data:new $e.Name("data"),valCxt:new $e.Name("valCxt"),instancePath:new $e.Name("instancePath"),parentData:new $e.Name("parentData"),parentDataProperty:new $e.Name("parentDataProperty"),rootData:new $e.Name("rootData"),dynamicAnchors:new $e.Name("dynamicAnchors"),vErrors:new $e.Name("vErrors"),errors:new $e.Name("errors"),this:new $e.Name("this"),self:new $e.Name("self"),scope:new $e.Name("scope"),json:new $e.Name("json"),jsonPos:new $e.Name("jsonPos"),jsonLen:new $e.Name("jsonLen"),jsonPart:new $e.Name("jsonPart")};ms.default=$y});var xn=E(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.extendErrors=Ce.resetErrorsCount=Ce.reportExtraError=Ce.reportError=Ce.keyword$DataError=Ce.keywordError=void 0;var G=x(),ta=q(),Ue=ot();Ce.keywordError={message:({keyword:e})=>(0,G.str)`must pass "${e}" keyword validation`};Ce.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,G.str)`"${e}" keyword must be ${t} ($data)`:(0,G.str)`"${e}" keyword is invalid ($data)`};function Cy(e,t=Ce.keywordError,r,n){let{it:o}=e,{gen:a,compositeRule:i,allErrors:s}=o,c=Kd(e,t,r);n??(i||s)?Gd(a,c):Wd(o,(0,G._)`[${c}]`)}Ce.reportError=Cy;function Ty(e,t=Ce.keywordError,r){let{it:n}=e,{gen:o,compositeRule:a,allErrors:i}=n,s=Kd(e,t,r);Gd(o,s),a||i||Wd(n,Ue.default.vErrors)}Ce.reportExtraError=Ty;function Ly(e,t){e.assign(Ue.default.errors,t),e.if((0,G._)`${Ue.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,G._)`${Ue.default.vErrors}.length`,t),()=>e.assign(Ue.default.vErrors,null)))}Ce.resetErrorsCount=Ly;function xy({gen:e,keyword:t,schemaValue:r,data:n,errsCount:o,it:a}){if(o===void 0)throw new Error("ajv implementation error");let i=e.name("err");e.forRange("i",o,Ue.default.errors,s=>{e.const(i,(0,G._)`${Ue.default.vErrors}[${s}]`),e.if((0,G._)`${i}.instancePath === undefined`,()=>e.assign((0,G._)`${i}.instancePath`,(0,G.strConcat)(Ue.default.instancePath,a.errorPath))),e.assign((0,G._)`${i}.schemaPath`,(0,G.str)`${a.errSchemaPath}/${t}`),a.opts.verbose&&(e.assign((0,G._)`${i}.schema`,r),e.assign((0,G._)`${i}.data`,n))})}Ce.extendErrors=xy;function Gd(e,t){let r=e.const("err",t);e.if((0,G._)`${Ue.default.vErrors} === null`,()=>e.assign(Ue.default.vErrors,(0,G._)`[${r}]`),(0,G._)`${Ue.default.vErrors}.push(${r})`),e.code((0,G._)`${Ue.default.errors}++`)}function Wd(e,t){let{gen:r,validateName:n,schemaEnv:o}=e;o.$async?r.throw((0,G._)`new ${e.ValidationError}(${t})`):(r.assign((0,G._)`${n}.errors`,t),r.return(!1))}var mr={keyword:new G.Name("keyword"),schemaPath:new G.Name("schemaPath"),params:new G.Name("params"),propertyName:new G.Name("propertyName"),message:new G.Name("message"),schema:new G.Name("schema"),parentSchema:new G.Name("parentSchema")};function Kd(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,G._)`{}`:Vy(e,t,r)}function Vy(e,t,r={}){let{gen:n,it:o}=e,a=[My(o,r),Uy(e,r)];return Fy(e,t,a),n.object(...a)}function My({errorPath:e},{instancePath:t}){let r=t?(0,G.str)`${e}${(0,ta.getErrorPath)(t,ta.Type.Str)}`:e;return[Ue.default.instancePath,(0,G.strConcat)(Ue.default.instancePath,r)]}function Uy({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let o=n?t:(0,G.str)`${t}/${e}`;return r&&(o=(0,G.str)`${o}${(0,ta.getErrorPath)(r,ta.Type.Str)}`),[mr.schemaPath,o]}function Fy(e,{params:t,message:r},n){let{keyword:o,data:a,schemaValue:i,it:s}=e,{opts:c,propertyName:l,topSchemaRef:d,schemaPath:p}=s;n.push([mr.keyword,o],[mr.params,typeof t=="function"?t(e):t||(0,G._)`{}`]),c.messages&&n.push([mr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([mr.schema,i],[mr.parentSchema,(0,G._)`${d}${p}`],[Ue.default.data,a]),l&&n.push([mr.propertyName,l])}});var Hd=E(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.boolOrEmptySchema=Hr.topBoolOrEmptySchema=void 0;var qy=xn(),By=x(),zy=ot(),Jy={message:"boolean schema is false"};function Gy(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Yd(e,!1):typeof r=="object"&&r.$async===!0?t.return(zy.default.data):(t.assign((0,By._)`${n}.errors`,null),t.return(!0))}Hr.topBoolOrEmptySchema=Gy;function Wy(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Yd(e)):r.var(t,!0)}Hr.boolOrEmptySchema=Wy;function Yd(e,t){let{gen:r,data:n}=e,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,qy.reportError)(o,Jy,void 0,t)}});var gs=E(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.getRules=Xr.isJSONType=void 0;var Ky=["string","number","integer","boolean","null","object","array"],Yy=new Set(Ky);function Hy(e){return typeof e=="string"&&Yy.has(e)}Xr.isJSONType=Hy;function Xy(){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:{}}}Xr.getRules=Xy});var hs=E(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.shouldUseRule=Gt.shouldUseGroup=Gt.schemaHasRulesForType=void 0;function Zy({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Xd(e,n)}Gt.schemaHasRulesForType=Zy;function Xd(e,t){return t.rules.some(r=>Zd(e,r))}Gt.shouldUseGroup=Xd;function Zd(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Gt.shouldUseRule=Zd});var Vn=E(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 Qy=gs(),ew=hs(),tw=xn(),V=x(),Qd=q(),Zr;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Zr||(Te.DataType=Zr={}));function rw(e){let t=ep(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=rw;function ep(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Qy.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Te.getJSONTypes=ep;function nw(e,t){let{gen:r,data:n,opts:o}=e,a=ow(t,o.coerceTypes),i=t.length>0&&!(a.length===0&&t.length===1&&(0,ew.schemaHasRulesForType)(e,t[0]));if(i){let s=ws(t,n,o.strictNumbers,Zr.Wrong);r.if(s,()=>{a.length?aw(e,t,a):Is(e)})}return i}Te.coerceAndCheckDataType=nw;var tp=new Set(["string","number","integer","boolean","null"]);function ow(e,t){return t?e.filter(r=>tp.has(r)||t==="array"&&r==="array"):[]}function aw(e,t,r){let{gen:n,data:o,opts:a}=e,i=n.let("dataType",(0,V._)`typeof ${o}`),s=n.let("coerced",(0,V._)`undefined`);a.coerceTypes==="array"&&n.if((0,V._)`${i} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,V._)`${o}[0]`).assign(i,(0,V._)`typeof ${o}`).if(ws(t,o,a.strictNumbers),()=>n.assign(s,o))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(tp.has(l)||l==="array"&&a.coerceTypes==="array")&&c(l);n.else(),Is(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(o,s),iw(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${i} == "number" || ${i} == "boolean"`).assign(s,(0,V._)`"" + ${o}`).elseIf((0,V._)`${o} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${i} == "boolean" || ${o} === null
3
3
  || (${i} == "string" && ${o} && ${o} == +${o})`).assign(s,(0,V._)`+${o}`);return;case"integer":n.elseIf((0,V._)`${i} === "boolean" || ${o} === null
4
4
  || (${i} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(s,(0,V._)`+${o}`);return;case"boolean":n.elseIf((0,V._)`${o} === "false" || ${o} === 0 || ${o} === null`).assign(s,!1).elseIf((0,V._)`${o} === "true" || ${o} === 1`).assign(s,!0);return;case"null":n.elseIf((0,V._)`${o} === "" || ${o} === 0 || ${o} === false`),n.assign(s,null);return;case"array":n.elseIf((0,V._)`${i} === "string" || ${i} === "number"
5
- || ${i} === "boolean" || ${o} === null`).assign(s,(0,V._)`[${o}]`)}}}function aw({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function gs(e,t,r,n=Xr.Correct){let o=n===Xr.Correct?V.operators.EQ:V.operators.NEQ,a;switch(e){case"null":return(0,V._)`${t} ${o} null`;case"array":a=(0,V._)`Array.isArray(${t})`;break;case"object":a=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":a=i((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":a=i();break;default:return(0,V._)`typeof ${t} ${o} ${e}`}return n===Xr.Correct?a:(0,V.not)(a);function i(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Ce.checkDataType=gs;function hs(e,t,r,n){if(e.length===1)return gs(e[0],t,r,n);let o,a=(0,Kd.toHash)(e);if(a.array&&a.object){let i=(0,V._)`typeof ${t} != "object"`;o=a.null?i:(0,V._)`!${t} || ${i}`,delete a.null,delete a.array,delete a.object}else o=V.nil;a.number&&delete a.integer;for(let i in a)o=(0,V.and)(o,gs(i,t,r,n));return o}Ce.checkDataTypes=hs;var iw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function ys(e){let t=sw(e);(0,ew.reportError)(t,iw)}Ce.reportTypeError=ys;function sw(e){let{gen:t,data:r,schema:n}=e,o=(0,Kd.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:e}}});var Zd=E(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.assignDefaults=void 0;var Zr=x(),cw=q();function lw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let o in r)Xd(e,o,r[o].default);else t==="array"&&Array.isArray(n)&&n.forEach((o,a)=>Xd(e,a,o.default))}ta.assignDefaults=lw;function Xd(e,t,r){let{gen:n,compositeRule:o,data:a,opts:i}=e;if(r===void 0)return;let s=(0,Zr._)`${a}${(0,Zr.getProperty)(t)}`;if(o){(0,cw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,Zr._)`${s} === undefined`;i.useDefaults==="empty"&&(c=(0,Zr._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,Zr._)`${s} = ${(0,Zr.stringify)(r)}`)}});var rt=E(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.validateUnion=te.validateArray=te.usePattern=te.callValidateCode=te.schemaProperties=te.allSchemaProperties=te.noPropertyInData=te.propertyInData=te.isOwnProperty=te.hasPropFunc=te.reportMissingProp=te.checkMissingProp=te.checkReportMissingProp=void 0;var le=x(),ws=q(),Wt=tt(),dw=q();function pw(e,t){let{gen:r,data:n,it:o}=e;r.if(vs(r,n,t,o.opts.ownProperties),()=>{e.setParams({missingProperty:(0,le._)`${t}`},!0),e.error()})}te.checkReportMissingProp=pw;function uw({gen:e,data:t,it:{opts:r}},n,o){return(0,le.or)(...n.map(a=>(0,le.and)(vs(e,t,a,r.ownProperties),(0,le._)`${o} = ${a}`)))}te.checkMissingProp=uw;function fw(e,t){e.setParams({missingProperty:t},!0),e.error()}te.reportMissingProp=fw;function Qd(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,le._)`Object.prototype.hasOwnProperty`})}te.hasPropFunc=Qd;function Is(e,t,r){return(0,le._)`${Qd(e)}.call(${t}, ${r})`}te.isOwnProperty=Is;function mw(e,t,r,n){let o=(0,le._)`${t}${(0,le.getProperty)(r)} !== undefined`;return n?(0,le._)`${o} && ${Is(e,t,r)}`:o}te.propertyInData=mw;function vs(e,t,r,n){let o=(0,le._)`${t}${(0,le.getProperty)(r)} === undefined`;return n?(0,le.or)(o,(0,le.not)(Is(e,t,r))):o}te.noPropertyInData=vs;function ep(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}te.allSchemaProperties=ep;function gw(e,t){return ep(t).filter(r=>!(0,ws.alwaysValidSchema)(e,t[r]))}te.schemaProperties=gw;function hw({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:a},it:i},s,c,l){let d=l?(0,le._)`${e}, ${t}, ${n}${o}`:t,p=[[Wt.default.instancePath,(0,le.strConcat)(Wt.default.instancePath,a)],[Wt.default.parentData,i.parentData],[Wt.default.parentDataProperty,i.parentDataProperty],[Wt.default.rootData,Wt.default.rootData]];i.opts.dynamicRef&&p.push([Wt.default.dynamicAnchors,Wt.default.dynamicAnchors]);let f=(0,le._)`${d}, ${r.object(...p)}`;return c!==le.nil?(0,le._)`${s}.call(${c}, ${f})`:(0,le._)`${s}(${f})`}te.callValidateCode=hw;var yw=(0,le._)`new RegExp`;function ww({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:o}=t.code,a=o(r,n);return e.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,le._)`${o.code==="new RegExp"?yw:(0,dw.useFunc)(e,o)}(${r}, ${n})`})}te.usePattern=ww;function Iw(e){let{gen:t,data:r,keyword:n,it:o}=e,a=t.name("valid");if(o.allErrors){let s=t.let("valid",!0);return i(()=>t.assign(s,!1)),s}return t.var(a,!0),i(()=>t.break()),a;function i(s){let c=t.const("len",(0,le._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:ws.Type.Num},a),t.if((0,le.not)(a),s)})}}te.validateArray=Iw;function vw(e){let{gen:t,schema:r,keyword:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,ws.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let i=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,l)=>{let d=e.subschema({keyword:n,schemaProp:l,compositeRule:!0},s);t.assign(i,(0,le._)`${i} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,le.not)(i))})),e.result(i,()=>e.reset(),()=>e.error(!0))}te.validateUnion=vw});var np=E(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.validateKeywordUsage=At.validSchemaType=At.funcKeywordCode=At.macroKeywordCode=void 0;var Ue=x(),gr=tt(),bw=rt(),kw=Tn();function Rw(e,t){let{gen:r,keyword:n,schema:o,parentSchema:a,it:i}=e,s=t.macro.call(i.self,o,a,i),c=rp(r,n,s);i.opts.validateSchema!==!1&&i.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:Ue.nil,errSchemaPath:`${i.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}At.macroKeywordCode=Rw;function _w(e,t){var r;let{gen:n,keyword:o,schema:a,parentSchema:i,$data:s,it:c}=e;Ew(c,t);let l=!s&&t.compile?t.compile.call(c.self,a,i,c):t.validate,d=rp(n,o,l),p=n.let("valid");e.block$data(p,f),e.ok((r=t.valid)!==null&&r!==void 0?r:p);function f(){if(t.errors===!1)g(),t.modifying&&tp(e),h(()=>e.error());else{let w=t.async?u():m();t.modifying&&tp(e),h(()=>Aw(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,Ue._)`await `),_=>n.assign(p,!1).if((0,Ue._)`${_} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,Ue._)`${_}.errors`),()=>n.throw(_))),w}function m(){let w=(0,Ue._)`${d}.errors`;return n.assign(w,null),g(Ue.nil),w}function g(w=t.async?(0,Ue._)`await `:Ue.nil){let _=c.opts.passContext?gr.default.this:gr.default.self,v=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,Ue._)`${w}${(0,bw.callValidateCode)(e,d,_,v)}`,t.modifying)}function h(w){var _;n.if((0,Ue.not)((_=t.valid)!==null&&_!==void 0?_:p),w)}}At.funcKeywordCode=_w;function tp(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,Ue._)`${n.parentData}[${n.parentDataProperty}]`))}function Aw(e,t){let{gen:r}=e;r.if((0,Ue._)`Array.isArray(${t})`,()=>{r.assign(gr.default.vErrors,(0,Ue._)`${gr.default.vErrors} === null ? ${t} : ${gr.default.vErrors}.concat(${t})`).assign(gr.default.errors,(0,Ue._)`${gr.default.vErrors}.length`),(0,kw.extendErrors)(e)},()=>e.error())}function Ew({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function rp(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Ue.stringify)(r)})}function Pw(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}At.validSchemaType=Pw;function Nw({schema:e,opts:t,self:r,errSchemaPath:n},o,a){if(Array.isArray(o.keyword)?!o.keyword.includes(a):o.keyword!==a)throw new Error("ajv implementation error");let i=o.dependencies;if(i?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${a}: ${i.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[a])){let c=`keyword "${a}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}At.validateKeywordUsage=Nw});var ap=E(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.extendSubschemaMode=Kt.extendSubschemaData=Kt.getSubschema=void 0;var Et=x(),op=q();function Ow(e,{keyword:t,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:a,topSchemaRef:i}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let s=e.schema[t];return r===void 0?{schema:s,schemaPath:(0,Et._)`${e.schemaPath}${(0,Et.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Et._)`${e.schemaPath}${(0,Et.getProperty)(t)}${(0,Et.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,op.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||a===void 0||i===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:i,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}Kt.getSubschema=Ow;function Sw(e,t,{dataProp:r,dataPropType:n,data:o,dataTypes:a,propertyName:i}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(r!==void 0){let{errorPath:l,dataPathArr:d,opts:p}=t,f=s.let("data",(0,Et._)`${t.data}${(0,Et.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Et.str)`${l}${(0,op.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,Et._)`${r}`,e.dataPathArr=[...d,e.parentDataProperty]}if(o!==void 0){let l=o instanceof Et.Name?o:s.let("data",o,!0);c(l),i!==void 0&&(e.propertyName=i)}a&&(e.dataTypes=a);function c(l){e.data=l,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,l]}}Kt.extendSubschemaData=Sw;function Dw(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:a}){n!==void 0&&(e.compositeRule=n),o!==void 0&&(e.createErrors=o),a!==void 0&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=r}Kt.extendSubschemaMode=Dw});var bs=E((pN,ip)=>{"use strict";ip.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,o,a;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(a=Object.keys(t),n=a.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[o]))return!1;for(o=n;o--!==0;){var i=a[o];if(!e(t[i],r[i]))return!1}return!0}return t!==t&&r!==r}});var cp=E((uN,sp)=>{"use strict";var Yt=sp.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};ra(t,n,o,e,"",e)};Yt.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Yt.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Yt.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Yt.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 ra(e,t,r,n,o,a,i,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,o,a,i,s,c,l);for(var d in n){var p=n[d];if(Array.isArray(p)){if(d in Yt.arrayKeywords)for(var f=0;f<p.length;f++)ra(e,t,r,p[f],o+"/"+d+"/"+f,a,o,d,n,f)}else if(d in Yt.propsKeywords){if(p&&typeof p=="object")for(var u in p)ra(e,t,r,p[u],o+"/"+d+"/"+jw(u),a,o,d,n,u)}else(d in Yt.keywords||e.allKeys&&!(d in Yt.skipKeywords))&&ra(e,t,r,p,o+"/"+d,a,o,d,n)}r(n,o,a,i,s,c,l)}}function jw(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var xn=E(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.getSchemaRefs=Je.resolveUrl=Je.normalizeId=Je._getFullPath=Je.getFullPath=Je.inlineRef=void 0;var $w=q(),Cw=bs(),Tw=cp(),Lw=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function xw(e,t=!0){return typeof e=="boolean"?!0:t===!0?!ks(e):t?lp(e)<=t:!1}Je.inlineRef=xw;var Vw=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ks(e){for(let t in e){if(Vw.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(ks)||typeof r=="object"&&ks(r))return!0}return!1}function lp(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!Lw.has(r)&&(typeof e[r]=="object"&&(0,$w.eachItem)(e[r],n=>t+=lp(n)),t===1/0))return 1/0}return t}function dp(e,t="",r){r!==!1&&(t=Qr(t));let n=e.parse(t);return pp(e,n)}Je.getFullPath=dp;function pp(e,t){return e.serialize(t).split("#")[0]+"#"}Je._getFullPath=pp;var Mw=/#\/?$/;function Qr(e){return e?e.replace(Mw,""):""}Je.normalizeId=Qr;function Uw(e,t,r){return r=Qr(r),e.resolve(t,r)}Je.resolveUrl=Uw;var Fw=/^[a-z_][-a-z0-9._]*$/i;function qw(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=Qr(e[r]||t),a={"":o},i=dp(n,o,!1),s={},c=new Set;return Tw(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=i+f,h=a[m];typeof p[r]=="string"&&(h=w.call(this,p[r])),_.call(this,p.$anchor),_.call(this,p.$dynamicAnchor),a[f]=h;function w(v){let A=this.opts.uriResolver.resolve;if(v=Qr(h?A(h,v):v),c.has(v))throw d(v);c.add(v);let I=this.refs[v];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(p,I.schema,v):v!==Qr(g)&&(v[0]==="#"?(l(p,s[v],v),s[v]=p):this.refs[v]=g),v}function _(v){if(typeof v=="string"){if(!Fw.test(v))throw new Error(`invalid anchor "${v}"`);w.call(this,`#${v}`)}}}),s;function l(p,f,u){if(f!==void 0&&!Cw(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}Je.getSchemaRefs=qw});var Un=E(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.getData=Ht.KeywordCxt=Ht.validateFunctionCode=void 0;var hp=Jd(),up=Ln(),_s=ms(),na=Ln(),Bw=Zd(),Mn=np(),Rs=ap(),O=x(),L=tt(),zw=xn(),Dt=q(),Vn=Tn();function Jw(e){if(Ip(e)&&(vp(e),wp(e))){Kw(e);return}yp(e,()=>(0,hp.topBoolOrEmptySchema)(e))}Ht.validateFunctionCode=Jw;function yp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:o},a){o.code.es5?e.func(t,(0,O._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${fp(r,o)}`),Ww(e,o),e.code(a)}):e.func(t,(0,O._)`${L.default.data}, ${Gw(o)}`,n.$async,()=>e.code(fp(r,o)).code(a))}function Gw(e){return(0,O._)`{${L.default.instancePath}="", ${L.default.parentData}, ${L.default.parentDataProperty}, ${L.default.rootData}=${L.default.data}${e.dynamicRef?(0,O._)`, ${L.default.dynamicAnchors}={}`:O.nil}}={}`}function Ww(e,t){e.if(L.default.valCxt,()=>{e.var(L.default.instancePath,(0,O._)`${L.default.valCxt}.${L.default.instancePath}`),e.var(L.default.parentData,(0,O._)`${L.default.valCxt}.${L.default.parentData}`),e.var(L.default.parentDataProperty,(0,O._)`${L.default.valCxt}.${L.default.parentDataProperty}`),e.var(L.default.rootData,(0,O._)`${L.default.valCxt}.${L.default.rootData}`),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,O._)`${L.default.valCxt}.${L.default.dynamicAnchors}`)},()=>{e.var(L.default.instancePath,(0,O._)`""`),e.var(L.default.parentData,(0,O._)`undefined`),e.var(L.default.parentDataProperty,(0,O._)`undefined`),e.var(L.default.rootData,L.default.data),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,O._)`{}`)})}function Kw(e){let{schema:t,opts:r,gen:n}=e;yp(e,()=>{r.$comment&&t.$comment&&kp(e),Qw(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&Yw(e),bp(e),rI(e)})}function Yw(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,O._)`${r}.evaluated`),t.if((0,O._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,O._)`${e.evaluated}.props`,(0,O._)`undefined`)),t.if((0,O._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,O._)`${e.evaluated}.items`,(0,O._)`undefined`))}function fp(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,O._)`/*# sourceURL=${r} */`:O.nil}function Hw(e,t){if(Ip(e)&&(vp(e),wp(e))){Xw(e,t);return}(0,hp.boolOrEmptySchema)(e,t)}function wp({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function Ip(e){return typeof e.schema!="boolean"}function Xw(e,t){let{schema:r,gen:n,opts:o}=e;o.$comment&&r.$comment&&kp(e),eI(e),tI(e);let a=n.const("_errs",L.default.errors);bp(e,a),n.var(t,(0,O._)`${a} === ${L.default.errors}`)}function vp(e){(0,Dt.checkUnknownRules)(e),Zw(e)}function bp(e,t){if(e.opts.jtd)return mp(e,[],!1,t);let r=(0,up.getSchemaTypes)(e.schema),n=(0,up.coerceAndCheckDataType)(e,r);mp(e,r,!n,t)}function Zw(e){let{schema:t,errSchemaPath:r,opts:n,self:o}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Dt.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function Qw(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Dt.checkStrictMode)(e,"default is ignored in the schema root")}function eI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,zw.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function tI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function kp({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:o}){let a=r.$comment;if(o.$comment===!0)e.code((0,O._)`${L.default.self}.logger.log(${a})`);else if(typeof o.$comment=="function"){let i=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${L.default.self}.opts.$comment(${a}, ${i}, ${s}.schema)`)}}function rI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:o,opts:a}=e;r.$async?t.if((0,O._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,O._)`new ${o}(${L.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,L.default.vErrors),a.unevaluated&&nI(e),t.return((0,O._)`${L.default.errors} === 0`))}function nI({gen:e,evaluated:t,props:r,items:n}){r instanceof O.Name&&e.assign((0,O._)`${t}.props`,r),n instanceof O.Name&&e.assign((0,O._)`${t}.items`,n)}function mp(e,t,r,n){let{gen:o,schema:a,data:i,allErrors:s,opts:c,self:l}=e,{RULES:d}=l;if(a.$ref&&(c.ignoreKeywordsWithRef||!(0,Dt.schemaHasRulesButRef)(a,d))){o.block(()=>_p(e,"$ref",d.all.$ref.definition));return}c.jtd||oI(e,t),o.block(()=>{for(let f of d.rules)p(f);p(d.post)});function p(f){(0,_s.shouldUseGroup)(a,f)&&(f.type?(o.if((0,na.checkDataType)(f.type,i,c.strictNumbers)),gp(e,f),t.length===1&&t[0]===f.type&&r&&(o.else(),(0,na.reportTypeError)(e)),o.endIf()):gp(e,f),s||o.if((0,O._)`${L.default.errors} === ${n||0}`))}}function gp(e,t){let{gen:r,schema:n,opts:{useDefaults:o}}=e;o&&(0,Bw.assignDefaults)(e,t.type),r.block(()=>{for(let a of t.rules)(0,_s.shouldUseRule)(n,a)&&_p(e,a.keyword,a.definition,t.type)})}function oI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(aI(e,t),e.opts.allowUnionTypes||iI(e,t),sI(e,e.dataTypes))}function aI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Rp(e.dataTypes,r)||As(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),lI(e,t)}}function iI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&As(e,"use allowUnionTypes to allow union type keyword")}function sI(e,t){let r=e.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,_s.shouldUseRule)(e.schema,o)){let{type:a}=o.definition;a.length&&!a.some(i=>cI(t,i))&&As(e,`missing type "${a.join(",")}" for keyword "${n}"`)}}}function cI(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Rp(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function lI(e,t){let r=[];for(let n of e.dataTypes)Rp(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function As(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Dt.checkStrictMode)(e,t,e.opts.strictTypes)}var oa=class{constructor(t,r,n){if((0,Mn.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Dt.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",Ap(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Mn.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",L.default.errors))}result(t,r,n){this.failResult((0,O.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,O.not)(t),void 0,r)}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:r}=this;this.fail((0,O._)`${r} !== undefined && (${(0,O.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?Vn.reportExtraError:Vn.reportError)(this,this.def.error,r)}$dataError(){(0,Vn.reportError)(this,this.def.$dataError||Vn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Vn.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=O.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=O.nil,r=O.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:a,def:i}=this;n.if((0,O.or)((0,O._)`${o} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(a.length||i.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==O.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:o,it:a}=this;return(0,O.or)(i(),s());function i(){if(n.length){if(!(r instanceof O.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,O._)`${(0,na.checkDataTypes)(c,r,a.opts.strictNumbers,na.DataType.Wrong)}`}return O.nil}function s(){if(o.validateSchema){let c=t.scopeValue("validate$data",{ref:o.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,Rs.getSubschema)(this.it,t);(0,Rs.extendSubschemaData)(n,this.it,t),(0,Rs.extendSubschemaMode)(n,t);let o={...this.it,...n,items:void 0,props:void 0};return Hw(o,r),o}mergeEvaluated(t,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Dt.mergeEvaluated.props(o,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Dt.mergeEvaluated.items(o,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};Ht.KeywordCxt=oa;function _p(e,t,r,n){let o=new oa(e,r,t);"code"in r?r.code(o,n):o.$data&&r.validate?(0,Mn.funcKeywordCode)(o,r):"macro"in r?(0,Mn.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,Mn.funcKeywordCode)(o,r)}var dI=/^\/(?:[^~]|~0|~1)*$/,pI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ap(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let o,a;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!dI.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,a=L.default.rootData}else{let l=pI.exec(e);if(!l)throw new Error(`Invalid JSON-pointer: ${e}`);let d=+l[1];if(o=l[2],o==="#"){if(d>=t)throw new Error(c("property/index",d));return n[t-d]}if(d>t)throw new Error(c("data",d));if(a=r[t-d],!o)return a}let i=a,s=o.split("/");for(let l of s)l&&(a=(0,O._)`${a}${(0,O.getProperty)((0,Dt.unescapeJsonPointer)(l))}`,i=(0,O._)`${i} && ${a}`);return i;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}Ht.getData=Ap});var aa=E(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});var Es=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Ps.default=Es});var Fn=E(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});var Ns=xn(),Os=class extends Error{constructor(t,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Ns.resolveUrl)(t,r,n),this.missingSchema=(0,Ns.normalizeId)((0,Ns.getFullPath)(t,this.missingRef))}};Ss.default=Os});var qn=E(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.resolveSchema=nt.getCompilingSchema=nt.resolveRef=nt.compileSchema=nt.SchemaEnv=void 0;var mt=x(),uI=aa(),hr=tt(),gt=xn(),Ep=q(),fI=Un(),en=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,gt.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};nt.SchemaEnv=en;function js(e){let t=Pp.call(this,e);if(t)return t;let r=(0,gt.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:a}=this.opts,i=new mt.CodeGen(this.scope,{es5:n,lines:o,ownProperties:a}),s;e.$async&&(s=i.scopeValue("Error",{ref:uI.default,code:(0,mt._)`require("ajv/dist/runtime/validation_error").default`}));let c=i.scopeName("validate");e.validateName=c;let l={gen:i,allErrors:this.opts.allErrors,data:hr.default.data,parentData:hr.default.parentData,parentDataProperty:hr.default.parentDataProperty,dataNames:[hr.default.data],dataPathArr:[mt.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:i.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,mt.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:mt.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,mt._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,fI.validateFunctionCode)(l),i.optimize(this.opts.code.optimize);let p=i.toString();d=`${i.scopeRefs(hr.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${hr.default.self}`,`${hr.default.scope}`,d)(this,this.scope.get());if(this.scope.value(c,{ref:u}),u.errors=null,u.schema=e.schema,u.schemaEnv=e,e.$async&&(u.$async=!0),this.opts.code.source===!0&&(u.source={validateName:c,validateCode:p,scopeValues:i._values}),this.opts.unevaluated){let{props:m,items:g}=l;u.evaluated={props:m instanceof mt.Name?void 0:m,items:g instanceof mt.Name?void 0:g,dynamicProps:m instanceof mt.Name,dynamicItems:g instanceof mt.Name},u.source&&(u.source.evaluated=(0,mt.stringify)(u.evaluated))}return e.validate=u,e}catch(p){throw delete e.validate,delete e.validateName,d&&this.logger.error("Error compiling schema, function code:",d),p}finally{this._compilations.delete(e)}}nt.compileSchema=js;function mI(e,t,r){var n;r=(0,gt.resolveUrl)(this.opts.uriResolver,t,r);let o=e.refs[r];if(o)return o;let a=yI.call(this,e,r);if(a===void 0){let i=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;i&&(a=new en({schema:i,schemaId:s,root:e,baseId:t}))}if(a!==void 0)return e.refs[r]=gI.call(this,a)}nt.resolveRef=mI;function gI(e){return(0,gt.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:js.call(this,e)}function Pp(e){for(let t of this._compilations)if(hI(t,e))return t}nt.getCompilingSchema=Pp;function hI(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function yI(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||ia.call(this,e,t)}function ia(e,t){let r=this.opts.uriResolver.parse(t),n=(0,gt._getFullPath)(this.opts.uriResolver,r),o=(0,gt.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===o)return Ds.call(this,r,e);let a=(0,gt.normalizeId)(n),i=this.refs[a]||this.schemas[a];if(typeof i=="string"){let s=ia.call(this,e,i);return typeof s?.schema!="object"?void 0:Ds.call(this,r,s)}if(typeof i?.schema=="object"){if(i.validate||js.call(this,i),a===(0,gt.normalizeId)(t)){let{schema:s}=i,{schemaId:c}=this.opts,l=s[c];return l&&(o=(0,gt.resolveUrl)(this.opts.uriResolver,o,l)),new en({schema:s,schemaId:c,root:e,baseId:o})}return Ds.call(this,r,i)}}nt.resolveSchema=ia;var wI=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Ds(e,{baseId:t,schema:r,root:n}){var o;if(((o=e.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,Ep.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!wI.has(s)&&l&&(t=(0,gt.resolveUrl)(this.opts.uriResolver,t,l))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,Ep.schemaHasRulesButRef)(r,this.RULES)){let s=(0,gt.resolveUrl)(this.opts.uriResolver,t,r.$ref);a=ia.call(this,n,s)}let{schemaId:i}=this.opts;if(a=a||new en({schema:r,schemaId:i,root:n,baseId:t}),a.schema!==a.root.schema)return a}});var Np=E((wN,II)=>{II.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=E((IN,Cp)=>{"use strict";var vI=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Sp=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),$s=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Dp=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),bI=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Cs(e){let t="",r=0,n=0;for(n=0;n<e.length;n++)if(r=e[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n];break}for(n+=1;n<e.length;n++){if(r=e[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n]}return t}var kI=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Op(e){return e.length=0,!0}function RI(e,t,r){if(e.length){let n=Cs(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function _I(e){let t=0,r={error:!1,address:"",zone:""},n=[],o=[],a=!1,i=!1,s=RI;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(a===!0&&(i=!0),!s(o,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(a=!0),n.push(":");continue}else if(l==="%"){if(!s(o,n,r))break;s=Op}else{o.push(l);continue}}return o.length&&(s===Op?r.zone=o.join(""):i?n.push(o.join("")):n.push(Cs(o))),r.address=n.join(""),r}function jp(e){if(AI(e,":")<2)return{host:e,isIPV6:!1};let t=_I(e);if(t.error)return{host:e,isIPV6:!1};{let r=t.address,n=t.address;return t.zone&&(r+="%"+t.zone,n+="%25"+t.zone),{host:r,isIPV6:!0,escapedHost:n}}}function AI(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function EI(e){let t=e,r=[],n=-1,o=0;for(;o=t.length;){if(o===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.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]==="/")){r.push("/");break}}else if(o===3&&t==="/.."){r.length!==0&&r.pop(),r.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),r.length!==0&&r.pop();continue}}if((n=t.indexOf("/",1))===-1){r.push(t);break}else r.push(t.slice(0,n)),t=t.slice(n)}return r.join("")}var PI={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},NI=/[@/?#:]/g,OI=/[@/?#]/g;function $p(e,t){let r=t?OI:NI;return r.lastIndex=0,e.replace(r,n=>PI[n])}function SI(e,t=!1){if(e.indexOf("%")===-1)return e;let r="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let o=e.slice(n+1,n+3);if($s(o)){let a=o.toUpperCase(),i=String.fromCharCode(parseInt(a,16));t&&Dp(i)?r+=i:r+="%"+a,n+=2;continue}}r+=e[n]}return r}function DI(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if($s(n)){let o=n.toUpperCase(),a=String.fromCharCode(parseInt(o,16));a!=="."&&Dp(a)?t+=a:t+="%"+o,r+=2;continue}}bI(e[r])?t+=e[r]:t+=escape(e[r])}return t}function jI(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if($s(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function $I(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!Sp(r)){let n=jp(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=$p(r,!1)}t.push(r)}return(typeof e.port=="number"||typeof e.port=="string")&&(t.push(":"),t.push(String(e.port))),t.length?t.join(""):void 0}Cp.exports={nonSimpleDomain:kI,recomposeAuthority:$I,reescapeHostDelimiters:$p,normalizePercentEncoding:SI,normalizePathEncoding:DI,escapePreservingEscapes:jI,removeDotSegments:EI,isIPv4:Sp,isUUID:vI,normalizeIPv6:jp,stringArrayToHexStripped:Cs}});var Mp=E((vN,Vp)=>{"use strict";var{isUUID:CI}=Ts(),TI=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,LI=["http","https","ws","wss","urn","urn:uuid"];function xI(e){return LI.indexOf(e)!==-1}function Ls(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 Tp(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function Lp(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 VI(e){return e.secure=Ls(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function MI(e){if((e.port===(Ls(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,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function UI(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(TI);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let o=`${n}:${t.nid||e.nid}`,a=xs(o);e.path=void 0,a&&(e=a.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function FI(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),o=`${r}:${t.nid||n}`,a=xs(o);a&&(e=a.serialize(e,t));let i=e,s=e.nss;return i.path=`${n||t.nid}:${s}`,t.skipEscape=!0,i}function qI(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!CI(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function BI(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var xp={scheme:"http",domainHost:!0,parse:Tp,serialize:Lp},zI={scheme:"https",domainHost:xp.domainHost,parse:Tp,serialize:Lp},sa={scheme:"ws",domainHost:!0,parse:VI,serialize:MI},JI={scheme:"wss",domainHost:sa.domainHost,parse:sa.parse,serialize:sa.serialize},GI={scheme:"urn",parse:UI,serialize:FI,skipNormalize:!0},WI={scheme:"urn:uuid",parse:qI,serialize:BI,skipNormalize:!0},ca={http:xp,https:zI,ws:sa,wss:JI,urn:GI,"urn:uuid":WI};Object.setPrototypeOf(ca,null);function xs(e){return e&&(ca[e]||ca[e.toLowerCase()])||void 0}Vp.exports={wsIsSecure:Ls,SCHEMES:ca,isValidSchemeName:xI,getSchemeHandler:xs}});var zp=E((bN,pa)=>{"use strict";var{normalizeIPv6:KI,removeDotSegments:Bn,recomposeAuthority:YI,normalizePercentEncoding:HI,normalizePathEncoding:XI,escapePreservingEscapes:ZI,reescapeHostDelimiters:QI,isIPv4:ev,nonSimpleDomain:tv}=Ts(),{SCHEMES:rv,getSchemeHandler:Fp}=Mp();function nv(e,t){return typeof e=="string"?e=dv(e,t):typeof e=="object"&&(e=da(yr(e,t),t)),e}function ov(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:a}=la(e,n),{parsed:i,malformedAuthorityOrPort:s}=la(t,n);if(a||s)throw new Error(o.error||i.error||"URI is malformed.");let c=qp(o,i,n,!0);return n.skipEscape=!0,yr(c,n)}function qp(e,t,r,n){let o={};return n||(e=da(yr(e,r),r),t=da(yr(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=Bn(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=Bn(t.path||""),o.query=t.query):(t.path?(t.path[0]==="/"?o.path=Bn(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=Bn(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 av(e,t,r){let n=Up(e,r),o=Up(t,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function yr(e,t){let r={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:""},n=Object.assign({},t),o=[],a=Fp(n.scheme||r.scheme);a&&a.serialize&&a.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=HI(r.path):(r.path=ZI(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let i=YI(r);if(i!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(i),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!a||!a.absolutePath)&&(s=Bn(s)),i===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),o.push(s)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var iv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,sv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,cv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function lv(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 la(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,a=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let i=e.match(sv);i!==null&&i[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let s=e.match(cv);if(s!==null){let l=s[1],d=l.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",o=!0):l.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",o=!0))}let c=e.match(iv);if(c){n.scheme=c[1],n.userinfo=c[3],n.host=c[4],n.port=parseInt(c[5],10),n.path=c[6]||"",n.query=c[7],n.fragment=c[8],isNaN(n.port)&&(n.port=c[5]);let l=lv(n,c);if(l!==void 0&&(n.error=n.error||l,o=!0),n.host)if(ev(n.host)===!1){let f=KI(n.host);n.host=f.host.toLowerCase(),a=f.isIPV6}else a=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let d=Fp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&a===!1&&tv(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(p){n.error=n.error||"Host's domain name can not be converted to ASCII: "+p}if((!d||d&&!d.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=QI(unescape(n.host),a))),n.path&&(n.path=XI(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:o}}function da(e,t){return la(e,t).parsed}function dv(e,t){return Bp(e,t).normalized}function Bp(e,t){let{parsed:r,malformedAuthorityOrPort:n}=la(e,t);return{normalized:n?e:yr(r,t),malformedAuthorityOrPort:n}}function Up(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=Bp(e,t);return n?void 0:r}if(typeof e=="object")return yr(e,t)}var Vs={SCHEMES:rv,normalize:nv,resolve:ov,resolveComponent:qp,equal:av,serialize:yr,parse:da};pa.exports=Vs;pa.exports.default=Vs;pa.exports.fastUri=Vs});var Gp=E(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});var Jp=zp();Jp.code='require("ajv/dist/runtime/uri").default';Ms.default=Jp});var eu=E(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.CodeGen=_e.Name=_e.nil=_e.stringify=_e.str=_e._=_e.KeywordCxt=void 0;var pv=Un();Object.defineProperty(_e,"KeywordCxt",{enumerable:!0,get:function(){return pv.KeywordCxt}});var tn=x();Object.defineProperty(_e,"_",{enumerable:!0,get:function(){return tn._}});Object.defineProperty(_e,"str",{enumerable:!0,get:function(){return tn.str}});Object.defineProperty(_e,"stringify",{enumerable:!0,get:function(){return tn.stringify}});Object.defineProperty(_e,"nil",{enumerable:!0,get:function(){return tn.nil}});Object.defineProperty(_e,"Name",{enumerable:!0,get:function(){return tn.Name}});Object.defineProperty(_e,"CodeGen",{enumerable:!0,get:function(){return tn.CodeGen}});var uv=aa(),Xp=Fn(),fv=fs(),zn=qn(),mv=x(),Jn=xn(),ua=Ln(),Fs=q(),Wp=Np(),gv=Gp(),Zp=(e,t)=>new RegExp(e,t);Zp.code="new RegExp";var hv=["removeAdditional","useDefaults","coerceTypes"],yv=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),wv={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."},Iv={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Kp=200;function vv(e){var t,r,n,o,a,i,s,c,l,d,p,f,u,m,g,h,w,_,v,A,I,R,S,C,ce;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,H=P===!0||P===void 0?1:P||0,ae=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:Zp,Qe=(o=e.uriResolver)!==null&&o!==void 0?o:gv.default;return{strictSchema:(i=(a=e.strictSchema)!==null&&a!==void 0?a:$)!==null&&i!==void 0?i:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(d=(l=e.strictTypes)!==null&&l!==void 0?l:$)!==null&&d!==void 0?d:"log",strictTuples:(f=(p=e.strictTuples)!==null&&p!==void 0?p:$)!==null&&f!==void 0?f:"log",strictRequired:(m=(u=e.strictRequired)!==null&&u!==void 0?u:$)!==null&&m!==void 0?m:!1,code:e.code?{...e.code,optimize:H,regExp:ae}:{optimize:H,regExp:ae},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Kp,loopEnum:(h=e.loopEnum)!==null&&h!==void 0?h:Kp,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(_=e.messages)!==null&&_!==void 0?_:!0,inlineRefs:(v=e.inlineRefs)!==null&&v!==void 0?v:!0,schemaId:(A=e.schemaId)!==null&&A!==void 0?A:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(R=e.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(S=e.validateFormats)!==null&&S!==void 0?S:!0,unicodeRegExp:(C=e.unicodeRegExp)!==null&&C!==void 0?C:!0,int32range:(ce=e.int32range)!==null&&ce!==void 0?ce:!0,uriResolver:Qe}}var Gn=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,...vv(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new mv.ValueScope({scope:{},prefixes:yv,es5:r,lines:n}),this.logger=Ev(t.logger);let o=t.validateFormats;t.validateFormats=!1,this.RULES=(0,fv.getRules)(),Yp.call(this,wv,t,"NOT SUPPORTED"),Yp.call(this,Iv,t,"DEPRECATED","warn"),this._metaOpts=_v.call(this),t.formats&&kv.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Rv.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),bv.call(this),t.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,o=Wp;n==="id"&&(o={...Wp},o.id=o.$id,delete o.$id),r&&t&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,t,r);async function o(d,p){await a.call(this,d.$schema);let f=this._addSchema(d,p);return f.validate||i.call(this,f)}async function a(d){d&&!this.getSchema(d)&&await o.call(this,{$ref:d},!0)}async function i(d){try{return this._compileSchemaEnv(d)}catch(p){if(!(p instanceof Xp.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),i.call(this,d)}}function s({missingSchema:d,missingRef:p}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${p} cannot be resolved`)}async function c(d){let p=await l.call(this,d);this.refs[d]||await a.call(this,p.$schema),this.refs[d]||this.addSchema(p,d,r)}async function l(d){let p=this._loading[d];if(p)return p;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(t,r,n,o=this.opts.validateSchema){if(Array.isArray(t)){for(let i of t)this.addSchema(i,void 0,n,o);return this}let a;if(typeof t=="object"){let{schemaId:i}=this.opts;if(a=t[i],a!==void 0&&typeof a!="string")throw new Error(`schema ${i} must be string`)}return r=(0,Jn.normalizeId)(r||a),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,o,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,t);if(!o&&r){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return o}getSchema(t){let r;for(;typeof(r=Hp.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,o=new zn.SchemaEnv({schema:{},schemaId:n});if(r=zn.resolveSchema.call(this,o,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}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 r=Hp.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,Jn.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Nv.call(this,n,r),!r)return(0,Fs.eachItem)(n,a=>Us.call(this,a)),this;Sv.call(this,r);let o={...r,type:(0,ua.getJSONTypes)(r.type),schemaType:(0,ua.getJSONTypes)(r.schemaType)};return(0,Fs.eachItem)(n,o.type.length===0?a=>Us.call(this,a,o):a=>o.type.forEach(i=>Us.call(this,a,o,i))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let o=n.rules.findIndex(a=>a.keyword===t);o>=0&&n.rules.splice(o,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,a)=>o+r+a)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let o of r){let a=o.split("/").slice(1),i=t;for(let s of a)i=i[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:l}=c.definition,d=i[s];l&&d&&(i[s]=Qp(d))}}return t}_removeAllSchemas(t,r){for(let n in t){let o=t[n];(!r||r.test(n))&&(typeof o=="string"?delete t[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete t[n]))}}_addSchema(t,r,n,o=this.opts.validateSchema,a=this.opts.addUsedSchema){let i,{schemaId:s}=this.opts;if(typeof t=="object")i=t[s];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 c=this._cache.get(t);if(c!==void 0)return c;n=(0,Jn.normalizeId)(i||n);let l=Jn.getSchemaRefs.call(this,t,n);return c=new zn.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),a&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(t,!0),c}_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):zn.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{zn.compileSchema.call(this,t)}finally{this.opts=r}}};Gn.ValidationError=uv.default;Gn.MissingRefError=Xp.default;_e.default=Gn;function Yp(e,t,r,n="error"){for(let o in e){let a=o;a in t&&this.logger[n](`${r}: option ${o}. ${e[a]}`)}}function Hp(e){return e=(0,Jn.normalizeId)(e),this.schemas[e]||this.refs[e]}function bv(){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 kv(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Rv(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 r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function _v(){let e={...this.opts};for(let t of hv)delete e[t];return e}var Av={log(){},warn(){},error(){}};function Ev(e){if(e===!1)return Av;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 Pv=/^[a-z_$][a-z0-9_$:-]*$/i;function Nv(e,t){let{RULES:r}=this;if((0,Fs.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Pv.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function Us(e,t,r){var n;let o=t?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,i=o?a.post:a.rules.find(({type:c})=>c===r);if(i||(i={type:r,rules:[]},a.rules.push(i)),a.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,ua.getJSONTypes)(t.type),schemaType:(0,ua.getJSONTypes)(t.schemaType)}};t.before?Ov.call(this,i,s,t.before):i.rules.push(s),a.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function Ov(e,t,r){let n=e.rules.findIndex(o=>o.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function Sv(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Qp(t)),e.validateSchema=this.compile(t,!0))}var Dv={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Qp(e){return{anyOf:[e,Dv]}}});var tu=E(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});var jv={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};qs.default=jv});var ga=E(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.callRef=wr.getValidate=void 0;var $v=Fn(),ru=rt(),Ge=x(),rn=tt(),nu=qn(),fa=q(),Cv={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:o,schemaEnv:a,validateName:i,opts:s,self:c}=n,{root:l}=a;if((r==="#"||r==="#/")&&o===l.baseId)return p();let d=nu.resolveRef.call(c,l,o,r);if(d===void 0)throw new $v.default(n.opts.uriResolver,o,r);if(d instanceof nu.SchemaEnv)return f(d);return u(d);function p(){if(a===l)return ma(e,i,a,a.$async);let m=t.scopeValue("root",{ref:l});return ma(e,(0,Ge._)`${m}.validate`,l,l.$async)}function f(m){let g=ou(e,m);ma(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,Ge.stringify)(m)}:{ref:m}),h=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:Ge.nil,topSchemaRef:g,errSchemaPath:r},h);e.mergeEvaluated(w),e.ok(h)}}};function ou(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Ge._)`${r.scopeValue("wrapper",{ref:t})}.validate`}wr.getValidate=ou;function ma(e,t,r,n){let{gen:o,it:a}=e,{allErrors:i,schemaEnv:s,opts:c}=a,l=c.passContext?rn.default.this:Ge.nil;n?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=o.let("valid");o.try(()=>{o.code((0,Ge._)`await ${(0,ru.callValidateCode)(e,t,l)}`),u(t),i||o.assign(m,!0)},g=>{o.if((0,Ge._)`!(${g} instanceof ${a.ValidationError})`,()=>o.throw(g)),f(g),i||o.assign(m,!1)}),e.ok(m)}function p(){e.result((0,ru.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,Ge._)`${m}.errors`;o.assign(rn.default.vErrors,(0,Ge._)`${rn.default.vErrors} === null ? ${g} : ${rn.default.vErrors}.concat(${g})`),o.assign(rn.default.errors,(0,Ge._)`${rn.default.vErrors}.length`)}function u(m){var g;if(!a.opts.unevaluated)return;let h=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(a.props!==!0)if(h&&!h.dynamicProps)h.props!==void 0&&(a.props=fa.mergeEvaluated.props(o,h.props,a.props));else{let w=o.var("props",(0,Ge._)`${m}.evaluated.props`);a.props=fa.mergeEvaluated.props(o,w,a.props,Ge.Name)}if(a.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(a.items=fa.mergeEvaluated.items(o,h.items,a.items));else{let w=o.var("items",(0,Ge._)`${m}.evaluated.items`);a.items=fa.mergeEvaluated.items(o,w,a.items,Ge.Name)}}}wr.callRef=ma;wr.default=Cv});var au=E(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});var Tv=tu(),Lv=ga(),xv=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Tv.default,Lv.default];Bs.default=xv});var iu=E(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});var ha=x(),Xt=ha.operators,ya={maximum:{okStr:"<=",ok:Xt.LTE,fail:Xt.GT},minimum:{okStr:">=",ok:Xt.GTE,fail:Xt.LT},exclusiveMaximum:{okStr:"<",ok:Xt.LT,fail:Xt.GTE},exclusiveMinimum:{okStr:">",ok:Xt.GT,fail:Xt.LTE}},Vv={message:({keyword:e,schemaCode:t})=>(0,ha.str)`must be ${ya[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,ha._)`{comparison: ${ya[e].okStr}, limit: ${t}}`},Mv={keyword:Object.keys(ya),type:"number",schemaType:"number",$data:!0,error:Vv,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,ha._)`${r} ${ya[t].fail} ${n} || isNaN(${r})`)}};zs.default=Mv});var su=E(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});var Wn=x(),Uv={message:({schemaCode:e})=>(0,Wn.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,Wn._)`{multipleOf: ${e}}`},Fv={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Uv,code(e){let{gen:t,data:r,schemaCode:n,it:o}=e,a=o.opts.multipleOfPrecision,i=t.let("res"),s=a?(0,Wn._)`Math.abs(Math.round(${i}) - ${i}) > 1e-${a}`:(0,Wn._)`${i} !== parseInt(${i})`;e.fail$data((0,Wn._)`(${n} === 0 || (${i} = ${r}/${n}, ${s}))`)}};Js.default=Fv});var lu=E(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});function cu(e){let t=e.length,r=0,n=0,o;for(;n<t;)r++,o=e.charCodeAt(n++),o>=55296&&o<=56319&&n<t&&(o=e.charCodeAt(n),(o&64512)===56320&&n++);return r}Gs.default=cu;cu.code='require("ajv/dist/runtime/ucs2length").default'});var du=E(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});var Ir=x(),qv=q(),Bv=lu(),zv={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Ir.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Ir._)`{limit: ${e}}`},Jv={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:zv,code(e){let{keyword:t,data:r,schemaCode:n,it:o}=e,a=t==="maxLength"?Ir.operators.GT:Ir.operators.LT,i=o.opts.unicode===!1?(0,Ir._)`${r}.length`:(0,Ir._)`${(0,qv.useFunc)(e.gen,Bv.default)}(${r})`;e.fail$data((0,Ir._)`${i} ${a} ${n}`)}};Ws.default=Jv});var pu=E(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});var Gv=rt(),Wv=q(),nn=x(),Kv={message:({schemaCode:e})=>(0,nn.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,nn._)`{pattern: ${e}}`},Yv={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Kv,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:a,it:i}=e,s=i.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=i.opts.code,l=c.code==="new RegExp"?(0,nn._)`new RegExp`:(0,Wv.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,nn._)`${l}(${a}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,nn._)`!${d}`)}else{let c=(0,Gv.usePattern)(e,o);e.fail$data((0,nn._)`!${c}.test(${r})`)}}};Ks.default=Yv});var uu=E(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var Kn=x(),Hv={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,Kn.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,Kn._)`{limit: ${e}}`},Xv={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Hv,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxProperties"?Kn.operators.GT:Kn.operators.LT;e.fail$data((0,Kn._)`Object.keys(${r}).length ${o} ${n}`)}};Ys.default=Xv});var fu=E(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});var Yn=rt(),Hn=x(),Zv=q(),Qv={message:({params:{missingProperty:e}})=>(0,Hn.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,Hn._)`{missingProperty: ${e}}`},eb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Qv,code(e){let{gen:t,schema:r,schemaCode:n,data:o,$data:a,it:i}=e,{opts:s}=i;if(!a&&r.length===0)return;let c=r.length>=s.loopRequired;if(i.allErrors?l():d(),s.strictRequired){let u=e.parentSchema.properties,{definedProperties:m}=e.it;for(let g of r)if(u?.[g]===void 0&&!m.has(g)){let h=i.schemaEnv.baseId+i.errSchemaPath,w=`required property "${g}" is not defined at "${h}" (strictRequired)`;(0,Zv.checkStrictMode)(i,w,i.opts.strictRequired)}}function l(){if(c||a)e.block$data(Hn.nil,p);else for(let u of r)(0,Yn.checkReportMissingProp)(e,u)}function d(){let u=t.let("missing");if(c||a){let m=t.let("valid",!0);e.block$data(m,()=>f(u,m)),e.ok(m)}else t.if((0,Yn.checkMissingProp)(e,r,u)),(0,Yn.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,Yn.noPropertyInData)(t,o,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,Yn.propertyInData)(t,o,u,s.ownProperties)),t.if((0,Hn.not)(m),()=>{e.error(),t.break()})},Hn.nil)}}};Hs.default=eb});var mu=E(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});var Xn=x(),tb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,Xn.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,Xn._)`{limit: ${e}}`},rb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:tb,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxItems"?Xn.operators.GT:Xn.operators.LT;e.fail$data((0,Xn._)`${r}.length ${o} ${n}`)}};Xs.default=rb});var wa=E(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var gu=bs();gu.code='require("ajv/dist/runtime/equal").default';Zs.default=gu});var hu=E(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var Qs=Ln(),Ae=x(),nb=q(),ob=wa(),ab={message:({params:{i:e,j:t}})=>(0,Ae.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ae._)`{i: ${e}, j: ${t}}`},ib={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:ab,code(e){let{gen:t,data:r,$data:n,schema:o,parentSchema:a,schemaCode:i,it:s}=e;if(!n&&!o)return;let c=t.let("valid"),l=a.items?(0,Qs.getSchemaTypes)(a.items):[];e.block$data(c,d,(0,Ae._)`${i} === false`),e.ok(c);function d(){let m=t.let("i",(0,Ae._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Ae._)`${m} > 1`,()=>(p()?f:u)(m,g))}function p(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let h=t.name("item"),w=(0,Qs.checkDataTypes)(l,h,s.opts.strictNumbers,Qs.DataType.Wrong),_=t.const("indices",(0,Ae._)`{}`);t.for((0,Ae._)`;${m}--;`,()=>{t.let(h,(0,Ae._)`${r}[${m}]`),t.if(w,(0,Ae._)`continue`),l.length>1&&t.if((0,Ae._)`typeof ${h} == "string"`,(0,Ae._)`${h} += "_"`),t.if((0,Ae._)`typeof ${_}[${h}] == "number"`,()=>{t.assign(g,(0,Ae._)`${_}[${h}]`),e.error(),t.assign(c,!1).break()}).code((0,Ae._)`${_}[${h}] = ${m}`)})}function u(m,g){let h=(0,nb.useFunc)(t,ob.default),w=t.name("outer");t.label(w).for((0,Ae._)`;${m}--;`,()=>t.for((0,Ae._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Ae._)`${h}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};ec.default=ib});var yu=E(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var tc=x(),sb=q(),cb=wa(),lb={message:"must be equal to constant",params:({schemaCode:e})=>(0,tc._)`{allowedValue: ${e}}`},db={keyword:"const",$data:!0,error:lb,code(e){let{gen:t,data:r,$data:n,schemaCode:o,schema:a}=e;n||a&&typeof a=="object"?e.fail$data((0,tc._)`!${(0,sb.useFunc)(t,cb.default)}(${r}, ${o})`):e.fail((0,tc._)`${a} !== ${r}`)}};rc.default=db});var wu=E(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var Zn=x(),pb=q(),ub=wa(),fb={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,Zn._)`{allowedValues: ${e}}`},mb={keyword:"enum",schemaType:"array",$data:!0,error:fb,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:a,it:i}=e;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let s=o.length>=i.opts.loopEnum,c,l=()=>c??(c=(0,pb.useFunc)(t,ub.default)),d;if(s||n)d=t.let("valid"),e.block$data(d,p);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let u=t.const("vSchema",a);d=(0,Zn.or)(...o.map((m,g)=>f(u,g)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",a,u=>t.if((0,Zn._)`${l()}(${r}, ${u})`,()=>t.assign(d,!0).break()))}function f(u,m){let g=o[m];return typeof g=="object"&&g!==null?(0,Zn._)`${l()}(${r}, ${u}[${m}])`:(0,Zn._)`${r} === ${g}`}}};nc.default=mb});var Iu=E(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var gb=iu(),hb=su(),yb=du(),wb=pu(),Ib=uu(),vb=fu(),bb=mu(),kb=hu(),Rb=yu(),_b=wu(),Ab=[gb.default,hb.default,yb.default,wb.default,Ib.default,vb.default,bb.default,kb.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Rb.default,_b.default];oc.default=Ab});var ic=E(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});Qn.validateAdditionalItems=void 0;var vr=x(),ac=q(),Eb={message:({params:{len:e}})=>(0,vr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,vr._)`{limit: ${e}}`},Pb={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Eb,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,ac.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}vu(e,n)}};function vu(e,t){let{gen:r,schema:n,data:o,keyword:a,it:i}=e;i.items=!0;let s=r.const("len",(0,vr._)`${o}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,vr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,ac.alwaysValidSchema)(i,n)){let l=r.var("valid",(0,vr._)`${s} <= ${t.length}`);r.if((0,vr.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:a,dataProp:d,dataPropType:ac.Type.Num},l),i.allErrors||r.if((0,vr.not)(l),()=>r.break())})}}Qn.validateAdditionalItems=vu;Qn.default=Pb});var sc=E(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.validateTuple=void 0;var bu=x(),Ia=q(),Nb=rt(),Ob={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return ku(e,"additionalItems",t);r.items=!0,!(0,Ia.alwaysValidSchema)(r,t)&&e.ok((0,Nb.validateArray)(e))}};function ku(e,t,r=e.schema){let{gen:n,parentSchema:o,data:a,keyword:i,it:s}=e;d(o),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=Ia.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,bu._)`${a}.length`);r.forEach((p,f)=>{(0,Ia.alwaysValidSchema)(s,p)||(n.if((0,bu._)`${l} > ${f}`,()=>e.subschema({keyword:i,schemaProp:f,dataProp:f},c)),e.ok(c))});function d(p){let{opts:f,errSchemaPath:u}=s,m=r.length,g=m===p.minItems&&(m===p.maxItems||p[t]===!1);if(f.strictTuples&&!g){let h=`"${i}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,Ia.checkStrictMode)(s,h,f.strictTuples)}}}eo.validateTuple=ku;eo.default=Ob});var Ru=E(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var Sb=sc(),Db={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Sb.validateTuple)(e,"items")};cc.default=Db});var Au=E(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});var _u=x(),jb=q(),$b=rt(),Cb=ic(),Tb={message:({params:{len:e}})=>(0,_u.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,_u._)`{limit: ${e}}`},Lb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Tb,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:o}=r;n.items=!0,!(0,jb.alwaysValidSchema)(n,t)&&(o?(0,Cb.validateAdditionalItems)(e,o):e.ok((0,$b.validateArray)(e)))}};lc.default=Lb});var Eu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var ot=x(),va=q(),xb={message:({params:{min:e,max:t}})=>t===void 0?(0,ot.str)`must contain at least ${e} valid item(s)`:(0,ot.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,ot._)`{minContains: ${e}}`:(0,ot._)`{minContains: ${e}, maxContains: ${t}}`},Vb={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:xb,code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:a}=e,i,s,{minContains:c,maxContains:l}=n;a.opts.next?(i=c===void 0?1:c,s=l):i=1;let d=t.const("len",(0,ot._)`${o}.length`);if(e.setParams({min:i,max:s}),s===void 0&&i===0){(0,va.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&i>s){(0,va.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,va.alwaysValidSchema)(a,r)){let g=(0,ot._)`${d} >= ${i}`;s!==void 0&&(g=(0,ot._)`${g} && ${d} <= ${s}`),e.pass(g);return}a.items=!0;let p=t.name("valid");s===void 0&&i===1?u(p,()=>t.if(p,()=>t.break())):i===0?(t.let(p,!0),s!==void 0&&t.if((0,ot._)`${o}.length > 0`,f)):(t.let(p,!1),f()),e.result(p,()=>e.reset());function f(){let g=t.name("_valid"),h=t.let("count",0);u(g,()=>t.if(g,()=>m(h)))}function u(g,h){t.forRange("i",0,d,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:va.Type.Num,compositeRule:!0},g),h()})}function m(g){t.code((0,ot._)`${g}++`),s===void 0?t.if((0,ot._)`${g} >= ${i}`,()=>t.assign(p,!0).break()):(t.if((0,ot._)`${g} > ${s}`,()=>t.assign(p,!1).break()),i===1?t.assign(p,!0):t.if((0,ot._)`${g} >= ${i}`,()=>t.assign(p,!0)))}}};dc.default=Vb});var ba=E(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.validateSchemaDeps=Pt.validatePropertyDeps=Pt.error=void 0;var pc=x(),Mb=q(),to=rt();Pt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,pc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,pc._)`{property: ${e},
5
+ || ${i} === "boolean" || ${o} === null`).assign(s,(0,V._)`[${o}]`)}}}function iw({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function ys(e,t,r,n=Zr.Correct){let o=n===Zr.Correct?V.operators.EQ:V.operators.NEQ,a;switch(e){case"null":return(0,V._)`${t} ${o} null`;case"array":a=(0,V._)`Array.isArray(${t})`;break;case"object":a=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":a=i((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":a=i();break;default:return(0,V._)`typeof ${t} ${o} ${e}`}return n===Zr.Correct?a:(0,V.not)(a);function i(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Te.checkDataType=ys;function ws(e,t,r,n){if(e.length===1)return ys(e[0],t,r,n);let o,a=(0,Qd.toHash)(e);if(a.array&&a.object){let i=(0,V._)`typeof ${t} != "object"`;o=a.null?i:(0,V._)`!${t} || ${i}`,delete a.null,delete a.array,delete a.object}else o=V.nil;a.number&&delete a.integer;for(let i in a)o=(0,V.and)(o,ys(i,t,r,n));return o}Te.checkDataTypes=ws;var sw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function Is(e){let t=cw(e);(0,tw.reportError)(t,sw)}Te.reportTypeError=Is;function cw(e){let{gen:t,data:r,schema:n}=e,o=(0,Qd.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:e}}});var np=E(ra=>{"use strict";Object.defineProperty(ra,"__esModule",{value:!0});ra.assignDefaults=void 0;var Qr=x(),lw=q();function dw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let o in r)rp(e,o,r[o].default);else t==="array"&&Array.isArray(n)&&n.forEach((o,a)=>rp(e,a,o.default))}ra.assignDefaults=dw;function rp(e,t,r){let{gen:n,compositeRule:o,data:a,opts:i}=e;if(r===void 0)return;let s=(0,Qr._)`${a}${(0,Qr.getProperty)(t)}`;if(o){(0,lw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,Qr._)`${s} === undefined`;i.useDefaults==="empty"&&(c=(0,Qr._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,Qr._)`${s} = ${(0,Qr.stringify)(r)}`)}});var at=E(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.validateUnion=te.validateArray=te.usePattern=te.callValidateCode=te.schemaProperties=te.allSchemaProperties=te.noPropertyInData=te.propertyInData=te.isOwnProperty=te.hasPropFunc=te.reportMissingProp=te.checkMissingProp=te.checkReportMissingProp=void 0;var le=x(),vs=q(),Wt=ot(),pw=q();function uw(e,t){let{gen:r,data:n,it:o}=e;r.if(ks(r,n,t,o.opts.ownProperties),()=>{e.setParams({missingProperty:(0,le._)`${t}`},!0),e.error()})}te.checkReportMissingProp=uw;function fw({gen:e,data:t,it:{opts:r}},n,o){return(0,le.or)(...n.map(a=>(0,le.and)(ks(e,t,a,r.ownProperties),(0,le._)`${o} = ${a}`)))}te.checkMissingProp=fw;function mw(e,t){e.setParams({missingProperty:t},!0),e.error()}te.reportMissingProp=mw;function op(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,le._)`Object.prototype.hasOwnProperty`})}te.hasPropFunc=op;function bs(e,t,r){return(0,le._)`${op(e)}.call(${t}, ${r})`}te.isOwnProperty=bs;function gw(e,t,r,n){let o=(0,le._)`${t}${(0,le.getProperty)(r)} !== undefined`;return n?(0,le._)`${o} && ${bs(e,t,r)}`:o}te.propertyInData=gw;function ks(e,t,r,n){let o=(0,le._)`${t}${(0,le.getProperty)(r)} === undefined`;return n?(0,le.or)(o,(0,le.not)(bs(e,t,r))):o}te.noPropertyInData=ks;function ap(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}te.allSchemaProperties=ap;function hw(e,t){return ap(t).filter(r=>!(0,vs.alwaysValidSchema)(e,t[r]))}te.schemaProperties=hw;function yw({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:a},it:i},s,c,l){let d=l?(0,le._)`${e}, ${t}, ${n}${o}`:t,p=[[Wt.default.instancePath,(0,le.strConcat)(Wt.default.instancePath,a)],[Wt.default.parentData,i.parentData],[Wt.default.parentDataProperty,i.parentDataProperty],[Wt.default.rootData,Wt.default.rootData]];i.opts.dynamicRef&&p.push([Wt.default.dynamicAnchors,Wt.default.dynamicAnchors]);let f=(0,le._)`${d}, ${r.object(...p)}`;return c!==le.nil?(0,le._)`${s}.call(${c}, ${f})`:(0,le._)`${s}(${f})`}te.callValidateCode=yw;var ww=(0,le._)`new RegExp`;function Iw({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:o}=t.code,a=o(r,n);return e.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,le._)`${o.code==="new RegExp"?ww:(0,pw.useFunc)(e,o)}(${r}, ${n})`})}te.usePattern=Iw;function vw(e){let{gen:t,data:r,keyword:n,it:o}=e,a=t.name("valid");if(o.allErrors){let s=t.let("valid",!0);return i(()=>t.assign(s,!1)),s}return t.var(a,!0),i(()=>t.break()),a;function i(s){let c=t.const("len",(0,le._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:vs.Type.Num},a),t.if((0,le.not)(a),s)})}}te.validateArray=vw;function bw(e){let{gen:t,schema:r,keyword:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,vs.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let i=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,l)=>{let d=e.subschema({keyword:n,schemaProp:l,compositeRule:!0},s);t.assign(i,(0,le._)`${i} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,le.not)(i))})),e.result(i,()=>e.reset(),()=>e.error(!0))}te.validateUnion=bw});var cp=E(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.validateKeywordUsage=Et.validSchemaType=Et.funcKeywordCode=Et.macroKeywordCode=void 0;var Fe=x(),gr=ot(),kw=at(),Rw=xn();function _w(e,t){let{gen:r,keyword:n,schema:o,parentSchema:a,it:i}=e,s=t.macro.call(i.self,o,a,i),c=sp(r,n,s);i.opts.validateSchema!==!1&&i.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:Fe.nil,errSchemaPath:`${i.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}Et.macroKeywordCode=_w;function Aw(e,t){var r;let{gen:n,keyword:o,schema:a,parentSchema:i,$data:s,it:c}=e;Pw(c,t);let l=!s&&t.compile?t.compile.call(c.self,a,i,c):t.validate,d=sp(n,o,l),p=n.let("valid");e.block$data(p,f),e.ok((r=t.valid)!==null&&r!==void 0?r:p);function f(){if(t.errors===!1)g(),t.modifying&&ip(e),h(()=>e.error());else{let w=t.async?u():m();t.modifying&&ip(e),h(()=>Ew(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,Fe._)`await `),_=>n.assign(p,!1).if((0,Fe._)`${_} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,Fe._)`${_}.errors`),()=>n.throw(_))),w}function m(){let w=(0,Fe._)`${d}.errors`;return n.assign(w,null),g(Fe.nil),w}function g(w=t.async?(0,Fe._)`await `:Fe.nil){let _=c.opts.passContext?gr.default.this:gr.default.self,v=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,Fe._)`${w}${(0,kw.callValidateCode)(e,d,_,v)}`,t.modifying)}function h(w){var _;n.if((0,Fe.not)((_=t.valid)!==null&&_!==void 0?_:p),w)}}Et.funcKeywordCode=Aw;function ip(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,Fe._)`${n.parentData}[${n.parentDataProperty}]`))}function Ew(e,t){let{gen:r}=e;r.if((0,Fe._)`Array.isArray(${t})`,()=>{r.assign(gr.default.vErrors,(0,Fe._)`${gr.default.vErrors} === null ? ${t} : ${gr.default.vErrors}.concat(${t})`).assign(gr.default.errors,(0,Fe._)`${gr.default.vErrors}.length`),(0,Rw.extendErrors)(e)},()=>e.error())}function Pw({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function sp(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Fe.stringify)(r)})}function Nw(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}Et.validSchemaType=Nw;function Ow({schema:e,opts:t,self:r,errSchemaPath:n},o,a){if(Array.isArray(o.keyword)?!o.keyword.includes(a):o.keyword!==a)throw new Error("ajv implementation error");let i=o.dependencies;if(i?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${a}: ${i.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[a])){let c=`keyword "${a}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Et.validateKeywordUsage=Ow});var dp=E(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.extendSubschemaMode=Kt.extendSubschemaData=Kt.getSubschema=void 0;var Pt=x(),lp=q();function Dw(e,{keyword:t,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:a,topSchemaRef:i}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let s=e.schema[t];return r===void 0?{schema:s,schemaPath:(0,Pt._)`${e.schemaPath}${(0,Pt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Pt._)`${e.schemaPath}${(0,Pt.getProperty)(t)}${(0,Pt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,lp.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||a===void 0||i===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:i,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}Kt.getSubschema=Dw;function Sw(e,t,{dataProp:r,dataPropType:n,data:o,dataTypes:a,propertyName:i}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(r!==void 0){let{errorPath:l,dataPathArr:d,opts:p}=t,f=s.let("data",(0,Pt._)`${t.data}${(0,Pt.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Pt.str)`${l}${(0,lp.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,Pt._)`${r}`,e.dataPathArr=[...d,e.parentDataProperty]}if(o!==void 0){let l=o instanceof Pt.Name?o:s.let("data",o,!0);c(l),i!==void 0&&(e.propertyName=i)}a&&(e.dataTypes=a);function c(l){e.data=l,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,l]}}Kt.extendSubschemaData=Sw;function jw(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:a}){n!==void 0&&(e.compositeRule=n),o!==void 0&&(e.createErrors=o),a!==void 0&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=r}Kt.extendSubschemaMode=jw});var Rs=E((mN,pp)=>{"use strict";pp.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,o,a;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(a=Object.keys(t),n=a.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[o]))return!1;for(o=n;o--!==0;){var i=a[o];if(!e(t[i],r[i]))return!1}return!0}return t!==t&&r!==r}});var fp=E((gN,up)=>{"use strict";var Yt=up.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};na(t,n,o,e,"",e)};Yt.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Yt.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Yt.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Yt.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 na(e,t,r,n,o,a,i,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,o,a,i,s,c,l);for(var d in n){var p=n[d];if(Array.isArray(p)){if(d in Yt.arrayKeywords)for(var f=0;f<p.length;f++)na(e,t,r,p[f],o+"/"+d+"/"+f,a,o,d,n,f)}else if(d in Yt.propsKeywords){if(p&&typeof p=="object")for(var u in p)na(e,t,r,p[u],o+"/"+d+"/"+$w(u),a,o,d,n,u)}else(d in Yt.keywords||e.allKeys&&!(d in Yt.skipKeywords))&&na(e,t,r,p,o+"/"+d,a,o,d,n)}r(n,o,a,i,s,c,l)}}function $w(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Mn=E(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.getSchemaRefs=Ge.resolveUrl=Ge.normalizeId=Ge._getFullPath=Ge.getFullPath=Ge.inlineRef=void 0;var Cw=q(),Tw=Rs(),Lw=fp(),xw=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Vw(e,t=!0){return typeof e=="boolean"?!0:t===!0?!_s(e):t?mp(e)<=t:!1}Ge.inlineRef=Vw;var Mw=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function _s(e){for(let t in e){if(Mw.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(_s)||typeof r=="object"&&_s(r))return!0}return!1}function mp(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!xw.has(r)&&(typeof e[r]=="object"&&(0,Cw.eachItem)(e[r],n=>t+=mp(n)),t===1/0))return 1/0}return t}function gp(e,t="",r){r!==!1&&(t=en(t));let n=e.parse(t);return hp(e,n)}Ge.getFullPath=gp;function hp(e,t){return e.serialize(t).split("#")[0]+"#"}Ge._getFullPath=hp;var Uw=/#\/?$/;function en(e){return e?e.replace(Uw,""):""}Ge.normalizeId=en;function Fw(e,t,r){return r=en(r),e.resolve(t,r)}Ge.resolveUrl=Fw;var qw=/^[a-z_][-a-z0-9._]*$/i;function Bw(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=en(e[r]||t),a={"":o},i=gp(n,o,!1),s={},c=new Set;return Lw(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=i+f,h=a[m];typeof p[r]=="string"&&(h=w.call(this,p[r])),_.call(this,p.$anchor),_.call(this,p.$dynamicAnchor),a[f]=h;function w(v){let A=this.opts.uriResolver.resolve;if(v=en(h?A(h,v):v),c.has(v))throw d(v);c.add(v);let I=this.refs[v];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(p,I.schema,v):v!==en(g)&&(v[0]==="#"?(l(p,s[v],v),s[v]=p):this.refs[v]=g),v}function _(v){if(typeof v=="string"){if(!qw.test(v))throw new Error(`invalid anchor "${v}"`);w.call(this,`#${v}`)}}}),s;function l(p,f,u){if(f!==void 0&&!Tw(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}Ge.getSchemaRefs=Bw});var qn=E(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.getData=Ht.KeywordCxt=Ht.validateFunctionCode=void 0;var bp=Hd(),yp=Vn(),Es=hs(),oa=Vn(),zw=np(),Fn=cp(),As=dp(),O=x(),L=ot(),Jw=Mn(),$t=q(),Un=xn();function Gw(e){if(_p(e)&&(Ap(e),Rp(e))){Yw(e);return}kp(e,()=>(0,bp.topBoolOrEmptySchema)(e))}Ht.validateFunctionCode=Gw;function kp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:o},a){o.code.es5?e.func(t,(0,O._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${wp(r,o)}`),Kw(e,o),e.code(a)}):e.func(t,(0,O._)`${L.default.data}, ${Ww(o)}`,n.$async,()=>e.code(wp(r,o)).code(a))}function Ww(e){return(0,O._)`{${L.default.instancePath}="", ${L.default.parentData}, ${L.default.parentDataProperty}, ${L.default.rootData}=${L.default.data}${e.dynamicRef?(0,O._)`, ${L.default.dynamicAnchors}={}`:O.nil}}={}`}function Kw(e,t){e.if(L.default.valCxt,()=>{e.var(L.default.instancePath,(0,O._)`${L.default.valCxt}.${L.default.instancePath}`),e.var(L.default.parentData,(0,O._)`${L.default.valCxt}.${L.default.parentData}`),e.var(L.default.parentDataProperty,(0,O._)`${L.default.valCxt}.${L.default.parentDataProperty}`),e.var(L.default.rootData,(0,O._)`${L.default.valCxt}.${L.default.rootData}`),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,O._)`${L.default.valCxt}.${L.default.dynamicAnchors}`)},()=>{e.var(L.default.instancePath,(0,O._)`""`),e.var(L.default.parentData,(0,O._)`undefined`),e.var(L.default.parentDataProperty,(0,O._)`undefined`),e.var(L.default.rootData,L.default.data),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,O._)`{}`)})}function Yw(e){let{schema:t,opts:r,gen:n}=e;kp(e,()=>{r.$comment&&t.$comment&&Pp(e),eI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&Hw(e),Ep(e),nI(e)})}function Hw(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,O._)`${r}.evaluated`),t.if((0,O._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,O._)`${e.evaluated}.props`,(0,O._)`undefined`)),t.if((0,O._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,O._)`${e.evaluated}.items`,(0,O._)`undefined`))}function wp(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,O._)`/*# sourceURL=${r} */`:O.nil}function Xw(e,t){if(_p(e)&&(Ap(e),Rp(e))){Zw(e,t);return}(0,bp.boolOrEmptySchema)(e,t)}function Rp({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function _p(e){return typeof e.schema!="boolean"}function Zw(e,t){let{schema:r,gen:n,opts:o}=e;o.$comment&&r.$comment&&Pp(e),tI(e),rI(e);let a=n.const("_errs",L.default.errors);Ep(e,a),n.var(t,(0,O._)`${a} === ${L.default.errors}`)}function Ap(e){(0,$t.checkUnknownRules)(e),Qw(e)}function Ep(e,t){if(e.opts.jtd)return Ip(e,[],!1,t);let r=(0,yp.getSchemaTypes)(e.schema),n=(0,yp.coerceAndCheckDataType)(e,r);Ip(e,r,!n,t)}function Qw(e){let{schema:t,errSchemaPath:r,opts:n,self:o}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,$t.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function eI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,$t.checkStrictMode)(e,"default is ignored in the schema root")}function tI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,Jw.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function rI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function Pp({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:o}){let a=r.$comment;if(o.$comment===!0)e.code((0,O._)`${L.default.self}.logger.log(${a})`);else if(typeof o.$comment=="function"){let i=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${L.default.self}.opts.$comment(${a}, ${i}, ${s}.schema)`)}}function nI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:o,opts:a}=e;r.$async?t.if((0,O._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,O._)`new ${o}(${L.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,L.default.vErrors),a.unevaluated&&oI(e),t.return((0,O._)`${L.default.errors} === 0`))}function oI({gen:e,evaluated:t,props:r,items:n}){r instanceof O.Name&&e.assign((0,O._)`${t}.props`,r),n instanceof O.Name&&e.assign((0,O._)`${t}.items`,n)}function Ip(e,t,r,n){let{gen:o,schema:a,data:i,allErrors:s,opts:c,self:l}=e,{RULES:d}=l;if(a.$ref&&(c.ignoreKeywordsWithRef||!(0,$t.schemaHasRulesButRef)(a,d))){o.block(()=>Op(e,"$ref",d.all.$ref.definition));return}c.jtd||aI(e,t),o.block(()=>{for(let f of d.rules)p(f);p(d.post)});function p(f){(0,Es.shouldUseGroup)(a,f)&&(f.type?(o.if((0,oa.checkDataType)(f.type,i,c.strictNumbers)),vp(e,f),t.length===1&&t[0]===f.type&&r&&(o.else(),(0,oa.reportTypeError)(e)),o.endIf()):vp(e,f),s||o.if((0,O._)`${L.default.errors} === ${n||0}`))}}function vp(e,t){let{gen:r,schema:n,opts:{useDefaults:o}}=e;o&&(0,zw.assignDefaults)(e,t.type),r.block(()=>{for(let a of t.rules)(0,Es.shouldUseRule)(n,a)&&Op(e,a.keyword,a.definition,t.type)})}function aI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(iI(e,t),e.opts.allowUnionTypes||sI(e,t),cI(e,e.dataTypes))}function iI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Np(e.dataTypes,r)||Ps(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),dI(e,t)}}function sI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ps(e,"use allowUnionTypes to allow union type keyword")}function cI(e,t){let r=e.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,Es.shouldUseRule)(e.schema,o)){let{type:a}=o.definition;a.length&&!a.some(i=>lI(t,i))&&Ps(e,`missing type "${a.join(",")}" for keyword "${n}"`)}}}function lI(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Np(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function dI(e,t){let r=[];for(let n of e.dataTypes)Np(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Ps(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,$t.checkStrictMode)(e,t,e.opts.strictTypes)}var aa=class{constructor(t,r,n){if((0,Fn.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,$t.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",Dp(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Fn.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",L.default.errors))}result(t,r,n){this.failResult((0,O.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,O.not)(t),void 0,r)}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:r}=this;this.fail((0,O._)`${r} !== undefined && (${(0,O.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?Un.reportExtraError:Un.reportError)(this,this.def.error,r)}$dataError(){(0,Un.reportError)(this,this.def.$dataError||Un.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Un.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=O.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=O.nil,r=O.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:a,def:i}=this;n.if((0,O.or)((0,O._)`${o} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(a.length||i.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==O.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:o,it:a}=this;return(0,O.or)(i(),s());function i(){if(n.length){if(!(r instanceof O.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,O._)`${(0,oa.checkDataTypes)(c,r,a.opts.strictNumbers,oa.DataType.Wrong)}`}return O.nil}function s(){if(o.validateSchema){let c=t.scopeValue("validate$data",{ref:o.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,As.getSubschema)(this.it,t);(0,As.extendSubschemaData)(n,this.it,t),(0,As.extendSubschemaMode)(n,t);let o={...this.it,...n,items:void 0,props:void 0};return Xw(o,r),o}mergeEvaluated(t,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=$t.mergeEvaluated.props(o,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=$t.mergeEvaluated.items(o,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};Ht.KeywordCxt=aa;function Op(e,t,r,n){let o=new aa(e,r,t);"code"in r?r.code(o,n):o.$data&&r.validate?(0,Fn.funcKeywordCode)(o,r):"macro"in r?(0,Fn.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,Fn.funcKeywordCode)(o,r)}var pI=/^\/(?:[^~]|~0|~1)*$/,uI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Dp(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let o,a;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!pI.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,a=L.default.rootData}else{let l=uI.exec(e);if(!l)throw new Error(`Invalid JSON-pointer: ${e}`);let d=+l[1];if(o=l[2],o==="#"){if(d>=t)throw new Error(c("property/index",d));return n[t-d]}if(d>t)throw new Error(c("data",d));if(a=r[t-d],!o)return a}let i=a,s=o.split("/");for(let l of s)l&&(a=(0,O._)`${a}${(0,O.getProperty)((0,$t.unescapeJsonPointer)(l))}`,i=(0,O._)`${i} && ${a}`);return i;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}Ht.getData=Dp});var ia=E(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});var Ns=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Os.default=Ns});var Bn=E(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});var Ds=Mn(),Ss=class extends Error{constructor(t,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Ds.resolveUrl)(t,r,n),this.missingSchema=(0,Ds.normalizeId)((0,Ds.getFullPath)(t,this.missingRef))}};js.default=Ss});var zn=E(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.resolveSchema=it.getCompilingSchema=it.resolveRef=it.compileSchema=it.SchemaEnv=void 0;var gt=x(),fI=ia(),hr=ot(),ht=Mn(),Sp=q(),mI=qn(),tn=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,ht.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};it.SchemaEnv=tn;function Cs(e){let t=jp.call(this,e);if(t)return t;let r=(0,ht.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:a}=this.opts,i=new gt.CodeGen(this.scope,{es5:n,lines:o,ownProperties:a}),s;e.$async&&(s=i.scopeValue("Error",{ref:fI.default,code:(0,gt._)`require("ajv/dist/runtime/validation_error").default`}));let c=i.scopeName("validate");e.validateName=c;let l={gen:i,allErrors:this.opts.allErrors,data:hr.default.data,parentData:hr.default.parentData,parentDataProperty:hr.default.parentDataProperty,dataNames:[hr.default.data],dataPathArr:[gt.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:i.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,gt.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:gt.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,gt._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,mI.validateFunctionCode)(l),i.optimize(this.opts.code.optimize);let p=i.toString();d=`${i.scopeRefs(hr.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${hr.default.self}`,`${hr.default.scope}`,d)(this,this.scope.get());if(this.scope.value(c,{ref:u}),u.errors=null,u.schema=e.schema,u.schemaEnv=e,e.$async&&(u.$async=!0),this.opts.code.source===!0&&(u.source={validateName:c,validateCode:p,scopeValues:i._values}),this.opts.unevaluated){let{props:m,items:g}=l;u.evaluated={props:m instanceof gt.Name?void 0:m,items:g instanceof gt.Name?void 0:g,dynamicProps:m instanceof gt.Name,dynamicItems:g instanceof gt.Name},u.source&&(u.source.evaluated=(0,gt.stringify)(u.evaluated))}return e.validate=u,e}catch(p){throw delete e.validate,delete e.validateName,d&&this.logger.error("Error compiling schema, function code:",d),p}finally{this._compilations.delete(e)}}it.compileSchema=Cs;function gI(e,t,r){var n;r=(0,ht.resolveUrl)(this.opts.uriResolver,t,r);let o=e.refs[r];if(o)return o;let a=wI.call(this,e,r);if(a===void 0){let i=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;i&&(a=new tn({schema:i,schemaId:s,root:e,baseId:t}))}if(a!==void 0)return e.refs[r]=hI.call(this,a)}it.resolveRef=gI;function hI(e){return(0,ht.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Cs.call(this,e)}function jp(e){for(let t of this._compilations)if(yI(t,e))return t}it.getCompilingSchema=jp;function yI(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function wI(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||sa.call(this,e,t)}function sa(e,t){let r=this.opts.uriResolver.parse(t),n=(0,ht._getFullPath)(this.opts.uriResolver,r),o=(0,ht.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===o)return $s.call(this,r,e);let a=(0,ht.normalizeId)(n),i=this.refs[a]||this.schemas[a];if(typeof i=="string"){let s=sa.call(this,e,i);return typeof s?.schema!="object"?void 0:$s.call(this,r,s)}if(typeof i?.schema=="object"){if(i.validate||Cs.call(this,i),a===(0,ht.normalizeId)(t)){let{schema:s}=i,{schemaId:c}=this.opts,l=s[c];return l&&(o=(0,ht.resolveUrl)(this.opts.uriResolver,o,l)),new tn({schema:s,schemaId:c,root:e,baseId:o})}return $s.call(this,r,i)}}it.resolveSchema=sa;var II=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function $s(e,{baseId:t,schema:r,root:n}){var o;if(((o=e.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,Sp.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!II.has(s)&&l&&(t=(0,ht.resolveUrl)(this.opts.uriResolver,t,l))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,Sp.schemaHasRulesButRef)(r,this.RULES)){let s=(0,ht.resolveUrl)(this.opts.uriResolver,t,r.$ref);a=sa.call(this,n,s)}let{schemaId:i}=this.opts;if(a=a||new tn({schema:r,schemaId:i,root:n,baseId:t}),a.schema!==a.root.schema)return a}});var $p=E((bN,vI)=>{vI.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 xs=E((kN,Mp)=>{"use strict";var bI=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Tp=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),Ts=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Lp=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),kI=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Ls(e){let t="",r=0,n=0;for(n=0;n<e.length;n++)if(r=e[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n];break}for(n+=1;n<e.length;n++){if(r=e[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n]}return t}var RI=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Cp(e){return e.length=0,!0}function _I(e,t,r){if(e.length){let n=Ls(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function AI(e){let t=0,r={error:!1,address:"",zone:""},n=[],o=[],a=!1,i=!1,s=_I;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(a===!0&&(i=!0),!s(o,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(a=!0),n.push(":");continue}else if(l==="%"){if(!s(o,n,r))break;s=Cp}else{o.push(l);continue}}return o.length&&(s===Cp?r.zone=o.join(""):i?n.push(o.join("")):n.push(Ls(o))),r.address=n.join(""),r}function xp(e){if(EI(e,":")<2)return{host:e,isIPV6:!1};let t=AI(e);if(t.error)return{host:e,isIPV6:!1};{let r=t.address,n=t.address;return t.zone&&(r+="%"+t.zone,n+="%25"+t.zone),{host:r,isIPV6:!0,escapedHost:n}}}function EI(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function PI(e){let t=e,r=[],n=-1,o=0;for(;o=t.length;){if(o===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.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]==="/")){r.push("/");break}}else if(o===3&&t==="/.."){r.length!==0&&r.pop(),r.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),r.length!==0&&r.pop();continue}}if((n=t.indexOf("/",1))===-1){r.push(t);break}else r.push(t.slice(0,n)),t=t.slice(n)}return r.join("")}var NI={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},OI=/[@/?#:]/g,DI=/[@/?#]/g;function Vp(e,t){let r=t?DI:OI;return r.lastIndex=0,e.replace(r,n=>NI[n])}function SI(e,t=!1){if(e.indexOf("%")===-1)return e;let r="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let o=e.slice(n+1,n+3);if(Ts(o)){let a=o.toUpperCase(),i=String.fromCharCode(parseInt(a,16));t&&Lp(i)?r+=i:r+="%"+a,n+=2;continue}}r+=e[n]}return r}function jI(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if(Ts(n)){let o=n.toUpperCase(),a=String.fromCharCode(parseInt(o,16));a!=="."&&Lp(a)?t+=a:t+="%"+o,r+=2;continue}}kI(e[r])?t+=e[r]:t+=escape(e[r])}return t}function $I(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if(Ts(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function CI(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!Tp(r)){let n=xp(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=Vp(r,!1)}t.push(r)}return(typeof e.port=="number"||typeof e.port=="string")&&(t.push(":"),t.push(String(e.port))),t.length?t.join(""):void 0}Mp.exports={nonSimpleDomain:RI,recomposeAuthority:CI,reescapeHostDelimiters:Vp,normalizePercentEncoding:SI,normalizePathEncoding:jI,escapePreservingEscapes:$I,removeDotSegments:PI,isIPv4:Tp,isUUID:bI,normalizeIPv6:xp,stringArrayToHexStripped:Ls}});var zp=E((RN,Bp)=>{"use strict";var{isUUID:TI}=xs(),LI=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,xI=["http","https","ws","wss","urn","urn:uuid"];function VI(e){return xI.indexOf(e)!==-1}function Vs(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 Up(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function Fp(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 MI(e){return e.secure=Vs(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function UI(e){if((e.port===(Vs(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,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function FI(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(LI);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let o=`${n}:${t.nid||e.nid}`,a=Ms(o);e.path=void 0,a&&(e=a.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function qI(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),o=`${r}:${t.nid||n}`,a=Ms(o);a&&(e=a.serialize(e,t));let i=e,s=e.nss;return i.path=`${n||t.nid}:${s}`,t.skipEscape=!0,i}function BI(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!TI(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function zI(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var qp={scheme:"http",domainHost:!0,parse:Up,serialize:Fp},JI={scheme:"https",domainHost:qp.domainHost,parse:Up,serialize:Fp},ca={scheme:"ws",domainHost:!0,parse:MI,serialize:UI},GI={scheme:"wss",domainHost:ca.domainHost,parse:ca.parse,serialize:ca.serialize},WI={scheme:"urn",parse:FI,serialize:qI,skipNormalize:!0},KI={scheme:"urn:uuid",parse:BI,serialize:zI,skipNormalize:!0},la={http:qp,https:JI,ws:ca,wss:GI,urn:WI,"urn:uuid":KI};Object.setPrototypeOf(la,null);function Ms(e){return e&&(la[e]||la[e.toLowerCase()])||void 0}Bp.exports={wsIsSecure:Vs,SCHEMES:la,isValidSchemeName:VI,getSchemeHandler:Ms}});var Yp=E((_N,ua)=>{"use strict";var{normalizeIPv6:YI,removeDotSegments:Jn,recomposeAuthority:HI,normalizePercentEncoding:XI,normalizePathEncoding:ZI,escapePreservingEscapes:QI,reescapeHostDelimiters:ev,isIPv4:tv,nonSimpleDomain:rv}=xs(),{SCHEMES:nv,getSchemeHandler:Gp}=zp();function ov(e,t){return typeof e=="string"?e=pv(e,t):typeof e=="object"&&(e=pa(yr(e,t),t)),e}function av(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:a}=da(e,n),{parsed:i,malformedAuthorityOrPort:s}=da(t,n);if(a||s)throw new Error(o.error||i.error||"URI is malformed.");let c=Wp(o,i,n,!0);return n.skipEscape=!0,yr(c,n)}function Wp(e,t,r,n){let o={};return n||(e=pa(yr(e,r),r),t=pa(yr(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=Jn(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=Jn(t.path||""),o.query=t.query):(t.path?(t.path[0]==="/"?o.path=Jn(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=Jn(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 iv(e,t,r){let n=Jp(e,r),o=Jp(t,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function yr(e,t){let r={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:""},n=Object.assign({},t),o=[],a=Gp(n.scheme||r.scheme);a&&a.serialize&&a.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=XI(r.path):(r.path=QI(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let i=HI(r);if(i!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(i),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!a||!a.absolutePath)&&(s=Jn(s)),i===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),o.push(s)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var sv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,cv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,lv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function dv(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 da(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,a=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let i=e.match(cv);i!==null&&i[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let s=e.match(lv);if(s!==null){let l=s[1],d=l.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",o=!0):l.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",o=!0))}let c=e.match(sv);if(c){n.scheme=c[1],n.userinfo=c[3],n.host=c[4],n.port=parseInt(c[5],10),n.path=c[6]||"",n.query=c[7],n.fragment=c[8],isNaN(n.port)&&(n.port=c[5]);let l=dv(n,c);if(l!==void 0&&(n.error=n.error||l,o=!0),n.host)if(tv(n.host)===!1){let f=YI(n.host);n.host=f.host.toLowerCase(),a=f.isIPV6}else a=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let d=Gp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&a===!1&&rv(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(p){n.error=n.error||"Host's domain name can not be converted to ASCII: "+p}if((!d||d&&!d.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=ev(unescape(n.host),a))),n.path&&(n.path=ZI(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:o}}function pa(e,t){return da(e,t).parsed}function pv(e,t){return Kp(e,t).normalized}function Kp(e,t){let{parsed:r,malformedAuthorityOrPort:n}=da(e,t);return{normalized:n?e:yr(r,t),malformedAuthorityOrPort:n}}function Jp(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=Kp(e,t);return n?void 0:r}if(typeof e=="object")return yr(e,t)}var Us={SCHEMES:nv,normalize:ov,resolve:av,resolveComponent:Wp,equal:iv,serialize:yr,parse:pa};ua.exports=Us;ua.exports.default=Us;ua.exports.fastUri=Us});var Xp=E(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});var Hp=Yp();Hp.code='require("ajv/dist/runtime/uri").default';Fs.default=Hp});var au=E(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.CodeGen=_e.Name=_e.nil=_e.stringify=_e.str=_e._=_e.KeywordCxt=void 0;var uv=qn();Object.defineProperty(_e,"KeywordCxt",{enumerable:!0,get:function(){return uv.KeywordCxt}});var rn=x();Object.defineProperty(_e,"_",{enumerable:!0,get:function(){return rn._}});Object.defineProperty(_e,"str",{enumerable:!0,get:function(){return rn.str}});Object.defineProperty(_e,"stringify",{enumerable:!0,get:function(){return rn.stringify}});Object.defineProperty(_e,"nil",{enumerable:!0,get:function(){return rn.nil}});Object.defineProperty(_e,"Name",{enumerable:!0,get:function(){return rn.Name}});Object.defineProperty(_e,"CodeGen",{enumerable:!0,get:function(){return rn.CodeGen}});var fv=ia(),ru=Bn(),mv=gs(),Gn=zn(),gv=x(),Wn=Mn(),fa=Vn(),Bs=q(),Zp=$p(),hv=Xp(),nu=(e,t)=>new RegExp(e,t);nu.code="new RegExp";var yv=["removeAdditional","useDefaults","coerceTypes"],wv=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Iv={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."},vv={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Qp=200;function bv(e){var t,r,n,o,a,i,s,c,l,d,p,f,u,m,g,h,w,_,v,A,I,R,D,C,ce;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,H=P===!0||P===void 0?1:P||0,ae=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:nu,rt=(o=e.uriResolver)!==null&&o!==void 0?o:hv.default;return{strictSchema:(i=(a=e.strictSchema)!==null&&a!==void 0?a:$)!==null&&i!==void 0?i:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(d=(l=e.strictTypes)!==null&&l!==void 0?l:$)!==null&&d!==void 0?d:"log",strictTuples:(f=(p=e.strictTuples)!==null&&p!==void 0?p:$)!==null&&f!==void 0?f:"log",strictRequired:(m=(u=e.strictRequired)!==null&&u!==void 0?u:$)!==null&&m!==void 0?m:!1,code:e.code?{...e.code,optimize:H,regExp:ae}:{optimize:H,regExp:ae},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Qp,loopEnum:(h=e.loopEnum)!==null&&h!==void 0?h:Qp,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(_=e.messages)!==null&&_!==void 0?_:!0,inlineRefs:(v=e.inlineRefs)!==null&&v!==void 0?v:!0,schemaId:(A=e.schemaId)!==null&&A!==void 0?A:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(R=e.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(D=e.validateFormats)!==null&&D!==void 0?D:!0,unicodeRegExp:(C=e.unicodeRegExp)!==null&&C!==void 0?C:!0,int32range:(ce=e.int32range)!==null&&ce!==void 0?ce:!0,uriResolver:rt}}var Kn=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,...bv(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new gv.ValueScope({scope:{},prefixes:wv,es5:r,lines:n}),this.logger=Pv(t.logger);let o=t.validateFormats;t.validateFormats=!1,this.RULES=(0,mv.getRules)(),eu.call(this,Iv,t,"NOT SUPPORTED"),eu.call(this,vv,t,"DEPRECATED","warn"),this._metaOpts=Av.call(this),t.formats&&Rv.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&_v.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),kv.call(this),t.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,o=Zp;n==="id"&&(o={...Zp},o.id=o.$id,delete o.$id),r&&t&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,t,r);async function o(d,p){await a.call(this,d.$schema);let f=this._addSchema(d,p);return f.validate||i.call(this,f)}async function a(d){d&&!this.getSchema(d)&&await o.call(this,{$ref:d},!0)}async function i(d){try{return this._compileSchemaEnv(d)}catch(p){if(!(p instanceof ru.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),i.call(this,d)}}function s({missingSchema:d,missingRef:p}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${p} cannot be resolved`)}async function c(d){let p=await l.call(this,d);this.refs[d]||await a.call(this,p.$schema),this.refs[d]||this.addSchema(p,d,r)}async function l(d){let p=this._loading[d];if(p)return p;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(t,r,n,o=this.opts.validateSchema){if(Array.isArray(t)){for(let i of t)this.addSchema(i,void 0,n,o);return this}let a;if(typeof t=="object"){let{schemaId:i}=this.opts;if(a=t[i],a!==void 0&&typeof a!="string")throw new Error(`schema ${i} must be string`)}return r=(0,Wn.normalizeId)(r||a),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,o,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,t);if(!o&&r){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return o}getSchema(t){let r;for(;typeof(r=tu.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,o=new Gn.SchemaEnv({schema:{},schemaId:n});if(r=Gn.resolveSchema.call(this,o,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}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 r=tu.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,Wn.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Ov.call(this,n,r),!r)return(0,Bs.eachItem)(n,a=>qs.call(this,a)),this;Sv.call(this,r);let o={...r,type:(0,fa.getJSONTypes)(r.type),schemaType:(0,fa.getJSONTypes)(r.schemaType)};return(0,Bs.eachItem)(n,o.type.length===0?a=>qs.call(this,a,o):a=>o.type.forEach(i=>qs.call(this,a,o,i))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let o=n.rules.findIndex(a=>a.keyword===t);o>=0&&n.rules.splice(o,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,a)=>o+r+a)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let o of r){let a=o.split("/").slice(1),i=t;for(let s of a)i=i[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:l}=c.definition,d=i[s];l&&d&&(i[s]=ou(d))}}return t}_removeAllSchemas(t,r){for(let n in t){let o=t[n];(!r||r.test(n))&&(typeof o=="string"?delete t[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete t[n]))}}_addSchema(t,r,n,o=this.opts.validateSchema,a=this.opts.addUsedSchema){let i,{schemaId:s}=this.opts;if(typeof t=="object")i=t[s];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 c=this._cache.get(t);if(c!==void 0)return c;n=(0,Wn.normalizeId)(i||n);let l=Wn.getSchemaRefs.call(this,t,n);return c=new Gn.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),a&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(t,!0),c}_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):Gn.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{Gn.compileSchema.call(this,t)}finally{this.opts=r}}};Kn.ValidationError=fv.default;Kn.MissingRefError=ru.default;_e.default=Kn;function eu(e,t,r,n="error"){for(let o in e){let a=o;a in t&&this.logger[n](`${r}: option ${o}. ${e[a]}`)}}function tu(e){return e=(0,Wn.normalizeId)(e),this.schemas[e]||this.refs[e]}function kv(){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 Rv(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function _v(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 r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function Av(){let e={...this.opts};for(let t of yv)delete e[t];return e}var Ev={log(){},warn(){},error(){}};function Pv(e){if(e===!1)return Ev;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 Nv=/^[a-z_$][a-z0-9_$:-]*$/i;function Ov(e,t){let{RULES:r}=this;if((0,Bs.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Nv.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function qs(e,t,r){var n;let o=t?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,i=o?a.post:a.rules.find(({type:c})=>c===r);if(i||(i={type:r,rules:[]},a.rules.push(i)),a.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,fa.getJSONTypes)(t.type),schemaType:(0,fa.getJSONTypes)(t.schemaType)}};t.before?Dv.call(this,i,s,t.before):i.rules.push(s),a.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function Dv(e,t,r){let n=e.rules.findIndex(o=>o.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function Sv(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=ou(t)),e.validateSchema=this.compile(t,!0))}var jv={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function ou(e){return{anyOf:[e,jv]}}});var iu=E(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});var $v={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};zs.default=$v});var ha=E(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.callRef=wr.getValidate=void 0;var Cv=Bn(),su=at(),We=x(),nn=ot(),cu=zn(),ma=q(),Tv={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:o,schemaEnv:a,validateName:i,opts:s,self:c}=n,{root:l}=a;if((r==="#"||r==="#/")&&o===l.baseId)return p();let d=cu.resolveRef.call(c,l,o,r);if(d===void 0)throw new Cv.default(n.opts.uriResolver,o,r);if(d instanceof cu.SchemaEnv)return f(d);return u(d);function p(){if(a===l)return ga(e,i,a,a.$async);let m=t.scopeValue("root",{ref:l});return ga(e,(0,We._)`${m}.validate`,l,l.$async)}function f(m){let g=lu(e,m);ga(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,We.stringify)(m)}:{ref:m}),h=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:We.nil,topSchemaRef:g,errSchemaPath:r},h);e.mergeEvaluated(w),e.ok(h)}}};function lu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,We._)`${r.scopeValue("wrapper",{ref:t})}.validate`}wr.getValidate=lu;function ga(e,t,r,n){let{gen:o,it:a}=e,{allErrors:i,schemaEnv:s,opts:c}=a,l=c.passContext?nn.default.this:We.nil;n?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=o.let("valid");o.try(()=>{o.code((0,We._)`await ${(0,su.callValidateCode)(e,t,l)}`),u(t),i||o.assign(m,!0)},g=>{o.if((0,We._)`!(${g} instanceof ${a.ValidationError})`,()=>o.throw(g)),f(g),i||o.assign(m,!1)}),e.ok(m)}function p(){e.result((0,su.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,We._)`${m}.errors`;o.assign(nn.default.vErrors,(0,We._)`${nn.default.vErrors} === null ? ${g} : ${nn.default.vErrors}.concat(${g})`),o.assign(nn.default.errors,(0,We._)`${nn.default.vErrors}.length`)}function u(m){var g;if(!a.opts.unevaluated)return;let h=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(a.props!==!0)if(h&&!h.dynamicProps)h.props!==void 0&&(a.props=ma.mergeEvaluated.props(o,h.props,a.props));else{let w=o.var("props",(0,We._)`${m}.evaluated.props`);a.props=ma.mergeEvaluated.props(o,w,a.props,We.Name)}if(a.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(a.items=ma.mergeEvaluated.items(o,h.items,a.items));else{let w=o.var("items",(0,We._)`${m}.evaluated.items`);a.items=ma.mergeEvaluated.items(o,w,a.items,We.Name)}}}wr.callRef=ga;wr.default=Tv});var du=E(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});var Lv=iu(),xv=ha(),Vv=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Lv.default,xv.default];Js.default=Vv});var pu=E(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});var ya=x(),Xt=ya.operators,wa={maximum:{okStr:"<=",ok:Xt.LTE,fail:Xt.GT},minimum:{okStr:">=",ok:Xt.GTE,fail:Xt.LT},exclusiveMaximum:{okStr:"<",ok:Xt.LT,fail:Xt.GTE},exclusiveMinimum:{okStr:">",ok:Xt.GT,fail:Xt.LTE}},Mv={message:({keyword:e,schemaCode:t})=>(0,ya.str)`must be ${wa[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,ya._)`{comparison: ${wa[e].okStr}, limit: ${t}}`},Uv={keyword:Object.keys(wa),type:"number",schemaType:"number",$data:!0,error:Mv,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,ya._)`${r} ${wa[t].fail} ${n} || isNaN(${r})`)}};Gs.default=Uv});var uu=E(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});var Yn=x(),Fv={message:({schemaCode:e})=>(0,Yn.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,Yn._)`{multipleOf: ${e}}`},qv={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Fv,code(e){let{gen:t,data:r,schemaCode:n,it:o}=e,a=o.opts.multipleOfPrecision,i=t.let("res"),s=a?(0,Yn._)`Math.abs(Math.round(${i}) - ${i}) > 1e-${a}`:(0,Yn._)`${i} !== parseInt(${i})`;e.fail$data((0,Yn._)`(${n} === 0 || (${i} = ${r}/${n}, ${s}))`)}};Ws.default=qv});var mu=E(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});function fu(e){let t=e.length,r=0,n=0,o;for(;n<t;)r++,o=e.charCodeAt(n++),o>=55296&&o<=56319&&n<t&&(o=e.charCodeAt(n),(o&64512)===56320&&n++);return r}Ks.default=fu;fu.code='require("ajv/dist/runtime/ucs2length").default'});var gu=E(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var Ir=x(),Bv=q(),zv=mu(),Jv={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Ir.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Ir._)`{limit: ${e}}`},Gv={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Jv,code(e){let{keyword:t,data:r,schemaCode:n,it:o}=e,a=t==="maxLength"?Ir.operators.GT:Ir.operators.LT,i=o.opts.unicode===!1?(0,Ir._)`${r}.length`:(0,Ir._)`${(0,Bv.useFunc)(e.gen,zv.default)}(${r})`;e.fail$data((0,Ir._)`${i} ${a} ${n}`)}};Ys.default=Gv});var hu=E(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});var Wv=at(),Kv=q(),on=x(),Yv={message:({schemaCode:e})=>(0,on.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,on._)`{pattern: ${e}}`},Hv={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Yv,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:a,it:i}=e,s=i.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=i.opts.code,l=c.code==="new RegExp"?(0,on._)`new RegExp`:(0,Kv.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,on._)`${l}(${a}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,on._)`!${d}`)}else{let c=(0,Wv.usePattern)(e,o);e.fail$data((0,on._)`!${c}.test(${r})`)}}};Hs.default=Hv});var yu=E(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});var Hn=x(),Xv={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,Hn.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,Hn._)`{limit: ${e}}`},Zv={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Xv,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxProperties"?Hn.operators.GT:Hn.operators.LT;e.fail$data((0,Hn._)`Object.keys(${r}).length ${o} ${n}`)}};Xs.default=Zv});var wu=E(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var Xn=at(),Zn=x(),Qv=q(),eb={message:({params:{missingProperty:e}})=>(0,Zn.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,Zn._)`{missingProperty: ${e}}`},tb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:eb,code(e){let{gen:t,schema:r,schemaCode:n,data:o,$data:a,it:i}=e,{opts:s}=i;if(!a&&r.length===0)return;let c=r.length>=s.loopRequired;if(i.allErrors?l():d(),s.strictRequired){let u=e.parentSchema.properties,{definedProperties:m}=e.it;for(let g of r)if(u?.[g]===void 0&&!m.has(g)){let h=i.schemaEnv.baseId+i.errSchemaPath,w=`required property "${g}" is not defined at "${h}" (strictRequired)`;(0,Qv.checkStrictMode)(i,w,i.opts.strictRequired)}}function l(){if(c||a)e.block$data(Zn.nil,p);else for(let u of r)(0,Xn.checkReportMissingProp)(e,u)}function d(){let u=t.let("missing");if(c||a){let m=t.let("valid",!0);e.block$data(m,()=>f(u,m)),e.ok(m)}else t.if((0,Xn.checkMissingProp)(e,r,u)),(0,Xn.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,Xn.noPropertyInData)(t,o,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,Xn.propertyInData)(t,o,u,s.ownProperties)),t.if((0,Zn.not)(m),()=>{e.error(),t.break()})},Zn.nil)}}};Zs.default=tb});var Iu=E(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});var Qn=x(),rb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,Qn.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,Qn._)`{limit: ${e}}`},nb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:rb,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxItems"?Qn.operators.GT:Qn.operators.LT;e.fail$data((0,Qn._)`${r}.length ${o} ${n}`)}};Qs.default=nb});var Ia=E(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var vu=Rs();vu.code='require("ajv/dist/runtime/equal").default';ec.default=vu});var bu=E(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var tc=Vn(),Ae=x(),ob=q(),ab=Ia(),ib={message:({params:{i:e,j:t}})=>(0,Ae.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ae._)`{i: ${e}, j: ${t}}`},sb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:ib,code(e){let{gen:t,data:r,$data:n,schema:o,parentSchema:a,schemaCode:i,it:s}=e;if(!n&&!o)return;let c=t.let("valid"),l=a.items?(0,tc.getSchemaTypes)(a.items):[];e.block$data(c,d,(0,Ae._)`${i} === false`),e.ok(c);function d(){let m=t.let("i",(0,Ae._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Ae._)`${m} > 1`,()=>(p()?f:u)(m,g))}function p(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let h=t.name("item"),w=(0,tc.checkDataTypes)(l,h,s.opts.strictNumbers,tc.DataType.Wrong),_=t.const("indices",(0,Ae._)`{}`);t.for((0,Ae._)`;${m}--;`,()=>{t.let(h,(0,Ae._)`${r}[${m}]`),t.if(w,(0,Ae._)`continue`),l.length>1&&t.if((0,Ae._)`typeof ${h} == "string"`,(0,Ae._)`${h} += "_"`),t.if((0,Ae._)`typeof ${_}[${h}] == "number"`,()=>{t.assign(g,(0,Ae._)`${_}[${h}]`),e.error(),t.assign(c,!1).break()}).code((0,Ae._)`${_}[${h}] = ${m}`)})}function u(m,g){let h=(0,ob.useFunc)(t,ab.default),w=t.name("outer");t.label(w).for((0,Ae._)`;${m}--;`,()=>t.for((0,Ae._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Ae._)`${h}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};rc.default=sb});var ku=E(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var nc=x(),cb=q(),lb=Ia(),db={message:"must be equal to constant",params:({schemaCode:e})=>(0,nc._)`{allowedValue: ${e}}`},pb={keyword:"const",$data:!0,error:db,code(e){let{gen:t,data:r,$data:n,schemaCode:o,schema:a}=e;n||a&&typeof a=="object"?e.fail$data((0,nc._)`!${(0,cb.useFunc)(t,lb.default)}(${r}, ${o})`):e.fail((0,nc._)`${a} !== ${r}`)}};oc.default=pb});var Ru=E(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var eo=x(),ub=q(),fb=Ia(),mb={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,eo._)`{allowedValues: ${e}}`},gb={keyword:"enum",schemaType:"array",$data:!0,error:mb,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:a,it:i}=e;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let s=o.length>=i.opts.loopEnum,c,l=()=>c??(c=(0,ub.useFunc)(t,fb.default)),d;if(s||n)d=t.let("valid"),e.block$data(d,p);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let u=t.const("vSchema",a);d=(0,eo.or)(...o.map((m,g)=>f(u,g)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",a,u=>t.if((0,eo._)`${l()}(${r}, ${u})`,()=>t.assign(d,!0).break()))}function f(u,m){let g=o[m];return typeof g=="object"&&g!==null?(0,eo._)`${l()}(${r}, ${u}[${m}])`:(0,eo._)`${r} === ${g}`}}};ac.default=gb});var _u=E(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var hb=pu(),yb=uu(),wb=gu(),Ib=hu(),vb=yu(),bb=wu(),kb=Iu(),Rb=bu(),_b=ku(),Ab=Ru(),Eb=[hb.default,yb.default,wb.default,Ib.default,vb.default,bb.default,kb.default,Rb.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},_b.default,Ab.default];ic.default=Eb});var cc=E(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.validateAdditionalItems=void 0;var vr=x(),sc=q(),Pb={message:({params:{len:e}})=>(0,vr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,vr._)`{limit: ${e}}`},Nb={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Pb,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,sc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}Au(e,n)}};function Au(e,t){let{gen:r,schema:n,data:o,keyword:a,it:i}=e;i.items=!0;let s=r.const("len",(0,vr._)`${o}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,vr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,sc.alwaysValidSchema)(i,n)){let l=r.var("valid",(0,vr._)`${s} <= ${t.length}`);r.if((0,vr.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:a,dataProp:d,dataPropType:sc.Type.Num},l),i.allErrors||r.if((0,vr.not)(l),()=>r.break())})}}to.validateAdditionalItems=Au;to.default=Nb});var lc=E(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.validateTuple=void 0;var Eu=x(),va=q(),Ob=at(),Db={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return Pu(e,"additionalItems",t);r.items=!0,!(0,va.alwaysValidSchema)(r,t)&&e.ok((0,Ob.validateArray)(e))}};function Pu(e,t,r=e.schema){let{gen:n,parentSchema:o,data:a,keyword:i,it:s}=e;d(o),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=va.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,Eu._)`${a}.length`);r.forEach((p,f)=>{(0,va.alwaysValidSchema)(s,p)||(n.if((0,Eu._)`${l} > ${f}`,()=>e.subschema({keyword:i,schemaProp:f,dataProp:f},c)),e.ok(c))});function d(p){let{opts:f,errSchemaPath:u}=s,m=r.length,g=m===p.minItems&&(m===p.maxItems||p[t]===!1);if(f.strictTuples&&!g){let h=`"${i}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,va.checkStrictMode)(s,h,f.strictTuples)}}}ro.validateTuple=Pu;ro.default=Db});var Nu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var Sb=lc(),jb={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Sb.validateTuple)(e,"items")};dc.default=jb});var Du=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var Ou=x(),$b=q(),Cb=at(),Tb=cc(),Lb={message:({params:{len:e}})=>(0,Ou.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Ou._)`{limit: ${e}}`},xb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Lb,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:o}=r;n.items=!0,!(0,$b.alwaysValidSchema)(n,t)&&(o?(0,Tb.validateAdditionalItems)(e,o):e.ok((0,Cb.validateArray)(e)))}};pc.default=xb});var Su=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var st=x(),ba=q(),Vb={message:({params:{min:e,max:t}})=>t===void 0?(0,st.str)`must contain at least ${e} valid item(s)`:(0,st.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,st._)`{minContains: ${e}}`:(0,st._)`{minContains: ${e}, maxContains: ${t}}`},Mb={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Vb,code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:a}=e,i,s,{minContains:c,maxContains:l}=n;a.opts.next?(i=c===void 0?1:c,s=l):i=1;let d=t.const("len",(0,st._)`${o}.length`);if(e.setParams({min:i,max:s}),s===void 0&&i===0){(0,ba.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&i>s){(0,ba.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,ba.alwaysValidSchema)(a,r)){let g=(0,st._)`${d} >= ${i}`;s!==void 0&&(g=(0,st._)`${g} && ${d} <= ${s}`),e.pass(g);return}a.items=!0;let p=t.name("valid");s===void 0&&i===1?u(p,()=>t.if(p,()=>t.break())):i===0?(t.let(p,!0),s!==void 0&&t.if((0,st._)`${o}.length > 0`,f)):(t.let(p,!1),f()),e.result(p,()=>e.reset());function f(){let g=t.name("_valid"),h=t.let("count",0);u(g,()=>t.if(g,()=>m(h)))}function u(g,h){t.forRange("i",0,d,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:ba.Type.Num,compositeRule:!0},g),h()})}function m(g){t.code((0,st._)`${g}++`),s===void 0?t.if((0,st._)`${g} >= ${i}`,()=>t.assign(p,!0).break()):(t.if((0,st._)`${g} > ${s}`,()=>t.assign(p,!1).break()),i===1?t.assign(p,!0):t.if((0,st._)`${g} >= ${i}`,()=>t.assign(p,!0)))}}};uc.default=Mb});var ka=E(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.validateSchemaDeps=Nt.validatePropertyDeps=Nt.error=void 0;var fc=x(),Ub=q(),no=at();Nt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,fc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,fc._)`{property: ${e},
6
6
  missingProperty: ${n},
7
7
  depsCount: ${t},
8
- deps: ${r}}`};var Ub={keyword:"dependencies",type:"object",schemaType:"object",error:Pt.error,code(e){let[t,r]=Fb(e);Pu(e,t),Nu(e,r)}};function Fb({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let o=Array.isArray(e[n])?t:r;o[n]=e[n]}return[t,r]}function Pu(e,t=e.schema){let{gen:r,data:n,it:o}=e;if(Object.keys(t).length===0)return;let a=r.let("missing");for(let i in t){let s=t[i];if(s.length===0)continue;let c=(0,to.propertyInData)(r,n,i,o.opts.ownProperties);e.setParams({property:i,depsCount:s.length,deps:s.join(", ")}),o.allErrors?r.if(c,()=>{for(let l of s)(0,to.checkReportMissingProp)(e,l)}):(r.if((0,pc._)`${c} && (${(0,to.checkMissingProp)(e,s,a)})`),(0,to.reportMissingProp)(e,a),r.else())}}Pt.validatePropertyDeps=Pu;function Nu(e,t=e.schema){let{gen:r,data:n,keyword:o,it:a}=e,i=r.name("valid");for(let s in t)(0,Mb.alwaysValidSchema)(a,t[s])||(r.if((0,to.propertyInData)(r,n,s,a.opts.ownProperties),()=>{let c=e.subschema({keyword:o,schemaProp:s},i);e.mergeValidEvaluated(c,i)},()=>r.var(i,!0)),e.ok(i))}Pt.validateSchemaDeps=Nu;Pt.default=Ub});var Su=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var Ou=x(),qb=q(),Bb={message:"property name must be valid",params:({params:e})=>(0,Ou._)`{propertyName: ${e.propertyName}}`},zb={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Bb,code(e){let{gen:t,schema:r,data:n,it:o}=e;if((0,qb.alwaysValidSchema)(o,r))return;let a=t.name("valid");t.forIn("key",n,i=>{e.setParams({propertyName:i}),e.subschema({keyword:"propertyNames",data:i,dataTypes:["string"],propertyName:i,compositeRule:!0},a),t.if((0,Ou.not)(a),()=>{e.error(!0),o.allErrors||t.break()})}),e.ok(a)}};uc.default=zb});var mc=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var ka=rt(),ht=x(),Jb=tt(),Ra=q(),Gb={message:"must NOT have additional properties",params:({params:e})=>(0,ht._)`{additionalProperty: ${e.additionalProperty}}`},Wb={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Gb,code(e){let{gen:t,schema:r,parentSchema:n,data:o,errsCount:a,it:i}=e;if(!a)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=i;if(i.props=!0,c.removeAdditional!=="all"&&(0,Ra.alwaysValidSchema)(i,r))return;let l=(0,ka.allSchemaProperties)(n.properties),d=(0,ka.allSchemaProperties)(n.patternProperties);p(),e.ok((0,ht._)`${a} === ${Jb.default.errors}`);function p(){t.forIn("key",o,h=>{!l.length&&!d.length?m(h):t.if(f(h),()=>m(h))})}function f(h){let w;if(l.length>8){let _=(0,Ra.schemaRefOrVal)(i,n.properties,"properties");w=(0,ka.isOwnProperty)(t,_,h)}else l.length?w=(0,ht.or)(...l.map(_=>(0,ht._)`${h} === ${_}`)):w=ht.nil;return d.length&&(w=(0,ht.or)(w,...d.map(_=>(0,ht._)`${(0,ka.usePattern)(e,_)}.test(${h})`))),(0,ht.not)(w)}function u(h){t.code((0,ht._)`delete ${o}[${h}]`)}function m(h){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){u(h);return}if(r===!1){e.setParams({additionalProperty:h}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,Ra.alwaysValidSchema)(i,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(h,w,!1),t.if((0,ht.not)(w),()=>{e.reset(),u(h)})):(g(h,w),s||t.if((0,ht.not)(w),()=>t.break()))}}function g(h,w,_){let v={keyword:"additionalProperties",dataProp:h,dataPropType:Ra.Type.Str};_===!1&&Object.assign(v,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(v,w)}}};fc.default=Wb});var $u=E(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var Kb=Un(),Du=rt(),gc=q(),ju=mc(),Yb={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:a}=e;a.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&ju.default.code(new Kb.KeywordCxt(a,ju.default,"additionalProperties"));let i=(0,Du.allSchemaProperties)(r);for(let p of i)a.definedProperties.add(p);a.opts.unevaluated&&i.length&&a.props!==!0&&(a.props=gc.mergeEvaluated.props(t,(0,gc.toHash)(i),a.props));let s=i.filter(p=>!(0,gc.alwaysValidSchema)(a,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)l(p)?d(p):(t.if((0,Du.propertyInData)(t,o,p,a.opts.ownProperties)),d(p),a.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function l(p){return a.opts.useDefaults&&!a.compositeRule&&r[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};hc.default=Yb});var xu=E(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var Cu=rt(),_a=x(),Tu=q(),Lu=q(),Hb={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:o,it:a}=e,{opts:i}=a,s=(0,Cu.allSchemaProperties)(r),c=s.filter(g=>(0,Tu.alwaysValidSchema)(a,r[g]));if(s.length===0||c.length===s.length&&(!a.opts.unevaluated||a.props===!0))return;let l=i.strictSchema&&!i.allowMatchingProperties&&o.properties,d=t.name("valid");a.props!==!0&&!(a.props instanceof _a.Name)&&(a.props=(0,Lu.evaluatedPropsToName)(t,a.props));let{props:p}=a;f();function f(){for(let g of s)l&&u(g),a.allErrors?m(g):(t.var(d,!0),m(g),t.if(d))}function u(g){for(let h in l)new RegExp(g).test(h)&&(0,Tu.checkStrictMode)(a,`property ${h} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,h=>{t.if((0,_a._)`${(0,Cu.usePattern)(e,g)}.test(${h})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:h,dataPropType:Lu.Type.Str},d),a.opts.unevaluated&&p!==!0?t.assign((0,_a._)`${p}[${h}]`,!0):!w&&!a.allErrors&&t.if((0,_a.not)(d),()=>t.break())})})}}};yc.default=Hb});var Vu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var Xb=q(),Zb={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Xb.alwaysValidSchema)(n,r)){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"}};wc.default=Zb});var Mu=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var Qb=rt(),ek={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Qb.validateUnion,error:{message:"must match a schema in anyOf"}};Ic.default=ek});var Uu=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var Aa=x(),tk=q(),rk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Aa._)`{passingSchemas: ${e.passing}}`},nk={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:rk,code(e){let{gen:t,schema:r,parentSchema:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let a=r,i=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(l),e.result(i,()=>e.reset(),()=>e.error(!0));function l(){a.forEach((d,p)=>{let f;(0,tk.alwaysValidSchema)(o,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Aa._)`${c} && ${i}`).assign(i,!1).assign(s,(0,Aa._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(i,!0),t.assign(s,p),f&&e.mergeEvaluated(f,Aa.Name)})})}}};vc.default=nk});var Fu=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var ok=q(),ak={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let o=t.name("valid");r.forEach((a,i)=>{if((0,ok.alwaysValidSchema)(n,a))return;let s=e.subschema({keyword:"allOf",schemaProp:i},o);e.ok(o),e.mergeEvaluated(s)})}};bc.default=ak});var zu=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var Ea=x(),Bu=q(),ik={message:({params:e})=>(0,Ea.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Ea._)`{failingKeyword: ${e.ifClause}}`},sk={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:ik,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,Bu.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=qu(n,"then"),a=qu(n,"else");if(!o&&!a)return;let i=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),o&&a){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,l("then",d),l("else",d))}else o?t.if(s,l("then")):t.if((0,Ea.not)(s),l("else"));e.pass(i,()=>e.error(!0));function c(){let d=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(d)}function l(d,p){return()=>{let f=e.subschema({keyword:d},s);t.assign(i,s),e.mergeValidEvaluated(f,i),p?t.assign(p,(0,Ea._)`${d}`):e.setParams({ifClause:d})}}}};function qu(e,t){let r=e.schema[t];return r!==void 0&&!(0,Bu.alwaysValidSchema)(e,r)}kc.default=sk});var Ju=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var ck=q(),lk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,ck.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Rc.default=lk});var Gu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var dk=ic(),pk=Ru(),uk=sc(),fk=Au(),mk=Eu(),gk=ba(),hk=Su(),yk=mc(),wk=$u(),Ik=xu(),vk=Vu(),bk=Mu(),kk=Uu(),Rk=Fu(),_k=zu(),Ak=Ju();function Ek(e=!1){let t=[vk.default,bk.default,kk.default,Rk.default,_k.default,Ak.default,hk.default,yk.default,gk.default,wk.default,Ik.default];return e?t.push(pk.default,fk.default):t.push(dk.default,uk.default),t.push(mk.default),t}_c.default=Ek});var Ec=E(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.dynamicAnchor=void 0;var Ac=x(),Pk=tt(),Wu=qn(),Nk=ga(),Ok={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Ku(e,e.schema)};function Ku(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let o=(0,Ac._)`${Pk.default.dynamicAnchors}${(0,Ac.getProperty)(t)}`,a=n.errSchemaPath==="#"?n.validateName:Sk(e);r.if((0,Ac._)`!${o}`,()=>r.assign(o,a))}ro.dynamicAnchor=Ku;function Sk(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:o,baseId:a,localRefs:i,meta:s}=t.root,{schemaId:c}=n.opts,l=new Wu.SchemaEnv({schema:r,schemaId:c,root:o,baseId:a,localRefs:i,meta:s});return Wu.compileSchema.call(n,l),(0,Nk.getValidate)(e,l)}ro.default=Ok});var Pc=E(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.dynamicRef=void 0;var Yu=x(),Dk=tt(),Hu=ga(),jk={keyword:"$dynamicRef",schemaType:"string",code:e=>Xu(e,e.schema)};function Xu(e,t){let{gen:r,keyword:n,it:o}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let a=t.slice(1);if(o.allErrors)i();else{let c=r.let("valid",!1);i(c),e.ok(c)}function i(c){if(o.schemaEnv.root.dynamicAnchors[a]){let l=r.let("_v",(0,Yu._)`${Dk.default.dynamicAnchors}${(0,Yu.getProperty)(a)}`);r.if(l,s(l,c),s(o.validateName,c))}else s(o.validateName,c)()}function s(c,l){return l?()=>r.block(()=>{(0,Hu.callRef)(e,c),r.let(l,!0)}):()=>(0,Hu.callRef)(e,c)}}no.dynamicRef=Xu;no.default=jk});var Zu=E(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});var $k=Ec(),Ck=q(),Tk={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,$k.dynamicAnchor)(e,""):(0,Ck.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Nc.default=Tk});var Qu=E(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});var Lk=Pc(),xk={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,Lk.dynamicRef)(e,e.schema)};Oc.default=xk});var ef=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var Vk=Ec(),Mk=Pc(),Uk=Zu(),Fk=Qu(),qk=[Vk.default,Mk.default,Uk.default,Fk.default];Sc.default=qk});var rf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var tf=ba(),Bk={keyword:"dependentRequired",type:"object",schemaType:"object",error:tf.error,code:e=>(0,tf.validatePropertyDeps)(e)};Dc.default=Bk});var nf=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var zk=ba(),Jk={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,zk.validateSchemaDeps)(e)};jc.default=Jk});var of=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var Gk=q(),Wk={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,Gk.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};$c.default=Wk});var af=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var Kk=rf(),Yk=nf(),Hk=of(),Xk=[Kk.default,Yk.default,Hk.default];Cc.default=Xk});var cf=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Zt=x(),sf=q(),Zk=tt(),Qk={message:"must NOT have unevaluated properties",params:({params:e})=>(0,Zt._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},eR={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:Qk,code(e){let{gen:t,schema:r,data:n,errsCount:o,it:a}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:i,props:s}=a;s instanceof Zt.Name?t.if((0,Zt._)`${s} !== true`,()=>t.forIn("key",n,p=>t.if(l(s,p),()=>c(p)))):s!==!0&&t.forIn("key",n,p=>s===void 0?c(p):t.if(d(s,p),()=>c(p))),a.props=!0,e.ok((0,Zt._)`${o} === ${Zk.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),i||t.break();return}if(!(0,sf.alwaysValidSchema)(a,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:sf.Type.Str},f),i||t.if((0,Zt.not)(f),()=>t.break())}}function l(p,f){return(0,Zt._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,Zt._)`${f} !== ${m}`);return(0,Zt.and)(...u)}}};Tc.default=eR});var df=E(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var br=x(),lf=q(),tR={message:({params:{len:e}})=>(0,br.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,br._)`{limit: ${e}}`},rR={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:tR,code(e){let{gen:t,schema:r,data:n,it:o}=e,a=o.items||0;if(a===!0)return;let i=t.const("len",(0,br._)`${n}.length`);if(r===!1)e.setParams({len:a}),e.fail((0,br._)`${i} > ${a}`);else if(typeof r=="object"&&!(0,lf.alwaysValidSchema)(o,r)){let c=t.var("valid",(0,br._)`${i} <= ${a}`);t.if((0,br.not)(c),()=>s(c,a)),e.ok(c)}o.items=!0;function s(c,l){t.forRange("i",l,i,d=>{e.subschema({keyword:"unevaluatedItems",dataProp:d,dataPropType:lf.Type.Num},c),o.allErrors||t.if((0,br.not)(c),()=>t.break())})}}};Lc.default=rR});var pf=E(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var nR=cf(),oR=df(),aR=[nR.default,oR.default];xc.default=aR});var uf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var ye=x(),iR={message:({schemaCode:e})=>(0,ye.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ye._)`{format: ${e}}`},sR={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:iR,code(e,t){let{gen:r,data:n,$data:o,schema:a,schemaCode:i,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:d,self:p}=s;if(!c.validateFormats)return;o?f():u();function f(){let m=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,ye._)`${m}[${i}]`),h=r.let("fType"),w=r.let("format");r.if((0,ye._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(h,(0,ye._)`${g}.type || "string"`).assign(w,(0,ye._)`${g}.validate`),()=>r.assign(h,(0,ye._)`"string"`).assign(w,g)),e.fail$data((0,ye.or)(_(),v()));function _(){return c.strictSchema===!1?ye.nil:(0,ye._)`${i} && !${w}`}function v(){let A=d.$async?(0,ye._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,ye._)`${w}(${n})`,I=(0,ye._)`(typeof ${w} == "function" ? ${A} : ${w}.test(${n}))`;return(0,ye._)`${w} && ${w} !== true && ${h} === ${t} && !${I}`}}function u(){let m=p.formats[a];if(!m){_();return}if(m===!0)return;let[g,h,w]=v(m);g===t&&e.pass(A());function _(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${a}" ignored in schema at path "${l}"`}}function v(I){let R=I instanceof RegExp?(0,ye.regexpCode)(I):c.code.formats?(0,ye._)`${c.code.formats}${(0,ye.getProperty)(a)}`:void 0,S=r.scopeValue("formats",{key:a,ref:I,code:R});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,ye._)`${S}.validate`]:["string",I,S]}function A(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,ye._)`await ${w}(${n})`}return typeof h=="function"?(0,ye._)`${w}(${n})`:(0,ye._)`${w}.test(${n})`}}}};Vc.default=sR});var ff=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var cR=uf(),lR=[cR.default];Mc.default=lR});var mf=E(on=>{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.contentVocabulary=on.metadataVocabulary=void 0;on.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];on.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var hf=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var dR=au(),pR=Iu(),uR=Gu(),fR=ef(),mR=af(),gR=pf(),hR=ff(),gf=mf(),yR=[fR.default,dR.default,pR.default,(0,uR.default)(!0),hR.default,gf.metadataVocabulary,gf.contentVocabulary,mR.default,gR.default];Uc.default=yR});var wf=E(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.DiscrError=void 0;var yf;(function(e){e.Tag="tag",e.Mapping="mapping"})(yf||(Pa.DiscrError=yf={}))});var vf=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var an=x(),Fc=wf(),If=qn(),wR=Fn(),IR=q(),vR={message:({params:{discrError:e,tagName:t}})=>e===Fc.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,an._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},bR={keyword:"discriminator",type:"object",schemaType:"object",error:vR,code(e){let{gen:t,data:r,schema:n,parentSchema:o,it:a}=e,{oneOf:i}=o;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!i)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),l=t.const("tag",(0,an._)`${r}${(0,an.getProperty)(s)}`);t.if((0,an._)`typeof ${l} == "string"`,()=>d(),()=>e.error(!1,{discrError:Fc.DiscrError.Tag,tag:l,tagName:s})),e.ok(c);function d(){let u=f();t.if(!1);for(let m in u)t.elseIf((0,an._)`${l} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:Fc.DiscrError.Mapping,tag:l,tagName:s}),t.endIf()}function p(u){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},m);return e.mergeEvaluated(g,an.Name),m}function f(){var u;let m={},g=w(o),h=!0;for(let A=0;A<i.length;A++){let I=i[A];if(I?.$ref&&!(0,IR.schemaHasRulesButRef)(I,a.self.RULES)){let S=I.$ref;if(I=If.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,S),I instanceof If.SchemaEnv&&(I=I.schema),I===void 0)throw new wR.default(a.opts.uriResolver,a.baseId,S)}let R=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);h=h&&(g||w(I)),_(R,A)}if(!h)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:A}){return Array.isArray(A)&&A.includes(s)}function _(A,I){if(A.const)v(A.const,I);else if(A.enum)for(let R of A.enum)v(R,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function v(A,I){if(typeof A!="string"||A in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[A]=I}}}};qc.default=bR});var bf=E((bO,kR)=>{kR.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 kf=E((kO,RR)=>{RR.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 Rf=E((RO,_R)=>{_R.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 _f=E((_O,AR)=>{AR.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 Af=E((AO,ER)=>{ER.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 Ef=E((EO,PR)=>{PR.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 Pf=E((PO,NR)=>{NR.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 Nf=E((NO,OR)=>{OR.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 Of=E(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var SR=bf(),DR=kf(),jR=Rf(),$R=_f(),CR=Af(),TR=Ef(),LR=Pf(),xR=Nf(),VR=["/properties"];function MR(e){return[SR,DR,jR,$R,CR,t(this,TR),LR,t(this,xR)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,VR):n}}Bc.default=MR});var kr=E((de,Jc)=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.MissingRefError=de.ValidationError=de.CodeGen=de.Name=de.nil=de.stringify=de.str=de._=de.KeywordCxt=de.Ajv2020=void 0;var UR=eu(),FR=hf(),qR=vf(),BR=Of(),zc="https://json-schema.org/draft/2020-12/schema",sn=class extends UR.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),FR.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(qR.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(BR.default.call(this,t),this.refs["http://json-schema.org/schema"]=zc)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(zc)?zc:void 0)}};de.Ajv2020=sn;Jc.exports=de=sn;Jc.exports.Ajv2020=sn;Object.defineProperty(de,"__esModule",{value:!0});de.default=sn;var zR=Un();Object.defineProperty(de,"KeywordCxt",{enumerable:!0,get:function(){return zR.KeywordCxt}});var cn=x();Object.defineProperty(de,"_",{enumerable:!0,get:function(){return cn._}});Object.defineProperty(de,"str",{enumerable:!0,get:function(){return cn.str}});Object.defineProperty(de,"stringify",{enumerable:!0,get:function(){return cn.stringify}});Object.defineProperty(de,"nil",{enumerable:!0,get:function(){return cn.nil}});Object.defineProperty(de,"Name",{enumerable:!0,get:function(){return cn.Name}});Object.defineProperty(de,"CodeGen",{enumerable:!0,get:function(){return cn.CodeGen}});var JR=aa();Object.defineProperty(de,"ValidationError",{enumerable:!0,get:function(){return JR.default}});var GR=Fn();Object.defineProperty(de,"MissingRefError",{enumerable:!0,get:function(){return GR.default}})});import Ve from"node:process";import zt from"node:path";import{spawnSync as K0}from"node:child_process";var Z="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",_t="^sha256:[a-f0-9]{64}$";import{constants as Ga}from"node:fs";import{lstat as k_,mkdir as yn,open as Gf,readFile as uo,realpath as Or,rename as R_,unlink as cl}from"node:fs/promises";import{randomUUID as ll}from"node:crypto";import ke from"node:path";var Sf=Gr(kr(),1);var Ee={type:"string",pattern:_t},WR={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},Gc={type:"string",format:"date-time"},Wc={enum:["typescript.typecheck","vitest.run","typescript.build","npm.pack-dry-run","workspace.structure","capability.assets","node.application-smoke","web.application-build","web.application-smoke","expo.application-config","expo.application-export","react.library-build","next.application-test","next.application-build","next.application-package","next.application-smoke","application.config-contract"]},Df={type:"object",additionalProperties:!1,required:["node","pnpm","typescript"],properties:{node:{type:"string",minLength:1,maxLength:64},pnpm:{type:"string",minLength:1,maxLength:64},typescript:{type:"string",minLength:1,maxLength:64}}},Kc={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","consumerProfile","compatibility","assets","verifiers","exit"],properties:{schemaVersion:{const:1},capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:Ee,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:Z}}}},compatibility:Df,integration:{type:"object",additionalProperties:!1,required:["title","purpose","packages","codeAssets"],properties:{title:{type:"string",minLength:1,maxLength:128},purpose:{type:"string",minLength:1,maxLength:512},packages:{type:"array",items:{type:"object",additionalProperties:!1,required:["packageName","version","usage","imports"],properties:{packageName:{type:"string",minLength:1,maxLength:214},version:{type:"string",minLength:1,maxLength:128},usage:{enum:["runtime","development","build","test"]},imports:{type:"array",items:{type:"object",additionalProperties:!1,required:["importFrom","symbol"],properties:{importFrom:{type:"string",minLength:1,maxLength:214},symbol:{type:"string",minLength:1,maxLength:128},referencePath:{type:"string",minLength:1,maxLength:512}}}}}}},codeAssets:{type:"array",items:{type:"object",additionalProperties:!1,required:["sourcePath","targetPath","ownership"],properties:{sourcePath:{type:"string",minLength:1,maxLength:512},targetPath:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]}}}}}},assets:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["path","ownership","digest","mode"],properties:{path:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]},digest:Ee,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:Z},renderer:{enum:["npm-package-json-v1","npm-package-json-v2","react-component-package-json-v1","nextjs-application-package-json-v1","workspace-root-package-json-v1","node-application-package-json-v1","web-application-package-json-v1","expo-application-package-json-v1","application-config-contract-v1","application-config-binding-v1"]}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:Wc}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},jf={type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",pattern:"^registry\\.[a-z0-9][a-z0-9.-]{1,126}$"},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",maxLength:214},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",maxLength:64},integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]{86}==$"},tarballDigest:Ee,deliveryReceiptId:Ee,usage:{enum:["runtime","development"]}}},{$id:DO,...$f}=Kc,KR={...$f,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...Kc.required,"availability","packageSources"],properties:{...Kc.properties,schemaVersion:{const:2},availability:{oneOf:[{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"local-artifact"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"development-registry"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"available"},visibility:{const:"catalog-consumers"},sourceState:{const:"registry-verified"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","reasonCode"],properties:{maturity:{const:"withdrawn"},visibility:{const:"existing-locks-only"},reasonCode:{type:"string",pattern:"^[A-Z][A-Z0-9_]{2,63}$"}}}]},packageSources:{type:"array",maxItems:128,items:jf}}},YR={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[$f,(()=>{let{$id:e,...t}=KR;return t})()]},Na={$id:"https://schemas.dyyto.dev/platform/verification-result-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","verifierId","result","issuer","commandId","exitCode","stdoutDigest","stderrDigest","startedAt","completedAt","projectStateDigest","runtime"],properties:{schemaVersion:{const:1},verifierId:Wc,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:Wc,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:Ee,stderrDigest:Ee,startedAt:Gc,completedAt:Gc,projectStateDigest:Ee,runtime:Df}},HR={...Na,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Na.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Na.properties,evidenceId:Ee,capabilityId:{type:"string",pattern:Z},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:Ee}},XR={$id:"https://schemas.dyyto.dev/platform/project-adoption-lock.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{enum:[1,2]},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","consumerProfile","appliedPlanId","projectStateDigest","assets","evidenceIds","committedAt"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:Ee,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:Ee,projectStateDigest:Ee,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:Ee,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:Z}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:Ee},committedAt:Gc,packageAdoption:{type:"object",additionalProperties:!1,required:["registryRevisions","sources","packageJsonDigest","lockfileDigest"],properties:{sourceChannel:{enum:["production","development"]},registryRevisions:{type:"array",items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:WR,revision:Ee}}},sources:{type:"array",minItems:1,maxItems:128,items:jf},packageJsonDigest:Ee,lockfileDigest:Ee}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},oo=new Sf.Ajv2020({allErrors:!0,strict:!0});oo.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Sa={capabilityBundleRelease:oo.compile(YR),verificationResult:oo.compile(Na),adoptionEvidence:oo.compile(HR),projectAdoptionLock:oo.compile(XR)},Oa=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Da(e,t,r){if(!t(r))throw new Oa(e,t.errors??[]);return r}var Cf=e=>{let t=Da("capabilityBundleRelease",Sa.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Oa("capabilityBundleRelease",[])},n=t.packageSources;(t.availability.maturity==="candidate"&&t.availability.sourceState==="local-artifact"&&n.length!==0||t.availability.maturity==="candidate"&&t.availability.sourceState==="development-registry"&&n.length===0||t.availability.maturity!=="candidate"&&n.length===0)&&r();let o="",a=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(o)<=0||a.has(c))&&r(),o=c,a.add(c)}let i=t.integration?.packages??[];(t.availability.maturity!=="candidate"||t.availability.sourceState==="development-registry")&&(i.length!==n.length||i.some(s=>!n.some(c=>c.packageName===s.packageName&&c.version===s.version&&c.usage===s.usage)))&&r()}return t},Tf=e=>Da("verificationResult",Sa.verificationResult,e),ao=e=>Da("adoptionEvidence",Sa.adoptionEvidence,e),Fe=e=>Da("projectAdoptionLock",Sa.projectAdoptionLock,e);import{lstat as i_,readFile as Zc,realpath as Qc}from"node:fs/promises";import dn from"node:path";import{createHash as ZR}from"node:crypto";function y(e){return`sha256:${ZR("sha256").update(e).digest("hex")}`}function b(e){return Array.isArray(e)?`[${e.map(b).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${JSON.stringify(r)}:${b(n)}`).join(",")}}`:JSON.stringify(e)}var Nt=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function Lf(e){if(!new RegExp(Z).test(e))throw new Nt("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function ja(e,t){if(e.includes("\r"))throw new Nt("Managed regions require LF newlines");let{begin:r,end:n}=Lf(t),o=e.split(r).length-1,a=e.split(n).length-1;if(o!==1||a!==1)throw new Nt("Managed region markers are unavailable or ambiguous");let i=e.indexOf(r)+r.length,s=e.indexOf(n,i),c=e.slice(i,s);if(/<!-- dyyto:(?:begin|end) /.test(c))throw new Nt("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
9
- `}function xf(e){let{begin:t,end:r}=Lf(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new Nt("Managed regions require LF newlines");let n=e.source.split(t).length-1,o=e.source.split(r).length-1;if(n>1||o>1||n!==o)throw new Nt("Managed region markers are ambiguous");let a=e.content.replace(/^\n+|\n+$/g,"");if(/<!-- dyyto:(?:begin|end) /.test(a))throw new Nt("Managed regions cannot contain nested Dyyto markers");let i=`${t}
8
+ deps: ${r}}`};var Fb={keyword:"dependencies",type:"object",schemaType:"object",error:Nt.error,code(e){let[t,r]=qb(e);ju(e,t),$u(e,r)}};function qb({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let o=Array.isArray(e[n])?t:r;o[n]=e[n]}return[t,r]}function ju(e,t=e.schema){let{gen:r,data:n,it:o}=e;if(Object.keys(t).length===0)return;let a=r.let("missing");for(let i in t){let s=t[i];if(s.length===0)continue;let c=(0,no.propertyInData)(r,n,i,o.opts.ownProperties);e.setParams({property:i,depsCount:s.length,deps:s.join(", ")}),o.allErrors?r.if(c,()=>{for(let l of s)(0,no.checkReportMissingProp)(e,l)}):(r.if((0,fc._)`${c} && (${(0,no.checkMissingProp)(e,s,a)})`),(0,no.reportMissingProp)(e,a),r.else())}}Nt.validatePropertyDeps=ju;function $u(e,t=e.schema){let{gen:r,data:n,keyword:o,it:a}=e,i=r.name("valid");for(let s in t)(0,Ub.alwaysValidSchema)(a,t[s])||(r.if((0,no.propertyInData)(r,n,s,a.opts.ownProperties),()=>{let c=e.subschema({keyword:o,schemaProp:s},i);e.mergeValidEvaluated(c,i)},()=>r.var(i,!0)),e.ok(i))}Nt.validateSchemaDeps=$u;Nt.default=Fb});var Tu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var Cu=x(),Bb=q(),zb={message:"property name must be valid",params:({params:e})=>(0,Cu._)`{propertyName: ${e.propertyName}}`},Jb={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:zb,code(e){let{gen:t,schema:r,data:n,it:o}=e;if((0,Bb.alwaysValidSchema)(o,r))return;let a=t.name("valid");t.forIn("key",n,i=>{e.setParams({propertyName:i}),e.subschema({keyword:"propertyNames",data:i,dataTypes:["string"],propertyName:i,compositeRule:!0},a),t.if((0,Cu.not)(a),()=>{e.error(!0),o.allErrors||t.break()})}),e.ok(a)}};mc.default=Jb});var hc=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var Ra=at(),yt=x(),Gb=ot(),_a=q(),Wb={message:"must NOT have additional properties",params:({params:e})=>(0,yt._)`{additionalProperty: ${e.additionalProperty}}`},Kb={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Wb,code(e){let{gen:t,schema:r,parentSchema:n,data:o,errsCount:a,it:i}=e;if(!a)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=i;if(i.props=!0,c.removeAdditional!=="all"&&(0,_a.alwaysValidSchema)(i,r))return;let l=(0,Ra.allSchemaProperties)(n.properties),d=(0,Ra.allSchemaProperties)(n.patternProperties);p(),e.ok((0,yt._)`${a} === ${Gb.default.errors}`);function p(){t.forIn("key",o,h=>{!l.length&&!d.length?m(h):t.if(f(h),()=>m(h))})}function f(h){let w;if(l.length>8){let _=(0,_a.schemaRefOrVal)(i,n.properties,"properties");w=(0,Ra.isOwnProperty)(t,_,h)}else l.length?w=(0,yt.or)(...l.map(_=>(0,yt._)`${h} === ${_}`)):w=yt.nil;return d.length&&(w=(0,yt.or)(w,...d.map(_=>(0,yt._)`${(0,Ra.usePattern)(e,_)}.test(${h})`))),(0,yt.not)(w)}function u(h){t.code((0,yt._)`delete ${o}[${h}]`)}function m(h){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){u(h);return}if(r===!1){e.setParams({additionalProperty:h}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,_a.alwaysValidSchema)(i,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(h,w,!1),t.if((0,yt.not)(w),()=>{e.reset(),u(h)})):(g(h,w),s||t.if((0,yt.not)(w),()=>t.break()))}}function g(h,w,_){let v={keyword:"additionalProperties",dataProp:h,dataPropType:_a.Type.Str};_===!1&&Object.assign(v,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(v,w)}}};gc.default=Kb});var Vu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var Yb=qn(),Lu=at(),yc=q(),xu=hc(),Hb={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:a}=e;a.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&xu.default.code(new Yb.KeywordCxt(a,xu.default,"additionalProperties"));let i=(0,Lu.allSchemaProperties)(r);for(let p of i)a.definedProperties.add(p);a.opts.unevaluated&&i.length&&a.props!==!0&&(a.props=yc.mergeEvaluated.props(t,(0,yc.toHash)(i),a.props));let s=i.filter(p=>!(0,yc.alwaysValidSchema)(a,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)l(p)?d(p):(t.if((0,Lu.propertyInData)(t,o,p,a.opts.ownProperties)),d(p),a.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function l(p){return a.opts.useDefaults&&!a.compositeRule&&r[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};wc.default=Hb});var qu=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var Mu=at(),Aa=x(),Uu=q(),Fu=q(),Xb={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:o,it:a}=e,{opts:i}=a,s=(0,Mu.allSchemaProperties)(r),c=s.filter(g=>(0,Uu.alwaysValidSchema)(a,r[g]));if(s.length===0||c.length===s.length&&(!a.opts.unevaluated||a.props===!0))return;let l=i.strictSchema&&!i.allowMatchingProperties&&o.properties,d=t.name("valid");a.props!==!0&&!(a.props instanceof Aa.Name)&&(a.props=(0,Fu.evaluatedPropsToName)(t,a.props));let{props:p}=a;f();function f(){for(let g of s)l&&u(g),a.allErrors?m(g):(t.var(d,!0),m(g),t.if(d))}function u(g){for(let h in l)new RegExp(g).test(h)&&(0,Uu.checkStrictMode)(a,`property ${h} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,h=>{t.if((0,Aa._)`${(0,Mu.usePattern)(e,g)}.test(${h})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:h,dataPropType:Fu.Type.Str},d),a.opts.unevaluated&&p!==!0?t.assign((0,Aa._)`${p}[${h}]`,!0):!w&&!a.allErrors&&t.if((0,Aa.not)(d),()=>t.break())})})}}};Ic.default=Xb});var Bu=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var Zb=q(),Qb={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Zb.alwaysValidSchema)(n,r)){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"}};vc.default=Qb});var zu=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var ek=at(),tk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:ek.validateUnion,error:{message:"must match a schema in anyOf"}};bc.default=tk});var Ju=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var Ea=x(),rk=q(),nk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Ea._)`{passingSchemas: ${e.passing}}`},ok={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:nk,code(e){let{gen:t,schema:r,parentSchema:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let a=r,i=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(l),e.result(i,()=>e.reset(),()=>e.error(!0));function l(){a.forEach((d,p)=>{let f;(0,rk.alwaysValidSchema)(o,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Ea._)`${c} && ${i}`).assign(i,!1).assign(s,(0,Ea._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(i,!0),t.assign(s,p),f&&e.mergeEvaluated(f,Ea.Name)})})}}};kc.default=ok});var Gu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var ak=q(),ik={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let o=t.name("valid");r.forEach((a,i)=>{if((0,ak.alwaysValidSchema)(n,a))return;let s=e.subschema({keyword:"allOf",schemaProp:i},o);e.ok(o),e.mergeEvaluated(s)})}};Rc.default=ik});var Yu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var Pa=x(),Ku=q(),sk={message:({params:e})=>(0,Pa.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Pa._)`{failingKeyword: ${e.ifClause}}`},ck={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:sk,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,Ku.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=Wu(n,"then"),a=Wu(n,"else");if(!o&&!a)return;let i=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),o&&a){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,l("then",d),l("else",d))}else o?t.if(s,l("then")):t.if((0,Pa.not)(s),l("else"));e.pass(i,()=>e.error(!0));function c(){let d=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(d)}function l(d,p){return()=>{let f=e.subschema({keyword:d},s);t.assign(i,s),e.mergeValidEvaluated(f,i),p?t.assign(p,(0,Pa._)`${d}`):e.setParams({ifClause:d})}}}};function Wu(e,t){let r=e.schema[t];return r!==void 0&&!(0,Ku.alwaysValidSchema)(e,r)}_c.default=ck});var Hu=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var lk=q(),dk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,lk.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Ac.default=dk});var Xu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var pk=cc(),uk=Nu(),fk=lc(),mk=Du(),gk=Su(),hk=ka(),yk=Tu(),wk=hc(),Ik=Vu(),vk=qu(),bk=Bu(),kk=zu(),Rk=Ju(),_k=Gu(),Ak=Yu(),Ek=Hu();function Pk(e=!1){let t=[bk.default,kk.default,Rk.default,_k.default,Ak.default,Ek.default,yk.default,wk.default,hk.default,Ik.default,vk.default];return e?t.push(uk.default,mk.default):t.push(pk.default,fk.default),t.push(gk.default),t}Ec.default=Pk});var Nc=E(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.dynamicAnchor=void 0;var Pc=x(),Nk=ot(),Zu=zn(),Ok=ha(),Dk={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Qu(e,e.schema)};function Qu(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let o=(0,Pc._)`${Nk.default.dynamicAnchors}${(0,Pc.getProperty)(t)}`,a=n.errSchemaPath==="#"?n.validateName:Sk(e);r.if((0,Pc._)`!${o}`,()=>r.assign(o,a))}oo.dynamicAnchor=Qu;function Sk(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:o,baseId:a,localRefs:i,meta:s}=t.root,{schemaId:c}=n.opts,l=new Zu.SchemaEnv({schema:r,schemaId:c,root:o,baseId:a,localRefs:i,meta:s});return Zu.compileSchema.call(n,l),(0,Ok.getValidate)(e,l)}oo.default=Dk});var Oc=E(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.dynamicRef=void 0;var ef=x(),jk=ot(),tf=ha(),$k={keyword:"$dynamicRef",schemaType:"string",code:e=>rf(e,e.schema)};function rf(e,t){let{gen:r,keyword:n,it:o}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let a=t.slice(1);if(o.allErrors)i();else{let c=r.let("valid",!1);i(c),e.ok(c)}function i(c){if(o.schemaEnv.root.dynamicAnchors[a]){let l=r.let("_v",(0,ef._)`${jk.default.dynamicAnchors}${(0,ef.getProperty)(a)}`);r.if(l,s(l,c),s(o.validateName,c))}else s(o.validateName,c)()}function s(c,l){return l?()=>r.block(()=>{(0,tf.callRef)(e,c),r.let(l,!0)}):()=>(0,tf.callRef)(e,c)}}ao.dynamicRef=rf;ao.default=$k});var nf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var Ck=Nc(),Tk=q(),Lk={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,Ck.dynamicAnchor)(e,""):(0,Tk.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Dc.default=Lk});var of=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var xk=Oc(),Vk={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,xk.dynamicRef)(e,e.schema)};Sc.default=Vk});var af=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var Mk=Nc(),Uk=Oc(),Fk=nf(),qk=of(),Bk=[Mk.default,Uk.default,Fk.default,qk.default];jc.default=Bk});var cf=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var sf=ka(),zk={keyword:"dependentRequired",type:"object",schemaType:"object",error:sf.error,code:e=>(0,sf.validatePropertyDeps)(e)};$c.default=zk});var lf=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var Jk=ka(),Gk={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,Jk.validateSchemaDeps)(e)};Cc.default=Gk});var df=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Wk=q(),Kk={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,Wk.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};Tc.default=Kk});var pf=E(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var Yk=cf(),Hk=lf(),Xk=df(),Zk=[Yk.default,Hk.default,Xk.default];Lc.default=Zk});var ff=E(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var Zt=x(),uf=q(),Qk=ot(),eR={message:"must NOT have unevaluated properties",params:({params:e})=>(0,Zt._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},tR={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:eR,code(e){let{gen:t,schema:r,data:n,errsCount:o,it:a}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:i,props:s}=a;s instanceof Zt.Name?t.if((0,Zt._)`${s} !== true`,()=>t.forIn("key",n,p=>t.if(l(s,p),()=>c(p)))):s!==!0&&t.forIn("key",n,p=>s===void 0?c(p):t.if(d(s,p),()=>c(p))),a.props=!0,e.ok((0,Zt._)`${o} === ${Qk.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),i||t.break();return}if(!(0,uf.alwaysValidSchema)(a,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:uf.Type.Str},f),i||t.if((0,Zt.not)(f),()=>t.break())}}function l(p,f){return(0,Zt._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,Zt._)`${f} !== ${m}`);return(0,Zt.and)(...u)}}};xc.default=tR});var gf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var br=x(),mf=q(),rR={message:({params:{len:e}})=>(0,br.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,br._)`{limit: ${e}}`},nR={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:rR,code(e){let{gen:t,schema:r,data:n,it:o}=e,a=o.items||0;if(a===!0)return;let i=t.const("len",(0,br._)`${n}.length`);if(r===!1)e.setParams({len:a}),e.fail((0,br._)`${i} > ${a}`);else if(typeof r=="object"&&!(0,mf.alwaysValidSchema)(o,r)){let c=t.var("valid",(0,br._)`${i} <= ${a}`);t.if((0,br.not)(c),()=>s(c,a)),e.ok(c)}o.items=!0;function s(c,l){t.forRange("i",l,i,d=>{e.subschema({keyword:"unevaluatedItems",dataProp:d,dataPropType:mf.Type.Num},c),o.allErrors||t.if((0,br.not)(c),()=>t.break())})}}};Vc.default=nR});var hf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var oR=ff(),aR=gf(),iR=[oR.default,aR.default];Mc.default=iR});var yf=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var ye=x(),sR={message:({schemaCode:e})=>(0,ye.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ye._)`{format: ${e}}`},cR={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:sR,code(e,t){let{gen:r,data:n,$data:o,schema:a,schemaCode:i,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:d,self:p}=s;if(!c.validateFormats)return;o?f():u();function f(){let m=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,ye._)`${m}[${i}]`),h=r.let("fType"),w=r.let("format");r.if((0,ye._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(h,(0,ye._)`${g}.type || "string"`).assign(w,(0,ye._)`${g}.validate`),()=>r.assign(h,(0,ye._)`"string"`).assign(w,g)),e.fail$data((0,ye.or)(_(),v()));function _(){return c.strictSchema===!1?ye.nil:(0,ye._)`${i} && !${w}`}function v(){let A=d.$async?(0,ye._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,ye._)`${w}(${n})`,I=(0,ye._)`(typeof ${w} == "function" ? ${A} : ${w}.test(${n}))`;return(0,ye._)`${w} && ${w} !== true && ${h} === ${t} && !${I}`}}function u(){let m=p.formats[a];if(!m){_();return}if(m===!0)return;let[g,h,w]=v(m);g===t&&e.pass(A());function _(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${a}" ignored in schema at path "${l}"`}}function v(I){let R=I instanceof RegExp?(0,ye.regexpCode)(I):c.code.formats?(0,ye._)`${c.code.formats}${(0,ye.getProperty)(a)}`:void 0,D=r.scopeValue("formats",{key:a,ref:I,code:R});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,ye._)`${D}.validate`]:["string",I,D]}function A(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,ye._)`await ${w}(${n})`}return typeof h=="function"?(0,ye._)`${w}(${n})`:(0,ye._)`${w}.test(${n})`}}}};Uc.default=cR});var wf=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var lR=yf(),dR=[lR.default];Fc.default=dR});var If=E(an=>{"use strict";Object.defineProperty(an,"__esModule",{value:!0});an.contentVocabulary=an.metadataVocabulary=void 0;an.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];an.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var bf=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var pR=du(),uR=_u(),fR=Xu(),mR=af(),gR=pf(),hR=hf(),yR=wf(),vf=If(),wR=[mR.default,pR.default,uR.default,(0,fR.default)(!0),yR.default,vf.metadataVocabulary,vf.contentVocabulary,gR.default,hR.default];qc.default=wR});var Rf=E(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.DiscrError=void 0;var kf;(function(e){e.Tag="tag",e.Mapping="mapping"})(kf||(Na.DiscrError=kf={}))});var Af=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var sn=x(),Bc=Rf(),_f=zn(),IR=Bn(),vR=q(),bR={message:({params:{discrError:e,tagName:t}})=>e===Bc.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,sn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},kR={keyword:"discriminator",type:"object",schemaType:"object",error:bR,code(e){let{gen:t,data:r,schema:n,parentSchema:o,it:a}=e,{oneOf:i}=o;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!i)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),l=t.const("tag",(0,sn._)`${r}${(0,sn.getProperty)(s)}`);t.if((0,sn._)`typeof ${l} == "string"`,()=>d(),()=>e.error(!1,{discrError:Bc.DiscrError.Tag,tag:l,tagName:s})),e.ok(c);function d(){let u=f();t.if(!1);for(let m in u)t.elseIf((0,sn._)`${l} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:Bc.DiscrError.Mapping,tag:l,tagName:s}),t.endIf()}function p(u){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},m);return e.mergeEvaluated(g,sn.Name),m}function f(){var u;let m={},g=w(o),h=!0;for(let A=0;A<i.length;A++){let I=i[A];if(I?.$ref&&!(0,vR.schemaHasRulesButRef)(I,a.self.RULES)){let D=I.$ref;if(I=_f.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,D),I instanceof _f.SchemaEnv&&(I=I.schema),I===void 0)throw new IR.default(a.opts.uriResolver,a.baseId,D)}let R=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);h=h&&(g||w(I)),_(R,A)}if(!h)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:A}){return Array.isArray(A)&&A.includes(s)}function _(A,I){if(A.const)v(A.const,I);else if(A.enum)for(let R of A.enum)v(R,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function v(A,I){if(typeof A!="string"||A in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[A]=I}}}};zc.default=kR});var Ef=E((_O,RR)=>{RR.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 Pf=E((AO,_R)=>{_R.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 Nf=E((EO,AR)=>{AR.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 Of=E((PO,ER)=>{ER.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 Df=E((NO,PR)=>{PR.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 Sf=E((OO,NR)=>{NR.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 jf=E((DO,OR)=>{OR.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 $f=E((SO,DR)=>{DR.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 Cf=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var SR=Ef(),jR=Pf(),$R=Nf(),CR=Of(),TR=Df(),LR=Sf(),xR=jf(),VR=$f(),MR=["/properties"];function UR(e){return[SR,jR,$R,CR,TR,t(this,LR),xR,t(this,VR)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,MR):n}}Jc.default=UR});var kr=E((de,Wc)=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.MissingRefError=de.ValidationError=de.CodeGen=de.Name=de.nil=de.stringify=de.str=de._=de.KeywordCxt=de.Ajv2020=void 0;var FR=au(),qR=bf(),BR=Af(),zR=Cf(),Gc="https://json-schema.org/draft/2020-12/schema",cn=class extends FR.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),qR.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(BR.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(zR.default.call(this,t),this.refs["http://json-schema.org/schema"]=Gc)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Gc)?Gc:void 0)}};de.Ajv2020=cn;Wc.exports=de=cn;Wc.exports.Ajv2020=cn;Object.defineProperty(de,"__esModule",{value:!0});de.default=cn;var JR=qn();Object.defineProperty(de,"KeywordCxt",{enumerable:!0,get:function(){return JR.KeywordCxt}});var ln=x();Object.defineProperty(de,"_",{enumerable:!0,get:function(){return ln._}});Object.defineProperty(de,"str",{enumerable:!0,get:function(){return ln.str}});Object.defineProperty(de,"stringify",{enumerable:!0,get:function(){return ln.stringify}});Object.defineProperty(de,"nil",{enumerable:!0,get:function(){return ln.nil}});Object.defineProperty(de,"Name",{enumerable:!0,get:function(){return ln.Name}});Object.defineProperty(de,"CodeGen",{enumerable:!0,get:function(){return ln.CodeGen}});var GR=ia();Object.defineProperty(de,"ValidationError",{enumerable:!0,get:function(){return GR.default}});var WR=Bn();Object.defineProperty(de,"MissingRefError",{enumerable:!0,get:function(){return WR.default}})});import je from"node:process";import Dt from"node:path";import{spawnSync as X0}from"node:child_process";var Z="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",At="^sha256:[a-f0-9]{64}$";import{constants as Wa}from"node:fs";import{lstat as R_,mkdir as wn,open as Xf,readFile as mo,realpath as Or,rename as __,unlink as dl}from"node:fs/promises";import{randomUUID as pl}from"node:crypto";import ke from"node:path";var Tf=Wr(kr(),1);var Ee={type:"string",pattern:At},KR={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},Kc={type:"string",format:"date-time"},Yc={enum:["typescript.typecheck","vitest.run","typescript.build","npm.pack-dry-run","workspace.structure","capability.assets","node.application-smoke","web.application-build","web.application-smoke","expo.application-config","expo.application-export","react.library-build","next.application-test","next.application-build","next.application-package","next.application-smoke","application.config-contract"]},Lf={type:"object",additionalProperties:!1,required:["node","pnpm","typescript"],properties:{node:{type:"string",minLength:1,maxLength:64},pnpm:{type:"string",minLength:1,maxLength:64},typescript:{type:"string",minLength:1,maxLength:64}}},Hc={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","consumerProfile","compatibility","assets","verifiers","exit"],properties:{schemaVersion:{const:1},capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:Ee,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:Z}}}},compatibility:Lf,integration:{type:"object",additionalProperties:!1,required:["title","purpose","packages","codeAssets"],properties:{title:{type:"string",minLength:1,maxLength:128},purpose:{type:"string",minLength:1,maxLength:512},packages:{type:"array",items:{type:"object",additionalProperties:!1,required:["packageName","version","usage","imports"],properties:{packageName:{type:"string",minLength:1,maxLength:214},version:{type:"string",minLength:1,maxLength:128},usage:{enum:["runtime","development","build","test"]},imports:{type:"array",items:{type:"object",additionalProperties:!1,required:["importFrom","symbol"],properties:{importFrom:{type:"string",minLength:1,maxLength:214},symbol:{type:"string",minLength:1,maxLength:128},referencePath:{type:"string",minLength:1,maxLength:512}}}}}}},codeAssets:{type:"array",items:{type:"object",additionalProperties:!1,required:["sourcePath","targetPath","ownership"],properties:{sourcePath:{type:"string",minLength:1,maxLength:512},targetPath:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]}}}}}},assets:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["path","ownership","digest","mode"],properties:{path:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]},digest:Ee,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:Z},renderer:{enum:["npm-package-json-v1","npm-package-json-v2","react-component-package-json-v1","nextjs-application-package-json-v1","workspace-root-package-json-v1","node-application-package-json-v1","web-application-package-json-v1","expo-application-package-json-v1","application-config-contract-v1","application-config-binding-v1"]}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:Yc}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},xf={type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",pattern:"^registry\\.[a-z0-9][a-z0-9.-]{1,126}$"},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",maxLength:214},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",maxLength:64},integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]{86}==$"},tarballDigest:Ee,deliveryReceiptId:Ee,usage:{enum:["runtime","development"]}}},{$id:CO,...Vf}=Hc,YR={...Vf,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...Hc.required,"availability","packageSources"],properties:{...Hc.properties,schemaVersion:{const:2},availability:{oneOf:[{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"local-artifact"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"development-registry"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"available"},visibility:{const:"catalog-consumers"},sourceState:{const:"registry-verified"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","reasonCode"],properties:{maturity:{const:"withdrawn"},visibility:{const:"existing-locks-only"},reasonCode:{type:"string",pattern:"^[A-Z][A-Z0-9_]{2,63}$"}}}]},packageSources:{type:"array",maxItems:128,items:xf}}},HR={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[Vf,(()=>{let{$id:e,...t}=YR;return t})()]},Oa={$id:"https://schemas.dyyto.dev/platform/verification-result-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","verifierId","result","issuer","commandId","exitCode","stdoutDigest","stderrDigest","startedAt","completedAt","projectStateDigest","runtime"],properties:{schemaVersion:{const:1},verifierId:Yc,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:Yc,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:Ee,stderrDigest:Ee,startedAt:Kc,completedAt:Kc,projectStateDigest:Ee,runtime:Lf}},XR={...Oa,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Oa.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Oa.properties,evidenceId:Ee,capabilityId:{type:"string",pattern:Z},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:Ee}},ZR={$id:"https://schemas.dyyto.dev/platform/project-adoption-lock.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{enum:[1,2]},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","consumerProfile","appliedPlanId","projectStateDigest","assets","evidenceIds","committedAt"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:Ee,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:Ee,projectStateDigest:Ee,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:Ee,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:Z}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:Ee},committedAt:Kc,packageAdoption:{type:"object",additionalProperties:!1,required:["registryRevisions","sources","packageJsonDigest","lockfileDigest"],properties:{sourceChannel:{enum:["production","development"]},registryRevisions:{type:"array",items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:KR,revision:Ee}}},sources:{type:"array",minItems:1,maxItems:128,items:xf},packageJsonDigest:Ee,lockfileDigest:Ee}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},io=new Tf.Ajv2020({allErrors:!0,strict:!0});io.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Sa={capabilityBundleRelease:io.compile(HR),verificationResult:io.compile(Oa),adoptionEvidence:io.compile(XR),projectAdoptionLock:io.compile(ZR)},Da=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function ja(e,t,r){if(!t(r))throw new Da(e,t.errors??[]);return r}var Mf=e=>{let t=ja("capabilityBundleRelease",Sa.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Da("capabilityBundleRelease",[])},n=t.packageSources;(t.availability.maturity==="candidate"&&t.availability.sourceState==="local-artifact"&&n.length!==0||t.availability.maturity==="candidate"&&t.availability.sourceState==="development-registry"&&n.length===0||t.availability.maturity!=="candidate"&&n.length===0)&&r();let o="",a=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(o)<=0||a.has(c))&&r(),o=c,a.add(c)}let i=t.integration?.packages??[];(t.availability.maturity!=="candidate"||t.availability.sourceState==="development-registry")&&(i.length!==n.length||i.some(s=>!n.some(c=>c.packageName===s.packageName&&c.version===s.version&&c.usage===s.usage)))&&r()}return t},Uf=e=>ja("verificationResult",Sa.verificationResult,e),so=e=>ja("adoptionEvidence",Sa.adoptionEvidence,e),qe=e=>ja("projectAdoptionLock",Sa.projectAdoptionLock,e);import{lstat as s_,readFile as el,realpath as tl}from"node:fs/promises";import pn from"node:path";import{createHash as QR}from"node:crypto";function y(e){return`sha256:${QR("sha256").update(e).digest("hex")}`}function b(e){return Array.isArray(e)?`[${e.map(b).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${JSON.stringify(r)}:${b(n)}`).join(",")}}`:JSON.stringify(e)}var Ot=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function Ff(e){if(!new RegExp(Z).test(e))throw new Ot("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function $a(e,t){if(e.includes("\r"))throw new Ot("Managed regions require LF newlines");let{begin:r,end:n}=Ff(t),o=e.split(r).length-1,a=e.split(n).length-1;if(o!==1||a!==1)throw new Ot("Managed region markers are unavailable or ambiguous");let i=e.indexOf(r)+r.length,s=e.indexOf(n,i),c=e.slice(i,s);if(/<!-- dyyto:(?:begin|end) /.test(c))throw new Ot("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
9
+ `}function qf(e){let{begin:t,end:r}=Ff(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new Ot("Managed regions require LF newlines");let n=e.source.split(t).length-1,o=e.source.split(r).length-1;if(n>1||o>1||n!==o)throw new Ot("Managed region markers are ambiguous");let a=e.content.replace(/^\n+|\n+$/g,"");if(/<!-- dyyto:(?:begin|end) /.test(a))throw new Ot("Managed regions cannot contain nested Dyyto markers");let i=`${t}
10
10
  ${a}
11
11
  ${r}`;if(n===0){let d=e.source.replace(/\n*$/g,"");return`${d}${d.length===0?"":`
12
12
 
13
13
  `}${i}
14
- `}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,l=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(l))throw new Nt("Managed regions cannot overlap");return`${e.source.slice(0,s)}${i}${e.source.slice(c)}`}import Vf from"node:path";var Qt=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function $a(e){if(e.length===0||Vf.posix.isAbsolute(e)||Vf.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new Qt("Asset path must be a normalized project-relative POSIX path",e)}function QR(e,t){$a(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(Z).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new Qt("Managed regions require merge ownership and a valid region identity",e.path);if(e.ownership==="user-file")return{...e,disposition:"conflict",conflictCode:"USER_OWNED"};let n=t?.exists??!1,o=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&o===e.desiredDigest?{...e,disposition:"noop"}:{...e,disposition:"conflict",conflictCode:"UNEXPECTED_EXISTING"}:{...e,disposition:"ready"}:e.kind==="remove"&&!n?{...e,disposition:"noop"}:e.kind!=="remove"&&n&&e.desiredDigest===o?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||o!==e.baseDigest?{...e,disposition:"conflict",conflictCode:"BASE_DIGEST_MISMATCH"}:{...e,disposition:"ready"}}function Pe(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new Qt("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Qt("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if($a(s.path),t.has(s.path))throw new Qt("Observed asset paths must be unique",s.path);t.set(s.path,s)}let r=new Set,n=e.changes.map(s=>{if(r.has(s.path))throw new Qt("Proposed change paths must be unique",s.path);return r.add(s.path),QR(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),o={action:e.action,capability:{capabilityId:e.capability.capabilityId,version:e.capability.version,integrity:e.capability.integrity},changes:e.changes,observedAssets:e.observedAssets,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}},a=y(b(o)),i={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:o.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:a,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...i,planId:y(b(i))}}function Ca(e){return y(b(e))}var Mf=Gr(kr(),1);var Q={type:"string",pattern:_t},ln={type:"string",pattern:Z},Ar={type:"string",minLength:1,maxLength:128},_r={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},e_={$id:"https://schemas.dyyto.dev/platform/capability-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","assets","verifiers"],properties:{schemaVersion:{const:1},capabilityId:ln,version:Ar,integrity:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:_r,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:Q}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},t_={$id:"https://schemas.dyyto.dev/platform/project-manifest-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},template:{type:"object",additionalProperties:!1,required:["id","version"],properties:{id:ln,version:Ar}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:Z},parameters:{type:"object",minProperties:0,maxProperties:32,propertyNames:{pattern:"^[a-z][A-Za-z0-9]*$"},additionalProperties:{type:"string",maxLength:256}}}},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:ln,version:Ar}}}}},r_={$id:"https://schemas.dyyto.dev/platform/project-lock-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","appliedPlanId","assets","evidenceIds"],properties:{capabilityId:ln,version:Ar,integrity:Q,appliedPlanId:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:_r,digest:Q}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},n_={$id:"https://schemas.dyyto.dev/platform/evidence-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","evidenceId","capabilityId","capabilityVersion","verifierId","result","observedAt"],properties:{schemaVersion:{const:1},evidenceId:{type:"string",minLength:1,maxLength:256},capabilityId:ln,capabilityVersion:Ar,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},o_={$id:"https://schemas.dyyto.dev/platform/change-plan-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","planId","action","state","capability","generatedAt","expiresAt","inputDigest","operations"],properties:{schemaVersion:{const:1},planId:Q,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:ln,version:Ar,integrity:Q}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:Q,packageAdoption:{type:"object",additionalProperties:!1,required:["schemaVersion","packageJsonPreimageDigest","desiredPackageJsonDigest","lockfilePreimage","desiredLockfileDigest","registryRevisions","endpointBindings","sources","installPolicy"],properties:{schemaVersion:{enum:[1,2]},sourceChannel:{enum:["production","development"]},packageJsonPreimageDigest:Q,desiredPackageJsonDigest:Q,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:Q}}]},desiredLockfileDigest:Q,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:Q}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:Q,bindingDigest:Q,expiresAt:{type:"string",format:"date-time"}}}},sources:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",minLength:1,maxLength:128},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$"},version:Ar,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:Q,deliveryReceiptId:Q,usage:{enum:["runtime","development"]}}}},installPolicy:{type:"object",additionalProperties:!1,required:["ignoreScripts","allowWorkspaceProtocol","allowPublicRegistryFallback"],properties:{ignoreScripts:{const:!0},allowWorkspaceProtocol:{const:!1},allowPublicRegistryFallback:{const:!1}}},topology:{type:"object",additionalProperties:!1,required:["mode","unitRelativeRoot","unitImporterId","lockfilePath"],properties:{mode:{enum:["standalone","pnpm-shared-lockfile"]},unitRelativeRoot:_r,unitImporterId:_r,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:Q}},preservedDependencies:{type:"array",items:{type:"object",additionalProperties:!1,required:["section","packageName","specifier"],properties:{section:{enum:["dependencies","devDependencies","optionalDependencies"]},packageName:{type:"string",minLength:1,maxLength:214},specifier:{type:"string",minLength:1,maxLength:512}}}},preservedImporterDigests:{type:"array",items:{type:"object",additionalProperties:!1,required:["importerId","preimageDigest","desiredDigest"],properties:{importerId:_r,preimageDigest:Q,desiredDigest:Q}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{topology:!1,preservedDependencies:!1,preservedImporterDigests:!1}}},{if:{properties:{schemaVersion:{const:2}},required:["schemaVersion"]},then:{required:["topology","preservedDependencies","preservedImporterDigests"]}}]},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","kind","ownership","disposition"],properties:{path:_r,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:Q,baseDigest:Q,regionId:{type:"string",pattern:Z},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},a_={$id:"https://schemas.dyyto.dev/platform/transaction-journal-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","transactionId","planId","approvedPlanId","projectRootDigest","state","createdAt","updatedAt","operations","journalDigest"],properties:{schemaVersion:{const:1},transactionId:{type:"string",minLength:1,maxLength:128},planId:Q,approvedPlanId:Q,projectRootDigest:Q,state:{enum:["preparing","prepared","applying","applied","recovery-required","recovering","recovered"]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["index","path","kind","before","status"],properties:{index:{type:"integer",minimum:0},path:_r,kind:{enum:["create","replace","merge","remove"]},before:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest","mode","preimageDigest"],properties:{kind:{const:"present"},digest:Q,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:Q}}]},desiredDigest:Q,status:{enum:["pending","applied","restored"]}}}},failure:{type:"object",additionalProperties:!1,required:["code"],properties:{code:{type:"string",minLength:1,maxLength:128},operationIndex:{type:"integer",minimum:0}}},journalDigest:Q}},Rr=new Mf.Ajv2020({allErrors:!0,strict:!0});Rr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Hc={capabilityRelease:Rr.compile(e_),projectManifest:Rr.compile(t_),projectLock:Rr.compile(r_),evidence:Rr.compile(n_),changePlan:Rr.compile(o_),transactionJournal:Rr.compile(a_)},Yc=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Xc(e,t,r){if(!t(r))throw new Yc(e,t.errors??[]);return r}var X=e=>Xc("projectManifest",Hc.projectManifest,e);var er=e=>Xc("changePlan",Hc.changePlan,e),Uf=e=>Xc("transactionJournal",Hc.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Ta(e){if(e.currentLock!==void 0){let a=await La({...e,manifest:{schemaVersion:1,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}});return{state:a.plan.state==="conflicted"?"drifted":"adopted",operations:a.plan.operations}}let t=await Qc(dn.resolve(e.projectRoot)),r=[],n=0,o=0;for(let a of e.release.release.assets){let i=await el(t,a.path);i.exists&&(n+=1),i.digest===a.digest&&(o+=1),r.push({path:a.path,kind:"create",ownership:a.ownership,desiredDigest:a.ownership==="seed-file"&&i.digest?i.digest:a.digest,disposition:i.exists?a.ownership==="seed-file"||i.digest===a.digest?"noop":"conflict":"ready",...i.exists&&i.digest!==a.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:o===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function el(e,t){let r=dn.join(e,...t.split("/"));try{let n=await i_(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Blank profile target must be a regular file",t);return{path:t,exists:!0,digest:y(await Zc(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Er(e){let t=await Qc(dn.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let o=await el(t,n.path),a=o.exists&&o.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&o.exists)try{a=y(ja(await Zc(dn.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{a=!1}if(!a)throw new M("PROJECT_STATE_INVALID","A managed project asset does not match the approved plan",n.path);r.push({path:n.path,digest:n.digest,...n.ownership===void 0?{}:{ownership:n.ownership},...n.regionId===void 0?{}:{regionId:n.regionId}})}return{assets:r,projectStateDigest:y(b(r))}}async function La(e){let t=X(e.manifest);if(t.capabilities.filter(d=>d.capabilityId===e.release.release.capabilityId&&d.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let o=(e.currentLock===void 0?void 0:Fe(e.currentLock))?.capabilities.find(d=>d.capabilityId===e.release.release.capabilityId);if(o!==void 0&&(o.version!==e.release.release.version||o.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","M3 does not support upgrading a different locked release");let a=await Qc(dn.resolve(e.projectRoot)),i=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await el(a,d.path);if(i.push(p),p.exists&&o===void 0&&d.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",d.path);let f=d.ownership==="seed-file"&&p.digest?p.digest:d.digest;d.ownership==="seed-file"&&p.exists&&c.set(d.path,await Zc(dn.join(a,...d.path.split("/")))),s.push({path:d.path,kind:"create",ownership:d.ownership,desiredDigest:f})}let l={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(d=>({path:d.path,ownership:d.ownership,desiredDigest:d.digest})),verifiers:e.release.release.verifiers.map(d=>({id:d.id,kind:"command"}))};return{manifest:t,release:e.release,plan:Pe({action:"adopt",capability:l,changes:s,observedAssets:i,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as c_,lstat as qa,mkdir as pn,open as Bf,readFile as Ba,realpath as l_,rename as Ua,rm as tl,unlink as Pr}from"node:fs/promises";import{constants as Va}from"node:fs";import{homedir as d_}from"node:os";import W from"node:path";import{randomUUID as mn}from"node:crypto";function s_(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function at(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Ff(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Ff(e.context,e.operation,e.bytes??0,t,"failed",s_(r)),r}}async function Ff(e,t,r,n,o,a){if(e?.sink===void 0)return;let i=process.hrtime.bigint(),s={schemaVersion:1,phase:e.phase,operation:t,pathCategory:e.pathCategory,bytes:r,barrierId:e.barrierId,startedMonotonicNs:n.toString(),completedMonotonicNs:i.toString(),result:o,...a===void 0?{}:{errorCategory:a}},c=Object.freeze({...s,eventId:y(b(s))});try{await e.sink(c)}catch{}}var zf=Symbol("prepared-transaction"),tr=new Map,p_=5*1024*1024,u_=25*1024*1024,qf=8,Fa=class extends Error{};async function xa(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new Fa("Simulated prepare crash",{cause:n})}}var j=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,o){super(r),this.code=t,this.relativePath=n,this.operationIndex=o}};function io(e,t){let r=W.join(e,".dyyto"),n=W.join(r,"transactions",t);return{platformDirectory:r,lock:W.join(r,"transaction-lock.json"),transactionDirectory:n,journal:W.join(n,"journal.json"),preimages:W.join(n,"preimages"),quarantine:W.join(n,"quarantine")}}async function jt(e){try{return await qa(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function gn(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function yt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function it(e,t){let r=await Bf(e,Va.O_RDONLY);try{await at({context:gn(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function so(e,t,r=384,n){let o=await Bf(e,Va.O_CREAT|Va.O_EXCL|Va.O_WRONLY,r);try{await at({context:gn(n),operation:"write",bytes:t.byteLength,run:()=>o.writeFile(t)}),await at({context:gn(n),operation:"file-sync",bytes:t.byteLength,run:()=>o.sync()})}finally{await o.close()}}async function rl(e,t,r){let n=W.dirname(e),o=W.join(n,`.tmp-${mn()}`),a=Buffer.from(`${JSON.stringify(t,null,2)}
15
- `);await so(o,a,384,r),await at({context:gn(r),operation:"rename",bytes:a.byteLength,run:()=>Ua(o,e)}),await it(n,r)}function nl(e){return{...e,journalDigest:y(b(e))}}function f_(e){let t;try{t=Uf(e)}catch{throw new j("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==y(b(n)))throw new j("JOURNAL_CORRUPTED","Transaction journal digest or shape is invalid");let o=new Set;for(let[a,i]of t.operations.entries()){if(i.index!==a||o.has(i.path)||i.kind==="create"&&i.before.kind!=="absent"||i.kind!=="create"&&i.before.kind!=="present"||i.kind!=="remove"&&i.desiredDigest===void 0||i.kind==="remove"&&i.desiredDigest!==void 0)throw new j("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");o.add(i.path)}return t}async function ol(e){try{return f_(JSON.parse(await Ba(e,"utf8")))}catch(t){throw t instanceof j?t:new j("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function rr(e,t,r){let{journalDigest:n,...o}=t,a=nl(o);return await rl(e,a,r),a}async function za(e){let t=W.resolve(e),r=W.parse(t);if(t===r.root||t===W.resolve(d_()))throw new j("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await qa(t);if(!n.isDirectory()||n.isSymbolicLink())throw new j("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let o=await l_(t);if(o!==t)throw new j("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return o}function hn(e,t){if((t===".dyyto"||t.startsWith(".dyyto/"))&&t!==".dyyto/application-config-binding.json"||t.length===0||W.posix.isAbsolute(t)||W.win32.isAbsolute(t)||t.includes("\\")||t.split("/").some(n=>n==="."||n===".."))throw new j("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=W.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${W.sep}`))throw new j("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function un(e,t){let r=t.split("/"),n=e;for(let o of r){n=W.join(n,o);try{if((await qa(n)).isSymbolicLink())throw new j("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(a){if(a.code==="ENOENT")return;throw a}}}async function fn(e){try{let t=await qa(e);if(!t.isFile()||t.isSymbolicLink())throw new j("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await Ba(e);return{bytes:r,digest:y(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function m_(e,t,r){er(e);let{planId:n,...o}=e;if(Ca(o)!==e.planId)throw new j("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new j("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new j("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new j("PLAN_EXPIRED","Plan has expired")}function g_(e){let t=e.operations.filter(r=>r.disposition==="ready");for(let r of t)if(!((r.ownership==="owned-file"||r.ownership==="seed-file")&&["create","replace","remove"].includes(r.kind)||r.ownership==="managed-region"&&r.kind==="merge"&&r.regionId!==void 0))throw new j("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function al(e,t,r){try{await so(e,Buffer.from(`${JSON.stringify(t,null,2)}
16
- `),384,r),await it(W.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new j("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function Ma(e){try{let t=JSON.parse(await Ba(e,"utf8"));if(t.schemaVersion!==1||typeof t.transactionId!="string"||typeof t.planId!="string"||typeof t.startedAt!="string"||typeof t.nonce!="string")throw new Error("invalid lock");return t}catch{throw new j("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function h_(e,t,r){return{[zf]:!0,projectRoot:e,plan:t,transactionId:r}}async function y_(e,t){m_(e.plan,e.approvedPlanId,e.now);let r=await za(e.projectRoot),n=g_(e.plan),o=new Set(e.plan.operations.filter(u=>u.kind!=="remove"&&u.disposition!=="conflict").map(u=>u.path));for(let u of e.desiredContents.keys())if(!o.has(u))throw new j("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(hn(r,u.path),await un(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||y(m)!==u.desiredDigest)throw new j("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let a=io(r,e.plan.planId);await pn(a.platformDirectory,{recursive:!0,mode:448}),await un(r,".dyyto");let i=mn();await al(a.lock,{schemaVersion:1,transactionId:i,planId:e.plan.planId,startedAt:e.now,nonce:mn()},yt(t?.durabilityTrace,"prepare","lock",`${i}:prepare-lock`));let s=e.limits?.maxFileBytes??p_,c=e.limits?.maxTransactionBytes??u_,l=0,d=[],p=[],f=!1;try{if(await xa(t,"lock-created"),await jt(a.transactionDirectory))throw new j("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await pn(a.preimages,{recursive:!0,mode:448}),await pn(a.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let h=hn(r,g.path);await un(r,g.path);let w=await fn(h);if(g.kind==="create"){if(w!==void 0)throw new j("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new j("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let _={kind:"absent"};if(w!==void 0){if(l+=w.bytes.byteLength,w.bytes.byteLength>s||l>c)throw new j("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let v=W.join(a.preimages,`${m}.bin`);await so(v,w.bytes,384,yt(t?.durabilityTrace,"prepare","preimage",`${i}:preimage:${m}`)),p.push(m),await xa(t,"preimage-written-pending-directory-sync",m),_={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:y(w.bytes)}}d.push({index:m,path:g.path,kind:g.kind,before:_,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await it(a.preimages,yt(t?.durabilityTrace,"prepare","directory",`${i}:preimages-directory-batch`));for(let m of p)await xa(t,"preimage-persisted",m)}let u=nl({schemaVersion:1,transactionId:i,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:y(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:d});return await rl(a.journal,u,yt(t?.durabilityTrace,"prepare","journal",`${i}:journal-prepared`)),tr.set(i,{desiredContents:e.desiredContents,journal:u}),await xa(t,"journal-prepared"),h_(r,e.plan,i)}catch(u){if(u instanceof Fa)throw tr.delete(i),new j("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await tl(a.transactionDirectory,{recursive:!0,force:!0}),await Pr(a.lock),await it(a.platformDirectory)}catch{throw new j("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function nr(e){return y_(e)}async function w_(e,t,r,n){return rr(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},yt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function I_(e,t,r,n,o,a){let i=hn(e,n.path);await un(e,n.path);let s=await fn(i);if(n.before.kind==="absent"){if(s!==void 0)throw new j("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new j("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=W.join(t.quarantine,`${n.index}.bin`),f=yt(a?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await at({context:gn(f),operation:"rename",run:()=>Ua(i,p)}),await a?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(i),t.quarantine]}let c=o.get(n.path);if(c===void 0||y(c)!==n.desiredDigest)throw new j("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await pn(W.dirname(i),{recursive:!0}),await un(e,n.path);let l=W.join(W.dirname(i),`.dyyto-${r}-${n.index}.tmp`),d=yt(a?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await so(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await a?.onCheckpoint?.("temporary-file-synced",n.index),await at({context:gn(d),operation:"rename",bytes:c.byteLength,run:()=>Ua(l,i)}),await a?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(i)]}async function v_(e,t){let r=tr.get(e.transactionId);if(r===void 0||e[zf]!==!0)throw new j("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=io(e.projectRoot,e.plan.planId),o=await rr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},yt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let a=new Map;for(let i=0;i<o.operations.length;i+=qf){let s=o.operations.slice(i,i+qf),c=await Promise.allSettled(s.map(d=>I_(e.projectRoot,n,e.transactionId,d,r.desiredContents,t))),l=c.find(d=>d.status==="rejected");if(l?.status==="rejected")throw l.reason;for(let d of c)if(d.status==="fulfilled")for(let p of d.value)a.has(p)||a.set(p,yt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[i,s]of a)await it(i,s);for(let i of o.operations)await t?.onCheckpoint?.("target-renamed",i.index),i.status="applied",await t?.onCheckpoint?.("operation-applied",i.index);o=await rr(n.journal,{...o,operations:o.operations,updatedAt:new Date().toISOString()},yt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let i of o.operations)await t?.onCheckpoint?.("operation-journaled",i.index);return o=await rr(n.journal,{...o,state:"applied",updatedAt:new Date().toISOString()},yt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Pr(n.lock),await it(n.platformDirectory),tr.delete(e.transactionId),Nr(o)}catch(a){throw o=await w_(n,o,a instanceof j?a.operationIndex:void 0,t?.durabilityTrace),tr.set(e.transactionId,{desiredContents:r.desiredContents,journal:o}),new j("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function or(e){return v_(e)}function Nr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function $t(e){let t=await za(e.projectRoot),r=io(t,e.planId);if(!await jt(r.journal)){if(!await jt(r.lock))return null;let n=await Ma(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return Nr(await ol(r.journal))}async function b_(e,t,r){await pn(W.dirname(e),{recursive:!0});let n=W.join(W.dirname(e),`.dyyto-recover-${mn()}.tmp`);await so(n,t,r&511),await Ua(n,e),await c_(e,r&511),await it(W.dirname(e))}async function Jf(e){let t=await za(e.projectRoot),r=io(t,e.planId);if(!await jt(r.journal)){if(!await jt(r.lock))throw new j("JOURNAL_CORRUPTED","No transaction record exists");let o=await Ma(r.lock);if(o.planId!==e.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await tl(r.transactionDirectory,{recursive:!0,force:!0}),await pn(r.transactionDirectory,{recursive:!0,mode:448});let a=nl({schemaVersion:1,transactionId:o.transactionId,planId:o.planId,approvedPlanId:o.planId,projectRootDigest:y(t),state:"recovered",createdAt:o.startedAt,updatedAt:e.now,operations:[]});return await rl(r.journal,a),await Pr(r.lock),await it(r.platformDirectory),Nr(a)}let n=await ol(r.journal);if(n.state==="recovered")return Nr(n);if(n.state==="applied"){for(let o of n.operations){let a=await fn(hn(t,o.path));if(!(o.kind==="remove"?a===void 0:a?.digest===o.desiredDigest))throw new j("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",o.path,o.index)}if(await jt(r.lock)){let o=await Ma(r.lock);if(o.transactionId!==n.transactionId||o.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Pr(r.lock),await it(r.platformDirectory)}return tr.delete(n.transactionId),Nr(n)}if(n.projectRootDigest!==y(t))throw new j("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await jt(r.lock)){let o=await Ma(r.lock);if(o.transactionId!==n.transactionId||o.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await al(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:mn()});n=await rr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let o of[...n.operations].reverse()){if(o.status==="restored")continue;let a=hn(t,o.path);if(await un(t,o.path),o.kind!=="remove"){let s=W.join(W.dirname(a),`.dyyto-${n.transactionId}-${o.index}.tmp`);if(await jt(s)){if((await fn(s))?.digest!==o.desiredDigest)throw new j("RECOVERY_CONFLICT","Transaction temporary file was modified externally",o.path,o.index);await Pr(s),await it(W.dirname(s))}}let i=await fn(a);if(o.before.kind==="absent"){if(i!==void 0){if(i.digest!==o.desiredDigest)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",o.path,o.index);await Pr(a),await it(W.dirname(a))}}else if(i?.digest!==o.before.digest){let s=W.join(r.quarantine,`${o.index}.bin`),c=i?.digest===o.desiredDigest,l=o.kind==="remove"&&i===void 0&&await jt(s),d=e.approvedConflicts?.find(f=>f.path===o.path&&f.currentDigest===i?.digest);if(!c&&!l&&!d)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",o.path,o.index);let p=await Ba(W.join(r.preimages,`${o.index}.bin`));if(y(p)!==o.before.preimageDigest)throw new j("JOURNAL_CORRUPTED","Preimage digest is invalid",o.path,o.index);await b_(a,p,o.before.mode),l&&await tl(s,{force:!0})}o.status="restored",n=await rr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",o.index)}return n=await rr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Pr(r.lock),await it(r.platformDirectory),tr.delete(n.transactionId),Nr(n)}async function co(e){return Jf(e)}async function il(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new j("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return Jf(e)}async function sl(e){let t=await za(e.projectRoot),r=io(t,e.planId),n=await ol(r.journal);if(n.state==="recovered")return Nr(n);if(n.state!=="applied")throw new j("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let o;for(let a of n.operations){let i=await fn(hn(t,a.path)),s=a.kind==="remove"?i===void 0:i?.digest===a.desiredDigest,c=a.before.kind==="absent"?i===void 0:i?.digest===a.before.digest;if(!s&&!c){o=a;break}}if(await al(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:mn()}),n=await rr(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),o!==void 0)throw new j("RECOVERY_CONFLICT","Rollback would overwrite external content",o.path,o.index);return tr.set(n.transactionId,{desiredContents:new Map,journal:n}),co({projectRoot:t,planId:e.planId,now:e.now})}var we=class extends Error{code;constructor(t,r){super(r),this.code=t}},lo=class extends Error{};function fo(e,t){let r=ke.join(e,".dyyto"),n=ke.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:ke.join(r,"evidence"),lockFile:ke.join(r,"project-lock.json"),transactionLock:ke.join(r,"metadata-lock.json"),transactionDirectory:n,journal:ke.join(n,"journal.json")}}async function ar(e){try{return await k_(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Ct(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function Ka(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function Ya(e,t){let r=await Gf(e,Ga.O_RDONLY);try{await at({context:Ka(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function dl(e,t,r){let n=await Gf(e,Ga.O_CREAT|Ga.O_EXCL|Ga.O_WRONLY,384);try{await at({context:Ka(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await at({context:Ka(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function po(e,t,r){let n=ke.dirname(e),o=ke.join(n,`.tmp-${ll()}`),a=Buffer.from(`${JSON.stringify(t,null,2)}
17
- `);await dl(o,a,r),await at({context:Ka(r),operation:"rename",bytes:a.byteLength,run:()=>R_(o,e)}),await Ya(n,r)}function pl(e){return{...e,journalDigest:y(b(e))}}async function Ja(e,t,r){let{journalDigest:n,...o}=t,a=pl(o);return await po(e,a,r),a}async function Wf(e){try{let t=JSON.parse(await uo(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==y(b(n)))throw new Error("invalid journal");return t.evidence.forEach(ao),Fe(t.lock),t}catch{throw new we("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function ul(e,t,r){try{await dl(e,Buffer.from(`${JSON.stringify(t,null,2)}
18
- `),r),await Ya(ke.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new we("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function Kf(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:y(b(r))}}function Yf(e,t,r){let n=t.map(Tf),o=e.verifiers.map(i=>i.id).sort(),a=n.map(i=>i.verifierId).sort();if(o.length!==a.length||o.some((i,s)=>i!==a[s]))throw new we("VERIFICATION_INCOMPLETE","Verification results do not cover the release verifier set");for(let i of n){if(i.commandId!==i.verifierId||i.result!=="passed"||i.exitCode!==0)throw new we("VERIFICATION_FAILED",`Verifier ${i.verifierId} did not pass`);if(i.projectStateDigest!==r)throw new we("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function __(e,t,r){let n=ke.join(e,`${t.evidenceId}.json`);if(await ar(n)){let o=ao(JSON.parse(await uo(n,"utf8")));if(b(o)!==b(t))throw new we("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await dl(n,Buffer.from(`${JSON.stringify(t,null,2)}
19
- `),r),await Ya(e,r)}async function A_(e,t,r,n){if(await ar(e)){let o=Fe(JSON.parse(await uo(e,"utf8")));if(b(o)===b(t))return;if(r===void 0||y(b(o))!==r)throw new we("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await po(e,t,n);return}await po(e,t,n)}async function Wa(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new lo("Simulated metadata crash",{cause:r})}}async function fl(e,t,r){let n=fo(e,t.planId),o=t;try{for(let a of o.evidence)await __(n.evidenceDirectory,a,Ct(r?.durabilityTrace,"evidence",`${o.transactionId}:evidence`));return o=await Ja(n.journal,{...o,state:"evidence-written",updatedAt:new Date().toISOString()},Ct(r?.durabilityTrace,"journal",`${o.transactionId}:evidence-written`)),await Wa(r,"evidence-written"),await A_(n.lockFile,o.lock,o.previousLockDigest,Ct(r?.durabilityTrace,"lock",`${o.transactionId}:project-lock`)),o=await Ja(n.journal,{...o,state:"lock-written",updatedAt:new Date().toISOString()},Ct(r?.durabilityTrace,"journal",`${o.transactionId}:lock-written`)),await Wa(r,"lock-written"),o=await Ja(n.journal,{...o,state:"committed",updatedAt:new Date().toISOString()},Ct(r?.durabilityTrace,"journal",`${o.transactionId}:committed`)),await Wa(r,"committed"),await cl(n.transactionLock),await Ya(n.platformDirectory,Ct(r?.durabilityTrace,"directory",`${o.transactionId}:unlock`)),o.lock}catch(a){if(a instanceof lo)throw new we("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await Ja(n.journal,{...o,state:"recovery-required",updatedAt:new Date().toISOString()},Ct(r?.durabilityTrace,"journal",`${o.transactionId}:recovery-required`))}catch{}throw a}}async function E_(e){let t=await Or(ke.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Or(ke.resolve(e.transactionRoot));if((await $t({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new we("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let o;try{o=await Er({projectRoot:t,expectedAssets:e.expectedAssets??e.release.assets.map(m=>({path:m.path,digest:m.digest}))})}catch{throw new we("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let i=Yf(e.release,e.verificationResults,o.projectStateDigest).map(m=>Kf(e.release,m)),s={capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,consumerProfile:e.release.consumerProfile,appliedPlanId:e.plan.planId,projectStateDigest:o.projectStateDigest,assets:o.assets,evidenceIds:i.map(m=>m.evidenceId).sort(),committedAt:e.committedAt,...e.plan.packageAdoption===void 0?{}:{packageAdoption:{...e.plan.packageAdoption.sourceChannel===void 0?{}:{sourceChannel:e.plan.packageAdoption.sourceChannel},registryRevisions:e.plan.packageAdoption.registryRevisions.map(m=>({...m})),sources:e.plan.packageAdoption.sources.map(m=>({...m})),packageJsonDigest:e.plan.packageAdoption.desiredPackageJsonDigest,lockfileDigest:e.plan.packageAdoption.desiredLockfileDigest}}},c=e.previousLock?.capabilities??[],l=e.previousLock!==void 0&&e.plan.action==="adopt"?[...c.filter(m=>m.capabilityId!==e.release.capabilityId),s].sort((m,g)=>m.capabilityId.localeCompare(g.capabilityId)):e.previousLock!==void 0&&e.plan.action==="upgrade"?[...c.filter(m=>m.capabilityId!==e.release.capabilityId),s].sort((m,g)=>m.capabilityId.localeCompare(g.capabilityId)):[s],d={schemaVersion:l.some(m=>m.packageAdoption!==void 0)?2:1,capabilities:l};Fe(d);let p=fo(t,e.plan.planId);if(await yn(p.platformDirectory,{recursive:!0,mode:448}),await yn(p.evidenceDirectory,{recursive:!0,mode:448}),await ar(p.lockFile)&&e.previousLock===void 0){let m=Fe(JSON.parse(await uo(p.lockFile,"utf8")));if(b(m)===b(d))return m;throw new we("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let f=ll();if(await ul(p.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt},Ct(e.hooks?.durabilityTrace,"lock",`${f}:metadata-lock`)),await ar(p.transactionDirectory))throw await cl(p.transactionLock),new we("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await yn(p.transactionDirectory,{recursive:!0,mode:448});let u=pl({schemaVersion:1,planId:e.plan.planId,transactionId:f,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:i,lock:d,...e.previousLock===void 0?{}:{previousLockDigest:y(b(Fe(e.previousLock)))}});await po(p.journal,u,Ct(e.hooks?.durabilityTrace,"journal",`${f}:prepared`));try{await Wa(e.hooks,"journal-prepared")}catch(m){throw m instanceof lo?new we("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return fl(t,u,e.hooks)}async function ml(e){return E_(e)}async function gl(e){let t=await Or(ke.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Or(ke.resolve(e.transactionRoot));if((await $t({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new we("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let o=e.previousLock.capabilities.find(h=>h.capabilityId===e.release.capabilityId&&h.version===e.release.version);if(o===void 0)throw new we("PROJECT_STATE_CHANGED","The removed capability is not present in the project lock");let a=e.previousLock.capabilities.filter(h=>h!==o),i=e.plan.packageAdoption?.schemaVersion===2&&e.plan.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${e.plan.packageAdoption.topology.unitRelativeRoot}/`:"",s=new Map(e.plan.operations.flatMap(h=>h.desiredDigest===void 0||!h.path.startsWith(i)?[]:[[h.path.slice(i.length),h.desiredDigest]])),c=e.expectedAssets??a.flatMap(h=>h.assets).map(h=>({...h,digest:s.get(h.path)??h.digest})),l=await Er({projectRoot:t,expectedAssets:c}),p=Yf(e.release,e.verificationResults,l.projectStateDigest).map(h=>Kf(e.release,h)),f={schemaVersion:a.some(h=>h.packageAdoption!==void 0)?2:1,capabilities:a};Fe(f);let u=fo(t,e.plan.planId);await yn(u.platformDirectory,{recursive:!0,mode:448}),await yn(u.evidenceDirectory,{recursive:!0,mode:448});let m=ll();await ul(u.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await yn(u.transactionDirectory,{recursive:!1,mode:448});let g=pl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:p,lock:f,previousLockDigest:y(b(Fe(e.previousLock)))});return await po(u.journal,g),fl(t,g)}async function hl(e){let t=await Or(ke.resolve(e.projectRoot)),r=fo(t,e.planId),n=await Wf(r.journal);return n.state==="committed"?(await ar(r.transactionLock)&&await cl(r.transactionLock),n.lock):(await ar(r.transactionLock)||await ul(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),fl(t,n))}async function yl(e){let t=await Or(ke.resolve(e.projectRoot)),r=fo(t,e.planId);if(!await ar(r.journal))return null;let n=await Wf(r.journal);return{planId:n.planId,state:n.state}}async function Te(e){let t=await Or(ke.resolve(e)),r=ke.join(t,".dyyto","project-lock.json");return await ar(r)?Fe(JSON.parse(await uo(r,"utf8"))):null}import{lstat as Zf,readFile as Hf,realpath as Xf}from"node:fs/promises";import ir from"node:path";var wt=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function Qf(e){return y(b(e))}async function P_(e,t){let r=ir.join(e,"assets",...t.split("/"));try{return await Zf(r),r}catch(n){if(n.code!=="ENOENT"||ir.posix.basename(t)!==".gitignore")throw n}return ir.join(e,"assets",...ir.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function Ie(e){let t=await Xf(ir.resolve(e)),r;try{r=Cf(JSON.parse(await Hf(ir.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof wt?c:new wt("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...o}=r;if(Qf(o)!==n)throw new wt("RELEASE_INTEGRITY_MISMATCH","Capability release integrity does not match metadata");let a=new Map,i=new Set,s="";for(let c of r.assets){try{$a(c.path)}catch{throw new wt("RELEASE_ASSET_INVALID","Release asset path is unsafe",c.path)}if((c.path===".dyyto"||c.path.startsWith(".dyyto/"))&&c.path!==".dyyto/application-config-binding.json"||i.has(c.path)||c.path.localeCompare(s)<0)throw new wt("RELEASE_ASSET_INVALID","Release assets must be unique, sorted and outside reserved .dyyto paths",c.path);i.add(c.path),s=c.path;let l=await P_(t,c.path),d=await Xf(l),p=ir.join(t,"assets");if(!d.startsWith(`${p}${ir.sep}`))throw new wt("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let f=await Zf(l);if(!f.isFile()||f.isSymbolicLink())throw new wt("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await Hf(l);if(y(u)!==c.digest)throw new wt("RELEASE_ASSET_INTEGRITY_MISMATCH","Release asset digest does not match metadata",c.path);a.set(c.path,u)}if(r.exit.ownedAssets.length!==r.assets.length||r.exit.ownedAssets.some((c,l)=>c!==r.assets[l]?.path))throw new wt("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:a}}import{link as N_,open as tm,lstat as Sr,mkdir as rm,readFile as wl,readdir as Ha,realpath as Tt,rm as O_,unlink as S_}from"node:fs/promises";import me from"node:path";var be=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},D_={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function j_(){return new TextEncoder().encode(`${JSON.stringify(D_,null,2)}
20
- `)}async function $_(e,t=!1){let r=me.resolve(e),n=await Sr(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new be("TARGET_INVALID","Workspace target must be a real existing directory");let o=await Tt(r);for(let a of t?["AGENTS.md","README.md"]:["package.json","pnpm-workspace.yaml"]){let i=await Sr(me.join(o,a)).catch(()=>null);if(i===null||!i.isFile()||i.isSymbolicLink())throw new be("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${a}`)}if(await Sr(me.join(o,"project-capabilities.json")).catch(()=>null))throw new be("MANIFEST_EXISTS","Project manifest already exists");return o}async function nm(e){let t=await $_(e.projectRoot,e.documentationOnly===!0),r=j_(),n=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:"foundation.workspace-root",version:"1.2.0",integrity:e.capabilityIntegrity,assets:[],verifiers:[]},changes:[{path:"project-capabilities.json",kind:"create",ownership:"owned-file",desiredDigest:y(r)}],observedAssets:[{path:"project-capabilities.json",exists:!1}],generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{projectRoot:t,plan:n,desiredContents:new Map([["project-capabilities.json",r]])}}async function C_(e){let t=await tm(e,"r");try{await t.sync()}finally{await t.close()}}async function om(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await tm(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await N_(r,e),await S_(r),await C_(me.dirname(e))}catch(o){throw await O_(r,{force:!0}),o}}async function T_(e){let t=me.resolve(e);try{let r=await Sr(t);if(!r.isDirectory()||r.isSymbolicLink())throw new be("TARGET_INVALID","Project target must be a real directory");if((await Ha(t)).length!==0)throw new be("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=me.dirname(t),o=await Sr(n).catch(()=>null);if(o===null||!o.isDirectory()||o.isSymbolicLink())throw new be("TARGET_INVALID","Project target parent must be a real directory");await rm(t)}return Tt(t)}async function Xa(e){let t=X(e.manifest),r=await T_(e.projectRoot),n=me.join(r,"project-capabilities.json");try{await om(n,`${JSON.stringify(t,null,2)}
21
- `)}catch(o){throw o.code==="EEXIST"?new be("MANIFEST_EXISTS","Project manifest already exists"):o}return{projectRoot:r,manifest:t}}function mo(e){let{planId:t,...r}=e;if(Ca(r)!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function L_(e){let t=await Tt(me.resolve(e.projectRoot)),r=er(e.plan);mo(r);let n=me.join(t,".dyyto","plans");await rm(n,{recursive:!0,mode:448});let o=me.join(n,`${r.planId}.json`);try{await om(o,`${b(r)}
22
- `)}catch(a){if(a.code!=="EEXIST")throw a;let i=er(JSON.parse(await wl(o,"utf8")));if(mo(i),b(i)!==b(r))throw new be("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return o}function em(e){return b({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Lt(e){let t=await Tt(me.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Tt(me.resolve(e.transactionRoot)),n=er(e.plan);mo(n);let o=me.join(t,".dyyto","plans"),a=await Ha(o).catch(s=>{if(s.code==="ENOENT")return[];throw s}),i=[];for(let s of a.filter(c=>c.endsWith(".json")).sort()){let c=er(JSON.parse(await wl(me.join(o,s),"utf8")));mo(c),!await Sr(me.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(d=>d.code==="ENOENT"?!1:Promise.reject(d))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&em(c)===em(n)&&i.push(c)}return i.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),i[0]!==void 0?i[0]:(await L_({projectRoot:t,plan:n}),n)}async function Dr(e){let t=await Tt(me.resolve(e.projectRoot)),r=me.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=er(JSON.parse(await wl(r,"utf8")));if(mo(n),n.planId!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new be("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function Za(e,t=[],r,n=[]){let o=await Tt(me.resolve(e)),a=r===void 0?o:await Tt(me.resolve(r)),i=me.join(o,".dyyto","plans"),s=await Ha(i).catch(d=>{if(d.code==="ENOENT")return[];throw d}),c=[];for(let d of s.filter(p=>p.endsWith(".json")).sort()){let p=d.slice(0,-5),f=await Dr({projectRoot:o,planId:p}),u=await $t({projectRoot:a,planId:p}),m=await Sr(me.join(o,".dyyto","metadata-transactions",p)).then(()=>!0).catch(g=>g.code==="ENOENT"?!1:Promise.reject(g));u?.state==="applied"&&!m&&!t.includes(f.planId)&&(!n.includes(f.capability.capabilityId)||f.action==="upgrade"||f.action==="remove"||f.action==="adopt"&&f.operations.every(g=>g.disposition==="noop"))&&c.push(f)}let l=x_(c);if(l===void 0)throw new be("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function x_(e){if(e.length===1)return e[0];if(e.length===0)return;let t=e[0]?.capability.capabilityId;if(!(t===void 0||e.some(r=>r.capability.capabilityId!==t)))return[...e].sort((r,n)=>r.generatedAt.localeCompare(n.generatedAt)).at(-1)}async function Il(e){let t=await Tt(me.resolve(e)),r=me.join(t,".dyyto","plans"),n=await Ha(r).catch(a=>{if(a.code==="ENOENT")return[];throw a}),o=[];for(let a of n.filter(i=>i.endsWith(".json")).sort())o.push(await Dr({projectRoot:t,planId:a.slice(0,-5)}));return o}import{lstat as am,readFile as V_,readdir as M_,realpath as U_}from"node:fs/promises";import Ne from"node:path";import{homedir as im}from"node:os";var st=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function sm(e){let t=Ne.resolve(e),r=await am(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ne.parse(t).root||t===Ne.resolve(im()))throw new st("WORKSPACE_PATH_UNSAFE");let n=await U_(t);if(n!==t)throw new st("WORKSPACE_PATH_UNSAFE");return n}async function jr(e){let t=await am(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new st("WORKSPACE_PATH_UNSAFE");return V_(e)}}function cm(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let o of t){if(/^packages:\s*(?:#.*)?$/u.test(o)){n=!0;continue}if(!n)continue;let a=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(o);if(a){r.push(a[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(o.trim()&&!/^\s/u.test(o))break}if(r.length===0)throw new st("WORKSPACE_MANIFEST_INVALID");return r}function F_(e,t){if(e.includes("**")){let r=e.split("**",1)[0].replace(/\/$/u,"");return t===r||t.startsWith(`${r}/`)}if(e.endsWith("/*")){let r=e.slice(0,-2);return t.startsWith(`${r}/`)&&!t.slice(r.length+1).includes("/")}return e===t}async function Qa(e){let t=await sm(e),r=await jr(Ne.join(t,"pnpm-workspace.yaml"));if(!r)throw new st("WORKSPACE_OWNER_MISSING");let n=new Map;for(let o of cm(r.toString("utf8"))){let a=[];if(o.endsWith("/*")&&!o.slice(0,-2).includes("*")){let i=o.slice(0,-2),s=await M_(Ne.join(t,...i.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&a.push(`${i}/${c.name}`)}else if(!o.includes("*"))a.push(o);else throw new st("WORKSPACE_MANIFEST_INVALID");for(let i of a){let s=await jr(Ne.join(t,...i.split("/"),"package.json"));s&&n.set(i,s)}}return Object.freeze([...n].sort(([o],[a])=>o.localeCompare(a)).map(([o,a])=>Object.freeze({relativeRoot:o,bytes:a})))}async function xt(e){let t=await sm(e);if(await jr(Ne.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await jr(Ne.join(t,"pnpm-workspace.yaml")))throw new st("WORKSPACE_NESTED_UNSUPPORTED");let r=Ne.dirname(t),n;for(;r!==Ne.parse(r).root&&r!==Ne.resolve(im());){let a=await jr(Ne.join(r,"pnpm-workspace.yaml"));if(a){if(n)throw new st("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:a};break}r=Ne.dirname(r)}if(!n||!await jr(Ne.join(n.root,"pnpm-lock.yaml"))||!await jr(Ne.join(n.root,"project-capabilities.json")))throw new st("WORKSPACE_OWNER_MISSING");let o=Ne.relative(n.root,t).split(Ne.sep).join("/");if(!o||o.startsWith("../")||cm(n.manifest.toString("utf8")).filter(a=>F_(a,o)).length!==1)throw new st("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:o,unitImporterId:o,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:y(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var lm=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function vl(e){let t=await Il(e);for(let r of t){let n=await $t({projectRoot:e,planId:r.planId});if(n!==null&&lm.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await yl({projectRoot:e,planId:r.planId});if(n!==null&&n.state!=="committed")return{required:!0,kind:"metadata",planId:r.planId,state:n.state}}return{required:!1}}async function q_(e){let t=await vl(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await co({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await hl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function dm(e){let t=await q_(e);if(t.kind!=="none")return t;let r=await xt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await Il(e.projectRoot)).map(c=>c.planId)),o=await import("node:fs/promises").then(({readFile:c})=>c(`${r.transactionRoot}/.dyyto/transaction-lock.json`,"utf8")).catch(c=>c.code==="ENOENT"?void 0:Promise.reject(c));if(!o)return t;let a;try{let c=JSON.parse(o);if(typeof c.planId!="string"||!/^sha256:[a-f0-9]{64}$/u.test(c.planId)||!n.has(c.planId))return t;a=c.planId}catch{return t}let i=await $t({projectRoot:r.transactionRoot,planId:a});if(!i||!lm.has(i.state))return t;let s=await co({projectRoot:r.transactionRoot,planId:a,now:e.now});return{kind:"filesystem",planId:a,state:s.state}}import{lstat as B_,readFile as bl,realpath as pm}from"node:fs/promises";import go from"node:path";var z_=new Set(["MIT","Apache-2.0","UNLICENSED"]),J_=new Set(["public","restricted","private"]),G_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,W_=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function K_(e){let t;try{t=new URL(e)}catch{throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL")}if(t.protocol!=="https:"||t.username.length>0||t.password.length>0||t.search.length>0||t.hash.length>0||t.pathname==="/"||t.pathname.includes(".."))throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL");t.pathname=t.pathname.replace(/\/$/,"").replace(/\.git$/,"");let r=t.href.replace(/\/$/,"");if(r!==e)throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository URL must already be canonical");return r}function $r(e){if(e.profile?.id!=="workspace-node-application"&&e.profile?.id!=="workspace-web-application"&&e.profile?.id!=="workspace-expo-application"&&e.profile?.id!=="nextjs-full-stack-application")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Manifest must select a workspace application profile");let t=Object.keys(e.profile.parameters),r=e.profile.parameters.name;if(t.length!==1||t[0]!=="name"||r===void 0||r.length>128||!/^[a-z0-9][a-z0-9._-]*$/.test(r))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Application parameters must contain one valid lowercase name");return{name:r}}function sr(e,t="standalone-npm-package"){if(e.profile?.id!==t)throw new M("CONSUMER_PROFILE_UNSUPPORTED",`Manifest must select ${t} profile`);let r=e.profile.parameters,n=Object.keys(r).sort(),o=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,a=o==="1.1.0"||o==="1.2.0"||t==="react-component-library",i=a?["license","name","publishAccess","repository","version"]:["license","name","publishAccess","version"];if(n.length!==i.length||n.some((f,u)=>f!==i[u]))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Standalone npm profile parameters must be exact");let{name:s,version:c,license:l,publishAccess:d,repository:p}=r;if(s===void 0||s.length>214||!G_.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!W_.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!z_.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!J_.has(d))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(d==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:l,publishAccess:d,...a?{repository:K_(p)}:{}}}function kl(e){let t={name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,...e.repository===void 0?{}:{repository:{type:"git",url:e.repository}},type:"module",sideEffects:!1,main:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"}},files:["dist"],engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test",prepack:"corepack pnpm check && corepack pnpm build"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}};return Buffer.from(`${JSON.stringify(t,null,2)}
23
- `)}function Rl(e){return Buffer.from(`${JSON.stringify({name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,repository:{type:"git",url:e.repository},type:"module",sideEffects:["**/*.css"],files:["dist"],main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./style.css":"./dist/style.css"},engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"vite build && tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run","verify:bundle":"vite build && tsc -p tsconfig.build.json && node tooling/verify-bundle.mjs",check:"corepack pnpm typecheck && corepack pnpm test && corepack pnpm verify:bundle",prepack:"corepack pnpm check"},peerDependencies:{react:">=19.0.0 <20","react-dom":">=19.0.0 <20"},devDependencies:{"@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",jsdom:"30.0.1",react:"19.2.8","react-dom":"19.2.8",typescript:"6.0.3",vite:"8.2.1",vitest:"4.1.10"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}}},null,2)}
24
- `)}function Y_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"pnpm typecheck && pnpm test && pnpm build",start:"node dist/index.js"},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
25
- `)}function H_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"vite",build:"tsc -b && vite build",preview:"vite preview",typecheck:"tsc -b --pretty false",test:"vitest run",check:"pnpm typecheck && pnpm test && pnpm build"},dependencies:{react:"19.2.8","react-dom":"19.2.8"},devDependencies:{"@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",jsdom:"30.0.1",typescript:"6.0.3",vite:"8.2.1",vitest:"4.1.10"}},null,2)}
26
- `)}function X_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"next dev",build:"next build",start:"node .artifacts/standalone/server.js",typecheck:"tsc --noEmit",lint:"eslint .","test:unit":"vitest run","test:e2e":"playwright test",test:"pnpm test:unit && pnpm test:e2e",package:"pnpm build && node tooling/package-standalone.mjs",check:"pnpm lint && pnpm typecheck && pnpm test:unit && pnpm build"},dependencies:{next:"16.2.11",react:"19.2.8","react-dom":"19.2.8","server-only":"0.0.1"},devDependencies:{"@playwright/test":"1.62.1","@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",eslint:"9.39.5","eslint-config-next":"16.2.11",jsdom:"30.0.1",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
27
- `)}function Z_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,main:"expo-router/entry",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"expo start",android:"expo start --android",ios:"expo start --ios",web:"expo start --web",build:"expo export --platform web --output-dir dist",package:"corepack pnpm build && node tooling/verify-expo-export.mjs",typecheck:"tsc --noEmit",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test && corepack pnpm package"},dependencies:{expo:"~57.0.15","expo-router":"~57.0.15","expo-status-bar":"~57.0.1",react:"19.2.3","react-dom":"19.2.3","react-native":"0.86.2","react-native-safe-area-context":"5.9.1","react-native-screens":"4.27.0","react-native-web":"0.21.2"},devDependencies:{"@types/node":"24.10.13","@types/react":"19.2.14",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
28
- `)}async function um(e,t){let r=go.join(e,...t.split("/"));try{let n=await B_(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Managed target must be a regular file",t);return{path:t,exists:!0,digest:y(await bl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Cr(e,t){let r=X(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?H_($r(r).name):t==="workspace-expo-application"?Z_($r(r).name):t==="nextjs-full-stack-application"?X_($r(r).name):Y_($r(r).name):t==="react-component-library"?Rl(sr(r,t)):kl(sr(r,t));if(r.capabilities.filter(u=>u.capabilityId===e.release.release.capabilityId&&u.version===e.release.release.version).length!==1||e.release.release.consumerProfile!==t)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded standalone npm release");let i=(e.currentLock===void 0?void 0:Fe(e.currentLock))?.capabilities.find(u=>u.capabilityId===e.release.release.capabilityId);if(i!==void 0&&(i.version!==e.release.release.version||i.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Changing locked npm profile parameters or release is not supported");let s=new Map(e.release.contents);s.set("package.json",n);let c=await pm(go.resolve(e.projectRoot)),l=[],d=[];for(let u of e.release.release.assets){if(s.get(u.path)===void 0)throw new M("RELEASE_NOT_FOUND","Release asset content is unavailable",u.path);let g=await um(c,u.path);if(g.exists&&i===void 0&&e.allowExistingWithoutLock!==!0&&u.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile cannot adopt over an existing owned file without a lock",u.path);u.ownership==="seed-file"&&g.exists&&s.set(u.path,await bl(go.join(c,...u.path.split("/"))));let h=y(s.get(u.path));l.push(g),d.push({path:u.path,kind:"create",ownership:u.ownership,desiredDigest:h})}let p={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:d.map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},f=Pe({action:"adopt",capability:p,changes:d,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{manifest:r,release:e.release,plan:f,desiredContents:s}}function ho(e){return Cr(e,"standalone-npm-package")}function yo(e){return Cr(e,"react-component-library")}function wn(e){return Cr(e,"nextjs-full-stack-application")}async function _l(e){let t=X(e.manifest);if(t.profile?.id!=="nextjs-full-stack-application"||e.release.release.consumerProfile!=="nextjs-full-stack-application"||e.release.release.assets.some(u=>u.ownership!=="seed-file"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Historical adoption requires a seed-only Next.js Profile Release");let r=X({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await wn({...e,manifest:r}),o=await pm(go.resolve(e.projectRoot)),a="project-capabilities.json",i=await bl(go.join(o,a)),s=Buffer.from(`${JSON.stringify(r,null,2)}
29
- `),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:a,kind:"replace",ownership:"owned-file",baseDigest:y(i),desiredDigest:y(s)});let l=await Promise.all(c.map(u=>um(o,u.path))),d=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:c.filter(u=>u.path!==a).map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),p=new Map([...n.desiredContents,[a,s]]),f=new Map;for(let u of d.operations)u.disposition==="ready"&&u.kind!=="remove"&&f.set(u.path,p.get(u.path));return{...n,manifest:r,plan:d,desiredContents:f}}function wo(e){return Cr(e,"workspace-npm-package")}function Io(e){return Cr(e,"workspace-node-application")}function vo(e){return Cr(e,"workspace-web-application")}function bo(e){return Cr(e,"workspace-expo-application")}async function fm(e){if(e.currentLock!==void 0){let n=await ho(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ho({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function mm(e){if(e.currentLock!==void 0){let n=await yo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await yo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function gm(e){if(e.currentLock!==void 0){let n=await wn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await wn({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function hm(e){if(e.currentLock!==void 0){let n=await wo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await wo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function ym(e){if(e.currentLock!==void 0){let n=await Io(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Io({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function wm(e){if(e.currentLock!==void 0){let n=await vo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await vo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Im(e){if(e.currentLock!==void 0){let n=await bo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await bo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}import{lstat as vA,readFile as mi,realpath as bA}from"node:fs/promises";import Ao from"node:path";var It=class extends Error{code;constructor(t,r){super(r),this.code=t}},Tr=/^sha256:[a-f0-9]{64}$/,Q_=/^sha512-[A-Za-z0-9+/]{86}==$/,eA=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,bm=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,tA=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,vm=/^[a-z][a-z0-9._:-]{2,127}$/;function Lr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,o)=>n===[...t].sort()[o])}function rA(e){if(!Lr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!bm.test(e.registryId)||!vm.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,o)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==o)||!Lr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!Lr(e.capabilities,["read","write","provenance","staging"])||!["workload-identity","short-lived-token","restricted-token","anonymous-test"].includes(e.authentication.kind)||e.authentication.kind==="anonymous-test"!=(e.authentication.credentialRef===void 0)||e.authentication.credentialRef!==void 0&&!vm.test(e.authentication.credentialRef))return!1;let t;try{t=new URL(e.origin)}catch{return!1}if(t.username||t.password||t.search||t.hash||!t.pathname.endsWith("/")||t.pathname.includes("..")||/%2f|%5c/iu.test(t.pathname))return!1;let r=t.hostname==="127.0.0.1"||t.hostname==="localhost"||t.hostname==="[::1]";return e.authentication.kind==="anonymous-test"&&(!r||t.protocol!=="http:")||e.authentication.kind!=="anonymous-test"&&t.protocol!=="https:"?!1:typeof e.capabilities.read=="boolean"&&typeof e.capabilities.write=="boolean"&&typeof e.capabilities.provenance=="boolean"&&typeof e.capabilities.staging=="boolean"&&(e.status==="enabled"||e.status==="disabled")}function Al(e){if(!rA(e))throw new It("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,scopes:Object.freeze([...e.scopes]),authentication:Object.freeze({...e.authentication}),capabilities:Object.freeze({...e.capabilities}),revision:y(b(t))})}function ko(e){let t=e;if(typeof t!="object"||t===null||!Lr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Tr.test(t.revision))throw new It("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...o}=t;if(Al(o).revision!==n)throw new It("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function nA(e,t){let r,n;try{r=new URL(e.origin),n=new URL(t)}catch{return!1}return n.username||n.password||n.search||n.hash||n.pathname!==r.pathname||n.protocol!==r.protocol||n.hostname!==r.hostname?!1:e.authentication.kind==="anonymous-test"||n.port===r.port}function El(e,t){let r=ko(t);if(!Lr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!nA(r,e.origin)||Number.isNaN(Date.parse(e.resolvedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new It("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:y(b(n))})}function km(e,t){let r=e;if(typeof r!="object"||r===null||!Lr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Tr.test(r.bindingDigest))throw new It("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:o,...a}=r;if(El(a,t).bindingDigest!==o)throw new It("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function oA(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return Lr(e,t)&&bm.test(e.registryId)&&Tr.test(e.registryConfigRevision)&&tA.test(e.packageName)&&eA.test(e.version)&&Q_.test(e.integrity)&&Tr.test(e.tarballDigest)&&Tr.test(e.sourceDeliveryReceiptId)&&!Number.isNaN(Date.parse(e.verifiedAt))&&(e.access==="restricted"||e.access==="private")&&["registry-attested","external-attested","local-readback-verified","development-readback-verified","registry-verified-no-attestation"].includes(e.provenance)&&(e.provenance!=="registry-verified-no-attestation"?e.verificationIdentityDigest!==void 0&&Tr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Pl(e){if(!oA(e))throw new It("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(b(t))})}function Rm(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Tr.test(t.receiptId))throw new It("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...o}=t;if(Pl(o).receiptId!==n)throw new It("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Re=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Ro(e){return y(b(e))}var Nl=/^sha256:[a-f0-9]{64}$/u,aA=/^sha512-[A-Za-z0-9+/]{86}==$/u,iA=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ei=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,sA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,cA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function ti(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,a)=>o===n[a])}function _m(e){return y(b(e))}function Am(e){let t=Buffer.from(e.desiredLockfile),r=y(t),n={schemaVersion:1,workerReleaseId:e.workerReleaseId,workerStateRevision:e.workerStateRevision,requestDigest:e.requestDigest,pnpmVersion:e.pnpmVersion,desiredLockDigest:r,importerFacts:e.importerFacts.map(i=>({...i})),packageFacts:e.packageFacts.map(i=>({...i})),snapshotClosureDigest:e.snapshotClosureDigest,networkObservationDigest:e.networkObservationDigest,cacheObservation:{...e.cacheObservation},commandDigest:e.commandDigest,completedAt:e.completedAt,expiresAt:e.expiresAt},o={...n,jobId:_m(n),desiredLockfile:t};Em(o);let a={...o,importerFacts:Object.freeze(o.importerFacts.map(i=>Object.freeze({...i}))),packageFacts:Object.freeze(o.packageFacts.map(i=>Object.freeze({...i}))),cacheObservation:Object.freeze({...o.cacheObservation})};return Object.freeze(a)}function Em(e){if(!ti(e,["schemaVersion","jobId","workerReleaseId","workerStateRevision","requestDigest","pnpmVersion","desiredLockfile","desiredLockDigest","importerFacts","packageFacts","snapshotClosureDigest","networkObservationDigest","cacheObservation","commandDigest","completedAt","expiresAt"])||e.schemaVersion!==1||e.pnpmVersion!=="11.21.0")throw new Re("RESOLUTION_EVIDENCE_INVALID");if(![e.jobId,e.workerStateRevision,e.requestDigest,e.desiredLockDigest,e.snapshotClosureDigest,e.networkObservationDigest,e.commandDigest,e.cacheObservation.preimageRevision,e.cacheObservation.desiredRevision,e.cacheObservation.writesDigest].every(o=>Nl.test(o)))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(!ei.test(e.workerReleaseId)||!ei.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||y(e.desiredLockfile)!==e.desiredLockDigest||Number.isNaN(Date.parse(e.completedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.completedAt))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(!ti(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Re("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(o=>!ti(o,["importerId","manifestDigest","preimageDigest","desiredDigest"])||o.importerId!=="."&&!ei.test(o.importerId)||![o.manifestDigest,o.preimageDigest,o.desiredDigest].every(a=>Nl.test(a))))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(o=>!ti(o,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!cA.test(o.identity)||!sA.test(o.packageName)||!ei.test(o.registryId)||!iA.test(o.version)||!aA.test(o.integrity)||typeof o.managed!="boolean"||!Nl.test(o.edgesDigest)))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(o=>o.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(o=>o.identity)).size!==e.packageFacts.length)throw new Re("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(_m(n)!==e.jobId)throw new Re("RESOLUTION_EVIDENCE_INVALID")}function Ol(e,t){if(Em(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Re("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Re("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Re("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let o=e.importerFacts.find(a=>a.importerId===n.importerId);if(!o||o.preimageDigest!==n.preimageDigest||o.desiredDigest!==n.preimageDigest)throw new Re("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let o=e.packageFacts.filter(a=>a.managed&&a.packageName===n.packageName);if(o.length!==1||o[0].registryId!==n.registryId||o[0].version!==n.version||o[0].integrity!==n.integrity)throw new Re("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Re("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var Y=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function oi(e){let t={sourceChannel:e.sourceChannel,packageJsonPreimageDigest:e.packageJsonPreimageDigest,desiredPackageJsonDigest:e.desiredPackageJsonDigest,lockfilePreimage:{...e.lockfilePreimage},desiredLockfileDigest:e.desiredLockfileDigest,registryRevisions:e.registryRevisions.map(r=>({...r})),endpointBindings:e.endpointBindings.map(({registryId:r,registryConfigRevision:n,bindingDigest:o,expiresAt:a})=>({registryId:r,registryConfigRevision:n,bindingDigest:o,expiresAt:a})),sources:e.sources.map(r=>({...r})),installPolicy:{...e.installPolicy}};if(e.schemaVersion===1)return{schemaVersion:1,...t};if(!e.topology||!e.preservedDependencies||!e.preservedImporterDigests)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var ri=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,Pm=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function Sl(e){return Array.isArray(e)?`[${e.map(Sl).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${Sl(r)}`).join(",")}}`:JSON.stringify(e)}function Vt(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function ct(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function ni(e){for(let t of[ct(e.dependencies),ct(e.devDependencies),ct(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!ri.test(n)||Pm.test(n)))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}var lA=["dependencies","devDependencies","optionalDependencies"];function ai(e,t){let r=[];for(let n of lA)for(let[o,a]of Object.entries(ct(e[n]))){if(t.has(o)){if(!ri.test(a))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(a))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:o,specifier:a})}return r.sort((n,o)=>`${n.section}:${n.packageName}`.localeCompare(`${o.section}:${o.packageName}`))}function Dl(e){let t=Vt(e.packageJson);ni(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:a})=>a==="runtime").map(({packageName:a,version:i})=>[a,i])),n=Object.fromEntries(e.release.packageSources.filter(({usage:a})=>a==="development").map(({packageName:a,version:i})=>[a,i])),o={...t,...Object.keys(r).length?{dependencies:{...ct(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...ct(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(o,null,2)}
30
- `)}function _o(e){let t=Vt(e.packageJson);ai(t,new Set(e.release.packageSources.map(o=>o.packageName)));let r=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="runtime").map(({packageName:o,version:a})=>[o,a])),n=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="development").map(({packageName:o,version:a})=>[o,a]));return Buffer.from(`${JSON.stringify({...t,...Object.keys(r).length?{dependencies:{...ct(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...ct(t.devDependencies),...n}}:{}},null,2)}
31
- `)}function jl(e){let t=Vt(e.packageJson);ni(t);let r=ct(t.dependencies),n=ct(t.devDependencies);for(let a of e.remove)delete(a.usage==="runtime"?r:n)[a.packageName];let o={...t};return Object.keys(r).length===0?delete o.dependencies:o.dependencies=r,Object.keys(n).length===0?delete o.devDependencies:o.devDependencies=n,Buffer.from(`${JSON.stringify(o,null,2)}
32
- `)}function $l(e){let t=Vt(e.packageJson);ai(t,new Set(e.remove.map(a=>a.packageName)));let r=ct(t.dependencies),n=ct(t.devDependencies);for(let a of e.remove)delete(a.usage==="runtime"?r:n)[a.packageName];let o={...t};return Object.keys(r).length===0?delete o.dependencies:o.dependencies=r,Object.keys(n).length===0?delete o.devDependencies:o.devDependencies=n,Buffer.from(`${JSON.stringify(o,null,2)}
33
- `)}function Nm(e){let t=e.currentLock.capabilities.find(p=>p.capabilityId===e.release.capabilityId&&p.version===e.release.version);if(!t?.packageAdoption)throw new Y("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(p=>p!==t).flatMap(p=>p.packageAdoption?.sources.map(f=>f.packageName)??[])),n=t.packageAdoption.sources.filter(p=>!r.has(p.packageName)),o=jl({packageJson:e.packageJson,remove:n}),a=Vt(e.projectManifest),i=Array.isArray(a.capabilities)?a.capabilities:[],s=Buffer.from(`${JSON.stringify({...a,capabilities:i.filter(p=>p.capabilityId!==e.release.capabilityId||p.version!==e.release.version)},null,2)}
34
- `),c=e.endpointBindings.filter(p=>n.some(f=>f.registryId===p.registryId)),l=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(o)},{path:"pnpm-lock.yaml",kind:"replace",ownership:"owned-file",baseDigest:y(e.currentLockfile),desiredDigest:y(e.desiredLockfile)},...t.assets.map(p=>({path:p.path,kind:"remove",ownership:p.ownership??"owned-file",baseDigest:p.digest}))];return{plan:Pe({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(p=>({path:p.path,ownership:p.ownership??"owned-file",desiredDigest:p.digest})),verifiers:e.release.verifiers.map(p=>({id:p.id,kind:"file-digest"}))},changes:l,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:1,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(o),lockfilePreimage:{kind:"present",digest:y(e.currentLockfile)},desiredLockfileDigest:y(e.desiredLockfile),registryRevisions:t.packageAdoption.registryRevisions.map(p=>({...p})),endpointBindings:c.map(({registryId:p,registryConfigRevision:f,bindingDigest:u,expiresAt:m})=>({registryId:p,registryConfigRevision:f,bindingDigest:u,expiresAt:m})),sources:n.map(p=>({...p})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}}}),desiredContents:new Map([["project-capabilities.json",s],["package.json",o],["pnpm-lock.yaml",e.desiredLockfile]]),removedSources:n}}function Om(e){let t=e.currentLock.capabilities.find(g=>g.capabilityId===e.release.capabilityId&&g.version===e.release.version);if(!t?.packageAdoption||e.topology.mode!=="pnpm-shared-lockfile")throw new Y("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(g=>g!==t).flatMap(g=>g.packageAdoption?.sources.map(h=>h.packageName)??[])),n=t.packageAdoption.sources.filter(g=>!r.has(g.packageName)),o=$l({packageJson:e.packageJson,remove:n}),a=e.remainingSources.map(({registryId:g,packageName:h,version:w,integrity:_})=>({registryId:g,packageName:h,version:w,integrity:_})),i={mode:e.topology.mode,unitRelativeRoot:e.topology.unitRelativeRoot,unitImporterId:e.topology.unitImporterId,lockfilePath:e.topology.lockfilePath,...e.topology.workspaceManifestPath?{workspaceManifestPath:e.topology.workspaceManifestPath,workspaceManifestDigest:e.topology.workspaceManifestDigest}:{}},s=Ol(e.resolutionEvidence,{requestDigest:Ro({schemaVersion:1,pnpmVersion:"11.21.0",topology:i,currentLockfileDigest:y(e.currentLockfile),desiredPackageJsonDigest:y(o),sources:a,preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:h})=>({importerId:g,preimageDigest:h}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:y(o),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:h})=>({importerId:g,preimageDigest:h})),managedSources:a,now:e.generatedAt}),c=Vt(e.projectManifest),l=Array.isArray(c.capabilities)?c.capabilities:[],d=Buffer.from(`${JSON.stringify({...c,capabilities:l.filter(g=>g.capabilityId!==e.release.capabilityId||g.version!==e.release.version)},null,2)}
35
- `),p=g=>`${e.topology.unitRelativeRoot}/${g}`,f=e.endpointBindings.filter(g=>n.some(h=>h.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(d)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(o)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:y(e.currentLockfile),desiredDigest:s.desiredLockDigest},...t.assets.map(g=>({path:p(g.path),kind:"remove",ownership:g.ownership??"owned-file",baseDigest:g.digest}))];return{plan:Pe({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(g=>({path:g.path,ownership:g.ownership??"owned-file",desiredDigest:g.digest})),verifiers:e.release.verifiers.map(g=>({id:g.id,kind:"file-digest"}))},changes:u,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:2,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(o),lockfilePreimage:{kind:"present",digest:y(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:f.map(({registryId:g,registryConfigRevision:h,bindingDigest:w,expiresAt:_})=>({registryId:g,registryConfigRevision:h,bindingDigest:w,expiresAt:_})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:i,preservedDependencies:ai(Vt(o),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[p("project-capabilities.json"),d],[p("package.json"),o],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function ii(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",o=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!o)||e.release.packageSources.length===0)throw new Y("PACKAGE_SOURCE_NOT_FOUND");let a=Vt(e.packageJson),i=e.desiredBasePackageJson??e.packageJson,s=Vt(i),c="topology"in e,l=c?ai(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||ni(a),c||ni(s);let d=new Map(e.registryConfigs.map(I=>{let R=ko(I);return[R.registryId,R]})),p=new Map(e.endpointBindings.map(I=>{let R=d.get(I.registryId);if(R===void 0)throw new Y("PACKAGE_SOURCE_NOT_FOUND");let S=km(I,R);return[S.registryId,S]})),f=new Map(e.receipts.map(I=>{let R=Rm(I);return[R.receiptId,R]})),u=new Map(e.inspections.map(I=>[`${I.registryId}:${I.packageName}@${I.version}`,I])),m=new Map(e.release.packageSources.map(I=>[I.packageName,I])),g=c?Ol(e.resolutionEvidence,{requestDigest:Ro({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:y(e.currentLockfile),desiredPackageJsonDigest:y(_o({release:e.release,packageJson:i})),sources:e.release.packageSources.map(({registryId:I,packageName:R,version:S,integrity:C})=>({registryId:I,packageName:R,version:S,integrity:C})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:y(_o({release:e.release,packageJson:i})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R})),managedSources:e.release.packageSources.map(({registryId:I,packageName:R,version:S,integrity:C})=>({registryId:I,packageName:R,version:S,integrity:C})),now:e.generatedAt}):void 0,h=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:R,version:S,integrity:C})=>({registryId:I,packageName:R,version:S,integrity:C}))}:e.lockResolution;if(h.lockfile.byteLength===0||h.packages.length!==e.release.packageSources.length)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${h.packages.length}/${e.release.packageSources.length}`)});let w=new Map(h.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let R=d.get(I.registryId),S=p.get(I.registryId),C=f.get(I.deliveryReceiptId),ce=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(C!==void 0&&(t==="production"&&C.provenance==="development-readback-verified"||t==="development"&&C.provenance!=="development-readback-verified"))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");if(!R||!S||Date.parse(S.expiresAt)<=Date.parse(e.expiresAt)||R.status!=="enabled"||!R.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!C||!ce||!$)throw new Y("PACKAGE_SOURCE_NOT_FOUND");if(C.registryId!==I.registryId||C.registryConfigRevision!==R.revision||C.packageName!==I.packageName||C.version!==I.version||C.integrity!==I.integrity||C.tarballDigest!==I.tarballDigest||ce.integrity!==I.integrity||ce.tarballDigest!==I.tarballDigest||ce.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new Y("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!ri.test(I.version)||ce.lifecycleScripts.length>0)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,H]of Object.entries(ce.dependencies)){let ae=m.get(P);if(P.startsWith("@aipt/")&&(!ae||ae.version!==H||!ri.test(H)))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${H}`)});if(Pm.test(H))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}}let _=c?_o({release:e.release,packageJson:i}):Dl({release:e.release,packageJson:i}),v={schemaVersion:c?2:1,sourceChannel:t,capabilityId:e.release.capabilityId,capabilityVersion:e.release.version,capabilityIntegrity:e.release.integrity,consumerProfile:e.consumerProfile,generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(_),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:y(e.currentLockfile)}),desiredLockfileDigest:y(h.lockfile),registryRevisions:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,revision:R})=>Object.freeze({registryId:I,revision:R})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:R,bindingDigest:S,expiresAt:C})=>Object.freeze({registryId:I,registryConfigRevision:R,bindingDigest:S,expiresAt:C})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),sources:Object.freeze(e.release.packageSources.map(I=>Object.freeze({...I}))),installPolicy:Object.freeze({ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}),...c?{topology:Object.freeze({...e.topology}),preservedDependencies:Object.freeze(l.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},A=y(Sl(v));return Object.freeze({...v,planId:A,desiredPackageJson:_,desiredLockfile:h.lockfile})}function si(e){return ii(e,"production")}function ci(e){return ii(e,"development")}function li(e){return ii(e,"production")}function di(e){return ii(e,"development")}function dA(e){let t=e.packageAdoption;if(t===void 0)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let r=t.schemaVersion===2&&t.topology.mode==="pnpm-shared-lockfile"?`${t.topology.unitRelativeRoot}/package.json`:"package.json",n=t.schemaVersion===2?t.topology.lockfilePath:"pnpm-lock.yaml",o=e.operations.filter(({path:d})=>d===r),a=e.operations.filter(({path:d})=>d===n);if(o.length!==1||a.length!==1)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let i=o[0],s=a[0],c=i.kind==="replace"&&i.baseDigest===t.packageJsonPreimageDigest&&i.desiredDigest===t.desiredPackageJsonDigest&&i.disposition==="ready",l=s.kind===(t.lockfilePreimage.kind==="absent"?"create":"replace")&&(t.lockfilePreimage.kind==="absent"?s.baseDigest===void 0:s.baseDigest===t.lockfilePreimage.digest)&&s.desiredDigest===t.desiredLockfileDigest&&s.disposition==="ready";if(!c||!l)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}async function Sm(e){dA(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await nr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await or(r);return t=!0,await e.packageManager.install({projectRoot:e.projectRoot,plan:e.plan}),await e.packageManager.verify({projectRoot:e.projectRoot,plan:e.plan}),n}catch(r){if(t){await sl({projectRoot:e.projectRoot,planId:e.plan.planId,now:new Date().toISOString(),failureCode:"PACKAGE_INSTALL_FAILED"});try{await e.packageManager.restore({projectRoot:e.projectRoot,plan:e.plan})}catch(n){throw new Y("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var Cm=Gr(kr(),1);var Tm=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],Lm="^[a-z0-9][a-z0-9._-]{0,127}$",Cl="^[A-Z][A-Z0-9_]{0,127}$",Dm="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",pA={$id:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",type:"object",additionalProperties:!1,required:["$schema","schemaVersion","kind","application","configDirectory","bindings"],properties:{$schema:{const:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json"},schemaVersion:{const:1},kind:{const:"ApplicationConfigContract"},application:{type:"object",additionalProperties:!1,required:["id","profile"],properties:{id:{type:"string",pattern:Lm},profile:{enum:Tm}}},configDirectory:{type:"object",additionalProperties:!1,required:["rootEnvironmentVariable","relativeDirectory","environmentFile","materializationOwner"],properties:{rootEnvironmentVariable:{const:"IDP_CONFIG_DIR"},relativeDirectory:{type:"string",pattern:"^applications/[a-z0-9][a-z0-9._-]{0,127}$"},environmentFile:{const:".env"},materializationOwner:{const:"external-deployment-control-plane"}}},bindings:{type:"array",maxItems:128,items:{oneOf:[{type:"object",additionalProperties:!1,required:["name","kind","required"],properties:{name:{type:"string",pattern:Cl},kind:{const:"value"},required:{type:"boolean"},default:{type:"string",maxLength:1024}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Cl},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:Dm}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Cl},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:Dm}}}]}}}},jm=new Cm.Ajv2020({allErrors:!0,strict:!0}).compile(pA),$m=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,uA=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,Ke=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function xm(e){let t=X(e),r=t.profile?.id;if(!Tm.includes(r))throw new Ke("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},o=n.name;if(Object.keys(n).length!==1||typeof o!="string"||!new RegExp(Lm,"u").test(o))throw new Ke("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:o,profile:r}}function Tl(e,t){if(!jm(e))throw new Ke("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",jm.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new Ke("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,o=new Set;for(let a of r.bindings){if(n.has(a.name))throw new Ke("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${a.name}`);if(n.add(a.name),a.kind==="value"){if($m.test(a.name))throw new Ke("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${a.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!a.name.endsWith("_FILE"))throw new Ke("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${a.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let i=a.kind==="secret-file"?"secrets/":"certs/";if(a.kind==="certificate-file"&&($m.test(a.name)||uA.test(a.name)))throw new Ke("APPLICATION_CONFIG_CONTRACT_INVALID",`${a.name} \u5305\u542B\u79C1\u5BC6\u6750\u6599\u8BED\u4E49\uFF0C\u5FC5\u987B\u4F7F\u7528 secret-file \u5E76\u653E\u5165 secrets/\uFF1Bcertificate-file \u53EA\u5141\u8BB8\u516C\u5F00\u8BC1\u4E66\u3002`);let s=a.file.split("/");if(!a.file.startsWith(i)||s.some(c=>c===""||c==="."||c===".."))throw new Ke("APPLICATION_CONFIG_CONTRACT_INVALID",`${a.name} \u5FC5\u987B\u4F4D\u4E8E ${i} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(o.has(a.file))throw new Ke("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${a.file}`);o.add(a.file)}if(t!==void 0){let a=xm(t);if(r.application.id!==a.id||r.application.profile!==a.profile)throw new Ke("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function pi(e){let t=xm(e),r=t.profile==="workspace-web-application"?[]:[{name:"PORT",kind:"value",required:!1,default:"3000"}],n={$schema:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",schemaVersion:1,kind:"ApplicationConfigContract",application:t,configDirectory:{rootEnvironmentVariable:"IDP_CONFIG_DIR",relativeDirectory:`applications/${t.id}`,environmentFile:".env",materializationOwner:"external-deployment-control-plane"},bindings:r};return Tl(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
36
- `)}import{createHash as fA,X509Certificate as mA}from"node:crypto";import{lstat as Ll,readFile as xr,realpath as Vm}from"node:fs/promises";import ge from"node:path";var ve=class extends Error{code;constructor(t,r){super(r),this.code=t}};function Fm(e){let t=X(e),r=t.profile?.parameters?.name;if(typeof r!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(r))throw new ve("APPLICATION_CONFIG_BINDING_IDENTITY_INVALID","\u9879\u76EE\u7F3A\u5C11\u5408\u6CD5Application identity\u3002");return{id:r,profile:t.profile.id}}function ui(e){let t=Fm(e);return Buffer.from(`${JSON.stringify({$schema:"https://schemas.dyyto.dev/platform/application-config-binding-v1.json",schemaVersion:1,kind:"ApplicationConfigBinding",application:t,environment:{name:"local"},configDirectory:{rootEnvironmentVariable:"APP_CONFIG_DIR",scope:"application-environment"},contract:{path:"config/application-config.json"},materializationOwner:"external-deployment-control-plane"},null,2)}
37
- `)}function gA(e,t){let r=e;if(r?.$schema!=="https://schemas.dyyto.dev/platform/application-config-binding-v1.json"||r.schemaVersion!==1||r.kind!=="ApplicationConfigBinding"||r.environment?.name!=="local"||r.configDirectory?.rootEnvironmentVariable!=="APP_CONFIG_DIR"||r.configDirectory.scope!=="application-environment"||r.contract?.path!=="config/application-config.json"||r.materializationOwner!=="external-deployment-control-plane")throw new ve("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u4E0D\u7B26\u5408v1\u5408\u540C\u3002");if(!r.application||typeof r.application.id!="string"||typeof r.application.profile!="string")throw new ve("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=Fm(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new ve("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function hA(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let o=n.trim();if(!o||o.startsWith("#"))continue;let a=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(o),i=a?.[1],s=a?.[2];if(!i||s===void 0||i in t)throw new ve("APPLICATION_CONFIG_ENV_INVALID",`.env:${r+1}\u683C\u5F0F\u65E0\u6548\u6216\u53D8\u91CF\u91CD\u590D\u3002`);t[i]=s.trim().replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/u,"$1$2")}return t}function Mm(e){return`sha256:${fA("sha256").update(e).digest("hex")}`}function yA(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function Um(e,t,r){let n=await Ll(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new ve("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}async function wA(e,t,r){let n=ge.dirname(e);for(;n!==ge.dirname(n);){try{if(JSON.parse(await xr(ge.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let a=ge.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(a))throw new ve("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return ge.join(ge.basename(n),a,r)}}catch(o){if(o instanceof ve)throw o}n=ge.dirname(n)}return ge.join(t,r)}async function IA(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!ge.isAbsolute(n))throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let a=await Ll(n).catch(()=>null);if(!a?.isFile()||a.isSymbolicLink()||a.nlink!==1||(a.mode&511&-385)!==0)throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let i=JSON.parse(await xr(n,"utf8"));if(i.schemaVersion!==1||!Array.isArray(i.projects))throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");let s=i.projects.filter(c=>typeof c.containerPath=="string"&&typeof c.configDirectory=="string"&&(e===c.containerPath||e.startsWith(`${c.containerPath}${ge.sep}`))).sort((c,l)=>l.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let o=r.APP_CONFIG_DIR;if(o){if(!ge.isAbsolute(o))throw new ve("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return ge.join(o,await wA(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function fi({projectRoot:e,environment:t=process.env}){let r=await Vm(ge.resolve(e)),[n,o,a]=await Promise.all([xr(ge.join(r,"project-capabilities.json")),xr(ge.join(r,".dyyto/application-config-binding.json")),xr(ge.join(r,"config/application-config.json"))]),i=JSON.parse(n.toString("utf8")),s=gA(JSON.parse(o.toString("utf8")),i),c=Tl(JSON.parse(a.toString("utf8")),i),l=await IA(r,s.application.id,t);if(!l||!ge.isAbsolute(l))throw new ve("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await Vm(l),p=await Ll(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new ve("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=ge.relative(r,d);if(f===""||!f.startsWith("..")&&!ge.isAbsolute(f))throw new ve("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=ge.join(d,".env");await Um(u,"\u5E94\u7528.env",c.bindings.length===0);let m=hA(await xr(u,"utf8")),g=[];for(let h of c.bindings){if(h.kind==="value"){let C=m[h.name]??"";g.push({name:h.name,kind:h.kind,required:h.required,configured:C.length>0,source:"APP_CONFIG_DIR",display:yA(C)});continue}if(m[h.name]!==h.file)throw new ve("APPLICATION_CONFIG_REFERENCE_CHANGED",`${h.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let _=ge.resolve(d,h.file),v=ge.relative(d,_);if(!v||v.startsWith("..")||ge.isAbsolute(v))throw new ve("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${h.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let A=await Um(_,h.name,!h.required),I=await xr(_),R=I.length>0,S;if(R&&h.kind==="certificate-file")try{let C=new mA(I);S={subject:C.subject,issuer:C.issuer,validFrom:C.validFrom,validTo:C.validTo}}catch{throw new ve("APPLICATION_CERTIFICATE_INVALID",`${h.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:h.name,kind:h.kind,required:h.required,configured:R,source:"APP_CONFIG_DIR",display:R?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",...R?{fingerprint:Mm(I),updatedAt:A.mtime.toISOString()}:{},...S?{certificate:S}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:Mm(a),entries:g}}var Vr="project-capabilities.json",qm=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function kA(e,t){if(!qm.test(e)||!qm.test(t))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade requires stable SemVer releases");let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let o=0;o<3;o+=1)if(r[o]!==n[o])return r[o]-n[o];return 0}async function RA(e,t){let r=Ao.join(e,...t.split("/"));try{let n=await vA(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Managed upgrade target must be a regular file",t);return{path:t,exists:!0,digest:y(await mi(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function gi(e,t){let r=X(e),n=t.release,o=n.assets.find(i=>i.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&o?.renderer?.startsWith("npm-package-json-")===!0)return kl(sr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&o?.renderer==="react-component-package-json-v1")return Rl(sr(r,n.consumerProfile));let a=t.contents.get("package.json");if(a===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");return a}async function xl(e){let t=X(e.manifest),r=Fe(e.currentLock),n=e.sourceRelease.release,o=e.targetRelease.release,a=t.capabilities.find(P=>P.capabilityId===n.capabilityId),i=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=o.capabilityId!==n.capabilityId&&o.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(a===void 0||i===void 0||a.capabilityId!==i.capabilityId||a.version!==i.version||n.capabilityId!==i.capabilityId||n.version!==i.version||n.integrity!==i.integrity||!s&&o.capabilityId!==i.capabilityId||o.consumerProfile!==i.consumerProfile||n.consumerProfile!==o.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&kA(o.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await bA(Ao.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:o.capabilityId,version:o.version}:P)},d=new Map(e.targetRelease.contents);o.assets.some(P=>P.path==="package.json")&&d.set("package.json",gi(l,e.targetRelease));for(let P of o.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,pi(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,ui(l));let p,f=c,u="package.json",m;if(o.schemaVersion===2&&o.availability.maturity!=="withdrawn"&&(o.packageSources?.length??0)>0){if(e.packageSource===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile transition requires verified Package Source facts");let P=d.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let H=await mi(Ao.join(c,"package.json")),ae=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=ae.transactionRoot,u=ae.mode==="pnpm-shared-lockfile"?`${ae.unitRelativeRoot}/package.json`:"package.json",m=ae.lockfilePath;let Qe={release:o,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:o.consumerProfile,packageJson:H,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ut=ae.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?di:li)({...Qe,topology:{mode:ae.mode,unitRelativeRoot:ae.unitRelativeRoot,unitImporterId:ae.unitImporterId,lockfilePath:ae.lockfilePath,workspaceManifestPath:ae.workspaceManifestPath,workspaceManifestDigest:ae.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?ci:si)({...Qe,lockResolution:e.packageSource.lockResolution});p=oi(ut),d.set("package.json",ut.desiredPackageJson),d.set(m,ut.desiredLockfile)}catch(ut){throw ut instanceof Y?new M("CONSUMER_PROFILE_UNSUPPORTED",ut.code):ut}}let g=new Map(i.assets.filter(P=>P.path!==Vr).map(P=>[P.path,P.digest])),h=new Map(o.assets.filter(P=>P.path!==Vr).map(P=>{let H=d.get(P.path);if(H===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,y(H)]})),w=[...new Set([...g.keys(),...h.keys()])].sort(),_=[],v=[];for(let P of w){let H=await RA(c,P);_.push(H);let ae=g.get(P),Qe=h.get(P),ut=o.assets.find(sy=>sy.path===P);if(ut?.ownership==="seed-file"&&H.exists&&H.digest!==void 0){h.set(P,H.digest),d.set(P,await mi(Ao.join(c,...P.split("/")))),v.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:H.digest,desiredDigest:H.digest});continue}if(ae===void 0){if(Qe===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);v.push({path:P,kind:"create",ownership:ut?.ownership??"owned-file",desiredDigest:Qe})}else Qe===void 0?v.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:ae}):v.push({path:P,kind:"replace",ownership:ut?.ownership??"owned-file",baseDigest:ae,desiredDigest:Qe})}if(p!==void 0&&m!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let H=d.get(m);_.push({path:m,exists:!0,digest:y(P)}),v.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:y(P),desiredDigest:y(H)})}let A=await mi(Ao.join(c,Vr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
38
- `);_.push({path:Vr,exists:!0,digest:y(A)}),v.push({path:Vr,kind:"replace",ownership:"owned-file",baseDigest:y(A),desiredDigest:y(I)});let R={schemaVersion:1,capabilityId:o.capabilityId,version:o.version,integrity:o.integrity,assets:o.assets.filter(P=>P.path!==Vr).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:h.get(P.path)})),verifiers:o.verifiers.map(({id:P})=>({id:P,kind:"command"}))},S=f===c?v:v.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),C=f===c?_:_.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),ce=Pe({action:"upgrade",capability:R,changes:S,observedAssets:C,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...p===void 0?{}:{packageAdoption:p}});d.set(Vr,I);let $=new Map;for(let P of ce.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let H=f===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,ae=P.path===m?P.path:P.path.startsWith(H)?P.path.slice(H.length):P.path,Qe=d.get(ae);if(Qe===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",P.path);$.set(P.path,Qe)}return{sourceLock:r,targetManifest:l,release:e.targetRelease,plan:ce,desiredContents:$,transactionRoot:f}}import{link as _A,mkdir as AA,open as Bm,readFile as vt,readdir as EA,realpath as bt,rm as PA,unlink as NA}from"node:fs/promises";import ue from"node:path";var D=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function Oe(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function zm(e){return y(b(e))}function ql(e){if(!Oe(e.project.lockDigest)||!Oe(e.project.appliedPlanId)||!Oe(e.artifact.digest))throw new D("DELIVERY_PRECONDITION_FAILED","Delivery identities must use canonical SHA-256 digests");if(Date.parse(e.expiresAt)<=Date.parse(e.createdAt)||Number.isNaN(Date.parse(e.createdAt)))throw new D("DELIVERY_PRECONDITION_FAILED","Delivery plan expiry must follow creation time");if(e.kind==="npm-publish"&&(e.artifact.type!=="npm-package"||e.target.adapterId!=="registry.npmjs"||e.risk!=="irreversible-publish")||e.kind==="application-deploy"&&(e.artifact.type!=="node-application"&&e.artifact.type!=="web-application"||e.target.adapterId!=="deployment.local-docker"||e.risk!=="local-reversible-deployment")||e.kind==="artifact-publication"&&(e.artifact.type!=="published-package"||e.target.adapterId!=="publication.offline-web"&&e.target.adapterId!=="publication.hosted-static"||(e.target.adapterId==="publication.offline-web"?e.risk!=="local-reversible-publication":e.risk!=="external-reversible-publication"))||e.kind==="hosted-static"&&(e.artifact.type!=="web-bundle"||e.target.adapterId!=="publication.hosted-static"||e.risk!=="external-reversible-publication"))throw new D("DELIVERY_PROJECT_UNSUPPORTED","Delivery kind, artifact, target, and risk must be compatible");if(e.kind==="npm-publish"&&e.publication!==void 0){let r=e.publication,n=r.execution;if(r.mode!=="staged"||r.access!=="public"||r.authentication!=="trusted-publishing"||r.trustedAction!=="stage-only"||r.provenance!=="required"||!/^[a-z0-9][a-z0-9._-]*$/.test(r.tag)||n?.provider!=="github-actions"&&n?.provider!=="gitlab-ci"||!n.repository||!n.workflow||!n.ref||Object.values(n).some(o=>typeof o!="string"||o.length>512||/[\u0000-\u001f\u007f]/.test(o)))throw new D("DELIVERY_PRECONDITION_FAILED","npm publication policy is invalid")}if(e.kind!=="npm-publish"&&e.publication!==void 0)throw new D("DELIVERY_PRECONDITION_FAILED","Publication policy is only valid for npm delivery");let t={schemaVersion:e.kind==="npm-publish"&&e.publication!==void 0?2:1,...e,state:"reviewable"};return{...t,planId:zm(t)}}function Vl(e){let t=e;if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.state!=="reviewable")throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");if(t.schemaVersion===2&&(t.kind!=="npm-publish"||t.publication===void 0)||t.schemaVersion===1&&t.publication!==void 0)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan schema and publication policy do not match");let{planId:r,...n}=t;if(zm(n)!==r)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return ql({kind:t.kind,project:t.project,artifact:t.artifact,target:t.target,risk:t.risk,createdAt:t.createdAt,expiresAt:t.expiresAt,...t.publication===void 0?{}:{publication:t.publication}})}function Jm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.createdAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record identities are invalid");let t={schemaVersion:1,...e,status:"registry-accepted"};return{...t,recordId:y(b(t))}}function Gm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||Number.isNaN(Date.parse(e.startedAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record identities are invalid");let t={schemaVersion:1,...e,status:"remote-write-started"};return{...t,recordId:y(b(t))}}function hi(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function Ml(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function Wm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.reviewedAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record identities are invalid");let t={schemaVersion:1,...e,status:"artifact-digest-verified"};return{...t,recordId:y(b(t))}}function Ul(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function yi(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||e.externalIdentity.length===0)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt identities are invalid");if("npm"in e){let r=e.npm;if(e.adapterId!=="registry.npmjs"||r===void 0||r.stageId.length===0||r.registry!=="https://registry.npmjs.org"||r.tarballDigest!==e.artifactDigest||r.access!=="public"||!/^[a-z0-9][a-z0-9._-]*$/.test(r.tag)||r.provenance!=="registry-attested"||!Oe(r.attestationUrlDigest))throw new D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt facts are incomplete or inconsistent");let n={schemaVersion:2,...e,status:"verified"};return{...n,receiptId:y(b(n))}}if(e.kind==="npm-publish"||e.kind==="application-deploy"&&e.adapterId!=="deployment.local-docker"||e.kind==="artifact-publication"&&e.adapterId!=="publication.offline-web"&&e.adapterId!=="publication.hosted-static"||e.kind==="hosted-static"&&(e.adapterId!=="publication.hosted-static"||e.details.renderMode!=="csr"))throw new D("DELIVERY_RECEIPT_INVALID","Application or artifact Delivery Receipt facts are invalid");let t={schemaVersion:1,...e,status:"verified"};return{...t,receiptId:y(b(t))}}function Fl(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt is invalid or has been modified");let{receiptId:o,schemaVersion:a,status:i,...s}=t;return yi(s)}async function OA(e){let t=await Bm(e,"r");try{await t.sync()}finally{await t.close()}}async function Eo(e,t){let r=ue.dirname(e);await AA(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,o=await Bm(n,"wx",384);try{await o.writeFile(`${b(t)}
39
- `,"utf8"),await o.sync()}finally{await o.close()}try{await _A(n,e),await NA(n),await OA(r)}catch(a){throw await PA(n,{force:!0}),a}}async function Km(e){let t=await bt(ue.resolve(e.projectRoot)),r=Vl(e.plan),n=ue.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Eo(n,r)}catch(o){if(o.code!=="EEXIST")throw o;if(b(Vl(JSON.parse(await vt(n,"utf8"))))!==b(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Mt(e){if(!Oe(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await bt(ue.resolve(e.projectRoot));try{let r=Vl(JSON.parse(await vt(ue.join(t,".dyyto","delivery","plans",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan identity does not match its path");return r}catch(r){throw r.code==="ENOENT"?new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan was not found"):r}}async function Bl(e){let t=await bt(ue.resolve(e.projectRoot)),r=Fl(e.receipt),n=await Mt({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let a=await vn({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||a===null||r.npm.stageId!==a.stageId||r.npm.tarballDigest!==a.artifactDigest||r.npm.tag!==n.publication.tag||r.npm.access!==n.publication.access)throw new D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt does not match its Plan and Stage Record")}let o=ue.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Eo(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=Fl(JSON.parse(await vt(o,"utf8")));if(b(i)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return i}return r}async function In(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await bt(ue.resolve(e.projectRoot));try{let r=Fl(JSON.parse(await vt(ue.join(t,".dyyto","delivery","receipts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Receipt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function Ym(e){let t=await bt(ue.resolve(e.projectRoot)),r=hi(e.record),n=await Mt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let o=ue.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Eo(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=hi(JSON.parse(await vt(o,"utf8")));if(b(i)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return i}return r}async function Hm(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await bt(ue.resolve(e.projectRoot));try{let r=hi(JSON.parse(await vt(ue.join(t,".dyyto","delivery","attempts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Attempt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function Xm(e){let t=await bt(ue.resolve(e.projectRoot)),r=ue.join(t,".dyyto","delivery","attempts"),n;try{n=await EA(r)}catch(o){if(o.code==="ENOENT")return null;throw o}for(let o of n.sort()){if(!o.endsWith(".json"))continue;let a=hi(JSON.parse(await vt(ue.join(r,o),"utf8")));if((await Mt({projectRoot:t,planId:a.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([vn({projectRoot:t,planId:a.planId}),In({projectRoot:t,planId:a.planId})]);if(s===null&&c===null)return a}return null}async function Zm(e){let t=await bt(ue.resolve(e.projectRoot)),r=Ml(e.record),n=await Mt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let o=ue.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Eo(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=Ml(JSON.parse(await vt(o,"utf8")));if(b(i)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return i}return r}async function vn(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await bt(ue.resolve(e.projectRoot));try{let r=Ml(JSON.parse(await vt(ue.join(t,".dyyto","delivery","stages",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function Qm(e){let t=await bt(ue.resolve(e.projectRoot)),r=Ul(e.record),n=await vn({projectRoot:t,planId:r.planId});if(n===null||r.stageId!==n.stageId||r.artifactDigest!==n.artifactDigest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record does not match its immutable Stage Record");let o=ue.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Eo(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=Ul(JSON.parse(await vt(o,"utf8")));if(b(i)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return i}return r}async function eg(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await bt(ue.resolve(e.projectRoot));try{let r=Ul(JSON.parse(await vt(ue.join(t,".dyyto","delivery","stage-reviews",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage Review identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}import{readFile as wg,readdir as mE}from"node:fs/promises";import Wl from"node:path";import{mkdir as zl,open as bi,readFile as No,readdir as Jl,rename as ki,rm as gg}from"node:fs/promises";import he from"node:path";var SA=44;var tg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",DA=new Uint8Array(64),ng=new Uint8Array(128);for(let e=0;e<tg.length;e++){let t=tg.charCodeAt(e);DA[e]=t,ng[t]=e}function Po(e,t){let r=0,n=0,o=0;do{let i=e.next();o=ng[i],r|=(o&31)<<n,n+=5}while(o&32);let a=r&1;return r>>>=1,a&&(r=-2147483648|-r),t+r}function rg(e,t){return e.pos>=t?!1:e.peek()!==SA}var LD=1024*16;var jA=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:r}=this,n=t.indexOf(e,r);return n===-1?t.length:n}};function og(e){let{length:t}=e,r=new jA(e),n=[],o=0,a=0,i=0,s=0,c=0;do{let l=r.indexOf(";"),d=[],p=!0,f=0;for(o=0;r.pos<l;){let u;o=Po(r,o),o<f&&(p=!1),f=o,rg(r,l)?(a=Po(r,a),i=Po(r,i),s=Po(r,s),rg(r,l)?(c=Po(r,c),u=[o,a,i,s,c]):u=[o,a,i,s]):u=[o],d.push(u),r.pos++}p||$A(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function $A(e){e.sort(CA)}function CA(e,t){return e[0]-t[0]}var TA=/^[\w+.-]+:\/\//,LA=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,xA=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function VA(e){return TA.test(e)}function MA(e){return e.startsWith("//")}function sg(e){return e.startsWith("/")}function UA(e){return e.startsWith("file:")}function ag(e){return/^[.?#]/.test(e)}function wi(e){let t=LA.exec(e);return cg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function FA(e){let t=xA.exec(e),r=t[2];return cg("file:","",t[1]||"","",sg(r)?r:"/"+r,t[3]||"",t[4]||"")}function cg(e,t,r,n,o,a,i){return{scheme:e,user:t,host:r,port:n,path:o,query:a,hash:i,type:7}}function ig(e){if(MA(e)){let r=wi("http:"+e);return r.scheme="",r.type=6,r}if(sg(e)){let r=wi("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(UA(e))return FA(e);if(VA(e))return wi(e);let t=wi("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function qA(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function BA(e,t){lg(t,t.type),e.path==="/"?e.path=t.path:e.path=qA(t.path)+e.path}function lg(e,t){let r=t<=4,n=e.path.split("/"),o=1,a=0,i=!1;for(let c=1;c<n.length;c++){let l=n[c];if(!l){i=!0;continue}if(i=!1,l!=="."){if(l===".."){a?(i=!0,a--,o--):r&&(n[o++]=l);continue}n[o++]=l,a++}}let s="";for(let c=1;c<o;c++)s+="/"+n[c];(!s||i&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function dg(e,t){if(!e&&!t)return"";let r=ig(e),n=r.type;if(t&&n!==7){let a=ig(t),i=a.type;switch(n){case 1:r.hash=a.hash;case 2:r.query=a.query;case 3:case 4:BA(r,a);case 5:r.user=a.user,r.host=a.host,r.port=a.port;case 6:r.scheme=a.scheme}i>n&&(n=i)}lg(r,n);let o=r.query+r.hash;switch(n){case 2:case 3:return o;case 4:{let a=r.path.slice(1);return a?ag(t||e)&&!ag(a)?"./"+a+o:a+o:o||"."}case 5:return r.path+o;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+o}}function zA(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function JA(e,t){let r=zA(e),n=t?t+"/":"";return o=>dg(n+(o||""),r)}var cr=0,GA=1,WA=2,KA=3,YA=4;function HA(e,t){let r=pg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=pg(e,n+1))e[n]=ZA(e[n],t);return e}function pg(e,t){for(let r=t;r<e.length;r++)if(!XA(e[r]))return r;return e.length}function XA(e){for(let t=1;t<e.length;t++)if(e[t][cr]<e[t-1][cr])return!1;return!0}function ZA(e,t){return t||(e=e.slice()),e.sort(QA)}function QA(e,t){return e[cr]-t[cr]}var vi=!1;function eE(e,t,r,n){for(;r<=n;){let o=r+(n-r>>1),a=e[o][cr]-t;if(a===0)return vi=!0,o;a<0?r=o+1:n=o-1}return vi=!1,r-1}function tE(e,t,r){for(let n=r+1;n<e.length&&e[n][cr]===t;r=n++);return r}function rE(e,t,r){for(let n=r-1;n>=0&&e[n][cr]===t;r=n--);return r}function nE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function oE(e,t,r,n){let{lastKey:o,lastNeedle:a,lastIndex:i}=r,s=0,c=e.length-1;if(n===o){if(t===a)return vi=i!==-1&&e[i][cr]===t,i;t>=a?s=i===-1?0:i:c=i}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=eE(e,t,s,c)}function aE(e){return typeof e=="string"?JSON.parse(e):e}var iE="`line` must be greater than 0 (lines start at line 1)",sE="`column` must be greater than or equal to 0 (columns start at column 0)",ug=-1,cE=1,fg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=aE(e),{version:o,file:a,names:i,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=o,this.file=a,this.names=i||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let d=JA(t,s);this.resolvedSources=c.map(d);let{mappings:p}=n;if(typeof p=="string")this._encoded=p,this._decoded=void 0;else if(Array.isArray(p))this._encoded=void 0,this._decoded=HA(p,r);else throw n.sections?new Error("TraceMap passed sectioned source map, please use FlattenMap export instead"):new Error(`invalid source map: ${JSON.stringify(n)}`);this._decodedMemo=nE(),this._bySources=void 0,this._bySourceMemos=void 0}};function lE(e){var t;return(t=e)._decoded||(t._decoded=og(e._encoded))}function mg(e,t){let{line:r,column:n,bias:o}=t;if(r--,r<0)throw new Error(iE);if(n<0)throw new Error(sE);let a=lE(e);if(r>=a.length)return Ii(null,null,null,null);let i=a[r],s=dE(i,e._decodedMemo,r,n,o||cE);if(s===-1)return Ii(null,null,null,null);let c=i[s];if(c.length===1)return Ii(null,null,null,null);let{names:l,resolvedSources:d}=e;return Ii(d[c[GA]],c[WA]+1,c[KA],c.length===5?l[c[YA]]:null)}function Ii(e,t,r,n){return{source:e,line:t,column:r,name:n}}function dE(e,t,r,n,o){let a=oE(e,n,t,r);return vi?a=(o===ug?tE:rE)(e,n,a):o===ug&&a++,a===-1||a===e.length?-1:a}var oe=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},Gl=/^sha256:[a-f0-9]{64}$/,hg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,pE=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,Ri=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Oo=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),bn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function yg(e,t){if(t.releaseId===void 0&&t.deploymentId===void 0)return"unknown";if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(t.applicationId))throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=he.join(he.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Mt({projectRoot:r,planId:t.deploymentId}),o=await In({projectRoot:r,planId:n.planId});if(o===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||o.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await Jl(he.join(he.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function uE(e){if(!Oo(e)||!Ri(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!Oo(e.error)||!Oo(e.page)||!Ri(e.error,["type","message","frames"])||!Ri(e.page,["origin","path"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!hg.test(e.eventId)||typeof e.occurredAt!="string"||Number.isNaN(Date.parse(e.occurredAt))||typeof e.applicationId!="string"||e.applicationId.length<1||e.applicationId.length>128)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!Gl.test(n)))throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!pE.test(e.traceparent)))throw new oe("RUNTIME_ERROR_INVALID","traceparent is invalid");if(typeof e.error.type!="string"||typeof e.error.message!="string"||!Array.isArray(e.error.frames)||e.error.frames.length>50||typeof e.page.origin!="string"||typeof e.page.path!="string")throw new oe("RUNTIME_ERROR_INVALID","Runtime Error content is invalid");if(e.error.message.length>4096||e.error.type.length>256||e.page.path.length>2048)throw new oe("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!Oo(n)||!Ri(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let o of[n.line,n.column])if(o!==void 0&&(!Number.isSafeInteger(o)||Number(o)<1))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page origin is invalid")}if(r.origin!==e.page.origin||!e.page.path.startsWith("/")||e.page.path.includes("?")||e.page.path.includes("#"))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function fE(e,t,r="unknown"){let n=e.error.frames.map(i=>({file:bn(i.file,2048),...i.line===void 0?{}:{line:i.line},...i.column===void 0?{}:{column:i.column},...i.function===void 0?{}:{function:bn(i.function,256)}})),o={type:bn(e.error.type,256),message:bn(e.error.message,4096),frames:n},a=y(b({type:o.type,message:o.message,frames:n.slice(0,5).map(({file:i,line:s,column:c})=>({file:i,line:s,column:c}))}));return{schemaVersion:1,eventId:e.eventId,occurredAt:e.occurredAt,receivedAt:t,applicationId:bn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:o,page:{origin:e.page.origin,path:bn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:a,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Ut=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return he.join(he.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return he.join(he.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=uE(t);if(!r.allowedOrigins.includes(n.page.origin))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let o=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),a=fE(n,r.receivedAt,o);return this.#t(async()=>{let i=this.directory();await zl(i,{recursive:!0,mode:448});let s=he.join(i,`${a.eventId}.json`);try{let f=JSON.parse(await No(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(b({...u,receivedAt:a.receivedAt})!==b(a))throw new oe("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:a.eventId,state:u.state,duplicate:!0}}catch(f){if(f.code!=="ENOENT")throw f}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await bi(c,"wx",384);try{await l.writeFile(`${b(a)}
40
- `,"utf8"),await l.sync()}finally{await l.close()}await ki(c,s);let d=await bi(i,"r");try{await d.sync()}finally{await d.close()}await this.rotate(),a.releaseId!==void 0&&await this.resymbolicate(a.releaseId);let p=JSON.parse(await No(s,"utf8"));return{eventId:a.eventId,state:p.state,duplicate:!1}})}#t(t){let r=this.#e.then(t,t);return this.#e=r.catch(()=>{}),r}async quarantine(t){let r=he.join(this.directory(),t),n=he.join(he.resolve(this.workspaceRoot),".dyyto","observability","quarantine");await zl(n,{recursive:!0,mode:448}),await ki(r,he.join(n,`${Date.now()}-${t}`))}async all(){let t=await Jl(this.directory()).catch(()=>[]),r=[];for(let n of t){if(!n.endsWith(".json")){n.includes(".tmp-")&&await this.quarantine(n).catch(()=>{});continue}try{let o=JSON.parse(await No(he.join(this.directory(),n),"utf8"));if(o.eventId!==n.slice(0,-5))throw new Error("identity mismatch");r.push({...o,correlation:o.correlation??"unknown"})}catch{await this.quarantine(n).catch(()=>{})}}return r.sort((n,o)=>o.occurredAt.localeCompare(n.occurredAt)||n.eventId.localeCompare(o.eventId))}selected(t,r){return t.filter(n=>(!r.applicationId||n.applicationId===r.applicationId)&&(!r.releaseId||n.releaseId===r.releaseId)&&(!r.deploymentId||n.deploymentId===r.deploymentId))}cursor(t,r){let n=b({v:1,offset:t,snapshot:r});return Buffer.from(b({content:n,digest:y(n)})).toString("base64url")}parseCursor(t,r){try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));if(typeof n.content!="string"||n.digest!==y(n.content))throw new Error("tampered");let o=JSON.parse(n.content);if(o.v!==1||!Number.isSafeInteger(o.offset)||o.offset<0||o.snapshot!==r)throw new Error("expired");return o.offset}catch{throw new oe("OBSERVABILITY_CURSOR_EXPIRED","Runtime Error query cursor is invalid or expired")}}async list(t){let r=Math.max(1,Math.min(t.limit??100,100)),n=this.selected(await this.all(),t),o=y(b(n.map(s=>s.eventId))),a=t.cursor===void 0?0:this.parseCursor(t.cursor,o),i=n.slice(a,a+r);return{events:i,...a+i.length<n.length?{nextCursor:this.cursor(a+i.length,o)}:{}}}async get(t){if(!hg.test(t))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await No(he.join(this.directory(),r),"utf8"));if(n.eventId!==t)throw new Error("identity mismatch");return{...n,correlation:n.correlation??"unknown"}}catch(n){if(n.code==="ENOENT")return null;throw await this.quarantine(r).catch(()=>{}),new oe("OBSERVABILITY_STORE_DAMAGED","Runtime Error record is damaged and has been quarantined")}}async summary(t){let r=this.selected(await this.all(),t),n=new Map;for(let o of r){let a=n.get(o.fingerprint);a?a.count+=1:n.set(o.fingerprint,{count:1,latestAt:o.occurredAt,event:o})}return{total:r.length,groups:[...n.entries()].map(([o,a])=>({fingerprint:o,...a}))}}async rotate(){let t=await this.all(),n=t.reduce((o,a)=>Math.max(o,Date.parse(a.receivedAt)),0)-10080*60*1e3;for(let o of t.slice(1e4))await gg(he.join(this.directory(),`${o.eventId}.json`),{force:!0});for(let o of t.slice(0,1e4))Date.parse(o.receivedAt)<n&&await gg(he.join(this.directory(),`${o.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!Gl.test(t.releaseId)||!Gl.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!Oo(t.map)||"sourcesContent"in t.map)throw new oe("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(b(t.map)),n=y(r),o=he.join(this.releases(),t.releaseId);await zl(o,{recursive:!0,mode:448});let a=y(t.asset),i=he.join(o,`${a}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await bi(`${i}.tmp`,"w",384);try{await c.writeFile(`${b({registration:s,map:t.map})}
41
- `),await c.sync()}finally{await c.close()}return await ki(`${i}.tmp`,i),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await Jl(he.join(this.releases(),t)).catch(()=>[]),n=[];for(let o of r)try{n.push(JSON.parse(await No(he.join(this.releases(),t,o),"utf8")))}catch{}for(let o of(await this.all()).filter(a=>a.releaseId===t&&a.state==="map-missing")){let a=!1,i=o.error.frames.map(d=>{let p=n.find(f=>new URL(d.file,"http://local").pathname.endsWith(`/${f.registration.asset}`));if(!p||d.line===void 0||d.column===void 0)return d;try{let f=mg(new fg(p.map),{line:d.line,column:Math.max(0,d.column-1)});return f.source===null||f.line===null||f.column===null?d:(a=!0,{...d,source:f.source.replace(/^file:\/\//,""),sourceLine:f.line,sourceColumn:f.column+1})}catch{return d}});if(!a)continue;let s={...o,error:{...o.error,frames:i},state:"symbolicated"},c=he.join(this.directory(),`${o.eventId}.json`),l=await bi(`${c}.tmp`,"w",384);try{await l.writeFile(`${b(s)}
42
- `),await l.sync()}finally{await l.close()}await ki(`${c}.tmp`,c)}}};var Ye=(e,t,r,n,o)=>({code:e,severity:t,fact:r,message:n,...o===void 0?{}:{action:o}});async function So(e){if(e.lock.capabilities.length===0||e.lock.capabilities.some(r=>r.evidenceIds.length===0))return[Ye("EVIDENCE_INVALID","critical","evidence","\u5DF2\u9A8C\u8BC1\u9501\u7F3A\u5C11\u5B8C\u6574\u8BC1\u636E\u5F15\u7528\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u4E8B\u52A1\u672A\u5B8C\u6210\uFF0C\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\u3002")];for(let r of e.lock.capabilities)for(let n of r.evidenceIds)try{let o=ao(JSON.parse(await wg(Wl.join(e.projectRoot,".dyyto","evidence",`${n}.json`),"utf8")));if(o.evidenceId!==n||o.capabilityId!==r.capabilityId||o.capabilityVersion!==r.version||o.capabilityIntegrity!==r.integrity||o.projectStateDigest!==r.projectStateDigest||o.result!=="passed")return[Ye("EVIDENCE_INVALID","critical","evidence","\u91C7\u7528\u8BC1\u636E\u4E0E\u5DF2\u9A8C\u8BC1\u9501\u7684\u8EAB\u4EFD\u6216\u5DE5\u7A0B\u72B6\u6001\u4E0D\u4E00\u81F4\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u73B0\u573A\u5DF2\u53D8\u5316\uFF0C\u5148\u68C0\u67E5\u5E76\u91CD\u65B0\u89C4\u5212\u3002")]}catch{return[Ye("EVIDENCE_INVALID","critical","evidence","\u91C7\u7528\u8BC1\u636E\u7F3A\u5931\u3001\u635F\u574F\u6216\u4E0D\u7B26\u5408\u5951\u7EA6\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u4E8B\u52A1\u672A\u5B8C\u6210\uFF0C\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\u3002")]}let t=e.lock.capabilities.reduce((r,n)=>r+n.evidenceIds.length,0);return[Ye("EVIDENCE_VALID","info","evidence",`\u5DF2\u6838\u9A8C ${e.lock.capabilities.length} \u9879\u80FD\u529B\u7684 ${t} \u6761\u91C7\u7528\u8BC1\u636E\u3002`)]}function Kl(e){return e==="adopted"?[]:e==="planned"?[Ye("ADOPTION_PLANNED","warning","lock","\u80FD\u529B\u91C7\u7528\u4ECD\u5904\u4E8E\u8BA1\u5212\u9636\u6BB5\u3002","\u5BA1\u9605\u5E76\u6279\u51C6\u7CBE\u786E Plan\u3002")]:e==="applied-unverified"?[Ye("VERIFICATION_REQUIRED","warning","evidence","\u53D8\u66F4\u5DF2\u5E94\u7528\u4F46\u5C1A\u672A\u5F62\u6210\u9A8C\u8BC1\u8BC1\u636E\u3002","\u8FD0\u884C\u9A8C\u8BC1\u5E76\u63D0\u4EA4\u91C7\u7528\u9501\u3002")]:e==="drifted"?[Ye("REPOSITORY_DRIFT","warning","repository","\u5DE5\u7A0B\u73B0\u573A\u4E0E\u5DF2\u9501\u5B9A\u4E8B\u5B9E\u4E0D\u4E00\u81F4\u3002","\u68C0\u67E5\u5DEE\u5F02\u5E76\u91CD\u65B0\u89C4\u5212\uFF0C\u5E73\u53F0\u4E0D\u4F1A\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002")]:e==="recovery-required"?[Ye("RECOVERY_REQUIRED","critical","recovery","\u68C0\u6D4B\u5230\u672A\u5B8C\u6210\u7684\u6301\u4E45\u5316\u4E8B\u52A1\u3002","\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\uFF0C\u518D\u7EE7\u7EED\u5176\u4ED6\u64CD\u4F5C\u3002")]:[Ye("FACT_INVALID","critical","manifest","\u5DE5\u7A0B\u5355\u5143\u4E8B\u5B9E\u65E0\u6CD5\u5B89\u5168\u8BFB\u53D6\u3002","\u4FEE\u590D\u8BE5\u5355\u5143\u7684 Manifest \u6216\u5143\u6570\u636E\u540E\u91CD\u65B0\u8BCA\u65AD\u3002")]}async function Ig(e){try{let r=JSON.parse(await wg(Wl.join(e.workspaceRoot,".dyyto","observability","config.json"),"utf8"));if(!Array.isArray(r.applications)||!r.applications.includes(e.applicationId))return[Ye("OBSERVABILITY_NOT_CONFIGURED","warning","repository","\u5F53\u524D Web \u5E94\u7528\u5C1A\u672A\u914D\u7F6E\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u3002","\u767B\u8BB0\u5E94\u7528 Origin\uFF0C\u5E76\u542F\u52A8\u672C\u5730\u91C7\u96C6\u7AEF\u3002")]}catch{return[Ye("OBSERVABILITY_NOT_CONFIGURED","warning","repository","\u5F53\u524D Web \u5E94\u7528\u5C1A\u672A\u914D\u7F6E\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u3002","\u767B\u8BB0\u5E94\u7528 Origin\uFF0C\u5E76\u542F\u52A8\u672C\u5730\u91C7\u96C6\u7AEF\u3002")]}await new Ut(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await mE(Wl.join(e.workspaceRoot,".dyyto","observability","quarantine")).catch(()=>[])).length;return t>0?[Ye("OBSERVABILITY_STORE_DAMAGED","critical","repository",`\u8FD0\u884C\u65F6\u9519\u8BEF\u672C\u5730\u5B58\u50A8\u5DF2\u9694\u79BB ${t} \u6761\u635F\u574F\u8BB0\u5F55\uFF0C\u5065\u5EB7\u4E8B\u4EF6\u4ECD\u53EF\u67E5\u8BE2\u3002`,"\u68C0\u67E5\u672C\u673A\u78C1\u76D8\u72B6\u6001\uFF0C\u5E76\u663E\u5F0F\u5904\u7406\u9694\u79BB\u8BB0\u5F55\u3002")]:[Ye("OBSERVABILITY_CONFIGURED","info","repository","\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u914D\u7F6E\u4E0E\u672C\u5730\u5B58\u50A8\u53EF\u8BFB\u53D6\u3002")]}function vg(e){let t=e.units.map(n=>{let o=n.findings.some(a=>a.severity==="critical")?"blocked":n.findings.some(a=>a.severity==="warning")?"attention":"healthy";return{...n,status:o}}),r={total:t.length,healthy:t.filter(n=>n.status==="healthy").length,attention:t.filter(n=>n.status==="attention").length,blocked:t.filter(n=>n.status==="blocked").length};return{schemaVersion:1,workspace:e.workspace,generatedAt:e.generatedAt,status:r.blocked>0?"blocked":r.attention>0?"attention":"healthy",summary:r,units:t}}import{readFile as Do,realpath as bg}from"node:fs/promises";import Mr from"node:path";var ie=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function kg(e){let t=await bg(Mr.resolve(e.projectRoot)),r=X(e.manifest),n=e.release.release,o=e.currentLock.capabilities.find(f=>f.capabilityId===n.capabilityId&&f.version===n.version);if(!o||o.packageAdoption!==void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let a=X({...r,capabilities:r.capabilities.filter(f=>f.capabilityId!==n.capabilityId)}),i=Buffer.from(`${JSON.stringify(a,null,2)}
43
- `),s=await jo(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:y(i)},...o.assets.map(f=>({path:f.path,kind:"remove",ownership:f.ownership??"owned-file",baseDigest:f.digest}))],l=await Promise.all(c.map(f=>jo(t,f.path))),d={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:o.assets.map(f=>({path:f.path,ownership:f.ownership??"owned-file",desiredDigest:f.digest})),verifiers:n.verifiers.map(f=>({id:f.id,kind:"file-digest"}))};return{plan:Pe({action:"remove",capability:d,changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),manifest:a,desiredContents:new Map([["project-capabilities.json",i]]),transactionRoot:t,removedSources:[]}}async function jo(e,t){try{let r=await Do(Mr.join(e,...t.split("/")));return{path:t,exists:!0,digest:y(r)}}catch(r){if(r.code==="ENOENT")return{path:t,exists:!1};throw r}}async function Yl(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await bg(Mr.resolve(e.projectRoot)),r=X(e.manifest),n=e.release.release,o=e.packageSource?.topology,a=o?.transactionRoot??t,i=R=>o?.mode==="pnpm-shared-lockfile"?`${o.unitRelativeRoot}/${R}`:R;if(n.kind!=="engineering-feature"||n.consumerProfile!=="any-project")throw new ie("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(R=>R.capabilityId===n.capabilityId))throw new ie("CAPABILITY_ALREADY_SELECTED","The capability is already selected by this project");let s=r.profile?.id,c=s==="typescript-library"?"blank-typescript-library":s,l=n.dependencies?.profiles??[],d=e.currentLock.capabilities.find(R=>R.consumerProfile===c);if(c===void 0||!l.includes(c)||d===void 0)throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(R=>!r.capabilities.some(S=>S.capabilityId===R)||!e.currentLock.capabilities.some(S=>S.capabilityId===R)))throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","A required project capability is not adopted and verified");let f=X({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),u=i("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(f,null,2)}
44
- `),g=await jo(a,u);if(!g.exists||g.digest===void 0)throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let h=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:y(m)}],w=new Map([[u,m]]),_;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let R;try{R=await Do(Mr.join(t,"package.json"))}catch{throw new ie("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let S=e.packageSource.currentLockfile??await Do(Mr.join(t,"pnpm-lock.yaml")).catch(ae=>ae.code==="ENOENT"?void 0:Promise.reject(ae)),C=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},ce=C.mode==="pnpm-shared-lockfile",$={mode:C.mode,unitRelativeRoot:C.unitRelativeRoot,unitImporterId:C.unitImporterId,lockfilePath:C.lockfilePath,...C.workspaceManifestPath?{workspaceManifestPath:C.workspaceManifestPath,workspaceManifestDigest:C.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(ce&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let H=ce?(e.packageChannel==="development"?di:li)({release:n,...P,consumerProfile:c,packageJson:R,currentLockfile:S,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?ci:si)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:R,...S===void 0?{}:{currentLockfile:S},generatedAt:e.generatedAt,expiresAt:e.expiresAt});_=oi(H),h.push({path:i("package.json"),kind:"replace",ownership:"owned-file",baseDigest:H.packageJsonPreimageDigest,desiredDigest:H.desiredPackageJsonDigest}),w.set(i("package.json"),H.desiredPackageJson),h.push({path:C.lockfilePath,kind:S===void 0?"create":"replace",ownership:"owned-file",...S===void 0?{}:{baseDigest:y(S)},desiredDigest:H.desiredLockfileDigest}),w.set(C.lockfilePath,H.desiredLockfile)}catch(S){throw S instanceof Y?new ie("CAPABILITY_PACKAGE_SOURCE_INVALID",S.code):S}}for(let R of n.assets){let S=e.release.contents.get(R.path);if(S===void 0)throw new ie("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let C=R.renderer==="application-config-contract-v1"?pi(r):R.renderer==="application-config-binding-v1"?ui(r):S;if(R.ownership==="managed-region"){if(R.regionId===void 0)throw new ie("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let ce;try{ce=await Do(Mr.join(t,...R.path.split("/")))}catch{throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(xf({source:ce.toString("utf8"),regionId:R.regionId,content:Buffer.from(C).toString("utf8")}));h.push({path:i(R.path),kind:"merge",ownership:"managed-region",regionId:R.regionId,baseDigest:y(ce),desiredDigest:y($)}),w.set(i(R.path),$)}else{let ce=await jo(t,R.path);if(R.ownership==="seed-file"&&ce.exists){let $=await Do(Mr.join(t,...R.path.split("/")));h.push({path:i(R.path),kind:"create",ownership:"seed-file",desiredDigest:y($)}),w.set(i(R.path),$)}else h.push({path:i(R.path),kind:"create",ownership:R.ownership,desiredDigest:y(C)}),w.set(i(R.path),C)}}let v=await Promise.all(h.map(R=>jo(a,R.path))),A={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:h.filter(R=>R.path!==u&&R.path!==o?.lockfilePath).map(R=>({path:o?.mode==="pnpm-shared-lockfile"?R.path.slice(o.unitRelativeRoot.length+1):R.path,ownership:R.ownership,desiredDigest:R.desiredDigest})),verifiers:n.verifiers.map(R=>({id:R.id,kind:"file-digest"}))};return{plan:Pe({action:"adopt",capability:A,changes:h,observedAssets:v,generatedAt:e.generatedAt,expiresAt:e.expiresAt,..._===void 0?{}:{packageAdoption:_}}),manifest:f,desiredContents:w,transactionRoot:a,dependency:{profile:c,satisfied:!0}}}var Rg=Gr(kr(),1);var gE={$id:"https://schemas.dyyto.dev/platform/solution-catalog-entry-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","solutionId","version","integrity","title","summary","maturity","members","integration","exit"],properties:{schemaVersion:{const:1},solutionId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:_t},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},maturity:{enum:["guided","automated"]},members:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","role","required"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},role:{type:"string",minLength:1,maxLength:80},required:{type:"boolean"}}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","steps","verification","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},steps:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["label","command"],properties:{label:{type:"string",minLength:1,maxLength:80},command:{type:"string",minLength:1,maxLength:2e3}}}},verification:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:1e3}},result:{type:"string",minLength:1,maxLength:400}}},exit:{type:"object",additionalProperties:!1,required:["summary"],properties:{summary:{type:"string",minLength:1,maxLength:400}}}}},mj=new Rg.Ajv2020({allErrors:!0,strict:!0}).compile(gE);var Ng=Gr(kr(),1);import{readFile as hE,realpath as yE}from"node:fs/promises";import _g from"node:path";var Ag="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",Eg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",wE={$id:"https://schemas.dyyto.dev/platform/example-recipe-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","recipeId","version","integrity","title","locale","rootProfile","capabilities","expectedEntrypoint","verifiers","manualAcceptance","cleanup"],properties:{schemaVersion:{const:1},recipeId:{type:"string",pattern:Ag},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:_t},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128}}},capabilities:{type:"array",minItems:1,maxItems:16,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","channel"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:Eg,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:Ag}},manualAcceptance:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:240}},cleanup:{type:"object",additionalProperties:!1,required:["ownedStateDirectories"],properties:{ownedStateDirectories:{type:"array",maxItems:8,uniqueItems:!0,items:{type:"string",pattern:Eg,maxLength:240}}}}}},Pg=new Ng.Ajv2020({allErrors:!0,strict:!0}).compile(wE),Ur=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function IE(e){return y(b(e))}function vE(e){if(!Pg(e))throw new Ur("EXAMPLE_RECIPE_INVALID",Pg.errors??[]);let t=e,r=[t.rootProfile.capabilityId,...t.capabilities.map(n=>n.capabilityId)];if(new Set(r).size!==r.length||t.capabilities.some(n=>n.version.includes("workspace:")||n.capabilityId.includes("ai-education-poc")))throw new Ur("EXAMPLE_RECIPE_INVALID");return t}async function Og(e){let t=await yE(_g.resolve(e)),r;try{r=vE(JSON.parse(await hE(_g.join(t,"recipe.json"),"utf8")))}catch(a){throw a instanceof Ur?a:new Ur("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...o}=r;if(IE(o)!==n)throw new Ur("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var jg=Gr(kr(),1);import{readFile as bE,realpath as kE}from"node:fs/promises";import Sg from"node:path";var RE={$id:"https://schemas.dyyto.dev/platform/engineering-template-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","templateId","version","integrity","title","summary","status","profile","parameters","commands","technology","support","integration","metrics"],properties:{schemaVersion:{const:1},templateId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:_t},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},status:{enum:["candidate","recommended","deprecated"]},profile:{type:"object",additionalProperties:!1,required:["id","capability"],properties:{id:{type:"string",pattern:Z},capability:{type:"string",pattern:`${Z.slice(1,-1)}@[0-9]+\\.[0-9]+\\.[0-9]+$`}}},parameters:{type:"array",minItems:0,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","required","description"],properties:{id:{type:"string",pattern:"^[a-z][A-Za-z0-9]*$"},required:{type:"boolean"},description:{type:"string",minLength:1,maxLength:160}}}},commands:{type:"object",minProperties:1,additionalProperties:!1,properties:{dev:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},build:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},test:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},package:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"}}},technology:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","version","policy","verifiedAt","rationale","alternative","exit"],properties:{id:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:64},policy:{enum:["recommended","allowed"]},verifiedAt:{type:"string",format:"date"},rationale:{type:"string",minLength:1,maxLength:240},alternative:{type:"string",minLength:1,maxLength:160},exit:{type:"string",minLength:1,maxLength:240}}}},support:{type:"object",additionalProperties:!1,required:["owner","tier","supportedFrom","supportedUntil","upgradeCadence","eolNoticeDays"],properties:{owner:{type:"string",pattern:Z},tier:{const:"production"},supportedFrom:{type:"string",format:"date"},supportedUntil:{type:"string",format:"date"},upgradeCadence:{type:"string",minLength:1,maxLength:80},eolNoticeDays:{type:"integer",minimum:30,maximum:730}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","createCommand","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},createCommand:{type:"string",minLength:1,maxLength:2e3},result:{type:"string",minLength:1,maxLength:400}}},metrics:{type:"array",minItems:1,uniqueItems:!0,items:{enum:["time-to-green-build","time-to-first-business-commit","manual-engineering-edits","upgrade-conflicts"]}}}},Dg=new jg.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(RE),Ft=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function _E(e){return y(b(e))}function AE(e){if(!Dg(e))throw new Ft("TEMPLATE_INVALID",Dg.errors??[]);let t=e;if(new Set(t.parameters.map(r=>r.id)).size!==t.parameters.length||new Set(t.technology.map(r=>r.id)).size!==t.technology.length)throw new Ft("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Ft("TEMPLATE_INVALID");return t}async function $o(e,t=new Date){let r=await kE(Sg.resolve(e)),n;try{n=AE(JSON.parse(await bE(Sg.join(r,"template.json"),"utf8")))}catch(i){throw i instanceof Ft?i:new Ft("TEMPLATE_INVALID")}let{integrity:o,...a}=n;if(_E(a)!==o)throw new Ft("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Ft("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as $g}from"node:fs/promises";import Cg from"node:path";var EE=/^[A-Z][A-Z0-9_]*$/u,PE=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function NE(e){let t=new Map;for(let r of e.split(/\r?\n/u)){let n=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(r.trim());if(!n||!EE.test(n[1]))continue;let o=n[1],a=n[2].trim();t.set(o,{name:o,requirement:a.length===0?"conditional":"optional",secret:PE.test(o),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function Tg(e){let t=await $g(Cg.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await $g(Cg.join(e.projectRoot,t),"utf8"):"",n=await fi({projectRoot:e.projectRoot}).catch(()=>null);return{commands:["dev","build","test","package"].flatMap(a=>e.commands[a]?[{id:a,script:e.commands[a],mode:a==="dev"?"managed-process":"foreground-task"}]:[]),environment:n?n.entries.map(a=>({name:a.name,requirement:a.required?"conditional":"optional",secret:a.kind!=="value",configured:a.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:a.display,...a.fingerprint?{fingerprint:a.fingerprint}:{}})):NE(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var Lg={change:new Set(["plan","apply","upgrade","recover","baseline-next","add-package","add-application","add-feature"]),quality:new Set(["inspect","verify","doctor","maintenance","test","build"]),delivery:new Set(["package","delivery-plan","delivery-apply","delivery-inspect"])},xg=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function Vg(e,t){if(!Lg[t.plane]||t.state&&!xg.has(t.state)||t.limit!==void 0&&(!Number.isSafeInteger(t.limit)||t.limit<1||t.limit>200))throw new Error("OPERATION_FILTER_INVALID");let r=Lg[t.plane],n=t.from?Date.parse(t.from):null,o=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||o!==null&&Number.isNaN(o)||n!==null&&o!==null&&n>o)throw new Error("OPERATION_FILTER_INVALID");let a=e.filter(l=>r.has(l.operation)),i=[...new Map(a.map(l=>[l.projectId,{id:l.projectId,name:l.projectName}])).values()].sort((l,d)=>l.name.localeCompare(d.name)),s=a.filter(l=>(!t.projectId||l.projectId===t.projectId)&&(!t.state||l.state===t.state)&&(!t.kind||l.operation===t.kind)&&(n===null||Date.parse(l.createdAt)>=n)&&(o===null||Date.parse(l.createdAt)<=o)).sort((l,d)=>d.updatedAt.localeCompare(l.updatedAt)),c={total:s.length,running:s.filter(l=>l.state==="running"||l.state==="queued").length,succeeded:s.filter(l=>l.state==="succeeded").length,attention:s.filter(l=>l.state==="failed"||l.state==="outcome-unknown").length};return Object.freeze({schemaVersion:1,plane:t.plane,summary:Object.freeze(c),facets:Object.freeze({projects:Object.freeze(i),states:Object.freeze([...xg]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var He=class extends Error{code;constructor(t){super(t),this.code=t}},OE=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Mg=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,SE=/^sha512-[A-Za-z0-9+/]{86}==$/u,_i=/^sha256:[a-f0-9]{64}$/u,DE=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,jE=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,$E=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Fr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,a)=>o===n[a])}function CE(e){if(!Fr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!OE.test(e.packageName)||!Mg.test(e.version)||!DE.test(e.assetName)||!SE.test(e.integrity)||!_i.test(e.tarballDigest)||typeof e.dependencies!="object"||e.dependencies===null||Array.isArray(e.dependencies)||e.lifecycleScripts.length>0)return!1;let t=Object.entries(e.dependencies);return t.length>256||t.some(([r,n])=>!/^(@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u.test(r)||!Mg.test(n)||jE.test(n))?!1:e.lifecycleScripts.every(r=>$E.has(r))}function Hl(e){if(!Fr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new He("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(a=>Object.freeze({...a,dependencies:Object.freeze({...a.dependencies}),lifecycleScripts:Object.freeze([...a.lifecycleScripts])}));if(t.some(a=>!CE(a)))throw new He("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(a=>a.packageName+"@"+a.version);if(new Set(r).size!==r.length||r.some((a,i)=>i>0&&a.localeCompare(r[i-1])<=0))throw new He("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(a=>a.packageName));for(let a of t)for(let[i,s]of Object.entries(a.dependencies))if(i.startsWith("@aipt/")&&(!n.has(i)||!t.some(c=>c.packageName===i&&c.version===s)))throw new He("LOCAL_ARTIFACT_POLICY_VIOLATION");let o={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...o,bundleId:y(b(o))})}function qr(e){let t=e;if(typeof t!="object"||t===null||!Fr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!_i.test(t.bundleId)||!Array.isArray(t.artifacts))throw new He("LOCAL_ARTIFACT_BUNDLE_INVALID");if(Hl({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new He("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function Xl(e){if(!Fr(e,["packageInputs","bundle","generatedAt","expiresAt"])||e.packageInputs.length!==e.bundle.artifacts.length||e.packageInputs.length===0||Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new He("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(o=>Object.freeze({...o}));if(t.some(o=>!Fr(o,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(o.relativeRoot)||!_i.test(o.manifestDigest))||new Set(t.map(o=>o.relativeRoot)).size!==t.length)throw new He("LOCAL_ARTIFACT_PLAN_INVALID");let r=qr(e.bundle),n={schemaVersion:1,state:"awaiting-approval",packageInputs:t,bundle:r,targetPreimage:{kind:"absent"},generatedAt:e.generatedAt,expiresAt:e.expiresAt};return Object.freeze({...n,planId:y(b(n))})}function Ug(e){let t=e;if(typeof t!="object"||t===null||!Fr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!_i.test(t.planId)||!Fr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new He("LOCAL_ARTIFACT_PLAN_INVALID");if(Xl({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new He("LOCAL_ARTIFACT_PLAN_INVALID");return t}function Fg(e){let t=qr(e.bundle),r=ko(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new He("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Pl({registryId:r.registryId,registryConfigRevision:r.revision,packageName:n.packageName,version:n.version,integrity:n.integrity,tarballDigest:n.tarballDigest,access:"private",provenance:"development-readback-verified",verificationIdentityDigest:t.bundleId,sourceDeliveryReceiptId:t.bundleId,verifiedAt:e.verifiedAt})))}var We=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},qg=/^sha256:[a-f0-9]{64}$/u,Ai=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function Zl(e){if(!Ai.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>qg.test(r))||!Ai.test(e.cacheNamespace)||!Number.isSafeInteger(e.maximumBytes)||e.maximumBytes<1||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new We("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:y(b(t))})}function Bg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new We("RESOLUTION_WORKER_BUILD_INVALID");let r=Zl({workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,workspaceManifestDigest:t.workspaceManifestDigest,rootLockDigest:t.rootLockDigest,cacheNamespace:t.cacheNamespace,maximumBytes:t.maximumBytes,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new We("RESOLUTION_WORKER_BUILD_INVALID");return r}function Ql(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>qg.test(r))||!Ai.test(e.workerReleaseId)||!Ai.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new We("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(b(t))})}function Ei(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new We("RESOLUTION_WORKER_BUILD_INVALID");let r=Ql({planId:t.planId,workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,cacheNamespace:t.cacheNamespace,cacheDigest:t.cacheDigest,cacheBytes:t.cacheBytes,commandDigest:t.commandDigest,completedAt:t.completedAt});if(t.schemaVersion!==1||t.receiptId!==r.receiptId)throw new We("RESOLUTION_WORKER_BUILD_INVALID");return r}var Co=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},ed=/^sha256:[a-f0-9]{64}$/u,TE=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function td(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>ed.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!TE.test(r.path)||!ed.test(r.currentDigest)||!ed.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Co("RECOVERY_OVERRIDE_INVALID");let t={schemaVersion:1,...e,conflicts:e.conflicts.map(r=>({...r})).sort((r,n)=>r.path.localeCompare(n.path))};return Object.freeze({...t,planId:y(b(t))})}function zg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Co("RECOVERY_OVERRIDE_INVALID");let r=td({transactionPlanId:t.transactionPlanId,transactionRootDigest:t.transactionRootDigest,conflicts:t.conflicts,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Co("RECOVERY_OVERRIDE_INVALID");return r}var To=class extends Error{code;constructor(t,r){super(r),this.code=t}},nd=/^sha256:[a-f0-9]{64}$/u,LE=/^sha512-[A-Za-z0-9+/]{86}==$/u,xE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,VE=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,ME=/[\u0000-\u001f\u007f]/u;function kn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Rn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,a)=>o===n[a])}function qt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!ME.test(e)}function rd(e){return qt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Jg(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>qt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function UE(e){return e===null?!0:!kn(e)||!Rn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:rd(e.fileName)&&nd.test(String(e.digest))&&LE.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function FE(e){if(!kn(e)||!Rn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!xE.test(e.packageName)||!VE.test(e.version)||!qt(e.title,120)||!qt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!kn(e.source)||!Rn(e.source,["repository","path","revision","treeDigest"])||!qt(e.source.repository)||!rd(e.source.path)||!qt(e.source.revision,200)||!nd.test(String(e.source.treeDigest))||!UE(e.artifact)||!kn(e.compatibility)||!Rn(e.compatibility,["node","packageManager"])||!qt(e.compatibility.node,100)||!qt(e.compatibility.packageManager,100)||!Jg(e.exports)||!Jg(e.consumerEvidence)||!kn(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Rn(e.documentation,t)||!rd(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!qt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function qE(e){let t={schemaVersion:1,kind:"PackageRelease",...e,source:Object.freeze({...e.source}),artifact:e.artifact===null?null:Object.freeze({...e.artifact}),compatibility:Object.freeze({...e.compatibility}),exports:Object.freeze([...e.exports]),documentation:Object.freeze({...e.documentation}),consumerEvidence:Object.freeze([...e.consumerEvidence])};if(!FE(t))throw new To("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:y(b(t))})}function Gg(e){if(!kn(e)||!Rn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!nd.test(String(e.releaseDigest)))throw new To("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...o}=e,a=qE(o);if(a.releaseDigest!==t)throw new To("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return a}import{lstat as BE,readFile as zE,realpath as JE}from"node:fs/promises";import Wg from"node:path";async function Kg(e){let t=await JE(Wg.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,o=[...e.lock.capabilities].sort((i,s)=>i.committedAt.localeCompare(s.committedAt)||i.capabilityId.localeCompare(s.capabilityId));for(let i of o)if(!r.has(i.capabilityId))for(let s of i.assets){let c=s.ownership??"owned-file",l=`${s.path}\0`;if(c==="managed-region")n.delete(l);else for(let p of n.keys())p.startsWith(l)&&n.delete(p);let d=c==="managed-region"?`${l}${s.regionId??""}`:l;n.set(d,{capabilityId:i.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let a=[];for(let i of[...n.values()].sort((s,c)=>s.path.localeCompare(c.path)||(s.regionId??"").localeCompare(c.regionId??"")||s.capabilityId.localeCompare(c.capabilityId))){let s=Wg.join(t,...i.path.split("/")),l=await BE(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await zE(s);if(i.ownership!=="managed-region")return y(p);if(i.regionId!==void 0)try{return y(ja(p.toString("utf8"),i.regionId))}catch{return}}).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d))===i.digest;a.push({capabilityId:i.capabilityId,path:i.path,kind:"create",ownership:i.ownership,...i.regionId===void 0?{}:{regionId:i.regionId},desiredDigest:i.digest,disposition:l?"noop":"conflict",...l?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return a}import{readFile as re,readdir as lh,realpath as kt}from"node:fs/promises";import{execFile as iP,spawn as sP}from"node:child_process";import N from"node:path";import{parseArgs as pe,promisify as cP}from"node:util";import{lstat as Yg,mkdir as ad,readFile as Hg,realpath as od,rm as GE,writeFile as Xg}from"node:fs/promises";import Xe from"node:path";var Ze=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},WE=e=>b(e),Zg=e=>y(WE(e));async function Qg(e,t){let r=await od(Xe.resolve(e)),n=Xe.join(r,".examples");await ad(n,{recursive:!0});let o=await od(n),a=Xe.resolve(r,t);if(Xe.dirname(a)!==o||Xe.basename(a).startsWith(".")||Xe.basename(a).length<1)throw new Ze("SCAFFOLD_ARGUMENT_INVALID");if(await Yg(a).then(()=>!0).catch(i=>i.code==="ENOENT"?!1:Promise.reject(i)))throw new Ze("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:a,outputRelativePath:Xe.relative(r,a)}}async function eh(e){let t=e.artifactFallbackBundles??[];if(!/^sha256:[a-f0-9]{64}$/u.test(e.artifactBundle)||t.some(c=>!/^sha256:[a-f0-9]{64}$/u.test(c))||new Set([e.artifactBundle,...t]).size!==1+t.length||!Number.isSafeInteger(e.artifactPort)||e.artifactPort<1||e.artifactPort>65535)throw new Ze("SCAFFOLD_ARGUMENT_INVALID");let r=await Qg(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),o={schemaVersion:1,state:"reviewable",recipeId:e.recipe.recipeId,recipeVersion:e.recipe.version,recipeIntegrity:e.recipe.integrity,workspaceRoot:r.workspaceRoot,outputRelativePath:r.outputRelativePath,locale:e.recipe.locale,channel:"development",artifactBundle:e.artifactBundle,artifactFallbackBundles:t,artifactPort:e.artifactPort,generatedAt:n,expiresAt:new Date(Date.parse(n)+30*6e4).toISOString()},a={...o,planId:Zg(o)},i=Xe.join(r.workspaceRoot,".dyyto","scaffold-plans");await ad(i,{recursive:!0});let s=Xe.join(i,`${a.planId}.json`);return await Xg(s,`${b(a)}
45
- `,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await Hg(s,"utf8")!==`${b(a)}
46
- `)throw new Ze("SCAFFOLD_PLAN_INVALID")}),a}async function KE(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new Ze("SCAFFOLD_PLAN_INVALID");let r=await od(Xe.resolve(e)),n;try{n=JSON.parse(await Hg(Xe.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new Ze("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:o,...a}=n;if(o!==t||Zg(a)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new Ze("SCAFFOLD_PLAN_INVALID");return n}async function th(e){let t=await KE(e.workspaceRoot,e.approvedPlanId);if(t.recipeId!==e.recipe.recipeId||t.recipeVersion!==e.recipe.version||t.recipeIntegrity!==e.recipe.integrity)throw new Ze("SCAFFOLD_PLAN_INVALID");let r=await Qg(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await Yg(r.output).then(()=>!0).catch(()=>!1)&&await GE(r.output,{recursive:!0,force:!0}),new Ze("SCAFFOLD_APPLY_FAILED",s)}let o={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},a=y(b(o)),i=Xe.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await ad(i,{recursive:!0}),await Xg(Xe.join(i,`${a}.json`),`${b({...o,evidenceId:a})}
47
- `,{flag:"wx",mode:384}),{evidenceId:a,output:r.output,receipts:n}}import{lstat as Lo,readFile as id,readdir as YE,realpath as sd}from"node:fs/promises";import fe from"node:path";var rh={capabilities:fe.resolve(import.meta.dirname,"catalog"),packages:fe.resolve(import.meta.dirname,"package-releases")};function oh(e,t){return e<t?-1:e>t?1:0}function Ni(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Ni).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>oh(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Ni(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function HE(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let o=n.trim();if(o===""||o.startsWith("#"))continue;if(o.startsWith("export "))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u4F7F\u7528 export`);let a=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(o);if(!a)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(a[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${a[1]}`);let i=a[2].trim();if((i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),/[`$][({]?/u.test(i))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u547D\u4EE4\u6216\u53D8\u91CF\u5C55\u5F00`);t.set(a[1],i)}return t}async function nh(e,t){let r=await Lo(e);if(!r.isFile()||r.isSymbolicLink()||r.nlink!==1)throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u975E\u94FE\u63A5\u6587\u4EF6`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-385)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80600`)}async function Pi(e,t){let r=await Lo(e);if(!r.isDirectory()||r.isSymbolicLink())throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u4E14\u4E0D\u80FD\u662F\u7B26\u53F7\u94FE\u63A5`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-449)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80700`);return sd(e)}async function XE(e){let t=e;for(;;){if(await Lo(fe.join(t,".git")).then(()=>!0).catch(n=>n.code==="ENOENT"?!1:Promise.reject(n)))throw new Error(`IDP_CONFIG_DIR \u5FC5\u987B\u4F4D\u4E8E Git \u4ED3\u5E93\u5916\uFF1A${t}`);let r=fe.dirname(t);if(r===t)return;t=r}}async function ZE(e){if(!fe.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Pi(e,"IDP_CONFIG_DIR");await XE(t);let r=await Pi(fe.join(t,"components"),"components"),n=await Pi(fe.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),o=fe.relative(t,n);if(o.startsWith("..")||fe.isAbsolute(o))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let a=fe.join(n,".env");await nh(a,"Dyyto \u7EC4\u4EF6 .env");let i=HE(await id(a,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(i===void 0||i==="")return[];if(fe.isAbsolute(i)||i.includes("\0")||/[*?{}[\]]/u.test(i))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u7684\u666E\u901A\u76F8\u5BF9\u6587\u4EF6\u8DEF\u5F84");let s=fe.resolve(n,i),c=fe.relative(n,s);if(c===""||c.startsWith("..")||fe.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let l=n;for(let u of c.split(fe.sep).slice(0,-1))l=await Pi(fe.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await sd(fe.dirname(s)),p=fe.relative(n,d);if(p.startsWith("..")||fe.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await nh(s,"Package Catalog Binding");let f=[];for(let u of(await id(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!fe.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Lo(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let h=await sd(m),w=await Lo(h);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");f.includes(h)||f.push(h)}return f.sort()}async function QE(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await ZE(e);return{capabilities:rh.capabilities,packages:[rh.packages,...t]}}async function Oi(e){return(await YE(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function eP(e,t){let r=a=>a.split("-",1)[0].split(".").map(Number),n=r(e),o=r(t);for(let a=0;a<3;a+=1){let i=(n[a]??0)-(o[a]??0);if(i!==0)return i}return e.localeCompare(t)}function tP(e){let t=e.schemaVersion===2?e.availability.maturity:"legacy-unverified",r="consumerProfile"in e?e.consumerProfile:"\u591A\u79CD\u5DE5\u7A0B Profile";return{kind:"capability",ref:`capability:${e.capabilityId}@${e.version}`,id:e.capabilityId,version:e.version,title:e.capabilityId,summary:`\u9002\u7528\u4E8E ${r} \u7684\u5DE5\u7A0B\u80FD\u529B\u53D1\u884C\u3002`,maturity:t,integrity:e.integrity}}function rP(e){return{kind:"package",ref:`package:${e.packageName}@${e.version}`,id:e.packageName,version:e.version,title:e.title,summary:e.summary,maturity:e.maturity,integrity:e.releaseDigest}}async function nP(e){let t=[];for(let r of await Oi(e))for(let n of await Oi(fe.join(e,r))){let o=`capability:${r}@${n}`;t.push(Ie(fe.join(e,r,n)).then(a=>({entry:{item:tP(a.release),release:a.release}})).catch(()=>({diagnostic:{ref:o,code:"CATALOG_RELEASE_INVALID",message:"Capability \u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function oP(e){let t=[];for(let r of await Oi(e))for(let n of await Oi(fe.join(e,r))){let o=fe.join(e,r,n,"release.json"),a=`package:${r}@${n}`;t.push(id(o,"utf8").then(i=>{let s=Gg(JSON.parse(i));return{entry:{item:rP(s),release:s}}}).catch(()=>({diagnostic:{ref:a,code:"CATALOG_RELEASE_INVALID",message:"PackageRelease \u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function cd(e){let t=e??await QE(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...o]=await Promise.all([nP(t.capabilities),...r.map(oP)]),a=[...n.entries,...o.flatMap(l=>l.entries)].sort((l,d)=>l.item.ref.localeCompare(d.item.ref)),i=[],s=new Set,c=[];for(let l of a)s.has(l.item.ref)?c.push({ref:l.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(l.item.ref),i.push(l));return{entries:i,diagnostics:[...n.diagnostics,...o.flatMap(l=>l.diagnostics),...c].sort((l,d)=>l.ref.localeCompare(d.ref))}}async function Si(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await cd(e.roots),n=new Map;for(let{item:i}of r.entries){if(e.kind!==void 0&&i.kind!==e.kind)continue;let s=[i.id,i.version,i.title,i.summary,i.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${i.kind}:${i.id}`,l=n.get(c);(l===void 0||eP(l.version,i.version)<0)&&n.set(c,i)}let o=[...n.values()].sort((i,s)=>i.ref.localeCompare(s.ref)),a=e.limit??50;return{query:t,total:o.length,items:o.slice(0,a),diagnostics:r.diagnostics}}async function Di(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await cd(e.roots),n=r.entries.find(({item:a})=>a.ref===t),o=r.diagnostics.find(a=>a.ref===t);if(o?.code==="CATALOG_RELEASE_DUPLICATE")throw new Error(`\u53D1\u884C ref \u5728\u591A\u4E2A Catalog Source \u4E2D\u91CD\u590D\uFF1A${e.ref}`);if(n===void 0&&o!==void 0)throw new Error(`\u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\uFF1A${e.ref}`);if(n===void 0)throw new Error(`\u76EE\u5F55\u4E2D\u4E0D\u5B58\u5728\u53D1\u884C\uFF1A${e.ref}`);return n}function aP(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let o=n;if(typeof o.capabilityId!="string"||typeof o.version!="string"||!Array.isArray(o.integration?.packages))continue;let a=`capability:${o.capabilityId}@${o.version}`;for(let i of o.integration.packages){if(typeof i!="object"||i===null)continue;let s=i;if(typeof s.packageName!="string"||typeof s.version!="string")continue;let c=`${s.packageName}@${s.version}`,l=t.get(c)??new Set;l.add(a),t.set(c,l)}}return t}async function ah(e){let t=new Date(e.generatedAt);if(Number.isNaN(t.getTime())||t.toISOString()!==e.generatedAt)throw new Error("generatedAt \u5FC5\u987B\u662F\u89C4\u8303 ISO-8601 UTC \u65F6\u95F4");let r=await cd(e.roots);if(r.diagnostics.length>0)throw new Error(`Catalog \u5B58\u5728 ${r.diagnostics.length} \u4E2A\u65E0\u6548\u6216\u91CD\u590D\u53D1\u884C\uFF0C\u7981\u6B62\u5BFC\u51FA\u751F\u4EA7\u6295\u5F71`);let n=aP(r.entries),o=r.entries.filter(({item:i})=>i.kind==="package").map(({release:i})=>{let s=i;return Object.freeze({kind:"package",ref:`package:${s.packageName}@${s.version}`,packageName:s.packageName,version:s.version,releaseDigest:s.releaseDigest,capabilities:Object.freeze([...n.get(`${s.packageName}@${s.version}`)??[]].sort())})}).sort((i,s)=>oh(i.ref,s.ref)),a={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(o)};return Object.freeze({...a,sourceDigest:y(Ni(a))})}function ih(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||y(Ni(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
48
- `}var xo={"typescript-library":"foundation.typescript-quality@1.0.0","standalone-npm-package":"foundation.standalone-npm-package@1.2.0","workspace-root":"foundation.workspace-root@1.1.0","workspace-npm-package":"foundation.workspace-npm-package@1.2.0","workspace-node-application":"foundation.workspace-node-application@1.1.0","workspace-web-application":"foundation.workspace-web-application@1.1.0","workspace-expo-application":"foundation.workspace-expo-application@1.0.0","react-component-library":"foundation.react-component-library@1.1.0","workspace-react-component-library":"foundation.workspace-react-component-library@1.2.0","nextjs-full-stack-application":"foundation.nextjs-full-stack-application@1.0.0"},dh=cP(iP),lP=new Set(["template.typescript-library@1.0.0","template.typescript-library@1.1.0","template.react-component-library@1.0.0","template.react-component-library@1.1.0","template.nextjs-full-stack-application@1.0.0","template.expo-react-native-application@1.0.0","template.node-api-application@1.0.0","template.workspace-root@1.0.0","template.workspace-root@1.1.0","template.workspace-root@1.2.0","template.workspace-npm-package@1.0.0","template.workspace-react-component-library@1.0.0","template.workspace-react-component-library@1.1.0","template.workspace-react-component-library@1.2.0","template.web-frontend-application@1.0.0"]),ph=(e,t)=>e==="foundation.workspace-root"&&t==="1.4.0"?{id:"template.workspace-root",version:"1.1.0"}:e==="foundation.workspace-root"&&t==="1.5.0"?{id:"template.workspace-root",version:"1.2.0"}:void 0,ji={"workspace-npm-package":{id:"template.workspace-npm-package",version:"1.0.0"},"react-component-library":{id:"template.workspace-react-component-library",version:"1.2.0"},"workspace-web-application":{id:"template.web-frontend-application",version:"1.0.0"},"workspace-node-application":{id:"template.node-api-application",version:"1.0.0"},"workspace-expo-application":{id:"template.expo-react-native-application",version:"1.0.0"},"nextjs-full-stack-application":{id:"template.nextjs-full-stack-application",version:"1.0.0"}};function uh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function $i(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let o=await re(N.join(e,"package.json")),a=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:i}=await import("./optional-runtime.js"),s=await xt(e),c=await re(N.join(s.transactionRoot,s.lockfilePath)).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));if(s.mode==="pnpm-shared-lockfile"){if(!c)throw new ie("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new ie("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=_o({release:t.release,packageJson:n??o}),f=new Date,u=new Date(f.getTime()+1800*1e3).toISOString(),m=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:p,currentLockfile:c,sources:t.release.packageSources,registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings,generatedAt:f.toISOString(),expiresAt:u});return{...a,lockResolution:{lockfile:m.evidence.desiredLockfile,packages:m.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:h,version:w,integrity:_})=>({registryId:g,packageName:h,version:w,integrity:_}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let l=Dl({release:t.release,packageJson:n??o}),d=await i({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:a.registryConfigs,endpointBindings:a.endpointBindings});return{...a,lockResolution:d,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function fh(e,t,r,n){let o=r.capabilities.find(v=>v.capabilityId===t.release.capabilityId&&v.version===t.release.version);if(o&&!o.packageAdoption){let v=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),A=new Date;return kg({projectRoot:e,manifest:v,release:t,currentLock:r,generatedAt:A.toISOString(),expiresAt:new Date(A.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!o?.packageAdoption)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let a=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),i=await re(N.join(e,"package.json")),s=await re(N.join(e,"project-capabilities.json")),c=await xt(e),l=await re(N.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(v=>v!==o).flatMap(v=>v.packageAdoption?.sources.map(A=>A.packageName)??[])),p=o.packageAdoption.sources.filter(v=>!d.has(v.packageName)),f=c.mode==="pnpm-shared-lockfile"?$l({packageJson:i,remove:p}):jl({packageJson:i,remove:p}),u=r.capabilities.filter(v=>v!==o).flatMap(v=>v.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new ie("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let v=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),A=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...o.assets.map(R=>`${c.unitRelativeRoot}/${R.path}`)],I=await Promise.all(A.map(async R=>re(N.join(c.transactionRoot,...R.split("/"))).then(S=>({path:R,exists:!0,digest:y(S)})).catch(S=>S.code==="ENOENT"?{path:R,exists:!1}:Promise.reject(S))));return{...Om({release:t.release,currentLock:r,projectManifest:s,packageJson:i,currentLockfile:l,endpointBindings:a.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:v.preservedImporterDigests,resolutionEvidence:v.evidence,resolutionWorkerReleaseId:v.workerReleaseId,remainingSources:u,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings}}let{resolvePnpmLock:h}=await import("./optional-runtime.js"),w=await h({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...o.packageAdoption.sources],registries:a.registryConfigs,endpointBindings:a.endpointBindings}),_=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...o.assets.map(v=>v.path)].map(async v=>re(N.join(e,...v.split("/"))).then(A=>({path:v,exists:!0,digest:y(A)})).catch(A=>A.code==="ENOENT"?{path:v,exists:!1}:Promise.reject(A))));return{...Nm({release:t.release,currentLock:r,projectManifest:s,packageJson:i,currentLockfile:l,desiredLockfile:w.lockfile,endpointBindings:a.endpointBindings,observedAssets:_,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings}}function z(e){return e.includes("--json")?"json":"human"}function k(e){throw new T({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Se(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?k("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function Ci(e,t){return lP.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):k("The selected template release is not bundled with this CLI.")}function dP(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?k("The selected example recipe identity or version is invalid."):N.resolve(import.meta.dirname,"recipes",e,t)}function ee(e){let t=N.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${N.sep}`)?t:N.basename(e)}async function Ti(e){let t=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return k("Project manifest must select one capability.");let n=await Ie(Se(r.capabilityId,r.version)),o=await Te(e).catch(()=>null),a=new Date,s=await(t.profile?.id==="standalone-npm-package"?ho:t.profile?.id==="react-component-library"?yo:t.profile?.id==="nextjs-full-stack-application"?wn:t.profile?.id==="workspace-npm-package"?wo:t.profile?.id==="workspace-node-application"?Io:t.profile?.id==="workspace-web-application"?vo:t.profile?.id==="workspace-expo-application"?bo:La)({projectRoot:e,manifest:t,release:n,...o===null?{}:{currentLock:o},generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+1800*1e3).toISOString()});return Lt({projectRoot:e,plan:s.plan,now:a.toISOString()})}async function mh(e){let t;try{t=pe({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},profile:{type:"string"},template:{type:"string"},capability:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"}}})}catch{return k("Create arguments are invalid.")}if(t.positionals.length!==1)return k("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,h]=r.split("@");n=await $o(Ci(g,h))}let o=n?.profile.id??t.values.profile;if(o!=="typescript-library"&&o!=="standalone-npm-package"&&o!=="react-component-library"&&o!=="nextjs-full-stack-application"&&o!=="workspace-root")return k("Create requires a supported --profile.");let a=t.values.capability,i=o==="workspace-root"&&a==="foundation.workspace-root@1.0.0"||o==="standalone-npm-package"&&a==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(i?a:xo[o]);if(n!==void 0&&s.split("@")[0]!==xo[o].split("@")[0])return k(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&a!==s)return k(`Create requires --capability ${s}.`);if(n!==void 0&&a!==void 0)return k("Create with --template does not accept --capability.");let[c,l]=s.split("@"),d={};if(o==="standalone-npm-package"||o==="react-component-library"){let g=t.values.name,h=t.values.version,w=t.values.license,_=t.values["publish-access"],v=t.values.repository;if([g,h,w,_].some(A=>typeof A!="string")||l==="1.1.0"&&typeof v!="string")return k(`Standalone npm package requires --name, --version, --license, --publish-access${l==="1.1.0"?", and --repository":""}.`);d={name:String(g),version:String(h),license:String(w),publishAccess:String(_),...typeof v=="string"?{repository:v}:{}}}else if(o==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return k("Next.js application requires --name.");d={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:o,parameters:d},capabilities:[{capabilityId:c,version:l}]};(o==="standalone-npm-package"||o==="react-component-library")&&sr(X(p),o),o==="nextjs-full-stack-application"&&$r(X(p));let f=await Xa({projectRoot:t.positionals[0],manifest:p}),u=await Ti(f.projectRoot),m=ee(f.projectRoot);return{outputMode:z(e),human:`Project '${m}' initialized.
14
+ `}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,l=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(l))throw new Ot("Managed regions cannot overlap");return`${e.source.slice(0,s)}${i}${e.source.slice(c)}`}import Bf from"node:path";var Qt=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Ca(e){if(e.length===0||Bf.posix.isAbsolute(e)||Bf.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new Qt("Asset path must be a normalized project-relative POSIX path",e)}function e_(e,t){Ca(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(Z).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new Qt("Managed regions require merge ownership and a valid region identity",e.path);if(e.ownership==="user-file")return{...e,disposition:"conflict",conflictCode:"USER_OWNED"};let n=t?.exists??!1,o=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&o===e.desiredDigest?{...e,disposition:"noop"}:{...e,disposition:"conflict",conflictCode:"UNEXPECTED_EXISTING"}:{...e,disposition:"ready"}:e.kind==="remove"&&!n?{...e,disposition:"noop"}:e.kind!=="remove"&&n&&e.desiredDigest===o?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||o!==e.baseDigest?{...e,disposition:"conflict",conflictCode:"BASE_DIGEST_MISMATCH"}:{...e,disposition:"ready"}}function Pe(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new Qt("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Qt("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Ca(s.path),t.has(s.path))throw new Qt("Observed asset paths must be unique",s.path);t.set(s.path,s)}let r=new Set,n=e.changes.map(s=>{if(r.has(s.path))throw new Qt("Proposed change paths must be unique",s.path);return r.add(s.path),e_(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),o={action:e.action,capability:{capabilityId:e.capability.capabilityId,version:e.capability.version,integrity:e.capability.integrity},changes:e.changes,observedAssets:e.observedAssets,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}},a=y(b(o)),i={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:o.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:a,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...i,planId:y(b(i))}}function Ta(e){return y(b(e))}var zf=Wr(kr(),1);var Q={type:"string",pattern:At},dn={type:"string",pattern:Z},Ar={type:"string",minLength:1,maxLength:128},_r={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},t_={$id:"https://schemas.dyyto.dev/platform/capability-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","assets","verifiers"],properties:{schemaVersion:{const:1},capabilityId:dn,version:Ar,integrity:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:_r,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:Q}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},r_={$id:"https://schemas.dyyto.dev/platform/project-manifest-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},template:{type:"object",additionalProperties:!1,required:["id","version"],properties:{id:dn,version:Ar}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:Z},parameters:{type:"object",minProperties:0,maxProperties:32,propertyNames:{pattern:"^[a-z][A-Za-z0-9]*$"},additionalProperties:{type:"string",maxLength:256}}}},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:dn,version:Ar}}}}},n_={$id:"https://schemas.dyyto.dev/platform/project-lock-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","appliedPlanId","assets","evidenceIds"],properties:{capabilityId:dn,version:Ar,integrity:Q,appliedPlanId:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:_r,digest:Q}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},o_={$id:"https://schemas.dyyto.dev/platform/evidence-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","evidenceId","capabilityId","capabilityVersion","verifierId","result","observedAt"],properties:{schemaVersion:{const:1},evidenceId:{type:"string",minLength:1,maxLength:256},capabilityId:dn,capabilityVersion:Ar,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},a_={$id:"https://schemas.dyyto.dev/platform/change-plan-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","planId","action","state","capability","generatedAt","expiresAt","inputDigest","operations"],properties:{schemaVersion:{const:1},planId:Q,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:dn,version:Ar,integrity:Q}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:Q,packageAdoption:{type:"object",additionalProperties:!1,required:["schemaVersion","packageJsonPreimageDigest","desiredPackageJsonDigest","lockfilePreimage","desiredLockfileDigest","registryRevisions","endpointBindings","sources","installPolicy"],properties:{schemaVersion:{enum:[1,2]},sourceChannel:{enum:["production","development"]},packageJsonPreimageDigest:Q,desiredPackageJsonDigest:Q,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:Q}}]},desiredLockfileDigest:Q,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:Q}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:Q,bindingDigest:Q,expiresAt:{type:"string",format:"date-time"}}}},sources:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",minLength:1,maxLength:128},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$"},version:Ar,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:Q,deliveryReceiptId:Q,usage:{enum:["runtime","development"]}}}},installPolicy:{type:"object",additionalProperties:!1,required:["ignoreScripts","allowWorkspaceProtocol","allowPublicRegistryFallback"],properties:{ignoreScripts:{const:!0},allowWorkspaceProtocol:{const:!1},allowPublicRegistryFallback:{const:!1}}},topology:{type:"object",additionalProperties:!1,required:["mode","unitRelativeRoot","unitImporterId","lockfilePath"],properties:{mode:{enum:["standalone","pnpm-shared-lockfile"]},unitRelativeRoot:_r,unitImporterId:_r,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:Q}},preservedDependencies:{type:"array",items:{type:"object",additionalProperties:!1,required:["section","packageName","specifier"],properties:{section:{enum:["dependencies","devDependencies","optionalDependencies"]},packageName:{type:"string",minLength:1,maxLength:214},specifier:{type:"string",minLength:1,maxLength:512}}}},preservedImporterDigests:{type:"array",items:{type:"object",additionalProperties:!1,required:["importerId","preimageDigest","desiredDigest"],properties:{importerId:_r,preimageDigest:Q,desiredDigest:Q}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{topology:!1,preservedDependencies:!1,preservedImporterDigests:!1}}},{if:{properties:{schemaVersion:{const:2}},required:["schemaVersion"]},then:{required:["topology","preservedDependencies","preservedImporterDigests"]}}]},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","kind","ownership","disposition"],properties:{path:_r,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:Q,baseDigest:Q,regionId:{type:"string",pattern:Z},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},i_={$id:"https://schemas.dyyto.dev/platform/transaction-journal-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","transactionId","planId","approvedPlanId","projectRootDigest","state","createdAt","updatedAt","operations","journalDigest"],properties:{schemaVersion:{const:1},transactionId:{type:"string",minLength:1,maxLength:128},planId:Q,approvedPlanId:Q,projectRootDigest:Q,state:{enum:["preparing","prepared","applying","applied","recovery-required","recovering","recovered"]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["index","path","kind","before","status"],properties:{index:{type:"integer",minimum:0},path:_r,kind:{enum:["create","replace","merge","remove"]},before:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest","mode","preimageDigest"],properties:{kind:{const:"present"},digest:Q,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:Q}}]},desiredDigest:Q,status:{enum:["pending","applied","restored"]}}}},failure:{type:"object",additionalProperties:!1,required:["code"],properties:{code:{type:"string",minLength:1,maxLength:128},operationIndex:{type:"integer",minimum:0}}},journalDigest:Q}},Rr=new zf.Ajv2020({allErrors:!0,strict:!0});Rr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Zc={capabilityRelease:Rr.compile(t_),projectManifest:Rr.compile(r_),projectLock:Rr.compile(n_),evidence:Rr.compile(o_),changePlan:Rr.compile(a_),transactionJournal:Rr.compile(i_)},Xc=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Qc(e,t,r){if(!t(r))throw new Xc(e,t.errors??[]);return r}var X=e=>Qc("projectManifest",Zc.projectManifest,e);var er=e=>Qc("changePlan",Zc.changePlan,e),Jf=e=>Qc("transactionJournal",Zc.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function La(e){if(e.currentLock!==void 0){let a=await xa({...e,manifest:{schemaVersion:1,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}});return{state:a.plan.state==="conflicted"?"drifted":"adopted",operations:a.plan.operations}}let t=await tl(pn.resolve(e.projectRoot)),r=[],n=0,o=0;for(let a of e.release.release.assets){let i=await rl(t,a.path);i.exists&&(n+=1),i.digest===a.digest&&(o+=1),r.push({path:a.path,kind:"create",ownership:a.ownership,desiredDigest:a.ownership==="seed-file"&&i.digest?i.digest:a.digest,disposition:i.exists?a.ownership==="seed-file"||i.digest===a.digest?"noop":"conflict":"ready",...i.exists&&i.digest!==a.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:o===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function rl(e,t){let r=pn.join(e,...t.split("/"));try{let n=await s_(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Blank profile target must be a regular file",t);return{path:t,exists:!0,digest:y(await el(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Er(e){let t=await tl(pn.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let o=await rl(t,n.path),a=o.exists&&o.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&o.exists)try{a=y($a(await el(pn.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{a=!1}if(!a)throw new M("PROJECT_STATE_INVALID","A managed project asset does not match the approved plan",n.path);r.push({path:n.path,digest:n.digest,...n.ownership===void 0?{}:{ownership:n.ownership},...n.regionId===void 0?{}:{regionId:n.regionId}})}return{assets:r,projectStateDigest:y(b(r))}}async function xa(e){let t=X(e.manifest);if(t.capabilities.filter(d=>d.capabilityId===e.release.release.capabilityId&&d.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let o=(e.currentLock===void 0?void 0:qe(e.currentLock))?.capabilities.find(d=>d.capabilityId===e.release.release.capabilityId);if(o!==void 0&&(o.version!==e.release.release.version||o.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","M3 does not support upgrading a different locked release");let a=await tl(pn.resolve(e.projectRoot)),i=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await rl(a,d.path);if(i.push(p),p.exists&&o===void 0&&d.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",d.path);let f=d.ownership==="seed-file"&&p.digest?p.digest:d.digest;d.ownership==="seed-file"&&p.exists&&c.set(d.path,await el(pn.join(a,...d.path.split("/")))),s.push({path:d.path,kind:"create",ownership:d.ownership,desiredDigest:f})}let l={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(d=>({path:d.path,ownership:d.ownership,desiredDigest:d.digest})),verifiers:e.release.release.verifiers.map(d=>({id:d.id,kind:"command"}))};return{manifest:t,release:e.release,plan:Pe({action:"adopt",capability:l,changes:s,observedAssets:i,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as l_,lstat as Ba,mkdir as un,open as Kf,readFile as za,realpath as d_,rename as Fa,rm as nl,unlink as Pr}from"node:fs/promises";import{constants as Ma}from"node:fs";import{homedir as p_}from"node:os";import W from"node:path";import{randomUUID as gn}from"node:crypto";function c_(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function ct(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Gf(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Gf(e.context,e.operation,e.bytes??0,t,"failed",c_(r)),r}}async function Gf(e,t,r,n,o,a){if(e?.sink===void 0)return;let i=process.hrtime.bigint(),s={schemaVersion:1,phase:e.phase,operation:t,pathCategory:e.pathCategory,bytes:r,barrierId:e.barrierId,startedMonotonicNs:n.toString(),completedMonotonicNs:i.toString(),result:o,...a===void 0?{}:{errorCategory:a}},c=Object.freeze({...s,eventId:y(b(s))});try{await e.sink(c)}catch{}}var Yf=Symbol("prepared-transaction"),tr=new Map,u_=5*1024*1024,f_=25*1024*1024,Wf=8,qa=class extends Error{};async function Va(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new qa("Simulated prepare crash",{cause:n})}}var j=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,o){super(r),this.code=t,this.relativePath=n,this.operationIndex=o}};function co(e,t){let r=W.join(e,".dyyto"),n=W.join(r,"transactions",t);return{platformDirectory:r,lock:W.join(r,"transaction-lock.json"),transactionDirectory:n,journal:W.join(n,"journal.json"),preimages:W.join(n,"preimages"),quarantine:W.join(n,"quarantine")}}async function Ct(e){try{return await Ba(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function hn(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function wt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function lt(e,t){let r=await Kf(e,Ma.O_RDONLY);try{await ct({context:hn(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function lo(e,t,r=384,n){let o=await Kf(e,Ma.O_CREAT|Ma.O_EXCL|Ma.O_WRONLY,r);try{await ct({context:hn(n),operation:"write",bytes:t.byteLength,run:()=>o.writeFile(t)}),await ct({context:hn(n),operation:"file-sync",bytes:t.byteLength,run:()=>o.sync()})}finally{await o.close()}}async function ol(e,t,r){let n=W.dirname(e),o=W.join(n,`.tmp-${gn()}`),a=Buffer.from(`${JSON.stringify(t,null,2)}
15
+ `);await lo(o,a,384,r),await ct({context:hn(r),operation:"rename",bytes:a.byteLength,run:()=>Fa(o,e)}),await lt(n,r)}function al(e){return{...e,journalDigest:y(b(e))}}function m_(e){let t;try{t=Jf(e)}catch{throw new j("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==y(b(n)))throw new j("JOURNAL_CORRUPTED","Transaction journal digest or shape is invalid");let o=new Set;for(let[a,i]of t.operations.entries()){if(i.index!==a||o.has(i.path)||i.kind==="create"&&i.before.kind!=="absent"||i.kind!=="create"&&i.before.kind!=="present"||i.kind!=="remove"&&i.desiredDigest===void 0||i.kind==="remove"&&i.desiredDigest!==void 0)throw new j("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");o.add(i.path)}return t}async function il(e){try{return m_(JSON.parse(await za(e,"utf8")))}catch(t){throw t instanceof j?t:new j("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function rr(e,t,r){let{journalDigest:n,...o}=t,a=al(o);return await ol(e,a,r),a}async function Ja(e){let t=W.resolve(e),r=W.parse(t);if(t===r.root||t===W.resolve(p_()))throw new j("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await Ba(t);if(!n.isDirectory()||n.isSymbolicLink())throw new j("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let o=await d_(t);if(o!==t)throw new j("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return o}function yn(e,t){if((t===".dyyto"||t.startsWith(".dyyto/"))&&t!==".dyyto/application-config-binding.json"||t.length===0||W.posix.isAbsolute(t)||W.win32.isAbsolute(t)||t.includes("\\")||t.split("/").some(n=>n==="."||n===".."))throw new j("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=W.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${W.sep}`))throw new j("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function fn(e,t){let r=t.split("/"),n=e;for(let o of r){n=W.join(n,o);try{if((await Ba(n)).isSymbolicLink())throw new j("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(a){if(a.code==="ENOENT")return;throw a}}}async function mn(e){try{let t=await Ba(e);if(!t.isFile()||t.isSymbolicLink())throw new j("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await za(e);return{bytes:r,digest:y(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function g_(e,t,r){er(e);let{planId:n,...o}=e;if(Ta(o)!==e.planId)throw new j("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new j("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new j("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new j("PLAN_EXPIRED","Plan has expired")}function h_(e){let t=e.operations.filter(r=>r.disposition==="ready");for(let r of t)if(!((r.ownership==="owned-file"||r.ownership==="seed-file")&&["create","replace","remove"].includes(r.kind)||r.ownership==="managed-region"&&r.kind==="merge"&&r.regionId!==void 0))throw new j("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function sl(e,t,r){try{await lo(e,Buffer.from(`${JSON.stringify(t,null,2)}
16
+ `),384,r),await lt(W.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new j("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function Ua(e){try{let t=JSON.parse(await za(e,"utf8"));if(t.schemaVersion!==1||typeof t.transactionId!="string"||typeof t.planId!="string"||typeof t.startedAt!="string"||typeof t.nonce!="string")throw new Error("invalid lock");return t}catch{throw new j("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function y_(e,t,r){return{[Yf]:!0,projectRoot:e,plan:t,transactionId:r}}async function w_(e,t){g_(e.plan,e.approvedPlanId,e.now);let r=await Ja(e.projectRoot),n=h_(e.plan),o=new Set(e.plan.operations.filter(u=>u.kind!=="remove"&&u.disposition!=="conflict").map(u=>u.path));for(let u of e.desiredContents.keys())if(!o.has(u))throw new j("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(yn(r,u.path),await fn(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||y(m)!==u.desiredDigest)throw new j("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let a=co(r,e.plan.planId);await un(a.platformDirectory,{recursive:!0,mode:448}),await fn(r,".dyyto");let i=gn();await sl(a.lock,{schemaVersion:1,transactionId:i,planId:e.plan.planId,startedAt:e.now,nonce:gn()},wt(t?.durabilityTrace,"prepare","lock",`${i}:prepare-lock`));let s=e.limits?.maxFileBytes??u_,c=e.limits?.maxTransactionBytes??f_,l=0,d=[],p=[],f=!1;try{if(await Va(t,"lock-created"),await Ct(a.transactionDirectory))throw new j("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await un(a.preimages,{recursive:!0,mode:448}),await un(a.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let h=yn(r,g.path);await fn(r,g.path);let w=await mn(h);if(g.kind==="create"){if(w!==void 0)throw new j("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new j("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let _={kind:"absent"};if(w!==void 0){if(l+=w.bytes.byteLength,w.bytes.byteLength>s||l>c)throw new j("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let v=W.join(a.preimages,`${m}.bin`);await lo(v,w.bytes,384,wt(t?.durabilityTrace,"prepare","preimage",`${i}:preimage:${m}`)),p.push(m),await Va(t,"preimage-written-pending-directory-sync",m),_={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:y(w.bytes)}}d.push({index:m,path:g.path,kind:g.kind,before:_,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await lt(a.preimages,wt(t?.durabilityTrace,"prepare","directory",`${i}:preimages-directory-batch`));for(let m of p)await Va(t,"preimage-persisted",m)}let u=al({schemaVersion:1,transactionId:i,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:y(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:d});return await ol(a.journal,u,wt(t?.durabilityTrace,"prepare","journal",`${i}:journal-prepared`)),tr.set(i,{desiredContents:e.desiredContents,journal:u}),await Va(t,"journal-prepared"),y_(r,e.plan,i)}catch(u){if(u instanceof qa)throw tr.delete(i),new j("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await nl(a.transactionDirectory,{recursive:!0,force:!0}),await Pr(a.lock),await lt(a.platformDirectory)}catch{throw new j("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function nr(e){return w_(e)}async function I_(e,t,r,n){return rr(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},wt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function v_(e,t,r,n,o,a){let i=yn(e,n.path);await fn(e,n.path);let s=await mn(i);if(n.before.kind==="absent"){if(s!==void 0)throw new j("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new j("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=W.join(t.quarantine,`${n.index}.bin`),f=wt(a?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await ct({context:hn(f),operation:"rename",run:()=>Fa(i,p)}),await a?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(i),t.quarantine]}let c=o.get(n.path);if(c===void 0||y(c)!==n.desiredDigest)throw new j("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await un(W.dirname(i),{recursive:!0}),await fn(e,n.path);let l=W.join(W.dirname(i),`.dyyto-${r}-${n.index}.tmp`),d=wt(a?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await lo(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await a?.onCheckpoint?.("temporary-file-synced",n.index),await ct({context:hn(d),operation:"rename",bytes:c.byteLength,run:()=>Fa(l,i)}),await a?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(i)]}async function b_(e,t){let r=tr.get(e.transactionId);if(r===void 0||e[Yf]!==!0)throw new j("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=co(e.projectRoot,e.plan.planId),o=await rr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let a=new Map;for(let i=0;i<o.operations.length;i+=Wf){let s=o.operations.slice(i,i+Wf),c=await Promise.allSettled(s.map(d=>v_(e.projectRoot,n,e.transactionId,d,r.desiredContents,t))),l=c.find(d=>d.status==="rejected");if(l?.status==="rejected")throw l.reason;for(let d of c)if(d.status==="fulfilled")for(let p of d.value)a.has(p)||a.set(p,wt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[i,s]of a)await lt(i,s);for(let i of o.operations)await t?.onCheckpoint?.("target-renamed",i.index),i.status="applied",await t?.onCheckpoint?.("operation-applied",i.index);o=await rr(n.journal,{...o,operations:o.operations,updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let i of o.operations)await t?.onCheckpoint?.("operation-journaled",i.index);return o=await rr(n.journal,{...o,state:"applied",updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Pr(n.lock),await lt(n.platformDirectory),tr.delete(e.transactionId),Nr(o)}catch(a){throw o=await I_(n,o,a instanceof j?a.operationIndex:void 0,t?.durabilityTrace),tr.set(e.transactionId,{desiredContents:r.desiredContents,journal:o}),new j("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function or(e){return b_(e)}function Nr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Tt(e){let t=await Ja(e.projectRoot),r=co(t,e.planId);if(!await Ct(r.journal)){if(!await Ct(r.lock))return null;let n=await Ua(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return Nr(await il(r.journal))}async function k_(e,t,r){await un(W.dirname(e),{recursive:!0});let n=W.join(W.dirname(e),`.dyyto-recover-${gn()}.tmp`);await lo(n,t,r&511),await Fa(n,e),await l_(e,r&511),await lt(W.dirname(e))}async function Hf(e){let t=await Ja(e.projectRoot),r=co(t,e.planId);if(!await Ct(r.journal)){if(!await Ct(r.lock))throw new j("JOURNAL_CORRUPTED","No transaction record exists");let o=await Ua(r.lock);if(o.planId!==e.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await nl(r.transactionDirectory,{recursive:!0,force:!0}),await un(r.transactionDirectory,{recursive:!0,mode:448});let a=al({schemaVersion:1,transactionId:o.transactionId,planId:o.planId,approvedPlanId:o.planId,projectRootDigest:y(t),state:"recovered",createdAt:o.startedAt,updatedAt:e.now,operations:[]});return await ol(r.journal,a),await Pr(r.lock),await lt(r.platformDirectory),Nr(a)}let n=await il(r.journal);if(n.state==="recovered")return Nr(n);if(n.state==="applied"){for(let o of n.operations){let a=await mn(yn(t,o.path));if(!(o.kind==="remove"?a===void 0:a?.digest===o.desiredDigest))throw new j("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",o.path,o.index)}if(await Ct(r.lock)){let o=await Ua(r.lock);if(o.transactionId!==n.transactionId||o.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Pr(r.lock),await lt(r.platformDirectory)}return tr.delete(n.transactionId),Nr(n)}if(n.projectRootDigest!==y(t))throw new j("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Ct(r.lock)){let o=await Ua(r.lock);if(o.transactionId!==n.transactionId||o.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await sl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:gn()});n=await rr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let o of[...n.operations].reverse()){if(o.status==="restored")continue;let a=yn(t,o.path);if(await fn(t,o.path),o.kind!=="remove"){let s=W.join(W.dirname(a),`.dyyto-${n.transactionId}-${o.index}.tmp`);if(await Ct(s)){if((await mn(s))?.digest!==o.desiredDigest)throw new j("RECOVERY_CONFLICT","Transaction temporary file was modified externally",o.path,o.index);await Pr(s),await lt(W.dirname(s))}}let i=await mn(a);if(o.before.kind==="absent"){if(i!==void 0){if(i.digest!==o.desiredDigest)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",o.path,o.index);await Pr(a),await lt(W.dirname(a))}}else if(i?.digest!==o.before.digest){let s=W.join(r.quarantine,`${o.index}.bin`),c=i?.digest===o.desiredDigest,l=o.kind==="remove"&&i===void 0&&await Ct(s),d=e.approvedConflicts?.find(f=>f.path===o.path&&f.currentDigest===i?.digest);if(!c&&!l&&!d)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",o.path,o.index);let p=await za(W.join(r.preimages,`${o.index}.bin`));if(y(p)!==o.before.preimageDigest)throw new j("JOURNAL_CORRUPTED","Preimage digest is invalid",o.path,o.index);await k_(a,p,o.before.mode),l&&await nl(s,{force:!0})}o.status="restored",n=await rr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",o.index)}return n=await rr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Pr(r.lock),await lt(r.platformDirectory),tr.delete(n.transactionId),Nr(n)}async function po(e){return Hf(e)}async function cl(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new j("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return Hf(e)}async function ll(e){let t=await Ja(e.projectRoot),r=co(t,e.planId),n=await il(r.journal);if(n.state==="recovered")return Nr(n);if(n.state!=="applied")throw new j("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let o;for(let a of n.operations){let i=await mn(yn(t,a.path)),s=a.kind==="remove"?i===void 0:i?.digest===a.desiredDigest,c=a.before.kind==="absent"?i===void 0:i?.digest===a.before.digest;if(!s&&!c){o=a;break}}if(await sl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:gn()}),n=await rr(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),o!==void 0)throw new j("RECOVERY_CONFLICT","Rollback would overwrite external content",o.path,o.index);return tr.set(n.transactionId,{desiredContents:new Map,journal:n}),po({projectRoot:t,planId:e.planId,now:e.now})}var we=class extends Error{code;constructor(t,r){super(r),this.code=t}},uo=class extends Error{};function go(e,t){let r=ke.join(e,".dyyto"),n=ke.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:ke.join(r,"evidence"),lockFile:ke.join(r,"project-lock.json"),transactionLock:ke.join(r,"metadata-lock.json"),transactionDirectory:n,journal:ke.join(n,"journal.json")}}async function ar(e){try{return await R_(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Lt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function Ya(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function Ha(e,t){let r=await Xf(e,Wa.O_RDONLY);try{await ct({context:Ya(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function ul(e,t,r){let n=await Xf(e,Wa.O_CREAT|Wa.O_EXCL|Wa.O_WRONLY,384);try{await ct({context:Ya(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await ct({context:Ya(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function fo(e,t,r){let n=ke.dirname(e),o=ke.join(n,`.tmp-${pl()}`),a=Buffer.from(`${JSON.stringify(t,null,2)}
17
+ `);await ul(o,a,r),await ct({context:Ya(r),operation:"rename",bytes:a.byteLength,run:()=>__(o,e)}),await Ha(n,r)}function fl(e){return{...e,journalDigest:y(b(e))}}async function Ga(e,t,r){let{journalDigest:n,...o}=t,a=fl(o);return await fo(e,a,r),a}async function Zf(e){try{let t=JSON.parse(await mo(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==y(b(n)))throw new Error("invalid journal");return t.evidence.forEach(so),qe(t.lock),t}catch{throw new we("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function ml(e,t,r){try{await ul(e,Buffer.from(`${JSON.stringify(t,null,2)}
18
+ `),r),await Ha(ke.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new we("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function Qf(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:y(b(r))}}function em(e,t,r){let n=t.map(Uf),o=e.verifiers.map(i=>i.id).sort(),a=n.map(i=>i.verifierId).sort();if(o.length!==a.length||o.some((i,s)=>i!==a[s]))throw new we("VERIFICATION_INCOMPLETE","Verification results do not cover the release verifier set");for(let i of n){if(i.commandId!==i.verifierId||i.result!=="passed"||i.exitCode!==0)throw new we("VERIFICATION_FAILED",`Verifier ${i.verifierId} did not pass`);if(i.projectStateDigest!==r)throw new we("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function A_(e,t,r){let n=ke.join(e,`${t.evidenceId}.json`);if(await ar(n)){let o=so(JSON.parse(await mo(n,"utf8")));if(b(o)!==b(t))throw new we("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await ul(n,Buffer.from(`${JSON.stringify(t,null,2)}
19
+ `),r),await Ha(e,r)}async function E_(e,t,r,n){if(await ar(e)){let o=qe(JSON.parse(await mo(e,"utf8")));if(b(o)===b(t))return;if(r===void 0||y(b(o))!==r)throw new we("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await fo(e,t,n);return}await fo(e,t,n)}async function Ka(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new uo("Simulated metadata crash",{cause:r})}}async function gl(e,t,r){let n=go(e,t.planId),o=t;try{for(let a of o.evidence)await A_(n.evidenceDirectory,a,Lt(r?.durabilityTrace,"evidence",`${o.transactionId}:evidence`));return o=await Ga(n.journal,{...o,state:"evidence-written",updatedAt:new Date().toISOString()},Lt(r?.durabilityTrace,"journal",`${o.transactionId}:evidence-written`)),await Ka(r,"evidence-written"),await E_(n.lockFile,o.lock,o.previousLockDigest,Lt(r?.durabilityTrace,"lock",`${o.transactionId}:project-lock`)),o=await Ga(n.journal,{...o,state:"lock-written",updatedAt:new Date().toISOString()},Lt(r?.durabilityTrace,"journal",`${o.transactionId}:lock-written`)),await Ka(r,"lock-written"),o=await Ga(n.journal,{...o,state:"committed",updatedAt:new Date().toISOString()},Lt(r?.durabilityTrace,"journal",`${o.transactionId}:committed`)),await Ka(r,"committed"),await dl(n.transactionLock),await Ha(n.platformDirectory,Lt(r?.durabilityTrace,"directory",`${o.transactionId}:unlock`)),o.lock}catch(a){if(a instanceof uo)throw new we("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await Ga(n.journal,{...o,state:"recovery-required",updatedAt:new Date().toISOString()},Lt(r?.durabilityTrace,"journal",`${o.transactionId}:recovery-required`))}catch{}throw a}}async function P_(e){let t=await Or(ke.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Or(ke.resolve(e.transactionRoot));if((await Tt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new we("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let o;try{o=await Er({projectRoot:t,expectedAssets:e.expectedAssets??e.release.assets.map(m=>({path:m.path,digest:m.digest}))})}catch{throw new we("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let i=em(e.release,e.verificationResults,o.projectStateDigest).map(m=>Qf(e.release,m)),s={capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,consumerProfile:e.release.consumerProfile,appliedPlanId:e.plan.planId,projectStateDigest:o.projectStateDigest,assets:o.assets,evidenceIds:i.map(m=>m.evidenceId).sort(),committedAt:e.committedAt,...e.plan.packageAdoption===void 0?{}:{packageAdoption:{...e.plan.packageAdoption.sourceChannel===void 0?{}:{sourceChannel:e.plan.packageAdoption.sourceChannel},registryRevisions:e.plan.packageAdoption.registryRevisions.map(m=>({...m})),sources:e.plan.packageAdoption.sources.map(m=>({...m})),packageJsonDigest:e.plan.packageAdoption.desiredPackageJsonDigest,lockfileDigest:e.plan.packageAdoption.desiredLockfileDigest}}},c=e.previousLock?.capabilities??[],l=e.previousLock!==void 0&&e.plan.action==="adopt"?[...c.filter(m=>m.capabilityId!==e.release.capabilityId),s].sort((m,g)=>m.capabilityId.localeCompare(g.capabilityId)):e.previousLock!==void 0&&e.plan.action==="upgrade"?[...c.filter(m=>m.capabilityId!==e.release.capabilityId),s].sort((m,g)=>m.capabilityId.localeCompare(g.capabilityId)):[s],d={schemaVersion:l.some(m=>m.packageAdoption!==void 0)?2:1,capabilities:l};qe(d);let p=go(t,e.plan.planId);if(await wn(p.platformDirectory,{recursive:!0,mode:448}),await wn(p.evidenceDirectory,{recursive:!0,mode:448}),await ar(p.lockFile)&&e.previousLock===void 0){let m=qe(JSON.parse(await mo(p.lockFile,"utf8")));if(b(m)===b(d))return m;throw new we("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let f=pl();if(await ml(p.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt},Lt(e.hooks?.durabilityTrace,"lock",`${f}:metadata-lock`)),await ar(p.transactionDirectory))throw await dl(p.transactionLock),new we("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await wn(p.transactionDirectory,{recursive:!0,mode:448});let u=fl({schemaVersion:1,planId:e.plan.planId,transactionId:f,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:i,lock:d,...e.previousLock===void 0?{}:{previousLockDigest:y(b(qe(e.previousLock)))}});await fo(p.journal,u,Lt(e.hooks?.durabilityTrace,"journal",`${f}:prepared`));try{await Ka(e.hooks,"journal-prepared")}catch(m){throw m instanceof uo?new we("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return gl(t,u,e.hooks)}async function hl(e){return P_(e)}async function yl(e){let t=await Or(ke.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Or(ke.resolve(e.transactionRoot));if((await Tt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new we("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let o=e.previousLock.capabilities.find(h=>h.capabilityId===e.release.capabilityId&&h.version===e.release.version);if(o===void 0)throw new we("PROJECT_STATE_CHANGED","The removed capability is not present in the project lock");let a=e.previousLock.capabilities.filter(h=>h!==o),i=e.plan.packageAdoption?.schemaVersion===2&&e.plan.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${e.plan.packageAdoption.topology.unitRelativeRoot}/`:"",s=new Map(e.plan.operations.flatMap(h=>h.desiredDigest===void 0||!h.path.startsWith(i)?[]:[[h.path.slice(i.length),h.desiredDigest]])),c=e.expectedAssets??a.flatMap(h=>h.assets).map(h=>({...h,digest:s.get(h.path)??h.digest})),l=await Er({projectRoot:t,expectedAssets:c}),p=em(e.release,e.verificationResults,l.projectStateDigest).map(h=>Qf(e.release,h)),f={schemaVersion:a.some(h=>h.packageAdoption!==void 0)?2:1,capabilities:a};qe(f);let u=go(t,e.plan.planId);await wn(u.platformDirectory,{recursive:!0,mode:448}),await wn(u.evidenceDirectory,{recursive:!0,mode:448});let m=pl();await ml(u.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await wn(u.transactionDirectory,{recursive:!1,mode:448});let g=fl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:p,lock:f,previousLockDigest:y(b(qe(e.previousLock)))});return await fo(u.journal,g),gl(t,g)}async function wl(e){let t=await Or(ke.resolve(e.projectRoot)),r=go(t,e.planId),n=await Zf(r.journal);return n.state==="committed"?(await ar(r.transactionLock)&&await dl(r.transactionLock),n.lock):(await ar(r.transactionLock)||await ml(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),gl(t,n))}async function Il(e){let t=await Or(ke.resolve(e.projectRoot)),r=go(t,e.planId);if(!await ar(r.journal))return null;let n=await Zf(r.journal);return{planId:n.planId,state:n.state}}async function Le(e){let t=await Or(ke.resolve(e)),r=ke.join(t,".dyyto","project-lock.json");return await ar(r)?qe(JSON.parse(await mo(r,"utf8"))):null}import{lstat as nm,readFile as tm,realpath as rm}from"node:fs/promises";import ir from"node:path";var It=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function om(e){return y(b(e))}async function N_(e,t){let r=ir.join(e,"assets",...t.split("/"));try{return await nm(r),r}catch(n){if(n.code!=="ENOENT"||ir.posix.basename(t)!==".gitignore")throw n}return ir.join(e,"assets",...ir.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function Ie(e){let t=await rm(ir.resolve(e)),r;try{r=Mf(JSON.parse(await tm(ir.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof It?c:new It("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...o}=r;if(om(o)!==n)throw new It("RELEASE_INTEGRITY_MISMATCH","Capability release integrity does not match metadata");let a=new Map,i=new Set,s="";for(let c of r.assets){try{Ca(c.path)}catch{throw new It("RELEASE_ASSET_INVALID","Release asset path is unsafe",c.path)}if((c.path===".dyyto"||c.path.startsWith(".dyyto/"))&&c.path!==".dyyto/application-config-binding.json"||i.has(c.path)||c.path.localeCompare(s)<0)throw new It("RELEASE_ASSET_INVALID","Release assets must be unique, sorted and outside reserved .dyyto paths",c.path);i.add(c.path),s=c.path;let l=await N_(t,c.path),d=await rm(l),p=ir.join(t,"assets");if(!d.startsWith(`${p}${ir.sep}`))throw new It("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let f=await nm(l);if(!f.isFile()||f.isSymbolicLink())throw new It("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await tm(l);if(y(u)!==c.digest)throw new It("RELEASE_ASSET_INTEGRITY_MISMATCH","Release asset digest does not match metadata",c.path);a.set(c.path,u)}if(r.exit.ownedAssets.length!==r.assets.length||r.exit.ownedAssets.some((c,l)=>c!==r.assets[l]?.path))throw new It("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:a}}import{link as O_,open as im,lstat as Dr,mkdir as sm,readFile as vl,readdir as Xa,realpath as xt,rm as D_,unlink as S_}from"node:fs/promises";import me from"node:path";var be=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},j_={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function $_(){return new TextEncoder().encode(`${JSON.stringify(j_,null,2)}
20
+ `)}async function C_(e,t=!1){let r=me.resolve(e),n=await Dr(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new be("TARGET_INVALID","Workspace target must be a real existing directory");let o=await xt(r);for(let a of t?["AGENTS.md","README.md"]:["package.json","pnpm-workspace.yaml"]){let i=await Dr(me.join(o,a)).catch(()=>null);if(i===null||!i.isFile()||i.isSymbolicLink())throw new be("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${a}`)}if(await Dr(me.join(o,"project-capabilities.json")).catch(()=>null))throw new be("MANIFEST_EXISTS","Project manifest already exists");return o}async function cm(e){let t=await C_(e.projectRoot,e.documentationOnly===!0),r=$_(),n=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:"foundation.workspace-root",version:"1.2.0",integrity:e.capabilityIntegrity,assets:[],verifiers:[]},changes:[{path:"project-capabilities.json",kind:"create",ownership:"owned-file",desiredDigest:y(r)}],observedAssets:[{path:"project-capabilities.json",exists:!1}],generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{projectRoot:t,plan:n,desiredContents:new Map([["project-capabilities.json",r]])}}async function T_(e){let t=await im(e,"r");try{await t.sync()}finally{await t.close()}}async function lm(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await im(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await O_(r,e),await S_(r),await T_(me.dirname(e))}catch(o){throw await D_(r,{force:!0}),o}}async function L_(e){let t=me.resolve(e);try{let r=await Dr(t);if(!r.isDirectory()||r.isSymbolicLink())throw new be("TARGET_INVALID","Project target must be a real directory");if((await Xa(t)).length!==0)throw new be("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=me.dirname(t),o=await Dr(n).catch(()=>null);if(o===null||!o.isDirectory()||o.isSymbolicLink())throw new be("TARGET_INVALID","Project target parent must be a real directory");await sm(t)}return xt(t)}async function Za(e){let t=X(e.manifest),r=await L_(e.projectRoot),n=me.join(r,"project-capabilities.json");try{await lm(n,`${JSON.stringify(t,null,2)}
21
+ `)}catch(o){throw o.code==="EEXIST"?new be("MANIFEST_EXISTS","Project manifest already exists"):o}return{projectRoot:r,manifest:t}}function ho(e){let{planId:t,...r}=e;if(Ta(r)!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function x_(e){let t=await xt(me.resolve(e.projectRoot)),r=er(e.plan);ho(r);let n=me.join(t,".dyyto","plans");await sm(n,{recursive:!0,mode:448});let o=me.join(n,`${r.planId}.json`);try{await lm(o,`${b(r)}
22
+ `)}catch(a){if(a.code!=="EEXIST")throw a;let i=er(JSON.parse(await vl(o,"utf8")));if(ho(i),b(i)!==b(r))throw new be("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return o}function am(e){return b({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Vt(e){let t=await xt(me.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await xt(me.resolve(e.transactionRoot)),n=er(e.plan);ho(n);let o=me.join(t,".dyyto","plans"),a=await Xa(o).catch(s=>{if(s.code==="ENOENT")return[];throw s}),i=[];for(let s of a.filter(c=>c.endsWith(".json")).sort()){let c=er(JSON.parse(await vl(me.join(o,s),"utf8")));ho(c),!await Dr(me.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(d=>d.code==="ENOENT"?!1:Promise.reject(d))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&am(c)===am(n)&&i.push(c)}return i.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),i[0]!==void 0?i[0]:(await x_({projectRoot:t,plan:n}),n)}async function Sr(e){let t=await xt(me.resolve(e.projectRoot)),r=me.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=er(JSON.parse(await vl(r,"utf8")));if(ho(n),n.planId!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new be("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function Qa(e,t=[],r,n=[]){let o=await xt(me.resolve(e)),a=r===void 0?o:await xt(me.resolve(r)),i=me.join(o,".dyyto","plans"),s=await Xa(i).catch(d=>{if(d.code==="ENOENT")return[];throw d}),c=[];for(let d of s.filter(p=>p.endsWith(".json")).sort()){let p=d.slice(0,-5),f=await Sr({projectRoot:o,planId:p}),u=await Tt({projectRoot:a,planId:p}),m=await Dr(me.join(o,".dyyto","metadata-transactions",p)).then(()=>!0).catch(g=>g.code==="ENOENT"?!1:Promise.reject(g));u?.state==="applied"&&!m&&!t.includes(f.planId)&&(!n.includes(f.capability.capabilityId)||f.action==="upgrade"||f.action==="remove"||f.action==="adopt"&&f.operations.every(g=>g.disposition==="noop"))&&c.push(f)}let l=V_(c);if(l===void 0)throw new be("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function V_(e){if(e.length===1)return e[0];if(e.length===0)return;let t=e[0]?.capability.capabilityId;if(!(t===void 0||e.some(r=>r.capability.capabilityId!==t)))return[...e].sort((r,n)=>r.generatedAt.localeCompare(n.generatedAt)).at(-1)}async function bl(e){let t=await xt(me.resolve(e)),r=me.join(t,".dyyto","plans"),n=await Xa(r).catch(a=>{if(a.code==="ENOENT")return[];throw a}),o=[];for(let a of n.filter(i=>i.endsWith(".json")).sort())o.push(await Sr({projectRoot:t,planId:a.slice(0,-5)}));return o}import{lstat as dm,readFile as M_,readdir as U_,realpath as F_}from"node:fs/promises";import Ne from"node:path";import{homedir as pm}from"node:os";var dt=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function um(e){let t=Ne.resolve(e),r=await dm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ne.parse(t).root||t===Ne.resolve(pm()))throw new dt("WORKSPACE_PATH_UNSAFE");let n=await F_(t);if(n!==t)throw new dt("WORKSPACE_PATH_UNSAFE");return n}async function jr(e){let t=await dm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new dt("WORKSPACE_PATH_UNSAFE");return M_(e)}}function fm(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let o of t){if(/^packages:\s*(?:#.*)?$/u.test(o)){n=!0;continue}if(!n)continue;let a=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(o);if(a){r.push(a[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(o.trim()&&!/^\s/u.test(o))break}if(r.length===0)throw new dt("WORKSPACE_MANIFEST_INVALID");return r}function q_(e,t){if(e.includes("**")){let r=e.split("**",1)[0].replace(/\/$/u,"");return t===r||t.startsWith(`${r}/`)}if(e.endsWith("/*")){let r=e.slice(0,-2);return t.startsWith(`${r}/`)&&!t.slice(r.length+1).includes("/")}return e===t}async function ei(e){let t=await um(e),r=await jr(Ne.join(t,"pnpm-workspace.yaml"));if(!r)throw new dt("WORKSPACE_OWNER_MISSING");let n=new Map;for(let o of fm(r.toString("utf8"))){let a=[];if(o.endsWith("/*")&&!o.slice(0,-2).includes("*")){let i=o.slice(0,-2),s=await U_(Ne.join(t,...i.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&a.push(`${i}/${c.name}`)}else if(!o.includes("*"))a.push(o);else throw new dt("WORKSPACE_MANIFEST_INVALID");for(let i of a){let s=await jr(Ne.join(t,...i.split("/"),"package.json"));s&&n.set(i,s)}}return Object.freeze([...n].sort(([o],[a])=>o.localeCompare(a)).map(([o,a])=>Object.freeze({relativeRoot:o,bytes:a})))}async function Mt(e){let t=await um(e);if(await jr(Ne.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await jr(Ne.join(t,"pnpm-workspace.yaml")))throw new dt("WORKSPACE_NESTED_UNSUPPORTED");let r=Ne.dirname(t),n;for(;r!==Ne.parse(r).root&&r!==Ne.resolve(pm());){let a=await jr(Ne.join(r,"pnpm-workspace.yaml"));if(a){if(n)throw new dt("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:a};break}r=Ne.dirname(r)}if(!n||!await jr(Ne.join(n.root,"pnpm-lock.yaml"))||!await jr(Ne.join(n.root,"project-capabilities.json")))throw new dt("WORKSPACE_OWNER_MISSING");let o=Ne.relative(n.root,t).split(Ne.sep).join("/");if(!o||o.startsWith("../")||fm(n.manifest.toString("utf8")).filter(a=>q_(a,o)).length!==1)throw new dt("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:o,unitImporterId:o,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:y(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var mm=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function kl(e){let t=await bl(e);for(let r of t){let n=await Tt({projectRoot:e,planId:r.planId});if(n!==null&&mm.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await Il({projectRoot:e,planId:r.planId});if(n!==null&&n.state!=="committed")return{required:!0,kind:"metadata",planId:r.planId,state:n.state}}return{required:!1}}async function B_(e){let t=await kl(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await po({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await wl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function gm(e){let t=await B_(e);if(t.kind!=="none")return t;let r=await Mt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await bl(e.projectRoot)).map(c=>c.planId)),o=await import("node:fs/promises").then(({readFile:c})=>c(`${r.transactionRoot}/.dyyto/transaction-lock.json`,"utf8")).catch(c=>c.code==="ENOENT"?void 0:Promise.reject(c));if(!o)return t;let a;try{let c=JSON.parse(o);if(typeof c.planId!="string"||!/^sha256:[a-f0-9]{64}$/u.test(c.planId)||!n.has(c.planId))return t;a=c.planId}catch{return t}let i=await Tt({projectRoot:r.transactionRoot,planId:a});if(!i||!mm.has(i.state))return t;let s=await po({projectRoot:r.transactionRoot,planId:a,now:e.now});return{kind:"filesystem",planId:a,state:s.state}}import{lstat as z_,readFile as Rl,realpath as hm}from"node:fs/promises";import yo from"node:path";var J_=new Set(["MIT","Apache-2.0","UNLICENSED"]),G_=new Set(["public","restricted","private"]),W_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,K_=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function Y_(e){let t;try{t=new URL(e)}catch{throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL")}if(t.protocol!=="https:"||t.username.length>0||t.password.length>0||t.search.length>0||t.hash.length>0||t.pathname==="/"||t.pathname.includes(".."))throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL");t.pathname=t.pathname.replace(/\/$/,"").replace(/\.git$/,"");let r=t.href.replace(/\/$/,"");if(r!==e)throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository URL must already be canonical");return r}function $r(e){if(e.profile?.id!=="workspace-node-application"&&e.profile?.id!=="workspace-web-application"&&e.profile?.id!=="workspace-expo-application"&&e.profile?.id!=="nextjs-full-stack-application")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Manifest must select a workspace application profile");let t=Object.keys(e.profile.parameters),r=e.profile.parameters.name;if(t.length!==1||t[0]!=="name"||r===void 0||r.length>128||!/^[a-z0-9][a-z0-9._-]*$/.test(r))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Application parameters must contain one valid lowercase name");return{name:r}}function sr(e,t="standalone-npm-package"){if(e.profile?.id!==t)throw new M("CONSUMER_PROFILE_UNSUPPORTED",`Manifest must select ${t} profile`);let r=e.profile.parameters,n=Object.keys(r).sort(),o=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,a=o==="1.1.0"||o==="1.2.0"||t==="react-component-library",i=a?["license","name","publishAccess","repository","version"]:["license","name","publishAccess","version"];if(n.length!==i.length||n.some((f,u)=>f!==i[u]))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Standalone npm profile parameters must be exact");let{name:s,version:c,license:l,publishAccess:d,repository:p}=r;if(s===void 0||s.length>214||!W_.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!K_.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!J_.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!G_.has(d))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(d==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:l,publishAccess:d,...a?{repository:Y_(p)}:{}}}function _l(e){let t={name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,...e.repository===void 0?{}:{repository:{type:"git",url:e.repository}},type:"module",sideEffects:!1,main:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"}},files:["dist"],engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test",prepack:"corepack pnpm check && corepack pnpm build"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}};return Buffer.from(`${JSON.stringify(t,null,2)}
23
+ `)}function Al(e){return Buffer.from(`${JSON.stringify({name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,repository:{type:"git",url:e.repository},type:"module",sideEffects:["**/*.css"],files:["dist"],main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./style.css":"./dist/style.css"},engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"vite build && tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run","verify:bundle":"vite build && tsc -p tsconfig.build.json && node tooling/verify-bundle.mjs",check:"corepack pnpm typecheck && corepack pnpm test && corepack pnpm verify:bundle",prepack:"corepack pnpm check"},peerDependencies:{react:">=19.0.0 <20","react-dom":">=19.0.0 <20"},devDependencies:{"@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",jsdom:"30.0.1",react:"19.2.8","react-dom":"19.2.8",typescript:"6.0.3",vite:"8.2.1",vitest:"4.1.10"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}}},null,2)}
24
+ `)}function H_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"pnpm typecheck && pnpm test && pnpm build",start:"node dist/index.js"},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
25
+ `)}function X_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"vite",build:"tsc -b && vite build",preview:"vite preview",typecheck:"tsc -b --pretty false",test:"vitest run",check:"pnpm typecheck && pnpm test && pnpm build"},dependencies:{react:"19.2.8","react-dom":"19.2.8"},devDependencies:{"@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",jsdom:"30.0.1",typescript:"6.0.3",vite:"8.2.1",vitest:"4.1.10"}},null,2)}
26
+ `)}function Z_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"next dev",build:"next build",start:"node .artifacts/standalone/server.js",typecheck:"tsc --noEmit",lint:"eslint .","test:unit":"vitest run","test:e2e":"playwright test",test:"pnpm test:unit && pnpm test:e2e",package:"pnpm build && node tooling/package-standalone.mjs",check:"pnpm lint && pnpm typecheck && pnpm test:unit && pnpm build"},dependencies:{next:"16.2.11",react:"19.2.8","react-dom":"19.2.8","server-only":"0.0.1"},devDependencies:{"@playwright/test":"1.62.1","@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",eslint:"9.39.5","eslint-config-next":"16.2.11",jsdom:"30.0.1",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
27
+ `)}function Q_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,main:"expo-router/entry",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"expo start",android:"expo start --android",ios:"expo start --ios",web:"expo start --web",build:"expo export --platform web --output-dir dist",package:"corepack pnpm build && node tooling/verify-expo-export.mjs",typecheck:"tsc --noEmit",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test && corepack pnpm package"},dependencies:{expo:"~57.0.15","expo-router":"~57.0.15","expo-status-bar":"~57.0.1",react:"19.2.3","react-dom":"19.2.3","react-native":"0.86.2","react-native-safe-area-context":"5.9.1","react-native-screens":"4.27.0","react-native-web":"0.21.2"},devDependencies:{"@types/node":"24.10.13","@types/react":"19.2.14",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
28
+ `)}async function ym(e,t){let r=yo.join(e,...t.split("/"));try{let n=await z_(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Managed target must be a regular file",t);return{path:t,exists:!0,digest:y(await Rl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Cr(e,t){let r=X(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?X_($r(r).name):t==="workspace-expo-application"?Q_($r(r).name):t==="nextjs-full-stack-application"?Z_($r(r).name):H_($r(r).name):t==="react-component-library"?Al(sr(r,t)):_l(sr(r,t));if(r.capabilities.filter(u=>u.capabilityId===e.release.release.capabilityId&&u.version===e.release.release.version).length!==1||e.release.release.consumerProfile!==t)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded standalone npm release");let i=(e.currentLock===void 0?void 0:qe(e.currentLock))?.capabilities.find(u=>u.capabilityId===e.release.release.capabilityId);if(i!==void 0&&(i.version!==e.release.release.version||i.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Changing locked npm profile parameters or release is not supported");let s=new Map(e.release.contents);s.set("package.json",n);let c=await hm(yo.resolve(e.projectRoot)),l=[],d=[];for(let u of e.release.release.assets){if(s.get(u.path)===void 0)throw new M("RELEASE_NOT_FOUND","Release asset content is unavailable",u.path);let g=await ym(c,u.path);if(g.exists&&i===void 0&&e.allowExistingWithoutLock!==!0&&u.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile cannot adopt over an existing owned file without a lock",u.path);u.ownership==="seed-file"&&g.exists&&s.set(u.path,await Rl(yo.join(c,...u.path.split("/"))));let h=y(s.get(u.path));l.push(g),d.push({path:u.path,kind:"create",ownership:u.ownership,desiredDigest:h})}let p={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:d.map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},f=Pe({action:"adopt",capability:p,changes:d,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{manifest:r,release:e.release,plan:f,desiredContents:s}}function wo(e){return Cr(e,"standalone-npm-package")}function Io(e){return Cr(e,"react-component-library")}function In(e){return Cr(e,"nextjs-full-stack-application")}async function El(e){let t=X(e.manifest);if(t.profile?.id!=="nextjs-full-stack-application"||e.release.release.consumerProfile!=="nextjs-full-stack-application"||e.release.release.assets.some(u=>u.ownership!=="seed-file"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Historical adoption requires a seed-only Next.js Profile Release");let r=X({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await In({...e,manifest:r}),o=await hm(yo.resolve(e.projectRoot)),a="project-capabilities.json",i=await Rl(yo.join(o,a)),s=Buffer.from(`${JSON.stringify(r,null,2)}
29
+ `),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:a,kind:"replace",ownership:"owned-file",baseDigest:y(i),desiredDigest:y(s)});let l=await Promise.all(c.map(u=>ym(o,u.path))),d=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:c.filter(u=>u.path!==a).map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),p=new Map([...n.desiredContents,[a,s]]),f=new Map;for(let u of d.operations)u.disposition==="ready"&&u.kind!=="remove"&&f.set(u.path,p.get(u.path));return{...n,manifest:r,plan:d,desiredContents:f}}function vo(e){return Cr(e,"workspace-npm-package")}function bo(e){return Cr(e,"workspace-node-application")}function ko(e){return Cr(e,"workspace-web-application")}function Ro(e){return Cr(e,"workspace-expo-application")}async function wm(e){if(e.currentLock!==void 0){let n=await wo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await wo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Im(e){if(e.currentLock!==void 0){let n=await Io(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Io({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function vm(e){if(e.currentLock!==void 0){let n=await In(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await In({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function bm(e){if(e.currentLock!==void 0){let n=await vo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await vo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function km(e){if(e.currentLock!==void 0){let n=await bo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await bo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Rm(e){if(e.currentLock!==void 0){let n=await ko(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ko({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function _m(e){if(e.currentLock!==void 0){let n=await Ro(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ro({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}import{lstat as bA,readFile as gi,realpath as kA}from"node:fs/promises";import Po from"node:path";var vt=class extends Error{code;constructor(t,r){super(r),this.code=t}},Tr=/^sha256:[a-f0-9]{64}$/,eA=/^sha512-[A-Za-z0-9+/]{86}==$/,tA=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,Em=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,rA=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,Am=/^[a-z][a-z0-9._:-]{2,127}$/;function Lr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,o)=>n===[...t].sort()[o])}function nA(e){if(!Lr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!Em.test(e.registryId)||!Am.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,o)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==o)||!Lr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!Lr(e.capabilities,["read","write","provenance","staging"])||!["workload-identity","short-lived-token","restricted-token","anonymous-test"].includes(e.authentication.kind)||e.authentication.kind==="anonymous-test"!=(e.authentication.credentialRef===void 0)||e.authentication.credentialRef!==void 0&&!Am.test(e.authentication.credentialRef))return!1;let t;try{t=new URL(e.origin)}catch{return!1}if(t.username||t.password||t.search||t.hash||!t.pathname.endsWith("/")||t.pathname.includes("..")||/%2f|%5c/iu.test(t.pathname))return!1;let r=t.hostname==="127.0.0.1"||t.hostname==="localhost"||t.hostname==="[::1]";return e.authentication.kind==="anonymous-test"&&(!r||t.protocol!=="http:")||e.authentication.kind!=="anonymous-test"&&t.protocol!=="https:"?!1:typeof e.capabilities.read=="boolean"&&typeof e.capabilities.write=="boolean"&&typeof e.capabilities.provenance=="boolean"&&typeof e.capabilities.staging=="boolean"&&(e.status==="enabled"||e.status==="disabled")}function Pl(e){if(!nA(e))throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,scopes:Object.freeze([...e.scopes]),authentication:Object.freeze({...e.authentication}),capabilities:Object.freeze({...e.capabilities}),revision:y(b(t))})}function _o(e){let t=e;if(typeof t!="object"||t===null||!Lr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Tr.test(t.revision))throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...o}=t;if(Pl(o).revision!==n)throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function oA(e,t){let r,n;try{r=new URL(e.origin),n=new URL(t)}catch{return!1}return n.username||n.password||n.search||n.hash||n.pathname!==r.pathname||n.protocol!==r.protocol||n.hostname!==r.hostname?!1:e.authentication.kind==="anonymous-test"||n.port===r.port}function Nl(e,t){let r=_o(t);if(!Lr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!oA(r,e.origin)||Number.isNaN(Date.parse(e.resolvedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:y(b(n))})}function Pm(e,t){let r=e;if(typeof r!="object"||r===null||!Lr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Tr.test(r.bindingDigest))throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:o,...a}=r;if(Nl(a,t).bindingDigest!==o)throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function aA(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return Lr(e,t)&&Em.test(e.registryId)&&Tr.test(e.registryConfigRevision)&&rA.test(e.packageName)&&tA.test(e.version)&&eA.test(e.integrity)&&Tr.test(e.tarballDigest)&&Tr.test(e.sourceDeliveryReceiptId)&&!Number.isNaN(Date.parse(e.verifiedAt))&&(e.access==="restricted"||e.access==="private")&&["registry-attested","external-attested","local-readback-verified","development-readback-verified","registry-verified-no-attestation"].includes(e.provenance)&&(e.provenance!=="registry-verified-no-attestation"?e.verificationIdentityDigest!==void 0&&Tr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Ol(e){if(!aA(e))throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(b(t))})}function Nm(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Tr.test(t.receiptId))throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...o}=t;if(Ol(o).receiptId!==n)throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Re=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Ao(e){return y(b(e))}var Dl=/^sha256:[a-f0-9]{64}$/u,iA=/^sha512-[A-Za-z0-9+/]{86}==$/u,sA=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ti=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,cA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,lA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function ri(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,a)=>o===n[a])}function Om(e){return y(b(e))}function Dm(e){let t=Buffer.from(e.desiredLockfile),r=y(t),n={schemaVersion:1,workerReleaseId:e.workerReleaseId,workerStateRevision:e.workerStateRevision,requestDigest:e.requestDigest,pnpmVersion:e.pnpmVersion,desiredLockDigest:r,importerFacts:e.importerFacts.map(i=>({...i})),packageFacts:e.packageFacts.map(i=>({...i})),snapshotClosureDigest:e.snapshotClosureDigest,networkObservationDigest:e.networkObservationDigest,cacheObservation:{...e.cacheObservation},commandDigest:e.commandDigest,completedAt:e.completedAt,expiresAt:e.expiresAt},o={...n,jobId:Om(n),desiredLockfile:t};Sm(o);let a={...o,importerFacts:Object.freeze(o.importerFacts.map(i=>Object.freeze({...i}))),packageFacts:Object.freeze(o.packageFacts.map(i=>Object.freeze({...i}))),cacheObservation:Object.freeze({...o.cacheObservation})};return Object.freeze(a)}function Sm(e){if(!ri(e,["schemaVersion","jobId","workerReleaseId","workerStateRevision","requestDigest","pnpmVersion","desiredLockfile","desiredLockDigest","importerFacts","packageFacts","snapshotClosureDigest","networkObservationDigest","cacheObservation","commandDigest","completedAt","expiresAt"])||e.schemaVersion!==1||e.pnpmVersion!=="11.21.0")throw new Re("RESOLUTION_EVIDENCE_INVALID");if(![e.jobId,e.workerStateRevision,e.requestDigest,e.desiredLockDigest,e.snapshotClosureDigest,e.networkObservationDigest,e.commandDigest,e.cacheObservation.preimageRevision,e.cacheObservation.desiredRevision,e.cacheObservation.writesDigest].every(o=>Dl.test(o)))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(!ti.test(e.workerReleaseId)||!ti.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||y(e.desiredLockfile)!==e.desiredLockDigest||Number.isNaN(Date.parse(e.completedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.completedAt))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(!ri(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Re("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(o=>!ri(o,["importerId","manifestDigest","preimageDigest","desiredDigest"])||o.importerId!=="."&&!ti.test(o.importerId)||![o.manifestDigest,o.preimageDigest,o.desiredDigest].every(a=>Dl.test(a))))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(o=>!ri(o,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!lA.test(o.identity)||!cA.test(o.packageName)||!ti.test(o.registryId)||!sA.test(o.version)||!iA.test(o.integrity)||typeof o.managed!="boolean"||!Dl.test(o.edgesDigest)))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(o=>o.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(o=>o.identity)).size!==e.packageFacts.length)throw new Re("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(Om(n)!==e.jobId)throw new Re("RESOLUTION_EVIDENCE_INVALID")}function Sl(e,t){if(Sm(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Re("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Re("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Re("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let o=e.importerFacts.find(a=>a.importerId===n.importerId);if(!o||o.preimageDigest!==n.preimageDigest||o.desiredDigest!==n.preimageDigest)throw new Re("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let o=e.packageFacts.filter(a=>a.managed&&a.packageName===n.packageName);if(o.length!==1||o[0].registryId!==n.registryId||o[0].version!==n.version||o[0].integrity!==n.integrity)throw new Re("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Re("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var Y=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function ai(e){let t={sourceChannel:e.sourceChannel,packageJsonPreimageDigest:e.packageJsonPreimageDigest,desiredPackageJsonDigest:e.desiredPackageJsonDigest,lockfilePreimage:{...e.lockfilePreimage},desiredLockfileDigest:e.desiredLockfileDigest,registryRevisions:e.registryRevisions.map(r=>({...r})),endpointBindings:e.endpointBindings.map(({registryId:r,registryConfigRevision:n,bindingDigest:o,expiresAt:a})=>({registryId:r,registryConfigRevision:n,bindingDigest:o,expiresAt:a})),sources:e.sources.map(r=>({...r})),installPolicy:{...e.installPolicy}};if(e.schemaVersion===1)return{schemaVersion:1,...t};if(!e.topology||!e.preservedDependencies||!e.preservedImporterDigests)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var ni=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,jm=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function jl(e){return Array.isArray(e)?`[${e.map(jl).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${jl(r)}`).join(",")}}`:JSON.stringify(e)}function Ut(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function pt(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function oi(e){for(let t of[pt(e.dependencies),pt(e.devDependencies),pt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!ni.test(n)||jm.test(n)))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}var dA=["dependencies","devDependencies","optionalDependencies"];function ii(e,t){let r=[];for(let n of dA)for(let[o,a]of Object.entries(pt(e[n]))){if(t.has(o)){if(!ni.test(a))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(a))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:o,specifier:a})}return r.sort((n,o)=>`${n.section}:${n.packageName}`.localeCompare(`${o.section}:${o.packageName}`))}function $l(e){let t=Ut(e.packageJson);oi(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:a})=>a==="runtime").map(({packageName:a,version:i})=>[a,i])),n=Object.fromEntries(e.release.packageSources.filter(({usage:a})=>a==="development").map(({packageName:a,version:i})=>[a,i])),o={...t,...Object.keys(r).length?{dependencies:{...pt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...pt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(o,null,2)}
30
+ `)}function Eo(e){let t=Ut(e.packageJson);ii(t,new Set(e.release.packageSources.map(o=>o.packageName)));let r=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="runtime").map(({packageName:o,version:a})=>[o,a])),n=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="development").map(({packageName:o,version:a})=>[o,a]));return Buffer.from(`${JSON.stringify({...t,...Object.keys(r).length?{dependencies:{...pt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...pt(t.devDependencies),...n}}:{}},null,2)}
31
+ `)}function Cl(e){let t=Ut(e.packageJson);oi(t);let r=pt(t.dependencies),n=pt(t.devDependencies);for(let a of e.remove)delete(a.usage==="runtime"?r:n)[a.packageName];let o={...t};return Object.keys(r).length===0?delete o.dependencies:o.dependencies=r,Object.keys(n).length===0?delete o.devDependencies:o.devDependencies=n,Buffer.from(`${JSON.stringify(o,null,2)}
32
+ `)}function Tl(e){let t=Ut(e.packageJson);ii(t,new Set(e.remove.map(a=>a.packageName)));let r=pt(t.dependencies),n=pt(t.devDependencies);for(let a of e.remove)delete(a.usage==="runtime"?r:n)[a.packageName];let o={...t};return Object.keys(r).length===0?delete o.dependencies:o.dependencies=r,Object.keys(n).length===0?delete o.devDependencies:o.devDependencies=n,Buffer.from(`${JSON.stringify(o,null,2)}
33
+ `)}function $m(e){let t=e.currentLock.capabilities.find(p=>p.capabilityId===e.release.capabilityId&&p.version===e.release.version);if(!t?.packageAdoption)throw new Y("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(p=>p!==t).flatMap(p=>p.packageAdoption?.sources.map(f=>f.packageName)??[])),n=t.packageAdoption.sources.filter(p=>!r.has(p.packageName)),o=Cl({packageJson:e.packageJson,remove:n}),a=Ut(e.projectManifest),i=Array.isArray(a.capabilities)?a.capabilities:[],s=Buffer.from(`${JSON.stringify({...a,capabilities:i.filter(p=>p.capabilityId!==e.release.capabilityId||p.version!==e.release.version)},null,2)}
34
+ `),c=e.endpointBindings.filter(p=>n.some(f=>f.registryId===p.registryId)),l=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(o)},{path:"pnpm-lock.yaml",kind:"replace",ownership:"owned-file",baseDigest:y(e.currentLockfile),desiredDigest:y(e.desiredLockfile)},...t.assets.map(p=>({path:p.path,kind:"remove",ownership:p.ownership??"owned-file",baseDigest:p.digest}))];return{plan:Pe({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(p=>({path:p.path,ownership:p.ownership??"owned-file",desiredDigest:p.digest})),verifiers:e.release.verifiers.map(p=>({id:p.id,kind:"file-digest"}))},changes:l,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:1,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(o),lockfilePreimage:{kind:"present",digest:y(e.currentLockfile)},desiredLockfileDigest:y(e.desiredLockfile),registryRevisions:t.packageAdoption.registryRevisions.map(p=>({...p})),endpointBindings:c.map(({registryId:p,registryConfigRevision:f,bindingDigest:u,expiresAt:m})=>({registryId:p,registryConfigRevision:f,bindingDigest:u,expiresAt:m})),sources:n.map(p=>({...p})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}}}),desiredContents:new Map([["project-capabilities.json",s],["package.json",o],["pnpm-lock.yaml",e.desiredLockfile]]),removedSources:n}}function Cm(e){let t=e.currentLock.capabilities.find(g=>g.capabilityId===e.release.capabilityId&&g.version===e.release.version);if(!t?.packageAdoption||e.topology.mode!=="pnpm-shared-lockfile")throw new Y("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(g=>g!==t).flatMap(g=>g.packageAdoption?.sources.map(h=>h.packageName)??[])),n=t.packageAdoption.sources.filter(g=>!r.has(g.packageName)),o=Tl({packageJson:e.packageJson,remove:n}),a=e.remainingSources.map(({registryId:g,packageName:h,version:w,integrity:_})=>({registryId:g,packageName:h,version:w,integrity:_})),i={mode:e.topology.mode,unitRelativeRoot:e.topology.unitRelativeRoot,unitImporterId:e.topology.unitImporterId,lockfilePath:e.topology.lockfilePath,...e.topology.workspaceManifestPath?{workspaceManifestPath:e.topology.workspaceManifestPath,workspaceManifestDigest:e.topology.workspaceManifestDigest}:{}},s=Sl(e.resolutionEvidence,{requestDigest:Ao({schemaVersion:1,pnpmVersion:"11.21.0",topology:i,currentLockfileDigest:y(e.currentLockfile),desiredPackageJsonDigest:y(o),sources:a,preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:h})=>({importerId:g,preimageDigest:h}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:y(o),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:h})=>({importerId:g,preimageDigest:h})),managedSources:a,now:e.generatedAt}),c=Ut(e.projectManifest),l=Array.isArray(c.capabilities)?c.capabilities:[],d=Buffer.from(`${JSON.stringify({...c,capabilities:l.filter(g=>g.capabilityId!==e.release.capabilityId||g.version!==e.release.version)},null,2)}
35
+ `),p=g=>`${e.topology.unitRelativeRoot}/${g}`,f=e.endpointBindings.filter(g=>n.some(h=>h.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(d)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(o)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:y(e.currentLockfile),desiredDigest:s.desiredLockDigest},...t.assets.map(g=>({path:p(g.path),kind:"remove",ownership:g.ownership??"owned-file",baseDigest:g.digest}))];return{plan:Pe({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(g=>({path:g.path,ownership:g.ownership??"owned-file",desiredDigest:g.digest})),verifiers:e.release.verifiers.map(g=>({id:g.id,kind:"file-digest"}))},changes:u,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:2,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(o),lockfilePreimage:{kind:"present",digest:y(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:f.map(({registryId:g,registryConfigRevision:h,bindingDigest:w,expiresAt:_})=>({registryId:g,registryConfigRevision:h,bindingDigest:w,expiresAt:_})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:i,preservedDependencies:ii(Ut(o),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[p("project-capabilities.json"),d],[p("package.json"),o],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function si(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",o=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!o)||e.release.packageSources.length===0)throw new Y("PACKAGE_SOURCE_NOT_FOUND");let a=Ut(e.packageJson),i=e.desiredBasePackageJson??e.packageJson,s=Ut(i),c="topology"in e,l=c?ii(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||oi(a),c||oi(s);let d=new Map(e.registryConfigs.map(I=>{let R=_o(I);return[R.registryId,R]})),p=new Map(e.endpointBindings.map(I=>{let R=d.get(I.registryId);if(R===void 0)throw new Y("PACKAGE_SOURCE_NOT_FOUND");let D=Pm(I,R);return[D.registryId,D]})),f=new Map(e.receipts.map(I=>{let R=Nm(I);return[R.receiptId,R]})),u=new Map(e.inspections.map(I=>[`${I.registryId}:${I.packageName}@${I.version}`,I])),m=new Map(e.release.packageSources.map(I=>[I.packageName,I])),g=c?Sl(e.resolutionEvidence,{requestDigest:Ao({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:y(e.currentLockfile),desiredPackageJsonDigest:y(Eo({release:e.release,packageJson:i})),sources:e.release.packageSources.map(({registryId:I,packageName:R,version:D,integrity:C})=>({registryId:I,packageName:R,version:D,integrity:C})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:y(Eo({release:e.release,packageJson:i})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R})),managedSources:e.release.packageSources.map(({registryId:I,packageName:R,version:D,integrity:C})=>({registryId:I,packageName:R,version:D,integrity:C})),now:e.generatedAt}):void 0,h=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:R,version:D,integrity:C})=>({registryId:I,packageName:R,version:D,integrity:C}))}:e.lockResolution;if(h.lockfile.byteLength===0||h.packages.length!==e.release.packageSources.length)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${h.packages.length}/${e.release.packageSources.length}`)});let w=new Map(h.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let R=d.get(I.registryId),D=p.get(I.registryId),C=f.get(I.deliveryReceiptId),ce=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(C!==void 0&&(t==="production"&&C.provenance==="development-readback-verified"||t==="development"&&C.provenance!=="development-readback-verified"))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");if(!R||!D||Date.parse(D.expiresAt)<=Date.parse(e.expiresAt)||R.status!=="enabled"||!R.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!C||!ce||!$)throw new Y("PACKAGE_SOURCE_NOT_FOUND");if(C.registryId!==I.registryId||C.registryConfigRevision!==R.revision||C.packageName!==I.packageName||C.version!==I.version||C.integrity!==I.integrity||C.tarballDigest!==I.tarballDigest||ce.integrity!==I.integrity||ce.tarballDigest!==I.tarballDigest||ce.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new Y("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!ni.test(I.version)||ce.lifecycleScripts.length>0)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,H]of Object.entries(ce.dependencies)){let ae=m.get(P);if(P.startsWith("@aipt/")&&(!ae||ae.version!==H||!ni.test(H)))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${H}`)});if(jm.test(H))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}}let _=c?Eo({release:e.release,packageJson:i}):$l({release:e.release,packageJson:i}),v={schemaVersion:c?2:1,sourceChannel:t,capabilityId:e.release.capabilityId,capabilityVersion:e.release.version,capabilityIntegrity:e.release.integrity,consumerProfile:e.consumerProfile,generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(_),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:y(e.currentLockfile)}),desiredLockfileDigest:y(h.lockfile),registryRevisions:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,revision:R})=>Object.freeze({registryId:I,revision:R})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:R,bindingDigest:D,expiresAt:C})=>Object.freeze({registryId:I,registryConfigRevision:R,bindingDigest:D,expiresAt:C})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),sources:Object.freeze(e.release.packageSources.map(I=>Object.freeze({...I}))),installPolicy:Object.freeze({ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}),...c?{topology:Object.freeze({...e.topology}),preservedDependencies:Object.freeze(l.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},A=y(jl(v));return Object.freeze({...v,planId:A,desiredPackageJson:_,desiredLockfile:h.lockfile})}function ci(e){return si(e,"production")}function li(e){return si(e,"development")}function di(e){return si(e,"production")}function pi(e){return si(e,"development")}function pA(e){let t=e.packageAdoption;if(t===void 0)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let r=t.schemaVersion===2&&t.topology.mode==="pnpm-shared-lockfile"?`${t.topology.unitRelativeRoot}/package.json`:"package.json",n=t.schemaVersion===2?t.topology.lockfilePath:"pnpm-lock.yaml",o=e.operations.filter(({path:d})=>d===r),a=e.operations.filter(({path:d})=>d===n);if(o.length!==1||a.length!==1)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let i=o[0],s=a[0],c=i.kind==="replace"&&i.baseDigest===t.packageJsonPreimageDigest&&i.desiredDigest===t.desiredPackageJsonDigest&&i.disposition==="ready",l=s.kind===(t.lockfilePreimage.kind==="absent"?"create":"replace")&&(t.lockfilePreimage.kind==="absent"?s.baseDigest===void 0:s.baseDigest===t.lockfilePreimage.digest)&&s.desiredDigest===t.desiredLockfileDigest&&s.disposition==="ready";if(!c||!l)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}async function Tm(e){pA(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await nr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await or(r);return t=!0,await e.packageManager.install({projectRoot:e.projectRoot,plan:e.plan}),await e.packageManager.verify({projectRoot:e.projectRoot,plan:e.plan}),n}catch(r){if(t){await ll({projectRoot:e.projectRoot,planId:e.plan.planId,now:new Date().toISOString(),failureCode:"PACKAGE_INSTALL_FAILED"});try{await e.packageManager.restore({projectRoot:e.projectRoot,plan:e.plan})}catch(n){throw new Y("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var Mm=Wr(kr(),1);var Um=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],Fm="^[a-z0-9][a-z0-9._-]{0,127}$",Ll="^[A-Z][A-Z0-9_]{0,127}$",Lm="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",uA={$id:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",type:"object",additionalProperties:!1,required:["$schema","schemaVersion","kind","application","configDirectory","bindings"],properties:{$schema:{const:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json"},schemaVersion:{const:1},kind:{const:"ApplicationConfigContract"},application:{type:"object",additionalProperties:!1,required:["id","profile"],properties:{id:{type:"string",pattern:Fm},profile:{enum:Um}}},configDirectory:{type:"object",additionalProperties:!1,required:["rootEnvironmentVariable","relativeDirectory","environmentFile","materializationOwner"],properties:{rootEnvironmentVariable:{const:"IDP_CONFIG_DIR"},relativeDirectory:{type:"string",pattern:"^applications/[a-z0-9][a-z0-9._-]{0,127}$"},environmentFile:{const:".env"},materializationOwner:{const:"external-deployment-control-plane"}}},bindings:{type:"array",maxItems:128,items:{oneOf:[{type:"object",additionalProperties:!1,required:["name","kind","required"],properties:{name:{type:"string",pattern:Ll},kind:{const:"value"},required:{type:"boolean"},default:{type:"string",maxLength:1024}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Ll},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:Lm}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Ll},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:Lm}}}]}}}},xm=new Mm.Ajv2020({allErrors:!0,strict:!0}).compile(uA),Vm=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,fA=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,Xe=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function qm(e){let t=X(e),r=t.profile?.id;if(!Um.includes(r))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},o=n.name;if(Object.keys(n).length!==1||typeof o!="string"||!new RegExp(Fm,"u").test(o))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:o,profile:r}}function xl(e,t){if(!xm(e))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",xm.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,o=new Set;for(let a of r.bindings){if(n.has(a.name))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${a.name}`);if(n.add(a.name),a.kind==="value"){if(Vm.test(a.name))throw new Xe("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${a.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!a.name.endsWith("_FILE"))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${a.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let i=a.kind==="secret-file"?"secrets/":"certs/";if(a.kind==="certificate-file"&&(Vm.test(a.name)||fA.test(a.name)))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${a.name} \u5305\u542B\u79C1\u5BC6\u6750\u6599\u8BED\u4E49\uFF0C\u5FC5\u987B\u4F7F\u7528 secret-file \u5E76\u653E\u5165 secrets/\uFF1Bcertificate-file \u53EA\u5141\u8BB8\u516C\u5F00\u8BC1\u4E66\u3002`);let s=a.file.split("/");if(!a.file.startsWith(i)||s.some(c=>c===""||c==="."||c===".."))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${a.name} \u5FC5\u987B\u4F4D\u4E8E ${i} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(o.has(a.file))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${a.file}`);o.add(a.file)}if(t!==void 0){let a=qm(t);if(r.application.id!==a.id||r.application.profile!==a.profile)throw new Xe("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function ui(e){let t=qm(e),r=t.profile==="workspace-web-application"?[]:[{name:"PORT",kind:"value",required:!1,default:"3000"}],n={$schema:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",schemaVersion:1,kind:"ApplicationConfigContract",application:t,configDirectory:{rootEnvironmentVariable:"IDP_CONFIG_DIR",relativeDirectory:`applications/${t.id}`,environmentFile:".env",materializationOwner:"external-deployment-control-plane"},bindings:r};return xl(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
36
+ `)}import{createHash as mA,X509Certificate as gA}from"node:crypto";import{lstat as Vl,readFile as xr,realpath as Bm}from"node:fs/promises";import ge from"node:path";var ve=class extends Error{code;constructor(t,r){super(r),this.code=t}};function Gm(e){let t=X(e),r=t.profile?.parameters?.name;if(typeof r!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(r))throw new ve("APPLICATION_CONFIG_BINDING_IDENTITY_INVALID","\u9879\u76EE\u7F3A\u5C11\u5408\u6CD5Application identity\u3002");return{id:r,profile:t.profile.id}}function fi(e){let t=Gm(e);return Buffer.from(`${JSON.stringify({$schema:"https://schemas.dyyto.dev/platform/application-config-binding-v1.json",schemaVersion:1,kind:"ApplicationConfigBinding",application:t,environment:{name:"local"},configDirectory:{rootEnvironmentVariable:"APP_CONFIG_DIR",scope:"application-environment"},contract:{path:"config/application-config.json"},materializationOwner:"external-deployment-control-plane"},null,2)}
37
+ `)}function hA(e,t){let r=e;if(r?.$schema!=="https://schemas.dyyto.dev/platform/application-config-binding-v1.json"||r.schemaVersion!==1||r.kind!=="ApplicationConfigBinding"||r.environment?.name!=="local"||r.configDirectory?.rootEnvironmentVariable!=="APP_CONFIG_DIR"||r.configDirectory.scope!=="application-environment"||r.contract?.path!=="config/application-config.json"||r.materializationOwner!=="external-deployment-control-plane")throw new ve("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u4E0D\u7B26\u5408v1\u5408\u540C\u3002");if(!r.application||typeof r.application.id!="string"||typeof r.application.profile!="string")throw new ve("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=Gm(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new ve("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function yA(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let o=n.trim();if(!o||o.startsWith("#"))continue;let a=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(o),i=a?.[1],s=a?.[2];if(!i||s===void 0||i in t)throw new ve("APPLICATION_CONFIG_ENV_INVALID",`.env:${r+1}\u683C\u5F0F\u65E0\u6548\u6216\u53D8\u91CF\u91CD\u590D\u3002`);t[i]=s.trim().replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/u,"$1$2")}return t}function zm(e){return`sha256:${mA("sha256").update(e).digest("hex")}`}function wA(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function Jm(e,t,r){let n=await Vl(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new ve("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}async function IA(e,t,r){let n=ge.dirname(e);for(;n!==ge.dirname(n);){try{if(JSON.parse(await xr(ge.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let a=ge.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(a))throw new ve("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return ge.join(ge.basename(n),a,r)}}catch(o){if(o instanceof ve)throw o}n=ge.dirname(n)}return ge.join(t,r)}async function vA(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!ge.isAbsolute(n))throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let a=await Vl(n).catch(()=>null);if(!a?.isFile()||a.isSymbolicLink()||a.nlink!==1||(a.mode&511&-385)!==0)throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let i=JSON.parse(await xr(n,"utf8"));if(i.schemaVersion!==1||!Array.isArray(i.projects))throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");let s=i.projects.filter(c=>typeof c.containerPath=="string"&&typeof c.configDirectory=="string"&&(e===c.containerPath||e.startsWith(`${c.containerPath}${ge.sep}`))).sort((c,l)=>l.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let o=r.APP_CONFIG_DIR;if(o){if(!ge.isAbsolute(o))throw new ve("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return ge.join(o,await IA(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function mi({projectRoot:e,environment:t=process.env}){let r=await Bm(ge.resolve(e)),[n,o,a]=await Promise.all([xr(ge.join(r,"project-capabilities.json")),xr(ge.join(r,".dyyto/application-config-binding.json")),xr(ge.join(r,"config/application-config.json"))]),i=JSON.parse(n.toString("utf8")),s=hA(JSON.parse(o.toString("utf8")),i),c=xl(JSON.parse(a.toString("utf8")),i),l=await vA(r,s.application.id,t);if(!l||!ge.isAbsolute(l))throw new ve("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await Bm(l),p=await Vl(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new ve("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=ge.relative(r,d);if(f===""||!f.startsWith("..")&&!ge.isAbsolute(f))throw new ve("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=ge.join(d,".env");await Jm(u,"\u5E94\u7528.env",c.bindings.length===0);let m=yA(await xr(u,"utf8")),g=[];for(let h of c.bindings){if(h.kind==="value"){let C=m[h.name]??"";g.push({name:h.name,kind:h.kind,required:h.required,configured:C.length>0,source:"APP_CONFIG_DIR",display:wA(C)});continue}if(m[h.name]!==h.file)throw new ve("APPLICATION_CONFIG_REFERENCE_CHANGED",`${h.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let _=ge.resolve(d,h.file),v=ge.relative(d,_);if(!v||v.startsWith("..")||ge.isAbsolute(v))throw new ve("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${h.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let A=await Jm(_,h.name,!h.required),I=await xr(_),R=I.length>0,D;if(R&&h.kind==="certificate-file")try{let C=new gA(I);D={subject:C.subject,issuer:C.issuer,validFrom:C.validFrom,validTo:C.validTo}}catch{throw new ve("APPLICATION_CERTIFICATE_INVALID",`${h.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:h.name,kind:h.kind,required:h.required,configured:R,source:"APP_CONFIG_DIR",display:R?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",...R?{fingerprint:zm(I),updatedAt:A.mtime.toISOString()}:{},...D?{certificate:D}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:zm(a),entries:g}}var Vr="project-capabilities.json",Wm=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function RA(e,t){if(!Wm.test(e)||!Wm.test(t))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade requires stable SemVer releases");let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let o=0;o<3;o+=1)if(r[o]!==n[o])return r[o]-n[o];return 0}async function _A(e,t){let r=Po.join(e,...t.split("/"));try{let n=await bA(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Managed upgrade target must be a regular file",t);return{path:t,exists:!0,digest:y(await gi(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function hi(e,t){let r=X(e),n=t.release,o=n.assets.find(i=>i.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&o?.renderer?.startsWith("npm-package-json-")===!0)return _l(sr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&o?.renderer==="react-component-package-json-v1")return Al(sr(r,n.consumerProfile));let a=t.contents.get("package.json");if(a===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");return a}async function Ml(e){let t=X(e.manifest),r=qe(e.currentLock),n=e.sourceRelease.release,o=e.targetRelease.release,a=t.capabilities.find(P=>P.capabilityId===n.capabilityId),i=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=o.capabilityId!==n.capabilityId&&o.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(a===void 0||i===void 0||a.capabilityId!==i.capabilityId||a.version!==i.version||n.capabilityId!==i.capabilityId||n.version!==i.version||n.integrity!==i.integrity||!s&&o.capabilityId!==i.capabilityId||o.consumerProfile!==i.consumerProfile||n.consumerProfile!==o.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&RA(o.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await kA(Po.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:o.capabilityId,version:o.version}:P)},d=new Map(e.targetRelease.contents);o.assets.some(P=>P.path==="package.json")&&d.set("package.json",hi(l,e.targetRelease));for(let P of o.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,ui(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,fi(l));let p,f=c,u="package.json",m;if(o.schemaVersion===2&&o.availability.maturity!=="withdrawn"&&(o.packageSources?.length??0)>0){if(e.packageSource===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile transition requires verified Package Source facts");let P=d.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let H=await gi(Po.join(c,"package.json")),ae=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=ae.transactionRoot,u=ae.mode==="pnpm-shared-lockfile"?`${ae.unitRelativeRoot}/package.json`:"package.json",m=ae.lockfilePath;let rt={release:o,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:o.consumerProfile,packageJson:H,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ft=ae.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?pi:di)({...rt,topology:{mode:ae.mode,unitRelativeRoot:ae.unitRelativeRoot,unitImporterId:ae.unitImporterId,lockfilePath:ae.lockfilePath,workspaceManifestPath:ae.workspaceManifestPath,workspaceManifestDigest:ae.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?li:ci)({...rt,lockResolution:e.packageSource.lockResolution});p=ai(ft),d.set("package.json",ft.desiredPackageJson),d.set(m,ft.desiredLockfile)}catch(ft){throw ft instanceof Y?new M("CONSUMER_PROFILE_UNSUPPORTED",ft.code):ft}}let g=new Map(i.assets.filter(P=>P.path!==Vr).map(P=>[P.path,P.digest])),h=new Map(o.assets.filter(P=>P.path!==Vr).map(P=>{let H=d.get(P.path);if(H===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,y(H)]})),w=[...new Set([...g.keys(),...h.keys()])].sort(),_=[],v=[];for(let P of w){let H=await _A(c,P);_.push(H);let ae=g.get(P),rt=h.get(P),ft=o.assets.find(cy=>cy.path===P);if(ft?.ownership==="seed-file"&&H.exists&&H.digest!==void 0){h.set(P,H.digest),d.set(P,await gi(Po.join(c,...P.split("/")))),v.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:H.digest,desiredDigest:H.digest});continue}if(ae===void 0){if(rt===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);v.push({path:P,kind:"create",ownership:ft?.ownership??"owned-file",desiredDigest:rt})}else rt===void 0?v.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:ae}):v.push({path:P,kind:"replace",ownership:ft?.ownership??"owned-file",baseDigest:ae,desiredDigest:rt})}if(p!==void 0&&m!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let H=d.get(m);_.push({path:m,exists:!0,digest:y(P)}),v.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:y(P),desiredDigest:y(H)})}let A=await gi(Po.join(c,Vr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
38
+ `);_.push({path:Vr,exists:!0,digest:y(A)}),v.push({path:Vr,kind:"replace",ownership:"owned-file",baseDigest:y(A),desiredDigest:y(I)});let R={schemaVersion:1,capabilityId:o.capabilityId,version:o.version,integrity:o.integrity,assets:o.assets.filter(P=>P.path!==Vr).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:h.get(P.path)})),verifiers:o.verifiers.map(({id:P})=>({id:P,kind:"command"}))},D=f===c?v:v.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),C=f===c?_:_.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),ce=Pe({action:"upgrade",capability:R,changes:D,observedAssets:C,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...p===void 0?{}:{packageAdoption:p}});d.set(Vr,I);let $=new Map;for(let P of ce.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let H=f===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,ae=P.path===m?P.path:P.path.startsWith(H)?P.path.slice(H.length):P.path,rt=d.get(ae);if(rt===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",P.path);$.set(P.path,rt)}return{sourceLock:r,targetManifest:l,release:e.targetRelease,plan:ce,desiredContents:$,transactionRoot:f}}import{link as AA,mkdir as EA,open as Km,readFile as bt,readdir as PA,realpath as kt,rm as NA,unlink as OA}from"node:fs/promises";import ue from"node:path";var S=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function Oe(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function Ym(e){return y(b(e))}function zl(e){if(!Oe(e.project.lockDigest)||!Oe(e.project.appliedPlanId)||!Oe(e.artifact.digest))throw new S("DELIVERY_PRECONDITION_FAILED","Delivery identities must use canonical SHA-256 digests");if(Date.parse(e.expiresAt)<=Date.parse(e.createdAt)||Number.isNaN(Date.parse(e.createdAt)))throw new S("DELIVERY_PRECONDITION_FAILED","Delivery plan expiry must follow creation time");if(e.kind==="npm-publish"&&(e.artifact.type!=="npm-package"||e.target.adapterId!=="registry.npmjs"||e.risk!=="irreversible-publish")||e.kind==="application-deploy"&&(e.artifact.type!=="node-application"&&e.artifact.type!=="web-application"||e.target.adapterId!=="deployment.local-docker"||e.risk!=="local-reversible-deployment")||e.kind==="artifact-publication"&&(e.artifact.type!=="published-package"||e.target.adapterId!=="publication.offline-web"&&e.target.adapterId!=="publication.hosted-static"||(e.target.adapterId==="publication.offline-web"?e.risk!=="local-reversible-publication":e.risk!=="external-reversible-publication"))||e.kind==="hosted-static"&&(e.artifact.type!=="web-bundle"||e.target.adapterId!=="publication.hosted-static"||e.risk!=="external-reversible-publication"))throw new S("DELIVERY_PROJECT_UNSUPPORTED","Delivery kind, artifact, target, and risk must be compatible");if(e.kind==="npm-publish"&&e.publication!==void 0){let r=e.publication,n=r.execution;if(r.mode!=="staged"||r.access!=="public"||r.authentication!=="trusted-publishing"||r.trustedAction!=="stage-only"||r.provenance!=="required"||!/^[a-z0-9][a-z0-9._-]*$/.test(r.tag)||n?.provider!=="github-actions"&&n?.provider!=="gitlab-ci"||!n.repository||!n.workflow||!n.ref||Object.values(n).some(o=>typeof o!="string"||o.length>512||/[\u0000-\u001f\u007f]/.test(o)))throw new S("DELIVERY_PRECONDITION_FAILED","npm publication policy is invalid")}if(e.kind!=="npm-publish"&&e.publication!==void 0)throw new S("DELIVERY_PRECONDITION_FAILED","Publication policy is only valid for npm delivery");let t={schemaVersion:e.kind==="npm-publish"&&e.publication!==void 0?2:1,...e,state:"reviewable"};return{...t,planId:Ym(t)}}function Ul(e){let t=e;if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.state!=="reviewable")throw new S("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");if(t.schemaVersion===2&&(t.kind!=="npm-publish"||t.publication===void 0)||t.schemaVersion===1&&t.publication!==void 0)throw new S("DELIVERY_PRECONDITION_FAILED","Delivery Plan schema and publication policy do not match");let{planId:r,...n}=t;if(Ym(n)!==r)throw new S("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return zl({kind:t.kind,project:t.project,artifact:t.artifact,target:t.target,risk:t.risk,createdAt:t.createdAt,expiresAt:t.expiresAt,...t.publication===void 0?{}:{publication:t.publication}})}function Hm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.createdAt)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Record identities are invalid");let t={schemaVersion:1,...e,status:"registry-accepted"};return{...t,recordId:y(b(t))}}function Xm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||Number.isNaN(Date.parse(e.startedAt)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record identities are invalid");let t={schemaVersion:1,...e,status:"remote-write-started"};return{...t,recordId:y(b(t))}}function yi(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==y(b(n)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function Fl(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==y(b(n)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function Zm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.reviewedAt)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record identities are invalid");let t={schemaVersion:1,...e,status:"artifact-digest-verified"};return{...t,recordId:y(b(t))}}function ql(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==y(b(n)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function wi(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||e.externalIdentity.length===0)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Receipt identities are invalid");if("npm"in e){let r=e.npm;if(e.adapterId!=="registry.npmjs"||r===void 0||r.stageId.length===0||r.registry!=="https://registry.npmjs.org"||r.tarballDigest!==e.artifactDigest||r.access!=="public"||!/^[a-z0-9][a-z0-9._-]*$/.test(r.tag)||r.provenance!=="registry-attested"||!Oe(r.attestationUrlDigest))throw new S("DELIVERY_RECEIPT_INVALID","Verified npm Receipt facts are incomplete or inconsistent");let n={schemaVersion:2,...e,status:"verified"};return{...n,receiptId:y(b(n))}}if(e.kind==="npm-publish"||e.kind==="application-deploy"&&e.adapterId!=="deployment.local-docker"||e.kind==="artifact-publication"&&e.adapterId!=="publication.offline-web"&&e.adapterId!=="publication.hosted-static"||e.kind==="hosted-static"&&(e.adapterId!=="publication.hosted-static"||e.details.renderMode!=="csr"))throw new S("DELIVERY_RECEIPT_INVALID","Application or artifact Delivery Receipt facts are invalid");let t={schemaVersion:1,...e,status:"verified"};return{...t,receiptId:y(b(t))}}function Bl(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==y(b(n)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Receipt is invalid or has been modified");let{receiptId:o,schemaVersion:a,status:i,...s}=t;return wi(s)}async function DA(e){let t=await Km(e,"r");try{await t.sync()}finally{await t.close()}}async function No(e,t){let r=ue.dirname(e);await EA(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,o=await Km(n,"wx",384);try{await o.writeFile(`${b(t)}
39
+ `,"utf8"),await o.sync()}finally{await o.close()}try{await AA(n,e),await OA(n),await DA(r)}catch(a){throw await NA(n,{force:!0}),a}}async function Qm(e){let t=await kt(ue.resolve(e.projectRoot)),r=Ul(e.plan),n=ue.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await No(n,r)}catch(o){if(o.code!=="EEXIST")throw o;if(b(Ul(JSON.parse(await bt(n,"utf8"))))!==b(r))throw new S("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Ft(e){if(!Oe(e.planId))throw new S("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await kt(ue.resolve(e.projectRoot));try{let r=Ul(JSON.parse(await bt(ue.join(t,".dyyto","delivery","plans",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan identity does not match its path");return r}catch(r){throw r.code==="ENOENT"?new S("DELIVERY_PLAN_NOT_FOUND","Delivery Plan was not found"):r}}async function Jl(e){let t=await kt(ue.resolve(e.projectRoot)),r=Bl(e.receipt),n=await Ft({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let a=await bn({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||a===null||r.npm.stageId!==a.stageId||r.npm.tarballDigest!==a.artifactDigest||r.npm.tag!==n.publication.tag||r.npm.access!==n.publication.access)throw new S("DELIVERY_RECEIPT_INVALID","Verified npm Receipt does not match its Plan and Stage Record")}let o=ue.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await No(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=Bl(JSON.parse(await bt(o,"utf8")));if(b(i)!==b(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return i}return r}async function vn(e){if(!Oe(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await kt(ue.resolve(e.projectRoot));try{let r=Bl(JSON.parse(await bt(ue.join(t,".dyyto","delivery","receipts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Receipt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function eg(e){let t=await kt(ue.resolve(e.projectRoot)),r=yi(e.record),n=await Ft({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let o=ue.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await No(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=yi(JSON.parse(await bt(o,"utf8")));if(b(i)!==b(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return i}return r}async function tg(e){if(!Oe(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await kt(ue.resolve(e.projectRoot));try{let r=yi(JSON.parse(await bt(ue.join(t,".dyyto","delivery","attempts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Attempt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function rg(e){let t=await kt(ue.resolve(e.projectRoot)),r=ue.join(t,".dyyto","delivery","attempts"),n;try{n=await PA(r)}catch(o){if(o.code==="ENOENT")return null;throw o}for(let o of n.sort()){if(!o.endsWith(".json"))continue;let a=yi(JSON.parse(await bt(ue.join(r,o),"utf8")));if((await Ft({projectRoot:t,planId:a.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([bn({projectRoot:t,planId:a.planId}),vn({projectRoot:t,planId:a.planId})]);if(s===null&&c===null)return a}return null}async function ng(e){let t=await kt(ue.resolve(e.projectRoot)),r=Fl(e.record),n=await Ft({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let o=ue.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await No(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=Fl(JSON.parse(await bt(o,"utf8")));if(b(i)!==b(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return i}return r}async function bn(e){if(!Oe(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await kt(ue.resolve(e.projectRoot));try{let r=Fl(JSON.parse(await bt(ue.join(t,".dyyto","delivery","stages",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function og(e){let t=await kt(ue.resolve(e.projectRoot)),r=ql(e.record),n=await bn({projectRoot:t,planId:r.planId});if(n===null||r.stageId!==n.stageId||r.artifactDigest!==n.artifactDigest)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record does not match its immutable Stage Record");let o=ue.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await No(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=ql(JSON.parse(await bt(o,"utf8")));if(b(i)!==b(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return i}return r}async function ag(e){if(!Oe(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await kt(ue.resolve(e.projectRoot));try{let r=ql(JSON.parse(await bt(ue.join(t,".dyyto","delivery","stage-reviews",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage Review identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}import{readFile as Rg,readdir as gE}from"node:fs/promises";import Yl from"node:path";import{mkdir as Gl,open as ki,readFile as Do,readdir as Wl,rename as Ri,rm as vg}from"node:fs/promises";import he from"node:path";var SA=44;var ig="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",jA=new Uint8Array(64),cg=new Uint8Array(128);for(let e=0;e<ig.length;e++){let t=ig.charCodeAt(e);jA[e]=t,cg[t]=e}function Oo(e,t){let r=0,n=0,o=0;do{let i=e.next();o=cg[i],r|=(o&31)<<n,n+=5}while(o&32);let a=r&1;return r>>>=1,a&&(r=-2147483648|-r),t+r}function sg(e,t){return e.pos>=t?!1:e.peek()!==SA}var MS=1024*16;var $A=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:r}=this,n=t.indexOf(e,r);return n===-1?t.length:n}};function lg(e){let{length:t}=e,r=new $A(e),n=[],o=0,a=0,i=0,s=0,c=0;do{let l=r.indexOf(";"),d=[],p=!0,f=0;for(o=0;r.pos<l;){let u;o=Oo(r,o),o<f&&(p=!1),f=o,sg(r,l)?(a=Oo(r,a),i=Oo(r,i),s=Oo(r,s),sg(r,l)?(c=Oo(r,c),u=[o,a,i,s,c]):u=[o,a,i,s]):u=[o],d.push(u),r.pos++}p||CA(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function CA(e){e.sort(TA)}function TA(e,t){return e[0]-t[0]}var LA=/^[\w+.-]+:\/\//,xA=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,VA=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function MA(e){return LA.test(e)}function UA(e){return e.startsWith("//")}function ug(e){return e.startsWith("/")}function FA(e){return e.startsWith("file:")}function dg(e){return/^[.?#]/.test(e)}function Ii(e){let t=xA.exec(e);return fg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function qA(e){let t=VA.exec(e),r=t[2];return fg("file:","",t[1]||"","",ug(r)?r:"/"+r,t[3]||"",t[4]||"")}function fg(e,t,r,n,o,a,i){return{scheme:e,user:t,host:r,port:n,path:o,query:a,hash:i,type:7}}function pg(e){if(UA(e)){let r=Ii("http:"+e);return r.scheme="",r.type=6,r}if(ug(e)){let r=Ii("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(FA(e))return qA(e);if(MA(e))return Ii(e);let t=Ii("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function BA(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function zA(e,t){mg(t,t.type),e.path==="/"?e.path=t.path:e.path=BA(t.path)+e.path}function mg(e,t){let r=t<=4,n=e.path.split("/"),o=1,a=0,i=!1;for(let c=1;c<n.length;c++){let l=n[c];if(!l){i=!0;continue}if(i=!1,l!=="."){if(l===".."){a?(i=!0,a--,o--):r&&(n[o++]=l);continue}n[o++]=l,a++}}let s="";for(let c=1;c<o;c++)s+="/"+n[c];(!s||i&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function gg(e,t){if(!e&&!t)return"";let r=pg(e),n=r.type;if(t&&n!==7){let a=pg(t),i=a.type;switch(n){case 1:r.hash=a.hash;case 2:r.query=a.query;case 3:case 4:zA(r,a);case 5:r.user=a.user,r.host=a.host,r.port=a.port;case 6:r.scheme=a.scheme}i>n&&(n=i)}mg(r,n);let o=r.query+r.hash;switch(n){case 2:case 3:return o;case 4:{let a=r.path.slice(1);return a?dg(t||e)&&!dg(a)?"./"+a+o:a+o:o||"."}case 5:return r.path+o;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+o}}function JA(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function GA(e,t){let r=JA(e),n=t?t+"/":"";return o=>gg(n+(o||""),r)}var cr=0,WA=1,KA=2,YA=3,HA=4;function XA(e,t){let r=hg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=hg(e,n+1))e[n]=QA(e[n],t);return e}function hg(e,t){for(let r=t;r<e.length;r++)if(!ZA(e[r]))return r;return e.length}function ZA(e){for(let t=1;t<e.length;t++)if(e[t][cr]<e[t-1][cr])return!1;return!0}function QA(e,t){return t||(e=e.slice()),e.sort(eE)}function eE(e,t){return e[cr]-t[cr]}var bi=!1;function tE(e,t,r,n){for(;r<=n;){let o=r+(n-r>>1),a=e[o][cr]-t;if(a===0)return bi=!0,o;a<0?r=o+1:n=o-1}return bi=!1,r-1}function rE(e,t,r){for(let n=r+1;n<e.length&&e[n][cr]===t;r=n++);return r}function nE(e,t,r){for(let n=r-1;n>=0&&e[n][cr]===t;r=n--);return r}function oE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function aE(e,t,r,n){let{lastKey:o,lastNeedle:a,lastIndex:i}=r,s=0,c=e.length-1;if(n===o){if(t===a)return bi=i!==-1&&e[i][cr]===t,i;t>=a?s=i===-1?0:i:c=i}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=tE(e,t,s,c)}function iE(e){return typeof e=="string"?JSON.parse(e):e}var sE="`line` must be greater than 0 (lines start at line 1)",cE="`column` must be greater than or equal to 0 (columns start at column 0)",yg=-1,lE=1,wg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=iE(e),{version:o,file:a,names:i,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=o,this.file=a,this.names=i||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let d=GA(t,s);this.resolvedSources=c.map(d);let{mappings:p}=n;if(typeof p=="string")this._encoded=p,this._decoded=void 0;else if(Array.isArray(p))this._encoded=void 0,this._decoded=XA(p,r);else throw n.sections?new Error("TraceMap passed sectioned source map, please use FlattenMap export instead"):new Error(`invalid source map: ${JSON.stringify(n)}`);this._decodedMemo=oE(),this._bySources=void 0,this._bySourceMemos=void 0}};function dE(e){var t;return(t=e)._decoded||(t._decoded=lg(e._encoded))}function Ig(e,t){let{line:r,column:n,bias:o}=t;if(r--,r<0)throw new Error(sE);if(n<0)throw new Error(cE);let a=dE(e);if(r>=a.length)return vi(null,null,null,null);let i=a[r],s=pE(i,e._decodedMemo,r,n,o||lE);if(s===-1)return vi(null,null,null,null);let c=i[s];if(c.length===1)return vi(null,null,null,null);let{names:l,resolvedSources:d}=e;return vi(d[c[WA]],c[KA]+1,c[YA],c.length===5?l[c[HA]]:null)}function vi(e,t,r,n){return{source:e,line:t,column:r,name:n}}function pE(e,t,r,n,o){let a=aE(e,n,t,r);return bi?a=(o===yg?rE:nE)(e,n,a):o===yg&&a++,a===-1||a===e.length?-1:a}var oe=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},Kl=/^sha256:[a-f0-9]{64}$/,bg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,uE=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,_i=(e,t)=>Object.keys(e).every(r=>t.includes(r)),So=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),kn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function kg(e,t){if(t.releaseId===void 0&&t.deploymentId===void 0)return"unknown";if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(t.applicationId))throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=he.join(he.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Ft({projectRoot:r,planId:t.deploymentId}),o=await vn({projectRoot:r,planId:n.planId});if(o===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||o.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await Wl(he.join(he.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function fE(e){if(!So(e)||!_i(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!So(e.error)||!So(e.page)||!_i(e.error,["type","message","frames"])||!_i(e.page,["origin","path"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!bg.test(e.eventId)||typeof e.occurredAt!="string"||Number.isNaN(Date.parse(e.occurredAt))||typeof e.applicationId!="string"||e.applicationId.length<1||e.applicationId.length>128)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!Kl.test(n)))throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!uE.test(e.traceparent)))throw new oe("RUNTIME_ERROR_INVALID","traceparent is invalid");if(typeof e.error.type!="string"||typeof e.error.message!="string"||!Array.isArray(e.error.frames)||e.error.frames.length>50||typeof e.page.origin!="string"||typeof e.page.path!="string")throw new oe("RUNTIME_ERROR_INVALID","Runtime Error content is invalid");if(e.error.message.length>4096||e.error.type.length>256||e.page.path.length>2048)throw new oe("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!So(n)||!_i(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let o of[n.line,n.column])if(o!==void 0&&(!Number.isSafeInteger(o)||Number(o)<1))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page origin is invalid")}if(r.origin!==e.page.origin||!e.page.path.startsWith("/")||e.page.path.includes("?")||e.page.path.includes("#"))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function mE(e,t,r="unknown"){let n=e.error.frames.map(i=>({file:kn(i.file,2048),...i.line===void 0?{}:{line:i.line},...i.column===void 0?{}:{column:i.column},...i.function===void 0?{}:{function:kn(i.function,256)}})),o={type:kn(e.error.type,256),message:kn(e.error.message,4096),frames:n},a=y(b({type:o.type,message:o.message,frames:n.slice(0,5).map(({file:i,line:s,column:c})=>({file:i,line:s,column:c}))}));return{schemaVersion:1,eventId:e.eventId,occurredAt:e.occurredAt,receivedAt:t,applicationId:kn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:o,page:{origin:e.page.origin,path:kn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:a,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var qt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return he.join(he.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return he.join(he.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=fE(t);if(!r.allowedOrigins.includes(n.page.origin))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let o=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),a=mE(n,r.receivedAt,o);return this.#t(async()=>{let i=this.directory();await Gl(i,{recursive:!0,mode:448});let s=he.join(i,`${a.eventId}.json`);try{let f=JSON.parse(await Do(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(b({...u,receivedAt:a.receivedAt})!==b(a))throw new oe("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:a.eventId,state:u.state,duplicate:!0}}catch(f){if(f.code!=="ENOENT")throw f}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await ki(c,"wx",384);try{await l.writeFile(`${b(a)}
40
+ `,"utf8"),await l.sync()}finally{await l.close()}await Ri(c,s);let d=await ki(i,"r");try{await d.sync()}finally{await d.close()}await this.rotate(),a.releaseId!==void 0&&await this.resymbolicate(a.releaseId);let p=JSON.parse(await Do(s,"utf8"));return{eventId:a.eventId,state:p.state,duplicate:!1}})}#t(t){let r=this.#e.then(t,t);return this.#e=r.catch(()=>{}),r}async quarantine(t){let r=he.join(this.directory(),t),n=he.join(he.resolve(this.workspaceRoot),".dyyto","observability","quarantine");await Gl(n,{recursive:!0,mode:448}),await Ri(r,he.join(n,`${Date.now()}-${t}`))}async all(){let t=await Wl(this.directory()).catch(()=>[]),r=[];for(let n of t){if(!n.endsWith(".json")){n.includes(".tmp-")&&await this.quarantine(n).catch(()=>{});continue}try{let o=JSON.parse(await Do(he.join(this.directory(),n),"utf8"));if(o.eventId!==n.slice(0,-5))throw new Error("identity mismatch");r.push({...o,correlation:o.correlation??"unknown"})}catch{await this.quarantine(n).catch(()=>{})}}return r.sort((n,o)=>o.occurredAt.localeCompare(n.occurredAt)||n.eventId.localeCompare(o.eventId))}selected(t,r){return t.filter(n=>(!r.applicationId||n.applicationId===r.applicationId)&&(!r.releaseId||n.releaseId===r.releaseId)&&(!r.deploymentId||n.deploymentId===r.deploymentId))}cursor(t,r){let n=b({v:1,offset:t,snapshot:r});return Buffer.from(b({content:n,digest:y(n)})).toString("base64url")}parseCursor(t,r){try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));if(typeof n.content!="string"||n.digest!==y(n.content))throw new Error("tampered");let o=JSON.parse(n.content);if(o.v!==1||!Number.isSafeInteger(o.offset)||o.offset<0||o.snapshot!==r)throw new Error("expired");return o.offset}catch{throw new oe("OBSERVABILITY_CURSOR_EXPIRED","Runtime Error query cursor is invalid or expired")}}async list(t){let r=Math.max(1,Math.min(t.limit??100,100)),n=this.selected(await this.all(),t),o=y(b(n.map(s=>s.eventId))),a=t.cursor===void 0?0:this.parseCursor(t.cursor,o),i=n.slice(a,a+r);return{events:i,...a+i.length<n.length?{nextCursor:this.cursor(a+i.length,o)}:{}}}async get(t){if(!bg.test(t))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await Do(he.join(this.directory(),r),"utf8"));if(n.eventId!==t)throw new Error("identity mismatch");return{...n,correlation:n.correlation??"unknown"}}catch(n){if(n.code==="ENOENT")return null;throw await this.quarantine(r).catch(()=>{}),new oe("OBSERVABILITY_STORE_DAMAGED","Runtime Error record is damaged and has been quarantined")}}async summary(t){let r=this.selected(await this.all(),t),n=new Map;for(let o of r){let a=n.get(o.fingerprint);a?a.count+=1:n.set(o.fingerprint,{count:1,latestAt:o.occurredAt,event:o})}return{total:r.length,groups:[...n.entries()].map(([o,a])=>({fingerprint:o,...a}))}}async rotate(){let t=await this.all(),n=t.reduce((o,a)=>Math.max(o,Date.parse(a.receivedAt)),0)-10080*60*1e3;for(let o of t.slice(1e4))await vg(he.join(this.directory(),`${o.eventId}.json`),{force:!0});for(let o of t.slice(0,1e4))Date.parse(o.receivedAt)<n&&await vg(he.join(this.directory(),`${o.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!Kl.test(t.releaseId)||!Kl.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!So(t.map)||"sourcesContent"in t.map)throw new oe("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(b(t.map)),n=y(r),o=he.join(this.releases(),t.releaseId);await Gl(o,{recursive:!0,mode:448});let a=y(t.asset),i=he.join(o,`${a}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await ki(`${i}.tmp`,"w",384);try{await c.writeFile(`${b({registration:s,map:t.map})}
41
+ `),await c.sync()}finally{await c.close()}return await Ri(`${i}.tmp`,i),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await Wl(he.join(this.releases(),t)).catch(()=>[]),n=[];for(let o of r)try{n.push(JSON.parse(await Do(he.join(this.releases(),t,o),"utf8")))}catch{}for(let o of(await this.all()).filter(a=>a.releaseId===t&&a.state==="map-missing")){let a=!1,i=o.error.frames.map(d=>{let p=n.find(f=>new URL(d.file,"http://local").pathname.endsWith(`/${f.registration.asset}`));if(!p||d.line===void 0||d.column===void 0)return d;try{let f=Ig(new wg(p.map),{line:d.line,column:Math.max(0,d.column-1)});return f.source===null||f.line===null||f.column===null?d:(a=!0,{...d,source:f.source.replace(/^file:\/\//,""),sourceLine:f.line,sourceColumn:f.column+1})}catch{return d}});if(!a)continue;let s={...o,error:{...o.error,frames:i},state:"symbolicated"},c=he.join(this.directory(),`${o.eventId}.json`),l=await ki(`${c}.tmp`,"w",384);try{await l.writeFile(`${b(s)}
42
+ `),await l.sync()}finally{await l.close()}await Ri(`${c}.tmp`,c)}}};var Ze=(e,t,r,n,o)=>({code:e,severity:t,fact:r,message:n,...o===void 0?{}:{action:o}});async function jo(e){if(e.lock.capabilities.length===0||e.lock.capabilities.some(r=>r.evidenceIds.length===0))return[Ze("EVIDENCE_INVALID","critical","evidence","\u5DF2\u9A8C\u8BC1\u9501\u7F3A\u5C11\u5B8C\u6574\u8BC1\u636E\u5F15\u7528\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u4E8B\u52A1\u672A\u5B8C\u6210\uFF0C\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\u3002")];for(let r of e.lock.capabilities)for(let n of r.evidenceIds)try{let o=so(JSON.parse(await Rg(Yl.join(e.projectRoot,".dyyto","evidence",`${n}.json`),"utf8")));if(o.evidenceId!==n||o.capabilityId!==r.capabilityId||o.capabilityVersion!==r.version||o.capabilityIntegrity!==r.integrity||o.projectStateDigest!==r.projectStateDigest||o.result!=="passed")return[Ze("EVIDENCE_INVALID","critical","evidence","\u91C7\u7528\u8BC1\u636E\u4E0E\u5DF2\u9A8C\u8BC1\u9501\u7684\u8EAB\u4EFD\u6216\u5DE5\u7A0B\u72B6\u6001\u4E0D\u4E00\u81F4\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u73B0\u573A\u5DF2\u53D8\u5316\uFF0C\u5148\u68C0\u67E5\u5E76\u91CD\u65B0\u89C4\u5212\u3002")]}catch{return[Ze("EVIDENCE_INVALID","critical","evidence","\u91C7\u7528\u8BC1\u636E\u7F3A\u5931\u3001\u635F\u574F\u6216\u4E0D\u7B26\u5408\u5951\u7EA6\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u4E8B\u52A1\u672A\u5B8C\u6210\uFF0C\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\u3002")]}let t=e.lock.capabilities.reduce((r,n)=>r+n.evidenceIds.length,0);return[Ze("EVIDENCE_VALID","info","evidence",`\u5DF2\u6838\u9A8C ${e.lock.capabilities.length} \u9879\u80FD\u529B\u7684 ${t} \u6761\u91C7\u7528\u8BC1\u636E\u3002`)]}function Hl(e){return e==="adopted"?[]:e==="planned"?[Ze("ADOPTION_PLANNED","warning","lock","\u80FD\u529B\u91C7\u7528\u4ECD\u5904\u4E8E\u8BA1\u5212\u9636\u6BB5\u3002","\u5BA1\u9605\u5E76\u6279\u51C6\u7CBE\u786E Plan\u3002")]:e==="applied-unverified"?[Ze("VERIFICATION_REQUIRED","warning","evidence","\u53D8\u66F4\u5DF2\u5E94\u7528\u4F46\u5C1A\u672A\u5F62\u6210\u9A8C\u8BC1\u8BC1\u636E\u3002","\u8FD0\u884C\u9A8C\u8BC1\u5E76\u63D0\u4EA4\u91C7\u7528\u9501\u3002")]:e==="drifted"?[Ze("REPOSITORY_DRIFT","warning","repository","\u5DE5\u7A0B\u73B0\u573A\u4E0E\u5DF2\u9501\u5B9A\u4E8B\u5B9E\u4E0D\u4E00\u81F4\u3002","\u68C0\u67E5\u5DEE\u5F02\u5E76\u91CD\u65B0\u89C4\u5212\uFF0C\u5E73\u53F0\u4E0D\u4F1A\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002")]:e==="recovery-required"?[Ze("RECOVERY_REQUIRED","critical","recovery","\u68C0\u6D4B\u5230\u672A\u5B8C\u6210\u7684\u6301\u4E45\u5316\u4E8B\u52A1\u3002","\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\uFF0C\u518D\u7EE7\u7EED\u5176\u4ED6\u64CD\u4F5C\u3002")]:[Ze("FACT_INVALID","critical","manifest","\u5DE5\u7A0B\u5355\u5143\u4E8B\u5B9E\u65E0\u6CD5\u5B89\u5168\u8BFB\u53D6\u3002","\u4FEE\u590D\u8BE5\u5355\u5143\u7684 Manifest \u6216\u5143\u6570\u636E\u540E\u91CD\u65B0\u8BCA\u65AD\u3002")]}async function _g(e){try{let r=JSON.parse(await Rg(Yl.join(e.workspaceRoot,".dyyto","observability","config.json"),"utf8"));if(!Array.isArray(r.applications)||!r.applications.includes(e.applicationId))return[Ze("OBSERVABILITY_NOT_CONFIGURED","warning","repository","\u5F53\u524D Web \u5E94\u7528\u5C1A\u672A\u914D\u7F6E\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u3002","\u767B\u8BB0\u5E94\u7528 Origin\uFF0C\u5E76\u542F\u52A8\u672C\u5730\u91C7\u96C6\u7AEF\u3002")]}catch{return[Ze("OBSERVABILITY_NOT_CONFIGURED","warning","repository","\u5F53\u524D Web \u5E94\u7528\u5C1A\u672A\u914D\u7F6E\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u3002","\u767B\u8BB0\u5E94\u7528 Origin\uFF0C\u5E76\u542F\u52A8\u672C\u5730\u91C7\u96C6\u7AEF\u3002")]}await new qt(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await gE(Yl.join(e.workspaceRoot,".dyyto","observability","quarantine")).catch(()=>[])).length;return t>0?[Ze("OBSERVABILITY_STORE_DAMAGED","critical","repository",`\u8FD0\u884C\u65F6\u9519\u8BEF\u672C\u5730\u5B58\u50A8\u5DF2\u9694\u79BB ${t} \u6761\u635F\u574F\u8BB0\u5F55\uFF0C\u5065\u5EB7\u4E8B\u4EF6\u4ECD\u53EF\u67E5\u8BE2\u3002`,"\u68C0\u67E5\u672C\u673A\u78C1\u76D8\u72B6\u6001\uFF0C\u5E76\u663E\u5F0F\u5904\u7406\u9694\u79BB\u8BB0\u5F55\u3002")]:[Ze("OBSERVABILITY_CONFIGURED","info","repository","\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u914D\u7F6E\u4E0E\u672C\u5730\u5B58\u50A8\u53EF\u8BFB\u53D6\u3002")]}function Ag(e){let t=e.units.map(n=>{let o=n.findings.some(a=>a.severity==="critical")?"blocked":n.findings.some(a=>a.severity==="warning")?"attention":"healthy";return{...n,status:o}}),r={total:t.length,healthy:t.filter(n=>n.status==="healthy").length,attention:t.filter(n=>n.status==="attention").length,blocked:t.filter(n=>n.status==="blocked").length};return{schemaVersion:1,workspace:e.workspace,generatedAt:e.generatedAt,status:r.blocked>0?"blocked":r.attention>0?"attention":"healthy",summary:r,units:t}}import{readFile as $o,realpath as Eg}from"node:fs/promises";import Mr from"node:path";var ie=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function Pg(e){let t=await Eg(Mr.resolve(e.projectRoot)),r=X(e.manifest),n=e.release.release,o=e.currentLock.capabilities.find(f=>f.capabilityId===n.capabilityId&&f.version===n.version);if(!o||o.packageAdoption!==void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let a=X({...r,capabilities:r.capabilities.filter(f=>f.capabilityId!==n.capabilityId)}),i=Buffer.from(`${JSON.stringify(a,null,2)}
43
+ `),s=await Co(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:y(i)},...o.assets.map(f=>({path:f.path,kind:"remove",ownership:f.ownership??"owned-file",baseDigest:f.digest}))],l=await Promise.all(c.map(f=>Co(t,f.path))),d={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:o.assets.map(f=>({path:f.path,ownership:f.ownership??"owned-file",desiredDigest:f.digest})),verifiers:n.verifiers.map(f=>({id:f.id,kind:"file-digest"}))};return{plan:Pe({action:"remove",capability:d,changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),manifest:a,desiredContents:new Map([["project-capabilities.json",i]]),transactionRoot:t,removedSources:[]}}async function Co(e,t){try{let r=await $o(Mr.join(e,...t.split("/")));return{path:t,exists:!0,digest:y(r)}}catch(r){if(r.code==="ENOENT")return{path:t,exists:!1};throw r}}async function Xl(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await Eg(Mr.resolve(e.projectRoot)),r=X(e.manifest),n=e.release.release,o=e.packageSource?.topology,a=o?.transactionRoot??t,i=R=>o?.mode==="pnpm-shared-lockfile"?`${o.unitRelativeRoot}/${R}`:R;if(n.kind!=="engineering-feature"||n.consumerProfile!=="any-project")throw new ie("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(R=>R.capabilityId===n.capabilityId))throw new ie("CAPABILITY_ALREADY_SELECTED","The capability is already selected by this project");let s=r.profile?.id,c=s==="typescript-library"?"blank-typescript-library":s,l=n.dependencies?.profiles??[],d=e.currentLock.capabilities.find(R=>R.consumerProfile===c);if(c===void 0||!l.includes(c)||d===void 0)throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(R=>!r.capabilities.some(D=>D.capabilityId===R)||!e.currentLock.capabilities.some(D=>D.capabilityId===R)))throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","A required project capability is not adopted and verified");let f=X({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),u=i("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(f,null,2)}
44
+ `),g=await Co(a,u);if(!g.exists||g.digest===void 0)throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let h=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:y(m)}],w=new Map([[u,m]]),_;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let R;try{R=await $o(Mr.join(t,"package.json"))}catch{throw new ie("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let D=e.packageSource.currentLockfile??await $o(Mr.join(t,"pnpm-lock.yaml")).catch(ae=>ae.code==="ENOENT"?void 0:Promise.reject(ae)),C=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},ce=C.mode==="pnpm-shared-lockfile",$={mode:C.mode,unitRelativeRoot:C.unitRelativeRoot,unitImporterId:C.unitImporterId,lockfilePath:C.lockfilePath,...C.workspaceManifestPath?{workspaceManifestPath:C.workspaceManifestPath,workspaceManifestDigest:C.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(ce&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let H=ce?(e.packageChannel==="development"?pi:di)({release:n,...P,consumerProfile:c,packageJson:R,currentLockfile:D,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?li:ci)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:R,...D===void 0?{}:{currentLockfile:D},generatedAt:e.generatedAt,expiresAt:e.expiresAt});_=ai(H),h.push({path:i("package.json"),kind:"replace",ownership:"owned-file",baseDigest:H.packageJsonPreimageDigest,desiredDigest:H.desiredPackageJsonDigest}),w.set(i("package.json"),H.desiredPackageJson),h.push({path:C.lockfilePath,kind:D===void 0?"create":"replace",ownership:"owned-file",...D===void 0?{}:{baseDigest:y(D)},desiredDigest:H.desiredLockfileDigest}),w.set(C.lockfilePath,H.desiredLockfile)}catch(D){throw D instanceof Y?new ie("CAPABILITY_PACKAGE_SOURCE_INVALID",D.code):D}}for(let R of n.assets){let D=e.release.contents.get(R.path);if(D===void 0)throw new ie("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let C=R.renderer==="application-config-contract-v1"?ui(r):R.renderer==="application-config-binding-v1"?fi(r):D;if(R.ownership==="managed-region"){if(R.regionId===void 0)throw new ie("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let ce;try{ce=await $o(Mr.join(t,...R.path.split("/")))}catch{throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(qf({source:ce.toString("utf8"),regionId:R.regionId,content:Buffer.from(C).toString("utf8")}));h.push({path:i(R.path),kind:"merge",ownership:"managed-region",regionId:R.regionId,baseDigest:y(ce),desiredDigest:y($)}),w.set(i(R.path),$)}else{let ce=await Co(t,R.path);if(R.ownership==="seed-file"&&ce.exists){let $=await $o(Mr.join(t,...R.path.split("/")));h.push({path:i(R.path),kind:"create",ownership:"seed-file",desiredDigest:y($)}),w.set(i(R.path),$)}else h.push({path:i(R.path),kind:"create",ownership:R.ownership,desiredDigest:y(C)}),w.set(i(R.path),C)}}let v=await Promise.all(h.map(R=>Co(a,R.path))),A={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:h.filter(R=>R.path!==u&&R.path!==o?.lockfilePath).map(R=>({path:o?.mode==="pnpm-shared-lockfile"?R.path.slice(o.unitRelativeRoot.length+1):R.path,ownership:R.ownership,desiredDigest:R.desiredDigest})),verifiers:n.verifiers.map(R=>({id:R.id,kind:"file-digest"}))};return{plan:Pe({action:"adopt",capability:A,changes:h,observedAssets:v,generatedAt:e.generatedAt,expiresAt:e.expiresAt,..._===void 0?{}:{packageAdoption:_}}),manifest:f,desiredContents:w,transactionRoot:a,dependency:{profile:c,satisfied:!0}}}var Ng=Wr(kr(),1);var hE={$id:"https://schemas.dyyto.dev/platform/solution-catalog-entry-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","solutionId","version","integrity","title","summary","maturity","members","integration","exit"],properties:{schemaVersion:{const:1},solutionId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:At},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},maturity:{enum:["guided","automated"]},members:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","role","required"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},role:{type:"string",minLength:1,maxLength:80},required:{type:"boolean"}}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","steps","verification","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},steps:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["label","command"],properties:{label:{type:"string",minLength:1,maxLength:80},command:{type:"string",minLength:1,maxLength:2e3}}}},verification:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:1e3}},result:{type:"string",minLength:1,maxLength:400}}},exit:{type:"object",additionalProperties:!1,required:["summary"],properties:{summary:{type:"string",minLength:1,maxLength:400}}}}},yj=new Ng.Ajv2020({allErrors:!0,strict:!0}).compile(hE);var $g=Wr(kr(),1);import{readFile as yE,realpath as wE}from"node:fs/promises";import Og from"node:path";var Dg="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",Sg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",IE={$id:"https://schemas.dyyto.dev/platform/example-recipe-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","recipeId","version","integrity","title","locale","rootProfile","capabilities","expectedEntrypoint","verifiers","manualAcceptance","cleanup"],properties:{schemaVersion:{const:1},recipeId:{type:"string",pattern:Dg},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:At},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128}}},capabilities:{type:"array",minItems:1,maxItems:16,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","channel"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:Sg,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:Dg}},manualAcceptance:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:240}},cleanup:{type:"object",additionalProperties:!1,required:["ownedStateDirectories"],properties:{ownedStateDirectories:{type:"array",maxItems:8,uniqueItems:!0,items:{type:"string",pattern:Sg,maxLength:240}}}}}},jg=new $g.Ajv2020({allErrors:!0,strict:!0}).compile(IE),Ur=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function vE(e){return y(b(e))}function bE(e){if(!jg(e))throw new Ur("EXAMPLE_RECIPE_INVALID",jg.errors??[]);let t=e,r=[t.rootProfile.capabilityId,...t.capabilities.map(n=>n.capabilityId)];if(new Set(r).size!==r.length||t.capabilities.some(n=>n.version.includes("workspace:")||n.capabilityId.includes("ai-education-poc")))throw new Ur("EXAMPLE_RECIPE_INVALID");return t}async function Cg(e){let t=await wE(Og.resolve(e)),r;try{r=bE(JSON.parse(await yE(Og.join(t,"recipe.json"),"utf8")))}catch(a){throw a instanceof Ur?a:new Ur("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...o}=r;if(vE(o)!==n)throw new Ur("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var xg=Wr(kr(),1);import{readFile as kE,realpath as RE}from"node:fs/promises";import Tg from"node:path";var _E={$id:"https://schemas.dyyto.dev/platform/engineering-template-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","templateId","version","integrity","title","summary","status","profile","parameters","commands","technology","support","integration","metrics"],properties:{schemaVersion:{const:1},templateId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:At},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},status:{enum:["candidate","recommended","deprecated"]},profile:{type:"object",additionalProperties:!1,required:["id","capability"],properties:{id:{type:"string",pattern:Z},capability:{type:"string",pattern:`${Z.slice(1,-1)}@[0-9]+\\.[0-9]+\\.[0-9]+$`}}},parameters:{type:"array",minItems:0,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","required","description"],properties:{id:{type:"string",pattern:"^[a-z][A-Za-z0-9]*$"},required:{type:"boolean"},description:{type:"string",minLength:1,maxLength:160}}}},commands:{type:"object",minProperties:1,additionalProperties:!1,properties:{dev:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},build:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},test:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},package:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"}}},technology:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","version","policy","verifiedAt","rationale","alternative","exit"],properties:{id:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:64},policy:{enum:["recommended","allowed"]},verifiedAt:{type:"string",format:"date"},rationale:{type:"string",minLength:1,maxLength:240},alternative:{type:"string",minLength:1,maxLength:160},exit:{type:"string",minLength:1,maxLength:240}}}},support:{type:"object",additionalProperties:!1,required:["owner","tier","supportedFrom","supportedUntil","upgradeCadence","eolNoticeDays"],properties:{owner:{type:"string",pattern:Z},tier:{const:"production"},supportedFrom:{type:"string",format:"date"},supportedUntil:{type:"string",format:"date"},upgradeCadence:{type:"string",minLength:1,maxLength:80},eolNoticeDays:{type:"integer",minimum:30,maximum:730}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","createCommand","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},createCommand:{type:"string",minLength:1,maxLength:2e3},result:{type:"string",minLength:1,maxLength:400}}},metrics:{type:"array",minItems:1,uniqueItems:!0,items:{enum:["time-to-green-build","time-to-first-business-commit","manual-engineering-edits","upgrade-conflicts"]}}}},Lg=new xg.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(_E),Bt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function AE(e){return y(b(e))}function EE(e){if(!Lg(e))throw new Bt("TEMPLATE_INVALID",Lg.errors??[]);let t=e;if(new Set(t.parameters.map(r=>r.id)).size!==t.parameters.length||new Set(t.technology.map(r=>r.id)).size!==t.technology.length)throw new Bt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Bt("TEMPLATE_INVALID");return t}async function To(e,t=new Date){let r=await RE(Tg.resolve(e)),n;try{n=EE(JSON.parse(await kE(Tg.join(r,"template.json"),"utf8")))}catch(i){throw i instanceof Bt?i:new Bt("TEMPLATE_INVALID")}let{integrity:o,...a}=n;if(AE(a)!==o)throw new Bt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Bt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as Vg}from"node:fs/promises";import Mg from"node:path";var PE=/^[A-Z][A-Z0-9_]*$/u,NE=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function OE(e){let t=new Map;for(let r of e.split(/\r?\n/u)){let n=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(r.trim());if(!n||!PE.test(n[1]))continue;let o=n[1],a=n[2].trim();t.set(o,{name:o,requirement:a.length===0?"conditional":"optional",secret:NE.test(o),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function Ug(e){let t=await Vg(Mg.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await Vg(Mg.join(e.projectRoot,t),"utf8"):"",n=await mi({projectRoot:e.projectRoot}).catch(()=>null);return{commands:["dev","build","test","package"].flatMap(a=>e.commands[a]?[{id:a,script:e.commands[a],mode:a==="dev"?"managed-process":"foreground-task"}]:[]),environment:n?n.entries.map(a=>({name:a.name,requirement:a.required?"conditional":"optional",secret:a.kind!=="value",configured:a.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:a.display,...a.fingerprint?{fingerprint:a.fingerprint}:{}})):OE(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var Fg={change:new Set(["plan","apply","upgrade","recover","baseline-next","add-package","add-application","add-feature"]),quality:new Set(["inspect","verify","doctor","maintenance","test","build"]),delivery:new Set(["package","delivery-plan","delivery-apply","delivery-inspect"])},qg=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function Bg(e,t){if(!Fg[t.plane]||t.state&&!qg.has(t.state)||t.limit!==void 0&&(!Number.isSafeInteger(t.limit)||t.limit<1||t.limit>200))throw new Error("OPERATION_FILTER_INVALID");let r=Fg[t.plane],n=t.from?Date.parse(t.from):null,o=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||o!==null&&Number.isNaN(o)||n!==null&&o!==null&&n>o)throw new Error("OPERATION_FILTER_INVALID");let a=e.filter(l=>r.has(l.operation)),i=[...new Map(a.map(l=>[l.projectId,{id:l.projectId,name:l.projectName}])).values()].sort((l,d)=>l.name.localeCompare(d.name)),s=a.filter(l=>(!t.projectId||l.projectId===t.projectId)&&(!t.state||l.state===t.state)&&(!t.kind||l.operation===t.kind)&&(n===null||Date.parse(l.createdAt)>=n)&&(o===null||Date.parse(l.createdAt)<=o)).sort((l,d)=>d.updatedAt.localeCompare(l.updatedAt)),c={total:s.length,running:s.filter(l=>l.state==="running"||l.state==="queued").length,succeeded:s.filter(l=>l.state==="succeeded").length,attention:s.filter(l=>l.state==="failed"||l.state==="outcome-unknown").length};return Object.freeze({schemaVersion:1,plane:t.plane,summary:Object.freeze(c),facets:Object.freeze({projects:Object.freeze(i),states:Object.freeze([...qg]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var Qe=class extends Error{code;constructor(t){super(t),this.code=t}},DE=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,zg=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,SE=/^sha512-[A-Za-z0-9+/]{86}==$/u,Ai=/^sha256:[a-f0-9]{64}$/u,jE=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,$E=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,CE=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Fr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,a)=>o===n[a])}function TE(e){if(!Fr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!DE.test(e.packageName)||!zg.test(e.version)||!jE.test(e.assetName)||!SE.test(e.integrity)||!Ai.test(e.tarballDigest)||typeof e.dependencies!="object"||e.dependencies===null||Array.isArray(e.dependencies)||e.lifecycleScripts.length>0)return!1;let t=Object.entries(e.dependencies);return t.length>256||t.some(([r,n])=>!/^(@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u.test(r)||!zg.test(n)||$E.test(n))?!1:e.lifecycleScripts.every(r=>CE.has(r))}function Zl(e){if(!Fr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(a=>Object.freeze({...a,dependencies:Object.freeze({...a.dependencies}),lifecycleScripts:Object.freeze([...a.lifecycleScripts])}));if(t.some(a=>!TE(a)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(a=>a.packageName+"@"+a.version);if(new Set(r).size!==r.length||r.some((a,i)=>i>0&&a.localeCompare(r[i-1])<=0))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(a=>a.packageName));for(let a of t)for(let[i,s]of Object.entries(a.dependencies))if(i.startsWith("@aipt/")&&(!n.has(i)||!t.some(c=>c.packageName===i&&c.version===s)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let o={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...o,bundleId:y(b(o))})}function qr(e){let t=e;if(typeof t!="object"||t===null||!Fr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!Ai.test(t.bundleId)||!Array.isArray(t.artifacts))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");if(Zl({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function Ql(e){if(!Fr(e,["packageInputs","bundle","generatedAt","expiresAt"])||e.packageInputs.length!==e.bundle.artifacts.length||e.packageInputs.length===0||Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(o=>Object.freeze({...o}));if(t.some(o=>!Fr(o,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(o.relativeRoot)||!Ai.test(o.manifestDigest))||new Set(t.map(o=>o.relativeRoot)).size!==t.length)throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");let r=qr(e.bundle),n={schemaVersion:1,state:"awaiting-approval",packageInputs:t,bundle:r,targetPreimage:{kind:"absent"},generatedAt:e.generatedAt,expiresAt:e.expiresAt};return Object.freeze({...n,planId:y(b(n))})}function Jg(e){let t=e;if(typeof t!="object"||t===null||!Fr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!Ai.test(t.planId)||!Fr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");if(Ql({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");return t}function Gg(e){let t=qr(e.bundle),r=_o(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Ol({registryId:r.registryId,registryConfigRevision:r.revision,packageName:n.packageName,version:n.version,integrity:n.integrity,tarballDigest:n.tarballDigest,access:"private",provenance:"development-readback-verified",verificationIdentityDigest:t.bundleId,sourceDeliveryReceiptId:t.bundleId,verifiedAt:e.verifiedAt})))}var Ke=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},Wg=/^sha256:[a-f0-9]{64}$/u,Ei=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function ed(e){if(!Ei.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>Wg.test(r))||!Ei.test(e.cacheNamespace)||!Number.isSafeInteger(e.maximumBytes)||e.maximumBytes<1||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:y(b(t))})}function Kg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");let r=ed({workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,workspaceManifestDigest:t.workspaceManifestDigest,rootLockDigest:t.rootLockDigest,cacheNamespace:t.cacheNamespace,maximumBytes:t.maximumBytes,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");return r}function td(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>Wg.test(r))||!Ei.test(e.workerReleaseId)||!Ei.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(b(t))})}function Pi(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");let r=td({planId:t.planId,workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,cacheNamespace:t.cacheNamespace,cacheDigest:t.cacheDigest,cacheBytes:t.cacheBytes,commandDigest:t.commandDigest,completedAt:t.completedAt});if(t.schemaVersion!==1||t.receiptId!==r.receiptId)throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");return r}var Lo=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},rd=/^sha256:[a-f0-9]{64}$/u,LE=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function nd(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>rd.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!LE.test(r.path)||!rd.test(r.currentDigest)||!rd.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Lo("RECOVERY_OVERRIDE_INVALID");let t={schemaVersion:1,...e,conflicts:e.conflicts.map(r=>({...r})).sort((r,n)=>r.path.localeCompare(n.path))};return Object.freeze({...t,planId:y(b(t))})}function Yg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Lo("RECOVERY_OVERRIDE_INVALID");let r=nd({transactionPlanId:t.transactionPlanId,transactionRootDigest:t.transactionRootDigest,conflicts:t.conflicts,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Lo("RECOVERY_OVERRIDE_INVALID");return r}var xo=class extends Error{code;constructor(t,r){super(r),this.code=t}},ad=/^sha256:[a-f0-9]{64}$/u,xE=/^sha512-[A-Za-z0-9+/]{86}==$/u,VE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,ME=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,UE=/[\u0000-\u001f\u007f]/u;function Rn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function _n(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,a)=>o===n[a])}function zt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!UE.test(e)}function od(e){return zt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Hg(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>zt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function FE(e){return e===null?!0:!Rn(e)||!_n(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:od(e.fileName)&&ad.test(String(e.digest))&&xE.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function qE(e){if(!Rn(e)||!_n(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!VE.test(e.packageName)||!ME.test(e.version)||!zt(e.title,120)||!zt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!Rn(e.source)||!_n(e.source,["repository","path","revision","treeDigest"])||!zt(e.source.repository)||!od(e.source.path)||!zt(e.source.revision,200)||!ad.test(String(e.source.treeDigest))||!FE(e.artifact)||!Rn(e.compatibility)||!_n(e.compatibility,["node","packageManager"])||!zt(e.compatibility.node,100)||!zt(e.compatibility.packageManager,100)||!Hg(e.exports)||!Hg(e.consumerEvidence)||!Rn(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!_n(e.documentation,t)||!od(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!zt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function BE(e){let t={schemaVersion:1,kind:"PackageRelease",...e,source:Object.freeze({...e.source}),artifact:e.artifact===null?null:Object.freeze({...e.artifact}),compatibility:Object.freeze({...e.compatibility}),exports:Object.freeze([...e.exports]),documentation:Object.freeze({...e.documentation}),consumerEvidence:Object.freeze([...e.consumerEvidence])};if(!qE(t))throw new xo("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:y(b(t))})}function Xg(e){if(!Rn(e)||!_n(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!ad.test(String(e.releaseDigest)))throw new xo("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...o}=e,a=BE(o);if(a.releaseDigest!==t)throw new xo("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return a}import{lstat as zE,readFile as JE,realpath as GE}from"node:fs/promises";import Zg from"node:path";async function Qg(e){let t=await GE(Zg.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,o=[...e.lock.capabilities].sort((i,s)=>i.committedAt.localeCompare(s.committedAt)||i.capabilityId.localeCompare(s.capabilityId));for(let i of o)if(!r.has(i.capabilityId))for(let s of i.assets){let c=s.ownership??"owned-file",l=`${s.path}\0`;if(c==="managed-region")n.delete(l);else for(let p of n.keys())p.startsWith(l)&&n.delete(p);let d=c==="managed-region"?`${l}${s.regionId??""}`:l;n.set(d,{capabilityId:i.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let a=[];for(let i of[...n.values()].sort((s,c)=>s.path.localeCompare(c.path)||(s.regionId??"").localeCompare(c.regionId??"")||s.capabilityId.localeCompare(c.capabilityId))){let s=Zg.join(t,...i.path.split("/")),l=await zE(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await JE(s);if(i.ownership!=="managed-region")return y(p);if(i.regionId!==void 0)try{return y($a(p.toString("utf8"),i.regionId))}catch{return}}).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d))===i.digest;a.push({capabilityId:i.capabilityId,path:i.path,kind:"create",ownership:i.ownership,...i.regionId===void 0?{}:{regionId:i.regionId},desiredDigest:i.digest,disposition:l?"noop":"conflict",...l?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return a}import{readFile as re,readdir as mh,realpath as Rt}from"node:fs/promises";import{execFile as sP,spawn as cP}from"node:child_process";import N from"node:path";import{parseArgs as pe,promisify as lP}from"node:util";import{lstat as eh,mkdir as sd,readFile as th,realpath as id,rm as WE,writeFile as rh}from"node:fs/promises";import et from"node:path";var tt=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},KE=e=>b(e),nh=e=>y(KE(e));async function oh(e,t){let r=await id(et.resolve(e)),n=et.join(r,".examples");await sd(n,{recursive:!0});let o=await id(n),a=et.resolve(r,t);if(et.dirname(a)!==o||et.basename(a).startsWith(".")||et.basename(a).length<1)throw new tt("SCAFFOLD_ARGUMENT_INVALID");if(await eh(a).then(()=>!0).catch(i=>i.code==="ENOENT"?!1:Promise.reject(i)))throw new tt("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:a,outputRelativePath:et.relative(r,a)}}async function ah(e){let t=e.artifactFallbackBundles??[];if(!/^sha256:[a-f0-9]{64}$/u.test(e.artifactBundle)||t.some(c=>!/^sha256:[a-f0-9]{64}$/u.test(c))||new Set([e.artifactBundle,...t]).size!==1+t.length||!Number.isSafeInteger(e.artifactPort)||e.artifactPort<1||e.artifactPort>65535)throw new tt("SCAFFOLD_ARGUMENT_INVALID");let r=await oh(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),o={schemaVersion:1,state:"reviewable",recipeId:e.recipe.recipeId,recipeVersion:e.recipe.version,recipeIntegrity:e.recipe.integrity,workspaceRoot:r.workspaceRoot,outputRelativePath:r.outputRelativePath,locale:e.recipe.locale,channel:"development",artifactBundle:e.artifactBundle,artifactFallbackBundles:t,artifactPort:e.artifactPort,generatedAt:n,expiresAt:new Date(Date.parse(n)+30*6e4).toISOString()},a={...o,planId:nh(o)},i=et.join(r.workspaceRoot,".dyyto","scaffold-plans");await sd(i,{recursive:!0});let s=et.join(i,`${a.planId}.json`);return await rh(s,`${b(a)}
45
+ `,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await th(s,"utf8")!==`${b(a)}
46
+ `)throw new tt("SCAFFOLD_PLAN_INVALID")}),a}async function YE(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new tt("SCAFFOLD_PLAN_INVALID");let r=await id(et.resolve(e)),n;try{n=JSON.parse(await th(et.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new tt("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:o,...a}=n;if(o!==t||nh(a)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new tt("SCAFFOLD_PLAN_INVALID");return n}async function ih(e){let t=await YE(e.workspaceRoot,e.approvedPlanId);if(t.recipeId!==e.recipe.recipeId||t.recipeVersion!==e.recipe.version||t.recipeIntegrity!==e.recipe.integrity)throw new tt("SCAFFOLD_PLAN_INVALID");let r=await oh(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await eh(r.output).then(()=>!0).catch(()=>!1)&&await WE(r.output,{recursive:!0,force:!0}),new tt("SCAFFOLD_APPLY_FAILED",s)}let o={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},a=y(b(o)),i=et.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await sd(i,{recursive:!0}),await rh(et.join(i,`${a}.json`),`${b({...o,evidenceId:a})}
47
+ `,{flag:"wx",mode:384}),{evidenceId:a,output:r.output,receipts:n}}import{lstat as Vo,readFile as cd,readdir as HE,realpath as ld}from"node:fs/promises";import fe from"node:path";var sh={capabilities:fe.resolve(import.meta.dirname,"catalog"),packages:fe.resolve(import.meta.dirname,"package-releases")};function lh(e,t){return e<t?-1:e>t?1:0}function Oi(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Oi).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>lh(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Oi(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function XE(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let o=n.trim();if(o===""||o.startsWith("#"))continue;if(o.startsWith("export "))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u4F7F\u7528 export`);let a=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(o);if(!a)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(a[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${a[1]}`);let i=a[2].trim();if((i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),/[`$][({]?/u.test(i))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u547D\u4EE4\u6216\u53D8\u91CF\u5C55\u5F00`);t.set(a[1],i)}return t}async function ch(e,t){let r=await Vo(e);if(!r.isFile()||r.isSymbolicLink()||r.nlink!==1)throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u975E\u94FE\u63A5\u6587\u4EF6`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-385)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80600`)}async function Ni(e,t){let r=await Vo(e);if(!r.isDirectory()||r.isSymbolicLink())throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u4E14\u4E0D\u80FD\u662F\u7B26\u53F7\u94FE\u63A5`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-449)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80700`);return ld(e)}async function ZE(e){let t=e;for(;;){if(await Vo(fe.join(t,".git")).then(()=>!0).catch(n=>n.code==="ENOENT"?!1:Promise.reject(n)))throw new Error(`IDP_CONFIG_DIR \u5FC5\u987B\u4F4D\u4E8E Git \u4ED3\u5E93\u5916\uFF1A${t}`);let r=fe.dirname(t);if(r===t)return;t=r}}async function QE(e){if(!fe.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Ni(e,"IDP_CONFIG_DIR");await ZE(t);let r=await Ni(fe.join(t,"components"),"components"),n=await Ni(fe.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),o=fe.relative(t,n);if(o.startsWith("..")||fe.isAbsolute(o))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let a=fe.join(n,".env");await ch(a,"Dyyto \u7EC4\u4EF6 .env");let i=XE(await cd(a,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(i===void 0||i==="")return[];if(fe.isAbsolute(i)||i.includes("\0")||/[*?{}[\]]/u.test(i))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u7684\u666E\u901A\u76F8\u5BF9\u6587\u4EF6\u8DEF\u5F84");let s=fe.resolve(n,i),c=fe.relative(n,s);if(c===""||c.startsWith("..")||fe.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let l=n;for(let u of c.split(fe.sep).slice(0,-1))l=await Ni(fe.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await ld(fe.dirname(s)),p=fe.relative(n,d);if(p.startsWith("..")||fe.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await ch(s,"Package Catalog Binding");let f=[];for(let u of(await cd(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!fe.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Vo(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let h=await ld(m),w=await Vo(h);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");f.includes(h)||f.push(h)}return f.sort()}async function eP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await QE(e);return{capabilities:sh.capabilities,packages:[sh.packages,...t]}}async function Di(e){return(await HE(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function tP(e,t){let r=a=>a.split("-",1)[0].split(".").map(Number),n=r(e),o=r(t);for(let a=0;a<3;a+=1){let i=(n[a]??0)-(o[a]??0);if(i!==0)return i}return e.localeCompare(t)}function rP(e){let t=e.schemaVersion===2?e.availability.maturity:"legacy-unverified",r="consumerProfile"in e?e.consumerProfile:"\u591A\u79CD\u5DE5\u7A0B Profile";return{kind:"capability",ref:`capability:${e.capabilityId}@${e.version}`,id:e.capabilityId,version:e.version,title:e.capabilityId,summary:`\u9002\u7528\u4E8E ${r} \u7684\u5DE5\u7A0B\u80FD\u529B\u53D1\u884C\u3002`,maturity:t,integrity:e.integrity}}function nP(e){return{kind:"package",ref:`package:${e.packageName}@${e.version}`,id:e.packageName,version:e.version,title:e.title,summary:e.summary,maturity:e.maturity,integrity:e.releaseDigest}}async function oP(e){let t=[];for(let r of await Di(e))for(let n of await Di(fe.join(e,r))){let o=`capability:${r}@${n}`;t.push(Ie(fe.join(e,r,n)).then(a=>({entry:{item:rP(a.release),release:a.release}})).catch(()=>({diagnostic:{ref:o,code:"CATALOG_RELEASE_INVALID",message:"Capability \u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function aP(e){let t=[];for(let r of await Di(e))for(let n of await Di(fe.join(e,r))){let o=fe.join(e,r,n,"release.json"),a=`package:${r}@${n}`;t.push(cd(o,"utf8").then(i=>{let s=Xg(JSON.parse(i));return{entry:{item:nP(s),release:s}}}).catch(()=>({diagnostic:{ref:a,code:"CATALOG_RELEASE_INVALID",message:"PackageRelease \u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function dd(e){let t=e??await eP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...o]=await Promise.all([oP(t.capabilities),...r.map(aP)]),a=[...n.entries,...o.flatMap(l=>l.entries)].sort((l,d)=>l.item.ref.localeCompare(d.item.ref)),i=[],s=new Set,c=[];for(let l of a)s.has(l.item.ref)?c.push({ref:l.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(l.item.ref),i.push(l));return{entries:i,diagnostics:[...n.diagnostics,...o.flatMap(l=>l.diagnostics),...c].sort((l,d)=>l.ref.localeCompare(d.ref))}}async function Si(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await dd(e.roots),n=new Map;for(let{item:i}of r.entries){if(e.kind!==void 0&&i.kind!==e.kind)continue;let s=[i.id,i.version,i.title,i.summary,i.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${i.kind}:${i.id}`,l=n.get(c);(l===void 0||tP(l.version,i.version)<0)&&n.set(c,i)}let o=[...n.values()].sort((i,s)=>i.ref.localeCompare(s.ref)),a=e.limit??50;return{query:t,total:o.length,items:o.slice(0,a),diagnostics:r.diagnostics}}async function ji(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await dd(e.roots),n=r.entries.find(({item:a})=>a.ref===t),o=r.diagnostics.find(a=>a.ref===t);if(o?.code==="CATALOG_RELEASE_DUPLICATE")throw new Error(`\u53D1\u884C ref \u5728\u591A\u4E2A Catalog Source \u4E2D\u91CD\u590D\uFF1A${e.ref}`);if(n===void 0&&o!==void 0)throw new Error(`\u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\uFF1A${e.ref}`);if(n===void 0)throw new Error(`\u76EE\u5F55\u4E2D\u4E0D\u5B58\u5728\u53D1\u884C\uFF1A${e.ref}`);return n}function iP(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let o=n;if(typeof o.capabilityId!="string"||typeof o.version!="string"||!Array.isArray(o.integration?.packages))continue;let a=`capability:${o.capabilityId}@${o.version}`;for(let i of o.integration.packages){if(typeof i!="object"||i===null)continue;let s=i;if(typeof s.packageName!="string"||typeof s.version!="string")continue;let c=`${s.packageName}@${s.version}`,l=t.get(c)??new Set;l.add(a),t.set(c,l)}}return t}async function dh(e){let t=new Date(e.generatedAt);if(Number.isNaN(t.getTime())||t.toISOString()!==e.generatedAt)throw new Error("generatedAt \u5FC5\u987B\u662F\u89C4\u8303 ISO-8601 UTC \u65F6\u95F4");let r=await dd(e.roots);if(r.diagnostics.length>0)throw new Error(`Catalog \u5B58\u5728 ${r.diagnostics.length} \u4E2A\u65E0\u6548\u6216\u91CD\u590D\u53D1\u884C\uFF0C\u7981\u6B62\u5BFC\u51FA\u751F\u4EA7\u6295\u5F71`);let n=iP(r.entries),o=r.entries.filter(({item:i})=>i.kind==="package").map(({release:i})=>{let s=i;return Object.freeze({kind:"package",ref:`package:${s.packageName}@${s.version}`,packageName:s.packageName,version:s.version,releaseDigest:s.releaseDigest,capabilities:Object.freeze([...n.get(`${s.packageName}@${s.version}`)??[]].sort())})}).sort((i,s)=>lh(i.ref,s.ref)),a={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(o)};return Object.freeze({...a,sourceDigest:y(Oi(a))})}function ph(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||y(Oi(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
48
+ `}var Mo={"typescript-library":"foundation.typescript-quality@1.0.0","standalone-npm-package":"foundation.standalone-npm-package@1.2.0","workspace-root":"foundation.workspace-root@1.1.0","workspace-npm-package":"foundation.workspace-npm-package@1.2.0","workspace-node-application":"foundation.workspace-node-application@1.1.0","workspace-web-application":"foundation.workspace-web-application@1.1.0","workspace-expo-application":"foundation.workspace-expo-application@1.0.0","react-component-library":"foundation.react-component-library@1.1.0","workspace-react-component-library":"foundation.workspace-react-component-library@1.2.0","nextjs-full-stack-application":"foundation.nextjs-full-stack-application@1.0.0"},gh=lP(sP),dP=new Set(["template.typescript-library@1.0.0","template.typescript-library@1.1.0","template.react-component-library@1.0.0","template.react-component-library@1.1.0","template.nextjs-full-stack-application@1.0.0","template.expo-react-native-application@1.0.0","template.node-api-application@1.0.0","template.workspace-root@1.0.0","template.workspace-root@1.1.0","template.workspace-root@1.2.0","template.workspace-npm-package@1.0.0","template.workspace-react-component-library@1.0.0","template.workspace-react-component-library@1.1.0","template.workspace-react-component-library@1.2.0","template.web-frontend-application@1.0.0"]),hh=(e,t)=>e==="foundation.workspace-root"&&t==="1.4.0"?{id:"template.workspace-root",version:"1.1.0"}:e==="foundation.workspace-root"&&t==="1.5.0"?{id:"template.workspace-root",version:"1.2.0"}:void 0,$i={"workspace-npm-package":{id:"template.workspace-npm-package",version:"1.0.0"},"react-component-library":{id:"template.workspace-react-component-library",version:"1.2.0"},"workspace-web-application":{id:"template.web-frontend-application",version:"1.0.0"},"workspace-node-application":{id:"template.node-api-application",version:"1.0.0"},"workspace-expo-application":{id:"template.expo-react-native-application",version:"1.0.0"},"nextjs-full-stack-application":{id:"template.nextjs-full-stack-application",version:"1.0.0"}};function yh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Ci(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let o=await re(N.join(e,"package.json")),a=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:i}=await import("./optional-runtime.js"),s=await Mt(e),c=await re(N.join(s.transactionRoot,s.lockfilePath)).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));if(s.mode==="pnpm-shared-lockfile"){if(!c)throw new ie("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new ie("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=Eo({release:t.release,packageJson:n??o}),f=new Date,u=new Date(f.getTime()+1800*1e3).toISOString(),m=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:p,currentLockfile:c,sources:t.release.packageSources,registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings,generatedAt:f.toISOString(),expiresAt:u});return{...a,lockResolution:{lockfile:m.evidence.desiredLockfile,packages:m.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:h,version:w,integrity:_})=>({registryId:g,packageName:h,version:w,integrity:_}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let l=$l({release:t.release,packageJson:n??o}),d=await i({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:a.registryConfigs,endpointBindings:a.endpointBindings});return{...a,lockResolution:d,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function wh(e,t,r,n){let o=r.capabilities.find(v=>v.capabilityId===t.release.capabilityId&&v.version===t.release.version);if(o&&!o.packageAdoption){let v=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),A=new Date;return Pg({projectRoot:e,manifest:v,release:t,currentLock:r,generatedAt:A.toISOString(),expiresAt:new Date(A.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!o?.packageAdoption)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let a=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),i=await re(N.join(e,"package.json")),s=await re(N.join(e,"project-capabilities.json")),c=await Mt(e),l=await re(N.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(v=>v!==o).flatMap(v=>v.packageAdoption?.sources.map(A=>A.packageName)??[])),p=o.packageAdoption.sources.filter(v=>!d.has(v.packageName)),f=c.mode==="pnpm-shared-lockfile"?Tl({packageJson:i,remove:p}):Cl({packageJson:i,remove:p}),u=r.capabilities.filter(v=>v!==o).flatMap(v=>v.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new ie("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let v=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),A=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...o.assets.map(R=>`${c.unitRelativeRoot}/${R.path}`)],I=await Promise.all(A.map(async R=>re(N.join(c.transactionRoot,...R.split("/"))).then(D=>({path:R,exists:!0,digest:y(D)})).catch(D=>D.code==="ENOENT"?{path:R,exists:!1}:Promise.reject(D))));return{...Cm({release:t.release,currentLock:r,projectManifest:s,packageJson:i,currentLockfile:l,endpointBindings:a.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:v.preservedImporterDigests,resolutionEvidence:v.evidence,resolutionWorkerReleaseId:v.workerReleaseId,remainingSources:u,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings}}let{resolvePnpmLock:h}=await import("./optional-runtime.js"),w=await h({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...o.packageAdoption.sources],registries:a.registryConfigs,endpointBindings:a.endpointBindings}),_=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...o.assets.map(v=>v.path)].map(async v=>re(N.join(e,...v.split("/"))).then(A=>({path:v,exists:!0,digest:y(A)})).catch(A=>A.code==="ENOENT"?{path:v,exists:!1}:Promise.reject(A))));return{...$m({release:t.release,currentLock:r,projectManifest:s,packageJson:i,currentLockfile:l,desiredLockfile:w.lockfile,endpointBindings:a.endpointBindings,observedAssets:_,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings}}function z(e){return e.includes("--json")?"json":"human"}function k(e){throw new T({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function De(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?k("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function Ti(e,t){return dP.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):k("The selected template release is not bundled with this CLI.")}function pP(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?k("The selected example recipe identity or version is invalid."):N.resolve(import.meta.dirname,"recipes",e,t)}function ee(e){let t=N.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${N.sep}`)?t:N.basename(e)}async function Li(e){let t=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return k("Project manifest must select one capability.");let n=await Ie(De(r.capabilityId,r.version)),o=await Le(e).catch(()=>null),a=new Date,s=await(t.profile?.id==="standalone-npm-package"?wo:t.profile?.id==="react-component-library"?Io:t.profile?.id==="nextjs-full-stack-application"?In:t.profile?.id==="workspace-npm-package"?vo:t.profile?.id==="workspace-node-application"?bo:t.profile?.id==="workspace-web-application"?ko:t.profile?.id==="workspace-expo-application"?Ro:xa)({projectRoot:e,manifest:t,release:n,...o===null?{}:{currentLock:o},generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+1800*1e3).toISOString()});return Vt({projectRoot:e,plan:s.plan,now:a.toISOString()})}async function Ih(e){let t;try{t=pe({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},profile:{type:"string"},template:{type:"string"},capability:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"}}})}catch{return k("Create arguments are invalid.")}if(t.positionals.length!==1)return k("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,h]=r.split("@");n=await To(Ti(g,h))}let o=n?.profile.id??t.values.profile;if(o!=="typescript-library"&&o!=="standalone-npm-package"&&o!=="react-component-library"&&o!=="nextjs-full-stack-application"&&o!=="workspace-root")return k("Create requires a supported --profile.");let a=t.values.capability,i=o==="workspace-root"&&a==="foundation.workspace-root@1.0.0"||o==="standalone-npm-package"&&a==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(i?a:Mo[o]);if(n!==void 0&&s.split("@")[0]!==Mo[o].split("@")[0])return k(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&a!==s)return k(`Create requires --capability ${s}.`);if(n!==void 0&&a!==void 0)return k("Create with --template does not accept --capability.");let[c,l]=s.split("@"),d={};if(o==="standalone-npm-package"||o==="react-component-library"){let g=t.values.name,h=t.values.version,w=t.values.license,_=t.values["publish-access"],v=t.values.repository;if([g,h,w,_].some(A=>typeof A!="string")||l==="1.1.0"&&typeof v!="string")return k(`Standalone npm package requires --name, --version, --license, --publish-access${l==="1.1.0"?", and --repository":""}.`);d={name:String(g),version:String(h),license:String(w),publishAccess:String(_),...typeof v=="string"?{repository:v}:{}}}else if(o==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return k("Next.js application requires --name.");d={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:o,parameters:d},capabilities:[{capabilityId:c,version:l}]};(o==="standalone-npm-package"||o==="react-component-library")&&sr(X(p),o),o==="nextjs-full-stack-application"&&$r(X(p));let f=await Za({projectRoot:t.positionals[0],manifest:p}),u=await Li(f.projectRoot),m=ee(f.projectRoot);return{outputMode:z(e),human:`Project '${m}' initialized.
49
49
  Plan: ${u.planId}
50
50
  State: ${u.state}
51
- Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:o,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function pP(e){let[t,...r]=e,n;try{n=pe({args:r,allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},"documentation-only":{type:"boolean"}}})}catch{return k("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return k("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return k("Retrofit requires --project <directory>.");let o=await Ie(Se("foundation.workspace-root","1.2.0")),a=new Date,i=await nm({projectRoot:n.values.project,capabilityIntegrity:o.release.integrity,generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+1800*1e3).toISOString(),...n.values["documentation-only"]===!0?{documentationOnly:!0}:{}}),s=ee(i.projectRoot);if(t==="plan"){if(n.values.approve!==void 0)return k("Retrofit plan does not accept --approve.");let p=await Lt({projectRoot:i.projectRoot,plan:i.plan,now:a.toISOString()});return{outputMode:z(e),human:`Project: ${s}
51
+ Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:o,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function uP(e){let[t,...r]=e,n;try{n=pe({args:r,allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},"documentation-only":{type:"boolean"}}})}catch{return k("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return k("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return k("Retrofit requires --project <directory>.");let o=await Ie(De("foundation.workspace-root","1.2.0")),a=new Date,i=await cm({projectRoot:n.values.project,capabilityIntegrity:o.release.integrity,generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+1800*1e3).toISOString(),...n.values["documentation-only"]===!0?{documentationOnly:!0}:{}}),s=ee(i.projectRoot);if(t==="plan"){if(n.values.approve!==void 0)return k("Retrofit plan does not accept --approve.");let p=await Vt({projectRoot:i.projectRoot,plan:i.plan,now:a.toISOString()});return{outputMode:z(e),human:`Project: ${s}
52
52
  Plan: ${p.planId}
53
53
  State: ${p.state}
54
54
  Files: project-capabilities.json
55
- Next: dyyto retrofit apply --project ${s} --approve ${p.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:s,plan:p}}}}if(typeof n.values.approve!="string")return k("Retrofit apply requires --approve <planId>.");let c=await Dr({projectRoot:i.projectRoot,planId:n.values.approve}),l=await nr({projectRoot:i.projectRoot,plan:c,approvedPlanId:n.values.approve,desiredContents:i.desiredContents,now:a.toISOString()}),d=await or(l);return{outputMode:z(e),human:`Project: ${s}
55
+ Next: dyyto retrofit apply --project ${s} --approve ${p.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:s,plan:p}}}}if(typeof n.values.approve!="string")return k("Retrofit apply requires --approve <planId>.");let c=await Sr({projectRoot:i.projectRoot,planId:n.values.approve}),l=await nr({projectRoot:i.projectRoot,plan:c,approvedPlanId:n.values.approve,desiredContents:i.desiredContents,now:a.toISOString()}),d=await or(l);return{outputMode:z(e),human:`Project: ${s}
56
56
  Plan: ${c.planId}
57
57
  State: ${d.state}
58
- Files applied: ${d.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:s,planId:c.planId,transaction:d}}}}async function uP(e,t){let r;try{r=pe({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return k(`${e} requires --project.`);let n=await kt(N.resolve(r.values.project)),o=X(JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")));if(o.template===void 0)return k("The project does not declare an engineering template.");let a=await $o(Ci(o.template.id,o.template.version)),i=a.commands[e];if(i===void 0)return k(`Template ${a.templateId} does not support ${e}.`);let s=i==="npm.pack-dry-run"?["pnpm","pack","--dry-run"]:["pnpm","run",i],c=Date.now();if(e==="dev"){if(await new Promise((u,m)=>{let g=sP("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},stdio:"inherit"}),h=()=>g.kill("SIGINT"),w=()=>g.kill("SIGTERM");process.once("SIGINT",h),process.once("SIGTERM",w),g.once("error",m),g.once("close",_=>{process.off("SIGINT",h),process.off("SIGTERM",w),u(_??1)})})!==0)throw new T({code:"CLI_INTERNAL_ERROR",message:"The development server stopped with an error.",exitCode:1});let f={template:`${a.templateId}@${a.version}`,command:i,durationMs:Date.now()-c,stdout:""};return{outputMode:z(t),human:`dev completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:f}}}let l=await dh("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),d={template:`${a.templateId}@${a.version}`,command:i,durationMs:Date.now()-c,stdout:l.stdout.trim()};return{outputMode:z(t),human:`${e} completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:d}}}async function fP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"},capability:{type:"string"},kind:{type:"string"},profile:{type:"string"}}})}catch{return k("Add package arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name,t.values.version,t.values.license,t.values["publish-access"],t.values.repository].some(_=>typeof _!="string"))return k("Add package requires workspace, path, name, version, license, publish access, and repository.");let n=t.values.profile??"workspace-npm-package";if(n!=="workspace-npm-package"&&n!=="react-component-library")return k("Add package requires a supported --profile.");let o=n==="react-component-library"?xo["workspace-react-component-library"]:xo["workspace-npm-package"];if(t.values.capability!==o)return k(`Add package requires --capability ${o}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return k("Add package --kind only accepts fixture.");let a=t.values.kind==="fixture"?"fixture":"package",i=String(t.values.path),s=Ed(i,a);if(s!==void 0)return k(s);let c=await kt(N.resolve(String(t.values.workspace))),l=JSON.parse(await re(N.join(c,"project-capabilities.json"),"utf8"));if(l.profile?.id!=="workspace-root")return k("The selected directory is not a Dyyto workspace root.");let d=l.capabilities?.[0];if(d?.capabilityId!=="foundation.workspace-root")return k("Workspace root capability is invalid.");let p=await Te(c);if(p===null){let _=await Ie(Se(d.capabilityId,d.version)),v=new Date;if((await Ta({projectRoot:c,release:_,generatedAt:v.toISOString(),expiresAt:new Date(v.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return k("Workspace root must be applied before adding a package.")}if(p!==null){try{await Er({projectRoot:c,expectedAssets:uh(p)})}catch{return k("Workspace root locked assets have drifted; adding a package is blocked.")}if((await So({projectRoot:c,lock:p})).some(v=>v.code!=="EVIDENCE_VALID"))return k("Workspace root adoption evidence is invalid; adding a package is blocked.")}if(await Nd(c,a==="fixture"?"fixtures":"packages",String(t.values.name)))return k("A workspace package already uses this npm name.");let[f,u]=o.split("@"),m={schemaVersion:1,...ji[n]===void 0?{}:{template:ji[n]},profile:{id:n,parameters:{name:String(t.values.name),version:String(t.values.version),license:String(t.values.license),publishAccess:String(t.values["publish-access"]),repository:String(t.values.repository)}},capabilities:[{capabilityId:f,version:u}]};sr(X(m),n);let g=await Xa({projectRoot:N.join(c,...i.split("/")),manifest:m}),h=await Ti(g.projectRoot),w=ee(g.projectRoot);return{outputMode:z(e),human:`Workspace package '${i}' initialized.
58
+ Files applied: ${d.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:s,planId:c.planId,transaction:d}}}}async function fP(e,t){let r;try{r=pe({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return k(`${e} requires --project.`);let n=await Rt(N.resolve(r.values.project)),o=X(JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")));if(o.template===void 0)return k("The project does not declare an engineering template.");let a=await To(Ti(o.template.id,o.template.version)),i=a.commands[e];if(i===void 0)return k(`Template ${a.templateId} does not support ${e}.`);let s=i==="npm.pack-dry-run"?["pnpm","pack","--dry-run"]:["pnpm","run",i],c=Date.now();if(e==="dev"){if(await new Promise((u,m)=>{let g=cP("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},stdio:"inherit"}),h=()=>g.kill("SIGINT"),w=()=>g.kill("SIGTERM");process.once("SIGINT",h),process.once("SIGTERM",w),g.once("error",m),g.once("close",_=>{process.off("SIGINT",h),process.off("SIGTERM",w),u(_??1)})})!==0)throw new T({code:"CLI_INTERNAL_ERROR",message:"The development server stopped with an error.",exitCode:1});let f={template:`${a.templateId}@${a.version}`,command:i,durationMs:Date.now()-c,stdout:""};return{outputMode:z(t),human:`dev completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:f}}}let l=await gh("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),d={template:`${a.templateId}@${a.version}`,command:i,durationMs:Date.now()-c,stdout:l.stdout.trim()};return{outputMode:z(t),human:`${e} completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:d}}}async function mP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"},capability:{type:"string"},kind:{type:"string"},profile:{type:"string"}}})}catch{return k("Add package arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name,t.values.version,t.values.license,t.values["publish-access"],t.values.repository].some(_=>typeof _!="string"))return k("Add package requires workspace, path, name, version, license, publish access, and repository.");let n=t.values.profile??"workspace-npm-package";if(n!=="workspace-npm-package"&&n!=="react-component-library")return k("Add package requires a supported --profile.");let o=n==="react-component-library"?Mo["workspace-react-component-library"]:Mo["workspace-npm-package"];if(t.values.capability!==o)return k(`Add package requires --capability ${o}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return k("Add package --kind only accepts fixture.");let a=t.values.kind==="fixture"?"fixture":"package",i=String(t.values.path),s=Sd(i,a);if(s!==void 0)return k(s);let c=await Rt(N.resolve(String(t.values.workspace))),l=JSON.parse(await re(N.join(c,"project-capabilities.json"),"utf8"));if(l.profile?.id!=="workspace-root")return k("The selected directory is not a Dyyto workspace root.");let d=l.capabilities?.[0];if(d?.capabilityId!=="foundation.workspace-root")return k("Workspace root capability is invalid.");let p=await Le(c);if(p===null){let _=await Ie(De(d.capabilityId,d.version)),v=new Date;if((await La({projectRoot:c,release:_,generatedAt:v.toISOString(),expiresAt:new Date(v.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return k("Workspace root must be applied before adding a package.")}if(p!==null){try{await Er({projectRoot:c,expectedAssets:yh(p)})}catch{return k("Workspace root locked assets have drifted; adding a package is blocked.")}if((await jo({projectRoot:c,lock:p})).some(v=>v.code!=="EVIDENCE_VALID"))return k("Workspace root adoption evidence is invalid; adding a package is blocked.")}if(await $d(c,a==="fixture"?"fixtures":"packages",String(t.values.name)))return k("A workspace package already uses this npm name.");let[f,u]=o.split("@"),m={schemaVersion:1,...$i[n]===void 0?{}:{template:$i[n]},profile:{id:n,parameters:{name:String(t.values.name),version:String(t.values.version),license:String(t.values.license),publishAccess:String(t.values["publish-access"]),repository:String(t.values.repository)}},capabilities:[{capabilityId:f,version:u}]};sr(X(m),n);let g=await Za({projectRoot:N.join(c,...i.split("/")),manifest:m}),h=await Li(g.projectRoot),w=ee(g.projectRoot);return{outputMode:z(e),human:`Workspace package '${i}' initialized.
59
59
  Plan: ${h.planId}
60
60
  State: ${h.state}
61
- Next: dyyto apply --project ${w} --approve ${h.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:ee(c),path:i,plan:h}}}}async function mP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},profile:{type:"string"},capability:{type:"string"}}})}catch{return k("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(w=>typeof w!="string"))return k("Add application requires workspace, path, and name.");let r=t.values.profile??"workspace-node-application";if(r!=="workspace-node-application"&&r!=="workspace-web-application"&&r!=="workspace-expo-application"&&r!=="nextjs-full-stack-application")return k("Add application requires a supported --profile.");let n=r,o=xo[n],a=String(t.values.path),i=Pd(a,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(i!==void 0)return k(i);let s=await kt(N.resolve(String(t.values.workspace))),c=JSON.parse(await re(N.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return k("The selected directory is not a Dyyto workspace root.");let l=c.capabilities?.[0];if(l?.capabilityId!=="foundation.workspace-root"||!["1.1.0","1.2.0","1.3.0","1.4.0","1.5.0"].includes(l.version))return k("Workspace applications require a supported foundation.workspace-root release.");if(a.startsWith("services/")&&!["1.3.0","1.4.0","1.5.0"].includes(l.version))return k("Workspace service applications require foundation.workspace-root@1.3.0 or newer.");let d=await Te(s);if(d===null){let w=await Ie(Se(l.capabilityId,l.version)),_=new Date;if((await Ta({projectRoot:s,release:w,generatedAt:_.toISOString(),expiresAt:new Date(_.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return k("Workspace root must be applied before adding an application.")}if(d!==null){try{await Er({projectRoot:s,expectedAssets:uh(d)})}catch{return k("Workspace root locked assets have drifted; adding an application is blocked.")}if((await So({projectRoot:s,lock:d})).some(_=>_.code!=="EVIDENCE_VALID"))return k("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await Od(s,String(t.values.name)))return k("A workspace application already uses this name.");let[p,f]=o.split("@"),u={schemaVersion:1,...ji[n]===void 0?{}:{template:ji[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:p,version:f}]};$r(X(u));let m=await Xa({projectRoot:N.join(s,...a.split("/")),manifest:u}),g=await Ti(m.projectRoot),h=ee(m.projectRoot);return{outputMode:z(e),human:`Workspace application '${a}' initialized.
61
+ Next: dyyto apply --project ${w} --approve ${h.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:ee(c),path:i,plan:h}}}}async function gP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},profile:{type:"string"},capability:{type:"string"}}})}catch{return k("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(w=>typeof w!="string"))return k("Add application requires workspace, path, and name.");let r=t.values.profile??"workspace-node-application";if(r!=="workspace-node-application"&&r!=="workspace-web-application"&&r!=="workspace-expo-application"&&r!=="nextjs-full-stack-application")return k("Add application requires a supported --profile.");let n=r,o=Mo[n],a=String(t.values.path),i=jd(a,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(i!==void 0)return k(i);let s=await Rt(N.resolve(String(t.values.workspace))),c=JSON.parse(await re(N.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return k("The selected directory is not a Dyyto workspace root.");let l=c.capabilities?.[0];if(l?.capabilityId!=="foundation.workspace-root"||!["1.1.0","1.2.0","1.3.0","1.4.0","1.5.0"].includes(l.version))return k("Workspace applications require a supported foundation.workspace-root release.");if(a.startsWith("services/")&&!["1.3.0","1.4.0","1.5.0"].includes(l.version))return k("Workspace service applications require foundation.workspace-root@1.3.0 or newer.");let d=await Le(s);if(d===null){let w=await Ie(De(l.capabilityId,l.version)),_=new Date;if((await La({projectRoot:s,release:w,generatedAt:_.toISOString(),expiresAt:new Date(_.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return k("Workspace root must be applied before adding an application.")}if(d!==null){try{await Er({projectRoot:s,expectedAssets:yh(d)})}catch{return k("Workspace root locked assets have drifted; adding an application is blocked.")}if((await jo({projectRoot:s,lock:d})).some(_=>_.code!=="EVIDENCE_VALID"))return k("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await Cd(s,String(t.values.name)))return k("A workspace application already uses this name.");let[p,f]=o.split("@"),u={schemaVersion:1,...$i[n]===void 0?{}:{template:$i[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:p,version:f}]};$r(X(u));let m=await Za({projectRoot:N.join(s,...a.split("/")),manifest:u}),g=await Li(m.projectRoot),h=ee(m.projectRoot);return{outputMode:z(e),human:`Workspace application '${a}' initialized.
62
62
  Plan: ${g.planId}
63
63
  State: ${g.state}
64
- Next: dyyto apply --project ${h} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:h,workspace:ee(s),path:a,plan:g}}}}async function gh(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return k("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return k("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return k("--channel only accepts development; omit it for production.");let n=await kt(N.resolve(r.values.project)),o=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),a=await Te(n);if(a===null)return k("Add feature requires an adopted project with a verified Profile Lock.");let[i,s]=Li(r.values.capability),c=await Ie(Se(i,s)),l=new Date,d;try{let u=await $i(n,c,t);d=await Yl({projectRoot:n,manifest:o,release:c,currentLock:a,generatedAt:l.toISOString(),expiresAt:new Date(l.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...u===void 0?{}:{packageSource:u}})}catch(u){throw u instanceof ie?new T({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let p=await Lt({projectRoot:n,plan:d.plan,now:l.toISOString(),transactionRoot:d.transactionRoot}),f=ee(n);return{outputMode:z(e),human:`Project: ${f}
64
+ Next: dyyto apply --project ${h} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:h,workspace:ee(s),path:a,plan:g}}}}async function vh(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return k("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return k("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return k("--channel only accepts development; omit it for production.");let n=await Rt(N.resolve(r.values.project)),o=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),a=await Le(n);if(a===null)return k("Add feature requires an adopted project with a verified Profile Lock.");let[i,s]=xi(r.values.capability),c=await Ie(De(i,s)),l=new Date,d;try{let u=await Ci(n,c,t);d=await Xl({projectRoot:n,manifest:o,release:c,currentLock:a,generatedAt:l.toISOString(),expiresAt:new Date(l.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...u===void 0?{}:{packageSource:u}})}catch(u){throw u instanceof ie?new T({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let p=await Vt({projectRoot:n,plan:d.plan,now:l.toISOString(),transactionRoot:d.transactionRoot}),f=ee(n);return{outputMode:z(e),human:`Project: ${f}
65
65
  Feature: ${i}@${s}
66
66
  Dependency: ${d.dependency.profile} satisfied
67
67
  Plan: ${p.planId}
68
68
  State: ${p.state}
69
- Next: dyyto apply --project ${f} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:d.dependency,plan:p}}}}async function gP(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return k("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return k("Remove feature requires --project and --capability.");let n=await kt(N.resolve(r.values.project)),o=await Te(n);if(o===null)return k("Remove feature requires a verified Lock.");let[a,i]=Li(r.values.capability),s=await Ie(Se(a,i)),c=await fh(n,s,o,t),l=await Lt({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),d=ee(n);return{outputMode:z(e),human:`Project: ${d}
69
+ Next: dyyto apply --project ${f} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:d.dependency,plan:p}}}}async function hP(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return k("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return k("Remove feature requires --project and --capability.");let n=await Rt(N.resolve(r.values.project)),o=await Le(n);if(o===null)return k("Remove feature requires a verified Lock.");let[a,i]=xi(r.values.capability),s=await Ie(De(a,i)),c=await wh(n,s,o,t),l=await Vt({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),d=ee(n);return{outputMode:z(e),human:`Project: ${d}
70
70
  \u79FB\u9664\u80FD\u529B\uFF1A${a}@${i}
71
71
  \u72EC\u5360\u5305\uFF1A${c.removedSources.map(p=>`${p.packageName}@${p.version}`).join("\u3001")||"\u65E0\uFF08\u5171\u4EAB\u5305\u5C06\u4FDD\u7559\uFF09"}
72
72
  Plan: ${l.planId}
73
73
  State: ${l.state}
74
- Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:d,capability:r.values.capability,removedSources:c.removedSources,plan:l}}}}async function hP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k("Plan arguments are invalid.")}if(typeof t.values.project!="string")return k("Plan requires --project <directory>.");let r=N.resolve(t.values.project),n=await Ti(r),o=ee(r),a=n.state==="reviewable"?`Next: dyyto apply --project ${o} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${o}
74
+ Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:d,capability:r.values.capability,removedSources:c.removedSources,plan:l}}}}async function yP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k("Plan arguments are invalid.")}if(typeof t.values.project!="string")return k("Plan requires --project <directory>.");let r=N.resolve(t.values.project),n=await Li(r),o=ee(r),a=n.state==="reviewable"?`Next: dyyto apply --project ${o} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${o}
75
75
  Plan: ${n.planId}
76
76
  State: ${n.state}
77
- ${a}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:o,plan:n}}}}function Li(e){let t=e.lastIndexOf("@");return t<=0||t===e.length-1?k("Capability selection must be capabilityId@version."):[e.slice(0,t),e.slice(t+1)]}async function yP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return k("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return k("Baseline requires --project and --capability.");let r=N.resolve(t.values.project);if(await Te(r)!==null)return k("Baseline is only for a historical project without a Lock.");let[n,o]=Li(t.values.capability),a=await Ie(Se(n,o)),i=JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await _l({projectRoot:r,manifest:i,release:a,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),l=await Lt({projectRoot:r,plan:c.plan,now:s.toISOString()}),d=ee(r);return{outputMode:z(e),human:`Project: ${d}
77
+ ${a}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:o,plan:n}}}}function xi(e){let t=e.lastIndexOf("@");return t<=0||t===e.length-1?k("Capability selection must be capabilityId@version."):[e.slice(0,t),e.slice(t+1)]}async function wP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return k("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return k("Baseline requires --project and --capability.");let r=N.resolve(t.values.project);if(await Le(r)!==null)return k("Baseline is only for a historical project without a Lock.");let[n,o]=xi(t.values.capability),a=await Ie(De(n,o)),i=JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await El({projectRoot:r,manifest:i,release:a,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),l=await Vt({projectRoot:r,plan:c.plan,now:s.toISOString()}),d=ee(r);return{outputMode:z(e),human:`Project: ${d}
78
78
  Baseline: ${n}@${o}
79
79
  Plan: ${l.planId}
80
80
  State: ${l.state}
81
81
  Preserved seed files: ${l.operations.filter(p=>p.ownership==="seed-file"&&p.disposition==="noop").length}
82
- Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function wP(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},to:{type:"string"},repository:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return k("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return k("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return k("--channel only accepts development; omit it for production.");let n=N.resolve(r.values.project),o=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),[a,i]=Li(r.values.to),s=o.capabilities?.find(R=>R.capabilityId===a);if(s===void 0)return k(`Upgrade requires ${a} to be adopted by the project.`);let c=await Te(n);if(c===null)return k("Upgrade requires an adopted project with a verified Lock.");let l=(o.profile.id==="standalone-npm-package"||o.profile.id==="workspace-npm-package")&&i==="1.1.0";if(l){if(typeof r.values.repository!="string")return k("npm package upgrade to 1.1.0 requires --repository.");o={...o,profile:{...o.profile,parameters:{...o.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return k("--repository is only valid for an npm package upgrade to 1.1.0.");let d=await Ie(Se(s.capabilityId,s.version)),p=await Ie(Se(a,i)),f={...o,capabilities:o.capabilities.map(R=>R.capabilityId===a?{capabilityId:a,version:i}:R)},u=p.release.schemaVersion===2&&p.release.availability.maturity!=="withdrawn"&&p.release.packageSources.length>0,m=u?gi(f,p):void 0,g=u?await $i(n,p,t,m):void 0,h=ph(a,i),w=new Date,_=await xl({projectRoot:n,manifest:o,currentLock:c,sourceRelease:d,targetRelease:p,...h===void 0?{}:{targetTemplate:h},generatedAt:w.toISOString(),expiresAt:new Date(w.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}}),v=await Lt({projectRoot:n,plan:_.plan,now:w.toISOString(),transactionRoot:_.transactionRoot}),A=ee(n),I=v.state==="reviewable"?`Next: dyyto apply --project ${A} --approve ${v.planId}${l?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${A}
82
+ Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function IP(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},to:{type:"string"},repository:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return k("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return k("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return k("--channel only accepts development; omit it for production.");let n=N.resolve(r.values.project),o=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),[a,i]=xi(r.values.to),s=o.capabilities?.find(R=>R.capabilityId===a);if(s===void 0)return k(`Upgrade requires ${a} to be adopted by the project.`);let c=await Le(n);if(c===null)return k("Upgrade requires an adopted project with a verified Lock.");let l=(o.profile.id==="standalone-npm-package"||o.profile.id==="workspace-npm-package")&&i==="1.1.0";if(l){if(typeof r.values.repository!="string")return k("npm package upgrade to 1.1.0 requires --repository.");o={...o,profile:{...o.profile,parameters:{...o.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return k("--repository is only valid for an npm package upgrade to 1.1.0.");let d=await Ie(De(s.capabilityId,s.version)),p=await Ie(De(a,i)),f={...o,capabilities:o.capabilities.map(R=>R.capabilityId===a?{capabilityId:a,version:i}:R)},u=p.release.schemaVersion===2&&p.release.availability.maturity!=="withdrawn"&&p.release.packageSources.length>0,m=u?hi(f,p):void 0,g=u?await Ci(n,p,t,m):void 0,h=hh(a,i),w=new Date,_=await Ml({projectRoot:n,manifest:o,currentLock:c,sourceRelease:d,targetRelease:p,...h===void 0?{}:{targetTemplate:h},generatedAt:w.toISOString(),expiresAt:new Date(w.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}}),v=await Vt({projectRoot:n,plan:_.plan,now:w.toISOString(),transactionRoot:_.transactionRoot}),A=ee(n),I=v.state==="reviewable"?`Next: dyyto apply --project ${A} --approve ${v.planId}${l?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${A}
83
83
  Upgrade: ${s.version} -> ${i}
84
84
  Plan: ${v.planId}
85
85
  State: ${v.state}
86
- ${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:A,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:v}}}}async function ld(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},repository:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return k("Apply arguments are invalid.")}if(typeof r.values.project!="string")return k("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return k("Apply requires --approve <planId>.");let n=N.resolve(r.values.project),o=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),a=o.capabilities?.[0];if(a===void 0)return k("Project manifest must select one capability.");let i=await Dr({projectRoot:n,planId:r.values.approve}),s=new Date,c,l,d;if(i.action==="remove"){let u=await Te(n);if(u===null)return k("Remove apply requires the verified Lock.");let m=await fh(n,await Ie(Se(i.capability.capabilityId,i.capability.version)),u,t);c=m,l="registryConfigs"in m?m.registryConfigs:void 0,d="endpointBindings"in m?m.endpointBindings:void 0}else if(i.action==="upgrade"){let u=await Te(n),m=u?.capabilities.find(I=>I.capabilityId===i.capability.capabilityId);if(u===null||m===void 0)return k("Upgrade apply requires the verified source Lock.");if((m.consumerProfile==="standalone-npm-package"||m.consumerProfile==="workspace-npm-package")&&i.capability.version==="1.1.0"){if(typeof r.values.repository!="string")return k("npm package upgrade apply requires the approved --repository value.");o={...o,profile:{...o.profile,parameters:{...o.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return k("--repository is not valid for this apply operation.");let g=await Ie(Se(i.capability.capabilityId,i.capability.version)),h={...o,capabilities:o.capabilities.map(I=>I.capabilityId===i.capability.capabilityId?{capabilityId:i.capability.capabilityId,version:i.capability.version}:I)},w=g.release.schemaVersion===2&&g.release.availability.maturity!=="withdrawn"&&g.release.packageSources.length>0,_=w?gi(h,g):void 0,v=w?await $i(n,g,t,_):void 0;l=v?.registryConfigs,d=v?.endpointBindings;let A=ph(i.capability.capabilityId,i.capability.version);c=await xl({projectRoot:n,manifest:o,currentLock:u,sourceRelease:await Ie(Se(m.capabilityId,m.version)),targetRelease:g,...A===void 0?{}:{targetTemplate:A},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...i.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...v===void 0?{}:{packageSource:v}})}else if(i.action==="adopt"&&o.profile?.id==="nextjs-full-stack-application"&&o.capabilities?.[0]?.capabilityId===i.capability.capabilityId&&o.capabilities?.[0]?.version!==i.capability.version)c=await _l({projectRoot:n,manifest:o,release:await Ie(Se(i.capability.capabilityId,i.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(o.capabilities?.some(u=>u.capabilityId===i.capability.capabilityId&&u.version===i.capability.version)){let u=await Ie(Se(a.capabilityId,a.version)),m=await Te(n).catch(()=>null);c=await(o.profile?.id==="standalone-npm-package"?ho:o.profile?.id==="react-component-library"?yo:o.profile?.id==="nextjs-full-stack-application"?wn:o.profile?.id==="workspace-npm-package"?wo:o.profile?.id==="workspace-node-application"?Io:o.profile?.id==="workspace-web-application"?vo:o.profile?.id==="workspace-expo-application"?bo:La)({projectRoot:n,manifest:o,release:u,...m===null?{}:{currentLock:m},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let u=await Te(n);if(u===null)return k("Feature apply requires the verified Profile Lock.");let m=await Ie(Se(i.capability.capabilityId,i.capability.version)),g=await $i(n,m,t);l=g?.registryConfigs,d=g?.endpointBindings,c=await Yl({projectRoot:n,manifest:o,release:m,currentLock:u,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...i.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}})}let p;if(i.packageAdoption!==void 0){if(l===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires a trusted Package Source Provider");let{createPnpmPackageManagerPort:u}=await import("./optional-runtime.js");if(d===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");p=await Sm({projectRoot:c.transactionRoot??n,plan:i,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString(),packageManager:u({registries:l,endpointBindings:d,...t.packageStoreRoot===void 0?{}:{storeRoot:t.packageStoreRoot}})})}else{let u=await nr({projectRoot:n,plan:i,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});p=await or(u)}let f=ee(n);return{outputMode:z(e),human:`Project: ${f}
86
+ ${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:A,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:v}}}}async function pd(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},repository:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return k("Apply arguments are invalid.")}if(typeof r.values.project!="string")return k("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return k("Apply requires --approve <planId>.");let n=N.resolve(r.values.project),o=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),a=o.capabilities?.[0];if(a===void 0)return k("Project manifest must select one capability.");let i=await Sr({projectRoot:n,planId:r.values.approve}),s=new Date,c,l,d;if(i.action==="remove"){let u=await Le(n);if(u===null)return k("Remove apply requires the verified Lock.");let m=await wh(n,await Ie(De(i.capability.capabilityId,i.capability.version)),u,t);c=m,l="registryConfigs"in m?m.registryConfigs:void 0,d="endpointBindings"in m?m.endpointBindings:void 0}else if(i.action==="upgrade"){let u=await Le(n),m=u?.capabilities.find(I=>I.capabilityId===i.capability.capabilityId);if(u===null||m===void 0)return k("Upgrade apply requires the verified source Lock.");if((m.consumerProfile==="standalone-npm-package"||m.consumerProfile==="workspace-npm-package")&&i.capability.version==="1.1.0"){if(typeof r.values.repository!="string")return k("npm package upgrade apply requires the approved --repository value.");o={...o,profile:{...o.profile,parameters:{...o.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return k("--repository is not valid for this apply operation.");let g=await Ie(De(i.capability.capabilityId,i.capability.version)),h={...o,capabilities:o.capabilities.map(I=>I.capabilityId===i.capability.capabilityId?{capabilityId:i.capability.capabilityId,version:i.capability.version}:I)},w=g.release.schemaVersion===2&&g.release.availability.maturity!=="withdrawn"&&g.release.packageSources.length>0,_=w?hi(h,g):void 0,v=w?await Ci(n,g,t,_):void 0;l=v?.registryConfigs,d=v?.endpointBindings;let A=hh(i.capability.capabilityId,i.capability.version);c=await Ml({projectRoot:n,manifest:o,currentLock:u,sourceRelease:await Ie(De(m.capabilityId,m.version)),targetRelease:g,...A===void 0?{}:{targetTemplate:A},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...i.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...v===void 0?{}:{packageSource:v}})}else if(i.action==="adopt"&&o.profile?.id==="nextjs-full-stack-application"&&o.capabilities?.[0]?.capabilityId===i.capability.capabilityId&&o.capabilities?.[0]?.version!==i.capability.version)c=await El({projectRoot:n,manifest:o,release:await Ie(De(i.capability.capabilityId,i.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(o.capabilities?.some(u=>u.capabilityId===i.capability.capabilityId&&u.version===i.capability.version)){let u=await Ie(De(a.capabilityId,a.version)),m=await Le(n).catch(()=>null);c=await(o.profile?.id==="standalone-npm-package"?wo:o.profile?.id==="react-component-library"?Io:o.profile?.id==="nextjs-full-stack-application"?In:o.profile?.id==="workspace-npm-package"?vo:o.profile?.id==="workspace-node-application"?bo:o.profile?.id==="workspace-web-application"?ko:o.profile?.id==="workspace-expo-application"?Ro:xa)({projectRoot:n,manifest:o,release:u,...m===null?{}:{currentLock:m},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let u=await Le(n);if(u===null)return k("Feature apply requires the verified Profile Lock.");let m=await Ie(De(i.capability.capabilityId,i.capability.version)),g=await Ci(n,m,t);l=g?.registryConfigs,d=g?.endpointBindings,c=await Xl({projectRoot:n,manifest:o,release:m,currentLock:u,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...i.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}})}let p;if(i.packageAdoption!==void 0){if(l===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires a trusted Package Source Provider");let{createPnpmPackageManagerPort:u}=await import("./optional-runtime.js");if(d===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");p=await Tm({projectRoot:c.transactionRoot??n,plan:i,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString(),packageManager:u({registries:l,endpointBindings:d,...t.packageStoreRoot===void 0?{}:{storeRoot:t.packageStoreRoot}})})}else{let u=await nr({projectRoot:n,plan:i,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});p=await or(u)}let f=ee(n);return{outputMode:z(e),human:`Project: ${f}
87
87
  Plan: ${i.planId}
88
88
  State: ${p.state}
89
89
  Files applied: ${p.operations.length}
90
- `+(i.packageAdoption===void 0?`Next: cd ${f} && corepack pnpm install`:`Next: dyyto verify --project ${f}`),value:{schemaVersion:1,ok:!0,command:"apply",result:{project:f,planId:i.planId,transaction:p}}}}async function IP(e,t){let r;try{r=pe({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},output:{type:"string"},locale:{type:"string"},channel:{type:"string"},approve:{type:"string"},"recipe-version":{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return k("Scaffold example arguments are invalid.")}if(r.positionals.length!==1||typeof r.values.output!="string"||r.values.locale!=="zh-CN"||r.values.channel!=="development"||typeof r.values["recipe-version"]!="string"||typeof r.values["artifact-workspace"]!="string"||typeof r.values["artifact-bundle"]!="string"||typeof r.values["artifact-port"]!="string")return k("Scaffold example requires recipe, --recipe-version, --output, --locale zh-CN, --channel development and exact Artifact source arguments.");let n=r.positionals[0];if(typeof n!="string")return k("Scaffold example recipe identifier is invalid.");let o=await Og(dP(n,r.values["recipe-version"])),a=Number(r.values["artifact-port"]),i=r.values["artifact-workspace"],s=r.values["artifact-bundle"],c=r.values["artifact-fallback-bundle"],l=Array.isArray(c)?c.filter(u=>typeof u=="string"):[],d=r.values.approve;if(d===void 0){let u=await eh({workspaceRoot:i,output:r.values.output,recipe:o,artifactBundle:s,artifactFallbackBundles:l,artifactPort:a});return{outputMode:z(e),human:`\u793A\u4F8B\uFF1A${o.title}
90
+ `+(i.packageAdoption===void 0?`Next: cd ${f} && corepack pnpm install`:`Next: dyyto verify --project ${f}`),value:{schemaVersion:1,ok:!0,command:"apply",result:{project:f,planId:i.planId,transaction:p}}}}async function vP(e,t){let r;try{r=pe({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},output:{type:"string"},locale:{type:"string"},channel:{type:"string"},approve:{type:"string"},"recipe-version":{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return k("Scaffold example arguments are invalid.")}if(r.positionals.length!==1||typeof r.values.output!="string"||r.values.locale!=="zh-CN"||r.values.channel!=="development"||typeof r.values["recipe-version"]!="string"||typeof r.values["artifact-workspace"]!="string"||typeof r.values["artifact-bundle"]!="string"||typeof r.values["artifact-port"]!="string")return k("Scaffold example requires recipe, --recipe-version, --output, --locale zh-CN, --channel development and exact Artifact source arguments.");let n=r.positionals[0];if(typeof n!="string")return k("Scaffold example recipe identifier is invalid.");let o=await Cg(pP(n,r.values["recipe-version"])),a=Number(r.values["artifact-port"]),i=r.values["artifact-workspace"],s=r.values["artifact-bundle"],c=r.values["artifact-fallback-bundle"],l=Array.isArray(c)?c.filter(u=>typeof u=="string"):[],d=r.values.approve;if(d===void 0){let u=await ah({workspaceRoot:i,output:r.values.output,recipe:o,artifactBundle:s,artifactFallbackBundles:l,artifactPort:a});return{outputMode:z(e),human:`\u793A\u4F8B\uFF1A${o.title}
91
91
  Plan\uFF1A${u.planId}
92
92
  \u72B6\u6001\uFF1A\u7B49\u5F85\u9636\u6BB5\u6279\u51C6
93
- Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:u}}}}if(typeof d!="string")return k("Scaffold example --approve must be an exact Plan ID.");let p=["--artifact-workspace",i,"--artifact-bundle",s,...l.flatMap(u=>["--artifact-fallback-bundle",u]),"--artifact-port",String(a)],f;try{f=await th({workspaceRoot:i,approvedPlanId:d,recipe:o,execute:async(u,m)=>{if(m.artifactBundle!==s||JSON.stringify(m.artifactFallbackBundles)!==JSON.stringify(l)||m.artifactPort!==a)throw new Error("SCAFFOLD_SOURCE_PLAN_MISMATCH");let g=[],w=(await mh([u,"--profile","nextjs-full-stack-application","--capability",`${o.rootProfile.capabilityId}@${o.rootProfile.version}`,"--name",o.recipeId])).value.result.plan.planId;await ld(["--project",u,"--approve",w],t),g.push(w),await dh("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:u,env:{...process.env,CI:"true",NO_COLOR:"1",pnpm_config_store_dir:N.join(i,".dyyto","resolution-worker","store","shared")},timeout:3e5,maxBuffer:4*1024*1024}),await dd(["--project",u]);for(let _ of o.capabilities){let v=`${_.capabilityId}@${_.version}`;try{let I=(await gh(["--project",u,"--capability",v,"--channel",_.channel,...p],t)).value.result.plan.planId;await ld(["--project",u,"--approve",I,...p],t),await dd(["--project",u]),g.push(I)}catch(A){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${v}:${A instanceof Error?A.message:"UNKNOWN"}`,{cause:A})}}return g}})}catch(u){let m=u instanceof Ze&&u.cause instanceof Error?u.cause.message:"SCAFFOLD_APPLY_FAILED";throw new T({code:"SCAFFOLD_APPLY_FAILED",message:`\u793A\u4F8B\u811A\u624B\u67B6\u6267\u884C\u5931\u8D25\uFF1A${m}`,exitCode:1,nextStep:"\u68C0\u67E5\u5931\u8D25\u7684 Capability \u4E0E\u4E8B\u52A1 Evidence\uFF0C\u4FEE\u590D\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002"})}return{outputMode:z(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${N.relative(process.cwd(),f.output)}
93
+ Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:u}}}}if(typeof d!="string")return k("Scaffold example --approve must be an exact Plan ID.");let p=["--artifact-workspace",i,"--artifact-bundle",s,...l.flatMap(u=>["--artifact-fallback-bundle",u]),"--artifact-port",String(a)],f;try{f=await ih({workspaceRoot:i,approvedPlanId:d,recipe:o,execute:async(u,m)=>{if(m.artifactBundle!==s||JSON.stringify(m.artifactFallbackBundles)!==JSON.stringify(l)||m.artifactPort!==a)throw new Error("SCAFFOLD_SOURCE_PLAN_MISMATCH");let g=[],w=(await Ih([u,"--profile","nextjs-full-stack-application","--capability",`${o.rootProfile.capabilityId}@${o.rootProfile.version}`,"--name",o.recipeId])).value.result.plan.planId;await pd(["--project",u,"--approve",w],t),g.push(w),await gh("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:u,env:{...process.env,CI:"true",NO_COLOR:"1",pnpm_config_store_dir:N.join(i,".dyyto","resolution-worker","store","shared")},timeout:3e5,maxBuffer:4*1024*1024}),await ud(["--project",u]);for(let _ of o.capabilities){let v=`${_.capabilityId}@${_.version}`;try{let I=(await vh(["--project",u,"--capability",v,"--channel",_.channel,...p],t)).value.result.plan.planId;await pd(["--project",u,"--approve",I,...p],t),await ud(["--project",u]),g.push(I)}catch(A){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${v}:${A instanceof Error?A.message:"UNKNOWN"}`,{cause:A})}}return g}})}catch(u){let m=u instanceof tt&&u.cause instanceof Error?u.cause.message:"SCAFFOLD_APPLY_FAILED";throw new T({code:"SCAFFOLD_APPLY_FAILED",message:`\u793A\u4F8B\u811A\u624B\u67B6\u6267\u884C\u5931\u8D25\uFF1A${m}`,exitCode:1,nextStep:"\u68C0\u67E5\u5931\u8D25\u7684 Capability \u4E0E\u4E8B\u52A1 Evidence\uFF0C\u4FEE\u590D\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002"})}return{outputMode:z(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${N.relative(process.cwd(),f.output)}
94
94
  Evidence\uFF1A${f.evidenceId}
95
- \u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function Vo(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?k(`${t} requires --project <directory>.`):{projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function dd(e){let{projectRoot:t,outputMode:r}=Vo(e,"Verify"),n=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),o=await Te(t),a=await xt(t).catch(()=>{}),i;try{let h=o?.capabilities.map(_=>_.appliedPlanId)??[],w=o?.capabilities.map(_=>_.capabilityId)??[];try{i=await Za(t,h,t,w)}catch(_){if(!(_ instanceof be)||_.code!=="PLAN_NOT_FOUND"||a===void 0)throw _;i=await Za(t,h,a.transactionRoot,w)}}catch(h){if(!(h instanceof be)||h.code!=="PLAN_NOT_FOUND"||o===null)throw h;let _=(await pd(["--project",t,"--json"])).value.result,v=await So({projectRoot:t,lock:o});if(_.state!=="adopted"||v.some(I=>I.code!=="EVIDENCE_VALID"))throw new T({code:"VERIFICATION_STATE_INVALID",message:"The adopted project has drifted or its verification evidence is invalid.",exitCode:4,nextStep:"Run dyyto inspect and dyyto doctor before creating a new plan."});let A=ee(t);return{outputMode:r,human:`Project: ${A}
95
+ \u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function Uo(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?k(`${t} requires --project <directory>.`):{projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function ud(e){let{projectRoot:t,outputMode:r}=Uo(e,"Verify"),n=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),o=await Le(t),a=await Mt(t).catch(()=>{}),i;try{let h=o?.capabilities.map(_=>_.appliedPlanId)??[],w=o?.capabilities.map(_=>_.capabilityId)??[];try{i=await Qa(t,h,t,w)}catch(_){if(!(_ instanceof be)||_.code!=="PLAN_NOT_FOUND"||a===void 0)throw _;i=await Qa(t,h,a.transactionRoot,w)}}catch(h){if(!(h instanceof be)||h.code!=="PLAN_NOT_FOUND"||o===null)throw h;let _=(await fd(["--project",t,"--json"])).value.result,v=await jo({projectRoot:t,lock:o});if(_.state!=="adopted"||v.some(I=>I.code!=="EVIDENCE_VALID"))throw new T({code:"VERIFICATION_STATE_INVALID",message:"The adopted project has drifted or its verification evidence is invalid.",exitCode:4,nextStep:"Run dyyto inspect and dyyto doctor before creating a new plan."});let A=ee(t);return{outputMode:r,human:`Project: ${A}
96
96
  State: adopted
97
- Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:A,state:"adopted",reused:!0,lock:o}}}}let s=await Ie(Se(i.capability.capabilityId,i.capability.version)),c=i.packageAdoption===void 0?void 0:a?.transactionRoot;if(o?.capabilities.some(h=>h.appliedPlanId===i.planId)){let h=ee(t);return{outputMode:r,human:`Project: ${h}
97
+ Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:A,state:"adopted",reused:!0,lock:o}}}}let s=await Ie(De(i.capability.capabilityId,i.capability.version)),c=i.packageAdoption===void 0?void 0:a?.transactionRoot;if(o?.capabilities.some(h=>h.appliedPlanId===i.planId)){let h=ee(t);return{outputMode:r,human:`Project: ${h}
98
98
  State: adopted
99
99
  Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:h,state:"adopted",reused:!0}}}}if(i.action==="remove"){if(o===null)return k("Remove verification requires the previous verified Lock.");let h=o.capabilities.find($=>$.capabilityId===i.capability.capabilityId&&$.version===i.capability.version);if(h===void 0){let $=ee(t);return{outputMode:r,human:`Project: ${$}
100
100
  State: removed
101
- Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:o}}}}let w=i.packageAdoption?.schemaVersion===2&&i.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${i.packageAdoption.topology.unitRelativeRoot}/`:"",_=new Map(i.operations.flatMap($=>$.desiredDigest===void 0||!$.path.startsWith(w)?[]:[[$.path.slice(w.length),$.desiredDigest]])),v=o.capabilities.filter($=>$!==h),A=[...v].filter($=>$.packageAdoption!==void 0).sort(($,P)=>$.committedAt.localeCompare(P.committedAt)).at(-1)?.packageAdoption,I=v.flatMap($=>$.assets).map($=>({...$,digest:_.get($.path)??($.path==="package.json"?A?.packageJsonDigest:void 0)??$.digest})),{executeRemovalVerification:R}=await import("./optional-runtime.js"),S=await R({projectRoot:t,release:s,remainingAssets:I,removedPaths:h.assets.map($=>$.path)}),C=await gl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:i,release:s.release,verificationResults:S.results,committedAt:new Date().toISOString(),previousLock:o,expectedAssets:I}),ce=ee(t);return{outputMode:r,human:`Project: ${ce}
101
+ Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:o}}}}let w=i.packageAdoption?.schemaVersion===2&&i.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${i.packageAdoption.topology.unitRelativeRoot}/`:"",_=new Map(i.operations.flatMap($=>$.desiredDigest===void 0||!$.path.startsWith(w)?[]:[[$.path.slice(w.length),$.desiredDigest]])),v=o.capabilities.filter($=>$!==h),A=[...v].filter($=>$.packageAdoption!==void 0).sort(($,P)=>$.committedAt.localeCompare(P.committedAt)).at(-1)?.packageAdoption,I=v.flatMap($=>$.assets).map($=>({...$,digest:_.get($.path)??($.path==="package.json"?A?.packageJsonDigest:void 0)??$.digest})),{executeRemovalVerification:R}=await import("./optional-runtime.js"),D=await R({projectRoot:t,release:s,remainingAssets:I,removedPaths:h.assets.map($=>$.path)}),C=await yl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:i,release:s.release,verificationResults:D.results,committedAt:new Date().toISOString(),previousLock:o,expectedAssets:I}),ce=ee(t);return{outputMode:r,human:`Project: ${ce}
102
102
  State: removed
103
- ${S.summaries.map($=>`${$.verifierId}: ${$.result}`).join(`
104
- `)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:ce,state:"removed",verifiers:S.summaries,lock:C}}}}let l=i.packageAdoption?.schemaVersion===2&&i.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${i.packageAdoption.topology.unitRelativeRoot}/`:"",d=(s.release.kind==="engineering-feature"?s.release.assets.map(h=>({path:h.path,desiredDigest:h.ownership==="managed-region"?h.digest:i.operations.find(w=>w.path===`${l}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):i.action==="upgrade"?s.release.assets.map(h=>({path:h.path,desiredDigest:i.operations.find(w=>w.path===`${l}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):i.operations).map(({path:h,desiredDigest:w,ownership:_,regionId:v})=>w===void 0?k("Applied plan is missing a desired asset digest."):{path:h,digest:w,ownership:_==="managed-region"?"managed-region":_==="seed-file"?"seed-file":"owned-file",...v===void 0?{}:{regionId:v}}),{executeVerification:p}=await import("./optional-runtime.js"),f=await p({projectRoot:t,release:s,expectedAssets:d}),u=i.action==="adopt"&&i.operations.every(h=>h.disposition==="noop")&&o?.capabilities.some(h=>h.capabilityId===i.capability.capabilityId)===!0,m=await ml({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:i,release:s.release,verificationResults:f.results,committedAt:new Date().toISOString(),expectedAssets:d,...(i.action==="upgrade"||s.release.kind==="engineering-feature"||u)&&o!==null?{previousLock:o}:{}}),g=ee(t);return{outputMode:r,human:`Project: ${g}
103
+ ${D.summaries.map($=>`${$.verifierId}: ${$.result}`).join(`
104
+ `)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:ce,state:"removed",verifiers:D.summaries,lock:C}}}}let l=i.packageAdoption?.schemaVersion===2&&i.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${i.packageAdoption.topology.unitRelativeRoot}/`:"",d=(s.release.kind==="engineering-feature"?s.release.assets.map(h=>({path:h.path,desiredDigest:h.ownership==="managed-region"?h.digest:i.operations.find(w=>w.path===`${l}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):i.action==="upgrade"?s.release.assets.map(h=>({path:h.path,desiredDigest:i.operations.find(w=>w.path===`${l}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):i.operations).map(({path:h,desiredDigest:w,ownership:_,regionId:v})=>w===void 0?k("Applied plan is missing a desired asset digest."):{path:h,digest:w,ownership:_==="managed-region"?"managed-region":_==="seed-file"?"seed-file":"owned-file",...v===void 0?{}:{regionId:v}}),{executeVerification:p}=await import("./optional-runtime.js"),f=await p({projectRoot:t,release:s,expectedAssets:d}),u=i.action==="adopt"&&i.operations.every(h=>h.disposition==="noop")&&o?.capabilities.some(h=>h.capabilityId===i.capability.capabilityId)===!0,m=await hl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:i,release:s.release,verificationResults:f.results,committedAt:new Date().toISOString(),expectedAssets:d,...(i.action==="upgrade"||s.release.kind==="engineering-feature"||u)&&o!==null?{previousLock:o}:{}}),g=ee(t);return{outputMode:r,human:`Project: ${g}
105
105
  State: adopted
106
106
  `+f.summaries.map(h=>`${h.verifierId}: ${h.result}`).join(`
107
- `),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function pd(e){let{projectRoot:t,outputMode:r}=Vo(e,"Inspect"),n=await vl(t),o=ee(t);if(n.required)return{outputMode:r,human:`Project: ${o}
107
+ `),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function fd(e){let{projectRoot:t,outputMode:r}=Uo(e,"Inspect"),n=await kl(t),o=ee(t);if(n.required)return{outputMode:r,human:`Project: ${o}
108
108
  State: recovery-required
109
109
  Transaction: ${n.kind}
110
- Next: dyyto recover --project ${o}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,state:"recovery-required",recovery:n}}};let a=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),i=a.capabilities?.[0];if(i===void 0)return k("Project manifest must select one capability.");let s=await Ie(Se(i.capabilityId,i.version)),c=await Te(t);try{let A=await Za(t,c?.capabilities.map(I=>I.appliedPlanId)??[],t,c?.capabilities.map(I=>I.capabilityId)??[]);if(A.action==="upgrade"||A.action==="adopt")return{outputMode:r,human:`Project: ${o}
110
+ Next: dyyto recover --project ${o}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,state:"recovery-required",recovery:n}}};let a=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),i=a.capabilities?.[0];if(i===void 0)return k("Project manifest must select one capability.");let s=await Ie(De(i.capabilityId,i.version)),c=await Le(t);try{let A=await Qa(t,c?.capabilities.map(I=>I.appliedPlanId)??[],t,c?.capabilities.map(I=>I.capabilityId)??[]);if(A.action==="upgrade"||A.action==="adopt")return{outputMode:r,human:`Project: ${o}
111
111
  State: applied-unverified
112
112
  Plan: ${A.planId}
113
- Next: dyyto verify --project ${o}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,state:"applied-unverified",operations:A.operations,lock:c}}}}catch{}let l=new Date,d={projectRoot:t,release:s,...c===null?{}:{currentLock:c},generatedAt:l.toISOString(),expiresAt:new Date(l.getTime()+1800*1e3).toISOString()},p=a.profile?.id==="standalone-npm-package"?await fm({...d,manifest:a}):a.profile?.id==="react-component-library"?await mm({...d,manifest:a}):a.profile?.id==="nextjs-full-stack-application"?await gm({...d,manifest:a}):a.profile?.id==="workspace-npm-package"?await hm({...d,manifest:a}):a.profile?.id==="workspace-node-application"?await ym({...d,manifest:a}):a.profile?.id==="workspace-web-application"?await wm({...d,manifest:a}):a.profile?.id==="workspace-expo-application"?await Im({...d,manifest:a}):await Ta(d),f=c===null?void 0:[...c.capabilities].filter(A=>A.packageAdoption!==void 0).sort((A,I)=>A.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,u=f===void 0?void 0:await re(N.join(t,"package.json")).then(y).catch(()=>{}),m=p.operations.map(A=>A.path==="package.json"&&u===f?{...A,desiredDigest:f,disposition:"noop",conflictCode:void 0}:A),g=c===null?[]:await Kg({projectRoot:t,lock:c,excludeCapabilityIds:[i.capabilityId]}),h=g.some(A=>A.disposition==="conflict"),w=f!==void 0&&m.every(A=>A.disposition==="noop")?{...p,state:"adopted"}:p,_={...w,state:h?"drifted":w.state,operations:[...m,...g]},v=c?.capabilities.flatMap(A=>A.packageAdoption?.sources.map(I=>({capabilityId:A.capabilityId,registryId:I.registryId,packageName:I.packageName,version:I.version,integrity:I.integrity}))??[])??[];return{outputMode:r,human:`Project: ${o}
113
+ Next: dyyto verify --project ${o}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,state:"applied-unverified",operations:A.operations,lock:c}}}}catch{}let l=new Date,d={projectRoot:t,release:s,...c===null?{}:{currentLock:c},generatedAt:l.toISOString(),expiresAt:new Date(l.getTime()+1800*1e3).toISOString()},p=a.profile?.id==="standalone-npm-package"?await wm({...d,manifest:a}):a.profile?.id==="react-component-library"?await Im({...d,manifest:a}):a.profile?.id==="nextjs-full-stack-application"?await vm({...d,manifest:a}):a.profile?.id==="workspace-npm-package"?await bm({...d,manifest:a}):a.profile?.id==="workspace-node-application"?await km({...d,manifest:a}):a.profile?.id==="workspace-web-application"?await Rm({...d,manifest:a}):a.profile?.id==="workspace-expo-application"?await _m({...d,manifest:a}):await La(d),f=c===null?void 0:[...c.capabilities].filter(A=>A.packageAdoption!==void 0).sort((A,I)=>A.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,u=f===void 0?void 0:await re(N.join(t,"package.json")).then(y).catch(()=>{}),m=p.operations.map(A=>A.path==="package.json"&&u===f?{...A,desiredDigest:f,disposition:"noop",conflictCode:void 0}:A),g=c===null?[]:await Qg({projectRoot:t,lock:c,excludeCapabilityIds:[i.capabilityId]}),h=g.some(A=>A.disposition==="conflict"),w=f!==void 0&&m.every(A=>A.disposition==="noop")?{...p,state:"adopted"}:p,_={...w,state:h?"drifted":w.state,operations:[...m,...g]},v=c?.capabilities.flatMap(A=>A.packageAdoption?.sources.map(I=>({capabilityId:A.capabilityId,registryId:I.registryId,packageName:I.packageName,version:I.version,integrity:I.integrity}))??[])??[];return{outputMode:r,human:`Project: ${o}
114
114
  State: ${_.state}
115
115
  `+_.operations.map(A=>`${A.path}: ${A.disposition}`).join(`
116
116
  `)+(v.length===0?"":`
117
117
  \u5305\u6765\u6E90\uFF1A
118
118
  ${v.map(A=>`- ${A.packageName}@${A.version}\uFF08Registry: ${A.registryId}\uFF0C\u5B8C\u6574\u6027\u5DF2\u9501\u5B9A\uFF09`).join(`
119
- `)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,..._,lock:c,packageSources:v}}}}async function vP(e){let{projectRoot:t,outputMode:r}=Vo(e,"Recover"),n=await dm({projectRoot:t,now:new Date().toISOString()}),o=ee(t);return{outputMode:r,human:n.kind==="none"?`Project: ${o}
119
+ `)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,..._,lock:c,packageSources:v}}}}async function bP(e){let{projectRoot:t,outputMode:r}=Uo(e,"Recover"),n=await gm({projectRoot:t,now:new Date().toISOString()}),o=ee(t);return{outputMode:r,human:n.kind==="none"?`Project: ${o}
120
120
  Recovery: not-required`:`Project: ${o}
121
121
  Recovery: ${n.kind}
122
- State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:o,recovery:n}}}}function hh(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},command:{type:"string"},after:{type:"string"}}})}catch{return k(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?k(`${t} requires --project.`):{parsed:r,projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function bP(e,t){let{parsed:r,projectRoot:n,outputMode:o}=hh(t,"Lifecycle"),a=r.values.command;if((e==="start"||e==="restart")&&a!=="dev")return k("Lifecycle start/restart requires the supported --command dev.");try{let{projectProcessLogs:i,projectProcessStatus:s,startProjectProcess:c,stopProjectProcess:l}=await import("./optional-runtime.js"),d;if(e==="status")d=await s(n);else if(e==="logs"){let f=r.values.after===void 0?0:Number(r.values.after);if(!Number.isSafeInteger(f)||f<0)return k("Lifecycle logs --after must be a non-negative integer cursor.");d=await i(n,f)}else if(e==="start")await sh(n,"dev"),d=await c(n,"dev");else if(e==="stop")d=await l(n);else if(e==="restart")await sh(n,"dev"),await l(n),d=await c(n,"dev");else return k("Lifecycle action must be start, stop, restart, status, or logs.");let p=ee(n);return{outputMode:o,human:`Project: ${p}
122
+ State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:o,recovery:n}}}}function bh(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},command:{type:"string"},after:{type:"string"}}})}catch{return k(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?k(`${t} requires --project.`):{parsed:r,projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function kP(e,t){let{parsed:r,projectRoot:n,outputMode:o}=bh(t,"Lifecycle"),a=r.values.command;if((e==="start"||e==="restart")&&a!=="dev")return k("Lifecycle start/restart requires the supported --command dev.");try{let{projectProcessLogs:i,projectProcessStatus:s,startProjectProcess:c,stopProjectProcess:l}=await import("./optional-runtime.js"),d;if(e==="status")d=await s(n);else if(e==="logs"){let f=r.values.after===void 0?0:Number(r.values.after);if(!Number.isSafeInteger(f)||f<0)return k("Lifecycle logs --after must be a non-negative integer cursor.");d=await i(n,f)}else if(e==="start")await uh(n,"dev"),d=await c(n,"dev");else if(e==="stop")d=await l(n);else if(e==="restart")await uh(n,"dev"),await l(n),d=await c(n,"dev");else return k("Lifecycle action must be start, stop, restart, status, or logs.");let p=ee(n);return{outputMode:o,human:`Project: ${p}
123
123
  Lifecycle: ${e}
124
- State: ${"state"in d?d.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...d,projectRoot:void 0}}}}catch(i){let s=typeof i=="object"&&i!==null&&"code"in i?String(i.code):"PROJECT_PROCESS_FAILED";throw new T({code:s,message:i instanceof Error?i.message:"Project lifecycle operation failed.",exitCode:4,nextStep:"Inspect lifecycle status and project logs before retrying."})}}async function sh(e,t){let r=X(JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")));if(r.template===void 0)throw new T({code:"PROJECT_COMMAND_UNSUPPORTED",message:"Managed lifecycle requires a formal Template Release.",exitCode:4,nextStep:"Use the project's standard package script directly or adopt a supported Template."});if((await $o(Ci(r.template.id,r.template.version))).commands[t]!==t)throw new T({code:"PROJECT_COMMAND_UNSUPPORTED",message:"The selected Template does not declare the requested lifecycle command.",exitCode:4,nextStep:"Choose a command declared by the project's Template Release."})}async function kP(e){let{projectRoot:t,outputMode:r}=hh(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),o=await n(t),a=ee(t),i=o.details.flatMap(l=>[`${l.title} (${l.capabilityId}@${l.version}) [${l.status}]`,` ${l.purpose}`,...l.packages.map(d=>` package ${d.packageName}@${d.version} [${d.state}]`),...l.packages.flatMap(d=>d.imports.map(p=>` import { ${p.symbol} } from '${p.importFrom}'${p.referencePath?` -> ${p.referencePath}`:""}`)),...l.codeAssets.map(d=>` asset ${d.sourcePath} -> ${d.targetPath} (${d.ownership})`)]),s=l=>o.platformDependencies.filter(d=>d.source===l).length,c=o.platformDependencies.map(l=>` platform ${l.packageName} ${l.version} [${l.source}]`);return{outputMode:r,human:`Project: ${a}
124
+ State: ${"state"in d?d.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...d,projectRoot:void 0}}}}catch(i){let s=typeof i=="object"&&i!==null&&"code"in i?String(i.code):"PROJECT_PROCESS_FAILED";throw new T({code:s,message:i instanceof Error?i.message:"Project lifecycle operation failed.",exitCode:4,nextStep:"Inspect lifecycle status and project logs before retrying."})}}async function uh(e,t){let r=X(JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")));if(r.template===void 0)throw new T({code:"PROJECT_COMMAND_UNSUPPORTED",message:"Managed lifecycle requires a formal Template Release.",exitCode:4,nextStep:"Use the project's standard package script directly or adopt a supported Template."});if((await To(Ti(r.template.id,r.template.version))).commands[t]!==t)throw new T({code:"PROJECT_COMMAND_UNSUPPORTED",message:"The selected Template does not declare the requested lifecycle command.",exitCode:4,nextStep:"Choose a command declared by the project's Template Release."})}async function RP(e){let{projectRoot:t,outputMode:r}=bh(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),o=await n(t),a=ee(t),i=o.details.flatMap(l=>[`${l.title} (${l.capabilityId}@${l.version}) [${l.status}]`,` ${l.purpose}`,...l.packages.map(d=>` package ${d.packageName}@${d.version} [${d.state}]`),...l.packages.flatMap(d=>d.imports.map(p=>` import { ${p.symbol} } from '${p.importFrom}'${p.referencePath?` -> ${p.referencePath}`:""}`)),...l.codeAssets.map(d=>` asset ${d.sourcePath} -> ${d.targetPath} (${d.ownership})`)]),s=l=>o.platformDependencies.filter(d=>d.source===l).length,c=o.platformDependencies.map(l=>` platform ${l.packageName} ${l.version} [${l.source}]`);return{outputMode:r,human:`Project: ${a}
125
125
  Declared: ${o.declared.length}
126
126
  Locked: ${o.locked.length}
127
127
  Verified: ${o.verified.length}
@@ -129,7 +129,7 @@ Findings: ${o.findings.length}
129
129
  Unmanaged platform dependencies: ${o.platformDependencies.length} (workspace ${s("workspace")} / registry ${s("registry")} / other ${s("other")})
130
130
 
131
131
  ${[...i,...c].join(`
132
- `)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:a,...o,projectRoot:void 0}}}}async function RP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},source:{type:"string"},registry:{type:"string"},approve:{type:"string"},verify:{type:"string"},install:{type:"boolean"}}})}catch{return k("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return k("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(m=>typeof m=="string").length;if(r>1)return k("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch:o,switchProjectPackageSources:a,verifyPackageSourceSwitch:i,PackageSourceSwitchError:s}=await import("./optional-runtime.js"),c=t.values.source??"workspace";if(r===0&&c!=="workspace"&&c!=="public"&&c!=="private")return k("Packages switch requires --source workspace|public|private.");let l=N.resolve(t.values.project),d=await(typeof t.values.approve=="string"?t.values.install===!0?n({projectRoot:l,approvedPlanId:t.values.approve}):o({projectRoot:l,approvedPlanId:t.values.approve}):typeof t.values.verify=="string"?i({projectRoot:l,planId:t.values.verify}):a({projectRoot:l,scope:"@aipt/",source:c,...typeof t.values.registry=="string"?{registry:t.values.registry}:{}})).catch(m=>{throw m instanceof s?new T({code:m.code,message:m.message,exitCode:4,nextStep:"Run dyyto packages switch --help."}):m}),p=ee(d.projectRoot),f=d.changes.map(m=>` ${m.field} ${m.packageName}: ${m.from} -> ${m.to}`),u=d.state==="reviewable"?`\u5BA1\u6838\u4E0D\u53EF\u53D8 Plan \u540E\u4F7F\u7528 --approve ${d.planId} \u7CBE\u786E\u6279\u51C6\u3002`:d.state==="applied"?`\u4F7F\u7528 --verify ${d.planId} \u9A8C\u8BC1\u3002`:"Package source manifest \u5DF2\u4E0E\u6279\u51C6\u7684 Plan \u4E00\u81F4\u3002";return{outputMode:z(e),human:`\u9879\u76EE\uFF1A${p}
132
+ `)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:a,...o,projectRoot:void 0}}}}async function _P(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},source:{type:"string"},registry:{type:"string"},approve:{type:"string"},verify:{type:"string"},install:{type:"boolean"}}})}catch{return k("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return k("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(m=>typeof m=="string").length;if(r>1)return k("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch:o,switchProjectPackageSources:a,verifyPackageSourceSwitch:i,PackageSourceSwitchError:s}=await import("./optional-runtime.js"),c=t.values.source??"workspace";if(r===0&&c!=="workspace"&&c!=="public"&&c!=="private")return k("Packages switch requires --source workspace|public|private.");let l=N.resolve(t.values.project),d=await(typeof t.values.approve=="string"?t.values.install===!0?n({projectRoot:l,approvedPlanId:t.values.approve}):o({projectRoot:l,approvedPlanId:t.values.approve}):typeof t.values.verify=="string"?i({projectRoot:l,planId:t.values.verify}):a({projectRoot:l,scope:"@aipt/",source:c,...typeof t.values.registry=="string"?{registry:t.values.registry}:{}})).catch(m=>{throw m instanceof s?new T({code:m.code,message:m.message,exitCode:4,nextStep:"Run dyyto packages switch --help."}):m}),p=ee(d.projectRoot),f=d.changes.map(m=>` ${m.field} ${m.packageName}: ${m.from} -> ${m.to}`),u=d.state==="reviewable"?`\u5BA1\u6838\u4E0D\u53EF\u53D8 Plan \u540E\u4F7F\u7528 --approve ${d.planId} \u7CBE\u786E\u6279\u51C6\u3002`:d.state==="applied"?`\u4F7F\u7528 --verify ${d.planId} \u9A8C\u8BC1\u3002`:"Package source manifest \u5DF2\u4E0E\u6279\u51C6\u7684 Plan \u4E00\u81F4\u3002";return{outputMode:z(e),human:`\u9879\u76EE\uFF1A${p}
133
133
  \u6765\u6E90\uFF1A${d.source}
134
134
  Registry\uFF1A${d.registry??"workspace protocol"}
135
135
  \u72B6\u6001\uFF1A${d.state}
@@ -141,24 +141,24 @@ Packages\uFF1A${d.packages.length}
141
141
  ${f.join(`
142
142
  `)}${f.length>0?`
143
143
 
144
- `:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:d.source,registry:d.registry,state:d.state,planId:d.planId,packages:d.packages,changes:d.changes,written:d.written,...d.installVerified===void 0?{}:{installVerified:d.installVerified},...d.lockfileDigest===void 0?{}:{lockfileDigest:d.lockfileDigest}}}}}async function _P(e){let{projectRoot:t,outputMode:r}=Vo(e,"Inspect"),n=X(JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")));if(n.template===void 0)throw new T({code:"PROJECT_MAINTENANCE_UNAVAILABLE",message:"Project maintenance requires a formal Template Release.",exitCode:4,nextStep:"Adopt a supported engineering template."});let o=await $o(Ci(n.template.id,n.template.version)),a=await Tg({projectRoot:t,commands:o.commands}),i=ee(t);return{outputMode:r,human:`Project: ${i}
144
+ `:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:d.source,registry:d.registry,state:d.state,planId:d.planId,packages:d.packages,changes:d.changes,written:d.written,...d.installVerified===void 0?{}:{installVerified:d.installVerified},...d.lockfileDigest===void 0?{}:{lockfileDigest:d.lockfileDigest}}}}}async function AP(e){let{projectRoot:t,outputMode:r}=Uo(e,"Inspect"),n=X(JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")));if(n.template===void 0)throw new T({code:"PROJECT_MAINTENANCE_UNAVAILABLE",message:"Project maintenance requires a formal Template Release.",exitCode:4,nextStep:"Adopt a supported engineering template."});let o=await To(Ti(n.template.id,n.template.version)),a=await Ug({projectRoot:t,commands:o.commands}),i=ee(t);return{outputMode:r,human:`Project: ${i}
145
145
  Commands: ${a.commands.map(s=>s.id).join(", ")}
146
- Environment: ${a.environment.filter(s=>s.configured).length}/${a.environment.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:i,template:`${o.templateId}@${o.version}`,...a}}}}async function AP(e){let{projectRoot:t,outputMode:r}=Vo(e,"Inspect"),n=await fi({projectRoot:t}).catch(o=>{throw new T({code:o instanceof Error&&"code"in o?String(o.code):"APPLICATION_CONFIG_UNAVAILABLE",message:o instanceof Error?o.message:"\u5E94\u7528\u914D\u7F6E\u4E0D\u53EF\u7528\u3002",exitCode:4,nextStep:"\u8BBE\u7F6E\u8BE5\u9879\u76EE\u72EC\u4EAB\u7684\u7EDD\u5BF9APP_CONFIG_DIR\uFF0C\u5E76\u7531\u90E8\u7F72\u63A7\u5236\u9762\u5B8C\u6210config init\u3002"})});return{outputMode:r,human:`\u5E94\u7528\uFF1A${n.application}
146
+ Environment: ${a.environment.filter(s=>s.configured).length}/${a.environment.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:i,template:`${o.templateId}@${o.version}`,...a}}}}async function EP(e){let{projectRoot:t,outputMode:r}=Uo(e,"Inspect"),n=await mi({projectRoot:t}).catch(o=>{throw new T({code:o instanceof Error&&"code"in o?String(o.code):"APPLICATION_CONFIG_UNAVAILABLE",message:o instanceof Error?o.message:"\u5E94\u7528\u914D\u7F6E\u4E0D\u53EF\u7528\u3002",exitCode:4,nextStep:"\u8BBE\u7F6E\u8BE5\u9879\u76EE\u72EC\u4EAB\u7684\u7EDD\u5BF9APP_CONFIG_DIR\uFF0C\u5E76\u7531\u90E8\u7F72\u63A7\u5236\u9762\u5B8C\u6210config init\u3002"})});return{outputMode:r,human:`\u5E94\u7528\uFF1A${n.application}
147
147
  \u73AF\u5883\uFF1A${n.environment}
148
148
  Config Dir\uFF1A${n.configDirectory}
149
149
  \u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(o=>o.configured).length}/${n.entries.length}
150
150
  ${n.entries.map(o=>`${o.name}: ${o.display}`).join(`
151
- `)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function EP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plane:{type:"string"},state:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return k("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return k("Operations requires --project and --plane change|quality|delivery.");let r=await kt(N.resolve(t.values.project)),n=ee(r),o=[];for(let i of await lh(N.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(i.endsWith(".json"))try{let s=JSON.parse(await re(N.join(r,".dyyto","workbench","tasks",i),"utf8"));s.taskId&&typeof s.operation=="string"&&typeof s.state=="string"&&typeof s.createdAt=="string"&&typeof s.updatedAt=="string"&&o.push({id:s.taskId,projectId:".",projectName:n,operation:s.operation,state:s.state,createdAt:s.createdAt,updatedAt:s.updatedAt,...s.correlationId?{correlationId:s.correlationId}:{}})}catch{}let a=Vg(o,{plane:t.values.plane,...typeof t.values.state=="string"?{state:t.values.state}:{},...typeof t.values.kind=="string"?{kind:t.values.kind}:{},...typeof t.values.limit=="string"?{limit:Number(t.values.limit)}:{}});return{outputMode:z(e),human:`Project: ${n}
151
+ `)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function PP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plane:{type:"string"},state:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return k("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return k("Operations requires --project and --plane change|quality|delivery.");let r=await Rt(N.resolve(t.values.project)),n=ee(r),o=[];for(let i of await mh(N.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(i.endsWith(".json"))try{let s=JSON.parse(await re(N.join(r,".dyyto","workbench","tasks",i),"utf8"));s.taskId&&typeof s.operation=="string"&&typeof s.state=="string"&&typeof s.createdAt=="string"&&typeof s.updatedAt=="string"&&o.push({id:s.taskId,projectId:".",projectName:n,operation:s.operation,state:s.state,createdAt:s.createdAt,updatedAt:s.updatedAt,...s.correlationId?{correlationId:s.correlationId}:{}})}catch{}let a=Bg(o,{plane:t.values.plane,...typeof t.values.state=="string"?{state:t.values.state}:{},...typeof t.values.kind=="string"?{kind:t.values.kind}:{},...typeof t.values.limit=="string"?{limit:Number(t.values.limit)}:{}});return{outputMode:z(e),human:`Project: ${n}
152
152
  Operations: ${a.plane}
153
153
  Total: ${a.summary.total}
154
- Attention: ${a.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...a}}}}async function PP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return k("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return k("Doctor requires --workspace.");let r=await kt(N.resolve(t.values.workspace));if(X(JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return k("Doctor requires a workspace-root project.");let o=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await lh(N.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let l=N.join(r,s,c.name);try{await re(N.join(l,"project-capabilities.json"))}catch{continue}o.push({unit:`${s}/${c.name}`,kind:s==="packages"?"package":"application",projectRoot:l})}let a=[];for(let s of o){let c="invalid",l;try{let p=(await pd(["--project",s.projectRoot,"--json"])).value.result;c=p.state??"invalid",l=Kl(c),c==="adopted"&&p.lock!==null&&typeof p.lock=="object"?l.push(...await So({projectRoot:s.projectRoot,lock:p.lock})):c==="adopted"&&l.push({code:"EVIDENCE_INVALID",severity:"critical",fact:"evidence",message:"\u5DF2\u91C7\u7528\u5355\u5143\u7F3A\u5C11\u53EF\u6838\u9A8C\u7684\u91C7\u7528\u9501\u3002",action:"\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\u5E76\u63D0\u4EA4\u91C7\u7528\u9501\u3002"})}catch{l=Kl("invalid")}try{let d=X(JSON.parse(await re(N.join(s.projectRoot,"project-capabilities.json"),"utf8")));d.profile?.id==="workspace-web-application"&&l.push(...await Ig({workspaceRoot:r,applicationId:String(d.profile.parameters.name)}))}catch{}a.push({unit:s.unit,kind:s.kind,state:c,findings:l})}let i=vg({workspace:N.basename(r),generatedAt:new Date().toISOString(),units:a});return{outputMode:z(e),human:`Workspace: ${i.workspace}
154
+ Attention: ${a.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...a}}}}async function NP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return k("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return k("Doctor requires --workspace.");let r=await Rt(N.resolve(t.values.workspace));if(X(JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return k("Doctor requires a workspace-root project.");let o=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await mh(N.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let l=N.join(r,s,c.name);try{await re(N.join(l,"project-capabilities.json"))}catch{continue}o.push({unit:`${s}/${c.name}`,kind:s==="packages"?"package":"application",projectRoot:l})}let a=[];for(let s of o){let c="invalid",l;try{let p=(await fd(["--project",s.projectRoot,"--json"])).value.result;c=p.state??"invalid",l=Hl(c),c==="adopted"&&p.lock!==null&&typeof p.lock=="object"?l.push(...await jo({projectRoot:s.projectRoot,lock:p.lock})):c==="adopted"&&l.push({code:"EVIDENCE_INVALID",severity:"critical",fact:"evidence",message:"\u5DF2\u91C7\u7528\u5355\u5143\u7F3A\u5C11\u53EF\u6838\u9A8C\u7684\u91C7\u7528\u9501\u3002",action:"\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\u5E76\u63D0\u4EA4\u91C7\u7528\u9501\u3002"})}catch{l=Hl("invalid")}try{let d=X(JSON.parse(await re(N.join(s.projectRoot,"project-capabilities.json"),"utf8")));d.profile?.id==="workspace-web-application"&&l.push(...await _g({workspaceRoot:r,applicationId:String(d.profile.parameters.name)}))}catch{}a.push({unit:s.unit,kind:s.kind,state:c,findings:l})}let i=Ag({workspace:N.basename(r),generatedAt:new Date().toISOString(),units:a});return{outputMode:z(e),human:`Workspace: ${i.workspace}
155
155
  Status: ${i.status}
156
156
  Units: ${i.summary.total}
157
157
  Healthy: ${i.summary.healthy}
158
158
  Attention: ${i.summary.attention}
159
159
  Blocked: ${i.summary.blocked}
160
160
  `+i.units.map(s=>`${s.unit}: ${s.status} (${s.findings.map(c=>c.code).join(", ")})`).join(`
161
- `),value:{schemaVersion:1,ok:!0,command:"doctor",result:i}}}async function ud(e){let{LocalDockerDeploymentAdapter:t,NpmjsPublisherAdapter:r,HostedStaticPublicationAdapter:n}=await import("./optional-runtime.js");return e==="npm-publish"?new r:e==="application-deploy"?new t:e==="hosted-static"?new n:k("Delivery kind must be npm-publish, application-deploy, or hosted-static.")}function ch(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function yh(e){let t=X(JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8"))),r=await Te(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return k("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return k("Manifest and verified Lock must identify the same adopted capability.");let o=n.assets.filter(a=>!a.path.startsWith("src/"));return await Er({projectRoot:e,expectedAssets:o}),{manifest:t,lock:r,locked:n,lockDigest:y(b(r))}}async function NP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},kind:{type:"string"},provider:{type:"string"},repository:{type:"string"},workflow:{type:"string"},ref:{type:"string"},environment:{type:"string"}}})}catch{return k("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return k("Delivery plan requires --project and --kind.");let r=N.resolve(t.values.project),n=await yh(r),a=await(await ud(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await Xm({projectRoot:r,artifactIdentity:a.artifact.identity})!==null)throw new D("NPM_REGISTRY_OUTCOME_UNKNOWN","An earlier Delivery Plan started a remote write for this exact npm version without a resolved Registry outcome");let i=t.values.kind==="npm-publish"?(()=>{let d=t.values.provider,p=t.values.repository,f=t.values.workflow,u=t.values.ref;if(d!=="github-actions"&&d!=="gitlab-ci"||typeof p!="string"||typeof f!="string"||typeof u!="string")throw new D("DELIVERY_PRECONDITION_FAILED","Secure npm Delivery Plan requires --provider, --repository, --workflow and --ref.");return{mode:"staged",access:"public",tag:"latest",authentication:"trusted-publishing",trustedAction:"stage-only",provenance:"required",execution:{provider:d,repository:p,workflow:f,ref:u,...typeof t.values.environment=="string"?{environment:t.values.environment}:{}}}})():void 0;if(i!==void 0){let d=JSON.parse(await re(N.join(r,"package.json"),"utf8")),p=typeof d.repository=="string"?d.repository:d.repository!==null&&typeof d.repository=="object"?d.repository.url:void 0,f=`https://${i.execution.provider==="github-actions"?"github.com":"gitlab.com"}/${i.execution.repository}`;if(p!==f)throw new D("NPM_PROVENANCE_REQUIRED","package.json repository does not match the trusted publishing repository identity")}let s=new Date,c=ql({kind:t.values.kind,project:{profile:n.manifest.profile.id,lockDigest:n.lockDigest,appliedPlanId:n.locked.appliedPlanId},artifact:a.artifact,target:a.target,risk:t.values.kind==="npm-publish"?"irreversible-publish":t.values.kind==="hosted-static"?"external-reversible-publication":"local-reversible-deployment",createdAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...i===void 0?{}:{publication:i}});await Km({projectRoot:r,plan:c});let l=ee(r);return{outputMode:z(e),human:`Project: ${l}
161
+ `),value:{schemaVersion:1,ok:!0,command:"doctor",result:i}}}async function md(e){let{LocalDockerDeploymentAdapter:t,NpmjsPublisherAdapter:r,HostedStaticPublicationAdapter:n}=await import("./optional-runtime.js");return e==="npm-publish"?new r:e==="application-deploy"?new t:e==="hosted-static"?new n:k("Delivery kind must be npm-publish, application-deploy, or hosted-static.")}function fh(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function kh(e){let t=X(JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8"))),r=await Le(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return k("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return k("Manifest and verified Lock must identify the same adopted capability.");let o=n.assets.filter(a=>!a.path.startsWith("src/"));return await Er({projectRoot:e,expectedAssets:o}),{manifest:t,lock:r,locked:n,lockDigest:y(b(r))}}async function OP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},kind:{type:"string"},provider:{type:"string"},repository:{type:"string"},workflow:{type:"string"},ref:{type:"string"},environment:{type:"string"}}})}catch{return k("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return k("Delivery plan requires --project and --kind.");let r=N.resolve(t.values.project),n=await kh(r),a=await(await md(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await rg({projectRoot:r,artifactIdentity:a.artifact.identity})!==null)throw new S("NPM_REGISTRY_OUTCOME_UNKNOWN","An earlier Delivery Plan started a remote write for this exact npm version without a resolved Registry outcome");let i=t.values.kind==="npm-publish"?(()=>{let d=t.values.provider,p=t.values.repository,f=t.values.workflow,u=t.values.ref;if(d!=="github-actions"&&d!=="gitlab-ci"||typeof p!="string"||typeof f!="string"||typeof u!="string")throw new S("DELIVERY_PRECONDITION_FAILED","Secure npm Delivery Plan requires --provider, --repository, --workflow and --ref.");return{mode:"staged",access:"public",tag:"latest",authentication:"trusted-publishing",trustedAction:"stage-only",provenance:"required",execution:{provider:d,repository:p,workflow:f,ref:u,...typeof t.values.environment=="string"?{environment:t.values.environment}:{}}}})():void 0;if(i!==void 0){let d=JSON.parse(await re(N.join(r,"package.json"),"utf8")),p=typeof d.repository=="string"?d.repository:d.repository!==null&&typeof d.repository=="object"?d.repository.url:void 0,f=`https://${i.execution.provider==="github-actions"?"github.com":"gitlab.com"}/${i.execution.repository}`;if(p!==f)throw new S("NPM_PROVENANCE_REQUIRED","package.json repository does not match the trusted publishing repository identity")}let s=new Date,c=zl({kind:t.values.kind,project:{profile:n.manifest.profile.id,lockDigest:n.lockDigest,appliedPlanId:n.locked.appliedPlanId},artifact:a.artifact,target:a.target,risk:t.values.kind==="npm-publish"?"irreversible-publish":t.values.kind==="hosted-static"?"external-reversible-publication":"local-reversible-deployment",createdAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...i===void 0?{}:{publication:i}});await Qm({projectRoot:r,plan:c});let l=ee(r);return{outputMode:z(e),human:`Project: ${l}
162
162
  Delivery: ${c.kind}
163
163
  Artifact: ${c.artifact.identity}
164
164
  Target: ${c.target.location}
@@ -170,59 +170,59 @@ Execution: ${c.publication.execution.provider}:${c.publication.execution.reposit
170
170
  Approval: maintainer 2FA required outside Dyyto`}
171
171
  Plan: ${c.planId}
172
172
  State: reviewable
173
- Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function OP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return k("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return k("Delivery apply requires --project and --approve <planId>.");let r=N.resolve(t.values.project),n=await Mt({projectRoot:r,planId:t.values.approve}),o=await In({projectRoot:r,planId:n.planId}),a=ee(r);if(o!==null)return{outputMode:z(e),human:`Project: ${a}
173
+ Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function DP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return k("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return k("Delivery apply requires --project and --approve <planId>.");let r=N.resolve(t.values.project),n=await Ft({projectRoot:r,planId:t.values.approve}),o=await vn({projectRoot:r,planId:n.planId}),a=ee(r);if(o!==null)return{outputMode:z(e),human:`Project: ${a}
174
174
  Delivery: verified
175
- Receipt: ${o.receiptId}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,reused:!0,receipt:o}}};let i=n.kind==="npm-publish"?await vn({projectRoot:r,planId:n.planId}):null;if(i!==null)return{outputMode:z(e),human:`Project: ${a}
175
+ Receipt: ${o.receiptId}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,reused:!0,receipt:o}}};let i=n.kind==="npm-publish"?await bn({projectRoot:r,planId:n.planId}):null;if(i!==null)return{outputMode:z(e),human:`Project: ${a}
176
176
  Delivery: staged
177
- Stage: ${ch(i.stageId)}
178
- State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,reused:!0,state:"staged",record:i}}};if((n.kind==="npm-publish"?await Hm({projectRoot:r,planId:n.planId}):null)!==null)throw new D("NPM_REGISTRY_OUTCOME_UNKNOWN","This Plan already started a remote stage write without a committed Stage Record");if(Date.parse(n.expiresAt)<=Date.now())throw new D("DELIVERY_PLAN_EXPIRED","Delivery Plan has expired");let c=await yh(r);if(c.lockDigest!==n.project.lockDigest||c.locked.appliedPlanId!==n.project.appliedPlanId)throw new D("DELIVERY_PRECONDITION_FAILED","Adoption Lock changed after Delivery Plan approval");let l=await ud(n.kind),d=await l.prepare({projectRoot:r,profile:c.manifest.profile.id,parameters:c.manifest.profile.parameters});if(b(d.artifact)!==b(n.artifact)||b(d.target)!==b(n.target))throw new D("DELIVERY_PRECONDITION_FAILED","Artifact or target changed after Delivery Plan approval");let p=await l.execute({projectRoot:r,plan:n,...n.kind==="npm-publish"?{onRemoteWriteStarting:async()=>{await Ym({projectRoot:r,record:Gm({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=Jm({planId:n.planId,stageId:p.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await Zm({projectRoot:r,record:u}),{outputMode:z(e),human:`Project: ${a}
177
+ Stage: ${fh(i.stageId)}
178
+ State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,reused:!0,state:"staged",record:i}}};if((n.kind==="npm-publish"?await tg({projectRoot:r,planId:n.planId}):null)!==null)throw new S("NPM_REGISTRY_OUTCOME_UNKNOWN","This Plan already started a remote stage write without a committed Stage Record");if(Date.parse(n.expiresAt)<=Date.now())throw new S("DELIVERY_PLAN_EXPIRED","Delivery Plan has expired");let c=await kh(r);if(c.lockDigest!==n.project.lockDigest||c.locked.appliedPlanId!==n.project.appliedPlanId)throw new S("DELIVERY_PRECONDITION_FAILED","Adoption Lock changed after Delivery Plan approval");let l=await md(n.kind),d=await l.prepare({projectRoot:r,profile:c.manifest.profile.id,parameters:c.manifest.profile.parameters});if(b(d.artifact)!==b(n.artifact)||b(d.target)!==b(n.target))throw new S("DELIVERY_PRECONDITION_FAILED","Artifact or target changed after Delivery Plan approval");let p=await l.execute({projectRoot:r,plan:n,...n.kind==="npm-publish"?{onRemoteWriteStarting:async()=>{await eg({projectRoot:r,record:Xm({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=Hm({planId:n.planId,stageId:p.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await ng({projectRoot:r,record:u}),{outputMode:z(e),human:`Project: ${a}
179
179
  Delivery: staged
180
- Stage: ${ch(u.stageId)}
181
- State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,state:"staged",record:u}}}}if(n.kind==="application-deploy"&&(await l.inspect({projectRoot:r,plan:n})).state!=="verified")throw new D("DELIVERY_EXECUTION_UNKNOWN","Docker deployment outcome could not be verified");let f=yi({planId:n.planId,kind:n.kind,adapterId:n.target.adapterId,artifactDigest:n.artifact.digest,target:n.target.location,externalIdentity:p.externalIdentity,completedAt:new Date().toISOString(),details:p.details});return await Bl({projectRoot:r,receipt:f}),{outputMode:z(e),human:`Project: ${a}
180
+ Stage: ${fh(u.stageId)}
181
+ State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,state:"staged",record:u}}}}if(n.kind==="application-deploy"&&(await l.inspect({projectRoot:r,plan:n})).state!=="verified")throw new S("DELIVERY_EXECUTION_UNKNOWN","Docker deployment outcome could not be verified");let f=wi({planId:n.planId,kind:n.kind,adapterId:n.target.adapterId,artifactDigest:n.artifact.digest,target:n.target.location,externalIdentity:p.externalIdentity,completedAt:new Date().toISOString(),details:p.details});return await Jl({projectRoot:r,receipt:f}),{outputMode:z(e),human:`Project: ${a}
182
182
  Delivery: verified
183
183
  Receipt: ${f.receiptId}
184
- External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,receipt:f}}}}async function SP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plan:{type:"string"},"stage-artifact":{type:"string"}}})}catch{return k("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return k("Delivery inspect requires --project and --plan <planId>.");let r=N.resolve(t.values.project),n=await Mt({projectRoot:r,planId:t.values.plan}),o=await In({projectRoot:r,planId:n.planId}),a=ee(r);if(o!==null)return{outputMode:z(e),human:`Project: ${a}
184
+ External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,receipt:f}}}}async function SP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plan:{type:"string"},"stage-artifact":{type:"string"}}})}catch{return k("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return k("Delivery inspect requires --project and --plan <planId>.");let r=N.resolve(t.values.project),n=await Ft({projectRoot:r,planId:t.values.plan}),o=await vn({projectRoot:r,planId:n.planId}),a=ee(r);if(o!==null)return{outputMode:z(e),human:`Project: ${a}
185
185
  Delivery: verified
186
- Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:"verified",plan:n,receipt:o}}};let i=n.kind==="npm-publish"?await vn({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await eg({projectRoot:r,planId:n.planId}):null;if(typeof t.values["stage-artifact"]=="string"){if(n.kind!=="npm-publish"||i===null)throw new D("DELIVERY_PRECONDITION_FAILED","Stage artifact review requires an existing npm Stage Record");let l=y(await re(N.resolve(t.values["stage-artifact"])));if(l!==n.artifact.digest||l!==i.artifactDigest)throw new D("DELIVERY_PRECONDITION_FAILED","Reviewed stage artifact does not match the approved Delivery Plan");s=Wm({planId:n.planId,stageId:i.stageId,artifactDigest:l,reviewedAt:new Date().toISOString()}),await Qm({projectRoot:r,record:s})}let c=await(await ud(n.kind)).inspect({projectRoot:r,plan:n});if(n.kind==="npm-publish"&&i!==null&&c.state==="verified"){if(n.schemaVersion!==2||n.publication===void 0||c.details.artifactDigest!==n.artifact.digest||c.details.provenance!=="registry-attestation-present"||c.details.provenanceUrlDigest===void 0)throw new D("NPM_PROVENANCE_REQUIRED","Registry inspection did not prove the approved npm artifact and provenance");let l=yi({planId:n.planId,kind:n.kind,adapterId:"registry.npmjs",artifactDigest:n.artifact.digest,target:n.target.location,externalIdentity:n.artifact.identity,completedAt:new Date().toISOString(),npm:{stageId:i.stageId,registry:"https://registry.npmjs.org",tarballDigest:n.artifact.digest,access:n.publication.access,tag:n.publication.tag,provenance:"registry-attested",attestationUrlDigest:c.details.provenanceUrlDigest}});return await Bl({projectRoot:r,receipt:l}),{outputMode:z(e),human:`Project: ${a}
186
+ Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:"verified",plan:n,receipt:o}}};let i=n.kind==="npm-publish"?await bn({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await ag({projectRoot:r,planId:n.planId}):null;if(typeof t.values["stage-artifact"]=="string"){if(n.kind!=="npm-publish"||i===null)throw new S("DELIVERY_PRECONDITION_FAILED","Stage artifact review requires an existing npm Stage Record");let l=y(await re(N.resolve(t.values["stage-artifact"])));if(l!==n.artifact.digest||l!==i.artifactDigest)throw new S("DELIVERY_PRECONDITION_FAILED","Reviewed stage artifact does not match the approved Delivery Plan");s=Zm({planId:n.planId,stageId:i.stageId,artifactDigest:l,reviewedAt:new Date().toISOString()}),await og({projectRoot:r,record:s})}let c=await(await md(n.kind)).inspect({projectRoot:r,plan:n});if(n.kind==="npm-publish"&&i!==null&&c.state==="verified"){if(n.schemaVersion!==2||n.publication===void 0||c.details.artifactDigest!==n.artifact.digest||c.details.provenance!=="registry-attestation-present"||c.details.provenanceUrlDigest===void 0)throw new S("NPM_PROVENANCE_REQUIRED","Registry inspection did not prove the approved npm artifact and provenance");let l=wi({planId:n.planId,kind:n.kind,adapterId:"registry.npmjs",artifactDigest:n.artifact.digest,target:n.target.location,externalIdentity:n.artifact.identity,completedAt:new Date().toISOString(),npm:{stageId:i.stageId,registry:"https://registry.npmjs.org",tarballDigest:n.artifact.digest,access:n.publication.access,tag:n.publication.tag,provenance:"registry-attested",attestationUrlDigest:c.details.provenanceUrlDigest}});return await Jl({projectRoot:r,receipt:l}),{outputMode:z(e),human:`Project: ${a}
187
187
  Delivery: verified
188
188
  Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:"verified",plan:n,stage:i,review:s,receipt:l,adapter:c}}}}if(n.kind==="npm-publish"&&i!==null){let l=c.state==="absent"||c.state==="staged"?"approval-pending":c.state;return{outputMode:z(e),human:`Project: ${a}
189
189
  Delivery: staged
190
190
  Plan: ${n.planId}
191
191
  Artifact review: ${s===null?"pending":"verified"}
192
- State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:l,plan:n,stage:i,review:s,receipt:null,adapter:c}}}}if(n.kind==="npm-publish"&&c.state==="verified")throw new D("NPM_REGISTRY_OUTCOME_UNKNOWN","Live npm artifact is visible but no immutable Stage Record exists for this Plan");return{outputMode:z(e),human:`Project: ${a}
192
+ State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:l,plan:n,stage:i,review:s,receipt:null,adapter:c}}}}if(n.kind==="npm-publish"&&c.state==="verified")throw new S("NPM_REGISTRY_OUTCOME_UNKNOWN","Live npm artifact is visible but no immutable Stage Record exists for this Plan");return{outputMode:z(e),human:`Project: ${a}
193
193
  Delivery: ${c.state}
194
- Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:c.state,plan:n,receipt:null,adapter:c}}}}async function DP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},application:{type:"string"},limit:{type:"string"},cursor:{type:"string"}}})}catch{return k("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return k("Observe errors requires --workspace.");let r=await kt(N.resolve(t.values.workspace)),n=new Ut(r),o={...typeof t.values.application=="string"?{applicationId:t.values.application}:{},...typeof t.values.limit=="string"?{limit:Number(t.values.limit)}:{},...typeof t.values.cursor=="string"?{cursor:t.values.cursor}:{}},[a,i]=await Promise.all([n.list(o),n.summary(o)]);return{outputMode:z(e),human:a.events.length===0?"\u672A\u53D1\u73B0\u8FD0\u884C\u65F6\u9519\u8BEF\u3002":a.events.map(s=>`${s.occurredAt} ${s.applicationId} ${s.error.type}: ${s.error.message} (${s.state}, ${s.correlation})`).join(`
195
- `),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...a,summary:i}}}}async function jP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return k("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return k("Observe error requires --workspace and --id.");let r=await new Ut(await kt(N.resolve(t.values.workspace))).get(t.values.id);if(r===null)throw new T({code:"RUNTIME_ERROR_NOT_FOUND",message:"Runtime Error Event was not found.",exitCode:4,nextStep:"List recent errors and verify the event ID."});return{outputMode:z(e),human:`${r.error.type}: ${r.error.message}
194
+ Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:c.state,plan:n,receipt:null,adapter:c}}}}async function jP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},application:{type:"string"},limit:{type:"string"},cursor:{type:"string"}}})}catch{return k("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return k("Observe errors requires --workspace.");let r=await Rt(N.resolve(t.values.workspace)),n=new qt(r),o={...typeof t.values.application=="string"?{applicationId:t.values.application}:{},...typeof t.values.limit=="string"?{limit:Number(t.values.limit)}:{},...typeof t.values.cursor=="string"?{cursor:t.values.cursor}:{}},[a,i]=await Promise.all([n.list(o),n.summary(o)]);return{outputMode:z(e),human:a.events.length===0?"\u672A\u53D1\u73B0\u8FD0\u884C\u65F6\u9519\u8BEF\u3002":a.events.map(s=>`${s.occurredAt} ${s.applicationId} ${s.error.type}: ${s.error.message} (${s.state}, ${s.correlation})`).join(`
195
+ `),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...a,summary:i}}}}async function $P(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return k("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return k("Observe error requires --workspace and --id.");let r=await new qt(await Rt(N.resolve(t.values.workspace))).get(t.values.id);if(r===null)throw new T({code:"RUNTIME_ERROR_NOT_FOUND",message:"Runtime Error Event was not found.",exitCode:4,nextStep:"List recent errors and verify the event ID."});return{outputMode:z(e),human:`${r.error.type}: ${r.error.message}
196
196
  State: ${r.state}
197
197
  Correlation: ${r.correlation}
198
198
  Release: ${r.releaseId??"unknown"}
199
- Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function $P(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return k("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return k("Observe release register requires --project.");let r=await kt(N.resolve(t.values.project)),n=await kt(N.resolve(typeof t.values.workspace=="string"?t.values.workspace:N.join(r,"../.."))),{registerWebRelease:o}=await import("./optional-runtime.js"),a=await o({workspaceRoot:n,projectRoot:r});return{outputMode:z(e),human:`Release: ${a.releaseId}
199
+ Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function CP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return k("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return k("Observe release register requires --project.");let r=await Rt(N.resolve(t.values.project)),n=await Rt(N.resolve(typeof t.values.workspace=="string"?t.values.workspace:N.join(r,"../.."))),{registerWebRelease:o}=await import("./optional-runtime.js"),a=await o({workspaceRoot:n,projectRoot:r});return{outputMode:z(e),human:`Release: ${a.releaseId}
200
200
  Source Maps: ${a.registrations.length}
201
- \u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:a}}}async function CP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},query:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return k("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return k("Catalog search --kind \u53EA\u63A5\u53D7 all\u3001package \u6216 capability\u3002");let n=t.values.limit===void 0?50:Number(t.values.limit);if(!Number.isSafeInteger(n)||n<1||n>200)return k("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let o=await Si({...typeof t.values.query=="string"?{query:t.values.query}:{},...r==="package"||r==="capability"?{kind:r}:{},limit:n}),a=o.items.length===0?"\u76EE\u5F55\u4E2D\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u7A0B\u80FD\u529B\u3002":o.items.map(i=>`${i.ref}
201
+ \u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:a}}}async function TP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},query:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return k("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return k("Catalog search --kind \u53EA\u63A5\u53D7 all\u3001package \u6216 capability\u3002");let n=t.values.limit===void 0?50:Number(t.values.limit);if(!Number.isSafeInteger(n)||n<1||n>200)return k("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let o=await Si({...typeof t.values.query=="string"?{query:t.values.query}:{},...r==="package"||r==="capability"?{kind:r}:{},limit:n}),a=o.items.length===0?"\u76EE\u5F55\u4E2D\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u7A0B\u80FD\u529B\u3002":o.items.map(i=>`${i.ref}
202
202
  ${i.summary}
203
203
  \u6210\u719F\u5EA6\uFF1A${i.maturity}`).join(`
204
- `);return{outputMode:z(e),human:a,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:o}}}async function TP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return k("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return k("Catalog show \u9700\u8981 --ref\u3002");let r=await Di({ref:t.values.ref});return{outputMode:z(e),human:`${r.item.ref}
204
+ `);return{outputMode:z(e),human:a,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:o}}}async function LP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return k("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return k("Catalog show \u9700\u8981 --ref\u3002");let r=await ji({ref:t.values.ref});return{outputMode:z(e),human:`${r.item.ref}
205
205
  ${r.item.summary}
206
206
  \u6210\u719F\u5EA6\uFF1A${r.item.maturity}
207
- \u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function wh(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=z(r);if(r[0]==="--version"&&r.every(i=>i==="--version"||i==="--json"))return{outputMode:n,human:En,value:{schemaVersion:1,ok:!0,command:"version",result:{version:En}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:Ad,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[o,...a]=r;return o==="catalog"&&a[0]==="search"?CP(a.slice(1)):o==="catalog"&&a[0]==="show"?TP(a.slice(1)):o==="create"?mh(a):o==="scaffold"&&a[0]==="example"?IP(a.slice(1),t):o==="retrofit"?pP(a):o==="dev"||o==="build"||o==="test"||o==="package"?uP(o,a):o==="add"&&a[0]==="package"?fP(a.slice(1)):o==="add"&&a[0]==="application"?mP(a.slice(1)):o==="add"&&a[0]==="feature"?gh(a.slice(1),t):o==="remove"&&a[0]==="feature"?gP(a.slice(1),t):o==="plan"?hP(a):o==="upgrade"?wP(a,t):o==="apply"?ld(a,t):o==="verify"?dd(a):o==="inspect"?pd(a):o==="doctor"?PP(a):o==="recover"?vP(a):o==="lifecycle"&&typeof a[0]=="string"?bP(a[0],a.slice(1)):o==="packages"&&a[0]==="switch"?RP(a.slice(1)):o==="integrations"?kP(a):o==="maintenance"?_P(a):o==="config"&&a[0]==="inspect"?AP(a.slice(1)):o==="operations"?EP(a):o==="baseline"?yP(a):o==="delivery"&&a[0]==="plan"?NP(a.slice(1)):o==="delivery"&&a[0]==="apply"?OP(a.slice(1)):o==="delivery"&&a[0]==="inspect"?SP(a.slice(1)):o==="observe"&&a[0]==="errors"?DP(a.slice(1)):o==="observe"&&a[0]==="error"?jP(a.slice(1)):o==="observe"&&a[0]==="release"&&a[1]==="register"?$P(a.slice(2)):k(`Unknown command '${o}'.`)}import{createServer as LP}from"node:http";import{readFile as xP,readdir as lC,rm as dC}from"node:fs/promises";import{execFile as VP}from"node:child_process";import{promisify as MP}from"node:util";import UP from"node:path";var gC=MP(VP),fd=class{constructor(t=10,r=20,n=Date.now){this.rate=t;this.burst=r;this.now=n}rate;burst;now;buckets=new Map;take(t){let r=this.now(),n=this.buckets.get(t)??{tokens:this.burst,updatedAt:r};return n.tokens=Math.min(this.burst,n.tokens+Math.max(0,r-n.updatedAt)/1e3*this.rate),n.updatedAt=r,n.tokens<1?(this.buckets.set(t,n),{allowed:!1,retryAfterSeconds:Math.max(1,Math.ceil((1-n.tokens)/this.rate))}):(n.tokens-=1,this.buckets.set(t,n),{allowed:!0})}};async function FP(e){try{let t=JSON.parse(await xP(UP.join(e,".dyyto","observability","config.json"),"utf8"));return!Array.isArray(t.allowedOrigins)||!t.allowedOrigins.every(r=>typeof r=="string")?[]:t.allowedOrigins}catch{return[]}}async function Ih(e){let t=new Ut(e.workspaceRoot),r=[...e.allowedOrigins??await FP(e.workspaceRoot)],n=new fd,o={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},a=LP(async(s,c)=>{if(c.setHeader("cache-control","no-store"),c.setHeader("content-type","application/json; charset=utf-8"),s.method==="GET"&&s.url==="/health"){c.end(JSON.stringify({status:"healthy"}));return}if(s.method!=="POST"||s.url!=="/v1/runtime-errors"){c.statusCode=404,c.end(JSON.stringify({error:{code:"NOT_FOUND"}}));return}let l=s.headers.origin;if(typeof l!="string"||!r.includes(l)){o.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let d=n.take(l);if(!d.allowed){o.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(d.retryAfterSeconds)),c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_RATE_LIMITED"}}));return}let p=[],f=0;try{for await(let m of s){let g=Buffer.from(m);if(f+=g.length,f>64*1024)throw new oe("RUNTIME_ERROR_TOO_LARGE","Runtime Error request exceeds 64 KiB");p.push(g)}let u=await t.accept(JSON.parse(Buffer.concat(p).toString("utf8")),{receivedAt:new Date().toISOString(),allowedOrigins:r,resolveCorrelation:m=>yg(e.workspaceRoot,m)});o.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof oe?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?o.rejectedInvalid+=1:o.storeFailed+=1,c.statusCode=m?.code==="RUNTIME_ERROR_TOO_LARGE"?413:m?.code==="RUNTIME_ERROR_RATE_LIMITED"?429:m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"?400:500,c.end(JSON.stringify({error:{code:m?.code??"OBSERVABILITY_STORE_FAILED"}}))}});await new Promise((s,c)=>{a.once("error",c),a.listen(e.port??4318,"127.0.0.1",()=>{a.off("error",c),s()})});let i=a.address();if(i===null||typeof i=="string")throw new Error("Collector did not expose a TCP address");return{server:a,origin:`http://127.0.0.1:${i.port}`,snapshot:()=>({...o}),close:()=>new Promise((s,c)=>a.close(l=>l?c(l):s()))}}import{createHash as qP}from"node:crypto";import{createServer as BP}from"node:http";import{readFile as vh,realpath as bh}from"node:fs/promises";import xi from"node:path";var Le=class extends Error{constructor(r){super(r);this.code=r}code};function zP(e){return"sha512-"+qP("sha512").update(e).digest("base64")}async function Mo(e){let t=await bh(e).catch(()=>{throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await vh(xi.join(t,"index.json"),"utf8").catch(()=>{throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=qr(JSON.parse(r))}catch{throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID")}let o=new Map;for(let a of n.artifacts){let i=xi.join(t,a.assetName),s=xi.relative(t,await bh(i).catch(()=>{throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||xi.isAbsolute(s))throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await vh(i);if(y(c)!==a.tarballDigest||zP(c)!==a.integrity)throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");o.set(a.assetName,c)}return{root:t,bundle:n,assets:o}}function JP(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function kh(e){return JSON.stringify({packageName:e.packageName,version:e.version,assetName:e.assetName,integrity:e.integrity,tarballDigest:e.tarballDigest,dependencies:e.dependencies,lifecycleScripts:e.lifecycleScripts})}function GP(e,t){let r=a=>a.split(/[.-]/u).map(i=>/^\d+$/u.test(i)?Number(i):i),n=r(e),o=r(t);for(let a=0;a<Math.max(n.length,o.length);a+=1){let i=n[a]??0,s=o[a]??0;if(i!==s)return typeof i=="number"&&typeof s=="number"?i-s:String(i).localeCompare(String(s))}return 0}function WP(e,t){let r=new Map,n=new Map;for(let o of[e,...t])for(let a of o.bundle.artifacts){let i=`${a.packageName}@${a.version}`,s=r.get(i);if(s!==void 0&&kh(s)!==kh(a))throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=o.assets.get(a.assetName);if(c===void 0)throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(a.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(i,a),n.set(a.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function Rh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Le("LOCAL_ARTIFACT_SERVER_INVALID");let t=await Mo(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(Mo)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");let o=WP(t,r),a=e.hostname??"127.0.0.1",i=BP((s,c)=>{let l=s.method??"";if(l!=="GET"&&l!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let d=new URL(s.url??"/","http://127.0.0.1").pathname,p=decodeURIComponent(d.slice(1)),f=o.artifacts.filter(u=>u.packageName===p).sort((u,m)=>GP(u.version,m.version));if(f.length>0){let u="http://"+a+":"+e.port,m=Object.fromEntries(f.map(w=>[w.version,{name:w.packageName,version:w.version,dependencies:w.dependencies,dist:{integrity:w.integrity,tarball:u+"/tarballs/"+w.assetName}}])),g=f.at(-1),h=Buffer.from(JSON.stringify({name:g.packageName,versions:m,"dist-tags":{latest:g.version}}));c.statusCode=200,c.setHeader("content-type","application/json"),c.setHeader("content-length",String(h.byteLength)),c.end(l==="HEAD"?void 0:h);return}if(d.startsWith("/tarballs/")){let u=d.slice(10),m=o.assets.get(u);if(m!==void 0){c.statusCode=200,c.setHeader("content-type","application/octet-stream"),c.setHeader("content-length",String(m.byteLength)),c.end(l==="HEAD"?void 0:m);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(l==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{i.once("error",c),i.listen(e.port,a,s)}).catch(()=>{throw new Le("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+a+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>JP(i)})}import{createHash as KP}from"node:crypto";import{execFile as YP}from"node:child_process";import{cp as HP,mkdir as _h,mkdtemp as md,readFile as Ui,realpath as Uo,rename as XP,rm as Ah,stat as ZP,writeFile as Mi}from"node:fs/promises";import{tmpdir as QP}from"node:os";import De from"node:path";import{promisify as e0}from"node:util";import{gunzipSync as t0}from"node:zlib";var r0=e0(YP),n0=["preinstall","install","postinstall","prepublish","prepare"],J=class extends Error{constructor(r){super(r);this.code=r}code};function o0(e){return"sha512-"+KP("sha512").update(e).digest("base64")}async function a0(e,t){let r=await Uo(e).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let o of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(o))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let a=await Uo(De.join(r,o)).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),i=De.relative(r,a);if(i!==o||i.startsWith("..")||De.isAbsolute(i))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=await Ui(De.join(a,"package.json")).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:o,root:a,manifestBytes:s,manifest:c})}return n}function i0(e,t){let r=new Map(e.map(a=>[String(a.manifest.name),String(a.manifest.version)])),n=t.dependencies;if(n===void 0)return{};if(typeof n!="object"||n===null||Array.isArray(n))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let o={};for(let[a,i]of Object.entries(n)){if(typeof i!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=i.startsWith("workspace:")?r.get(a):i;if(s===void 0)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");o[a]=s}return Object.fromEntries(Object.entries(o).sort(([a],[i])=>a.localeCompare(i)))}function s0(e,t){for(let r=0;r+512<=e.length;){let n=e.subarray(r,r+512);if(n.every(i=>i===0))return;let o=n.toString("utf8",0,100).replace(/\0.*$/su,""),a=Number.parseInt(n.toString("utf8",124,136).replace(/\0.*$/su,"").trim(),8);if(!Number.isSafeInteger(a)||a<0)return;if(o===t)return e.subarray(r+512,r+512+a);r+=512+Math.ceil(a/512)*512}}function c0(e,t,r){let n;try{n=t0(e)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o=s0(n,"package/package.json");if(o===void 0)throw new J("LOCAL_ARTIFACT_PACK_FAILED");let a;try{a=JSON.parse(o.toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let i=a.dependencies===void 0?{}:a.dependencies;if(typeof i!="object"||i===null||Array.isArray(i))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(i).sort(([c],[l])=>c.localeCompare(l)));if(a.name!==t.name||a.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new J("LOCAL_ARTIFACT_PACK_FAILED")}function l0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function d0(e,t,r){let n=De.join(await md(De.join(r,"stage-")),"package");await HP(e.root,n,{recursive:!0,filter:a=>De.basename(a)!=="node_modules"});let o=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await Mi(De.join(n,"package.json"),`${JSON.stringify({...o,dependencies:t},null,2)}
208
- `),n}async function p0(e,t,r){let n=i0(e,t.manifest),o=l0(t.manifest,n)?await d0(t,n,r):t.root,a;try{({stdout:a}=await r0("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:o,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let i;try{i=JSON.parse(a)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let s=i[0]?.filename;if(typeof s!="string"||s.includes("/")||s.includes("\\")||!s.endsWith(".tgz"))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let c=await Ui(De.join(r,s)).catch(()=>{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}),l=t.manifest.scripts;if(l!==void 0&&(typeof l!="object"||l===null||Array.isArray(l)))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let d=n0.filter(p=>Object.hasOwn(l??{},p));return c0(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:o0(c),tarballDigest:y(c),dependencies:n,lifecycleScripts:d},bytes:c}}async function Eh(e,t){let r=await a0(e,t),n=await md(De.join(await Uo(QP()),"dyyto-local-artifact-pack-"));try{let o=await Promise.all(r.map(i=>p0(r,i,n)));o.sort((i,s)=>(i.artifact.packageName+"@"+i.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let a=Hl({artifacts:o.map(i=>i.artifact)});return{packages:r,bundle:a,bytes:new Map(o.map(i=>[i.artifact.assetName,i.bytes]))}}finally{await Ah(n,{recursive:!0,force:!0})}}function Vi(e,t){return De.join(e,".dyyto","artifact-plans",t+".json")}function u0(e,t){return De.join(e,".dyyto","package-artifacts",t)}async function Ph(e){let t=await Uo(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Eh(t,e.packageRoots),n=e.now??new Date,o=Xl({packageInputs:r.packages.map(a=>({relativeRoot:a.relativeRoot,manifestDigest:y(a.manifestBytes)})),bundle:r.bundle,generatedAt:n.toISOString(),expiresAt:new Date(n.getTime()+30*6e4).toISOString()});return await _h(De.dirname(Vi(t,o.planId)),{recursive:!0}),await Mi(Vi(t,o.planId),JSON.stringify(o,null,2)+`
209
- `,{flag:"wx",mode:384}).catch(async a=>{if(a.code!=="EEXIST")throw a;if(await Ui(Vi(t,o.planId),"utf8")!==JSON.stringify(o,null,2)+`
210
- `)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),o}async function Nh(e){let t=await Uo(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Ui(Vi(t,e.approvedPlanId),"utf8").catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=Ug(JSON.parse(r))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(n.planId!==e.approvedPlanId)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");if((e.now??new Date).getTime()>Date.parse(n.expiresAt))throw new J("LOCAL_ARTIFACT_PLAN_EXPIRED");let o=u0(t,n.bundle.bundleId);if(await ZP(o).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let a=await Eh(t,n.packageInputs.map(c=>c.relativeRoot));if(a.bundle.bundleId!==n.bundle.bundleId||a.packages.some((c,l)=>y(c.manifestBytes)!==n.packageInputs[l].manifestDigest))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let i=De.dirname(o);await _h(i,{recursive:!0});let s=await md(De.join(i,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>Mi(De.join(s,c.assetName),a.bytes.get(c.assetName),{mode:292}))),await Mi(De.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
211
- `,{mode:292}),await XP(s,o)}catch(c){throw await Ah(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:o}}var lr=class extends Error{constructor(r){super(r);this.code=r}code};function Oh(e){let t=[qr(e.bundle),...(e.fallbackBundles??[]).map(qr)],r=new URL(e.origin);if(r.protocol!=="http:"||r.hostname!=="127.0.0.1"||r.pathname!=="/"||r.username||r.password||r.search||r.hash||Number.isNaN(Date.parse(e.resolvedAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new lr("LOCAL_ARTIFACT_SOURCE_INVALID");let n=Al({registryId:"registry.local.development",tenantId:"tenant.platform.maintainers",origin:"http://127.0.0.1/",scopes:["@aipt"],authentication:{kind:"anonymous-test"},capabilities:{read:!0,write:!1,provenance:!1,staging:!1},status:"enabled"}),o=El({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),a=t.flatMap(c=>Fg({bundle:c,registry:n,verifiedAt:e.resolvedAt})),i=new Map(t.flatMap(c=>c.artifacts.map(l=>[`${l.packageName}@${l.version}`,l]))),s=new Map(a.map(c=>[`${c.packageName}@${c.version}`,c]));return Object.freeze({async inspect({release:c}){if(c.availability.maturity!=="candidate"||c.availability.visibility!=="maintainers-only"||c.availability.sourceState!=="development-registry"||c.packageSources.length===0)throw new lr("LOCAL_ARTIFACT_RELEASE_MISMATCH");for(let d of c.packageSources){let p=`${d.packageName}@${d.version}`,f=i.get(p),u=s.get(p);if(!f||!u||d.registryId!==n.registryId||d.version!==f.version||d.integrity!==f.integrity||d.tarballDigest!==f.tarballDigest||d.deliveryReceiptId!==u.receiptId)throw new lr("LOCAL_ARTIFACT_RELEASE_MISMATCH")}let l=Object.freeze(c.packageSources.map(d=>s.get(`${d.packageName}@${d.version}`)));return Object.freeze({registryConfigs:Object.freeze([n]),endpointBindings:Object.freeze([o]),receipts:l,inspections:Object.freeze(c.packageSources.map(d=>{let p=i.get(`${d.packageName}@${d.version}`);return Object.freeze({...d,dependencies:p.dependencies,lifecycleScripts:p.lifecycleScripts})}))})}})}import{mkdir as f0,open as m0,readFile as yd,rename as g0,rm as h0,writeFile as y0}from"node:fs/promises";import _n from"node:path";import{resolvePnpmWorkspaceLock as w0}from"./optional-runtime.js";var I0=y(b({schemaVersion:1,completedRequests:[]}));function Sh(e){return y(b({schemaVersion:1,completedRequests:[...e].sort()}))}function wd(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function gd(e){let t=Buffer.from(e).toString("utf8").split(/\r?\n/u),r=new Map,n=t.findIndex(o=>o==="importers:");if(n<0)throw new Error("RESOLUTION_WORKER_LOCK_INVALID");for(let o=n+1;o<t.length;){let a=/^ ([^\s][^:]*):(?:\s*\{\})?\s*$/u.exec(t[o]);if(!a){if(/^\S/u.test(t[o])&&t[o].trim())break;o+=1;continue}let i=[t[o]],s=o+1;for(;s<t.length&&(/^ /u.test(t[s])||!t[s].trim());)i.push(t[s]),s+=1;r.set(wd(a[1]),y(Buffer.from(`${i.join(`
207
+ \u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function Rh(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=z(r);if(r[0]==="--version"&&r.every(i=>i==="--version"||i==="--json"))return{outputMode:n,human:Nn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:Nn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:Dd,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[o,...a]=r;return o==="catalog"&&a[0]==="search"?TP(a.slice(1)):o==="catalog"&&a[0]==="show"?LP(a.slice(1)):o==="create"?Ih(a):o==="scaffold"&&a[0]==="example"?vP(a.slice(1),t):o==="retrofit"?uP(a):o==="dev"||o==="build"||o==="test"||o==="package"?fP(o,a):o==="add"&&a[0]==="package"?mP(a.slice(1)):o==="add"&&a[0]==="application"?gP(a.slice(1)):o==="add"&&a[0]==="feature"?vh(a.slice(1),t):o==="remove"&&a[0]==="feature"?hP(a.slice(1),t):o==="plan"?yP(a):o==="upgrade"?IP(a,t):o==="apply"?pd(a,t):o==="verify"?ud(a):o==="inspect"?fd(a):o==="doctor"?NP(a):o==="recover"?bP(a):o==="lifecycle"&&typeof a[0]=="string"?kP(a[0],a.slice(1)):o==="packages"&&a[0]==="switch"?_P(a.slice(1)):o==="integrations"?RP(a):o==="maintenance"?AP(a):o==="config"&&a[0]==="inspect"?EP(a.slice(1)):o==="operations"?PP(a):o==="baseline"?wP(a):o==="delivery"&&a[0]==="plan"?OP(a.slice(1)):o==="delivery"&&a[0]==="apply"?DP(a.slice(1)):o==="delivery"&&a[0]==="inspect"?SP(a.slice(1)):o==="observe"&&a[0]==="errors"?jP(a.slice(1)):o==="observe"&&a[0]==="error"?$P(a.slice(1)):o==="observe"&&a[0]==="release"&&a[1]==="register"?CP(a.slice(2)):k(`Unknown command '${o}'.`)}import{createServer as xP}from"node:http";import{readFile as VP,readdir as uC,rm as fC}from"node:fs/promises";import{execFile as MP}from"node:child_process";import{promisify as UP}from"node:util";import FP from"node:path";var wC=UP(MP),gd=class{constructor(t=10,r=20,n=Date.now){this.rate=t;this.burst=r;this.now=n}rate;burst;now;buckets=new Map;take(t){let r=this.now(),n=this.buckets.get(t)??{tokens:this.burst,updatedAt:r};return n.tokens=Math.min(this.burst,n.tokens+Math.max(0,r-n.updatedAt)/1e3*this.rate),n.updatedAt=r,n.tokens<1?(this.buckets.set(t,n),{allowed:!1,retryAfterSeconds:Math.max(1,Math.ceil((1-n.tokens)/this.rate))}):(n.tokens-=1,this.buckets.set(t,n),{allowed:!0})}};async function qP(e){try{let t=JSON.parse(await VP(FP.join(e,".dyyto","observability","config.json"),"utf8"));return!Array.isArray(t.allowedOrigins)||!t.allowedOrigins.every(r=>typeof r=="string")?[]:t.allowedOrigins}catch{return[]}}async function _h(e){let t=new qt(e.workspaceRoot),r=[...e.allowedOrigins??await qP(e.workspaceRoot)],n=new gd,o={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},a=xP(async(s,c)=>{if(c.setHeader("cache-control","no-store"),c.setHeader("content-type","application/json; charset=utf-8"),s.method==="GET"&&s.url==="/health"){c.end(JSON.stringify({status:"healthy"}));return}if(s.method!=="POST"||s.url!=="/v1/runtime-errors"){c.statusCode=404,c.end(JSON.stringify({error:{code:"NOT_FOUND"}}));return}let l=s.headers.origin;if(typeof l!="string"||!r.includes(l)){o.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let d=n.take(l);if(!d.allowed){o.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(d.retryAfterSeconds)),c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_RATE_LIMITED"}}));return}let p=[],f=0;try{for await(let m of s){let g=Buffer.from(m);if(f+=g.length,f>64*1024)throw new oe("RUNTIME_ERROR_TOO_LARGE","Runtime Error request exceeds 64 KiB");p.push(g)}let u=await t.accept(JSON.parse(Buffer.concat(p).toString("utf8")),{receivedAt:new Date().toISOString(),allowedOrigins:r,resolveCorrelation:m=>kg(e.workspaceRoot,m)});o.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof oe?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?o.rejectedInvalid+=1:o.storeFailed+=1,c.statusCode=m?.code==="RUNTIME_ERROR_TOO_LARGE"?413:m?.code==="RUNTIME_ERROR_RATE_LIMITED"?429:m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"?400:500,c.end(JSON.stringify({error:{code:m?.code??"OBSERVABILITY_STORE_FAILED"}}))}});await new Promise((s,c)=>{a.once("error",c),a.listen(e.port??4318,"127.0.0.1",()=>{a.off("error",c),s()})});let i=a.address();if(i===null||typeof i=="string")throw new Error("Collector did not expose a TCP address");return{server:a,origin:`http://127.0.0.1:${i.port}`,snapshot:()=>({...o}),close:()=>new Promise((s,c)=>a.close(l=>l?c(l):s()))}}import{createHash as BP}from"node:crypto";import{createServer as zP}from"node:http";import{readFile as Ah,realpath as Eh}from"node:fs/promises";import Vi from"node:path";var xe=class extends Error{constructor(r){super(r);this.code=r}code};function JP(e){return"sha512-"+BP("sha512").update(e).digest("base64")}async function Fo(e){let t=await Eh(e).catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await Ah(Vi.join(t,"index.json"),"utf8").catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=qr(JSON.parse(r))}catch{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}let o=new Map;for(let a of n.artifacts){let i=Vi.join(t,a.assetName),s=Vi.relative(t,await Eh(i).catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||Vi.isAbsolute(s))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await Ah(i);if(y(c)!==a.tarballDigest||JP(c)!==a.integrity)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");o.set(a.assetName,c)}return{root:t,bundle:n,assets:o}}function GP(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function Ph(e){return JSON.stringify({packageName:e.packageName,version:e.version,assetName:e.assetName,integrity:e.integrity,tarballDigest:e.tarballDigest,dependencies:e.dependencies,lifecycleScripts:e.lifecycleScripts})}function WP(e,t){let r=a=>a.split(/[.-]/u).map(i=>/^\d+$/u.test(i)?Number(i):i),n=r(e),o=r(t);for(let a=0;a<Math.max(n.length,o.length);a+=1){let i=n[a]??0,s=o[a]??0;if(i!==s)return typeof i=="number"&&typeof s=="number"?i-s:String(i).localeCompare(String(s))}return 0}function KP(e,t){let r=new Map,n=new Map;for(let o of[e,...t])for(let a of o.bundle.artifacts){let i=`${a.packageName}@${a.version}`,s=r.get(i);if(s!==void 0&&Ph(s)!==Ph(a))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=o.assets.get(a.assetName);if(c===void 0)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(a.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(i,a),n.set(a.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function Nh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new xe("LOCAL_ARTIFACT_SERVER_INVALID");let t=await Fo(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(Fo)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let o=KP(t,r),a=e.hostname??"127.0.0.1",i=zP((s,c)=>{let l=s.method??"";if(l!=="GET"&&l!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let d=new URL(s.url??"/","http://127.0.0.1").pathname,p=decodeURIComponent(d.slice(1)),f=o.artifacts.filter(u=>u.packageName===p).sort((u,m)=>WP(u.version,m.version));if(f.length>0){let u="http://"+a+":"+e.port,m=Object.fromEntries(f.map(w=>[w.version,{name:w.packageName,version:w.version,dependencies:w.dependencies,dist:{integrity:w.integrity,tarball:u+"/tarballs/"+w.assetName}}])),g=f.at(-1),h=Buffer.from(JSON.stringify({name:g.packageName,versions:m,"dist-tags":{latest:g.version}}));c.statusCode=200,c.setHeader("content-type","application/json"),c.setHeader("content-length",String(h.byteLength)),c.end(l==="HEAD"?void 0:h);return}if(d.startsWith("/tarballs/")){let u=d.slice(10),m=o.assets.get(u);if(m!==void 0){c.statusCode=200,c.setHeader("content-type","application/octet-stream"),c.setHeader("content-length",String(m.byteLength)),c.end(l==="HEAD"?void 0:m);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(l==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{i.once("error",c),i.listen(e.port,a,s)}).catch(()=>{throw new xe("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+a+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>GP(i)})}import{createHash as YP}from"node:crypto";import{execFile as HP}from"node:child_process";import{cp as XP,mkdir as Oh,mkdtemp as hd,readFile as Fi,realpath as qo,rename as ZP,rm as Dh,stat as QP,writeFile as Ui}from"node:fs/promises";import{tmpdir as e0}from"node:os";import Se from"node:path";import{promisify as t0}from"node:util";import{gunzipSync as r0}from"node:zlib";var n0=t0(HP),o0=["preinstall","install","postinstall","prepublish","prepare"],J=class extends Error{constructor(r){super(r);this.code=r}code};function a0(e){return"sha512-"+YP("sha512").update(e).digest("base64")}async function i0(e,t){let r=await qo(e).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let o of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(o))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let a=await qo(Se.join(r,o)).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),i=Se.relative(r,a);if(i!==o||i.startsWith("..")||Se.isAbsolute(i))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=await Fi(Se.join(a,"package.json")).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:o,root:a,manifestBytes:s,manifest:c})}return n}function s0(e,t){let r=new Map(e.map(a=>[String(a.manifest.name),String(a.manifest.version)])),n=t.dependencies;if(n===void 0)return{};if(typeof n!="object"||n===null||Array.isArray(n))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let o={};for(let[a,i]of Object.entries(n)){if(typeof i!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=i.startsWith("workspace:")?r.get(a):i;if(s===void 0)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");o[a]=s}return Object.fromEntries(Object.entries(o).sort(([a],[i])=>a.localeCompare(i)))}function c0(e,t){for(let r=0;r+512<=e.length;){let n=e.subarray(r,r+512);if(n.every(i=>i===0))return;let o=n.toString("utf8",0,100).replace(/\0.*$/su,""),a=Number.parseInt(n.toString("utf8",124,136).replace(/\0.*$/su,"").trim(),8);if(!Number.isSafeInteger(a)||a<0)return;if(o===t)return e.subarray(r+512,r+512+a);r+=512+Math.ceil(a/512)*512}}function l0(e,t,r){let n;try{n=r0(e)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o=c0(n,"package/package.json");if(o===void 0)throw new J("LOCAL_ARTIFACT_PACK_FAILED");let a;try{a=JSON.parse(o.toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let i=a.dependencies===void 0?{}:a.dependencies;if(typeof i!="object"||i===null||Array.isArray(i))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(i).sort(([c],[l])=>c.localeCompare(l)));if(a.name!==t.name||a.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new J("LOCAL_ARTIFACT_PACK_FAILED")}function d0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function p0(e,t,r){let n=Se.join(await hd(Se.join(r,"stage-")),"package");await XP(e.root,n,{recursive:!0,filter:a=>Se.basename(a)!=="node_modules"});let o=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await Ui(Se.join(n,"package.json"),`${JSON.stringify({...o,dependencies:t},null,2)}
208
+ `),n}async function u0(e,t,r){let n=s0(e,t.manifest),o=d0(t.manifest,n)?await p0(t,n,r):t.root,a;try{({stdout:a}=await n0("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:o,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let i;try{i=JSON.parse(a)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let s=i[0]?.filename;if(typeof s!="string"||s.includes("/")||s.includes("\\")||!s.endsWith(".tgz"))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let c=await Fi(Se.join(r,s)).catch(()=>{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}),l=t.manifest.scripts;if(l!==void 0&&(typeof l!="object"||l===null||Array.isArray(l)))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let d=o0.filter(p=>Object.hasOwn(l??{},p));return l0(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:a0(c),tarballDigest:y(c),dependencies:n,lifecycleScripts:d},bytes:c}}async function Sh(e,t){let r=await i0(e,t),n=await hd(Se.join(await qo(e0()),"dyyto-local-artifact-pack-"));try{let o=await Promise.all(r.map(i=>u0(r,i,n)));o.sort((i,s)=>(i.artifact.packageName+"@"+i.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let a=Zl({artifacts:o.map(i=>i.artifact)});return{packages:r,bundle:a,bytes:new Map(o.map(i=>[i.artifact.assetName,i.bytes]))}}finally{await Dh(n,{recursive:!0,force:!0})}}function Mi(e,t){return Se.join(e,".dyyto","artifact-plans",t+".json")}function f0(e,t){return Se.join(e,".dyyto","package-artifacts",t)}async function jh(e){let t=await qo(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Sh(t,e.packageRoots),n=e.now??new Date,o=Ql({packageInputs:r.packages.map(a=>({relativeRoot:a.relativeRoot,manifestDigest:y(a.manifestBytes)})),bundle:r.bundle,generatedAt:n.toISOString(),expiresAt:new Date(n.getTime()+30*6e4).toISOString()});return await Oh(Se.dirname(Mi(t,o.planId)),{recursive:!0}),await Ui(Mi(t,o.planId),JSON.stringify(o,null,2)+`
209
+ `,{flag:"wx",mode:384}).catch(async a=>{if(a.code!=="EEXIST")throw a;if(await Fi(Mi(t,o.planId),"utf8")!==JSON.stringify(o,null,2)+`
210
+ `)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),o}async function $h(e){let t=await qo(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Fi(Mi(t,e.approvedPlanId),"utf8").catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=Jg(JSON.parse(r))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(n.planId!==e.approvedPlanId)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");if((e.now??new Date).getTime()>Date.parse(n.expiresAt))throw new J("LOCAL_ARTIFACT_PLAN_EXPIRED");let o=f0(t,n.bundle.bundleId);if(await QP(o).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let a=await Sh(t,n.packageInputs.map(c=>c.relativeRoot));if(a.bundle.bundleId!==n.bundle.bundleId||a.packages.some((c,l)=>y(c.manifestBytes)!==n.packageInputs[l].manifestDigest))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let i=Se.dirname(o);await Oh(i,{recursive:!0});let s=await hd(Se.join(i,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>Ui(Se.join(s,c.assetName),a.bytes.get(c.assetName),{mode:292}))),await Ui(Se.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
211
+ `,{mode:292}),await ZP(s,o)}catch(c){throw await Dh(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:o}}var lr=class extends Error{constructor(r){super(r);this.code=r}code};function Ch(e){let t=[qr(e.bundle),...(e.fallbackBundles??[]).map(qr)],r=new URL(e.origin);if(r.protocol!=="http:"||r.hostname!=="127.0.0.1"||r.pathname!=="/"||r.username||r.password||r.search||r.hash||Number.isNaN(Date.parse(e.resolvedAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new lr("LOCAL_ARTIFACT_SOURCE_INVALID");let n=Pl({registryId:"registry.local.development",tenantId:"tenant.platform.maintainers",origin:"http://127.0.0.1/",scopes:["@aipt"],authentication:{kind:"anonymous-test"},capabilities:{read:!0,write:!1,provenance:!1,staging:!1},status:"enabled"}),o=Nl({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),a=t.flatMap(c=>Gg({bundle:c,registry:n,verifiedAt:e.resolvedAt})),i=new Map(t.flatMap(c=>c.artifacts.map(l=>[`${l.packageName}@${l.version}`,l]))),s=new Map(a.map(c=>[`${c.packageName}@${c.version}`,c]));return Object.freeze({async inspect({release:c}){if(c.availability.maturity!=="candidate"||c.availability.visibility!=="maintainers-only"||c.availability.sourceState!=="development-registry"||c.packageSources.length===0)throw new lr("LOCAL_ARTIFACT_RELEASE_MISMATCH");for(let d of c.packageSources){let p=`${d.packageName}@${d.version}`,f=i.get(p),u=s.get(p);if(!f||!u||d.registryId!==n.registryId||d.version!==f.version||d.integrity!==f.integrity||d.tarballDigest!==f.tarballDigest||d.deliveryReceiptId!==u.receiptId)throw new lr("LOCAL_ARTIFACT_RELEASE_MISMATCH")}let l=Object.freeze(c.packageSources.map(d=>s.get(`${d.packageName}@${d.version}`)));return Object.freeze({registryConfigs:Object.freeze([n]),endpointBindings:Object.freeze([o]),receipts:l,inspections:Object.freeze(c.packageSources.map(d=>{let p=i.get(`${d.packageName}@${d.version}`);return Object.freeze({...d,dependencies:p.dependencies,lifecycleScripts:p.lifecycleScripts})}))})}})}import{mkdir as m0,open as g0,readFile as Id,rename as h0,rm as y0,writeFile as w0}from"node:fs/promises";import An from"node:path";import{resolvePnpmWorkspaceLock as I0}from"./optional-runtime.js";var v0=y(b({schemaVersion:1,completedRequests:[]}));function Th(e){return y(b({schemaVersion:1,completedRequests:[...e].sort()}))}function vd(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function yd(e){let t=Buffer.from(e).toString("utf8").split(/\r?\n/u),r=new Map,n=t.findIndex(o=>o==="importers:");if(n<0)throw new Error("RESOLUTION_WORKER_LOCK_INVALID");for(let o=n+1;o<t.length;){let a=/^ ([^\s][^:]*):(?:\s*\{\})?\s*$/u.exec(t[o]);if(!a){if(/^\S/u.test(t[o])&&t[o].trim())break;o+=1;continue}let i=[t[o]],s=o+1;for(;s<t.length&&(/^ /u.test(t[s])||!t[s].trim());)i.push(t[s]),s+=1;r.set(vd(a[1]),y(Buffer.from(`${i.join(`
212
212
  `)}
213
- `))),o=s}return r}function hd(e,t){let r=Buffer.from(e).toString("utf8").split(/\r?\n/u),n=r.findIndex(a=>a===`${t}:`),o=[];if(n<0)return o;for(let a=n+1;a<r.length&&!(/^\S/u.test(r[a])&&r[a].trim());){let i=/^ (.+):\s*$/u.exec(r[a]);if(!i){a+=1;continue}let s=[r[a]],c=a+1;for(;c<r.length&&(/^ /u.test(r[c])||!r[c].trim());)s.push(r[c]),c+=1;o.push({key:wd(i[1]),bytes:Buffer.from(`${s.join(`
213
+ `))),o=s}return r}function wd(e,t){let r=Buffer.from(e).toString("utf8").split(/\r?\n/u),n=r.findIndex(a=>a===`${t}:`),o=[];if(n<0)return o;for(let a=n+1;a<r.length&&!(/^\S/u.test(r[a])&&r[a].trim());){let i=/^ (.+):\s*$/u.exec(r[a]);if(!i){a+=1;continue}let s=[r[a]],c=a+1;for(;c<r.length&&(/^ /u.test(r[c])||!r[c].trim());)s.push(r[c]),c+=1;o.push({key:vd(i[1]),bytes:Buffer.from(`${s.join(`
214
214
  `)}
215
- `)}),a=c}return o}function v0(e){let t=e.startsWith("@")?e.indexOf("@",e.indexOf("/")+1):e.lastIndexOf("@");if(t<=0)return;let r=e.slice(0,t),n=e.slice(t+1).replace(/\(.+\)$/u,"");return/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u.test(n)?{packageName:r,version:n}:void 0}function b0(e,t,r){let n=new Map(hd(e,"snapshots").map(o=>[o.key,o.bytes]));return hd(e,"packages").map(o=>{let a=v0(o.key),i=/\bintegrity:\s*([^,}\s]+)/u.exec(Buffer.from(o.bytes).toString("utf8"));if(!a||!i)throw new Error("RESOLUTION_WORKER_LOCK_FACTS_INCOMPLETE");let s=wd(i[1]),c=t.find(p=>p.packageName===a.packageName&&p.version===a.version),l=c?.registryId??r.find(p=>p.scopes.some(f=>a.packageName.startsWith(`${f}/`)))?.registryId??"registry.npmjs.public",d=n.get(o.key);return{identity:o.key,packageName:a.packageName,version:a.version,integrity:s,registryId:l,managed:c!==void 0,edgesDigest:y(d??b({dependencies:[]}))}}).sort((o,a)=>o.identity.localeCompare(a.identity))}function Dh(e={}){return async t=>{let r=await w0({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:_n.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=gd(t.currentLockfile),o=gd(r.lockfile),a=await Qa(t.topology.transactionRoot),i=new Map(a.map(p=>[p.relativeRoot,p.bytes])),s=await yd(_n.join(t.topology.transactionRoot,"package.json")).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));s&&i.set(".",s),i.set(t.topology.unitImporterId,t.desiredPackageJson);let c=[...o].map(([p,f])=>{let u=i.get(p);if(!u)throw new Error("RESOLUTION_WORKER_IMPORTER_MANIFEST_MISSING");return{importerId:p,manifestDigest:y(u),preimageDigest:n.get(p)??y(b({absent:!0})),desiredDigest:f}}).sort((p,f)=>p.importerId.localeCompare(f.importerId)),l=b0(r.lockfile,t.sources,t.registryConfigs),d=hd(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:l,snapshotClosureDigest:y(b(d.map(p=>({identity:p.key,digest:y(p.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:y(b({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:y(b({desiredLockDigest:y(r.lockfile),packageFacts:l.map(({identity:p,integrity:f})=>({identity:p,integrity:f}))}))}}}async function k0(e){try{let t=JSON.parse(await yd(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==Sh(t.completedRequests))throw new Error("RESOLUTION_WORKER_STATE_INVALID");return{schemaVersion:1,revision:t.revision,completedRequests:Object.freeze([...t.completedRequests])}}catch(t){if(t.code==="ENOENT")return{schemaVersion:1,revision:I0,completedRequests:Object.freeze([])};throw t}}function jh(e){let t=e.workerReleaseId??"reference.pnpm-resolution-worker.v1";return{async resolveWorkspace(r){if(r.topology.mode!=="pnpm-shared-lockfile")throw new Error("RESOLUTION_WORKER_TOPOLOGY_INVALID");let n=Ei(JSON.parse(await yd(_n.join(e.stateRoot,"build-receipt.json"),"utf8").catch(()=>{throw new Error("RESOLUTION_WORKER_BUILD_REQUIRED")})));if(n.workerReleaseId!==t||n.pnpmVersion!=="11.21.0")throw new Error("RESOLUTION_WORKER_BUILD_REQUIRED");let a=[...gd(r.currentLockfile)].filter(([f])=>f!==r.topology.unitImporterId).map(([f,u])=>({importerId:f,preimageDigest:u,desiredDigest:u})).sort((f,u)=>f.importerId.localeCompare(u.importerId)),i={mode:r.topology.mode,unitRelativeRoot:r.topology.unitRelativeRoot,unitImporterId:r.topology.unitImporterId,lockfilePath:r.topology.lockfilePath,workspaceManifestPath:r.topology.workspaceManifestPath,workspaceManifestDigest:r.topology.workspaceManifestDigest},s=Ro({schemaVersion:1,pnpmVersion:"11.21.0",topology:i,currentLockfileDigest:y(r.currentLockfile),desiredPackageJsonDigest:y(r.desiredPackageJson),sources:r.sources.map(({registryId:f,packageName:u,version:m,integrity:g})=>({registryId:f,packageName:u,version:m,integrity:g})),preservedImporterDigests:a.map(({importerId:f,preimageDigest:u})=>({importerId:f,preimageDigest:u}))}),l=`pnpm11-node24-${y(b({workerReleaseId:t,pnpmVersion:"11.21.0",registryRevisions:r.registryConfigs.map(({registryId:f,revision:u})=>({registryId:f,revision:u})).sort((f,u)=>f.registryId.localeCompare(u.registryId))})).slice(7)}`;await f0(e.stateRoot,{recursive:!0});let d=_n.join(e.stateRoot,`${l.slice(7)}.lease`),p;try{p=await m0(d,"wx",384)}catch(f){throw f.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):f}try{let f=_n.join(e.stateRoot,"state.json"),u=await k0(f),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:l}),g=[...new Set([...u.completedRequests,s])].sort(),h=Sh(g),w=Am({workerReleaseId:t,workerStateRevision:h,requestDigest:s,pnpmVersion:"11.21.0",desiredLockfile:m.desiredLockfile,importerFacts:m.importerFacts,packageFacts:m.packageFacts,snapshotClosureDigest:m.snapshotClosureDigest,networkObservationDigest:m.networkObservationDigest,cacheObservation:{namespace:l,preimageRevision:u.revision,desiredRevision:h,writesDigest:m.writesDigest},commandDigest:m.commandDigest,completedAt:r.generatedAt,expiresAt:r.expiresAt}),_=_n.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await y0(_,`${JSON.stringify({schemaVersion:1,revision:h,completedRequests:g},null,2)}
216
- `,{mode:384}),await g0(_,f),{evidence:w,workerReleaseId:t,preservedImporterDigests:a}}finally{await p.close(),await h0(d,{force:!0})}}}}import{execFile as R0}from"node:child_process";import{mkdir as An,mkdtemp as _0,readFile as Rt,readdir as A0,readlink as E0,realpath as vd,rename as P0,rm as $h,stat as N0,writeFile as Br}from"node:fs/promises";import{tmpdir as O0}from"node:os";import se from"node:path";import{promisify as S0}from"node:util";var D0=S0(R0);function Ch(e,t){return se.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function Th(e){return se.join(e,".dyyto","resolution-worker")}function Id(e){return se.join(Th(e),"build-receipt.json")}async function j0(e){let t=[];async function r(n){for(let o of await A0(n,{withFileTypes:!0}).catch(a=>a.code==="ENOENT"?[]:Promise.reject(a))){let a=se.join(n,o.name);if(o.isSymbolicLink()){let i=await E0(a);t.push({path:se.relative(e,a),digest:y(b({symlink:i})),bytes:0})}else if(o.isDirectory())await r(a);else if(o.isFile()){let i=await Rt(a);t.push({path:se.relative(e,a),digest:y(i),bytes:i.byteLength})}}}return await r(e),t.sort((n,o)=>n.path.localeCompare(o.path)),{cacheDigest:y(b(t)),cacheBytes:t.reduce((n,o)=>n+o.bytes,0)}}function Lh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await _0(se.join(await vd(O0()),"dyyto-resolution-warmup-")),n=se.join(r,".home");await An(n);try{await Br(se.join(r,"pnpm-workspace.yaml"),await Rt(se.join(e,"pnpm-workspace.yaml"))),await Br(se.join(r,"pnpm-lock.yaml"),await Rt(se.join(e,"pnpm-lock.yaml")));let o=await Rt(se.join(e,"package.json")).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d));o&&await Br(se.join(r,"package.json"),o);for(let d of await Qa(e)){let p=se.join(r,...d.relativeRoot.split("/"));await An(p,{recursive:!0}),await Br(se.join(p,"package.json"),d.bytes)}let a=se.join(n,"userconfig.npmrc");await Br(a,`ignore-scripts=true
215
+ `)}),a=c}return o}function b0(e){let t=e.startsWith("@")?e.indexOf("@",e.indexOf("/")+1):e.lastIndexOf("@");if(t<=0)return;let r=e.slice(0,t),n=e.slice(t+1).replace(/\(.+\)$/u,"");return/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u.test(n)?{packageName:r,version:n}:void 0}function k0(e,t,r){let n=new Map(wd(e,"snapshots").map(o=>[o.key,o.bytes]));return wd(e,"packages").map(o=>{let a=b0(o.key),i=/\bintegrity:\s*([^,}\s]+)/u.exec(Buffer.from(o.bytes).toString("utf8"));if(!a||!i)throw new Error("RESOLUTION_WORKER_LOCK_FACTS_INCOMPLETE");let s=vd(i[1]),c=t.find(p=>p.packageName===a.packageName&&p.version===a.version),l=c?.registryId??r.find(p=>p.scopes.some(f=>a.packageName.startsWith(`${f}/`)))?.registryId??"registry.npmjs.public",d=n.get(o.key);return{identity:o.key,packageName:a.packageName,version:a.version,integrity:s,registryId:l,managed:c!==void 0,edgesDigest:y(d??b({dependencies:[]}))}}).sort((o,a)=>o.identity.localeCompare(a.identity))}function Lh(e={}){return async t=>{let r=await I0({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:An.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=yd(t.currentLockfile),o=yd(r.lockfile),a=await ei(t.topology.transactionRoot),i=new Map(a.map(p=>[p.relativeRoot,p.bytes])),s=await Id(An.join(t.topology.transactionRoot,"package.json")).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));s&&i.set(".",s),i.set(t.topology.unitImporterId,t.desiredPackageJson);let c=[...o].map(([p,f])=>{let u=i.get(p);if(!u)throw new Error("RESOLUTION_WORKER_IMPORTER_MANIFEST_MISSING");return{importerId:p,manifestDigest:y(u),preimageDigest:n.get(p)??y(b({absent:!0})),desiredDigest:f}}).sort((p,f)=>p.importerId.localeCompare(f.importerId)),l=k0(r.lockfile,t.sources,t.registryConfigs),d=wd(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:l,snapshotClosureDigest:y(b(d.map(p=>({identity:p.key,digest:y(p.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:y(b({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:y(b({desiredLockDigest:y(r.lockfile),packageFacts:l.map(({identity:p,integrity:f})=>({identity:p,integrity:f}))}))}}}async function R0(e){try{let t=JSON.parse(await Id(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==Th(t.completedRequests))throw new Error("RESOLUTION_WORKER_STATE_INVALID");return{schemaVersion:1,revision:t.revision,completedRequests:Object.freeze([...t.completedRequests])}}catch(t){if(t.code==="ENOENT")return{schemaVersion:1,revision:v0,completedRequests:Object.freeze([])};throw t}}function xh(e){let t=e.workerReleaseId??"reference.pnpm-resolution-worker.v1";return{async resolveWorkspace(r){if(r.topology.mode!=="pnpm-shared-lockfile")throw new Error("RESOLUTION_WORKER_TOPOLOGY_INVALID");let n=Pi(JSON.parse(await Id(An.join(e.stateRoot,"build-receipt.json"),"utf8").catch(()=>{throw new Error("RESOLUTION_WORKER_BUILD_REQUIRED")})));if(n.workerReleaseId!==t||n.pnpmVersion!=="11.21.0")throw new Error("RESOLUTION_WORKER_BUILD_REQUIRED");let a=[...yd(r.currentLockfile)].filter(([f])=>f!==r.topology.unitImporterId).map(([f,u])=>({importerId:f,preimageDigest:u,desiredDigest:u})).sort((f,u)=>f.importerId.localeCompare(u.importerId)),i={mode:r.topology.mode,unitRelativeRoot:r.topology.unitRelativeRoot,unitImporterId:r.topology.unitImporterId,lockfilePath:r.topology.lockfilePath,workspaceManifestPath:r.topology.workspaceManifestPath,workspaceManifestDigest:r.topology.workspaceManifestDigest},s=Ao({schemaVersion:1,pnpmVersion:"11.21.0",topology:i,currentLockfileDigest:y(r.currentLockfile),desiredPackageJsonDigest:y(r.desiredPackageJson),sources:r.sources.map(({registryId:f,packageName:u,version:m,integrity:g})=>({registryId:f,packageName:u,version:m,integrity:g})),preservedImporterDigests:a.map(({importerId:f,preimageDigest:u})=>({importerId:f,preimageDigest:u}))}),l=`pnpm11-node24-${y(b({workerReleaseId:t,pnpmVersion:"11.21.0",registryRevisions:r.registryConfigs.map(({registryId:f,revision:u})=>({registryId:f,revision:u})).sort((f,u)=>f.registryId.localeCompare(u.registryId))})).slice(7)}`;await m0(e.stateRoot,{recursive:!0});let d=An.join(e.stateRoot,`${l.slice(7)}.lease`),p;try{p=await g0(d,"wx",384)}catch(f){throw f.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):f}try{let f=An.join(e.stateRoot,"state.json"),u=await R0(f),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:l}),g=[...new Set([...u.completedRequests,s])].sort(),h=Th(g),w=Dm({workerReleaseId:t,workerStateRevision:h,requestDigest:s,pnpmVersion:"11.21.0",desiredLockfile:m.desiredLockfile,importerFacts:m.importerFacts,packageFacts:m.packageFacts,snapshotClosureDigest:m.snapshotClosureDigest,networkObservationDigest:m.networkObservationDigest,cacheObservation:{namespace:l,preimageRevision:u.revision,desiredRevision:h,writesDigest:m.writesDigest},commandDigest:m.commandDigest,completedAt:r.generatedAt,expiresAt:r.expiresAt}),_=An.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await w0(_,`${JSON.stringify({schemaVersion:1,revision:h,completedRequests:g},null,2)}
216
+ `,{mode:384}),await h0(_,f),{evidence:w,workerReleaseId:t,preservedImporterDigests:a}}finally{await p.close(),await y0(d,{force:!0})}}}}import{execFile as _0}from"node:child_process";import{mkdir as En,mkdtemp as A0,readFile as _t,readdir as E0,readlink as P0,realpath as kd,rename as N0,rm as Vh,stat as O0,writeFile as Br}from"node:fs/promises";import{tmpdir as D0}from"node:os";import se from"node:path";import{promisify as S0}from"node:util";var j0=S0(_0);function Mh(e,t){return se.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function Uh(e){return se.join(e,".dyyto","resolution-worker")}function bd(e){return se.join(Uh(e),"build-receipt.json")}async function $0(e){let t=[];async function r(n){for(let o of await E0(n,{withFileTypes:!0}).catch(a=>a.code==="ENOENT"?[]:Promise.reject(a))){let a=se.join(n,o.name);if(o.isSymbolicLink()){let i=await P0(a);t.push({path:se.relative(e,a),digest:y(b({symlink:i})),bytes:0})}else if(o.isDirectory())await r(a);else if(o.isFile()){let i=await _t(a);t.push({path:se.relative(e,a),digest:y(i),bytes:i.byteLength})}}}return await r(e),t.sort((n,o)=>n.path.localeCompare(o.path)),{cacheDigest:y(b(t)),cacheBytes:t.reduce((n,o)=>n+o.bytes,0)}}function Fh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await A0(se.join(await kd(D0()),"dyyto-resolution-warmup-")),n=se.join(r,".home");await En(n);try{await Br(se.join(r,"pnpm-workspace.yaml"),await _t(se.join(e,"pnpm-workspace.yaml"))),await Br(se.join(r,"pnpm-lock.yaml"),await _t(se.join(e,"pnpm-lock.yaml")));let o=await _t(se.join(e,"package.json")).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d));o&&await Br(se.join(r,"package.json"),o);for(let d of await ei(e)){let p=se.join(r,...d.relativeRoot.split("/"));await En(p,{recursive:!0}),await Br(se.join(p,"package.json"),d.bytes)}let a=se.join(n,"userconfig.npmrc");await Br(a,`ignore-scripts=true
217
217
  strict-peer-dependencies=true
218
218
  manage-package-manager-versions=false
219
- `,{mode:384});let i=se.join(t,"store","shared"),s=se.join(t,"cache");await An(i,{recursive:!0}),await An(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],l=await D0("corepack",c,{cwd:r,env:{PATH:process.env.PATH,CI:"1",NO_COLOR:"1",HOME:n,XDG_CACHE_HOME:s,COREPACK_HOME:process.env.COREPACK_HOME,COREPACK_ENABLE_PROJECT_SPEC:"0",NPM_CONFIG_USERCONFIG:a,pnpm_config_store_dir:i},timeout:9e5,maxBuffer:8*1024*1024});return{...await j0(t),commandDigest:y(b({executable:"corepack",args:c,stdoutDigest:y(l.stdout),stderrDigest:y(l.stderr)}))}}finally{await $h(r,{recursive:!0,force:!0})}}}async function xh(e){let t=await vd(e.workspaceRoot),r=e.now??new Date,[n,o]=await Promise.all([Rt(se.join(t,"pnpm-workspace.yaml")),Rt(se.join(t,"pnpm-lock.yaml"))]),a=y(b({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n)})),i=Zl({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n),rootLockDigest:y(o),cacheNamespace:`pnpm11-node24-${a.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=Ch(t,i.planId);await An(se.dirname(s),{recursive:!0});let c=`${JSON.stringify(i,null,2)}
220
- `;return await Br(s,c,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await Rt(s,"utf8")!==c)throw l}),i}async function Vh(e){let t=await vd(e.workspaceRoot),r=Bg(JSON.parse(await Rt(Ch(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new We("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,o]=await Promise.all([Rt(se.join(t,"pnpm-workspace.yaml")),Rt(se.join(t,"pnpm-lock.yaml"))]);if(y(n)!==r.workspaceManifestDigest||y(o)!==r.rootLockDigest)throw new We("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let a=Th(t),i=await Rt(Id(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(i)return Ei(JSON.parse(i));await An(a,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:a,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new We("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=Ql({planId:r.planId,workerReleaseId:r.workerReleaseId,pnpmVersion:r.pnpmVersion,cacheNamespace:r.cacheNamespace,cacheDigest:s.cacheDigest,cacheBytes:s.cacheBytes,commandDigest:s.commandDigest,completedAt:(e.now??new Date).toISOString()}),l=se.join(a,`build-receipt.${r.planId.slice(7)}.tmp`);return await Br(l,`${JSON.stringify(c,null,2)}
221
- `,{mode:384}),await P0(l,Id(t)),c}catch(s){throw await N0(Id(t)).then(()=>!0).catch(()=>!1)||await $h(se.join(a,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as $0,readFile as zr,realpath as Mh,writeFile as C0}from"node:fs/promises";import Jr from"node:path";function Uh(e,t){return Jr.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function Fh(e){let t=await Mh(e.projectRoot),r=await xt(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await zr(Jr.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await zr(Jr.join(t,".dyyto","plans",`${n.planId}.json`));let o=JSON.parse(await zr(Jr.join(r.transactionRoot,".dyyto","transactions",n.planId,"journal.json"),"utf8"));if(o.state!=="recovery-required"&&o.state!=="recovering"||!Array.isArray(o.operations))throw new Error("RECOVERY_OVERRIDE_INVALID");let a=[];for(let d of o.operations){if(d.before.kind!=="present"||!d.before.preimageDigest)continue;let p=await zr(Jr.join(r.transactionRoot,...d.path.split("/"))).catch(u=>u.code==="ENOENT"?void 0:Promise.reject(u));if(!p)continue;let f=y(p);f!==d.before.digest&&f!==d.desiredDigest&&a.push({path:d.path,currentDigest:f,preimageDigest:d.before.preimageDigest})}let i=e.now??new Date,s=td({transactionPlanId:n.planId,transactionRootDigest:y(r.transactionRoot),conflicts:a,generatedAt:i.toISOString(),expiresAt:new Date(i.getTime()+30*6e4).toISOString()}),c=Uh(t,s.planId);await $0(Jr.dirname(c),{recursive:!0});let l=`${JSON.stringify(s,null,2)}
222
- `;return await C0(c,l,{flag:"wx",mode:384}).catch(async d=>{if(d.code!=="EEXIST"||await zr(c,"utf8")!==l)throw d}),s}async function qh(e){let t=await Mh(e.projectRoot),r=await xt(t),n=zg(JSON.parse(await zr(Uh(t,e.approvedPlanId),"utf8")));if(n.planId!==e.approvedPlanId||Date.now()>Date.parse(n.expiresAt)||r.mode!=="pnpm-shared-lockfile"||y(r.transactionRoot)!==n.transactionRootDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT");for(let o of n.conflicts){let a=await zr(Jr.join(r.transactionRoot,...o.path.split("/")));if(y(a)!==o.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return il({projectRoot:r.transactionRoot,planId:n.transactionPlanId,now:(e.now??new Date).toISOString(),approvedConflicts:n.conflicts.map(({path:o,currentDigest:a})=>({path:o,currentDigest:a}))})}function Fi(e){return e.endsWith(`
219
+ `,{mode:384});let i=se.join(t,"store","shared"),s=se.join(t,"cache");await En(i,{recursive:!0}),await En(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],l=await j0("corepack",c,{cwd:r,env:{PATH:process.env.PATH,CI:"1",NO_COLOR:"1",HOME:n,XDG_CACHE_HOME:s,COREPACK_HOME:process.env.COREPACK_HOME,COREPACK_ENABLE_PROJECT_SPEC:"0",NPM_CONFIG_USERCONFIG:a,pnpm_config_store_dir:i},timeout:9e5,maxBuffer:8*1024*1024});return{...await $0(t),commandDigest:y(b({executable:"corepack",args:c,stdoutDigest:y(l.stdout),stderrDigest:y(l.stderr)}))}}finally{await Vh(r,{recursive:!0,force:!0})}}}async function qh(e){let t=await kd(e.workspaceRoot),r=e.now??new Date,[n,o]=await Promise.all([_t(se.join(t,"pnpm-workspace.yaml")),_t(se.join(t,"pnpm-lock.yaml"))]),a=y(b({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n)})),i=ed({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n),rootLockDigest:y(o),cacheNamespace:`pnpm11-node24-${a.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=Mh(t,i.planId);await En(se.dirname(s),{recursive:!0});let c=`${JSON.stringify(i,null,2)}
220
+ `;return await Br(s,c,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await _t(s,"utf8")!==c)throw l}),i}async function Bh(e){let t=await kd(e.workspaceRoot),r=Kg(JSON.parse(await _t(Mh(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new Ke("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,o]=await Promise.all([_t(se.join(t,"pnpm-workspace.yaml")),_t(se.join(t,"pnpm-lock.yaml"))]);if(y(n)!==r.workspaceManifestDigest||y(o)!==r.rootLockDigest)throw new Ke("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let a=Uh(t),i=await _t(bd(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(i)return Pi(JSON.parse(i));await En(a,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:a,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new Ke("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=td({planId:r.planId,workerReleaseId:r.workerReleaseId,pnpmVersion:r.pnpmVersion,cacheNamespace:r.cacheNamespace,cacheDigest:s.cacheDigest,cacheBytes:s.cacheBytes,commandDigest:s.commandDigest,completedAt:(e.now??new Date).toISOString()}),l=se.join(a,`build-receipt.${r.planId.slice(7)}.tmp`);return await Br(l,`${JSON.stringify(c,null,2)}
221
+ `,{mode:384}),await N0(l,bd(t)),c}catch(s){throw await O0(bd(t)).then(()=>!0).catch(()=>!1)||await Vh(se.join(a,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as C0,readFile as zr,realpath as zh,writeFile as T0}from"node:fs/promises";import Jr from"node:path";function Jh(e,t){return Jr.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function Gh(e){let t=await zh(e.projectRoot),r=await Mt(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await zr(Jr.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await zr(Jr.join(t,".dyyto","plans",`${n.planId}.json`));let o=JSON.parse(await zr(Jr.join(r.transactionRoot,".dyyto","transactions",n.planId,"journal.json"),"utf8"));if(o.state!=="recovery-required"&&o.state!=="recovering"||!Array.isArray(o.operations))throw new Error("RECOVERY_OVERRIDE_INVALID");let a=[];for(let d of o.operations){if(d.before.kind!=="present"||!d.before.preimageDigest)continue;let p=await zr(Jr.join(r.transactionRoot,...d.path.split("/"))).catch(u=>u.code==="ENOENT"?void 0:Promise.reject(u));if(!p)continue;let f=y(p);f!==d.before.digest&&f!==d.desiredDigest&&a.push({path:d.path,currentDigest:f,preimageDigest:d.before.preimageDigest})}let i=e.now??new Date,s=nd({transactionPlanId:n.planId,transactionRootDigest:y(r.transactionRoot),conflicts:a,generatedAt:i.toISOString(),expiresAt:new Date(i.getTime()+30*6e4).toISOString()}),c=Jh(t,s.planId);await C0(Jr.dirname(c),{recursive:!0});let l=`${JSON.stringify(s,null,2)}
222
+ `;return await T0(c,l,{flag:"wx",mode:384}).catch(async d=>{if(d.code!=="EEXIST"||await zr(c,"utf8")!==l)throw d}),s}async function Wh(e){let t=await zh(e.projectRoot),r=await Mt(t),n=Yg(JSON.parse(await zr(Jh(t,e.approvedPlanId),"utf8")));if(n.planId!==e.approvedPlanId||Date.now()>Date.parse(n.expiresAt)||r.mode!=="pnpm-shared-lockfile"||y(r.transactionRoot)!==n.transactionRootDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT");for(let o of n.conflicts){let a=await zr(Jr.join(r.transactionRoot,...o.path.split("/")));if(y(a)!==o.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return cl({projectRoot:r.transactionRoot,planId:n.transactionPlanId,now:(e.now??new Date).toISOString(),approvedConflicts:n.conflicts.map(({path:o,currentDigest:a})=>({path:o,currentDigest:a}))})}function qi(e){return e.endsWith(`
223
223
  `)?e:`${e}
224
- `}function Bh(e,t,r){return t==="json"?{stdout:Fi(JSON.stringify(e)),stderr:""}:{stdout:Fi(r),stderr:""}}function zh(e,t){if(t==="json")return{stdout:"",stderr:Fi(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
225
- Next: ${e.error.nextStep}`;return{stdout:"",stderr:Fi(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as T0,readFile as qo,realpath as Jh}from"node:fs/promises";import xe from"node:path";var lt=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function Fo(e){let t=await T0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new lt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return qo(e)}}async function Gh(e){let t=xe.dirname(e);for(;t!==xe.parse(t).root;){if(await Fo(xe.join(t,"pnpm-workspace.yaml"))&&await Fo(xe.join(t,"pnpm-lock.yaml"))&&await Fo(xe.join(t,"project-capabilities.json")))return t;t=xe.dirname(t)}throw new lt("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function L0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function Wh(e,t){let r=e.toString("utf8"),n=t.toString("utf8"),o=/^verifyDepsBeforeRun:\s*([^\r\n#]+)$/mu.exec(n)?.[1]?.trim();o&&!/^verifyDepsBeforeRun:/mu.test(r)&&(r+=`${r.endsWith(`
224
+ `}function Kh(e,t,r){return t==="json"?{stdout:qi(JSON.stringify(e)),stderr:""}:{stdout:qi(r),stderr:""}}function Yh(e,t){if(t==="json")return{stdout:"",stderr:qi(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
225
+ Next: ${e.error.nextStep}`;return{stdout:"",stderr:qi(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as L0,readFile as zo,realpath as Hh}from"node:fs/promises";import Ve from"node:path";var ut=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function Bo(e){let t=await L0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new ut("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return zo(e)}}async function Xh(e){let t=Ve.dirname(e);for(;t!==Ve.parse(t).root;){if(await Bo(Ve.join(t,"pnpm-workspace.yaml"))&&await Bo(Ve.join(t,"pnpm-lock.yaml"))&&await Bo(Ve.join(t,"project-capabilities.json")))return t;t=Ve.dirname(t)}throw new ut("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function x0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function Zh(e,t){let r=e.toString("utf8"),n=t.toString("utf8"),o=/^verifyDepsBeforeRun:\s*([^\r\n#]+)$/mu.exec(n)?.[1]?.trim();o&&!/^verifyDepsBeforeRun:/mu.test(r)&&(r+=`${r.endsWith(`
226
226
  `)?"":`
227
227
  `}verifyDepsBeforeRun: ${o}
228
228
  `);let a=n.split(/\r?\n/u),i=[],s=!1;for(let l of a){if(/^allowBuilds:\s*$/u.test(l)){s=!0;continue}if(s&&/^ ['"]?[^'"\s][^:]*['"]?:\s*true\s*$/u.test(l)){i.push(l.trim());continue}s&&l.trim()&&!/^\s/u.test(l)&&(s=!1)}let c=i.filter(l=>!r.split(/\r?\n/u).some(d=>d.trim()===l));if(c.length>0)if(!/^allowBuilds:\s*$/mu.test(r))r+=`${r.endsWith(`
@@ -233,10 +233,10 @@ ${c.map(l=>` ${l}`).join(`
233
233
  `;else{let l=r.split(/\r?\n/u),p=l.findIndex(f=>/^allowBuilds:\s*$/u.test(f))+1;for(;p<l.length&&(!l[p].trim()||/^\s/u.test(l[p]));)p+=1;l.splice(p,0,...c.map(f=>` ${f}`)),r=l.join(`
234
234
  `)}return Buffer.from(r.endsWith(`
235
235
  `)?r:`${r}
236
- `)}async function Kh(e){let t=await Jh(xe.resolve(e.projectRoot)),r=await Gh(t),n=xe.relative(r,t).split(xe.sep).join("/");if(!n||n.startsWith("../"))throw new lt("WORKSPACE_TOPOLOGY_OWNER_MISSING");let o=await Fo(xe.join(t,"pnpm-lock.yaml")),a=await Fo(xe.join(t,"pnpm-workspace.yaml"));if(!o&&!a)throw new lt("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let i=await qo(xe.join(r,"pnpm-lock.yaml")),s=await qo(xe.join(r,"pnpm-workspace.yaml"));if(!L0(i.toString("utf8"),n))throw new lt("WORKSPACE_TOPOLOGY_IMPORTER_MISSING");if(a&&!/^packages:\s*\[\]/mu.test(a.toString("utf8")))throw new lt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let c=a?Wh(s,a):s,l=[...y(c)!==y(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:y(s),desiredDigest:y(c)}]:[],...o?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(o)}]:[],...a?[{path:`${n}/pnpm-workspace.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(a)}]:[]],d=e.generatedAt??new Date().toISOString(),p=e.expiresAt??new Date(Date.parse(d)+30*6e4).toISOString(),f=Pe({action:"upgrade",capability:{schemaVersion:1,capabilityId:"foundation.workspace-topology-migration",version:"1.0.0",integrity:y("foundation.workspace-topology-migration@1.0.0"),assets:[],verifiers:[]},changes:l,observedAssets:l.map(m=>({path:m.path,exists:!0,digest:m.baseDigest})),generatedAt:d,expiresAt:p});return{plan:await Lt({projectRoot:t,transactionRoot:r,plan:f,now:d}),transactionRoot:r}}async function Yh(e){let t=await Jh(xe.resolve(e.projectRoot)),r=await Gh(t),n=await Dr({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new lt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let o=new Map,a=n.operations.find(c=>c.path==="pnpm-workspace.yaml"&&c.kind==="replace");if(a){let c=await qo(xe.join(t,"pnpm-workspace.yaml")),l=await qo(xe.join(r,"pnpm-workspace.yaml")),d=Wh(l,c);if(y(d)!==a.desiredDigest)throw new lt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");o.set("pnpm-workspace.yaml",d)}let i=await nr({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:o,now:e.now??new Date().toISOString()}),s=await or(i);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as x0}from"node:readline";import qi from"node:process";var V0=[{name:"dyyto_catalog_search",title:"\u641C\u7D22 Dyyto \u5DE5\u7A0B\u80FD\u529B\u76EE\u5F55",description:"\u641C\u7D22\u7ECF\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\u7684\u6700\u65B0 Capability \u4E0E PackageRelease\uFF1B\u4E0D\u4F1A\u4FEE\u6539\u9879\u76EE\u3002",inputSchema:{type:"object",properties:{query:{type:"string",description:"\u540D\u79F0\u3001\u8BF4\u660E\u6216\u6210\u719F\u5EA6\u5173\u952E\u8BCD\uFF1B\u7559\u7A7A\u65F6\u5217\u51FA\u5168\u90E8\u3002"},kind:{type:"string",enum:["package","capability"],description:"\u53EF\u9009\u7684\u8D44\u4EA7\u7C7B\u578B\u3002"},limit:{type:"integer",minimum:1,maximum:200,default:50}},additionalProperties:!1}},{name:"dyyto_catalog_show",title:"\u8BFB\u53D6 Dyyto \u53D1\u884C\u4E8B\u5B9E",description:"\u6309\u4E0D\u53EF\u53D8 ref \u8BFB\u53D6\u5B8C\u6574 Capability \u6216 PackageRelease\u3002",inputSchema:{type:"object",properties:{ref:{type:"string",description:"\u4F8B\u5982 package:@aipt/platform-kernel@0.1.0\u3002"}},required:["ref"],additionalProperties:!1}}];function bd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Bi(e,t){return{jsonrpc:"2.0",id:e,result:t}}function Bo(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function M0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return Bi(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:En},instructions:"\u8FD9\u662F\u53EA\u8BFB\u5DE5\u7A0B\u80FD\u529B\u76EE\u5F55\u3002\u5148\u641C\u7D22\uFF0C\u518D\u7528\u4E0D\u53EF\u53D8 ref \u8BFB\u53D6\u53D1\u884C\u4E8B\u5B9E\u3002"});if(e.method==="tools/list")return Bi(r,{tools:V0});if(e.method!=="tools/call")return Bo(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!bd(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!bd(e.params.arguments))return Bo(r,-32602,"tools/call \u53C2\u6570\u65E0\u6548");let n=e.params.arguments??{};try{let o;if(e.params.name==="dyyto_catalog_search"){if(n.query!==void 0&&typeof n.query!="string")throw new Error("query \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");if(n.kind!==void 0&&n.kind!=="package"&&n.kind!=="capability")throw new Error("kind \u53EA\u63A5\u53D7 package \u6216 capability");if(n.limit!==void 0&&(!Number.isSafeInteger(n.limit)||Number(n.limit)<1||Number(n.limit)>200))throw new Error("limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570");o=await Si({...typeof n.query=="string"?{query:n.query}:{},...n.kind==="package"||n.kind==="capability"?{kind:n.kind}:{},...typeof n.limit=="number"?{limit:n.limit}:{},...t===void 0?{}:{roots:t}})}else if(e.params.name==="dyyto_catalog_show"){if(typeof n.ref!="string"||n.ref.trim()==="")throw new Error("ref \u5FC5\u987B\u662F\u975E\u7A7A\u5B57\u7B26\u4E32");o=await Di({ref:n.ref,...t===void 0?{}:{roots:t}})}else return Bo(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return Bi(r,{content:[{type:"text",text:JSON.stringify(o)}],structuredContent:o})}catch(o){let a=o instanceof Error?o.message:"Catalog \u5DE5\u5177\u6267\u884C\u5931\u8D25";return Bi(r,{isError:!0,content:[{type:"text",text:a}]})}}async function Hh(){let e=x0({input:qi.stdin,crlfDelay:1/0,terminal:!1});for await(let t of e){if(t.trim()==="")continue;let r;try{let o=JSON.parse(t);if(!bd(o)||o.jsonrpc!=="2.0"||typeof o.method!="string"){qi.stdout.write(`${JSON.stringify(Bo(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
237
- `);continue}r=o}catch{qi.stdout.write(`${JSON.stringify(Bo(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
238
- `);continue}let n=await M0(r);n!==null&&qi.stdout.write(`${JSON.stringify(n)}
239
- `)}}import{createHash as U0}from"node:crypto";import{chmod as F0,lstat as q0,mkdir as B0,readFile as Ji,realpath as Qh,rename as z0,writeFile as J0}from"node:fs/promises";import dt from"node:path";var Xh="1.0.0",zo=Object.freeze({"@aipt/cli":"0.1.16","@aipt/idp-cli":"0.1.1","@aipt/idp-deploy":"0.1.4"}),ey=Object.entries(zo).map(([e,t])=>`${e}@${t}`),ty="<!-- dyyto:agent-policy:start -->",kd="<!-- dyyto:agent-policy:end -->",pt=class extends Error{constructor(r,n){super(n);this.code=r}code},Bt=e=>`sha256:${U0("sha256").update(e).digest("hex")}`,Go=e=>Array.isArray(e)?`[${e.map(Go).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${Go(r)}`).join(",")}}`:JSON.stringify(e),zi=`${ty}
236
+ `)}async function Qh(e){let t=await Hh(Ve.resolve(e.projectRoot)),r=await Xh(t),n=Ve.relative(r,t).split(Ve.sep).join("/");if(!n||n.startsWith("../"))throw new ut("WORKSPACE_TOPOLOGY_OWNER_MISSING");let o=await Bo(Ve.join(t,"pnpm-lock.yaml")),a=await Bo(Ve.join(t,"pnpm-workspace.yaml"));if(!o&&!a)throw new ut("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let i=await zo(Ve.join(r,"pnpm-lock.yaml")),s=await zo(Ve.join(r,"pnpm-workspace.yaml"));if(!x0(i.toString("utf8"),n))throw new ut("WORKSPACE_TOPOLOGY_IMPORTER_MISSING");if(a&&!/^packages:\s*\[\]/mu.test(a.toString("utf8")))throw new ut("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let c=a?Zh(s,a):s,l=[...y(c)!==y(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:y(s),desiredDigest:y(c)}]:[],...o?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(o)}]:[],...a?[{path:`${n}/pnpm-workspace.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(a)}]:[]],d=e.generatedAt??new Date().toISOString(),p=e.expiresAt??new Date(Date.parse(d)+30*6e4).toISOString(),f=Pe({action:"upgrade",capability:{schemaVersion:1,capabilityId:"foundation.workspace-topology-migration",version:"1.0.0",integrity:y("foundation.workspace-topology-migration@1.0.0"),assets:[],verifiers:[]},changes:l,observedAssets:l.map(m=>({path:m.path,exists:!0,digest:m.baseDigest})),generatedAt:d,expiresAt:p});return{plan:await Vt({projectRoot:t,transactionRoot:r,plan:f,now:d}),transactionRoot:r}}async function ey(e){let t=await Hh(Ve.resolve(e.projectRoot)),r=await Xh(t),n=await Sr({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new ut("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let o=new Map,a=n.operations.find(c=>c.path==="pnpm-workspace.yaml"&&c.kind==="replace");if(a){let c=await zo(Ve.join(t,"pnpm-workspace.yaml")),l=await zo(Ve.join(r,"pnpm-workspace.yaml")),d=Zh(l,c);if(y(d)!==a.desiredDigest)throw new ut("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");o.set("pnpm-workspace.yaml",d)}let i=await nr({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:o,now:e.now??new Date().toISOString()}),s=await or(i);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as V0}from"node:readline";import Bi from"node:process";var M0=[{name:"dyyto_catalog_search",title:"\u641C\u7D22 Dyyto \u5DE5\u7A0B\u80FD\u529B\u76EE\u5F55",description:"\u641C\u7D22\u7ECF\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\u7684\u6700\u65B0 Capability \u4E0E PackageRelease\uFF1B\u4E0D\u4F1A\u4FEE\u6539\u9879\u76EE\u3002",inputSchema:{type:"object",properties:{query:{type:"string",description:"\u540D\u79F0\u3001\u8BF4\u660E\u6216\u6210\u719F\u5EA6\u5173\u952E\u8BCD\uFF1B\u7559\u7A7A\u65F6\u5217\u51FA\u5168\u90E8\u3002"},kind:{type:"string",enum:["package","capability"],description:"\u53EF\u9009\u7684\u8D44\u4EA7\u7C7B\u578B\u3002"},limit:{type:"integer",minimum:1,maximum:200,default:50}},additionalProperties:!1}},{name:"dyyto_catalog_show",title:"\u8BFB\u53D6 Dyyto \u53D1\u884C\u4E8B\u5B9E",description:"\u6309\u4E0D\u53EF\u53D8 ref \u8BFB\u53D6\u5B8C\u6574 Capability \u6216 PackageRelease\u3002",inputSchema:{type:"object",properties:{ref:{type:"string",description:"\u4F8B\u5982 package:@aipt/platform-kernel@0.1.0\u3002"}},required:["ref"],additionalProperties:!1}}];function Rd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function zi(e,t){return{jsonrpc:"2.0",id:e,result:t}}function Jo(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function U0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return zi(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:Nn},instructions:"\u8FD9\u662F\u53EA\u8BFB\u5DE5\u7A0B\u80FD\u529B\u76EE\u5F55\u3002\u5148\u641C\u7D22\uFF0C\u518D\u7528\u4E0D\u53EF\u53D8 ref \u8BFB\u53D6\u53D1\u884C\u4E8B\u5B9E\u3002"});if(e.method==="tools/list")return zi(r,{tools:M0});if(e.method!=="tools/call")return Jo(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!Rd(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!Rd(e.params.arguments))return Jo(r,-32602,"tools/call \u53C2\u6570\u65E0\u6548");let n=e.params.arguments??{};try{let o;if(e.params.name==="dyyto_catalog_search"){if(n.query!==void 0&&typeof n.query!="string")throw new Error("query \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");if(n.kind!==void 0&&n.kind!=="package"&&n.kind!=="capability")throw new Error("kind \u53EA\u63A5\u53D7 package \u6216 capability");if(n.limit!==void 0&&(!Number.isSafeInteger(n.limit)||Number(n.limit)<1||Number(n.limit)>200))throw new Error("limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570");o=await Si({...typeof n.query=="string"?{query:n.query}:{},...n.kind==="package"||n.kind==="capability"?{kind:n.kind}:{},...typeof n.limit=="number"?{limit:n.limit}:{},...t===void 0?{}:{roots:t}})}else if(e.params.name==="dyyto_catalog_show"){if(typeof n.ref!="string"||n.ref.trim()==="")throw new Error("ref \u5FC5\u987B\u662F\u975E\u7A7A\u5B57\u7B26\u4E32");o=await ji({ref:n.ref,...t===void 0?{}:{roots:t}})}else return Jo(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return zi(r,{content:[{type:"text",text:JSON.stringify(o)}],structuredContent:o})}catch(o){let a=o instanceof Error?o.message:"Catalog \u5DE5\u5177\u6267\u884C\u5931\u8D25";return zi(r,{isError:!0,content:[{type:"text",text:a}]})}}async function ty(){let e=V0({input:Bi.stdin,crlfDelay:1/0,terminal:!1});for await(let t of e){if(t.trim()==="")continue;let r;try{let o=JSON.parse(t);if(!Rd(o)||o.jsonrpc!=="2.0"||typeof o.method!="string"){Bi.stdout.write(`${JSON.stringify(Jo(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
237
+ `);continue}r=o}catch{Bi.stdout.write(`${JSON.stringify(Jo(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
238
+ `);continue}let n=await U0(r);n!==null&&Bi.stdout.write(`${JSON.stringify(n)}
239
+ `)}}import{createHash as F0}from"node:crypto";import{chmod as q0,lstat as B0,mkdir as z0,readFile as Gi,realpath as ry,rename as J0,unlink as G0,writeFile as W0}from"node:fs/promises";import Be from"node:path";var _d="1.0.0",Go=Object.freeze({"@aipt/cli":"0.1.18","@aipt/idp-cli":"0.1.1","@aipt/idp-deploy":"0.1.4"}),ny=Object.entries(Go).map(([e,t])=>`${e}@${t}`),Ed="<!-- dyyto:agent-policy:start -->",Wo="<!-- dyyto:agent-policy:end -->",He=class extends Error{constructor(r,n){super(n);this.code=r}code},Ye=e=>`sha256:${F0("sha256").update(e).digest("hex")}`,Pn=e=>Array.isArray(e)?`[${e.map(Pn).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${Pn(r)}`).join(",")}}`:JSON.stringify(e),Ji=`${Ed}
240
240
  ## Dyyto \u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0
241
241
 
242
242
  \u672C\u9879\u76EE\u7531 Dyyto \u7EB3\u7BA1\u3002\u5F00\u59CB\u7F16\u7801\u524D\u6267\u884C \`dyyto context --project .\` \u4E0E \`dyyto doctor --project .\`\u3002
@@ -245,13 +245,16 @@ ${c.map(l=>` ${l}`).join(`
245
245
  - \u914D\u7F6E\u3001\u5BC6\u94A5\u548C\u8BC1\u4E66\u53EA\u4ECE\u4ED3\u5E93\u5916\u7ED1\u5B9A\u7684 Config Dir \u8BFB\u53D6\uFF0C\u7981\u6B62\u5199\u5165\u9879\u76EE\u73AF\u5883\u6587\u4EF6\u3002
246
246
  - \u4E0D\u7ED5\u8FC7\u4E0D\u53EF\u53D8 Lock\u3001Repository State \u4E0E Evidence\uFF0C\u4E0D\u9759\u9ED8\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002
247
247
  - \u8BE6\u7EC6\u89C4\u8303\u4F7F\u7528 \`dyyto docs show --id engineering-workflow\` \u8BFB\u53D6\uFF0C\u7981\u6B62\u5728\u4E1A\u52A1\u4ED3\u5E93\u590D\u5236\u5E73\u53F0\u957F\u6587\u6863\u3002
248
- ${kd}`;function G0(e,t){let r=`${t}
248
+ ${Wo}`;function K0(e,t){let r=`${t}
249
249
 
250
- ${zi}
251
- `,n=e.indexOf(ty),o=e.indexOf(kd);if(n<0&&o<0)return e.length===0?r:`${e.trimEnd()}
250
+ ${Ji}
251
+ `,n=e.indexOf(Ed),o=e.indexOf(Wo);if(n<0&&o<0)return e.length===0?r:`${e.trimEnd()}
252
252
 
253
- ${zi}
254
- `;if(n<0||o<n)throw new pt("AGENT_POLICY_REGION_INVALID",`${t}\u4E2D\u7684Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002`);return`${e.slice(0,n)}${zi}${e.slice(o+kd.length)}`}var Zh=[["AGENTS.md","# Agent Instructions"],["CLAUDE.md","# Claude Code Instructions"],[".cursor/rules/dyyto-engineering.mdc",`---
253
+ ${Ji}
254
+ `;if(n<0||o<n)throw new He("AGENT_POLICY_REGION_INVALID",`${t}\u4E2D\u7684Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002`);return`${e.slice(0,n)}${Ji}${e.slice(o+Wo.length)}`}function Y0(e){let t=e.indexOf(Ed),r=e.indexOf(Wo);if(t<0&&r<0)return e;if(t<0||r<t)throw new He("AGENT_POLICY_REGION_INVALID","Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002");let n=`${e.slice(0,t)}${e.slice(r+Wo.length)}`.trim();return n===""||/^# (?:Agent Instructions|Claude Code Instructions|Antigravity Agent Rules)\s*$/u.test(n)||n.startsWith(`---
255
+ description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219`)||n.startsWith(`---
256
+ name: dyyto-engineering`)?null:`${n}
257
+ `}var Ad=[["AGENTS.md","# Agent Instructions"],["CLAUDE.md","# Claude Code Instructions"],[".cursor/rules/dyyto-engineering.mdc",`---
255
258
  description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219
256
259
  alwaysApply: true
257
260
  ---`],[".agent/rules/dyyto-engineering.md","# Antigravity Agent Rules"],[".agents/skills/dyyto-engineering/SKILL.md",`---
@@ -260,11 +263,12 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
260
263
  ---`],[".claude/skills/dyyto-engineering/SKILL.md",`---
261
264
  name: dyyto-engineering
262
265
  description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u9020\u3001\u9A8C\u8BC1\u6216\u90E8\u7F72\u65F6\u4F7F\u7528\u3002
263
- ---`]];async function ry(e){if(!dt.isAbsolute(e))throw new pt("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await Qh(e),r=await q0(t);if(!r.isDirectory()||r.isSymbolicLink())throw new pt("BOOTSTRAP_PROJECT_INVALID","\u9879\u76EE\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u3002");return t}async function Jo(e){return Ji(e,"utf8").catch(t=>t.code==="ENOENT"?"":Promise.reject(t))}async function Rd(e,t){await B0(dt.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await J0(r,t,{mode:384,flag:"wx"}),await z0(r,e),await F0(e,e.endsWith(".json")?384:420)}function W0(){return[{id:"engineering-workflow",package:"@aipt/cli",version:zo["@aipt/cli"],path:"docs/engineering-workflow.md",contentDigest:"sha256:646cbc82bb53f542ca3ad799a93d29c789a966d3d27d617c46b1544033e0fff9"},{id:"idp-integration",package:"@aipt/idp-cli",version:zo["@aipt/idp-cli"],path:"docs/integration.md",contentDigest:"sha256:ad16f812d516763140c14efe8a0afb275b420987d23e0d6071fbbb7312b7324c"},{id:"local-deployment",package:"@aipt/idp-deploy",version:zo["@aipt/idp-deploy"],path:"docs/local-deployment.md",contentDigest:"sha256:4d86d7e7ed8619fa750430989afefe71e033673adedb924bb60b4272d7d2e3f6"}].map(e=>({...e,referenceDigest:Bt(Go(e))}))}async function ny(e){let t=await ry(e),r=[];for(let[p,f]of Zh){let u=await Jo(dt.join(t,p)),m=G0(u,f);r.push({path:p,preimageDigest:Bt(u),desired:m,desiredDigest:Bt(m)})}let n=`${JSON.stringify({schemaVersion:1,kind:"DyytoToolchainLock",packageManager:"pnpm",tools:zo},null,2)}
264
- `,o=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:Xh,digest:Bt(zi)},adapters:Zh.map(([p])=>p)},null,2)}
265
- `,a=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:W0()},null,2)}
266
- `;for(let[p,f]of[[".dyyto/toolchain.lock.json",n],[".dyyto/agent-policy.lock.json",o],[".dyyto/documentation.lock.json",a]]){let u=await Jo(dt.join(t,p));r.push({path:p,preimageDigest:Bt(u),desired:f,desiredDigest:Bt(f)})}let i={schemaVersion:1,kind:"DyytoBootstrapPlan",projectRoot:t,policyVersion:Xh,files:r,createdAt:new Date().toISOString()},s={...i,planId:Bt(Go(i))},c=dt.join(t,".dyyto/plans/bootstrap",`${s.planId.slice(7)}.json`),l=await Jo(c),d=`${JSON.stringify(s,null,2)}
267
- `;if(l&&l!==d)throw new pt("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return l||await Rd(c,d),{plan:s,planFile:c,changed:r.filter(p=>p.preimageDigest!==p.desiredDigest).map(p=>p.path)}}async function oy(e,t){if(!dt.isAbsolute(e))throw new pt("BOOTSTRAP_PLAN_NOT_ABSOLUTE","Bootstrap Plan\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let r=JSON.parse(await Ji(await Qh(e),"utf8")),{planId:n,...o}=r;if(n!==t||Bt(Go(o))!==n)throw new pt("BOOTSTRAP_PLAN_NOT_APPROVED","\u5FC5\u987B\u6279\u51C6\u6458\u8981\u6709\u6548\u7684\u7CBE\u786EBootstrap Plan\u3002 ");for(let i of r.files)if(Bt(await Jo(dt.join(r.projectRoot,i.path)))!==i.preimageDigest)throw new pt("BOOTSTRAP_PREIMAGE_CHANGED",`${i.path}\u5728Plan\u540E\u5DF2\u88AB\u4FEE\u6539\u3002`);let a=dt.join(r.projectRoot,".dyyto/preimages/bootstrap",n.slice(7));for(let i of r.files){let s=dt.join(r.projectRoot,i.path),c=await Jo(s);c&&c!==i.desired&&await Rd(dt.join(a,i.path),c),c!==i.desired&&await Rd(s,i.desired)}return{schemaVersion:1,status:"verified",planId:n,projectRoot:r.projectRoot,changed:r.files.filter(i=>i.preimageDigest!==i.desiredDigest).map(i=>i.path),preimageDirectory:a}}async function ay(e){let t=await ry(e),r=JSON.parse(await Ji(dt.join(t,".dyyto/toolchain.lock.json"),"utf8")),n=JSON.parse(await Ji(dt.join(t,".dyyto/documentation.lock.json"),"utf8"));return{schemaVersion:1,projectRoot:t,intent:"\u4F18\u5148\u590D\u7528Dyyto Catalog\u80FD\u529B\uFF0C\u901A\u8FC7Plan/Apply/Verify\u5B89\u5168\u6F14\u8FDB\uFF1B\u914D\u7F6E\u4E0E\u5BC6\u94A5\u4F4D\u4E8E\u4ED3\u5E93\u5916Config Dir\u3002",requiredBeforeCoding:["dyyto doctor --project .","dyyto catalog search"],toolchain:r.tools,documents:n.documents,prohibitions:["\u4E0D\u5F97\u5728\u4ED3\u5E93\u5185\u4FDD\u5B58Secret","\u4E0D\u5F97\u7ED5\u8FC7\u4E0D\u53EF\u53D8Plan\u5199\u5165\u5DE5\u7A0B\u8D44\u4EA7","\u4E0D\u5F97\u590D\u5236\u5E73\u53F0\u957F\u6587\u6863\u5230\u4E1A\u52A1\u4ED3\u5E93"]}}var iy=e=>({"engineering-workflow":`# \u5DE5\u7A0B\u5F00\u53D1\u5DE5\u4F5C\u6D41
266
+ ---`]];async function Pd(e){if(!Be.isAbsolute(e))throw new He("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await ry(e),r=await B0(t);if(!r.isDirectory()||r.isSymbolicLink())throw new He("BOOTSTRAP_PROJECT_INVALID","\u9879\u76EE\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u3002");return t}async function Gr(e){return Gi(e,"utf8").catch(t=>t.code==="ENOENT"?"":Promise.reject(t))}async function Wi(e,t){await z0(Be.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await W0(r,t,{mode:384,flag:"wx"}),await J0(r,e),await q0(e,e.endsWith(".json")?384:420)}function H0(){return[{id:"engineering-workflow",package:"@aipt/cli",version:Go["@aipt/cli"],path:"docs/engineering-workflow.md",contentDigest:"sha256:646cbc82bb53f542ca3ad799a93d29c789a966d3d27d617c46b1544033e0fff9"},{id:"idp-integration",package:"@aipt/idp-cli",version:Go["@aipt/idp-cli"],path:"docs/integration.md",contentDigest:"sha256:ad16f812d516763140c14efe8a0afb275b420987d23e0d6071fbbb7312b7324c"},{id:"local-deployment",package:"@aipt/idp-deploy",version:Go["@aipt/idp-deploy"],path:"docs/local-deployment.md",contentDigest:"sha256:4d86d7e7ed8619fa750430989afefe71e033673adedb924bb60b4272d7d2e3f6"}].map(e=>({...e,referenceDigest:Ye(Pn(e))}))}async function oy(e){let t=await Pd(e),r=[];for(let[p,f]of Ad){let u=await Gr(Be.join(t,p)),m=K0(u,f);r.push({path:p,preimageDigest:Ye(u),desired:m,desiredDigest:Ye(m)})}let n=`${JSON.stringify({schemaVersion:1,kind:"DyytoToolchainLock",packageManager:"pnpm",tools:Go},null,2)}
267
+ `,o=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:_d,digest:Ye(Ji)},adapters:Ad.map(([p])=>p)},null,2)}
268
+ `,a=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:H0()},null,2)}
269
+ `;for(let[p,f]of[[".dyyto/toolchain.lock.json",n],[".dyyto/agent-policy.lock.json",o],[".dyyto/documentation.lock.json",a]]){let u=await Gr(Be.join(t,p));r.push({path:p,preimageDigest:Ye(u),desired:f,desiredDigest:Ye(f)})}let i={schemaVersion:1,kind:"DyytoBootstrapPlan",projectRoot:t,policyVersion:_d,files:r,createdAt:new Date().toISOString()},s={...i,planId:Ye(Pn(i))},c=Be.join(t,".dyyto/plans/bootstrap",`${s.planId.slice(7)}.json`),l=await Gr(c),d=`${JSON.stringify(s,null,2)}
270
+ `;if(l&&l!==d)throw new He("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return l||await Wi(c,d),{plan:s,planFile:c,changed:r.filter(p=>p.preimageDigest!==p.desiredDigest).map(p=>p.path)}}async function ay(e){let t=await Pd(e),r=[];for(let[c]of Ad){let l=await Gr(Be.join(t,c)),d=Y0(l);r.push({path:c,preimageDigest:Ye(l),desired:d,desiredDigest:Ye(d??"")})}let n=".dyyto/agent-policy.lock.json",o=await Gr(Be.join(t,n));r.push({path:n,preimageDigest:Ye(o),desired:null,desiredDigest:Ye("")});let a={schemaVersion:1,kind:"DyytoAgentRemovalPlan",projectRoot:t,policyVersion:_d,files:r,createdAt:new Date().toISOString()},i={...a,planId:Ye(Pn(a))},s=Be.join(t,".dyyto/plans/bootstrap",`${i.planId.slice(7)}.json`);return await Wi(s,`${JSON.stringify(i,null,2)}
271
+ `),{plan:i,planFile:s,changed:r.filter(c=>c.preimageDigest!==c.desiredDigest).map(c=>c.path)}}async function Nd(e,t){if(!Be.isAbsolute(e))throw new He("BOOTSTRAP_PLAN_NOT_ABSOLUTE","Bootstrap Plan\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let r=JSON.parse(await Gi(await ry(e),"utf8")),{planId:n,...o}=r;if(n!==t||Ye(Pn(o))!==n)throw new He("BOOTSTRAP_PLAN_NOT_APPROVED","\u5FC5\u987B\u6279\u51C6\u6458\u8981\u6709\u6548\u7684\u7CBE\u786EBootstrap Plan\u3002 ");for(let i of r.files)if(Ye(await Gr(Be.join(r.projectRoot,i.path)))!==i.preimageDigest)throw new He("BOOTSTRAP_PREIMAGE_CHANGED",`${i.path}\u5728Plan\u540E\u5DF2\u88AB\u4FEE\u6539\u3002`);let a=Be.join(r.projectRoot,".dyyto/preimages/bootstrap",n.slice(7));for(let i of r.files){let s=Be.join(r.projectRoot,i.path),c=await Gr(s);c&&c!==i.desired&&await Wi(Be.join(a,i.path),c),i.desired===null?c&&await G0(s):c!==i.desired&&await Wi(s,i.desired)}return{schemaVersion:1,status:"verified",planId:n,projectRoot:r.projectRoot,changed:r.files.filter(i=>i.preimageDigest!==i.desiredDigest).map(i=>i.path),preimageDirectory:a}}async function iy(e){let t=await Pd(e),r=JSON.parse(await Gi(Be.join(t,".dyyto/toolchain.lock.json"),"utf8")),n=JSON.parse(await Gi(Be.join(t,".dyyto/documentation.lock.json"),"utf8"));return{schemaVersion:1,projectRoot:t,intent:"\u4F18\u5148\u590D\u7528Dyyto Catalog\u80FD\u529B\uFF0C\u901A\u8FC7Plan/Apply/Verify\u5B89\u5168\u6F14\u8FDB\uFF1B\u914D\u7F6E\u4E0E\u5BC6\u94A5\u4F4D\u4E8E\u4ED3\u5E93\u5916Config Dir\u3002",requiredBeforeCoding:["dyyto doctor --project .","dyyto catalog search"],toolchain:r.tools,documents:n.documents,prohibitions:["\u4E0D\u5F97\u5728\u4ED3\u5E93\u5185\u4FDD\u5B58Secret","\u4E0D\u5F97\u7ED5\u8FC7\u4E0D\u53EF\u53D8Plan\u5199\u5165\u5DE5\u7A0B\u8D44\u4EA7","\u4E0D\u5F97\u590D\u5236\u5E73\u53F0\u957F\u6587\u6863\u5230\u4E1A\u52A1\u4ED3\u5E93"]}}var sy=e=>({"engineering-workflow":`# \u5DE5\u7A0B\u5F00\u53D1\u5DE5\u4F5C\u6D41
268
272
 
269
273
  \u5148\u6267\u884C context \u4E0E doctor\uFF1B\u67E5\u8BE2 Catalog\uFF1B\u751F\u6210\u5E76\u5BA1\u6838 Plan\uFF1BApply \u540E\u8FD0\u884C Verify\u3002\u914D\u7F6E\u548C\u5BC6\u94A5\u59CB\u7EC8\u4F4D\u4E8E\u4ED3\u5E93\u5916 Config Dir\u3002
270
274
  `,"idp-integration":`# IDP \u96C6\u6210
@@ -273,7 +277,9 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
273
277
  `,"local-deployment":`# \u672C\u5730\u90E8\u7F72
274
278
 
275
279
  \u4F7F\u7528 idpctl app config-init \u4E0E local app plan/apply/verify\uFF1B\u672C\u5730 Compose \u4E0D\u63A8\u9001\u8FDC\u7A0B OCI\uFF0C\u751F\u4EA7\u4EA4\u4ED8\u4ECD\u9501\u5B9A\u591A\u67B6\u6784\u955C\u50CF\u6458\u8981\u3002
276
- `})[e];function qe(e){e.stdout.length>0&&Ve.stdout.write(e.stdout),e.stderr.length>0&&Ve.stderr.write(e.stderr)}async function Y0(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),o=e[n+1],a=e.flatMap((p,f)=>p==="--artifact-fallback-bundle"&&e[f+1]!==void 0?[e[f+1]]:[]),i=e.indexOf("--artifact-port"),s=Number(e[i+1]),c=[t>=0,n>=0,i>=0];if(!c.some(Boolean))return{};if(!c.every(Boolean)||r===void 0||o===void 0||!/^sha256:[a-f0-9]{64}$/u.test(o)||a.some(p=>!/^sha256:[a-f0-9]{64}$/u.test(p))||!Number.isSafeInteger(s)||s<1||s>65535)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Development Package Source requires exact --artifact-workspace, --artifact-bundle, optional --artifact-fallback-bundle and --artifact-port values.",exitCode:2,nextStep:"Start the approved local Artifact Bundle set and repeat the exact values."});let l=await Mo(zt.resolve(r,".dyyto","package-artifacts",o)),d=await Promise.all(a.map(p=>Mo(zt.resolve(r,".dyyto","package-artifacts",p))));if(l.bundle.bundleId!==o)throw new lr("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:Oh({bundle:l.bundle,fallbackBundles:d.map(p=>p.bundle),origin:`http://127.0.0.1:${s}/`,resolvedAt:"2026-08-21T00:00:00.000Z",expiresAt:"2099-12-31T23:59:59.000Z"}),resolutionWorkerProvider:jh({stateRoot:zt.resolve(r,".dyyto","resolution-worker"),engine:Dh()}),packageStoreRoot:zt.resolve(r,".dyyto","resolution-worker","store")}}async function NT(e){let t=e.includes("--json")?"json":"human";try{if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),o=n<0?Ve.cwd():e[n+1];if(!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"bootstrap --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u4F20\u5165\u7EDD\u5BF9\u9879\u76EE\u6216Workspace\u76EE\u5F55\u3002"});let a=await ny(zt.resolve(o)),i=e.includes("--apply");if(i&&!e.includes("--skip-tool-install")){let c=K0("corepack",["pnpm","add","--global","--global-bin-dir",zt.dirname(Ve.execPath),...ey],{stdio:"inherit",shell:!1,env:Ve.env});if(c.error||c.status!==0)throw new pt("BOOTSTRAP_TOOLCHAIN_INSTALL_FAILED","\u7CBE\u786E\u5DE5\u5177\u94FE\u5B89\u88C5\u5931\u8D25\uFF0C\u9879\u76EE\u8D44\u4EA7\u5C1A\u672AApply\u3002")}let s=i?await oy(a.planFile,a.plan.planId):{status:"planned",planId:a.plan.planId,planFile:a.planFile,changed:a.changed};qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:i?"bootstrap-apply":"bootstrap-plan",result:s})}
280
+ `})[e];function Me(e){e.stdout.length>0&&je.stdout.write(e.stdout),e.stderr.length>0&&je.stderr.write(e.stderr)}async function Z0(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),o=e[n+1],a=e.flatMap((p,f)=>p==="--artifact-fallback-bundle"&&e[f+1]!==void 0?[e[f+1]]:[]),i=e.indexOf("--artifact-port"),s=Number(e[i+1]),c=[t>=0,n>=0,i>=0];if(!c.some(Boolean))return{};if(!c.every(Boolean)||r===void 0||o===void 0||!/^sha256:[a-f0-9]{64}$/u.test(o)||a.some(p=>!/^sha256:[a-f0-9]{64}$/u.test(p))||!Number.isSafeInteger(s)||s<1||s>65535)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Development Package Source requires exact --artifact-workspace, --artifact-bundle, optional --artifact-fallback-bundle and --artifact-port values.",exitCode:2,nextStep:"Start the approved local Artifact Bundle set and repeat the exact values."});let l=await Fo(Dt.resolve(r,".dyyto","package-artifacts",o)),d=await Promise.all(a.map(p=>Fo(Dt.resolve(r,".dyyto","package-artifacts",p))));if(l.bundle.bundleId!==o)throw new lr("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:Ch({bundle:l.bundle,fallbackBundles:d.map(p=>p.bundle),origin:`http://127.0.0.1:${s}/`,resolvedAt:"2026-08-21T00:00:00.000Z",expiresAt:"2099-12-31T23:59:59.000Z"}),resolutionWorkerProvider:xh({stateRoot:Dt.resolve(r,".dyyto","resolution-worker"),engine:Lh()}),packageStoreRoot:Dt.resolve(r,".dyyto","resolution-worker","store")}}async function ST(e){let t=e.includes("--json")?"json":"human";try{if(e[0]==="agents"&&e[1]==="remove"){let n=e.indexOf("--project"),o=n<0?je.cwd():e[n+1];if(!o)throw new He("BOOTSTRAP_PROJECT_INVALID","\u7F3A\u5C11\u9879\u76EE\u76EE\u5F55\u3002");let a=await ay(Dt.resolve(o)),i=e.includes("--apply")?await Nd(a.planFile,a.plan.planId):{status:"planned",planId:a.plan.planId,planFile:a.planFile,changed:a.changed};Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"agents-remove",result:i})}
281
+ `:`Agent\u9002\u914D\u5668\u79FB\u9664${e.includes("--apply")?"\u5B8C\u6210":"Plan\u5DF2\u751F\u6210"}\uFF1A${a.plan.planId}
282
+ `,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),o=n<0?je.cwd():e[n+1];if(!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"bootstrap --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u4F20\u5165\u7EDD\u5BF9\u9879\u76EE\u6216Workspace\u76EE\u5F55\u3002"});let a=await oy(Dt.resolve(o)),i=e.includes("--apply");if(i&&!e.includes("--skip-tool-install")){let c=X0("corepack",["pnpm","add","--global","--global-bin-dir",Dt.dirname(je.execPath),...ny],{encoding:"utf8",shell:!1,env:je.env});if(c.error||c.status!==0)throw new He("BOOTSTRAP_TOOLCHAIN_INSTALL_FAILED","\u7CBE\u786E\u5DE5\u5177\u94FE\u5B89\u88C5\u5931\u8D25\uFF0C\u9879\u76EE\u8D44\u4EA7\u5C1A\u672AApply\u3002")}let s=i?await Nd(a.planFile,a.plan.planId):{status:"planned",planId:a.plan.planId,planFile:a.planFile,changed:a.changed};Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:i?"bootstrap-apply":"bootstrap-plan",result:s})}
277
283
  `:i?`\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u5DF2\u521D\u59CB\u5316\u5E76\u9A8C\u8BC1\u3002
278
284
  Plan\uFF1A${a.plan.planId}
279
285
  \u53D8\u66F4\uFF1A${s.changed.join("\u3001")||"\u65E0"}
@@ -282,7 +288,7 @@ Next\uFF1Adyyto context --project ${o}
282
288
  \u6587\u4EF6\uFF1A${a.planFile}
283
289
  \u53D8\u66F4\uFF1A${a.changed.join("\u3001")||"\u65E0"}
284
290
  Next\uFF1A\u589E\u52A0 --apply \u660E\u786E\u5E94\u7528\u8BE5Plan\u3002
285
- `,stderr:""});return}if(e[0]==="context"){let n=e.indexOf("--project"),o=n<0?Ve.cwd():e[n+1];if(!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"context --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u5DF2Bootstrap\u9879\u76EE\u3002"});let a=await ay(zt.resolve(o));qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"context",result:a})}
291
+ `,stderr:""});return}if(e[0]==="context"){let n=e.indexOf("--project"),o=n<0?je.cwd():e[n+1];if(!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"context --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u5DF2Bootstrap\u9879\u76EE\u3002"});let a=await iy(Dt.resolve(o));Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"context",result:a})}
286
292
  `:`${a.intent}
287
293
 
288
294
  \u7F16\u7801\u524D\uFF1A
@@ -292,42 +298,42 @@ ${a.requiredBeforeCoding.map(i=>`- ${i}`).join(`
292
298
  \u7981\u6B62\u4E8B\u9879\uFF1A
293
299
  ${a.prohibitions.map(i=>`- ${i}`).join(`
294
300
  `)}
295
- `,stderr:""});return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),o=e[n+1],a=o?iy(o):void 0;if(!a)throw new T({code:"DOCUMENT_NOT_FOUND",message:"\u672A\u77E5\u6216\u7F3A\u5C11\u7A33\u5B9A\u6587\u6863ID\u3002",exitCode:4,nextStep:"\u4F7F\u7528 engineering-workflow\u3001idp-integration \u6216 local-deployment\u3002"});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"docs-show",result:{id:o,content:a}})}
296
- `:a,stderr:""});return}if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new T({code:"CLI_ARGUMENT_INVALID",message:"mcp serve \u4E0D\u63A5\u53D7\u989D\u5916\u53C2\u6570\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto mcp serve\uFF0C\u5E76\u901A\u8FC7 stdin/stdout \u4F7F\u7528 JSON-RPC\u3002"});await Hh();return}if(e[0]==="catalog"&&e[1]==="export"){let n=new Set(["--output","--generated-at"]);for(let s=2;s<e.length;s+=2){let c=e[s],l=e[s+1];if(c===void 0||l===void 0||!n.has(c)||l.startsWith("--"))throw new T({code:"CLI_ARGUMENT_INVALID",message:"catalog export \u53EA\u63A5\u53D7 --output - \u548C\u53EF\u9009 --generated-at <ISO UTC>\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto catalog export --output -\u3002"})}let o=e.indexOf("--output");if(o<0||e[o+1]!=="-")throw new T({code:"CLI_ARGUMENT_INVALID",message:"catalog export \u5FC5\u987B\u901A\u8FC7 --output - \u8F93\u51FA\u53EA\u8BFB\u6295\u5F71\uFF1BDyyto \u4E0D\u76F4\u63A5\u6539\u5199\u6D88\u8D39\u8005\u914D\u7F6E\u3002",exitCode:2,nextStep:"\u5C06 stdout \u4EA4\u7ED9\u90E8\u7F72\u63A7\u5236\u9762\u7684\u539F\u5B50\u5FEB\u7167\u5BFC\u5165\u547D\u4EE4\u3002"});let a=e.indexOf("--generated-at"),i=a<0?new Date().toISOString():e[a+1];Ve.stdout.write(ih(await ah({generatedAt:i})));return}if(e[0]==="topology"&&e[1]==="plan"){let n=e.indexOf("--project"),o=e[n+1];if(n<0||!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"\u62D3\u6251\u8FC1\u79FB Plan \u9700\u8981 --project\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u9700\u8981\u8FC1\u79FB\u5230\u6839\u5171\u4EAB\u9501\u7684\u5E94\u7528\u3002"});let a=await Kh({projectRoot:o});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:a})}
301
+ `,stderr:""});return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),o=e[n+1],a=o?sy(o):void 0;if(!a)throw new T({code:"DOCUMENT_NOT_FOUND",message:"\u672A\u77E5\u6216\u7F3A\u5C11\u7A33\u5B9A\u6587\u6863ID\u3002",exitCode:4,nextStep:"\u4F7F\u7528 engineering-workflow\u3001idp-integration \u6216 local-deployment\u3002"});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"docs-show",result:{id:o,content:a}})}
302
+ `:a,stderr:""});return}if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new T({code:"CLI_ARGUMENT_INVALID",message:"mcp serve \u4E0D\u63A5\u53D7\u989D\u5916\u53C2\u6570\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto mcp serve\uFF0C\u5E76\u901A\u8FC7 stdin/stdout \u4F7F\u7528 JSON-RPC\u3002"});await ty();return}if(e[0]==="catalog"&&e[1]==="export"){let n=new Set(["--output","--generated-at"]);for(let s=2;s<e.length;s+=2){let c=e[s],l=e[s+1];if(c===void 0||l===void 0||!n.has(c)||l.startsWith("--"))throw new T({code:"CLI_ARGUMENT_INVALID",message:"catalog export \u53EA\u63A5\u53D7 --output - \u548C\u53EF\u9009 --generated-at <ISO UTC>\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto catalog export --output -\u3002"})}let o=e.indexOf("--output");if(o<0||e[o+1]!=="-")throw new T({code:"CLI_ARGUMENT_INVALID",message:"catalog export \u5FC5\u987B\u901A\u8FC7 --output - \u8F93\u51FA\u53EA\u8BFB\u6295\u5F71\uFF1BDyyto \u4E0D\u76F4\u63A5\u6539\u5199\u6D88\u8D39\u8005\u914D\u7F6E\u3002",exitCode:2,nextStep:"\u5C06 stdout \u4EA4\u7ED9\u90E8\u7F72\u63A7\u5236\u9762\u7684\u539F\u5B50\u5FEB\u7167\u5BFC\u5165\u547D\u4EE4\u3002"});let a=e.indexOf("--generated-at"),i=a<0?new Date().toISOString():e[a+1];je.stdout.write(ph(await dh({generatedAt:i})));return}if(e[0]==="topology"&&e[1]==="plan"){let n=e.indexOf("--project"),o=e[n+1];if(n<0||!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"\u62D3\u6251\u8FC1\u79FB Plan \u9700\u8981 --project\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u9700\u8981\u8FC1\u79FB\u5230\u6839\u5171\u4EAB\u9501\u7684\u5E94\u7528\u3002"});let a=await Qh({projectRoot:o});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:a})}
297
303
  `:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${a.plan.planId}
298
304
  \u72B6\u6001\uFF1A${a.plan.state}
299
305
  Next\uFF1Adyyto topology apply --project ${o} --approve ${a.plan.planId}
300
- `,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),o=e[n+1],a=e.indexOf("--approve"),i=e[a+1];if(n<0||!o||a<0||!i)throw new T({code:"CLI_ARGUMENT_INVALID",message:"\u62D3\u6251\u8FC1\u79FB Apply \u9700\u8981 --project \u4E0E --approve\u3002",exitCode:2,nextStep:"\u5BA1\u6838\u5E76\u4F7F\u7528\u7CBE\u786E Plan ID\u3002"});let s=await Yh({projectRoot:o,approvedPlanId:i});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-apply",result:s})}
306
+ `,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),o=e[n+1],a=e.indexOf("--approve"),i=e[a+1];if(n<0||!o||a<0||!i)throw new T({code:"CLI_ARGUMENT_INVALID",message:"\u62D3\u6251\u8FC1\u79FB Apply \u9700\u8981 --project \u4E0E --approve\u3002",exitCode:2,nextStep:"\u5BA1\u6838\u5E76\u4F7F\u7528\u7CBE\u786E Plan ID\u3002"});let s=await ey({projectRoot:o,approvedPlanId:i});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-apply",result:s})}
301
307
  `:`\u62D3\u6251\u8FC1\u79FB\u5DF2 Apply\uFF1A${s.planId}
302
308
  Next\uFF1Adyyto topology inspect --project ${o}
303
- `,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),o=e[n+1];if(n<0||!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Recovery Override Plan \u9700\u8981 --project\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u53D1\u751F\u5171\u4EAB\u4E8B\u52A1\u51B2\u7A81\u7684\u5355\u5143\u9879\u76EE\u3002"});let a=await Fh({projectRoot:o});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-plan",result:{plan:a}})}
309
+ `,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),o=e[n+1];if(n<0||!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Recovery Override Plan \u9700\u8981 --project\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u53D1\u751F\u5171\u4EAB\u4E8B\u52A1\u51B2\u7A81\u7684\u5355\u5143\u9879\u76EE\u3002"});let a=await Gh({projectRoot:o});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-plan",result:{plan:a}})}
304
310
  `:`Recovery Override Plan\uFF1A${a.planId}
305
311
  \u51B2\u7A81\uFF1A${a.conflicts.length}
306
- `,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),o=e[n+1],a=e.indexOf("--approve"),i=e[a+1];if(n<0||!o||a<0||!i)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Recovery Override Apply \u9700\u8981 --project \u4E0E --approve\u3002",exitCode:2,nextStep:"\u4F7F\u7528\u7CBE\u786E Recovery Override Plan ID\u3002"});let s=await qh({projectRoot:o,approvedPlanId:i});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-apply",result:{recovery:s}})}
312
+ `,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),o=e[n+1],a=e.indexOf("--approve"),i=e[a+1];if(n<0||!o||a<0||!i)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Recovery Override Apply \u9700\u8981 --project \u4E0E --approve\u3002",exitCode:2,nextStep:"\u4F7F\u7528\u7CBE\u786E Recovery Override Plan ID\u3002"});let s=await Wh({projectRoot:o,approvedPlanId:i});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-apply",result:{recovery:s}})}
307
313
  `:`Recovery Override \u5DF2\u5B8C\u6210\uFF1A${s.state}
308
- `,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),o=e[n+1],a=e.indexOf("--maximum-bytes"),i=Number(e[a+1]);if(n<0||o===void 0||a<0||!Number.isSafeInteger(i)||i<1)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Plan \u9700\u8981 --workspace \u548C\u6B63\u6574\u6570 --maximum-bytes\u3002",exitCode:2,nextStep:"\u4F7F\u7528\u5DF2\u6279\u51C6\u7684\u5BB9\u91CF\u4E0A\u9650\u91CD\u65B0\u751F\u6210 Build Plan\u3002"});let s=await xh({workspaceRoot:o,maximumBytes:i});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-plan",result:{plan:s}})}
314
+ `,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),o=e[n+1],a=e.indexOf("--maximum-bytes"),i=Number(e[a+1]);if(n<0||o===void 0||a<0||!Number.isSafeInteger(i)||i<1)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Plan \u9700\u8981 --workspace \u548C\u6B63\u6574\u6570 --maximum-bytes\u3002",exitCode:2,nextStep:"\u4F7F\u7528\u5DF2\u6279\u51C6\u7684\u5BB9\u91CF\u4E0A\u9650\u91CD\u65B0\u751F\u6210 Build Plan\u3002"});let s=await qh({workspaceRoot:o,maximumBytes:i});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-plan",result:{plan:s}})}
309
315
  `:`Resolution Worker Build Plan \u5DF2\u751F\u6210\uFF1A${s.planId}
310
316
  \u5BB9\u91CF\u4E0A\u9650\uFF1A${s.maximumBytes} bytes
311
317
  \u72B6\u6001\uFF1A\u7B49\u5F85\u5DF2\u6388\u6743\u9636\u6BB5\u6267\u884C
312
- `,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),o=e[n+1],a=e.indexOf("--approve"),i=e[a+1];if(n<0||o===void 0||a<0||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Apply \u9700\u8981 --workspace \u548C\u7CBE\u786E --approve Plan ID\u3002",exitCode:2,nextStep:"\u68C0\u67E5\u4E0D\u53EF\u53D8 Build Plan\u3002"});let s=await Vh({workspaceRoot:o,approvedPlanId:i,warmup:Lh()});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-apply",result:{receipt:s}})}
318
+ `,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),o=e[n+1],a=e.indexOf("--approve"),i=e[a+1];if(n<0||o===void 0||a<0||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Apply \u9700\u8981 --workspace \u548C\u7CBE\u786E --approve Plan ID\u3002",exitCode:2,nextStep:"\u68C0\u67E5\u4E0D\u53EF\u53D8 Build Plan\u3002"});let s=await Bh({workspaceRoot:o,approvedPlanId:i,warmup:Fh()});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-apply",result:{receipt:s}})}
313
319
  `:`Resolution Worker \u5DF2\u9884\u70ED\uFF1A${s.receiptId}
314
320
  \u7F13\u5B58\uFF1A${s.cacheBytes} bytes
315
- `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),o=e[n+1],a=e.flatMap((s,c)=>s==="--package-dir"&&e[c+1]!==void 0?[e[c+1]]:[]);if(n<0||o===void 0||a.length===0)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts plan requires --workspace and at least one --package-dir.",exitCode:2,nextStep:"Run dyyto --help."});let i=await Ph({workspaceRoot:o,packageRoots:a});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-plan",result:{plan:i}})}
321
+ `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),o=e[n+1],a=e.flatMap((s,c)=>s==="--package-dir"&&e[c+1]!==void 0?[e[c+1]]:[]);if(n<0||o===void 0||a.length===0)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts plan requires --workspace and at least one --package-dir.",exitCode:2,nextStep:"Run dyyto --help."});let i=await jh({workspaceRoot:o,packageRoots:a});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-plan",result:{plan:i}})}
316
322
  `:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${i.planId}
317
323
  Bundle\uFF1A${i.bundle.bundleId}
318
324
  \u72B6\u6001\uFF1A\u7B49\u5F85\u660E\u786E\u6279\u51C6
319
325
  Next\uFF1Adyyto artifacts apply --workspace ${o} --approve ${i.planId}
320
- `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),o=e[n+1],a=e.indexOf("--approve"),i=e[a+1];if(n<0||o===void 0||a<0||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts apply requires --workspace and an exact --approve Plan ID.",exitCode:2,nextStep:"Review and approve the immutable Artifact Plan."});let s=await Nh({workspaceRoot:o,approvedPlanId:i});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-apply",result:{...s,channel:"development"}})}
326
+ `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),o=e[n+1],a=e.indexOf("--approve"),i=e[a+1];if(n<0||o===void 0||a<0||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts apply requires --workspace and an exact --approve Plan ID.",exitCode:2,nextStep:"Review and approve the immutable Artifact Plan."});let s=await $h({workspaceRoot:o,approvedPlanId:i});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-apply",result:{...s,channel:"development"}})}
321
327
  `:`\u672C\u5730\u5236\u54C1 Bundle \u5DF2\u5199\u5165\uFF1A${s.bundleId}
322
328
  Channel\uFF1Adevelopment
323
329
  Next\uFF1Adyyto artifacts serve --workspace ${o} --bundle ${s.bundleId} --port 4873
324
- `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),o=e[n+1],a=e.indexOf("--bundle"),i=e[a+1],s=e.flatMap((f,u)=>f==="--fallback-bundle"&&e[u+1]!==void 0?[e[u+1]]:[]),c=e.indexOf("--port"),l=Number(e[c+1]);if(n<0||o===void 0||a<0||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i)||s.some(f=>!/^sha256:[a-f0-9]{64}$/u.test(f))||c<0||!Number.isSafeInteger(l)||l<1||l>65535)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts serve requires --workspace, an exact --bundle digest, optional exact --fallback-bundle digests, and a fixed --port.",exitCode:2,nextStep:"Run dyyto --help."});let d=await Rh({bundleRoot:zt.resolve(o,".dyyto","package-artifacts",i),fallbackBundleRoots:s.map(f=>zt.resolve(o,".dyyto","package-artifacts",f)),port:l});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-serve",result:{origin:d.origin,bundleId:d.bundle.bundleId,fallbackBundleIds:d.fallbackBundles.map(f=>f.bundleId),channel:"development"}})}
330
+ `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),o=e[n+1],a=e.indexOf("--bundle"),i=e[a+1],s=e.flatMap((f,u)=>f==="--fallback-bundle"&&e[u+1]!==void 0?[e[u+1]]:[]),c=e.indexOf("--port"),l=Number(e[c+1]);if(n<0||o===void 0||a<0||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i)||s.some(f=>!/^sha256:[a-f0-9]{64}$/u.test(f))||c<0||!Number.isSafeInteger(l)||l<1||l>65535)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts serve requires --workspace, an exact --bundle digest, optional exact --fallback-bundle digests, and a fixed --port.",exitCode:2,nextStep:"Run dyyto --help."});let d=await Nh({bundleRoot:Dt.resolve(o,".dyyto","package-artifacts",i),fallbackBundleRoots:s.map(f=>Dt.resolve(o,".dyyto","package-artifacts",f)),port:l});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-serve",result:{origin:d.origin,bundleId:d.bundle.bundleId,fallbackBundleIds:d.fallbackBundles.map(f=>f.bundleId),channel:"development"}})}
325
331
  `:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${d.origin}
326
332
  \u4E3B Bundle\uFF1A${d.bundle.bundleId}
327
333
  Fallback Bundles\uFF1A${d.fallbackBundles.map(f=>f.bundleId).join(", ")||"\u65E0"}
328
334
  Channel\uFF1Adevelopment
329
- `,stderr:""});let p=async()=>{await d.close(),Ve.exit(0)};Ve.once("SIGINT",p),Ve.once("SIGTERM",p),await new Promise(()=>{})}if(e[0]==="observe"&&e[1]==="serve"){let n=e.indexOf("--workspace"),o=e[n+1];if(n<0||o===void 0)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Observe serve requires --workspace.",exitCode:2,nextStep:"Run dyyto --help."});let a=e.indexOf("--port"),i=a<0?void 0:Number(e[a+1]);if(i!==void 0&&(!Number.isSafeInteger(i)||i<1||i>65535))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Observe serve --port is invalid.",exitCode:2,nextStep:"Choose an available TCP port."});let s=await Ih({workspaceRoot:o,...i===void 0?{}:{port:i}});qe({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
335
+ `,stderr:""});let p=async()=>{await d.close(),je.exit(0)};je.once("SIGINT",p),je.once("SIGTERM",p),await new Promise(()=>{})}if(e[0]==="observe"&&e[1]==="serve"){let n=e.indexOf("--workspace"),o=e[n+1];if(n<0||o===void 0)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Observe serve requires --workspace.",exitCode:2,nextStep:"Run dyyto --help."});let a=e.indexOf("--port"),i=a<0?void 0:Number(e[a+1]);if(i!==void 0&&(!Number.isSafeInteger(i)||i<1||i>65535))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Observe serve --port is invalid.",exitCode:2,nextStep:"Choose an available TCP port."});let s=await _h({workspaceRoot:o,...i===void 0?{}:{port:i}});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
330
336
  `:`\u672C\u5730\u91C7\u96C6\u7AEF\u5DF2\u542F\u52A8\uFF1A${s.origin}
331
- `,stderr:""});let c=async()=>{await s.close(),Ve.exit(0)};Ve.once("SIGINT",c),Ve.once("SIGTERM",c),await new Promise(()=>{})}let r=await wh(e,await Y0(e));qe(Bh(r.value,r.outputMode,r.human))}catch(r){if(Ve.env.DYYTO_DEBUG==="1"&&r instanceof Error){let s=[],c=r.cause;for(;c instanceof Error;)s.push(c.stack??c.message),c=c.cause;Ve.stderr.write(`${r.stack??r.message}${s.map(l=>`
337
+ `,stderr:""});let c=async()=>{await s.close(),je.exit(0)};je.once("SIGINT",c),je.once("SIGTERM",c),await new Promise(()=>{})}let r=await Rh(e,await Z0(e));Me(Kh(r.value,r.outputMode,r.human))}catch(r){if(je.env.DYYTO_DEBUG==="1"&&r instanceof Error){let s=[],c=r.cause;for(;c instanceof Error;)s.push(c.stack??c.message),c=c.cause;je.stderr.write(`${r.stack??r.message}${s.map(l=>`
332
338
  Cause: ${l}`).join("")}
333
- `)}let n=r;if(r instanceof pt)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"\u91CD\u65B0\u751F\u6210Bootstrap Plan\u5E76\u68C0\u67E5\u7528\u6237\u4FEE\u6539\u3002"});else if(r instanceof be)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"Run dyyto plan and review the current project state."});else if(r instanceof j)n=new T({code:r.code,message:r.message,exitCode:r.code==="RECOVERY_REQUIRED"?5:3,nextStep:r.code==="RECOVERY_REQUIRED"?"Run dyyto recover for this project.":"Run dyyto plan and approve the exact reviewable plan."});else if(r instanceof M)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"Inspect the project profile and resolve conflicts before continuing."});else if(r instanceof we)n=new T({code:r.code,message:r.message,exitCode:r.code==="METADATA_RECOVERY_REQUIRED"?5:4,nextStep:r.code==="METADATA_RECOVERY_REQUIRED"?"Run dyyto recover for this project.":"Fix the verification failure, then run dyyto verify again."});else if(r instanceof Y||r instanceof Error&&r.name==="PackageAdoptionError"&&"code"in r&&typeof r.code=="string"){let s=r.code,c=s==="PACKAGE_INSTALL_FAILED";n=new T({code:s,message:s,exitCode:c?5:4,nextStep:c?"\u68C0\u67E5\u9879\u76EE\u6062\u590D\u72B6\u6001\u548C\u53D7\u4FE1 Registry \u540E\u91CD\u65B0\u751F\u6210 Plan\u3002":"\u68C0\u67E5 Package Source\u3001Receipt \u4E0E\u6279\u51C6\u7684 Plan\uFF0C\u4FEE\u590D\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002"})}else if(r instanceof Le)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u68C0\u67E5 Bundle index\u3001tarball \u6458\u8981\u548C\u672C\u5730\u53EA\u8BFB\u7AEF\u53E3\u540E\u91CD\u8BD5\u3002"});else if(r instanceof J)n=new T({code:r.code,message:r.code,exitCode:r.code==="LOCAL_ARTIFACT_PREIMAGE_CONFLICT"?5:4,nextStep:r.code==="LOCAL_ARTIFACT_PREIMAGE_CONFLICT"?"Package \u6216 Bundle preimage \u5DF2\u53D8\u5316\uFF1B\u8BF7\u91CD\u65B0\u751F\u6210\u5E76\u5BA1\u6838 Plan\u3002":"\u68C0\u67E5 package \u8F93\u5165\u548C Artifact Plan \u540E\u91CD\u8BD5\u3002"});else if(r instanceof lr)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u6838\u5BF9\u6279\u51C6\u7684 Bundle\u3001candidate Release \u4E0E loopback Registry \u53C2\u6570\u3002"});else if(r instanceof We)n=new T({code:r.code,message:r.code,exitCode:r.code==="RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT"?5:4,nextStep:"\u68C0\u67E5 Worker Build Plan\u3001workspace preimage \u4E0E\u5BB9\u91CF\u9650\u5236\u540E\u91CD\u8BD5\u3002"});else if(r instanceof Re)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"Resolution Evidence \u672A\u901A\u8FC7\u4E25\u683C\u9A8C\u8BC1\uFF1B\u68C0\u67E5 importer\u3001package closure \u4E0E source binding\u3002"});else if(r instanceof lt)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u68C0\u67E5\u6839\u5171\u4EAB\u9501 importer\u3001\u5E94\u7528\u5C40\u90E8\u9501\u548C Plan preimage \u540E\u91CD\u65B0\u751F\u6210\u62D3\u6251\u8FC1\u79FB Plan\u3002"});else if(r instanceof Error&&/^RESOLUTION_WORKER_[A-Z_]+$/u.test(r.message))n=new T({code:r.message,message:r.message,exitCode:4,nextStep:"\u68C0\u67E5 Resolution Worker Receipt\u3001\u5171\u4EAB\u9501 trust facts \u4E0E persistent state\u3002"});else if(r instanceof D){let s={NPM_AUTHENTICATION_REQUIRED:"\u8BF7\u5728 Plan \u7ED1\u5B9A\u7684\u53D7\u4FE1 CI \u4E2D\u68C0\u67E5 Trusted Publishing \u914D\u7F6E\uFF1B\u4E0D\u8981\u5411 Dyyto \u63D0\u4F9B token\u3002",NPM_AUTHORIZATION_DENIED:"\u8BF7\u7531 npm \u5305\u7EF4\u62A4\u8005\u68C0\u67E5\u5305\u6743\u9650\u4E0E\u53D1\u5E03\u7B56\u7565\uFF0C\u7136\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002",NPM_2FA_REQUIRED:"\u8BF7\u7531\u7EF4\u62A4\u8005\u5728 npmjs.com \u6216\u72EC\u7ACB\u4EA4\u4E92\u5F0F npm CLI \u5B8C\u6210\u53CC\u91CD\u9A8C\u8BC1\u3002",NPM_TRUSTED_PUBLISHER_MISMATCH:"\u8BF7\u6838\u5BF9 npm Trusted Publisher \u7684\u4ED3\u5E93\u3001\u5DE5\u4F5C\u6D41\u3001\u73AF\u5883\u4E0E stage-only action\u3002",NPM_TOKEN_POLICY_UNVERIFIED:"\u8BF7\u6539\u7528\u53D7\u652F\u6301\u7684 OIDC Trusted Publishing \u73AF\u5883\uFF1BProduction apply \u4E0D\u63A5\u53D7\u4F20\u7EDF token \u8DEF\u5F84\u3002",NPM_STAGE_UNSUPPORTED:"\u8BF7\u786E\u8BA4\u5305\u5DF2\u5B58\u5728\u3001\u8D26\u6237\u542F\u7528\u53CC\u91CD\u9A8C\u8BC1\uFF0C\u5E76\u4F7F\u7528 Node 24.18.0 \u4E0E npm 11.16.0\u3002",NPM_STAGE_CONFLICT:"\u8BF7\u5728 npmjs.com \u68C0\u67E5\u8BE5\u7CBE\u786E\u7248\u672C\uFF1B\u4E0D\u8981\u8986\u76D6\u6216\u91CD\u590D\u6682\u5B58\u3002",NPM_PROVENANCE_REQUIRED:"\u8BF7\u6062\u590D Trusted Publishing provenance\uFF0C\u5E76\u518D\u6B21\u8FD0\u884C\u53EA\u8BFB inspect\u3002",NPM_REGISTRY_PROPAGATION_PENDING:"\u8BF7\u7A0D\u540E\u518D\u6B21\u8FD0\u884C delivery inspect\uFF1B\u4E0D\u8981\u91CD\u590D\u6682\u5B58\u3002",NPM_REGISTRY_OUTCOME_UNKNOWN:"\u8BF7\u5148\u5728 npmjs.com \u68C0\u67E5\u8BE5\u7248\u672C\u4E0E stage \u72B6\u6001\uFF1B\u7ED3\u679C\u786E\u8BA4\u524D\u4E0D\u8981\u91CD\u8BD5\u5199\u64CD\u4F5C\u3002"},c=r.code==="DELIVERY_EXECUTION_UNKNOWN"||r.code==="NPM_REGISTRY_OUTCOME_UNKNOWN";n=new T({code:r.code,message:r.message,exitCode:c?5:4,nextStep:s[r.code]??(c?"Inspect the delivery target before retrying.":"Review the Delivery Plan and current project state.")})}let o=_d(n),a=n instanceof T?n:o===null?null:new T(o),i={schemaVersion:1,ok:!1,error:{code:a?.code??"CLI_INTERNAL_ERROR",message:a?.message??"The CLI could not complete the command.",...a?.nextStep===void 0?{}:{nextStep:a.nextStep}}};qe(zh(i,t)),Ve.exitCode=a?.exitCode??1}}export{NT as runCommand};
339
+ `)}let n=r;if(r instanceof He)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"\u91CD\u65B0\u751F\u6210Bootstrap Plan\u5E76\u68C0\u67E5\u7528\u6237\u4FEE\u6539\u3002"});else if(r instanceof be)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"Run dyyto plan and review the current project state."});else if(r instanceof j)n=new T({code:r.code,message:r.message,exitCode:r.code==="RECOVERY_REQUIRED"?5:3,nextStep:r.code==="RECOVERY_REQUIRED"?"Run dyyto recover for this project.":"Run dyyto plan and approve the exact reviewable plan."});else if(r instanceof M)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"Inspect the project profile and resolve conflicts before continuing."});else if(r instanceof we)n=new T({code:r.code,message:r.message,exitCode:r.code==="METADATA_RECOVERY_REQUIRED"?5:4,nextStep:r.code==="METADATA_RECOVERY_REQUIRED"?"Run dyyto recover for this project.":"Fix the verification failure, then run dyyto verify again."});else if(r instanceof Y||r instanceof Error&&r.name==="PackageAdoptionError"&&"code"in r&&typeof r.code=="string"){let s=r.code,c=s==="PACKAGE_INSTALL_FAILED";n=new T({code:s,message:s,exitCode:c?5:4,nextStep:c?"\u68C0\u67E5\u9879\u76EE\u6062\u590D\u72B6\u6001\u548C\u53D7\u4FE1 Registry \u540E\u91CD\u65B0\u751F\u6210 Plan\u3002":"\u68C0\u67E5 Package Source\u3001Receipt \u4E0E\u6279\u51C6\u7684 Plan\uFF0C\u4FEE\u590D\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002"})}else if(r instanceof xe)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u68C0\u67E5 Bundle index\u3001tarball \u6458\u8981\u548C\u672C\u5730\u53EA\u8BFB\u7AEF\u53E3\u540E\u91CD\u8BD5\u3002"});else if(r instanceof J)n=new T({code:r.code,message:r.code,exitCode:r.code==="LOCAL_ARTIFACT_PREIMAGE_CONFLICT"?5:4,nextStep:r.code==="LOCAL_ARTIFACT_PREIMAGE_CONFLICT"?"Package \u6216 Bundle preimage \u5DF2\u53D8\u5316\uFF1B\u8BF7\u91CD\u65B0\u751F\u6210\u5E76\u5BA1\u6838 Plan\u3002":"\u68C0\u67E5 package \u8F93\u5165\u548C Artifact Plan \u540E\u91CD\u8BD5\u3002"});else if(r instanceof lr)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u6838\u5BF9\u6279\u51C6\u7684 Bundle\u3001candidate Release \u4E0E loopback Registry \u53C2\u6570\u3002"});else if(r instanceof Ke)n=new T({code:r.code,message:r.code,exitCode:r.code==="RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT"?5:4,nextStep:"\u68C0\u67E5 Worker Build Plan\u3001workspace preimage \u4E0E\u5BB9\u91CF\u9650\u5236\u540E\u91CD\u8BD5\u3002"});else if(r instanceof Re)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"Resolution Evidence \u672A\u901A\u8FC7\u4E25\u683C\u9A8C\u8BC1\uFF1B\u68C0\u67E5 importer\u3001package closure \u4E0E source binding\u3002"});else if(r instanceof ut)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u68C0\u67E5\u6839\u5171\u4EAB\u9501 importer\u3001\u5E94\u7528\u5C40\u90E8\u9501\u548C Plan preimage \u540E\u91CD\u65B0\u751F\u6210\u62D3\u6251\u8FC1\u79FB Plan\u3002"});else if(r instanceof Error&&/^RESOLUTION_WORKER_[A-Z_]+$/u.test(r.message))n=new T({code:r.message,message:r.message,exitCode:4,nextStep:"\u68C0\u67E5 Resolution Worker Receipt\u3001\u5171\u4EAB\u9501 trust facts \u4E0E persistent state\u3002"});else if(r instanceof S){let s={NPM_AUTHENTICATION_REQUIRED:"\u8BF7\u5728 Plan \u7ED1\u5B9A\u7684\u53D7\u4FE1 CI \u4E2D\u68C0\u67E5 Trusted Publishing \u914D\u7F6E\uFF1B\u4E0D\u8981\u5411 Dyyto \u63D0\u4F9B token\u3002",NPM_AUTHORIZATION_DENIED:"\u8BF7\u7531 npm \u5305\u7EF4\u62A4\u8005\u68C0\u67E5\u5305\u6743\u9650\u4E0E\u53D1\u5E03\u7B56\u7565\uFF0C\u7136\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002",NPM_2FA_REQUIRED:"\u8BF7\u7531\u7EF4\u62A4\u8005\u5728 npmjs.com \u6216\u72EC\u7ACB\u4EA4\u4E92\u5F0F npm CLI \u5B8C\u6210\u53CC\u91CD\u9A8C\u8BC1\u3002",NPM_TRUSTED_PUBLISHER_MISMATCH:"\u8BF7\u6838\u5BF9 npm Trusted Publisher \u7684\u4ED3\u5E93\u3001\u5DE5\u4F5C\u6D41\u3001\u73AF\u5883\u4E0E stage-only action\u3002",NPM_TOKEN_POLICY_UNVERIFIED:"\u8BF7\u6539\u7528\u53D7\u652F\u6301\u7684 OIDC Trusted Publishing \u73AF\u5883\uFF1BProduction apply \u4E0D\u63A5\u53D7\u4F20\u7EDF token \u8DEF\u5F84\u3002",NPM_STAGE_UNSUPPORTED:"\u8BF7\u786E\u8BA4\u5305\u5DF2\u5B58\u5728\u3001\u8D26\u6237\u542F\u7528\u53CC\u91CD\u9A8C\u8BC1\uFF0C\u5E76\u4F7F\u7528 Node 24.18.0 \u4E0E npm 11.16.0\u3002",NPM_STAGE_CONFLICT:"\u8BF7\u5728 npmjs.com \u68C0\u67E5\u8BE5\u7CBE\u786E\u7248\u672C\uFF1B\u4E0D\u8981\u8986\u76D6\u6216\u91CD\u590D\u6682\u5B58\u3002",NPM_PROVENANCE_REQUIRED:"\u8BF7\u6062\u590D Trusted Publishing provenance\uFF0C\u5E76\u518D\u6B21\u8FD0\u884C\u53EA\u8BFB inspect\u3002",NPM_REGISTRY_PROPAGATION_PENDING:"\u8BF7\u7A0D\u540E\u518D\u6B21\u8FD0\u884C delivery inspect\uFF1B\u4E0D\u8981\u91CD\u590D\u6682\u5B58\u3002",NPM_REGISTRY_OUTCOME_UNKNOWN:"\u8BF7\u5148\u5728 npmjs.com \u68C0\u67E5\u8BE5\u7248\u672C\u4E0E stage \u72B6\u6001\uFF1B\u7ED3\u679C\u786E\u8BA4\u524D\u4E0D\u8981\u91CD\u8BD5\u5199\u64CD\u4F5C\u3002"},c=r.code==="DELIVERY_EXECUTION_UNKNOWN"||r.code==="NPM_REGISTRY_OUTCOME_UNKNOWN";n=new T({code:r.code,message:r.message,exitCode:c?5:4,nextStep:s[r.code]??(c?"Inspect the delivery target before retrying.":"Review the Delivery Plan and current project state.")})}let o=Od(n),a=n instanceof T?n:o===null?null:new T(o),i={schemaVersion:1,ok:!1,error:{code:a?.code??"CLI_INTERNAL_ERROR",message:a?.message??"The CLI could not complete the command.",...a?.nextStep===void 0?{}:{nextStep:a.nextStep}}};Me(Yh(i,t)),je.exitCode=a?.exitCode??1}}export{ST as runCommand};