@aipt/cli 0.1.36 → 0.1.38

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,128 +1,128 @@
1
- import{a as E,b as nn,c as Fn,d as rp,e as j,f as np,g as ip,h as op,i as ap,j as sp}from"./chunk.js";var Bn=E(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.regexpCode=Y.getEsmExportName=Y.getProperty=Y.safeStringify=Y.stringify=Y.strConcat=Y.addCodeArg=Y.str=Y._=Y.nil=Y._Code=Y.Name=Y.IDENTIFIER=Y._CodeOrName=void 0;var Un=class{};Y._CodeOrName=Un;Y.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Ir=class extends Un{constructor(t){if(super(),!Y.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}}};Y.Name=Ir;var at=class extends Un{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 Ir&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Y._Code=at;Y.nil=new at("");function cp(e,...t){let r=[e[0]],n=0;for(;n<t.length;)gs(r,t[n]),r.push(e[++n]);return new at(r)}Y._=cp;var ms=new at("+");function lp(e,...t){let r=[qn(e[0])],n=0;for(;n<t.length;)r.push(ms),gs(r,t[n]),r.push(ms,qn(e[++n]));return Hh(r),new at(r)}Y.str=lp;function gs(e,t){t instanceof at?e.push(...t._items):t instanceof Ir?e.push(t):e.push(Qh(t))}Y.addCodeArg=gs;function Hh(e){let t=1;for(;t<e.length-1;){if(e[t]===ms){let r=Xh(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function Xh(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof Ir||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 Ir))return`"${e}${t.slice(1)}`}function Zh(e,t){return t.emptyStr()?e:e.emptyStr()?t:lp`${e}${t}`}Y.strConcat=Zh;function Qh(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:qn(Array.isArray(e)?e.join(","):e)}function ew(e){return new at(qn(e))}Y.stringify=ew;function qn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Y.safeStringify=qn;function tw(e){return typeof e=="string"&&Y.IDENTIFIER.test(e)?new at(`.${e}`):cp`[${e}]`}Y.getProperty=tw;function rw(e){if(typeof e=="string"&&Y.IDENTIFIER.test(e))return new at(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Y.getEsmExportName=rw;function nw(e){return new at(e.toString())}Y.regexpCode=nw});var ws=E(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.ValueScope=Ye.ValueScopeName=Ye.Scope=Ye.varKinds=Ye.UsedValueState=void 0;var Ke=Bn(),ys=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},co;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(co||(Ye.UsedValueState=co={}));Ye.varKinds={const:new Ke.Name("const"),let:new Ke.Name("let"),var:new Ke.Name("var")};var lo=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Ke.Name?t:this.name(t)}name(t){return new Ke.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}}};Ye.Scope=lo;var po=class extends Ke.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Ke._)`.${new Ke.Name(r)}[${n}]`}};Ye.ValueScopeName=po;var iw=(0,Ke._)`\n`,hs=class extends lo{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?iw:Ke.nil}}get(){return this._scope}name(t){return new po(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 i=this.toName(t),{prefix:o}=i,a=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[o];if(s){let d=s.get(a);if(d)return d}else s=this._values[o]=new Map;s.set(a,i);let c=this._scope[o]||(this._scope[o]=[]),l=c.length;return c[l]=r.ref,i.setValue(r,{property:o,itemIndex:l}),i}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,Ke._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},r,n)}_reduceValues(t,r,n={},i){let o=Ke.nil;for(let a in t){let s=t[a];if(!s)continue;let c=n[a]=n[a]||new Map;s.forEach(l=>{if(c.has(l))return;c.set(l,co.Started);let d=r(l);if(d){let p=this.opts.es5?Ye.varKinds.var:Ye.varKinds.const;o=(0,Ke._)`${o}${p} ${l} = ${d};${this.opts._n}`}else if(d=i?.(l))o=(0,Ke._)`${o}${d}${this.opts._n}`;else throw new ys(l);c.set(l,co.Completed)})}return o}};Ye.ValueScope=hs});var x=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var z=Bn(),wt=ws(),Xt=Bn();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Xt._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Xt.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Xt.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Xt.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Xt.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Xt.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Xt.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Xt.Name}});var go=ws();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return go.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return go.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return go.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return go.varKinds}});F.operators={GT:new z._Code(">"),GTE:new z._Code(">="),LT:new z._Code("<"),LTE:new z._Code("<="),EQ:new z._Code("==="),NEQ:new z._Code("!=="),NOT:new z._Code("!"),OR:new z._Code("||"),AND:new z._Code("&&"),ADD:new z._Code("+")};var xt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Is=class extends xt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?wt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=an(this.rhs,t,r)),this}get names(){return this.rhs instanceof z._CodeOrName?this.rhs.names:{}}},uo=class extends xt{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 z.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=an(this.rhs,t,r),this}get names(){let t=this.lhs instanceof z.Name?{}:{...this.lhs.names};return mo(t,this.rhs)}},vs=class extends uo{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},bs=class extends xt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},ks=class extends xt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},_s=class extends xt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},As=class extends xt{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=an(this.code,t,r),this}get names(){return this.code instanceof z._CodeOrName?this.code.names:{}}},zn=class extends xt{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,i=n.length;for(;i--;){let o=n[i];o.optimizeNames(t,r)||(ow(t,o.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>kr(t,r.names),{})}},Vt=class extends zn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Rs=class extends zn{},on=class extends Vt{};on.kind="else";var vr=class e extends Vt{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 on(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(dp(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=an(this.condition,t,r),this}get names(){let t=super.names;return mo(t,this.condition),this.else&&kr(t,this.else.names),t}};vr.kind="if";var br=class extends Vt{};br.kind="for";var Es=class extends br{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=an(this.iteration,t,r),this}get names(){return kr(super.names,this.iteration.names)}},Ps=class extends br{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?wt.varKinds.var:this.varKind,{name:n,from:i,to:o}=this;return`for(${r} ${n}=${i}; ${n}<${o}; ${n}++)`+super.render(t)}get names(){let t=mo(super.names,this.from);return mo(t,this.to)}},fo=class extends br{constructor(t,r,n,i){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=i}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=an(this.iterable,t,r),this}get names(){return kr(super.names,this.iterable.names)}},Gn=class extends Vt{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)}};Gn.kind="func";var Jn=class extends zn{render(t){return"return "+super.render(t)}};Jn.kind="return";var Ns=class extends Vt{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,i;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(i=this.finally)===null||i===void 0||i.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&kr(t,this.catch.names),this.finally&&kr(t,this.finally.names),t}},Wn=class extends Vt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Wn.kind="catch";var Kn=class extends Vt{render(t){return"finally"+super.render(t)}};Kn.kind="finally";var Os=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
2
- `:""},this._extScope=t,this._scope=new wt.Scope({parent:t}),this._nodes=[new Rs]}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,i){let o=this._scope.toName(r);return n!==void 0&&i&&(this._constants[o.str]=n),this._leafNode(new Is(t,o,n)),o}const(t,r,n){return this._def(wt.varKinds.const,t,r,n)}let(t,r,n){return this._def(wt.varKinds.let,t,r,n)}var(t,r,n){return this._def(wt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new uo(t,r,n))}add(t,r){return this._leafNode(new vs(t,F.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==z.nil&&this._leafNode(new As(t)),this}object(...t){let r=["{"];for(let[n,i]of t)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,z.addCodeArg)(r,i));return r.push("}"),new z._Code(r)}if(t,r,n){if(this._blockNode(new vr(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 vr(t))}else(){return this._elseNode(new on)}endIf(){return this._endBlockNode(vr,on)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Es(t),r)}forRange(t,r,n,i,o=this.opts.es5?wt.varKinds.var:wt.varKinds.let){let a=this._scope.toName(t);return this._for(new Ps(o,a,r,n),()=>i(a))}forOf(t,r,n,i=wt.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let a=r instanceof z.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,z._)`${a}.length`,s=>{this.var(o,(0,z._)`${a}[${s}]`),n(o)})}return this._for(new fo("of",i,o,r),()=>n(o))}forIn(t,r,n,i=this.opts.es5?wt.varKinds.var:wt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,z._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new fo("in",i,o,r),()=>n(o))}endFor(){return this._endBlockNode(br)}label(t){return this._leafNode(new bs(t))}break(t){return this._leafNode(new ks(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 i=new Ns;if(this._blockNode(i),this.code(t),r){let o=this.name("e");this._currNode=i.catch=new Wn(o),r(o)}return n&&(this._currNode=i.finally=new Kn,this.code(n)),this._endBlockNode(Wn,Kn)}throw(t){return this._leafNode(new _s(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=z.nil,n,i){return this._blockNode(new Gn(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Gn)}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 vr))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}};F.CodeGen=Os;function kr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function mo(e,t){return t instanceof z._CodeOrName?kr(e,t.names):e}function an(e,t,r){if(e instanceof z.Name)return n(e);if(!i(e))return e;return new z._Code(e._items.reduce((o,a)=>(a instanceof z.Name&&(a=n(a)),a instanceof z._Code?o.push(...a._items):o.push(a),o),[]));function n(o){let a=r[o.str];return a===void 0||t[o.str]!==1?o:(delete t[o.str],a)}function i(o){return o instanceof z._Code&&o._items.some(a=>a instanceof z.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function ow(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function dp(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,z._)`!${Ss(e)}`}F.not=dp;var aw=pp(F.operators.AND);function sw(...e){return e.reduce(aw)}F.and=sw;var cw=pp(F.operators.OR);function lw(...e){return e.reduce(cw)}F.or=lw;function pp(e){return(t,r)=>t===z.nil?r:r===z.nil?t:(0,z._)`${Ss(t)} ${e} ${Ss(r)}`}function Ss(e){return e instanceof z.Name?e:(0,z._)`(${e})`}});var q=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var oe=x(),dw=Bn();function pw(e){let t={};for(let r of e)t[r]=!0;return t}U.toHash=pw;function uw(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(mp(e,t),!gp(t,e.self.RULES.all))}U.alwaysValidSchema=uw;function mp(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let i=n.RULES.keywords;for(let o in t)i[o]||wp(e,`unknown keyword: "${o}"`)}U.checkUnknownRules=mp;function gp(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}U.schemaHasRules=gp;function fw(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}U.schemaHasRulesButRef=fw;function mw({topSchemaRef:e,schemaPath:t},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,oe._)`${r}`}return(0,oe._)`${e}${t}${(0,oe.getProperty)(n)}`}U.schemaRefOrVal=mw;function gw(e){return yp(decodeURIComponent(e))}U.unescapeFragment=gw;function yw(e){return encodeURIComponent(js(e))}U.escapeFragment=yw;function js(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=js;function yp(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=yp;function hw(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}U.eachItem=hw;function up({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,o,a,s)=>{let c=a===void 0?o:a instanceof oe.Name?(o instanceof oe.Name?e(i,o,a):t(i,o,a),a):o instanceof oe.Name?(t(i,a,o),o):r(o,a);return s===oe.Name&&!(c instanceof oe.Name)?n(i,c):c}}U.mergeEvaluated={props:up({mergeNames:(e,t,r)=>e.if((0,oe._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,oe._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,oe._)`${r} || {}`).code((0,oe._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,oe._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,oe._)`${r} || {}`),Cs(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:hp}),items:up({mergeNames:(e,t,r)=>e.if((0,oe._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,oe._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,oe._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,oe._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function hp(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,oe._)`{}`);return t!==void 0&&Cs(e,r,t),r}U.evaluatedPropsToName=hp;function Cs(e,t,r){Object.keys(r).forEach(n=>e.assign((0,oe._)`${t}${(0,oe.getProperty)(n)}`,!0))}U.setEvaluated=Cs;var fp={};function ww(e,t){return e.scopeValue("func",{ref:t,code:fp[t.code]||(fp[t.code]=new dw._Code(t.code))})}U.useFunc=ww;var Ds;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(Ds||(U.Type=Ds={}));function Iw(e,t,r){if(e instanceof oe.Name){let n=t===Ds.Num;return r?n?(0,oe._)`"[" + ${e} + "]"`:(0,oe._)`"['" + ${e} + "']"`:n?(0,oe._)`"/" + ${e}`:(0,oe._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,oe.getProperty)(e).toString():"/"+js(e)}U.getErrorPath=Iw;function wp(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}U.checkStrictMode=wp});var st=E($s=>{"use strict";Object.defineProperty($s,"__esModule",{value:!0});var xe=x(),vw={data:new xe.Name("data"),valCxt:new xe.Name("valCxt"),instancePath:new xe.Name("instancePath"),parentData:new xe.Name("parentData"),parentDataProperty:new xe.Name("parentDataProperty"),rootData:new xe.Name("rootData"),dynamicAnchors:new xe.Name("dynamicAnchors"),vErrors:new xe.Name("vErrors"),errors:new xe.Name("errors"),this:new xe.Name("this"),self:new xe.Name("self"),scope:new xe.Name("scope"),json:new xe.Name("json"),jsonPos:new xe.Name("jsonPos"),jsonLen:new xe.Name("jsonLen"),jsonPart:new xe.Name("jsonPart")};$s.default=vw});var Yn=E(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.extendErrors=Ve.resetErrorsCount=Ve.reportExtraError=Ve.reportError=Ve.keyword$DataError=Ve.keywordError=void 0;var J=x(),yo=q(),Be=st();Ve.keywordError={message:({keyword:e})=>(0,J.str)`must pass "${e}" keyword validation`};Ve.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,J.str)`"${e}" keyword must be ${t} ($data)`:(0,J.str)`"${e}" keyword is invalid ($data)`};function bw(e,t=Ve.keywordError,r,n){let{it:i}=e,{gen:o,compositeRule:a,allErrors:s}=i,c=bp(e,t,r);n??(a||s)?Ip(o,c):vp(i,(0,J._)`[${c}]`)}Ve.reportError=bw;function kw(e,t=Ve.keywordError,r){let{it:n}=e,{gen:i,compositeRule:o,allErrors:a}=n,s=bp(e,t,r);Ip(i,s),o||a||vp(n,Be.default.vErrors)}Ve.reportExtraError=kw;function _w(e,t){e.assign(Be.default.errors,t),e.if((0,J._)`${Be.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,J._)`${Be.default.vErrors}.length`,t),()=>e.assign(Be.default.vErrors,null)))}Ve.resetErrorsCount=_w;function Aw({gen:e,keyword:t,schemaValue:r,data:n,errsCount:i,it:o}){if(i===void 0)throw new Error("ajv implementation error");let a=e.name("err");e.forRange("i",i,Be.default.errors,s=>{e.const(a,(0,J._)`${Be.default.vErrors}[${s}]`),e.if((0,J._)`${a}.instancePath === undefined`,()=>e.assign((0,J._)`${a}.instancePath`,(0,J.strConcat)(Be.default.instancePath,o.errorPath))),e.assign((0,J._)`${a}.schemaPath`,(0,J.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,J._)`${a}.schema`,r),e.assign((0,J._)`${a}.data`,n))})}Ve.extendErrors=Aw;function Ip(e,t){let r=e.const("err",t);e.if((0,J._)`${Be.default.vErrors} === null`,()=>e.assign(Be.default.vErrors,(0,J._)`[${r}]`),(0,J._)`${Be.default.vErrors}.push(${r})`),e.code((0,J._)`${Be.default.errors}++`)}function vp(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,J._)`new ${e.ValidationError}(${t})`):(r.assign((0,J._)`${n}.errors`,t),r.return(!1))}var _r={keyword:new J.Name("keyword"),schemaPath:new J.Name("schemaPath"),params:new J.Name("params"),propertyName:new J.Name("propertyName"),message:new J.Name("message"),schema:new J.Name("schema"),parentSchema:new J.Name("parentSchema")};function bp(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,J._)`{}`:Rw(e,t,r)}function Rw(e,t,r={}){let{gen:n,it:i}=e,o=[Ew(i,r),Pw(e,r)];return Nw(e,t,o),n.object(...o)}function Ew({errorPath:e},{instancePath:t}){let r=t?(0,J.str)`${e}${(0,yo.getErrorPath)(t,yo.Type.Str)}`:e;return[Be.default.instancePath,(0,J.strConcat)(Be.default.instancePath,r)]}function Pw({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,J.str)`${t}/${e}`;return r&&(i=(0,J.str)`${i}${(0,yo.getErrorPath)(r,yo.Type.Str)}`),[_r.schemaPath,i]}function Nw(e,{params:t,message:r},n){let{keyword:i,data:o,schemaValue:a,it:s}=e,{opts:c,propertyName:l,topSchemaRef:d,schemaPath:p}=s;n.push([_r.keyword,i],[_r.params,typeof t=="function"?t(e):t||(0,J._)`{}`]),c.messages&&n.push([_r.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([_r.schema,a],[_r.parentSchema,(0,J._)`${d}${p}`],[Be.default.data,o]),l&&n.push([_r.propertyName,l])}});var _p=E(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.boolOrEmptySchema=sn.topBoolOrEmptySchema=void 0;var Ow=Yn(),Sw=x(),Dw=st(),jw={message:"boolean schema is false"};function Cw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?kp(e,!1):typeof r=="object"&&r.$async===!0?t.return(Dw.default.data):(t.assign((0,Sw._)`${n}.errors`,null),t.return(!0))}sn.topBoolOrEmptySchema=Cw;function $w(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),kp(e)):r.var(t,!0)}sn.boolOrEmptySchema=$w;function kp(e,t){let{gen:r,data:n}=e,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,Ow.reportError)(i,jw,void 0,t)}});var Ts=E(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.getRules=cn.isJSONType=void 0;var Tw=["string","number","integer","boolean","null","object","array"],Lw=new Set(Tw);function xw(e){return typeof e=="string"&&Lw.has(e)}cn.isJSONType=xw;function Vw(){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:{}}}cn.getRules=Vw});var Ls=E(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});Zt.shouldUseRule=Zt.shouldUseGroup=Zt.schemaHasRulesForType=void 0;function Mw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Ap(e,n)}Zt.schemaHasRulesForType=Mw;function Ap(e,t){return t.rules.some(r=>Rp(e,r))}Zt.shouldUseGroup=Ap;function Rp(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))}Zt.shouldUseRule=Rp});var Hn=E(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.reportTypeError=Me.checkDataTypes=Me.checkDataType=Me.coerceAndCheckDataType=Me.getJSONTypes=Me.getSchemaTypes=Me.DataType=void 0;var Fw=Ts(),Uw=Ls(),qw=Yn(),V=x(),Ep=q(),ln;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ln||(Me.DataType=ln={}));function Bw(e){let t=Pp(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}Me.getSchemaTypes=Bw;function Pp(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Fw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Me.getJSONTypes=Pp;function zw(e,t){let{gen:r,data:n,opts:i}=e,o=Gw(t,i.coerceTypes),a=t.length>0&&!(o.length===0&&t.length===1&&(0,Uw.schemaHasRulesForType)(e,t[0]));if(a){let s=Vs(t,n,i.strictNumbers,ln.Wrong);r.if(s,()=>{o.length?Jw(e,t,o):Ms(e)})}return a}Me.coerceAndCheckDataType=zw;var Np=new Set(["string","number","integer","boolean","null"]);function Gw(e,t){return t?e.filter(r=>Np.has(r)||t==="array"&&r==="array"):[]}function Jw(e,t,r){let{gen:n,data:i,opts:o}=e,a=n.let("dataType",(0,V._)`typeof ${i}`),s=n.let("coerced",(0,V._)`undefined`);o.coerceTypes==="array"&&n.if((0,V._)`${a} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,V._)`${i}[0]`).assign(a,(0,V._)`typeof ${i}`).if(Vs(t,i,o.strictNumbers),()=>n.assign(s,i))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(Np.has(l)||l==="array"&&o.coerceTypes==="array")&&c(l);n.else(),Ms(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(i,s),Ww(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,V._)`"" + ${i}`).elseIf((0,V._)`${i} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${a} == "boolean" || ${i} === null
1
+ import{a as E,b as nn,c as Fn,d as ip,e as j,f as op,g as ap,h as sp,i as cp,j as lp}from"./chunk.js";var Bn=E(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.regexpCode=Y.getEsmExportName=Y.getProperty=Y.safeStringify=Y.stringify=Y.strConcat=Y.addCodeArg=Y.str=Y._=Y.nil=Y._Code=Y.Name=Y.IDENTIFIER=Y._CodeOrName=void 0;var Un=class{};Y._CodeOrName=Un;Y.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var vr=class extends Un{constructor(t){if(super(),!Y.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}}};Y.Name=vr;var at=class extends Un{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 vr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Y._Code=at;Y.nil=new at("");function dp(e,...t){let r=[e[0]],n=0;for(;n<t.length;)ys(r,t[n]),r.push(e[++n]);return new at(r)}Y._=dp;var gs=new at("+");function pp(e,...t){let r=[qn(e[0])],n=0;for(;n<t.length;)r.push(gs),ys(r,t[n]),r.push(gs,qn(e[++n]));return Xh(r),new at(r)}Y.str=pp;function ys(e,t){t instanceof at?e.push(...t._items):t instanceof vr?e.push(t):e.push(tw(t))}Y.addCodeArg=ys;function Xh(e){let t=1;for(;t<e.length-1;){if(e[t]===gs){let r=Qh(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function Qh(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof vr||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 vr))return`"${e}${t.slice(1)}`}function ew(e,t){return t.emptyStr()?e:e.emptyStr()?t:pp`${e}${t}`}Y.strConcat=ew;function tw(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:qn(Array.isArray(e)?e.join(","):e)}function rw(e){return new at(qn(e))}Y.stringify=rw;function qn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Y.safeStringify=qn;function nw(e){return typeof e=="string"&&Y.IDENTIFIER.test(e)?new at(`.${e}`):dp`[${e}]`}Y.getProperty=nw;function iw(e){if(typeof e=="string"&&Y.IDENTIFIER.test(e))return new at(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Y.getEsmExportName=iw;function ow(e){return new at(e.toString())}Y.regexpCode=ow});var Is=E(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.ValueScope=He.ValueScopeName=He.Scope=He.varKinds=He.UsedValueState=void 0;var Ye=Bn(),hs=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},po;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(po||(He.UsedValueState=po={}));He.varKinds={const:new Ye.Name("const"),let:new Ye.Name("let"),var:new Ye.Name("var")};var uo=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Ye.Name?t:this.name(t)}name(t){return new Ye.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}}};He.Scope=uo;var fo=class extends Ye.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Ye._)`.${new Ye.Name(r)}[${n}]`}};He.ValueScopeName=fo;var aw=(0,Ye._)`\n`,ws=class extends uo{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?aw:Ye.nil}}get(){return this._scope}name(t){return new fo(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 i=this.toName(t),{prefix:o}=i,a=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[o];if(s){let l=s.get(a);if(l)return l}else s=this._values[o]=new Map;s.set(a,i);let c=this._scope[o]||(this._scope[o]=[]),d=c.length;return c[d]=r.ref,i.setValue(r,{property:o,itemIndex:d}),i}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,Ye._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},r,n)}_reduceValues(t,r,n={},i){let o=Ye.nil;for(let a in t){let s=t[a];if(!s)continue;let c=n[a]=n[a]||new Map;s.forEach(d=>{if(c.has(d))return;c.set(d,po.Started);let l=r(d);if(l){let p=this.opts.es5?He.varKinds.var:He.varKinds.const;o=(0,Ye._)`${o}${p} ${d} = ${l};${this.opts._n}`}else if(l=i?.(d))o=(0,Ye._)`${o}${l}${this.opts._n}`;else throw new hs(d);c.set(d,po.Completed)})}return o}};He.ValueScope=ws});var x=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var z=Bn(),wt=Is(),Xt=Bn();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Xt._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Xt.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Xt.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Xt.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Xt.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Xt.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Xt.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Xt.Name}});var ho=Is();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return ho.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return ho.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return ho.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return ho.varKinds}});F.operators={GT:new z._Code(">"),GTE:new z._Code(">="),LT:new z._Code("<"),LTE:new z._Code("<="),EQ:new z._Code("==="),NEQ:new z._Code("!=="),NOT:new z._Code("!"),OR:new z._Code("||"),AND:new z._Code("&&"),ADD:new z._Code("+")};var Mt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},vs=class extends Mt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?wt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=an(this.rhs,t,r)),this}get names(){return this.rhs instanceof z._CodeOrName?this.rhs.names:{}}},mo=class extends Mt{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 z.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=an(this.rhs,t,r),this}get names(){let t=this.lhs instanceof z.Name?{}:{...this.lhs.names};return yo(t,this.rhs)}},bs=class extends mo{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ks=class extends Mt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},_s=class extends Mt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},As=class extends Mt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Rs=class extends Mt{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=an(this.code,t,r),this}get names(){return this.code instanceof z._CodeOrName?this.code.names:{}}},zn=class extends Mt{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,i=n.length;for(;i--;){let o=n[i];o.optimizeNames(t,r)||(sw(t,o.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>_r(t,r.names),{})}},Ft=class extends zn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Es=class extends zn{},on=class extends Ft{};on.kind="else";var br=class e extends Ft{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 on(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(up(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=an(this.condition,t,r),this}get names(){let t=super.names;return yo(t,this.condition),this.else&&_r(t,this.else.names),t}};br.kind="if";var kr=class extends Ft{};kr.kind="for";var Ps=class extends kr{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=an(this.iteration,t,r),this}get names(){return _r(super.names,this.iteration.names)}},Ns=class extends kr{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?wt.varKinds.var:this.varKind,{name:n,from:i,to:o}=this;return`for(${r} ${n}=${i}; ${n}<${o}; ${n}++)`+super.render(t)}get names(){let t=yo(super.names,this.from);return yo(t,this.to)}},go=class extends kr{constructor(t,r,n,i){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=i}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=an(this.iterable,t,r),this}get names(){return _r(super.names,this.iterable.names)}},Gn=class extends Ft{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)}};Gn.kind="func";var Jn=class extends zn{render(t){return"return "+super.render(t)}};Jn.kind="return";var Os=class extends Ft{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,i;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(i=this.finally)===null||i===void 0||i.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&_r(t,this.catch.names),this.finally&&_r(t,this.finally.names),t}},Wn=class extends Ft{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Wn.kind="catch";var Kn=class extends Ft{render(t){return"finally"+super.render(t)}};Kn.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 wt.Scope({parent:t}),this._nodes=[new Es]}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,i){let o=this._scope.toName(r);return n!==void 0&&i&&(this._constants[o.str]=n),this._leafNode(new vs(t,o,n)),o}const(t,r,n){return this._def(wt.varKinds.const,t,r,n)}let(t,r,n){return this._def(wt.varKinds.let,t,r,n)}var(t,r,n){return this._def(wt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new mo(t,r,n))}add(t,r){return this._leafNode(new bs(t,F.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==z.nil&&this._leafNode(new Rs(t)),this}object(...t){let r=["{"];for(let[n,i]of t)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,z.addCodeArg)(r,i));return r.push("}"),new z._Code(r)}if(t,r,n){if(this._blockNode(new br(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 br(t))}else(){return this._elseNode(new on)}endIf(){return this._endBlockNode(br,on)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Ps(t),r)}forRange(t,r,n,i,o=this.opts.es5?wt.varKinds.var:wt.varKinds.let){let a=this._scope.toName(t);return this._for(new Ns(o,a,r,n),()=>i(a))}forOf(t,r,n,i=wt.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let a=r instanceof z.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,z._)`${a}.length`,s=>{this.var(o,(0,z._)`${a}[${s}]`),n(o)})}return this._for(new go("of",i,o,r),()=>n(o))}forIn(t,r,n,i=this.opts.es5?wt.varKinds.var:wt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,z._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new go("in",i,o,r),()=>n(o))}endFor(){return this._endBlockNode(kr)}label(t){return this._leafNode(new ks(t))}break(t){return this._leafNode(new _s(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 i=new Os;if(this._blockNode(i),this.code(t),r){let o=this.name("e");this._currNode=i.catch=new Wn(o),r(o)}return n&&(this._currNode=i.finally=new Kn,this.code(n)),this._endBlockNode(Wn,Kn)}throw(t){return this._leafNode(new As(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=z.nil,n,i){return this._blockNode(new Gn(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Gn)}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 br))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}};F.CodeGen=Ss;function _r(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function yo(e,t){return t instanceof z._CodeOrName?_r(e,t.names):e}function an(e,t,r){if(e instanceof z.Name)return n(e);if(!i(e))return e;return new z._Code(e._items.reduce((o,a)=>(a instanceof z.Name&&(a=n(a)),a instanceof z._Code?o.push(...a._items):o.push(a),o),[]));function n(o){let a=r[o.str];return a===void 0||t[o.str]!==1?o:(delete t[o.str],a)}function i(o){return o instanceof z._Code&&o._items.some(a=>a instanceof z.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function sw(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function up(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,z._)`!${Ds(e)}`}F.not=up;var cw=fp(F.operators.AND);function lw(...e){return e.reduce(cw)}F.and=lw;var dw=fp(F.operators.OR);function pw(...e){return e.reduce(dw)}F.or=pw;function fp(e){return(t,r)=>t===z.nil?r:r===z.nil?t:(0,z._)`${Ds(t)} ${e} ${Ds(r)}`}function Ds(e){return e instanceof z.Name?e:(0,z._)`(${e})`}});var q=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var ae=x(),uw=Bn();function fw(e){let t={};for(let r of e)t[r]=!0;return t}U.toHash=fw;function mw(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(yp(e,t),!hp(t,e.self.RULES.all))}U.alwaysValidSchema=mw;function yp(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let i=n.RULES.keywords;for(let o in t)i[o]||vp(e,`unknown keyword: "${o}"`)}U.checkUnknownRules=yp;function hp(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}U.schemaHasRules=hp;function gw(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}U.schemaHasRulesButRef=gw;function yw({topSchemaRef:e,schemaPath:t},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,ae._)`${r}`}return(0,ae._)`${e}${t}${(0,ae.getProperty)(n)}`}U.schemaRefOrVal=yw;function hw(e){return wp(decodeURIComponent(e))}U.unescapeFragment=hw;function ww(e){return encodeURIComponent(Cs(e))}U.escapeFragment=ww;function Cs(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Cs;function wp(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=wp;function Iw(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}U.eachItem=Iw;function mp({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,o,a,s)=>{let c=a===void 0?o:a instanceof ae.Name?(o instanceof ae.Name?e(i,o,a):t(i,o,a),a):o instanceof ae.Name?(t(i,a,o),o):r(o,a);return s===ae.Name&&!(c instanceof ae.Name)?n(i,c):c}}U.mergeEvaluated={props:mp({mergeNames:(e,t,r)=>e.if((0,ae._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,ae._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,ae._)`${r} || {}`).code((0,ae._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,ae._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,ae._)`${r} || {}`),$s(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Ip}),items:mp({mergeNames:(e,t,r)=>e.if((0,ae._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,ae._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,ae._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,ae._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function Ip(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ae._)`{}`);return t!==void 0&&$s(e,r,t),r}U.evaluatedPropsToName=Ip;function $s(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ae._)`${t}${(0,ae.getProperty)(n)}`,!0))}U.setEvaluated=$s;var gp={};function vw(e,t){return e.scopeValue("func",{ref:t,code:gp[t.code]||(gp[t.code]=new uw._Code(t.code))})}U.useFunc=vw;var js;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(js||(U.Type=js={}));function bw(e,t,r){if(e instanceof ae.Name){let n=t===js.Num;return r?n?(0,ae._)`"[" + ${e} + "]"`:(0,ae._)`"['" + ${e} + "']"`:n?(0,ae._)`"/" + ${e}`:(0,ae._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,ae.getProperty)(e).toString():"/"+Cs(e)}U.getErrorPath=bw;function vp(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}U.checkStrictMode=vp});var st=E(Ts=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});var Ve=x(),kw={data:new Ve.Name("data"),valCxt:new Ve.Name("valCxt"),instancePath:new Ve.Name("instancePath"),parentData:new Ve.Name("parentData"),parentDataProperty:new Ve.Name("parentDataProperty"),rootData:new Ve.Name("rootData"),dynamicAnchors:new Ve.Name("dynamicAnchors"),vErrors:new Ve.Name("vErrors"),errors:new Ve.Name("errors"),this:new Ve.Name("this"),self:new Ve.Name("self"),scope:new Ve.Name("scope"),json:new Ve.Name("json"),jsonPos:new Ve.Name("jsonPos"),jsonLen:new Ve.Name("jsonLen"),jsonPart:new Ve.Name("jsonPart")};Ts.default=kw});var Yn=E(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.extendErrors=Me.resetErrorsCount=Me.reportExtraError=Me.reportError=Me.keyword$DataError=Me.keywordError=void 0;var J=x(),wo=q(),Je=st();Me.keywordError={message:({keyword:e})=>(0,J.str)`must pass "${e}" keyword validation`};Me.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,J.str)`"${e}" keyword must be ${t} ($data)`:(0,J.str)`"${e}" keyword is invalid ($data)`};function _w(e,t=Me.keywordError,r,n){let{it:i}=e,{gen:o,compositeRule:a,allErrors:s}=i,c=_p(e,t,r);n??(a||s)?bp(o,c):kp(i,(0,J._)`[${c}]`)}Me.reportError=_w;function Aw(e,t=Me.keywordError,r){let{it:n}=e,{gen:i,compositeRule:o,allErrors:a}=n,s=_p(e,t,r);bp(i,s),o||a||kp(n,Je.default.vErrors)}Me.reportExtraError=Aw;function Rw(e,t){e.assign(Je.default.errors,t),e.if((0,J._)`${Je.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,J._)`${Je.default.vErrors}.length`,t),()=>e.assign(Je.default.vErrors,null)))}Me.resetErrorsCount=Rw;function Ew({gen:e,keyword:t,schemaValue:r,data:n,errsCount:i,it:o}){if(i===void 0)throw new Error("ajv implementation error");let a=e.name("err");e.forRange("i",i,Je.default.errors,s=>{e.const(a,(0,J._)`${Je.default.vErrors}[${s}]`),e.if((0,J._)`${a}.instancePath === undefined`,()=>e.assign((0,J._)`${a}.instancePath`,(0,J.strConcat)(Je.default.instancePath,o.errorPath))),e.assign((0,J._)`${a}.schemaPath`,(0,J.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,J._)`${a}.schema`,r),e.assign((0,J._)`${a}.data`,n))})}Me.extendErrors=Ew;function bp(e,t){let r=e.const("err",t);e.if((0,J._)`${Je.default.vErrors} === null`,()=>e.assign(Je.default.vErrors,(0,J._)`[${r}]`),(0,J._)`${Je.default.vErrors}.push(${r})`),e.code((0,J._)`${Je.default.errors}++`)}function kp(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,J._)`new ${e.ValidationError}(${t})`):(r.assign((0,J._)`${n}.errors`,t),r.return(!1))}var Ar={keyword:new J.Name("keyword"),schemaPath:new J.Name("schemaPath"),params:new J.Name("params"),propertyName:new J.Name("propertyName"),message:new J.Name("message"),schema:new J.Name("schema"),parentSchema:new J.Name("parentSchema")};function _p(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,J._)`{}`:Pw(e,t,r)}function Pw(e,t,r={}){let{gen:n,it:i}=e,o=[Nw(i,r),Ow(e,r)];return Sw(e,t,o),n.object(...o)}function Nw({errorPath:e},{instancePath:t}){let r=t?(0,J.str)`${e}${(0,wo.getErrorPath)(t,wo.Type.Str)}`:e;return[Je.default.instancePath,(0,J.strConcat)(Je.default.instancePath,r)]}function Ow({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,J.str)`${t}/${e}`;return r&&(i=(0,J.str)`${i}${(0,wo.getErrorPath)(r,wo.Type.Str)}`),[Ar.schemaPath,i]}function Sw(e,{params:t,message:r},n){let{keyword:i,data:o,schemaValue:a,it:s}=e,{opts:c,propertyName:d,topSchemaRef:l,schemaPath:p}=s;n.push([Ar.keyword,i],[Ar.params,typeof t=="function"?t(e):t||(0,J._)`{}`]),c.messages&&n.push([Ar.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([Ar.schema,a],[Ar.parentSchema,(0,J._)`${l}${p}`],[Je.default.data,o]),d&&n.push([Ar.propertyName,d])}});var Rp=E(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.boolOrEmptySchema=sn.topBoolOrEmptySchema=void 0;var Dw=Yn(),jw=x(),Cw=st(),$w={message:"boolean schema is false"};function Tw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Ap(e,!1):typeof r=="object"&&r.$async===!0?t.return(Cw.default.data):(t.assign((0,jw._)`${n}.errors`,null),t.return(!0))}sn.topBoolOrEmptySchema=Tw;function Lw(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Ap(e)):r.var(t,!0)}sn.boolOrEmptySchema=Lw;function Ap(e,t){let{gen:r,data:n}=e,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,Dw.reportError)(i,$w,void 0,t)}});var Ls=E(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.getRules=cn.isJSONType=void 0;var xw=["string","number","integer","boolean","null","object","array"],Vw=new Set(xw);function Mw(e){return typeof e=="string"&&Vw.has(e)}cn.isJSONType=Mw;function Fw(){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:{}}}cn.getRules=Fw});var xs=E(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.shouldUseRule=Qt.shouldUseGroup=Qt.schemaHasRulesForType=void 0;function Uw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Ep(e,n)}Qt.schemaHasRulesForType=Uw;function Ep(e,t){return t.rules.some(r=>Pp(e,r))}Qt.shouldUseGroup=Ep;function Pp(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))}Qt.shouldUseRule=Pp});var Hn=E(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.reportTypeError=Fe.checkDataTypes=Fe.checkDataType=Fe.coerceAndCheckDataType=Fe.getJSONTypes=Fe.getSchemaTypes=Fe.DataType=void 0;var qw=Ls(),Bw=xs(),zw=Yn(),V=x(),Np=q(),ln;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ln||(Fe.DataType=ln={}));function Gw(e){let t=Op(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}Fe.getSchemaTypes=Gw;function Op(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(qw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Fe.getJSONTypes=Op;function Jw(e,t){let{gen:r,data:n,opts:i}=e,o=Ww(t,i.coerceTypes),a=t.length>0&&!(o.length===0&&t.length===1&&(0,Bw.schemaHasRulesForType)(e,t[0]));if(a){let s=Ms(t,n,i.strictNumbers,ln.Wrong);r.if(s,()=>{o.length?Kw(e,t,o):Fs(e)})}return a}Fe.coerceAndCheckDataType=Jw;var Sp=new Set(["string","number","integer","boolean","null"]);function Ww(e,t){return t?e.filter(r=>Sp.has(r)||t==="array"&&r==="array"):[]}function Kw(e,t,r){let{gen:n,data:i,opts:o}=e,a=n.let("dataType",(0,V._)`typeof ${i}`),s=n.let("coerced",(0,V._)`undefined`);o.coerceTypes==="array"&&n.if((0,V._)`${a} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,V._)`${i}[0]`).assign(a,(0,V._)`typeof ${i}`).if(Ms(t,i,o.strictNumbers),()=>n.assign(s,i))),n.if((0,V._)`${s} !== undefined`);for(let d of r)(Sp.has(d)||d==="array"&&o.coerceTypes==="array")&&c(d);n.else(),Fs(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(i,s),Yw(e,s)});function c(d){switch(d){case"string":n.elseIf((0,V._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,V._)`"" + ${i}`).elseIf((0,V._)`${i} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${a} == "boolean" || ${i} === null
3
3
  || (${a} == "string" && ${i} && ${i} == +${i})`).assign(s,(0,V._)`+${i}`);return;case"integer":n.elseIf((0,V._)`${a} === "boolean" || ${i} === null
4
4
  || (${a} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(s,(0,V._)`+${i}`);return;case"boolean":n.elseIf((0,V._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(s,!1).elseIf((0,V._)`${i} === "true" || ${i} === 1`).assign(s,!0);return;case"null":n.elseIf((0,V._)`${i} === "" || ${i} === 0 || ${i} === false`),n.assign(s,null);return;case"array":n.elseIf((0,V._)`${a} === "string" || ${a} === "number"
5
- || ${a} === "boolean" || ${i} === null`).assign(s,(0,V._)`[${i}]`)}}}function Ww({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function xs(e,t,r,n=ln.Correct){let i=n===ln.Correct?V.operators.EQ:V.operators.NEQ,o;switch(e){case"null":return(0,V._)`${t} ${i} null`;case"array":o=(0,V._)`Array.isArray(${t})`;break;case"object":o=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=a((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=a();break;default:return(0,V._)`typeof ${t} ${i} ${e}`}return n===ln.Correct?o:(0,V.not)(o);function a(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Me.checkDataType=xs;function Vs(e,t,r,n){if(e.length===1)return xs(e[0],t,r,n);let i,o=(0,Ep.toHash)(e);if(o.array&&o.object){let a=(0,V._)`typeof ${t} != "object"`;i=o.null?a:(0,V._)`!${t} || ${a}`,delete o.null,delete o.array,delete o.object}else i=V.nil;o.number&&delete o.integer;for(let a in o)i=(0,V.and)(i,xs(a,t,r,n));return i}Me.checkDataTypes=Vs;var Kw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function Ms(e){let t=Yw(e);(0,qw.reportError)(t,Kw)}Me.reportTypeError=Ms;function Yw(e){let{gen:t,data:r,schema:n}=e,i=(0,Ep.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var Sp=E(ho=>{"use strict";Object.defineProperty(ho,"__esModule",{value:!0});ho.assignDefaults=void 0;var dn=x(),Hw=q();function Xw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)Op(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,o)=>Op(e,o,i.default))}ho.assignDefaults=Xw;function Op(e,t,r){let{gen:n,compositeRule:i,data:o,opts:a}=e;if(r===void 0)return;let s=(0,dn._)`${o}${(0,dn.getProperty)(t)}`;if(i){(0,Hw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,dn._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,dn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,dn._)`${s} = ${(0,dn.stringify)(r)}`)}});var ct=E(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});ne.validateUnion=ne.validateArray=ne.usePattern=ne.callValidateCode=ne.schemaProperties=ne.allSchemaProperties=ne.noPropertyInData=ne.propertyInData=ne.isOwnProperty=ne.hasPropFunc=ne.reportMissingProp=ne.checkMissingProp=ne.checkReportMissingProp=void 0;var fe=x(),Fs=q(),Qt=st(),Zw=q();function Qw(e,t){let{gen:r,data:n,it:i}=e;r.if(qs(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,fe._)`${t}`},!0),e.error()})}ne.checkReportMissingProp=Qw;function eI({gen:e,data:t,it:{opts:r}},n,i){return(0,fe.or)(...n.map(o=>(0,fe.and)(qs(e,t,o,r.ownProperties),(0,fe._)`${i} = ${o}`)))}ne.checkMissingProp=eI;function tI(e,t){e.setParams({missingProperty:t},!0),e.error()}ne.reportMissingProp=tI;function Dp(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,fe._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=Dp;function Us(e,t,r){return(0,fe._)`${Dp(e)}.call(${t}, ${r})`}ne.isOwnProperty=Us;function rI(e,t,r,n){let i=(0,fe._)`${t}${(0,fe.getProperty)(r)} !== undefined`;return n?(0,fe._)`${i} && ${Us(e,t,r)}`:i}ne.propertyInData=rI;function qs(e,t,r,n){let i=(0,fe._)`${t}${(0,fe.getProperty)(r)} === undefined`;return n?(0,fe.or)(i,(0,fe.not)(Us(e,t,r))):i}ne.noPropertyInData=qs;function jp(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ne.allSchemaProperties=jp;function nI(e,t){return jp(t).filter(r=>!(0,Fs.alwaysValidSchema)(e,t[r]))}ne.schemaProperties=nI;function iI({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:o},it:a},s,c,l){let d=l?(0,fe._)`${e}, ${t}, ${n}${i}`:t,p=[[Qt.default.instancePath,(0,fe.strConcat)(Qt.default.instancePath,o)],[Qt.default.parentData,a.parentData],[Qt.default.parentDataProperty,a.parentDataProperty],[Qt.default.rootData,Qt.default.rootData]];a.opts.dynamicRef&&p.push([Qt.default.dynamicAnchors,Qt.default.dynamicAnchors]);let f=(0,fe._)`${d}, ${r.object(...p)}`;return c!==fe.nil?(0,fe._)`${s}.call(${c}, ${f})`:(0,fe._)`${s}(${f})`}ne.callValidateCode=iI;var oI=(0,fe._)`new RegExp`;function aI({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:i}=t.code,o=i(r,n);return e.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,fe._)`${i.code==="new RegExp"?oI:(0,Zw.useFunc)(e,i)}(${r}, ${n})`})}ne.usePattern=aI;function sI(e){let{gen:t,data:r,keyword:n,it:i}=e,o=t.name("valid");if(i.allErrors){let s=t.let("valid",!0);return a(()=>t.assign(s,!1)),s}return t.var(o,!0),a(()=>t.break()),o;function a(s){let c=t.const("len",(0,fe._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:Fs.Type.Num},o),t.if((0,fe.not)(o),s)})}}ne.validateArray=sI;function cI(e){let{gen:t,schema:r,keyword:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Fs.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let a=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(a,(0,fe._)`${a} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,fe.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}ne.validateUnion=cI});var Tp=E(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.validateKeywordUsage=St.validSchemaType=St.funcKeywordCode=St.macroKeywordCode=void 0;var ze=x(),Ar=st(),lI=ct(),dI=Yn();function pI(e,t){let{gen:r,keyword:n,schema:i,parentSchema:o,it:a}=e,s=t.macro.call(a.self,i,o,a),c=$p(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:ze.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}St.macroKeywordCode=pI;function uI(e,t){var r;let{gen:n,keyword:i,schema:o,parentSchema:a,$data:s,it:c}=e;mI(c,t);let l=!s&&t.compile?t.compile.call(c.self,o,a,c):t.validate,d=$p(n,i,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&&Cp(e),y(()=>e.error());else{let w=t.async?u():m();t.modifying&&Cp(e),y(()=>fI(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,ze._)`await `),A=>n.assign(p,!1).if((0,ze._)`${A} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,ze._)`${A}.errors`),()=>n.throw(A))),w}function m(){let w=(0,ze._)`${d}.errors`;return n.assign(w,null),g(ze.nil),w}function g(w=t.async?(0,ze._)`await `:ze.nil){let A=c.opts.passContext?Ar.default.this:Ar.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,ze._)`${w}${(0,lI.callValidateCode)(e,d,A,b)}`,t.modifying)}function y(w){var A;n.if((0,ze.not)((A=t.valid)!==null&&A!==void 0?A:p),w)}}St.funcKeywordCode=uI;function Cp(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,ze._)`${n.parentData}[${n.parentDataProperty}]`))}function fI(e,t){let{gen:r}=e;r.if((0,ze._)`Array.isArray(${t})`,()=>{r.assign(Ar.default.vErrors,(0,ze._)`${Ar.default.vErrors} === null ? ${t} : ${Ar.default.vErrors}.concat(${t})`).assign(Ar.default.errors,(0,ze._)`${Ar.default.vErrors}.length`),(0,dI.extendErrors)(e)},()=>e.error())}function mI({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function $p(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,ze.stringify)(r)})}function gI(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")}St.validSchemaType=gI;function yI({schema:e,opts:t,self:r,errSchemaPath:n},i,o){if(Array.isArray(i.keyword)?!i.keyword.includes(o):i.keyword!==o)throw new Error("ajv implementation error");let a=i.dependencies;if(a?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${o}: ${a.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[o])){let c=`keyword "${o}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}St.validateKeywordUsage=yI});var xp=E(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.extendSubschemaMode=er.extendSubschemaData=er.getSubschema=void 0;var Dt=x(),Lp=q();function hI(e,{keyword:t,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:o,topSchemaRef:a}){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,Dt._)`${e.schemaPath}${(0,Dt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Dt._)`${e.schemaPath}${(0,Dt.getProperty)(t)}${(0,Dt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Lp.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||o===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:a,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}er.getSubschema=hI;function wI(e,t,{dataProp:r,dataPropType:n,data:i,dataTypes:o,propertyName:a}){if(i!==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,Dt._)`${t.data}${(0,Dt.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Dt.str)`${l}${(0,Lp.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,Dt._)`${r}`,e.dataPathArr=[...d,e.parentDataProperty]}if(i!==void 0){let l=i instanceof Dt.Name?i:s.let("data",i,!0);c(l),a!==void 0&&(e.propertyName=a)}o&&(e.dataTypes=o);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]}}er.extendSubschemaData=wI;function II(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:o}){n!==void 0&&(e.compositeRule=n),i!==void 0&&(e.createErrors=i),o!==void 0&&(e.allErrors=o),e.jtdDiscriminator=t,e.jtdMetadata=r}er.extendSubschemaMode=II});var Bs=E((NO,Vp)=>{"use strict";Vp.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,i,o;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!e(t[i],r[i]))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(o=Object.keys(t),n=o.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[i]))return!1;for(i=n;i--!==0;){var a=o[i];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}});var Fp=E((OO,Mp)=>{"use strict";var tr=Mp.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};wo(t,n,i,e,"",e)};tr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};tr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};tr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};tr.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 wo(e,t,r,n,i,o,a,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,o,a,s,c,l);for(var d in n){var p=n[d];if(Array.isArray(p)){if(d in tr.arrayKeywords)for(var f=0;f<p.length;f++)wo(e,t,r,p[f],i+"/"+d+"/"+f,o,i,d,n,f)}else if(d in tr.propsKeywords){if(p&&typeof p=="object")for(var u in p)wo(e,t,r,p[u],i+"/"+d+"/"+vI(u),o,i,d,n,u)}else(d in tr.keywords||e.allKeys&&!(d in tr.skipKeywords))&&wo(e,t,r,p,i+"/"+d,o,i,d,n)}r(n,i,o,a,s,c,l)}}function vI(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Xn=E(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.getSchemaRefs=He.resolveUrl=He.normalizeId=He._getFullPath=He.getFullPath=He.inlineRef=void 0;var bI=q(),kI=Bs(),_I=Fp(),AI=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function RI(e,t=!0){return typeof e=="boolean"?!0:t===!0?!zs(e):t?Up(e)<=t:!1}He.inlineRef=RI;var EI=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function zs(e){for(let t in e){if(EI.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(zs)||typeof r=="object"&&zs(r))return!0}return!1}function Up(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!AI.has(r)&&(typeof e[r]=="object"&&(0,bI.eachItem)(e[r],n=>t+=Up(n)),t===1/0))return 1/0}return t}function qp(e,t="",r){r!==!1&&(t=pn(t));let n=e.parse(t);return Bp(e,n)}He.getFullPath=qp;function Bp(e,t){return e.serialize(t).split("#")[0]+"#"}He._getFullPath=Bp;var PI=/#\/?$/;function pn(e){return e?e.replace(PI,""):""}He.normalizeId=pn;function NI(e,t,r){return r=pn(r),e.resolve(t,r)}He.resolveUrl=NI;var OI=/^[a-z_][-a-z0-9._]*$/i;function SI(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=pn(e[r]||t),o={"":i},a=qp(n,i,!1),s={},c=new Set;return _I(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=a+f,y=o[m];typeof p[r]=="string"&&(y=w.call(this,p[r])),A.call(this,p.$anchor),A.call(this,p.$dynamicAnchor),o[f]=y;function w(b){let R=this.opts.uriResolver.resolve;if(b=pn(y?R(y,b):b),c.has(b))throw d(b);c.add(b);let I=this.refs[b];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(p,I.schema,b):b!==pn(g)&&(b[0]==="#"?(l(p,s[b],b),s[b]=p):this.refs[b]=g),b}function A(b){if(typeof b=="string"){if(!OI.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function l(p,f,u){if(f!==void 0&&!kI(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}He.getSchemaRefs=SI});var ei=E(rr=>{"use strict";Object.defineProperty(rr,"__esModule",{value:!0});rr.getData=rr.KeywordCxt=rr.validateFunctionCode=void 0;var Kp=_p(),zp=Hn(),Js=Ls(),Io=Hn(),DI=Sp(),Qn=Tp(),Gs=xp(),O=x(),L=st(),jI=Xn(),Mt=q(),Zn=Yn();function CI(e){if(Xp(e)&&(Zp(e),Hp(e))){LI(e);return}Yp(e,()=>(0,Kp.topBoolOrEmptySchema)(e))}rr.validateFunctionCode=CI;function Yp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:i},o){i.code.es5?e.func(t,(0,O._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${Gp(r,i)}`),TI(e,i),e.code(o)}):e.func(t,(0,O._)`${L.default.data}, ${$I(i)}`,n.$async,()=>e.code(Gp(r,i)).code(o))}function $I(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 TI(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 LI(e){let{schema:t,opts:r,gen:n}=e;Yp(e,()=>{r.$comment&&t.$comment&&eu(e),UI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&xI(e),Qp(e),zI(e)})}function xI(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 Gp(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 VI(e,t){if(Xp(e)&&(Zp(e),Hp(e))){MI(e,t);return}(0,Kp.boolOrEmptySchema)(e,t)}function Hp({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 Xp(e){return typeof e.schema!="boolean"}function MI(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&eu(e),qI(e),BI(e);let o=n.const("_errs",L.default.errors);Qp(e,o),n.var(t,(0,O._)`${o} === ${L.default.errors}`)}function Zp(e){(0,Mt.checkUnknownRules)(e),FI(e)}function Qp(e,t){if(e.opts.jtd)return Jp(e,[],!1,t);let r=(0,zp.getSchemaTypes)(e.schema),n=(0,zp.coerceAndCheckDataType)(e,r);Jp(e,r,!n,t)}function FI(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Mt.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function UI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Mt.checkStrictMode)(e,"default is ignored in the schema root")}function qI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,jI.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function BI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function eu({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:i}){let o=r.$comment;if(i.$comment===!0)e.code((0,O._)`${L.default.self}.logger.log(${o})`);else if(typeof i.$comment=="function"){let a=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${L.default.self}.opts.$comment(${o}, ${a}, ${s}.schema)`)}}function zI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:i,opts:o}=e;r.$async?t.if((0,O._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,O._)`new ${i}(${L.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,L.default.vErrors),o.unevaluated&&GI(e),t.return((0,O._)`${L.default.errors} === 0`))}function GI({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 Jp(e,t,r,n){let{gen:i,schema:o,data:a,allErrors:s,opts:c,self:l}=e,{RULES:d}=l;if(o.$ref&&(c.ignoreKeywordsWithRef||!(0,Mt.schemaHasRulesButRef)(o,d))){i.block(()=>ru(e,"$ref",d.all.$ref.definition));return}c.jtd||JI(e,t),i.block(()=>{for(let f of d.rules)p(f);p(d.post)});function p(f){(0,Js.shouldUseGroup)(o,f)&&(f.type?(i.if((0,Io.checkDataType)(f.type,a,c.strictNumbers)),Wp(e,f),t.length===1&&t[0]===f.type&&r&&(i.else(),(0,Io.reportTypeError)(e)),i.endIf()):Wp(e,f),s||i.if((0,O._)`${L.default.errors} === ${n||0}`))}}function Wp(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,DI.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,Js.shouldUseRule)(n,o)&&ru(e,o.keyword,o.definition,t.type)})}function JI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(WI(e,t),e.opts.allowUnionTypes||KI(e,t),YI(e,e.dataTypes))}function WI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{tu(e.dataTypes,r)||Ws(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),XI(e,t)}}function KI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ws(e,"use allowUnionTypes to allow union type keyword")}function YI(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,Js.shouldUseRule)(e.schema,i)){let{type:o}=i.definition;o.length&&!o.some(a=>HI(t,a))&&Ws(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function HI(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function tu(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function XI(e,t){let r=[];for(let n of e.dataTypes)tu(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Ws(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Mt.checkStrictMode)(e,t,e.opts.strictTypes)}var vo=class{constructor(t,r,n){if((0,Qn.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,Mt.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",nu(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Qn.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?Zn.reportExtraError:Zn.reportError)(this,this.def.error,r)}$dataError(){(0,Zn.reportError)(this,this.def.$dataError||Zn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Zn.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:i,schemaType:o,def:a}=this;n.if((0,O.or)((0,O._)`${i} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(o.length||a.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:i,it:o}=this;return(0,O.or)(a(),s());function a(){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,Io.checkDataTypes)(c,r,o.opts.strictNumbers,Io.DataType.Wrong)}`}return O.nil}function s(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,Gs.getSubschema)(this.it,t);(0,Gs.extendSubschemaData)(n,this.it,t),(0,Gs.extendSubschemaMode)(n,t);let i={...this.it,...n,items:void 0,props:void 0};return VI(i,r),i}mergeEvaluated(t,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Mt.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Mt.mergeEvaluated.items(i,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};rr.KeywordCxt=vo;function ru(e,t,r,n){let i=new vo(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,Qn.funcKeywordCode)(i,r):"macro"in r?(0,Qn.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,Qn.funcKeywordCode)(i,r)}var ZI=/^\/(?:[^~]|~0|~1)*$/,QI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function nu(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,o;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!ZI.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,o=L.default.rootData}else{let l=QI.exec(e);if(!l)throw new Error(`Invalid JSON-pointer: ${e}`);let d=+l[1];if(i=l[2],i==="#"){if(d>=t)throw new Error(c("property/index",d));return n[t-d]}if(d>t)throw new Error(c("data",d));if(o=r[t-d],!i)return o}let a=o,s=i.split("/");for(let l of s)l&&(o=(0,O._)`${o}${(0,O.getProperty)((0,Mt.unescapeJsonPointer)(l))}`,a=(0,O._)`${a} && ${o}`);return a;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}rr.getData=nu});var bo=E(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var Ks=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Ys.default=Ks});var ti=E(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var Hs=Xn(),Xs=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Hs.resolveUrl)(t,r,n),this.missingSchema=(0,Hs.normalizeId)((0,Hs.getFullPath)(t,this.missingRef))}};Zs.default=Xs});var ri=E(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.resolveSchema=lt.getCompilingSchema=lt.resolveRef=lt.compileSchema=lt.SchemaEnv=void 0;var It=x(),ev=bo(),Rr=st(),vt=Xn(),iu=q(),tv=ei(),un=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,vt.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};lt.SchemaEnv=un;function ec(e){let t=ou.call(this,e);if(t)return t;let r=(0,vt.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:o}=this.opts,a=new It.CodeGen(this.scope,{es5:n,lines:i,ownProperties:o}),s;e.$async&&(s=a.scopeValue("Error",{ref:ev.default,code:(0,It._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let l={gen:a,allErrors:this.opts.allErrors,data:Rr.default.data,parentData:Rr.default.parentData,parentDataProperty:Rr.default.parentDataProperty,dataNames:[Rr.default.data],dataPathArr:[It.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,It.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:It.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,It._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,tv.validateFunctionCode)(l),a.optimize(this.opts.code.optimize);let p=a.toString();d=`${a.scopeRefs(Rr.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${Rr.default.self}`,`${Rr.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:a._values}),this.opts.unevaluated){let{props:m,items:g}=l;u.evaluated={props:m instanceof It.Name?void 0:m,items:g instanceof It.Name?void 0:g,dynamicProps:m instanceof It.Name,dynamicItems:g instanceof It.Name},u.source&&(u.source.evaluated=(0,It.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)}}lt.compileSchema=ec;function rv(e,t,r){var n;r=(0,vt.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let o=ov.call(this,e,r);if(o===void 0){let a=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;a&&(o=new un({schema:a,schemaId:s,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=nv.call(this,o)}lt.resolveRef=rv;function nv(e){return(0,vt.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:ec.call(this,e)}function ou(e){for(let t of this._compilations)if(iv(t,e))return t}lt.getCompilingSchema=ou;function iv(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function ov(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||ko.call(this,e,t)}function ko(e,t){let r=this.opts.uriResolver.parse(t),n=(0,vt._getFullPath)(this.opts.uriResolver,r),i=(0,vt.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return Qs.call(this,r,e);let o=(0,vt.normalizeId)(n),a=this.refs[o]||this.schemas[o];if(typeof a=="string"){let s=ko.call(this,e,a);return typeof s?.schema!="object"?void 0:Qs.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||ec.call(this,a),o===(0,vt.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,l=s[c];return l&&(i=(0,vt.resolveUrl)(this.opts.uriResolver,i,l)),new un({schema:s,schemaId:c,root:e,baseId:i})}return Qs.call(this,r,a)}}lt.resolveSchema=ko;var av=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Qs(e,{baseId:t,schema:r,root:n}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,iu.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!av.has(s)&&l&&(t=(0,vt.resolveUrl)(this.opts.uriResolver,t,l))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,iu.schemaHasRulesButRef)(r,this.RULES)){let s=(0,vt.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=ko.call(this,n,s)}let{schemaId:a}=this.opts;if(o=o||new un({schema:r,schemaId:a,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var au=E((TO,sv)=>{sv.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 nc=E((LO,uu)=>{"use strict";var cv=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),cu=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),tc=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),lu=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),lv=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function rc(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 dv=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function su(e){return e.length=0,!0}function pv(e,t,r){if(e.length){let n=rc(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function uv(e){let t=0,r={error:!1,address:"",zone:""},n=[],i=[],o=!1,a=!1,s=pv;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(o===!0&&(a=!0),!s(i,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(o=!0),n.push(":");continue}else if(l==="%"){if(!s(i,n,r))break;s=su}else{i.push(l);continue}}return i.length&&(s===su?r.zone=i.join(""):a?n.push(i.join("")):n.push(rc(i))),r.address=n.join(""),r}function du(e){if(fv(e,":")<2)return{host:e,isIPV6:!1};let t=uv(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 fv(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function mv(e){let t=e,r=[],n=-1,i=0;for(;i=t.length;){if(i===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.push(t);break}}else if(i===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(i===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 gv={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},yv=/[@/?#:]/g,hv=/[@/?#]/g;function pu(e,t){let r=t?hv:yv;return r.lastIndex=0,e.replace(r,n=>gv[n])}function wv(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 i=e.slice(n+1,n+3);if(tc(i)){let o=i.toUpperCase(),a=String.fromCharCode(parseInt(o,16));t&&lu(a)?r+=a:r+="%"+o,n+=2;continue}}r+=e[n]}return r}function Iv(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(tc(n)){let i=n.toUpperCase(),o=String.fromCharCode(parseInt(i,16));o!=="."&&lu(o)?t+=o:t+="%"+i,r+=2;continue}}lv(e[r])?t+=e[r]:t+=escape(e[r])}return t}function vv(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(tc(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function bv(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!cu(r)){let n=du(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=pu(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}uu.exports={nonSimpleDomain:dv,recomposeAuthority:bv,reescapeHostDelimiters:pu,normalizePercentEncoding:wv,normalizePathEncoding:Iv,escapePreservingEscapes:vv,removeDotSegments:mv,isIPv4:cu,isUUID:cv,normalizeIPv6:du,stringArrayToHexStripped:rc}});var hu=E((xO,yu)=>{"use strict";var{isUUID:kv}=nc(),_v=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Av=["http","https","ws","wss","urn","urn:uuid"];function Rv(e){return Av.indexOf(e)!==-1}function ic(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 fu(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function mu(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 Ev(e){return e.secure=ic(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Pv(e){if((e.port===(ic(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 Nv(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(_v);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let i=`${n}:${t.nid||e.nid}`,o=oc(i);e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Ov(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(),i=`${r}:${t.nid||n}`,o=oc(i);o&&(e=o.serialize(e,t));let a=e,s=e.nss;return a.path=`${n||t.nid}:${s}`,t.skipEscape=!0,a}function Sv(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!kv(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Dv(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var gu={scheme:"http",domainHost:!0,parse:fu,serialize:mu},jv={scheme:"https",domainHost:gu.domainHost,parse:fu,serialize:mu},_o={scheme:"ws",domainHost:!0,parse:Ev,serialize:Pv},Cv={scheme:"wss",domainHost:_o.domainHost,parse:_o.parse,serialize:_o.serialize},$v={scheme:"urn",parse:Nv,serialize:Ov,skipNormalize:!0},Tv={scheme:"urn:uuid",parse:Sv,serialize:Dv,skipNormalize:!0},Ao={http:gu,https:jv,ws:_o,wss:Cv,urn:$v,"urn:uuid":Tv};Object.setPrototypeOf(Ao,null);function oc(e){return e&&(Ao[e]||Ao[e.toLowerCase()])||void 0}yu.exports={wsIsSecure:ic,SCHEMES:Ao,isValidSchemeName:Rv,getSchemeHandler:oc}});var ku=E((VO,Po)=>{"use strict";var{normalizeIPv6:Lv,removeDotSegments:ni,recomposeAuthority:xv,normalizePercentEncoding:Vv,normalizePathEncoding:Mv,escapePreservingEscapes:Fv,reescapeHostDelimiters:Uv,isIPv4:qv,nonSimpleDomain:Bv}=nc(),{SCHEMES:zv,getSchemeHandler:Iu}=hu();function Gv(e,t){return typeof e=="string"?e=Zv(e,t):typeof e=="object"&&(e=Eo(Er(e,t),t)),e}function Jv(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:o}=Ro(e,n),{parsed:a,malformedAuthorityOrPort:s}=Ro(t,n);if(o||s)throw new Error(i.error||a.error||"URI is malformed.");let c=vu(i,a,n,!0);return n.skipEscape=!0,Er(c,n)}function vu(e,t,r,n){let i={};return n||(e=Eo(Er(e,r),r),t=Eo(Er(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=ni(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=ni(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=ni(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=ni(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function Wv(e,t,r){let n=wu(e,r),i=wu(t,r);return n!==void 0&&i!==void 0&&n.toLowerCase()===i.toLowerCase()}function Er(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),i=[],o=Iu(n.scheme||r.scheme);o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Vv(r.path):(r.path=Fv(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let a=xv(r);if(a!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(a),r.path&&r.path[0]!=="/"&&i.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!o||!o.absolutePath)&&(s=ni(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),i.push(s)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var Kv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,Yv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,Hv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function Xv(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 Ro(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},i=!1,o=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let a=e.match(Yv);a!==null&&a[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",i=!0);let s=e.match(Hv);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.",i=!0):l.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",i=!0))}let c=e.match(Kv);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=Xv(n,c);if(l!==void 0&&(n.error=n.error||l,i=!0),n.host)if(qv(n.host)===!1){let f=Lv(n.host);n.host=f.host.toLowerCase(),o=f.isIPV6}else o=!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=Iu(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&o===!1&&Bv(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=Uv(unescape(n.host),o))),n.path&&(n.path=Mv(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:i}}function Eo(e,t){return Ro(e,t).parsed}function Zv(e,t){return bu(e,t).normalized}function bu(e,t){let{parsed:r,malformedAuthorityOrPort:n}=Ro(e,t);return{normalized:n?e:Er(r,t),malformedAuthorityOrPort:n}}function wu(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=bu(e,t);return n?void 0:r}if(typeof e=="object")return Er(e,t)}var ac={SCHEMES:zv,normalize:Gv,resolve:Jv,resolveComponent:vu,equal:Wv,serialize:Er,parse:Eo};Po.exports=ac;Po.exports.default=ac;Po.exports.fastUri=ac});var Au=E(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});var _u=ku();_u.code='require("ajv/dist/runtime/uri").default';sc.default=_u});var ju=E(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.CodeGen=Se.Name=Se.nil=Se.stringify=Se.str=Se._=Se.KeywordCxt=void 0;var Qv=ei();Object.defineProperty(Se,"KeywordCxt",{enumerable:!0,get:function(){return Qv.KeywordCxt}});var fn=x();Object.defineProperty(Se,"_",{enumerable:!0,get:function(){return fn._}});Object.defineProperty(Se,"str",{enumerable:!0,get:function(){return fn.str}});Object.defineProperty(Se,"stringify",{enumerable:!0,get:function(){return fn.stringify}});Object.defineProperty(Se,"nil",{enumerable:!0,get:function(){return fn.nil}});Object.defineProperty(Se,"Name",{enumerable:!0,get:function(){return fn.Name}});Object.defineProperty(Se,"CodeGen",{enumerable:!0,get:function(){return fn.CodeGen}});var eb=bo(),Ou=ti(),tb=Ts(),ii=ri(),rb=x(),oi=Xn(),No=Hn(),lc=q(),Ru=au(),nb=Au(),Su=(e,t)=>new RegExp(e,t);Su.code="new RegExp";var ib=["removeAdditional","useDefaults","coerceTypes"],ob=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ab={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."},sb={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Eu=200;function cb(e){var t,r,n,i,o,a,s,c,l,d,p,f,u,m,g,y,w,A,b,R,I,_,S,T,ue;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,Z=P===!0||P===void 0?1:P||0,se=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:Su,ot=(i=e.uriResolver)!==null&&i!==void 0?i:nb.default;return{strictSchema:(a=(o=e.strictSchema)!==null&&o!==void 0?o:$)!==null&&a!==void 0?a:!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:Z,regExp:se}:{optimize:Z,regExp:se},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Eu,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:Eu,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(A=e.messages)!==null&&A!==void 0?A:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(R=e.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(_=e.validateSchema)!==null&&_!==void 0?_:!0,validateFormats:(S=e.validateFormats)!==null&&S!==void 0?S:!0,unicodeRegExp:(T=e.unicodeRegExp)!==null&&T!==void 0?T:!0,int32range:(ue=e.int32range)!==null&&ue!==void 0?ue:!0,uriResolver:ot}}var ai=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,...cb(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new rb.ValueScope({scope:{},prefixes:ob,es5:r,lines:n}),this.logger=mb(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,tb.getRules)(),Pu.call(this,ab,t,"NOT SUPPORTED"),Pu.call(this,sb,t,"DEPRECATED","warn"),this._metaOpts=ub.call(this),t.formats&&db.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&pb.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),lb.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=Ru;n==="id"&&(i={...Ru},i.id=i.$id,delete i.$id),r&&t&&this.addMetaSchema(i,i[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 i=n(r);return"$async"in n||(this.errors=n.errors),i}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 i.call(this,t,r);async function i(d,p){await o.call(this,d.$schema);let f=this._addSchema(d,p);return f.validate||a.call(this,f)}async function o(d){d&&!this.getSchema(d)&&await i.call(this,{$ref:d},!0)}async function a(d){try{return this._compileSchemaEnv(d)}catch(p){if(!(p instanceof Ou.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),a.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 o.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,i=this.opts.validateSchema){if(Array.isArray(t)){for(let a of t)this.addSchema(a,void 0,n,i);return this}let o;if(typeof t=="object"){let{schemaId:a}=this.opts;if(o=t[a],o!==void 0&&typeof o!="string")throw new Error(`schema ${a} must be string`)}return r=(0,oi.normalizeId)(r||o),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,i,!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 i=this.validate(n,t);if(!i&&r){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return i}getSchema(t){let r;for(;typeof(r=Nu.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new ii.SchemaEnv({schema:{},schemaId:n});if(r=ii.resolveSchema.call(this,i,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=Nu.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,oi.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(yb.call(this,n,r),!r)return(0,lc.eachItem)(n,o=>cc.call(this,o)),this;wb.call(this,r);let i={...r,type:(0,No.getJSONTypes)(r.type),schemaType:(0,No.getJSONTypes)(r.schemaType)};return(0,lc.eachItem)(n,i.type.length===0?o=>cc.call(this,o,i):o=>i.type.forEach(a=>cc.call(this,o,i,a))),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 i=n.rules.findIndex(o=>o.keyword===t);i>=0&&n.rules.splice(i,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(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,o)=>i+r+o)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of r){let o=i.split("/").slice(1),a=t;for(let s of o)a=a[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:l}=c.definition,d=a[s];l&&d&&(a[s]=Du(d))}}return t}_removeAllSchemas(t,r){for(let n in t){let i=t[n];(!r||r.test(n))&&(typeof i=="string"?delete t[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[n]))}}_addSchema(t,r,n,i=this.opts.validateSchema,o=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof t=="object")a=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,oi.normalizeId)(a||n);let l=oi.getSchemaRefs.call(this,t,n);return c=new ii.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&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):ii.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{ii.compileSchema.call(this,t)}finally{this.opts=r}}};ai.ValidationError=eb.default;ai.MissingRefError=Ou.default;Se.default=ai;function Pu(e,t,r,n="error"){for(let i in e){let o=i;o in t&&this.logger[n](`${r}: option ${i}. ${e[o]}`)}}function Nu(e){return e=(0,oi.normalizeId)(e),this.schemas[e]||this.refs[e]}function lb(){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 db(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function pb(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 ub(){let e={...this.opts};for(let t of ib)delete e[t];return e}var fb={log(){},warn(){},error(){}};function mb(e){if(e===!1)return fb;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 gb=/^[a-z_$][a-z0-9_$:-]*$/i;function yb(e,t){let{RULES:r}=this;if((0,lc.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!gb.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 cc(e,t,r){var n;let i=t?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,a=i?o.post:o.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},o.rules.push(a)),o.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,No.getJSONTypes)(t.type),schemaType:(0,No.getJSONTypes)(t.schemaType)}};t.before?hb.call(this,a,s,t.before):a.rules.push(s),o.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function hb(e,t,r){let n=e.rules.findIndex(i=>i.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function wb(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Du(t)),e.validateSchema=this.compile(t,!0))}var Ib={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Du(e){return{anyOf:[e,Ib]}}});var Cu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var vb={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};dc.default=vb});var Do=E(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.callRef=Pr.getValidate=void 0;var bb=ti(),$u=ct(),Xe=x(),mn=st(),Tu=ri(),Oo=q(),kb={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:i,schemaEnv:o,validateName:a,opts:s,self:c}=n,{root:l}=o;if((r==="#"||r==="#/")&&i===l.baseId)return p();let d=Tu.resolveRef.call(c,l,i,r);if(d===void 0)throw new bb.default(n.opts.uriResolver,i,r);if(d instanceof Tu.SchemaEnv)return f(d);return u(d);function p(){if(o===l)return So(e,a,o,o.$async);let m=t.scopeValue("root",{ref:l});return So(e,(0,Xe._)`${m}.validate`,l,l.$async)}function f(m){let g=Lu(e,m);So(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,Xe.stringify)(m)}:{ref:m}),y=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:Xe.nil,topSchemaRef:g,errSchemaPath:r},y);e.mergeEvaluated(w),e.ok(y)}}};function Lu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Xe._)`${r.scopeValue("wrapper",{ref:t})}.validate`}Pr.getValidate=Lu;function So(e,t,r,n){let{gen:i,it:o}=e,{allErrors:a,schemaEnv:s,opts:c}=o,l=c.passContext?mn.default.this:Xe.nil;n?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0,Xe._)`await ${(0,$u.callValidateCode)(e,t,l)}`),u(t),a||i.assign(m,!0)},g=>{i.if((0,Xe._)`!(${g} instanceof ${o.ValidationError})`,()=>i.throw(g)),f(g),a||i.assign(m,!1)}),e.ok(m)}function p(){e.result((0,$u.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,Xe._)`${m}.errors`;i.assign(mn.default.vErrors,(0,Xe._)`${mn.default.vErrors} === null ? ${g} : ${mn.default.vErrors}.concat(${g})`),i.assign(mn.default.errors,(0,Xe._)`${mn.default.vErrors}.length`)}function u(m){var g;if(!o.opts.unevaluated)return;let y=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(o.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(o.props=Oo.mergeEvaluated.props(i,y.props,o.props));else{let w=i.var("props",(0,Xe._)`${m}.evaluated.props`);o.props=Oo.mergeEvaluated.props(i,w,o.props,Xe.Name)}if(o.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(o.items=Oo.mergeEvaluated.items(i,y.items,o.items));else{let w=i.var("items",(0,Xe._)`${m}.evaluated.items`);o.items=Oo.mergeEvaluated.items(i,w,o.items,Xe.Name)}}}Pr.callRef=So;Pr.default=kb});var xu=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var _b=Cu(),Ab=Do(),Rb=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",_b.default,Ab.default];pc.default=Rb});var Vu=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var jo=x(),nr=jo.operators,Co={maximum:{okStr:"<=",ok:nr.LTE,fail:nr.GT},minimum:{okStr:">=",ok:nr.GTE,fail:nr.LT},exclusiveMaximum:{okStr:"<",ok:nr.LT,fail:nr.GTE},exclusiveMinimum:{okStr:">",ok:nr.GT,fail:nr.LTE}},Eb={message:({keyword:e,schemaCode:t})=>(0,jo.str)`must be ${Co[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,jo._)`{comparison: ${Co[e].okStr}, limit: ${t}}`},Pb={keyword:Object.keys(Co),type:"number",schemaType:"number",$data:!0,error:Eb,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,jo._)`${r} ${Co[t].fail} ${n} || isNaN(${r})`)}};uc.default=Pb});var Mu=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var si=x(),Nb={message:({schemaCode:e})=>(0,si.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,si._)`{multipleOf: ${e}}`},Ob={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Nb,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,o=i.opts.multipleOfPrecision,a=t.let("res"),s=o?(0,si._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${o}`:(0,si._)`${a} !== parseInt(${a})`;e.fail$data((0,si._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};fc.default=Ob});var Uu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});function Fu(e){let t=e.length,r=0,n=0,i;for(;n<t;)r++,i=e.charCodeAt(n++),i>=55296&&i<=56319&&n<t&&(i=e.charCodeAt(n),(i&64512)===56320&&n++);return r}mc.default=Fu;Fu.code='require("ajv/dist/runtime/ucs2length").default'});var qu=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var Nr=x(),Sb=q(),Db=Uu(),jb={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Nr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Nr._)`{limit: ${e}}`},Cb={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:jb,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,o=t==="maxLength"?Nr.operators.GT:Nr.operators.LT,a=i.opts.unicode===!1?(0,Nr._)`${r}.length`:(0,Nr._)`${(0,Sb.useFunc)(e.gen,Db.default)}(${r})`;e.fail$data((0,Nr._)`${a} ${o} ${n}`)}};gc.default=Cb});var Bu=E(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var $b=ct(),Tb=q(),gn=x(),Lb={message:({schemaCode:e})=>(0,gn.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,gn._)`{pattern: ${e}}`},xb={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Lb,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:o,it:a}=e,s=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,l=c.code==="new RegExp"?(0,gn._)`new RegExp`:(0,Tb.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,gn._)`${l}(${o}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,gn._)`!${d}`)}else{let c=(0,$b.usePattern)(e,i);e.fail$data((0,gn._)`!${c}.test(${r})`)}}};yc.default=xb});var zu=E(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var ci=x(),Vb={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ci.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ci._)`{limit: ${e}}`},Mb={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Vb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?ci.operators.GT:ci.operators.LT;e.fail$data((0,ci._)`Object.keys(${r}).length ${i} ${n}`)}};hc.default=Mb});var Gu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var li=ct(),di=x(),Fb=q(),Ub={message:({params:{missingProperty:e}})=>(0,di.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,di._)`{missingProperty: ${e}}`},qb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Ub,code(e){let{gen:t,schema:r,schemaCode:n,data:i,$data:o,it:a}=e,{opts:s}=a;if(!o&&r.length===0)return;let c=r.length>=s.loopRequired;if(a.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 y=a.schemaEnv.baseId+a.errSchemaPath,w=`required property "${g}" is not defined at "${y}" (strictRequired)`;(0,Fb.checkStrictMode)(a,w,a.opts.strictRequired)}}function l(){if(c||o)e.block$data(di.nil,p);else for(let u of r)(0,li.checkReportMissingProp)(e,u)}function d(){let u=t.let("missing");if(c||o){let m=t.let("valid",!0);e.block$data(m,()=>f(u,m)),e.ok(m)}else t.if((0,li.checkMissingProp)(e,r,u)),(0,li.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,li.noPropertyInData)(t,i,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,li.propertyInData)(t,i,u,s.ownProperties)),t.if((0,di.not)(m),()=>{e.error(),t.break()})},di.nil)}}};wc.default=qb});var Ju=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var pi=x(),Bb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,pi.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,pi._)`{limit: ${e}}`},zb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Bb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?pi.operators.GT:pi.operators.LT;e.fail$data((0,pi._)`${r}.length ${i} ${n}`)}};Ic.default=zb});var $o=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var Wu=Bs();Wu.code='require("ajv/dist/runtime/equal").default';vc.default=Wu});var Ku=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var bc=Hn(),De=x(),Gb=q(),Jb=$o(),Wb={message:({params:{i:e,j:t}})=>(0,De.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,De._)`{i: ${e}, j: ${t}}`},Kb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Wb,code(e){let{gen:t,data:r,$data:n,schema:i,parentSchema:o,schemaCode:a,it:s}=e;if(!n&&!i)return;let c=t.let("valid"),l=o.items?(0,bc.getSchemaTypes)(o.items):[];e.block$data(c,d,(0,De._)`${a} === false`),e.ok(c);function d(){let m=t.let("i",(0,De._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,De._)`${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 y=t.name("item"),w=(0,bc.checkDataTypes)(l,y,s.opts.strictNumbers,bc.DataType.Wrong),A=t.const("indices",(0,De._)`{}`);t.for((0,De._)`;${m}--;`,()=>{t.let(y,(0,De._)`${r}[${m}]`),t.if(w,(0,De._)`continue`),l.length>1&&t.if((0,De._)`typeof ${y} == "string"`,(0,De._)`${y} += "_"`),t.if((0,De._)`typeof ${A}[${y}] == "number"`,()=>{t.assign(g,(0,De._)`${A}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,De._)`${A}[${y}] = ${m}`)})}function u(m,g){let y=(0,Gb.useFunc)(t,Jb.default),w=t.name("outer");t.label(w).for((0,De._)`;${m}--;`,()=>t.for((0,De._)`${g} = ${m}; ${g}--;`,()=>t.if((0,De._)`${y}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};kc.default=Kb});var Yu=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var _c=x(),Yb=q(),Hb=$o(),Xb={message:"must be equal to constant",params:({schemaCode:e})=>(0,_c._)`{allowedValue: ${e}}`},Zb={keyword:"const",$data:!0,error:Xb,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,_c._)`!${(0,Yb.useFunc)(t,Hb.default)}(${r}, ${i})`):e.fail((0,_c._)`${o} !== ${r}`)}};Ac.default=Zb});var Hu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var ui=x(),Qb=q(),ek=$o(),tk={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,ui._)`{allowedValues: ${e}}`},rk={keyword:"enum",schemaType:"array",$data:!0,error:tk,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:o,it:a}=e;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let s=i.length>=a.opts.loopEnum,c,l=()=>c??(c=(0,Qb.useFunc)(t,ek.default)),d;if(s||n)d=t.let("valid"),e.block$data(d,p);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let u=t.const("vSchema",o);d=(0,ui.or)(...i.map((m,g)=>f(u,g)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",o,u=>t.if((0,ui._)`${l()}(${r}, ${u})`,()=>t.assign(d,!0).break()))}function f(u,m){let g=i[m];return typeof g=="object"&&g!==null?(0,ui._)`${l()}(${r}, ${u}[${m}])`:(0,ui._)`${r} === ${g}`}}};Rc.default=rk});var Xu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var nk=Vu(),ik=Mu(),ok=qu(),ak=Bu(),sk=zu(),ck=Gu(),lk=Ju(),dk=Ku(),pk=Yu(),uk=Hu(),fk=[nk.default,ik.default,ok.default,ak.default,sk.default,ck.default,lk.default,dk.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},pk.default,uk.default];Ec.default=fk});var Nc=E(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.validateAdditionalItems=void 0;var Or=x(),Pc=q(),mk={message:({params:{len:e}})=>(0,Or.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Or._)`{limit: ${e}}`},gk={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:mk,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Pc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}Zu(e,n)}};function Zu(e,t){let{gen:r,schema:n,data:i,keyword:o,it:a}=e;a.items=!0;let s=r.const("len",(0,Or._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,Or._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,Pc.alwaysValidSchema)(a,n)){let l=r.var("valid",(0,Or._)`${s} <= ${t.length}`);r.if((0,Or.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:o,dataProp:d,dataPropType:Pc.Type.Num},l),a.allErrors||r.if((0,Or.not)(l),()=>r.break())})}}fi.validateAdditionalItems=Zu;fi.default=gk});var Oc=E(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.validateTuple=void 0;var Qu=x(),To=q(),yk=ct(),hk={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return ef(e,"additionalItems",t);r.items=!0,!(0,To.alwaysValidSchema)(r,t)&&e.ok((0,yk.validateArray)(e))}};function ef(e,t,r=e.schema){let{gen:n,parentSchema:i,data:o,keyword:a,it:s}=e;d(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=To.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,Qu._)`${o}.length`);r.forEach((p,f)=>{(0,To.alwaysValidSchema)(s,p)||(n.if((0,Qu._)`${l} > ${f}`,()=>e.subschema({keyword:a,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 y=`"${a}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,To.checkStrictMode)(s,y,f.strictTuples)}}}mi.validateTuple=ef;mi.default=hk});var tf=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var wk=Oc(),Ik={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,wk.validateTuple)(e,"items")};Sc.default=Ik});var nf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var rf=x(),vk=q(),bk=ct(),kk=Nc(),_k={message:({params:{len:e}})=>(0,rf.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,rf._)`{limit: ${e}}`},Ak={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:_k,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,vk.alwaysValidSchema)(n,t)&&(i?(0,kk.validateAdditionalItems)(e,i):e.ok((0,bk.validateArray)(e)))}};Dc.default=Ak});var of=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var dt=x(),Lo=q(),Rk={message:({params:{min:e,max:t}})=>t===void 0?(0,dt.str)`must contain at least ${e} valid item(s)`:(0,dt.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,dt._)`{minContains: ${e}}`:(0,dt._)`{minContains: ${e}, maxContains: ${t}}`},Ek={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Rk,code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:o}=e,a,s,{minContains:c,maxContains:l}=n;o.opts.next?(a=c===void 0?1:c,s=l):a=1;let d=t.const("len",(0,dt._)`${i}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,Lo.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,Lo.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,Lo.alwaysValidSchema)(o,r)){let g=(0,dt._)`${d} >= ${a}`;s!==void 0&&(g=(0,dt._)`${g} && ${d} <= ${s}`),e.pass(g);return}o.items=!0;let p=t.name("valid");s===void 0&&a===1?u(p,()=>t.if(p,()=>t.break())):a===0?(t.let(p,!0),s!==void 0&&t.if((0,dt._)`${i}.length > 0`,f)):(t.let(p,!1),f()),e.result(p,()=>e.reset());function f(){let g=t.name("_valid"),y=t.let("count",0);u(g,()=>t.if(g,()=>m(y)))}function u(g,y){t.forRange("i",0,d,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:Lo.Type.Num,compositeRule:!0},g),y()})}function m(g){t.code((0,dt._)`${g}++`),s===void 0?t.if((0,dt._)`${g} >= ${a}`,()=>t.assign(p,!0).break()):(t.if((0,dt._)`${g} > ${s}`,()=>t.assign(p,!1).break()),a===1?t.assign(p,!0):t.if((0,dt._)`${g} >= ${a}`,()=>t.assign(p,!0)))}}};jc.default=Ek});var xo=E(jt=>{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.validateSchemaDeps=jt.validatePropertyDeps=jt.error=void 0;var Cc=x(),Pk=q(),gi=ct();jt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,Cc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,Cc._)`{property: ${e},
5
+ || ${a} === "boolean" || ${i} === null`).assign(s,(0,V._)`[${i}]`)}}}function Yw({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function Vs(e,t,r,n=ln.Correct){let i=n===ln.Correct?V.operators.EQ:V.operators.NEQ,o;switch(e){case"null":return(0,V._)`${t} ${i} null`;case"array":o=(0,V._)`Array.isArray(${t})`;break;case"object":o=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=a((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=a();break;default:return(0,V._)`typeof ${t} ${i} ${e}`}return n===ln.Correct?o:(0,V.not)(o);function a(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Fe.checkDataType=Vs;function Ms(e,t,r,n){if(e.length===1)return Vs(e[0],t,r,n);let i,o=(0,Np.toHash)(e);if(o.array&&o.object){let a=(0,V._)`typeof ${t} != "object"`;i=o.null?a:(0,V._)`!${t} || ${a}`,delete o.null,delete o.array,delete o.object}else i=V.nil;o.number&&delete o.integer;for(let a in o)i=(0,V.and)(i,Vs(a,t,r,n));return i}Fe.checkDataTypes=Ms;var Hw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function Fs(e){let t=Zw(e);(0,zw.reportError)(t,Hw)}Fe.reportTypeError=Fs;function Zw(e){let{gen:t,data:r,schema:n}=e,i=(0,Np.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var jp=E(Io=>{"use strict";Object.defineProperty(Io,"__esModule",{value:!0});Io.assignDefaults=void 0;var dn=x(),Xw=q();function Qw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)Dp(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,o)=>Dp(e,o,i.default))}Io.assignDefaults=Qw;function Dp(e,t,r){let{gen:n,compositeRule:i,data:o,opts:a}=e;if(r===void 0)return;let s=(0,dn._)`${o}${(0,dn.getProperty)(t)}`;if(i){(0,Xw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,dn._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,dn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,dn._)`${s} = ${(0,dn.stringify)(r)}`)}});var ct=E(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.validateUnion=ie.validateArray=ie.usePattern=ie.callValidateCode=ie.schemaProperties=ie.allSchemaProperties=ie.noPropertyInData=ie.propertyInData=ie.isOwnProperty=ie.hasPropFunc=ie.reportMissingProp=ie.checkMissingProp=ie.checkReportMissingProp=void 0;var me=x(),Us=q(),er=st(),eI=q();function tI(e,t){let{gen:r,data:n,it:i}=e;r.if(Bs(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,me._)`${t}`},!0),e.error()})}ie.checkReportMissingProp=tI;function rI({gen:e,data:t,it:{opts:r}},n,i){return(0,me.or)(...n.map(o=>(0,me.and)(Bs(e,t,o,r.ownProperties),(0,me._)`${i} = ${o}`)))}ie.checkMissingProp=rI;function nI(e,t){e.setParams({missingProperty:t},!0),e.error()}ie.reportMissingProp=nI;function Cp(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,me._)`Object.prototype.hasOwnProperty`})}ie.hasPropFunc=Cp;function qs(e,t,r){return(0,me._)`${Cp(e)}.call(${t}, ${r})`}ie.isOwnProperty=qs;function iI(e,t,r,n){let i=(0,me._)`${t}${(0,me.getProperty)(r)} !== undefined`;return n?(0,me._)`${i} && ${qs(e,t,r)}`:i}ie.propertyInData=iI;function Bs(e,t,r,n){let i=(0,me._)`${t}${(0,me.getProperty)(r)} === undefined`;return n?(0,me.or)(i,(0,me.not)(qs(e,t,r))):i}ie.noPropertyInData=Bs;function $p(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ie.allSchemaProperties=$p;function oI(e,t){return $p(t).filter(r=>!(0,Us.alwaysValidSchema)(e,t[r]))}ie.schemaProperties=oI;function aI({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:o},it:a},s,c,d){let l=d?(0,me._)`${e}, ${t}, ${n}${i}`:t,p=[[er.default.instancePath,(0,me.strConcat)(er.default.instancePath,o)],[er.default.parentData,a.parentData],[er.default.parentDataProperty,a.parentDataProperty],[er.default.rootData,er.default.rootData]];a.opts.dynamicRef&&p.push([er.default.dynamicAnchors,er.default.dynamicAnchors]);let m=(0,me._)`${l}, ${r.object(...p)}`;return c!==me.nil?(0,me._)`${s}.call(${c}, ${m})`:(0,me._)`${s}(${m})`}ie.callValidateCode=aI;var sI=(0,me._)`new RegExp`;function cI({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:i}=t.code,o=i(r,n);return e.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,me._)`${i.code==="new RegExp"?sI:(0,eI.useFunc)(e,i)}(${r}, ${n})`})}ie.usePattern=cI;function lI(e){let{gen:t,data:r,keyword:n,it:i}=e,o=t.name("valid");if(i.allErrors){let s=t.let("valid",!0);return a(()=>t.assign(s,!1)),s}return t.var(o,!0),a(()=>t.break()),o;function a(s){let c=t.const("len",(0,me._)`${r}.length`);t.forRange("i",0,c,d=>{e.subschema({keyword:n,dataProp:d,dataPropType:Us.Type.Num},o),t.if((0,me.not)(o),s)})}}ie.validateArray=lI;function dI(e){let{gen:t,schema:r,keyword:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Us.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let a=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,d)=>{let l=e.subschema({keyword:n,schemaProp:d,compositeRule:!0},s);t.assign(a,(0,me._)`${a} || ${s}`),e.mergeValidEvaluated(l,s)||t.if((0,me.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}ie.validateUnion=dI});var xp=E(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.validateKeywordUsage=Dt.validSchemaType=Dt.funcKeywordCode=Dt.macroKeywordCode=void 0;var We=x(),Rr=st(),pI=ct(),uI=Yn();function fI(e,t){let{gen:r,keyword:n,schema:i,parentSchema:o,it:a}=e,s=t.macro.call(a.self,i,o,a),c=Lp(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let d=r.name("valid");e.subschema({schema:s,schemaPath:We.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},d),e.pass(d,()=>e.error(!0))}Dt.macroKeywordCode=fI;function mI(e,t){var r;let{gen:n,keyword:i,schema:o,parentSchema:a,$data:s,it:c}=e;yI(c,t);let d=!s&&t.compile?t.compile.call(c.self,o,a,c):t.validate,l=Lp(n,i,d),p=n.let("valid");e.block$data(p,m),e.ok((r=t.valid)!==null&&r!==void 0?r:p);function m(){if(t.errors===!1)g(),t.modifying&&Tp(e),y(()=>e.error());else{let w=t.async?u():f();t.modifying&&Tp(e),y(()=>gI(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,We._)`await `),A=>n.assign(p,!1).if((0,We._)`${A} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,We._)`${A}.errors`),()=>n.throw(A))),w}function f(){let w=(0,We._)`${l}.errors`;return n.assign(w,null),g(We.nil),w}function g(w=t.async?(0,We._)`await `:We.nil){let A=c.opts.passContext?Rr.default.this:Rr.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,We._)`${w}${(0,pI.callValidateCode)(e,l,A,b)}`,t.modifying)}function y(w){var A;n.if((0,We.not)((A=t.valid)!==null&&A!==void 0?A:p),w)}}Dt.funcKeywordCode=mI;function Tp(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,We._)`${n.parentData}[${n.parentDataProperty}]`))}function gI(e,t){let{gen:r}=e;r.if((0,We._)`Array.isArray(${t})`,()=>{r.assign(Rr.default.vErrors,(0,We._)`${Rr.default.vErrors} === null ? ${t} : ${Rr.default.vErrors}.concat(${t})`).assign(Rr.default.errors,(0,We._)`${Rr.default.vErrors}.length`),(0,uI.extendErrors)(e)},()=>e.error())}function yI({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Lp(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,We.stringify)(r)})}function hI(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")}Dt.validSchemaType=hI;function wI({schema:e,opts:t,self:r,errSchemaPath:n},i,o){if(Array.isArray(i.keyword)?!i.keyword.includes(o):i.keyword!==o)throw new Error("ajv implementation error");let a=i.dependencies;if(a?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${o}: ${a.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[o])){let c=`keyword "${o}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Dt.validateKeywordUsage=wI});var Mp=E(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.extendSubschemaMode=tr.extendSubschemaData=tr.getSubschema=void 0;var jt=x(),Vp=q();function II(e,{keyword:t,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:o,topSchemaRef:a}){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,jt._)`${e.schemaPath}${(0,jt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,jt._)`${e.schemaPath}${(0,jt.getProperty)(t)}${(0,jt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Vp.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||o===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:a,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}tr.getSubschema=II;function vI(e,t,{dataProp:r,dataPropType:n,data:i,dataTypes:o,propertyName:a}){if(i!==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:d,dataPathArr:l,opts:p}=t,m=s.let("data",(0,jt._)`${t.data}${(0,jt.getProperty)(r)}`,!0);c(m),e.errorPath=(0,jt.str)`${d}${(0,Vp.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,jt._)`${r}`,e.dataPathArr=[...l,e.parentDataProperty]}if(i!==void 0){let d=i instanceof jt.Name?i:s.let("data",i,!0);c(d),a!==void 0&&(e.propertyName=a)}o&&(e.dataTypes=o);function c(d){e.data=d,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,d]}}tr.extendSubschemaData=vI;function bI(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:o}){n!==void 0&&(e.compositeRule=n),i!==void 0&&(e.createErrors=i),o!==void 0&&(e.allErrors=o),e.jtdDiscriminator=t,e.jtdMetadata=r}tr.extendSubschemaMode=bI});var zs=E((DO,Fp)=>{"use strict";Fp.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,i,o;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!e(t[i],r[i]))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(o=Object.keys(t),n=o.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[i]))return!1;for(i=n;i--!==0;){var a=o[i];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}});var qp=E((jO,Up)=>{"use strict";var rr=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(){},i=r.post||function(){};vo(t,n,i,e,"",e)};rr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};rr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};rr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};rr.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 vo(e,t,r,n,i,o,a,s,c,d){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,o,a,s,c,d);for(var l in n){var p=n[l];if(Array.isArray(p)){if(l in rr.arrayKeywords)for(var m=0;m<p.length;m++)vo(e,t,r,p[m],i+"/"+l+"/"+m,o,i,l,n,m)}else if(l in rr.propsKeywords){if(p&&typeof p=="object")for(var u in p)vo(e,t,r,p[u],i+"/"+l+"/"+kI(u),o,i,l,n,u)}else(l in rr.keywords||e.allKeys&&!(l in rr.skipKeywords))&&vo(e,t,r,p,i+"/"+l,o,i,l,n)}r(n,i,o,a,s,c,d)}}function kI(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Zn=E(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.getSchemaRefs=Ze.resolveUrl=Ze.normalizeId=Ze._getFullPath=Ze.getFullPath=Ze.inlineRef=void 0;var _I=q(),AI=zs(),RI=qp(),EI=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function PI(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Gs(e):t?Bp(e)<=t:!1}Ze.inlineRef=PI;var NI=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Gs(e){for(let t in e){if(NI.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(Gs)||typeof r=="object"&&Gs(r))return!0}return!1}function Bp(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!EI.has(r)&&(typeof e[r]=="object"&&(0,_I.eachItem)(e[r],n=>t+=Bp(n)),t===1/0))return 1/0}return t}function zp(e,t="",r){r!==!1&&(t=pn(t));let n=e.parse(t);return Gp(e,n)}Ze.getFullPath=zp;function Gp(e,t){return e.serialize(t).split("#")[0]+"#"}Ze._getFullPath=Gp;var OI=/#\/?$/;function pn(e){return e?e.replace(OI,""):""}Ze.normalizeId=pn;function SI(e,t,r){return r=pn(r),e.resolve(t,r)}Ze.resolveUrl=SI;var DI=/^[a-z_][-a-z0-9._]*$/i;function jI(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=pn(e[r]||t),o={"":i},a=zp(n,i,!1),s={},c=new Set;return RI(e,{allKeys:!0},(p,m,u,f)=>{if(f===void 0)return;let g=a+m,y=o[f];typeof p[r]=="string"&&(y=w.call(this,p[r])),A.call(this,p.$anchor),A.call(this,p.$dynamicAnchor),o[m]=y;function w(b){let R=this.opts.uriResolver.resolve;if(b=pn(y?R(y,b):b),c.has(b))throw l(b);c.add(b);let I=this.refs[b];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?d(p,I.schema,b):b!==pn(g)&&(b[0]==="#"?(d(p,s[b],b),s[b]=p):this.refs[b]=g),b}function A(b){if(typeof b=="string"){if(!DI.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function d(p,m,u){if(m!==void 0&&!AI(p,m))throw l(u)}function l(p){return new Error(`reference "${p}" resolves to more than one schema`)}}Ze.getSchemaRefs=jI});var ei=E(nr=>{"use strict";Object.defineProperty(nr,"__esModule",{value:!0});nr.getData=nr.KeywordCxt=nr.validateFunctionCode=void 0;var Hp=Rp(),Jp=Hn(),Ws=xs(),bo=Hn(),CI=jp(),Qn=xp(),Js=Mp(),S=x(),L=st(),$I=Zn(),Ut=q(),Xn=Yn();function TI(e){if(Qp(e)&&(eu(e),Xp(e))){VI(e);return}Zp(e,()=>(0,Hp.topBoolOrEmptySchema)(e))}nr.validateFunctionCode=TI;function Zp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:i},o){i.code.es5?e.func(t,(0,S._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,S._)`"use strict"; ${Wp(r,i)}`),xI(e,i),e.code(o)}):e.func(t,(0,S._)`${L.default.data}, ${LI(i)}`,n.$async,()=>e.code(Wp(r,i)).code(o))}function LI(e){return(0,S._)`{${L.default.instancePath}="", ${L.default.parentData}, ${L.default.parentDataProperty}, ${L.default.rootData}=${L.default.data}${e.dynamicRef?(0,S._)`, ${L.default.dynamicAnchors}={}`:S.nil}}={}`}function xI(e,t){e.if(L.default.valCxt,()=>{e.var(L.default.instancePath,(0,S._)`${L.default.valCxt}.${L.default.instancePath}`),e.var(L.default.parentData,(0,S._)`${L.default.valCxt}.${L.default.parentData}`),e.var(L.default.parentDataProperty,(0,S._)`${L.default.valCxt}.${L.default.parentDataProperty}`),e.var(L.default.rootData,(0,S._)`${L.default.valCxt}.${L.default.rootData}`),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,S._)`${L.default.valCxt}.${L.default.dynamicAnchors}`)},()=>{e.var(L.default.instancePath,(0,S._)`""`),e.var(L.default.parentData,(0,S._)`undefined`),e.var(L.default.parentDataProperty,(0,S._)`undefined`),e.var(L.default.rootData,L.default.data),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,S._)`{}`)})}function VI(e){let{schema:t,opts:r,gen:n}=e;Zp(e,()=>{r.$comment&&t.$comment&&ru(e),BI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&MI(e),tu(e),JI(e)})}function MI(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,S._)`${r}.evaluated`),t.if((0,S._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,S._)`${e.evaluated}.props`,(0,S._)`undefined`)),t.if((0,S._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,S._)`${e.evaluated}.items`,(0,S._)`undefined`))}function Wp(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,S._)`/*# sourceURL=${r} */`:S.nil}function FI(e,t){if(Qp(e)&&(eu(e),Xp(e))){UI(e,t);return}(0,Hp.boolOrEmptySchema)(e,t)}function Xp({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 Qp(e){return typeof e.schema!="boolean"}function UI(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&ru(e),zI(e),GI(e);let o=n.const("_errs",L.default.errors);tu(e,o),n.var(t,(0,S._)`${o} === ${L.default.errors}`)}function eu(e){(0,Ut.checkUnknownRules)(e),qI(e)}function tu(e,t){if(e.opts.jtd)return Kp(e,[],!1,t);let r=(0,Jp.getSchemaTypes)(e.schema),n=(0,Jp.coerceAndCheckDataType)(e,r);Kp(e,r,!n,t)}function qI(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Ut.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function BI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Ut.checkStrictMode)(e,"default is ignored in the schema root")}function zI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,$I.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function GI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function ru({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:i}){let o=r.$comment;if(i.$comment===!0)e.code((0,S._)`${L.default.self}.logger.log(${o})`);else if(typeof i.$comment=="function"){let a=(0,S.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,S._)`${L.default.self}.opts.$comment(${o}, ${a}, ${s}.schema)`)}}function JI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:i,opts:o}=e;r.$async?t.if((0,S._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,S._)`new ${i}(${L.default.vErrors})`)):(t.assign((0,S._)`${n}.errors`,L.default.vErrors),o.unevaluated&&WI(e),t.return((0,S._)`${L.default.errors} === 0`))}function WI({gen:e,evaluated:t,props:r,items:n}){r instanceof S.Name&&e.assign((0,S._)`${t}.props`,r),n instanceof S.Name&&e.assign((0,S._)`${t}.items`,n)}function Kp(e,t,r,n){let{gen:i,schema:o,data:a,allErrors:s,opts:c,self:d}=e,{RULES:l}=d;if(o.$ref&&(c.ignoreKeywordsWithRef||!(0,Ut.schemaHasRulesButRef)(o,l))){i.block(()=>iu(e,"$ref",l.all.$ref.definition));return}c.jtd||KI(e,t),i.block(()=>{for(let m of l.rules)p(m);p(l.post)});function p(m){(0,Ws.shouldUseGroup)(o,m)&&(m.type?(i.if((0,bo.checkDataType)(m.type,a,c.strictNumbers)),Yp(e,m),t.length===1&&t[0]===m.type&&r&&(i.else(),(0,bo.reportTypeError)(e)),i.endIf()):Yp(e,m),s||i.if((0,S._)`${L.default.errors} === ${n||0}`))}}function Yp(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,CI.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,Ws.shouldUseRule)(n,o)&&iu(e,o.keyword,o.definition,t.type)})}function KI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(YI(e,t),e.opts.allowUnionTypes||HI(e,t),ZI(e,e.dataTypes))}function YI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{nu(e.dataTypes,r)||Ks(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),QI(e,t)}}function HI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ks(e,"use allowUnionTypes to allow union type keyword")}function ZI(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,Ws.shouldUseRule)(e.schema,i)){let{type:o}=i.definition;o.length&&!o.some(a=>XI(t,a))&&Ks(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function XI(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function nu(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function QI(e,t){let r=[];for(let n of e.dataTypes)nu(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Ks(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Ut.checkStrictMode)(e,t,e.opts.strictTypes)}var ko=class{constructor(t,r,n){if((0,Qn.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,Ut.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",ou(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Qn.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,S.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,S.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,S._)`${r} !== undefined && (${(0,S.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?Xn.reportExtraError:Xn.reportError)(this,this.def.error,r)}$dataError(){(0,Xn.reportError)(this,this.def.$dataError||Xn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Xn.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=S.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=S.nil,r=S.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:o,def:a}=this;n.if((0,S.or)((0,S._)`${i} === undefined`,r)),t!==S.nil&&n.assign(t,!0),(o.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==S.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:i,it:o}=this;return(0,S.or)(a(),s());function a(){if(n.length){if(!(r instanceof S.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,S._)`${(0,bo.checkDataTypes)(c,r,o.opts.strictNumbers,bo.DataType.Wrong)}`}return S.nil}function s(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,S._)`!${c}(${r})`}return S.nil}}subschema(t,r){let n=(0,Js.getSubschema)(this.it,t);(0,Js.extendSubschemaData)(n,this.it,t),(0,Js.extendSubschemaMode)(n,t);let i={...this.it,...n,items:void 0,props:void 0};return FI(i,r),i}mergeEvaluated(t,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Ut.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Ut.mergeEvaluated.items(i,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(t,S.Name)),!0}};nr.KeywordCxt=ko;function iu(e,t,r,n){let i=new ko(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,Qn.funcKeywordCode)(i,r):"macro"in r?(0,Qn.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,Qn.funcKeywordCode)(i,r)}var ev=/^\/(?:[^~]|~0|~1)*$/,tv=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function ou(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,o;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!ev.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,o=L.default.rootData}else{let d=tv.exec(e);if(!d)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+d[1];if(i=d[2],i==="#"){if(l>=t)throw new Error(c("property/index",l));return n[t-l]}if(l>t)throw new Error(c("data",l));if(o=r[t-l],!i)return o}let a=o,s=i.split("/");for(let d of s)d&&(o=(0,S._)`${o}${(0,S.getProperty)((0,Ut.unescapeJsonPointer)(d))}`,a=(0,S._)`${a} && ${o}`);return a;function c(d,l){return`Cannot access ${d} ${l} levels up, current level is ${t}`}}nr.getData=ou});var _o=E(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});var Ys=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Hs.default=Ys});var ti=E(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});var Zs=Zn(),Xs=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Zs.resolveUrl)(t,r,n),this.missingSchema=(0,Zs.normalizeId)((0,Zs.getFullPath)(t,this.missingRef))}};Qs.default=Xs});var ri=E(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.resolveSchema=lt.getCompilingSchema=lt.resolveRef=lt.compileSchema=lt.SchemaEnv=void 0;var It=x(),rv=_o(),Er=st(),vt=Zn(),au=q(),nv=ei(),un=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,vt.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};lt.SchemaEnv=un;function tc(e){let t=su.call(this,e);if(t)return t;let r=(0,vt.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:o}=this.opts,a=new It.CodeGen(this.scope,{es5:n,lines:i,ownProperties:o}),s;e.$async&&(s=a.scopeValue("Error",{ref:rv.default,code:(0,It._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let d={gen:a,allErrors:this.opts.allErrors,data:Er.default.data,parentData:Er.default.parentData,parentDataProperty:Er.default.parentDataProperty,dataNames:[Er.default.data],dataPathArr:[It.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,It.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:It.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,It._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,nv.validateFunctionCode)(d),a.optimize(this.opts.code.optimize);let p=a.toString();l=`${a.scopeRefs(Er.default.scope)}return ${p}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let u=new Function(`${Er.default.self}`,`${Er.default.scope}`,l)(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:a._values}),this.opts.unevaluated){let{props:f,items:g}=d;u.evaluated={props:f instanceof It.Name?void 0:f,items:g instanceof It.Name?void 0:g,dynamicProps:f instanceof It.Name,dynamicItems:g instanceof It.Name},u.source&&(u.source.evaluated=(0,It.stringify)(u.evaluated))}return e.validate=u,e}catch(p){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),p}finally{this._compilations.delete(e)}}lt.compileSchema=tc;function iv(e,t,r){var n;r=(0,vt.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let o=sv.call(this,e,r);if(o===void 0){let a=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;a&&(o=new un({schema:a,schemaId:s,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=ov.call(this,o)}lt.resolveRef=iv;function ov(e){return(0,vt.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:tc.call(this,e)}function su(e){for(let t of this._compilations)if(av(t,e))return t}lt.getCompilingSchema=su;function av(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function sv(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||Ao.call(this,e,t)}function Ao(e,t){let r=this.opts.uriResolver.parse(t),n=(0,vt._getFullPath)(this.opts.uriResolver,r),i=(0,vt.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return ec.call(this,r,e);let o=(0,vt.normalizeId)(n),a=this.refs[o]||this.schemas[o];if(typeof a=="string"){let s=Ao.call(this,e,a);return typeof s?.schema!="object"?void 0:ec.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||tc.call(this,a),o===(0,vt.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,d=s[c];return d&&(i=(0,vt.resolveUrl)(this.opts.uriResolver,i,d)),new un({schema:s,schemaId:c,root:e,baseId:i})}return ec.call(this,r,a)}}lt.resolveSchema=Ao;var cv=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function ec(e,{baseId:t,schema:r,root:n}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,au.unescapeFragment)(s)];if(c===void 0)return;r=c;let d=typeof r=="object"&&r[this.opts.schemaId];!cv.has(s)&&d&&(t=(0,vt.resolveUrl)(this.opts.uriResolver,t,d))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,au.schemaHasRulesButRef)(r,this.RULES)){let s=(0,vt.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=Ao.call(this,n,s)}let{schemaId:a}=this.opts;if(o=o||new un({schema:r,schemaId:a,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var cu=E((VO,lv)=>{lv.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 ic=E((MO,mu)=>{"use strict";var dv=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),du=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),rc=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),pu=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),pv=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function nc(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 uv=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function lu(e){return e.length=0,!0}function fv(e,t,r){if(e.length){let n=nc(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function mv(e){let t=0,r={error:!1,address:"",zone:""},n=[],i=[],o=!1,a=!1,s=fv;for(let c=0;c<e.length;c++){let d=e[c];if(!(d==="["||d==="]"))if(d===":"){if(o===!0&&(a=!0),!s(i,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(o=!0),n.push(":");continue}else if(d==="%"){if(!s(i,n,r))break;s=lu}else{i.push(d);continue}}return i.length&&(s===lu?r.zone=i.join(""):a?n.push(i.join("")):n.push(nc(i))),r.address=n.join(""),r}function uu(e){if(gv(e,":")<2)return{host:e,isIPV6:!1};let t=mv(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 gv(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function yv(e){let t=e,r=[],n=-1,i=0;for(;i=t.length;){if(i===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.push(t);break}}else if(i===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(i===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 hv={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},wv=/[@/?#:]/g,Iv=/[@/?#]/g;function fu(e,t){let r=t?Iv:wv;return r.lastIndex=0,e.replace(r,n=>hv[n])}function vv(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 i=e.slice(n+1,n+3);if(rc(i)){let o=i.toUpperCase(),a=String.fromCharCode(parseInt(o,16));t&&pu(a)?r+=a:r+="%"+o,n+=2;continue}}r+=e[n]}return r}function bv(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(rc(n)){let i=n.toUpperCase(),o=String.fromCharCode(parseInt(i,16));o!=="."&&pu(o)?t+=o:t+="%"+i,r+=2;continue}}pv(e[r])?t+=e[r]:t+=escape(e[r])}return t}function kv(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(rc(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function _v(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!du(r)){let n=uu(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=fu(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}mu.exports={nonSimpleDomain:uv,recomposeAuthority:_v,reescapeHostDelimiters:fu,normalizePercentEncoding:vv,normalizePathEncoding:bv,escapePreservingEscapes:kv,removeDotSegments:yv,isIPv4:du,isUUID:dv,normalizeIPv6:uu,stringArrayToHexStripped:nc}});var Iu=E((FO,wu)=>{"use strict";var{isUUID:Av}=ic(),Rv=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Ev=["http","https","ws","wss","urn","urn:uuid"];function Pv(e){return Ev.indexOf(e)!==-1}function oc(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 gu(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function yu(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 Nv(e){return e.secure=oc(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Ov(e){if((e.port===(oc(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 Sv(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(Rv);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let i=`${n}:${t.nid||e.nid}`,o=ac(i);e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Dv(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(),i=`${r}:${t.nid||n}`,o=ac(i);o&&(e=o.serialize(e,t));let a=e,s=e.nss;return a.path=`${n||t.nid}:${s}`,t.skipEscape=!0,a}function jv(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!Av(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Cv(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var hu={scheme:"http",domainHost:!0,parse:gu,serialize:yu},$v={scheme:"https",domainHost:hu.domainHost,parse:gu,serialize:yu},Ro={scheme:"ws",domainHost:!0,parse:Nv,serialize:Ov},Tv={scheme:"wss",domainHost:Ro.domainHost,parse:Ro.parse,serialize:Ro.serialize},Lv={scheme:"urn",parse:Sv,serialize:Dv,skipNormalize:!0},xv={scheme:"urn:uuid",parse:jv,serialize:Cv,skipNormalize:!0},Eo={http:hu,https:$v,ws:Ro,wss:Tv,urn:Lv,"urn:uuid":xv};Object.setPrototypeOf(Eo,null);function ac(e){return e&&(Eo[e]||Eo[e.toLowerCase()])||void 0}wu.exports={wsIsSecure:oc,SCHEMES:Eo,isValidSchemeName:Pv,getSchemeHandler:ac}});var Au=E((UO,Oo)=>{"use strict";var{normalizeIPv6:Vv,removeDotSegments:ni,recomposeAuthority:Mv,normalizePercentEncoding:Fv,normalizePathEncoding:Uv,escapePreservingEscapes:qv,reescapeHostDelimiters:Bv,isIPv4:zv,nonSimpleDomain:Gv}=ic(),{SCHEMES:Jv,getSchemeHandler:bu}=Iu();function Wv(e,t){return typeof e=="string"?e=eb(e,t):typeof e=="object"&&(e=No(Pr(e,t),t)),e}function Kv(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:o}=Po(e,n),{parsed:a,malformedAuthorityOrPort:s}=Po(t,n);if(o||s)throw new Error(i.error||a.error||"URI is malformed.");let c=ku(i,a,n,!0);return n.skipEscape=!0,Pr(c,n)}function ku(e,t,r,n){let i={};return n||(e=No(Pr(e,r),r),t=No(Pr(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=ni(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=ni(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=ni(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=ni(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function Yv(e,t,r){let n=vu(e,r),i=vu(t,r);return n!==void 0&&i!==void 0&&n.toLowerCase()===i.toLowerCase()}function Pr(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),i=[],o=bu(n.scheme||r.scheme);o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Fv(r.path):(r.path=qv(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let a=Mv(r);if(a!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(a),r.path&&r.path[0]!=="/"&&i.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!o||!o.absolutePath)&&(s=ni(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),i.push(s)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var Hv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,Zv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,Xv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function Qv(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 Po(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},i=!1,o=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let a=e.match(Zv);a!==null&&a[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",i=!0);let s=e.match(Xv);if(s!==null){let d=s[1],l=d.replace(/[\t\n\r]/g,"");l.length>=2&&(l.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",i=!0):d.length!==l.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",i=!0))}let c=e.match(Hv);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 d=Qv(n,c);if(d!==void 0&&(n.error=n.error||d,i=!0),n.host)if(zv(n.host)===!1){let m=Vv(n.host);n.host=m.host.toLowerCase(),o=m.isIPV6}else o=!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 l=bu(r.scheme||n.scheme);if(!r.unicodeSupport&&(!l||!l.unicodeSupport)&&n.host&&(r.domainHost||l&&l.domainHost)&&o===!1&&Gv(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((!l||l&&!l.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=Bv(unescape(n.host),o))),n.path&&(n.path=Uv(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}l&&l.parse&&l.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:i}}function No(e,t){return Po(e,t).parsed}function eb(e,t){return _u(e,t).normalized}function _u(e,t){let{parsed:r,malformedAuthorityOrPort:n}=Po(e,t);return{normalized:n?e:Pr(r,t),malformedAuthorityOrPort:n}}function vu(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=_u(e,t);return n?void 0:r}if(typeof e=="object")return Pr(e,t)}var sc={SCHEMES:Jv,normalize:Wv,resolve:Kv,resolveComponent:ku,equal:Yv,serialize:Pr,parse:No};Oo.exports=sc;Oo.exports.default=sc;Oo.exports.fastUri=sc});var Eu=E(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var Ru=Au();Ru.code='require("ajv/dist/runtime/uri").default';cc.default=Ru});var $u=E(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.CodeGen=Se.Name=Se.nil=Se.stringify=Se.str=Se._=Se.KeywordCxt=void 0;var tb=ei();Object.defineProperty(Se,"KeywordCxt",{enumerable:!0,get:function(){return tb.KeywordCxt}});var fn=x();Object.defineProperty(Se,"_",{enumerable:!0,get:function(){return fn._}});Object.defineProperty(Se,"str",{enumerable:!0,get:function(){return fn.str}});Object.defineProperty(Se,"stringify",{enumerable:!0,get:function(){return fn.stringify}});Object.defineProperty(Se,"nil",{enumerable:!0,get:function(){return fn.nil}});Object.defineProperty(Se,"Name",{enumerable:!0,get:function(){return fn.Name}});Object.defineProperty(Se,"CodeGen",{enumerable:!0,get:function(){return fn.CodeGen}});var rb=_o(),Du=ti(),nb=Ls(),ii=ri(),ib=x(),oi=Zn(),So=Hn(),dc=q(),Pu=cu(),ob=Eu(),ju=(e,t)=>new RegExp(e,t);ju.code="new RegExp";var ab=["removeAdditional","useDefaults","coerceTypes"],sb=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),cb={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."},lb={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Nu=200;function db(e){var t,r,n,i,o,a,s,c,d,l,p,m,u,f,g,y,w,A,b,R,I,_,O,T,fe;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,Q=P===!0||P===void 0?1:P||0,ce=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:ju,ot=(i=e.uriResolver)!==null&&i!==void 0?i:ob.default;return{strictSchema:(a=(o=e.strictSchema)!==null&&o!==void 0?o:$)!==null&&a!==void 0?a:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(l=(d=e.strictTypes)!==null&&d!==void 0?d:$)!==null&&l!==void 0?l:"log",strictTuples:(m=(p=e.strictTuples)!==null&&p!==void 0?p:$)!==null&&m!==void 0?m:"log",strictRequired:(f=(u=e.strictRequired)!==null&&u!==void 0?u:$)!==null&&f!==void 0?f:!1,code:e.code?{...e.code,optimize:Q,regExp:ce}:{optimize:Q,regExp:ce},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Nu,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:Nu,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(A=e.messages)!==null&&A!==void 0?A:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(R=e.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(_=e.validateSchema)!==null&&_!==void 0?_:!0,validateFormats:(O=e.validateFormats)!==null&&O!==void 0?O:!0,unicodeRegExp:(T=e.unicodeRegExp)!==null&&T!==void 0?T:!0,int32range:(fe=e.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:ot}}var ai=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,...db(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new ib.ValueScope({scope:{},prefixes:sb,es5:r,lines:n}),this.logger=yb(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,nb.getRules)(),Ou.call(this,cb,t,"NOT SUPPORTED"),Ou.call(this,lb,t,"DEPRECATED","warn"),this._metaOpts=mb.call(this),t.formats&&ub.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&fb.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),pb.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=Pu;n==="id"&&(i={...Pu},i.id=i.$id,delete i.$id),r&&t&&this.addMetaSchema(i,i[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 i=n(r);return"$async"in n||(this.errors=n.errors),i}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 i.call(this,t,r);async function i(l,p){await o.call(this,l.$schema);let m=this._addSchema(l,p);return m.validate||a.call(this,m)}async function o(l){l&&!this.getSchema(l)&&await i.call(this,{$ref:l},!0)}async function a(l){try{return this._compileSchemaEnv(l)}catch(p){if(!(p instanceof Du.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),a.call(this,l)}}function s({missingSchema:l,missingRef:p}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${p} cannot be resolved`)}async function c(l){let p=await d.call(this,l);this.refs[l]||await o.call(this,p.$schema),this.refs[l]||this.addSchema(p,l,r)}async function d(l){let p=this._loading[l];if(p)return p;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(t,r,n,i=this.opts.validateSchema){if(Array.isArray(t)){for(let a of t)this.addSchema(a,void 0,n,i);return this}let o;if(typeof t=="object"){let{schemaId:a}=this.opts;if(o=t[a],o!==void 0&&typeof o!="string")throw new Error(`schema ${a} must be string`)}return r=(0,oi.normalizeId)(r||o),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,i,!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 i=this.validate(n,t);if(!i&&r){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return i}getSchema(t){let r;for(;typeof(r=Su.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new ii.SchemaEnv({schema:{},schemaId:n});if(r=ii.resolveSchema.call(this,i,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=Su.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,oi.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(wb.call(this,n,r),!r)return(0,dc.eachItem)(n,o=>lc.call(this,o)),this;vb.call(this,r);let i={...r,type:(0,So.getJSONTypes)(r.type),schemaType:(0,So.getJSONTypes)(r.schemaType)};return(0,dc.eachItem)(n,i.type.length===0?o=>lc.call(this,o,i):o=>i.type.forEach(a=>lc.call(this,o,i,a))),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 i=n.rules.findIndex(o=>o.keyword===t);i>=0&&n.rules.splice(i,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(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,o)=>i+r+o)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of r){let o=i.split("/").slice(1),a=t;for(let s of o)a=a[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:d}=c.definition,l=a[s];d&&l&&(a[s]=Cu(l))}}return t}_removeAllSchemas(t,r){for(let n in t){let i=t[n];(!r||r.test(n))&&(typeof i=="string"?delete t[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[n]))}}_addSchema(t,r,n,i=this.opts.validateSchema,o=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof t=="object")a=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,oi.normalizeId)(a||n);let d=oi.getSchemaRefs.call(this,t,n);return c=new ii.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:d}),this._cache.set(c.schema,c),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&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):ii.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{ii.compileSchema.call(this,t)}finally{this.opts=r}}};ai.ValidationError=rb.default;ai.MissingRefError=Du.default;Se.default=ai;function Ou(e,t,r,n="error"){for(let i in e){let o=i;o in t&&this.logger[n](`${r}: option ${i}. ${e[o]}`)}}function Su(e){return e=(0,oi.normalizeId)(e),this.schemas[e]||this.refs[e]}function pb(){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 ub(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function fb(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 mb(){let e={...this.opts};for(let t of ab)delete e[t];return e}var gb={log(){},warn(){},error(){}};function yb(e){if(e===!1)return gb;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 hb=/^[a-z_$][a-z0-9_$:-]*$/i;function wb(e,t){let{RULES:r}=this;if((0,dc.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!hb.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 lc(e,t,r){var n;let i=t?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,a=i?o.post:o.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},o.rules.push(a)),o.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,So.getJSONTypes)(t.type),schemaType:(0,So.getJSONTypes)(t.schemaType)}};t.before?Ib.call(this,a,s,t.before):a.rules.push(s),o.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function Ib(e,t,r){let n=e.rules.findIndex(i=>i.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function vb(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Cu(t)),e.validateSchema=this.compile(t,!0))}var bb={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Cu(e){return{anyOf:[e,bb]}}});var Tu=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var kb={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};pc.default=kb});var Co=E(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.callRef=Nr.getValidate=void 0;var _b=ti(),Lu=ct(),Xe=x(),mn=st(),xu=ri(),Do=q(),Ab={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:i,schemaEnv:o,validateName:a,opts:s,self:c}=n,{root:d}=o;if((r==="#"||r==="#/")&&i===d.baseId)return p();let l=xu.resolveRef.call(c,d,i,r);if(l===void 0)throw new _b.default(n.opts.uriResolver,i,r);if(l instanceof xu.SchemaEnv)return m(l);return u(l);function p(){if(o===d)return jo(e,a,o,o.$async);let f=t.scopeValue("root",{ref:d});return jo(e,(0,Xe._)`${f}.validate`,d,d.$async)}function m(f){let g=Vu(e,f);jo(e,g,f,f.$async)}function u(f){let g=t.scopeValue("schema",s.code.source===!0?{ref:f,code:(0,Xe.stringify)(f)}:{ref:f}),y=t.name("valid"),w=e.subschema({schema:f,dataTypes:[],schemaPath:Xe.nil,topSchemaRef:g,errSchemaPath:r},y);e.mergeEvaluated(w),e.ok(y)}}};function Vu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Xe._)`${r.scopeValue("wrapper",{ref:t})}.validate`}Nr.getValidate=Vu;function jo(e,t,r,n){let{gen:i,it:o}=e,{allErrors:a,schemaEnv:s,opts:c}=o,d=c.passContext?mn.default.this:Xe.nil;n?l():p();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let f=i.let("valid");i.try(()=>{i.code((0,Xe._)`await ${(0,Lu.callValidateCode)(e,t,d)}`),u(t),a||i.assign(f,!0)},g=>{i.if((0,Xe._)`!(${g} instanceof ${o.ValidationError})`,()=>i.throw(g)),m(g),a||i.assign(f,!1)}),e.ok(f)}function p(){e.result((0,Lu.callValidateCode)(e,t,d),()=>u(t),()=>m(t))}function m(f){let g=(0,Xe._)`${f}.errors`;i.assign(mn.default.vErrors,(0,Xe._)`${mn.default.vErrors} === null ? ${g} : ${mn.default.vErrors}.concat(${g})`),i.assign(mn.default.errors,(0,Xe._)`${mn.default.vErrors}.length`)}function u(f){var g;if(!o.opts.unevaluated)return;let y=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(o.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(o.props=Do.mergeEvaluated.props(i,y.props,o.props));else{let w=i.var("props",(0,Xe._)`${f}.evaluated.props`);o.props=Do.mergeEvaluated.props(i,w,o.props,Xe.Name)}if(o.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(o.items=Do.mergeEvaluated.items(i,y.items,o.items));else{let w=i.var("items",(0,Xe._)`${f}.evaluated.items`);o.items=Do.mergeEvaluated.items(i,w,o.items,Xe.Name)}}}Nr.callRef=jo;Nr.default=Ab});var Mu=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var Rb=Tu(),Eb=Co(),Pb=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Rb.default,Eb.default];uc.default=Pb});var Fu=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var $o=x(),ir=$o.operators,To={maximum:{okStr:"<=",ok:ir.LTE,fail:ir.GT},minimum:{okStr:">=",ok:ir.GTE,fail:ir.LT},exclusiveMaximum:{okStr:"<",ok:ir.LT,fail:ir.GTE},exclusiveMinimum:{okStr:">",ok:ir.GT,fail:ir.LTE}},Nb={message:({keyword:e,schemaCode:t})=>(0,$o.str)`must be ${To[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,$o._)`{comparison: ${To[e].okStr}, limit: ${t}}`},Ob={keyword:Object.keys(To),type:"number",schemaType:"number",$data:!0,error:Nb,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,$o._)`${r} ${To[t].fail} ${n} || isNaN(${r})`)}};fc.default=Ob});var Uu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var si=x(),Sb={message:({schemaCode:e})=>(0,si.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,si._)`{multipleOf: ${e}}`},Db={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Sb,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,o=i.opts.multipleOfPrecision,a=t.let("res"),s=o?(0,si._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${o}`:(0,si._)`${a} !== parseInt(${a})`;e.fail$data((0,si._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};mc.default=Db});var Bu=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});function qu(e){let t=e.length,r=0,n=0,i;for(;n<t;)r++,i=e.charCodeAt(n++),i>=55296&&i<=56319&&n<t&&(i=e.charCodeAt(n),(i&64512)===56320&&n++);return r}gc.default=qu;qu.code='require("ajv/dist/runtime/ucs2length").default'});var zu=E(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var Or=x(),jb=q(),Cb=Bu(),$b={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Or.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Or._)`{limit: ${e}}`},Tb={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:$b,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,o=t==="maxLength"?Or.operators.GT:Or.operators.LT,a=i.opts.unicode===!1?(0,Or._)`${r}.length`:(0,Or._)`${(0,jb.useFunc)(e.gen,Cb.default)}(${r})`;e.fail$data((0,Or._)`${a} ${o} ${n}`)}};yc.default=Tb});var Gu=E(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var Lb=ct(),xb=q(),gn=x(),Vb={message:({schemaCode:e})=>(0,gn.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,gn._)`{pattern: ${e}}`},Mb={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Vb,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:o,it:a}=e,s=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,d=c.code==="new RegExp"?(0,gn._)`new RegExp`:(0,xb.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,gn._)`${d}(${o}, ${s}).test(${r})`),()=>t.assign(l,!1)),e.fail$data((0,gn._)`!${l}`)}else{let c=(0,Lb.usePattern)(e,i);e.fail$data((0,gn._)`!${c}.test(${r})`)}}};hc.default=Mb});var Ju=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var ci=x(),Fb={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ci.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ci._)`{limit: ${e}}`},Ub={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Fb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?ci.operators.GT:ci.operators.LT;e.fail$data((0,ci._)`Object.keys(${r}).length ${i} ${n}`)}};wc.default=Ub});var Wu=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var li=ct(),di=x(),qb=q(),Bb={message:({params:{missingProperty:e}})=>(0,di.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,di._)`{missingProperty: ${e}}`},zb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Bb,code(e){let{gen:t,schema:r,schemaCode:n,data:i,$data:o,it:a}=e,{opts:s}=a;if(!o&&r.length===0)return;let c=r.length>=s.loopRequired;if(a.allErrors?d():l(),s.strictRequired){let u=e.parentSchema.properties,{definedProperties:f}=e.it;for(let g of r)if(u?.[g]===void 0&&!f.has(g)){let y=a.schemaEnv.baseId+a.errSchemaPath,w=`required property "${g}" is not defined at "${y}" (strictRequired)`;(0,qb.checkStrictMode)(a,w,a.opts.strictRequired)}}function d(){if(c||o)e.block$data(di.nil,p);else for(let u of r)(0,li.checkReportMissingProp)(e,u)}function l(){let u=t.let("missing");if(c||o){let f=t.let("valid",!0);e.block$data(f,()=>m(u,f)),e.ok(f)}else t.if((0,li.checkMissingProp)(e,r,u)),(0,li.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,li.noPropertyInData)(t,i,u,s.ownProperties),()=>e.error())})}function m(u,f){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(f,(0,li.propertyInData)(t,i,u,s.ownProperties)),t.if((0,di.not)(f),()=>{e.error(),t.break()})},di.nil)}}};Ic.default=zb});var Ku=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var pi=x(),Gb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,pi.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,pi._)`{limit: ${e}}`},Jb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Gb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?pi.operators.GT:pi.operators.LT;e.fail$data((0,pi._)`${r}.length ${i} ${n}`)}};vc.default=Jb});var Lo=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var Yu=zs();Yu.code='require("ajv/dist/runtime/equal").default';bc.default=Yu});var Hu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var kc=Hn(),De=x(),Wb=q(),Kb=Lo(),Yb={message:({params:{i:e,j:t}})=>(0,De.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,De._)`{i: ${e}, j: ${t}}`},Hb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Yb,code(e){let{gen:t,data:r,$data:n,schema:i,parentSchema:o,schemaCode:a,it:s}=e;if(!n&&!i)return;let c=t.let("valid"),d=o.items?(0,kc.getSchemaTypes)(o.items):[];e.block$data(c,l,(0,De._)`${a} === false`),e.ok(c);function l(){let f=t.let("i",(0,De._)`${r}.length`),g=t.let("j");e.setParams({i:f,j:g}),t.assign(c,!0),t.if((0,De._)`${f} > 1`,()=>(p()?m:u)(f,g))}function p(){return d.length>0&&!d.some(f=>f==="object"||f==="array")}function m(f,g){let y=t.name("item"),w=(0,kc.checkDataTypes)(d,y,s.opts.strictNumbers,kc.DataType.Wrong),A=t.const("indices",(0,De._)`{}`);t.for((0,De._)`;${f}--;`,()=>{t.let(y,(0,De._)`${r}[${f}]`),t.if(w,(0,De._)`continue`),d.length>1&&t.if((0,De._)`typeof ${y} == "string"`,(0,De._)`${y} += "_"`),t.if((0,De._)`typeof ${A}[${y}] == "number"`,()=>{t.assign(g,(0,De._)`${A}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,De._)`${A}[${y}] = ${f}`)})}function u(f,g){let y=(0,Wb.useFunc)(t,Kb.default),w=t.name("outer");t.label(w).for((0,De._)`;${f}--;`,()=>t.for((0,De._)`${g} = ${f}; ${g}--;`,()=>t.if((0,De._)`${y}(${r}[${f}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};_c.default=Hb});var Zu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var Ac=x(),Zb=q(),Xb=Lo(),Qb={message:"must be equal to constant",params:({schemaCode:e})=>(0,Ac._)`{allowedValue: ${e}}`},ek={keyword:"const",$data:!0,error:Qb,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,Ac._)`!${(0,Zb.useFunc)(t,Xb.default)}(${r}, ${i})`):e.fail((0,Ac._)`${o} !== ${r}`)}};Rc.default=ek});var Xu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var ui=x(),tk=q(),rk=Lo(),nk={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,ui._)`{allowedValues: ${e}}`},ik={keyword:"enum",schemaType:"array",$data:!0,error:nk,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:o,it:a}=e;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let s=i.length>=a.opts.loopEnum,c,d=()=>c??(c=(0,tk.useFunc)(t,rk.default)),l;if(s||n)l=t.let("valid"),e.block$data(l,p);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let u=t.const("vSchema",o);l=(0,ui.or)(...i.map((f,g)=>m(u,g)))}e.pass(l);function p(){t.assign(l,!1),t.forOf("v",o,u=>t.if((0,ui._)`${d()}(${r}, ${u})`,()=>t.assign(l,!0).break()))}function m(u,f){let g=i[f];return typeof g=="object"&&g!==null?(0,ui._)`${d()}(${r}, ${u}[${f}])`:(0,ui._)`${r} === ${g}`}}};Ec.default=ik});var Qu=E(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});var ok=Fu(),ak=Uu(),sk=zu(),ck=Gu(),lk=Ju(),dk=Wu(),pk=Ku(),uk=Hu(),fk=Zu(),mk=Xu(),gk=[ok.default,ak.default,sk.default,ck.default,lk.default,dk.default,pk.default,uk.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},fk.default,mk.default];Pc.default=gk});var Oc=E(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.validateAdditionalItems=void 0;var Sr=x(),Nc=q(),yk={message:({params:{len:e}})=>(0,Sr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Sr._)`{limit: ${e}}`},hk={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:yk,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Nc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}ef(e,n)}};function ef(e,t){let{gen:r,schema:n,data:i,keyword:o,it:a}=e;a.items=!0;let s=r.const("len",(0,Sr._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,Sr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,Nc.alwaysValidSchema)(a,n)){let d=r.var("valid",(0,Sr._)`${s} <= ${t.length}`);r.if((0,Sr.not)(d),()=>c(d)),e.ok(d)}function c(d){r.forRange("i",t.length,s,l=>{e.subschema({keyword:o,dataProp:l,dataPropType:Nc.Type.Num},d),a.allErrors||r.if((0,Sr.not)(d),()=>r.break())})}}fi.validateAdditionalItems=ef;fi.default=hk});var Sc=E(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.validateTuple=void 0;var tf=x(),xo=q(),wk=ct(),Ik={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return rf(e,"additionalItems",t);r.items=!0,!(0,xo.alwaysValidSchema)(r,t)&&e.ok((0,wk.validateArray)(e))}};function rf(e,t,r=e.schema){let{gen:n,parentSchema:i,data:o,keyword:a,it:s}=e;l(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=xo.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),d=n.const("len",(0,tf._)`${o}.length`);r.forEach((p,m)=>{(0,xo.alwaysValidSchema)(s,p)||(n.if((0,tf._)`${d} > ${m}`,()=>e.subschema({keyword:a,schemaProp:m,dataProp:m},c)),e.ok(c))});function l(p){let{opts:m,errSchemaPath:u}=s,f=r.length,g=f===p.minItems&&(f===p.maxItems||p[t]===!1);if(m.strictTuples&&!g){let y=`"${a}" is ${f}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,xo.checkStrictMode)(s,y,m.strictTuples)}}}mi.validateTuple=rf;mi.default=Ik});var nf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var vk=Sc(),bk={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,vk.validateTuple)(e,"items")};Dc.default=bk});var af=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var of=x(),kk=q(),_k=ct(),Ak=Oc(),Rk={message:({params:{len:e}})=>(0,of.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,of._)`{limit: ${e}}`},Ek={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Rk,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,kk.alwaysValidSchema)(n,t)&&(i?(0,Ak.validateAdditionalItems)(e,i):e.ok((0,_k.validateArray)(e)))}};jc.default=Ek});var sf=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var dt=x(),Vo=q(),Pk={message:({params:{min:e,max:t}})=>t===void 0?(0,dt.str)`must contain at least ${e} valid item(s)`:(0,dt.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,dt._)`{minContains: ${e}}`:(0,dt._)`{minContains: ${e}, maxContains: ${t}}`},Nk={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Pk,code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:o}=e,a,s,{minContains:c,maxContains:d}=n;o.opts.next?(a=c===void 0?1:c,s=d):a=1;let l=t.const("len",(0,dt._)`${i}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,Vo.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,Vo.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,Vo.alwaysValidSchema)(o,r)){let g=(0,dt._)`${l} >= ${a}`;s!==void 0&&(g=(0,dt._)`${g} && ${l} <= ${s}`),e.pass(g);return}o.items=!0;let p=t.name("valid");s===void 0&&a===1?u(p,()=>t.if(p,()=>t.break())):a===0?(t.let(p,!0),s!==void 0&&t.if((0,dt._)`${i}.length > 0`,m)):(t.let(p,!1),m()),e.result(p,()=>e.reset());function m(){let g=t.name("_valid"),y=t.let("count",0);u(g,()=>t.if(g,()=>f(y)))}function u(g,y){t.forRange("i",0,l,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:Vo.Type.Num,compositeRule:!0},g),y()})}function f(g){t.code((0,dt._)`${g}++`),s===void 0?t.if((0,dt._)`${g} >= ${a}`,()=>t.assign(p,!0).break()):(t.if((0,dt._)`${g} > ${s}`,()=>t.assign(p,!1).break()),a===1?t.assign(p,!0):t.if((0,dt._)`${g} >= ${a}`,()=>t.assign(p,!0)))}}};Cc.default=Nk});var Mo=E(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.validateSchemaDeps=Ct.validatePropertyDeps=Ct.error=void 0;var $c=x(),Ok=q(),gi=ct();Ct.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,$c.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,$c._)`{property: ${e},
6
6
  missingProperty: ${n},
7
7
  depsCount: ${t},
8
- deps: ${r}}`};var Nk={keyword:"dependencies",type:"object",schemaType:"object",error:jt.error,code(e){let[t,r]=Ok(e);af(e,t),sf(e,r)}};function Ok({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let i=Array.isArray(e[n])?t:r;i[n]=e[n]}return[t,r]}function af(e,t=e.schema){let{gen:r,data:n,it:i}=e;if(Object.keys(t).length===0)return;let o=r.let("missing");for(let a in t){let s=t[a];if(s.length===0)continue;let c=(0,gi.propertyInData)(r,n,a,i.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),i.allErrors?r.if(c,()=>{for(let l of s)(0,gi.checkReportMissingProp)(e,l)}):(r.if((0,Cc._)`${c} && (${(0,gi.checkMissingProp)(e,s,o)})`),(0,gi.reportMissingProp)(e,o),r.else())}}jt.validatePropertyDeps=af;function sf(e,t=e.schema){let{gen:r,data:n,keyword:i,it:o}=e,a=r.name("valid");for(let s in t)(0,Pk.alwaysValidSchema)(o,t[s])||(r.if((0,gi.propertyInData)(r,n,s,o.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:s},a);e.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),e.ok(a))}jt.validateSchemaDeps=sf;jt.default=Nk});var lf=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var cf=x(),Sk=q(),Dk={message:"property name must be valid",params:({params:e})=>(0,cf._)`{propertyName: ${e.propertyName}}`},jk={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Dk,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,Sk.alwaysValidSchema)(i,r))return;let o=t.name("valid");t.forIn("key",n,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},o),t.if((0,cf.not)(o),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(o)}};$c.default=jk});var Lc=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Vo=ct(),bt=x(),Ck=st(),Mo=q(),$k={message:"must NOT have additional properties",params:({params:e})=>(0,bt._)`{additionalProperty: ${e.additionalProperty}}`},Tk={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:$k,code(e){let{gen:t,schema:r,parentSchema:n,data:i,errsCount:o,it:a}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,Mo.alwaysValidSchema)(a,r))return;let l=(0,Vo.allSchemaProperties)(n.properties),d=(0,Vo.allSchemaProperties)(n.patternProperties);p(),e.ok((0,bt._)`${o} === ${Ck.default.errors}`);function p(){t.forIn("key",i,y=>{!l.length&&!d.length?m(y):t.if(f(y),()=>m(y))})}function f(y){let w;if(l.length>8){let A=(0,Mo.schemaRefOrVal)(a,n.properties,"properties");w=(0,Vo.isOwnProperty)(t,A,y)}else l.length?w=(0,bt.or)(...l.map(A=>(0,bt._)`${y} === ${A}`)):w=bt.nil;return d.length&&(w=(0,bt.or)(w,...d.map(A=>(0,bt._)`${(0,Vo.usePattern)(e,A)}.test(${y})`))),(0,bt.not)(w)}function u(y){t.code((0,bt._)`delete ${i}[${y}]`)}function m(y){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){u(y);return}if(r===!1){e.setParams({additionalProperty:y}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,Mo.alwaysValidSchema)(a,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(y,w,!1),t.if((0,bt.not)(w),()=>{e.reset(),u(y)})):(g(y,w),s||t.if((0,bt.not)(w),()=>t.break()))}}function g(y,w,A){let b={keyword:"additionalProperties",dataProp:y,dataPropType:Mo.Type.Str};A===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};Tc.default=Tk});var uf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var Lk=ei(),df=ct(),xc=q(),pf=Lc(),xk={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:o}=e;o.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&pf.default.code(new Lk.KeywordCxt(o,pf.default,"additionalProperties"));let a=(0,df.allSchemaProperties)(r);for(let p of a)o.definedProperties.add(p);o.opts.unevaluated&&a.length&&o.props!==!0&&(o.props=xc.mergeEvaluated.props(t,(0,xc.toHash)(a),o.props));let s=a.filter(p=>!(0,xc.alwaysValidSchema)(o,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)l(p)?d(p):(t.if((0,df.propertyInData)(t,i,p,o.opts.ownProperties)),d(p),o.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function l(p){return o.opts.useDefaults&&!o.compositeRule&&r[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};Vc.default=xk});var yf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var ff=ct(),Fo=x(),mf=q(),gf=q(),Vk={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:i,it:o}=e,{opts:a}=o,s=(0,ff.allSchemaProperties)(r),c=s.filter(g=>(0,mf.alwaysValidSchema)(o,r[g]));if(s.length===0||c.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let l=a.strictSchema&&!a.allowMatchingProperties&&i.properties,d=t.name("valid");o.props!==!0&&!(o.props instanceof Fo.Name)&&(o.props=(0,gf.evaluatedPropsToName)(t,o.props));let{props:p}=o;f();function f(){for(let g of s)l&&u(g),o.allErrors?m(g):(t.var(d,!0),m(g),t.if(d))}function u(g){for(let y in l)new RegExp(g).test(y)&&(0,mf.checkStrictMode)(o,`property ${y} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,y=>{t.if((0,Fo._)`${(0,ff.usePattern)(e,g)}.test(${y})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:y,dataPropType:gf.Type.Str},d),o.opts.unevaluated&&p!==!0?t.assign((0,Fo._)`${p}[${y}]`,!0):!w&&!o.allErrors&&t.if((0,Fo.not)(d),()=>t.break())})})}}};Mc.default=Vk});var hf=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var Mk=q(),Fk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Mk.alwaysValidSchema)(n,r)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};Fc.default=Fk});var wf=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var Uk=ct(),qk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Uk.validateUnion,error:{message:"must match a schema in anyOf"}};Uc.default=qk});var If=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var Uo=x(),Bk=q(),zk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Uo._)`{passingSchemas: ${e.passing}}`},Gk={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:zk,code(e){let{gen:t,schema:r,parentSchema:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let o=r,a=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(l),e.result(a,()=>e.reset(),()=>e.error(!0));function l(){o.forEach((d,p)=>{let f;(0,Bk.alwaysValidSchema)(i,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Uo._)`${c} && ${a}`).assign(a,!1).assign(s,(0,Uo._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,p),f&&e.mergeEvaluated(f,Uo.Name)})})}}};qc.default=Gk});var vf=E(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var Jk=q(),Wk={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 i=t.name("valid");r.forEach((o,a)=>{if((0,Jk.alwaysValidSchema)(n,o))return;let s=e.subschema({keyword:"allOf",schemaProp:a},i);e.ok(i),e.mergeEvaluated(s)})}};Bc.default=Wk});var _f=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var qo=x(),kf=q(),Kk={message:({params:e})=>(0,qo.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,qo._)`{failingKeyword: ${e.ifClause}}`},Yk={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Kk,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,kf.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=bf(n,"then"),o=bf(n,"else");if(!i&&!o)return;let a=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),i&&o){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,l("then",d),l("else",d))}else i?t.if(s,l("then")):t.if((0,qo.not)(s),l("else"));e.pass(a,()=>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(a,s),e.mergeValidEvaluated(f,a),p?t.assign(p,(0,qo._)`${d}`):e.setParams({ifClause:d})}}}};function bf(e,t){let r=e.schema[t];return r!==void 0&&!(0,kf.alwaysValidSchema)(e,r)}zc.default=Yk});var Af=E(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});var Hk=q(),Xk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,Hk.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Gc.default=Xk});var Rf=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var Zk=Nc(),Qk=tf(),e_=Oc(),t_=nf(),r_=of(),n_=xo(),i_=lf(),o_=Lc(),a_=uf(),s_=yf(),c_=hf(),l_=wf(),d_=If(),p_=vf(),u_=_f(),f_=Af();function m_(e=!1){let t=[c_.default,l_.default,d_.default,p_.default,u_.default,f_.default,i_.default,o_.default,n_.default,a_.default,s_.default];return e?t.push(Qk.default,t_.default):t.push(Zk.default,e_.default),t.push(r_.default),t}Jc.default=m_});var Kc=E(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.dynamicAnchor=void 0;var Wc=x(),g_=st(),Ef=ri(),y_=Do(),h_={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Pf(e,e.schema)};function Pf(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let i=(0,Wc._)`${g_.default.dynamicAnchors}${(0,Wc.getProperty)(t)}`,o=n.errSchemaPath==="#"?n.validateName:w_(e);r.if((0,Wc._)`!${i}`,()=>r.assign(i,o))}yi.dynamicAnchor=Pf;function w_(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:i,baseId:o,localRefs:a,meta:s}=t.root,{schemaId:c}=n.opts,l=new Ef.SchemaEnv({schema:r,schemaId:c,root:i,baseId:o,localRefs:a,meta:s});return Ef.compileSchema.call(n,l),(0,y_.getValidate)(e,l)}yi.default=h_});var Yc=E(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.dynamicRef=void 0;var Nf=x(),I_=st(),Of=Do(),v_={keyword:"$dynamicRef",schemaType:"string",code:e=>Sf(e,e.schema)};function Sf(e,t){let{gen:r,keyword:n,it:i}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let o=t.slice(1);if(i.allErrors)a();else{let c=r.let("valid",!1);a(c),e.ok(c)}function a(c){if(i.schemaEnv.root.dynamicAnchors[o]){let l=r.let("_v",(0,Nf._)`${I_.default.dynamicAnchors}${(0,Nf.getProperty)(o)}`);r.if(l,s(l,c),s(i.validateName,c))}else s(i.validateName,c)()}function s(c,l){return l?()=>r.block(()=>{(0,Of.callRef)(e,c),r.let(l,!0)}):()=>(0,Of.callRef)(e,c)}}hi.dynamicRef=Sf;hi.default=v_});var Df=E(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});var b_=Kc(),k_=q(),__={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,b_.dynamicAnchor)(e,""):(0,k_.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Hc.default=__});var jf=E(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});var A_=Yc(),R_={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,A_.dynamicRef)(e,e.schema)};Xc.default=R_});var Cf=E(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});var E_=Kc(),P_=Yc(),N_=Df(),O_=jf(),S_=[E_.default,P_.default,N_.default,O_.default];Zc.default=S_});var Tf=E(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});var $f=xo(),D_={keyword:"dependentRequired",type:"object",schemaType:"object",error:$f.error,code:e=>(0,$f.validatePropertyDeps)(e)};Qc.default=D_});var Lf=E(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});var j_=xo(),C_={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,j_.validateSchemaDeps)(e)};el.default=C_});var xf=E(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});var $_=q(),T_={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,$_.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};tl.default=T_});var Vf=E(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});var L_=Tf(),x_=Lf(),V_=xf(),M_=[L_.default,x_.default,V_.default];rl.default=M_});var Ff=E(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});var ir=x(),Mf=q(),F_=st(),U_={message:"must NOT have unevaluated properties",params:({params:e})=>(0,ir._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},q_={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:U_,code(e){let{gen:t,schema:r,data:n,errsCount:i,it:o}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:a,props:s}=o;s instanceof ir.Name?t.if((0,ir._)`${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))),o.props=!0,e.ok((0,ir._)`${i} === ${F_.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),a||t.break();return}if(!(0,Mf.alwaysValidSchema)(o,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:Mf.Type.Str},f),a||t.if((0,ir.not)(f),()=>t.break())}}function l(p,f){return(0,ir._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,ir._)`${f} !== ${m}`);return(0,ir.and)(...u)}}};nl.default=q_});var qf=E(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});var Sr=x(),Uf=q(),B_={message:({params:{len:e}})=>(0,Sr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Sr._)`{limit: ${e}}`},z_={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:B_,code(e){let{gen:t,schema:r,data:n,it:i}=e,o=i.items||0;if(o===!0)return;let a=t.const("len",(0,Sr._)`${n}.length`);if(r===!1)e.setParams({len:o}),e.fail((0,Sr._)`${a} > ${o}`);else if(typeof r=="object"&&!(0,Uf.alwaysValidSchema)(i,r)){let c=t.var("valid",(0,Sr._)`${a} <= ${o}`);t.if((0,Sr.not)(c),()=>s(c,o)),e.ok(c)}i.items=!0;function s(c,l){t.forRange("i",l,a,d=>{e.subschema({keyword:"unevaluatedItems",dataProp:d,dataPropType:Uf.Type.Num},c),i.allErrors||t.if((0,Sr.not)(c),()=>t.break())})}}};il.default=z_});var Bf=E(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});var G_=Ff(),J_=qf(),W_=[G_.default,J_.default];ol.default=W_});var zf=E(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});var ke=x(),K_={message:({schemaCode:e})=>(0,ke.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ke._)`{format: ${e}}`},Y_={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:K_,code(e,t){let{gen:r,data:n,$data:i,schema:o,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:d,self:p}=s;if(!c.validateFormats)return;i?f():u();function f(){let m=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,ke._)`${m}[${a}]`),y=r.let("fType"),w=r.let("format");r.if((0,ke._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(y,(0,ke._)`${g}.type || "string"`).assign(w,(0,ke._)`${g}.validate`),()=>r.assign(y,(0,ke._)`"string"`).assign(w,g)),e.fail$data((0,ke.or)(A(),b()));function A(){return c.strictSchema===!1?ke.nil:(0,ke._)`${a} && !${w}`}function b(){let R=d.$async?(0,ke._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,ke._)`${w}(${n})`,I=(0,ke._)`(typeof ${w} == "function" ? ${R} : ${w}.test(${n}))`;return(0,ke._)`${w} && ${w} !== true && ${y} === ${t} && !${I}`}}function u(){let m=p.formats[o];if(!m){A();return}if(m===!0)return;let[g,y,w]=b(m);g===t&&e.pass(R());function A(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${o}" ignored in schema at path "${l}"`}}function b(I){let _=I instanceof RegExp?(0,ke.regexpCode)(I):c.code.formats?(0,ke._)`${c.code.formats}${(0,ke.getProperty)(o)}`:void 0,S=r.scopeValue("formats",{key:o,ref:I,code:_});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,ke._)`${S}.validate`]:["string",I,S]}function R(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,ke._)`await ${w}(${n})`}return typeof y=="function"?(0,ke._)`${w}(${n})`:(0,ke._)`${w}.test(${n})`}}}};al.default=Y_});var Gf=E(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});var H_=zf(),X_=[H_.default];sl.default=X_});var Jf=E(yn=>{"use strict";Object.defineProperty(yn,"__esModule",{value:!0});yn.contentVocabulary=yn.metadataVocabulary=void 0;yn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];yn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Kf=E(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});var Z_=xu(),Q_=Xu(),eA=Rf(),tA=Cf(),rA=Vf(),nA=Bf(),iA=Gf(),Wf=Jf(),oA=[tA.default,Z_.default,Q_.default,(0,eA.default)(!0),iA.default,Wf.metadataVocabulary,Wf.contentVocabulary,rA.default,nA.default];cl.default=oA});var Hf=E(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.DiscrError=void 0;var Yf;(function(e){e.Tag="tag",e.Mapping="mapping"})(Yf||(Bo.DiscrError=Yf={}))});var Zf=E(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});var hn=x(),ll=Hf(),Xf=ri(),aA=ti(),sA=q(),cA={message:({params:{discrError:e,tagName:t}})=>e===ll.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,hn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},lA={keyword:"discriminator",type:"object",schemaType:"object",error:cA,code(e){let{gen:t,data:r,schema:n,parentSchema:i,it:o}=e,{oneOf:a}=i;if(!o.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(!a)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),l=t.const("tag",(0,hn._)`${r}${(0,hn.getProperty)(s)}`);t.if((0,hn._)`typeof ${l} == "string"`,()=>d(),()=>e.error(!1,{discrError:ll.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,hn._)`${l} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:ll.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,hn.Name),m}function f(){var u;let m={},g=w(i),y=!0;for(let R=0;R<a.length;R++){let I=a[R];if(I?.$ref&&!(0,sA.schemaHasRulesButRef)(I,o.self.RULES)){let S=I.$ref;if(I=Xf.resolveRef.call(o.self,o.schemaEnv.root,o.baseId,S),I instanceof Xf.SchemaEnv&&(I=I.schema),I===void 0)throw new aA.default(o.opts.uriResolver,o.baseId,S)}let _=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof _!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);y=y&&(g||w(I)),A(_,R)}if(!y)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:R}){return Array.isArray(R)&&R.includes(s)}function A(R,I){if(R.const)b(R.const,I);else if(R.enum)for(let _ of R.enum)b(_,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(R,I){if(typeof R!="string"||R in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[R]=I}}}};dl.default=lA});var Qf=E((VS,dA)=>{dA.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 em=E((MS,pA)=>{pA.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 tm=E((FS,uA)=>{uA.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 rm=E((US,fA)=>{fA.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 nm=E((qS,mA)=>{mA.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 im=E((BS,gA)=>{gA.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 om=E((zS,yA)=>{yA.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 am=E((GS,hA)=>{hA.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 sm=E(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var wA=Qf(),IA=em(),vA=tm(),bA=rm(),kA=nm(),_A=im(),AA=om(),RA=am(),EA=["/properties"];function PA(e){return[wA,IA,vA,bA,kA,t(this,_A),AA,t(this,RA)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,EA):n}}pl.default=PA});var Dr=E((me,fl)=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.MissingRefError=me.ValidationError=me.CodeGen=me.Name=me.nil=me.stringify=me.str=me._=me.KeywordCxt=me.Ajv2020=void 0;var NA=ju(),OA=Kf(),SA=Zf(),DA=sm(),ul="https://json-schema.org/draft/2020-12/schema",wn=class extends NA.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),OA.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(SA.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(DA.default.call(this,t),this.refs["http://json-schema.org/schema"]=ul)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(ul)?ul:void 0)}};me.Ajv2020=wn;fl.exports=me=wn;fl.exports.Ajv2020=wn;Object.defineProperty(me,"__esModule",{value:!0});me.default=wn;var jA=ei();Object.defineProperty(me,"KeywordCxt",{enumerable:!0,get:function(){return jA.KeywordCxt}});var In=x();Object.defineProperty(me,"_",{enumerable:!0,get:function(){return In._}});Object.defineProperty(me,"str",{enumerable:!0,get:function(){return In.str}});Object.defineProperty(me,"stringify",{enumerable:!0,get:function(){return In.stringify}});Object.defineProperty(me,"nil",{enumerable:!0,get:function(){return In.nil}});Object.defineProperty(me,"Name",{enumerable:!0,get:function(){return In.Name}});Object.defineProperty(me,"CodeGen",{enumerable:!0,get:function(){return In.CodeGen}});var CA=bo();Object.defineProperty(me,"ValidationError",{enumerable:!0,get:function(){return CA.default}});var $A=ti();Object.defineProperty(me,"MissingRefError",{enumerable:!0,get:function(){return $A.default}})});import be from"node:process";import Qe from"node:path";import{spawnSync as dO}from"node:child_process";import{readFile as pO}from"node:fs/promises";var te="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",Ot="^sha256:[a-f0-9]{64}$";import{constants as ca}from"node:fs";import{lstat as dR,mkdir as Nn,open as Am,readFile as Ri,realpath as Vr,rename as pR,unlink as Sl}from"node:fs/promises";import{randomUUID as Dl}from"node:crypto";import Ne from"node:path";var cm=nn(Dr(),1);var je={type:"string",pattern:Ot},TA={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},ml={type:"string",format:"date-time"},gl={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"]},lm={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}}},yl={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:je,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:te}}}},compatibility:lm,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:je,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:te},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:te}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:gl}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},dm={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:je,deliveryReceiptId:je,usage:{enum:["runtime","development"]}}},{$id:KS,...pm}=yl,LA={...pm,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...yl.required,"availability","packageSources"],properties:{...yl.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:dm}}},xA={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[pm,(()=>{let{$id:e,...t}=LA;return t})()]},zo={$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:gl,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:gl,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:je,stderrDigest:je,startedAt:ml,completedAt:ml,projectStateDigest:je,runtime:lm}},VA={...zo,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...zo.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...zo.properties,evidenceId:je,capabilityId:{type:"string",pattern:te},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:je}},MA={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:je,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:je,projectStateDigest:je,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:je,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:te}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:te}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:je},committedAt:ml,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:TA,revision:je}}},sources:{type:"array",minItems:1,maxItems:128,items:dm},packageJsonDigest:je,lockfileDigest:je}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},wi=new cm.Ajv2020({allErrors:!0,strict:!0});wi.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Jo={capabilityBundleRelease:wi.compile(xA),verificationResult:wi.compile(zo),adoptionEvidence:wi.compile(VA),projectAdoptionLock:wi.compile(MA)},Go=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Wo(e,t,r){if(!t(r))throw new Go(e,t.errors??[]);return r}var um=e=>{let t=Wo("capabilityBundleRelease",Jo.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Go("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 i="",o=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(i)<=0||o.has(c))&&r(),i=c,o.add(c)}let a=t.integration?.packages??[];(t.availability.maturity!=="candidate"||t.availability.sourceState==="development-registry")&&(a.length!==n.length||a.some(s=>!n.some(c=>c.packageName===s.packageName&&c.version===s.version&&c.usage===s.usage)))&&r()}return t},fm=e=>Wo("verificationResult",Jo.verificationResult,e),Ii=e=>Wo("adoptionEvidence",Jo.adoptionEvidence,e),Ge=e=>Wo("projectAdoptionLock",Jo.projectAdoptionLock,e);import{lstat as KA,readFile as vl,realpath as bl}from"node:fs/promises";import bn from"node:path";import{createHash as FA}from"node:crypto";function h(e){return`sha256:${FA("sha256").update(e).digest("hex")}`}function k(e){return Array.isArray(e)?`[${e.map(k).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)}:${k(n)}`).join(",")}}`:JSON.stringify(e)}var Ct=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function mm(e){if(!new RegExp(te).test(e))throw new Ct("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function Ko(e,t){if(e.includes("\r"))throw new Ct("Managed regions require LF newlines");let{begin:r,end:n}=mm(t),i=e.split(r).length-1,o=e.split(n).length-1;if(i!==1||o!==1)throw new Ct("Managed region markers are unavailable or ambiguous");let a=e.indexOf(r)+r.length,s=e.indexOf(n,a),c=e.slice(a,s);if(/<!-- dyyto:(?:begin|end) /.test(c))throw new Ct("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
9
- `}function gm(e){let{begin:t,end:r}=mm(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new Ct("Managed regions require LF newlines");let n=e.source.split(t).length-1,i=e.source.split(r).length-1;if(n>1||i>1||n!==i)throw new Ct("Managed region markers are ambiguous");let o=e.content.replace(/^\n+|\n+$/g,"");if(/<!-- dyyto:(?:begin|end) /.test(o))throw new Ct("Managed regions cannot contain nested Dyyto markers");let a=`${t}
8
+ deps: ${r}}`};var Sk={keyword:"dependencies",type:"object",schemaType:"object",error:Ct.error,code(e){let[t,r]=Dk(e);cf(e,t),lf(e,r)}};function Dk({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let i=Array.isArray(e[n])?t:r;i[n]=e[n]}return[t,r]}function cf(e,t=e.schema){let{gen:r,data:n,it:i}=e;if(Object.keys(t).length===0)return;let o=r.let("missing");for(let a in t){let s=t[a];if(s.length===0)continue;let c=(0,gi.propertyInData)(r,n,a,i.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),i.allErrors?r.if(c,()=>{for(let d of s)(0,gi.checkReportMissingProp)(e,d)}):(r.if((0,$c._)`${c} && (${(0,gi.checkMissingProp)(e,s,o)})`),(0,gi.reportMissingProp)(e,o),r.else())}}Ct.validatePropertyDeps=cf;function lf(e,t=e.schema){let{gen:r,data:n,keyword:i,it:o}=e,a=r.name("valid");for(let s in t)(0,Ok.alwaysValidSchema)(o,t[s])||(r.if((0,gi.propertyInData)(r,n,s,o.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:s},a);e.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),e.ok(a))}Ct.validateSchemaDeps=lf;Ct.default=Sk});var pf=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var df=x(),jk=q(),Ck={message:"property name must be valid",params:({params:e})=>(0,df._)`{propertyName: ${e.propertyName}}`},$k={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Ck,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,jk.alwaysValidSchema)(i,r))return;let o=t.name("valid");t.forIn("key",n,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},o),t.if((0,df.not)(o),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(o)}};Tc.default=$k});var xc=E(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var Fo=ct(),bt=x(),Tk=st(),Uo=q(),Lk={message:"must NOT have additional properties",params:({params:e})=>(0,bt._)`{additionalProperty: ${e.additionalProperty}}`},xk={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Lk,code(e){let{gen:t,schema:r,parentSchema:n,data:i,errsCount:o,it:a}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,Uo.alwaysValidSchema)(a,r))return;let d=(0,Fo.allSchemaProperties)(n.properties),l=(0,Fo.allSchemaProperties)(n.patternProperties);p(),e.ok((0,bt._)`${o} === ${Tk.default.errors}`);function p(){t.forIn("key",i,y=>{!d.length&&!l.length?f(y):t.if(m(y),()=>f(y))})}function m(y){let w;if(d.length>8){let A=(0,Uo.schemaRefOrVal)(a,n.properties,"properties");w=(0,Fo.isOwnProperty)(t,A,y)}else d.length?w=(0,bt.or)(...d.map(A=>(0,bt._)`${y} === ${A}`)):w=bt.nil;return l.length&&(w=(0,bt.or)(w,...l.map(A=>(0,bt._)`${(0,Fo.usePattern)(e,A)}.test(${y})`))),(0,bt.not)(w)}function u(y){t.code((0,bt._)`delete ${i}[${y}]`)}function f(y){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){u(y);return}if(r===!1){e.setParams({additionalProperty:y}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,Uo.alwaysValidSchema)(a,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(y,w,!1),t.if((0,bt.not)(w),()=>{e.reset(),u(y)})):(g(y,w),s||t.if((0,bt.not)(w),()=>t.break()))}}function g(y,w,A){let b={keyword:"additionalProperties",dataProp:y,dataPropType:Uo.Type.Str};A===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};Lc.default=xk});var mf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var Vk=ei(),uf=ct(),Vc=q(),ff=xc(),Mk={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:o}=e;o.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&ff.default.code(new Vk.KeywordCxt(o,ff.default,"additionalProperties"));let a=(0,uf.allSchemaProperties)(r);for(let p of a)o.definedProperties.add(p);o.opts.unevaluated&&a.length&&o.props!==!0&&(o.props=Vc.mergeEvaluated.props(t,(0,Vc.toHash)(a),o.props));let s=a.filter(p=>!(0,Vc.alwaysValidSchema)(o,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)d(p)?l(p):(t.if((0,uf.propertyInData)(t,i,p,o.opts.ownProperties)),l(p),o.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function d(p){return o.opts.useDefaults&&!o.compositeRule&&r[p].default!==void 0}function l(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};Mc.default=Mk});var wf=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var gf=ct(),qo=x(),yf=q(),hf=q(),Fk={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:i,it:o}=e,{opts:a}=o,s=(0,gf.allSchemaProperties)(r),c=s.filter(g=>(0,yf.alwaysValidSchema)(o,r[g]));if(s.length===0||c.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let d=a.strictSchema&&!a.allowMatchingProperties&&i.properties,l=t.name("valid");o.props!==!0&&!(o.props instanceof qo.Name)&&(o.props=(0,hf.evaluatedPropsToName)(t,o.props));let{props:p}=o;m();function m(){for(let g of s)d&&u(g),o.allErrors?f(g):(t.var(l,!0),f(g),t.if(l))}function u(g){for(let y in d)new RegExp(g).test(y)&&(0,yf.checkStrictMode)(o,`property ${y} matches pattern ${g} (use allowMatchingProperties)`)}function f(g){t.forIn("key",n,y=>{t.if((0,qo._)`${(0,gf.usePattern)(e,g)}.test(${y})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:y,dataPropType:hf.Type.Str},l),o.opts.unevaluated&&p!==!0?t.assign((0,qo._)`${p}[${y}]`,!0):!w&&!o.allErrors&&t.if((0,qo.not)(l),()=>t.break())})})}}};Fc.default=Fk});var If=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var Uk=q(),qk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Uk.alwaysValidSchema)(n,r)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};Uc.default=qk});var vf=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var Bk=ct(),zk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Bk.validateUnion,error:{message:"must match a schema in anyOf"}};qc.default=zk});var bf=E(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var Bo=x(),Gk=q(),Jk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Bo._)`{passingSchemas: ${e.passing}}`},Wk={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Jk,code(e){let{gen:t,schema:r,parentSchema:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let o=r,a=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(d),e.result(a,()=>e.reset(),()=>e.error(!0));function d(){o.forEach((l,p)=>{let m;(0,Gk.alwaysValidSchema)(i,l)?t.var(c,!0):m=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Bo._)`${c} && ${a}`).assign(a,!1).assign(s,(0,Bo._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,p),m&&e.mergeEvaluated(m,Bo.Name)})})}}};Bc.default=Wk});var kf=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var Kk=q(),Yk={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 i=t.name("valid");r.forEach((o,a)=>{if((0,Kk.alwaysValidSchema)(n,o))return;let s=e.subschema({keyword:"allOf",schemaProp:a},i);e.ok(i),e.mergeEvaluated(s)})}};zc.default=Yk});var Rf=E(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});var zo=x(),Af=q(),Hk={message:({params:e})=>(0,zo.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,zo._)`{failingKeyword: ${e.ifClause}}`},Zk={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Hk,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,Af.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=_f(n,"then"),o=_f(n,"else");if(!i&&!o)return;let a=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),i&&o){let l=t.let("ifClause");e.setParams({ifClause:l}),t.if(s,d("then",l),d("else",l))}else i?t.if(s,d("then")):t.if((0,zo.not)(s),d("else"));e.pass(a,()=>e.error(!0));function c(){let l=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(l)}function d(l,p){return()=>{let m=e.subschema({keyword:l},s);t.assign(a,s),e.mergeValidEvaluated(m,a),p?t.assign(p,(0,zo._)`${l}`):e.setParams({ifClause:l})}}}};function _f(e,t){let r=e.schema[t];return r!==void 0&&!(0,Af.alwaysValidSchema)(e,r)}Gc.default=Zk});var Ef=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var Xk=q(),Qk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,Xk.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Jc.default=Qk});var Pf=E(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});var e_=Oc(),t_=nf(),r_=Sc(),n_=af(),i_=sf(),o_=Mo(),a_=pf(),s_=xc(),c_=mf(),l_=wf(),d_=If(),p_=vf(),u_=bf(),f_=kf(),m_=Rf(),g_=Ef();function y_(e=!1){let t=[d_.default,p_.default,u_.default,f_.default,m_.default,g_.default,a_.default,s_.default,o_.default,c_.default,l_.default];return e?t.push(t_.default,n_.default):t.push(e_.default,r_.default),t.push(i_.default),t}Wc.default=y_});var Yc=E(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.dynamicAnchor=void 0;var Kc=x(),h_=st(),Nf=ri(),w_=Co(),I_={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Of(e,e.schema)};function Of(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let i=(0,Kc._)`${h_.default.dynamicAnchors}${(0,Kc.getProperty)(t)}`,o=n.errSchemaPath==="#"?n.validateName:v_(e);r.if((0,Kc._)`!${i}`,()=>r.assign(i,o))}yi.dynamicAnchor=Of;function v_(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:i,baseId:o,localRefs:a,meta:s}=t.root,{schemaId:c}=n.opts,d=new Nf.SchemaEnv({schema:r,schemaId:c,root:i,baseId:o,localRefs:a,meta:s});return Nf.compileSchema.call(n,d),(0,w_.getValidate)(e,d)}yi.default=I_});var Hc=E(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.dynamicRef=void 0;var Sf=x(),b_=st(),Df=Co(),k_={keyword:"$dynamicRef",schemaType:"string",code:e=>jf(e,e.schema)};function jf(e,t){let{gen:r,keyword:n,it:i}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let o=t.slice(1);if(i.allErrors)a();else{let c=r.let("valid",!1);a(c),e.ok(c)}function a(c){if(i.schemaEnv.root.dynamicAnchors[o]){let d=r.let("_v",(0,Sf._)`${b_.default.dynamicAnchors}${(0,Sf.getProperty)(o)}`);r.if(d,s(d,c),s(i.validateName,c))}else s(i.validateName,c)()}function s(c,d){return d?()=>r.block(()=>{(0,Df.callRef)(e,c),r.let(d,!0)}):()=>(0,Df.callRef)(e,c)}}hi.dynamicRef=jf;hi.default=k_});var Cf=E(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});var __=Yc(),A_=q(),R_={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,__.dynamicAnchor)(e,""):(0,A_.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Zc.default=R_});var $f=E(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});var E_=Hc(),P_={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,E_.dynamicRef)(e,e.schema)};Xc.default=P_});var Tf=E(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});var N_=Yc(),O_=Hc(),S_=Cf(),D_=$f(),j_=[N_.default,O_.default,S_.default,D_.default];Qc.default=j_});var xf=E(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});var Lf=Mo(),C_={keyword:"dependentRequired",type:"object",schemaType:"object",error:Lf.error,code:e=>(0,Lf.validatePropertyDeps)(e)};el.default=C_});var Vf=E(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});var $_=Mo(),T_={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,$_.validateSchemaDeps)(e)};tl.default=T_});var Mf=E(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});var L_=q(),x_={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,L_.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};rl.default=x_});var Ff=E(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});var V_=xf(),M_=Vf(),F_=Mf(),U_=[V_.default,M_.default,F_.default];nl.default=U_});var qf=E(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});var or=x(),Uf=q(),q_=st(),B_={message:"must NOT have unevaluated properties",params:({params:e})=>(0,or._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},z_={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:B_,code(e){let{gen:t,schema:r,data:n,errsCount:i,it:o}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:a,props:s}=o;s instanceof or.Name?t.if((0,or._)`${s} !== true`,()=>t.forIn("key",n,p=>t.if(d(s,p),()=>c(p)))):s!==!0&&t.forIn("key",n,p=>s===void 0?c(p):t.if(l(s,p),()=>c(p))),o.props=!0,e.ok((0,or._)`${i} === ${q_.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),a||t.break();return}if(!(0,Uf.alwaysValidSchema)(o,r)){let m=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:Uf.Type.Str},m),a||t.if((0,or.not)(m),()=>t.break())}}function d(p,m){return(0,or._)`!${p} || !${p}[${m}]`}function l(p,m){let u=[];for(let f in p)p[f]===!0&&u.push((0,or._)`${m} !== ${f}`);return(0,or.and)(...u)}}};il.default=z_});var zf=E(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});var Dr=x(),Bf=q(),G_={message:({params:{len:e}})=>(0,Dr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Dr._)`{limit: ${e}}`},J_={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:G_,code(e){let{gen:t,schema:r,data:n,it:i}=e,o=i.items||0;if(o===!0)return;let a=t.const("len",(0,Dr._)`${n}.length`);if(r===!1)e.setParams({len:o}),e.fail((0,Dr._)`${a} > ${o}`);else if(typeof r=="object"&&!(0,Bf.alwaysValidSchema)(i,r)){let c=t.var("valid",(0,Dr._)`${a} <= ${o}`);t.if((0,Dr.not)(c),()=>s(c,o)),e.ok(c)}i.items=!0;function s(c,d){t.forRange("i",d,a,l=>{e.subschema({keyword:"unevaluatedItems",dataProp:l,dataPropType:Bf.Type.Num},c),i.allErrors||t.if((0,Dr.not)(c),()=>t.break())})}}};ol.default=J_});var Gf=E(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});var W_=qf(),K_=zf(),Y_=[W_.default,K_.default];al.default=Y_});var Jf=E(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});var _e=x(),H_={message:({schemaCode:e})=>(0,_e.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,_e._)`{format: ${e}}`},Z_={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:H_,code(e,t){let{gen:r,data:n,$data:i,schema:o,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:d,schemaEnv:l,self:p}=s;if(!c.validateFormats)return;i?m():u();function m(){let f=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,_e._)`${f}[${a}]`),y=r.let("fType"),w=r.let("format");r.if((0,_e._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(y,(0,_e._)`${g}.type || "string"`).assign(w,(0,_e._)`${g}.validate`),()=>r.assign(y,(0,_e._)`"string"`).assign(w,g)),e.fail$data((0,_e.or)(A(),b()));function A(){return c.strictSchema===!1?_e.nil:(0,_e._)`${a} && !${w}`}function b(){let R=l.$async?(0,_e._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,_e._)`${w}(${n})`,I=(0,_e._)`(typeof ${w} == "function" ? ${R} : ${w}.test(${n}))`;return(0,_e._)`${w} && ${w} !== true && ${y} === ${t} && !${I}`}}function u(){let f=p.formats[o];if(!f){A();return}if(f===!0)return;let[g,y,w]=b(f);g===t&&e.pass(R());function A(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${o}" ignored in schema at path "${d}"`}}function b(I){let _=I instanceof RegExp?(0,_e.regexpCode)(I):c.code.formats?(0,_e._)`${c.code.formats}${(0,_e.getProperty)(o)}`:void 0,O=r.scopeValue("formats",{key:o,ref:I,code:_});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,_e._)`${O}.validate`]:["string",I,O]}function R(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!l.$async)throw new Error("async format in sync schema");return(0,_e._)`await ${w}(${n})`}return typeof y=="function"?(0,_e._)`${w}(${n})`:(0,_e._)`${w}.test(${n})`}}}};sl.default=Z_});var Wf=E(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});var X_=Jf(),Q_=[X_.default];cl.default=Q_});var Kf=E(yn=>{"use strict";Object.defineProperty(yn,"__esModule",{value:!0});yn.contentVocabulary=yn.metadataVocabulary=void 0;yn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];yn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Hf=E(ll=>{"use strict";Object.defineProperty(ll,"__esModule",{value:!0});var eA=Mu(),tA=Qu(),rA=Pf(),nA=Tf(),iA=Ff(),oA=Gf(),aA=Wf(),Yf=Kf(),sA=[nA.default,eA.default,tA.default,(0,rA.default)(!0),aA.default,Yf.metadataVocabulary,Yf.contentVocabulary,iA.default,oA.default];ll.default=sA});var Xf=E(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.DiscrError=void 0;var Zf;(function(e){e.Tag="tag",e.Mapping="mapping"})(Zf||(Go.DiscrError=Zf={}))});var em=E(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var hn=x(),dl=Xf(),Qf=ri(),cA=ti(),lA=q(),dA={message:({params:{discrError:e,tagName:t}})=>e===dl.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,hn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},pA={keyword:"discriminator",type:"object",schemaType:"object",error:dA,code(e){let{gen:t,data:r,schema:n,parentSchema:i,it:o}=e,{oneOf:a}=i;if(!o.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(!a)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),d=t.const("tag",(0,hn._)`${r}${(0,hn.getProperty)(s)}`);t.if((0,hn._)`typeof ${d} == "string"`,()=>l(),()=>e.error(!1,{discrError:dl.DiscrError.Tag,tag:d,tagName:s})),e.ok(c);function l(){let u=m();t.if(!1);for(let f in u)t.elseIf((0,hn._)`${d} === ${f}`),t.assign(c,p(u[f]));t.else(),e.error(!1,{discrError:dl.DiscrError.Mapping,tag:d,tagName:s}),t.endIf()}function p(u){let f=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},f);return e.mergeEvaluated(g,hn.Name),f}function m(){var u;let f={},g=w(i),y=!0;for(let R=0;R<a.length;R++){let I=a[R];if(I?.$ref&&!(0,lA.schemaHasRulesButRef)(I,o.self.RULES)){let O=I.$ref;if(I=Qf.resolveRef.call(o.self,o.schemaEnv.root,o.baseId,O),I instanceof Qf.SchemaEnv&&(I=I.schema),I===void 0)throw new cA.default(o.opts.uriResolver,o.baseId,O)}let _=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof _!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);y=y&&(g||w(I)),A(_,R)}if(!y)throw new Error(`discriminator: "${s}" must be required`);return f;function w({required:R}){return Array.isArray(R)&&R.includes(s)}function A(R,I){if(R.const)b(R.const,I);else if(R.enum)for(let _ of R.enum)b(_,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(R,I){if(typeof R!="string"||R in f)throw new Error(`discriminator: "${s}" values must be unique strings`);f[R]=I}}}};pl.default=pA});var tm=E((US,uA)=>{uA.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 rm=E((qS,fA)=>{fA.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 nm=E((BS,mA)=>{mA.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 im=E((zS,gA)=>{gA.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 om=E((GS,yA)=>{yA.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 am=E((JS,hA)=>{hA.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 sm=E((WS,wA)=>{wA.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 cm=E((KS,IA)=>{IA.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 lm=E(ul=>{"use strict";Object.defineProperty(ul,"__esModule",{value:!0});var vA=tm(),bA=rm(),kA=nm(),_A=im(),AA=om(),RA=am(),EA=sm(),PA=cm(),NA=["/properties"];function OA(e){return[vA,bA,kA,_A,AA,t(this,RA),EA,t(this,PA)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,NA):n}}ul.default=OA});var jr=E((ge,ml)=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});ge.MissingRefError=ge.ValidationError=ge.CodeGen=ge.Name=ge.nil=ge.stringify=ge.str=ge._=ge.KeywordCxt=ge.Ajv2020=void 0;var SA=$u(),DA=Hf(),jA=em(),CA=lm(),fl="https://json-schema.org/draft/2020-12/schema",wn=class extends SA.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),DA.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(jA.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(CA.default.call(this,t),this.refs["http://json-schema.org/schema"]=fl)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(fl)?fl:void 0)}};ge.Ajv2020=wn;ml.exports=ge=wn;ml.exports.Ajv2020=wn;Object.defineProperty(ge,"__esModule",{value:!0});ge.default=wn;var $A=ei();Object.defineProperty(ge,"KeywordCxt",{enumerable:!0,get:function(){return $A.KeywordCxt}});var In=x();Object.defineProperty(ge,"_",{enumerable:!0,get:function(){return In._}});Object.defineProperty(ge,"str",{enumerable:!0,get:function(){return In.str}});Object.defineProperty(ge,"stringify",{enumerable:!0,get:function(){return In.stringify}});Object.defineProperty(ge,"nil",{enumerable:!0,get:function(){return In.nil}});Object.defineProperty(ge,"Name",{enumerable:!0,get:function(){return In.Name}});Object.defineProperty(ge,"CodeGen",{enumerable:!0,get:function(){return In.CodeGen}});var TA=_o();Object.defineProperty(ge,"ValidationError",{enumerable:!0,get:function(){return TA.default}});var LA=ti();Object.defineProperty(ge,"MissingRefError",{enumerable:!0,get:function(){return LA.default}})});import ke from"node:process";import et from"node:path";import{spawnSync as fO}from"node:child_process";import{readFile as mO}from"node:fs/promises";var re="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",St="^sha256:[a-f0-9]{64}$";import{constants as da}from"node:fs";import{lstat as uR,mkdir as Nn,open as Em,readFile as Ri,realpath as Mr,rename as fR,unlink as Dl}from"node:fs/promises";import{randomUUID as jl}from"node:crypto";import Ne from"node:path";var dm=nn(jr(),1);var je={type:"string",pattern:St},xA={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},gl={type:"string",format:"date-time"},yl={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"]},pm={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}}},hl={$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:re},version:{type:"string",minLength:1,maxLength:128},integrity:je,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:re}}}},compatibility:pm,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:je,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:re},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:re}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:yl}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},um={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:je,deliveryReceiptId:je,usage:{enum:["runtime","development"]}}},{$id:ZS,...fm}=hl,VA={...fm,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...hl.required,"availability","packageSources"],properties:{...hl.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:um}}},MA={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[fm,(()=>{let{$id:e,...t}=VA;return t})()]},Jo={$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:yl,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:yl,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:je,stderrDigest:je,startedAt:gl,completedAt:gl,projectStateDigest:je,runtime:pm}},FA={...Jo,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Jo.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Jo.properties,evidenceId:je,capabilityId:{type:"string",pattern:re},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:je}},UA={$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:re},version:{type:"string",minLength:1,maxLength:128},integrity:je,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:je,projectStateDigest:je,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:je,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:re}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:re}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:je},committedAt:gl,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:xA,revision:je}}},sources:{type:"array",minItems:1,maxItems:128,items:um},packageJsonDigest:je,lockfileDigest:je}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},wi=new dm.Ajv2020({allErrors:!0,strict:!0});wi.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Ko={capabilityBundleRelease:wi.compile(MA),verificationResult:wi.compile(Jo),adoptionEvidence:wi.compile(FA),projectAdoptionLock:wi.compile(UA)},Wo=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Yo(e,t,r){if(!t(r))throw new Wo(e,t.errors??[]);return r}var mm=e=>{let t=Yo("capabilityBundleRelease",Ko.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Wo("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 i="",o=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(i)<=0||o.has(c))&&r(),i=c,o.add(c)}let a=t.integration?.packages??[];(t.availability.maturity!=="candidate"||t.availability.sourceState==="development-registry")&&(a.length!==n.length||a.some(s=>!n.some(c=>c.packageName===s.packageName&&c.version===s.version&&c.usage===s.usage)))&&r()}return t},gm=e=>Yo("verificationResult",Ko.verificationResult,e),Ii=e=>Yo("adoptionEvidence",Ko.adoptionEvidence,e),Ke=e=>Yo("projectAdoptionLock",Ko.projectAdoptionLock,e);import{lstat as HA,readFile as bl,realpath as kl}from"node:fs/promises";import bn from"node:path";import{createHash as qA}from"node:crypto";function h(e){return`sha256:${qA("sha256").update(e).digest("hex")}`}function k(e){return Array.isArray(e)?`[${e.map(k).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)}:${k(n)}`).join(",")}}`:JSON.stringify(e)}var $t=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function ym(e){if(!new RegExp(re).test(e))throw new $t("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function Ho(e,t){if(e.includes("\r"))throw new $t("Managed regions require LF newlines");let{begin:r,end:n}=ym(t),i=e.split(r).length-1,o=e.split(n).length-1;if(i!==1||o!==1)throw new $t("Managed region markers are unavailable or ambiguous");let a=e.indexOf(r)+r.length,s=e.indexOf(n,a),c=e.slice(a,s);if(/<!-- dyyto:(?:begin|end) /.test(c))throw new $t("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
9
+ `}function hm(e){let{begin:t,end:r}=ym(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new $t("Managed regions require LF newlines");let n=e.source.split(t).length-1,i=e.source.split(r).length-1;if(n>1||i>1||n!==i)throw new $t("Managed region markers are ambiguous");let o=e.content.replace(/^\n+|\n+$/g,"");if(/<!-- dyyto:(?:begin|end) /.test(o))throw new $t("Managed regions cannot contain nested Dyyto markers");let a=`${t}
10
10
  ${o}
11
- ${r}`;if(n===0){let d=e.source.replace(/\n*$/g,"");return`${d}${d.length===0?"":`
11
+ ${r}`;if(n===0){let l=e.source.replace(/\n*$/g,"");return`${l}${l.length===0?"":`
12
12
 
13
13
  `}${a}
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 Ct("Managed regions cannot overlap");return`${e.source.slice(0,s)}${a}${e.source.slice(c)}`}import ym from"node:path";var or=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Yo(e){if(e.length===0||ym.posix.isAbsolute(e)||ym.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new or("Asset path must be a normalized project-relative POSIX path",e)}function UA(e,t){Yo(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(te).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new or("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,i=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&i===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===i?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||i!==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 or("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new or("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Yo(s.path),t.has(s.path))throw new or("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 or("Proposed change paths must be unique",s.path);return r.add(s.path),UA(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),i={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}},o=h(k(i)),a={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:i.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:o,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...a,planId:h(k(a))}}function Ho(e){return h(k(e))}var hm=nn(Dr(),1);var re={type:"string",pattern:Ot},vn={type:"string",pattern:te},$r={type:"string",minLength:1,maxLength:128},Cr={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},qA={$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:vn,version:$r,integrity:re,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:Cr,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:re}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},BA={$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:vn,version:$r}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:te},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:vn,version:$r}}}}},zA={$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:vn,version:$r,integrity:re,appliedPlanId:re,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:Cr,digest:re}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},GA={$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:vn,capabilityVersion:$r,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},JA={$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:re,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:vn,version:$r,integrity:re}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:re,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:re,desiredPackageJsonDigest:re,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:re}}]},desiredLockfileDigest:re,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:re}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:re,bindingDigest:re,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:$r,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:re,deliveryReceiptId:re,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:Cr,unitImporterId:Cr,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:re}},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:Cr,preimageDigest:re,desiredDigest:re}}}},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:Cr,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:re,baseDigest:re,regionId:{type:"string",pattern:te},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},WA={$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:re,approvedPlanId:re,projectRootDigest:re,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:Cr,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:re,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:re}}]},desiredDigest:re,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:re}},jr=new hm.Ajv2020({allErrors:!0,strict:!0});jr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var wl={capabilityRelease:jr.compile(qA),projectManifest:jr.compile(BA),projectLock:jr.compile(zA),evidence:jr.compile(GA),changePlan:jr.compile(JA),transactionJournal:jr.compile(WA)},hl=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Il(e,t,r){if(!t(r))throw new hl(e,t.errors??[]);return r}var W=e=>Il("projectManifest",wl.projectManifest,e);var ar=e=>Il("changePlan",wl.changePlan,e),wm=e=>Il("transactionJournal",wl.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Xo(e){if(e.currentLock!==void 0){let o=await Zo({...e,manifest:{schemaVersion:1,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}});return{state:o.plan.state==="conflicted"?"drifted":"adopted",operations:o.plan.operations}}let t=await bl(bn.resolve(e.projectRoot)),r=[],n=0,i=0;for(let o of e.release.release.assets){let a=await kl(t,o.path);a.exists&&(n+=1),a.digest===o.digest&&(i+=1),r.push({path:o.path,kind:"create",ownership:o.ownership,desiredDigest:o.ownership==="seed-file"&&a.digest?a.digest:o.digest,disposition:a.exists?o.ownership==="seed-file"||a.digest===o.digest?"noop":"conflict":"ready",...a.exists&&a.digest!==o.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:i===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function kl(e,t){let r=bn.join(e,...t.split("/"));try{let n=await KA(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:h(await vl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Tr(e){let t=await bl(bn.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let i=await kl(t,n.path),o=i.exists&&i.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&i.exists)try{o=h(Ko(await vl(bn.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{o=!1}if(!o)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:h(k(r))}}async function Zo(e){let t=W(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 i=(e.currentLock===void 0?void 0:Ge(e.currentLock))?.capabilities.find(d=>d.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","M3 does not support upgrading a different locked release");let o=await bl(bn.resolve(e.projectRoot)),a=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await kl(o,d.path);if(a.push(p),p.exists&&i===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 vl(bn.join(o,...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:a,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as HA,lstat as ia,mkdir as kn,open as bm,readFile as oa,realpath as XA,rename as ra,rm as _l,unlink as Lr}from"node:fs/promises";import{constants as ea}from"node:fs";import{homedir as ZA}from"node:os";import K from"node:path";import{randomUUID as Rn}from"node:crypto";function YA(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function pt(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Im(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Im(e.context,e.operation,e.bytes??0,t,"failed",YA(r)),r}}async function Im(e,t,r,n,i,o){if(e?.sink===void 0)return;let a=process.hrtime.bigint(),s={schemaVersion:1,phase:e.phase,operation:t,pathCategory:e.pathCategory,bytes:r,barrierId:e.barrierId,startedMonotonicNs:n.toString(),completedMonotonicNs:a.toString(),result:i,...o===void 0?{}:{errorCategory:o}},c=Object.freeze({...s,eventId:h(k(s))});try{await e.sink(c)}catch{}}var km=Symbol("prepared-transaction"),sr=new Map,QA=5*1024*1024,eR=25*1024*1024,vm=8,na=class extends Error{};async function Qo(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new na("Simulated prepare crash",{cause:n})}}var C=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,i){super(r),this.code=t,this.relativePath=n,this.operationIndex=i}};function vi(e,t){let r=K.join(e,".dyyto"),n=K.join(r,"transactions",t);return{platformDirectory:r,lock:K.join(r,"transaction-lock.json"),transactionDirectory:n,journal:K.join(n,"journal.json"),preimages:K.join(n,"preimages"),quarantine:K.join(n,"quarantine")}}async function Ft(e){try{return await ia(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function En(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function kt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function ut(e,t){let r=await bm(e,ea.O_RDONLY);try{await pt({context:En(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function bi(e,t,r=384,n){let i=await bm(e,ea.O_CREAT|ea.O_EXCL|ea.O_WRONLY,r);try{await pt({context:En(n),operation:"write",bytes:t.byteLength,run:()=>i.writeFile(t)}),await pt({context:En(n),operation:"file-sync",bytes:t.byteLength,run:()=>i.sync()})}finally{await i.close()}}async function Al(e,t,r){let n=K.dirname(e),i=K.join(n,`.tmp-${Rn()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
15
- `);await bi(i,o,384,r),await pt({context:En(r),operation:"rename",bytes:o.byteLength,run:()=>ra(i,e)}),await ut(n,r)}function Rl(e){return{...e,journalDigest:h(k(e))}}function tR(e){let t;try{t=wm(e)}catch{throw new C("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==h(k(n)))throw new C("JOURNAL_CORRUPTED","Transaction journal digest or shape is invalid");let i=new Set;for(let[o,a]of t.operations.entries()){if(a.index!==o||i.has(a.path)||a.kind==="create"&&a.before.kind!=="absent"||a.kind!=="create"&&a.before.kind!=="present"||a.kind!=="remove"&&a.desiredDigest===void 0||a.kind==="remove"&&a.desiredDigest!==void 0)throw new C("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");i.add(a.path)}return t}async function El(e){try{return tR(JSON.parse(await oa(e,"utf8")))}catch(t){throw t instanceof C?t:new C("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function cr(e,t,r){let{journalDigest:n,...i}=t,o=Rl(i);return await Al(e,o,r),o}async function aa(e){let t=K.resolve(e),r=K.parse(t);if(t===r.root||t===K.resolve(ZA()))throw new C("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await ia(t);if(!n.isDirectory()||n.isSymbolicLink())throw new C("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let i=await XA(t);if(i!==t)throw new C("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return i}function Pn(e,t){if((t===".dyyto"||t.startsWith(".dyyto/"))&&t!==".dyyto/application-config-binding.json"||t.length===0||K.posix.isAbsolute(t)||K.win32.isAbsolute(t)||t.includes("\\")||t.split("/").some(n=>n==="."||n===".."))throw new C("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=K.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${K.sep}`))throw new C("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function _n(e,t){let r=t.split("/"),n=e;for(let i of r){n=K.join(n,i);try{if((await ia(n)).isSymbolicLink())throw new C("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(o){if(o.code==="ENOENT")return;throw o}}}async function An(e){try{let t=await ia(e);if(!t.isFile()||t.isSymbolicLink())throw new C("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await oa(e);return{bytes:r,digest:h(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function rR(e,t,r){ar(e);let{planId:n,...i}=e;if(Ho(i)!==e.planId)throw new C("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new C("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new C("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new C("PLAN_EXPIRED","Plan has expired")}function nR(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 C("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function Pl(e,t,r){try{await bi(e,Buffer.from(`${JSON.stringify(t,null,2)}
16
- `),384,r),await ut(K.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new C("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function ta(e){try{let t=JSON.parse(await oa(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 C("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function iR(e,t,r){return{[km]:!0,projectRoot:e,plan:t,transactionId:r}}async function oR(e,t){rR(e.plan,e.approvedPlanId,e.now);let r=await aa(e.projectRoot),n=nR(e.plan),i=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(!i.has(u))throw new C("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(Pn(r,u.path),await _n(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||h(m)!==u.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let o=vi(r,e.plan.planId);await kn(o.platformDirectory,{recursive:!0,mode:448}),await _n(r,".dyyto");let a=Rn();await Pl(o.lock,{schemaVersion:1,transactionId:a,planId:e.plan.planId,startedAt:e.now,nonce:Rn()},kt(t?.durabilityTrace,"prepare","lock",`${a}:prepare-lock`));let s=e.limits?.maxFileBytes??QA,c=e.limits?.maxTransactionBytes??eR,l=0,d=[],p=[],f=!1;try{if(await Qo(t,"lock-created"),await Ft(o.transactionDirectory))throw new C("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await kn(o.preimages,{recursive:!0,mode:448}),await kn(o.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let y=Pn(r,g.path);await _n(r,g.path);let w=await An(y);if(g.kind==="create"){if(w!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new C("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let A={kind:"absent"};if(w!==void 0){if(l+=w.bytes.byteLength,w.bytes.byteLength>s||l>c)throw new C("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let b=K.join(o.preimages,`${m}.bin`);await bi(b,w.bytes,384,kt(t?.durabilityTrace,"prepare","preimage",`${a}:preimage:${m}`)),p.push(m),await Qo(t,"preimage-written-pending-directory-sync",m),A={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:h(w.bytes)}}d.push({index:m,path:g.path,kind:g.kind,before:A,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await ut(o.preimages,kt(t?.durabilityTrace,"prepare","directory",`${a}:preimages-directory-batch`));for(let m of p)await Qo(t,"preimage-persisted",m)}let u=Rl({schemaVersion:1,transactionId:a,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:h(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:d});return await Al(o.journal,u,kt(t?.durabilityTrace,"prepare","journal",`${a}:journal-prepared`)),sr.set(a,{desiredContents:e.desiredContents,journal:u}),await Qo(t,"journal-prepared"),iR(r,e.plan,a)}catch(u){if(u instanceof na)throw sr.delete(a),new C("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await _l(o.transactionDirectory,{recursive:!0,force:!0}),await Lr(o.lock),await ut(o.platformDirectory)}catch{throw new C("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function lr(e){return oR(e)}async function aR(e,t,r,n){return cr(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},kt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function sR(e,t,r,n,i,o){let a=Pn(e,n.path);await _n(e,n.path);let s=await An(a);if(n.before.kind==="absent"){if(s!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new C("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=K.join(t.quarantine,`${n.index}.bin`),f=kt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await pt({context:En(f),operation:"rename",run:()=>ra(a,p)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(a),t.quarantine]}let c=i.get(n.path);if(c===void 0||h(c)!==n.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await kn(K.dirname(a),{recursive:!0}),await _n(e,n.path);let l=K.join(K.dirname(a),`.dyyto-${r}-${n.index}.tmp`),d=kt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await bi(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await o?.onCheckpoint?.("temporary-file-synced",n.index),await pt({context:En(d),operation:"rename",bytes:c.byteLength,run:()=>ra(l,a)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(a)]}async function cR(e,t){let r=sr.get(e.transactionId);if(r===void 0||e[km]!==!0)throw new C("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=vi(e.projectRoot,e.plan.planId),i=await cr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let o=new Map;for(let a=0;a<i.operations.length;a+=vm){let s=i.operations.slice(a,a+vm),c=await Promise.allSettled(s.map(d=>sR(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)o.has(p)||o.set(p,kt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[a,s]of o)await ut(a,s);for(let a of i.operations)await t?.onCheckpoint?.("target-renamed",a.index),a.status="applied",await t?.onCheckpoint?.("operation-applied",a.index);i=await cr(n.journal,{...i,operations:i.operations,updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let a of i.operations)await t?.onCheckpoint?.("operation-journaled",a.index);return i=await cr(n.journal,{...i,state:"applied",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Lr(n.lock),await ut(n.platformDirectory),sr.delete(e.transactionId),xr(i)}catch(o){throw i=await aR(n,i,o instanceof C?o.operationIndex:void 0,t?.durabilityTrace),sr.set(e.transactionId,{desiredContents:r.desiredContents,journal:i}),new C("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function dr(e){return cR(e)}function xr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Ut(e){let t=await aa(e.projectRoot),r=vi(t,e.planId);if(!await Ft(r.journal)){if(!await Ft(r.lock))return null;let n=await ta(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return xr(await El(r.journal))}async function lR(e,t,r){await kn(K.dirname(e),{recursive:!0});let n=K.join(K.dirname(e),`.dyyto-recover-${Rn()}.tmp`);await bi(n,t,r&511),await ra(n,e),await HA(e,r&511),await ut(K.dirname(e))}async function _m(e){let t=await aa(e.projectRoot),r=vi(t,e.planId);if(!await Ft(r.journal)){if(!await Ft(r.lock))throw new C("JOURNAL_CORRUPTED","No transaction record exists");let i=await ta(r.lock);if(i.planId!==e.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await _l(r.transactionDirectory,{recursive:!0,force:!0}),await kn(r.transactionDirectory,{recursive:!0,mode:448});let o=Rl({schemaVersion:1,transactionId:i.transactionId,planId:i.planId,approvedPlanId:i.planId,projectRootDigest:h(t),state:"recovered",createdAt:i.startedAt,updatedAt:e.now,operations:[]});return await Al(r.journal,o),await Lr(r.lock),await ut(r.platformDirectory),xr(o)}let n=await El(r.journal);if(n.state==="recovered")return xr(n);if(n.state==="applied"){for(let i of n.operations){let o=await An(Pn(t,i.path));if(!(i.kind==="remove"?o===void 0:o?.digest===i.desiredDigest))throw new C("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",i.path,i.index)}if(await Ft(r.lock)){let i=await ta(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Lr(r.lock),await ut(r.platformDirectory)}return sr.delete(n.transactionId),xr(n)}if(n.projectRootDigest!==h(t))throw new C("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Ft(r.lock)){let i=await ta(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await Pl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:Rn()});n=await cr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let i of[...n.operations].reverse()){if(i.status==="restored")continue;let o=Pn(t,i.path);if(await _n(t,i.path),i.kind!=="remove"){let s=K.join(K.dirname(o),`.dyyto-${n.transactionId}-${i.index}.tmp`);if(await Ft(s)){if((await An(s))?.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Transaction temporary file was modified externally",i.path,i.index);await Lr(s),await ut(K.dirname(s))}}let a=await An(o);if(i.before.kind==="absent"){if(a!==void 0){if(a.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);await Lr(o),await ut(K.dirname(o))}}else if(a?.digest!==i.before.digest){let s=K.join(r.quarantine,`${i.index}.bin`),c=a?.digest===i.desiredDigest,l=i.kind==="remove"&&a===void 0&&await Ft(s),d=e.approvedConflicts?.find(f=>f.path===i.path&&f.currentDigest===a?.digest);if(!c&&!l&&!d)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);let p=await oa(K.join(r.preimages,`${i.index}.bin`));if(h(p)!==i.before.preimageDigest)throw new C("JOURNAL_CORRUPTED","Preimage digest is invalid",i.path,i.index);await lR(o,p,i.before.mode),l&&await _l(s,{force:!0})}i.status="restored",n=await cr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",i.index)}return n=await cr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Lr(r.lock),await ut(r.platformDirectory),sr.delete(n.transactionId),xr(n)}async function ki(e){return _m(e)}async function Nl(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 C("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return _m(e)}async function Ol(e){let t=await aa(e.projectRoot),r=vi(t,e.planId),n=await El(r.journal);if(n.state==="recovered")return xr(n);if(n.state!=="applied")throw new C("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let i;for(let o of n.operations){let a=await An(Pn(t,o.path)),s=o.kind==="remove"?a===void 0:a?.digest===o.desiredDigest,c=o.before.kind==="absent"?a===void 0:a?.digest===o.before.digest;if(!s&&!c){i=o;break}}if(await Pl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:Rn()}),n=await cr(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),i!==void 0)throw new C("RECOVERY_CONFLICT","Rollback would overwrite external content",i.path,i.index);return sr.set(n.transactionId,{desiredContents:new Map,journal:n}),ki({projectRoot:t,planId:e.planId,now:e.now})}var Ae=class extends Error{code;constructor(t,r){super(r),this.code=t}},_i=class extends Error{};function Ei(e,t){let r=Ne.join(e,".dyyto"),n=Ne.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:Ne.join(r,"evidence"),lockFile:Ne.join(r,"project-lock.json"),transactionLock:Ne.join(r,"metadata-lock.json"),transactionDirectory:n,journal:Ne.join(n,"journal.json")}}async function pr(e){try{return await dR(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function qt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function da(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function pa(e,t){let r=await Am(e,ca.O_RDONLY);try{await pt({context:da(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function jl(e,t,r){let n=await Am(e,ca.O_CREAT|ca.O_EXCL|ca.O_WRONLY,384);try{await pt({context:da(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await pt({context:da(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function Ai(e,t,r){let n=Ne.dirname(e),i=Ne.join(n,`.tmp-${Dl()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
17
- `);await jl(i,o,r),await pt({context:da(r),operation:"rename",bytes:o.byteLength,run:()=>pR(i,e)}),await pa(n,r)}function Cl(e){return{...e,journalDigest:h(k(e))}}async function sa(e,t,r){let{journalDigest:n,...i}=t,o=Cl(i);return await Ai(e,o,r),o}async function Rm(e){try{let t=JSON.parse(await Ri(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==h(k(n)))throw new Error("invalid journal");return t.evidence.forEach(Ii),Ge(t.lock),t}catch{throw new Ae("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function $l(e,t,r){try{await jl(e,Buffer.from(`${JSON.stringify(t,null,2)}
18
- `),r),await pa(Ne.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new Ae("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function Em(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:h(k(r))}}function Pm(e,t,r){let n=t.map(fm),i=e.verifiers.map(a=>a.id).sort(),o=n.map(a=>a.verifierId).sort();if(i.length!==o.length||i.some((a,s)=>a!==o[s]))throw new Ae("VERIFICATION_INCOMPLETE","Verification results do not cover the release verifier set");for(let a of n){if(a.commandId!==a.verifierId||a.result!=="passed"||a.exitCode!==0)throw new Ae("VERIFICATION_FAILED",`Verifier ${a.verifierId} did not pass`);if(a.projectStateDigest!==r)throw new Ae("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function uR(e,t,r){let n=Ne.join(e,`${t.evidenceId}.json`);if(await pr(n)){let i=Ii(JSON.parse(await Ri(n,"utf8")));if(k(i)!==k(t))throw new Ae("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await jl(n,Buffer.from(`${JSON.stringify(t,null,2)}
19
- `),r),await pa(e,r)}async function fR(e,t,r,n){if(await pr(e)){let i=Ge(JSON.parse(await Ri(e,"utf8")));if(k(i)===k(t))return;if(r===void 0||h(k(i))!==r)throw new Ae("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await Ai(e,t,n);return}await Ai(e,t,n)}async function la(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new _i("Simulated metadata crash",{cause:r})}}async function Tl(e,t,r){let n=Ei(e,t.planId),i=t;try{for(let o of i.evidence)await uR(n.evidenceDirectory,o,qt(r?.durabilityTrace,"evidence",`${i.transactionId}:evidence`));return i=await sa(n.journal,{...i,state:"evidence-written",updatedAt:new Date().toISOString()},qt(r?.durabilityTrace,"journal",`${i.transactionId}:evidence-written`)),await la(r,"evidence-written"),await fR(n.lockFile,i.lock,i.previousLockDigest,qt(r?.durabilityTrace,"lock",`${i.transactionId}:project-lock`)),i=await sa(n.journal,{...i,state:"lock-written",updatedAt:new Date().toISOString()},qt(r?.durabilityTrace,"journal",`${i.transactionId}:lock-written`)),await la(r,"lock-written"),i=await sa(n.journal,{...i,state:"committed",updatedAt:new Date().toISOString()},qt(r?.durabilityTrace,"journal",`${i.transactionId}:committed`)),await la(r,"committed"),await Sl(n.transactionLock),await pa(n.platformDirectory,qt(r?.durabilityTrace,"directory",`${i.transactionId}:unlock`)),i.lock}catch(o){if(o instanceof _i)throw new Ae("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await sa(n.journal,{...i,state:"recovery-required",updatedAt:new Date().toISOString()},qt(r?.durabilityTrace,"journal",`${i.transactionId}:recovery-required`))}catch{}throw o}}async function mR(e){let t=await Vr(Ne.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Vr(Ne.resolve(e.transactionRoot));if((await Ut({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ae("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let i;try{i=await Tr({projectRoot:t,expectedAssets:e.expectedAssets??e.release.assets.map(m=>({path:m.path,digest:m.digest}))})}catch{throw new Ae("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let a=Pm(e.release,e.verificationResults,i.projectStateDigest).map(m=>Em(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:i.projectStateDigest,assets:i.assets,evidenceIds:a.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};Ge(d);let p=Ei(t,e.plan.planId);if(await Nn(p.platformDirectory,{recursive:!0,mode:448}),await Nn(p.evidenceDirectory,{recursive:!0,mode:448}),await pr(p.lockFile)&&e.previousLock===void 0){let m=Ge(JSON.parse(await Ri(p.lockFile,"utf8")));if(k(m)===k(d))return m;throw new Ae("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let f=Dl();if(await $l(p.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt},qt(e.hooks?.durabilityTrace,"lock",`${f}:metadata-lock`)),await pr(p.transactionDirectory))throw await Sl(p.transactionLock),new Ae("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await Nn(p.transactionDirectory,{recursive:!0,mode:448});let u=Cl({schemaVersion:1,planId:e.plan.planId,transactionId:f,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:a,lock:d,...e.previousLock===void 0?{}:{previousLockDigest:h(k(Ge(e.previousLock)))}});await Ai(p.journal,u,qt(e.hooks?.durabilityTrace,"journal",`${f}:prepared`));try{await la(e.hooks,"journal-prepared")}catch(m){throw m instanceof _i?new Ae("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return Tl(t,u,e.hooks)}async function Ll(e){return mR(e)}async function xl(e){let t=await Vr(Ne.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Vr(Ne.resolve(e.transactionRoot));if((await Ut({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ae("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let i=e.previousLock.capabilities.find(y=>y.capabilityId===e.release.capabilityId&&y.version===e.release.version);if(i===void 0)throw new Ae("PROJECT_STATE_CHANGED","The removed capability is not present in the project lock");let o=e.previousLock.capabilities.filter(y=>y!==i),a=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(y=>y.desiredDigest===void 0||!y.path.startsWith(a)?[]:[[y.path.slice(a.length),y.desiredDigest]])),c=e.expectedAssets??o.flatMap(y=>y.assets).map(y=>({...y,digest:s.get(y.path)??y.digest})),l=await Tr({projectRoot:t,expectedAssets:c}),p=Pm(e.release,e.verificationResults,l.projectStateDigest).map(y=>Em(e.release,y)),f={schemaVersion:o.some(y=>y.packageAdoption!==void 0)?2:1,capabilities:o};Ge(f);let u=Ei(t,e.plan.planId);await Nn(u.platformDirectory,{recursive:!0,mode:448}),await Nn(u.evidenceDirectory,{recursive:!0,mode:448});let m=Dl();await $l(u.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await Nn(u.transactionDirectory,{recursive:!1,mode:448});let g=Cl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:p,lock:f,previousLockDigest:h(k(Ge(e.previousLock)))});return await Ai(u.journal,g),Tl(t,g)}async function Vl(e){let t=await Vr(Ne.resolve(e.projectRoot)),r=Ei(t,e.planId),n=await Rm(r.journal);return n.state==="committed"?(await pr(r.transactionLock)&&await Sl(r.transactionLock),n.lock):(await pr(r.transactionLock)||await $l(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),Tl(t,n))}async function Ml(e){let t=await Vr(Ne.resolve(e.projectRoot)),r=Ei(t,e.planId);if(!await pr(r.journal))return null;let n=await Rm(r.journal);return{planId:n.planId,state:n.state}}async function Fe(e){let t=await Vr(Ne.resolve(e)),r=Ne.join(t,".dyyto","project-lock.json");return await pr(r)?Ge(JSON.parse(await Ri(r,"utf8"))):null}import{lstat as Sm,readFile as Nm,realpath as Om}from"node:fs/promises";import ur from"node:path";var _t=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function Dm(e){return h(k(e))}async function gR(e,t){let r=ur.join(e,"assets",...t.split("/"));try{return await Sm(r),r}catch(n){if(n.code!=="ENOENT"||ur.posix.basename(t)!==".gitignore")throw n}return ur.join(e,"assets",...ur.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function Re(e){let t=await Om(ur.resolve(e)),r;try{r=um(JSON.parse(await Nm(ur.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof _t?c:new _t("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...i}=r;if(Dm(i)!==n)throw new _t("RELEASE_INTEGRITY_MISMATCH","Capability release integrity does not match metadata");let o=new Map,a=new Set,s="";for(let c of r.assets){try{Yo(c.path)}catch{throw new _t("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"||a.has(c.path)||c.path.localeCompare(s)<0)throw new _t("RELEASE_ASSET_INVALID","Release assets must be unique, sorted and outside reserved .dyyto paths",c.path);a.add(c.path),s=c.path;let l=await gR(t,c.path),d=await Om(l),p=ur.join(t,"assets");if(!d.startsWith(`${p}${ur.sep}`))throw new _t("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let f=await Sm(l);if(!f.isFile()||f.isSymbolicLink())throw new _t("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await Nm(l);if(h(u)!==c.digest)throw new _t("RELEASE_ASSET_INTEGRITY_MISMATCH","Release asset digest does not match metadata",c.path);o.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 _t("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:o}}import{link as yR,open as Cm,lstat as $t,mkdir as $m,readFile as Fl,readdir as ua,realpath as Tt,rm as hR,unlink as wR}from"node:fs/promises";import ce from"node:path";var Ie=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},IR={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function vR(){return new TextEncoder().encode(`${JSON.stringify(IR,null,2)}
20
- `)}async function bR(e,t=!1){let r=ce.resolve(e),n=await $t(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new Ie("TARGET_INVALID","Workspace target must be a real existing directory");let i=await Tt(r);for(let o of t?["AGENTS.md","README.md"]:["package.json","pnpm-workspace.yaml"]){let a=await $t(ce.join(i,o)).catch(()=>null);if(a===null||!a.isFile()||a.isSymbolicLink())throw new Ie("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${o}`)}if(await $t(ce.join(i,"project-capabilities.json")).catch(()=>null))throw new Ie("MANIFEST_EXISTS","Project manifest already exists");return i}async function kR(e,t){let r=ce.resolve(e),n=await $t(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new Ie("TARGET_INVALID","Project target must be a real existing directory");let i=await Tt(r);for(let o of t){let a=await $t(ce.join(i,o)).catch(()=>null);if(a===null||!a.isFile()||a.isSymbolicLink())throw new Ie("WORKSPACE_MARKER_MISSING",`Existing project must contain a real ${o}`)}if(await $t(ce.join(i,"project-capabilities.json")).catch(()=>null))throw new Ie("MANIFEST_EXISTS","Project manifest already exists");return i}async function Tm(e){let t=await kR(e.projectRoot,e.requiredMarkers??["package.json"]),r=W(e.manifest),n=new TextEncoder().encode(`${JSON.stringify(r,null,2)}
21
- `),i=r.capabilities[0],o=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:i.capabilityId,version:i.version,integrity:e.capabilityIntegrity,assets:[],verifiers:[]},changes:[{path:"project-capabilities.json",kind:"create",ownership:"owned-file",desiredDigest:h(n)}],observedAssets:[{path:"project-capabilities.json",exists:!1}],generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{projectRoot:t,plan:o,desiredContents:new Map([["project-capabilities.json",n]])}}async function Lm(e){let t=await bR(e.projectRoot,e.documentationOnly===!0),r=vR(),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:h(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 _R(e){let t=await Cm(e,"r");try{await t.sync()}finally{await t.close()}}async function xm(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await Cm(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await yR(r,e),await wR(r),await _R(ce.dirname(e))}catch(i){throw await hR(r,{force:!0}),i}}async function AR(e){let t=ce.resolve(e);try{let r=await $t(t);if(!r.isDirectory()||r.isSymbolicLink())throw new Ie("TARGET_INVALID","Project target must be a real directory");if((await ua(t)).length!==0)throw new Ie("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=ce.dirname(t),i=await $t(n).catch(()=>null);if(i===null||!i.isDirectory()||i.isSymbolicLink())throw new Ie("TARGET_INVALID","Project target parent must be a real directory");await $m(t)}return Tt(t)}async function fa(e){let t=W(e.manifest),r=await AR(e.projectRoot),n=ce.join(r,"project-capabilities.json");try{await xm(n,`${JSON.stringify(t,null,2)}
22
- `)}catch(i){throw i.code==="EEXIST"?new Ie("MANIFEST_EXISTS","Project manifest already exists"):i}return{projectRoot:r,manifest:t}}function Pi(e){let{planId:t,...r}=e;if(Ho(r)!==e.planId)throw new Ie("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function RR(e){let t=await Tt(ce.resolve(e.projectRoot)),r=ar(e.plan);Pi(r);let n=ce.join(t,".dyyto","plans");await $m(n,{recursive:!0,mode:448});let i=ce.join(n,`${r.planId}.json`);try{await xm(i,`${k(r)}
23
- `)}catch(o){if(o.code!=="EEXIST")throw o;let a=ar(JSON.parse(await Fl(i,"utf8")));if(Pi(a),k(a)!==k(r))throw new Ie("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return i}function jm(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Bt(e){let t=await Tt(ce.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Tt(ce.resolve(e.transactionRoot)),n=ar(e.plan);Pi(n);let i=ce.join(t,".dyyto","plans"),o=await ua(i).catch(s=>{if(s.code==="ENOENT")return[];throw s}),a=[];for(let s of o.filter(c=>c.endsWith(".json")).sort()){let c=ar(JSON.parse(await Fl(ce.join(i,s),"utf8")));Pi(c),!await $t(ce.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)&&jm(c)===jm(n)&&a.push(c)}return a.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),a[0]!==void 0?a[0]:(await RR({projectRoot:t,plan:n}),n)}async function Mr(e){let t=await Tt(ce.resolve(e.projectRoot)),r=ce.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=ar(JSON.parse(await Fl(r,"utf8")));if(Pi(n),n.planId!==e.planId)throw new Ie("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new Ie("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function ma(e,t=[],r,n=[]){let i=await Tt(ce.resolve(e)),o=r===void 0?i:await Tt(ce.resolve(r)),a=ce.join(i,".dyyto","plans"),s=await ua(a).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 Mr({projectRoot:i,planId:p}),u=await Ut({projectRoot:o,planId:p}),m=await $t(ce.join(i,".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=ER(c);if(l===void 0)throw new Ie("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 ER(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 Ul(e){let t=await Tt(ce.resolve(e)),r=ce.join(t,".dyyto","plans"),n=await ua(r).catch(o=>{if(o.code==="ENOENT")return[];throw o}),i=[];for(let o of n.filter(a=>a.endsWith(".json")).sort())i.push(await Mr({projectRoot:t,planId:o.slice(0,-5)}));return i}import{lstat as Vm,readFile as PR,readdir as NR,realpath as OR}from"node:fs/promises";import Ce from"node:path";import{homedir as Mm}from"node:os";var ft=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function Fm(e){let t=Ce.resolve(e),r=await Vm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ce.parse(t).root||t===Ce.resolve(Mm()))throw new ft("WORKSPACE_PATH_UNSAFE");let n=await OR(t);if(n!==t)throw new ft("WORKSPACE_PATH_UNSAFE");return n}async function Fr(e){let t=await Vm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new ft("WORKSPACE_PATH_UNSAFE");return PR(e)}}function Um(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let i of t){if(/^packages:\s*(?:#.*)?$/u.test(i)){n=!0;continue}if(!n)continue;let o=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(i);if(o){r.push(o[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(i.trim()&&!/^\s/u.test(i))break}if(r.length===0)throw new ft("WORKSPACE_MANIFEST_INVALID");return r}function SR(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 On(e){let t=await Fm(e),r=await Fr(Ce.join(t,"pnpm-workspace.yaml"));if(!r)throw new ft("WORKSPACE_OWNER_MISSING");let n=new Map;for(let i of Um(r.toString("utf8"))){let o=[];if(i.endsWith("/*")&&!i.slice(0,-2).includes("*")){let a=i.slice(0,-2),s=await NR(Ce.join(t,...a.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&o.push(`${a}/${c.name}`)}else if(!i.includes("*"))o.push(i);else throw new ft("WORKSPACE_MANIFEST_INVALID");for(let a of o){let s=await Fr(Ce.join(t,...a.split("/"),"package.json"));s&&n.set(a,s)}}return Object.freeze([...n].sort(([i],[o])=>i.localeCompare(o)).map(([i,o])=>Object.freeze({relativeRoot:i,bytes:o})))}async function zt(e){let t=await Fm(e);if(await Fr(Ce.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Fr(Ce.join(t,"pnpm-workspace.yaml")))throw new ft("WORKSPACE_NESTED_UNSUPPORTED");let r=Ce.dirname(t),n;for(;r!==Ce.parse(r).root&&r!==Ce.resolve(Mm());){let o=await Fr(Ce.join(r,"pnpm-workspace.yaml"));if(o){if(n)throw new ft("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:o};break}r=Ce.dirname(r)}if(!n||!await Fr(Ce.join(n.root,"pnpm-lock.yaml"))||!await Fr(Ce.join(n.root,"project-capabilities.json")))throw new ft("WORKSPACE_OWNER_MISSING");let i=Ce.relative(n.root,t).split(Ce.sep).join("/");if(!i||i.startsWith("../")||Um(n.manifest.toString("utf8")).filter(o=>SR(o,i)).length!==1)throw new ft("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:i,unitImporterId:i,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:h(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var qm=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function ql(e){let t=await Ul(e);for(let r of t){let n=await Ut({projectRoot:e,planId:r.planId});if(n!==null&&qm.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await Ml({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 DR(e){let t=await ql(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await ki({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await Vl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function Bm(e){let t=await DR(e);if(t.kind!=="none")return t;let r=await zt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await Ul(e.projectRoot)).map(c=>c.planId)),i=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(!i)return t;let o;try{let c=JSON.parse(i);if(typeof c.planId!="string"||!/^sha256:[a-f0-9]{64}$/u.test(c.planId)||!n.has(c.planId))return t;o=c.planId}catch{return t}let a=await Ut({projectRoot:r.transactionRoot,planId:o});if(!a||!qm.has(a.state))return t;let s=await ki({projectRoot:r.transactionRoot,planId:o,now:e.now});return{kind:"filesystem",planId:o,state:s.state}}import{lstat as jR,readFile as Bl,realpath as zm}from"node:fs/promises";import Ni from"node:path";var CR=new Set(["MIT","Apache-2.0","UNLICENSED"]),$R=new Set(["public","restricted","private"]),TR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,LR=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function xR(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 Ur(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 fr(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(),i=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,o=i==="1.1.0"||i==="1.2.0"||t==="react-component-library",a=o?["license","name","publishAccess","repository","version"]:["license","name","publishAccess","version"];if(n.length!==a.length||n.some((f,u)=>f!==a[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||!TR.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!LR.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!CR.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!$R.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,...o?{repository:xR(p)}:{}}}function zl(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)}
24
- `)}function Gl(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)}
25
- `)}function VR(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)}
26
- `)}function MR(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)}
27
- `)}function FR(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)}
28
- `)}function UR(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)}
29
- `)}async function Gm(e,t){let r=Ni.join(e,...t.split("/"));try{let n=await jR(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:h(await Bl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function qr(e,t){let r=W(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?MR(Ur(r).name):t==="workspace-expo-application"?UR(Ur(r).name):t==="nextjs-full-stack-application"?FR(Ur(r).name):VR(Ur(r).name):t==="react-component-library"?Gl(fr(r,t)):zl(fr(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 a=(e.currentLock===void 0?void 0:Ge(e.currentLock))?.capabilities.find(u=>u.capabilityId===e.release.release.capabilityId);if(a!==void 0&&(a.version!==e.release.release.version||a.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 zm(Ni.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 Gm(c,u.path);if(g.exists&&a===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(Ni.join(c,...u.path.split("/"))));let y=h(s.get(u.path));l.push(g),d.push({path:u.path,kind:"create",ownership:u.ownership,desiredDigest:y})}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 Oi(e){return qr(e,"standalone-npm-package")}function Si(e){return qr(e,"react-component-library")}function Sn(e){return qr(e,"nextjs-full-stack-application")}async function Jl(e){let t=W(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=W({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await Sn({...e,manifest:r}),i=await zm(Ni.resolve(e.projectRoot)),o="project-capabilities.json",a=await Bl(Ni.join(i,o)),s=Buffer.from(`${JSON.stringify(r,null,2)}
30
- `),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:o,kind:"replace",ownership:"owned-file",baseDigest:h(a),desiredDigest:h(s)});let l=await Promise.all(c.map(u=>Gm(i,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!==o).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,[o,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 Di(e){return qr(e,"workspace-npm-package")}function ji(e){return qr(e,"workspace-node-application")}function Ci(e){return qr(e,"workspace-web-application")}function $i(e){return qr(e,"workspace-expo-application")}async function Jm(e){if(e.currentLock!==void 0){let n=await Oi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Oi({...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 Si(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Si({...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 Sn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Sn({...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 Di(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Di({...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 ji(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ji({...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 Xm(e){if(e.currentLock!==void 0){let n=await Ci(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ci({...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 Zm(e){if(e.currentLock!==void 0){let n=await $i(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await $i({...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 dE,readFile as Da,realpath as pE}from"node:fs/promises";import Fi from"node:path";var At=class extends Error{code;constructor(t,r){super(r),this.code=t}},Br=/^sha256:[a-f0-9]{64}$/,qR=/^sha512-[A-Za-z0-9+/]{86}==$/,BR=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,eg=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,zR=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,Qm=/^[a-z][a-z0-9._:-]{2,127}$/;function zr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,i)=>n===[...t].sort()[i])}function GR(e){if(!zr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!eg.test(e.registryId)||!Qm.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,i)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==i)||!zr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!zr(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&&!Qm.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 Wl(e){if(!GR(e))throw new At("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:h(k(t))})}function Ti(e){let t=e;if(typeof t!="object"||t===null||!zr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Br.test(t.revision))throw new At("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...i}=t;if(Wl(i).revision!==n)throw new At("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function JR(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 Kl(e,t){let r=Ti(t);if(!zr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!JR(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 At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:h(k(n))})}function tg(e,t){let r=e;if(typeof r!="object"||r===null||!zr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Br.test(r.bindingDigest))throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:i,...o}=r;if(Kl(o,t).bindingDigest!==i)throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function WR(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return zr(e,t)&&eg.test(e.registryId)&&Br.test(e.registryConfigRevision)&&zR.test(e.packageName)&&BR.test(e.version)&&qR.test(e.integrity)&&Br.test(e.tarballDigest)&&Br.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&&Br.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Yl(e){if(!WR(e))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function rg(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Br.test(t.receiptId))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...i}=t;if(Yl(i).receiptId!==n)throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Oe=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Li(e){return h(k(e))}var Hl=/^sha256:[a-f0-9]{64}$/u,KR=/^sha512-[A-Za-z0-9+/]{86}==$/u,YR=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ga=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,HR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,XR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function ya(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function ng(e){return h(k(e))}function ig(e){let t=Buffer.from(e.desiredLockfile),r=h(t),n={schemaVersion:1,workerReleaseId:e.workerReleaseId,workerStateRevision:e.workerStateRevision,requestDigest:e.requestDigest,pnpmVersion:e.pnpmVersion,desiredLockDigest:r,importerFacts:e.importerFacts.map(a=>({...a})),packageFacts:e.packageFacts.map(a=>({...a})),snapshotClosureDigest:e.snapshotClosureDigest,networkObservationDigest:e.networkObservationDigest,cacheObservation:{...e.cacheObservation},commandDigest:e.commandDigest,completedAt:e.completedAt,expiresAt:e.expiresAt},i={...n,jobId:ng(n),desiredLockfile:t};og(i);let o={...i,importerFacts:Object.freeze(i.importerFacts.map(a=>Object.freeze({...a}))),packageFacts:Object.freeze(i.packageFacts.map(a=>Object.freeze({...a}))),cacheObservation:Object.freeze({...i.cacheObservation})};return Object.freeze(o)}function og(e){if(!ya(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 Oe("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(i=>Hl.test(i)))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(!ga.test(e.workerReleaseId)||!ga.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||h(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 Oe("RESOLUTION_EVIDENCE_INVALID");if(!ya(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(i=>!ya(i,["importerId","manifestDigest","preimageDigest","desiredDigest"])||i.importerId!=="."&&!ga.test(i.importerId)||![i.manifestDigest,i.preimageDigest,i.desiredDigest].every(o=>Hl.test(o))))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(i=>!ya(i,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!XR.test(i.identity)||!HR.test(i.packageName)||!ga.test(i.registryId)||!YR.test(i.version)||!KR.test(i.integrity)||typeof i.managed!="boolean"||!Hl.test(i.edgesDigest)))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(i=>i.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(i=>i.identity)).size!==e.packageFacts.length)throw new Oe("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(ng(n)!==e.jobId)throw new Oe("RESOLUTION_EVIDENCE_INVALID")}function Xl(e,t){if(og(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Oe("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Oe("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Oe("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let i=e.importerFacts.find(o=>o.importerId===n.importerId);if(!i||i.preimageDigest!==n.preimageDigest||i.desiredDigest!==n.preimageDigest)throw new Oe("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let i=e.packageFacts.filter(o=>o.managed&&o.packageName===n.packageName);if(i.length!==1||i[0].registryId!==n.registryId||i[0].version!==n.version||i[0].integrity!==n.integrity)throw new Oe("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Oe("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var H=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function Ia(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:i,expiresAt:o})=>({registryId:r,registryConfigRevision:n,bindingDigest:i,expiresAt:o})),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 H("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var ha=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,ag=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function Zl(e){return Array.isArray(e)?`[${e.map(Zl).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)}:${Zl(r)}`).join(",")}}`:JSON.stringify(e)}function Gt(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function mt(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function wa(e){for(let t of[mt(e.dependencies),mt(e.devDependencies),mt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!ha.test(n)||ag.test(n)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}var ZR=["dependencies","devDependencies","optionalDependencies"];function va(e,t){let r=[];for(let n of ZR)for(let[i,o]of Object.entries(mt(e[n]))){if(t.has(i)){if(!ha.test(o))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(o))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:i,specifier:o})}return r.sort((n,i)=>`${n.section}:${n.packageName}`.localeCompare(`${i.section}:${i.packageName}`))}function Ql(e){let t=Gt(e.packageJson);wa(t);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])),i={...t,...Object.keys(r).length?{dependencies:{...mt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...mt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(i,null,2)}
31
- `)}function xi(e){let t=Gt(e.packageJson);va(t,new Set(e.release.packageSources.map(i=>i.packageName)));let r=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="runtime").map(({packageName:i,version:o})=>[i,o])),n=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="development").map(({packageName:i,version:o})=>[i,o]));return Buffer.from(`${JSON.stringify({...t,...Object.keys(r).length?{dependencies:{...mt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...mt(t.devDependencies),...n}}:{}},null,2)}
32
- `)}function ed(e){let t=Gt(e.packageJson);wa(t);let r=mt(t.dependencies),n=mt(t.devDependencies);for(let o of e.remove)delete(o.usage==="runtime"?r:n)[o.packageName];let i={...t};return Object.keys(r).length===0?delete i.dependencies:i.dependencies=r,Object.keys(n).length===0?delete i.devDependencies:i.devDependencies=n,Buffer.from(`${JSON.stringify(i,null,2)}
33
- `)}function td(e){let t=Gt(e.packageJson);va(t,new Set(e.remove.map(o=>o.packageName)));let r=mt(t.dependencies),n=mt(t.devDependencies);for(let o of e.remove)delete(o.usage==="runtime"?r:n)[o.packageName];let i={...t};return Object.keys(r).length===0?delete i.dependencies:i.dependencies=r,Object.keys(n).length===0?delete i.devDependencies:i.devDependencies=n,Buffer.from(`${JSON.stringify(i,null,2)}
34
- `)}function sg(e){let t=e.currentLock.capabilities.find(p=>p.capabilityId===e.release.capabilityId&&p.version===e.release.version);if(!t?.packageAdoption)throw new H("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)),i=ed({packageJson:e.packageJson,remove:n}),o=Gt(e.projectManifest),a=Array.isArray(o.capabilities)?o.capabilities:[],s=Buffer.from(`${JSON.stringify({...o,capabilities:a.filter(p=>p.capabilityId!==e.release.capabilityId||p.version!==e.release.version)},null,2)}
35
- `),c=e.endpointBindings.filter(p=>n.some(f=>f.registryId===p.registryId)),l=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:h(e.projectManifest),desiredDigest:h(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:h(e.packageJson),desiredDigest:h(i)},{path:"pnpm-lock.yaml",kind:"replace",ownership:"owned-file",baseDigest:h(e.currentLockfile),desiredDigest:h(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:h(e.packageJson),desiredPackageJsonDigest:h(i),lockfilePreimage:{kind:"present",digest:h(e.currentLockfile)},desiredLockfileDigest:h(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",i],["pnpm-lock.yaml",e.desiredLockfile]]),removedSources:n}}function cg(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 H("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(g=>g!==t).flatMap(g=>g.packageAdoption?.sources.map(y=>y.packageName)??[])),n=t.packageAdoption.sources.filter(g=>!r.has(g.packageName)),i=td({packageJson:e.packageJson,remove:n}),o=e.remainingSources.map(({registryId:g,packageName:y,version:w,integrity:A})=>({registryId:g,packageName:y,version:w,integrity:A})),a={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=Xl(e.resolutionEvidence,{requestDigest:Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:h(e.currentLockfile),desiredPackageJsonDigest:h(i),sources:o,preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:y})=>({importerId:g,preimageDigest:y}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(i),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:y})=>({importerId:g,preimageDigest:y})),managedSources:o,now:e.generatedAt}),c=Gt(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)}
36
- `),p=g=>`${e.topology.unitRelativeRoot}/${g}`,f=e.endpointBindings.filter(g=>n.some(y=>y.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.projectManifest),desiredDigest:h(d)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.packageJson),desiredDigest:h(i)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:h(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:h(e.packageJson),desiredPackageJsonDigest:h(i),lockfilePreimage:{kind:"present",digest:h(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:f.map(({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})=>({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:a,preservedDependencies:va(Gt(i),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"),i],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function ba(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",i=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!i)||e.release.packageSources.length===0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let o=Gt(e.packageJson),a=e.desiredBasePackageJson??e.packageJson,s=Gt(a),c="topology"in e,l=c?va(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||wa(o),c||wa(s);let d=new Map(e.registryConfigs.map(I=>{let _=Ti(I);return[_.registryId,_]})),p=new Map(e.endpointBindings.map(I=>{let _=d.get(I.registryId);if(_===void 0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let S=tg(I,_);return[S.registryId,S]})),f=new Map(e.receipts.map(I=>{let _=rg(I);return[_.receiptId,_]})),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?Xl(e.resolutionEvidence,{requestDigest:Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:h(e.currentLockfile),desiredPackageJsonDigest:h(xi({release:e.release,packageJson:a})),sources:e.release.packageSources.map(({registryId:I,packageName:_,version:S,integrity:T})=>({registryId:I,packageName:_,version:S,integrity:T})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(xi({release:e.release,packageJson:a})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_})),managedSources:e.release.packageSources.map(({registryId:I,packageName:_,version:S,integrity:T})=>({registryId:I,packageName:_,version:S,integrity:T})),now:e.generatedAt}):void 0,y=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:_,version:S,integrity:T})=>({registryId:I,packageName:_,version:S,integrity:T}))}:e.lockResolution;if(y.lockfile.byteLength===0||y.packages.length!==e.release.packageSources.length)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${y.packages.length}/${e.release.packageSources.length}`)});let w=new Map(y.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let _=d.get(I.registryId),S=p.get(I.registryId),T=f.get(I.deliveryReceiptId),ue=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(T!==void 0&&(t==="production"&&T.provenance==="development-readback-verified"||t==="development"&&T.provenance!=="development-readback-verified"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");if(!_||!S||Date.parse(S.expiresAt)<=Date.parse(e.expiresAt)||_.status!=="enabled"||!_.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!T||!ue||!$)throw new H("PACKAGE_SOURCE_NOT_FOUND");if(T.registryId!==I.registryId||T.registryConfigRevision!==_.revision||T.packageName!==I.packageName||T.version!==I.version||T.integrity!==I.integrity||T.tarballDigest!==I.tarballDigest||ue.integrity!==I.integrity||ue.tarballDigest!==I.tarballDigest||ue.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new H("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!ha.test(I.version)||ue.lifecycleScripts.length>0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,Z]of Object.entries(ue.dependencies)){let se=m.get(P);if(P.startsWith("@aipt/")&&(!se||se.version!==Z||!ha.test(Z)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${Z}`)});if(ag.test(Z))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}}let A=c?xi({release:e.release,packageJson:a}):Ql({release:e.release,packageJson:a}),b={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:h(e.packageJson),desiredPackageJsonDigest:h(A),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:h(e.currentLockfile)}),desiredLockfileDigest:h(y.lockfile),registryRevisions:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,revision:_})=>Object.freeze({registryId:I,revision:_})).sort((I,_)=>I.registryId.localeCompare(_.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:_,bindingDigest:S,expiresAt:T})=>Object.freeze({registryId:I,registryConfigRevision:_,bindingDigest:S,expiresAt:T})).sort((I,_)=>I.registryId.localeCompare(_.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})))}:{}},R=h(Zl(b));return Object.freeze({...b,planId:R,desiredPackageJson:A,desiredLockfile:y.lockfile})}function ka(e){return ba(e,"production")}function _a(e){return ba(e,"development")}function Aa(e){return ba(e,"production")}function Ra(e){return ba(e,"development")}function QR(e){let t=e.packageAdoption;if(t===void 0)throw new H("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",i=e.operations.filter(({path:d})=>d===r),o=e.operations.filter(({path:d})=>d===n);if(i.length!==1||o.length!==1)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let a=i[0],s=o[0],c=a.kind==="replace"&&a.baseDigest===t.packageJsonPreimageDigest&&a.desiredDigest===t.desiredPackageJsonDigest&&a.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 H("PACKAGE_SOURCE_POLICY_VIOLATION")}async function lg(e){QR(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await lr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await dr(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 Ol({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 H("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var fg=nn(Dr(),1);var mg=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],gg="^[a-z0-9][a-z0-9._-]{0,127}$",rd="^[A-Z][A-Z0-9_]{0,127}$",dg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",eE={$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:gg},profile:{enum:mg}}},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:rd},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:rd},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:dg}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:rd},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:dg}}}]}}}},pg=new fg.Ajv2020({allErrors:!0,strict:!0}).compile(eE),ug=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,tE=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,et=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function yg(e){let t=W(e),r=t.profile?.id;if(!mg.includes(r))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},i=n.name;if(Object.keys(n).length!==1||typeof i!="string"||!new RegExp(gg,"u").test(i))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:i,profile:r}}function Ea(e,t){if(!pg(e))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",pg.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new et("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,i=new Set;for(let o of r.bindings){if(n.has(o.name))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${o.name}`);if(n.add(o.name),o.kind==="value"){if(ug.test(o.name))throw new et("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${o.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!o.name.endsWith("_FILE"))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${o.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let a=o.kind==="secret-file"?"secrets/":"certs/";if(o.kind==="certificate-file"&&(ug.test(o.name)||tE.test(o.name)))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID",`${o.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=o.file.split("/");if(!o.file.startsWith(a)||s.some(c=>c===""||c==="."||c===".."))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID",`${o.name} \u5FC5\u987B\u4F4D\u4E8E ${a} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(i.has(o.file))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${o.file}`);i.add(o.file)}if(t!==void 0){let o=yg(t);if(r.application.id!==o.id||r.application.profile!==o.profile)throw new et("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function Pa(e){let t=yg(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 Ea(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
37
- `)}import{createHash as rE,X509Certificate as nE}from"node:crypto";import{lstat as Vi,readFile as gt,realpath as Na}from"node:fs/promises";import X from"node:path";var he=class extends Error{code;constructor(t,r){super(r),this.code=t}};function wg(e){let t=W(e),r=t.profile?.parameters?.name;if(typeof r!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(r))throw new he("APPLICATION_CONFIG_BINDING_IDENTITY_INVALID","\u9879\u76EE\u7F3A\u5C11\u5408\u6CD5Application identity\u3002");return{id:r,profile:t.profile.id}}function Sa(e){let t=wg(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)}
38
- `)}function Ig(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 he("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 he("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=wg(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new he("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function iE(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(!i||i.startsWith("#"))continue;let o=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i),a=o?.[1],s=o?.[2];if(!a||s===void 0||a in t)throw new he("APPLICATION_CONFIG_ENV_INVALID",`.env:${r+1}\u683C\u5F0F\u65E0\u6548\u6216\u53D8\u91CF\u91CD\u590D\u3002`);t[a]=s.trim().replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/u,"$1$2")}return t}function Oa(e){return`sha256:${rE("sha256").update(e).digest("hex")}`}function oE(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function hg(e,t,r){let n=await Vi(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new he("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}var aE=new Set(["APPLICATION_CONFIG_FILE_INVALID","APPLICATION_CONFIG_REFERENCE_CHANGED"]),sE=new Set(["APP_CONFIG_DIR_REQUIRED","ENOENT"]);async function nd({projectRoot:e,environment:t=process.env}){let r=await Na(X.resolve(e)),n=X.join(r,"config/application-config.json");if(!await Vi(n).catch(()=>null))return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"not-declared",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_CONTRACT_NOT_DECLARED",entries:[]};try{let[o,a]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(n)]),s=JSON.parse(o.toString("utf8")),c=Ea(JSON.parse(a.toString("utf8")),s),l=await gt(X.join(r,".dyyto/application-config-binding.json")).catch(p=>{if(p.code==="ENOENT")return null;throw p});if(!l)return{schemaVersion:1,application:c.application.id,environment:"local",configDirectory:null,contractDigest:Oa(a),state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_BINDING_NOT_DECLARED",entries:[]};let d=Ig(JSON.parse(l.toString("utf8")),s);try{let p=await Mi({projectRoot:r,environment:t}),f=p.entries.filter(m=>m.required&&!m.configured).map(m=>m.name),u=f.length?"incomplete":"ready";return{schemaVersion:1,...p,state:u,needsConfigInit:u==="incomplete",missingBindings:f}}catch(p){let f=p instanceof he?p.code:p.code??"APPLICATION_CONFIG_UNKNOWN",u=sE.has(f)?"missing":aE.has(f)?"incomplete":"invalid",m=await bg(r,d.application.id,t).catch(()=>{});return{schemaVersion:1,application:d.application.id,environment:"local",configDirectory:m??null,contractDigest:Oa(a),state:u,needsConfigInit:u==="missing"||u==="incomplete",missingBindings:u==="missing"?c.bindings.filter(g=>g.required).map(g=>g.name):[],issueCode:f,entries:[]}}}catch(o){let a=o instanceof he||o instanceof Error&&"code"in o?String(o.code):"APPLICATION_CONFIG_INVALID";return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:a,entries:[]}}}var cE=new Set(["workspace-node-application","workspace-web-application","workspace-expo-application","nextjs-full-stack-application"]);async function vg({workspaceRoot:e,environment:t=process.env}){let r=await Na(X.resolve(e));if(W(JSON.parse(await gt(X.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")throw new he("APPLICATION_CONFIG_WORKSPACE_INVALID","\u914D\u7F6E\u5C31\u7EEA\u5EA6\u5DE5\u4F5C\u533A\u5FC5\u987B\u91C7\u7528workspace-root Profile\u3002");let i=await On(r),o=[];for(let s of i){let c=X.join(r,...s.relativeRoot.split("/")),l=X.join(c,"project-capabilities.json"),d=await gt(l,"utf8").catch(()=>null),p=await Vi(X.join(c,"config/application-config.json")).then(m=>m.isFile()&&!m.isSymbolicLink()).catch(()=>!1),f="";if(d!==null)try{f=W(JSON.parse(d)).profile?.id??""}catch{p&&(f="invalid-application")}if(!cE.has(f)&&!p)continue;let u=await nd({projectRoot:c,environment:t}).catch(m=>({schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:m instanceof Error&&"code"in m?String(m.code):"APPLICATION_CONFIG_UNIT_INSPECTION_FAILED",entries:[]}));o.push({unit:s.relativeRoot,readiness:u})}let a=s=>o.filter(c=>c.readiness.state===s).length;return Object.freeze({schemaVersion:1,scope:"workspace",workspaceRoot:r,summary:Object.freeze({total:o.length,ready:a("ready"),missing:a("missing"),incomplete:a("incomplete"),invalid:a("invalid"),notDeclared:a("not-declared"),needsConfigInit:o.filter(s=>s.readiness.needsConfigInit).length}),applications:Object.freeze(o.map(s=>Object.freeze(s)))})}async function lE(e,t,r){let n=X.dirname(e);for(;n!==X.dirname(n);){try{if(JSON.parse(await gt(X.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let o=X.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(o))throw new he("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return X.join(X.basename(n),o,r)}}catch(i){if(i instanceof he)throw i}n=X.dirname(n)}return X.join(t,r)}async function bg(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!X.isAbsolute(n))throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let o=await Vi(n).catch(()=>null);if(!o?.isFile()||o.isSymbolicLink()||o.nlink!==1||(o.mode&511&-385)!==0)throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let a=JSON.parse(await gt(n,"utf8"));if(a.schemaVersion!==1||!Array.isArray(a.projects))throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");let s=a.projects.filter(c=>typeof c.containerPath=="string"&&typeof c.configDirectory=="string"&&(e===c.containerPath||e.startsWith(`${c.containerPath}${X.sep}`))).sort((c,l)=>l.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let i=r.APP_CONFIG_DIR;if(i){if(!X.isAbsolute(i))throw new he("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return X.join(i,await lE(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function Mi({projectRoot:e,environment:t=process.env}){let r=await Na(X.resolve(e)),[n,i,o]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(X.join(r,".dyyto/application-config-binding.json")),gt(X.join(r,"config/application-config.json"))]),a=JSON.parse(n.toString("utf8")),s=Ig(JSON.parse(i.toString("utf8")),a),c=Ea(JSON.parse(o.toString("utf8")),a),l=await bg(r,s.application.id,t);if(!l||!X.isAbsolute(l))throw new he("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await Na(l),p=await Vi(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new he("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=X.relative(r,d);if(f===""||!f.startsWith("..")&&!X.isAbsolute(f))throw new he("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=X.join(d,".env");await hg(u,"\u5E94\u7528.env",c.bindings.length===0);let m=iE(await gt(u,"utf8")),g=[];for(let y of c.bindings){if(y.kind==="value"){let T=m[y.name]??"";g.push({name:y.name,kind:y.kind,required:y.required,configured:T.length>0,source:"APP_CONFIG_DIR",display:oE(T)});continue}if(m[y.name]!==y.file)throw new he("APPLICATION_CONFIG_REFERENCE_CHANGED",`${y.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let A=X.resolve(d,y.file),b=X.relative(d,A);if(!b||b.startsWith("..")||X.isAbsolute(b))throw new he("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${y.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let R=await hg(A,y.name,!y.required),I=await gt(A),_=I.length>0,S;if(_&&y.kind==="certificate-file")try{let T=new nE(I);S={subject:T.subject,issuer:T.issuer,validFrom:T.validFrom,validTo:T.validTo}}catch{throw new he("APPLICATION_CERTIFICATE_INVALID",`${y.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:y.name,kind:y.kind,required:y.required,configured:_,source:"APP_CONFIG_DIR",display:_?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",..._?{fingerprint:Oa(I),updatedAt:R.mtime.toISOString()}:{},...S?{certificate:S}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:Oa(o),entries:g}}var Gr="project-capabilities.json",kg=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function uE(e,t){if(!kg.test(e)||!kg.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 i=0;i<3;i+=1)if(r[i]!==n[i])return r[i]-n[i];return 0}async function fE(e,t){let r=Fi.join(e,...t.split("/"));try{let n=await dE(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:h(await Da(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function ja(e,t){let r=W(e),n=t.release,i=n.assets.find(a=>a.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&i?.renderer?.startsWith("npm-package-json-")===!0)return zl(fr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&i?.renderer==="react-component-package-json-v1")return Gl(fr(r,n.consumerProfile));let o=t.contents.get("package.json");if(o===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");return o}async function id(e){let t=W(e.manifest),r=Ge(e.currentLock),n=e.sourceRelease.release,i=e.targetRelease.release,o=t.capabilities.find(P=>P.capabilityId===n.capabilityId),a=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=i.capabilityId!==n.capabilityId&&i.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(o===void 0||a===void 0||o.capabilityId!==a.capabilityId||o.version!==a.version||n.capabilityId!==a.capabilityId||n.version!==a.version||n.integrity!==a.integrity||!s&&i.capabilityId!==a.capabilityId||i.consumerProfile!==a.consumerProfile||n.consumerProfile!==i.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&uE(i.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await pE(Fi.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:i.capabilityId,version:i.version}:P)},d=new Map(e.targetRelease.contents);i.assets.some(P=>P.path==="package.json")&&d.set("package.json",ja(l,e.targetRelease));for(let P of i.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,Pa(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,Sa(l));let p,f=c,u="package.json",m;if(i.schemaVersion===2&&i.availability.maturity!=="withdrawn"&&(i.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 Z=await Da(Fi.join(c,"package.json")),se=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=se.transactionRoot,u=se.mode==="pnpm-shared-lockfile"?`${se.unitRelativeRoot}/package.json`:"package.json",m=se.lockfilePath;let ot={release:i,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:i.consumerProfile,packageJson:Z,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ht=se.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?Ra:Aa)({...ot,topology:{mode:se.mode,unitRelativeRoot:se.unitRelativeRoot,unitImporterId:se.unitImporterId,lockfilePath:se.lockfilePath,workspaceManifestPath:se.workspaceManifestPath,workspaceManifestDigest:se.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?_a:ka)({...ot,lockResolution:e.packageSource.lockResolution});p=Ia(ht),d.set("package.json",ht.desiredPackageJson),d.set(m,ht.desiredLockfile)}catch(ht){throw ht instanceof H?new M("CONSUMER_PROFILE_UNSUPPORTED",ht.code):ht}}let g=new Map(a.assets.filter(P=>P.path!==Gr).map(P=>[P.path,P.digest])),y=new Map(i.assets.filter(P=>P.path!==Gr).map(P=>{let Z=d.get(P.path);if(Z===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,h(Z)]})),w=[...new Set([...g.keys(),...y.keys()])].sort(),A=[],b=[];for(let P of w){let Z=await fE(c,P);A.push(Z);let se=g.get(P),ot=y.get(P),ht=i.assets.find(Yh=>Yh.path===P);if(ht?.ownership==="seed-file"&&Z.exists&&Z.digest!==void 0){y.set(P,Z.digest),d.set(P,await Da(Fi.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:Z.digest,desiredDigest:Z.digest});continue}if(se===void 0){if(ot===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:ht?.ownership??"owned-file",desiredDigest:ot})}else ot===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:se}):b.push({path:P,kind:"replace",ownership:ht?.ownership??"owned-file",baseDigest:se,desiredDigest:ot})}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 Z=d.get(m);A.push({path:m,exists:!0,digest:h(P)}),b.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:h(P),desiredDigest:h(Z)})}let R=await Da(Fi.join(c,Gr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
39
- `);A.push({path:Gr,exists:!0,digest:h(R)}),b.push({path:Gr,kind:"replace",ownership:"owned-file",baseDigest:h(R),desiredDigest:h(I)});let _={schemaVersion:1,capabilityId:i.capabilityId,version:i.version,integrity:i.integrity,assets:i.assets.filter(P=>P.path!==Gr).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:y.get(P.path)})),verifiers:i.verifiers.map(({id:P})=>({id:P,kind:"command"}))},S=f===c?b:b.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),T=f===c?A:A.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),ue=Pe({action:"upgrade",capability:_,changes:S,observedAssets:T,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...p===void 0?{}:{packageAdoption:p}});d.set(Gr,I);let $=new Map;for(let P of ue.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let Z=f===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,se=P.path===m?P.path:P.path.startsWith(Z)?P.path.slice(Z.length):P.path,ot=d.get(se);if(ot===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",P.path);$.set(P.path,ot)}return{sourceLock:r,targetManifest:l,release:e.targetRelease,plan:ue,desiredContents:$,transactionRoot:f}}import{link as mE,mkdir as gE,open as _g,readFile as Rt,readdir as yE,realpath as Et,rm as hE,unlink as wE}from"node:fs/promises";import ge from"node:path";var D=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function $e(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function Ag(e){return h(k(e))}function ld(e){if(!$e(e.project.lockDigest)||!$e(e.project.appliedPlanId)||!$e(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(i=>typeof i!="string"||i.length>512||/[\u0000-\u001f\u007f]/.test(i)))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:Ag(t)}}function od(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(Ag(n)!==r)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return ld({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 Rg(e){if(!$e(e.planId)||!$e(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:h(k(t))}}function Eg(e){if(!$e(e.planId)||!$e(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:h(k(t))}}function Ca(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function ad(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function Pg(e){if(!$e(e.planId)||!$e(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:h(k(t))}}function sd(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function $a(e){if(!$e(e.planId)||!$e(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"||!$e(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:h(k(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:h(k(t))}}function cd(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt is invalid or has been modified");let{receiptId:i,schemaVersion:o,status:a,...s}=t;return $a(s)}async function IE(e){let t=await _g(e,"r");try{await t.sync()}finally{await t.close()}}async function Ui(e,t){let r=ge.dirname(e);await gE(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,i=await _g(n,"wx",384);try{await i.writeFile(`${k(t)}
40
- `,"utf8"),await i.sync()}finally{await i.close()}try{await mE(n,e),await wE(n),await IE(r)}catch(o){throw await hE(n,{force:!0}),o}}async function Ng(e){let t=await Et(ge.resolve(e.projectRoot)),r=od(e.plan),n=ge.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Ui(n,r)}catch(i){if(i.code!=="EEXIST")throw i;if(k(od(JSON.parse(await Rt(n,"utf8"))))!==k(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Jt(e){if(!$e(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=od(JSON.parse(await Rt(ge.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 dd(e){let t=await Et(ge.resolve(e.projectRoot)),r=cd(e.receipt),n=await Jt({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 o=await jn({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||o===null||r.npm.stageId!==o.stageId||r.npm.tarballDigest!==o.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 i=ge.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=cd(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return a}return r}async function Dn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=cd(JSON.parse(await Rt(ge.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 Og(e){let t=await Et(ge.resolve(e.projectRoot)),r=Ca(e.record),n=await Jt({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 i=ge.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=Ca(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return a}return r}async function Sg(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=Ca(JSON.parse(await Rt(ge.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 Dg(e){let t=await Et(ge.resolve(e.projectRoot)),r=ge.join(t,".dyyto","delivery","attempts"),n;try{n=await yE(r)}catch(i){if(i.code==="ENOENT")return null;throw i}for(let i of n.sort()){if(!i.endsWith(".json"))continue;let o=Ca(JSON.parse(await Rt(ge.join(r,i),"utf8")));if((await Jt({projectRoot:t,planId:o.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([jn({projectRoot:t,planId:o.planId}),Dn({projectRoot:t,planId:o.planId})]);if(s===null&&c===null)return o}return null}async function jg(e){let t=await Et(ge.resolve(e.projectRoot)),r=ad(e.record),n=await Jt({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 i=ge.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=ad(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return a}return r}async function jn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=ad(JSON.parse(await Rt(ge.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 Cg(e){let t=await Et(ge.resolve(e.projectRoot)),r=sd(e.record),n=await jn({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 i=ge.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=sd(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return a}return r}async function $g(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=sd(JSON.parse(await Rt(ge.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 Zg,readdir as iP}from"node:fs/promises";import md from"node:path";import{mkdir as pd,open as Va,readFile as Bi,readdir as ud,rename as Ma,rm as Yg}from"node:fs/promises";import ve from"node:path";var vE=44;var Tg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bE=new Uint8Array(64),xg=new Uint8Array(128);for(let e=0;e<Tg.length;e++){let t=Tg.charCodeAt(e);bE[e]=t,xg[t]=e}function qi(e,t){let r=0,n=0,i=0;do{let a=e.next();i=xg[a],r|=(i&31)<<n,n+=5}while(i&32);let o=r&1;return r>>>=1,o&&(r=-2147483648|-r),t+r}function Lg(e,t){return e.pos>=t?!1:e.peek()!==vE}var eC=1024*16;var kE=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 Vg(e){let{length:t}=e,r=new kE(e),n=[],i=0,o=0,a=0,s=0,c=0;do{let l=r.indexOf(";"),d=[],p=!0,f=0;for(i=0;r.pos<l;){let u;i=qi(r,i),i<f&&(p=!1),f=i,Lg(r,l)?(o=qi(r,o),a=qi(r,a),s=qi(r,s),Lg(r,l)?(c=qi(r,c),u=[i,o,a,s,c]):u=[i,o,a,s]):u=[i],d.push(u),r.pos++}p||_E(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function _E(e){e.sort(AE)}function AE(e,t){return e[0]-t[0]}var RE=/^[\w+.-]+:\/\//,EE=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,PE=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function NE(e){return RE.test(e)}function OE(e){return e.startsWith("//")}function Ug(e){return e.startsWith("/")}function SE(e){return e.startsWith("file:")}function Mg(e){return/^[.?#]/.test(e)}function Ta(e){let t=EE.exec(e);return qg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function DE(e){let t=PE.exec(e),r=t[2];return qg("file:","",t[1]||"","",Ug(r)?r:"/"+r,t[3]||"",t[4]||"")}function qg(e,t,r,n,i,o,a){return{scheme:e,user:t,host:r,port:n,path:i,query:o,hash:a,type:7}}function Fg(e){if(OE(e)){let r=Ta("http:"+e);return r.scheme="",r.type=6,r}if(Ug(e)){let r=Ta("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(SE(e))return DE(e);if(NE(e))return Ta(e);let t=Ta("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function jE(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function CE(e,t){Bg(t,t.type),e.path==="/"?e.path=t.path:e.path=jE(t.path)+e.path}function Bg(e,t){let r=t<=4,n=e.path.split("/"),i=1,o=0,a=!1;for(let c=1;c<n.length;c++){let l=n[c];if(!l){a=!0;continue}if(a=!1,l!=="."){if(l===".."){o?(a=!0,o--,i--):r&&(n[i++]=l);continue}n[i++]=l,o++}}let s="";for(let c=1;c<i;c++)s+="/"+n[c];(!s||a&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function zg(e,t){if(!e&&!t)return"";let r=Fg(e),n=r.type;if(t&&n!==7){let o=Fg(t),a=o.type;switch(n){case 1:r.hash=o.hash;case 2:r.query=o.query;case 3:case 4:CE(r,o);case 5:r.user=o.user,r.host=o.host,r.port=o.port;case 6:r.scheme=o.scheme}a>n&&(n=a)}Bg(r,n);let i=r.query+r.hash;switch(n){case 2:case 3:return i;case 4:{let o=r.path.slice(1);return o?Mg(t||e)&&!Mg(o)?"./"+o+i:o+i:i||"."}case 5:return r.path+i;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+i}}function $E(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function TE(e,t){let r=$E(e),n=t?t+"/":"";return i=>zg(n+(i||""),r)}var mr=0,LE=1,xE=2,VE=3,ME=4;function FE(e,t){let r=Gg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=Gg(e,n+1))e[n]=qE(e[n],t);return e}function Gg(e,t){for(let r=t;r<e.length;r++)if(!UE(e[r]))return r;return e.length}function UE(e){for(let t=1;t<e.length;t++)if(e[t][mr]<e[t-1][mr])return!1;return!0}function qE(e,t){return t||(e=e.slice()),e.sort(BE)}function BE(e,t){return e[mr]-t[mr]}var xa=!1;function zE(e,t,r,n){for(;r<=n;){let i=r+(n-r>>1),o=e[i][mr]-t;if(o===0)return xa=!0,i;o<0?r=i+1:n=i-1}return xa=!1,r-1}function GE(e,t,r){for(let n=r+1;n<e.length&&e[n][mr]===t;r=n++);return r}function JE(e,t,r){for(let n=r-1;n>=0&&e[n][mr]===t;r=n--);return r}function WE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function KE(e,t,r,n){let{lastKey:i,lastNeedle:o,lastIndex:a}=r,s=0,c=e.length-1;if(n===i){if(t===o)return xa=a!==-1&&e[a][mr]===t,a;t>=o?s=a===-1?0:a:c=a}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=zE(e,t,s,c)}function YE(e){return typeof e=="string"?JSON.parse(e):e}var HE="`line` must be greater than 0 (lines start at line 1)",XE="`column` must be greater than or equal to 0 (columns start at column 0)",Jg=-1,ZE=1,Wg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=YE(e),{version:i,file:o,names:a,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=i,this.file=o,this.names=a||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let d=TE(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=FE(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=WE(),this._bySources=void 0,this._bySourceMemos=void 0}};function QE(e){var t;return(t=e)._decoded||(t._decoded=Vg(e._encoded))}function Kg(e,t){let{line:r,column:n,bias:i}=t;if(r--,r<0)throw new Error(HE);if(n<0)throw new Error(XE);let o=QE(e);if(r>=o.length)return La(null,null,null,null);let a=o[r],s=eP(a,e._decodedMemo,r,n,i||ZE);if(s===-1)return La(null,null,null,null);let c=a[s];if(c.length===1)return La(null,null,null,null);let{names:l,resolvedSources:d}=e;return La(d[c[LE]],c[xE]+1,c[VE],c.length===5?l[c[ME]]:null)}function La(e,t,r,n){return{source:e,line:t,column:r,name:n}}function eP(e,t,r,n,i){let o=KE(e,n,t,r);return xa?o=(i===Jg?GE:JE)(e,n,o):i===Jg&&o++,o===-1||o===e.length?-1:o}var ae=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},fd=/^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,tP=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,Fa=(e,t)=>Object.keys(e).every(r=>t.includes(r)),zi=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Cn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function Xg(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 ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=ve.join(ve.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Jt({projectRoot:r,planId:t.deploymentId}),i=await Dn({projectRoot:r,planId:n.planId});if(i===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||i.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await ud(ve.join(ve.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function rP(e){if(!zi(e)||!Fa(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!zi(e.error)||!zi(e.page)||!Fa(e.error,["type","message","frames"])||!Fa(e.page,["origin","path"]))throw new ae("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 ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!fd.test(n)))throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!tP.test(e.traceparent)))throw new ae("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 ae("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 ae("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!zi(n)||!Fa(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let i of[n.line,n.column])if(i!==void 0&&(!Number.isSafeInteger(i)||Number(i)<1))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new ae("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 ae("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function nP(e,t,r="unknown"){let n=e.error.frames.map(a=>({file:Cn(a.file,2048),...a.line===void 0?{}:{line:a.line},...a.column===void 0?{}:{column:a.column},...a.function===void 0?{}:{function:Cn(a.function,256)}})),i={type:Cn(e.error.type,256),message:Cn(e.error.message,4096),frames:n},o=h(k({type:i.type,message:i.message,frames:n.slice(0,5).map(({file:a,line:s,column:c})=>({file:a,line:s,column:c}))}));return{schemaVersion:1,eventId:e.eventId,occurredAt:e.occurredAt,receivedAt:t,applicationId:Cn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:i,page:{origin:e.page.origin,path:Cn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:o,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Wt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return ve.join(ve.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return ve.join(ve.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=rP(t);if(!r.allowedOrigins.includes(n.page.origin))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let i=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),o=nP(n,r.receivedAt,i);return this.#t(async()=>{let a=this.directory();await pd(a,{recursive:!0,mode:448});let s=ve.join(a,`${o.eventId}.json`);try{let f=JSON.parse(await Bi(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(k({...u,receivedAt:o.receivedAt})!==k(o))throw new ae("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:o.eventId,state:u.state,duplicate:!0}}catch(f){if(f.code!=="ENOENT")throw f}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await Va(c,"wx",384);try{await l.writeFile(`${k(o)}
41
- `,"utf8"),await l.sync()}finally{await l.close()}await Ma(c,s);let d=await Va(a,"r");try{await d.sync()}finally{await d.close()}await this.rotate(),o.releaseId!==void 0&&await this.resymbolicate(o.releaseId);let p=JSON.parse(await Bi(s,"utf8"));return{eventId:o.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=ve.join(this.directory(),t),n=ve.join(ve.resolve(this.workspaceRoot),".dyyto","observability","quarantine");await pd(n,{recursive:!0,mode:448}),await Ma(r,ve.join(n,`${Date.now()}-${t}`))}async all(){let t=await ud(this.directory()).catch(()=>[]),r=[];for(let n of t){if(!n.endsWith(".json")){n.includes(".tmp-")&&await this.quarantine(n).catch(()=>{});continue}try{let i=JSON.parse(await Bi(ve.join(this.directory(),n),"utf8"));if(i.eventId!==n.slice(0,-5))throw new Error("identity mismatch");r.push({...i,correlation:i.correlation??"unknown"})}catch{await this.quarantine(n).catch(()=>{})}}return r.sort((n,i)=>i.occurredAt.localeCompare(n.occurredAt)||n.eventId.localeCompare(i.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=k({v:1,offset:t,snapshot:r});return Buffer.from(k({content:n,digest:h(n)})).toString("base64url")}parseCursor(t,r){try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));if(typeof n.content!="string"||n.digest!==h(n.content))throw new Error("tampered");let i=JSON.parse(n.content);if(i.v!==1||!Number.isSafeInteger(i.offset)||i.offset<0||i.snapshot!==r)throw new Error("expired");return i.offset}catch{throw new ae("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),i=h(k(n.map(s=>s.eventId))),o=t.cursor===void 0?0:this.parseCursor(t.cursor,i),a=n.slice(o,o+r);return{events:a,...o+a.length<n.length?{nextCursor:this.cursor(o+a.length,i)}:{}}}async get(t){if(!Hg.test(t))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await Bi(ve.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 ae("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 i of r){let o=n.get(i.fingerprint);o?o.count+=1:n.set(i.fingerprint,{count:1,latestAt:i.occurredAt,event:i})}return{total:r.length,groups:[...n.entries()].map(([i,o])=>({fingerprint:i,...o}))}}async rotate(){let t=await this.all(),n=t.reduce((i,o)=>Math.max(i,Date.parse(o.receivedAt)),0)-10080*60*1e3;for(let i of t.slice(1e4))await Yg(ve.join(this.directory(),`${i.eventId}.json`),{force:!0});for(let i of t.slice(0,1e4))Date.parse(i.receivedAt)<n&&await Yg(ve.join(this.directory(),`${i.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!fd.test(t.releaseId)||!fd.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!zi(t.map)||"sourcesContent"in t.map)throw new ae("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(k(t.map)),n=h(r),i=ve.join(this.releases(),t.releaseId);await pd(i,{recursive:!0,mode:448});let o=h(t.asset),a=ve.join(i,`${o}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await Va(`${a}.tmp`,"w",384);try{await c.writeFile(`${k({registration:s,map:t.map})}
42
- `),await c.sync()}finally{await c.close()}return await Ma(`${a}.tmp`,a),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await ud(ve.join(this.releases(),t)).catch(()=>[]),n=[];for(let i of r)try{n.push(JSON.parse(await Bi(ve.join(this.releases(),t,i),"utf8")))}catch{}for(let i of(await this.all()).filter(o=>o.releaseId===t&&o.state==="map-missing")){let o=!1,a=i.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=Kg(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:(o=!0,{...d,source:f.source.replace(/^file:\/\//,""),sourceLine:f.line,sourceColumn:f.column+1})}catch{return d}});if(!o)continue;let s={...i,error:{...i.error,frames:a},state:"symbolicated"},c=ve.join(this.directory(),`${i.eventId}.json`),l=await Va(`${c}.tmp`,"w",384);try{await l.writeFile(`${k(s)}
43
- `),await l.sync()}finally{await l.close()}await Ma(`${c}.tmp`,c)}}};var tt=(e,t,r,n,i)=>({code:e,severity:t,fact:r,message:n,...i===void 0?{}:{action:i}});async function Gi(e){if(e.lock.capabilities.length===0||e.lock.capabilities.some(r=>r.evidenceIds.length===0))return[tt("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 i=Ii(JSON.parse(await Zg(md.join(e.projectRoot,".dyyto","evidence",`${n}.json`),"utf8")));if(i.evidenceId!==n||i.capabilityId!==r.capabilityId||i.capabilityVersion!==r.version||i.capabilityIntegrity!==r.integrity||i.projectStateDigest!==r.projectStateDigest||i.result!=="passed")return[tt("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[tt("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[tt("EVIDENCE_VALID","info","evidence",`\u5DF2\u6838\u9A8C ${e.lock.capabilities.length} \u9879\u80FD\u529B\u7684 ${t} \u6761\u91C7\u7528\u8BC1\u636E\u3002`)]}function gd(e){return e==="adopted"?[]:e==="planned"?[tt("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"?[tt("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"?[tt("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"?[tt("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")]:[tt("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 Qg(e){try{let r=JSON.parse(await Zg(md.join(e.workspaceRoot,".dyyto","observability","config.json"),"utf8"));if(!Array.isArray(r.applications)||!r.applications.includes(e.applicationId))return[tt("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[tt("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 Wt(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await iP(md.join(e.workspaceRoot,".dyyto","observability","quarantine")).catch(()=>[])).length;return t>0?[tt("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")]:[tt("OBSERVABILITY_CONFIGURED","info","repository","\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u914D\u7F6E\u4E0E\u672C\u5730\u5B58\u50A8\u53EF\u8BFB\u53D6\u3002")]}function ey(e){let t=e.units.map(n=>{let i=n.findings.some(o=>o.severity==="critical")?"blocked":n.findings.some(o=>o.severity==="warning")?"attention":"healthy";return{...n,status:i}}),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 Ji,realpath as ty}from"node:fs/promises";import Jr from"node:path";var le=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function ry(e){let t=await ty(Jr.resolve(e.projectRoot)),r=W(e.manifest),n=e.release.release,i=e.currentLock.capabilities.find(f=>f.capabilityId===n.capabilityId&&f.version===n.version);if(!i||i.packageAdoption!==void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let o=W({...r,capabilities:r.capabilities.filter(f=>f.capabilityId!==n.capabilityId)}),a=Buffer.from(`${JSON.stringify(o,null,2)}
44
- `),s=await Wi(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:h(a)},...i.assets.map(f=>({path:f.path,kind:"remove",ownership:f.ownership??"owned-file",baseDigest:f.digest}))],l=await Promise.all(c.map(f=>Wi(t,f.path))),d={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:i.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:o,desiredContents:new Map([["project-capabilities.json",a]]),transactionRoot:t,removedSources:[]}}async function Wi(e,t){try{let r=await Ji(Jr.join(e,...t.split("/")));return{path:t,exists:!0,digest:h(r)}}catch(r){if(r.code==="ENOENT")return{path:t,exists:!1};throw r}}async function yd(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await ty(Jr.resolve(e.projectRoot)),r=W(e.manifest),n=e.release.release,i=e.packageSource?.topology,o=i?.transactionRoot??t,a=_=>i?.mode==="pnpm-shared-lockfile"?`${i.unitRelativeRoot}/${_}`:_;if(n.kind!=="engineering-feature"||n.consumerProfile!=="any-project")throw new le("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(_=>_.capabilityId===n.capabilityId))throw new le("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(_=>_.consumerProfile===c);if(c===void 0||!l.includes(c)||d===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(_=>!r.capabilities.some(S=>S.capabilityId===_)||!e.currentLock.capabilities.some(S=>S.capabilityId===_)))throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","A required project capability is not adopted and verified");let f=W({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),u=a("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(f,null,2)}
45
- `),g=await Wi(o,u);if(!g.exists||g.digest===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let y=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:h(m)}],w=new Map([[u,m]]),A;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let _;try{_=await Ji(Jr.join(t,"package.json"))}catch{throw new le("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 Ji(Jr.join(t,"pnpm-lock.yaml")).catch(se=>se.code==="ENOENT"?void 0:Promise.reject(se)),T=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},ue=T.mode==="pnpm-shared-lockfile",$={mode:T.mode,unitRelativeRoot:T.unitRelativeRoot,unitImporterId:T.unitImporterId,lockfilePath:T.lockfilePath,...T.workspaceManifestPath?{workspaceManifestPath:T.workspaceManifestPath,workspaceManifestDigest:T.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(ue&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let Z=ue?(e.packageChannel==="development"?Ra:Aa)({release:n,...P,consumerProfile:c,packageJson:_,currentLockfile:S,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?_a:ka)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:_,...S===void 0?{}:{currentLockfile:S},generatedAt:e.generatedAt,expiresAt:e.expiresAt});A=Ia(Z),y.push({path:a("package.json"),kind:"replace",ownership:"owned-file",baseDigest:Z.packageJsonPreimageDigest,desiredDigest:Z.desiredPackageJsonDigest}),w.set(a("package.json"),Z.desiredPackageJson),y.push({path:T.lockfilePath,kind:S===void 0?"create":"replace",ownership:"owned-file",...S===void 0?{}:{baseDigest:h(S)},desiredDigest:Z.desiredLockfileDigest}),w.set(T.lockfilePath,Z.desiredLockfile)}catch(S){throw S instanceof H?new le("CAPABILITY_PACKAGE_SOURCE_INVALID",S.code):S}}for(let _ of n.assets){let S=e.release.contents.get(_.path);if(S===void 0)throw new le("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let T=_.renderer==="application-config-contract-v1"?Pa(r):_.renderer==="application-config-binding-v1"?Sa(r):S;if(_.ownership==="managed-region"){if(_.regionId===void 0)throw new le("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let ue;try{ue=await Ji(Jr.join(t,..._.path.split("/")))}catch{throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(gm({source:ue.toString("utf8"),regionId:_.regionId,content:Buffer.from(T).toString("utf8")}));y.push({path:a(_.path),kind:"merge",ownership:"managed-region",regionId:_.regionId,baseDigest:h(ue),desiredDigest:h($)}),w.set(a(_.path),$)}else{let ue=await Wi(t,_.path);if(_.ownership==="seed-file"&&ue.exists){let $=await Ji(Jr.join(t,..._.path.split("/")));y.push({path:a(_.path),kind:"create",ownership:"seed-file",desiredDigest:h($)}),w.set(a(_.path),$)}else y.push({path:a(_.path),kind:"create",ownership:_.ownership,desiredDigest:h(T)}),w.set(a(_.path),T)}}let b=await Promise.all(y.map(_=>Wi(o,_.path))),R={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:y.filter(_=>_.path!==u&&_.path!==i?.lockfilePath).map(_=>({path:i?.mode==="pnpm-shared-lockfile"?_.path.slice(i.unitRelativeRoot.length+1):_.path,ownership:_.ownership,desiredDigest:_.desiredDigest})),verifiers:n.verifiers.map(_=>({id:_.id,kind:"file-digest"}))};return{plan:Pe({action:"adopt",capability:R,changes:y,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...A===void 0?{}:{packageAdoption:A}}),manifest:f,desiredContents:w,transactionRoot:o,dependency:{profile:c,satisfied:!0}}}var ny=nn(Dr(),1);var oP={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},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:te},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}}}}},jC=new ny.Ajv2020({allErrors:!0,strict:!0}).compile(oP);var cy=nn(Dr(),1);import{readFile as aP,realpath as sP}from"node:fs/promises";import iy from"node:path";var oy="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",ay="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",cP={$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:oy},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:te},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:te},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:ay,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:oy}},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:ay,maxLength:240}}}}}},sy=new cy.Ajv2020({allErrors:!0,strict:!0}).compile(cP),Wr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function lP(e){return h(k(e))}function dP(e){if(!sy(e))throw new Wr("EXAMPLE_RECIPE_INVALID",sy.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 Wr("EXAMPLE_RECIPE_INVALID");return t}async function ly(e){let t=await sP(iy.resolve(e)),r;try{r=dP(JSON.parse(await aP(iy.join(t,"recipe.json"),"utf8")))}catch(o){throw o instanceof Wr?o:new Wr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...i}=r;if(lP(i)!==n)throw new Wr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var uy=nn(Dr(),1);import{readFile as pP,realpath as uP}from"node:fs/promises";import dy from"node:path";var fP={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},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:te},capability:{type:"string",pattern:`${te.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:te},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:te},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"]}}}},py=new uy.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(fP),Kt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function mP(e){return h(k(e))}function gP(e){if(!py(e))throw new Kt("TEMPLATE_INVALID",py.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 Kt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Kt("TEMPLATE_INVALID");return t}async function Ki(e,t=new Date){let r=await uP(dy.resolve(e)),n;try{n=gP(JSON.parse(await pP(dy.join(r,"template.json"),"utf8")))}catch(a){throw a instanceof Kt?a:new Kt("TEMPLATE_INVALID")}let{integrity:i,...o}=n;if(mP(o)!==i)throw new Kt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Kt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as fy}from"node:fs/promises";import my from"node:path";var yP=/^[A-Z][A-Z0-9_]*$/u,hP=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function wP(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||!yP.test(n[1]))continue;let i=n[1],o=n[2].trim();t.set(i,{name:i,requirement:o.length===0?"conditional":"optional",secret:hP.test(i),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function gy(e){let t=await fy(my.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await fy(my.join(e.projectRoot,t),"utf8"):"",n=await Mi({projectRoot:e.projectRoot}).catch(()=>null);return{commands:["dev","build","test","package"].flatMap(o=>e.commands[o]?[{id:o,script:e.commands[o],mode:o==="dev"?"managed-process":"foreground-task"}]:[]),environment:n?n.entries.map(o=>({name:o.name,requirement:o.required?"conditional":"optional",secret:o.kind!=="value",configured:o.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:o.display,...o.fingerprint?{fingerprint:o.fingerprint}:{}})):wP(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var yy={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"])},hy=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function wy(e,t){if(!yy[t.plane]||t.state&&!hy.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=yy[t.plane],n=t.from?Date.parse(t.from):null,i=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||i!==null&&Number.isNaN(i)||n!==null&&i!==null&&n>i)throw new Error("OPERATION_FILTER_INVALID");let o=e.filter(l=>r.has(l.operation)),a=[...new Map(o.map(l=>[l.projectId,{id:l.projectId,name:l.projectName}])).values()].sort((l,d)=>l.name.localeCompare(d.name)),s=o.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)&&(i===null||Date.parse(l.createdAt)<=i)).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(a),states:Object.freeze([...hy]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var rt=class extends Error{code;constructor(t){super(t),this.code=t}},IP=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Iy=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,vP=/^sha512-[A-Za-z0-9+/]{86}==$/u,Ua=/^sha256:[a-f0-9]{64}$/u,bP=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,kP=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,_P=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Kr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function AP(e){if(!Kr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!IP.test(e.packageName)||!Iy.test(e.version)||!bP.test(e.assetName)||!vP.test(e.integrity)||!Ua.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)||!Iy.test(n)||kP.test(n))?!1:e.lifecycleScripts.every(r=>_P.has(r))}function hd(e){if(!Kr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(o=>Object.freeze({...o,dependencies:Object.freeze({...o.dependencies}),lifecycleScripts:Object.freeze([...o.lifecycleScripts])}));if(t.some(o=>!AP(o)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(o=>o.packageName+"@"+o.version);if(new Set(r).size!==r.length||r.some((o,a)=>a>0&&o.localeCompare(r[a-1])<=0))throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(o=>o.packageName));for(let o of t)for(let[a,s]of Object.entries(o.dependencies))if(a.startsWith("@aipt/")&&(!n.has(a)||!t.some(c=>c.packageName===a&&c.version===s)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");let i={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...i,bundleId:h(k(i))})}function Yr(e){let t=e;if(typeof t!="object"||t===null||!Kr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!Ua.test(t.bundleId)||!Array.isArray(t.artifacts))throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");if(hd({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function wd(e){if(!Kr(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 rt("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(i=>Object.freeze({...i}));if(t.some(i=>!Kr(i,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i.relativeRoot)||!Ua.test(i.manifestDigest))||new Set(t.map(i=>i.relativeRoot)).size!==t.length)throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");let r=Yr(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:h(k(n))})}function vy(e){let t=e;if(typeof t!="object"||t===null||!Kr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!Ua.test(t.planId)||!Kr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");if(wd({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");return t}function by(e){let t=Yr(e.bundle),r=Ti(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Yl({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 Ze=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},ky=/^sha256:[a-f0-9]{64}$/u,qa=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function Id(e){if(!qa.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>ky.test(r))||!qa.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 Ze("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:h(k(t))})}function _y(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let r=Id({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 Ze("RESOLUTION_WORKER_BUILD_INVALID");return r}function vd(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>ky.test(r))||!qa.test(e.workerReleaseId)||!qa.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function Ba(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let r=vd({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 Ze("RESOLUTION_WORKER_BUILD_INVALID");return r}var Yi=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},bd=/^sha256:[a-f0-9]{64}$/u,RP=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function kd(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>bd.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!RP.test(r.path)||!bd.test(r.currentDigest)||!bd.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Yi("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:h(k(t))})}function Ay(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Yi("RECOVERY_OVERRIDE_INVALID");let r=kd({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 Yi("RECOVERY_OVERRIDE_INVALID");return r}var Hi=class extends Error{code;constructor(t,r){super(r),this.code=t}},Ad=/^sha256:[a-f0-9]{64}$/u,EP=/^sha512-[A-Za-z0-9+/]{86}==$/u,PP=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,NP=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,OP=/[\u0000-\u001f\u007f]/u;function $n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Tn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function Yt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!OP.test(e)}function _d(e){return Yt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Ry(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Yt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function SP(e){return e===null?!0:!$n(e)||!Tn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:_d(e.fileName)&&Ad.test(String(e.digest))&&EP.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function DP(e){if(!$n(e)||!Tn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!PP.test(e.packageName)||!NP.test(e.version)||!Yt(e.title,120)||!Yt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!$n(e.source)||!Tn(e.source,["repository","path","revision","treeDigest"])||!Yt(e.source.repository)||!_d(e.source.path)||!Yt(e.source.revision,200)||!Ad.test(String(e.source.treeDigest))||!SP(e.artifact)||!$n(e.compatibility)||!Tn(e.compatibility,["node","packageManager"])||!Yt(e.compatibility.node,100)||!Yt(e.compatibility.packageManager,100)||!Ry(e.exports)||!Ry(e.consumerEvidence)||!$n(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Tn(e.documentation,t)||!_d(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Yt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function jP(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(!DP(t))throw new Hi("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:h(k(t))})}function Ey(e){if(!$n(e)||!Tn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!Ad.test(String(e.releaseDigest)))throw new Hi("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...i}=e,o=jP(i);if(o.releaseDigest!==t)throw new Hi("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return o}import{lstat as CP,readFile as $P,realpath as TP}from"node:fs/promises";import Py from"node:path";async function Ny(e){let t=await TP(Py.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,i=[...e.lock.capabilities].sort((a,s)=>a.committedAt.localeCompare(s.committedAt)||a.capabilityId.localeCompare(s.capabilityId));for(let a of i)if(!r.has(a.capabilityId))for(let s of a.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:a.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let o=[];for(let a of[...n.values()].sort((s,c)=>s.path.localeCompare(c.path)||(s.regionId??"").localeCompare(c.regionId??"")||s.capabilityId.localeCompare(c.capabilityId))){let s=Py.join(t,...a.path.split("/")),l=await CP(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await $P(s);if(a.ownership!=="managed-region")return h(p);if(a.regionId!==void 0)try{return h(Ko(p.toString("utf8"),a.regionId))}catch{return}}).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d))===a.digest;o.push({capabilityId:a.capabilityId,path:a.path,kind:"create",ownership:a.ownership,...a.regionId===void 0?{}:{regionId:a.regionId},desiredDigest:a.digest,disposition:l?"noop":"conflict",...l?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return o}import{createHash as LP}from"node:crypto";var xP=/[\u0000-\u001f\u007f]/u,za=e=>`sha256:${LP("sha256").update(Rd(e)).digest("hex")}`,Rd=e=>Array.isArray(e)?`[${e.map(Rd).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)}:${Rd(r)}`).join(",")}}`:JSON.stringify(e),gr=(e,t)=>{if(!e.trim()||e.length>500||xP.test(e))throw new Error(`DEVELOPMENT_${t.toUpperCase()}_INVALID`);return e.trim()},VP=e=>Object.freeze({repository:gr(e.repository,"repository"),branch:gr(e.branch,"branch"),commit:gr(e.commit,"commit")});function Oy(e){if(e.source==="requirement-task"&&(!e.requirementId||!e.taskId))throw new Error("DEVELOPMENT_REQUIREMENT_TASK_REQUIRED");if(e.source==="direct"&&(e.requirementId!==null||e.taskId!==null))throw new Error("DEVELOPMENT_DIRECT_LINK_INVALID");let t={schemaVersion:1,kind:"DevelopmentIntent",source:e.source,intentId:gr(e.intentId,"intent_id"),title:gr(e.title,"title"),summary:gr(e.summary,"summary"),repository:VP(e.repository),requirementId:e.requirementId,taskId:e.taskId,acceptance:Object.freeze(e.acceptance.map(r=>gr(r,"acceptance")))};return Object.freeze({...t,intentDigest:za(t)})}function Sy(e){let t={intentDigest:e.intent.intentDigest,repository:e.intent.repository,worktreePath:gr(e.worktreePath,"worktree"),startedAt:e.startedAt},r={schemaVersion:1,kind:"DevelopmentSession",sessionId:za(t),revision:1,state:"active",intent:e.intent,worktree:Object.freeze({path:t.worktreePath,writable:!0}),engineeringContextDigest:e.engineeringContextDigest,knowledgeContextDigest:e.knowledgeContextDigest??null,startedAt:e.startedAt,finishedAt:null};return Object.freeze({...r,sessionDigest:za(r)})}function Dy(e,t){if(e.state!=="active")throw new Error("DEVELOPMENT_SESSION_NOT_ACTIVE");let r={...e,revision:e.revision+1,state:"finished",worktree:Object.freeze({...e.worktree,writable:!1}),finishedAt:t},{sessionDigest:n,...i}=r;return Object.freeze({...i,sessionDigest:za(i)})}import{readFile as ie,readdir as Jy,realpath as Pt}from"node:fs/promises";import{execFile as QP,spawn as eN}from"node:child_process";import N from"node:path";import{parseArgs as de,promisify as tN}from"node:util";import{lstat as jy,mkdir as Pd,readFile as Cy,realpath as Ed,rm as MP,writeFile as $y}from"node:fs/promises";import nt from"node:path";var it=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},FP=e=>k(e),Ty=e=>h(FP(e));async function Ly(e,t){let r=await Ed(nt.resolve(e)),n=nt.join(r,".examples");await Pd(n,{recursive:!0});let i=await Ed(n),o=nt.resolve(r,t);if(nt.dirname(o)!==i||nt.basename(o).startsWith(".")||nt.basename(o).length<1)throw new it("SCAFFOLD_ARGUMENT_INVALID");if(await jy(o).then(()=>!0).catch(a=>a.code==="ENOENT"?!1:Promise.reject(a)))throw new it("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:o,outputRelativePath:nt.relative(r,o)}}async function xy(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 it("SCAFFOLD_ARGUMENT_INVALID");let r=await Ly(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),i={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()},o={...i,planId:Ty(i)},a=nt.join(r.workspaceRoot,".dyyto","scaffold-plans");await Pd(a,{recursive:!0});let s=nt.join(a,`${o.planId}.json`);return await $y(s,`${k(o)}
46
- `,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await Cy(s,"utf8")!==`${k(o)}
47
- `)throw new it("SCAFFOLD_PLAN_INVALID")}),o}async function UP(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new it("SCAFFOLD_PLAN_INVALID");let r=await Ed(nt.resolve(e)),n;try{n=JSON.parse(await Cy(nt.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new it("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:i,...o}=n;if(i!==t||Ty(o)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new it("SCAFFOLD_PLAN_INVALID");return n}async function Vy(e){let t=await UP(e.workspaceRoot,e.approvedPlanId);if(t.recipeId!==e.recipe.recipeId||t.recipeVersion!==e.recipe.version||t.recipeIntegrity!==e.recipe.integrity)throw new it("SCAFFOLD_PLAN_INVALID");let r=await Ly(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await jy(r.output).then(()=>!0).catch(()=>!1)&&await MP(r.output,{recursive:!0,force:!0}),new it("SCAFFOLD_APPLY_FAILED",s)}let i={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},o=h(k(i)),a=nt.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await Pd(a,{recursive:!0}),await $y(nt.join(a,`${o}.json`),`${k({...i,evidenceId:o})}
48
- `,{flag:"wx",mode:384}),{evidenceId:o,output:r.output,receipts:n}}import{lstat as Xi,readFile as Nd,readdir as qP,realpath as Od}from"node:fs/promises";import ye from"node:path";var My={capabilities:ye.resolve(import.meta.dirname,"catalog"),packages:ye.resolve(import.meta.dirname,"package-releases")};function Uy(e,t){return e<t?-1:e>t?1:0}function Ja(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Ja).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>Uy(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Ja(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function BP(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(i===""||i.startsWith("#"))continue;if(i.startsWith("export "))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u4F7F\u7528 export`);let o=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i);if(!o)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(o[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${o[1]}`);let a=o[2].trim();if((a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"))&&(a=a.slice(1,-1)),/[`$][({]?/u.test(a))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u547D\u4EE4\u6216\u53D8\u91CF\u5C55\u5F00`);t.set(o[1],a)}return t}async function Fy(e,t){let r=await Xi(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 Ga(e,t){let r=await Xi(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 Od(e)}async function zP(e){let t=e;for(;;){if(await Xi(ye.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=ye.dirname(t);if(r===t)return;t=r}}async function GP(e){if(!ye.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Ga(e,"IDP_CONFIG_DIR");await zP(t);let r=await Ga(ye.join(t,"components"),"components"),n=await Ga(ye.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),i=ye.relative(t,n);if(i.startsWith("..")||ye.isAbsolute(i))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let o=ye.join(n,".env");await Fy(o,"Dyyto \u7EC4\u4EF6 .env");let a=BP(await Nd(o,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(a===void 0||a==="")return[];if(ye.isAbsolute(a)||a.includes("\0")||/[*?{}[\]]/u.test(a))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=ye.resolve(n,a),c=ye.relative(n,s);if(c===""||c.startsWith("..")||ye.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(ye.sep).slice(0,-1))l=await Ga(ye.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await Od(ye.dirname(s)),p=ye.relative(n,d);if(p.startsWith("..")||ye.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await Fy(s,"Package Catalog Binding");let f=[];for(let u of(await Nd(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!ye.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Xi(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let y=await Od(m),w=await Xi(y);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");f.includes(y)||f.push(y)}return f.sort()}async function JP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await GP(e);return{capabilities:My.capabilities,packages:[My.packages,...t]}}async function Wa(e){return(await qP(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function WP(e,t){let r=o=>o.split("-",1)[0].split(".").map(Number),n=r(e),i=r(t);for(let o=0;o<3;o+=1){let a=(n[o]??0)-(i[o]??0);if(a!==0)return a}return e.localeCompare(t)}function KP(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 YP(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 HP(e){let t=[];for(let r of await Wa(e))for(let n of await Wa(ye.join(e,r))){let i=`capability:${r}@${n}`;t.push(Re(ye.join(e,r,n)).then(o=>({entry:{item:KP(o.release),release:o.release}})).catch(()=>({diagnostic:{ref:i,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 XP(e){let t=[];for(let r of await Wa(e))for(let n of await Wa(ye.join(e,r))){let i=ye.join(e,r,n,"release.json"),o=`package:${r}@${n}`;t.push(Nd(i,"utf8").then(a=>{let s=Ey(JSON.parse(a));return{entry:{item:YP(s),release:s}}}).catch(()=>({diagnostic:{ref:o,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 Sd(e){let t=e??await JP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...i]=await Promise.all([HP(t.capabilities),...r.map(XP)]),o=[...n.entries,...i.flatMap(l=>l.entries)].sort((l,d)=>l.item.ref.localeCompare(d.item.ref)),a=[],s=new Set,c=[];for(let l of o)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),a.push(l));return{entries:a,diagnostics:[...n.diagnostics,...i.flatMap(l=>l.diagnostics),...c].sort((l,d)=>l.ref.localeCompare(d.ref))}}async function Ka(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await Sd(e.roots),n=new Map;for(let{item:a}of r.entries){if(e.kind!==void 0&&a.kind!==e.kind)continue;let s=[a.id,a.version,a.title,a.summary,a.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${a.kind}:${a.id}`,l=n.get(c);(l===void 0||WP(l.version,a.version)<0)&&n.set(c,a)}let i=[...n.values()].sort((a,s)=>a.ref.localeCompare(s.ref)),o=e.limit??50;return{query:t,total:i.length,items:i.slice(0,o),diagnostics:r.diagnostics}}async function Ya(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await Sd(e.roots),n=r.entries.find(({item:o})=>o.ref===t),i=r.diagnostics.find(o=>o.ref===t);if(i?.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&&i!==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 ZP(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let i=n;if(typeof i.capabilityId!="string"||typeof i.version!="string"||!Array.isArray(i.integration?.packages))continue;let o=`capability:${i.capabilityId}@${i.version}`;for(let a of i.integration.packages){if(typeof a!="object"||a===null)continue;let s=a;if(typeof s.packageName!="string"||typeof s.version!="string")continue;let c=`${s.packageName}@${s.version}`,l=t.get(c)??new Set;l.add(o),t.set(c,l)}}return t}async function qy(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 Sd(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=ZP(r.entries),i=r.entries.filter(({item:a})=>a.kind==="package").map(({release:a})=>{let s=a;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((a,s)=>Uy(a.ref,s.ref)),o={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(i)};return Object.freeze({...o,sourceDigest:h(Ja(o))})}function By(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||h(Ja(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
49
- `}var Zi={"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"},Wy=tN(QP),rN=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"]),Ky=(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,Ha={"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 Yy(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Xa(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let i=await ie(N.join(e,"package.json")),o=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:a}=await import("./optional-runtime.js"),s=await zt(e),c=await ie(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 le("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=xi({release:t.release,packageJson:n??i}),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:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:f.toISOString(),expiresAt:u});return{...o,lockResolution:{lockfile:m.evidence.desiredLockfile,packages:m.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:y,version:w,integrity:A})=>({registryId:g,packageName:y,version:w,integrity:A}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let l=Ql({release:t.release,packageJson:n??i}),d=await a({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:o.registryConfigs,endpointBindings:o.endpointBindings});return{...o,lockResolution:d,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function Hy(e,t,r,n){let i=r.capabilities.find(b=>b.capabilityId===t.release.capabilityId&&b.version===t.release.version);if(i&&!i.packageAdoption){let b=JSON.parse(await ie(N.join(e,"project-capabilities.json"),"utf8")),R=new Date;return ry({projectRoot:e,manifest:b,release:t,currentLock:r,generatedAt:R.toISOString(),expiresAt:new Date(R.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!i?.packageAdoption)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let o=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),a=await ie(N.join(e,"package.json")),s=await ie(N.join(e,"project-capabilities.json")),c=await zt(e),l=await ie(N.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources.map(R=>R.packageName)??[])),p=i.packageAdoption.sources.filter(b=>!d.has(b.packageName)),f=c.mode==="pnpm-shared-lockfile"?td({packageJson:a,remove:p}):ed({packageJson:a,remove:p}),u=r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),R=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...i.assets.map(_=>`${c.unitRelativeRoot}/${_.path}`)],I=await Promise.all(R.map(async _=>ie(N.join(c.transactionRoot,..._.split("/"))).then(S=>({path:_,exists:!0,digest:h(S)})).catch(S=>S.code==="ENOENT"?{path:_,exists:!1}:Promise.reject(S))));return{...cg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,endpointBindings:o.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:b.preservedImporterDigests,resolutionEvidence:b.evidence,resolutionWorkerReleaseId:b.workerReleaseId,remainingSources:u,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}let{resolvePnpmLock:y}=await import("./optional-runtime.js"),w=await y({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...i.packageAdoption.sources],registries:o.registryConfigs,endpointBindings:o.endpointBindings}),A=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...i.assets.map(b=>b.path)].map(async b=>ie(N.join(e,...b.split("/"))).then(R=>({path:b,exists:!0,digest:h(R)})).catch(R=>R.code==="ENOENT"?{path:b,exists:!1}:Promise.reject(R))));return{...sg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,desiredLockfile:w.lockfile,endpointBindings:o.endpointBindings,observedAssets:A,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}function B(e){return e.includes("--json")?"json":"human"}function v(e){throw new j({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Te(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?v("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function Za(e,t){return rN.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function nN(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?v("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 Qa(e){let t=JSON.parse(await ie(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return v("Project manifest must select one capability.");let n=await Re(Te(r.capabilityId,r.version)),i=await Fe(e).catch(()=>null),o=new Date,s=await(t.profile?.id==="standalone-npm-package"?Oi:t.profile?.id==="react-component-library"?Si:t.profile?.id==="nextjs-full-stack-application"?Sn:t.profile?.id==="workspace-npm-package"?Di:t.profile?.id==="workspace-node-application"?ji:t.profile?.id==="workspace-web-application"?Ci:t.profile?.id==="workspace-expo-application"?$i:Zo)({projectRoot:e,manifest:t,release:n,...i===null?{}:{currentLock:i},generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+1800*1e3).toISOString()});return Bt({projectRoot:e,plan:s.plan,now:o.toISOString()})}async function Xy(e){let t;try{t=de({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 v("Create arguments are invalid.")}if(t.positionals.length!==1)return v("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,y]=r.split("@");n=await Ki(Za(g,y))}let i=n?.profile.id??t.values.profile;if(i!=="typescript-library"&&i!=="standalone-npm-package"&&i!=="react-component-library"&&i!=="nextjs-full-stack-application"&&i!=="workspace-root")return v("Create requires a supported --profile.");let o=t.values.capability,a=i==="workspace-root"&&o==="foundation.workspace-root@1.0.0"||i==="standalone-npm-package"&&o==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(a?o:Zi[i]);if(n!==void 0&&s.split("@")[0]!==Zi[i].split("@")[0])return v(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&o!==s)return v(`Create requires --capability ${s}.`);if(n!==void 0&&o!==void 0)return v("Create with --template does not accept --capability.");let[c,l]=s.split("@"),d={};if(i==="standalone-npm-package"||i==="react-component-library"){let g=t.values.name,y=t.values.version,w=t.values.license,A=t.values["publish-access"],b=t.values.repository;if([g,y,w,A].some(R=>typeof R!="string")||l==="1.1.0"&&typeof b!="string")return v(`Standalone npm package requires --name, --version, --license, --publish-access${l==="1.1.0"?", and --repository":""}.`);d={name:String(g),version:String(y),license:String(w),publishAccess:String(A),...typeof b=="string"?{repository:b}:{}}}else if(i==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return v("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:i,parameters:d},capabilities:[{capabilityId:c,version:l}]};(i==="standalone-npm-package"||i==="react-component-library")&&fr(W(p),i),i==="nextjs-full-stack-application"&&Ur(W(p));let f=await fa({projectRoot:t.positionals[0],manifest:p}),u=await Qa(f.projectRoot),m=ee(f.projectRoot);return{outputMode:B(e),human:`Project '${m}' initialized.
14
+ `}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,d=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(d))throw new $t("Managed regions cannot overlap");return`${e.source.slice(0,s)}${a}${e.source.slice(c)}`}import wm from"node:path";var ar=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Zo(e){if(e.length===0||wm.posix.isAbsolute(e)||wm.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new ar("Asset path must be a normalized project-relative POSIX path",e)}function BA(e,t){Zo(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(re).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new ar("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,i=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&i===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===i?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||i!==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 ar("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new ar("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Zo(s.path),t.has(s.path))throw new ar("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 ar("Proposed change paths must be unique",s.path);return r.add(s.path),BA(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),i={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}},o=h(k(i)),a={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:i.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:o,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...a,planId:h(k(a))}}function Xo(e){return h(k(e))}var Im=nn(jr(),1);var ne={type:"string",pattern:St},vn={type:"string",pattern:re},Tr={type:"string",minLength:1,maxLength:128},$r={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},zA={$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:vn,version:Tr,integrity:ne,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:ne}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},GA={$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:vn,version:Tr}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:re},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:vn,version:Tr}}}}},JA={$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:vn,version:Tr,integrity:ne,appliedPlanId:ne,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:$r,digest:ne}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},WA={$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:vn,capabilityVersion:Tr,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},KA={$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:ne,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:vn,version:Tr,integrity:ne}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:ne,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:ne,desiredPackageJsonDigest:ne,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:ne}}]},desiredLockfileDigest:ne,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:ne}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:ne,bindingDigest:ne,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:Tr,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:ne,deliveryReceiptId:ne,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:ne}},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:ne,desiredDigest:ne}}}},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:ne,baseDigest:ne,regionId:{type:"string",pattern:re},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},YA={$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:ne,approvedPlanId:ne,projectRootDigest:ne,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:ne,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:ne}}]},desiredDigest:ne,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:ne}},Cr=new Im.Ajv2020({allErrors:!0,strict:!0});Cr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Il={capabilityRelease:Cr.compile(zA),projectManifest:Cr.compile(GA),projectLock:Cr.compile(JA),evidence:Cr.compile(WA),changePlan:Cr.compile(KA),transactionJournal:Cr.compile(YA)},wl=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function vl(e,t,r){if(!t(r))throw new wl(e,t.errors??[]);return r}var W=e=>vl("projectManifest",Il.projectManifest,e);var sr=e=>vl("changePlan",Il.changePlan,e),vm=e=>vl("transactionJournal",Il.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Qo(e){if(e.currentLock!==void 0){let o=await ea({...e,manifest:{schemaVersion:1,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}});return{state:o.plan.state==="conflicted"?"drifted":"adopted",operations:o.plan.operations}}let t=await kl(bn.resolve(e.projectRoot)),r=[],n=0,i=0;for(let o of e.release.release.assets){let a=await _l(t,o.path);a.exists&&(n+=1),a.digest===o.digest&&(i+=1),r.push({path:o.path,kind:"create",ownership:o.ownership,desiredDigest:o.ownership==="seed-file"&&a.digest?a.digest:o.digest,disposition:a.exists?o.ownership==="seed-file"||a.digest===o.digest?"noop":"conflict":"ready",...a.exists&&a.digest!==o.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:i===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function _l(e,t){let r=bn.join(e,...t.split("/"));try{let n=await HA(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:h(await bl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Lr(e){let t=await kl(bn.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let i=await _l(t,n.path),o=i.exists&&i.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&i.exists)try{o=h(Ho(await bl(bn.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{o=!1}if(!o)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:h(k(r))}}async function ea(e){let t=W(e.manifest);if(t.capabilities.filter(l=>l.capabilityId===e.release.release.capabilityId&&l.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 i=(e.currentLock===void 0?void 0:Ke(e.currentLock))?.capabilities.find(l=>l.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","M3 does not support upgrading a different locked release");let o=await kl(bn.resolve(e.projectRoot)),a=[],s=[],c=new Map(e.release.contents);for(let l of e.release.release.assets){let p=await _l(o,l.path);if(a.push(p),p.exists&&i===void 0&&l.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",l.path);let m=l.ownership==="seed-file"&&p.digest?p.digest:l.digest;l.ownership==="seed-file"&&p.exists&&c.set(l.path,await bl(bn.join(o,...l.path.split("/")))),s.push({path:l.path,kind:"create",ownership:l.ownership,desiredDigest:m})}let d={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(l=>({path:l.path,ownership:l.ownership,desiredDigest:l.digest})),verifiers:e.release.release.verifiers.map(l=>({id:l.id,kind:"command"}))};return{manifest:t,release:e.release,plan:Pe({action:"adopt",capability:d,changes:s,observedAssets:a,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as XA,lstat as aa,mkdir as kn,open as _m,readFile as sa,realpath as QA,rename as ia,rm as Al,unlink as xr}from"node:fs/promises";import{constants as ra}from"node:fs";import{homedir as eR}from"node:os";import K from"node:path";import{randomUUID as Rn}from"node:crypto";function ZA(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function pt(e){let t=process.hrtime.bigint();try{let r=await e.run();return await bm(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await bm(e.context,e.operation,e.bytes??0,t,"failed",ZA(r)),r}}async function bm(e,t,r,n,i,o){if(e?.sink===void 0)return;let a=process.hrtime.bigint(),s={schemaVersion:1,phase:e.phase,operation:t,pathCategory:e.pathCategory,bytes:r,barrierId:e.barrierId,startedMonotonicNs:n.toString(),completedMonotonicNs:a.toString(),result:i,...o===void 0?{}:{errorCategory:o}},c=Object.freeze({...s,eventId:h(k(s))});try{await e.sink(c)}catch{}}var Am=Symbol("prepared-transaction"),cr=new Map,tR=5*1024*1024,rR=25*1024*1024,km=8,oa=class extends Error{};async function ta(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new oa("Simulated prepare crash",{cause:n})}}var C=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,i){super(r),this.code=t,this.relativePath=n,this.operationIndex=i}};function vi(e,t){let r=K.join(e,".dyyto"),n=K.join(r,"transactions",t);return{platformDirectory:r,lock:K.join(r,"transaction-lock.json"),transactionDirectory:n,journal:K.join(n,"journal.json"),preimages:K.join(n,"preimages"),quarantine:K.join(n,"quarantine")}}async function qt(e){try{return await aa(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function En(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function kt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function ut(e,t){let r=await _m(e,ra.O_RDONLY);try{await pt({context:En(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function bi(e,t,r=384,n){let i=await _m(e,ra.O_CREAT|ra.O_EXCL|ra.O_WRONLY,r);try{await pt({context:En(n),operation:"write",bytes:t.byteLength,run:()=>i.writeFile(t)}),await pt({context:En(n),operation:"file-sync",bytes:t.byteLength,run:()=>i.sync()})}finally{await i.close()}}async function Rl(e,t,r){let n=K.dirname(e),i=K.join(n,`.tmp-${Rn()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
15
+ `);await bi(i,o,384,r),await pt({context:En(r),operation:"rename",bytes:o.byteLength,run:()=>ia(i,e)}),await ut(n,r)}function El(e){return{...e,journalDigest:h(k(e))}}function nR(e){let t;try{t=vm(e)}catch{throw new C("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==h(k(n)))throw new C("JOURNAL_CORRUPTED","Transaction journal digest or shape is invalid");let i=new Set;for(let[o,a]of t.operations.entries()){if(a.index!==o||i.has(a.path)||a.kind==="create"&&a.before.kind!=="absent"||a.kind!=="create"&&a.before.kind!=="present"||a.kind!=="remove"&&a.desiredDigest===void 0||a.kind==="remove"&&a.desiredDigest!==void 0)throw new C("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");i.add(a.path)}return t}async function Pl(e){try{return nR(JSON.parse(await sa(e,"utf8")))}catch(t){throw t instanceof C?t:new C("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function lr(e,t,r){let{journalDigest:n,...i}=t,o=El(i);return await Rl(e,o,r),o}async function ca(e){let t=K.resolve(e),r=K.parse(t);if(t===r.root||t===K.resolve(eR()))throw new C("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await aa(t);if(!n.isDirectory()||n.isSymbolicLink())throw new C("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let i=await QA(t);if(i!==t)throw new C("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return i}function Pn(e,t){if((t===".dyyto"||t.startsWith(".dyyto/"))&&t!==".dyyto/application-config-binding.json"||t.length===0||K.posix.isAbsolute(t)||K.win32.isAbsolute(t)||t.includes("\\")||t.split("/").some(n=>n==="."||n===".."))throw new C("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=K.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${K.sep}`))throw new C("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function _n(e,t){let r=t.split("/"),n=e;for(let i of r){n=K.join(n,i);try{if((await aa(n)).isSymbolicLink())throw new C("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(o){if(o.code==="ENOENT")return;throw o}}}async function An(e){try{let t=await aa(e);if(!t.isFile()||t.isSymbolicLink())throw new C("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await sa(e);return{bytes:r,digest:h(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function iR(e,t,r){sr(e);let{planId:n,...i}=e;if(Xo(i)!==e.planId)throw new C("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new C("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new C("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new C("PLAN_EXPIRED","Plan has expired")}function oR(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 C("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function Nl(e,t,r){try{await bi(e,Buffer.from(`${JSON.stringify(t,null,2)}
16
+ `),384,r),await ut(K.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new C("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function na(e){try{let t=JSON.parse(await sa(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 C("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function aR(e,t,r){return{[Am]:!0,projectRoot:e,plan:t,transactionId:r}}async function sR(e,t){iR(e.plan,e.approvedPlanId,e.now);let r=await ca(e.projectRoot),n=oR(e.plan),i=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(!i.has(u))throw new C("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(Pn(r,u.path),await _n(r,u.path),u.kind!=="remove"){let f=e.desiredContents.get(u.path);if(f===void 0||h(f)!==u.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let o=vi(r,e.plan.planId);await kn(o.platformDirectory,{recursive:!0,mode:448}),await _n(r,".dyyto");let a=Rn();await Nl(o.lock,{schemaVersion:1,transactionId:a,planId:e.plan.planId,startedAt:e.now,nonce:Rn()},kt(t?.durabilityTrace,"prepare","lock",`${a}:prepare-lock`));let s=e.limits?.maxFileBytes??tR,c=e.limits?.maxTransactionBytes??rR,d=0,l=[],p=[],m=!1;try{if(await ta(t,"lock-created"),await qt(o.transactionDirectory))throw new C("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await kn(o.preimages,{recursive:!0,mode:448}),await kn(o.quarantine,{recursive:!0,mode:448}),m=!0;for(let[f,g]of n.entries()){let y=Pn(r,g.path);await _n(r,g.path);let w=await An(y);if(g.kind==="create"){if(w!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,f)}else if(w===void 0||w.digest!==g.baseDigest)throw new C("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,f);let A={kind:"absent"};if(w!==void 0){if(d+=w.bytes.byteLength,w.bytes.byteLength>s||d>c)throw new C("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,f);let b=K.join(o.preimages,`${f}.bin`);await bi(b,w.bytes,384,kt(t?.durabilityTrace,"prepare","preimage",`${a}:preimage:${f}`)),p.push(f),await ta(t,"preimage-written-pending-directory-sync",f),A={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:h(w.bytes)}}l.push({index:f,path:g.path,kind:g.kind,before:A,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await ut(o.preimages,kt(t?.durabilityTrace,"prepare","directory",`${a}:preimages-directory-batch`));for(let f of p)await ta(t,"preimage-persisted",f)}let u=El({schemaVersion:1,transactionId:a,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:h(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:l});return await Rl(o.journal,u,kt(t?.durabilityTrace,"prepare","journal",`${a}:journal-prepared`)),cr.set(a,{desiredContents:e.desiredContents,journal:u}),await ta(t,"journal-prepared"),aR(r,e.plan,a)}catch(u){if(u instanceof oa)throw cr.delete(a),new C("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{m&&await Al(o.transactionDirectory,{recursive:!0,force:!0}),await xr(o.lock),await ut(o.platformDirectory)}catch{throw new C("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function dr(e){return sR(e)}async function cR(e,t,r,n){return lr(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},kt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function lR(e,t,r,n,i,o){let a=Pn(e,n.path);await _n(e,n.path);let s=await An(a);if(n.before.kind==="absent"){if(s!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new C("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=K.join(t.quarantine,`${n.index}.bin`),m=kt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await pt({context:En(m),operation:"rename",run:()=>ia(a,p)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(a),t.quarantine]}let c=i.get(n.path);if(c===void 0||h(c)!==n.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await kn(K.dirname(a),{recursive:!0}),await _n(e,n.path);let d=K.join(K.dirname(a),`.dyyto-${r}-${n.index}.tmp`),l=kt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await bi(d,c,n.before.kind==="present"?n.before.mode&511:420,l),await o?.onCheckpoint?.("temporary-file-synced",n.index),await pt({context:En(l),operation:"rename",bytes:c.byteLength,run:()=>ia(d,a)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(a)]}async function dR(e,t){let r=cr.get(e.transactionId);if(r===void 0||e[Am]!==!0)throw new C("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=vi(e.projectRoot,e.plan.planId),i=await lr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let o=new Map;for(let a=0;a<i.operations.length;a+=km){let s=i.operations.slice(a,a+km),c=await Promise.allSettled(s.map(l=>lR(e.projectRoot,n,e.transactionId,l,r.desiredContents,t))),d=c.find(l=>l.status==="rejected");if(d?.status==="rejected")throw d.reason;for(let l of c)if(l.status==="fulfilled")for(let p of l.value)o.has(p)||o.set(p,kt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[a,s]of o)await ut(a,s);for(let a of i.operations)await t?.onCheckpoint?.("target-renamed",a.index),a.status="applied",await t?.onCheckpoint?.("operation-applied",a.index);i=await lr(n.journal,{...i,operations:i.operations,updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let a of i.operations)await t?.onCheckpoint?.("operation-journaled",a.index);return i=await lr(n.journal,{...i,state:"applied",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await xr(n.lock),await ut(n.platformDirectory),cr.delete(e.transactionId),Vr(i)}catch(o){throw i=await cR(n,i,o instanceof C?o.operationIndex:void 0,t?.durabilityTrace),cr.set(e.transactionId,{desiredContents:r.desiredContents,journal:i}),new C("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function pr(e){return dR(e)}function Vr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Bt(e){let t=await ca(e.projectRoot),r=vi(t,e.planId);if(!await qt(r.journal)){if(!await qt(r.lock))return null;let n=await na(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return Vr(await Pl(r.journal))}async function pR(e,t,r){await kn(K.dirname(e),{recursive:!0});let n=K.join(K.dirname(e),`.dyyto-recover-${Rn()}.tmp`);await bi(n,t,r&511),await ia(n,e),await XA(e,r&511),await ut(K.dirname(e))}async function Rm(e){let t=await ca(e.projectRoot),r=vi(t,e.planId);if(!await qt(r.journal)){if(!await qt(r.lock))throw new C("JOURNAL_CORRUPTED","No transaction record exists");let i=await na(r.lock);if(i.planId!==e.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await Al(r.transactionDirectory,{recursive:!0,force:!0}),await kn(r.transactionDirectory,{recursive:!0,mode:448});let o=El({schemaVersion:1,transactionId:i.transactionId,planId:i.planId,approvedPlanId:i.planId,projectRootDigest:h(t),state:"recovered",createdAt:i.startedAt,updatedAt:e.now,operations:[]});return await Rl(r.journal,o),await xr(r.lock),await ut(r.platformDirectory),Vr(o)}let n=await Pl(r.journal);if(n.state==="recovered")return Vr(n);if(n.state==="applied"){for(let i of n.operations){let o=await An(Pn(t,i.path));if(!(i.kind==="remove"?o===void 0:o?.digest===i.desiredDigest))throw new C("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",i.path,i.index)}if(await qt(r.lock)){let i=await na(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await xr(r.lock),await ut(r.platformDirectory)}return cr.delete(n.transactionId),Vr(n)}if(n.projectRootDigest!==h(t))throw new C("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await qt(r.lock)){let i=await na(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await Nl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:Rn()});n=await lr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let i of[...n.operations].reverse()){if(i.status==="restored")continue;let o=Pn(t,i.path);if(await _n(t,i.path),i.kind!=="remove"){let s=K.join(K.dirname(o),`.dyyto-${n.transactionId}-${i.index}.tmp`);if(await qt(s)){if((await An(s))?.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Transaction temporary file was modified externally",i.path,i.index);await xr(s),await ut(K.dirname(s))}}let a=await An(o);if(i.before.kind==="absent"){if(a!==void 0){if(a.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);await xr(o),await ut(K.dirname(o))}}else if(a?.digest!==i.before.digest){let s=K.join(r.quarantine,`${i.index}.bin`),c=a?.digest===i.desiredDigest,d=i.kind==="remove"&&a===void 0&&await qt(s),l=e.approvedConflicts?.find(m=>m.path===i.path&&m.currentDigest===a?.digest);if(!c&&!d&&!l)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);let p=await sa(K.join(r.preimages,`${i.index}.bin`));if(h(p)!==i.before.preimageDigest)throw new C("JOURNAL_CORRUPTED","Preimage digest is invalid",i.path,i.index);await pR(o,p,i.before.mode),d&&await Al(s,{force:!0})}i.status="restored",n=await lr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",i.index)}return n=await lr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await xr(r.lock),await ut(r.platformDirectory),cr.delete(n.transactionId),Vr(n)}async function ki(e){return Rm(e)}async function Ol(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 C("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return Rm(e)}async function Sl(e){let t=await ca(e.projectRoot),r=vi(t,e.planId),n=await Pl(r.journal);if(n.state==="recovered")return Vr(n);if(n.state!=="applied")throw new C("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let i;for(let o of n.operations){let a=await An(Pn(t,o.path)),s=o.kind==="remove"?a===void 0:a?.digest===o.desiredDigest,c=o.before.kind==="absent"?a===void 0:a?.digest===o.before.digest;if(!s&&!c){i=o;break}}if(await Nl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:Rn()}),n=await lr(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),i!==void 0)throw new C("RECOVERY_CONFLICT","Rollback would overwrite external content",i.path,i.index);return cr.set(n.transactionId,{desiredContents:new Map,journal:n}),ki({projectRoot:t,planId:e.planId,now:e.now})}var Ae=class extends Error{code;constructor(t,r){super(r),this.code=t}},_i=class extends Error{};function Ei(e,t){let r=Ne.join(e,".dyyto"),n=Ne.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:Ne.join(r,"evidence"),lockFile:Ne.join(r,"project-lock.json"),transactionLock:Ne.join(r,"metadata-lock.json"),transactionDirectory:n,journal:Ne.join(n,"journal.json")}}async function ur(e){try{return await uR(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function zt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function ua(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function fa(e,t){let r=await Em(e,da.O_RDONLY);try{await pt({context:ua(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function Cl(e,t,r){let n=await Em(e,da.O_CREAT|da.O_EXCL|da.O_WRONLY,384);try{await pt({context:ua(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await pt({context:ua(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function Ai(e,t,r){let n=Ne.dirname(e),i=Ne.join(n,`.tmp-${jl()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
17
+ `);await Cl(i,o,r),await pt({context:ua(r),operation:"rename",bytes:o.byteLength,run:()=>fR(i,e)}),await fa(n,r)}function $l(e){return{...e,journalDigest:h(k(e))}}async function la(e,t,r){let{journalDigest:n,...i}=t,o=$l(i);return await Ai(e,o,r),o}async function Pm(e){try{let t=JSON.parse(await Ri(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==h(k(n)))throw new Error("invalid journal");return t.evidence.forEach(Ii),Ke(t.lock),t}catch{throw new Ae("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function Tl(e,t,r){try{await Cl(e,Buffer.from(`${JSON.stringify(t,null,2)}
18
+ `),r),await fa(Ne.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new Ae("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function Nm(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:h(k(r))}}function Om(e,t,r){let n=t.map(gm),i=e.verifiers.map(a=>a.id).sort(),o=n.map(a=>a.verifierId).sort();if(i.length!==o.length||i.some((a,s)=>a!==o[s]))throw new Ae("VERIFICATION_INCOMPLETE","Verification results do not cover the release verifier set");for(let a of n){if(a.commandId!==a.verifierId||a.result!=="passed"||a.exitCode!==0)throw new Ae("VERIFICATION_FAILED",`Verifier ${a.verifierId} did not pass`);if(a.projectStateDigest!==r)throw new Ae("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function mR(e,t,r){let n=Ne.join(e,`${t.evidenceId}.json`);if(await ur(n)){let i=Ii(JSON.parse(await Ri(n,"utf8")));if(k(i)!==k(t))throw new Ae("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await Cl(n,Buffer.from(`${JSON.stringify(t,null,2)}
19
+ `),r),await fa(e,r)}async function gR(e,t,r,n){if(await ur(e)){let i=Ke(JSON.parse(await Ri(e,"utf8")));if(k(i)===k(t))return;if(r===void 0||h(k(i))!==r)throw new Ae("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await Ai(e,t,n);return}await Ai(e,t,n)}async function pa(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new _i("Simulated metadata crash",{cause:r})}}async function Ll(e,t,r){let n=Ei(e,t.planId),i=t;try{for(let o of i.evidence)await mR(n.evidenceDirectory,o,zt(r?.durabilityTrace,"evidence",`${i.transactionId}:evidence`));return i=await la(n.journal,{...i,state:"evidence-written",updatedAt:new Date().toISOString()},zt(r?.durabilityTrace,"journal",`${i.transactionId}:evidence-written`)),await pa(r,"evidence-written"),await gR(n.lockFile,i.lock,i.previousLockDigest,zt(r?.durabilityTrace,"lock",`${i.transactionId}:project-lock`)),i=await la(n.journal,{...i,state:"lock-written",updatedAt:new Date().toISOString()},zt(r?.durabilityTrace,"journal",`${i.transactionId}:lock-written`)),await pa(r,"lock-written"),i=await la(n.journal,{...i,state:"committed",updatedAt:new Date().toISOString()},zt(r?.durabilityTrace,"journal",`${i.transactionId}:committed`)),await pa(r,"committed"),await Dl(n.transactionLock),await fa(n.platformDirectory,zt(r?.durabilityTrace,"directory",`${i.transactionId}:unlock`)),i.lock}catch(o){if(o instanceof _i)throw new Ae("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await la(n.journal,{...i,state:"recovery-required",updatedAt:new Date().toISOString()},zt(r?.durabilityTrace,"journal",`${i.transactionId}:recovery-required`))}catch{}throw o}}async function yR(e){let t=await Mr(Ne.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Mr(Ne.resolve(e.transactionRoot));if((await Bt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ae("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let i;try{i=await Lr({projectRoot:t,expectedAssets:e.expectedAssets??e.release.assets.map(f=>({path:f.path,digest:f.digest}))})}catch{throw new Ae("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let a=Om(e.release,e.verificationResults,i.projectStateDigest).map(f=>Nm(e.release,f)),s={capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,consumerProfile:e.release.consumerProfile,appliedPlanId:e.plan.planId,projectStateDigest:i.projectStateDigest,assets:i.assets,evidenceIds:a.map(f=>f.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(f=>({...f})),sources:e.plan.packageAdoption.sources.map(f=>({...f})),packageJsonDigest:e.plan.packageAdoption.desiredPackageJsonDigest,lockfileDigest:e.plan.packageAdoption.desiredLockfileDigest}}},c=e.previousLock?.capabilities??[],d=e.previousLock!==void 0&&e.plan.action==="adopt"?[...c.filter(f=>f.capabilityId!==e.release.capabilityId),s].sort((f,g)=>f.capabilityId.localeCompare(g.capabilityId)):e.previousLock!==void 0&&e.plan.action==="upgrade"?[...c.filter(f=>f.capabilityId!==e.release.capabilityId),s].sort((f,g)=>f.capabilityId.localeCompare(g.capabilityId)):[s],l={schemaVersion:d.some(f=>f.packageAdoption!==void 0)?2:1,capabilities:d};Ke(l);let p=Ei(t,e.plan.planId);if(await Nn(p.platformDirectory,{recursive:!0,mode:448}),await Nn(p.evidenceDirectory,{recursive:!0,mode:448}),await ur(p.lockFile)&&e.previousLock===void 0){let f=Ke(JSON.parse(await Ri(p.lockFile,"utf8")));if(k(f)===k(l))return f;throw new Ae("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let m=jl();if(await Tl(p.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt},zt(e.hooks?.durabilityTrace,"lock",`${m}:metadata-lock`)),await ur(p.transactionDirectory))throw await Dl(p.transactionLock),new Ae("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await Nn(p.transactionDirectory,{recursive:!0,mode:448});let u=$l({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:a,lock:l,...e.previousLock===void 0?{}:{previousLockDigest:h(k(Ke(e.previousLock)))}});await Ai(p.journal,u,zt(e.hooks?.durabilityTrace,"journal",`${m}:prepared`));try{await pa(e.hooks,"journal-prepared")}catch(f){throw f instanceof _i?new Ae("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):f}return Ll(t,u,e.hooks)}async function xl(e){return yR(e)}async function Vl(e){let t=await Mr(Ne.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Mr(Ne.resolve(e.transactionRoot));if((await Bt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ae("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let i=e.previousLock.capabilities.find(y=>y.capabilityId===e.release.capabilityId&&y.version===e.release.version);if(i===void 0)throw new Ae("PROJECT_STATE_CHANGED","The removed capability is not present in the project lock");let o=e.previousLock.capabilities.filter(y=>y!==i),a=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(y=>y.desiredDigest===void 0||!y.path.startsWith(a)?[]:[[y.path.slice(a.length),y.desiredDigest]])),c=e.expectedAssets??o.flatMap(y=>y.assets).map(y=>({...y,digest:s.get(y.path)??y.digest})),d=await Lr({projectRoot:t,expectedAssets:c}),p=Om(e.release,e.verificationResults,d.projectStateDigest).map(y=>Nm(e.release,y)),m={schemaVersion:o.some(y=>y.packageAdoption!==void 0)?2:1,capabilities:o};Ke(m);let u=Ei(t,e.plan.planId);await Nn(u.platformDirectory,{recursive:!0,mode:448}),await Nn(u.evidenceDirectory,{recursive:!0,mode:448});let f=jl();await Tl(u.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt}),await Nn(u.transactionDirectory,{recursive:!1,mode:448});let g=$l({schemaVersion:1,planId:e.plan.planId,transactionId:f,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:p,lock:m,previousLockDigest:h(k(Ke(e.previousLock)))});return await Ai(u.journal,g),Ll(t,g)}async function Ml(e){let t=await Mr(Ne.resolve(e.projectRoot)),r=Ei(t,e.planId),n=await Pm(r.journal);return n.state==="committed"?(await ur(r.transactionLock)&&await Dl(r.transactionLock),n.lock):(await ur(r.transactionLock)||await Tl(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),Ll(t,n))}async function Fl(e){let t=await Mr(Ne.resolve(e.projectRoot)),r=Ei(t,e.planId);if(!await ur(r.journal))return null;let n=await Pm(r.journal);return{planId:n.planId,state:n.state}}async function Ue(e){let t=await Mr(Ne.resolve(e)),r=Ne.join(t,".dyyto","project-lock.json");return await ur(r)?Ke(JSON.parse(await Ri(r,"utf8"))):null}import{lstat as jm,readFile as Sm,realpath as Dm}from"node:fs/promises";import fr from"node:path";var _t=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function Cm(e){return h(k(e))}async function hR(e,t){let r=fr.join(e,"assets",...t.split("/"));try{return await jm(r),r}catch(n){if(n.code!=="ENOENT"||fr.posix.basename(t)!==".gitignore")throw n}return fr.join(e,"assets",...fr.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function Re(e){let t=await Dm(fr.resolve(e)),r;try{r=mm(JSON.parse(await Sm(fr.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof _t?c:new _t("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...i}=r;if(Cm(i)!==n)throw new _t("RELEASE_INTEGRITY_MISMATCH","Capability release integrity does not match metadata");let o=new Map,a=new Set,s="";for(let c of r.assets){try{Zo(c.path)}catch{throw new _t("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"||a.has(c.path)||c.path.localeCompare(s)<0)throw new _t("RELEASE_ASSET_INVALID","Release assets must be unique, sorted and outside reserved .dyyto paths",c.path);a.add(c.path),s=c.path;let d=await hR(t,c.path),l=await Dm(d),p=fr.join(t,"assets");if(!l.startsWith(`${p}${fr.sep}`))throw new _t("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let m=await jm(d);if(!m.isFile()||m.isSymbolicLink())throw new _t("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await Sm(d);if(h(u)!==c.digest)throw new _t("RELEASE_ASSET_INTEGRITY_MISMATCH","Release asset digest does not match metadata",c.path);o.set(c.path,u)}if(r.exit.ownedAssets.length!==r.assets.length||r.exit.ownedAssets.some((c,d)=>c!==r.assets[d]?.path))throw new _t("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:o}}import{link as wR,open as Tm,lstat as Tt,mkdir as Lm,readFile as Ul,readdir as ma,realpath as Lt,rm as IR,unlink as vR}from"node:fs/promises";import le from"node:path";var ve=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},bR={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function kR(){return new TextEncoder().encode(`${JSON.stringify(bR,null,2)}
20
+ `)}async function _R(e,t=!1){let r=le.resolve(e),n=await Tt(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new ve("TARGET_INVALID","Workspace target must be a real existing directory");let i=await Lt(r);for(let o of t?["AGENTS.md","README.md"]:["package.json","pnpm-workspace.yaml"]){let a=await Tt(le.join(i,o)).catch(()=>null);if(a===null||!a.isFile()||a.isSymbolicLink())throw new ve("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${o}`)}if(await Tt(le.join(i,"project-capabilities.json")).catch(()=>null))throw new ve("MANIFEST_EXISTS","Project manifest already exists");return i}async function AR(e,t){let r=le.resolve(e),n=await Tt(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new ve("TARGET_INVALID","Project target must be a real existing directory");let i=await Lt(r);for(let o of t){let a=await Tt(le.join(i,o)).catch(()=>null);if(a===null||!a.isFile()||a.isSymbolicLink())throw new ve("WORKSPACE_MARKER_MISSING",`Existing project must contain a real ${o}`)}if(await Tt(le.join(i,"project-capabilities.json")).catch(()=>null))throw new ve("MANIFEST_EXISTS","Project manifest already exists");return i}async function xm(e){let t=await AR(e.projectRoot,e.requiredMarkers??["package.json"]),r=W(e.manifest),n=new TextEncoder().encode(`${JSON.stringify(r,null,2)}
21
+ `),i=r.capabilities[0],o=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:i.capabilityId,version:i.version,integrity:e.capabilityIntegrity,assets:[],verifiers:[]},changes:[{path:"project-capabilities.json",kind:"create",ownership:"owned-file",desiredDigest:h(n)}],observedAssets:[{path:"project-capabilities.json",exists:!1}],generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{projectRoot:t,plan:o,desiredContents:new Map([["project-capabilities.json",n]])}}async function Vm(e){let t=await _R(e.projectRoot,e.documentationOnly===!0),r=kR(),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:h(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 RR(e){let t=await Tm(e,"r");try{await t.sync()}finally{await t.close()}}async function Mm(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 wR(r,e),await vR(r),await RR(le.dirname(e))}catch(i){throw await IR(r,{force:!0}),i}}async function ER(e){let t=le.resolve(e);try{let r=await Tt(t);if(!r.isDirectory()||r.isSymbolicLink())throw new ve("TARGET_INVALID","Project target must be a real directory");if((await ma(t)).length!==0)throw new ve("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=le.dirname(t),i=await Tt(n).catch(()=>null);if(i===null||!i.isDirectory()||i.isSymbolicLink())throw new ve("TARGET_INVALID","Project target parent must be a real directory");await Lm(t)}return Lt(t)}async function ga(e){let t=W(e.manifest),r=await ER(e.projectRoot),n=le.join(r,"project-capabilities.json");try{await Mm(n,`${JSON.stringify(t,null,2)}
22
+ `)}catch(i){throw i.code==="EEXIST"?new ve("MANIFEST_EXISTS","Project manifest already exists"):i}return{projectRoot:r,manifest:t}}function Pi(e){let{planId:t,...r}=e;if(Xo(r)!==e.planId)throw new ve("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function PR(e){let t=await Lt(le.resolve(e.projectRoot)),r=sr(e.plan);Pi(r);let n=le.join(t,".dyyto","plans");await Lm(n,{recursive:!0,mode:448});let i=le.join(n,`${r.planId}.json`);try{await Mm(i,`${k(r)}
23
+ `)}catch(o){if(o.code!=="EEXIST")throw o;let a=sr(JSON.parse(await Ul(i,"utf8")));if(Pi(a),k(a)!==k(r))throw new ve("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return i}function $m(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Gt(e){let t=await Lt(le.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Lt(le.resolve(e.transactionRoot)),n=sr(e.plan);Pi(n);let i=le.join(t,".dyyto","plans"),o=await ma(i).catch(s=>{if(s.code==="ENOENT")return[];throw s}),a=[];for(let s of o.filter(c=>c.endsWith(".json")).sort()){let c=sr(JSON.parse(await Ul(le.join(i,s),"utf8")));Pi(c),!await Tt(le.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(l=>l.code==="ENOENT"?!1:Promise.reject(l))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&$m(c)===$m(n)&&a.push(c)}return a.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),a[0]!==void 0?a[0]:(await PR({projectRoot:t,plan:n}),n)}async function Fr(e){let t=await Lt(le.resolve(e.projectRoot)),r=le.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=sr(JSON.parse(await Ul(r,"utf8")));if(Pi(n),n.planId!==e.planId)throw new ve("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new ve("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function ya(e,t=[],r,n=[]){let i=await Lt(le.resolve(e)),o=r===void 0?i:await Lt(le.resolve(r)),a=le.join(i,".dyyto","plans"),s=await ma(a).catch(l=>{if(l.code==="ENOENT")return[];throw l}),c=[];for(let l of s.filter(p=>p.endsWith(".json")).sort()){let p=l.slice(0,-5),m=await Fr({projectRoot:i,planId:p}),u=await Bt({projectRoot:o,planId:p}),f=await Tt(le.join(i,".dyyto","metadata-transactions",p)).then(()=>!0).catch(g=>g.code==="ENOENT"?!1:Promise.reject(g));u?.state==="applied"&&!f&&!t.includes(m.planId)&&(!n.includes(m.capability.capabilityId)||m.action==="upgrade"||m.action==="remove"||m.action==="adopt"&&m.operations.every(g=>g.disposition==="noop"))&&c.push(m)}let d=NR(c);if(d===void 0)throw new ve("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return d}function NR(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 ql(e){let t=await Lt(le.resolve(e)),r=le.join(t,".dyyto","plans"),n=await ma(r).catch(o=>{if(o.code==="ENOENT")return[];throw o}),i=[];for(let o of n.filter(a=>a.endsWith(".json")).sort())i.push(await Fr({projectRoot:t,planId:o.slice(0,-5)}));return i}import{lstat as Fm,readFile as OR,readdir as SR,realpath as DR}from"node:fs/promises";import Ce from"node:path";import{homedir as Um}from"node:os";var ft=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function qm(e){let t=Ce.resolve(e),r=await Fm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ce.parse(t).root||t===Ce.resolve(Um()))throw new ft("WORKSPACE_PATH_UNSAFE");let n=await DR(t);if(n!==t)throw new ft("WORKSPACE_PATH_UNSAFE");return n}async function Ur(e){let t=await Fm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new ft("WORKSPACE_PATH_UNSAFE");return OR(e)}}function Bm(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let i of t){if(/^packages:\s*(?:#.*)?$/u.test(i)){n=!0;continue}if(!n)continue;let o=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(i);if(o){r.push(o[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(i.trim()&&!/^\s/u.test(i))break}if(r.length===0)throw new ft("WORKSPACE_MANIFEST_INVALID");return r}function jR(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 On(e){let t=await qm(e),r=await Ur(Ce.join(t,"pnpm-workspace.yaml"));if(!r)throw new ft("WORKSPACE_OWNER_MISSING");let n=new Map;for(let i of Bm(r.toString("utf8"))){let o=[];if(i.endsWith("/*")&&!i.slice(0,-2).includes("*")){let a=i.slice(0,-2),s=await SR(Ce.join(t,...a.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&o.push(`${a}/${c.name}`)}else if(!i.includes("*"))o.push(i);else throw new ft("WORKSPACE_MANIFEST_INVALID");for(let a of o){let s=await Ur(Ce.join(t,...a.split("/"),"package.json"));s&&n.set(a,s)}}return Object.freeze([...n].sort(([i],[o])=>i.localeCompare(o)).map(([i,o])=>Object.freeze({relativeRoot:i,bytes:o})))}async function Jt(e){let t=await qm(e);if(await Ur(Ce.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Ur(Ce.join(t,"pnpm-workspace.yaml")))throw new ft("WORKSPACE_NESTED_UNSUPPORTED");let r=Ce.dirname(t),n;for(;r!==Ce.parse(r).root&&r!==Ce.resolve(Um());){let o=await Ur(Ce.join(r,"pnpm-workspace.yaml"));if(o){if(n)throw new ft("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:o};break}r=Ce.dirname(r)}if(!n||!await Ur(Ce.join(n.root,"pnpm-lock.yaml"))||!await Ur(Ce.join(n.root,"project-capabilities.json")))throw new ft("WORKSPACE_OWNER_MISSING");let i=Ce.relative(n.root,t).split(Ce.sep).join("/");if(!i||i.startsWith("../")||Bm(n.manifest.toString("utf8")).filter(o=>jR(o,i)).length!==1)throw new ft("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:i,unitImporterId:i,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:h(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var zm=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function Bl(e){let t=await ql(e);for(let r of t){let n=await Bt({projectRoot:e,planId:r.planId});if(n!==null&&zm.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await Fl({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 CR(e){let t=await Bl(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await ki({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await Ml({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function Gm(e){let t=await CR(e);if(t.kind!=="none")return t;let r=await Jt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await ql(e.projectRoot)).map(c=>c.planId)),i=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(!i)return t;let o;try{let c=JSON.parse(i);if(typeof c.planId!="string"||!/^sha256:[a-f0-9]{64}$/u.test(c.planId)||!n.has(c.planId))return t;o=c.planId}catch{return t}let a=await Bt({projectRoot:r.transactionRoot,planId:o});if(!a||!zm.has(a.state))return t;let s=await ki({projectRoot:r.transactionRoot,planId:o,now:e.now});return{kind:"filesystem",planId:o,state:s.state}}import{lstat as $R,readFile as zl,realpath as Jm}from"node:fs/promises";import Ni from"node:path";var TR=new Set(["MIT","Apache-2.0","UNLICENSED"]),LR=new Set(["public","restricted","private"]),xR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,VR=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function MR(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 qr(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 mr(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(),i=e.capabilities.find(m=>m.capabilityId===`foundation.${t}`)?.version,o=i==="1.1.0"||i==="1.2.0"||t==="react-component-library",a=o?["license","name","publishAccess","repository","version"]:["license","name","publishAccess","version"];if(n.length!==a.length||n.some((m,u)=>m!==a[u]))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Standalone npm profile parameters must be exact");let{name:s,version:c,license:d,publishAccess:l,repository:p}=r;if(s===void 0||s.length>214||!xR.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!VR.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(d===void 0||!TR.has(d))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(l===void 0||!LR.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(l==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:d,publishAccess:l,...o?{repository:MR(p)}:{}}}function Gl(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)}
24
+ `)}function Jl(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)}
25
+ `)}function FR(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)}
26
+ `)}function UR(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)}
27
+ `)}function qR(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)}
28
+ `)}function BR(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)}
29
+ `)}async function Wm(e,t){let r=Ni.join(e,...t.split("/"));try{let n=await $R(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:h(await zl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Br(e,t){let r=W(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?UR(qr(r).name):t==="workspace-expo-application"?BR(qr(r).name):t==="nextjs-full-stack-application"?qR(qr(r).name):FR(qr(r).name):t==="react-component-library"?Jl(mr(r,t)):Gl(mr(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 a=(e.currentLock===void 0?void 0:Ke(e.currentLock))?.capabilities.find(u=>u.capabilityId===e.release.release.capabilityId);if(a!==void 0&&(a.version!==e.release.release.version||a.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 Jm(Ni.resolve(e.projectRoot)),d=[],l=[];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 Wm(c,u.path);if(g.exists&&a===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 zl(Ni.join(c,...u.path.split("/"))));let y=h(s.get(u.path));d.push(g),l.push({path:u.path,kind:"create",ownership:u.ownership,desiredDigest:y})}let p={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:l.map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},m=Pe({action:"adopt",capability:p,changes:l,observedAssets:d,generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{manifest:r,release:e.release,plan:m,desiredContents:s}}function Oi(e){return Br(e,"standalone-npm-package")}function Si(e){return Br(e,"react-component-library")}function Sn(e){return Br(e,"nextjs-full-stack-application")}async function Wl(e){let t=W(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=W({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await Sn({...e,manifest:r}),i=await Jm(Ni.resolve(e.projectRoot)),o="project-capabilities.json",a=await zl(Ni.join(i,o)),s=Buffer.from(`${JSON.stringify(r,null,2)}
30
+ `),c=n.plan.operations.map(({disposition:u,conflictCode:f,...g})=>g);c.push({path:o,kind:"replace",ownership:"owned-file",baseDigest:h(a),desiredDigest:h(s)});let d=await Promise.all(c.map(u=>Wm(i,u.path))),l=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!==o).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:d,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),p=new Map([...n.desiredContents,[o,s]]),m=new Map;for(let u of l.operations)u.disposition==="ready"&&u.kind!=="remove"&&m.set(u.path,p.get(u.path));return{...n,manifest:r,plan:l,desiredContents:m}}function Di(e){return Br(e,"workspace-npm-package")}function ji(e){return Br(e,"workspace-node-application")}function Ci(e){return Br(e,"workspace-web-application")}function $i(e){return Br(e,"workspace-expo-application")}async function Km(e){if(e.currentLock!==void 0){let n=await Oi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Oi({...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 Si(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Si({...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 Sn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Sn({...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 Zm(e){if(e.currentLock!==void 0){let n=await Di(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Di({...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 Xm(e){if(e.currentLock!==void 0){let n=await ji(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ji({...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 Qm(e){if(e.currentLock!==void 0){let n=await Ci(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ci({...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 eg(e){if(e.currentLock!==void 0){let n=await $i(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await $i({...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 fE,readFile as ja,realpath as mE}from"node:fs/promises";import qi from"node:path";var At=class extends Error{code;constructor(t,r){super(r),this.code=t}},zr=/^sha256:[a-f0-9]{64}$/,zR=/^sha512-[A-Za-z0-9+/]{86}==$/,GR=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,rg=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,JR=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,tg=/^[a-z][a-z0-9._:-]{2,127}$/;function Gr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,i)=>n===[...t].sort()[i])}function WR(e){if(!Gr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!rg.test(e.registryId)||!tg.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,i)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==i)||!Gr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!Gr(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&&!tg.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 Kl(e){if(!WR(e))throw new At("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:h(k(t))})}function Ti(e){let t=e;if(typeof t!="object"||t===null||!Gr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!zr.test(t.revision))throw new At("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...i}=t;if(Kl(i).revision!==n)throw new At("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function KR(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 Yl(e,t){let r=Ti(t);if(!Gr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!KR(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 At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:h(k(n))})}function ng(e,t){let r=e;if(typeof r!="object"||r===null||!Gr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!zr.test(r.bindingDigest))throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:i,...o}=r;if(Yl(o,t).bindingDigest!==i)throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function YR(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return Gr(e,t)&&rg.test(e.registryId)&&zr.test(e.registryConfigRevision)&&JR.test(e.packageName)&&GR.test(e.version)&&zR.test(e.integrity)&&zr.test(e.tarballDigest)&&zr.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&&zr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Hl(e){if(!YR(e))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function ig(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!zr.test(t.receiptId))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...i}=t;if(Hl(i).receiptId!==n)throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Oe=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Li(e){return h(k(e))}var Zl=/^sha256:[a-f0-9]{64}$/u,HR=/^sha512-[A-Za-z0-9+/]{86}==$/u,ZR=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ha=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,XR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,QR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function wa(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function og(e){return h(k(e))}function ag(e){let t=Buffer.from(e.desiredLockfile),r=h(t),n={schemaVersion:1,workerReleaseId:e.workerReleaseId,workerStateRevision:e.workerStateRevision,requestDigest:e.requestDigest,pnpmVersion:e.pnpmVersion,desiredLockDigest:r,importerFacts:e.importerFacts.map(a=>({...a})),packageFacts:e.packageFacts.map(a=>({...a})),snapshotClosureDigest:e.snapshotClosureDigest,networkObservationDigest:e.networkObservationDigest,cacheObservation:{...e.cacheObservation},commandDigest:e.commandDigest,completedAt:e.completedAt,expiresAt:e.expiresAt},i={...n,jobId:og(n),desiredLockfile:t};sg(i);let o={...i,importerFacts:Object.freeze(i.importerFacts.map(a=>Object.freeze({...a}))),packageFacts:Object.freeze(i.packageFacts.map(a=>Object.freeze({...a}))),cacheObservation:Object.freeze({...i.cacheObservation})};return Object.freeze(o)}function sg(e){if(!wa(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 Oe("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(i=>Zl.test(i)))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(!ha.test(e.workerReleaseId)||!ha.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||h(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 Oe("RESOLUTION_EVIDENCE_INVALID");if(!wa(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(i=>!wa(i,["importerId","manifestDigest","preimageDigest","desiredDigest"])||i.importerId!=="."&&!ha.test(i.importerId)||![i.manifestDigest,i.preimageDigest,i.desiredDigest].every(o=>Zl.test(o))))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(i=>!wa(i,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!QR.test(i.identity)||!XR.test(i.packageName)||!ha.test(i.registryId)||!ZR.test(i.version)||!HR.test(i.integrity)||typeof i.managed!="boolean"||!Zl.test(i.edgesDigest)))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(i=>i.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(i=>i.identity)).size!==e.packageFacts.length)throw new Oe("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(og(n)!==e.jobId)throw new Oe("RESOLUTION_EVIDENCE_INVALID")}function Xl(e,t){if(sg(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Oe("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Oe("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Oe("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let i=e.importerFacts.find(o=>o.importerId===n.importerId);if(!i||i.preimageDigest!==n.preimageDigest||i.desiredDigest!==n.preimageDigest)throw new Oe("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let i=e.packageFacts.filter(o=>o.managed&&o.packageName===n.packageName);if(i.length!==1||i[0].registryId!==n.registryId||i[0].version!==n.version||i[0].integrity!==n.integrity)throw new Oe("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Oe("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var Z=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function ba(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:i,expiresAt:o})=>({registryId:r,registryConfigRevision:n,bindingDigest:i,expiresAt:o})),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 Z("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var Ia=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,cg=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function Ql(e){return Array.isArray(e)?`[${e.map(Ql).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)}:${Ql(r)}`).join(",")}}`:JSON.stringify(e)}function Wt(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function mt(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function va(e){for(let t of[mt(e.dependencies),mt(e.devDependencies),mt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!Ia.test(n)||cg.test(n)))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}var eE=["dependencies","devDependencies","optionalDependencies"];function ka(e,t){let r=[];for(let n of eE)for(let[i,o]of Object.entries(mt(e[n]))){if(t.has(i)){if(!Ia.test(o))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(o))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:i,specifier:o})}return r.sort((n,i)=>`${n.section}:${n.packageName}`.localeCompare(`${i.section}:${i.packageName}`))}function ed(e){let t=Wt(e.packageJson);va(t);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])),i={...t,...Object.keys(r).length?{dependencies:{...mt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...mt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(i,null,2)}
31
+ `)}function xi(e){let t=Wt(e.packageJson);ka(t,new Set(e.release.packageSources.map(i=>i.packageName)));let r=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="runtime").map(({packageName:i,version:o})=>[i,o])),n=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="development").map(({packageName:i,version:o})=>[i,o]));return Buffer.from(`${JSON.stringify({...t,...Object.keys(r).length?{dependencies:{...mt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...mt(t.devDependencies),...n}}:{}},null,2)}
32
+ `)}function td(e){let t=Wt(e.packageJson);va(t);let r=mt(t.dependencies),n=mt(t.devDependencies);for(let o of e.remove)delete(o.usage==="runtime"?r:n)[o.packageName];let i={...t};return Object.keys(r).length===0?delete i.dependencies:i.dependencies=r,Object.keys(n).length===0?delete i.devDependencies:i.devDependencies=n,Buffer.from(`${JSON.stringify(i,null,2)}
33
+ `)}function rd(e){let t=Wt(e.packageJson);ka(t,new Set(e.remove.map(o=>o.packageName)));let r=mt(t.dependencies),n=mt(t.devDependencies);for(let o of e.remove)delete(o.usage==="runtime"?r:n)[o.packageName];let i={...t};return Object.keys(r).length===0?delete i.dependencies:i.dependencies=r,Object.keys(n).length===0?delete i.devDependencies:i.devDependencies=n,Buffer.from(`${JSON.stringify(i,null,2)}
34
+ `)}function lg(e){let t=e.currentLock.capabilities.find(p=>p.capabilityId===e.release.capabilityId&&p.version===e.release.version);if(!t?.packageAdoption)throw new Z("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(p=>p!==t).flatMap(p=>p.packageAdoption?.sources.map(m=>m.packageName)??[])),n=t.packageAdoption.sources.filter(p=>!r.has(p.packageName)),i=td({packageJson:e.packageJson,remove:n}),o=Wt(e.projectManifest),a=Array.isArray(o.capabilities)?o.capabilities:[],s=Buffer.from(`${JSON.stringify({...o,capabilities:a.filter(p=>p.capabilityId!==e.release.capabilityId||p.version!==e.release.version)},null,2)}
35
+ `),c=e.endpointBindings.filter(p=>n.some(m=>m.registryId===p.registryId)),d=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:h(e.projectManifest),desiredDigest:h(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:h(e.packageJson),desiredDigest:h(i)},{path:"pnpm-lock.yaml",kind:"replace",ownership:"owned-file",baseDigest:h(e.currentLockfile),desiredDigest:h(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:d,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:1,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:h(e.packageJson),desiredPackageJsonDigest:h(i),lockfilePreimage:{kind:"present",digest:h(e.currentLockfile)},desiredLockfileDigest:h(e.desiredLockfile),registryRevisions:t.packageAdoption.registryRevisions.map(p=>({...p})),endpointBindings:c.map(({registryId:p,registryConfigRevision:m,bindingDigest:u,expiresAt:f})=>({registryId:p,registryConfigRevision:m,bindingDigest:u,expiresAt:f})),sources:n.map(p=>({...p})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}}}),desiredContents:new Map([["project-capabilities.json",s],["package.json",i],["pnpm-lock.yaml",e.desiredLockfile]]),removedSources:n}}function dg(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 Z("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(g=>g!==t).flatMap(g=>g.packageAdoption?.sources.map(y=>y.packageName)??[])),n=t.packageAdoption.sources.filter(g=>!r.has(g.packageName)),i=rd({packageJson:e.packageJson,remove:n}),o=e.remainingSources.map(({registryId:g,packageName:y,version:w,integrity:A})=>({registryId:g,packageName:y,version:w,integrity:A})),a={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=Xl(e.resolutionEvidence,{requestDigest:Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:h(e.currentLockfile),desiredPackageJsonDigest:h(i),sources:o,preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:y})=>({importerId:g,preimageDigest:y}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(i),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:y})=>({importerId:g,preimageDigest:y})),managedSources:o,now:e.generatedAt}),c=Wt(e.projectManifest),d=Array.isArray(c.capabilities)?c.capabilities:[],l=Buffer.from(`${JSON.stringify({...c,capabilities:d.filter(g=>g.capabilityId!==e.release.capabilityId||g.version!==e.release.version)},null,2)}
36
+ `),p=g=>`${e.topology.unitRelativeRoot}/${g}`,m=e.endpointBindings.filter(g=>n.some(y=>y.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.projectManifest),desiredDigest:h(l)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.packageJson),desiredDigest:h(i)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:h(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:h(e.packageJson),desiredPackageJsonDigest:h(i),lockfilePreimage:{kind:"present",digest:h(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:m.map(({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})=>({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:a,preservedDependencies:ka(Wt(i),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[p("project-capabilities.json"),l],[p("package.json"),i],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function _a(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",i=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!i)||e.release.packageSources.length===0)throw new Z("PACKAGE_SOURCE_NOT_FOUND");let o=Wt(e.packageJson),a=e.desiredBasePackageJson??e.packageJson,s=Wt(a),c="topology"in e,d=c?ka(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||va(o),c||va(s);let l=new Map(e.registryConfigs.map(I=>{let _=Ti(I);return[_.registryId,_]})),p=new Map(e.endpointBindings.map(I=>{let _=l.get(I.registryId);if(_===void 0)throw new Z("PACKAGE_SOURCE_NOT_FOUND");let O=ng(I,_);return[O.registryId,O]})),m=new Map(e.receipts.map(I=>{let _=ig(I);return[_.receiptId,_]})),u=new Map(e.inspections.map(I=>[`${I.registryId}:${I.packageName}@${I.version}`,I])),f=new Map(e.release.packageSources.map(I=>[I.packageName,I])),g=c?Xl(e.resolutionEvidence,{requestDigest:Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:h(e.currentLockfile),desiredPackageJsonDigest:h(xi({release:e.release,packageJson:a})),sources:e.release.packageSources.map(({registryId:I,packageName:_,version:O,integrity:T})=>({registryId:I,packageName:_,version:O,integrity:T})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(xi({release:e.release,packageJson:a})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_})),managedSources:e.release.packageSources.map(({registryId:I,packageName:_,version:O,integrity:T})=>({registryId:I,packageName:_,version:O,integrity:T})),now:e.generatedAt}):void 0,y=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:_,version:O,integrity:T})=>({registryId:I,packageName:_,version:O,integrity:T}))}:e.lockResolution;if(y.lockfile.byteLength===0||y.packages.length!==e.release.packageSources.length)throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${y.packages.length}/${e.release.packageSources.length}`)});let w=new Map(y.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let _=l.get(I.registryId),O=p.get(I.registryId),T=m.get(I.deliveryReceiptId),fe=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(T!==void 0&&(t==="production"&&T.provenance==="development-readback-verified"||t==="development"&&T.provenance!=="development-readback-verified"))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");if(!_||!O||Date.parse(O.expiresAt)<=Date.parse(e.expiresAt)||_.status!=="enabled"||!_.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!T||!fe||!$)throw new Z("PACKAGE_SOURCE_NOT_FOUND");if(T.registryId!==I.registryId||T.registryConfigRevision!==_.revision||T.packageName!==I.packageName||T.version!==I.version||T.integrity!==I.integrity||T.tarballDigest!==I.tarballDigest||fe.integrity!==I.integrity||fe.tarballDigest!==I.tarballDigest||fe.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new Z("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!Ia.test(I.version)||fe.lifecycleScripts.length>0)throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,Q]of Object.entries(fe.dependencies)){let ce=f.get(P);if(P.startsWith("@aipt/")&&(!ce||ce.version!==Q||!Ia.test(Q)))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${Q}`)});if(cg.test(Q))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}}let A=c?xi({release:e.release,packageJson:a}):ed({release:e.release,packageJson:a}),b={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:h(e.packageJson),desiredPackageJsonDigest:h(A),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:h(e.currentLockfile)}),desiredLockfileDigest:h(y.lockfile),registryRevisions:Object.freeze([...l.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,revision:_})=>Object.freeze({registryId:I,revision:_})).sort((I,_)=>I.registryId.localeCompare(_.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:_,bindingDigest:O,expiresAt:T})=>Object.freeze({registryId:I,registryConfigRevision:_,bindingDigest:O,expiresAt:T})).sort((I,_)=>I.registryId.localeCompare(_.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(d.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},R=h(Ql(b));return Object.freeze({...b,planId:R,desiredPackageJson:A,desiredLockfile:y.lockfile})}function Aa(e){return _a(e,"production")}function Ra(e){return _a(e,"development")}function Ea(e){return _a(e,"production")}function Pa(e){return _a(e,"development")}function tE(e){let t=e.packageAdoption;if(t===void 0)throw new Z("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",i=e.operations.filter(({path:l})=>l===r),o=e.operations.filter(({path:l})=>l===n);if(i.length!==1||o.length!==1)throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");let a=i[0],s=o[0],c=a.kind==="replace"&&a.baseDigest===t.packageJsonPreimageDigest&&a.desiredDigest===t.desiredPackageJsonDigest&&a.disposition==="ready",d=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||!d)throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}async function pg(e){tE(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await dr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await pr(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 Z("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var gg=nn(jr(),1);var yg=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],hg="^[a-z0-9][a-z0-9._-]{0,127}$",Vi="^[A-Z][A-Z0-9_]{0,127}$",ug="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",rE={$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:hg},profile:{enum:yg}}},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:Vi},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:Vi},runtimeEnvironmentVariable:{type:"string",pattern:Vi},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:ug},provisioning:{oneOf:[{type:"object",additionalProperties:!1,required:["strategy"],properties:{strategy:{const:"external"}}},{type:"object",additionalProperties:!1,required:["strategy"],properties:{strategy:{const:"generated"},bytes:{type:"integer",minimum:16,maximum:128}}},{type:"object",additionalProperties:!1,required:["strategy","template"],properties:{strategy:{const:"derived"},template:{type:"string",minLength:1,maxLength:2048}}}]}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Vi},runtimeEnvironmentVariable:{type:"string",pattern:Vi},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:ug}}}]}}}},fg=new gg.Ajv2020({allErrors:!0,strict:!0}).compile(rE),mg=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,nE=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,qe=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function nd(e){let t=W(e),r=t.profile?.id;if(!yg.includes(r))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},i=n.name;if(Object.keys(n).length!==1||typeof i!="string"||!new RegExp(hg,"u").test(i))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:i,profile:r}}function Mi(e,t){if(!fg(e))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",fg.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,i=new Set,o=new Set;for(let l of r.bindings){if(n.has(l.name))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${l.name}`);if(n.add(l.name),l.kind==="value"){if(mg.test(l.name))throw new qe("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${l.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!l.name.endsWith("_FILE"))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${l.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let p=l.runtimeEnvironmentVariable??l.name;if(i.has(p))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u8FD0\u884C\u65F6\u73AF\u5883\u53D8\u91CF\u540D\u79F0\u91CD\u590D\uFF1A${p}`);i.add(p);let m=l.kind==="secret-file"?"secrets/":"certs/";if(l.kind==="certificate-file"&&(mg.test(l.name)||nE.test(l.name)))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`${l.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 u=l.file.split("/");if(!l.file.startsWith(m)||u.some(f=>f===""||f==="."||f===".."))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`${l.name} \u5FC5\u987B\u4F4D\u4E8E ${m} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(o.has(l.file))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${l.file}`);o.add(l.file)}let a=new Map(r.bindings.map(l=>[l.name,l])),s=new Set,c=new Set,d=l=>{if(c.has(l))return;if(s.has(l))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6D3E\u751F\u914D\u7F6E\u5B58\u5728\u5FAA\u73AF\u5F15\u7528\uFF1A${l}`);s.add(l);let p=a.get(l);if(p?.kind==="secret-file"&&p.provisioning?.strategy==="derived")for(let m of p.provisioning.template.matchAll(/\$\{([A-Z][A-Z0-9_]{0,127})\}/gu)){let u=m[1],f=a.get(u);if(!f||f.kind==="certificate-file")throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`${l}\u5F15\u7528\u672A\u77E5\u6216\u4E0D\u5141\u8BB8\u7684\u914D\u7F6E\uFF1A${u}`);d(u)}s.delete(l),c.add(l)};for(let l of a.keys())d(l);if(t!==void 0){let l=nd(t);if(r.application.id!==l.id||r.application.profile!==l.profile)throw new qe("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function Na(e){let t=nd(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 Mi(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
37
+ `)}var iE=/(?:^|_)(?:CERT|CERTIFICATE|CA)(?:_|$)/u,oE=/(?:^|_)(?:PRIVATE|SECRET|TOKEN|PASSWORD|PASSWD|KEY|API_KEY|ACCESS_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u;function wg(e){let t=nd(e.manifest),r=[],n=new Set,i=[];for(let a of e.environmentExample.split(/\r?\n/u)){let s=a.trim();if(s.startsWith("#")){i.push(s.slice(1).trim());continue}let c=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(s);if(!c){s===""&&(i=[]);continue}let d=c[1];if(n.has(d)){i=[];continue}n.add(d);let l=c[2].trim(),p=l.length>=2&&(l.startsWith('"')&&l.endsWith('"')||l.startsWith("'")&&l.endsWith("'"))?l.slice(1,-1):l,m=i.join(" ");i=[];let u=/必填/u.test(m)||!/可选/u.test(m)&&p==="",f=oE.test(d),g=!f&&iE.test(d);if(f||g){let y=d.endsWith("_FILE")?d:`${d}_FILE`,w=d.toLowerCase().replace(/_file$/u,"").replaceAll("_","-");r.push(g?{name:y,...y===d?{}:{runtimeEnvironmentVariable:d},kind:"certificate-file",required:u,file:`certs/${w}.pem`}:{name:y,...y===d?{}:{runtimeEnvironmentVariable:d},kind:"secret-file",required:u,file:`secrets/${w}`,provisioning:{strategy:"external"}})}else r.push({name:d,kind:"value",required:u,...p===""?{}:{default:p}})}let o={$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 Mi(o,e.manifest)}import{createHash as aE,X509Certificate as sE}from"node:crypto";import{lstat as Fi,readFile as gt,realpath as Oa}from"node:fs/promises";import X from"node:path";var we=class extends Error{code;constructor(t,r){super(r),this.code=t}};function vg(e){let t=W(e),r=t.profile?.parameters?.name;if(typeof r!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(r))throw new we("APPLICATION_CONFIG_BINDING_IDENTITY_INVALID","\u9879\u76EE\u7F3A\u5C11\u5408\u6CD5Application identity\u3002");return{id:r,profile:t.profile.id}}function Da(e){let t=vg(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)}
38
+ `)}function bg(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 we("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 we("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=vg(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new we("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function cE(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(!i||i.startsWith("#"))continue;let o=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i),a=o?.[1],s=o?.[2];if(!a||s===void 0||a in t)throw new we("APPLICATION_CONFIG_ENV_INVALID",`.env:${r+1}\u683C\u5F0F\u65E0\u6548\u6216\u53D8\u91CF\u91CD\u590D\u3002`);t[a]=s.trim().replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/u,"$1$2")}return t}function Sa(e){return`sha256:${aE("sha256").update(e).digest("hex")}`}async function Ig(e,t,r){let n=await Fi(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new we("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}var lE=new Set(["APPLICATION_CONFIG_FILE_INVALID","APPLICATION_CONFIG_REFERENCE_CHANGED"]),dE=new Set(["APP_CONFIG_DIR_REQUIRED","ENOENT"]);async function id({projectRoot:e,environment:t=process.env}){let r=await Oa(X.resolve(e)),n=X.join(r,"config/application-config.json");if(!await Fi(n).catch(()=>null))return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"not-declared",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_CONTRACT_NOT_DECLARED",entries:[]};try{let[o,a]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(n)]),s=JSON.parse(o.toString("utf8")),c=Mi(JSON.parse(a.toString("utf8")),s),d=await gt(X.join(r,".dyyto/application-config-binding.json")).catch(p=>{if(p.code==="ENOENT")return null;throw p});if(!d)return{schemaVersion:1,application:c.application.id,environment:"local",configDirectory:null,contractDigest:Sa(a),state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_BINDING_NOT_DECLARED",entries:[]};let l=bg(JSON.parse(d.toString("utf8")),s);try{let p=await Ui({projectRoot:r,environment:t}),m=p.entries.filter(f=>f.required&&!f.configured).map(f=>f.name),u=m.length?"incomplete":"ready";return{schemaVersion:1,...p,state:u,needsConfigInit:u==="incomplete",missingBindings:m}}catch(p){let m=p instanceof we?p.code:p.code??"APPLICATION_CONFIG_UNKNOWN",u=dE.has(m)?"missing":lE.has(m)?"incomplete":"invalid",f=await _g(r,l.application.id,t).catch(()=>{});return{schemaVersion:1,application:l.application.id,environment:"local",configDirectory:f??null,contractDigest:Sa(a),state:u,needsConfigInit:u==="missing"||u==="incomplete",missingBindings:u==="missing"?c.bindings.filter(g=>g.required).map(g=>g.name):[],issueCode:m,entries:[]}}}catch(o){let a=o instanceof we||o instanceof Error&&"code"in o?String(o.code):"APPLICATION_CONFIG_INVALID";return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:a,entries:[]}}}var pE=new Set(["workspace-node-application","workspace-web-application","workspace-expo-application","nextjs-full-stack-application"]);async function kg({workspaceRoot:e,environment:t=process.env}){let r=await Oa(X.resolve(e));if(W(JSON.parse(await gt(X.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")throw new we("APPLICATION_CONFIG_WORKSPACE_INVALID","\u914D\u7F6E\u5C31\u7EEA\u5EA6\u5DE5\u4F5C\u533A\u5FC5\u987B\u91C7\u7528workspace-root Profile\u3002");let i=await On(r),o=[];for(let s of i){let c=X.join(r,...s.relativeRoot.split("/")),d=X.join(c,"project-capabilities.json"),l=await gt(d,"utf8").catch(()=>null),p=await Fi(X.join(c,"config/application-config.json")).then(f=>f.isFile()&&!f.isSymbolicLink()).catch(()=>!1),m="";if(l!==null)try{m=W(JSON.parse(l)).profile?.id??""}catch{p&&(m="invalid-application")}if(!pE.has(m)&&!p)continue;let u=await id({projectRoot:c,environment:t}).catch(f=>({schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:f instanceof Error&&"code"in f?String(f.code):"APPLICATION_CONFIG_UNIT_INSPECTION_FAILED",entries:[]}));o.push({unit:s.relativeRoot,readiness:u})}let a=s=>o.filter(c=>c.readiness.state===s).length;return Object.freeze({schemaVersion:1,scope:"workspace",workspaceRoot:r,summary:Object.freeze({total:o.length,ready:a("ready"),missing:a("missing"),incomplete:a("incomplete"),invalid:a("invalid"),notDeclared:a("not-declared"),needsConfigInit:o.filter(s=>s.readiness.needsConfigInit).length}),applications:Object.freeze(o.map(s=>Object.freeze(s)))})}async function uE(e,t,r){let n=X.dirname(e);for(;n!==X.dirname(n);){try{if(JSON.parse(await gt(X.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let o=X.relative(n,e);if(!/^(?:apps|services|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(o))throw new we("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u3001services/<name>\u6216packages/<name>\u3002");return X.join(X.basename(n),o,r)}}catch(i){if(i instanceof we)throw i}n=X.dirname(n)}return X.join(t,r)}async function _g(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!X.isAbsolute(n))throw new we("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let o=await Fi(n).catch(()=>null);if(!o?.isFile()||o.isSymbolicLink()||o.nlink!==1||(o.mode&511&-385)!==0)throw new we("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let a=JSON.parse(await gt(n,"utf8"));if(a.schemaVersion!==1||!Array.isArray(a.projects))throw new we("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");let s=a.projects.filter(c=>typeof c.containerPath=="string"&&typeof c.configDirectory=="string"&&(e===c.containerPath||e.startsWith(`${c.containerPath}${X.sep}`))).sort((c,d)=>d.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let i=r.APP_CONFIG_DIR;if(i){if(!X.isAbsolute(i))throw new we("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return X.join(i,await uE(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function Ui({projectRoot:e,environment:t=process.env}){let r=await Oa(X.resolve(e)),[n,i,o]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(X.join(r,".dyyto/application-config-binding.json")),gt(X.join(r,"config/application-config.json"))]),a=JSON.parse(n.toString("utf8")),s=bg(JSON.parse(i.toString("utf8")),a),c=Mi(JSON.parse(o.toString("utf8")),a),d=await _g(r,s.application.id,t);if(!d||!X.isAbsolute(d))throw new we("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let l=await Oa(d),p=await Fi(l);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new we("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let m=X.relative(r,l);if(m===""||!m.startsWith("..")&&!X.isAbsolute(m))throw new we("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=X.join(l,".env");await Ig(u,"\u5E94\u7528.env",c.bindings.length===0);let f=cE(await gt(u,"utf8")),g=[];for(let y of c.bindings){if(y.kind==="value"){let T=f[y.name]??"";g.push({name:y.name,kind:y.kind,required:y.required,configured:T.length>0,source:"APP_CONFIG_DIR",display:T});continue}if(f[y.name]!==y.file)throw new we("APPLICATION_CONFIG_REFERENCE_CHANGED",`${y.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let A=X.resolve(l,y.file),b=X.relative(l,A);if(!b||b.startsWith("..")||X.isAbsolute(b))throw new we("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${y.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let R=await Ig(A,y.name,!0),I=await gt(A),_=I.length>0,O;if(_&&y.kind==="certificate-file")try{let T=new sE(I);O={subject:T.subject,issuer:T.issuer,validFrom:T.validFrom,validTo:T.validTo}}catch{throw new we("APPLICATION_CERTIFICATE_INVALID",`${y.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:y.name,...y.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:y.runtimeEnvironmentVariable}:{},kind:y.kind,required:y.required,configured:_,source:"APP_CONFIG_DIR",display:_?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",..._?{fingerprint:Sa(I),updatedAt:R.mtime.toISOString()}:{},...O?{certificate:O}:{}})}return{application:s.application.id,environment:"local",configDirectory:l,contractDigest:Sa(o),entries:g}}var Jr="project-capabilities.json",Ag=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function gE(e,t){if(!Ag.test(e)||!Ag.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 i=0;i<3;i+=1)if(r[i]!==n[i])return r[i]-n[i];return 0}async function yE(e,t){let r=qi.join(e,...t.split("/"));try{let n=await fE(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:h(await ja(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function Ca(e,t){let r=W(e),n=t.release,i=n.assets.find(a=>a.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&i?.renderer?.startsWith("npm-package-json-")===!0)return Gl(mr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&i?.renderer==="react-component-package-json-v1")return Jl(mr(r,n.consumerProfile));let o=t.contents.get("package.json");if(o===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");return o}async function od(e){let t=W(e.manifest),r=Ke(e.currentLock),n=e.sourceRelease.release,i=e.targetRelease.release,o=t.capabilities.find(P=>P.capabilityId===n.capabilityId),a=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=i.capabilityId!==n.capabilityId&&i.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(o===void 0||a===void 0||o.capabilityId!==a.capabilityId||o.version!==a.version||n.capabilityId!==a.capabilityId||n.version!==a.version||n.integrity!==a.integrity||!s&&i.capabilityId!==a.capabilityId||i.consumerProfile!==a.consumerProfile||n.consumerProfile!==i.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&gE(i.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await mE(qi.resolve(e.projectRoot)),d={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:i.capabilityId,version:i.version}:P)},l=new Map(e.targetRelease.contents);i.assets.some(P=>P.path==="package.json")&&l.set("package.json",Ca(d,e.targetRelease));for(let P of i.assets)P.renderer==="application-config-contract-v1"&&l.set(P.path,Na(d)),P.renderer==="application-config-binding-v1"&&l.set(P.path,Da(d));let p,m=c,u="package.json",f;if(i.schemaVersion===2&&i.availability.maturity!=="withdrawn"&&(i.packageSources?.length??0)>0){if(e.packageSource===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile transition requires verified Package Source facts");let P=l.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let Q=await ja(qi.join(c,"package.json")),ce=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};m=ce.transactionRoot,u=ce.mode==="pnpm-shared-lockfile"?`${ce.unitRelativeRoot}/package.json`:"package.json",f=ce.lockfilePath;let ot={release:i,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:i.consumerProfile,packageJson:Q,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ht=ce.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?Pa:Ea)({...ot,topology:{mode:ce.mode,unitRelativeRoot:ce.unitRelativeRoot,unitImporterId:ce.unitImporterId,lockfilePath:ce.lockfilePath,workspaceManifestPath:ce.workspaceManifestPath,workspaceManifestDigest:ce.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?Ra:Aa)({...ot,lockResolution:e.packageSource.lockResolution});p=ba(ht),l.set("package.json",ht.desiredPackageJson),l.set(f,ht.desiredLockfile)}catch(ht){throw ht instanceof Z?new M("CONSUMER_PROFILE_UNSUPPORTED",ht.code):ht}}let g=new Map(a.assets.filter(P=>P.path!==Jr).map(P=>[P.path,P.digest])),y=new Map(i.assets.filter(P=>P.path!==Jr).map(P=>{let Q=l.get(P.path);if(Q===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,h(Q)]})),w=[...new Set([...g.keys(),...y.keys()])].sort(),A=[],b=[];for(let P of w){let Q=await yE(c,P);A.push(Q);let ce=g.get(P),ot=y.get(P),ht=i.assets.find(Zh=>Zh.path===P);if(ht?.ownership==="seed-file"&&Q.exists&&Q.digest!==void 0){y.set(P,Q.digest),l.set(P,await ja(qi.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:Q.digest,desiredDigest:Q.digest});continue}if(ce===void 0){if(ot===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:ht?.ownership??"owned-file",desiredDigest:ot})}else ot===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:ce}):b.push({path:P,kind:"replace",ownership:ht?.ownership??"owned-file",baseDigest:ce,desiredDigest:ot})}if(p!==void 0&&f!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let Q=l.get(f);A.push({path:f,exists:!0,digest:h(P)}),b.push({path:f,kind:"replace",ownership:"owned-file",baseDigest:h(P),desiredDigest:h(Q)})}let R=await ja(qi.join(c,Jr)),I=Buffer.from(`${JSON.stringify(d,null,2)}
39
+ `);A.push({path:Jr,exists:!0,digest:h(R)}),b.push({path:Jr,kind:"replace",ownership:"owned-file",baseDigest:h(R),desiredDigest:h(I)});let _={schemaVersion:1,capabilityId:i.capabilityId,version:i.version,integrity:i.integrity,assets:i.assets.filter(P=>P.path!==Jr).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:y.get(P.path)})),verifiers:i.verifiers.map(({id:P})=>({id:P,kind:"command"}))},O=m===c?b:b.map(P=>P.path===f?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),T=m===c?A:A.map(P=>P.path===f?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),fe=Pe({action:"upgrade",capability:_,changes:O,observedAssets:T,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...p===void 0?{}:{packageAdoption:p}});l.set(Jr,I);let $=new Map;for(let P of fe.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let Q=m===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,ce=P.path===f?P.path:P.path.startsWith(Q)?P.path.slice(Q.length):P.path,ot=l.get(ce);if(ot===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",P.path);$.set(P.path,ot)}return{sourceLock:r,targetManifest:d,release:e.targetRelease,plan:fe,desiredContents:$,transactionRoot:m}}import{link as hE,mkdir as wE,open as Rg,readFile as Rt,readdir as IE,realpath as Et,rm as vE,unlink as bE}from"node:fs/promises";import ye from"node:path";var D=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function $e(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function Eg(e){return h(k(e))}function dd(e){if(!$e(e.project.lockDigest)||!$e(e.project.appliedPlanId)||!$e(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(i=>typeof i!="string"||i.length>512||/[\u0000-\u001f\u007f]/.test(i)))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:Eg(t)}}function ad(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(Eg(n)!==r)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return dd({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 Pg(e){if(!$e(e.planId)||!$e(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:h(k(t))}}function Ng(e){if(!$e(e.planId)||!$e(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:h(k(t))}}function $a(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function sd(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function Og(e){if(!$e(e.planId)||!$e(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:h(k(t))}}function cd(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function Ta(e){if(!$e(e.planId)||!$e(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"||!$e(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:h(k(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:h(k(t))}}function ld(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt is invalid or has been modified");let{receiptId:i,schemaVersion:o,status:a,...s}=t;return Ta(s)}async function kE(e){let t=await Rg(e,"r");try{await t.sync()}finally{await t.close()}}async function Bi(e,t){let r=ye.dirname(e);await wE(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,i=await Rg(n,"wx",384);try{await i.writeFile(`${k(t)}
40
+ `,"utf8"),await i.sync()}finally{await i.close()}try{await hE(n,e),await bE(n),await kE(r)}catch(o){throw await vE(n,{force:!0}),o}}async function Sg(e){let t=await Et(ye.resolve(e.projectRoot)),r=ad(e.plan),n=ye.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Bi(n,r)}catch(i){if(i.code!=="EEXIST")throw i;if(k(ad(JSON.parse(await Rt(n,"utf8"))))!==k(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Kt(e){if(!$e(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await Et(ye.resolve(e.projectRoot));try{let r=ad(JSON.parse(await Rt(ye.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 pd(e){let t=await Et(ye.resolve(e.projectRoot)),r=ld(e.receipt),n=await Kt({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 o=await jn({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||o===null||r.npm.stageId!==o.stageId||r.npm.tarballDigest!==o.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 i=ye.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Bi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=ld(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return a}return r}async function Dn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await Et(ye.resolve(e.projectRoot));try{let r=ld(JSON.parse(await Rt(ye.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 Dg(e){let t=await Et(ye.resolve(e.projectRoot)),r=$a(e.record),n=await Kt({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 i=ye.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Bi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=$a(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return a}return r}async function jg(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await Et(ye.resolve(e.projectRoot));try{let r=$a(JSON.parse(await Rt(ye.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 Cg(e){let t=await Et(ye.resolve(e.projectRoot)),r=ye.join(t,".dyyto","delivery","attempts"),n;try{n=await IE(r)}catch(i){if(i.code==="ENOENT")return null;throw i}for(let i of n.sort()){if(!i.endsWith(".json"))continue;let o=$a(JSON.parse(await Rt(ye.join(r,i),"utf8")));if((await Kt({projectRoot:t,planId:o.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([jn({projectRoot:t,planId:o.planId}),Dn({projectRoot:t,planId:o.planId})]);if(s===null&&c===null)return o}return null}async function $g(e){let t=await Et(ye.resolve(e.projectRoot)),r=sd(e.record),n=await Kt({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 i=ye.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Bi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=sd(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return a}return r}async function jn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await Et(ye.resolve(e.projectRoot));try{let r=sd(JSON.parse(await Rt(ye.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 Tg(e){let t=await Et(ye.resolve(e.projectRoot)),r=cd(e.record),n=await jn({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 i=ye.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Bi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=cd(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return a}return r}async function Lg(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await Et(ye.resolve(e.projectRoot));try{let r=cd(JSON.parse(await Rt(ye.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 ey,readdir as sP}from"node:fs/promises";import gd from"node:path";import{mkdir as ud,open as Ma,readFile as Gi,readdir as fd,rename as Fa,rm as Zg}from"node:fs/promises";import be from"node:path";var _E=44;var xg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",AE=new Uint8Array(64),Mg=new Uint8Array(128);for(let e=0;e<xg.length;e++){let t=xg.charCodeAt(e);AE[e]=t,Mg[t]=e}function zi(e,t){let r=0,n=0,i=0;do{let a=e.next();i=Mg[a],r|=(i&31)<<n,n+=5}while(i&32);let o=r&1;return r>>>=1,o&&(r=-2147483648|-r),t+r}function Vg(e,t){return e.pos>=t?!1:e.peek()!==_E}var nC=1024*16;var RE=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 Fg(e){let{length:t}=e,r=new RE(e),n=[],i=0,o=0,a=0,s=0,c=0;do{let d=r.indexOf(";"),l=[],p=!0,m=0;for(i=0;r.pos<d;){let u;i=zi(r,i),i<m&&(p=!1),m=i,Vg(r,d)?(o=zi(r,o),a=zi(r,a),s=zi(r,s),Vg(r,d)?(c=zi(r,c),u=[i,o,a,s,c]):u=[i,o,a,s]):u=[i],l.push(u),r.pos++}p||EE(l),n.push(l),r.pos=d+1}while(r.pos<=t);return n}function EE(e){e.sort(PE)}function PE(e,t){return e[0]-t[0]}var NE=/^[\w+.-]+:\/\//,OE=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,SE=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function DE(e){return NE.test(e)}function jE(e){return e.startsWith("//")}function Bg(e){return e.startsWith("/")}function CE(e){return e.startsWith("file:")}function Ug(e){return/^[.?#]/.test(e)}function La(e){let t=OE.exec(e);return zg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function $E(e){let t=SE.exec(e),r=t[2];return zg("file:","",t[1]||"","",Bg(r)?r:"/"+r,t[3]||"",t[4]||"")}function zg(e,t,r,n,i,o,a){return{scheme:e,user:t,host:r,port:n,path:i,query:o,hash:a,type:7}}function qg(e){if(jE(e)){let r=La("http:"+e);return r.scheme="",r.type=6,r}if(Bg(e)){let r=La("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(CE(e))return $E(e);if(DE(e))return La(e);let t=La("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function TE(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function LE(e,t){Gg(t,t.type),e.path==="/"?e.path=t.path:e.path=TE(t.path)+e.path}function Gg(e,t){let r=t<=4,n=e.path.split("/"),i=1,o=0,a=!1;for(let c=1;c<n.length;c++){let d=n[c];if(!d){a=!0;continue}if(a=!1,d!=="."){if(d===".."){o?(a=!0,o--,i--):r&&(n[i++]=d);continue}n[i++]=d,o++}}let s="";for(let c=1;c<i;c++)s+="/"+n[c];(!s||a&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function Jg(e,t){if(!e&&!t)return"";let r=qg(e),n=r.type;if(t&&n!==7){let o=qg(t),a=o.type;switch(n){case 1:r.hash=o.hash;case 2:r.query=o.query;case 3:case 4:LE(r,o);case 5:r.user=o.user,r.host=o.host,r.port=o.port;case 6:r.scheme=o.scheme}a>n&&(n=a)}Gg(r,n);let i=r.query+r.hash;switch(n){case 2:case 3:return i;case 4:{let o=r.path.slice(1);return o?Ug(t||e)&&!Ug(o)?"./"+o+i:o+i:i||"."}case 5:return r.path+i;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+i}}function xE(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function VE(e,t){let r=xE(e),n=t?t+"/":"";return i=>Jg(n+(i||""),r)}var gr=0,ME=1,FE=2,UE=3,qE=4;function BE(e,t){let r=Wg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=Wg(e,n+1))e[n]=GE(e[n],t);return e}function Wg(e,t){for(let r=t;r<e.length;r++)if(!zE(e[r]))return r;return e.length}function zE(e){for(let t=1;t<e.length;t++)if(e[t][gr]<e[t-1][gr])return!1;return!0}function GE(e,t){return t||(e=e.slice()),e.sort(JE)}function JE(e,t){return e[gr]-t[gr]}var Va=!1;function WE(e,t,r,n){for(;r<=n;){let i=r+(n-r>>1),o=e[i][gr]-t;if(o===0)return Va=!0,i;o<0?r=i+1:n=i-1}return Va=!1,r-1}function KE(e,t,r){for(let n=r+1;n<e.length&&e[n][gr]===t;r=n++);return r}function YE(e,t,r){for(let n=r-1;n>=0&&e[n][gr]===t;r=n--);return r}function HE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function ZE(e,t,r,n){let{lastKey:i,lastNeedle:o,lastIndex:a}=r,s=0,c=e.length-1;if(n===i){if(t===o)return Va=a!==-1&&e[a][gr]===t,a;t>=o?s=a===-1?0:a:c=a}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=WE(e,t,s,c)}function XE(e){return typeof e=="string"?JSON.parse(e):e}var QE="`line` must be greater than 0 (lines start at line 1)",eP="`column` must be greater than or equal to 0 (columns start at column 0)",Kg=-1,tP=1,Yg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=XE(e),{version:i,file:o,names:a,sourceRoot:s,sources:c,sourcesContent:d}=n;this.version=i,this.file=o,this.names=a||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=d,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let l=VE(t,s);this.resolvedSources=c.map(l);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=BE(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=HE(),this._bySources=void 0,this._bySourceMemos=void 0}};function rP(e){var t;return(t=e)._decoded||(t._decoded=Fg(e._encoded))}function Hg(e,t){let{line:r,column:n,bias:i}=t;if(r--,r<0)throw new Error(QE);if(n<0)throw new Error(eP);let o=rP(e);if(r>=o.length)return xa(null,null,null,null);let a=o[r],s=nP(a,e._decodedMemo,r,n,i||tP);if(s===-1)return xa(null,null,null,null);let c=a[s];if(c.length===1)return xa(null,null,null,null);let{names:d,resolvedSources:l}=e;return xa(l[c[ME]],c[FE]+1,c[UE],c.length===5?d[c[qE]]:null)}function xa(e,t,r,n){return{source:e,line:t,column:r,name:n}}function nP(e,t,r,n,i){let o=ZE(e,n,t,r);return Va?o=(i===Kg?KE:YE)(e,n,o):i===Kg&&o++,o===-1||o===e.length?-1:o}var se=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},md=/^sha256:[a-f0-9]{64}$/,Xg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,iP=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,Ua=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Ji=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Cn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function Qg(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 se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=be.join(be.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Kt({projectRoot:r,planId:t.deploymentId}),i=await Dn({projectRoot:r,planId:n.planId});if(i===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||i.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await fd(be.join(be.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function oP(e){if(!Ji(e)||!Ua(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new se("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!Ji(e.error)||!Ji(e.page)||!Ua(e.error,["type","message","frames"])||!Ua(e.page,["origin","path"]))throw new se("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!Xg.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 se("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new se("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!md.test(n)))throw new se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!iP.test(e.traceparent)))throw new se("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 se("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 se("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!Ji(n)||!Ua(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new se("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let i of[n.line,n.column])if(i!==void 0&&(!Number.isSafeInteger(i)||Number(i)<1))throw new se("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new se("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new se("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 se("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function aP(e,t,r="unknown"){let n=e.error.frames.map(a=>({file:Cn(a.file,2048),...a.line===void 0?{}:{line:a.line},...a.column===void 0?{}:{column:a.column},...a.function===void 0?{}:{function:Cn(a.function,256)}})),i={type:Cn(e.error.type,256),message:Cn(e.error.message,4096),frames:n},o=h(k({type:i.type,message:i.message,frames:n.slice(0,5).map(({file:a,line:s,column:c})=>({file:a,line:s,column:c}))}));return{schemaVersion:1,eventId:e.eventId,occurredAt:e.occurredAt,receivedAt:t,applicationId:Cn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:i,page:{origin:e.page.origin,path:Cn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:o,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Yt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return be.join(be.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return be.join(be.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=oP(t);if(!r.allowedOrigins.includes(n.page.origin))throw new se("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let i=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),o=aP(n,r.receivedAt,i);return this.#t(async()=>{let a=this.directory();await ud(a,{recursive:!0,mode:448});let s=be.join(a,`${o.eventId}.json`);try{let m=JSON.parse(await Gi(s,"utf8")),u={...m,correlation:m.correlation??"unknown"};if(k({...u,receivedAt:o.receivedAt})!==k(o))throw new se("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:o.eventId,state:u.state,duplicate:!0}}catch(m){if(m.code!=="ENOENT")throw m}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,d=await Ma(c,"wx",384);try{await d.writeFile(`${k(o)}
41
+ `,"utf8"),await d.sync()}finally{await d.close()}await Fa(c,s);let l=await Ma(a,"r");try{await l.sync()}finally{await l.close()}await this.rotate(),o.releaseId!==void 0&&await this.resymbolicate(o.releaseId);let p=JSON.parse(await Gi(s,"utf8"));return{eventId:o.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=be.join(this.directory(),t),n=be.join(be.resolve(this.workspaceRoot),".dyyto","observability","quarantine");await ud(n,{recursive:!0,mode:448}),await Fa(r,be.join(n,`${Date.now()}-${t}`))}async all(){let t=await fd(this.directory()).catch(()=>[]),r=[];for(let n of t){if(!n.endsWith(".json")){n.includes(".tmp-")&&await this.quarantine(n).catch(()=>{});continue}try{let i=JSON.parse(await Gi(be.join(this.directory(),n),"utf8"));if(i.eventId!==n.slice(0,-5))throw new Error("identity mismatch");r.push({...i,correlation:i.correlation??"unknown"})}catch{await this.quarantine(n).catch(()=>{})}}return r.sort((n,i)=>i.occurredAt.localeCompare(n.occurredAt)||n.eventId.localeCompare(i.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=k({v:1,offset:t,snapshot:r});return Buffer.from(k({content:n,digest:h(n)})).toString("base64url")}parseCursor(t,r){try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));if(typeof n.content!="string"||n.digest!==h(n.content))throw new Error("tampered");let i=JSON.parse(n.content);if(i.v!==1||!Number.isSafeInteger(i.offset)||i.offset<0||i.snapshot!==r)throw new Error("expired");return i.offset}catch{throw new se("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),i=h(k(n.map(s=>s.eventId))),o=t.cursor===void 0?0:this.parseCursor(t.cursor,i),a=n.slice(o,o+r);return{events:a,...o+a.length<n.length?{nextCursor:this.cursor(o+a.length,i)}:{}}}async get(t){if(!Xg.test(t))throw new se("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await Gi(be.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 se("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 i of r){let o=n.get(i.fingerprint);o?o.count+=1:n.set(i.fingerprint,{count:1,latestAt:i.occurredAt,event:i})}return{total:r.length,groups:[...n.entries()].map(([i,o])=>({fingerprint:i,...o}))}}async rotate(){let t=await this.all(),n=t.reduce((i,o)=>Math.max(i,Date.parse(o.receivedAt)),0)-10080*60*1e3;for(let i of t.slice(1e4))await Zg(be.join(this.directory(),`${i.eventId}.json`),{force:!0});for(let i of t.slice(0,1e4))Date.parse(i.receivedAt)<n&&await Zg(be.join(this.directory(),`${i.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!md.test(t.releaseId)||!md.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!Ji(t.map)||"sourcesContent"in t.map)throw new se("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(k(t.map)),n=h(r),i=be.join(this.releases(),t.releaseId);await ud(i,{recursive:!0,mode:448});let o=h(t.asset),a=be.join(i,`${o}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await Ma(`${a}.tmp`,"w",384);try{await c.writeFile(`${k({registration:s,map:t.map})}
42
+ `),await c.sync()}finally{await c.close()}return await Fa(`${a}.tmp`,a),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await fd(be.join(this.releases(),t)).catch(()=>[]),n=[];for(let i of r)try{n.push(JSON.parse(await Gi(be.join(this.releases(),t,i),"utf8")))}catch{}for(let i of(await this.all()).filter(o=>o.releaseId===t&&o.state==="map-missing")){let o=!1,a=i.error.frames.map(l=>{let p=n.find(m=>new URL(l.file,"http://local").pathname.endsWith(`/${m.registration.asset}`));if(!p||l.line===void 0||l.column===void 0)return l;try{let m=Hg(new Yg(p.map),{line:l.line,column:Math.max(0,l.column-1)});return m.source===null||m.line===null||m.column===null?l:(o=!0,{...l,source:m.source.replace(/^file:\/\//,""),sourceLine:m.line,sourceColumn:m.column+1})}catch{return l}});if(!o)continue;let s={...i,error:{...i.error,frames:a},state:"symbolicated"},c=be.join(this.directory(),`${i.eventId}.json`),d=await Ma(`${c}.tmp`,"w",384);try{await d.writeFile(`${k(s)}
43
+ `),await d.sync()}finally{await d.close()}await Fa(`${c}.tmp`,c)}}};var tt=(e,t,r,n,i)=>({code:e,severity:t,fact:r,message:n,...i===void 0?{}:{action:i}});async function Wi(e){if(e.lock.capabilities.length===0||e.lock.capabilities.some(r=>r.evidenceIds.length===0))return[tt("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 i=Ii(JSON.parse(await ey(gd.join(e.projectRoot,".dyyto","evidence",`${n}.json`),"utf8")));if(i.evidenceId!==n||i.capabilityId!==r.capabilityId||i.capabilityVersion!==r.version||i.capabilityIntegrity!==r.integrity||i.projectStateDigest!==r.projectStateDigest||i.result!=="passed")return[tt("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[tt("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[tt("EVIDENCE_VALID","info","evidence",`\u5DF2\u6838\u9A8C ${e.lock.capabilities.length} \u9879\u80FD\u529B\u7684 ${t} \u6761\u91C7\u7528\u8BC1\u636E\u3002`)]}function yd(e){return e==="adopted"?[]:e==="planned"?[tt("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"?[tt("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"?[tt("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"?[tt("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")]:[tt("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 ty(e){try{let r=JSON.parse(await ey(gd.join(e.workspaceRoot,".dyyto","observability","config.json"),"utf8"));if(!Array.isArray(r.applications)||!r.applications.includes(e.applicationId))return[tt("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[tt("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 Yt(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await sP(gd.join(e.workspaceRoot,".dyyto","observability","quarantine")).catch(()=>[])).length;return t>0?[tt("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")]:[tt("OBSERVABILITY_CONFIGURED","info","repository","\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u914D\u7F6E\u4E0E\u672C\u5730\u5B58\u50A8\u53EF\u8BFB\u53D6\u3002")]}function ry(e){let t=e.units.map(n=>{let i=n.findings.some(o=>o.severity==="critical")?"blocked":n.findings.some(o=>o.severity==="warning")?"attention":"healthy";return{...n,status:i}}),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 Ki,realpath as ny}from"node:fs/promises";import Wr from"node:path";var de=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function iy(e){let t=await ny(Wr.resolve(e.projectRoot)),r=W(e.manifest),n=e.release.release,i=e.currentLock.capabilities.find(m=>m.capabilityId===n.capabilityId&&m.version===n.version);if(!i||i.packageAdoption!==void 0)throw new de("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let o=W({...r,capabilities:r.capabilities.filter(m=>m.capabilityId!==n.capabilityId)}),a=Buffer.from(`${JSON.stringify(o,null,2)}
44
+ `),s=await Yi(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new de("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:h(a)},...i.assets.map(m=>({path:m.path,kind:"remove",ownership:m.ownership??"owned-file",baseDigest:m.digest}))],d=await Promise.all(c.map(m=>Yi(t,m.path))),l={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:i.assets.map(m=>({path:m.path,ownership:m.ownership??"owned-file",desiredDigest:m.digest})),verifiers:n.verifiers.map(m=>({id:m.id,kind:"file-digest"}))};return{plan:Pe({action:"remove",capability:l,changes:c,observedAssets:d,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),manifest:o,desiredContents:new Map([["project-capabilities.json",a]]),transactionRoot:t,removedSources:[]}}async function Yi(e,t){try{let r=await Ki(Wr.join(e,...t.split("/")));return{path:t,exists:!0,digest:h(r)}}catch(r){if(r.code==="ENOENT")return{path:t,exists:!1};throw r}}async function hd(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new de("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await ny(Wr.resolve(e.projectRoot)),r=W(e.manifest),n=e.release.release,i=e.packageSource?.topology,o=i?.transactionRoot??t,a=_=>i?.mode==="pnpm-shared-lockfile"?`${i.unitRelativeRoot}/${_}`:_;if(n.kind!=="engineering-feature"||n.consumerProfile!=="any-project")throw new de("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(_=>_.capabilityId===n.capabilityId))throw new de("CAPABILITY_ALREADY_SELECTED","The capability is already selected by this project");let s=r.profile?.id,c=s==="typescript-library"?"blank-typescript-library":s,d=n.dependencies?.profiles??[],l=e.currentLock.capabilities.find(_=>_.consumerProfile===c);if(c===void 0||!d.includes(c)||l===void 0)throw new de("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(_=>!r.capabilities.some(O=>O.capabilityId===_)||!e.currentLock.capabilities.some(O=>O.capabilityId===_)))throw new de("CAPABILITY_DEPENDENCY_UNSATISFIED","A required project capability is not adopted and verified");let m=W({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),u=a("project-capabilities.json"),f=Buffer.from(`${JSON.stringify(m,null,2)}
45
+ `),g=await Yi(o,u);if(!g.exists||g.digest===void 0)throw new de("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let y=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:h(f)}],w=new Map([[u,f]]),A;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new de("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let _;try{_=await Ki(Wr.join(t,"package.json"))}catch{throw new de("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let O=e.packageSource.currentLockfile??await Ki(Wr.join(t,"pnpm-lock.yaml")).catch(ce=>ce.code==="ENOENT"?void 0:Promise.reject(ce)),T=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},fe=T.mode==="pnpm-shared-lockfile",$={mode:T.mode,unitRelativeRoot:T.unitRelativeRoot,unitImporterId:T.unitImporterId,lockfilePath:T.lockfilePath,...T.workspaceManifestPath?{workspaceManifestPath:T.workspaceManifestPath,workspaceManifestDigest:T.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(fe&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");let Q=fe?(e.packageChannel==="development"?Pa:Ea)({release:n,...P,consumerProfile:c,packageJson:_,currentLockfile:O,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?Ra:Aa)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:_,...O===void 0?{}:{currentLockfile:O},generatedAt:e.generatedAt,expiresAt:e.expiresAt});A=ba(Q),y.push({path:a("package.json"),kind:"replace",ownership:"owned-file",baseDigest:Q.packageJsonPreimageDigest,desiredDigest:Q.desiredPackageJsonDigest}),w.set(a("package.json"),Q.desiredPackageJson),y.push({path:T.lockfilePath,kind:O===void 0?"create":"replace",ownership:"owned-file",...O===void 0?{}:{baseDigest:h(O)},desiredDigest:Q.desiredLockfileDigest}),w.set(T.lockfilePath,Q.desiredLockfile)}catch(O){throw O instanceof Z?new de("CAPABILITY_PACKAGE_SOURCE_INVALID",O.code):O}}for(let _ of n.assets){let O=e.release.contents.get(_.path);if(O===void 0)throw new de("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let T=_.renderer==="application-config-contract-v1"?Na(r):_.renderer==="application-config-binding-v1"?Da(r):O;if(_.ownership==="managed-region"){if(_.regionId===void 0)throw new de("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let fe;try{fe=await Ki(Wr.join(t,..._.path.split("/")))}catch{throw new de("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(hm({source:fe.toString("utf8"),regionId:_.regionId,content:Buffer.from(T).toString("utf8")}));y.push({path:a(_.path),kind:"merge",ownership:"managed-region",regionId:_.regionId,baseDigest:h(fe),desiredDigest:h($)}),w.set(a(_.path),$)}else{let fe=await Yi(t,_.path);if(_.ownership==="seed-file"&&fe.exists){let $=await Ki(Wr.join(t,..._.path.split("/")));y.push({path:a(_.path),kind:"create",ownership:"seed-file",desiredDigest:h($)}),w.set(a(_.path),$)}else y.push({path:a(_.path),kind:"create",ownership:_.ownership,desiredDigest:h(T)}),w.set(a(_.path),T)}}let b=await Promise.all(y.map(_=>Yi(o,_.path))),R={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:y.filter(_=>_.path!==u&&_.path!==i?.lockfilePath).map(_=>({path:i?.mode==="pnpm-shared-lockfile"?_.path.slice(i.unitRelativeRoot.length+1):_.path,ownership:_.ownership,desiredDigest:_.desiredDigest})),verifiers:n.verifiers.map(_=>({id:_.id,kind:"file-digest"}))};return{plan:Pe({action:"adopt",capability:R,changes:y,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...A===void 0?{}:{packageAdoption:A}}),manifest:m,desiredContents:w,transactionRoot:o,dependency:{profile:c,satisfied:!0}}}var oy=nn(jr(),1);var cP={$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:re},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:St},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:re},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}}}}},TC=new oy.Ajv2020({allErrors:!0,strict:!0}).compile(cP);var dy=nn(jr(),1);import{readFile as lP,realpath as dP}from"node:fs/promises";import ay from"node:path";var sy="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",cy="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",pP={$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:sy},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:St},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:re},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:re},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:cy,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:sy}},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:cy,maxLength:240}}}}}},ly=new dy.Ajv2020({allErrors:!0,strict:!0}).compile(pP),Kr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function uP(e){return h(k(e))}function fP(e){if(!ly(e))throw new Kr("EXAMPLE_RECIPE_INVALID",ly.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 Kr("EXAMPLE_RECIPE_INVALID");return t}async function py(e){let t=await dP(ay.resolve(e)),r;try{r=fP(JSON.parse(await lP(ay.join(t,"recipe.json"),"utf8")))}catch(o){throw o instanceof Kr?o:new Kr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...i}=r;if(uP(i)!==n)throw new Kr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var my=nn(jr(),1);import{readFile as mP,realpath as gP}from"node:fs/promises";import uy from"node:path";var yP={$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:re},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:St},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:re},capability:{type:"string",pattern:`${re.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:re},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:re},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"]}}}},fy=new my.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(yP),Ht=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function hP(e){return h(k(e))}function wP(e){if(!fy(e))throw new Ht("TEMPLATE_INVALID",fy.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 Ht("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Ht("TEMPLATE_INVALID");return t}async function Hi(e,t=new Date){let r=await gP(uy.resolve(e)),n;try{n=wP(JSON.parse(await mP(uy.join(r,"template.json"),"utf8")))}catch(a){throw a instanceof Ht?a:new Ht("TEMPLATE_INVALID")}let{integrity:i,...o}=n;if(hP(o)!==i)throw new Ht("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Ht("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as gy}from"node:fs/promises";import yy from"node:path";var IP=/^[A-Z][A-Z0-9_]*$/u,vP=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function bP(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||!IP.test(n[1]))continue;let i=n[1],o=n[2].trim();t.set(i,{name:i,requirement:o.length===0?"conditional":"optional",secret:vP.test(i),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function hy(e){let t=await gy(yy.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await gy(yy.join(e.projectRoot,t),"utf8"):"",n=await Ui({projectRoot:e.projectRoot}).catch(()=>null);return{commands:["dev","build","test","package"].flatMap(o=>e.commands[o]?[{id:o,script:e.commands[o],mode:o==="dev"?"managed-process":"foreground-task"}]:[]),environment:n?n.entries.map(o=>({name:o.name,...o.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:o.runtimeEnvironmentVariable}:{},requirement:o.required?"conditional":"optional",kind:o.kind,secret:o.kind!=="value",configured:o.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:o.display,...o.fingerprint?{fingerprint:o.fingerprint}:{}})):bP(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var wy={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"])},Iy=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function vy(e,t){if(!wy[t.plane]||t.state&&!Iy.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=wy[t.plane],n=t.from?Date.parse(t.from):null,i=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||i!==null&&Number.isNaN(i)||n!==null&&i!==null&&n>i)throw new Error("OPERATION_FILTER_INVALID");let o=e.filter(d=>r.has(d.operation)),a=[...new Map(o.map(d=>[d.projectId,{id:d.projectId,name:d.projectName}])).values()].sort((d,l)=>d.name.localeCompare(l.name)),s=o.filter(d=>(!t.projectId||d.projectId===t.projectId)&&(!t.state||d.state===t.state)&&(!t.kind||d.operation===t.kind)&&(n===null||Date.parse(d.createdAt)>=n)&&(i===null||Date.parse(d.createdAt)<=i)).sort((d,l)=>l.updatedAt.localeCompare(d.updatedAt)),c={total:s.length,running:s.filter(d=>d.state==="running"||d.state==="queued").length,succeeded:s.filter(d=>d.state==="succeeded").length,attention:s.filter(d=>d.state==="failed"||d.state==="outcome-unknown").length};return Object.freeze({schemaVersion:1,plane:t.plane,summary:Object.freeze(c),facets:Object.freeze({projects:Object.freeze(a),states:Object.freeze([...Iy]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var rt=class extends Error{code;constructor(t){super(t),this.code=t}},kP=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,by=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,_P=/^sha512-[A-Za-z0-9+/]{86}==$/u,qa=/^sha256:[a-f0-9]{64}$/u,AP=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,RP=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,EP=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Yr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function PP(e){if(!Yr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!kP.test(e.packageName)||!by.test(e.version)||!AP.test(e.assetName)||!_P.test(e.integrity)||!qa.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)||!by.test(n)||RP.test(n))?!1:e.lifecycleScripts.every(r=>EP.has(r))}function wd(e){if(!Yr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(o=>Object.freeze({...o,dependencies:Object.freeze({...o.dependencies}),lifecycleScripts:Object.freeze([...o.lifecycleScripts])}));if(t.some(o=>!PP(o)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(o=>o.packageName+"@"+o.version);if(new Set(r).size!==r.length||r.some((o,a)=>a>0&&o.localeCompare(r[a-1])<=0))throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(o=>o.packageName));for(let o of t)for(let[a,s]of Object.entries(o.dependencies))if(a.startsWith("@aipt/")&&(!n.has(a)||!t.some(c=>c.packageName===a&&c.version===s)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");let i={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...i,bundleId:h(k(i))})}function Hr(e){let t=e;if(typeof t!="object"||t===null||!Yr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!qa.test(t.bundleId)||!Array.isArray(t.artifacts))throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");if(wd({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function Id(e){if(!Yr(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 rt("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(i=>Object.freeze({...i}));if(t.some(i=>!Yr(i,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i.relativeRoot)||!qa.test(i.manifestDigest))||new Set(t.map(i=>i.relativeRoot)).size!==t.length)throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");let r=Hr(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:h(k(n))})}function ky(e){let t=e;if(typeof t!="object"||t===null||!Yr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!qa.test(t.planId)||!Yr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");if(Id({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");return t}function _y(e){let t=Hr(e.bundle),r=Ti(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Hl({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 Qe=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},Ay=/^sha256:[a-f0-9]{64}$/u,Ba=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function vd(e){if(!Ba.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>Ay.test(r))||!Ba.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 Qe("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:h(k(t))})}function Ry(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");let r=vd({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 Qe("RESOLUTION_WORKER_BUILD_INVALID");return r}function bd(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>Ay.test(r))||!Ba.test(e.workerReleaseId)||!Ba.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function za(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");let r=bd({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 Qe("RESOLUTION_WORKER_BUILD_INVALID");return r}var Zi=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},kd=/^sha256:[a-f0-9]{64}$/u,NP=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function _d(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>kd.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!NP.test(r.path)||!kd.test(r.currentDigest)||!kd.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Zi("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:h(k(t))})}function Ey(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Zi("RECOVERY_OVERRIDE_INVALID");let r=_d({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 Zi("RECOVERY_OVERRIDE_INVALID");return r}var Xi=class extends Error{code;constructor(t,r){super(r),this.code=t}},Rd=/^sha256:[a-f0-9]{64}$/u,OP=/^sha512-[A-Za-z0-9+/]{86}==$/u,SP=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,DP=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,jP=/[\u0000-\u001f\u007f]/u;function $n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Tn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function Zt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!jP.test(e)}function Ad(e){return Zt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Py(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 CP(e){return e===null?!0:!$n(e)||!Tn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:Ad(e.fileName)&&Rd.test(String(e.digest))&&OP.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function $P(e){if(!$n(e)||!Tn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!SP.test(e.packageName)||!DP.test(e.version)||!Zt(e.title,120)||!Zt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!$n(e.source)||!Tn(e.source,["repository","path","revision","treeDigest"])||!Zt(e.source.repository)||!Ad(e.source.path)||!Zt(e.source.revision,200)||!Rd.test(String(e.source.treeDigest))||!CP(e.artifact)||!$n(e.compatibility)||!Tn(e.compatibility,["node","packageManager"])||!Zt(e.compatibility.node,100)||!Zt(e.compatibility.packageManager,100)||!Py(e.exports)||!Py(e.consumerEvidence)||!$n(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Tn(e.documentation,t)||!Ad(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Zt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function TP(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(!$P(t))throw new Xi("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:h(k(t))})}function Ny(e){if(!$n(e)||!Tn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!Rd.test(String(e.releaseDigest)))throw new Xi("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...i}=e,o=TP(i);if(o.releaseDigest!==t)throw new Xi("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return o}import{lstat as LP,readFile as xP,realpath as VP}from"node:fs/promises";import Oy from"node:path";async function Sy(e){let t=await VP(Oy.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,i=[...e.lock.capabilities].sort((a,s)=>a.committedAt.localeCompare(s.committedAt)||a.capabilityId.localeCompare(s.capabilityId));for(let a of i)if(!r.has(a.capabilityId))for(let s of a.assets){let c=s.ownership??"owned-file",d=`${s.path}\0`;if(c==="managed-region")n.delete(d);else for(let p of n.keys())p.startsWith(d)&&n.delete(p);let l=c==="managed-region"?`${d}${s.regionId??""}`:d;n.set(l,{capabilityId:a.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let o=[];for(let a of[...n.values()].sort((s,c)=>s.path.localeCompare(c.path)||(s.regionId??"").localeCompare(c.regionId??"")||s.capabilityId.localeCompare(c.capabilityId))){let s=Oy.join(t,...a.path.split("/")),d=await LP(s).then(async l=>{if(!l.isFile()||l.isSymbolicLink())return;let p=await xP(s);if(a.ownership!=="managed-region")return h(p);if(a.regionId!==void 0)try{return h(Ho(p.toString("utf8"),a.regionId))}catch{return}}).catch(l=>l.code==="ENOENT"?void 0:Promise.reject(l))===a.digest;o.push({capabilityId:a.capabilityId,path:a.path,kind:"create",ownership:a.ownership,...a.regionId===void 0?{}:{regionId:a.regionId},desiredDigest:a.digest,disposition:d?"noop":"conflict",...d?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return o}import{createHash as MP}from"node:crypto";var FP=/[\u0000-\u001f\u007f]/u,Ga=e=>`sha256:${MP("sha256").update(Ed(e)).digest("hex")}`,Ed=e=>Array.isArray(e)?`[${e.map(Ed).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)}:${Ed(r)}`).join(",")}}`:JSON.stringify(e),yr=(e,t)=>{if(!e.trim()||e.length>500||FP.test(e))throw new Error(`DEVELOPMENT_${t.toUpperCase()}_INVALID`);return e.trim()},UP=e=>Object.freeze({repository:yr(e.repository,"repository"),branch:yr(e.branch,"branch"),commit:yr(e.commit,"commit")});function Dy(e){if(e.source==="requirement-task"&&(!e.requirementId||!e.taskId))throw new Error("DEVELOPMENT_REQUIREMENT_TASK_REQUIRED");if(e.source==="direct"&&(e.requirementId!==null||e.taskId!==null))throw new Error("DEVELOPMENT_DIRECT_LINK_INVALID");let t={schemaVersion:1,kind:"DevelopmentIntent",source:e.source,intentId:yr(e.intentId,"intent_id"),title:yr(e.title,"title"),summary:yr(e.summary,"summary"),repository:UP(e.repository),requirementId:e.requirementId,taskId:e.taskId,acceptance:Object.freeze(e.acceptance.map(r=>yr(r,"acceptance")))};return Object.freeze({...t,intentDigest:Ga(t)})}function jy(e){let t={intentDigest:e.intent.intentDigest,repository:e.intent.repository,worktreePath:yr(e.worktreePath,"worktree"),startedAt:e.startedAt},r={schemaVersion:1,kind:"DevelopmentSession",sessionId:Ga(t),revision:1,state:"active",intent:e.intent,worktree:Object.freeze({path:t.worktreePath,writable:!0}),engineeringContextDigest:e.engineeringContextDigest,knowledgeContextDigest:e.knowledgeContextDigest??null,startedAt:e.startedAt,finishedAt:null};return Object.freeze({...r,sessionDigest:Ga(r)})}function Cy(e,t){if(e.state!=="active")throw new Error("DEVELOPMENT_SESSION_NOT_ACTIVE");let r={...e,revision:e.revision+1,state:"finished",worktree:Object.freeze({...e.worktree,writable:!1}),finishedAt:t},{sessionDigest:n,...i}=r;return Object.freeze({...i,sessionDigest:Ga(i)})}import{readFile as oe,readdir as Ky,realpath as Pt}from"node:fs/promises";import{execFile as rN,spawn as nN}from"node:child_process";import N from"node:path";import{parseArgs as pe,promisify as iN}from"node:util";import{lstat as $y,mkdir as Nd,readFile as Ty,realpath as Pd,rm as qP,writeFile as Ly}from"node:fs/promises";import nt from"node:path";var it=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},BP=e=>k(e),xy=e=>h(BP(e));async function Vy(e,t){let r=await Pd(nt.resolve(e)),n=nt.join(r,".examples");await Nd(n,{recursive:!0});let i=await Pd(n),o=nt.resolve(r,t);if(nt.dirname(o)!==i||nt.basename(o).startsWith(".")||nt.basename(o).length<1)throw new it("SCAFFOLD_ARGUMENT_INVALID");if(await $y(o).then(()=>!0).catch(a=>a.code==="ENOENT"?!1:Promise.reject(a)))throw new it("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:o,outputRelativePath:nt.relative(r,o)}}async function My(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 it("SCAFFOLD_ARGUMENT_INVALID");let r=await Vy(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),i={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()},o={...i,planId:xy(i)},a=nt.join(r.workspaceRoot,".dyyto","scaffold-plans");await Nd(a,{recursive:!0});let s=nt.join(a,`${o.planId}.json`);return await Ly(s,`${k(o)}
46
+ `,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await Ty(s,"utf8")!==`${k(o)}
47
+ `)throw new it("SCAFFOLD_PLAN_INVALID")}),o}async function zP(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new it("SCAFFOLD_PLAN_INVALID");let r=await Pd(nt.resolve(e)),n;try{n=JSON.parse(await Ty(nt.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new it("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:i,...o}=n;if(i!==t||xy(o)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new it("SCAFFOLD_PLAN_INVALID");return n}async function Fy(e){let t=await zP(e.workspaceRoot,e.approvedPlanId);if(t.recipeId!==e.recipe.recipeId||t.recipeVersion!==e.recipe.version||t.recipeIntegrity!==e.recipe.integrity)throw new it("SCAFFOLD_PLAN_INVALID");let r=await Vy(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await $y(r.output).then(()=>!0).catch(()=>!1)&&await qP(r.output,{recursive:!0,force:!0}),new it("SCAFFOLD_APPLY_FAILED",s)}let i={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},o=h(k(i)),a=nt.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await Nd(a,{recursive:!0}),await Ly(nt.join(a,`${o}.json`),`${k({...i,evidenceId:o})}
48
+ `,{flag:"wx",mode:384}),{evidenceId:o,output:r.output,receipts:n}}import{lstat as Qi,readFile as Od,readdir as GP,realpath as Sd}from"node:fs/promises";import he from"node:path";var Uy={capabilities:he.resolve(import.meta.dirname,"catalog"),packages:he.resolve(import.meta.dirname,"package-releases")};function By(e,t){return e<t?-1:e>t?1:0}function Wa(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Wa).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>By(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Wa(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function JP(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(i===""||i.startsWith("#"))continue;if(i.startsWith("export "))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u4F7F\u7528 export`);let o=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i);if(!o)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(o[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${o[1]}`);let a=o[2].trim();if((a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"))&&(a=a.slice(1,-1)),/[`$][({]?/u.test(a))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u547D\u4EE4\u6216\u53D8\u91CF\u5C55\u5F00`);t.set(o[1],a)}return t}async function qy(e,t){let r=await Qi(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 Ja(e,t){let r=await Qi(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 WP(e){let t=e;for(;;){if(await Qi(he.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=he.dirname(t);if(r===t)return;t=r}}async function KP(e){if(!he.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Ja(e,"IDP_CONFIG_DIR");await WP(t);let r=await Ja(he.join(t,"components"),"components"),n=await Ja(he.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),i=he.relative(t,n);if(i.startsWith("..")||he.isAbsolute(i))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let o=he.join(n,".env");await qy(o,"Dyyto \u7EC4\u4EF6 .env");let a=JP(await Od(o,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(a===void 0||a==="")return[];if(he.isAbsolute(a)||a.includes("\0")||/[*?{}[\]]/u.test(a))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=he.resolve(n,a),c=he.relative(n,s);if(c===""||c.startsWith("..")||he.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let d=n;for(let u of c.split(he.sep).slice(0,-1))d=await Ja(he.join(d,u),"Package Catalog Binding \u7236\u76EE\u5F55");let l=await Sd(he.dirname(s)),p=he.relative(n,l);if(p.startsWith("..")||he.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await qy(s,"Package Catalog Binding");let m=[];for(let u of(await Od(s,"utf8")).split(/\r?\n/u)){let f=u.trim();if(f===""||f.startsWith("#"))continue;if(!he.isAbsolute(f))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Qi(f);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let y=await Sd(f),w=await Qi(y);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");m.includes(y)||m.push(y)}return m.sort()}async function YP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await KP(e);return{capabilities:Uy.capabilities,packages:[Uy.packages,...t]}}async function Ka(e){return(await GP(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function HP(e,t){let r=o=>o.split("-",1)[0].split(".").map(Number),n=r(e),i=r(t);for(let o=0;o<3;o+=1){let a=(n[o]??0)-(i[o]??0);if(a!==0)return a}return e.localeCompare(t)}function ZP(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 XP(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 QP(e){let t=[];for(let r of await Ka(e))for(let n of await Ka(he.join(e,r))){let i=`capability:${r}@${n}`;t.push(Re(he.join(e,r,n)).then(o=>({entry:{item:ZP(o.release),release:o.release}})).catch(()=>({diagnostic:{ref:i,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 eN(e){let t=[];for(let r of await Ka(e))for(let n of await Ka(he.join(e,r))){let i=he.join(e,r,n,"release.json"),o=`package:${r}@${n}`;t.push(Od(i,"utf8").then(a=>{let s=Ny(JSON.parse(a));return{entry:{item:XP(s),release:s}}}).catch(()=>({diagnostic:{ref:o,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 YP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...i]=await Promise.all([QP(t.capabilities),...r.map(eN)]),o=[...n.entries,...i.flatMap(d=>d.entries)].sort((d,l)=>d.item.ref.localeCompare(l.item.ref)),a=[],s=new Set,c=[];for(let d of o)s.has(d.item.ref)?c.push({ref:d.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(d.item.ref),a.push(d));return{entries:a,diagnostics:[...n.diagnostics,...i.flatMap(d=>d.diagnostics),...c].sort((d,l)=>d.ref.localeCompare(l.ref))}}async function Ya(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await Dd(e.roots),n=new Map;for(let{item:a}of r.entries){if(e.kind!==void 0&&a.kind!==e.kind)continue;let s=[a.id,a.version,a.title,a.summary,a.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${a.kind}:${a.id}`,d=n.get(c);(d===void 0||HP(d.version,a.version)<0)&&n.set(c,a)}let i=[...n.values()].sort((a,s)=>a.ref.localeCompare(s.ref)),o=e.limit??50;return{query:t,total:i.length,items:i.slice(0,o),diagnostics:r.diagnostics}}async function Ha(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:o})=>o.ref===t),i=r.diagnostics.find(o=>o.ref===t);if(i?.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&&i!==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 tN(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let i=n;if(typeof i.capabilityId!="string"||typeof i.version!="string"||!Array.isArray(i.integration?.packages))continue;let o=`capability:${i.capabilityId}@${i.version}`;for(let a of i.integration.packages){if(typeof a!="object"||a===null)continue;let s=a;if(typeof s.packageName!="string"||typeof s.version!="string")continue;let c=`${s.packageName}@${s.version}`,d=t.get(c)??new Set;d.add(o),t.set(c,d)}}return t}async function zy(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=tN(r.entries),i=r.entries.filter(({item:a})=>a.kind==="package").map(({release:a})=>{let s=a;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((a,s)=>By(a.ref,s.ref)),o={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(i)};return Object.freeze({...o,sourceDigest:h(Wa(o))})}function Gy(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||h(Wa(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
49
+ `}var eo={"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"},Yy=iN(rN),oN=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"]),Hy=(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,Za={"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 Zy(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Xa(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new de("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let i=await oe(N.join(e,"package.json")),o=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:a}=await import("./optional-runtime.js"),s=await Jt(e),c=await oe(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 de("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new de("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=xi({release:t.release,packageJson:n??i}),m=new Date,u=new Date(m.getTime()+1800*1e3).toISOString(),f=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:p,currentLockfile:c,sources:t.release.packageSources,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:m.toISOString(),expiresAt:u});return{...o,lockResolution:{lockfile:f.evidence.desiredLockfile,packages:f.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:y,version:w,integrity:A})=>({registryId:g,packageName:y,version:w,integrity:A}))},resolutionEvidence:f.evidence,resolutionWorkerReleaseId:f.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:f.preservedImporterDigests}}let d=ed({release:t.release,packageJson:n??i}),l=await a({desiredPackageJson:d,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:o.registryConfigs,endpointBindings:o.endpointBindings});return{...o,lockResolution:l,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function Xy(e,t,r,n){let i=r.capabilities.find(b=>b.capabilityId===t.release.capabilityId&&b.version===t.release.version);if(i&&!i.packageAdoption){let b=JSON.parse(await oe(N.join(e,"project-capabilities.json"),"utf8")),R=new Date;return iy({projectRoot:e,manifest:b,release:t,currentLock:r,generatedAt:R.toISOString(),expiresAt:new Date(R.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new de("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!i?.packageAdoption)throw new de("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let o=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),a=await oe(N.join(e,"package.json")),s=await oe(N.join(e,"project-capabilities.json")),c=await Jt(e),d=await oe(N.join(c.transactionRoot,c.lockfilePath)),l=new Set(r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources.map(R=>R.packageName)??[])),p=i.packageAdoption.sources.filter(b=>!l.has(b.packageName)),m=c.mode==="pnpm-shared-lockfile"?rd({packageJson:a,remove:p}):td({packageJson:a,remove:p}),u=r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources??[]),f=new Date,g=new Date(f.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new de("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:m,currentLockfile:d,sources:u,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:f.toISOString(),expiresAt:g}),R=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...i.assets.map(_=>`${c.unitRelativeRoot}/${_.path}`)],I=await Promise.all(R.map(async _=>oe(N.join(c.transactionRoot,..._.split("/"))).then(O=>({path:_,exists:!0,digest:h(O)})).catch(O=>O.code==="ENOENT"?{path:_,exists:!1}:Promise.reject(O))));return{...dg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:d,endpointBindings:o.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:b.preservedImporterDigests,resolutionEvidence:b.evidence,resolutionWorkerReleaseId:b.workerReleaseId,remainingSources:u,generatedAt:f.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}let{resolvePnpmLock:y}=await import("./optional-runtime.js"),w=await y({desiredPackageJson:m,currentLockfile:d,sources:u,registrySources:[...u,...i.packageAdoption.sources],registries:o.registryConfigs,endpointBindings:o.endpointBindings}),A=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...i.assets.map(b=>b.path)].map(async b=>oe(N.join(e,...b.split("/"))).then(R=>({path:b,exists:!0,digest:h(R)})).catch(R=>R.code==="ENOENT"?{path:b,exists:!1}:Promise.reject(R))));return{...lg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:d,desiredLockfile:w.lockfile,endpointBindings:o.endpointBindings,observedAssets:A,generatedAt:f.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}function B(e){return e.includes("--json")?"json":"human"}function v(e){throw new j({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Te(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?v("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function Qa(e,t){return oN.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function aN(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?v("The selected example recipe identity or version is invalid."):N.resolve(import.meta.dirname,"recipes",e,t)}function te(e){let t=N.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${N.sep}`)?t:N.basename(e)}async function es(e){let t=JSON.parse(await oe(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return v("Project manifest must select one capability.");let n=await Re(Te(r.capabilityId,r.version)),i=await Ue(e).catch(()=>null),o=new Date,s=await(t.profile?.id==="standalone-npm-package"?Oi:t.profile?.id==="react-component-library"?Si:t.profile?.id==="nextjs-full-stack-application"?Sn:t.profile?.id==="workspace-npm-package"?Di:t.profile?.id==="workspace-node-application"?ji:t.profile?.id==="workspace-web-application"?Ci:t.profile?.id==="workspace-expo-application"?$i:ea)({projectRoot:e,manifest:t,release:n,...i===null?{}:{currentLock:i},generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+1800*1e3).toISOString()});return Gt({projectRoot:e,plan:s.plan,now:o.toISOString()})}async function Qy(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 v("Create arguments are invalid.")}if(t.positionals.length!==1)return v("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,y]=r.split("@");n=await Hi(Qa(g,y))}let i=n?.profile.id??t.values.profile;if(i!=="typescript-library"&&i!=="standalone-npm-package"&&i!=="react-component-library"&&i!=="nextjs-full-stack-application"&&i!=="workspace-root")return v("Create requires a supported --profile.");let o=t.values.capability,a=i==="workspace-root"&&o==="foundation.workspace-root@1.0.0"||i==="standalone-npm-package"&&o==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(a?o:eo[i]);if(n!==void 0&&s.split("@")[0]!==eo[i].split("@")[0])return v(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&o!==s)return v(`Create requires --capability ${s}.`);if(n!==void 0&&o!==void 0)return v("Create with --template does not accept --capability.");let[c,d]=s.split("@"),l={};if(i==="standalone-npm-package"||i==="react-component-library"){let g=t.values.name,y=t.values.version,w=t.values.license,A=t.values["publish-access"],b=t.values.repository;if([g,y,w,A].some(R=>typeof R!="string")||d==="1.1.0"&&typeof b!="string")return v(`Standalone npm package requires --name, --version, --license, --publish-access${d==="1.1.0"?", and --repository":""}.`);l={name:String(g),version:String(y),license:String(w),publishAccess:String(A),...typeof b=="string"?{repository:b}:{}}}else if(i==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return v("Next.js application requires --name.");l={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:i,parameters:l},capabilities:[{capabilityId:c,version:d}]};(i==="standalone-npm-package"||i==="react-component-library")&&mr(W(p),i),i==="nextjs-full-stack-application"&&qr(W(p));let m=await ga({projectRoot:t.positionals[0],manifest:p}),u=await es(m.projectRoot),f=te(m.projectRoot);return{outputMode:B(e),human:`Project '${f}' initialized.
50
50
  Plan: ${u.planId}
51
51
  State: ${u.state}
52
- Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:i,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function iN(e){let[t,...r]=e,n;try{n=de({args:r,allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},profile:{type:"string"},capability:{type:"string"},"documentation-only":{type:"boolean"}}})}catch{return v("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return v("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return v("Retrofit requires --project <directory>.");if(n.values.capability!==void 0&&typeof n.values.capability!="string")return v("Retrofit --capability is invalid.");if(n.values.profile!==void 0&&typeof n.values.profile!="string")return v("Retrofit --profile is invalid.");let i=n.values.capability??"foundation.workspace-root@1.2.0",o=/^([a-z][a-z0-9.-]*)@([0-9A-Za-z.-]+)$/u.exec(i);if(!o)return v("Retrofit --capability is invalid.");let a=await Re(Te(o[1],o[2])),s=n.values.profile??"workspace-root";if(a.release.consumerProfile!==s)return v("Retrofit profile and capability are incompatible.");let c=new Date,l=s==="workspace-root"?await Lm({projectRoot:n.values.project,capabilityIntegrity:a.release.integrity,generatedAt:c.toISOString(),expiresAt:new Date(c.getTime()+1800*1e3).toISOString(),...n.values["documentation-only"]===!0?{documentationOnly:!0}:{}}):await Tm({projectRoot:n.values.project,manifest:{schemaVersion:1,profile:{id:s,parameters:{}},capabilities:[{capabilityId:o[1],version:o[2]}]},capabilityIntegrity:a.release.integrity,generatedAt:c.toISOString(),expiresAt:new Date(c.getTime()+1800*1e3).toISOString()}),d=ee(l.projectRoot);if(t==="plan"){if(n.values.approve!==void 0)return v("Retrofit plan does not accept --approve.");let m=await Bt({projectRoot:l.projectRoot,plan:l.plan,now:c.toISOString()});return{outputMode:B(e),human:`Project: ${d}
53
- Plan: ${m.planId}
54
- State: ${m.state}
52
+ Next: dyyto apply --project ${f} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:f,profile:i,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function sN(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"},profile:{type:"string"},capability:{type:"string"},"documentation-only":{type:"boolean"}}})}catch{return v("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return v("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return v("Retrofit requires --project <directory>.");if(n.values.capability!==void 0&&typeof n.values.capability!="string")return v("Retrofit --capability is invalid.");if(n.values.profile!==void 0&&typeof n.values.profile!="string")return v("Retrofit --profile is invalid.");let i=n.values.capability??"foundation.workspace-root@1.2.0",o=/^([a-z][a-z0-9.-]*)@([0-9A-Za-z.-]+)$/u.exec(i);if(!o)return v("Retrofit --capability is invalid.");let a=await Re(Te(o[1],o[2])),s=n.values.profile??"workspace-root";if(a.release.consumerProfile!==s)return v("Retrofit profile and capability are incompatible.");let c=new Date,d=s==="workspace-root"?await Vm({projectRoot:n.values.project,capabilityIntegrity:a.release.integrity,generatedAt:c.toISOString(),expiresAt:new Date(c.getTime()+1800*1e3).toISOString(),...n.values["documentation-only"]===!0?{documentationOnly:!0}:{}}):await xm({projectRoot:n.values.project,manifest:{schemaVersion:1,profile:{id:s,parameters:{}},capabilities:[{capabilityId:o[1],version:o[2]}]},capabilityIntegrity:a.release.integrity,generatedAt:c.toISOString(),expiresAt:new Date(c.getTime()+1800*1e3).toISOString()}),l=te(d.projectRoot);if(t==="plan"){if(n.values.approve!==void 0)return v("Retrofit plan does not accept --approve.");let f=await Gt({projectRoot:d.projectRoot,plan:d.plan,now:c.toISOString()});return{outputMode:B(e),human:`Project: ${l}
53
+ Plan: ${f.planId}
54
+ State: ${f.state}
55
55
  Files: project-capabilities.json
56
- Next: dyyto retrofit apply --project ${d} --approve ${m.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:d,plan:m}}}}if(typeof n.values.approve!="string")return v("Retrofit apply requires --approve <planId>.");let p=await Mr({projectRoot:l.projectRoot,planId:n.values.approve}),f=await lr({projectRoot:l.projectRoot,plan:p,approvedPlanId:n.values.approve,desiredContents:l.desiredContents,now:c.toISOString()}),u=await dr(f);return{outputMode:B(e),human:`Project: ${d}
56
+ Next: dyyto retrofit apply --project ${l} --approve ${f.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:l,plan:f}}}}if(typeof n.values.approve!="string")return v("Retrofit apply requires --approve <planId>.");let p=await Fr({projectRoot:d.projectRoot,planId:n.values.approve}),m=await dr({projectRoot:d.projectRoot,plan:p,approvedPlanId:n.values.approve,desiredContents:d.desiredContents,now:c.toISOString()}),u=await pr(m);return{outputMode:B(e),human:`Project: ${l}
57
57
  Plan: ${p.planId}
58
58
  State: ${u.state}
59
- Files applied: ${u.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:d,planId:p.planId,transaction:u}}}}async function oN(e,t){let r;try{r=de({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return v(`${e} requires --project.`);let n=await Pt(N.resolve(r.values.project)),i=W(JSON.parse(await ie(N.join(n,"project-capabilities.json"),"utf8")));if(i.template===void 0)return v("The project does not declare an engineering template.");let o=await Ki(Za(i.template.id,i.template.version)),a=o.commands[e];if(a===void 0)return v(`Template ${o.templateId} does not support ${e}.`);let s=a==="npm.pack-dry-run"?["pnpm","pack","--dry-run"]:["pnpm","run",a],c=Date.now();if(e==="dev"){if(await new Promise((u,m)=>{let g=eN("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},stdio:"inherit"}),y=()=>g.kill("SIGINT"),w=()=>g.kill("SIGTERM");process.once("SIGINT",y),process.once("SIGTERM",w),g.once("error",m),g.once("close",A=>{process.off("SIGINT",y),process.off("SIGTERM",w),u(A??1)})})!==0)throw new j({code:"CLI_INTERNAL_ERROR",message:"The development server stopped with an error.",exitCode:1});let f={template:`${o.templateId}@${o.version}`,command:a,durationMs:Date.now()-c,stdout:""};return{outputMode:B(t),human:`dev completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:f}}}let l=await Wy("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),d={template:`${o.templateId}@${o.version}`,command:a,durationMs:Date.now()-c,stdout:l.stdout.trim()};return{outputMode:B(t),human:`${e} completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:d}}}async function aN(e){let t;try{t=de({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 v("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(A=>typeof A!="string"))return v("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 v("Add package requires a supported --profile.");let i=n==="react-component-library"?Zi["workspace-react-component-library"]:Zi["workspace-npm-package"];if(t.values.capability!==i)return v(`Add package requires --capability ${i}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return v("Add package --kind only accepts fixture.");let o=t.values.kind==="fixture"?"fixture":"package",a=String(t.values.path),s=ip(a,o);if(s!==void 0)return v(s);let c=await Pt(N.resolve(String(t.values.workspace))),l=JSON.parse(await ie(N.join(c,"project-capabilities.json"),"utf8"));if(l.profile?.id!=="workspace-root")return v("The selected directory is not a Dyyto workspace root.");let d=l.capabilities?.[0];if(d?.capabilityId!=="foundation.workspace-root")return v("Workspace root capability is invalid.");let p=await Fe(c);if(p===null){let A=await Re(Te(d.capabilityId,d.version)),b=new Date;if((await Xo({projectRoot:c,release:A,generatedAt:b.toISOString(),expiresAt:new Date(b.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding a package.")}if(p!==null){try{await Tr({projectRoot:c,expectedAssets:Yy(p)})}catch{return v("Workspace root locked assets have drifted; adding a package is blocked.")}if((await Gi({projectRoot:c,lock:p})).some(b=>b.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding a package is blocked.")}if(await ap(c,o==="fixture"?"fixtures":"packages",String(t.values.name)))return v("A workspace package already uses this npm name.");let[f,u]=i.split("@"),m={schemaVersion:1,...Ha[n]===void 0?{}:{template:Ha[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}]};fr(W(m),n);let g=await fa({projectRoot:N.join(c,...a.split("/")),manifest:m}),y=await Qa(g.projectRoot),w=ee(g.projectRoot);return{outputMode:B(e),human:`Workspace package '${a}' initialized.
59
+ Files applied: ${u.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:l,planId:p.planId,transaction:u}}}}async function cN(e,t){let r;try{r=pe({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return v(`${e} requires --project.`);let n=await Pt(N.resolve(r.values.project)),i=W(JSON.parse(await oe(N.join(n,"project-capabilities.json"),"utf8")));if(i.template===void 0)return v("The project does not declare an engineering template.");let o=await Hi(Qa(i.template.id,i.template.version)),a=o.commands[e];if(a===void 0)return v(`Template ${o.templateId} does not support ${e}.`);let s=a==="npm.pack-dry-run"?["pnpm","pack","--dry-run"]:["pnpm","run",a],c=Date.now();if(e==="dev"){if(await new Promise((u,f)=>{let g=nN("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},stdio:"inherit"}),y=()=>g.kill("SIGINT"),w=()=>g.kill("SIGTERM");process.once("SIGINT",y),process.once("SIGTERM",w),g.once("error",f),g.once("close",A=>{process.off("SIGINT",y),process.off("SIGTERM",w),u(A??1)})})!==0)throw new j({code:"CLI_INTERNAL_ERROR",message:"The development server stopped with an error.",exitCode:1});let m={template:`${o.templateId}@${o.version}`,command:a,durationMs:Date.now()-c,stdout:""};return{outputMode:B(t),human:`dev completed for '${te(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:m}}}let d=await Yy("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),l={template:`${o.templateId}@${o.version}`,command:a,durationMs:Date.now()-c,stdout:d.stdout.trim()};return{outputMode:B(t),human:`${e} completed for '${te(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:l}}}async function lN(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 v("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(A=>typeof A!="string"))return v("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 v("Add package requires a supported --profile.");let i=n==="react-component-library"?eo["workspace-react-component-library"]:eo["workspace-npm-package"];if(t.values.capability!==i)return v(`Add package requires --capability ${i}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return v("Add package --kind only accepts fixture.");let o=t.values.kind==="fixture"?"fixture":"package",a=String(t.values.path),s=ap(a,o);if(s!==void 0)return v(s);let c=await Pt(N.resolve(String(t.values.workspace))),d=JSON.parse(await oe(N.join(c,"project-capabilities.json"),"utf8"));if(d.profile?.id!=="workspace-root")return v("The selected directory is not a Dyyto workspace root.");let l=d.capabilities?.[0];if(l?.capabilityId!=="foundation.workspace-root")return v("Workspace root capability is invalid.");let p=await Ue(c);if(p===null){let A=await Re(Te(l.capabilityId,l.version)),b=new Date;if((await Qo({projectRoot:c,release:A,generatedAt:b.toISOString(),expiresAt:new Date(b.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding a package.")}if(p!==null){try{await Lr({projectRoot:c,expectedAssets:Zy(p)})}catch{return v("Workspace root locked assets have drifted; adding a package is blocked.")}if((await Wi({projectRoot:c,lock:p})).some(b=>b.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding a package is blocked.")}if(await cp(c,o==="fixture"?"fixtures":"packages",String(t.values.name)))return v("A workspace package already uses this npm name.");let[m,u]=i.split("@"),f={schemaVersion:1,...Za[n]===void 0?{}:{template:Za[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:m,version:u}]};mr(W(f),n);let g=await ga({projectRoot:N.join(c,...a.split("/")),manifest:f}),y=await es(g.projectRoot),w=te(g.projectRoot);return{outputMode:B(e),human:`Workspace package '${a}' initialized.
60
60
  Plan: ${y.planId}
61
61
  State: ${y.state}
62
- Next: dyyto apply --project ${w} --approve ${y.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:ee(c),path:a,plan:y}}}}async function sN(e){let t;try{t=de({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 v("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(w=>typeof w!="string"))return v("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 v("Add application requires a supported --profile.");let n=r,i=Zi[n],o=String(t.values.path),a=op(o,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(a!==void 0)return v(a);let s=await Pt(N.resolve(String(t.values.workspace))),c=JSON.parse(await ie(N.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return v("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 v("Workspace applications require a supported foundation.workspace-root release.");if(o.startsWith("services/")&&!["1.3.0","1.4.0","1.5.0"].includes(l.version))return v("Workspace service applications require foundation.workspace-root@1.3.0 or newer.");let d=await Fe(s);if(d===null){let w=await Re(Te(l.capabilityId,l.version)),A=new Date;if((await Xo({projectRoot:s,release:w,generatedAt:A.toISOString(),expiresAt:new Date(A.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding an application.")}if(d!==null){try{await Tr({projectRoot:s,expectedAssets:Yy(d)})}catch{return v("Workspace root locked assets have drifted; adding an application is blocked.")}if((await Gi({projectRoot:s,lock:d})).some(A=>A.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await sp(s,String(t.values.name)))return v("A workspace application already uses this name.");let[p,f]=i.split("@"),u={schemaVersion:1,...Ha[n]===void 0?{}:{template:Ha[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:p,version:f}]};Ur(W(u));let m=await fa({projectRoot:N.join(s,...o.split("/")),manifest:u}),g=await Qa(m.projectRoot),y=ee(m.projectRoot);return{outputMode:B(e),human:`Workspace application '${o}' initialized.
62
+ Next: dyyto apply --project ${w} --approve ${y.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:te(c),path:a,plan:y}}}}async function dN(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 v("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(w=>typeof w!="string"))return v("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 v("Add application requires a supported --profile.");let n=r,i=eo[n],o=String(t.values.path),a=sp(o,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(a!==void 0)return v(a);let s=await Pt(N.resolve(String(t.values.workspace))),c=JSON.parse(await oe(N.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return v("The selected directory is not a Dyyto workspace root.");let d=c.capabilities?.[0];if(d?.capabilityId!=="foundation.workspace-root"||!["1.1.0","1.2.0","1.3.0","1.4.0","1.5.0"].includes(d.version))return v("Workspace applications require a supported foundation.workspace-root release.");if(o.startsWith("services/")&&!["1.3.0","1.4.0","1.5.0"].includes(d.version))return v("Workspace service applications require foundation.workspace-root@1.3.0 or newer.");let l=await Ue(s);if(l===null){let w=await Re(Te(d.capabilityId,d.version)),A=new Date;if((await Qo({projectRoot:s,release:w,generatedAt:A.toISOString(),expiresAt:new Date(A.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding an application.")}if(l!==null){try{await Lr({projectRoot:s,expectedAssets:Zy(l)})}catch{return v("Workspace root locked assets have drifted; adding an application is blocked.")}if((await Wi({projectRoot:s,lock:l})).some(A=>A.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await lp(s,String(t.values.name)))return v("A workspace application already uses this name.");let[p,m]=i.split("@"),u={schemaVersion:1,...Za[n]===void 0?{}:{template:Za[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:p,version:m}]};qr(W(u));let f=await ga({projectRoot:N.join(s,...o.split("/")),manifest:u}),g=await es(f.projectRoot),y=te(f.projectRoot);return{outputMode:B(e),human:`Workspace application '${o}' initialized.
63
63
  Plan: ${g.planId}
64
64
  State: ${g.state}
65
- Next: dyyto apply --project ${y} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:y,workspace:ee(s),path:o,plan:g}}}}async function Zy(e,t){let r;try{r=de({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 v("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=await Pt(N.resolve(r.values.project)),i=JSON.parse(await ie(N.join(n,"project-capabilities.json"),"utf8")),o=await Fe(n);if(o===null)return v("Add feature requires an adopted project with a verified Profile Lock.");let[a,s]=es(r.values.capability),c=await Re(Te(a,s)),l=new Date,d;try{let u=await Xa(n,c,t);d=await yd({projectRoot:n,manifest:i,release:c,currentLock:o,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 le?new j({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let p=await Bt({projectRoot:n,plan:d.plan,now:l.toISOString(),transactionRoot:d.transactionRoot}),f=ee(n);return{outputMode:B(e),human:`Project: ${f}
65
+ Next: dyyto apply --project ${y} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:y,workspace:te(s),path:o,plan:g}}}}async function eh(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 v("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=await Pt(N.resolve(r.values.project)),i=JSON.parse(await oe(N.join(n,"project-capabilities.json"),"utf8")),o=await Ue(n);if(o===null)return v("Add feature requires an adopted project with a verified Profile Lock.");let[a,s]=ts(r.values.capability),c=await Re(Te(a,s)),d=new Date,l;try{let u=await Xa(n,c,t);l=await hd({projectRoot:n,manifest:i,release:c,currentLock:o,generatedAt:d.toISOString(),expiresAt:new Date(d.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...u===void 0?{}:{packageSource:u}})}catch(u){throw u instanceof de?new j({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let p=await Gt({projectRoot:n,plan:l.plan,now:d.toISOString(),transactionRoot:l.transactionRoot}),m=te(n);return{outputMode:B(e),human:`Project: ${m}
66
66
  Feature: ${a}@${s}
67
- Dependency: ${d.dependency.profile} satisfied
67
+ Dependency: ${l.dependency.profile} satisfied
68
68
  Plan: ${p.planId}
69
69
  State: ${p.state}
70
- 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 cN(e,t){let r;try{r=de({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 v("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Remove feature requires --project and --capability.");let n=await Pt(N.resolve(r.values.project)),i=await Fe(n);if(i===null)return v("Remove feature requires a verified Lock.");let[o,a]=es(r.values.capability),s=await Re(Te(o,a)),c=await Hy(n,s,i,t),l=await Bt({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),d=ee(n);return{outputMode:B(e),human:`Project: ${d}
70
+ Next: dyyto apply --project ${m} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:m,capability:r.values.capability,dependency:l.dependency,plan:p}}}}async function pN(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 v("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Remove feature requires --project and --capability.");let n=await Pt(N.resolve(r.values.project)),i=await Ue(n);if(i===null)return v("Remove feature requires a verified Lock.");let[o,a]=ts(r.values.capability),s=await Re(Te(o,a)),c=await Xy(n,s,i,t),d=await Gt({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),l=te(n);return{outputMode:B(e),human:`Project: ${l}
71
71
  \u79FB\u9664\u80FD\u529B\uFF1A${o}@${a}
72
72
  \u72EC\u5360\u5305\uFF1A${c.removedSources.map(p=>`${p.packageName}@${p.version}`).join("\u3001")||"\u65E0\uFF08\u5171\u4EAB\u5305\u5C06\u4FDD\u7559\uFF09"}
73
- Plan: ${l.planId}
74
- State: ${l.state}
75
- 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 lN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v("Plan arguments are invalid.")}if(typeof t.values.project!="string")return v("Plan requires --project <directory>.");let r=N.resolve(t.values.project),n=await Qa(r),i=ee(r),o=n.state==="reviewable"?`Next: dyyto apply --project ${i} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:B(e),human:`Project: ${i}
73
+ Plan: ${d.planId}
74
+ State: ${d.state}
75
+ Next: dyyto apply --project ${l} --approve ${d.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:l,capability:r.values.capability,removedSources:c.removedSources,plan:d}}}}async function uN(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v("Plan arguments are invalid.")}if(typeof t.values.project!="string")return v("Plan requires --project <directory>.");let r=N.resolve(t.values.project),n=await es(r),i=te(r),o=n.state==="reviewable"?`Next: dyyto apply --project ${i} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:B(e),human:`Project: ${i}
76
76
  Plan: ${n.planId}
77
77
  State: ${n.state}
78
- ${o}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:i,plan:n}}}}function es(e){let t=e.lastIndexOf("@");return t<=0||t===e.length-1?v("Capability selection must be capabilityId@version."):[e.slice(0,t),e.slice(t+1)]}async function dN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return v("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return v("Baseline requires --project and --capability.");let r=N.resolve(t.values.project);if(await Fe(r)!==null)return v("Baseline is only for a historical project without a Lock.");let[n,i]=es(t.values.capability),o=await Re(Te(n,i)),a=JSON.parse(await ie(N.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await Jl({projectRoot:r,manifest:a,release:o,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),l=await Bt({projectRoot:r,plan:c.plan,now:s.toISOString()}),d=ee(r);return{outputMode:B(e),human:`Project: ${d}
78
+ ${o}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:i,plan:n}}}}function ts(e){let t=e.lastIndexOf("@");return t<=0||t===e.length-1?v("Capability selection must be capabilityId@version."):[e.slice(0,t),e.slice(t+1)]}async function fN(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return v("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return v("Baseline requires --project and --capability.");let r=N.resolve(t.values.project);if(await Ue(r)!==null)return v("Baseline is only for a historical project without a Lock.");let[n,i]=ts(t.values.capability),o=await Re(Te(n,i)),a=JSON.parse(await oe(N.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await Wl({projectRoot:r,manifest:a,release:o,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),d=await Gt({projectRoot:r,plan:c.plan,now:s.toISOString()}),l=te(r);return{outputMode:B(e),human:`Project: ${l}
79
79
  Baseline: ${n}@${i}
80
- Plan: ${l.planId}
81
- State: ${l.state}
82
- Preserved seed files: ${l.operations.filter(p=>p.ownership==="seed-file"&&p.disposition==="noop").length}
83
- Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function pN(e,t){let r;try{r=de({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 v("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return v("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=N.resolve(r.values.project),i=JSON.parse(await ie(N.join(n,"project-capabilities.json"),"utf8")),[o,a]=es(r.values.to),s=i.capabilities?.find(_=>_.capabilityId===o);if(s===void 0)return v(`Upgrade requires ${o} to be adopted by the project.`);let c=await Fe(n);if(c===null)return v("Upgrade requires an adopted project with a verified Lock.");let l=(i.profile.id==="standalone-npm-package"||i.profile.id==="workspace-npm-package")&&a==="1.1.0";if(l){if(typeof r.values.repository!="string")return v("npm package upgrade to 1.1.0 requires --repository.");i={...i,profile:{...i.profile,parameters:{...i.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is only valid for an npm package upgrade to 1.1.0.");let d=await Re(Te(s.capabilityId,s.version)),p=await Re(Te(o,a)),f={...i,capabilities:i.capabilities.map(_=>_.capabilityId===o?{capabilityId:o,version:a}:_)},u=p.release.schemaVersion===2&&p.release.availability.maturity!=="withdrawn"&&p.release.packageSources.length>0,m=u?ja(f,p):void 0,g=u?await Xa(n,p,t,m):void 0,y=Ky(o,a),w=new Date,A=await id({projectRoot:n,manifest:i,currentLock:c,sourceRelease:d,targetRelease:p,...y===void 0?{}:{targetTemplate:y},generatedAt:w.toISOString(),expiresAt:new Date(w.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}}),b=await Bt({projectRoot:n,plan:A.plan,now:w.toISOString(),transactionRoot:A.transactionRoot}),R=ee(n),I=b.state==="reviewable"?`Next: dyyto apply --project ${R} --approve ${b.planId}${l?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:B(e),human:`Project: ${R}
80
+ Plan: ${d.planId}
81
+ State: ${d.state}
82
+ Preserved seed files: ${d.operations.filter(p=>p.ownership==="seed-file"&&p.disposition==="noop").length}
83
+ Next: dyyto apply --project ${l} --approve ${d.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:l,plan:d}}}}async function mN(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 v("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return v("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=N.resolve(r.values.project),i=JSON.parse(await oe(N.join(n,"project-capabilities.json"),"utf8")),[o,a]=ts(r.values.to),s=i.capabilities?.find(_=>_.capabilityId===o);if(s===void 0)return v(`Upgrade requires ${o} to be adopted by the project.`);let c=await Ue(n);if(c===null)return v("Upgrade requires an adopted project with a verified Lock.");let d=(i.profile.id==="standalone-npm-package"||i.profile.id==="workspace-npm-package")&&a==="1.1.0";if(d){if(typeof r.values.repository!="string")return v("npm package upgrade to 1.1.0 requires --repository.");i={...i,profile:{...i.profile,parameters:{...i.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is only valid for an npm package upgrade to 1.1.0.");let l=await Re(Te(s.capabilityId,s.version)),p=await Re(Te(o,a)),m={...i,capabilities:i.capabilities.map(_=>_.capabilityId===o?{capabilityId:o,version:a}:_)},u=p.release.schemaVersion===2&&p.release.availability.maturity!=="withdrawn"&&p.release.packageSources.length>0,f=u?Ca(m,p):void 0,g=u?await Xa(n,p,t,f):void 0,y=Hy(o,a),w=new Date,A=await od({projectRoot:n,manifest:i,currentLock:c,sourceRelease:l,targetRelease:p,...y===void 0?{}:{targetTemplate:y},generatedAt:w.toISOString(),expiresAt:new Date(w.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}}),b=await Gt({projectRoot:n,plan:A.plan,now:w.toISOString(),transactionRoot:A.transactionRoot}),R=te(n),I=b.state==="reviewable"?`Next: dyyto apply --project ${R} --approve ${b.planId}${d?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:B(e),human:`Project: ${R}
84
84
  Upgrade: ${s.version} -> ${a}
85
85
  Plan: ${b.planId}
86
86
  State: ${b.state}
87
- ${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:R,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:b}}}}async function Dd(e,t){let r;try{r=de({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 v("Apply arguments are invalid.")}if(typeof r.values.project!="string")return v("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return v("Apply requires --approve <planId>.");let n=N.resolve(r.values.project),i=JSON.parse(await ie(N.join(n,"project-capabilities.json"),"utf8")),o=i.capabilities?.[0];if(o===void 0)return v("Project manifest must select one capability.");let a=await Mr({projectRoot:n,planId:r.values.approve}),s=new Date,c,l,d;if(a.action==="remove"){let u=await Fe(n);if(u===null)return v("Remove apply requires the verified Lock.");let m=await Hy(n,await Re(Te(a.capability.capabilityId,a.capability.version)),u,t);c=m,l="registryConfigs"in m?m.registryConfigs:void 0,d="endpointBindings"in m?m.endpointBindings:void 0}else if(a.action==="upgrade"){let u=await Fe(n),m=u?.capabilities.find(I=>I.capabilityId===a.capability.capabilityId);if(u===null||m===void 0)return v("Upgrade apply requires the verified source Lock.");if((m.consumerProfile==="standalone-npm-package"||m.consumerProfile==="workspace-npm-package")&&a.capability.version==="1.1.0"){if(typeof r.values.repository!="string")return v("npm package upgrade apply requires the approved --repository value.");i={...i,profile:{...i.profile,parameters:{...i.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is not valid for this apply operation.");let g=await Re(Te(a.capability.capabilityId,a.capability.version)),y={...i,capabilities:i.capabilities.map(I=>I.capabilityId===a.capability.capabilityId?{capabilityId:a.capability.capabilityId,version:a.capability.version}:I)},w=g.release.schemaVersion===2&&g.release.availability.maturity!=="withdrawn"&&g.release.packageSources.length>0,A=w?ja(y,g):void 0,b=w?await Xa(n,g,t,A):void 0;l=b?.registryConfigs,d=b?.endpointBindings;let R=Ky(a.capability.capabilityId,a.capability.version);c=await id({projectRoot:n,manifest:i,currentLock:u,sourceRelease:await Re(Te(m.capabilityId,m.version)),targetRelease:g,...R===void 0?{}:{targetTemplate:R},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...a.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...b===void 0?{}:{packageSource:b}})}else if(a.action==="adopt"&&i.profile?.id==="nextjs-full-stack-application"&&i.capabilities?.[0]?.capabilityId===a.capability.capabilityId&&i.capabilities?.[0]?.version!==a.capability.version)c=await Jl({projectRoot:n,manifest:i,release:await Re(Te(a.capability.capabilityId,a.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(i.capabilities?.some(u=>u.capabilityId===a.capability.capabilityId&&u.version===a.capability.version)){let u=await Re(Te(o.capabilityId,o.version)),m=await Fe(n).catch(()=>null);c=await(i.profile?.id==="standalone-npm-package"?Oi:i.profile?.id==="react-component-library"?Si:i.profile?.id==="nextjs-full-stack-application"?Sn:i.profile?.id==="workspace-npm-package"?Di:i.profile?.id==="workspace-node-application"?ji:i.profile?.id==="workspace-web-application"?Ci:i.profile?.id==="workspace-expo-application"?$i:Zo)({projectRoot:n,manifest:i,release:u,...m===null?{}:{currentLock:m},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let u=await Fe(n);if(u===null)return v("Feature apply requires the verified Profile Lock.");let m=await Re(Te(a.capability.capabilityId,a.capability.version)),g=await Xa(n,m,t);l=g?.registryConfigs,d=g?.endpointBindings,c=await yd({projectRoot:n,manifest:i,release:m,currentLock:u,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...a.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}})}let p;if(a.packageAdoption!==void 0){if(l===void 0)throw new le("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 le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");p=await lg({projectRoot:c.transactionRoot??n,plan:a,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 lr({projectRoot:n,plan:a,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});p=await dr(u)}let f=ee(n);return{outputMode:B(e),human:`Project: ${f}
87
+ ${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:R,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:b}}}}async function jd(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 v("Apply arguments are invalid.")}if(typeof r.values.project!="string")return v("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return v("Apply requires --approve <planId>.");let n=N.resolve(r.values.project),i=JSON.parse(await oe(N.join(n,"project-capabilities.json"),"utf8")),o=i.capabilities?.[0];if(o===void 0)return v("Project manifest must select one capability.");let a=await Fr({projectRoot:n,planId:r.values.approve}),s=new Date,c,d,l;if(a.action==="remove"){let u=await Ue(n);if(u===null)return v("Remove apply requires the verified Lock.");let f=await Xy(n,await Re(Te(a.capability.capabilityId,a.capability.version)),u,t);c=f,d="registryConfigs"in f?f.registryConfigs:void 0,l="endpointBindings"in f?f.endpointBindings:void 0}else if(a.action==="upgrade"){let u=await Ue(n),f=u?.capabilities.find(I=>I.capabilityId===a.capability.capabilityId);if(u===null||f===void 0)return v("Upgrade apply requires the verified source Lock.");if((f.consumerProfile==="standalone-npm-package"||f.consumerProfile==="workspace-npm-package")&&a.capability.version==="1.1.0"){if(typeof r.values.repository!="string")return v("npm package upgrade apply requires the approved --repository value.");i={...i,profile:{...i.profile,parameters:{...i.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is not valid for this apply operation.");let g=await Re(Te(a.capability.capabilityId,a.capability.version)),y={...i,capabilities:i.capabilities.map(I=>I.capabilityId===a.capability.capabilityId?{capabilityId:a.capability.capabilityId,version:a.capability.version}:I)},w=g.release.schemaVersion===2&&g.release.availability.maturity!=="withdrawn"&&g.release.packageSources.length>0,A=w?Ca(y,g):void 0,b=w?await Xa(n,g,t,A):void 0;d=b?.registryConfigs,l=b?.endpointBindings;let R=Hy(a.capability.capabilityId,a.capability.version);c=await od({projectRoot:n,manifest:i,currentLock:u,sourceRelease:await Re(Te(f.capabilityId,f.version)),targetRelease:g,...R===void 0?{}:{targetTemplate:R},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...a.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...b===void 0?{}:{packageSource:b}})}else if(a.action==="adopt"&&i.profile?.id==="nextjs-full-stack-application"&&i.capabilities?.[0]?.capabilityId===a.capability.capabilityId&&i.capabilities?.[0]?.version!==a.capability.version)c=await Wl({projectRoot:n,manifest:i,release:await Re(Te(a.capability.capabilityId,a.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(i.capabilities?.some(u=>u.capabilityId===a.capability.capabilityId&&u.version===a.capability.version)){let u=await Re(Te(o.capabilityId,o.version)),f=await Ue(n).catch(()=>null);c=await(i.profile?.id==="standalone-npm-package"?Oi:i.profile?.id==="react-component-library"?Si:i.profile?.id==="nextjs-full-stack-application"?Sn:i.profile?.id==="workspace-npm-package"?Di:i.profile?.id==="workspace-node-application"?ji:i.profile?.id==="workspace-web-application"?Ci:i.profile?.id==="workspace-expo-application"?$i:ea)({projectRoot:n,manifest:i,release:u,...f===null?{}:{currentLock:f},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let u=await Ue(n);if(u===null)return v("Feature apply requires the verified Profile Lock.");let f=await Re(Te(a.capability.capabilityId,a.capability.version)),g=await Xa(n,f,t);d=g?.registryConfigs,l=g?.endpointBindings,c=await hd({projectRoot:n,manifest:i,release:f,currentLock:u,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...a.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}})}let p;if(a.packageAdoption!==void 0){if(d===void 0)throw new de("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires a trusted Package Source Provider");let{createPnpmPackageManagerPort:u}=await import("./optional-runtime.js");if(l===void 0)throw new de("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");p=await pg({projectRoot:c.transactionRoot??n,plan:a,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString(),packageManager:u({registries:d,endpointBindings:l,...t.packageStoreRoot===void 0?{}:{storeRoot:t.packageStoreRoot}})})}else{let u=await dr({projectRoot:n,plan:a,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});p=await pr(u)}let m=te(n);return{outputMode:B(e),human:`Project: ${m}
88
88
  Plan: ${a.planId}
89
89
  State: ${p.state}
90
90
  Files applied: ${p.operations.length}
91
- `+(a.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:a.planId,transaction:p}}}}async function uN(e,t){let r;try{r=de({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 v("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 v("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 v("Scaffold example recipe identifier is invalid.");let i=await ly(nN(n,r.values["recipe-version"])),o=Number(r.values["artifact-port"]),a=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 xy({workspaceRoot:a,output:r.values.output,recipe:i,artifactBundle:s,artifactFallbackBundles:l,artifactPort:o});return{outputMode:B(e),human:`\u793A\u4F8B\uFF1A${i.title}
91
+ `+(a.packageAdoption===void 0?`Next: cd ${m} && corepack pnpm install`:`Next: dyyto verify --project ${m}`),value:{schemaVersion:1,ok:!0,command:"apply",result:{project:m,planId:a.planId,transaction:p}}}}async function gN(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 v("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 v("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 v("Scaffold example recipe identifier is invalid.");let i=await py(aN(n,r.values["recipe-version"])),o=Number(r.values["artifact-port"]),a=r.values["artifact-workspace"],s=r.values["artifact-bundle"],c=r.values["artifact-fallback-bundle"],d=Array.isArray(c)?c.filter(u=>typeof u=="string"):[],l=r.values.approve;if(l===void 0){let u=await My({workspaceRoot:a,output:r.values.output,recipe:i,artifactBundle:s,artifactFallbackBundles:d,artifactPort:o});return{outputMode:B(e),human:`\u793A\u4F8B\uFF1A${i.title}
92
92
  Plan\uFF1A${u.planId}
93
93
  \u72B6\u6001\uFF1A\u7B49\u5F85\u9636\u6BB5\u6279\u51C6
94
- 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 v("Scaffold example --approve must be an exact Plan ID.");let p=["--artifact-workspace",a,"--artifact-bundle",s,...l.flatMap(u=>["--artifact-fallback-bundle",u]),"--artifact-port",String(o)],f;try{f=await Vy({workspaceRoot:a,approvedPlanId:d,recipe:i,execute:async(u,m)=>{if(m.artifactBundle!==s||JSON.stringify(m.artifactFallbackBundles)!==JSON.stringify(l)||m.artifactPort!==o)throw new Error("SCAFFOLD_SOURCE_PLAN_MISMATCH");let g=[],w=(await Xy([u,"--profile","nextjs-full-stack-application","--capability",`${i.rootProfile.capabilityId}@${i.rootProfile.version}`,"--name",i.recipeId])).value.result.plan.planId;await Dd(["--project",u,"--approve",w],t),g.push(w),await Wy("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:u,env:{...process.env,CI:"true",NO_COLOR:"1",pnpm_config_store_dir:N.join(a,".dyyto","resolution-worker","store","shared")},timeout:3e5,maxBuffer:4*1024*1024}),await jd(["--project",u]);for(let A of i.capabilities){let b=`${A.capabilityId}@${A.version}`;try{let I=(await Zy(["--project",u,"--capability",b,"--channel",A.channel,...p],t)).value.result.plan.planId;await Dd(["--project",u,"--approve",I,...p],t),await jd(["--project",u]),g.push(I)}catch(R){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${b}:${R instanceof Error?R.message:"UNKNOWN"}`,{cause:R})}}return g}})}catch(u){let m=u instanceof it&&u.cause instanceof Error?u.cause.message:"SCAFFOLD_APPLY_FAILED";throw new j({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:B(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${N.relative(process.cwd(),f.output)}
95
- Evidence\uFF1A${f.evidenceId}
96
- \u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function Qi(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project <directory>.`):{projectRoot:N.resolve(r.values.project),outputMode:B(e)}}async function jd(e){let{projectRoot:t,outputMode:r}=Qi(e,"Verify"),n=JSON.parse(await ie(N.join(t,"project-capabilities.json"),"utf8")),i=await Fe(t),o=await zt(t).catch(()=>{}),a;try{let y=i?.capabilities.map(A=>A.appliedPlanId)??[],w=i?.capabilities.map(A=>A.capabilityId)??[];try{a=await ma(t,y,t,w)}catch(A){if(!(A instanceof Ie)||A.code!=="PLAN_NOT_FOUND"||o===void 0)throw A;a=await ma(t,y,o.transactionRoot,w)}}catch(y){if(!(y instanceof Ie)||y.code!=="PLAN_NOT_FOUND"||i===null)throw y;let A=(await Cd(["--project",t,"--json"])).value.result,b=await Gi({projectRoot:t,lock:i});if(A.state!=="adopted"||b.some(I=>I.code!=="EVIDENCE_VALID"))throw new j({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 R=ee(t);return{outputMode:r,human:`Project: ${R}
94
+ 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 l!="string")return v("Scaffold example --approve must be an exact Plan ID.");let p=["--artifact-workspace",a,"--artifact-bundle",s,...d.flatMap(u=>["--artifact-fallback-bundle",u]),"--artifact-port",String(o)],m;try{m=await Fy({workspaceRoot:a,approvedPlanId:l,recipe:i,execute:async(u,f)=>{if(f.artifactBundle!==s||JSON.stringify(f.artifactFallbackBundles)!==JSON.stringify(d)||f.artifactPort!==o)throw new Error("SCAFFOLD_SOURCE_PLAN_MISMATCH");let g=[],w=(await Qy([u,"--profile","nextjs-full-stack-application","--capability",`${i.rootProfile.capabilityId}@${i.rootProfile.version}`,"--name",i.recipeId])).value.result.plan.planId;await jd(["--project",u,"--approve",w],t),g.push(w),await Yy("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:u,env:{...process.env,CI:"true",NO_COLOR:"1",pnpm_config_store_dir:N.join(a,".dyyto","resolution-worker","store","shared")},timeout:3e5,maxBuffer:4*1024*1024}),await Cd(["--project",u]);for(let A of i.capabilities){let b=`${A.capabilityId}@${A.version}`;try{let I=(await eh(["--project",u,"--capability",b,"--channel",A.channel,...p],t)).value.result.plan.planId;await jd(["--project",u,"--approve",I,...p],t),await Cd(["--project",u]),g.push(I)}catch(R){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${b}:${R instanceof Error?R.message:"UNKNOWN"}`,{cause:R})}}return g}})}catch(u){let f=u instanceof it&&u.cause instanceof Error?u.cause.message:"SCAFFOLD_APPLY_FAILED";throw new j({code:"SCAFFOLD_APPLY_FAILED",message:`\u793A\u4F8B\u811A\u624B\u67B6\u6267\u884C\u5931\u8D25\uFF1A${f}`,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:B(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${N.relative(process.cwd(),m.output)}
95
+ Evidence\uFF1A${m.evidenceId}
96
+ \u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:m}}}function to(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project <directory>.`):{projectRoot:N.resolve(r.values.project),outputMode:B(e)}}async function Cd(e){let{projectRoot:t,outputMode:r}=to(e,"Verify"),n=JSON.parse(await oe(N.join(t,"project-capabilities.json"),"utf8")),i=await Ue(t),o=await Jt(t).catch(()=>{}),a;try{let y=i?.capabilities.map(A=>A.appliedPlanId)??[],w=i?.capabilities.map(A=>A.capabilityId)??[];try{a=await ya(t,y,t,w)}catch(A){if(!(A instanceof ve)||A.code!=="PLAN_NOT_FOUND"||o===void 0)throw A;a=await ya(t,y,o.transactionRoot,w)}}catch(y){if(!(y instanceof ve)||y.code!=="PLAN_NOT_FOUND"||i===null)throw y;let A=(await $d(["--project",t,"--json"])).value.result,b=await Wi({projectRoot:t,lock:i});if(A.state!=="adopted"||b.some(I=>I.code!=="EVIDENCE_VALID"))throw new j({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 R=te(t);return{outputMode:r,human:`Project: ${R}
97
97
  State: adopted
98
- Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:R,state:"adopted",reused:!0,lock:i}}}}let s=await Re(Te(a.capability.capabilityId,a.capability.version)),c=a.packageAdoption===void 0?void 0:o?.transactionRoot;if(i?.capabilities.some(y=>y.appliedPlanId===a.planId)){let y=ee(t);return{outputMode:r,human:`Project: ${y}
98
+ Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:R,state:"adopted",reused:!0,lock:i}}}}let s=await Re(Te(a.capability.capabilityId,a.capability.version)),c=a.packageAdoption===void 0?void 0:o?.transactionRoot;if(i?.capabilities.some(y=>y.appliedPlanId===a.planId)){let y=te(t);return{outputMode:r,human:`Project: ${y}
99
99
  State: adopted
100
- Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:y,state:"adopted",reused:!0}}}}if(a.action==="remove"){if(i===null)return v("Remove verification requires the previous verified Lock.");let y=i.capabilities.find($=>$.capabilityId===a.capability.capabilityId&&$.version===a.capability.version);if(y===void 0){let $=ee(t);return{outputMode:r,human:`Project: ${$}
100
+ Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:y,state:"adopted",reused:!0}}}}if(a.action==="remove"){if(i===null)return v("Remove verification requires the previous verified Lock.");let y=i.capabilities.find($=>$.capabilityId===a.capability.capabilityId&&$.version===a.capability.version);if(y===void 0){let $=te(t);return{outputMode:r,human:`Project: ${$}
101
101
  State: removed
102
- Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:i}}}}let w=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",A=new Map(a.operations.flatMap($=>$.desiredDigest===void 0||!$.path.startsWith(w)?[]:[[$.path.slice(w.length),$.desiredDigest]])),b=i.capabilities.filter($=>$!==y),R=[...b].filter($=>$.packageAdoption!==void 0).sort(($,P)=>$.committedAt.localeCompare(P.committedAt)).at(-1)?.packageAdoption,I=b.flatMap($=>$.assets).map($=>({...$,digest:A.get($.path)??($.path==="package.json"?R?.packageJsonDigest:void 0)??$.digest})),{executeRemovalVerification:_}=await import("./optional-runtime.js"),S=await _({projectRoot:t,release:s,remainingAssets:I,removedPaths:y.assets.map($=>$.path)}),T=await xl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:S.results,committedAt:new Date().toISOString(),previousLock:i,expectedAssets:I}),ue=ee(t);return{outputMode:r,human:`Project: ${ue}
102
+ Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:i}}}}let w=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",A=new Map(a.operations.flatMap($=>$.desiredDigest===void 0||!$.path.startsWith(w)?[]:[[$.path.slice(w.length),$.desiredDigest]])),b=i.capabilities.filter($=>$!==y),R=[...b].filter($=>$.packageAdoption!==void 0).sort(($,P)=>$.committedAt.localeCompare(P.committedAt)).at(-1)?.packageAdoption,I=b.flatMap($=>$.assets).map($=>({...$,digest:A.get($.path)??($.path==="package.json"?R?.packageJsonDigest:void 0)??$.digest})),{executeRemovalVerification:_}=await import("./optional-runtime.js"),O=await _({projectRoot:t,release:s,remainingAssets:I,removedPaths:y.assets.map($=>$.path)}),T=await Vl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:O.results,committedAt:new Date().toISOString(),previousLock:i,expectedAssets:I}),fe=te(t);return{outputMode:r,human:`Project: ${fe}
103
103
  State: removed
104
- ${S.summaries.map($=>`${$.verifierId}: ${$.result}`).join(`
105
- `)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:ue,state:"removed",verifiers:S.summaries,lock:T}}}}let l=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",d=(s.release.kind==="engineering-feature"?s.release.assets.map(y=>({path:y.path,desiredDigest:y.ownership==="managed-region"?y.digest:a.operations.find(w=>w.path===`${l}${y.path}`)?.desiredDigest,ownership:y.ownership,regionId:y.regionId})):a.action==="upgrade"?s.release.assets.map(y=>({path:y.path,desiredDigest:a.operations.find(w=>w.path===`${l}${y.path}`)?.desiredDigest,ownership:y.ownership,regionId:y.regionId})):a.operations).map(({path:y,desiredDigest:w,ownership:A,regionId:b})=>w===void 0?v("Applied plan is missing a desired asset digest."):{path:y,digest:w,ownership:A==="managed-region"?"managed-region":A==="seed-file"?"seed-file":"owned-file",...b===void 0?{}:{regionId:b}}),{executeVerification:p}=await import("./optional-runtime.js"),f=await p({projectRoot:t,release:s,expectedAssets:d}),u=a.action==="adopt"&&a.operations.every(y=>y.disposition==="noop")&&i?.capabilities.some(y=>y.capabilityId===a.capability.capabilityId)===!0,m=await Ll({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:f.results,committedAt:new Date().toISOString(),expectedAssets:d,...(a.action==="upgrade"||s.release.kind==="engineering-feature"||u)&&i!==null?{previousLock:i}:{}}),g=ee(t);return{outputMode:r,human:`Project: ${g}
104
+ ${O.summaries.map($=>`${$.verifierId}: ${$.result}`).join(`
105
+ `)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:fe,state:"removed",verifiers:O.summaries,lock:T}}}}let d=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",l=(s.release.kind==="engineering-feature"?s.release.assets.map(y=>({path:y.path,desiredDigest:y.ownership==="managed-region"?y.digest:a.operations.find(w=>w.path===`${d}${y.path}`)?.desiredDigest,ownership:y.ownership,regionId:y.regionId})):a.action==="upgrade"?s.release.assets.map(y=>({path:y.path,desiredDigest:a.operations.find(w=>w.path===`${d}${y.path}`)?.desiredDigest,ownership:y.ownership,regionId:y.regionId})):a.operations).map(({path:y,desiredDigest:w,ownership:A,regionId:b})=>w===void 0?v("Applied plan is missing a desired asset digest."):{path:y,digest:w,ownership:A==="managed-region"?"managed-region":A==="seed-file"?"seed-file":"owned-file",...b===void 0?{}:{regionId:b}}),{executeVerification:p}=await import("./optional-runtime.js"),m=await p({projectRoot:t,release:s,expectedAssets:l}),u=a.action==="adopt"&&a.operations.every(y=>y.disposition==="noop")&&i?.capabilities.some(y=>y.capabilityId===a.capability.capabilityId)===!0,f=await xl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:m.results,committedAt:new Date().toISOString(),expectedAssets:l,...(a.action==="upgrade"||s.release.kind==="engineering-feature"||u)&&i!==null?{previousLock:i}:{}}),g=te(t);return{outputMode:r,human:`Project: ${g}
106
106
  State: adopted
107
- `+f.summaries.map(y=>`${y.verifierId}: ${y.result}`).join(`
108
- `),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function Cd(e){let{projectRoot:t,outputMode:r}=Qi(e,"Inspect"),n=await ql(t),i=ee(t);if(n.required)return{outputMode:r,human:`Project: ${i}
107
+ `+m.summaries.map(y=>`${y.verifierId}: ${y.result}`).join(`
108
+ `),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:m.summaries,lock:f}}}}async function $d(e){let{projectRoot:t,outputMode:r}=to(e,"Inspect"),n=await Bl(t),i=te(t);if(n.required)return{outputMode:r,human:`Project: ${i}
109
109
  State: recovery-required
110
110
  Transaction: ${n.kind}
111
- Next: dyyto recover --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"recovery-required",recovery:n}}};let o=JSON.parse(await ie(N.join(t,"project-capabilities.json"),"utf8")),a=o.capabilities?.[0];if(a===void 0)return v("Project manifest must select one capability.");let s=await Re(Te(a.capabilityId,a.version)),c=await Fe(t);try{let R=await ma(t,c?.capabilities.map(I=>I.appliedPlanId)??[],t,c?.capabilities.map(I=>I.capabilityId)??[]);if(R.action==="upgrade"||R.action==="adopt")return{outputMode:r,human:`Project: ${i}
111
+ Next: dyyto recover --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"recovery-required",recovery:n}}};let o=JSON.parse(await oe(N.join(t,"project-capabilities.json"),"utf8")),a=o.capabilities?.[0];if(a===void 0)return v("Project manifest must select one capability.");let s=await Re(Te(a.capabilityId,a.version)),c=await Ue(t);try{let R=await ya(t,c?.capabilities.map(I=>I.appliedPlanId)??[],t,c?.capabilities.map(I=>I.capabilityId)??[]);if(R.action==="upgrade"||R.action==="adopt")return{outputMode:r,human:`Project: ${i}
112
112
  State: applied-unverified
113
113
  Plan: ${R.planId}
114
- Next: dyyto verify --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"applied-unverified",operations:R.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=o.profile?.id==="standalone-npm-package"?await Jm({...d,manifest:o}):o.profile?.id==="react-component-library"?await Wm({...d,manifest:o}):o.profile?.id==="nextjs-full-stack-application"?await Km({...d,manifest:o}):o.profile?.id==="workspace-npm-package"?await Ym({...d,manifest:o}):o.profile?.id==="workspace-node-application"?await Hm({...d,manifest:o}):o.profile?.id==="workspace-web-application"?await Xm({...d,manifest:o}):o.profile?.id==="workspace-expo-application"?await Zm({...d,manifest:o}):await Xo(d),f=c===null?void 0:[...c.capabilities].filter(R=>R.packageAdoption!==void 0).sort((R,I)=>R.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,u=f===void 0?void 0:await ie(N.join(t,"package.json")).then(h).catch(()=>{}),m=p.operations.map(R=>R.path==="package.json"&&u===f?{...R,desiredDigest:f,disposition:"noop",conflictCode:void 0}:R),g=c===null?[]:await Ny({projectRoot:t,lock:c,excludeCapabilityIds:[a.capabilityId]}),y=g.some(R=>R.disposition==="conflict"),w=f!==void 0&&m.every(R=>R.disposition==="noop")?{...p,state:"adopted"}:p,A={...w,state:y?"drifted":w.state,operations:[...m,...g]},b=c?.capabilities.flatMap(R=>R.packageAdoption?.sources.map(I=>({capabilityId:R.capabilityId,registryId:I.registryId,packageName:I.packageName,version:I.version,integrity:I.integrity}))??[])??[];return{outputMode:r,human:`Project: ${i}
114
+ Next: dyyto verify --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"applied-unverified",operations:R.operations,lock:c}}}}catch{}let d=new Date,l={projectRoot:t,release:s,...c===null?{}:{currentLock:c},generatedAt:d.toISOString(),expiresAt:new Date(d.getTime()+1800*1e3).toISOString()},p=o.profile?.id==="standalone-npm-package"?await Km({...l,manifest:o}):o.profile?.id==="react-component-library"?await Ym({...l,manifest:o}):o.profile?.id==="nextjs-full-stack-application"?await Hm({...l,manifest:o}):o.profile?.id==="workspace-npm-package"?await Zm({...l,manifest:o}):o.profile?.id==="workspace-node-application"?await Xm({...l,manifest:o}):o.profile?.id==="workspace-web-application"?await Qm({...l,manifest:o}):o.profile?.id==="workspace-expo-application"?await eg({...l,manifest:o}):await Qo(l),m=c===null?void 0:[...c.capabilities].filter(R=>R.packageAdoption!==void 0).sort((R,I)=>R.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,u=m===void 0?void 0:await oe(N.join(t,"package.json")).then(h).catch(()=>{}),f=p.operations.map(R=>R.path==="package.json"&&u===m?{...R,desiredDigest:m,disposition:"noop",conflictCode:void 0}:R),g=c===null?[]:await Sy({projectRoot:t,lock:c,excludeCapabilityIds:[a.capabilityId]}),y=g.some(R=>R.disposition==="conflict"),w=m!==void 0&&f.every(R=>R.disposition==="noop")?{...p,state:"adopted"}:p,A={...w,state:y?"drifted":w.state,operations:[...f,...g]},b=c?.capabilities.flatMap(R=>R.packageAdoption?.sources.map(I=>({capabilityId:R.capabilityId,registryId:I.registryId,packageName:I.packageName,version:I.version,integrity:I.integrity}))??[])??[];return{outputMode:r,human:`Project: ${i}
115
115
  State: ${A.state}
116
116
  `+A.operations.map(R=>`${R.path}: ${R.disposition}`).join(`
117
117
  `)+(b.length===0?"":`
118
118
  \u5305\u6765\u6E90\uFF1A
119
119
  ${b.map(R=>`- ${R.packageName}@${R.version}\uFF08Registry: ${R.registryId}\uFF0C\u5B8C\u6574\u6027\u5DF2\u9501\u5B9A\uFF09`).join(`
120
- `)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,...A,lock:c,packageSources:b}}}}async function fN(e){let{projectRoot:t,outputMode:r}=Qi(e,"Recover"),n=await Bm({projectRoot:t,now:new Date().toISOString()}),i=ee(t);return{outputMode:r,human:n.kind==="none"?`Project: ${i}
120
+ `)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,...A,lock:c,packageSources:b}}}}async function yN(e){let{projectRoot:t,outputMode:r}=to(e,"Recover"),n=await Gm({projectRoot:t,now:new Date().toISOString()}),i=te(t);return{outputMode:r,human:n.kind==="none"?`Project: ${i}
121
121
  Recovery: not-required`:`Project: ${i}
122
122
  Recovery: ${n.kind}
123
- State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:i,recovery:n}}}}function Qy(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},command:{type:"string"},after:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project.`):{parsed:r,projectRoot:N.resolve(r.values.project),outputMode:B(e)}}async function mN(e,t){let{parsed:r,projectRoot:n,outputMode:i}=Qy(t,"Lifecycle"),o=r.values.command;if((e==="start"||e==="restart")&&o!=="dev")return v("Lifecycle start/restart requires the supported --command dev.");try{let{projectProcessLogs:a,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 v("Lifecycle logs --after must be a non-negative integer cursor.");d=await a(n,f)}else if(e==="start")await zy(n,"dev"),d=await c(n,"dev");else if(e==="stop")d=await l(n);else if(e==="restart")await zy(n,"dev"),await l(n),d=await c(n,"dev");else return v("Lifecycle action must be start, stop, restart, status, or logs.");let p=ee(n);return{outputMode:i,human:`Project: ${p}
123
+ State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:i,recovery:n}}}}function th(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 v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project.`):{parsed:r,projectRoot:N.resolve(r.values.project),outputMode:B(e)}}async function hN(e,t){let{parsed:r,projectRoot:n,outputMode:i}=th(t,"Lifecycle"),o=r.values.command;if((e==="start"||e==="restart")&&o!=="dev")return v("Lifecycle start/restart requires the supported --command dev.");try{let{projectProcessLogs:a,projectProcessStatus:s,startProjectProcess:c,stopProjectProcess:d}=await import("./optional-runtime.js"),l;if(e==="status")l=await s(n);else if(e==="logs"){let m=r.values.after===void 0?0:Number(r.values.after);if(!Number.isSafeInteger(m)||m<0)return v("Lifecycle logs --after must be a non-negative integer cursor.");l=await a(n,m)}else if(e==="start")await Jy(n,"dev"),l=await c(n,"dev");else if(e==="stop")l=await d(n);else if(e==="restart")await Jy(n,"dev"),await d(n),l=await c(n,"dev");else return v("Lifecycle action must be start, stop, restart, status, or logs.");let p=te(n);return{outputMode:i,human:`Project: ${p}
124
124
  Lifecycle: ${e}
125
- State: ${"state"in d?d.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...d,projectRoot:void 0}}}}catch(a){let s=typeof a=="object"&&a!==null&&"code"in a?String(a.code):"PROJECT_PROCESS_FAILED";throw new j({code:s,message:a instanceof Error?a.message:"Project lifecycle operation failed.",exitCode:4,nextStep:"Inspect lifecycle status and project logs before retrying."})}}async function zy(e,t){let r=W(JSON.parse(await ie(N.join(e,"project-capabilities.json"),"utf8")));if(r.template===void 0)throw new j({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 Ki(Za(r.template.id,r.template.version))).commands[t]!==t)throw new j({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 gN(e){let{projectRoot:t,outputMode:r}=Qy(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),i=await n(t),o=ee(t),a=i.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=>i.platformDependencies.filter(d=>d.source===l).length,c=i.platformDependencies.map(l=>` platform ${l.packageName} ${l.version} [${l.source}]`);return{outputMode:r,human:`Project: ${o}
125
+ State: ${"state"in l?l.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...l,projectRoot:void 0}}}}catch(a){let s=typeof a=="object"&&a!==null&&"code"in a?String(a.code):"PROJECT_PROCESS_FAILED";throw new j({code:s,message:a instanceof Error?a.message:"Project lifecycle operation failed.",exitCode:4,nextStep:"Inspect lifecycle status and project logs before retrying."})}}async function Jy(e,t){let r=W(JSON.parse(await oe(N.join(e,"project-capabilities.json"),"utf8")));if(r.template===void 0)throw new j({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 Hi(Qa(r.template.id,r.template.version))).commands[t]!==t)throw new j({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 wN(e){let{projectRoot:t,outputMode:r}=th(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),i=await n(t),o=te(t),a=i.details.flatMap(d=>[`${d.title} (${d.capabilityId}@${d.version}) [${d.status}]`,` ${d.purpose}`,...d.packages.map(l=>` package ${l.packageName}@${l.version} [${l.state}]`),...d.packages.flatMap(l=>l.imports.map(p=>` import { ${p.symbol} } from '${p.importFrom}'${p.referencePath?` -> ${p.referencePath}`:""}`)),...d.codeAssets.map(l=>` asset ${l.sourcePath} -> ${l.targetPath} (${l.ownership})`)]),s=d=>i.platformDependencies.filter(l=>l.source===d).length,c=i.platformDependencies.map(d=>` platform ${d.packageName} ${d.version} [${d.source}]`);return{outputMode:r,human:`Project: ${o}
126
126
  Declared: ${i.declared.length}
127
127
  Locked: ${i.locked.length}
128
128
  Verified: ${i.verified.length}
@@ -130,48 +130,48 @@ Findings: ${i.findings.length}
130
130
  Unmanaged platform dependencies: ${i.platformDependencies.length} (workspace ${s("workspace")} / registry ${s("registry")} / other ${s("other")})
131
131
 
132
132
  ${[...a,...c].join(`
133
- `)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:o,...i,projectRoot:void 0}}}}async function yN(e){let t;try{t=de({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 v("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return v("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(m=>typeof m=="string").length;if(r>1)return v("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch:i,switchProjectPackageSources:o,verifyPackageSourceSwitch:a,PackageSourceSwitchError:s}=await import("./optional-runtime.js"),c=t.values.source??"workspace";if(r===0&&c!=="workspace"&&c!=="public"&&c!=="private")return v("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}):i({projectRoot:l,approvedPlanId:t.values.approve}):typeof t.values.verify=="string"?a({projectRoot:l,planId:t.values.verify}):o({projectRoot:l,scope:"@aipt/",source:c,...typeof t.values.registry=="string"?{registry:t.values.registry}:{}})).catch(m=>{throw m instanceof s?new j({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:B(e),human:`\u9879\u76EE\uFF1A${p}
134
- \u6765\u6E90\uFF1A${d.source}
135
- Registry\uFF1A${d.registry??"workspace protocol"}
136
- \u72B6\u6001\uFF1A${d.state}
137
- Plan\uFF1A${d.planId}
138
- Packages\uFF1A${d.packages.length}
139
- \u53D8\u66F4\uFF1A${d.changes.length}
140
- \u5DF2\u5199\u5165\uFF1A${d.written?"\u662F":"\u5426"}
133
+ `)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:o,...i,projectRoot:void 0}}}}async function IN(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 v("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return v("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(f=>typeof f=="string").length;if(r>1)return v("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch:i,switchProjectPackageSources:o,verifyPackageSourceSwitch:a,PackageSourceSwitchError:s}=await import("./optional-runtime.js"),c=t.values.source??"workspace";if(r===0&&c!=="workspace"&&c!=="public"&&c!=="private")return v("Packages switch requires --source workspace|public|private.");let d=N.resolve(t.values.project),l=await(typeof t.values.approve=="string"?t.values.install===!0?n({projectRoot:d,approvedPlanId:t.values.approve}):i({projectRoot:d,approvedPlanId:t.values.approve}):typeof t.values.verify=="string"?a({projectRoot:d,planId:t.values.verify}):o({projectRoot:d,scope:"@aipt/",source:c,...typeof t.values.registry=="string"?{registry:t.values.registry}:{}})).catch(f=>{throw f instanceof s?new j({code:f.code,message:f.message,exitCode:4,nextStep:"Run dyyto packages switch --help."}):f}),p=te(l.projectRoot),m=l.changes.map(f=>` ${f.field} ${f.packageName}: ${f.from} -> ${f.to}`),u=l.state==="reviewable"?`\u5BA1\u6838\u4E0D\u53EF\u53D8 Plan \u540E\u4F7F\u7528 --approve ${l.planId} \u7CBE\u786E\u6279\u51C6\u3002`:l.state==="applied"?`\u4F7F\u7528 --verify ${l.planId} \u9A8C\u8BC1\u3002`:"Package source manifest \u5DF2\u4E0E\u6279\u51C6\u7684 Plan \u4E00\u81F4\u3002";return{outputMode:B(e),human:`\u9879\u76EE\uFF1A${p}
134
+ \u6765\u6E90\uFF1A${l.source}
135
+ Registry\uFF1A${l.registry??"workspace protocol"}
136
+ \u72B6\u6001\uFF1A${l.state}
137
+ Plan\uFF1A${l.planId}
138
+ Packages\uFF1A${l.packages.length}
139
+ \u53D8\u66F4\uFF1A${l.changes.length}
140
+ \u5DF2\u5199\u5165\uFF1A${l.written?"\u662F":"\u5426"}
141
141
 
142
- ${f.join(`
143
- `)}${f.length>0?`
142
+ ${m.join(`
143
+ `)}${m.length>0?`
144
144
 
145
- `:""}\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 hN(e){let{projectRoot:t,outputMode:r}=Qi(e,"Inspect"),n=W(JSON.parse(await ie(N.join(t,"project-capabilities.json"),"utf8")));if(n.template===void 0)throw new j({code:"PROJECT_MAINTENANCE_UNAVAILABLE",message:"Project maintenance requires a formal Template Release.",exitCode:4,nextStep:"Adopt a supported engineering template."});let i=await Ki(Za(n.template.id,n.template.version)),o=await gy({projectRoot:t,commands:i.commands}),a=ee(t);return{outputMode:r,human:`Project: ${a}
145
+ `:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:l.source,registry:l.registry,state:l.state,planId:l.planId,packages:l.packages,changes:l.changes,written:l.written,...l.installVerified===void 0?{}:{installVerified:l.installVerified},...l.lockfileDigest===void 0?{}:{lockfileDigest:l.lockfileDigest}}}}}async function vN(e){let{projectRoot:t,outputMode:r}=to(e,"Inspect"),n=W(JSON.parse(await oe(N.join(t,"project-capabilities.json"),"utf8")));if(n.template===void 0)throw new j({code:"PROJECT_MAINTENANCE_UNAVAILABLE",message:"Project maintenance requires a formal Template Release.",exitCode:4,nextStep:"Adopt a supported engineering template."});let i=await Hi(Qa(n.template.id,n.template.version)),o=await hy({projectRoot:t,commands:i.commands}),a=te(t);return{outputMode:r,human:`Project: ${a}
146
146
  Commands: ${o.commands.map(s=>s.id).join(", ")}
147
- Environment: ${o.environment.filter(s=>s.configured).length}/${o.environment.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:a,template:`${i.templateId}@${i.version}`,...o}}}}async function wN(e){let{projectRoot:t,outputMode:r}=Qi(e,"Inspect"),n=await Mi({projectRoot:t}).catch(i=>{throw new j({code:i instanceof Error&&"code"in i?String(i.code):"APPLICATION_CONFIG_UNAVAILABLE",message:i instanceof Error?i.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
+ Environment: ${o.environment.filter(s=>s.configured).length}/${o.environment.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:a,template:`${i.templateId}@${i.version}`,...o}}}}async function bN(e){let{projectRoot:t,outputMode:r}=to(e,"Inspect"),n=await Ui({projectRoot:t}).catch(i=>{throw new j({code:i instanceof Error&&"code"in i?String(i.code):"APPLICATION_CONFIG_UNAVAILABLE",message:i instanceof Error?i.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}
148
148
  \u73AF\u5883\uFF1A${n.environment}
149
149
  Config Dir\uFF1A${n.configDirectory}
150
150
  \u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(i=>i.configured).length}/${n.entries.length}
151
151
  ${n.entries.map(i=>`${i.name}: ${i.display}`).join(`
152
- `)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function IN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{project:{type:"string"},workspace:{type:"string"},check:{type:"boolean"},json:{type:"boolean"}}})}catch{return v("Config readiness arguments are invalid.")}let r=t.values.project,n=t.values.workspace;if(typeof r=="string"==(typeof n=="string"))return v("Config readiness requires exactly one of --project or --workspace.");let i=B(e);if(typeof n=="string"){let c=await vg({workspaceRoot:N.resolve(n)}),l=c.applications.map(p=>`${p.unit}: ${p.readiness.state}${p.readiness.issueCode?` (${p.readiness.issueCode})`:""}`),d=t.values.check===!0?c.summary.invalid>0?4:c.summary.ready===c.summary.total?0:3:0;return{outputMode:i,human:`\u5DE5\u4F5C\u533A\uFF1A${ee(c.workspaceRoot)}
152
+ `)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function kN(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{project:{type:"string"},workspace:{type:"string"},check:{type:"boolean"},json:{type:"boolean"}}})}catch{return v("Config readiness arguments are invalid.")}let r=t.values.project,n=t.values.workspace;if(typeof r=="string"==(typeof n=="string"))return v("Config readiness requires exactly one of --project or --workspace.");let i=B(e);if(typeof n=="string"){let c=await kg({workspaceRoot:N.resolve(n)}),d=c.applications.map(p=>`${p.unit}: ${p.readiness.state}${p.readiness.issueCode?` (${p.readiness.issueCode})`:""}`),l=t.values.check===!0?c.summary.invalid>0?4:c.summary.ready===c.summary.total?0:3:0;return{outputMode:i,human:`\u5DE5\u4F5C\u533A\uFF1A${te(c.workspaceRoot)}
153
153
  \u5E94\u7528\uFF1A${c.summary.total}
154
154
  \u5C31\u7EEA\uFF1A${c.summary.ready}
155
155
  \u5F85\u521D\u59CB\u5316\uFF1A${c.summary.needsConfigInit}
156
156
  \u65E0\u6548\uFF1A${c.summary.invalid}
157
157
 
158
- ${l.join(`
159
- `)}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:c},...d?{exitCode:d}:{}}}if(typeof r!="string")return v("Config readiness requires --project or --workspace.");let o=await nd({projectRoot:N.resolve(r)}),a=o.missingBindings.length?`
158
+ ${d.join(`
159
+ `)}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:c},...l?{exitCode:l}:{}}}if(typeof r!="string")return v("Config readiness requires --project or --workspace.");let o=await id({projectRoot:N.resolve(r)}),a=o.missingBindings.length?`
160
160
  \u7F3A\u5931\uFF1A${o.missingBindings.join(", ")}`:"",s=t.values.check===!0?o.state==="invalid"?4:o.state==="ready"?0:3:0;return{outputMode:i,human:`\u5E94\u7528\uFF1A${o.application??"\u672A\u58F0\u660E"}
161
161
  \u73AF\u5883\uFF1A${o.environment}
162
162
  \u72B6\u6001\uFF1A${o.state}
163
163
  Config Dir\uFF1A${o.configDirectory??"\u672A\u7269\u5316"}${a}${o.issueCode?`
164
- \u95EE\u9898\uFF1A${o.issueCode}`:""}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:o},...s?{exitCode:s}:{}}}async function vN(e){let t;try{t=de({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 v("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return v("Operations requires --project and --plane change|quality|delivery.");let r=await Pt(N.resolve(t.values.project)),n=ee(r),i=[];for(let a of await Jy(N.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(a.endsWith(".json"))try{let s=JSON.parse(await ie(N.join(r,".dyyto","workbench","tasks",a),"utf8"));s.taskId&&typeof s.operation=="string"&&typeof s.state=="string"&&typeof s.createdAt=="string"&&typeof s.updatedAt=="string"&&i.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 o=wy(i,{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:B(e),human:`Project: ${n}
164
+ \u95EE\u9898\uFF1A${o.issueCode}`:""}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:o},...s?{exitCode:s}:{}}}async function _N(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 v("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return v("Operations requires --project and --plane change|quality|delivery.");let r=await Pt(N.resolve(t.values.project)),n=te(r),i=[];for(let a of await Ky(N.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(a.endsWith(".json"))try{let s=JSON.parse(await oe(N.join(r,".dyyto","workbench","tasks",a),"utf8"));s.taskId&&typeof s.operation=="string"&&typeof s.state=="string"&&typeof s.createdAt=="string"&&typeof s.updatedAt=="string"&&i.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 o=vy(i,{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:B(e),human:`Project: ${n}
165
165
  Operations: ${o.plane}
166
166
  Total: ${o.summary.total}
167
- Attention: ${o.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...o}}}}async function bN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return v("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Doctor requires --workspace.");let r=await Pt(N.resolve(t.values.workspace));if(W(JSON.parse(await ie(N.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return v("Doctor requires a workspace-root project.");let i=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await Jy(N.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let l=N.join(r,s,c.name);try{await ie(N.join(l,"project-capabilities.json"))}catch{continue}i.push({unit:`${s}/${c.name}`,kind:s==="packages"?"package":"application",projectRoot:l})}let o=[];for(let s of i){let c="invalid",l;try{let p=(await Cd(["--project",s.projectRoot,"--json"])).value.result;c=p.state??"invalid",l=gd(c),c==="adopted"&&p.lock!==null&&typeof p.lock=="object"?l.push(...await Gi({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=gd("invalid")}try{let d=W(JSON.parse(await ie(N.join(s.projectRoot,"project-capabilities.json"),"utf8")));d.profile?.id==="workspace-web-application"&&l.push(...await Qg({workspaceRoot:r,applicationId:String(d.profile.parameters.name)}))}catch{}o.push({unit:s.unit,kind:s.kind,state:c,findings:l})}let a=ey({workspace:N.basename(r),generatedAt:new Date().toISOString(),units:o});return{outputMode:B(e),human:`Workspace: ${a.workspace}
167
+ Attention: ${o.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...o}}}}async function AN(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return v("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Doctor requires --workspace.");let r=await Pt(N.resolve(t.values.workspace));if(W(JSON.parse(await oe(N.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return v("Doctor requires a workspace-root project.");let i=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await Ky(N.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let d=N.join(r,s,c.name);try{await oe(N.join(d,"project-capabilities.json"))}catch{continue}i.push({unit:`${s}/${c.name}`,kind:s==="packages"?"package":"application",projectRoot:d})}let o=[];for(let s of i){let c="invalid",d;try{let p=(await $d(["--project",s.projectRoot,"--json"])).value.result;c=p.state??"invalid",d=yd(c),c==="adopted"&&p.lock!==null&&typeof p.lock=="object"?d.push(...await Wi({projectRoot:s.projectRoot,lock:p.lock})):c==="adopted"&&d.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{d=yd("invalid")}try{let l=W(JSON.parse(await oe(N.join(s.projectRoot,"project-capabilities.json"),"utf8")));l.profile?.id==="workspace-web-application"&&d.push(...await ty({workspaceRoot:r,applicationId:String(l.profile.parameters.name)}))}catch{}o.push({unit:s.unit,kind:s.kind,state:c,findings:d})}let a=ry({workspace:N.basename(r),generatedAt:new Date().toISOString(),units:o});return{outputMode:B(e),human:`Workspace: ${a.workspace}
168
168
  Status: ${a.status}
169
169
  Units: ${a.summary.total}
170
170
  Healthy: ${a.summary.healthy}
171
171
  Attention: ${a.summary.attention}
172
172
  Blocked: ${a.summary.blocked}
173
173
  `+a.units.map(s=>`${s.unit}: ${s.status} (${s.findings.map(c=>c.code).join(", ")})`).join(`
174
- `),value:{schemaVersion:1,ok:!0,command:"doctor",result:a}}}async function $d(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:v("Delivery kind must be npm-publish, application-deploy, or hosted-static.")}function Gy(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function eh(e){let t=W(JSON.parse(await ie(N.join(e,"project-capabilities.json"),"utf8"))),r=await Fe(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return v("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return v("Manifest and verified Lock must identify the same adopted capability.");let i=n.assets.filter(o=>!o.path.startsWith("src/"));return await Tr({projectRoot:e,expectedAssets:i}),{manifest:t,lock:r,locked:n,lockDigest:h(k(r))}}async function kN(e){let t;try{t=de({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 v("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return v("Delivery plan requires --project and --kind.");let r=N.resolve(t.values.project),n=await eh(r),o=await(await $d(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await Dg({projectRoot:r,artifactIdentity:o.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 a=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(a!==void 0){let d=JSON.parse(await ie(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://${a.execution.provider==="github-actions"?"github.com":"gitlab.com"}/${a.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=ld({kind:t.values.kind,project:{profile:n.manifest.profile.id,lockDigest:n.lockDigest,appliedPlanId:n.locked.appliedPlanId},artifact:o.artifact,target:o.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(),...a===void 0?{}:{publication:a}});await Ng({projectRoot:r,plan:c});let l=ee(r);return{outputMode:B(e),human:`Project: ${l}
174
+ `),value:{schemaVersion:1,ok:!0,command:"doctor",result:a}}}async function Td(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:v("Delivery kind must be npm-publish, application-deploy, or hosted-static.")}function Wy(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function rh(e){let t=W(JSON.parse(await oe(N.join(e,"project-capabilities.json"),"utf8"))),r=await Ue(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return v("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return v("Manifest and verified Lock must identify the same adopted capability.");let i=n.assets.filter(o=>!o.path.startsWith("src/"));return await Lr({projectRoot:e,expectedAssets:i}),{manifest:t,lock:r,locked:n,lockDigest:h(k(r))}}async function RN(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 v("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return v("Delivery plan requires --project and --kind.");let r=N.resolve(t.values.project),n=await rh(r),o=await(await Td(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await Cg({projectRoot:r,artifactIdentity:o.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 a=t.values.kind==="npm-publish"?(()=>{let l=t.values.provider,p=t.values.repository,m=t.values.workflow,u=t.values.ref;if(l!=="github-actions"&&l!=="gitlab-ci"||typeof p!="string"||typeof m!="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:l,repository:p,workflow:m,ref:u,...typeof t.values.environment=="string"?{environment:t.values.environment}:{}}}})():void 0;if(a!==void 0){let l=JSON.parse(await oe(N.join(r,"package.json"),"utf8")),p=typeof l.repository=="string"?l.repository:l.repository!==null&&typeof l.repository=="object"?l.repository.url:void 0,m=`https://${a.execution.provider==="github-actions"?"github.com":"gitlab.com"}/${a.execution.repository}`;if(p!==m)throw new D("NPM_PROVENANCE_REQUIRED","package.json repository does not match the trusted publishing repository identity")}let s=new Date,c=dd({kind:t.values.kind,project:{profile:n.manifest.profile.id,lockDigest:n.lockDigest,appliedPlanId:n.locked.appliedPlanId},artifact:o.artifact,target:o.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(),...a===void 0?{}:{publication:a}});await Sg({projectRoot:r,plan:c});let d=te(r);return{outputMode:B(e),human:`Project: ${d}
175
175
  Delivery: ${c.kind}
176
176
  Artifact: ${c.artifact.identity}
177
177
  Target: ${c.target.location}
@@ -183,73 +183,73 @@ Execution: ${c.publication.execution.provider}:${c.publication.execution.reposit
183
183
  Approval: maintainer 2FA required outside Dyyto`}
184
184
  Plan: ${c.planId}
185
185
  State: reviewable
186
- Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function _N(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return v("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return v("Delivery apply requires --project and --approve <planId>.");let r=N.resolve(t.values.project),n=await Jt({projectRoot:r,planId:t.values.approve}),i=await Dn({projectRoot:r,planId:n.planId}),o=ee(r);if(i!==null)return{outputMode:B(e),human:`Project: ${o}
186
+ Next: dyyto delivery apply --project ${d} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:d,plan:c}}}}async function EN(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return v("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return v("Delivery apply requires --project and --approve <planId>.");let r=N.resolve(t.values.project),n=await Kt({projectRoot:r,planId:t.values.approve}),i=await Dn({projectRoot:r,planId:n.planId}),o=te(r);if(i!==null)return{outputMode:B(e),human:`Project: ${o}
187
187
  Delivery: verified
188
188
  Receipt: ${i.receiptId}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,reused:!0,receipt:i}}};let a=n.kind==="npm-publish"?await jn({projectRoot:r,planId:n.planId}):null;if(a!==null)return{outputMode:B(e),human:`Project: ${o}
189
189
  Delivery: staged
190
- Stage: ${Gy(a.stageId)}
191
- State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,reused:!0,state:"staged",record:a}}};if((n.kind==="npm-publish"?await Sg({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 eh(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 $d(n.kind),d=await l.prepare({projectRoot:r,profile:c.manifest.profile.id,parameters:c.manifest.profile.parameters});if(k(d.artifact)!==k(n.artifact)||k(d.target)!==k(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 Og({projectRoot:r,record:Eg({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=Rg({planId:n.planId,stageId:p.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await jg({projectRoot:r,record:u}),{outputMode:B(e),human:`Project: ${o}
190
+ Stage: ${Wy(a.stageId)}
191
+ State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,reused:!0,state:"staged",record:a}}};if((n.kind==="npm-publish"?await jg({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 rh(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 d=await Td(n.kind),l=await d.prepare({projectRoot:r,profile:c.manifest.profile.id,parameters:c.manifest.profile.parameters});if(k(l.artifact)!==k(n.artifact)||k(l.target)!==k(n.target))throw new D("DELIVERY_PRECONDITION_FAILED","Artifact or target changed after Delivery Plan approval");let p=await d.execute({projectRoot:r,plan:n,...n.kind==="npm-publish"?{onRemoteWriteStarting:async()=>{await Dg({projectRoot:r,record:Ng({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=Pg({planId:n.planId,stageId:p.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await $g({projectRoot:r,record:u}),{outputMode:B(e),human:`Project: ${o}
192
192
  Delivery: staged
193
- Stage: ${Gy(u.stageId)}
194
- State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,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=$a({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 dd({projectRoot:r,receipt:f}),{outputMode:B(e),human:`Project: ${o}
193
+ Stage: ${Wy(u.stageId)}
194
+ State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,state:"staged",record:u}}}}if(n.kind==="application-deploy"&&(await d.inspect({projectRoot:r,plan:n})).state!=="verified")throw new D("DELIVERY_EXECUTION_UNKNOWN","Docker deployment outcome could not be verified");let m=Ta({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 pd({projectRoot:r,receipt:m}),{outputMode:B(e),human:`Project: ${o}
195
195
  Delivery: verified
196
- Receipt: ${f.receiptId}
197
- External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,receipt:f}}}}async function AN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plan:{type:"string"},"stage-artifact":{type:"string"}}})}catch{return v("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return v("Delivery inspect requires --project and --plan <planId>.");let r=N.resolve(t.values.project),n=await Jt({projectRoot:r,planId:t.values.plan}),i=await Dn({projectRoot:r,planId:n.planId}),o=ee(r);if(i!==null)return{outputMode:B(e),human:`Project: ${o}
196
+ Receipt: ${m.receiptId}
197
+ External: ${m.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,receipt:m}}}}async function PN(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 v("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return v("Delivery inspect requires --project and --plan <planId>.");let r=N.resolve(t.values.project),n=await Kt({projectRoot:r,planId:t.values.plan}),i=await Dn({projectRoot:r,planId:n.planId}),o=te(r);if(i!==null)return{outputMode:B(e),human:`Project: ${o}
198
198
  Delivery: verified
199
- Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:"verified",plan:n,receipt:i}}};let a=n.kind==="npm-publish"?await jn({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await $g({projectRoot:r,planId:n.planId}):null;if(typeof t.values["stage-artifact"]=="string"){if(n.kind!=="npm-publish"||a===null)throw new D("DELIVERY_PRECONDITION_FAILED","Stage artifact review requires an existing npm Stage Record");let l=h(await ie(N.resolve(t.values["stage-artifact"])));if(l!==n.artifact.digest||l!==a.artifactDigest)throw new D("DELIVERY_PRECONDITION_FAILED","Reviewed stage artifact does not match the approved Delivery Plan");s=Pg({planId:n.planId,stageId:a.stageId,artifactDigest:l,reviewedAt:new Date().toISOString()}),await Cg({projectRoot:r,record:s})}let c=await(await $d(n.kind)).inspect({projectRoot:r,plan:n});if(n.kind==="npm-publish"&&a!==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=$a({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:a.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 dd({projectRoot:r,receipt:l}),{outputMode:B(e),human:`Project: ${o}
199
+ Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:"verified",plan:n,receipt:i}}};let a=n.kind==="npm-publish"?await jn({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await Lg({projectRoot:r,planId:n.planId}):null;if(typeof t.values["stage-artifact"]=="string"){if(n.kind!=="npm-publish"||a===null)throw new D("DELIVERY_PRECONDITION_FAILED","Stage artifact review requires an existing npm Stage Record");let d=h(await oe(N.resolve(t.values["stage-artifact"])));if(d!==n.artifact.digest||d!==a.artifactDigest)throw new D("DELIVERY_PRECONDITION_FAILED","Reviewed stage artifact does not match the approved Delivery Plan");s=Og({planId:n.planId,stageId:a.stageId,artifactDigest:d,reviewedAt:new Date().toISOString()}),await Tg({projectRoot:r,record:s})}let c=await(await Td(n.kind)).inspect({projectRoot:r,plan:n});if(n.kind==="npm-publish"&&a!==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 d=Ta({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:a.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 pd({projectRoot:r,receipt:d}),{outputMode:B(e),human:`Project: ${o}
200
200
  Delivery: verified
201
- Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:"verified",plan:n,stage:a,review:s,receipt:l,adapter:c}}}}if(n.kind==="npm-publish"&&a!==null){let l=c.state==="absent"||c.state==="staged"?"approval-pending":c.state;return{outputMode:B(e),human:`Project: ${o}
201
+ Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:"verified",plan:n,stage:a,review:s,receipt:d,adapter:c}}}}if(n.kind==="npm-publish"&&a!==null){let d=c.state==="absent"||c.state==="staged"?"approval-pending":c.state;return{outputMode:B(e),human:`Project: ${o}
202
202
  Delivery: staged
203
203
  Plan: ${n.planId}
204
204
  Artifact review: ${s===null?"pending":"verified"}
205
- State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:l,plan:n,stage:a,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:B(e),human:`Project: ${o}
205
+ State: ${d}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:d,plan:n,stage:a,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:B(e),human:`Project: ${o}
206
206
  Delivery: ${c.state}
207
- Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:c.state,plan:n,receipt:null,adapter:c}}}}async function RN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},application:{type:"string"},limit:{type:"string"},cursor:{type:"string"}}})}catch{return v("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Observe errors requires --workspace.");let r=await Pt(N.resolve(t.values.workspace)),n=new Wt(r),i={...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}:{}},[o,a]=await Promise.all([n.list(i),n.summary(i)]);return{outputMode:B(e),human:o.events.length===0?"\u672A\u53D1\u73B0\u8FD0\u884C\u65F6\u9519\u8BEF\u3002":o.events.map(s=>`${s.occurredAt} ${s.applicationId} ${s.error.type}: ${s.error.message} (${s.state}, ${s.correlation})`).join(`
208
- `),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...o,summary:a}}}}async function EN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return v("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return v("Observe error requires --workspace and --id.");let r=await new Wt(await Pt(N.resolve(t.values.workspace))).get(t.values.id);if(r===null)throw new j({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:B(e),human:`${r.error.type}: ${r.error.message}
207
+ Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:c.state,plan:n,receipt:null,adapter:c}}}}async function NN(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 v("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Observe errors requires --workspace.");let r=await Pt(N.resolve(t.values.workspace)),n=new Yt(r),i={...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}:{}},[o,a]=await Promise.all([n.list(i),n.summary(i)]);return{outputMode:B(e),human:o.events.length===0?"\u672A\u53D1\u73B0\u8FD0\u884C\u65F6\u9519\u8BEF\u3002":o.events.map(s=>`${s.occurredAt} ${s.applicationId} ${s.error.type}: ${s.error.message} (${s.state}, ${s.correlation})`).join(`
208
+ `),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...o,summary:a}}}}async function ON(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return v("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return v("Observe error requires --workspace and --id.");let r=await new Yt(await Pt(N.resolve(t.values.workspace))).get(t.values.id);if(r===null)throw new j({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:B(e),human:`${r.error.type}: ${r.error.message}
209
209
  State: ${r.state}
210
210
  Correlation: ${r.correlation}
211
211
  Release: ${r.releaseId??"unknown"}
212
- Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function PN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return v("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return v("Observe release register requires --project.");let r=await Pt(N.resolve(t.values.project)),n=await Pt(N.resolve(typeof t.values.workspace=="string"?t.values.workspace:N.join(r,"../.."))),{registerWebRelease:i}=await import("./optional-runtime.js"),o=await i({workspaceRoot:n,projectRoot:r});return{outputMode:B(e),human:`Release: ${o.releaseId}
212
+ Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function SN(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return v("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return v("Observe release register requires --project.");let r=await Pt(N.resolve(t.values.project)),n=await Pt(N.resolve(typeof t.values.workspace=="string"?t.values.workspace:N.join(r,"../.."))),{registerWebRelease:i}=await import("./optional-runtime.js"),o=await i({workspaceRoot:n,projectRoot:r});return{outputMode:B(e),human:`Release: ${o.releaseId}
213
213
  Source Maps: ${o.registrations.length}
214
- \u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:o}}}async function NN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},query:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return v("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return v("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 v("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let i=await Ka({...typeof t.values.query=="string"?{query:t.values.query}:{},...r==="package"||r==="capability"?{kind:r}:{},limit:n}),o=i.items.length===0?"\u76EE\u5F55\u4E2D\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u7A0B\u80FD\u529B\u3002":i.items.map(a=>`${a.ref}
214
+ \u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:o}}}async function DN(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 v("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return v("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 v("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let i=await Ya({...typeof t.values.query=="string"?{query:t.values.query}:{},...r==="package"||r==="capability"?{kind:r}:{},limit:n}),o=i.items.length===0?"\u76EE\u5F55\u4E2D\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u7A0B\u80FD\u529B\u3002":i.items.map(a=>`${a.ref}
215
215
  ${a.summary}
216
216
  \u6210\u719F\u5EA6\uFF1A${a.maturity}`).join(`
217
- `);return{outputMode:B(e),human:o,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:i}}}async function ON(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return v("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return v("Catalog show \u9700\u8981 --ref\u3002");let r=await Ya({ref:t.values.ref});return{outputMode:B(e),human:`${r.item.ref}
217
+ `);return{outputMode:B(e),human:o,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:i}}}async function jN(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return v("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return v("Catalog show \u9700\u8981 --ref\u3002");let r=await Ha({ref:t.values.ref});return{outputMode:B(e),human:`${r.item.ref}
218
218
  ${r.item.summary}
219
219
  \u6210\u719F\u5EA6\uFF1A${r.item.maturity}
220
- \u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function ts(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=B(r);if(r[0]==="--version"&&r.every(a=>a==="--version"||a==="--json"))return{outputMode:n,human:Fn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:Fn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:np,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[i,...o]=r;return i==="catalog"&&o[0]==="search"?NN(o.slice(1)):i==="catalog"&&o[0]==="show"?ON(o.slice(1)):i==="create"?Xy(o):i==="scaffold"&&o[0]==="example"?uN(o.slice(1),t):i==="retrofit"?iN(o):i==="dev"||i==="build"||i==="test"||i==="package"?oN(i,o):i==="add"&&o[0]==="package"?aN(o.slice(1)):i==="add"&&o[0]==="application"?sN(o.slice(1)):i==="add"&&o[0]==="feature"?Zy(o.slice(1),t):i==="remove"&&o[0]==="feature"?cN(o.slice(1),t):i==="plan"?lN(o):i==="upgrade"?pN(o,t):i==="apply"?Dd(o,t):i==="verify"?jd(o):i==="inspect"?Cd(o):i==="doctor"?bN(o):i==="recover"?fN(o):i==="lifecycle"&&typeof o[0]=="string"?mN(o[0],o.slice(1)):i==="packages"&&o[0]==="switch"?yN(o.slice(1)):i==="integrations"?gN(o):i==="maintenance"?hN(o):i==="config"&&o[0]==="inspect"?wN(o.slice(1)):i==="config"&&o[0]==="readiness"?IN(o.slice(1)):i==="operations"?vN(o):i==="baseline"?dN(o):i==="delivery"&&o[0]==="plan"?kN(o.slice(1)):i==="delivery"&&o[0]==="apply"?_N(o.slice(1)):i==="delivery"&&o[0]==="inspect"?AN(o.slice(1)):i==="observe"&&o[0]==="errors"?RN(o.slice(1)):i==="observe"&&o[0]==="error"?EN(o.slice(1)):i==="observe"&&o[0]==="release"&&o[1]==="register"?PN(o.slice(2)):v(`Unknown command '${i}'.`)}import{createServer as SN}from"node:http";import{readFile as DN,readdir as ST,rm as DT}from"node:fs/promises";import{execFile as jN}from"node:child_process";import{promisify as CN}from"node:util";import $N from"node:path";var LT=CN(jN),Td=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 TN(e){try{let t=JSON.parse(await DN($N.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 th(e){let t=new Wt(e.workspaceRoot),r=[...e.allowedOrigins??await TN(e.workspaceRoot)],n=new Td,i={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},o=SN(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)){i.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let d=n.take(l);if(!d.allowed){i.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 ae("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=>Xg(e.workspaceRoot,m)});i.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof ae?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?i.rejectedInvalid+=1:i.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)=>{o.once("error",c),o.listen(e.port??4318,"127.0.0.1",()=>{o.off("error",c),s()})});let a=o.address();if(a===null||typeof a=="string")throw new Error("Collector did not expose a TCP address");return{server:o,origin:`http://127.0.0.1:${a.port}`,snapshot:()=>({...i}),close:()=>new Promise((s,c)=>o.close(l=>l?c(l):s()))}}import{createHash as LN}from"node:crypto";import{createServer as xN}from"node:http";import{readFile as rh,realpath as nh}from"node:fs/promises";import rs from"node:path";var Ue=class extends Error{constructor(r){super(r);this.code=r}code};function VN(e){return"sha512-"+LN("sha512").update(e).digest("base64")}async function eo(e){let t=await nh(e).catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await rh(rs.join(t,"index.json"),"utf8").catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=Yr(JSON.parse(r))}catch{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}let i=new Map;for(let o of n.artifacts){let a=rs.join(t,o.assetName),s=rs.relative(t,await nh(a).catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||rs.isAbsolute(s))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await rh(a);if(h(c)!==o.tarballDigest||VN(c)!==o.integrity)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");i.set(o.assetName,c)}return{root:t,bundle:n,assets:i}}function MN(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function ih(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 FN(e,t){let r=o=>o.split(/[.-]/u).map(a=>/^\d+$/u.test(a)?Number(a):a),n=r(e),i=r(t);for(let o=0;o<Math.max(n.length,i.length);o+=1){let a=n[o]??0,s=i[o]??0;if(a!==s)return typeof a=="number"&&typeof s=="number"?a-s:String(a).localeCompare(String(s))}return 0}function UN(e,t){let r=new Map,n=new Map;for(let i of[e,...t])for(let o of i.bundle.artifacts){let a=`${o.packageName}@${o.version}`,s=r.get(a);if(s!==void 0&&ih(s)!==ih(o))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=i.assets.get(o.assetName);if(c===void 0)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(o.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(a,o),n.set(o.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function oh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Ue("LOCAL_ARTIFACT_SERVER_INVALID");let t=await eo(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(eo)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let i=UN(t,r),o=e.hostname??"127.0.0.1",a=xN((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=i.artifacts.filter(u=>u.packageName===p).sort((u,m)=>FN(u.version,m.version));if(f.length>0){let u="http://"+o+":"+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),y=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(y.byteLength)),c.end(l==="HEAD"?void 0:y);return}if(d.startsWith("/tarballs/")){let u=d.slice(10),m=i.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)=>{a.once("error",c),a.listen(e.port,o,s)}).catch(()=>{throw new Ue("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+o+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>MN(a)})}import{createHash as qN}from"node:crypto";import{execFile as BN}from"node:child_process";import{cp as zN,mkdir as ah,mkdtemp as Ld,readFile as os,realpath as to,rename as GN,rm as sh,stat as JN,writeFile as is}from"node:fs/promises";import{tmpdir as WN}from"node:os";import Le from"node:path";import{promisify as KN}from"node:util";import{gunzipSync as YN}from"node:zlib";var HN=KN(BN),XN=["preinstall","install","postinstall","prepublish","prepare"],G=class extends Error{constructor(r){super(r);this.code=r}code};function ZN(e){return"sha512-"+qN("sha512").update(e).digest("base64")}async function QN(e,t){let r=await to(e).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let i of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let o=await to(Le.join(r,i)).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),a=Le.relative(r,o);if(a!==i||a.startsWith("..")||Le.isAbsolute(a))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=await os(Le.join(o,"package.json")).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:i,root:o,manifestBytes:s,manifest:c})}return n}function e0(e,t){let r=new Map(e.map(o=>[String(o.manifest.name),String(o.manifest.version)])),n=t.dependencies;if(n===void 0)return{};if(typeof n!="object"||n===null||Array.isArray(n))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let i={};for(let[o,a]of Object.entries(n)){if(typeof a!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=a.startsWith("workspace:")?r.get(o):a;if(s===void 0)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");i[o]=s}return Object.fromEntries(Object.entries(i).sort(([o],[a])=>o.localeCompare(a)))}function t0(e,t){for(let r=0;r+512<=e.length;){let n=e.subarray(r,r+512);if(n.every(a=>a===0))return;let i=n.toString("utf8",0,100).replace(/\0.*$/su,""),o=Number.parseInt(n.toString("utf8",124,136).replace(/\0.*$/su,"").trim(),8);if(!Number.isSafeInteger(o)||o<0)return;if(i===t)return e.subarray(r+512,r+512+o);r+=512+Math.ceil(o/512)*512}}function r0(e,t,r){let n;try{n=YN(e)}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let i=t0(n,"package/package.json");if(i===void 0)throw new G("LOCAL_ARTIFACT_PACK_FAILED");let o;try{o=JSON.parse(i.toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let a=o.dependencies===void 0?{}:o.dependencies;if(typeof a!="object"||a===null||Array.isArray(a))throw new G("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(a).sort(([c],[l])=>c.localeCompare(l)));if(o.name!==t.name||o.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new G("LOCAL_ARTIFACT_PACK_FAILED")}function n0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function i0(e,t,r){let n=Le.join(await Ld(Le.join(r,"stage-")),"package");await zN(e.root,n,{recursive:!0,filter:o=>Le.basename(o)!=="node_modules"});let i=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await is(Le.join(n,"package.json"),`${JSON.stringify({...i,dependencies:t},null,2)}
221
- `),n}async function o0(e,t,r){let n=e0(e,t.manifest),i=n0(t.manifest,n)?await i0(t,n,r):t.root,o;try{({stdout:o}=await HN("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:i,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let a;try{a=JSON.parse(o)}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let s=a[0]?.filename;if(typeof s!="string"||s.includes("/")||s.includes("\\")||!s.endsWith(".tgz"))throw new G("LOCAL_ARTIFACT_PACK_FAILED");let c=await os(Le.join(r,s)).catch(()=>{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}),l=t.manifest.scripts;if(l!==void 0&&(typeof l!="object"||l===null||Array.isArray(l)))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let d=XN.filter(p=>Object.hasOwn(l??{},p));return r0(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:ZN(c),tarballDigest:h(c),dependencies:n,lifecycleScripts:d},bytes:c}}async function ch(e,t){let r=await QN(e,t),n=await Ld(Le.join(await to(WN()),"dyyto-local-artifact-pack-"));try{let i=await Promise.all(r.map(a=>o0(r,a,n)));i.sort((a,s)=>(a.artifact.packageName+"@"+a.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let o=hd({artifacts:i.map(a=>a.artifact)});return{packages:r,bundle:o,bytes:new Map(i.map(a=>[a.artifact.assetName,a.bytes]))}}finally{await sh(n,{recursive:!0,force:!0})}}function ns(e,t){return Le.join(e,".dyyto","artifact-plans",t+".json")}function a0(e,t){return Le.join(e,".dyyto","package-artifacts",t)}async function lh(e){let t=await to(e.workspaceRoot).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await ch(t,e.packageRoots),n=e.now??new Date,i=wd({packageInputs:r.packages.map(o=>({relativeRoot:o.relativeRoot,manifestDigest:h(o.manifestBytes)})),bundle:r.bundle,generatedAt:n.toISOString(),expiresAt:new Date(n.getTime()+30*6e4).toISOString()});return await ah(Le.dirname(ns(t,i.planId)),{recursive:!0}),await is(ns(t,i.planId),JSON.stringify(i,null,2)+`
222
- `,{flag:"wx",mode:384}).catch(async o=>{if(o.code!=="EEXIST")throw o;if(await os(ns(t,i.planId),"utf8")!==JSON.stringify(i,null,2)+`
223
- `)throw new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),i}async function dh(e){let t=await to(e.workspaceRoot).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await os(ns(t,e.approvedPlanId),"utf8").catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=vy(JSON.parse(r))}catch{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}if(n.planId!==e.approvedPlanId)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");if((e.now??new Date).getTime()>Date.parse(n.expiresAt))throw new G("LOCAL_ARTIFACT_PLAN_EXPIRED");let i=a0(t,n.bundle.bundleId);if(await JN(i).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let o=await ch(t,n.packageInputs.map(c=>c.relativeRoot));if(o.bundle.bundleId!==n.bundle.bundleId||o.packages.some((c,l)=>h(c.manifestBytes)!==n.packageInputs[l].manifestDigest))throw new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let a=Le.dirname(i);await ah(a,{recursive:!0});let s=await Ld(Le.join(a,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>is(Le.join(s,c.assetName),o.bytes.get(c.assetName),{mode:292}))),await is(Le.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
224
- `,{mode:292}),await GN(s,i)}catch(c){throw await sh(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:i}}var yr=class extends Error{constructor(r){super(r);this.code=r}code};function ph(e){let t=[Yr(e.bundle),...(e.fallbackBundles??[]).map(Yr)],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 yr("LOCAL_ARTIFACT_SOURCE_INVALID");let n=Wl({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"}),i=Kl({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),o=t.flatMap(c=>by({bundle:c,registry:n,verifiedAt:e.resolvedAt})),a=new Map(t.flatMap(c=>c.artifacts.map(l=>[`${l.packageName}@${l.version}`,l]))),s=new Map(o.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 yr("LOCAL_ARTIFACT_RELEASE_MISMATCH");for(let d of c.packageSources){let p=`${d.packageName}@${d.version}`,f=a.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 yr("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([i]),receipts:l,inspections:Object.freeze(c.packageSources.map(d=>{let p=a.get(`${d.packageName}@${d.version}`);return Object.freeze({...d,dependencies:p.dependencies,lifecycleScripts:p.lifecycleScripts})}))})}})}import{mkdir as s0,open as c0,readFile as Md,rename as l0,rm as d0,writeFile as p0}from"node:fs/promises";import Ln from"node:path";import{resolvePnpmWorkspaceLock as u0}from"./optional-runtime.js";var f0=h(k({schemaVersion:1,completedRequests:[]}));function uh(e){return h(k({schemaVersion:1,completedRequests:[...e].sort()}))}function Fd(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function xd(e){let t=Buffer.from(e).toString("utf8").split(/\r?\n/u),r=new Map,n=t.findIndex(i=>i==="importers:");if(n<0)throw new Error("RESOLUTION_WORKER_LOCK_INVALID");for(let i=n+1;i<t.length;){let o=/^ ([^\s][^:]*):(?:\s*\{\})?\s*$/u.exec(t[i]);if(!o){if(/^\S/u.test(t[i])&&t[i].trim())break;i+=1;continue}let a=[t[i]],s=i+1;for(;s<t.length&&(/^ /u.test(t[s])||!t[s].trim());)a.push(t[s]),s+=1;r.set(Fd(o[1]),h(Buffer.from(`${a.join(`
220
+ \u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function rs(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=B(r);if(r[0]==="--version"&&r.every(a=>a==="--version"||a==="--json"))return{outputMode:n,human:Fn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:Fn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:op,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[i,...o]=r;return i==="catalog"&&o[0]==="search"?DN(o.slice(1)):i==="catalog"&&o[0]==="show"?jN(o.slice(1)):i==="create"?Qy(o):i==="scaffold"&&o[0]==="example"?gN(o.slice(1),t):i==="retrofit"?sN(o):i==="dev"||i==="build"||i==="test"||i==="package"?cN(i,o):i==="add"&&o[0]==="package"?lN(o.slice(1)):i==="add"&&o[0]==="application"?dN(o.slice(1)):i==="add"&&o[0]==="feature"?eh(o.slice(1),t):i==="remove"&&o[0]==="feature"?pN(o.slice(1),t):i==="plan"?uN(o):i==="upgrade"?mN(o,t):i==="apply"?jd(o,t):i==="verify"?Cd(o):i==="inspect"?$d(o):i==="doctor"?AN(o):i==="recover"?yN(o):i==="lifecycle"&&typeof o[0]=="string"?hN(o[0],o.slice(1)):i==="packages"&&o[0]==="switch"?IN(o.slice(1)):i==="integrations"?wN(o):i==="maintenance"?vN(o):i==="config"&&o[0]==="inspect"?bN(o.slice(1)):i==="config"&&o[0]==="readiness"?kN(o.slice(1)):i==="operations"?_N(o):i==="baseline"?fN(o):i==="delivery"&&o[0]==="plan"?RN(o.slice(1)):i==="delivery"&&o[0]==="apply"?EN(o.slice(1)):i==="delivery"&&o[0]==="inspect"?PN(o.slice(1)):i==="observe"&&o[0]==="errors"?NN(o.slice(1)):i==="observe"&&o[0]==="error"?ON(o.slice(1)):i==="observe"&&o[0]==="release"&&o[1]==="register"?SN(o.slice(2)):v(`Unknown command '${i}'.`)}import{createServer as CN}from"node:http";import{readFile as $N,readdir as CT,rm as $T}from"node:fs/promises";import{execFile as TN}from"node:child_process";import{promisify as LN}from"node:util";import xN from"node:path";var MT=LN(TN),Ld=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 VN(e){try{let t=JSON.parse(await $N(xN.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 nh(e){let t=new Yt(e.workspaceRoot),r=[...e.allowedOrigins??await VN(e.workspaceRoot)],n=new Ld,i={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},o=CN(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 d=s.headers.origin;if(typeof d!="string"||!r.includes(d)){i.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let l=n.take(d);if(!l.allowed){i.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(l.retryAfterSeconds)),c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_RATE_LIMITED"}}));return}let p=[],m=0;try{for await(let f of s){let g=Buffer.from(f);if(m+=g.length,m>64*1024)throw new se("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:f=>Qg(e.workspaceRoot,f)});i.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let f=u instanceof se?u:null;f?.code==="RUNTIME_ERROR_INVALID"||f?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||f?.code==="RUNTIME_ERROR_TOO_LARGE"?i.rejectedInvalid+=1:i.storeFailed+=1,c.statusCode=f?.code==="RUNTIME_ERROR_TOO_LARGE"?413:f?.code==="RUNTIME_ERROR_RATE_LIMITED"?429:f?.code==="RUNTIME_ERROR_INVALID"||f?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"?400:500,c.end(JSON.stringify({error:{code:f?.code??"OBSERVABILITY_STORE_FAILED"}}))}});await new Promise((s,c)=>{o.once("error",c),o.listen(e.port??4318,"127.0.0.1",()=>{o.off("error",c),s()})});let a=o.address();if(a===null||typeof a=="string")throw new Error("Collector did not expose a TCP address");return{server:o,origin:`http://127.0.0.1:${a.port}`,snapshot:()=>({...i}),close:()=>new Promise((s,c)=>o.close(d=>d?c(d):s()))}}import{createHash as MN}from"node:crypto";import{createServer as FN}from"node:http";import{readFile as ih,realpath as oh}from"node:fs/promises";import ns from"node:path";var Be=class extends Error{constructor(r){super(r);this.code=r}code};function UN(e){return"sha512-"+MN("sha512").update(e).digest("base64")}async function ro(e){let t=await oh(e).catch(()=>{throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await ih(ns.join(t,"index.json"),"utf8").catch(()=>{throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=Hr(JSON.parse(r))}catch{throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID")}let i=new Map;for(let o of n.artifacts){let a=ns.join(t,o.assetName),s=ns.relative(t,await oh(a).catch(()=>{throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||ns.isAbsolute(s))throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await ih(a);if(h(c)!==o.tarballDigest||UN(c)!==o.integrity)throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");i.set(o.assetName,c)}return{root:t,bundle:n,assets:i}}function qN(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function ah(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 BN(e,t){let r=o=>o.split(/[.-]/u).map(a=>/^\d+$/u.test(a)?Number(a):a),n=r(e),i=r(t);for(let o=0;o<Math.max(n.length,i.length);o+=1){let a=n[o]??0,s=i[o]??0;if(a!==s)return typeof a=="number"&&typeof s=="number"?a-s:String(a).localeCompare(String(s))}return 0}function zN(e,t){let r=new Map,n=new Map;for(let i of[e,...t])for(let o of i.bundle.artifacts){let a=`${o.packageName}@${o.version}`,s=r.get(a);if(s!==void 0&&ah(s)!==ah(o))throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=i.assets.get(o.assetName);if(c===void 0)throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");let d=n.get(o.assetName);if(d!==void 0&&!Buffer.from(d).equals(c))throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(a,o),n.set(o.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function sh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Be("LOCAL_ARTIFACT_SERVER_INVALID");let t=await ro(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(ro)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");let i=zN(t,r),o=e.hostname??"127.0.0.1",a=FN((s,c)=>{let d=s.method??"";if(d!=="GET"&&d!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let l=new URL(s.url??"/","http://127.0.0.1").pathname,p=decodeURIComponent(l.slice(1)),m=i.artifacts.filter(u=>u.packageName===p).sort((u,f)=>BN(u.version,f.version));if(m.length>0){let u="http://"+o+":"+e.port,f=Object.fromEntries(m.map(w=>[w.version,{name:w.packageName,version:w.version,dependencies:w.dependencies,dist:{integrity:w.integrity,tarball:u+"/tarballs/"+w.assetName}}])),g=m.at(-1),y=Buffer.from(JSON.stringify({name:g.packageName,versions:f,"dist-tags":{latest:g.version}}));c.statusCode=200,c.setHeader("content-type","application/json"),c.setHeader("content-length",String(y.byteLength)),c.end(d==="HEAD"?void 0:y);return}if(l.startsWith("/tarballs/")){let u=l.slice(10),f=i.assets.get(u);if(f!==void 0){c.statusCode=200,c.setHeader("content-type","application/octet-stream"),c.setHeader("content-length",String(f.byteLength)),c.end(d==="HEAD"?void 0:f);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(d==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{a.once("error",c),a.listen(e.port,o,s)}).catch(()=>{throw new Be("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+o+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>qN(a)})}import{createHash as GN}from"node:crypto";import{execFile as JN}from"node:child_process";import{cp as WN,mkdir as ch,mkdtemp as xd,readFile as as,realpath as no,rename as KN,rm as lh,stat as YN,writeFile as os}from"node:fs/promises";import{tmpdir as HN}from"node:os";import Le from"node:path";import{promisify as ZN}from"node:util";import{gunzipSync as XN}from"node:zlib";var QN=ZN(JN),e0=["preinstall","install","postinstall","prepublish","prepare"],G=class extends Error{constructor(r){super(r);this.code=r}code};function t0(e){return"sha512-"+GN("sha512").update(e).digest("base64")}async function r0(e,t){let r=await no(e).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let i of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let o=await no(Le.join(r,i)).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),a=Le.relative(r,o);if(a!==i||a.startsWith("..")||Le.isAbsolute(a))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=await as(Le.join(o,"package.json")).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:i,root:o,manifestBytes:s,manifest:c})}return n}function n0(e,t){let r=new Map(e.map(o=>[String(o.manifest.name),String(o.manifest.version)])),n=t.dependencies;if(n===void 0)return{};if(typeof n!="object"||n===null||Array.isArray(n))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let i={};for(let[o,a]of Object.entries(n)){if(typeof a!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=a.startsWith("workspace:")?r.get(o):a;if(s===void 0)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");i[o]=s}return Object.fromEntries(Object.entries(i).sort(([o],[a])=>o.localeCompare(a)))}function i0(e,t){for(let r=0;r+512<=e.length;){let n=e.subarray(r,r+512);if(n.every(a=>a===0))return;let i=n.toString("utf8",0,100).replace(/\0.*$/su,""),o=Number.parseInt(n.toString("utf8",124,136).replace(/\0.*$/su,"").trim(),8);if(!Number.isSafeInteger(o)||o<0)return;if(i===t)return e.subarray(r+512,r+512+o);r+=512+Math.ceil(o/512)*512}}function o0(e,t,r){let n;try{n=XN(e)}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let i=i0(n,"package/package.json");if(i===void 0)throw new G("LOCAL_ARTIFACT_PACK_FAILED");let o;try{o=JSON.parse(i.toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let a=o.dependencies===void 0?{}:o.dependencies;if(typeof a!="object"||a===null||Array.isArray(a))throw new G("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(a).sort(([c],[d])=>c.localeCompare(d)));if(o.name!==t.name||o.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new G("LOCAL_ARTIFACT_PACK_FAILED")}function a0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function s0(e,t,r){let n=Le.join(await xd(Le.join(r,"stage-")),"package");await WN(e.root,n,{recursive:!0,filter:o=>Le.basename(o)!=="node_modules"});let i=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await os(Le.join(n,"package.json"),`${JSON.stringify({...i,dependencies:t},null,2)}
221
+ `),n}async function c0(e,t,r){let n=n0(e,t.manifest),i=a0(t.manifest,n)?await s0(t,n,r):t.root,o;try{({stdout:o}=await QN("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:i,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let a;try{a=JSON.parse(o)}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let s=a[0]?.filename;if(typeof s!="string"||s.includes("/")||s.includes("\\")||!s.endsWith(".tgz"))throw new G("LOCAL_ARTIFACT_PACK_FAILED");let c=await as(Le.join(r,s)).catch(()=>{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}),d=t.manifest.scripts;if(d!==void 0&&(typeof d!="object"||d===null||Array.isArray(d)))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let l=e0.filter(p=>Object.hasOwn(d??{},p));return o0(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:t0(c),tarballDigest:h(c),dependencies:n,lifecycleScripts:l},bytes:c}}async function dh(e,t){let r=await r0(e,t),n=await xd(Le.join(await no(HN()),"dyyto-local-artifact-pack-"));try{let i=await Promise.all(r.map(a=>c0(r,a,n)));i.sort((a,s)=>(a.artifact.packageName+"@"+a.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let o=wd({artifacts:i.map(a=>a.artifact)});return{packages:r,bundle:o,bytes:new Map(i.map(a=>[a.artifact.assetName,a.bytes]))}}finally{await lh(n,{recursive:!0,force:!0})}}function is(e,t){return Le.join(e,".dyyto","artifact-plans",t+".json")}function l0(e,t){return Le.join(e,".dyyto","package-artifacts",t)}async function ph(e){let t=await no(e.workspaceRoot).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await dh(t,e.packageRoots),n=e.now??new Date,i=Id({packageInputs:r.packages.map(o=>({relativeRoot:o.relativeRoot,manifestDigest:h(o.manifestBytes)})),bundle:r.bundle,generatedAt:n.toISOString(),expiresAt:new Date(n.getTime()+30*6e4).toISOString()});return await ch(Le.dirname(is(t,i.planId)),{recursive:!0}),await os(is(t,i.planId),JSON.stringify(i,null,2)+`
222
+ `,{flag:"wx",mode:384}).catch(async o=>{if(o.code!=="EEXIST")throw o;if(await as(is(t,i.planId),"utf8")!==JSON.stringify(i,null,2)+`
223
+ `)throw new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),i}async function uh(e){let t=await no(e.workspaceRoot).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await as(is(t,e.approvedPlanId),"utf8").catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=ky(JSON.parse(r))}catch{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}if(n.planId!==e.approvedPlanId)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");if((e.now??new Date).getTime()>Date.parse(n.expiresAt))throw new G("LOCAL_ARTIFACT_PLAN_EXPIRED");let i=l0(t,n.bundle.bundleId);if(await YN(i).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let o=await dh(t,n.packageInputs.map(c=>c.relativeRoot));if(o.bundle.bundleId!==n.bundle.bundleId||o.packages.some((c,d)=>h(c.manifestBytes)!==n.packageInputs[d].manifestDigest))throw new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let a=Le.dirname(i);await ch(a,{recursive:!0});let s=await xd(Le.join(a,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>os(Le.join(s,c.assetName),o.bytes.get(c.assetName),{mode:292}))),await os(Le.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
224
+ `,{mode:292}),await KN(s,i)}catch(c){throw await lh(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:i}}var hr=class extends Error{constructor(r){super(r);this.code=r}code};function fh(e){let t=[Hr(e.bundle),...(e.fallbackBundles??[]).map(Hr)],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 hr("LOCAL_ARTIFACT_SOURCE_INVALID");let n=Kl({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"}),i=Yl({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),o=t.flatMap(c=>_y({bundle:c,registry:n,verifiedAt:e.resolvedAt})),a=new Map(t.flatMap(c=>c.artifacts.map(d=>[`${d.packageName}@${d.version}`,d]))),s=new Map(o.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 hr("LOCAL_ARTIFACT_RELEASE_MISMATCH");for(let l of c.packageSources){let p=`${l.packageName}@${l.version}`,m=a.get(p),u=s.get(p);if(!m||!u||l.registryId!==n.registryId||l.version!==m.version||l.integrity!==m.integrity||l.tarballDigest!==m.tarballDigest||l.deliveryReceiptId!==u.receiptId)throw new hr("LOCAL_ARTIFACT_RELEASE_MISMATCH")}let d=Object.freeze(c.packageSources.map(l=>s.get(`${l.packageName}@${l.version}`)));return Object.freeze({registryConfigs:Object.freeze([n]),endpointBindings:Object.freeze([i]),receipts:d,inspections:Object.freeze(c.packageSources.map(l=>{let p=a.get(`${l.packageName}@${l.version}`);return Object.freeze({...l,dependencies:p.dependencies,lifecycleScripts:p.lifecycleScripts})}))})}})}import{mkdir as d0,open as p0,readFile as Fd,rename as u0,rm as f0,writeFile as m0}from"node:fs/promises";import Ln from"node:path";import{resolvePnpmWorkspaceLock as g0}from"./optional-runtime.js";var y0=h(k({schemaVersion:1,completedRequests:[]}));function mh(e){return h(k({schemaVersion:1,completedRequests:[...e].sort()}))}function Ud(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function Vd(e){let t=Buffer.from(e).toString("utf8").split(/\r?\n/u),r=new Map,n=t.findIndex(i=>i==="importers:");if(n<0)throw new Error("RESOLUTION_WORKER_LOCK_INVALID");for(let i=n+1;i<t.length;){let o=/^ ([^\s][^:]*):(?:\s*\{\})?\s*$/u.exec(t[i]);if(!o){if(/^\S/u.test(t[i])&&t[i].trim())break;i+=1;continue}let a=[t[i]],s=i+1;for(;s<t.length&&(/^ /u.test(t[s])||!t[s].trim());)a.push(t[s]),s+=1;r.set(Ud(o[1]),h(Buffer.from(`${a.join(`
225
225
  `)}
226
- `))),i=s}return r}function Vd(e,t){let r=Buffer.from(e).toString("utf8").split(/\r?\n/u),n=r.findIndex(o=>o===`${t}:`),i=[];if(n<0)return i;for(let o=n+1;o<r.length&&!(/^\S/u.test(r[o])&&r[o].trim());){let a=/^ (.+):\s*$/u.exec(r[o]);if(!a){o+=1;continue}let s=[r[o]],c=o+1;for(;c<r.length&&(/^ /u.test(r[c])||!r[c].trim());)s.push(r[c]),c+=1;i.push({key:Fd(a[1]),bytes:Buffer.from(`${s.join(`
226
+ `))),i=s}return r}function Md(e,t){let r=Buffer.from(e).toString("utf8").split(/\r?\n/u),n=r.findIndex(o=>o===`${t}:`),i=[];if(n<0)return i;for(let o=n+1;o<r.length&&!(/^\S/u.test(r[o])&&r[o].trim());){let a=/^ (.+):\s*$/u.exec(r[o]);if(!a){o+=1;continue}let s=[r[o]],c=o+1;for(;c<r.length&&(/^ /u.test(r[c])||!r[c].trim());)s.push(r[c]),c+=1;i.push({key:Ud(a[1]),bytes:Buffer.from(`${s.join(`
227
227
  `)}
228
- `)}),o=c}return i}function m0(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 g0(e,t,r){let n=new Map(Vd(e,"snapshots").map(i=>[i.key,i.bytes]));return Vd(e,"packages").map(i=>{let o=m0(i.key),a=/\bintegrity:\s*([^,}\s]+)/u.exec(Buffer.from(i.bytes).toString("utf8"));if(!o||!a)throw new Error("RESOLUTION_WORKER_LOCK_FACTS_INCOMPLETE");let s=Fd(a[1]),c=t.find(p=>p.packageName===o.packageName&&p.version===o.version),l=c?.registryId??r.find(p=>p.scopes.some(f=>o.packageName.startsWith(`${f}/`)))?.registryId??"registry.npmjs.public",d=n.get(i.key);return{identity:i.key,packageName:o.packageName,version:o.version,integrity:s,registryId:l,managed:c!==void 0,edgesDigest:h(d??k({dependencies:[]}))}}).sort((i,o)=>i.identity.localeCompare(o.identity))}function fh(e={}){return async t=>{let r=await u0({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:Ln.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=xd(t.currentLockfile),i=xd(r.lockfile),o=await On(t.topology.transactionRoot),a=new Map(o.map(p=>[p.relativeRoot,p.bytes])),s=await Md(Ln.join(t.topology.transactionRoot,"package.json")).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));s&&a.set(".",s),a.set(t.topology.unitImporterId,t.desiredPackageJson);let c=[...i].map(([p,f])=>{let u=a.get(p);if(!u)throw new Error("RESOLUTION_WORKER_IMPORTER_MANIFEST_MISSING");return{importerId:p,manifestDigest:h(u),preimageDigest:n.get(p)??h(k({absent:!0})),desiredDigest:f}}).sort((p,f)=>p.importerId.localeCompare(f.importerId)),l=g0(r.lockfile,t.sources,t.registryConfigs),d=Vd(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:l,snapshotClosureDigest:h(k(d.map(p=>({identity:p.key,digest:h(p.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:h(k({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:h(k({desiredLockDigest:h(r.lockfile),packageFacts:l.map(({identity:p,integrity:f})=>({identity:p,integrity:f}))}))}}}async function y0(e){try{let t=JSON.parse(await Md(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==uh(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:f0,completedRequests:Object.freeze([])};throw t}}function mh(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=Ba(JSON.parse(await Md(Ln.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 o=[...xd(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)),a={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=Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:h(r.currentLockfile),desiredPackageJsonDigest:h(r.desiredPackageJson),sources:r.sources.map(({registryId:f,packageName:u,version:m,integrity:g})=>({registryId:f,packageName:u,version:m,integrity:g})),preservedImporterDigests:o.map(({importerId:f,preimageDigest:u})=>({importerId:f,preimageDigest:u}))}),l=`pnpm11-node24-${h(k({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 s0(e.stateRoot,{recursive:!0});let d=Ln.join(e.stateRoot,`${l.slice(7)}.lease`),p;try{p=await c0(d,"wx",384)}catch(f){throw f.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):f}try{let f=Ln.join(e.stateRoot,"state.json"),u=await y0(f),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:l}),g=[...new Set([...u.completedRequests,s])].sort(),y=uh(g),w=ig({workerReleaseId:t,workerStateRevision:y,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:y,writesDigest:m.writesDigest},commandDigest:m.commandDigest,completedAt:r.generatedAt,expiresAt:r.expiresAt}),A=Ln.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await p0(A,`${JSON.stringify({schemaVersion:1,revision:y,completedRequests:g},null,2)}
229
- `,{mode:384}),await l0(A,f),{evidence:w,workerReleaseId:t,preservedImporterDigests:o}}finally{await p.close(),await d0(d,{force:!0})}}}}import{execFile as h0}from"node:child_process";import{mkdir as xn,mkdtemp as w0,readFile as Nt,readdir as I0,readlink as v0,realpath as qd,rename as b0,rm as gh,stat as k0,writeFile as Hr}from"node:fs/promises";import{tmpdir as _0}from"node:os";import pe from"node:path";import{promisify as A0}from"node:util";var R0=A0(h0);function yh(e,t){return pe.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function hh(e){return pe.join(e,".dyyto","resolution-worker")}function Ud(e){return pe.join(hh(e),"build-receipt.json")}async function E0(e){let t=[];async function r(n){for(let i of await I0(n,{withFileTypes:!0}).catch(o=>o.code==="ENOENT"?[]:Promise.reject(o))){let o=pe.join(n,i.name);if(i.isSymbolicLink()){let a=await v0(o);t.push({path:pe.relative(e,o),digest:h(k({symlink:a})),bytes:0})}else if(i.isDirectory())await r(o);else if(i.isFile()){let a=await Nt(o);t.push({path:pe.relative(e,o),digest:h(a),bytes:a.byteLength})}}}return await r(e),t.sort((n,i)=>n.path.localeCompare(i.path)),{cacheDigest:h(k(t)),cacheBytes:t.reduce((n,i)=>n+i.bytes,0)}}function wh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await w0(pe.join(await qd(_0()),"dyyto-resolution-warmup-")),n=pe.join(r,".home");await xn(n);try{await Hr(pe.join(r,"pnpm-workspace.yaml"),await Nt(pe.join(e,"pnpm-workspace.yaml"))),await Hr(pe.join(r,"pnpm-lock.yaml"),await Nt(pe.join(e,"pnpm-lock.yaml")));let i=await Nt(pe.join(e,"package.json")).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d));i&&await Hr(pe.join(r,"package.json"),i);for(let d of await On(e)){let p=pe.join(r,...d.relativeRoot.split("/"));await xn(p,{recursive:!0}),await Hr(pe.join(p,"package.json"),d.bytes)}let o=pe.join(n,"userconfig.npmrc");await Hr(o,`ignore-scripts=true
228
+ `)}),o=c}return i}function h0(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 w0(e,t,r){let n=new Map(Md(e,"snapshots").map(i=>[i.key,i.bytes]));return Md(e,"packages").map(i=>{let o=h0(i.key),a=/\bintegrity:\s*([^,}\s]+)/u.exec(Buffer.from(i.bytes).toString("utf8"));if(!o||!a)throw new Error("RESOLUTION_WORKER_LOCK_FACTS_INCOMPLETE");let s=Ud(a[1]),c=t.find(p=>p.packageName===o.packageName&&p.version===o.version),d=c?.registryId??r.find(p=>p.scopes.some(m=>o.packageName.startsWith(`${m}/`)))?.registryId??"registry.npmjs.public",l=n.get(i.key);return{identity:i.key,packageName:o.packageName,version:o.version,integrity:s,registryId:d,managed:c!==void 0,edgesDigest:h(l??k({dependencies:[]}))}}).sort((i,o)=>i.identity.localeCompare(o.identity))}function gh(e={}){return async t=>{let r=await g0({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:Ln.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=Vd(t.currentLockfile),i=Vd(r.lockfile),o=await On(t.topology.transactionRoot),a=new Map(o.map(p=>[p.relativeRoot,p.bytes])),s=await Fd(Ln.join(t.topology.transactionRoot,"package.json")).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));s&&a.set(".",s),a.set(t.topology.unitImporterId,t.desiredPackageJson);let c=[...i].map(([p,m])=>{let u=a.get(p);if(!u)throw new Error("RESOLUTION_WORKER_IMPORTER_MANIFEST_MISSING");return{importerId:p,manifestDigest:h(u),preimageDigest:n.get(p)??h(k({absent:!0})),desiredDigest:m}}).sort((p,m)=>p.importerId.localeCompare(m.importerId)),d=w0(r.lockfile,t.sources,t.registryConfigs),l=Md(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:d,snapshotClosureDigest:h(k(l.map(p=>({identity:p.key,digest:h(p.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:h(k({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:h(k({desiredLockDigest:h(r.lockfile),packageFacts:d.map(({identity:p,integrity:m})=>({identity:p,integrity:m}))}))}}}async function I0(e){try{let t=JSON.parse(await Fd(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==mh(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:y0,completedRequests:Object.freeze([])};throw t}}function yh(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=za(JSON.parse(await Fd(Ln.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 o=[...Vd(r.currentLockfile)].filter(([m])=>m!==r.topology.unitImporterId).map(([m,u])=>({importerId:m,preimageDigest:u,desiredDigest:u})).sort((m,u)=>m.importerId.localeCompare(u.importerId)),a={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=Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:h(r.currentLockfile),desiredPackageJsonDigest:h(r.desiredPackageJson),sources:r.sources.map(({registryId:m,packageName:u,version:f,integrity:g})=>({registryId:m,packageName:u,version:f,integrity:g})),preservedImporterDigests:o.map(({importerId:m,preimageDigest:u})=>({importerId:m,preimageDigest:u}))}),d=`pnpm11-node24-${h(k({workerReleaseId:t,pnpmVersion:"11.21.0",registryRevisions:r.registryConfigs.map(({registryId:m,revision:u})=>({registryId:m,revision:u})).sort((m,u)=>m.registryId.localeCompare(u.registryId))})).slice(7)}`;await d0(e.stateRoot,{recursive:!0});let l=Ln.join(e.stateRoot,`${d.slice(7)}.lease`),p;try{p=await p0(l,"wx",384)}catch(m){throw m.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):m}try{let m=Ln.join(e.stateRoot,"state.json"),u=await I0(m),f=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:d}),g=[...new Set([...u.completedRequests,s])].sort(),y=mh(g),w=ag({workerReleaseId:t,workerStateRevision:y,requestDigest:s,pnpmVersion:"11.21.0",desiredLockfile:f.desiredLockfile,importerFacts:f.importerFacts,packageFacts:f.packageFacts,snapshotClosureDigest:f.snapshotClosureDigest,networkObservationDigest:f.networkObservationDigest,cacheObservation:{namespace:d,preimageRevision:u.revision,desiredRevision:y,writesDigest:f.writesDigest},commandDigest:f.commandDigest,completedAt:r.generatedAt,expiresAt:r.expiresAt}),A=Ln.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await m0(A,`${JSON.stringify({schemaVersion:1,revision:y,completedRequests:g},null,2)}
229
+ `,{mode:384}),await u0(A,m),{evidence:w,workerReleaseId:t,preservedImporterDigests:o}}finally{await p.close(),await f0(l,{force:!0})}}}}import{execFile as v0}from"node:child_process";import{mkdir as xn,mkdtemp as b0,readFile as Nt,readdir as k0,readlink as _0,realpath as Bd,rename as A0,rm as hh,stat as R0,writeFile as Zr}from"node:fs/promises";import{tmpdir as E0}from"node:os";import ue from"node:path";import{promisify as P0}from"node:util";var N0=P0(v0);function wh(e,t){return ue.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function Ih(e){return ue.join(e,".dyyto","resolution-worker")}function qd(e){return ue.join(Ih(e),"build-receipt.json")}async function O0(e){let t=[];async function r(n){for(let i of await k0(n,{withFileTypes:!0}).catch(o=>o.code==="ENOENT"?[]:Promise.reject(o))){let o=ue.join(n,i.name);if(i.isSymbolicLink()){let a=await _0(o);t.push({path:ue.relative(e,o),digest:h(k({symlink:a})),bytes:0})}else if(i.isDirectory())await r(o);else if(i.isFile()){let a=await Nt(o);t.push({path:ue.relative(e,o),digest:h(a),bytes:a.byteLength})}}}return await r(e),t.sort((n,i)=>n.path.localeCompare(i.path)),{cacheDigest:h(k(t)),cacheBytes:t.reduce((n,i)=>n+i.bytes,0)}}function vh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await b0(ue.join(await Bd(E0()),"dyyto-resolution-warmup-")),n=ue.join(r,".home");await xn(n);try{await Zr(ue.join(r,"pnpm-workspace.yaml"),await Nt(ue.join(e,"pnpm-workspace.yaml"))),await Zr(ue.join(r,"pnpm-lock.yaml"),await Nt(ue.join(e,"pnpm-lock.yaml")));let i=await Nt(ue.join(e,"package.json")).catch(l=>l.code==="ENOENT"?void 0:Promise.reject(l));i&&await Zr(ue.join(r,"package.json"),i);for(let l of await On(e)){let p=ue.join(r,...l.relativeRoot.split("/"));await xn(p,{recursive:!0}),await Zr(ue.join(p,"package.json"),l.bytes)}let o=ue.join(n,"userconfig.npmrc");await Zr(o,`ignore-scripts=true
230
230
  strict-peer-dependencies=true
231
231
  manage-package-manager-versions=false
232
- `,{mode:384});let a=pe.join(t,"store","shared"),s=pe.join(t,"cache");await xn(a,{recursive:!0}),await xn(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],l=await R0("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:o,pnpm_config_store_dir:a},timeout:9e5,maxBuffer:8*1024*1024});return{...await E0(t),commandDigest:h(k({executable:"corepack",args:c,stdoutDigest:h(l.stdout),stderrDigest:h(l.stderr)}))}}finally{await gh(r,{recursive:!0,force:!0})}}}async function Ih(e){let t=await qd(e.workspaceRoot),r=e.now??new Date,[n,i]=await Promise.all([Nt(pe.join(t,"pnpm-workspace.yaml")),Nt(pe.join(t,"pnpm-lock.yaml"))]),o=h(k({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:h(n)})),a=Id({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:h(n),rootLockDigest:h(i),cacheNamespace:`pnpm11-node24-${o.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=yh(t,a.planId);await xn(pe.dirname(s),{recursive:!0});let c=`${JSON.stringify(a,null,2)}
233
- `;return await Hr(s,c,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await Nt(s,"utf8")!==c)throw l}),a}async function vh(e){let t=await qd(e.workspaceRoot),r=_y(JSON.parse(await Nt(yh(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new Ze("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,i]=await Promise.all([Nt(pe.join(t,"pnpm-workspace.yaml")),Nt(pe.join(t,"pnpm-lock.yaml"))]);if(h(n)!==r.workspaceManifestDigest||h(i)!==r.rootLockDigest)throw new Ze("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let o=hh(t),a=await Nt(Ud(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(a)return Ba(JSON.parse(a));await xn(o,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:o,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new Ze("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=vd({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=pe.join(o,`build-receipt.${r.planId.slice(7)}.tmp`);return await Hr(l,`${JSON.stringify(c,null,2)}
234
- `,{mode:384}),await b0(l,Ud(t)),c}catch(s){throw await k0(Ud(t)).then(()=>!0).catch(()=>!1)||await gh(pe.join(o,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as P0,readFile as Xr,realpath as bh,writeFile as N0}from"node:fs/promises";import Zr from"node:path";function kh(e,t){return Zr.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function _h(e){let t=await bh(e.projectRoot),r=await zt(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await Xr(Zr.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await Xr(Zr.join(t,".dyyto","plans",`${n.planId}.json`));let i=JSON.parse(await Xr(Zr.join(r.transactionRoot,".dyyto","transactions",n.planId,"journal.json"),"utf8"));if(i.state!=="recovery-required"&&i.state!=="recovering"||!Array.isArray(i.operations))throw new Error("RECOVERY_OVERRIDE_INVALID");let o=[];for(let d of i.operations){if(d.before.kind!=="present"||!d.before.preimageDigest)continue;let p=await Xr(Zr.join(r.transactionRoot,...d.path.split("/"))).catch(u=>u.code==="ENOENT"?void 0:Promise.reject(u));if(!p)continue;let f=h(p);f!==d.before.digest&&f!==d.desiredDigest&&o.push({path:d.path,currentDigest:f,preimageDigest:d.before.preimageDigest})}let a=e.now??new Date,s=kd({transactionPlanId:n.planId,transactionRootDigest:h(r.transactionRoot),conflicts:o,generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+30*6e4).toISOString()}),c=kh(t,s.planId);await P0(Zr.dirname(c),{recursive:!0});let l=`${JSON.stringify(s,null,2)}
235
- `;return await N0(c,l,{flag:"wx",mode:384}).catch(async d=>{if(d.code!=="EEXIST"||await Xr(c,"utf8")!==l)throw d}),s}async function Ah(e){let t=await bh(e.projectRoot),r=await zt(t),n=Ay(JSON.parse(await Xr(kh(t,e.approvedPlanId),"utf8")));if(n.planId!==e.approvedPlanId||Date.now()>Date.parse(n.expiresAt)||r.mode!=="pnpm-shared-lockfile"||h(r.transactionRoot)!==n.transactionRootDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT");for(let i of n.conflicts){let o=await Xr(Zr.join(r.transactionRoot,...i.path.split("/")));if(h(o)!==i.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return Nl({projectRoot:r.transactionRoot,planId:n.transactionPlanId,now:(e.now??new Date).toISOString(),approvedConflicts:n.conflicts.map(({path:i,currentDigest:o})=>({path:i,currentDigest:o}))})}function as(e){return e.endsWith(`
232
+ `,{mode:384});let a=ue.join(t,"store","shared"),s=ue.join(t,"cache");await xn(a,{recursive:!0}),await xn(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],d=await N0("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:o,pnpm_config_store_dir:a},timeout:9e5,maxBuffer:8*1024*1024});return{...await O0(t),commandDigest:h(k({executable:"corepack",args:c,stdoutDigest:h(d.stdout),stderrDigest:h(d.stderr)}))}}finally{await hh(r,{recursive:!0,force:!0})}}}async function bh(e){let t=await Bd(e.workspaceRoot),r=e.now??new Date,[n,i]=await Promise.all([Nt(ue.join(t,"pnpm-workspace.yaml")),Nt(ue.join(t,"pnpm-lock.yaml"))]),o=h(k({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:h(n)})),a=vd({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:h(n),rootLockDigest:h(i),cacheNamespace:`pnpm11-node24-${o.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=wh(t,a.planId);await xn(ue.dirname(s),{recursive:!0});let c=`${JSON.stringify(a,null,2)}
233
+ `;return await Zr(s,c,{flag:"wx",mode:384}).catch(async d=>{if(d.code!=="EEXIST"||await Nt(s,"utf8")!==c)throw d}),a}async function kh(e){let t=await Bd(e.workspaceRoot),r=Ry(JSON.parse(await Nt(wh(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new Qe("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,i]=await Promise.all([Nt(ue.join(t,"pnpm-workspace.yaml")),Nt(ue.join(t,"pnpm-lock.yaml"))]);if(h(n)!==r.workspaceManifestDigest||h(i)!==r.rootLockDigest)throw new Qe("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let o=Ih(t),a=await Nt(qd(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(a)return za(JSON.parse(a));await xn(o,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:o,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new Qe("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=bd({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()}),d=ue.join(o,`build-receipt.${r.planId.slice(7)}.tmp`);return await Zr(d,`${JSON.stringify(c,null,2)}
234
+ `,{mode:384}),await A0(d,qd(t)),c}catch(s){throw await R0(qd(t)).then(()=>!0).catch(()=>!1)||await hh(ue.join(o,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as S0,readFile as Xr,realpath as _h,writeFile as D0}from"node:fs/promises";import Qr from"node:path";function Ah(e,t){return Qr.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function Rh(e){let t=await _h(e.projectRoot),r=await Jt(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await Xr(Qr.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await Xr(Qr.join(t,".dyyto","plans",`${n.planId}.json`));let i=JSON.parse(await Xr(Qr.join(r.transactionRoot,".dyyto","transactions",n.planId,"journal.json"),"utf8"));if(i.state!=="recovery-required"&&i.state!=="recovering"||!Array.isArray(i.operations))throw new Error("RECOVERY_OVERRIDE_INVALID");let o=[];for(let l of i.operations){if(l.before.kind!=="present"||!l.before.preimageDigest)continue;let p=await Xr(Qr.join(r.transactionRoot,...l.path.split("/"))).catch(u=>u.code==="ENOENT"?void 0:Promise.reject(u));if(!p)continue;let m=h(p);m!==l.before.digest&&m!==l.desiredDigest&&o.push({path:l.path,currentDigest:m,preimageDigest:l.before.preimageDigest})}let a=e.now??new Date,s=_d({transactionPlanId:n.planId,transactionRootDigest:h(r.transactionRoot),conflicts:o,generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+30*6e4).toISOString()}),c=Ah(t,s.planId);await S0(Qr.dirname(c),{recursive:!0});let d=`${JSON.stringify(s,null,2)}
235
+ `;return await D0(c,d,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await Xr(c,"utf8")!==d)throw l}),s}async function Eh(e){let t=await _h(e.projectRoot),r=await Jt(t),n=Ey(JSON.parse(await Xr(Ah(t,e.approvedPlanId),"utf8")));if(n.planId!==e.approvedPlanId||Date.now()>Date.parse(n.expiresAt)||r.mode!=="pnpm-shared-lockfile"||h(r.transactionRoot)!==n.transactionRootDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT");for(let i of n.conflicts){let o=await Xr(Qr.join(r.transactionRoot,...i.path.split("/")));if(h(o)!==i.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return Ol({projectRoot:r.transactionRoot,planId:n.transactionPlanId,now:(e.now??new Date).toISOString(),approvedConflicts:n.conflicts.map(({path:i,currentDigest:o})=>({path:i,currentDigest:o}))})}function ss(e){return e.endsWith(`
236
236
  `)?e:`${e}
237
- `}function Rh(e,t,r){return t==="json"?{stdout:as(JSON.stringify(e)),stderr:""}:{stdout:as(r),stderr:""}}function Eh(e,t){if(t==="json")return{stdout:"",stderr:as(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
238
- Next: ${e.error.nextStep}`;return{stdout:"",stderr:as(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as O0,readFile as no,realpath as Ph}from"node:fs/promises";import qe from"node:path";var yt=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function ro(e){let t=await O0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return no(e)}}async function Nh(e){let t=qe.dirname(e);for(;t!==qe.parse(t).root;){if(await ro(qe.join(t,"pnpm-workspace.yaml"))&&await ro(qe.join(t,"pnpm-lock.yaml"))&&await ro(qe.join(t,"project-capabilities.json")))return t;t=qe.dirname(t)}throw new yt("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function S0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function Oh(e,t){let r=e.toString("utf8"),n=t.toString("utf8"),i=/^verifyDepsBeforeRun:\s*([^\r\n#]+)$/mu.exec(n)?.[1]?.trim();i&&!/^verifyDepsBeforeRun:/mu.test(r)&&(r+=`${r.endsWith(`
237
+ `}function Ph(e,t,r){return t==="json"?{stdout:ss(JSON.stringify(e)),stderr:""}:{stdout:ss(r),stderr:""}}function Nh(e,t){if(t==="json")return{stdout:"",stderr:ss(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
238
+ Next: ${e.error.nextStep}`;return{stdout:"",stderr:ss(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as j0,readFile as oo,realpath as Oh}from"node:fs/promises";import ze from"node:path";var yt=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function io(e){let t=await j0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return oo(e)}}async function Sh(e){let t=ze.dirname(e);for(;t!==ze.parse(t).root;){if(await io(ze.join(t,"pnpm-workspace.yaml"))&&await io(ze.join(t,"pnpm-lock.yaml"))&&await io(ze.join(t,"project-capabilities.json")))return t;t=ze.dirname(t)}throw new yt("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function C0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function Dh(e,t){let r=e.toString("utf8"),n=t.toString("utf8"),i=/^verifyDepsBeforeRun:\s*([^\r\n#]+)$/mu.exec(n)?.[1]?.trim();i&&!/^verifyDepsBeforeRun:/mu.test(r)&&(r+=`${r.endsWith(`
239
239
  `)?"":`
240
240
  `}verifyDepsBeforeRun: ${i}
241
- `);let o=n.split(/\r?\n/u),a=[],s=!1;for(let l of o){if(/^allowBuilds:\s*$/u.test(l)){s=!0;continue}if(s&&/^ ['"]?[^'"\s][^:]*['"]?:\s*true\s*$/u.test(l)){a.push(l.trim());continue}s&&l.trim()&&!/^\s/u.test(l)&&(s=!1)}let c=a.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(`
241
+ `);let o=n.split(/\r?\n/u),a=[],s=!1;for(let d of o){if(/^allowBuilds:\s*$/u.test(d)){s=!0;continue}if(s&&/^ ['"]?[^'"\s][^:]*['"]?:\s*true\s*$/u.test(d)){a.push(d.trim());continue}s&&d.trim()&&!/^\s/u.test(d)&&(s=!1)}let c=a.filter(d=>!r.split(/\r?\n/u).some(l=>l.trim()===d));if(c.length>0)if(!/^allowBuilds:\s*$/mu.test(r))r+=`${r.endsWith(`
242
242
  `)?"":`
243
243
  `}allowBuilds:
244
- ${c.map(l=>` ${l}`).join(`
244
+ ${c.map(d=>` ${d}`).join(`
245
245
  `)}
246
- `;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(`
246
+ `;else{let d=r.split(/\r?\n/u),p=d.findIndex(m=>/^allowBuilds:\s*$/u.test(m))+1;for(;p<d.length&&(!d[p].trim()||/^\s/u.test(d[p]));)p+=1;d.splice(p,0,...c.map(m=>` ${m}`)),r=d.join(`
247
247
  `)}return Buffer.from(r.endsWith(`
248
248
  `)?r:`${r}
249
- `)}async function Sh(e){let t=await Ph(qe.resolve(e.projectRoot)),r=await Nh(t),n=qe.relative(r,t).split(qe.sep).join("/");if(!n||n.startsWith("../"))throw new yt("WORKSPACE_TOPOLOGY_OWNER_MISSING");let i=await ro(qe.join(t,"pnpm-lock.yaml")),o=await ro(qe.join(t,"pnpm-workspace.yaml"));if(!i&&!o)throw new yt("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let a=await no(qe.join(r,"pnpm-lock.yaml")),s=await no(qe.join(r,"pnpm-workspace.yaml"));if(!S0(a.toString("utf8"),n))throw new yt("WORKSPACE_TOPOLOGY_IMPORTER_MISSING");if(o&&!/^packages:\s*\[\]/mu.test(o.toString("utf8")))throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let c=o?Oh(s,o):s,l=[...h(c)!==h(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:h(s),desiredDigest:h(c)}]:[],...i?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:h(i)}]:[],...o?[{path:`${n}/pnpm-workspace.yaml`,kind:"remove",ownership:"owned-file",baseDigest:h(o)}]:[]],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:h("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 Bt({projectRoot:t,transactionRoot:r,plan:f,now:d}),transactionRoot:r}}async function Dh(e){let t=await Ph(qe.resolve(e.projectRoot)),r=await Nh(t),n=await Mr({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let i=new Map,o=n.operations.find(c=>c.path==="pnpm-workspace.yaml"&&c.kind==="replace");if(o){let c=await no(qe.join(t,"pnpm-workspace.yaml")),l=await no(qe.join(r,"pnpm-workspace.yaml")),d=Oh(l,c);if(h(d)!==o.desiredDigest)throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");i.set("pnpm-workspace.yaml",d)}let a=await lr({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:i,now:e.now??new Date().toISOString()}),s=await dr(a);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as D0}from"node:readline";import ss from"node:process";var j0=[{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 cs(e,t){return{jsonrpc:"2.0",id:e,result:t}}function io(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function C0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return cs(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:Fn},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 cs(r,{tools:j0});if(e.method!=="tools/call")return io(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 io(r,-32602,"tools/call \u53C2\u6570\u65E0\u6548");let n=e.params.arguments??{};try{let i;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");i=await Ka({...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");i=await Ya({ref:n.ref,...t===void 0?{}:{roots:t}})}else return io(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return cs(r,{content:[{type:"text",text:JSON.stringify(i)}],structuredContent:i})}catch(i){let o=i instanceof Error?i.message:"Catalog \u5DE5\u5177\u6267\u884C\u5931\u8D25";return cs(r,{isError:!0,content:[{type:"text",text:o}]})}}async function jh(){let e=D0({input:ss.stdin,crlfDelay:1/0,terminal:!1});for await(let t of e){if(t.trim()==="")continue;let r;try{let i=JSON.parse(t);if(!Bd(i)||i.jsonrpc!=="2.0"||typeof i.method!="string"){ss.stdout.write(`${JSON.stringify(io(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
250
- `);continue}r=i}catch{ss.stdout.write(`${JSON.stringify(io(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
251
- `);continue}let n=await C0(r);n!==null&&ss.stdout.write(`${JSON.stringify(n)}
252
- `)}}import{createHash as $0}from"node:crypto";import{spawnSync as T0}from"node:child_process";import{chmod as L0,lstat as x0,mkdir as V0,readdir as M0,readFile as Ht,realpath as Ch,rename as F0,unlink as U0,writeFile as q0}from"node:fs/promises";import _e from"node:path";var oo="1.1.0",Lt=Object.freeze({"@aipt/cli":"0.1.36","@aipt/idp-cli":"0.1.6","@aipt/idp-deploy":"0.1.11"}),$h=Object.entries(Lt).map(([e,t])=>`${e}@${t}`),Gd="<!-- dyyto:agent-policy:start -->",ao="<!-- dyyto:agent-policy:end -->",We=class extends Error{constructor(r,n){super(n);this.code=r}code},Je=e=>`sha256:${$0("sha256").update(e).digest("hex")}`,en=e=>Array.isArray(e)?`[${e.map(en).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)}:${en(r)}`).join(",")}}`:JSON.stringify(e),ls=`${Gd}
249
+ `)}async function jh(e){let t=await Oh(ze.resolve(e.projectRoot)),r=await Sh(t),n=ze.relative(r,t).split(ze.sep).join("/");if(!n||n.startsWith("../"))throw new yt("WORKSPACE_TOPOLOGY_OWNER_MISSING");let i=await io(ze.join(t,"pnpm-lock.yaml")),o=await io(ze.join(t,"pnpm-workspace.yaml"));if(!i&&!o)throw new yt("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let a=await oo(ze.join(r,"pnpm-lock.yaml")),s=await oo(ze.join(r,"pnpm-workspace.yaml"));if(!C0(a.toString("utf8"),n))throw new yt("WORKSPACE_TOPOLOGY_IMPORTER_MISSING");if(o&&!/^packages:\s*\[\]/mu.test(o.toString("utf8")))throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let c=o?Dh(s,o):s,d=[...h(c)!==h(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:h(s),desiredDigest:h(c)}]:[],...i?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:h(i)}]:[],...o?[{path:`${n}/pnpm-workspace.yaml`,kind:"remove",ownership:"owned-file",baseDigest:h(o)}]:[]],l=e.generatedAt??new Date().toISOString(),p=e.expiresAt??new Date(Date.parse(l)+30*6e4).toISOString(),m=Pe({action:"upgrade",capability:{schemaVersion:1,capabilityId:"foundation.workspace-topology-migration",version:"1.0.0",integrity:h("foundation.workspace-topology-migration@1.0.0"),assets:[],verifiers:[]},changes:d,observedAssets:d.map(f=>({path:f.path,exists:!0,digest:f.baseDigest})),generatedAt:l,expiresAt:p});return{plan:await Gt({projectRoot:t,transactionRoot:r,plan:m,now:l}),transactionRoot:r}}async function Ch(e){let t=await Oh(ze.resolve(e.projectRoot)),r=await Sh(t),n=await Fr({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let i=new Map,o=n.operations.find(c=>c.path==="pnpm-workspace.yaml"&&c.kind==="replace");if(o){let c=await oo(ze.join(t,"pnpm-workspace.yaml")),d=await oo(ze.join(r,"pnpm-workspace.yaml")),l=Dh(d,c);if(h(l)!==o.desiredDigest)throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");i.set("pnpm-workspace.yaml",l)}let a=await dr({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:i,now:e.now??new Date().toISOString()}),s=await pr(a);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as $0}from"node:readline";import cs from"node:process";var T0=[{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 zd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ls(e,t){return{jsonrpc:"2.0",id:e,result:t}}function ao(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function L0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return ls(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:Fn},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 ls(r,{tools:T0});if(e.method!=="tools/call")return ao(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!zd(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!zd(e.params.arguments))return ao(r,-32602,"tools/call \u53C2\u6570\u65E0\u6548");let n=e.params.arguments??{};try{let i;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");i=await Ya({...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");i=await Ha({ref:n.ref,...t===void 0?{}:{roots:t}})}else return ao(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return ls(r,{content:[{type:"text",text:JSON.stringify(i)}],structuredContent:i})}catch(i){let o=i instanceof Error?i.message:"Catalog \u5DE5\u5177\u6267\u884C\u5931\u8D25";return ls(r,{isError:!0,content:[{type:"text",text:o}]})}}async function $h(){let e=$0({input:cs.stdin,crlfDelay:1/0,terminal:!1});for await(let t of e){if(t.trim()==="")continue;let r;try{let i=JSON.parse(t);if(!zd(i)||i.jsonrpc!=="2.0"||typeof i.method!="string"){cs.stdout.write(`${JSON.stringify(ao(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
250
+ `);continue}r=i}catch{cs.stdout.write(`${JSON.stringify(ao(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
251
+ `);continue}let n=await L0(r);n!==null&&cs.stdout.write(`${JSON.stringify(n)}
252
+ `)}}import{createHash as x0}from"node:crypto";import{spawnSync as V0}from"node:child_process";import{chmod as M0,lstat as F0,mkdir as U0,readdir as Jd,readFile as Vt,realpath as Th,rename as q0,unlink as B0,writeFile as z0}from"node:fs/promises";import H from"node:path";var so="1.1.0",xt=Object.freeze({"@aipt/cli":"0.1.38","@aipt/idp-cli":"0.1.6","@aipt/idp-deploy":"0.1.11"}),Lh=Object.entries(xt).map(([e,t])=>`${e}@${t}`),Wd="<!-- dyyto:agent-policy:start -->",co="<!-- dyyto:agent-policy:end -->",Ge=class extends Error{constructor(r,n){super(n);this.code=r}code},xe=e=>`sha256:${x0("sha256").update(e).digest("hex")}`,en=e=>Array.isArray(e)?`[${e.map(en).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)}:${en(r)}`).join(",")}}`:JSON.stringify(e),ds=`${Wd}
253
253
  ## Dyyto \u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0
254
254
 
255
255
  \u672C\u9879\u76EE\u7531 Dyyto \u7EB3\u7BA1\u3002\u5F00\u59CB\u7F16\u7801\u524D\u6267\u884C \`dyyto ready --project .\`\uFF1B\u53EA\u6709\u72B6\u6001\u4E3A \`ready\` \u624D\u80FD\u58F0\u660E\u5F00\u53D1\u73AF\u5883\u5DF2\u5C31\u7EEA\u3002
@@ -259,16 +259,16 @@ ${c.map(l=>` ${l}`).join(`
259
259
  - \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
260
260
  - \u4E0D\u7ED5\u8FC7\u4E0D\u53EF\u53D8 Lock\u3001Repository State \u4E0E Evidence\uFF0C\u4E0D\u9759\u9ED8\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002
261
261
  - \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
262
- ${ao}`;function B0(e,t){let r=`${t}
262
+ ${co}`;function G0(e,t){let r=`${t}
263
263
 
264
- ${ls}
265
- `,n=e.indexOf(Gd),i=e.indexOf(ao);if(n<0&&i<0)return e.length===0?r:`${e.trimEnd()}
264
+ ${ds}
265
+ `,n=e.indexOf(Wd),i=e.indexOf(co);if(n<0&&i<0)return e.length===0?r:`${e.trimEnd()}
266
266
 
267
- ${ls}
268
- `;if(n<0||i<n)throw new We("AGENT_POLICY_REGION_INVALID",`${t}\u4E2D\u7684Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002`);return`${e.slice(0,n)}${ls}${e.slice(i+ao.length)}`}function z0(e){let t=e.indexOf(Gd),r=e.indexOf(ao);if(t<0&&r<0)return e;if(t<0||r<t)throw new We("AGENT_POLICY_REGION_INVALID","Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002");let n=`${e.slice(0,t)}${e.slice(r+ao.length)}`.trim();return n===""||/^# (?:Agent Instructions|Claude Code Instructions|Antigravity Agent Rules)\s*$/u.test(n)||n.startsWith(`---
267
+ ${ds}
268
+ `;if(n<0||i<n)throw new Ge("AGENT_POLICY_REGION_INVALID",`${t}\u4E2D\u7684Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002`);return`${e.slice(0,n)}${ds}${e.slice(i+co.length)}`}function J0(e){let t=e.indexOf(Wd),r=e.indexOf(co);if(t<0&&r<0)return e;if(t<0||r<t)throw new Ge("AGENT_POLICY_REGION_INVALID","Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002");let n=`${e.slice(0,t)}${e.slice(r+co.length)}`.trim();return n===""||/^# (?:Agent Instructions|Claude Code Instructions|Antigravity Agent Rules)\s*$/u.test(n)||n.startsWith(`---
269
269
  description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219`)||n.startsWith(`---
270
270
  name: dyyto-engineering`)?null:`${n}
271
- `}var zd=[["AGENTS.md","# Agent Instructions"],["CLAUDE.md","# Claude Code Instructions"],[".cursor/rules/dyyto-engineering.mdc",`---
271
+ `}var Gd=[["AGENTS.md","# Agent Instructions"],["CLAUDE.md","# Claude Code Instructions"],[".cursor/rules/dyyto-engineering.mdc",`---
272
272
  description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219
273
273
  alwaysApply: true
274
274
  ---`],[".agent/rules/dyyto-engineering.md","# Antigravity Agent Rules"],[".agents/skills/dyyto-engineering/SKILL.md",`---
@@ -277,12 +277,13 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
277
277
  ---`],[".claude/skills/dyyto-engineering/SKILL.md",`---
278
278
  name: dyyto-engineering
279
279
  description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u9020\u3001\u9A8C\u8BC1\u6216\u90E8\u7F72\u65F6\u4F7F\u7528\u3002
280
- ---`]];async function Jd(e){if(!_e.isAbsolute(e))throw new We("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await Ch(e),r=await x0(t);if(!r.isDirectory()||r.isSymbolicLink())throw new We("BOOTSTRAP_PROJECT_INVALID","\u9879\u76EE\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u3002");return t}async function Qr(e){return Ht(e,"utf8").catch(t=>t.code==="ENOENT"?"":Promise.reject(t))}async function ds(e,t){await V0(_e.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await q0(r,t,{mode:384,flag:"wx"}),await F0(r,e),await L0(e,e.endsWith(".json")?384:420)}function Th(){return[{id:"engineering-workflow",package:"@aipt/cli",version:Lt["@aipt/cli"],path:"docs/engineering-workflow.md",contentDigest:"sha256:2f3072966d33b97b69c528b9db8ecb0dee0b6d1a36e2841f15b535ec2c802abb"},{id:"vibe-coding-guide",package:"@aipt/cli",version:Lt["@aipt/cli"],path:"docs/vibe-coding-guide.md",contentDigest:"sha256:668f49e7213af970624704a86c0366f47b137f6a1992e0d5f312eb066b752908"},{id:"toolchain-troubleshooting",package:"@aipt/cli",version:Lt["@aipt/cli"],path:"docs/troubleshooting.md",contentDigest:"sha256:2040de770d2c2bd81eea709185e913afd6d6cf4c78f1e30c82e6bcb42b066de9"},{id:"idp-integration",package:"@aipt/idp-cli",version:Lt["@aipt/idp-cli"],path:"docs/integration.md",contentDigest:"sha256:5a69f99fd3dc6eee0c8d7af9663b1f1e0984aced240bf008c65418b478e2a65a"},{id:"local-deployment",package:"@aipt/idp-deploy",version:Lt["@aipt/idp-deploy"],path:"docs/local-deployment.md",contentDigest:"sha256:d6aec46bb077edf239a9708ae7852c6679d6b6ae5f1f810ba7fed5aadb8cf90e"},{id:"application-config-workspace",package:"@aipt/idp-deploy",version:Lt["@aipt/idp-deploy"],path:"docs/application-config-workspace.md",contentDigest:"sha256:848663f2528d1f7de5cdffa6c2d86c3f272642a4e5257b450534b12c83b66bef"},{id:"idpctl-troubleshooting",package:"@aipt/idp-deploy",version:Lt["@aipt/idp-deploy"],path:"docs/troubleshooting.md",contentDigest:"sha256:db2f18eb19fb98e81edf6ea2789fcd72c5158d733a7e93b9fe9f1c34c4632d10"}].map(e=>({...e,referenceDigest:Je(en(e))}))}async function Lh(e){let t=await Jd(e),r=[];for(let[p,f]of zd){let u=await Qr(_e.join(t,p)),m=B0(u,f);r.push({path:p,preimageDigest:Je(u),desired:m,desiredDigest:Je(m)})}let n=`${JSON.stringify({schemaVersion:1,kind:"DyytoToolchainLock",packageManager:"pnpm",tools:Lt},null,2)}
281
- `,i=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:oo,digest:Je(ls)},adapters:zd.map(([p])=>p)},null,2)}
282
- `,o=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:Th()},null,2)}
283
- `;for(let[p,f]of[[".dyyto/toolchain.lock.json",n],[".dyyto/agent-policy.lock.json",i],[".dyyto/documentation.lock.json",o]]){let u=await Qr(_e.join(t,p));r.push({path:p,preimageDigest:Je(u),desired:f,desiredDigest:Je(f)})}let a={schemaVersion:1,kind:"DyytoBootstrapPlan",projectRoot:t,policyVersion:oo,files:r,createdAt:new Date().toISOString()},s={...a,planId:Je(en(a))},c=_e.join(t,".dyyto/plans/bootstrap",`${s.planId.slice(7)}.json`),l=await Qr(c),d=`${JSON.stringify(s,null,2)}
284
- `;if(l&&l!==d)throw new We("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return l||await ds(c,d),{plan:s,planFile:c,changed:r.filter(p=>p.preimageDigest!==p.desiredDigest).map(p=>p.path)}}async function xh(e){let t=await Jd(e),r=[];for(let[c]of zd){let l=await Qr(_e.join(t,c)),d=z0(l);r.push({path:c,preimageDigest:Je(l),desired:d,desiredDigest:Je(d??"")})}let n=".dyyto/agent-policy.lock.json",i=await Qr(_e.join(t,n));r.push({path:n,preimageDigest:Je(i),desired:null,desiredDigest:Je("")});let o={schemaVersion:1,kind:"DyytoAgentRemovalPlan",projectRoot:t,policyVersion:oo,files:r,createdAt:new Date().toISOString()},a={...o,planId:Je(en(o))},s=_e.join(t,".dyyto/plans/bootstrap",`${a.planId.slice(7)}.json`);return await ds(s,`${JSON.stringify(a,null,2)}
285
- `),{plan:a,planFile:s,changed:r.filter(c=>c.preimageDigest!==c.desiredDigest).map(c=>c.path)}}async function Wd(e,t){if(!_e.isAbsolute(e))throw new We("BOOTSTRAP_PLAN_NOT_ABSOLUTE","Bootstrap Plan\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let r=JSON.parse(await Ht(await Ch(e),"utf8")),{planId:n,...i}=r;if(n!==t||Je(en(i))!==n)throw new We("BOOTSTRAP_PLAN_NOT_APPROVED","\u5FC5\u987B\u6279\u51C6\u6458\u8981\u6709\u6548\u7684\u7CBE\u786EBootstrap Plan\u3002 ");for(let a of r.files)if(Je(await Qr(_e.join(r.projectRoot,a.path)))!==a.preimageDigest)throw new We("BOOTSTRAP_PREIMAGE_CHANGED",`${a.path}\u5728Plan\u540E\u5DF2\u88AB\u4FEE\u6539\u3002`);let o=_e.join(r.projectRoot,".dyyto/preimages/bootstrap",n.slice(7));for(let a of r.files){let s=_e.join(r.projectRoot,a.path),c=await Qr(s);c&&c!==a.desired&&await ds(_e.join(o,a.path),c),a.desired===null?c&&await U0(s):c!==a.desired&&await ds(s,a.desired)}return{schemaVersion:1,status:"verified",planId:n,projectRoot:r.projectRoot,changed:r.files.filter(a=>a.preimageDigest!==a.desiredDigest).map(a=>a.path),preimageDirectory:o}}async function G0(e){let t=[],r=["packages","apps","services"];for(let n of r){let i=_e.join(e,n);try{let o=await M0(i,{withFileTypes:!0});for(let a of o){if(!a.isDirectory())continue;let s=_e.join(i,a.name,"package.json");try{let c=JSON.parse(await Ht(s,"utf8"));if(!c.name)continue;let l="incubating";c.dyyto?.tier?l=c.dyyto.tier:c.name.startsWith("@aipt/")||c.name.startsWith("@dyyto/")?l="platform-mirror":(a.name==="domain"||a.name==="persistence"||a.name==="application"||a.name==="api-contracts"||c.private===!0)&&(l="proprietary"),t.push({name:c.name,version:c.version||"0.0.0",relativePath:`${n}/${a.name}`,tier:l})}catch{}}}catch{}}return t}async function so(e){let t=await Jd(e),r={tools:Lt};try{r=JSON.parse(await Ht(_e.join(t,".dyyto/toolchain.lock.json"),"utf8"))}catch{}let n={documents:Th()};try{n=JSON.parse(await Ht(_e.join(t,".dyyto/documentation.lock.json"),"utf8"))}catch{}let i;try{i=JSON.parse(await Ht(_e.join(t,"project-capabilities.json"),"utf8"))}catch{try{i=JSON.parse(await Ht(_e.join(t,".dyyto/project-capabilities.json"),"utf8"))}catch{}}let o=await G0(t),a=m=>{let g=T0("git",["-C",t,...m],{encoding:"utf8",shell:!1});return g.status===0?g.stdout.trim():null},s=a(["branch","--show-current"]),c=a(["rev-parse","HEAD"]),l=a(["rev-parse","--show-toplevel"]),d=await Ht(_e.join(t,".dyyto/agent-policy.lock.json"),"utf8").then(m=>JSON.parse(m)).catch(()=>null),p=await Ht(_e.join(t,".dyyto/documentation.lock.json"),"utf8").then(m=>JSON.parse(m)).catch(()=>null),f=d?.policy?.version===oo&&Array.isArray(p?.documents)?"current":d===null&&p===null?"not-bootstrapped":"drifted",u={schemaVersion:1,kind:"DyytoContextBundle",projectRoot:t,repository:{root:l,branch:s,commit:c},bootstrap:{status:f,policyVersion:d?.policy?.version??null,expectedPolicyVersion:oo},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","\u4E0D\u5F97\u5C06\u4E1A\u52A1\u4E13\u5C5ESchema\u6216\u79C1\u6709\u72B6\u6001\u6CC4\u9732\u5230\u901A\u7528\u5305\u4E2D"],assetPerception:{localPackages:o,declaredCapabilities:i||null,proprietaryCount:o.filter(m=>m.tier==="proprietary").length,incubatingCount:o.filter(m=>m.tier==="incubating").length},vibeCodingDecisionGuide:{rulePrioritizeCatalog:"\u65B0\u589E\u529F\u80FD\u6216\u901A\u7528\u4F9D\u8D56\u524D\uFF0C\u5FC5\u987B\u5148\u6267\u884C dyyto catalog search \u68C0\u7D22\u5E76\u590D\u7528\u5DF2\u53D1\u884C\u7684\u901A\u7528\u80FD\u529B\u5305\u3002",ruleLocalIncubation:"\u82E5 Catalog \u5C1A\u65E0\u73B0\u6210\u80FD\u529B\uFF0C\u5E94\u5728 packages/ \u5EFA\u7ACB\u72EC\u7ACB\u5B50\u5305\u8FDB\u884C\u5B75\u5316\uFF1B\u4E25\u7981\u5F15\u7528\u4E1A\u52A1\u4E13\u7528\u6301\u4E45\u5C42\u6216\u679A\u4E3E\uFF0C\u5E76\u9644\u5E26 100% \u8986\u76D6\u7387\u7684 Vitest \u5355\u6D4B\u3002",rulePublishPromotion:"\u672C\u5730\u901A\u7528\u5305\u6210\u719F\u4E14\u901A\u8FC7 Golden Set \u9A8C\u6536\u540E\uFF0C\u4F7F\u7528 dyyto package publish \u53D1\u5E03\u5230\u79C1\u6709/\u516C\u5F00\u955C\u50CF\uFF0C\u4E1A\u52A1\u4ED3\u5E93\u968F\u540E\u5207\u56DE\u8BED\u4E49\u7248\u672C\u4F9D\u8D56\u3002"}};return{...u,contextDigest:Je(en(u))}}var Vh=e=>({"engineering-workflow":`# \u5DE5\u7A0B\u5F00\u53D1\u5DE5\u4F5C\u6D41
280
+ ---`]];async function Kd(e){if(!H.isAbsolute(e))throw new Ge("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await Th(e),r=await F0(t);if(!r.isDirectory()||r.isSymbolicLink())throw new Ge("BOOTSTRAP_PROJECT_INVALID","\u9879\u76EE\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u3002");return t}async function Ot(e){return Vt(e,"utf8").catch(t=>t.code==="ENOENT"?"":Promise.reject(t))}async function ps(e,t){await U0(H.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await z0(r,t,{mode:384,flag:"wx"}),await q0(r,e),await M0(e,e.endsWith(".json")?384:420)}async function W0(e){let t=new Set,r=async n=>{for(let i of await Jd(n,{withFileTypes:!0}).catch(()=>[])){if(["node_modules","dist",".next","coverage",".dyyto"].includes(i.name))continue;let o=H.join(n,i.name);if(i.isDirectory()&&!i.isSymbolicLink())await r(o);else if(i.isFile()&&/\.(?:[cm]?[jt]sx?)$/u.test(i.name)&&!/\.(?:test|spec)\.[cm]?[jt]sx?$/u.test(i.name)){let a=await Vt(o,"utf8");for(let s of a.matchAll(/\bprocess\.env\.([A-Z][A-Z0-9_]*)\b/gu))t.add(s[1]);for(let s of a.matchAll(/\bprocess\.env\[\s*["']([A-Z][A-Z0-9_]*)["']\s*\]/gu))t.add(s[1])}}};for(let n of["src","app"])await r(H.join(e,n));return[...t].sort()}function xh(){return[{id:"engineering-workflow",package:"@aipt/cli",version:xt["@aipt/cli"],path:"docs/engineering-workflow.md",contentDigest:"sha256:2f3072966d33b97b69c528b9db8ecb0dee0b6d1a36e2841f15b535ec2c802abb"},{id:"vibe-coding-guide",package:"@aipt/cli",version:xt["@aipt/cli"],path:"docs/vibe-coding-guide.md",contentDigest:"sha256:82f660ef96c3f53f5436ab41faffc60f2f93fbba8d8e1269cde83431cf77e2c1"},{id:"toolchain-troubleshooting",package:"@aipt/cli",version:xt["@aipt/cli"],path:"docs/troubleshooting.md",contentDigest:"sha256:2040de770d2c2bd81eea709185e913afd6d6cf4c78f1e30c82e6bcb42b066de9"},{id:"idp-integration",package:"@aipt/idp-cli",version:xt["@aipt/idp-cli"],path:"docs/integration.md",contentDigest:"sha256:5a69f99fd3dc6eee0c8d7af9663b1f1e0984aced240bf008c65418b478e2a65a"},{id:"local-deployment",package:"@aipt/idp-deploy",version:xt["@aipt/idp-deploy"],path:"docs/local-deployment.md",contentDigest:"sha256:d6aec46bb077edf239a9708ae7852c6679d6b6ae5f1f810ba7fed5aadb8cf90e"},{id:"application-config-workspace",package:"@aipt/idp-deploy",version:xt["@aipt/idp-deploy"],path:"docs/application-config-workspace.md",contentDigest:"sha256:848663f2528d1f7de5cdffa6c2d86c3f272642a4e5257b450534b12c83b66bef"},{id:"idpctl-troubleshooting",package:"@aipt/idp-deploy",version:xt["@aipt/idp-deploy"],path:"docs/troubleshooting.md",contentDigest:"sha256:db2f18eb19fb98e81edf6ea2789fcd72c5158d733a7e93b9fe9f1c34c4632d10"}].map(e=>({...e,referenceDigest:xe(en(e))}))}async function Vh(e){let t=await Kd(e),r=[];for(let[f,g]of Gd){let y=await Ot(H.join(t,f)),w=G0(y,g);r.push({path:f,preimageDigest:xe(y),desired:w,desiredDigest:xe(w)})}let n=new Set(["nextjs-full-stack-application","workspace-node-application","workspace-web-application"]),i=await Ot(H.join(t,"project-capabilities.json")).then(f=>f?JSON.parse(f):null),o=[];if(i?.profile?.id==="workspace-root")for(let f of["apps","services"])for(let g of await Jd(H.join(t,f),{withFileTypes:!0}).catch(()=>[]))g.isDirectory()&&!g.isSymbolicLink()&&o.push(H.join(t,f,g.name));else o.push(t);for(let f of o.sort()){let g=await Ot(H.join(f,"project-capabilities.json")),y=await Ot(H.join(f,".env.example"));if(!g||!y)continue;let w=JSON.parse(g);if(!n.has(w?.profile?.id))continue;let A=new Set([...y.matchAll(/^([A-Z][A-Z0-9_]*)=/gmu)].map(O=>O[1])),b=(await W0(f)).filter(O=>!A.has(O));if(b.length)throw new Ge("ENVIRONMENT_EXAMPLE_INCOMPLETE",`${H.relative(t,f)||"."} \u7684.env.example\u7F3A\u5C11\u4EE3\u7801\u76F4\u63A5\u6D88\u8D39\u7684\u53D8\u91CF\uFF1A${b.join("\u3001")}`);let R=`${JSON.stringify(wg({manifest:w,environmentExample:y}),null,2)}
281
+ `,I=H.relative(t,H.join(f,"config","application-config.json")).split(H.sep).join("/"),_=await Ot(H.join(t,I));r.push({path:I,preimageDigest:xe(_),desired:R,desiredDigest:xe(R)})}let a=`${JSON.stringify({schemaVersion:1,kind:"DyytoToolchainLock",packageManager:"pnpm",tools:xt},null,2)}
282
+ `,s=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:so,digest:xe(ds)},adapters:Gd.map(([f])=>f)},null,2)}
283
+ `,c=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:xh()},null,2)}
284
+ `;for(let[f,g]of[[".dyyto/toolchain.lock.json",a],[".dyyto/agent-policy.lock.json",s],[".dyyto/documentation.lock.json",c]]){let y=await Ot(H.join(t,f));r.push({path:f,preimageDigest:xe(y),desired:g,desiredDigest:xe(g)})}let d={schemaVersion:1,kind:"DyytoBootstrapPlan",projectRoot:t,policyVersion:so,files:r,createdAt:new Date().toISOString()},l={...d,planId:xe(en(d))},p=H.join(t,".dyyto/plans/bootstrap",`${l.planId.slice(7)}.json`),m=await Ot(p),u=`${JSON.stringify(l,null,2)}
285
+ `;if(m&&m!==u)throw new Ge("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return m||await ps(p,u),{plan:l,planFile:p,changed:r.filter(f=>f.preimageDigest!==f.desiredDigest).map(f=>f.path)}}async function Mh(e){let t=await Kd(e),r=[];for(let[c]of Gd){let d=await Ot(H.join(t,c)),l=J0(d);r.push({path:c,preimageDigest:xe(d),desired:l,desiredDigest:xe(l??"")})}let n=".dyyto/agent-policy.lock.json",i=await Ot(H.join(t,n));r.push({path:n,preimageDigest:xe(i),desired:null,desiredDigest:xe("")});let o={schemaVersion:1,kind:"DyytoAgentRemovalPlan",projectRoot:t,policyVersion:so,files:r,createdAt:new Date().toISOString()},a={...o,planId:xe(en(o))},s=H.join(t,".dyyto/plans/bootstrap",`${a.planId.slice(7)}.json`);return await ps(s,`${JSON.stringify(a,null,2)}
286
+ `),{plan:a,planFile:s,changed:r.filter(c=>c.preimageDigest!==c.desiredDigest).map(c=>c.path)}}async function Yd(e,t){if(!H.isAbsolute(e))throw new Ge("BOOTSTRAP_PLAN_NOT_ABSOLUTE","Bootstrap Plan\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let r=JSON.parse(await Vt(await Th(e),"utf8")),{planId:n,...i}=r;if(n!==t||xe(en(i))!==n)throw new Ge("BOOTSTRAP_PLAN_NOT_APPROVED","\u5FC5\u987B\u6279\u51C6\u6458\u8981\u6709\u6548\u7684\u7CBE\u786EBootstrap Plan\u3002 ");for(let a of r.files)if(xe(await Ot(H.join(r.projectRoot,a.path)))!==a.preimageDigest)throw new Ge("BOOTSTRAP_PREIMAGE_CHANGED",`${a.path}\u5728Plan\u540E\u5DF2\u88AB\u4FEE\u6539\u3002`);let o=H.join(r.projectRoot,".dyyto/preimages/bootstrap",n.slice(7));for(let a of r.files){let s=H.join(r.projectRoot,a.path),c=await Ot(s);c&&c!==a.desired&&await ps(H.join(o,a.path),c),a.desired===null?c&&await B0(s):c!==a.desired&&await ps(s,a.desired)}return{schemaVersion:1,status:"verified",planId:n,projectRoot:r.projectRoot,changed:r.files.filter(a=>a.preimageDigest!==a.desiredDigest).map(a=>a.path),preimageDirectory:o}}async function K0(e){let t=[],r=["packages","apps","services"];for(let n of r){let i=H.join(e,n);try{let o=await Jd(i,{withFileTypes:!0});for(let a of o){if(!a.isDirectory())continue;let s=H.join(i,a.name,"package.json");try{let c=JSON.parse(await Vt(s,"utf8"));if(!c.name)continue;let d="incubating";c.dyyto?.tier?d=c.dyyto.tier:c.name.startsWith("@aipt/")||c.name.startsWith("@dyyto/")?d="platform-mirror":(a.name==="domain"||a.name==="persistence"||a.name==="application"||a.name==="api-contracts"||c.private===!0)&&(d="proprietary"),t.push({name:c.name,version:c.version||"0.0.0",relativePath:`${n}/${a.name}`,tier:d})}catch{}}}catch{}}return t}async function lo(e){let t=await Kd(e),r={tools:xt};try{r=JSON.parse(await Vt(H.join(t,".dyyto/toolchain.lock.json"),"utf8"))}catch{}let n={documents:xh()};try{n=JSON.parse(await Vt(H.join(t,".dyyto/documentation.lock.json"),"utf8"))}catch{}let i;try{i=JSON.parse(await Vt(H.join(t,"project-capabilities.json"),"utf8"))}catch{try{i=JSON.parse(await Vt(H.join(t,".dyyto/project-capabilities.json"),"utf8"))}catch{}}let o=await K0(t),a=f=>{let g=V0("git",["-C",t,...f],{encoding:"utf8",shell:!1});return g.status===0?g.stdout.trim():null},s=a(["branch","--show-current"]),c=a(["rev-parse","HEAD"]),d=a(["rev-parse","--show-toplevel"]),l=await Vt(H.join(t,".dyyto/agent-policy.lock.json"),"utf8").then(f=>JSON.parse(f)).catch(()=>null),p=await Vt(H.join(t,".dyyto/documentation.lock.json"),"utf8").then(f=>JSON.parse(f)).catch(()=>null),m=l?.policy?.version===so&&Array.isArray(p?.documents)?"current":l===null&&p===null?"not-bootstrapped":"drifted",u={schemaVersion:1,kind:"DyytoContextBundle",projectRoot:t,repository:{root:d,branch:s,commit:c},bootstrap:{status:m,policyVersion:l?.policy?.version??null,expectedPolicyVersion:so},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","\u4E0D\u5F97\u5C06\u4E1A\u52A1\u4E13\u5C5ESchema\u6216\u79C1\u6709\u72B6\u6001\u6CC4\u9732\u5230\u901A\u7528\u5305\u4E2D"],assetPerception:{localPackages:o,declaredCapabilities:i||null,proprietaryCount:o.filter(f=>f.tier==="proprietary").length,incubatingCount:o.filter(f=>f.tier==="incubating").length},vibeCodingDecisionGuide:{rulePrioritizeCatalog:"\u65B0\u589E\u529F\u80FD\u6216\u901A\u7528\u4F9D\u8D56\u524D\uFF0C\u5FC5\u987B\u5148\u6267\u884C dyyto catalog search \u68C0\u7D22\u5E76\u590D\u7528\u5DF2\u53D1\u884C\u7684\u901A\u7528\u80FD\u529B\u5305\u3002",ruleLocalIncubation:"\u82E5 Catalog \u5C1A\u65E0\u73B0\u6210\u80FD\u529B\uFF0C\u5E94\u5728 packages/ \u5EFA\u7ACB\u72EC\u7ACB\u5B50\u5305\u8FDB\u884C\u5B75\u5316\uFF1B\u4E25\u7981\u5F15\u7528\u4E1A\u52A1\u4E13\u7528\u6301\u4E45\u5C42\u6216\u679A\u4E3E\uFF0C\u5E76\u9644\u5E26 100% \u8986\u76D6\u7387\u7684 Vitest \u5355\u6D4B\u3002",rulePublishPromotion:"\u672C\u5730\u901A\u7528\u5305\u6210\u719F\u4E14\u901A\u8FC7 Golden Set \u9A8C\u6536\u540E\uFF0C\u4F7F\u7528 dyyto package publish \u53D1\u5E03\u5230\u79C1\u6709/\u516C\u5F00\u955C\u50CF\uFF0C\u4E1A\u52A1\u4ED3\u5E93\u968F\u540E\u5207\u56DE\u8BED\u4E49\u7248\u672C\u4F9D\u8D56\u3002"}};return{...u,contextDigest:xe(en(u))}}var Fh=e=>({"engineering-workflow":`# \u5DE5\u7A0B\u5F00\u53D1\u5DE5\u4F5C\u6D41
286
287
 
287
288
  \u672C\u5730 Sources \u5148\u8FD0\u884C idp-setup init \u5E76\u52A0\u8F7D\u751F\u6210\u7684\u73AF\u5883\u6587\u4EF6\u3002Workspace\u3001\u72EC\u7ACB\u9879\u76EE\u3001Package \u4E0E Application \u5747\u5148\u6267\u884C context \u4E0E doctor\uFF0C\u518D\u67E5\u8BE2 Catalog\u3001\u751F\u6210\u5E76\u5BA1\u6838 Plan\u3001Apply \u540E\u8FD0\u884C Verify\u3002\u914D\u7F6E\u548C\u5BC6\u94A5\u59CB\u7EC8\u4F4D\u4E8E\u4ED3\u5E93\u5916 Config Dir\uFF1B\u90E8\u7F72\u53EA\u4F7F\u7528 idp \u4E0E idpctl bin\u3002
288
289
  `,"idp-integration":`# IDP \u96C6\u6210
@@ -303,14 +304,14 @@ APP_CONFIG_DIR \u662F\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\uFF1B\u591A\u5E94\u752
303
304
  `,"idpctl-troubleshooting":`# idpctl \u8BCA\u65AD
304
305
 
305
306
  \u672A\u77E5\u53C2\u6570\u65F6\u5148\u8FD0\u884C type -a idpctl \u4E0E idpctl --version --json\uFF0C\u786E\u8BA4 PATH \u547D\u4E2D\u9879\u76EE\u9501\u5B9A\u7248\u672C\u3002
306
- `})[e];import{createHash as Mh}from"node:crypto";import{execFile as J0}from"node:child_process";import{chmod as W0,mkdir as Fh,open as K0,readFile as hr,realpath as us,rename as Y0,rm as H0,stat as X0}from"node:fs/promises";import we from"node:path";import{promisify as Z0}from"node:util";var Hd=Z0(J0),tn=e=>`sha256:${Mh("sha256").update(e).digest("hex")}`,Uh=e=>`sha512-${Mh("sha512").update(e).digest("base64")}`,Q0=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,wr=class extends Error{constructor(r,n,i){super(n);this.code=r;this.nextStep=i;this.name="PackagePublishError"}code;nextStep},Q=(e,t,r)=>{throw new wr(e,t,r)};function eO(e){let t=new Map;for(let r of e.split(/\r?\n/u)){let n=r.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");i<1&&Q("PACKAGE_PUBLISH_CONFIG_INVALID","Dyyto\u7EC4\u4EF6.env\u5305\u542B\u975E\u6CD5\u884C\u3002");let o=n.slice(0,i).trim();t.has(o)&&Q("PACKAGE_PUBLISH_CONFIG_INVALID",`Dyyto\u7EC4\u4EF6.env\u91CD\u590D\u58F0\u660E${o}\u3002`),t.set(o,n.slice(i+1).trim())}return t}function tO(e,t){let r=new Map;for(let i of e.split(/\r?\n/u)){let o=i.trim(),a=o.indexOf("=");!o||o.startsWith("#")||a<1||r.set(o.slice(0,a).trim(),o.slice(a+1).trim())}let n=t.startsWith("@")?t.slice(0,t.indexOf("/")):void 0;return(n?r.get(`${n}:registry`):void 0)??r.get("registry")}async function Kd(e,t){we.isAbsolute(e)||Q("PACKAGE_PUBLISH_CONFIG_INVALID",`${t}\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002`);let r=await us(e).catch(()=>Q("PACKAGE_PUBLISH_CONFIG_MISSING",`${t}\u4E0D\u5B58\u5728\u3002`)),n=await X0(r);return(!n.isFile()||(n.mode&63)!==0)&&Q("PACKAGE_PUBLISH_CONFIG_UNSAFE",`${t}\u5FC5\u987B\u662F\u6743\u9650600\u7684\u666E\u901A\u6587\u4EF6\u3002`),r}async function Xd(e,t){let r=process.env.IDP_CONFIG_DIR;(!r||!we.isAbsolute(r))&&Q("PACKAGE_PUBLISH_CONFIG_MISSING","\u7F3A\u5C11\u7EDD\u5BF9IDP_CONFIG_DIR\uFF1B\u5148\u8FD0\u884Cidp-setup init\u5E76source generated/sources.env\u3002");let n=await us(r).catch(()=>Q("PACKAGE_PUBLISH_CONFIG_MISSING","IDP_CONFIG_DIR\u4E0D\u5B58\u5728\u3002"));if(e==="public"){let p=await Kd(we.join(n,"secrets/npm-public/npmrc"),"\u516C\u5171npmrc");return{target:e,registry:"https://registry.npmjs.org/",userConfig:p}}let i=we.join(n,"components/dyyto"),o=await Kd(we.join(i,".env"),"Dyyto\u7EC4\u4EF6.env"),a=eO(await hr(o,"utf8")).get("DYYTO_NPMRC_FILE");(!a||we.isAbsolute(a))&&Q("PACKAGE_PUBLISH_CONFIG_INVALID","DYYTO_NPMRC_FILE\u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u76F8\u5BF9\u8DEF\u5F84\u3002");let s=await Kd(we.resolve(i,a),"\u79C1\u6709npmrc");we.relative(i,s).startsWith("..")&&Q("PACKAGE_PUBLISH_CONFIG_UNSAFE","\u79C1\u6709npmrc\u8D8A\u8FC7Dyyto\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u3002");let c=tO(await hr(s,"utf8"),t);c||Q("PACKAGE_PUBLISH_CONFIG_INVALID","\u79C1\u6709npmrc\u7F3A\u5C11\u5F53\u524D\u5305scope\u7684Registry Binding\u3002");let l=new URL(c),d=new Set(["localhost","127.0.0.1","::1"]).has(l.hostname);return l.protocol!=="https:"&&!(l.protocol==="http:"&&d)&&Q("PACKAGE_PUBLISH_CONFIG_UNSAFE","\u975E\u56DE\u73AF\u79C1\u6709Registry\u5FC5\u987B\u4F7F\u7528HTTPS\u3002"),l.hostname.endsWith("npmjs.org")&&Q("PACKAGE_PUBLISH_CONFIG_INVALID","\u79C1\u6709Registry\u4E0D\u80FD\u6307\u5411npmjs.org\u3002"),{target:e,registry:l.toString(),userConfig:s}}function qh(e){let t={...process.env,NPM_CONFIG_USERCONFIG:e,npm_config_userconfig:e};return delete t.NPM_TOKEN,delete t.npm_token,delete t.NPM_CONFIG_REGISTRY,delete t.npm_config_registry,t}async function Yd(e,t){await Fh(we.dirname(e),{recursive:!0,mode:448}),await W0(we.dirname(e),448);let r=await hr(e).catch(o=>o.code==="ENOENT"?null:Promise.reject(o));if(r){Buffer.from(r).equals(Buffer.from(t))||Q("PACKAGE_PUBLISH_IMMUTABLE_CONFLICT",`\u4E0D\u53EF\u53D8\u6587\u4EF6\u51B2\u7A81\uFF1A${e}`);return}let n=`${e}.${process.pid}.tmp`,i=await K0(n,"wx",384);try{await i.writeFile(t),await i.sync()}finally{await i.close()}await Y0(n,e)}function rO(e){return!e||e==="all"?["private","public"]:e==="private"||e==="public"?[e]:Q("PACKAGE_PUBLISH_ARGUMENT_INVALID","--target\u53EA\u652F\u6301private\u3001public\u6216all\u3002")}async function Bh(e){let t=await us(we.resolve(e.packageRoot)).catch(()=>Q("PACKAGE_MANIFEST_NOT_FOUND","Package\u76EE\u5F55\u4E0D\u5B58\u5728\u3002")),r=await hr(we.join(t,"package.json"),"utf8").catch(()=>Q("PACKAGE_MANIFEST_NOT_FOUND",`\u627E\u4E0D\u5230package.json\uFF1A${t}`)),n;try{n=JSON.parse(r)}catch{return Q("PACKAGE_MANIFEST_INVALID","package.json\u4E0D\u662F\u5408\u6CD5JSON\u3002")}(typeof n.name!="string"||!n.name)&&Q("PACKAGE_NAME_INVALID","package.json\u7F3A\u5C11\u5408\u6CD5name\u3002"),(typeof n.version!="string"||!Q0.test(n.version))&&Q("PACKAGE_VERSION_INVALID","package.json version\u4E0D\u7B26\u5408SemVer\u3002");for(let m of[n.dependencies,n.optionalDependencies])for(let[g,y]of Object.entries(m??{}))typeof y=="string"&&y.startsWith("workspace:")&&Q("PACKAGE_DEPENDENCY_UNPUBLISHABLE",`\u8FD0\u884C\u65F6\u4F9D\u8D56${g}\u4ECD\u4F7F\u7528${y}\u3002`);let i=rO(e.target);await Promise.all(i.map(m=>Xd(m,n.name)));let o=we.join(t,".dyyto/package-publish-artifacts");await Fh(o,{recursive:!0,mode:448});let a;try{a=JSON.parse((await Hd("npm",["pack","--pack-destination",o,"--json"],{cwd:t})).stdout)[0]}catch(m){return Q("PACKAGE_PACK_FAILED",`npm pack\u5931\u8D25\uFF1A${String(m?.stderr??m?.message).slice(0,300)}`)}(!a||typeof a.filename!="string")&&Q("PACKAGE_PACK_FAILED","npm pack\u6CA1\u6709\u8FD4\u56DE\u5236\u54C1\u6587\u4EF6\u540D\u3002");let s=we.join(o,a.filename),c=await hr(s),l=tn(c),d=we.posix.join(".dyyto/package-publish-artifacts",`${l}.tgz`),p=we.join(t,d);s!==p&&(await Yd(p,c),await H0(s,{force:!0}));let f={schemaVersion:2,kind:"PackagePublishPlan",packageName:n.name,version:n.version,packageRoot:t,manifestDigest:tn(r),targets:i,access:e.access??n.publishConfig?.access??"public",tag:e.tag??n.publishConfig?.tag??"latest",tarballDigest:l,integrity:Uh(c),artifactFile:d,filesCount:a.entryCount??a.files?.length??0,unpackedBytes:a.unpackedSize??c.byteLength},u=Object.freeze({...f,planId:tn(JSON.stringify(f))});return await Yd(we.join(t,".dyyto/package-publish-plans",`${u.planId}.json`),Buffer.from(`${JSON.stringify(u,null,2)}
307
- `)),u}async function Zd(e,t){/^sha256:[a-f0-9]{64}$/u.test(t)||Q("PACKAGE_PUBLISH_APPROVAL_INVALID","--approve/--plan\u5FC5\u987B\u662F\u5B8C\u6574Plan ID\u3002");let r=await us(we.resolve(e)),n=JSON.parse(await hr(we.join(r,".dyyto/package-publish-plans",`${t}.json`),"utf8"));(n.schemaVersion!==2||n.kind!=="PackagePublishPlan"||n.planId!==t||n.packageRoot!==r)&&Q("PACKAGE_PUBLISH_PLAN_INVALID","Plan\u65E0\u6548\u6216\u4E0D\u5C5E\u4E8E\u5F53\u524DPackage\u3002");let{planId:i,...o}=n;return tn(JSON.stringify(o))!==t&&Q("PACKAGE_PUBLISH_PLAN_INVALID","Plan\u6458\u8981\u4E0D\u5339\u914D\u3002"),n}async function ps(e,t){try{let r=JSON.parse((await Hd("npm",["view",`${t.packageName}@${t.version}`,"version","dist.integrity","bin","--json","--registry",e.registry],{env:qh(e.userConfig)})).stdout);return{exists:!0,integrity:r["dist.integrity"],bin:r.bin}}catch(r){if(/E404|404 Not Found|No match found/u.test(String(r?.stderr??r?.message)))return{exists:!1};throw r}}async function nO(e,t){for(let r=0;r<8;r+=1){let n=await ps(e,t);if(n.exists&&n.integrity===t.integrity)return n;await new Promise(i=>setTimeout(i,500*(r+1)))}return ps(e,t)}async function zh(e,t){let r=await Zd(e,t);return{planId:t,packageName:r.packageName,version:r.version,expectedIntegrity:r.integrity,results:await Promise.all(r.targets.map(async n=>{let i=await Xd(n,r.packageName);return{target:n,registry:i.registry,...await ps(i,r)}}))}}async function Gh(e){let t=await hr(we.join(e.packageRoot,"package.json"),"utf8");tn(t)!==e.manifestDigest&&Q("PACKAGE_PUBLISH_PREIMAGE_CHANGED","package.json\u5728Plan\u540E\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0Plan\u3002");let r=we.resolve(e.packageRoot,e.artifactFile);we.relative(e.packageRoot,r).startsWith("..")&&Q("PACKAGE_PUBLISH_ARTIFACT_INVALID","\u5236\u54C1\u8D8A\u8FC7Package\u76EE\u5F55\u3002");let n=await hr(r);(tn(n)!==e.tarballDigest||Uh(n)!==e.integrity)&&Q("PACKAGE_PUBLISH_ARTIFACT_CHANGED","\u5236\u54C1\u4E0E\u6279\u51C6Plan\u4E0D\u4E00\u81F4\u3002");let i=[];for(let c of e.targets){let l=await Xd(c,e.packageName),d=await ps(l,e);if(d.exists){d.integrity!==e.integrity&&Q("PACKAGE_PUBLISH_CONFLICT",`${l.registry}\u5DF2\u6709\u540C\u7248\u672C\u4E0D\u540C\u5236\u54C1\u3002`),i.push({target:c,registry:l.registry,status:"already-published",integrity:d.integrity});continue}try{await Hd("npm",["publish",r,"--registry",l.registry,"--tag",e.tag,"--access",e.access],{cwd:e.packageRoot,env:qh(l.userConfig)})}catch(f){return Q("PACKAGE_PUBLISH_FAILED",`${c}\u53D1\u5E03\u5931\u8D25\uFF1A${String(f?.stderr??f?.message).slice(0,300)}`)}let p=await nO(l,e);(!p.exists||p.integrity!==e.integrity)&&Q("PACKAGE_PUBLISH_VERIFY_FAILED",`${c}\u53D1\u5E03\u540Eintegrity\u590D\u9A8C\u5931\u8D25\uFF1B\u53EF\u4F7F\u7528\u540C\u4E00Plan\u5B89\u5168\u91CD\u8BD5\u3002`),i.push({target:c,registry:l.registry,status:"published",integrity:p.integrity})}let o=new Date().toISOString(),a={schemaVersion:2,kind:"PackagePublishReceipt",planId:e.planId,packageName:e.packageName,version:e.version,tarballDigest:e.tarballDigest,results:i,publishedAt:o},s=Object.freeze({...a,receiptId:tn(JSON.stringify(a))});return await Yd(we.join(e.packageRoot,".dyyto/package-publish-receipts",`${s.receiptId}.json`),Buffer.from(`${JSON.stringify(s,null,2)}
308
- `)),s}import{createHash as iO}from"node:crypto";import{mkdir as oO,readFile as aO,realpath as tp,rename as sO,writeFile as cO}from"node:fs/promises";import Mn from"node:path";import{spawnSync as lO}from"node:child_process";var ep=e=>Array.isArray(e)?`[${e.map(ep).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${ep(r)}`).join(",")}}`:JSON.stringify(e),Vn=e=>`sha256:${iO("sha256").update(ep(e)).digest("hex")}`,rn=async e=>aO(e,"utf8").catch(t=>t.code==="ENOENT"?null:Promise.reject(t));async function fs(e,t){await oO(Mn.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await cO(r,`${JSON.stringify(t,null,2)}
309
- `,{flag:"wx",mode:384}),await sO(r,e)}var Qd=(e,t)=>{let r=lO("git",["-C",e,...t],{encoding:"utf8",shell:!1});if(r.status!==0||!r.stdout.trim())throw new Error("DEVELOPMENT_GIT_REVISION_UNAVAILABLE");return r.stdout.trim()};async function Jh(e){let t=await tp(e.projectRoot),r=await so(t);if(r.bootstrap.status!=="current")throw new Error("DEVELOPMENT_BOOTSTRAP_NOT_CURRENT");let n=e.source??"direct",i={repository:Qd(t,["config","--get","remote.origin.url"]),branch:Qd(t,["branch","--show-current"]),commit:Qd(t,["rev-parse","HEAD"])},o=Oy({source:n,intentId:n==="direct"?`direct:${i.branch}:${i.commit.slice(0,12)}`:`${e.requirementId}:${e.taskId}`,title:e.title,summary:e.summary,repository:i,requirementId:e.requirementId??null,taskId:e.taskId??null,acceptance:e.acceptance??[]}),a=Sy({intent:o,worktreePath:t,engineeringContextDigest:r.contextDigest,startedAt:new Date().toISOString()}),s=Mn.join(t,".dyyto/sessions/current.json"),c=await rn(s);if(c){let f=JSON.parse(c);if(f.state==="active"&&f.sessionId!==a.sessionId)throw new Error("DEVELOPMENT_SESSION_CONFLICT")}let l={schemaVersion:1,kind:"DevelopmentSessionPlan",operation:"start",projectRoot:t,preimageDigest:Vn(c??""),session:a},d={...l,planId:Vn(l)},p=Mn.join(t,".dyyto/plans/development",`${d.planId.slice(7)}.json`);if(await rn(p)||await fs(p,d),e.apply){if(Vn(await rn(s)??"")!==d.preimageDigest)throw new Error("DEVELOPMENT_SESSION_PREIMAGE_CHANGED");await fs(s,a)}return{status:e.apply?"active":"planned",planId:d.planId,planFile:p,session:a}}async function Wh(e){let t=Mn.join(await tp(e),".dyyto/sessions/current.json"),r=await rn(t);if(!r)throw new Error("DEVELOPMENT_SESSION_NOT_FOUND");return JSON.parse(r)}async function Kh(e,t){let r=await tp(e),n=Mn.join(r,".dyyto/sessions/current.json"),i=await rn(n);if(!i)throw new Error("DEVELOPMENT_SESSION_NOT_FOUND");let o=Dy(JSON.parse(i),new Date().toISOString()),a={schemaVersion:1,kind:"DevelopmentSessionPlan",operation:"finish",projectRoot:r,preimageDigest:Vn(i),session:o},s={...a,planId:Vn(a)},c=Mn.join(r,".dyyto/plans/development",`${s.planId.slice(7)}.json`);if(await rn(c)||await fs(c,s),t){if(Vn(await rn(n)??"")!==s.preimageDigest)throw new Error("DEVELOPMENT_SESSION_PREIMAGE_CHANGED");await fs(n,o)}return{status:t?"finished":"planned",planId:s.planId,planFile:c,session:o}}function Ee(e){e.stdout.length>0&&be.stdout.write(e.stdout),e.stderr.length>0&&be.stderr.write(e.stderr)}async function uO(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),i=e[n+1],o=e.flatMap((p,f)=>p==="--artifact-fallback-bundle"&&e[f+1]!==void 0?[e[f+1]]:[]),a=e.indexOf("--artifact-port"),s=Number(e[a+1]),c=[t>=0,n>=0,a>=0];if(!c.some(Boolean))return{};if(!c.every(Boolean)||r===void 0||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i)||o.some(p=>!/^sha256:[a-f0-9]{64}$/u.test(p))||!Number.isSafeInteger(s)||s<1||s>65535)throw new j({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 eo(Qe.resolve(r,".dyyto","package-artifacts",i)),d=await Promise.all(o.map(p=>eo(Qe.resolve(r,".dyyto","package-artifacts",p))));if(l.bundle.bundleId!==i)throw new yr("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:ph({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:mh({stateRoot:Qe.resolve(r,".dyyto","resolution-worker"),engine:fh()}),packageStoreRoot:Qe.resolve(r,".dyyto","resolution-worker","store")}}async function ux(e){let t=e.includes("--json")?"json":"human";try{if(e[0]==="dev"&&e[1]==="session"){let n=e[2],i=e.indexOf("--project"),o=Qe.resolve(i<0?be.cwd():e[i+1]??""),a;if(n==="show")a=await Wh(o);else if(n==="finish")a=await Kh(o,e.includes("--apply"));else if(n==="start"){let s=u=>{let m=e.indexOf(u);return m<0?void 0:e[m+1]},c=s("--title"),l=s("--summary"),d=s("--source"),p=s("--requirement"),f=s("--task");if(!c||!l)throw new j({code:"CLI_ARGUMENT_INVALID",message:"dev session start \u9700\u8981 --title \u4E0E --summary\u3002",exitCode:2});a=await Jh({projectRoot:o,title:c,summary:l,...d?{source:d}:{},...p?{requirementId:p}:{},...f?{taskId:f}:{},acceptance:e.flatMap((u,m)=>u==="--accept"&&e[m+1]?[e[m+1]]:[]),apply:e.includes("--apply")})}else throw new j({code:"CLI_ARGUMENT_INVALID",message:"dev session \u53EA\u652F\u6301 start\u3001show\u3001finish\u3002",exitCode:2});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:`dev-session-${n}`,result:a})}
307
+ `})[e];import{createHash as Uh}from"node:crypto";import{execFile as Y0}from"node:child_process";import{chmod as H0,mkdir as qh,open as Z0,readFile as wr,realpath as fs,rename as X0,rm as Q0,stat as eO}from"node:fs/promises";import Ie from"node:path";import{promisify as tO}from"node:util";var Xd=tO(Y0),tn=e=>`sha256:${Uh("sha256").update(e).digest("hex")}`,Bh=e=>`sha512-${Uh("sha512").update(e).digest("base64")}`,rO=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,Ir=class extends Error{constructor(r,n,i){super(n);this.code=r;this.nextStep=i;this.name="PackagePublishError"}code;nextStep},ee=(e,t,r)=>{throw new Ir(e,t,r)};function nO(e){let t=new Map;for(let r of e.split(/\r?\n/u)){let n=r.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");i<1&&ee("PACKAGE_PUBLISH_CONFIG_INVALID","Dyyto\u7EC4\u4EF6.env\u5305\u542B\u975E\u6CD5\u884C\u3002");let o=n.slice(0,i).trim();t.has(o)&&ee("PACKAGE_PUBLISH_CONFIG_INVALID",`Dyyto\u7EC4\u4EF6.env\u91CD\u590D\u58F0\u660E${o}\u3002`),t.set(o,n.slice(i+1).trim())}return t}function iO(e,t){let r=new Map;for(let i of e.split(/\r?\n/u)){let o=i.trim(),a=o.indexOf("=");!o||o.startsWith("#")||a<1||r.set(o.slice(0,a).trim(),o.slice(a+1).trim())}let n=t.startsWith("@")?t.slice(0,t.indexOf("/")):void 0;return(n?r.get(`${n}:registry`):void 0)??r.get("registry")}async function Hd(e,t){Ie.isAbsolute(e)||ee("PACKAGE_PUBLISH_CONFIG_INVALID",`${t}\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002`);let r=await fs(e).catch(()=>ee("PACKAGE_PUBLISH_CONFIG_MISSING",`${t}\u4E0D\u5B58\u5728\u3002`)),n=await eO(r);return(!n.isFile()||(n.mode&63)!==0)&&ee("PACKAGE_PUBLISH_CONFIG_UNSAFE",`${t}\u5FC5\u987B\u662F\u6743\u9650600\u7684\u666E\u901A\u6587\u4EF6\u3002`),r}async function Qd(e,t){let r=process.env.IDP_CONFIG_DIR;(!r||!Ie.isAbsolute(r))&&ee("PACKAGE_PUBLISH_CONFIG_MISSING","\u7F3A\u5C11\u7EDD\u5BF9IDP_CONFIG_DIR\uFF1B\u5148\u8FD0\u884Cidp-setup init\u5E76source generated/sources.env\u3002");let n=await fs(r).catch(()=>ee("PACKAGE_PUBLISH_CONFIG_MISSING","IDP_CONFIG_DIR\u4E0D\u5B58\u5728\u3002"));if(e==="public"){let p=await Hd(Ie.join(n,"secrets/npm-public/npmrc"),"\u516C\u5171npmrc");return{target:e,registry:"https://registry.npmjs.org/",userConfig:p}}let i=Ie.join(n,"components/dyyto"),o=await Hd(Ie.join(i,".env"),"Dyyto\u7EC4\u4EF6.env"),a=nO(await wr(o,"utf8")).get("DYYTO_NPMRC_FILE");(!a||Ie.isAbsolute(a))&&ee("PACKAGE_PUBLISH_CONFIG_INVALID","DYYTO_NPMRC_FILE\u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u76F8\u5BF9\u8DEF\u5F84\u3002");let s=await Hd(Ie.resolve(i,a),"\u79C1\u6709npmrc");Ie.relative(i,s).startsWith("..")&&ee("PACKAGE_PUBLISH_CONFIG_UNSAFE","\u79C1\u6709npmrc\u8D8A\u8FC7Dyyto\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u3002");let c=iO(await wr(s,"utf8"),t);c||ee("PACKAGE_PUBLISH_CONFIG_INVALID","\u79C1\u6709npmrc\u7F3A\u5C11\u5F53\u524D\u5305scope\u7684Registry Binding\u3002");let d=new URL(c),l=new Set(["localhost","127.0.0.1","::1"]).has(d.hostname);return d.protocol!=="https:"&&!(d.protocol==="http:"&&l)&&ee("PACKAGE_PUBLISH_CONFIG_UNSAFE","\u975E\u56DE\u73AF\u79C1\u6709Registry\u5FC5\u987B\u4F7F\u7528HTTPS\u3002"),d.hostname.endsWith("npmjs.org")&&ee("PACKAGE_PUBLISH_CONFIG_INVALID","\u79C1\u6709Registry\u4E0D\u80FD\u6307\u5411npmjs.org\u3002"),{target:e,registry:d.toString(),userConfig:s}}function zh(e){let t={...process.env,NPM_CONFIG_USERCONFIG:e,npm_config_userconfig:e};return delete t.NPM_TOKEN,delete t.npm_token,delete t.NPM_CONFIG_REGISTRY,delete t.npm_config_registry,t}async function Zd(e,t){await qh(Ie.dirname(e),{recursive:!0,mode:448}),await H0(Ie.dirname(e),448);let r=await wr(e).catch(o=>o.code==="ENOENT"?null:Promise.reject(o));if(r){Buffer.from(r).equals(Buffer.from(t))||ee("PACKAGE_PUBLISH_IMMUTABLE_CONFLICT",`\u4E0D\u53EF\u53D8\u6587\u4EF6\u51B2\u7A81\uFF1A${e}`);return}let n=`${e}.${process.pid}.tmp`,i=await Z0(n,"wx",384);try{await i.writeFile(t),await i.sync()}finally{await i.close()}await X0(n,e)}function oO(e){return!e||e==="all"?["private","public"]:e==="private"||e==="public"?[e]:ee("PACKAGE_PUBLISH_ARGUMENT_INVALID","--target\u53EA\u652F\u6301private\u3001public\u6216all\u3002")}async function Gh(e){let t=await fs(Ie.resolve(e.packageRoot)).catch(()=>ee("PACKAGE_MANIFEST_NOT_FOUND","Package\u76EE\u5F55\u4E0D\u5B58\u5728\u3002")),r=await wr(Ie.join(t,"package.json"),"utf8").catch(()=>ee("PACKAGE_MANIFEST_NOT_FOUND",`\u627E\u4E0D\u5230package.json\uFF1A${t}`)),n;try{n=JSON.parse(r)}catch{return ee("PACKAGE_MANIFEST_INVALID","package.json\u4E0D\u662F\u5408\u6CD5JSON\u3002")}(typeof n.name!="string"||!n.name)&&ee("PACKAGE_NAME_INVALID","package.json\u7F3A\u5C11\u5408\u6CD5name\u3002"),(typeof n.version!="string"||!rO.test(n.version))&&ee("PACKAGE_VERSION_INVALID","package.json version\u4E0D\u7B26\u5408SemVer\u3002");for(let f of[n.dependencies,n.optionalDependencies])for(let[g,y]of Object.entries(f??{}))typeof y=="string"&&y.startsWith("workspace:")&&ee("PACKAGE_DEPENDENCY_UNPUBLISHABLE",`\u8FD0\u884C\u65F6\u4F9D\u8D56${g}\u4ECD\u4F7F\u7528${y}\u3002`);let i=oO(e.target);await Promise.all(i.map(f=>Qd(f,n.name)));let o=Ie.join(t,".dyyto/package-publish-artifacts");await qh(o,{recursive:!0,mode:448});let a;try{a=JSON.parse((await Xd("npm",["pack","--pack-destination",o,"--json"],{cwd:t})).stdout)[0]}catch(f){return ee("PACKAGE_PACK_FAILED",`npm pack\u5931\u8D25\uFF1A${String(f?.stderr??f?.message).slice(0,300)}`)}(!a||typeof a.filename!="string")&&ee("PACKAGE_PACK_FAILED","npm pack\u6CA1\u6709\u8FD4\u56DE\u5236\u54C1\u6587\u4EF6\u540D\u3002");let s=Ie.join(o,a.filename),c=await wr(s),d=tn(c),l=Ie.posix.join(".dyyto/package-publish-artifacts",`${d}.tgz`),p=Ie.join(t,l);s!==p&&(await Zd(p,c),await Q0(s,{force:!0}));let m={schemaVersion:2,kind:"PackagePublishPlan",packageName:n.name,version:n.version,packageRoot:t,manifestDigest:tn(r),targets:i,access:e.access??n.publishConfig?.access??"public",tag:e.tag??n.publishConfig?.tag??"latest",tarballDigest:d,integrity:Bh(c),artifactFile:l,filesCount:a.entryCount??a.files?.length??0,unpackedBytes:a.unpackedSize??c.byteLength},u=Object.freeze({...m,planId:tn(JSON.stringify(m))});return await Zd(Ie.join(t,".dyyto/package-publish-plans",`${u.planId}.json`),Buffer.from(`${JSON.stringify(u,null,2)}
308
+ `)),u}async function ep(e,t){/^sha256:[a-f0-9]{64}$/u.test(t)||ee("PACKAGE_PUBLISH_APPROVAL_INVALID","--approve/--plan\u5FC5\u987B\u662F\u5B8C\u6574Plan ID\u3002");let r=await fs(Ie.resolve(e)),n=JSON.parse(await wr(Ie.join(r,".dyyto/package-publish-plans",`${t}.json`),"utf8"));(n.schemaVersion!==2||n.kind!=="PackagePublishPlan"||n.planId!==t||n.packageRoot!==r)&&ee("PACKAGE_PUBLISH_PLAN_INVALID","Plan\u65E0\u6548\u6216\u4E0D\u5C5E\u4E8E\u5F53\u524DPackage\u3002");let{planId:i,...o}=n;return tn(JSON.stringify(o))!==t&&ee("PACKAGE_PUBLISH_PLAN_INVALID","Plan\u6458\u8981\u4E0D\u5339\u914D\u3002"),n}async function us(e,t){try{let r=JSON.parse((await Xd("npm",["view",`${t.packageName}@${t.version}`,"version","dist.integrity","bin","--json","--registry",e.registry],{env:zh(e.userConfig)})).stdout);return{exists:!0,integrity:r["dist.integrity"],bin:r.bin}}catch(r){if(/E404|404 Not Found|No match found/u.test(String(r?.stderr??r?.message)))return{exists:!1};throw r}}async function aO(e,t){for(let r=0;r<8;r+=1){let n=await us(e,t);if(n.exists&&n.integrity===t.integrity)return n;await new Promise(i=>setTimeout(i,500*(r+1)))}return us(e,t)}async function Jh(e,t){let r=await ep(e,t);return{planId:t,packageName:r.packageName,version:r.version,expectedIntegrity:r.integrity,results:await Promise.all(r.targets.map(async n=>{let i=await Qd(n,r.packageName);return{target:n,registry:i.registry,...await us(i,r)}}))}}async function Wh(e){let t=await wr(Ie.join(e.packageRoot,"package.json"),"utf8");tn(t)!==e.manifestDigest&&ee("PACKAGE_PUBLISH_PREIMAGE_CHANGED","package.json\u5728Plan\u540E\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0Plan\u3002");let r=Ie.resolve(e.packageRoot,e.artifactFile);Ie.relative(e.packageRoot,r).startsWith("..")&&ee("PACKAGE_PUBLISH_ARTIFACT_INVALID","\u5236\u54C1\u8D8A\u8FC7Package\u76EE\u5F55\u3002");let n=await wr(r);(tn(n)!==e.tarballDigest||Bh(n)!==e.integrity)&&ee("PACKAGE_PUBLISH_ARTIFACT_CHANGED","\u5236\u54C1\u4E0E\u6279\u51C6Plan\u4E0D\u4E00\u81F4\u3002");let i=[];for(let c of e.targets){let d=await Qd(c,e.packageName),l=await us(d,e);if(l.exists){l.integrity!==e.integrity&&ee("PACKAGE_PUBLISH_CONFLICT",`${d.registry}\u5DF2\u6709\u540C\u7248\u672C\u4E0D\u540C\u5236\u54C1\u3002`),i.push({target:c,registry:d.registry,status:"already-published",integrity:l.integrity});continue}try{await Xd("npm",["publish",r,"--registry",d.registry,"--tag",e.tag,"--access",e.access],{cwd:e.packageRoot,env:zh(d.userConfig)})}catch(m){return ee("PACKAGE_PUBLISH_FAILED",`${c}\u53D1\u5E03\u5931\u8D25\uFF1A${String(m?.stderr??m?.message).slice(0,300)}`)}let p=await aO(d,e);(!p.exists||p.integrity!==e.integrity)&&ee("PACKAGE_PUBLISH_VERIFY_FAILED",`${c}\u53D1\u5E03\u540Eintegrity\u590D\u9A8C\u5931\u8D25\uFF1B\u53EF\u4F7F\u7528\u540C\u4E00Plan\u5B89\u5168\u91CD\u8BD5\u3002`),i.push({target:c,registry:d.registry,status:"published",integrity:p.integrity})}let o=new Date().toISOString(),a={schemaVersion:2,kind:"PackagePublishReceipt",planId:e.planId,packageName:e.packageName,version:e.version,tarballDigest:e.tarballDigest,results:i,publishedAt:o},s=Object.freeze({...a,receiptId:tn(JSON.stringify(a))});return await Zd(Ie.join(e.packageRoot,".dyyto/package-publish-receipts",`${s.receiptId}.json`),Buffer.from(`${JSON.stringify(s,null,2)}
309
+ `)),s}import{createHash as sO}from"node:crypto";import{mkdir as cO,readFile as lO,realpath as np,rename as dO,writeFile as pO}from"node:fs/promises";import Mn from"node:path";import{spawnSync as uO}from"node:child_process";var rp=e=>Array.isArray(e)?`[${e.map(rp).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${rp(r)}`).join(",")}}`:JSON.stringify(e),Vn=e=>`sha256:${sO("sha256").update(rp(e)).digest("hex")}`,rn=async e=>lO(e,"utf8").catch(t=>t.code==="ENOENT"?null:Promise.reject(t));async function ms(e,t){await cO(Mn.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await pO(r,`${JSON.stringify(t,null,2)}
310
+ `,{flag:"wx",mode:384}),await dO(r,e)}var tp=(e,t)=>{let r=uO("git",["-C",e,...t],{encoding:"utf8",shell:!1});if(r.status!==0||!r.stdout.trim())throw new Error("DEVELOPMENT_GIT_REVISION_UNAVAILABLE");return r.stdout.trim()};async function Kh(e){let t=await np(e.projectRoot),r=await lo(t);if(r.bootstrap.status!=="current")throw new Error("DEVELOPMENT_BOOTSTRAP_NOT_CURRENT");let n=e.source??"direct",i={repository:tp(t,["config","--get","remote.origin.url"]),branch:tp(t,["branch","--show-current"]),commit:tp(t,["rev-parse","HEAD"])},o=Dy({source:n,intentId:n==="direct"?`direct:${i.branch}:${i.commit.slice(0,12)}`:`${e.requirementId}:${e.taskId}`,title:e.title,summary:e.summary,repository:i,requirementId:e.requirementId??null,taskId:e.taskId??null,acceptance:e.acceptance??[]}),a=jy({intent:o,worktreePath:t,engineeringContextDigest:r.contextDigest,startedAt:new Date().toISOString()}),s=Mn.join(t,".dyyto/sessions/current.json"),c=await rn(s);if(c){let m=JSON.parse(c);if(m.state==="active"&&m.sessionId!==a.sessionId)throw new Error("DEVELOPMENT_SESSION_CONFLICT")}let d={schemaVersion:1,kind:"DevelopmentSessionPlan",operation:"start",projectRoot:t,preimageDigest:Vn(c??""),session:a},l={...d,planId:Vn(d)},p=Mn.join(t,".dyyto/plans/development",`${l.planId.slice(7)}.json`);if(await rn(p)||await ms(p,l),e.apply){if(Vn(await rn(s)??"")!==l.preimageDigest)throw new Error("DEVELOPMENT_SESSION_PREIMAGE_CHANGED");await ms(s,a)}return{status:e.apply?"active":"planned",planId:l.planId,planFile:p,session:a}}async function Yh(e){let t=Mn.join(await np(e),".dyyto/sessions/current.json"),r=await rn(t);if(!r)throw new Error("DEVELOPMENT_SESSION_NOT_FOUND");return JSON.parse(r)}async function Hh(e,t){let r=await np(e),n=Mn.join(r,".dyyto/sessions/current.json"),i=await rn(n);if(!i)throw new Error("DEVELOPMENT_SESSION_NOT_FOUND");let o=Cy(JSON.parse(i),new Date().toISOString()),a={schemaVersion:1,kind:"DevelopmentSessionPlan",operation:"finish",projectRoot:r,preimageDigest:Vn(i),session:o},s={...a,planId:Vn(a)},c=Mn.join(r,".dyyto/plans/development",`${s.planId.slice(7)}.json`);if(await rn(c)||await ms(c,s),t){if(Vn(await rn(n)??"")!==s.preimageDigest)throw new Error("DEVELOPMENT_SESSION_PREIMAGE_CHANGED");await ms(n,o)}return{status:t?"finished":"planned",planId:s.planId,planFile:c,session:o}}function Ee(e){e.stdout.length>0&&ke.stdout.write(e.stdout),e.stderr.length>0&&ke.stderr.write(e.stderr)}async function gO(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),i=e[n+1],o=e.flatMap((p,m)=>p==="--artifact-fallback-bundle"&&e[m+1]!==void 0?[e[m+1]]:[]),a=e.indexOf("--artifact-port"),s=Number(e[a+1]),c=[t>=0,n>=0,a>=0];if(!c.some(Boolean))return{};if(!c.every(Boolean)||r===void 0||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i)||o.some(p=>!/^sha256:[a-f0-9]{64}$/u.test(p))||!Number.isSafeInteger(s)||s<1||s>65535)throw new j({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 d=await ro(et.resolve(r,".dyyto","package-artifacts",i)),l=await Promise.all(o.map(p=>ro(et.resolve(r,".dyyto","package-artifacts",p))));if(d.bundle.bundleId!==i)throw new hr("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:fh({bundle:d.bundle,fallbackBundles:l.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:yh({stateRoot:et.resolve(r,".dyyto","resolution-worker"),engine:gh()}),packageStoreRoot:et.resolve(r,".dyyto","resolution-worker","store")}}async function yx(e){let t=e.includes("--json")?"json":"human";try{if(e[0]==="dev"&&e[1]==="session"){let n=e[2],i=e.indexOf("--project"),o=et.resolve(i<0?ke.cwd():e[i+1]??""),a;if(n==="show")a=await Yh(o);else if(n==="finish")a=await Hh(o,e.includes("--apply"));else if(n==="start"){let s=u=>{let f=e.indexOf(u);return f<0?void 0:e[f+1]},c=s("--title"),d=s("--summary"),l=s("--source"),p=s("--requirement"),m=s("--task");if(!c||!d)throw new j({code:"CLI_ARGUMENT_INVALID",message:"dev session start \u9700\u8981 --title \u4E0E --summary\u3002",exitCode:2});a=await Kh({projectRoot:o,title:c,summary:d,...l?{source:l}:{},...p?{requirementId:p}:{},...m?{taskId:m}:{},acceptance:e.flatMap((u,f)=>u==="--accept"&&e[f+1]?[e[f+1]]:[]),apply:e.includes("--apply")})}else throw new j({code:"CLI_ARGUMENT_INVALID",message:"dev session \u53EA\u652F\u6301 start\u3001show\u3001finish\u3002",exitCode:2});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:`dev-session-${n}`,result:a})}
310
311
  `:`${JSON.stringify(a,null,2)}
311
- `,stderr:""});return}if(e[0]==="agents"&&e[1]==="remove"){let n=e.indexOf("--project"),i=n<0?be.cwd():e[n+1];if(!i)throw new We("BOOTSTRAP_PROJECT_INVALID","\u7F3A\u5C11\u9879\u76EE\u76EE\u5F55\u3002");let o=await xh(Qe.resolve(i)),a=e.includes("--apply")?await Wd(o.planFile,o.plan.planId):{status:"planned",planId:o.plan.planId,planFile:o.planFile,changed:o.changed};Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"agents-remove",result:a})}
312
+ `,stderr:""});return}if(e[0]==="agents"&&e[1]==="remove"){let n=e.indexOf("--project"),i=n<0?ke.cwd():e[n+1];if(!i)throw new Ge("BOOTSTRAP_PROJECT_INVALID","\u7F3A\u5C11\u9879\u76EE\u76EE\u5F55\u3002");let o=await Mh(et.resolve(i)),a=e.includes("--apply")?await Yd(o.planFile,o.plan.planId):{status:"planned",planId:o.plan.planId,planFile:o.planFile,changed:o.changed};Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"agents-remove",result:a})}
312
313
  `:`Agent\u9002\u914D\u5668\u79FB\u9664${e.includes("--apply")?"\u5B8C\u6210":"Plan\u5DF2\u751F\u6210"}\uFF1A${o.plan.planId}
313
- `,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),i=n<0?be.cwd():e[n+1];if(!i)throw new j({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 o=await Lh(Qe.resolve(i)),a=e.includes("--apply");if(a&&!e.includes("--skip-tool-install")){let c=be.env.PNPM_HOME;if(!c||!Qe.isAbsolute(c))throw new We("BOOTSTRAP_PNPM_HOME_REQUIRED","\u7F3A\u5C11\u7EDD\u5BF9PNPM_HOME\uFF1B\u5148\u8FD0\u884Cidp-setup init\uFF0C\u6216\u4F7F\u7528idp-setup bootstrap\u4F5C\u4E3A\u9879\u76EE\u9996\u6B21\u5165\u53E3\u3002");let l=dO("corepack",["pnpm","add","--global","--global-bin-dir",c,...$h],{encoding:"utf8",shell:!1,env:be.env});if(l.error||l.status!==0)throw new We("BOOTSTRAP_TOOLCHAIN_INSTALL_FAILED","\u7CBE\u786E\u5DE5\u5177\u94FE\u5B89\u88C5\u5931\u8D25\uFF0C\u9879\u76EE\u8D44\u4EA7\u5C1A\u672AApply\u3002")}let s=a?await Wd(o.planFile,o.plan.planId):{status:"planned",planId:o.plan.planId,planFile:o.planFile,changed:o.changed};Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:a?"bootstrap-apply":"bootstrap-plan",result:s})}
314
+ `,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),i=n<0?ke.cwd():e[n+1];if(!i)throw new j({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 o=await Vh(et.resolve(i)),a=e.includes("--apply");if(a&&!e.includes("--skip-tool-install")){let c=ke.env.PNPM_HOME;if(!c||!et.isAbsolute(c))throw new Ge("BOOTSTRAP_PNPM_HOME_REQUIRED","\u7F3A\u5C11\u7EDD\u5BF9PNPM_HOME\uFF1B\u5148\u8FD0\u884Cidp-setup init\uFF0C\u6216\u4F7F\u7528idp-setup bootstrap\u4F5C\u4E3A\u9879\u76EE\u9996\u6B21\u5165\u53E3\u3002");let d=fO("corepack",["pnpm","add","--global","--global-bin-dir",c,...Lh],{encoding:"utf8",shell:!1,env:ke.env});if(d.error||d.status!==0)throw new Ge("BOOTSTRAP_TOOLCHAIN_INSTALL_FAILED","\u7CBE\u786E\u5DE5\u5177\u94FE\u5B89\u88C5\u5931\u8D25\uFF0C\u9879\u76EE\u8D44\u4EA7\u5C1A\u672AApply\u3002")}let s=a?await Yd(o.planFile,o.plan.planId):{status:"planned",planId:o.plan.planId,planFile:o.planFile,changed:o.changed};Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:a?"bootstrap-apply":"bootstrap-plan",result:s})}
314
315
  `:a?`\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u5DF2\u521D\u59CB\u5316\u5E76\u9A8C\u8BC1\u3002
315
316
  Plan\uFF1A${o.plan.planId}
316
317
  \u53D8\u66F4\uFF1A${s.changed.join("\u3001")||"\u65E0"}
@@ -319,7 +320,7 @@ Next\uFF1Adyyto context --project ${i}
319
320
  \u6587\u4EF6\uFF1A${o.planFile}
320
321
  \u53D8\u66F4\uFF1A${o.changed.join("\u3001")||"\u65E0"}
321
322
  Next\uFF1A\u589E\u52A0 --apply \u660E\u786E\u5E94\u7528\u8BE5Plan\u3002
322
- `,stderr:""});return}if(e[0]==="context"){if(e[1]!==void 0&&e[1]!=="resolve"&&!e[1].startsWith("--"))throw new j({code:"CLI_ARGUMENT_INVALID",message:"context \u53EA\u652F\u6301 resolve \u5B50\u547D\u4EE4\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto context resolve --project <\u7EDD\u5BF9\u8DEF\u5F84>\u3002"});let n=e.indexOf("--project"),i=n<0?be.cwd():e[n+1];if(!i)throw new j({code:"CLI_ARGUMENT_INVALID",message:"context --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u5DF2Bootstrap\u9879\u76EE\u3002"});let o=await so(Qe.resolve(i));Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"context-resolve",result:o})}
323
+ `,stderr:""});return}if(e[0]==="context"){if(e[1]!==void 0&&e[1]!=="resolve"&&!e[1].startsWith("--"))throw new j({code:"CLI_ARGUMENT_INVALID",message:"context \u53EA\u652F\u6301 resolve \u5B50\u547D\u4EE4\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto context resolve --project <\u7EDD\u5BF9\u8DEF\u5F84>\u3002"});let n=e.indexOf("--project"),i=n<0?ke.cwd():e[n+1];if(!i)throw new j({code:"CLI_ARGUMENT_INVALID",message:"context --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u5DF2Bootstrap\u9879\u76EE\u3002"});let o=await lo(et.resolve(i));Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"context-resolve",result:o})}
323
324
  `:`\u4E0A\u4E0B\u6587\uFF1A${o.contextDigest}
324
325
  \u5206\u652F\uFF1A${o.repository.branch??"\u672A\u8BC6\u522B"}
325
326
  \u63D0\u4EA4\uFF1A${o.repository.commit??"\u672A\u8BC6\u522B"}
@@ -334,52 +335,52 @@ ${o.requiredBeforeCoding.map(a=>`- ${a}`).join(`
334
335
  \u7981\u6B62\u4E8B\u9879\uFF1A
335
336
  ${o.prohibitions.map(a=>`- ${a}`).join(`
336
337
  `)}
337
- `,stderr:""});return}if(e[0]==="ready"){let n=e.indexOf("--project"),i=n<0?be.cwd():e[n+1];if(!i)throw new j({code:"CLI_ARGUMENT_INVALID",message:"ready --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u5DF2Bootstrap\u9879\u76EE\u3002"});let o=Qe.resolve(i),a=await so(o),c=(await pO(Qe.join(o,"project-capabilities.json"),"utf8").then(b=>JSON.parse(b)).catch(()=>null))?.profile?.id??null,l=c==="workspace-root",d=new Set(["nextjs-full-stack-application","workspace-node-application","workspace-web-application"]).has(c),f=(await ts(["config","readiness",l?"--workspace":"--project",o,"--check","--json"])).value.result,u=null,m=0;l&&(u=(await ts(["doctor","--workspace",o,"--json"])).value.result,m=u.status==="healthy"?0:4);let g=l?f.summary.total===f.summary.ready:f.state==="ready"||!d&&f.state==="not-declared",y=a.bootstrap.status!=="current"||!g||m!==0?"blocked":c===null?"attention":"ready",w={schemaVersion:1,kind:"DevelopmentReadinessReport",projectRoot:o,status:y,context:a,config:f,doctor:u},A=y==="ready"?0:y==="attention"?3:4;Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"ready",result:w})}
338
+ `,stderr:""});return}if(e[0]==="ready"){let n=e.indexOf("--project"),i=n<0?ke.cwd():e[n+1];if(!i)throw new j({code:"CLI_ARGUMENT_INVALID",message:"ready --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u5DF2Bootstrap\u9879\u76EE\u3002"});let o=et.resolve(i),a=await lo(o),c=(await mO(et.join(o,"project-capabilities.json"),"utf8").then(b=>JSON.parse(b)).catch(()=>null))?.profile?.id??null,d=c==="workspace-root",l=new Set(["nextjs-full-stack-application","workspace-node-application","workspace-web-application"]).has(c),m=(await rs(["config","readiness",d?"--workspace":"--project",o,"--check","--json"])).value.result,u=null,f=0;d&&(u=(await rs(["doctor","--workspace",o,"--json"])).value.result,f=u.status==="healthy"?0:4);let g=d?m.summary.total===m.summary.ready:m.state==="ready"||!l&&m.state==="not-declared",y=a.bootstrap.status!=="current"||!g||f!==0?"blocked":c===null?"attention":"ready",w={schemaVersion:1,kind:"DevelopmentReadinessReport",projectRoot:o,status:y,context:a,config:m,doctor:u},A=y==="ready"?0:y==="attention"?3:4;Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"ready",result:w})}
338
339
  `:`${y==="ready"?"\u2713":y==="attention"?"!":"\u2717"} \u5F00\u53D1\u5C31\u7EEA\u72B6\u6001\uFF1A${y}
339
340
  \u4E0A\u4E0B\u6587\uFF1A${a.contextDigest}
340
341
  Bootstrap\uFF1A${a.bootstrap.status}
341
342
  \u914D\u7F6E\uFF1A${g?"ready":"blocked"}
342
- \u5DE5\u7A0B\u68C0\u67E5\uFF1A${m===0?"\u901A\u8FC7":"\u963B\u585E"}
343
+ \u5DE5\u7A0B\u68C0\u67E5\uFF1A${f===0?"\u901A\u8FC7":"\u963B\u585E"}
343
344
  ${y==="ready"?"\u5F53\u524D\u9879\u76EE\u53EF\u4EE5\u5F00\u59CB Vibe Coding\u3002":"\u8BF7\u5148\u5904\u7406\u4E0A\u8FF0\u95EE\u9898\uFF0C\u518D\u5F00\u59CB Vibe Coding\u3002"}
344
- `,stderr:""}),be.exitCode=A;return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),i=e[n+1],o=i?Vh(i):void 0;if(!o)throw new j({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"});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"docs-show",result:{id:i,content:o}})}
345
- `:o,stderr:""});return}if(e[0]==="package"&&e[1]==="publish"||e[0]==="publish"){let n=e[0]==="publish"?1:2,i=e.slice(n),o=i[0];if(!new Set(["plan","apply","inspect"]).has(o??""))throw new wr("PACKAGE_PUBLISH_ACTION_REQUIRED","\u53D1\u5E03\u5FC5\u987B\u663E\u5F0F\u4F7F\u7528plan\u3001apply\u6216inspect\u3002","\u5148\u8FD0\u884Cdyyto package publish plan\u3002 ");let a=i.indexOf("--package-dir"),s=a>=0&&i[a+1]?Qe.resolve(i[a+1]):be.cwd(),c=i.indexOf("--access"),l=c>=0?i[c+1]:void 0,d=i.indexOf("--tag"),p=d>=0?i[d+1]:void 0;if(i.includes("--registry")||i.some(u=>u.startsWith("--registry=")))throw new wr("PACKAGE_PUBLISH_REGISTRY_FORBIDDEN","Registry\u53EA\u80FD\u6765\u81EAIDP_CONFIG_DIR\uFF0C\u7981\u6B62\u547D\u4EE4\u884C\u8986\u76D6\u3002");let f;if(o==="plan"){let u=i.indexOf("--target"),m=u>=0?i[u+1]:"all";f=await Bh({packageRoot:s,target:m,...l?{access:l}:{},...p?{tag:p}:{}})}else{let u=o==="apply"?"--approve":"--plan",m=i.indexOf(u),g=i[m+1];if(!g)throw new wr("PACKAGE_PUBLISH_APPROVAL_INVALID",`${o}\u7F3A\u5C11${u}\u3002`);f=o==="apply"?await Gh(await Zd(s,g)):await zh(s,g)}Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:`package-publish-${o}`,result:f})}
345
+ `,stderr:""}),ke.exitCode=A;return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),i=e[n+1],o=i?Fh(i):void 0;if(!o)throw new j({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"});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"docs-show",result:{id:i,content:o}})}
346
+ `:o,stderr:""});return}if(e[0]==="package"&&e[1]==="publish"||e[0]==="publish"){let n=e[0]==="publish"?1:2,i=e.slice(n),o=i[0];if(!new Set(["plan","apply","inspect"]).has(o??""))throw new Ir("PACKAGE_PUBLISH_ACTION_REQUIRED","\u53D1\u5E03\u5FC5\u987B\u663E\u5F0F\u4F7F\u7528plan\u3001apply\u6216inspect\u3002","\u5148\u8FD0\u884Cdyyto package publish plan\u3002 ");let a=i.indexOf("--package-dir"),s=a>=0&&i[a+1]?et.resolve(i[a+1]):ke.cwd(),c=i.indexOf("--access"),d=c>=0?i[c+1]:void 0,l=i.indexOf("--tag"),p=l>=0?i[l+1]:void 0;if(i.includes("--registry")||i.some(u=>u.startsWith("--registry=")))throw new Ir("PACKAGE_PUBLISH_REGISTRY_FORBIDDEN","Registry\u53EA\u80FD\u6765\u81EAIDP_CONFIG_DIR\uFF0C\u7981\u6B62\u547D\u4EE4\u884C\u8986\u76D6\u3002");let m;if(o==="plan"){let u=i.indexOf("--target"),f=u>=0?i[u+1]:"all";m=await Gh({packageRoot:s,target:f,...d?{access:d}:{},...p?{tag:p}:{}})}else{let u=o==="apply"?"--approve":"--plan",f=i.indexOf(u),g=i[f+1];if(!g)throw new Ir("PACKAGE_PUBLISH_APPROVAL_INVALID",`${o}\u7F3A\u5C11${u}\u3002`);m=o==="apply"?await Wh(await ep(s,g)):await Jh(s,g)}Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:`package-publish-${o}`,result:m})}
346
347
  `:`${o==="plan"?"\u53D1\u5E03Plan\u5DF2\u751F\u6210":o==="apply"?"\u53D1\u5E03Apply\u5DF2\u5B8C\u6210":"\u53D1\u5E03\u72B6\u6001\u5DF2\u68C0\u67E5"}\u3002
347
- ${JSON.stringify(f,null,2)}
348
- `,stderr:""});return}if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new j({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 jh();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 j({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 i=e.indexOf("--output");if(i<0||e[i+1]!=="-")throw new j({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 o=e.indexOf("--generated-at"),a=o<0?new Date().toISOString():e[o+1];be.stdout.write(By(await qy({generatedAt:a})));return}if(e[0]==="topology"&&e[1]==="plan"){let n=e.indexOf("--project"),i=e[n+1];if(n<0||!i)throw new j({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 o=await Sh({projectRoot:i});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:o})}
348
+ ${JSON.stringify(m,null,2)}
349
+ `,stderr:""});return}if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new j({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 $h();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],d=e[s+1];if(c===void 0||d===void 0||!n.has(c)||d.startsWith("--"))throw new j({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 i=e.indexOf("--output");if(i<0||e[i+1]!=="-")throw new j({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 o=e.indexOf("--generated-at"),a=o<0?new Date().toISOString():e[o+1];ke.stdout.write(Gy(await zy({generatedAt:a})));return}if(e[0]==="topology"&&e[1]==="plan"){let n=e.indexOf("--project"),i=e[n+1];if(n<0||!i)throw new j({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 o=await jh({projectRoot:i});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:o})}
349
350
  `:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${o.plan.planId}
350
351
  \u72B6\u6001\uFF1A${o.plan.state}
351
352
  Next\uFF1Adyyto topology apply --project ${i} --approve ${o.plan.planId}
352
- `,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||!i||o<0||!a)throw new j({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 Dh({projectRoot:i,approvedPlanId:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-apply",result:s})}
353
+ `,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||!i||o<0||!a)throw new j({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 Ch({projectRoot:i,approvedPlanId:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-apply",result:s})}
353
354
  `:`\u62D3\u6251\u8FC1\u79FB\u5DF2 Apply\uFF1A${s.planId}
354
355
  Next\uFF1Adyyto topology inspect --project ${i}
355
- `,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),i=e[n+1];if(n<0||!i)throw new j({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 o=await _h({projectRoot:i});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-plan",result:{plan:o}})}
356
+ `,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),i=e[n+1];if(n<0||!i)throw new j({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 o=await Rh({projectRoot:i});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-plan",result:{plan:o}})}
356
357
  `:`Recovery Override Plan\uFF1A${o.planId}
357
358
  \u51B2\u7A81\uFF1A${o.conflicts.length}
358
- `,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||!i||o<0||!a)throw new j({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 Ah({projectRoot:i,approvedPlanId:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-apply",result:{recovery:s}})}
359
+ `,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||!i||o<0||!a)throw new j({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 Eh({projectRoot:i,approvedPlanId:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-apply",result:{recovery:s}})}
359
360
  `:`Recovery Override \u5DF2\u5B8C\u6210\uFF1A${s.state}
360
- `,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--maximum-bytes"),a=Number(e[o+1]);if(n<0||i===void 0||o<0||!Number.isSafeInteger(a)||a<1)throw new j({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 Ih({workspaceRoot:i,maximumBytes:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-plan",result:{plan:s}})}
361
+ `,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--maximum-bytes"),a=Number(e[o+1]);if(n<0||i===void 0||o<0||!Number.isSafeInteger(a)||a<1)throw new j({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 bh({workspaceRoot:i,maximumBytes:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-plan",result:{plan:s}})}
361
362
  `:`Resolution Worker Build Plan \u5DF2\u751F\u6210\uFF1A${s.planId}
362
363
  \u5BB9\u91CF\u4E0A\u9650\uFF1A${s.maximumBytes} bytes
363
364
  \u72B6\u6001\uFF1A\u7B49\u5F85\u5DF2\u6388\u6743\u9636\u6BB5\u6267\u884C
364
- `,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a))throw new j({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:i,approvedPlanId:a,warmup:wh()});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-apply",result:{receipt:s}})}
365
+ `,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a))throw new j({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 kh({workspaceRoot:i,approvedPlanId:a,warmup:vh()});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-apply",result:{receipt:s}})}
365
366
  `:`Resolution Worker \u5DF2\u9884\u70ED\uFF1A${s.receiptId}
366
367
  \u7F13\u5B58\uFF1A${s.cacheBytes} bytes
367
- `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.flatMap((s,c)=>s==="--package-dir"&&e[c+1]!==void 0?[e[c+1]]:[]);if(n<0||i===void 0||o.length===0)throw new j({code:"CLI_ARGUMENT_INVALID",message:"Artifacts plan requires --workspace and at least one --package-dir.",exitCode:2,nextStep:"Run dyyto --help."});let a=await lh({workspaceRoot:i,packageRoots:o});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-plan",result:{plan:a}})}
368
+ `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.flatMap((s,c)=>s==="--package-dir"&&e[c+1]!==void 0?[e[c+1]]:[]);if(n<0||i===void 0||o.length===0)throw new j({code:"CLI_ARGUMENT_INVALID",message:"Artifacts plan requires --workspace and at least one --package-dir.",exitCode:2,nextStep:"Run dyyto --help."});let a=await ph({workspaceRoot:i,packageRoots:o});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-plan",result:{plan:a}})}
368
369
  `:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${a.planId}
369
370
  Bundle\uFF1A${a.bundle.bundleId}
370
371
  \u72B6\u6001\uFF1A\u7B49\u5F85\u660E\u786E\u6279\u51C6
371
372
  Next\uFF1Adyyto artifacts apply --workspace ${i} --approve ${a.planId}
372
- `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a))throw new j({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 dh({workspaceRoot:i,approvedPlanId:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-apply",result:{...s,channel:"development"}})}
373
+ `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a))throw new j({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 uh({workspaceRoot:i,approvedPlanId:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-apply",result:{...s,channel:"development"}})}
373
374
  `:`\u672C\u5730\u5236\u54C1 Bundle \u5DF2\u5199\u5165\uFF1A${s.bundleId}
374
375
  Channel\uFF1Adevelopment
375
376
  Next\uFF1Adyyto artifacts serve --workspace ${i} --bundle ${s.bundleId} --port 4873
376
- `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--bundle"),a=e[o+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||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a)||s.some(f=>!/^sha256:[a-f0-9]{64}$/u.test(f))||c<0||!Number.isSafeInteger(l)||l<1||l>65535)throw new j({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 oh({bundleRoot:Qe.resolve(i,".dyyto","package-artifacts",a),fallbackBundleRoots:s.map(f=>Qe.resolve(i,".dyyto","package-artifacts",f)),port:l});Ee({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"}})}
377
- `:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${d.origin}
378
- \u4E3B Bundle\uFF1A${d.bundle.bundleId}
379
- Fallback Bundles\uFF1A${d.fallbackBundles.map(f=>f.bundleId).join(", ")||"\u65E0"}
377
+ `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--bundle"),a=e[o+1],s=e.flatMap((m,u)=>m==="--fallback-bundle"&&e[u+1]!==void 0?[e[u+1]]:[]),c=e.indexOf("--port"),d=Number(e[c+1]);if(n<0||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a)||s.some(m=>!/^sha256:[a-f0-9]{64}$/u.test(m))||c<0||!Number.isSafeInteger(d)||d<1||d>65535)throw new j({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 l=await sh({bundleRoot:et.resolve(i,".dyyto","package-artifacts",a),fallbackBundleRoots:s.map(m=>et.resolve(i,".dyyto","package-artifacts",m)),port:d});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-serve",result:{origin:l.origin,bundleId:l.bundle.bundleId,fallbackBundleIds:l.fallbackBundles.map(m=>m.bundleId),channel:"development"}})}
378
+ `:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${l.origin}
379
+ \u4E3B Bundle\uFF1A${l.bundle.bundleId}
380
+ Fallback Bundles\uFF1A${l.fallbackBundles.map(m=>m.bundleId).join(", ")||"\u65E0"}
380
381
  Channel\uFF1Adevelopment
381
- `,stderr:""});let p=async()=>{await d.close(),be.exit(0)};be.once("SIGINT",p),be.once("SIGTERM",p),await new Promise(()=>{})}if(e[0]==="observe"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1];if(n<0||i===void 0)throw new j({code:"CLI_ARGUMENT_INVALID",message:"Observe serve requires --workspace.",exitCode:2,nextStep:"Run dyyto --help."});let o=e.indexOf("--port"),a=o<0?void 0:Number(e[o+1]);if(a!==void 0&&(!Number.isSafeInteger(a)||a<1||a>65535))throw new j({code:"CLI_ARGUMENT_INVALID",message:"Observe serve --port is invalid.",exitCode:2,nextStep:"Choose an available TCP port."});let s=await th({workspaceRoot:i,...a===void 0?{}:{port:a}});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
382
+ `,stderr:""});let p=async()=>{await l.close(),ke.exit(0)};ke.once("SIGINT",p),ke.once("SIGTERM",p),await new Promise(()=>{})}if(e[0]==="observe"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1];if(n<0||i===void 0)throw new j({code:"CLI_ARGUMENT_INVALID",message:"Observe serve requires --workspace.",exitCode:2,nextStep:"Run dyyto --help."});let o=e.indexOf("--port"),a=o<0?void 0:Number(e[o+1]);if(a!==void 0&&(!Number.isSafeInteger(a)||a<1||a>65535))throw new j({code:"CLI_ARGUMENT_INVALID",message:"Observe serve --port is invalid.",exitCode:2,nextStep:"Choose an available TCP port."});let s=await nh({workspaceRoot:i,...a===void 0?{}:{port:a}});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
382
383
  `:`\u672C\u5730\u91C7\u96C6\u7AEF\u5DF2\u542F\u52A8\uFF1A${s.origin}
383
- `,stderr:""});let c=async()=>{await s.close(),be.exit(0)};be.once("SIGINT",c),be.once("SIGTERM",c),await new Promise(()=>{})}let r=await ts(e,await uO(e));Ee(Rh(r.value,r.outputMode,r.human)),r.exitCode!==void 0&&(be.exitCode=r.exitCode)}catch(r){if(be.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;be.stderr.write(`${r.stack??r.message}${s.map(l=>`
384
- Cause: ${l}`).join("")}
385
- `)}let n=r;if(r instanceof We)n=new j({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 Ie)n=new j({code:r.code,message:r.message,exitCode:3,nextStep:"Run dyyto plan and review the current project state."});else if(r instanceof C)n=new j({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 j({code:r.code,message:r.message,exitCode:3,nextStep:"Inspect the project profile and resolve conflicts before continuing."});else if(r instanceof Ae)n=new j({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 H||r instanceof Error&&r.name==="PackageAdoptionError"&&"code"in r&&typeof r.code=="string"){let s=r.code,c=s==="PACKAGE_INSTALL_FAILED";n=new j({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 Ue)n=new j({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 G)n=new j({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 yr)n=new j({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 Ze)n=new j({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 Oe)n=new j({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 yt)n=new j({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 j({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 wr)n=new j({code:r.code,message:r.message,exitCode:4,nextStep:r.nextStep??"\u68C0\u67E5 package.json \u89C4\u8303\u4E0E Registry \u6743\u9650\u540E\u91CD\u8BD5\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 j({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 i=rp(n),o=n instanceof j?n:i===null?null:new j(i),a={schemaVersion:1,ok:!1,error:{code:o?.code??"CLI_INTERNAL_ERROR",message:o?.message??"The CLI could not complete the command.",...o?.nextStep===void 0?{}:{nextStep:o.nextStep}}};Ee(Eh(a,t)),be.exitCode=o?.exitCode??1}}export{ux as runCommand};
384
+ `,stderr:""});let c=async()=>{await s.close(),ke.exit(0)};ke.once("SIGINT",c),ke.once("SIGTERM",c),await new Promise(()=>{})}let r=await rs(e,await gO(e));Ee(Ph(r.value,r.outputMode,r.human)),r.exitCode!==void 0&&(ke.exitCode=r.exitCode)}catch(r){if(ke.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;ke.stderr.write(`${r.stack??r.message}${s.map(d=>`
385
+ Cause: ${d}`).join("")}
386
+ `)}let n=r;if(r instanceof Ge)n=new j({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 ve)n=new j({code:r.code,message:r.message,exitCode:3,nextStep:"Run dyyto plan and review the current project state."});else if(r instanceof C)n=new j({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 j({code:r.code,message:r.message,exitCode:3,nextStep:"Inspect the project profile and resolve conflicts before continuing."});else if(r instanceof Ae)n=new j({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 Z||r instanceof Error&&r.name==="PackageAdoptionError"&&"code"in r&&typeof r.code=="string"){let s=r.code,c=s==="PACKAGE_INSTALL_FAILED";n=new j({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 Be)n=new j({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 G)n=new j({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 hr)n=new j({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 Qe)n=new j({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 Oe)n=new j({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 yt)n=new j({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 j({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 Ir)n=new j({code:r.code,message:r.message,exitCode:4,nextStep:r.nextStep??"\u68C0\u67E5 package.json \u89C4\u8303\u4E0E Registry \u6743\u9650\u540E\u91CD\u8BD5\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 j({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 i=ip(n),o=n instanceof j?n:i===null?null:new j(i),a={schemaVersion:1,ok:!1,error:{code:o?.code??"CLI_INTERNAL_ERROR",message:o?.message??"The CLI could not complete the command.",...o?.nextStep===void 0?{}:{nextStep:o.nextStep}}};Ee(Nh(a,t)),ke.exitCode=o?.exitCode??1}}export{yx as runCommand};