yaml-flow 8.4.12 → 8.4.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/asset-integrity.json +3 -3
- package/browser/live-cards.schema.json +4 -0
- package/cli/bundled/artifacts-store-cli.mjs +2 -2
- package/cli/bundled/board-live-cards-cli.mjs +2 -2
- package/cli/bundled/step-machine-cli.mjs +1 -1
- package/examples/board/demo-shell-with-server.html +2 -2
- package/examples/board/doc.html +2 -2
- package/examples/board-local/demo-shell-localstorage.html +3 -3
- package/lib/board-live-cards-node.cjs +6 -6
- package/lib/board-live-cards-node.js +6 -6
- package/lib/card-compute/index.cjs +1 -1
- package/lib/card-compute/index.js +1 -1
- package/lib/card-validation.cjs +1 -1
- package/lib/card-validation.js +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.js +1 -1
- package/package.json +1 -1
- package/schema/live-cards.schema.json +4 -0
|
@@ -15,7 +15,7 @@ GFS4: `),console.error(e)});Pe[Re]||(li=global[Re]||[],fi(Pe,li),Pe.close=(funct
|
|
|
15
15
|
|| ${j} === "boolean" || ${p} === null`).assign(x,(0,n._)`[${p}]`)}}}function w({gen:g,parentData:E,parentDataProperty:$},y){g.if((0,n._)`${E} !== undefined`,()=>g.assign((0,n._)`${E}[${$}]`,y))}function m(g,E,$,y=o.Correct){let p=y===o.Correct?n.operators.EQ:n.operators.NEQ,P;switch(g){case"null":return(0,n._)`${E} ${p} null`;case"array":P=(0,n._)`Array.isArray(${E})`;break;case"object":P=(0,n._)`${E} && typeof ${E} == "object" && !Array.isArray(${E})`;break;case"integer":P=j((0,n._)`!(${E} % 1) && !isNaN(${E})`);break;case"number":P=j();break;default:return(0,n._)`typeof ${E} ${p} ${g}`}return y===o.Correct?P:(0,n.not)(P);function j(x=n.nil){return(0,n.and)((0,n._)`typeof ${E} == "number"`,x,$?(0,n._)`isFinite(${E})`:n.nil)}}e.checkDataType=m;function v(g,E,$,y){if(g.length===1)return m(g[0],E,$,y);let p,P=(0,s.toHash)(g);if(P.array&&P.object){let j=(0,n._)`typeof ${E} != "object"`;p=P.null?j:(0,n._)`!${E} || ${j}`,delete P.null,delete P.array,delete P.object}else p=n.nil;P.number&&delete P.integer;for(let j in P)p=(0,n.and)(p,m(j,E,$,y));return p}e.checkDataTypes=v;var h={message:({schema:g})=>`must be ${g}`,params:({schema:g,schemaValue:E})=>typeof g=="string"?(0,n._)`{type: ${g}}`:(0,n._)`{type: ${E}}`};function f(g){let E=_(g);(0,a.reportError)(E,h)}e.reportTypeError=f;function _(g){let{gen:E,data:$,schema:y}=g,p=(0,s.schemaRefOrVal)(g,y,"type");return{gen:E,keyword:"type",data:$,schema:y.type,schemaCode:p,schemaValue:p,parentSchema:y,params:{},it:g}}}),nv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;var t=de(),r=ge();function a(s,o){let{properties:u,items:i}=s.schema;if(o==="object"&&u)for(let c in u)n(s,c,u[c].default);else o==="array"&&Array.isArray(i)&&i.forEach((c,l)=>n(s,l,c.default))}e.assignDefaults=a;function n(s,o,u){let{gen:i,compositeRule:c,data:l,opts:d}=s;if(u===void 0)return;let b=(0,t._)`${l}${(0,t.getProperty)(o)}`;if(c){(0,r.checkStrictMode)(s,`default is ignored for: ${b}`);return}let w=(0,t._)`${b} === undefined`;d.useDefaults==="empty"&&(w=(0,t._)`${w} || ${b} === null || ${b} === ""`),i.if(w,(0,t._)`${b} = ${(0,t.stringify)(u)}`)}}),dt=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateUnion=e.validateArray=e.usePattern=e.callValidateCode=e.schemaProperties=e.allSchemaProperties=e.noPropertyInData=e.propertyInData=e.isOwnProperty=e.hasPropFunc=e.reportMissingProp=e.checkMissingProp=e.checkReportMissingProp=void 0;var t=de(),r=ge(),a=Kt(),n=ge();function s(g,E){let{gen:$,data:y,it:p}=g;$.if(d($,y,E,p.opts.ownProperties),()=>{g.setParams({missingProperty:(0,t._)`${E}`},!0),g.error()})}e.checkReportMissingProp=s;function o({gen:g,data:E,it:{opts:$}},y,p){return(0,t.or)(...y.map(P=>(0,t.and)(d(g,E,P,$.ownProperties),(0,t._)`${p} = ${P}`)))}e.checkMissingProp=o;function u(g,E){g.setParams({missingProperty:E},!0),g.error()}e.reportMissingProp=u;function i(g){return g.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,t._)`Object.prototype.hasOwnProperty`})}e.hasPropFunc=i;function c(g,E,$){return(0,t._)`${i(g)}.call(${E}, ${$})`}e.isOwnProperty=c;function l(g,E,$,y){let p=(0,t._)`${E}${(0,t.getProperty)($)} !== undefined`;return y?(0,t._)`${p} && ${c(g,E,$)}`:p}e.propertyInData=l;function d(g,E,$,y){let p=(0,t._)`${E}${(0,t.getProperty)($)} === undefined`;return y?(0,t.or)(p,(0,t.not)(c(g,E,$))):p}e.noPropertyInData=d;function b(g){return g?Object.keys(g).filter(E=>E!=="__proto__"):[]}e.allSchemaProperties=b;function w(g,E){return b(E).filter($=>!(0,r.alwaysValidSchema)(g,E[$]))}e.schemaProperties=w;function m({schemaCode:g,data:E,it:{gen:$,topSchemaRef:y,schemaPath:p,errorPath:P},it:j},x,I,q){let V=q?(0,t._)`${g}, ${E}, ${y}${p}`:E,H=[[a.default.instancePath,(0,t.strConcat)(a.default.instancePath,P)],[a.default.parentData,j.parentData],[a.default.parentDataProperty,j.parentDataProperty],[a.default.rootData,a.default.rootData]];j.opts.dynamicRef&&H.push([a.default.dynamicAnchors,a.default.dynamicAnchors]);let F=(0,t._)`${V}, ${$.object(...H)}`;return I!==t.nil?(0,t._)`${x}.call(${I}, ${F})`:(0,t._)`${x}(${F})`}e.callValidateCode=m;var v=(0,t._)`new RegExp`;function h({gen:g,it:{opts:E}},$){let y=E.unicodeRegExp?"u":"",{regExp:p}=E.code,P=p($,y);return g.scopeValue("pattern",{key:P.toString(),ref:P,code:(0,t._)`${p.code==="new RegExp"?v:(0,n.useFunc)(g,p)}(${$}, ${y})`})}e.usePattern=h;function f(g){let{gen:E,data:$,keyword:y,it:p}=g,P=E.name("valid");if(p.allErrors){let x=E.let("valid",!0);return j(()=>E.assign(x,!1)),x}return E.var(P,!0),j(()=>E.break()),P;function j(x){let I=E.const("len",(0,t._)`${$}.length`);E.forRange("i",0,I,q=>{g.subschema({keyword:y,dataProp:q,dataPropType:r.Type.Num},P),E.if((0,t.not)(P),x)})}}e.validateArray=f;function _(g){let{gen:E,schema:$,keyword:y,it:p}=g;if(!Array.isArray($))throw new Error("ajv implementation error");if($.some(x=>(0,r.alwaysValidSchema)(p,x))&&!p.opts.unevaluated)return;let P=E.let("valid",!1),j=E.name("_valid");E.block(()=>$.forEach((x,I)=>{let q=g.subschema({keyword:y,schemaProp:I,compositeRule:!0},j);E.assign(P,(0,t._)`${P} || ${j}`),g.mergeValidEvaluated(q,j)||E.if((0,t.not)(P))})),g.result(P,()=>g.reset(),()=>g.error(!0))}e.validateUnion=_}),sv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=de(),r=Kt(),a=dt(),n=En();function s(w,m){let{gen:v,keyword:h,schema:f,parentSchema:_,it:g}=w,E=m.macro.call(g.self,f,_,g),$=l(v,h,E);g.opts.validateSchema!==!1&&g.self.validateSchema(E,!0);let y=v.name("valid");w.subschema({schema:E,schemaPath:t.nil,errSchemaPath:`${g.errSchemaPath}/${h}`,topSchemaRef:$,compositeRule:!0},y),w.pass(y,()=>w.error(!0))}e.macroKeywordCode=s;function o(w,m){var v;let{gen:h,keyword:f,schema:_,parentSchema:g,$data:E,it:$}=w;c($,m);let y=!E&&m.compile?m.compile.call($.self,_,g,$):m.validate,p=l(h,f,y),P=h.let("valid");w.block$data(P,j),w.ok((v=m.valid)!==null&&v!==void 0?v:P);function j(){if(m.errors===!1)q(),m.modifying&&u(w),V(()=>w.error());else{let H=m.async?x():I();m.modifying&&u(w),V(()=>i(w,H))}}function x(){let H=h.let("ruleErrs",null);return h.try(()=>q((0,t._)`await `),F=>h.assign(P,!1).if((0,t._)`${F} instanceof ${$.ValidationError}`,()=>h.assign(H,(0,t._)`${F}.errors`),()=>h.throw(F))),H}function I(){let H=(0,t._)`${p}.errors`;return h.assign(H,null),q(t.nil),H}function q(H=m.async?(0,t._)`await `:t.nil){let F=$.opts.passContext?r.default.this:r.default.self,U=!("compile"in m&&!E||m.schema===!1);h.assign(P,(0,t._)`${H}${(0,a.callValidateCode)(w,p,F,U)}`,m.modifying)}function V(H){var F;h.if((0,t.not)((F=m.valid)!==null&&F!==void 0?F:P),H)}}e.funcKeywordCode=o;function u(w){let{gen:m,data:v,it:h}=w;m.if(h.parentData,()=>m.assign(v,(0,t._)`${h.parentData}[${h.parentDataProperty}]`))}function i(w,m){let{gen:v}=w;v.if((0,t._)`Array.isArray(${m})`,()=>{v.assign(r.default.vErrors,(0,t._)`${r.default.vErrors} === null ? ${m} : ${r.default.vErrors}.concat(${m})`).assign(r.default.errors,(0,t._)`${r.default.vErrors}.length`),(0,n.extendErrors)(w)},()=>w.error())}function c({schemaEnv:w},m){if(m.async&&!w.$async)throw new Error("async keyword in sync schema")}function l(w,m,v){if(v===void 0)throw new Error(`keyword "${m}" failed to compile`);return w.scopeValue("keyword",typeof v=="function"?{ref:v}:{ref:v,code:(0,t.stringify)(v)})}function d(w,m,v=!1){return!m.length||m.some(h=>h==="array"?Array.isArray(w):h==="object"?w&&typeof w=="object"&&!Array.isArray(w):typeof w==h||v&&typeof w>"u")}e.validSchemaType=d;function b({schema:w,opts:m,self:v,errSchemaPath:h},f,_){if(Array.isArray(f.keyword)?!f.keyword.includes(_):f.keyword!==_)throw new Error("ajv implementation error");let g=f.dependencies;if(g?.some(E=>!Object.prototype.hasOwnProperty.call(w,E)))throw new Error(`parent schema must have dependencies of ${_}: ${g.join(",")}`);if(f.validateSchema&&!f.validateSchema(w[_])){let E=`keyword "${_}" value is invalid at path "${h}": `+v.errorsText(f.validateSchema.errors);if(m.validateSchema==="log")v.logger.error(E);else throw new Error(E)}}e.validateKeywordUsage=b}),ov=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;var t=de(),r=ge();function a(o,{keyword:u,schemaProp:i,schema:c,schemaPath:l,errSchemaPath:d,topSchemaRef:b}){if(u!==void 0&&c!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(u!==void 0){let w=o.schema[u];return i===void 0?{schema:w,schemaPath:(0,t._)`${o.schemaPath}${(0,t.getProperty)(u)}`,errSchemaPath:`${o.errSchemaPath}/${u}`}:{schema:w[i],schemaPath:(0,t._)`${o.schemaPath}${(0,t.getProperty)(u)}${(0,t.getProperty)(i)}`,errSchemaPath:`${o.errSchemaPath}/${u}/${(0,r.escapeFragment)(i)}`}}if(c!==void 0){if(l===void 0||d===void 0||b===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:c,schemaPath:l,topSchemaRef:b,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}e.getSubschema=a;function n(o,u,{dataProp:i,dataPropType:c,data:l,dataTypes:d,propertyName:b}){if(l!==void 0&&i!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:w}=u;if(i!==void 0){let{errorPath:v,dataPathArr:h,opts:f}=u,_=w.let("data",(0,t._)`${u.data}${(0,t.getProperty)(i)}`,!0);m(_),o.errorPath=(0,t.str)`${v}${(0,r.getErrorPath)(i,c,f.jsPropertySyntax)}`,o.parentDataProperty=(0,t._)`${i}`,o.dataPathArr=[...h,o.parentDataProperty]}if(l!==void 0){let v=l instanceof t.Name?l:w.let("data",l,!0);m(v),b!==void 0&&(o.propertyName=b)}d&&(o.dataTypes=d);function m(v){o.data=v,o.dataLevel=u.dataLevel+1,o.dataTypes=[],u.definedProperties=new Set,o.parentData=u.data,o.dataNames=[...u.dataNames,v]}}e.extendSubschemaData=n;function s(o,{jtdDiscriminator:u,jtdMetadata:i,compositeRule:c,createErrors:l,allErrors:d}){c!==void 0&&(o.compositeRule=c),l!==void 0&&(o.createErrors=l),d!==void 0&&(o.allErrors=d),o.jtdDiscriminator=u,o.jtdMetadata=i}e.extendSubschemaMode=s}),Ql=J((e,t)=>{t.exports=function r(a,n){if(a===n)return!0;if(a&&n&&typeof a=="object"&&typeof n=="object"){if(a.constructor!==n.constructor)return!1;var s,o,u;if(Array.isArray(a)){if(s=a.length,s!=n.length)return!1;for(o=s;o--!==0;)if(!r(a[o],n[o]))return!1;return!0}if(a.constructor===RegExp)return a.source===n.source&&a.flags===n.flags;if(a.valueOf!==Object.prototype.valueOf)return a.valueOf()===n.valueOf();if(a.toString!==Object.prototype.toString)return a.toString()===n.toString();if(u=Object.keys(a),s=u.length,s!==Object.keys(n).length)return!1;for(o=s;o--!==0;)if(!Object.prototype.hasOwnProperty.call(n,u[o]))return!1;for(o=s;o--!==0;){var i=u[o];if(!r(a[i],n[i]))return!1}return!0}return a!==a&&n!==n}}),iv=J((e,t)=>{var r=t.exports=function(s,o,u){typeof o=="function"&&(u=o,o={}),u=o.cb||u;var i=typeof u=="function"?u:u.pre||function(){},c=u.post||function(){};a(o,i,c,s,"",s)};r.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},r.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},r.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},r.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 a(s,o,u,i,c,l,d,b,w,m){if(i&&typeof i=="object"&&!Array.isArray(i)){o(i,c,l,d,b,w,m);for(var v in i){var h=i[v];if(Array.isArray(h)){if(v in r.arrayKeywords)for(var f=0;f<h.length;f++)a(s,o,u,h[f],c+"/"+v+"/"+f,l,c,v,i,f)}else if(v in r.propsKeywords){if(h&&typeof h=="object")for(var _ in h)a(s,o,u,h[_],c+"/"+v+"/"+n(_),l,c,v,i,_)}else(v in r.keywords||s.allKeys&&!(v in r.skipKeywords))&&a(s,o,u,h,c+"/"+v,l,c,v,i)}u(i,c,l,d,b,w,m)}}function n(s){return s.replace(/~/g,"~0").replace(/\//g,"~1")}}),Pn=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getSchemaRefs=e.resolveUrl=e.normalizeId=e._getFullPath=e.getFullPath=e.inlineRef=void 0;var t=ge(),r=Ql(),a=iv(),n=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function s(h,f=!0){return typeof h=="boolean"?!0:f===!0?!u(h):f?i(h)<=f:!1}e.inlineRef=s;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function u(h){for(let f in h){if(o.has(f))return!0;let _=h[f];if(Array.isArray(_)&&_.some(u)||typeof _=="object"&&u(_))return!0}return!1}function i(h){let f=0;for(let _ in h)if(_==="$ref"||(f++,!n.has(_)&&(typeof h[_]=="object"&&(0,t.eachItem)(h[_],g=>f+=i(g)),f===1/0)))return 1/0;return f}function c(h,f="",_){_!==!1&&(f=b(f));let g=h.parse(f);return l(h,g)}e.getFullPath=c;function l(h,f){return h.serialize(f).split("#")[0]+"#"}e._getFullPath=l;var d=/#\/?$/;function b(h){return h?h.replace(d,""):""}e.normalizeId=b;function w(h,f,_){return _=b(_),h.resolve(f,_)}e.resolveUrl=w;var m=/^[a-z_][-a-z0-9._]*$/i;function v(h,f){if(typeof h=="boolean")return{};let{schemaId:_,uriResolver:g}=this.opts,E=b(h[_]||f),$={"":E},y=c(g,E,!1),p={},P=new Set;return a(h,{allKeys:!0},(I,q,V,H)=>{if(H===void 0)return;let F=y+q,U=$[H];typeof I[_]=="string"&&(U=G.call(this,I[_])),re.call(this,I.$anchor),re.call(this,I.$dynamicAnchor),$[q]=U;function G(B){let T=this.opts.uriResolver.resolve;if(B=b(U?T(U,B):B),P.has(B))throw x(B);P.add(B);let R=this.refs[B];return typeof R=="string"&&(R=this.refs[R]),typeof R=="object"?j(I,R.schema,B):B!==b(F)&&(B[0]==="#"?(j(I,p[B],B),p[B]=I):this.refs[B]=F),B}function re(B){if(typeof B=="string"){if(!m.test(B))throw new Error(`invalid anchor "${B}"`);G.call(this,`#${B}`)}}}),p;function j(I,q,V){if(q!==void 0&&!r(I,q))throw x(V)}function x(I){return new Error(`reference "${I}" resolves to more than one schema`)}}e.getSchemaRefs=v}),jn=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=av(),r=bn(),a=Zl(),n=bn(),s=nv(),o=sv(),u=ov(),i=de(),c=Kt(),l=Pn(),d=ge(),b=En();function w(O){if(y(O)&&(P(O),$(O))){f(O);return}m(O,()=>(0,t.topBoolOrEmptySchema)(O))}e.validateFunctionCode=w;function m({gen:O,validateName:C,schema:D,schemaEnv:Q,opts:te},ne){te.code.es5?O.func(C,(0,i._)`${c.default.data}, ${c.default.valCxt}`,Q.$async,()=>{O.code((0,i._)`"use strict"; ${g(D,te)}`),h(O,te),O.code(ne)}):O.func(C,(0,i._)`${c.default.data}, ${v(te)}`,Q.$async,()=>O.code(g(D,te)).code(ne))}function v(O){return(0,i._)`{${c.default.instancePath}="", ${c.default.parentData}, ${c.default.parentDataProperty}, ${c.default.rootData}=${c.default.data}${O.dynamicRef?(0,i._)`, ${c.default.dynamicAnchors}={}`:i.nil}}={}`}function h(O,C){O.if(c.default.valCxt,()=>{O.var(c.default.instancePath,(0,i._)`${c.default.valCxt}.${c.default.instancePath}`),O.var(c.default.parentData,(0,i._)`${c.default.valCxt}.${c.default.parentData}`),O.var(c.default.parentDataProperty,(0,i._)`${c.default.valCxt}.${c.default.parentDataProperty}`),O.var(c.default.rootData,(0,i._)`${c.default.valCxt}.${c.default.rootData}`),C.dynamicRef&&O.var(c.default.dynamicAnchors,(0,i._)`${c.default.valCxt}.${c.default.dynamicAnchors}`)},()=>{O.var(c.default.instancePath,(0,i._)`""`),O.var(c.default.parentData,(0,i._)`undefined`),O.var(c.default.parentDataProperty,(0,i._)`undefined`),O.var(c.default.rootData,c.default.data),C.dynamicRef&&O.var(c.default.dynamicAnchors,(0,i._)`{}`)})}function f(O){let{schema:C,opts:D,gen:Q}=O;m(O,()=>{D.$comment&&C.$comment&&H(O),I(O),Q.let(c.default.vErrors,null),Q.let(c.default.errors,0),D.unevaluated&&_(O),j(O),F(O)})}function _(O){let{gen:C,validateName:D}=O;O.evaluated=C.const("evaluated",(0,i._)`${D}.evaluated`),C.if((0,i._)`${O.evaluated}.dynamicProps`,()=>C.assign((0,i._)`${O.evaluated}.props`,(0,i._)`undefined`)),C.if((0,i._)`${O.evaluated}.dynamicItems`,()=>C.assign((0,i._)`${O.evaluated}.items`,(0,i._)`undefined`))}function g(O,C){let D=typeof O=="object"&&O[C.schemaId];return D&&(C.code.source||C.code.process)?(0,i._)`/*# sourceURL=${D} */`:i.nil}function E(O,C){if(y(O)&&(P(O),$(O))){p(O,C);return}(0,t.boolOrEmptySchema)(O,C)}function $({schema:O,self:C}){if(typeof O=="boolean")return!O;for(let D in O)if(C.RULES.all[D])return!0;return!1}function y(O){return typeof O.schema!="boolean"}function p(O,C){let{schema:D,gen:Q,opts:te}=O;te.$comment&&D.$comment&&H(O),q(O),V(O);let ne=Q.const("_errs",c.default.errors);j(O,ne),Q.var(C,(0,i._)`${ne} === ${c.default.errors}`)}function P(O){(0,d.checkUnknownRules)(O),x(O)}function j(O,C){if(O.opts.jtd)return G(O,[],!1,C);let D=(0,r.getSchemaTypes)(O.schema),Q=(0,r.coerceAndCheckDataType)(O,D);G(O,D,!Q,C)}function x(O){let{schema:C,errSchemaPath:D,opts:Q,self:te}=O;C.$ref&&Q.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(C,te.RULES)&&te.logger.warn(`$ref: keywords ignored in schema at path "${D}"`)}function I(O){let{schema:C,opts:D}=O;C.default!==void 0&&D.useDefaults&&D.strictSchema&&(0,d.checkStrictMode)(O,"default is ignored in the schema root")}function q(O){let C=O.schema[O.opts.schemaId];C&&(O.baseId=(0,l.resolveUrl)(O.opts.uriResolver,O.baseId,C))}function V(O){if(O.schema.$async&&!O.schemaEnv.$async)throw new Error("async schema in sync schema")}function H({gen:O,schemaEnv:C,schema:D,errSchemaPath:Q,opts:te}){let ne=D.$comment;if(te.$comment===!0)O.code((0,i._)`${c.default.self}.logger.log(${ne})`);else if(typeof te.$comment=="function"){let Te=(0,i.str)`${Q}/$comment`,Ce=O.scopeValue("root",{ref:C.root});O.code((0,i._)`${c.default.self}.opts.$comment(${ne}, ${Te}, ${Ce}.schema)`)}}function F(O){let{gen:C,schemaEnv:D,validateName:Q,ValidationError:te,opts:ne}=O;D.$async?C.if((0,i._)`${c.default.errors} === 0`,()=>C.return(c.default.data),()=>C.throw((0,i._)`new ${te}(${c.default.vErrors})`)):(C.assign((0,i._)`${Q}.errors`,c.default.vErrors),ne.unevaluated&&U(O),C.return((0,i._)`${c.default.errors} === 0`))}function U({gen:O,evaluated:C,props:D,items:Q}){D instanceof i.Name&&O.assign((0,i._)`${C}.props`,D),Q instanceof i.Name&&O.assign((0,i._)`${C}.items`,Q)}function G(O,C,D,Q){let{gen:te,schema:ne,data:Te,allErrors:Ce,opts:Ze,self:Me}=O,{RULES:Ne}=Me;if(ne.$ref&&(Ze.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(ne,Ne))){te.block(()=>W(O,"$ref",Ne.all.$ref.definition));return}Ze.jtd||B(O,C),te.block(()=>{for(let Le of Ne.rules)st(Le);st(Ne.post)});function st(Le){(0,a.shouldUseGroup)(ne,Le)&&(Le.type?(te.if((0,n.checkDataType)(Le.type,Te,Ze.strictNumbers)),re(O,Le),C.length===1&&C[0]===Le.type&&D&&(te.else(),(0,n.reportTypeError)(O)),te.endIf()):re(O,Le),Ce||te.if((0,i._)`${c.default.errors} === ${Q||0}`))}}function re(O,C){let{gen:D,schema:Q,opts:{useDefaults:te}}=O;te&&(0,s.assignDefaults)(O,C.type),D.block(()=>{for(let ne of C.rules)(0,a.shouldUseRule)(Q,ne)&&W(O,ne.keyword,ne.definition,C.type)})}function B(O,C){O.schemaEnv.meta||!O.opts.strictTypes||(T(O,C),O.opts.allowUnionTypes||R(O,C),z(O,O.dataTypes))}function T(O,C){if(C.length){if(!O.dataTypes.length){O.dataTypes=C;return}C.forEach(D=>{k(O.dataTypes,D)||A(O,`type "${D}" not allowed by context "${O.dataTypes.join(",")}"`)}),N(O,C)}}function R(O,C){C.length>1&&!(C.length===2&&C.includes("null"))&&A(O,"use allowUnionTypes to allow union type keyword")}function z(O,C){let D=O.self.RULES.all;for(let Q in D){let te=D[Q];if(typeof te=="object"&&(0,a.shouldUseRule)(O.schema,te)){let{type:ne}=te.definition;ne.length&&!ne.some(Te=>S(C,Te))&&A(O,`missing type "${ne.join(",")}" for keyword "${Q}"`)}}}function S(O,C){return O.includes(C)||C==="number"&&O.includes("integer")}function k(O,C){return O.includes(C)||C==="integer"&&O.includes("number")}function N(O,C){let D=[];for(let Q of O.dataTypes)k(C,Q)?D.push(Q):C.includes("integer")&&Q==="number"&&D.push("integer");O.dataTypes=D}function A(O,C){let D=O.schemaEnv.baseId+O.errSchemaPath;C+=` at "${D}" (strictTypes)`,(0,d.checkStrictMode)(O,C,O.opts.strictTypes)}var K=class{constructor(O,C,D){if((0,o.validateKeywordUsage)(O,C,D),this.gen=O.gen,this.allErrors=O.allErrors,this.keyword=D,this.data=O.data,this.schema=O.schema[D],this.$data=C.$data&&O.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(O,this.schema,D,this.$data),this.schemaType=C.schemaType,this.parentSchema=O.schema,this.params={},this.it=O,this.def=C,this.$data)this.schemaCode=O.gen.const("vSchema",xe(this.$data,O));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,C.schemaType,C.allowUndefined))throw new Error(`${D} value must be ${JSON.stringify(C.schemaType)}`);("code"in C?C.trackErrors:C.errors!==!1)&&(this.errsCount=O.gen.const("_errs",c.default.errors))}result(O,C,D){this.failResult((0,i.not)(O),C,D)}failResult(O,C,D){this.gen.if(O),D?D():this.error(),C?(this.gen.else(),C(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(O,C){this.failResult((0,i.not)(O),void 0,C)}fail(O){if(O===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(O),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(O){if(!this.$data)return this.fail(O);let{schemaCode:C}=this;this.fail((0,i._)`${C} !== undefined && (${(0,i.or)(this.invalid$data(),O)})`)}error(O,C,D){if(C){this.setParams(C),this._error(O,D),this.setParams({});return}this._error(O,D)}_error(O,C){(O?b.reportExtraError:b.reportError)(this,this.def.error,C)}$dataError(){(0,b.reportError)(this,this.def.$dataError||b.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,b.resetErrorsCount)(this.gen,this.errsCount)}ok(O){this.allErrors||this.gen.if(O)}setParams(O,C){C?Object.assign(this.params,O):this.params=O}block$data(O,C,D=i.nil){this.gen.block(()=>{this.check$data(O,D),C()})}check$data(O=i.nil,C=i.nil){if(!this.$data)return;let{gen:D,schemaCode:Q,schemaType:te,def:ne}=this;D.if((0,i.or)((0,i._)`${Q} === undefined`,C)),O!==i.nil&&D.assign(O,!0),(te.length||ne.validateSchema)&&(D.elseIf(this.invalid$data()),this.$dataError(),O!==i.nil&&D.assign(O,!1)),D.else()}invalid$data(){let{gen:O,schemaCode:C,schemaType:D,def:Q,it:te}=this;return(0,i.or)(ne(),Te());function ne(){if(D.length){if(!(C instanceof i.Name))throw new Error("ajv implementation error");let Ce=Array.isArray(D)?D:[D];return(0,i._)`${(0,n.checkDataTypes)(Ce,C,te.opts.strictNumbers,n.DataType.Wrong)}`}return i.nil}function Te(){if(Q.validateSchema){let Ce=O.scopeValue("validate$data",{ref:Q.validateSchema});return(0,i._)`!${Ce}(${C})`}return i.nil}}subschema(O,C){let D=(0,u.getSubschema)(this.it,O);(0,u.extendSubschemaData)(D,this.it,O),(0,u.extendSubschemaMode)(D,O);let Q={...this.it,...D,items:void 0,props:void 0};return E(Q,C),Q}mergeEvaluated(O,C){let{it:D,gen:Q}=this;D.opts.unevaluated&&(D.props!==!0&&O.props!==void 0&&(D.props=d.mergeEvaluated.props(Q,O.props,D.props,C)),D.items!==!0&&O.items!==void 0&&(D.items=d.mergeEvaluated.items(Q,O.items,D.items,C)))}mergeValidEvaluated(O,C){let{it:D,gen:Q}=this;if(D.opts.unevaluated&&(D.props!==!0||D.items!==!0))return Q.if(C,()=>this.mergeEvaluated(O,i.Name)),!0}};e.KeywordCxt=K;function W(O,C,D,Q){let te=new K(O,D,C);"code"in D?D.code(te,Q):te.$data&&D.validate?(0,o.funcKeywordCode)(te,D):"macro"in D?(0,o.macroKeywordCode)(te,D):(D.compile||D.validate)&&(0,o.funcKeywordCode)(te,D)}var Y=/^\/(?:[^~]|~0|~1)*$/,fe=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function xe(O,{dataLevel:C,dataNames:D,dataPathArr:Q}){let te,ne;if(O==="")return c.default.rootData;if(O[0]==="/"){if(!Y.test(O))throw new Error(`Invalid JSON-pointer: ${O}`);te=O,ne=c.default.rootData}else{let Me=fe.exec(O);if(!Me)throw new Error(`Invalid JSON-pointer: ${O}`);let Ne=+Me[1];if(te=Me[2],te==="#"){if(Ne>=C)throw new Error(Ze("property/index",Ne));return Q[C-Ne]}if(Ne>C)throw new Error(Ze("data",Ne));if(ne=D[C-Ne],!te)return ne}let Te=ne,Ce=te.split("/");for(let Me of Ce)Me&&(ne=(0,i._)`${ne}${(0,i.getProperty)((0,d.unescapeJsonPointer)(Me))}`,Te=(0,i._)`${Te} && ${ne}`);return Te;function Ze(Me,Ne){return`Cannot access ${Me} ${Ne} levels up, current level is ${C}`}}e.getData=xe}),Yo=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=class extends Error{constructor(r){super("validation failed"),this.errors=r,this.ajv=this.validation=!0}};e.default=t}),On=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Pn(),r=class extends Error{constructor(a,n,s,o){super(o||`can't resolve reference ${s} from id ${n}`),this.missingRef=(0,t.resolveUrl)(a,n,s),this.missingSchema=(0,t.normalizeId)((0,t.getFullPath)(a,this.missingRef))}};e.default=r}),Zo=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=de(),r=Yo(),a=Kt(),n=Pn(),s=ge(),o=jn(),u=class{constructor(f){var _;this.refs={},this.dynamicAnchors={};let g;typeof f.schema=="object"&&(g=f.schema),this.schema=f.schema,this.schemaId=f.schemaId,this.root=f.root||this,this.baseId=(_=f.baseId)!==null&&_!==void 0?_:(0,n.normalizeId)(g?.[f.schemaId||"$id"]),this.schemaPath=f.schemaPath,this.localRefs=f.localRefs,this.meta=f.meta,this.$async=g?.$async,this.refs={}}};e.SchemaEnv=u;function i(f){let _=d.call(this,f);if(_)return _;let g=(0,n.getFullPath)(this.opts.uriResolver,f.root.baseId),{es5:E,lines:$}=this.opts.code,{ownProperties:y}=this.opts,p=new t.CodeGen(this.scope,{es5:E,lines:$,ownProperties:y}),P;f.$async&&(P=p.scopeValue("Error",{ref:r.default,code:(0,t._)`require("ajv/dist/runtime/validation_error").default`}));let j=p.scopeName("validate");f.validateName=j;let x={gen:p,allErrors:this.opts.allErrors,data:a.default.data,parentData:a.default.parentData,parentDataProperty:a.default.parentDataProperty,dataNames:[a.default.data],dataPathArr:[t.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:p.scopeValue("schema",this.opts.code.source===!0?{ref:f.schema,code:(0,t.stringify)(f.schema)}:{ref:f.schema}),validateName:j,ValidationError:P,schema:f.schema,schemaEnv:f,rootId:g,baseId:f.baseId||g,schemaPath:t.nil,errSchemaPath:f.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,t._)`""`,opts:this.opts,self:this},I;try{this._compilations.add(f),(0,o.validateFunctionCode)(x),p.optimize(this.opts.code.optimize);let q=p.toString();I=`${p.scopeRefs(a.default.scope)}return ${q}`,this.opts.code.process&&(I=this.opts.code.process(I,f));let V=new Function(`${a.default.self}`,`${a.default.scope}`,I)(this,this.scope.get());if(this.scope.value(j,{ref:V}),V.errors=null,V.schema=f.schema,V.schemaEnv=f,f.$async&&(V.$async=!0),this.opts.code.source===!0&&(V.source={validateName:j,validateCode:q,scopeValues:p._values}),this.opts.unevaluated){let{props:H,items:F}=x;V.evaluated={props:H instanceof t.Name?void 0:H,items:F instanceof t.Name?void 0:F,dynamicProps:H instanceof t.Name,dynamicItems:F instanceof t.Name},V.source&&(V.source.evaluated=(0,t.stringify)(V.evaluated))}return f.validate=V,f}catch(q){throw delete f.validate,delete f.validateName,I&&this.logger.error("Error compiling schema, function code:",I),q}finally{this._compilations.delete(f)}}e.compileSchema=i;function c(f,_,g){var E;g=(0,n.resolveUrl)(this.opts.uriResolver,_,g);let $=f.refs[g];if($)return $;let y=w.call(this,f,g);if(y===void 0){let p=(E=f.localRefs)===null||E===void 0?void 0:E[g],{schemaId:P}=this.opts;p&&(y=new u({schema:p,schemaId:P,root:f,baseId:_}))}if(y!==void 0)return f.refs[g]=l.call(this,y)}e.resolveRef=c;function l(f){return(0,n.inlineRef)(f.schema,this.opts.inlineRefs)?f.schema:f.validate?f:i.call(this,f)}function d(f){for(let _ of this._compilations)if(b(_,f))return _}e.getCompilingSchema=d;function b(f,_){return f.schema===_.schema&&f.root===_.root&&f.baseId===_.baseId}function w(f,_){let g;for(;typeof(g=this.refs[_])=="string";)_=g;return g||this.schemas[_]||m.call(this,f,_)}function m(f,_){let g=this.opts.uriResolver.parse(_),E=(0,n._getFullPath)(this.opts.uriResolver,g),$=(0,n.getFullPath)(this.opts.uriResolver,f.baseId,void 0);if(Object.keys(f.schema).length>0&&E===$)return h.call(this,g,f);let y=(0,n.normalizeId)(E),p=this.refs[y]||this.schemas[y];if(typeof p=="string"){let P=m.call(this,f,p);return typeof P?.schema!="object"?void 0:h.call(this,g,P)}if(typeof p?.schema=="object"){if(p.validate||i.call(this,p),y===(0,n.normalizeId)(_)){let{schema:P}=p,{schemaId:j}=this.opts,x=P[j];return x&&($=(0,n.resolveUrl)(this.opts.uriResolver,$,x)),new u({schema:P,schemaId:j,root:f,baseId:$})}return h.call(this,g,p)}}e.resolveSchema=m;var v=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function h(f,{baseId:_,schema:g,root:E}){var $;if((($=f.fragment)===null||$===void 0?void 0:$[0])!=="/")return;for(let P of f.fragment.slice(1).split("/")){if(typeof g=="boolean")return;let j=g[(0,s.unescapeFragment)(P)];if(j===void 0)return;g=j;let x=typeof g=="object"&&g[this.opts.schemaId];!v.has(P)&&x&&(_=(0,n.resolveUrl)(this.opts.uriResolver,_,x))}let y;if(typeof g!="boolean"&&g.$ref&&!(0,s.schemaHasRulesButRef)(g,this.RULES)){let P=(0,n.resolveUrl)(this.opts.uriResolver,_,g.$ref);y=m.call(this,E,P)}let{schemaId:p}=this.opts;if(y=y||new u({schema:g,schemaId:p,root:E,baseId:_}),y.schema!==y.root.schema)return y}}),uv=J((e,t)=>{t.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}}),Xl=J((e,t)=>{var r=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),a=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);function n(m){let v="",h=0,f=0;for(f=0;f<m.length;f++)if(h=m[f].charCodeAt(0),h!==48){if(!(h>=48&&h<=57||h>=65&&h<=70||h>=97&&h<=102))return"";v+=m[f];break}for(f+=1;f<m.length;f++){if(h=m[f].charCodeAt(0),!(h>=48&&h<=57||h>=65&&h<=70||h>=97&&h<=102))return"";v+=m[f]}return v}var s=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function o(m){return m.length=0,!0}function u(m,v,h){if(m.length){let f=n(m);if(f!=="")v.push(f);else return h.error=!0,!1;m.length=0}return!0}function i(m){let v=0,h={error:!1,address:"",zone:""},f=[],_=[],g=!1,E=!1,$=u;for(let y=0;y<m.length;y++){let p=m[y];if(!(p==="["||p==="]"))if(p===":"){if(g===!0&&(E=!0),!$(_,f,h))break;if(++v>7){h.error=!0;break}y>0&&m[y-1]===":"&&(g=!0),f.push(":");continue}else if(p==="%"){if(!$(_,f,h))break;$=o}else{_.push(p);continue}}return _.length&&($===o?h.zone=_.join(""):E?f.push(_.join("")):f.push(n(_))),h.address=f.join(""),h}function c(m){if(l(m,":")<2)return{host:m,isIPV6:!1};let v=i(m);if(v.error)return{host:m,isIPV6:!1};{let h=v.address,f=v.address;return v.zone&&(h+="%"+v.zone,f+="%25"+v.zone),{host:h,isIPV6:!0,escapedHost:f}}}function l(m,v){let h=0;for(let f=0;f<m.length;f++)m[f]===v&&h++;return h}function d(m){let v=m,h=[],f=-1,_=0;for(;_=v.length;){if(_===1){if(v===".")break;if(v==="/"){h.push("/");break}else{h.push(v);break}}else if(_===2){if(v[0]==="."){if(v[1]===".")break;if(v[1]==="/"){v=v.slice(2);continue}}else if(v[0]==="/"&&(v[1]==="."||v[1]==="/")){h.push("/");break}}else if(_===3&&v==="/.."){h.length!==0&&h.pop(),h.push("/");break}if(v[0]==="."){if(v[1]==="."){if(v[2]==="/"){v=v.slice(3);continue}}else if(v[1]==="/"){v=v.slice(2);continue}}else if(v[0]==="/"&&v[1]==="."){if(v[2]==="/"){v=v.slice(2);continue}else if(v[2]==="."&&v[3]==="/"){v=v.slice(3),h.length!==0&&h.pop();continue}}if((f=v.indexOf("/",1))===-1){h.push(v);break}else h.push(v.slice(0,f)),v=v.slice(f)}return h.join("")}function b(m,v){let h=v!==!0?escape:unescape;return m.scheme!==void 0&&(m.scheme=h(m.scheme)),m.userinfo!==void 0&&(m.userinfo=h(m.userinfo)),m.host!==void 0&&(m.host=h(m.host)),m.path!==void 0&&(m.path=h(m.path)),m.query!==void 0&&(m.query=h(m.query)),m.fragment!==void 0&&(m.fragment=h(m.fragment)),m}function w(m){let v=[];if(m.userinfo!==void 0&&(v.push(m.userinfo),v.push("@")),m.host!==void 0){let h=unescape(m.host);if(!a(h)){let f=c(h);f.isIPV6===!0?h=`[${f.escapedHost}]`:h=m.host}v.push(h)}return(typeof m.port=="number"||typeof m.port=="string")&&(v.push(":"),v.push(String(m.port))),v.length?v.join(""):void 0}t.exports={nonSimpleDomain:s,recomposeAuthority:w,normalizeComponentEncoding:b,removeDotSegments:d,isIPv4:a,isUUID:r,normalizeIPv6:c,stringArrayToHexStripped:n}}),cv=J((e,t)=>{var{isUUID:r}=Xl(),a=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,n=["http","https","ws","wss","urn","urn:uuid"];function s(p){return n.indexOf(p)!==-1}function o(p){return p.secure===!0?!0:p.secure===!1?!1:p.scheme?p.scheme.length===3&&(p.scheme[0]==="w"||p.scheme[0]==="W")&&(p.scheme[1]==="s"||p.scheme[1]==="S")&&(p.scheme[2]==="s"||p.scheme[2]==="S"):!1}function u(p){return p.host||(p.error=p.error||"HTTP URIs must have a host."),p}function i(p){let P=String(p.scheme).toLowerCase()==="https";return(p.port===(P?443:80)||p.port==="")&&(p.port=void 0),p.path||(p.path="/"),p}function c(p){return p.secure=o(p),p.resourceName=(p.path||"/")+(p.query?"?"+p.query:""),p.path=void 0,p.query=void 0,p}function l(p){if((p.port===(o(p)?443:80)||p.port==="")&&(p.port=void 0),typeof p.secure=="boolean"&&(p.scheme=p.secure?"wss":"ws",p.secure=void 0),p.resourceName){let[P,j]=p.resourceName.split("?");p.path=P&&P!=="/"?P:void 0,p.query=j,p.resourceName=void 0}return p.fragment=void 0,p}function d(p,P){if(!p.path)return p.error="URN can not be parsed",p;let j=p.path.match(a);if(j){let x=P.scheme||p.scheme||"urn";p.nid=j[1].toLowerCase(),p.nss=j[2];let I=`${x}:${P.nid||p.nid}`,q=y(I);p.path=void 0,q&&(p=q.parse(p,P))}else p.error=p.error||"URN can not be parsed.";return p}function b(p,P){if(p.nid===void 0)throw new Error("URN without nid cannot be serialized");let j=P.scheme||p.scheme||"urn",x=p.nid.toLowerCase(),I=`${j}:${P.nid||x}`,q=y(I);q&&(p=q.serialize(p,P));let V=p,H=p.nss;return V.path=`${x||P.nid}:${H}`,P.skipEscape=!0,V}function w(p,P){let j=p;return j.uuid=j.nss,j.nss=void 0,!P.tolerant&&(!j.uuid||!r(j.uuid))&&(j.error=j.error||"UUID is not valid."),j}function m(p){let P=p;return P.nss=(p.uuid||"").toLowerCase(),P}var v={scheme:"http",domainHost:!0,parse:u,serialize:i},h={scheme:"https",domainHost:v.domainHost,parse:u,serialize:i},f={scheme:"ws",domainHost:!0,parse:c,serialize:l},_={scheme:"wss",domainHost:f.domainHost,parse:f.parse,serialize:f.serialize},g={scheme:"urn",parse:d,serialize:b,skipNormalize:!0},E={scheme:"urn:uuid",parse:w,serialize:m,skipNormalize:!0},$={http:v,https:h,ws:f,wss:_,urn:g,"urn:uuid":E};Object.setPrototypeOf($,null);function y(p){return p&&($[p]||$[p.toLowerCase()])||void 0}t.exports={wsIsSecure:o,SCHEMES:$,isValidSchemeName:s,getSchemeHandler:y}}),lv=J((e,t)=>{var{normalizeIPv6:r,removeDotSegments:a,recomposeAuthority:n,normalizeComponentEncoding:s,isIPv4:o,nonSimpleDomain:u}=Xl(),{SCHEMES:i,getSchemeHandler:c}=cv();function l(_,g){return typeof _=="string"?_=m(h(_,g),g):typeof _=="object"&&(_=h(m(_,g),g)),_}function d(_,g,E){let $=E?Object.assign({scheme:"null"},E):{scheme:"null"},y=b(h(_,$),h(g,$),$,!0);return $.skipEscape=!0,m(y,$)}function b(_,g,E,$){let y={};return $||(_=h(m(_,E),E),g=h(m(g,E),E)),E=E||{},!E.tolerant&&g.scheme?(y.scheme=g.scheme,y.userinfo=g.userinfo,y.host=g.host,y.port=g.port,y.path=a(g.path||""),y.query=g.query):(g.userinfo!==void 0||g.host!==void 0||g.port!==void 0?(y.userinfo=g.userinfo,y.host=g.host,y.port=g.port,y.path=a(g.path||""),y.query=g.query):(g.path?(g.path[0]==="/"?y.path=a(g.path):((_.userinfo!==void 0||_.host!==void 0||_.port!==void 0)&&!_.path?y.path="/"+g.path:_.path?y.path=_.path.slice(0,_.path.lastIndexOf("/")+1)+g.path:y.path=g.path,y.path=a(y.path)),y.query=g.query):(y.path=_.path,g.query!==void 0?y.query=g.query:y.query=_.query),y.userinfo=_.userinfo,y.host=_.host,y.port=_.port),y.scheme=_.scheme),y.fragment=g.fragment,y}function w(_,g,E){return typeof _=="string"?(_=unescape(_),_=m(s(h(_,E),!0),{...E,skipEscape:!0})):typeof _=="object"&&(_=m(s(_,!0),{...E,skipEscape:!0})),typeof g=="string"?(g=unescape(g),g=m(s(h(g,E),!0),{...E,skipEscape:!0})):typeof g=="object"&&(g=m(s(g,!0),{...E,skipEscape:!0})),_.toLowerCase()===g.toLowerCase()}function m(_,g){let E={host:_.host,scheme:_.scheme,userinfo:_.userinfo,port:_.port,path:_.path,query:_.query,nid:_.nid,nss:_.nss,uuid:_.uuid,fragment:_.fragment,reference:_.reference,resourceName:_.resourceName,secure:_.secure,error:""},$=Object.assign({},g),y=[],p=c($.scheme||E.scheme);p&&p.serialize&&p.serialize(E,$),E.path!==void 0&&($.skipEscape?E.path=unescape(E.path):(E.path=escape(E.path),E.scheme!==void 0&&(E.path=E.path.split("%3A").join(":")))),$.reference!=="suffix"&&E.scheme&&y.push(E.scheme,":");let P=n(E);if(P!==void 0&&($.reference!=="suffix"&&y.push("//"),y.push(P),E.path&&E.path[0]!=="/"&&y.push("/")),E.path!==void 0){let j=E.path;!$.absolutePath&&(!p||!p.absolutePath)&&(j=a(j)),P===void 0&&j[0]==="/"&&j[1]==="/"&&(j="/%2F"+j.slice(2)),y.push(j)}return E.query!==void 0&&y.push("?",E.query),E.fragment!==void 0&&y.push("#",E.fragment),y.join("")}var v=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function h(_,g){let E=Object.assign({},g),$={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},y=!1;E.reference==="suffix"&&(E.scheme?_=E.scheme+":"+_:_="//"+_);let p=_.match(v);if(p){if($.scheme=p[1],$.userinfo=p[3],$.host=p[4],$.port=parseInt(p[5],10),$.path=p[6]||"",$.query=p[7],$.fragment=p[8],isNaN($.port)&&($.port=p[5]),$.host)if(o($.host)===!1){let j=r($.host);$.host=j.host.toLowerCase(),y=j.isIPV6}else y=!0;$.scheme===void 0&&$.userinfo===void 0&&$.host===void 0&&$.port===void 0&&$.query===void 0&&!$.path?$.reference="same-document":$.scheme===void 0?$.reference="relative":$.fragment===void 0?$.reference="absolute":$.reference="uri",E.reference&&E.reference!=="suffix"&&E.reference!==$.reference&&($.error=$.error||"URI is not a "+E.reference+" reference.");let P=c(E.scheme||$.scheme);if(!E.unicodeSupport&&(!P||!P.unicodeSupport)&&$.host&&(E.domainHost||P&&P.domainHost)&&y===!1&&u($.host))try{$.host=URL.domainToASCII($.host.toLowerCase())}catch(j){$.error=$.error||"Host's domain name can not be converted to ASCII: "+j}(!P||P&&!P.skipNormalize)&&(_.indexOf("%")!==-1&&($.scheme!==void 0&&($.scheme=unescape($.scheme)),$.host!==void 0&&($.host=unescape($.host))),$.path&&($.path=escape(unescape($.path))),$.fragment&&($.fragment=encodeURI(decodeURIComponent($.fragment)))),P&&P.parse&&P.parse($,E)}else $.error=$.error||"URI can not be parsed.";return $}var f={SCHEMES:i,normalize:l,resolve:d,resolveComponent:b,equal:w,serialize:m,parse:h};t.exports=f,t.exports.default=f,t.exports.fastUri=f}),dv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lv();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),fv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=jn();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var r=de();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});var a=Yo(),n=On(),s=Yl(),o=Zo(),u=de(),i=Pn(),c=bn(),l=ge(),d=uv(),b=dv(),w=(T,R)=>new RegExp(T,R);w.code="new RegExp";var m=["removeAdditional","useDefaults","coerceTypes"],v=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),h={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."},f={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},_=200;function g(T){var R,z,S,k,N,A,K,W,Y,fe,xe,O,C,D,Q,te,ne,Te,Ce,Ze,Me,Ne,st,Le,Rr;let ft=T.strict,bt=(R=T.code)===null||R===void 0?void 0:R.optimize,ga=bt===!0||bt===void 0?1:bt||0,X=(S=(z=T.code)===null||z===void 0?void 0:z.regExp)!==null&&S!==void 0?S:w,se=(k=T.uriResolver)!==null&&k!==void 0?k:b.default;return{strictSchema:(A=(N=T.strictSchema)!==null&&N!==void 0?N:ft)!==null&&A!==void 0?A:!0,strictNumbers:(W=(K=T.strictNumbers)!==null&&K!==void 0?K:ft)!==null&&W!==void 0?W:!0,strictTypes:(fe=(Y=T.strictTypes)!==null&&Y!==void 0?Y:ft)!==null&&fe!==void 0?fe:"log",strictTuples:(O=(xe=T.strictTuples)!==null&&xe!==void 0?xe:ft)!==null&&O!==void 0?O:"log",strictRequired:(D=(C=T.strictRequired)!==null&&C!==void 0?C:ft)!==null&&D!==void 0?D:!1,code:T.code?{...T.code,optimize:ga,regExp:X}:{optimize:ga,regExp:X},loopRequired:(Q=T.loopRequired)!==null&&Q!==void 0?Q:_,loopEnum:(te=T.loopEnum)!==null&&te!==void 0?te:_,meta:(ne=T.meta)!==null&&ne!==void 0?ne:!0,messages:(Te=T.messages)!==null&&Te!==void 0?Te:!0,inlineRefs:(Ce=T.inlineRefs)!==null&&Ce!==void 0?Ce:!0,schemaId:(Ze=T.schemaId)!==null&&Ze!==void 0?Ze:"$id",addUsedSchema:(Me=T.addUsedSchema)!==null&&Me!==void 0?Me:!0,validateSchema:(Ne=T.validateSchema)!==null&&Ne!==void 0?Ne:!0,validateFormats:(st=T.validateFormats)!==null&&st!==void 0?st:!0,unicodeRegExp:(Le=T.unicodeRegExp)!==null&&Le!==void 0?Le:!0,int32range:(Rr=T.int32range)!==null&&Rr!==void 0?Rr:!0,uriResolver:se}}var E=class{constructor(T={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,T=this.opts={...T,...g(T)};let{es5:R,lines:z}=this.opts.code;this.scope=new u.ValueScope({scope:{},prefixes:v,es5:R,lines:z}),this.logger=q(T.logger);let S=T.validateFormats;T.validateFormats=!1,this.RULES=(0,s.getRules)(),$.call(this,h,T,"NOT SUPPORTED"),$.call(this,f,T,"DEPRECATED","warn"),this._metaOpts=x.call(this),T.formats&&P.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),T.keywords&&j.call(this,T.keywords),typeof T.meta=="object"&&this.addMetaSchema(T.meta),p.call(this),T.validateFormats=S}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:T,meta:R,schemaId:z}=this.opts,S=d;z==="id"&&(S={...d},S.id=S.$id,delete S.$id),R&&T&&this.addMetaSchema(S,S[z],!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 z;if(typeof T=="string"){if(z=this.getSchema(T),!z)throw new Error(`no schema with key or ref "${T}"`)}else z=this.compile(T);let S=z(R);return"$async"in z||(this.errors=z.errors),S}compile(T,R){let z=this._addSchema(T,R);return z.validate||this._compileSchemaEnv(z)}compileAsync(T,R){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:z}=this.opts;return S.call(this,T,R);async function S(Y,fe){await k.call(this,Y.$schema);let xe=this._addSchema(Y,fe);return xe.validate||N.call(this,xe)}async function k(Y){Y&&!this.getSchema(Y)&&await S.call(this,{$ref:Y},!0)}async function N(Y){try{return this._compileSchemaEnv(Y)}catch(fe){if(!(fe instanceof n.default))throw fe;return A.call(this,fe),await K.call(this,fe.missingSchema),N.call(this,Y)}}function A({missingSchema:Y,missingRef:fe}){if(this.refs[Y])throw new Error(`AnySchema ${Y} is loaded but ${fe} cannot be resolved`)}async function K(Y){let fe=await W.call(this,Y);this.refs[Y]||await k.call(this,fe.$schema),this.refs[Y]||this.addSchema(fe,Y,R)}async function W(Y){let fe=this._loading[Y];if(fe)return fe;try{return await(this._loading[Y]=z(Y))}finally{delete this._loading[Y]}}}addSchema(T,R,z,S=this.opts.validateSchema){if(Array.isArray(T)){for(let N of T)this.addSchema(N,void 0,z,S);return this}let k;if(typeof T=="object"){let{schemaId:N}=this.opts;if(k=T[N],k!==void 0&&typeof k!="string")throw new Error(`schema ${N} must be string`)}return R=(0,i.normalizeId)(R||k),this._checkUnique(R),this.schemas[R]=this._addSchema(T,z,R,S,!0),this}addMetaSchema(T,R,z=this.opts.validateSchema){return this.addSchema(T,R,!0,z),this}validateSchema(T,R){if(typeof T=="boolean")return!0;let z;if(z=T.$schema,z!==void 0&&typeof z!="string")throw new Error("$schema must be a string");if(z=z||this.opts.defaultMeta||this.defaultMeta(),!z)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let S=this.validate(z,T);if(!S&&R){let k="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(k);else throw new Error(k)}return S}getSchema(T){let R;for(;typeof(R=y.call(this,T))=="string";)T=R;if(R===void 0){let{schemaId:z}=this.opts,S=new o.SchemaEnv({schema:{},schemaId:z});if(R=o.resolveSchema.call(this,S,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=y.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 z=T[this.opts.schemaId];return z&&(z=(0,i.normalizeId)(z),delete this.schemas[z],delete this.refs[z]),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 z;if(typeof T=="string")z=T,typeof R=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),R.keyword=z);else if(typeof T=="object"&&R===void 0){if(R=T,z=R.keyword,Array.isArray(z)&&!z.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(H.call(this,z,R),!R)return(0,l.eachItem)(z,k=>F.call(this,k)),this;G.call(this,R);let S={...R,type:(0,c.getJSONTypes)(R.type),schemaType:(0,c.getJSONTypes)(R.schemaType)};return(0,l.eachItem)(z,S.type.length===0?k=>F.call(this,k,S):k=>S.type.forEach(N=>F.call(this,k,S,N))),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 z of R.rules){let S=z.rules.findIndex(k=>k.keyword===T);S>=0&&z.rules.splice(S,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:z="data"}={}){return!T||T.length===0?"No errors":T.map(S=>`${z}${S.instancePath} ${S.message}`).reduce((S,k)=>S+R+k)}$dataMetaSchema(T,R){let z=this.RULES.all;T=JSON.parse(JSON.stringify(T));for(let S of R){let k=S.split("/").slice(1),N=T;for(let A of k)N=N[A];for(let A in z){let K=z[A];if(typeof K!="object")continue;let{$data:W}=K.definition,Y=N[A];W&&Y&&(N[A]=B(Y))}}return T}_removeAllSchemas(T,R){for(let z in T){let S=T[z];(!R||R.test(z))&&(typeof S=="string"?delete T[z]:S&&!S.meta&&(this._cache.delete(S.schema),delete T[z]))}}_addSchema(T,R,z,S=this.opts.validateSchema,k=this.opts.addUsedSchema){let N,{schemaId:A}=this.opts;if(typeof T=="object")N=T[A];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof T!="boolean")throw new Error("schema must be object or boolean")}let K=this._cache.get(T);if(K!==void 0)return K;z=(0,i.normalizeId)(N||z);let W=i.getSchemaRefs.call(this,T,z);return K=new o.SchemaEnv({schema:T,schemaId:A,meta:R,baseId:z,localRefs:W}),this._cache.set(K.schema,K),k&&!z.startsWith("#")&&(z&&this._checkUnique(z),this.refs[z]=K),S&&this.validateSchema(T,!0),K}_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):o.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{o.compileSchema.call(this,T)}finally{this.opts=R}}};E.ValidationError=a.default,E.MissingRefError=n.default,e.default=E;function $(T,R,z,S="error"){for(let k in T){let N=k;N in R&&this.logger[S](`${z}: option ${k}. ${T[N]}`)}}function y(T){return T=(0,i.normalizeId)(T),this.schemas[T]||this.refs[T]}function p(){let T=this.opts.schemas;if(T)if(Array.isArray(T))this.addSchema(T);else for(let R in T)this.addSchema(T[R],R)}function P(){for(let T in this.opts.formats){let R=this.opts.formats[T];R&&this.addFormat(T,R)}}function j(T){if(Array.isArray(T)){this.addVocabulary(T);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let R in T){let z=T[R];z.keyword||(z.keyword=R),this.addKeyword(z)}}function x(){let T={...this.opts};for(let R of m)delete T[R];return T}var I={log(){},warn(){},error(){}};function q(T){if(T===!1)return I;if(T===void 0)return console;if(T.log&&T.warn&&T.error)return T;throw new Error("logger must implement log, warn and error methods")}var V=/^[a-z_$][a-z0-9_$:-]*$/i;function H(T,R){let{RULES:z}=this;if((0,l.eachItem)(T,S=>{if(z.keywords[S])throw new Error(`Keyword ${S} is already defined`);if(!V.test(S))throw new Error(`Keyword ${S} has invalid name`)}),!!R&&R.$data&&!("code"in R||"validate"in R))throw new Error('$data keyword must have "code" or "validate" function')}function F(T,R,z){var S;let k=R?.post;if(z&&k)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:N}=this,A=k?N.post:N.rules.find(({type:W})=>W===z);if(A||(A={type:z,rules:[]},N.rules.push(A)),N.keywords[T]=!0,!R)return;let K={keyword:T,definition:{...R,type:(0,c.getJSONTypes)(R.type),schemaType:(0,c.getJSONTypes)(R.schemaType)}};R.before?U.call(this,A,K,R.before):A.rules.push(K),N.all[T]=K,(S=R.implements)===null||S===void 0||S.forEach(W=>this.addKeyword(W))}function U(T,R,z){let S=T.rules.findIndex(k=>k.keyword===z);S>=0?T.rules.splice(S,0,R):(T.rules.push(R),this.logger.warn(`rule ${z} is not defined`))}function G(T){let{metaSchema:R}=T;R!==void 0&&(T.$data&&this.opts.$data&&(R=B(R)),T.validateSchema=this.compile(R,!0))}var re={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function B(T){return{anyOf:[T,re]}}}),pv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};e.default=t}),hv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=On(),r=dt(),a=de(),n=Kt(),s=Zo(),o=ge(),u={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:b,it:w}=l,{baseId:m,schemaEnv:v,validateName:h,opts:f,self:_}=w,{root:g}=v;if((b==="#"||b==="#/")&&m===g.baseId)return $();let E=s.resolveRef.call(_,g,m,b);if(E===void 0)throw new t.default(w.opts.uriResolver,m,b);if(E instanceof s.SchemaEnv)return y(E);return p(E);function $(){if(v===g)return c(l,h,v,v.$async);let P=d.scopeValue("root",{ref:g});return c(l,(0,a._)`${P}.validate`,g,g.$async)}function y(P){let j=i(l,P);c(l,j,P,P.$async)}function p(P){let j=d.scopeValue("schema",f.code.source===!0?{ref:P,code:(0,a.stringify)(P)}:{ref:P}),x=d.name("valid"),I=l.subschema({schema:P,dataTypes:[],schemaPath:a.nil,topSchemaRef:j,errSchemaPath:b},x);l.mergeEvaluated(I),l.ok(x)}}};function i(l,d){let{gen:b}=l;return d.validate?b.scopeValue("validate",{ref:d.validate}):(0,a._)`${b.scopeValue("wrapper",{ref:d})}.validate`}e.getValidate=i;function c(l,d,b,w){let{gen:m,it:v}=l,{allErrors:h,schemaEnv:f,opts:_}=v,g=_.passContext?n.default.this:a.nil;w?E():$();function E(){if(!f.$async)throw new Error("async schema referenced by sync schema");let P=m.let("valid");m.try(()=>{m.code((0,a._)`await ${(0,r.callValidateCode)(l,d,g)}`),p(d),h||m.assign(P,!0)},j=>{m.if((0,a._)`!(${j} instanceof ${v.ValidationError})`,()=>m.throw(j)),y(j),h||m.assign(P,!1)}),l.ok(P)}function $(){l.result((0,r.callValidateCode)(l,d,g),()=>p(d),()=>y(d))}function y(P){let j=(0,a._)`${P}.errors`;m.assign(n.default.vErrors,(0,a._)`${n.default.vErrors} === null ? ${j} : ${n.default.vErrors}.concat(${j})`),m.assign(n.default.errors,(0,a._)`${n.default.vErrors}.length`)}function p(P){var j;if(!v.opts.unevaluated)return;let x=(j=b?.validate)===null||j===void 0?void 0:j.evaluated;if(v.props!==!0)if(x&&!x.dynamicProps)x.props!==void 0&&(v.props=o.mergeEvaluated.props(m,x.props,v.props));else{let I=m.var("props",(0,a._)`${P}.evaluated.props`);v.props=o.mergeEvaluated.props(m,I,v.props,a.Name)}if(v.items!==!0)if(x&&!x.dynamicItems)x.items!==void 0&&(v.items=o.mergeEvaluated.items(m,x.items,v.items));else{let I=m.var("items",(0,a._)`${P}.evaluated.items`);v.items=o.mergeEvaluated.items(m,I,v.items,a.Name)}}}e.callRef=c,e.default=u}),mv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=pv(),r=hv(),a=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,r.default];e.default=a}),yv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=t.operators,a={maximum:{okStr:"<=",ok:r.LTE,fail:r.GT},minimum:{okStr:">=",ok:r.GTE,fail:r.LT},exclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},exclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},n={message:({keyword:o,schemaCode:u})=>(0,t.str)`must be ${a[o].okStr} ${u}`,params:({keyword:o,schemaCode:u})=>(0,t._)`{comparison: ${a[o].okStr}, limit: ${u}}`},s={keyword:Object.keys(a),type:"number",schemaType:"number",$data:!0,error:n,code(o){let{keyword:u,data:i,schemaCode:c}=o;o.fail$data((0,t._)`${i} ${a[u].fail} ${c} || isNaN(${i})`)}};e.default=s}),gv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r={message:({schemaCode:n})=>(0,t.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0,t._)`{multipleOf: ${n}}`},a={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:r,code(n){let{gen:s,data:o,schemaCode:u,it:i}=n,c=i.opts.multipleOfPrecision,l=s.let("res"),d=c?(0,t._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${c}`:(0,t._)`${l} !== parseInt(${l})`;n.fail$data((0,t._)`(${u} === 0 || (${l} = ${o}/${u}, ${d}))`)}};e.default=a}),vv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(r){let a=r.length,n=0,s=0,o;for(;s<a;)n++,o=r.charCodeAt(s++),o>=55296&&o<=56319&&s<a&&(o=r.charCodeAt(s),(o&64512)===56320&&s++);return n}e.default=t,t.code='require("ajv/dist/runtime/ucs2length").default'}),_v=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a=vv(),n={message({keyword:o,schemaCode:u}){let i=o==="maxLength"?"more":"fewer";return(0,t.str)`must NOT have ${i} than ${u} characters`},params:({schemaCode:o})=>(0,t._)`{limit: ${o}}`},s={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:n,code(o){let{keyword:u,data:i,schemaCode:c,it:l}=o,d=u==="maxLength"?t.operators.GT:t.operators.LT,b=l.opts.unicode===!1?(0,t._)`${i}.length`:(0,t._)`${(0,r.useFunc)(o.gen,a.default)}(${i})`;o.fail$data((0,t._)`${b} ${d} ${c}`)}};e.default=s}),$v=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=dt(),r=ge(),a=de(),n={message:({schemaCode:o})=>(0,a.str)`must match pattern "${o}"`,params:({schemaCode:o})=>(0,a._)`{pattern: ${o}}`},s={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:n,code(o){let{gen:u,data:i,$data:c,schema:l,schemaCode:d,it:b}=o,w=b.opts.unicodeRegExp?"u":"";if(c){let{regExp:m}=b.opts.code,v=m.code==="new RegExp"?(0,a._)`new RegExp`:(0,r.useFunc)(u,m),h=u.let("valid");u.try(()=>u.assign(h,(0,a._)`${v}(${d}, ${w}).test(${i})`),()=>u.assign(h,!1)),o.fail$data((0,a._)`!${h}`)}else{let m=(0,t.usePattern)(o,l);o.fail$data((0,a._)`!${m}.test(${i})`)}}};e.default=s}),wv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r={message({keyword:n,schemaCode:s}){let o=n==="maxProperties"?"more":"fewer";return(0,t.str)`must NOT have ${o} than ${s} properties`},params:({schemaCode:n})=>(0,t._)`{limit: ${n}}`},a={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(n){let{keyword:s,data:o,schemaCode:u}=n,i=s==="maxProperties"?t.operators.GT:t.operators.LT;n.fail$data((0,t._)`Object.keys(${o}).length ${i} ${u}`)}};e.default=a}),bv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=dt(),r=de(),a=ge(),n={message:({params:{missingProperty:o}})=>(0,r.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,r._)`{missingProperty: ${o}}`},s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:n,code(o){let{gen:u,schema:i,schemaCode:c,data:l,$data:d,it:b}=o,{opts:w}=b;if(!d&&i.length===0)return;let m=i.length>=w.loopRequired;if(b.allErrors?v():h(),w.strictRequired){let g=o.parentSchema.properties,{definedProperties:E}=o.it;for(let $ of i)if(g?.[$]===void 0&&!E.has($)){let y=b.schemaEnv.baseId+b.errSchemaPath,p=`required property "${$}" is not defined at "${y}" (strictRequired)`;(0,a.checkStrictMode)(b,p,b.opts.strictRequired)}}function v(){if(m||d)o.block$data(r.nil,f);else for(let g of i)(0,t.checkReportMissingProp)(o,g)}function h(){let g=u.let("missing");if(m||d){let E=u.let("valid",!0);o.block$data(E,()=>_(g,E)),o.ok(E)}else u.if((0,t.checkMissingProp)(o,i,g)),(0,t.reportMissingProp)(o,g),u.else()}function f(){u.forOf("prop",c,g=>{o.setParams({missingProperty:g}),u.if((0,t.noPropertyInData)(u,l,g,w.ownProperties),()=>o.error())})}function _(g,E){o.setParams({missingProperty:g}),u.forOf(g,c,()=>{u.assign(E,(0,t.propertyInData)(u,l,g,w.ownProperties)),u.if((0,r.not)(E),()=>{o.error(),u.break()})},r.nil)}}};e.default=s}),Sv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r={message({keyword:n,schemaCode:s}){let o=n==="maxItems"?"more":"fewer";return(0,t.str)`must NOT have ${o} than ${s} items`},params:({schemaCode:n})=>(0,t._)`{limit: ${n}}`},a={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(n){let{keyword:s,data:o,schemaCode:u}=n,i=s==="maxItems"?t.operators.GT:t.operators.LT;n.fail$data((0,t._)`${o}.length ${i} ${u}`)}};e.default=a}),Qo=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Ql();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),kv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),r=de(),a=ge(),n=Qo(),s={message:({params:{i:u,j:i}})=>(0,r.str)`must NOT have duplicate items (items ## ${i} and ${u} are identical)`,params:({params:{i:u,j:i}})=>(0,r._)`{i: ${u}, j: ${i}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:s,code(u){let{gen:i,data:c,$data:l,schema:d,parentSchema:b,schemaCode:w,it:m}=u;if(!l&&!d)return;let v=i.let("valid"),h=b.items?(0,t.getSchemaTypes)(b.items):[];u.block$data(v,f,(0,r._)`${w} === false`),u.ok(v);function f(){let $=i.let("i",(0,r._)`${c}.length`),y=i.let("j");u.setParams({i:$,j:y}),i.assign(v,!0),i.if((0,r._)`${$} > 1`,()=>(_()?g:E)($,y))}function _(){return h.length>0&&!h.some($=>$==="object"||$==="array")}function g($,y){let p=i.name("item"),P=(0,t.checkDataTypes)(h,p,m.opts.strictNumbers,t.DataType.Wrong),j=i.const("indices",(0,r._)`{}`);i.for((0,r._)`;${$}--;`,()=>{i.let(p,(0,r._)`${c}[${$}]`),i.if(P,(0,r._)`continue`),h.length>1&&i.if((0,r._)`typeof ${p} == "string"`,(0,r._)`${p} += "_"`),i.if((0,r._)`typeof ${j}[${p}] == "number"`,()=>{i.assign(y,(0,r._)`${j}[${p}]`),u.error(),i.assign(v,!1).break()}).code((0,r._)`${j}[${p}] = ${$}`)})}function E($,y){let p=(0,a.useFunc)(i,n.default),P=i.name("outer");i.label(P).for((0,r._)`;${$}--;`,()=>i.for((0,r._)`${y} = ${$}; ${y}--;`,()=>i.if((0,r._)`${p}(${c}[${$}], ${c}[${y}])`,()=>{u.error(),i.assign(v,!1).break(P)})))}}};e.default=o}),Ev=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a=Qo(),n={message:"must be equal to constant",params:({schemaCode:o})=>(0,t._)`{allowedValue: ${o}}`},s={keyword:"const",$data:!0,error:n,code(o){let{gen:u,data:i,$data:c,schemaCode:l,schema:d}=o;c||d&&typeof d=="object"?o.fail$data((0,t._)`!${(0,r.useFunc)(u,a.default)}(${i}, ${l})`):o.fail((0,t._)`${d} !== ${i}`)}};e.default=s}),Pv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a=Qo(),n={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,t._)`{allowedValues: ${o}}`},s={keyword:"enum",schemaType:"array",$data:!0,error:n,code(o){let{gen:u,data:i,$data:c,schema:l,schemaCode:d,it:b}=o;if(!c&&l.length===0)throw new Error("enum must have non-empty array");let w=l.length>=b.opts.loopEnum,m,v=()=>m??(m=(0,r.useFunc)(u,a.default)),h;if(w||c)h=u.let("valid"),o.block$data(h,f);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let g=u.const("vSchema",d);h=(0,t.or)(...l.map((E,$)=>_(g,$)))}o.pass(h);function f(){u.assign(h,!1),u.forOf("v",d,g=>u.if((0,t._)`${v()}(${i}, ${g})`,()=>u.assign(h,!0).break()))}function _(g,E){let $=l[E];return typeof $=="object"&&$!==null?(0,t._)`${v()}(${i}, ${g}[${E}])`:(0,t._)`${i} === ${$}`}}};e.default=s}),jv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=yv(),r=gv(),a=_v(),n=$v(),s=wv(),o=bv(),u=Sv(),i=kv(),c=Ev(),l=Pv(),d=[t.default,r.default,a.default,n.default,s.default,o.default,u.default,i.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},c.default,l.default];e.default=d}),ed=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=de(),r=ge(),a={message:({params:{len:o}})=>(0,t.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,t._)`{limit: ${o}}`},n={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:a,code(o){let{parentSchema:u,it:i}=o,{items:c}=u;if(!Array.isArray(c)){(0,r.checkStrictMode)(i,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(o,c)}};function s(o,u){let{gen:i,schema:c,data:l,keyword:d,it:b}=o;b.items=!0;let w=i.const("len",(0,t._)`${l}.length`);if(c===!1)o.setParams({len:u.length}),o.pass((0,t._)`${w} <= ${u.length}`);else if(typeof c=="object"&&!(0,r.alwaysValidSchema)(b,c)){let v=i.var("valid",(0,t._)`${w} <= ${u.length}`);i.if((0,t.not)(v),()=>m(v)),o.ok(v)}function m(v){i.forRange("i",u.length,w,h=>{o.subschema({keyword:d,dataProp:h,dataPropType:r.Type.Num},v),b.allErrors||i.if((0,t.not)(v),()=>i.break())})}}e.validateAdditionalItems=s,e.default=n}),td=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=de(),r=ge(),a=dt(),n={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:u,it:i}=o;if(Array.isArray(u))return s(o,"additionalItems",u);i.items=!0,!(0,r.alwaysValidSchema)(i,u)&&o.ok((0,a.validateArray)(o))}};function s(o,u,i=o.schema){let{gen:c,parentSchema:l,data:d,keyword:b,it:w}=o;h(l),w.opts.unevaluated&&i.length&&w.items!==!0&&(w.items=r.mergeEvaluated.items(c,i.length,w.items));let m=c.name("valid"),v=c.const("len",(0,t._)`${d}.length`);i.forEach((f,_)=>{(0,r.alwaysValidSchema)(w,f)||(c.if((0,t._)`${v} > ${_}`,()=>o.subschema({keyword:b,schemaProp:_,dataProp:_},m)),o.ok(m))});function h(f){let{opts:_,errSchemaPath:g}=w,E=i.length,$=E===f.minItems&&(E===f.maxItems||f[u]===!1);if(_.strictTuples&&!$){let y=`"${b}" is ${E}-tuple, but minItems or maxItems/${u} are not specified or different at path "${g}"`;(0,r.checkStrictMode)(w,y,_.strictTuples)}}}e.validateTuple=s,e.default=n}),Ov=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=td(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:a=>(0,t.validateTuple)(a,"items")};e.default=r}),Nv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a=dt(),n=ed(),s={message:({params:{len:u}})=>(0,t.str)`must NOT have more than ${u} items`,params:({params:{len:u}})=>(0,t._)`{limit: ${u}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:s,code(u){let{schema:i,parentSchema:c,it:l}=u,{prefixItems:d}=c;l.items=!0,!(0,r.alwaysValidSchema)(l,i)&&(d?(0,n.validateAdditionalItems)(u,d):u.ok((0,a.validateArray)(u)))}};e.default=o}),Tv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a={message:({params:{min:s,max:o}})=>o===void 0?(0,t.str)`must contain at least ${s} valid item(s)`:(0,t.str)`must contain at least ${s} and no more than ${o} valid item(s)`,params:({params:{min:s,max:o}})=>o===void 0?(0,t._)`{minContains: ${s}}`:(0,t._)`{minContains: ${s}, maxContains: ${o}}`},n={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:a,code(s){let{gen:o,schema:u,parentSchema:i,data:c,it:l}=s,d,b,{minContains:w,maxContains:m}=i;l.opts.next?(d=w===void 0?1:w,b=m):d=1;let v=o.const("len",(0,t._)`${c}.length`);if(s.setParams({min:d,max:b}),b===void 0&&d===0){(0,r.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(b!==void 0&&d>b){(0,r.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,r.alwaysValidSchema)(l,u)){let E=(0,t._)`${v} >= ${d}`;b!==void 0&&(E=(0,t._)`${E} && ${v} <= ${b}`),s.pass(E);return}l.items=!0;let h=o.name("valid");b===void 0&&d===1?_(h,()=>o.if(h,()=>o.break())):d===0?(o.let(h,!0),b!==void 0&&o.if((0,t._)`${c}.length > 0`,f)):(o.let(h,!1),f()),s.result(h,()=>s.reset());function f(){let E=o.name("_valid"),$=o.let("count",0);_(E,()=>o.if(E,()=>g($)))}function _(E,$){o.forRange("i",0,v,y=>{s.subschema({keyword:"contains",dataProp:y,dataPropType:r.Type.Num,compositeRule:!0},E),$()})}function g(E){o.code((0,t._)`${E}++`),b===void 0?o.if((0,t._)`${E} >= ${d}`,()=>o.assign(h,!0).break()):(o.if((0,t._)`${E} > ${b}`,()=>o.assign(h,!1).break()),d===1?o.assign(h,!0):o.if((0,t._)`${E} >= ${d}`,()=>o.assign(h,!0)))}}};e.default=n}),xv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=de(),r=ge(),a=dt();e.error={message:({params:{property:i,depsCount:c,deps:l}})=>{let d=c===1?"property":"properties";return(0,t.str)`must have ${d} ${l} when property ${i} is present`},params:({params:{property:i,depsCount:c,deps:l,missingProperty:d}})=>(0,t._)`{property: ${i},
|
|
16
16
|
missingProperty: ${d},
|
|
17
17
|
depsCount: ${c},
|
|
18
|
-
deps: ${l}}`};var n={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(i){let[c,l]=s(i);o(i,c),u(i,l)}};function s({schema:i}){let c={},l={};for(let d in i){if(d==="__proto__")continue;let b=Array.isArray(i[d])?c:l;b[d]=i[d]}return[c,l]}function o(i,c=i.schema){let{gen:l,data:d,it:b}=i;if(Object.keys(c).length===0)return;let w=l.let("missing");for(let m in c){let v=c[m];if(v.length===0)continue;let h=(0,a.propertyInData)(l,d,m,b.opts.ownProperties);i.setParams({property:m,depsCount:v.length,deps:v.join(", ")}),b.allErrors?l.if(h,()=>{for(let f of v)(0,a.checkReportMissingProp)(i,f)}):(l.if((0,t._)`${h} && (${(0,a.checkMissingProp)(i,v,w)})`),(0,a.reportMissingProp)(i,w),l.else())}}e.validatePropertyDeps=o;function u(i,c=i.schema){let{gen:l,data:d,keyword:b,it:w}=i,m=l.name("valid");for(let v in c)(0,r.alwaysValidSchema)(w,c[v])||(l.if((0,a.propertyInData)(l,d,v,w.opts.ownProperties),()=>{let h=i.subschema({keyword:b,schemaProp:v},m);i.mergeValidEvaluated(h,m)},()=>l.var(m,!0)),i.ok(m))}e.validateSchemaDeps=u,e.default=n}),Iv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a={message:"property name must be valid",params:({params:s})=>(0,t._)`{propertyName: ${s.propertyName}}`},n={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:a,code(s){let{gen:o,schema:u,data:i,it:c}=s;if((0,r.alwaysValidSchema)(c,u))return;let l=o.name("valid");o.forIn("key",i,d=>{s.setParams({propertyName:d}),s.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,t.not)(l),()=>{s.error(!0),c.allErrors||o.break()})}),s.ok(l)}};e.default=n}),rd=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=dt(),r=de(),a=Kt(),n=ge(),s={message:"must NOT have additional properties",params:({params:u})=>(0,r._)`{additionalProperty: ${u.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:s,code(u){let{gen:i,schema:c,parentSchema:l,data:d,errsCount:b,it:w}=u;if(!b)throw new Error("ajv implementation error");let{allErrors:m,opts:v}=w;if(w.props=!0,v.removeAdditional!=="all"&&(0,n.alwaysValidSchema)(w,c))return;let h=(0,t.allSchemaProperties)(l.properties),f=(0,t.allSchemaProperties)(l.patternProperties);_(),u.ok((0,r._)`${b} === ${a.default.errors}`);function _(){i.forIn("key",d,p=>{!h.length&&!f.length?$(p):i.if(g(p),()=>$(p))})}function g(p){let P;if(h.length>8){let j=(0,n.schemaRefOrVal)(w,l.properties,"properties");P=(0,t.isOwnProperty)(i,j,p)}else h.length?P=(0,r.or)(...h.map(j=>(0,r._)`${p} === ${j}`)):P=r.nil;return f.length&&(P=(0,r.or)(P,...f.map(j=>(0,r._)`${(0,t.usePattern)(u,j)}.test(${p})`))),(0,r.not)(P)}function E(p){i.code((0,r._)`delete ${d}[${p}]`)}function $(p){if(v.removeAdditional==="all"||v.removeAdditional&&c===!1){E(p);return}if(c===!1){u.setParams({additionalProperty:p}),u.error(),m||i.break();return}if(typeof c=="object"&&!(0,n.alwaysValidSchema)(w,c)){let P=i.name("valid");v.removeAdditional==="failing"?(y(p,P,!1),i.if((0,r.not)(P),()=>{u.reset(),E(p)})):(y(p,P),m||i.if((0,r.not)(P),()=>i.break()))}}function y(p,P,j){let x={keyword:"additionalProperties",dataProp:p,dataPropType:n.Type.Str};j===!1&&Object.assign(x,{compositeRule:!0,createErrors:!1,allErrors:!1}),u.subschema(x,P)}}};e.default=o}),Cv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=jn(),r=dt(),a=ge(),n=rd(),s={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:u,schema:i,parentSchema:c,data:l,it:d}=o;d.opts.removeAdditional==="all"&&c.additionalProperties===void 0&&n.default.code(new t.KeywordCxt(d,n.default,"additionalProperties"));let b=(0,r.allSchemaProperties)(i);for(let f of b)d.definedProperties.add(f);d.opts.unevaluated&&b.length&&d.props!==!0&&(d.props=a.mergeEvaluated.props(u,(0,a.toHash)(b),d.props));let w=b.filter(f=>!(0,a.alwaysValidSchema)(d,i[f]));if(w.length===0)return;let m=u.name("valid");for(let f of w)v(f)?h(f):(u.if((0,r.propertyInData)(u,l,f,d.opts.ownProperties)),h(f),d.allErrors||u.else().var(m,!0),u.endIf()),o.it.definedProperties.add(f),o.ok(m);function v(f){return d.opts.useDefaults&&!d.compositeRule&&i[f].default!==void 0}function h(f){o.subschema({keyword:"properties",schemaProp:f,dataProp:f},m)}}};e.default=s}),Rv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=dt(),r=de(),a=ge(),n=ge(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:u,schema:i,data:c,parentSchema:l,it:d}=o,{opts:b}=d,w=(0,t.allSchemaProperties)(i),m=w.filter($=>(0,a.alwaysValidSchema)(d,i[$]));if(w.length===0||m.length===w.length&&(!d.opts.unevaluated||d.props===!0))return;let v=b.strictSchema&&!b.allowMatchingProperties&&l.properties,h=u.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,n.evaluatedPropsToName)(u,d.props));let{props:f}=d;_();function _(){for(let $ of w)v&&g($),d.allErrors?E($):(u.var(h,!0),E($),u.if(h))}function g($){for(let y in v)new RegExp($).test(y)&&(0,a.checkStrictMode)(d,`property ${y} matches pattern ${$} (use allowMatchingProperties)`)}function E($){u.forIn("key",c,y=>{u.if((0,r._)`${(0,t.usePattern)(o,$)}.test(${y})`,()=>{let p=m.includes($);p||o.subschema({keyword:"patternProperties",schemaProp:$,dataProp:y,dataPropType:n.Type.Str},h),d.opts.unevaluated&&f!==!0?u.assign((0,r._)`${f}[${y}]`,!0):!p&&!d.allErrors&&u.if((0,r.not)(h),()=>u.break())})})}}};e.default=s}),qv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ge(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(a){let{gen:n,schema:s,it:o}=a;if((0,t.alwaysValidSchema)(o,s)){a.fail();return}let u=n.name("valid");a.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},u),a.failResult(u,()=>a.reset(),()=>a.error())},error:{message:"must NOT be valid"}};e.default=r}),Av=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=dt(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:t.validateUnion,error:{message:"must match a schema in anyOf"}};e.default=r}),Dv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a={message:"must match exactly one schema in oneOf",params:({params:s})=>(0,t._)`{passingSchemas: ${s.passing}}`},n={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:a,code(s){let{gen:o,schema:u,parentSchema:i,it:c}=s;if(!Array.isArray(u))throw new Error("ajv implementation error");if(c.opts.discriminator&&i.discriminator)return;let l=u,d=o.let("valid",!1),b=o.let("passing",null),w=o.name("_valid");s.setParams({passing:b}),o.block(m),s.result(d,()=>s.reset(),()=>s.error(!0));function m(){l.forEach((v,h)=>{let f;(0,r.alwaysValidSchema)(c,v)?o.var(w,!0):f=s.subschema({keyword:"oneOf",schemaProp:h,compositeRule:!0},w),h>0&&o.if((0,t._)`${w} && ${d}`).assign(d,!1).assign(b,(0,t._)`[${b}, ${h}]`).else(),o.if(w,()=>{o.assign(d,!0),o.assign(b,h),f&&s.mergeEvaluated(f,t.Name)})})}}};e.default=n}),Mv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ge(),r={keyword:"allOf",schemaType:"array",code(a){let{gen:n,schema:s,it:o}=a;if(!Array.isArray(s))throw new Error("ajv implementation error");let u=n.name("valid");s.forEach((i,c)=>{if((0,t.alwaysValidSchema)(o,i))return;let l=a.subschema({keyword:"allOf",schemaProp:c},u);a.ok(u),a.mergeEvaluated(l)})}};e.default=r}),Fv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a={message:({params:o})=>(0,t.str)`must match "${o.ifClause}" schema`,params:({params:o})=>(0,t._)`{failingKeyword: ${o.ifClause}}`},n={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:a,code(o){let{gen:u,parentSchema:i,it:c}=o;i.then===void 0&&i.else===void 0&&(0,r.checkStrictMode)(c,'"if" without "then" and "else" is ignored');let l=s(c,"then"),d=s(c,"else");if(!l&&!d)return;let b=u.let("valid",!0),w=u.name("_valid");if(m(),o.reset(),l&&d){let h=u.let("ifClause");o.setParams({ifClause:h}),u.if(w,v("then",h),v("else",h))}else l?u.if(w,v("then")):u.if((0,t.not)(w),v("else"));o.pass(b,()=>o.error(!0));function m(){let h=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},w);o.mergeEvaluated(h)}function v(h,f){return()=>{let _=o.subschema({keyword:h},w);u.assign(b,w),o.mergeValidEvaluated(_,b),f?u.assign(f,(0,t._)`${h}`):o.setParams({ifClause:h})}}}};function s(o,u){let i=o.schema[u];return i!==void 0&&!(0,r.alwaysValidSchema)(o,i)}e.default=n}),Vv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ge(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:a,parentSchema:n,it:s}){n.if===void 0&&(0,t.checkStrictMode)(s,`"${a}" without "if" is ignored`)}};e.default=r}),zv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ed(),r=Ov(),a=td(),n=Nv(),s=Tv(),o=xv(),u=Iv(),i=rd(),c=Cv(),l=Rv(),d=qv(),b=Av(),w=Dv(),m=Mv(),v=Fv(),h=Vv();function f(_=!1){let g=[d.default,b.default,w.default,m.default,v.default,h.default,u.default,i.default,o.default,c.default,l.default];return _?g.push(r.default,n.default):g.push(t.default,a.default),g.push(s.default),g}e.default=f}),Uv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r={message:({schemaCode:n})=>(0,t.str)`must match format "${n}"`,params:({schemaCode:n})=>(0,t._)`{format: ${n}}`},a={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(n,s){let{gen:o,data:u,$data:i,schema:c,schemaCode:l,it:d}=n,{opts:b,errSchemaPath:w,schemaEnv:m,self:v}=d;if(!b.validateFormats)return;i?h():f();function h(){let _=o.scopeValue("formats",{ref:v.formats,code:b.code.formats}),g=o.const("fDef",(0,t._)`${_}[${l}]`),E=o.let("fType"),$=o.let("format");o.if((0,t._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>o.assign(E,(0,t._)`${g}.type || "string"`).assign($,(0,t._)`${g}.validate`),()=>o.assign(E,(0,t._)`"string"`).assign($,g)),n.fail$data((0,t.or)(y(),p()));function y(){return b.strictSchema===!1?t.nil:(0,t._)`${l} && !${$}`}function p(){let P=m.$async?(0,t._)`(${g}.async ? await ${$}(${u}) : ${$}(${u}))`:(0,t._)`${$}(${u})`,j=(0,t._)`(typeof ${$} == "function" ? ${P} : ${$}.test(${u}))`;return(0,t._)`${$} && ${$} !== true && ${E} === ${s} && !${j}`}}function f(){let _=v.formats[c];if(!_){y();return}if(_===!0)return;let[g,E,$]=p(_);g===s&&n.pass(P());function y(){if(b.strictSchema===!1){v.logger.warn(j());return}throw new Error(j());function j(){return`unknown format "${c}" ignored in schema at path "${w}"`}}function p(j){let x=j instanceof RegExp?(0,t.regexpCode)(j):b.code.formats?(0,t._)`${b.code.formats}${(0,t.getProperty)(c)}`:void 0,I=o.scopeValue("formats",{key:c,ref:j,code:x});return typeof j=="object"&&!(j instanceof RegExp)?[j.type||"string",j.validate,(0,t._)`${I}.validate`]:["string",j,I]}function P(){if(typeof _=="object"&&!(_ instanceof RegExp)&&_.async){if(!m.$async)throw new Error("async format in sync schema");return(0,t._)`await ${$}(${u})`}return typeof E=="function"?(0,t._)`${$}(${u})`:(0,t._)`${$}.test(${u})`}}}};e.default=a}),Hv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Uv(),r=[t.default];e.default=r}),Lv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],e.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),Kv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=mv(),r=jv(),a=zv(),n=Hv(),s=Lv(),o=[t.default,r.default,(0,a.default)(),n.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),Gv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0;var t;(function(r){r.Tag="tag",r.Mapping="mapping"})(t||(e.DiscrError=t={}))}),Bv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=Gv(),a=Zo(),n=On(),s=ge(),o={message:({params:{discrError:i,tagName:c}})=>i===r.DiscrError.Tag?`tag "${c}" must be string`:`value of tag "${c}" must be in oneOf`,params:({params:{discrError:i,tag:c,tagName:l}})=>(0,t._)`{error: ${i}, tag: ${l}, tagValue: ${c}}`},u={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(i){let{gen:c,data:l,schema:d,parentSchema:b,it:w}=i,{oneOf:m}=b;if(!w.opts.discriminator)throw new Error("discriminator: requires discriminator option");let v=d.propertyName;if(typeof v!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!m)throw new Error("discriminator: requires oneOf keyword");let h=c.let("valid",!1),f=c.const("tag",(0,t._)`${l}${(0,t.getProperty)(v)}`);c.if((0,t._)`typeof ${f} == "string"`,()=>_(),()=>i.error(!1,{discrError:r.DiscrError.Tag,tag:f,tagName:v})),i.ok(h);function _(){let $=E();c.if(!1);for(let y in $)c.elseIf((0,t._)`${f} === ${y}`),c.assign(h,g($[y]));c.else(),i.error(!1,{discrError:r.DiscrError.Mapping,tag:f,tagName:v}),c.endIf()}function g($){let y=c.name("valid"),p=i.subschema({keyword:"oneOf",schemaProp:$},y);return i.mergeEvaluated(p,t.Name),y}function E(){var $;let y={},p=j(b),P=!0;for(let q=0;q<m.length;q++){let V=m[q];if(V?.$ref&&!(0,s.schemaHasRulesButRef)(V,w.self.RULES)){let F=V.$ref;if(V=a.resolveRef.call(w.self,w.schemaEnv.root,w.baseId,F),V instanceof a.SchemaEnv&&(V=V.schema),V===void 0)throw new n.default(w.opts.uriResolver,w.baseId,F)}let H=($=V?.properties)===null||$===void 0?void 0:$[v];if(typeof H!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${v}"`);P=P&&(p||j(V)),x(H,q)}if(!P)throw new Error(`discriminator: "${v}" must be required`);return y;function j({required:q}){return Array.isArray(q)&&q.includes(v)}function x(q,V){if(q.const)I(q.const,V);else if(q.enum)for(let H of q.enum)I(H,V);else throw new Error(`discriminator: "properties/${v}" must have "const" or "enum"`)}function I(q,V){if(typeof q!="string"||q in y)throw new Error(`discriminator: "${v}" values must be unique strings`);y[q]=V}}}};e.default=u}),Jv=J((e,t)=>{t.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),Wv=J((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;var r=fv(),a=Kv(),n=Bv(),s=Jv(),o=["/properties"],u="http://json-schema.org/draft-07/schema",i=class extends r.default{_addVocabularies(){super._addVocabularies(),a.default.forEach(w=>this.addVocabulary(w)),this.opts.discriminator&&this.addKeyword(n.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let w=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(w,u,!1),this.refs["http://json-schema.org/schema"]=u}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(u)?u:void 0)}};e.Ajv=i,t.exports=e=i,t.exports.Ajv=i,Object.defineProperty(e,"__esModule",{value:!0}),e.default=i;var c=jn();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return c.KeywordCxt}});var l=de();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=Yo();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var b=On();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return b.default}})}),vn="b64:";function Yv(e){let t=new TextEncoder().encode(e),r=globalThis.Buffer,a;if(r)a=r.from(t).toString("base64");else if(typeof btoa=="function"){let n="";for(let s of t)n+=String.fromCharCode(s);a=btoa(n)}else throw new Error("No base64 encoder available in this runtime");return a.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function Zv(e){let t=e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-e.length%4)%4),r=globalThis.Buffer;if(r)return r.from(t,"base64").toString("utf8");if(typeof atob=="function"){let a=atob(t),n=new Uint8Array(a.length);for(let s=0;s<a.length;s+=1)n[s]=a.charCodeAt(s);return new TextDecoder().decode(n)}throw new Error("No base64 decoder available in this runtime")}function He(e){return`${vn}${Yv(JSON.stringify(e))}`}function $t(e){if(!e.startsWith(vn))throw new Error(`Invalid ref format (expected ${vn}<base64url(json)>): ${e}`);let t;try{t=JSON.parse(Zv(e.slice(vn.length)))}catch{throw new Error(`Invalid ref format (malformed base64url/json): ${e}`)}if(!t||typeof t!="object")throw new Error(`Invalid ref format (expected object payload): ${e}`);let r=t;if(typeof r.kind!="string"||typeof r.value!="string")throw new Error(`Invalid ref format (payload must contain string kind/value): ${e}`);return{kind:r.kind,value:r.value}}async function Qv(e,t,r){let a=e.tryAcquire();if(!a)return!1;try{await t()}finally{a()}return r?.(),!0}function Nt(...e){return Z.join(...e)}function Lt(...e){return Z.resolve(...e)}function Xv(e){return Z.isAbsolute(e)}function kl(){return Qe()}function e0(e){return Gl("sha256").update(e).digest("hex")}function ad(e){return Z.dirname(Kl(e))}function t0(e){if(typeof e=="object"&&e!==null){let{command:r,args:a=[],...n}=e,s=El(r,a);return{...n,command:s.command,args:s.args}}let t=nd(e);if(t.length===0)throw new Error(`Empty command spec: ${JSON.stringify(e)}`);return El(t[0],t.slice(1))}function El(e,t){return/^(node|node\.exe)$/i.test(e)?{command:process.execPath,args:t}:/\.m?js$/i.test(e)?{command:process.execPath,args:[e,...t]}:{command:e,args:t}}function nd(e){let t=[],r="",a=null;for(let n of e.trim()){if(a){n===a?a=null:r+=n;continue}if(n==='"'||n==="'"){a=n;continue}if(/\s/.test(n)){r&&(t.push(r),r="");continue}r+=n}if(a)throw new Error(`Unterminated quote in command: ${e}`);return r&&t.push(r),t}function Xo(e){return process.platform==="win32"&&/\.(cmd|bat)$/i.test(e)}function r0(e,t){let{command:r,args:a=[],cwd:n,env:s,timeoutMs:o}=e;return Bg(r,a,{shell:Xo(r),timeout:o,encoding:t?.encoding??"utf-8",cwd:n,windowsHide:!0,env:s?{...process.env,...s}:void 0,input:t?.input})}function a0(e,t){let{command:r,args:a=[],cwd:n,env:s,timeoutMs:o=3e4}=e;Gg(r,a,{shell:Xo(r),encoding:"utf8",windowsHide:!0,timeout:o,maxBuffer:10*1024*1024,cwd:n,env:s?{...process.env,...s}:void 0},(u,i,c)=>t(u??null,i,c))}Z.join(Wo.tmpdir(),".board-live-cards-git-bash-cache.json");function ei(e){let{command:t,args:r=[]}=e;if(process.platform==="win32"){let a=!!process.env.VITEST||process.env.NODE_ENV==="test";wl(t,r,{detached:!a,stdio:"ignore",windowsHide:!0,shell:Xo(t)}).unref();return}wl(t,r,{detached:!0,stdio:"ignore"}).unref()}function sd(e,t,r){let a=Z.join(e,"board-live-cards-cli.js");if(M.existsSync(a))return{cmd:process.execPath,args:[a,t,...r]};let n=Z.join(e,"board-live-cards-cli.ts"),s=[Z.join(e,"..","..","..","node_modules","tsx","dist","cli.mjs"),Z.join(e,"..","..","node_modules","tsx","dist","cli.mjs"),Z.join(e,"..","..","..","node_modules",".bin","tsx"),Z.join(e,"..","..","node_modules",".bin","tsx")].find(o=>M.existsSync(o));return M.existsSync(n)&&M.existsSync(s)?{cmd:process.execPath,args:[s,n,t,...r]}:{cmd:process.platform==="win32"?"npx.cmd":"npx",args:["tsx",n,t,...r]}}function od(e){let t=Z.join(e,"board-live-cards-cli.mjs");if(M.existsSync(t))return t;let r=Z.join(e,"..","..","..","dev","board-live-cards-cli.js");if(M.existsSync(r))return r;let a=Z.join(e,"..","..","dev","board-live-cards-cli.js");if(M.existsSync(a))return a;let n=Z.join(e,"board-live-cards-cli.js");if(M.existsSync(n))return n;throw new Error(`resolveBoardCliCallbackTarget: cannot find callback target in ${e} (expected dev/board-live-cards-cli.js wrapper, ${n}, or ${t})`)}function n0(e,t,r){let a=["--base-ref",He(t)];r&&a.push("--notify-channel",r);let{cmd:n,args:s}=sd(e,"process-accumulated-events",a);ei({command:n,args:s})}function s0(e){return process.platform==="win32"?`\\\\.\\pipe\\${e}`:Z.join(Wo.tmpdir(),`${e}.sock`)}var fn=new Map;function o0(e,t,r){if(t.length===0)return;let a=t.map(u=>JSON.stringify(u)).join(`
|
|
18
|
+
deps: ${l}}`};var n={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(i){let[c,l]=s(i);o(i,c),u(i,l)}};function s({schema:i}){let c={},l={};for(let d in i){if(d==="__proto__")continue;let b=Array.isArray(i[d])?c:l;b[d]=i[d]}return[c,l]}function o(i,c=i.schema){let{gen:l,data:d,it:b}=i;if(Object.keys(c).length===0)return;let w=l.let("missing");for(let m in c){let v=c[m];if(v.length===0)continue;let h=(0,a.propertyInData)(l,d,m,b.opts.ownProperties);i.setParams({property:m,depsCount:v.length,deps:v.join(", ")}),b.allErrors?l.if(h,()=>{for(let f of v)(0,a.checkReportMissingProp)(i,f)}):(l.if((0,t._)`${h} && (${(0,a.checkMissingProp)(i,v,w)})`),(0,a.reportMissingProp)(i,w),l.else())}}e.validatePropertyDeps=o;function u(i,c=i.schema){let{gen:l,data:d,keyword:b,it:w}=i,m=l.name("valid");for(let v in c)(0,r.alwaysValidSchema)(w,c[v])||(l.if((0,a.propertyInData)(l,d,v,w.opts.ownProperties),()=>{let h=i.subschema({keyword:b,schemaProp:v},m);i.mergeValidEvaluated(h,m)},()=>l.var(m,!0)),i.ok(m))}e.validateSchemaDeps=u,e.default=n}),Iv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a={message:"property name must be valid",params:({params:s})=>(0,t._)`{propertyName: ${s.propertyName}}`},n={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:a,code(s){let{gen:o,schema:u,data:i,it:c}=s;if((0,r.alwaysValidSchema)(c,u))return;let l=o.name("valid");o.forIn("key",i,d=>{s.setParams({propertyName:d}),s.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,t.not)(l),()=>{s.error(!0),c.allErrors||o.break()})}),s.ok(l)}};e.default=n}),rd=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=dt(),r=de(),a=Kt(),n=ge(),s={message:"must NOT have additional properties",params:({params:u})=>(0,r._)`{additionalProperty: ${u.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:s,code(u){let{gen:i,schema:c,parentSchema:l,data:d,errsCount:b,it:w}=u;if(!b)throw new Error("ajv implementation error");let{allErrors:m,opts:v}=w;if(w.props=!0,v.removeAdditional!=="all"&&(0,n.alwaysValidSchema)(w,c))return;let h=(0,t.allSchemaProperties)(l.properties),f=(0,t.allSchemaProperties)(l.patternProperties);_(),u.ok((0,r._)`${b} === ${a.default.errors}`);function _(){i.forIn("key",d,p=>{!h.length&&!f.length?$(p):i.if(g(p),()=>$(p))})}function g(p){let P;if(h.length>8){let j=(0,n.schemaRefOrVal)(w,l.properties,"properties");P=(0,t.isOwnProperty)(i,j,p)}else h.length?P=(0,r.or)(...h.map(j=>(0,r._)`${p} === ${j}`)):P=r.nil;return f.length&&(P=(0,r.or)(P,...f.map(j=>(0,r._)`${(0,t.usePattern)(u,j)}.test(${p})`))),(0,r.not)(P)}function E(p){i.code((0,r._)`delete ${d}[${p}]`)}function $(p){if(v.removeAdditional==="all"||v.removeAdditional&&c===!1){E(p);return}if(c===!1){u.setParams({additionalProperty:p}),u.error(),m||i.break();return}if(typeof c=="object"&&!(0,n.alwaysValidSchema)(w,c)){let P=i.name("valid");v.removeAdditional==="failing"?(y(p,P,!1),i.if((0,r.not)(P),()=>{u.reset(),E(p)})):(y(p,P),m||i.if((0,r.not)(P),()=>i.break()))}}function y(p,P,j){let x={keyword:"additionalProperties",dataProp:p,dataPropType:n.Type.Str};j===!1&&Object.assign(x,{compositeRule:!0,createErrors:!1,allErrors:!1}),u.subschema(x,P)}}};e.default=o}),Cv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=jn(),r=dt(),a=ge(),n=rd(),s={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:u,schema:i,parentSchema:c,data:l,it:d}=o;d.opts.removeAdditional==="all"&&c.additionalProperties===void 0&&n.default.code(new t.KeywordCxt(d,n.default,"additionalProperties"));let b=(0,r.allSchemaProperties)(i);for(let f of b)d.definedProperties.add(f);d.opts.unevaluated&&b.length&&d.props!==!0&&(d.props=a.mergeEvaluated.props(u,(0,a.toHash)(b),d.props));let w=b.filter(f=>!(0,a.alwaysValidSchema)(d,i[f]));if(w.length===0)return;let m=u.name("valid");for(let f of w)v(f)?h(f):(u.if((0,r.propertyInData)(u,l,f,d.opts.ownProperties)),h(f),d.allErrors||u.else().var(m,!0),u.endIf()),o.it.definedProperties.add(f),o.ok(m);function v(f){return d.opts.useDefaults&&!d.compositeRule&&i[f].default!==void 0}function h(f){o.subschema({keyword:"properties",schemaProp:f,dataProp:f},m)}}};e.default=s}),Rv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=dt(),r=de(),a=ge(),n=ge(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:u,schema:i,data:c,parentSchema:l,it:d}=o,{opts:b}=d,w=(0,t.allSchemaProperties)(i),m=w.filter($=>(0,a.alwaysValidSchema)(d,i[$]));if(w.length===0||m.length===w.length&&(!d.opts.unevaluated||d.props===!0))return;let v=b.strictSchema&&!b.allowMatchingProperties&&l.properties,h=u.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,n.evaluatedPropsToName)(u,d.props));let{props:f}=d;_();function _(){for(let $ of w)v&&g($),d.allErrors?E($):(u.var(h,!0),E($),u.if(h))}function g($){for(let y in v)new RegExp($).test(y)&&(0,a.checkStrictMode)(d,`property ${y} matches pattern ${$} (use allowMatchingProperties)`)}function E($){u.forIn("key",c,y=>{u.if((0,r._)`${(0,t.usePattern)(o,$)}.test(${y})`,()=>{let p=m.includes($);p||o.subschema({keyword:"patternProperties",schemaProp:$,dataProp:y,dataPropType:n.Type.Str},h),d.opts.unevaluated&&f!==!0?u.assign((0,r._)`${f}[${y}]`,!0):!p&&!d.allErrors&&u.if((0,r.not)(h),()=>u.break())})})}}};e.default=s}),qv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ge(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(a){let{gen:n,schema:s,it:o}=a;if((0,t.alwaysValidSchema)(o,s)){a.fail();return}let u=n.name("valid");a.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},u),a.failResult(u,()=>a.reset(),()=>a.error())},error:{message:"must NOT be valid"}};e.default=r}),Av=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=dt(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:t.validateUnion,error:{message:"must match a schema in anyOf"}};e.default=r}),Dv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a={message:"must match exactly one schema in oneOf",params:({params:s})=>(0,t._)`{passingSchemas: ${s.passing}}`},n={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:a,code(s){let{gen:o,schema:u,parentSchema:i,it:c}=s;if(!Array.isArray(u))throw new Error("ajv implementation error");if(c.opts.discriminator&&i.discriminator)return;let l=u,d=o.let("valid",!1),b=o.let("passing",null),w=o.name("_valid");s.setParams({passing:b}),o.block(m),s.result(d,()=>s.reset(),()=>s.error(!0));function m(){l.forEach((v,h)=>{let f;(0,r.alwaysValidSchema)(c,v)?o.var(w,!0):f=s.subschema({keyword:"oneOf",schemaProp:h,compositeRule:!0},w),h>0&&o.if((0,t._)`${w} && ${d}`).assign(d,!1).assign(b,(0,t._)`[${b}, ${h}]`).else(),o.if(w,()=>{o.assign(d,!0),o.assign(b,h),f&&s.mergeEvaluated(f,t.Name)})})}}};e.default=n}),Mv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ge(),r={keyword:"allOf",schemaType:"array",code(a){let{gen:n,schema:s,it:o}=a;if(!Array.isArray(s))throw new Error("ajv implementation error");let u=n.name("valid");s.forEach((i,c)=>{if((0,t.alwaysValidSchema)(o,i))return;let l=a.subschema({keyword:"allOf",schemaProp:c},u);a.ok(u),a.mergeEvaluated(l)})}};e.default=r}),Fv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=ge(),a={message:({params:o})=>(0,t.str)`must match "${o.ifClause}" schema`,params:({params:o})=>(0,t._)`{failingKeyword: ${o.ifClause}}`},n={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:a,code(o){let{gen:u,parentSchema:i,it:c}=o;i.then===void 0&&i.else===void 0&&(0,r.checkStrictMode)(c,'"if" without "then" and "else" is ignored');let l=s(c,"then"),d=s(c,"else");if(!l&&!d)return;let b=u.let("valid",!0),w=u.name("_valid");if(m(),o.reset(),l&&d){let h=u.let("ifClause");o.setParams({ifClause:h}),u.if(w,v("then",h),v("else",h))}else l?u.if(w,v("then")):u.if((0,t.not)(w),v("else"));o.pass(b,()=>o.error(!0));function m(){let h=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},w);o.mergeEvaluated(h)}function v(h,f){return()=>{let _=o.subschema({keyword:h},w);u.assign(b,w),o.mergeValidEvaluated(_,b),f?u.assign(f,(0,t._)`${h}`):o.setParams({ifClause:h})}}}};function s(o,u){let i=o.schema[u];return i!==void 0&&!(0,r.alwaysValidSchema)(o,i)}e.default=n}),Vv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ge(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:a,parentSchema:n,it:s}){n.if===void 0&&(0,t.checkStrictMode)(s,`"${a}" without "if" is ignored`)}};e.default=r}),zv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ed(),r=Ov(),a=td(),n=Nv(),s=Tv(),o=xv(),u=Iv(),i=rd(),c=Cv(),l=Rv(),d=qv(),b=Av(),w=Dv(),m=Mv(),v=Fv(),h=Vv();function f(_=!1){let g=[d.default,b.default,w.default,m.default,v.default,h.default,u.default,i.default,o.default,c.default,l.default];return _?g.push(r.default,n.default):g.push(t.default,a.default),g.push(s.default),g}e.default=f}),Uv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r={message:({schemaCode:n})=>(0,t.str)`must match format "${n}"`,params:({schemaCode:n})=>(0,t._)`{format: ${n}}`},a={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(n,s){let{gen:o,data:u,$data:i,schema:c,schemaCode:l,it:d}=n,{opts:b,errSchemaPath:w,schemaEnv:m,self:v}=d;if(!b.validateFormats)return;i?h():f();function h(){let _=o.scopeValue("formats",{ref:v.formats,code:b.code.formats}),g=o.const("fDef",(0,t._)`${_}[${l}]`),E=o.let("fType"),$=o.let("format");o.if((0,t._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>o.assign(E,(0,t._)`${g}.type || "string"`).assign($,(0,t._)`${g}.validate`),()=>o.assign(E,(0,t._)`"string"`).assign($,g)),n.fail$data((0,t.or)(y(),p()));function y(){return b.strictSchema===!1?t.nil:(0,t._)`${l} && !${$}`}function p(){let P=m.$async?(0,t._)`(${g}.async ? await ${$}(${u}) : ${$}(${u}))`:(0,t._)`${$}(${u})`,j=(0,t._)`(typeof ${$} == "function" ? ${P} : ${$}.test(${u}))`;return(0,t._)`${$} && ${$} !== true && ${E} === ${s} && !${j}`}}function f(){let _=v.formats[c];if(!_){y();return}if(_===!0)return;let[g,E,$]=p(_);g===s&&n.pass(P());function y(){if(b.strictSchema===!1){v.logger.warn(j());return}throw new Error(j());function j(){return`unknown format "${c}" ignored in schema at path "${w}"`}}function p(j){let x=j instanceof RegExp?(0,t.regexpCode)(j):b.code.formats?(0,t._)`${b.code.formats}${(0,t.getProperty)(c)}`:void 0,I=o.scopeValue("formats",{key:c,ref:j,code:x});return typeof j=="object"&&!(j instanceof RegExp)?[j.type||"string",j.validate,(0,t._)`${I}.validate`]:["string",j,I]}function P(){if(typeof _=="object"&&!(_ instanceof RegExp)&&_.async){if(!m.$async)throw new Error("async format in sync schema");return(0,t._)`await ${$}(${u})`}return typeof E=="function"?(0,t._)`${$}(${u})`:(0,t._)`${$}.test(${u})`}}}};e.default=a}),Hv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Uv(),r=[t.default];e.default=r}),Lv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],e.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),Kv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=mv(),r=jv(),a=zv(),n=Hv(),s=Lv(),o=[t.default,r.default,(0,a.default)(),n.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),Gv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0;var t;(function(r){r.Tag="tag",r.Mapping="mapping"})(t||(e.DiscrError=t={}))}),Bv=J(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=de(),r=Gv(),a=Zo(),n=On(),s=ge(),o={message:({params:{discrError:i,tagName:c}})=>i===r.DiscrError.Tag?`tag "${c}" must be string`:`value of tag "${c}" must be in oneOf`,params:({params:{discrError:i,tag:c,tagName:l}})=>(0,t._)`{error: ${i}, tag: ${l}, tagValue: ${c}}`},u={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(i){let{gen:c,data:l,schema:d,parentSchema:b,it:w}=i,{oneOf:m}=b;if(!w.opts.discriminator)throw new Error("discriminator: requires discriminator option");let v=d.propertyName;if(typeof v!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!m)throw new Error("discriminator: requires oneOf keyword");let h=c.let("valid",!1),f=c.const("tag",(0,t._)`${l}${(0,t.getProperty)(v)}`);c.if((0,t._)`typeof ${f} == "string"`,()=>_(),()=>i.error(!1,{discrError:r.DiscrError.Tag,tag:f,tagName:v})),i.ok(h);function _(){let $=E();c.if(!1);for(let y in $)c.elseIf((0,t._)`${f} === ${y}`),c.assign(h,g($[y]));c.else(),i.error(!1,{discrError:r.DiscrError.Mapping,tag:f,tagName:v}),c.endIf()}function g($){let y=c.name("valid"),p=i.subschema({keyword:"oneOf",schemaProp:$},y);return i.mergeEvaluated(p,t.Name),y}function E(){var $;let y={},p=j(b),P=!0;for(let q=0;q<m.length;q++){let V=m[q];if(V?.$ref&&!(0,s.schemaHasRulesButRef)(V,w.self.RULES)){let F=V.$ref;if(V=a.resolveRef.call(w.self,w.schemaEnv.root,w.baseId,F),V instanceof a.SchemaEnv&&(V=V.schema),V===void 0)throw new n.default(w.opts.uriResolver,w.baseId,F)}let H=($=V?.properties)===null||$===void 0?void 0:$[v];if(typeof H!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${v}"`);P=P&&(p||j(V)),x(H,q)}if(!P)throw new Error(`discriminator: "${v}" must be required`);return y;function j({required:q}){return Array.isArray(q)&&q.includes(v)}function x(q,V){if(q.const)I(q.const,V);else if(q.enum)for(let H of q.enum)I(H,V);else throw new Error(`discriminator: "properties/${v}" must have "const" or "enum"`)}function I(q,V){if(typeof q!="string"||q in y)throw new Error(`discriminator: "${v}" values must be unique strings`);y[q]=V}}}};e.default=u}),Jv=J((e,t)=>{t.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),Wv=J((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;var r=fv(),a=Kv(),n=Bv(),s=Jv(),o=["/properties"],u="http://json-schema.org/draft-07/schema",i=class extends r.default{_addVocabularies(){super._addVocabularies(),a.default.forEach(w=>this.addVocabulary(w)),this.opts.discriminator&&this.addKeyword(n.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let w=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(w,u,!1),this.refs["http://json-schema.org/schema"]=u}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(u)?u:void 0)}};e.Ajv=i,t.exports=e=i,t.exports.Ajv=i,Object.defineProperty(e,"__esModule",{value:!0}),e.default=i;var c=jn();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return c.KeywordCxt}});var l=de();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=Yo();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var b=On();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return b.default}})}),vn="b64:";function Yv(e){let t=new TextEncoder().encode(e),r=globalThis.Buffer,a;if(r)a=r.from(t).toString("base64");else if(typeof btoa=="function"){let n="";for(let s of t)n+=String.fromCharCode(s);a=btoa(n)}else throw new Error("No base64 encoder available in this runtime");return a.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function Zv(e){let t=e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-e.length%4)%4),r=globalThis.Buffer;if(r)return r.from(t,"base64").toString("utf8");if(typeof atob=="function"){let a=atob(t),n=new Uint8Array(a.length);for(let s=0;s<a.length;s+=1)n[s]=a.charCodeAt(s);return new TextDecoder().decode(n)}throw new Error("No base64 decoder available in this runtime")}function He(e){return`${vn}${Yv(JSON.stringify(e))}`}function $t(e){if(!e.startsWith(vn))throw new Error(`Invalid ref format (expected ${vn}<base64url(json)>): ${e}`);let t;try{t=JSON.parse(Zv(e.slice(vn.length)))}catch{throw new Error(`Invalid ref format (malformed base64url/json): ${e}`)}if(!t||typeof t!="object")throw new Error(`Invalid ref format (expected object payload): ${e}`);let r=t;if(typeof r.kind!="string"||typeof r.value!="string")throw new Error(`Invalid ref format (payload must contain string kind/value): ${e}`);return{kind:r.kind,value:r.value}}async function Qv(e,t,r){let a=e.tryAcquire();if(!a)return!1;try{await t()}finally{a()}return r?.(),!0}function Nt(...e){return Z.join(...e)}function Lt(...e){return Z.resolve(...e)}function Xv(e){return Z.isAbsolute(e)}function kl(){return Qe()}function e0(e){return Gl("sha256").update(e).digest("hex")}function ad(e){return Z.dirname(Kl(e))}function t0(e){if(typeof e=="object"&&e!==null){let{command:r,args:a=[],...n}=e,s=El(r,a);return{...n,command:s.command,args:s.args}}let t=nd(e);if(t.length===0)throw new Error(`Empty command spec: ${JSON.stringify(e)}`);return El(t[0],t.slice(1))}function El(e,t){return/^(node|node\.exe)$/i.test(e)?{command:process.execPath,args:t}:/\.m?js$/i.test(e)?{command:process.execPath,args:[e,...t]}:{command:e,args:t}}function nd(e){let t=[],r="",a=null;for(let n of e.trim()){if(a){n===a?a=null:r+=n;continue}if(n==='"'||n==="'"){a=n;continue}if(/\s/.test(n)){r&&(t.push(r),r="");continue}r+=n}if(a)throw new Error(`Unterminated quote in command: ${e}`);return r&&t.push(r),t}function Xo(e){return process.platform==="win32"&&/\.(cmd|bat)$/i.test(e)}function r0(e,t){let{command:r,args:a=[],cwd:n,env:s,timeoutMs:o}=e;return Bg(r,a,{shell:Xo(r),timeout:o,encoding:t?.encoding??"utf-8",cwd:n,windowsHide:!0,env:s?{...process.env,...s}:void 0,input:t?.input})}function a0(e,t){let{command:r,args:a=[],cwd:n,env:s,timeoutMs:o=3e4}=e;Gg(r,a,{shell:Xo(r),encoding:"utf8",windowsHide:!0,timeout:o,maxBuffer:10*1024*1024,cwd:n,env:s?{...process.env,...s}:void 0},(u,i,c)=>t(u??null,i,c))}Z.join(Wo.tmpdir(),".board-live-cards-git-bash-cache.json");function ei(e){let{command:t,args:r=[]}=e;if(process.platform==="win32"){wl(t,r,{stdio:"ignore",windowsHide:!0,shell:Xo(t)}).unref();return}wl(t,r,{detached:!0,stdio:"ignore"}).unref()}function sd(e,t,r){let a=Z.join(e,"board-live-cards-cli.js");if(M.existsSync(a))return{cmd:process.execPath,args:[a,t,...r]};let n=Z.join(e,"board-live-cards-cli.ts"),s=[Z.join(e,"..","..","..","node_modules","tsx","dist","cli.mjs"),Z.join(e,"..","..","node_modules","tsx","dist","cli.mjs"),Z.join(e,"..","..","..","node_modules",".bin","tsx"),Z.join(e,"..","..","node_modules",".bin","tsx")].find(o=>M.existsSync(o));return M.existsSync(n)&&M.existsSync(s)?{cmd:process.execPath,args:[s,n,t,...r]}:{cmd:process.platform==="win32"?"npx.cmd":"npx",args:["tsx",n,t,...r]}}function od(e){let t=Z.join(e,"board-live-cards-cli.mjs");if(M.existsSync(t))return t;let r=Z.join(e,"..","..","..","dev","board-live-cards-cli.js");if(M.existsSync(r))return r;let a=Z.join(e,"..","..","dev","board-live-cards-cli.js");if(M.existsSync(a))return a;let n=Z.join(e,"board-live-cards-cli.js");if(M.existsSync(n))return n;throw new Error(`resolveBoardCliCallbackTarget: cannot find callback target in ${e} (expected dev/board-live-cards-cli.js wrapper, ${n}, or ${t})`)}function n0(e,t,r){let a=["--base-ref",He(t)];r&&a.push("--notify-channel",r);let{cmd:n,args:s}=sd(e,"process-accumulated-events",a);ei({command:n,args:s})}function s0(e){return process.platform==="win32"?`\\\\.\\pipe\\${e}`:Z.join(Wo.tmpdir(),`${e}.sock`)}var fn=new Map;function o0(e,t,r){if(t.length===0)return;let a=t.map(u=>JSON.stringify(u)).join(`
|
|
19
19
|
`)+`
|
|
20
20
|
`,n=fn.get(e);if(n&&!n.socket.destroyed){n.ready?n.socket.write(a):n.queue.push(a);return}let s=s0(e),o=Ll.createConnection(s);n={socket:o,ready:!1,queue:[a]},fn.set(e,n),o.on("connect",()=>{n.ready=!0;for(let u of n.queue)o.write(u);n.queue.length=0}),o.on("error",u=>{r?.(`[named-pipe publish] ${s}: ${u instanceof Error?u.message:String(u)}`),fn.delete(e)}),o.on("close",()=>{fn.delete(e)})}function i0(){return{executeSync(e,t,r){return r0({command:e,args:t,cwd:r?.cwd,timeoutMs:r?.timeout,env:r?.env},{encoding:r?.encoding,input:r?.input})},executeAsync(e,t,r){a0({command:e,args:t},r)},resolveInvocation(e,t){let r=t0({command:e,args:t});return{cmd:r.command,args:r.args??[]}},splitCommand:nd,spawnDetached(e,t){ei({command:e,args:t})}}}var Pl=Wg(Kl(import.meta.url)),u0=kn(import.meta.url);function c0(){let e=bl(Pl,"./jsonata-sync.cjs");return Jg(e)?e:bl(Pl,"../../card-compute/jsonata-sync.cjs")}var pa=u0(c0());function ha(e){e.registerFunction("fsPathRef",t=>He({kind:"fs-path",value:String(t)}),"<s:s>")}function l0(e,t,r){if(!e||typeof e!="object")return{};let a={};if(Array.isArray(e.cmdTemplate)){let n=[];for(let s of e.cmdTemplate)try{let o=pa(s);ha(o),n.push(String(o.evaluate(t)))}catch(o){let u=o instanceof Error?o.message:String(o);throw new Error(`[${r}] argsMassaging.cmdTemplate failed on "${s}": ${u}`)}a.cmdArgs=n}if(typeof e.stdinTemplate=="string")try{let n=pa(e.stdinTemplate);ha(n),a.stdin=n.evaluate(t)}catch(n){let s=n instanceof Error?n.message:String(n);throw new Error(`[${r}] argsMassaging.stdinTemplate failed: ${s}`)}if(typeof e.urlTemplate=="string")try{let n=pa(e.urlTemplate);ha(n),a.url=String(n.evaluate(t))}catch(n){let s=n instanceof Error?n.message:String(n);throw new Error(`[${r}] argsMassaging.urlTemplate failed: ${s}`)}if(typeof e.headerTemplate=="string")try{let n=pa(e.headerTemplate);ha(n);let s=n.evaluate(t);if(typeof s!="object"||s===null)throw new Error(`headerTemplate must produce an object, got: ${JSON.stringify(s)}`);a.headers=s}catch(n){let s=n instanceof Error?n.message:String(n);throw new Error(`[${r}] argsMassaging.headerTemplate failed: ${s}`)}if(typeof e.bodyTemplate=="string")try{let n=pa(e.bodyTemplate);ha(n),a.body=n.evaluate(t)}catch(n){let s=n instanceof Error?n.message:String(n);throw new Error(`[${r}] argsMassaging.bodyTemplate failed: ${s}`)}return a}var d0=kn(import.meta.url);function f0(e){return typeof e=="object"?e:$t(e)}function p0(e){let t=Z.basename(String(e||"").trim());if(!t)throw new Error(`resolveYamlFlowCliPath: expected non-empty cli file name, got ${JSON.stringify(e)}`);let r=Z.dirname(d0.resolve("yaml-flow/package.json")),a=t.replace(/\.[^.]+$/,""),n=Z.join(r,"cli","bundled",`${a}.mjs`);if(M.existsSync(n))return n;let s=Z.join(r,"cli","node",t);if(M.existsSync(s))return s;throw new Error(`resolveYamlFlowCliPath: could not find ${t} under cli/bundled or cli/node in ${r}`)}function Sn(e){let t=f0(e);return t.kind==="yaml-flow-cli"?p0(t.value):t.value}function h0(e,t){let r=Sn(e);switch(r){case"source-cli-task-executor":{let a=Z.join(t,"source-cli-task-executor.js");if(M.existsSync(a))return{command:process.execPath,args:[a]};let n=Z.join(t,"source-cli-task-executor.ts"),s=Z.join(t,"..","..","node_modules","tsx","dist","cli.mjs"),o=Z.join(t,"..","..","node_modules",".bin","tsx"),u=M.existsSync(s)?s:o;return M.existsSync(n)&&M.existsSync(u)?{command:process.execPath,args:[u,n]}:{command:process.execPath,args:[a]}}case"board-live-cards":{let{cmd:a,args:n}=sd(t,"_",[]);return{command:a,args:n}}default:throw new Error(`resolveBuiltIn: unknown built-in name "${r}". Supported: source-cli-task-executor, board-live-cards`)}}function id(e,t){if(e.howToRun==="built-in"){let{command:a,args:n}=h0(e.whatToRun,t);return{command:a,baseArgs:n}}let r=(e.whatToRun,Sn(e.whatToRun));switch(e.howToRun){case"local-node":return{command:process.execPath,baseArgs:[r]};case"local-python":return{command:process.platform==="win32"?"python":"python3",baseArgs:[r]};case"local-process":return{command:r,baseArgs:[]};default:throw new Error(`resolveBaseInvocation: howToRun "${e.howToRun}" is not a local transport`)}}function m0(e,t){let r=[e.subcommand];return e.inRef&&r.push("--in-ref",e.inRef),e.outRef&&r.push("--out-ref",e.outRef),e.errRef&&r.push("--err-ref",e.errRef),t&&r.push("--extra",Buffer.from(JSON.stringify(t)).toString("base64")),r}function y0(e,t){return{subcommand:e.subcommand,...e.inRef?{inRef:e.inRef}:{},...e.outRef?{outRef:e.outRef}:{},...e.errRef?{errRef:e.errRef}:{},...t?{extra:t}:{}}}function g0(e,t){return id(e,t)}async function v0(e,t){let r={...t,whatToRun:Sn(e.whatToRun)},a=l0(e.argsMassaging,r,"_invokeTaskExecutorHttp"),n=a.url??Sn(e.whatToRun),s=a.body?a.body:y0(t,e.extra),o={"Content-Type":"application/json"},u=a.headers?{...o,...a.headers}:o,i=await fetch(n,{method:e.howToRun==="http:get"?"GET":"POST",headers:u,body:JSON.stringify(s)});if(!i.ok){let l=await i.text().catch(()=>"");return{status:"error",error:`HTTP ${i.status}: ${l}`}}let c=await i.json().catch(()=>null);return c&&typeof c.status=="string"?c:{status:"success"}}function _0(e,t,r){if(e.howToRun==="http:post"||e.howToRun==="http:get"){v0(e,t).catch(o=>{console.error(`[dispatchTaskExecutorDetached] HTTP dispatch failed: ${o.message}`)});return}let{command:a,baseArgs:n}=id(e,r),s=m0(t,e.extra);ei({command:a,args:[...n,...s]})}function Tt(e,t){if(process.platform!=="win32"){M.renameSync(e,t);return}let r=[10,20,40,80,160];for(let a=0;a<=r.length;a++)try{M.renameSync(e,t);return}catch(n){let s=n.code;if((s==="EPERM"||s==="EBUSY")&&a<r.length){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,r[a]);continue}throw n}}function _n(e){function t(n){return Z.join(e,...n.split("/"))}function r(n){return Z.relative(e,n).replace(/\\/g,"/")}function a(n,s){if(M.existsSync(n))for(let o of M.readdirSync(n,{withFileTypes:!0})){let u=Z.join(n,o.name);if(o.isDirectory()){a(u,s);continue}o.isFile()&&s.push(r(u))}}return{read(n){let s=t(n);if(!M.existsSync(s))return null;try{return M.readFileSync(s,"utf-8")}catch{return null}},write(n,s){let o=t(n),u=`${o}.${process.pid}.${Qe()}.tmp`;M.mkdirSync(Z.dirname(o),{recursive:!0}),M.writeFileSync(u,s,"utf-8"),Tt(u,o)},exists(n){return M.existsSync(t(n))},remove(n){let s=t(n);try{M.existsSync(s)&&M.unlinkSync(s)}catch{}},readBytes(n){let s=t(n);if(!M.existsSync(s))return null;try{return new Uint8Array(M.readFileSync(s))}catch{return null}},writeBytes(n,s){let o=t(n),u=`${o}.${process.pid}.${Qe()}.tmp`;M.mkdirSync(Z.dirname(o),{recursive:!0}),M.writeFileSync(u,Buffer.from(s)),Tt(u,o)},listKeys(n){let s=[];a(e,s);let o=s.sort();return n?o.filter(u=>u.startsWith(n)):o},stat(n){let s=t(n);if(!M.existsSync(s))return null;try{let o=M.statSync(s);return{key:n,size:Number(o.size||0),updatedAt:new Date(o.mtimeMs).toISOString()}}catch{return null}}}}function ud(){return{read(e){if(!M.existsSync(e))return null;try{return M.readFileSync(e,"utf-8")}catch{return null}},write(e,t){let r=`${e}.${process.pid}.${Qe()}.tmp`;M.mkdirSync(Z.dirname(e),{recursive:!0}),M.writeFileSync(r,t,"utf-8"),Tt(r,e)},exists(e){return M.existsSync(e)},remove(e){try{M.existsSync(e)&&M.unlinkSync(e)}catch{}},readBytes(e){if(!M.existsSync(e))return null;try{return new Uint8Array(M.readFileSync(e))}catch{return null}},writeBytes(e,t){let r=`${e}.${process.pid}.${Qe()}.tmp`;M.mkdirSync(Z.dirname(e),{recursive:!0}),M.writeFileSync(r,Buffer.from(t)),Tt(r,e)},stat(e){if(!M.existsSync(e))return null;try{let t=M.statSync(e);return{key:e,size:Number(t.size||0),updatedAt:new Date(t.mtimeMs).toISOString()}}catch{return null}},listKeys(e){return[]}}}var Ao="__scratch-marker",Do="__scratch-config.json",$0=1440*60*1e3,w0=720*60*1e3,b0=500;function jl(e,t){if(!e)return t;let r=e.replace(/[^A-Za-z0-9._-]/g,"_");return r.length>0?r:t}function Mo(e){M.mkdirSync(e,{recursive:!0});let t=Z.join(e,Ao),r=Z.join(e,Do),a=!M.existsSync(t);if(a)try{M.writeFileSync(t,`scratch-store
|
|
21
21
|
${new Date().toISOString()}
|
|
@@ -25,5 +25,5 @@ ${new Date().toISOString()}
|
|
|
25
25
|
`).filter(Boolean).map(a=>JSON.parse(a)):[]}return{append(r){let a={id:Qe(),payload:r};return M.mkdirSync(Z.dirname(e),{recursive:!0}),M.appendFileSync(e,JSON.stringify(a)+`
|
|
26
26
|
`,"utf-8"),a},readAll(){return t()},readAfter(r){let a=t();if(!r)return{entries:a,newCursor:a.length>0?a[a.length-1].id:null};let n=a.findIndex(o=>o.id===r),s=n===-1?a:a.slice(n+1);return{entries:s,newCursor:s.length>0?s[s.length-1].id:r}},clear(){M.existsSync(e)&&M.truncateSync(e,0)}}}function Lo(e){if(e==null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(Lo).join(",")}]`;let t=e;return`{${Object.keys(t).sort().map(r=>`${JSON.stringify(r)}:${Lo(t[r])}`).join(",")}}`}function j0(e){return Gl("sha256").update(Lo(e)).digest("hex")}function O0(e){let t=Z.join(e,"board-journal.jsonl");return{readAllEntries(){if(!M.existsSync(t))return[];let r=M.readFileSync(t,"utf-8").trim();return r?r.split(`
|
|
27
27
|
`).filter(Boolean).map(a=>JSON.parse(a)):[]},appendEntry(r){M.appendFileSync(t,JSON.stringify(r)+`
|
|
28
|
-
`,"utf-8")},generateId(){return Qe()}}}function N0(e){return{tryAcquire(){try{if(!M.existsSync(e)){M.mkdirSync(Z.dirname(e),{recursive:!0});try{M.writeFileSync(e,"{}",{flag:"wx"})}catch{}}return(0,Bl.lockSync)(e,{retries:0})}catch{return null}}}}var T0={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://nsreehari.github.io/boards/live-cards.schema.json",definitions:{bind_ref:{description:"A card data path reference, e.g. 'card_data.raw_quotes' or 'requires.upstream'",type:"string",pattern:"^(card_data|requires|fetched_sources|computed_values)(\\.|$)"},bind_or_literal:{description:"A literal value or a bind reference object",oneOf:[{type:"string"},{type:"number"},{type:"boolean"},{type:"array"},{type:"object",properties:{bind:{$ref:"#/definitions/bind_ref"}},required:["bind"]}]},compute_expr:{description:"A declarative JSON compute expression",type:"object",required:["fn"],properties:{fn:{type:"string",description:"Function name from the built-in vocabulary",enum:["sum","avg","min","max","count","first","last","add","sub","mul","div","round","abs","mod","gt","gte","lt","lte","eq","neq","if","and","or","not","concat","upper","lower","template","filter","pluck","map","sort","slice","flat","unique","group","get","default","now","diff_days","format_date"]},input:{description:"card_data.path, literal, array of inputs, or nested compute_expr",oneOf:[{type:"string"},{type:"number"},{type:"boolean"},{type:"array"},{$ref:"#/definitions/compute_expr"}]},field:{type:"string",description:"For pluck/sum/group \u2014 the object key to extract"},where:{$ref:"#/definitions/compute_expr",description:"For filter \u2014 predicate expression ($ = current item)"},cond:{$ref:"#/definitions/compute_expr",description:"For if \u2014 condition expression"},then:{description:"For if \u2014 value when cond is truthy"},else:{description:"For if \u2014 value when cond is falsy"},format:{type:"string",description:"For format_date \u2014 date format string"}}},meta:{type:"object",properties:{title:{type:"string"},tags:{type:"array",items:{type:"string"}}}},requires:{type:"array",items:{type:"string"},description:"IDs of upstream nodes this node depends on"},provides:{type:"array",items:{type:"object",required:["bindTo","ref"],properties:{bindTo:{type:"string",description:"Token name published downstream"},ref:{type:"string",description:"Path to read value from (card_data.*, requires.*, fetched_sources.*, computed_values.*)"}}},description:"Explicit bindings exposing computed or card_data values downstream as named tokens"},compute_step:{description:"A single ordered compute step: reads card_data.*/requires.*/computed_values.*, writes to computed_values[bindTo]",type:"object",required:["bindTo","expr"],properties:{bindTo:{type:"string",description:"Key in computed_values to write result"},expr:{type:"string",description:"JSONata expression evaluated against { card_data, requires, fetched_sources, computed_values }"}}},source_def:{description:"One source entry. The engine requires 'bindTo' (compute namespace key) and 'outputFile' (delivery signal path). bindTo and outputFile must be unique across all source_defs in a card. Every other property is yours \u2014 add whatever your task-executor needs: kind, url, headers, mailbox, channel, model, query, etc. The full object is passed verbatim as the --in JSON to the executor.",type:"object",required:["bindTo","outputFile"],additionalProperties:!0,properties:{bindTo:{type:"string",description:"Key under fetched_sources.* available in compute expressions"},outputFile:{type:"string",description:"Board-relative path the executor writes its JSON result to. Presence of this file signals delivery."},projections:{type:"object",description:"Named data projections from card_data or requires, evaluated before the executor is called. Each key is a ref name; each value is a JSONata expression rooted at card_data or requires. The resolved values are passed to the executor as _projections. fetched_sources, computed_values, and source_defs are not accessible here \u2014 sources run before those exist.",additionalProperties:{type:"string"}},optionalForCompletionGating:{type:"boolean",default:!1,description:"When true this source does not gate card completion. Default false when absent, so source_defs are completion-gating by default."},timeout:{type:"integer",minimum:0,default:12e4,description:"Executor/script timeout in ms. Default: 120 000 (2 min)."},script:{type:"string",description:"Legacy direct-run: shell command executed when no .task-executor is registered. stdout is captured as the result."}}},render_element:{type:"object",required:["kind"],properties:{id:{type:"string",description:"Optional element ID for targeted updates"},kind:{enum:["metric","table","editable-table","chart","form","filter","list","notes","todo","alert","narrative","badge","text","markdown","ref","custom","actions"]},label:{type:"string",description:"Heading above this element"},className:{type:"string",description:"Bootstrap grid class, e.g. 'col-12 col-md-6'"},visible:{type:"string",description:"card_data/requires/fetched_sources/computed_values path \u2014 element shown only if truthy"},data:{type:"object",properties:{bind:{$ref:"#/definitions/bind_ref",description:"card_data/requires/fetched_sources/computed_values path to read data from"},writeTo:{$ref:"#/definitions/bind_ref",description:"card_data path for user input (form, filter, todo, notes)"},columns:{type:"array",items:{type:"string"},description:"table: visible columns"},maxRows:{type:"integer",description:"table/list: max rows to display"},sortable:{type:"boolean",default:!0,description:"table: enable click-to-sort"},placeholder:{type:"string",description:"Empty-state message"},chartType:{enum:["bar","line","pie","doughnut"]},chartOptions:{type:"object",description:"Chart.js options passthrough"},fields:{type:"object",description:"JSON Schema for form/filter fields"},thresholds:{type:"object",properties:{green:{type:"string"},amber:{type:"string"}}},colorMap:{type:"object",description:"badge: value \u2192 Bootstrap color"},style:{enum:["heading","muted","default"],description:"text: display style"},upload:{type:"boolean",default:!0,description:"file-upload: show drop zone (false = read-only file list)"},accept:{type:"array",items:{type:"string"},description:"file-upload: allowed extensions"},multiple:{type:"boolean",default:!0,description:"file-upload: allow multiple files"},fileAttach:{type:"boolean",default:!1,description:"chat: enable inline file attachments"},fileAccept:{type:"array",items:{type:"string"},description:"chat: allowed attachment extensions"},buttons:{type:"array",description:"actions: button definitions",items:{type:"object",required:["id","label"],properties:{id:{type:"string"},label:{type:"string"},style:{type:"string",description:"Bootstrap button variant, e.g. 'success', 'outline-danger'"},size:{type:"string",default:"sm"},disabled:{oneOf:[{type:"boolean"},{type:"string",description:"card_data/requires/fetched_sources/computed_values path \u2014 truthy = disabled"}]}}}}}}}},view:{type:"object",required:["elements"],properties:{elements:{type:"array",minItems:1,items:{$ref:"#/definitions/render_element"}},layout:{type:"object",properties:{board:{type:"object",properties:{col:{type:"integer",minimum:1,maximum:12},order:{type:"integer"}}},canvas:{type:"object",properties:{x:{type:"number"},y:{type:"number"},w:{type:"number"},h:{type:"number"}}}}},features:{type:"object",properties:{chat:{type:"boolean",default:!1},notes:{type:"boolean",default:!1},refresh:{type:"boolean",default:!0}}}}}},title:"LiveCard",description:"A unified card node. Behavior depends on which sections are present (source_defs, compute, view, etc.)",type:"object",required:["id"],additionalProperties:!1,properties:{id:{type:"string"},requires:{$ref:"#/definitions/requires"},provides:{$ref:"#/definitions/provides"},meta:{$ref:"#/definitions/meta"},view:{$ref:"#/definitions/view"},card_data:{type:"object",description:"Authored card data and runtime metadata. Includes uploaded-file metadata maintained by host handlers and inference evaluation results.",properties:{files:{type:"array",description:"Optional uploaded-file metadata maintained by host handlers. Stored name is normalized and serial-prefixed (for example 001-my_file.pdf).",items:{type:"object",required:["name","stored_name"],properties:{name:{type:"string",minLength:1},stored_name:{type:"string",minLength:5,maxLength:32,pattern:"^[0-9]{3,}-[a-z0-9._-]+$"},size:{oneOf:[{type:"integer",minimum:0},{type:"null"}]},mime_type:{type:"string"},path:{type:"string",pattern:"^[^\\s]+/files/[0-9]{3,}-[a-z0-9._-]+$"},uploaded_at:{type:"string",format:"date-time"}},additionalProperties:!1}}},additionalProperties:!0},source_defs:{type:"array",description:"Source entries. Each entry is passed verbatim to the board's .task-executor (registered via init --task-executor) as the --in JSON file. The executor fetches/generates the data and writes JSON to --out. If no executor is registered, the built-in executor runs the entry's 'cli' command directly. Sources gate completion by default. Set optionalForCompletionGating: true for enrichment-only source_defs that should not block task-completed.",items:{$ref:"#/definitions/source_def"}},compute:{type:"array",description:"Ordered array of compute steps. Each reads card_data.*/requires.*/fetched_sources.*/computed_values.* and writes to ephemeral computed_values[bindTo].",items:{$ref:"#/definitions/compute_step"}}}},x0=rv(Wv()),I0=kn(import.meta.url),C0=I0("./jsonata-sync.cjs"),mn=null,Tl=/\b(card_data|requires|fetched_sources|computed_values|source_defs)\b/g,R0=/^\s*(card_data|requires|fetched_sources|computed_values|source_defs)(\.|$)/;function q0(e){let t=new Set,r;for(Tl.lastIndex=0;(r=Tl.exec(e))!==null;)t.add(r[1]);return t}function cd(e){let t=R0.exec(e);return t?t[1]:null}function xl(e,t,r,a){try{C0(e)}catch(s){let o=s instanceof Error?s.message:String(s);a.push(`${t}: invalid JSONata expression (${o})`);return}let n=q0(e);for(let s of n)r.has(s)||a.push(`${t}: disallowed namespace "${s}" in expression`)}function Ko(e,t,r){if(Array.isArray(e)){e.forEach((n,s)=>{Ko(n,`${t}/${s}`,r)});return}if(typeof e=="string"){let n=cd(e);if(!n)return;new Set(["card_data","requires","computed_values"]).has(n)||r.push(`${t}: disallowed namespace "${n}" in view reference`);return}if(!e||typeof e!="object")return;let a=e;for(let[n,s]of Object.entries(a))Ko(s,`${t}/${n}`,r)}function A0(){if(mn)return mn;let e=new x0.default({allErrors:!0});return(0,Jl.default)(e),mn=e.compile(T0),mn}function D0(e){let t=A0(),r=t(e),a=(t.errors??[]).map(n=>`${n.instancePath||"/"}: ${n.message??"unknown error"}`);if(e&&typeof e=="object"&&!Array.isArray(e)){let n=e.source_defs;if(Array.isArray(n)){let s=new Set,o=new Set;n.forEach((u,i)=>{if(!u||typeof u!="object"||Array.isArray(u))return;let c=u;typeof c.bindTo=="string"&&c.bindTo&&(s.has(c.bindTo)&&a.push(`/source_defs/${i}/bindTo: bindTo "${c.bindTo}" must be unique across all source_defs`),s.add(c.bindTo)),typeof c.outputFile=="string"&&c.outputFile&&(o.has(c.outputFile)&&a.push(`/source_defs/${i}/outputFile: outputFile "${c.outputFile}" must be unique across all source_defs`),o.add(c.outputFile))})}}return!r||a.length>0?{ok:!1,errors:a}:{ok:!0,errors:[]}}function M0(e){let t=[];if(!e||typeof e!="object"||Array.isArray(e))return{ok:!0,errors:[]};let r=e,a=r.compute;Array.isArray(a)&&a.forEach((c,l)=>{if(!c||typeof c!="object"||Array.isArray(c))return;let d=c.expr;typeof d!="string"||d.trim().length===0||xl(d,`/compute/${l}/expr`,new Set(["card_data","requires","fetched_sources","computed_values"]),t)});let n=new Set(["card_data","requires","fetched_sources","computed_values"]),s=r.provides;Array.isArray(s)&&s.forEach((c,l)=>{if(!c||typeof c!="object"||Array.isArray(c))return;let d=c.ref;if(typeof d!="string"||d.trim().length===0)return;let b=cd(d);b===null?t.push(`/provides/${l}/ref: path "${d}" must start with a valid namespace (${[...n].join(", ")})`):n.has(b)||t.push(`/provides/${l}/ref: disallowed namespace "${b}" in path "${d}" (valid: ${[...n].join(", ")})`)});let o=r.view;o&&typeof o=="object"&&!Array.isArray(o)&&Ko(o,"/view",t);let u=new Set(["card_data","requires"]),i=r.source_defs;return Array.isArray(i)&&i.forEach((c,l)=>{if(!c||typeof c!="object"||Array.isArray(c))return;let d=c.projections;if(!(!d||typeof d!="object"||Array.isArray(d)))for(let[b,w]of Object.entries(d))typeof w!="string"||w.trim().length===0||xl(w,`/source_defs/${l}/projections/${b}`,u,t)}),{ok:t.length===0,errors:t}}function F0(e){let t=D0(e);if(!t.ok)return t;let r=M0(e);return r.ok?{ok:!0,errors:[]}:{ok:!1,errors:r.errors}}var Ir={RUNNING:"running",COMPLETED:"completed",FAILED:"failed",INACTIVATED:"inactivated"};function wt(e){return e?Array.isArray(e.provides)?e.provides:[]:[]}function ma(e){return e?Array.isArray(e.requires)?e.requires:[]:[]}function V0(e){return e.tasks??{}}function Il(e){return e?e.status===Ir.FAILED||e.status===Ir.INACTIVATED:!1}function z0(e,t){return e.refreshStrategy??t?.refreshStrategy??"data-changed"}function U0(e){return e.maxExecutions}function H0(e,t){let r=new Set;for(let[a,n]of Object.entries(t))if(n.status===Ir.COMPLETED){let s=e.tasks[a];s&&wt(s).forEach(o=>r.add(o))}return Array.from(r)}function L0(e,t){let r={};return e.forEach(a=>{let n=t[a];n&&wt(n).forEach(s=>{r[s]||(r[s]=[]),r[s].push(a)})}),r}function K0(e,t,r){let a=e.tasks[t]??Nn(),n={};if(r){let o=r.tasks[t],u=ma(o);for(let i of u)for(let[c,l]of Object.entries(r.tasks))if(wt(l).includes(i)){let d=e.tasks[c];d?.lastDataHash&&(n[i]=d.lastDataHash);break}}let s={...a,status:"running",startedAt:new Date().toISOString(),lastUpdated:new Date().toISOString(),progress:0,error:void 0,startConsumedHashes:n};return{...e,tasks:{...e.tasks,[t]:s},lastUpdated:new Date().toISOString()}}function G0(e,t,r,a,n,s){let o=e.tasks[r]??Nn(),u=t.tasks[r];if(!u)throw new Error(`Task "${r}" not found in graph`);let i;a&&u.on&&u.on[a]?i=u.on[a]:i=wt(u);let c=o.startConsumedHashes?{...o.startConsumedHashes}:{...o.lastConsumedHashes};if(!o.startConsumedHashes){let b=u.requires??[];for(let w of b)for(let[m,v]of Object.entries(t.tasks))if(wt(v).includes(w)){let h=e.tasks[m];h?.lastDataHash&&(c[w]=h.lastDataHash);break}}let l={...o,status:"completed",completedAt:new Date().toISOString(),lastUpdated:new Date().toISOString(),executionCount:o.executionCount+1,lastEpoch:o.executionCount+1,lastDataHash:n,data:s,lastConsumedHashes:c,error:void 0},d=[...new Set([...e.availableOutputs,...i])];return{...e,tasks:{...e.tasks,[r]:l},availableOutputs:d,lastUpdated:new Date().toISOString()}}function B0(e,t,r,a){let n=e.tasks[r]??Nn(),s=t.tasks[r];if(s?.retry){let i=n.retryCount+1;if(i<=s.retry.max_attempts){let c={...n,status:"not-started",retryCount:i,lastUpdated:new Date().toISOString(),error:a};return{...e,tasks:{...e.tasks,[r]:c},lastUpdated:new Date().toISOString()}}}let o={...n,status:"failed",failedAt:new Date().toISOString(),lastUpdated:new Date().toISOString(),error:a,executionCount:n.executionCount+1},u=e.availableOutputs;if(s?.on_failure&&s.on_failure.length>0&&(u=[...new Set([...e.availableOutputs,...s.on_failure])]),s?.circuit_breaker&&o.executionCount>=s.circuit_breaker.max_executions){let i=s.circuit_breaker.on_break;u=[...new Set([...u,...i])]}return{...e,tasks:{...e.tasks,[r]:o},availableOutputs:u,lastUpdated:new Date().toISOString()}}function J0(e,t,r,a){let n=e.tasks[t]??Nn(),s={...n,progress:typeof a=="number"?a:n.progress,messages:[...n.messages??[],...r?[{message:r,timestamp:new Date().toISOString(),status:n.status}]:[]],lastUpdated:new Date().toISOString()};return{...e,tasks:{...e.tasks,[t]:s},lastUpdated:new Date().toISOString()}}function W0(e,t){let r=e.tasks[t];if(!r)return e;let a={...r,status:"not-started",startedAt:void 0,completedAt:void 0,failedAt:void 0,error:void 0,data:void 0,progress:null,lastUpdated:new Date().toISOString()};return{...e,tasks:{...e.tasks,[t]:a},lastUpdated:new Date().toISOString()}}function Nn(){return{status:"not-started",executionCount:0,retryCount:0,lastEpoch:0,messages:[],progress:null}}function ld(e,t){let r=`live-${Date.now()}`,a={};for(let s of Object.keys(e.tasks))a[s]=dd();let n={status:"running",tasks:a,availableOutputs:[],stuckDetection:{is_stuck:!1,stuck_description:null,outputs_unresolvable:[],tasks_blocked:[]},lastUpdated:new Date().toISOString(),executionId:r,executionConfig:{executionMode:e.settings.execution_mode??"eligibility-mode",conflictStrategy:e.settings.conflict_strategy??"alphabetical",completionStrategy:e.settings.completion}};return{config:e,state:n}}function Y0(e,t){let{config:r,state:a}=e;if("executionId"in t&&t.executionId&&t.executionId!==a.executionId)return e;switch(t.type){case"task-started":return{config:r,state:K0(a,t.taskName,r)};case"task-completed":return{config:r,state:G0(a,r,t.taskName,t.result,t.dataHash,t.data)};case"task-failed":return{config:r,state:B0(a,r,t.taskName,t.error)};case"task-progress":return{config:r,state:J0(a,t.taskName,t.message,t.progress)};case"task-restart":return{config:r,state:W0(a,t.taskName)};case"inject-tokens":return{config:r,state:{...a,availableOutputs:[...new Set([...a.availableOutputs,...t.tokens])],lastUpdated:new Date().toISOString()}};case"agent-action":return{config:r,state:n_(a,t.action)};case"task-upsert":return Q0(e,t.taskName,t.taskConfig);case"task-removal":return X0(e,t.taskName);case"node-requires-add":return e_(e,t.nodeName,t.tokens);case"node-requires-remove":return t_(e,t.nodeName,t.tokens);case"node-provides-add":return r_(e,t.nodeName,t.tokens);case"node-provides-remove":return a_(e,t.nodeName,t.tokens);default:return e}}function Z0(e,t){return t.reduce((r,a)=>Y0(r,a),e)}function Q0(e,t,r){let a=!!e.config.tasks[t];return{config:{...e.config,tasks:{...e.config.tasks,[t]:r}},state:{...e.state,tasks:{...e.state.tasks,[t]:a?e.state.tasks[t]:dd()},lastUpdated:new Date().toISOString()}}}function X0(e,t){if(!e.config.tasks[t])return e;let{[t]:r,...a}=e.config.tasks,{[t]:n,...s}=e.state.tasks;return{config:{...e.config,tasks:a},state:{...e.state,tasks:s,lastUpdated:new Date().toISOString()}}}function e_(e,t,r){let a=e.config.tasks[t];if(!a)return e;let n=ma(a),s=r.filter(o=>!n.includes(o));return s.length===0?e:{config:{...e.config,tasks:{...e.config.tasks,[t]:{...a,requires:[...n,...s]}}},state:e.state}}function t_(e,t,r){let a=e.config.tasks[t];if(!a)return e;let n=ma(a),s=n.filter(o=>!r.includes(o));return s.length===n.length?e:{config:{...e.config,tasks:{...e.config.tasks,[t]:{...a,requires:s}}},state:e.state}}function r_(e,t,r){let a=e.config.tasks[t];if(!a)return e;let n=wt(a),s=r.filter(o=>!n.includes(o));return s.length===0?e:{config:{...e.config,tasks:{...e.config.tasks,[t]:{...a,provides:[...n,...s]}}},state:e.state}}function a_(e,t,r){let a=e.config.tasks[t];if(!a)return e;let n=wt(a),s=n.filter(o=>!r.includes(o));return s.length===n.length?e:{config:{...e.config,tasks:{...e.config.tasks,[t]:{...a,provides:s}}},state:e.state}}function Go(e){return{version:1,config:e.config,state:e.state,snapshotAt:new Date().toISOString()}}function Vo(e){if(!e||typeof e!="object")throw new Error("Invalid snapshot: expected an object");let t=e;if(!t.config||typeof t.config!="object")throw new Error('Invalid snapshot: missing or invalid "config"');if(!t.state||typeof t.state!="object")throw new Error('Invalid snapshot: missing or invalid "state"');let r=t.config,a=t.state;if(!r.settings||typeof r.settings!="object")throw new Error("Invalid snapshot: config.settings missing");if(!r.tasks||typeof r.tasks!="object")throw new Error("Invalid snapshot: config.tasks missing");if(!a.tasks||typeof a.tasks!="object")throw new Error("Invalid snapshot: state.tasks missing");if(!Array.isArray(a.availableOutputs))throw new Error("Invalid snapshot: state.availableOutputs must be an array");return{config:r,state:a}}function dd(){return{status:"not-started",executionCount:0,retryCount:0,lastEpoch:0,messages:[],progress:null}}function n_(e,t){let r=new Date().toISOString();switch(t){case"stop":return{...e,status:"stopped",lastUpdated:r};case"pause":return{...e,status:"paused",lastUpdated:r};case"resume":return{...e,status:"running",lastUpdated:r};default:return e}}function Bo(e){let{config:t,state:r}=e,a=V0(t);if(Object.keys(a).length===0)return{eligible:[],pending:[],unresolved:[],blocked:[],conflicts:{}};let n=s_(a),s=H0(t,r.tasks),o=new Set([...s,...r.availableOutputs]),u=[],i=[],c=[],l=[];for(let[b,w]of Object.entries(a)){let m=r.tasks[b],v=z0(w,t.settings),h=v!=="once";if(m?.status===Ir.RUNNING||Il(m))continue;let f=U0(w);if(f!==void 0&&m&&m.executionCount>=f||w.circuit_breaker&&m&&m.executionCount>=w.circuit_breaker.max_executions||!h&&m?.status===Ir.COMPLETED)continue;if(h&&m?.status===Ir.COMPLETED){let y=ma(w),p=!1;switch(v){case"data-changed":{y.length>0&&y.some(P=>{for(let[j,x]of Object.entries(a))if(wt(x).includes(P)){let I=r.tasks[j];if(!I)continue;let q=m.lastConsumedHashes?.[P];return I.lastDataHash==null?I.executionCount>m.lastEpoch:I.lastDataHash!==q}return!1})||(p=!0);break}case"epoch-changed":{y.length>0&&y.some(P=>{for(let[j,x]of Object.entries(a))if(wt(x).includes(P)){let I=r.tasks[j];if(I&&I.executionCount>m.lastEpoch)return!0}return!1})||(p=!0);break}case"time-based":{let P=w.refreshInterval??0;if(P<=0){p=!0;break}let j=m.completedAt;if(!j){p=!0;break}(Date.now()-Date.parse(j))/1e3<P&&(p=!0);break}case"manual":p=!0;break}if(p)continue}let _=ma(w);if(_.length===0){u.push(b);continue}let g=[],E=[],$=[];for(let y of _){if(o.has(y))continue;let p=n[y]||[];p.length===0?g.push(y):p.every(P=>Il(r.tasks[P]))?$.push({token:y,failedProducer:p[0]}):E.push(y)}g.length>0?c.push({taskName:b,missingTokens:g}):$.length>0?l.push({taskName:b,failedTokens:$.map(y=>y.token),failedProducers:[...new Set($.map(y=>y.failedProducer))]}):E.length>0?i.push({taskName:b,waitingOn:E}):u.push(b)}let d={};if(u.length>1){let b=L0(u,a);for(let[w,m]of Object.entries(b))m.length>1&&(d[w]=m)}return{eligible:u,pending:i,unresolved:c,blocked:l,conflicts:d}}function s_(e){let t={};for(let[r,a]of Object.entries(e)){for(let n of wt(a))t[n]||(t[n]=[]),t[n].push(r);if(a.on)for(let n of Object.values(a.on))for(let s of n)t[s]||(t[s]=[]),t[s].includes(r)||t[s].push(r);if(a.on_failure)for(let n of a.on_failure)t[n]||(t[n]=[]),t[n].includes(r)||t[n].push(r)}return t}var Cl=class{buffer=[];append(e){this.buffer.push(e)}drain(){let e=this.buffer;return this.buffer=[],e}get size(){return this.buffer.length}};function zo(e){let t=Jo(e);return o_(t)}function Jo(e){if(e==null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return"["+e.map(Jo).join(",")+"]";let t=e;return"{"+Object.keys(t).sort().map(r=>JSON.stringify(r)+":"+Jo(t[r])).join(",")+"}"}function o_(e){let t=0xcbf29ce484222325n,r=0x100000001b3n,a=0xffffffffffffffffn;for(let n=0;n<e.length;n++)t^=BigInt(e.charCodeAt(n)),t=t*r&a;return t.toString(16).padStart(16,"0")}function i_(e){if(typeof Buffer<"u")return Buffer.from(e,"utf8").toString("base64url");if(typeof btoa=="function"){let t=new TextEncoder().encode(e),r="";for(let a of t)r+=String.fromCharCode(a);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}throw new Error("No base64 encoder available in this runtime")}function u_(e){if(typeof Buffer<"u")return Buffer.from(e,"base64url").toString("utf8");if(typeof atob=="function"){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=t+"=".repeat((4-t.length%4)%4),a=atob(r),n=new Uint8Array(a.length);for(let s=0;s<a.length;s++)n[s]=a.charCodeAt(s);return new TextDecoder().decode(n)}throw new Error("No base64 decoder available in this runtime")}function Rl(e){let t=JSON.stringify({t:e,n:Date.now().toString(36)+Math.random().toString(36).slice(2,6)});return i_(t)}function c_(e){try{let t=JSON.parse(u_(e));return typeof t?.t=="string"?{taskName:t.t}:null}catch{return null}}function l_(e,t,r){let{handlers:a,onDrain:n}=t,s=new Cl,o="state"in e&&"config"in e?e:ld(e),u=!1,i=new Set,c=new Map(Object.entries(a)),l=new Cl,d=!1,b=!1;function w(){if(!u){if(d){b=!0;return}d=!0;try{do b=!1,m();while(b)}finally{d=!1}}}function m(){let _=l.drain(),g=s.drain(),E=[..._,...g];E.length>0&&(o=Z0(o,E));let $=Bo(o);E.length>0&&n?.(E,o,$);for(let y of $.eligible)f(y);for(let y of E)if(y.type==="task-progress"){let{taskName:p,update:P}=y;if(!o.config.tasks[p])continue;let j=o.state.tasks[p];if(!j||j.status!=="running")continue;let x=Rl(p),I=h(p,x,P).catch(q=>{u||(l.append({type:"task-failed",taskName:p,error:q.message??String(q),timestamp:new Date().toISOString()}),w())}).finally(()=>{i.delete(I)});i.add(I)}}function v(_){let g=o.config.tasks[_].requires??[],E=new Map;for(let[y,p]of Object.entries(o.config.tasks))for(let P of p.provides??[])E.set(P,y);let $={};for(let y of g){let p=E.get(y);p?$[y]=o.state.tasks[p]?.data:$[y]=void 0}return $}async function h(_,g,E){let $=o.config.tasks[_],y=$.taskHandlers??[],p=v(_);for(let P of y){let j=c.get(P);if(!j)throw new Error(`Handler '${P}' not found in registry (task '${_}')`);let x={nodeId:_,state:p,taskState:o.state.tasks[_],config:$,callbackToken:g,update:E};if(await j(x)==="task-initiate-failure")throw new Error(`Handler '${P}' returned task-initiate-failure (task '${_}')`)}}function f(_){let g=o.config.tasks[_]?.taskHandlers;if(!g||g.length===0)return;l.append({type:"task-started",taskName:_,timestamp:new Date().toISOString()}),w();let E=Rl(_),$=h(_,E).catch(y=>{u||(l.append({type:"task-failed",taskName:_,error:y.message??String(y),timestamp:new Date().toISOString()}),w())}).finally(()=>{i.delete($)});i.add($)}return{push(_){u||(_.type==="task-completed"&&_.data&&!_.dataHash&&(_={..._,dataHash:zo(_.data)}),s.append(_),w())},pushAll(_){if(!u){for(let g of _)g.type==="task-completed"&&g.data&&!g.dataHash?s.append({...g,dataHash:zo(g.data)}):s.append(g);w()}},resolveCallback(_,g,E){if(u)return;let $=c_(_);if(!$)return;let{taskName:y}=$;if(o.config.tasks[y]){if(E&&E.length>0)s.append({type:"task-failed",taskName:y,error:E.join("; "),timestamp:new Date().toISOString()});else{let p=g&&Object.keys(g).length>0?zo(g):void 0;s.append({type:"task-completed",taskName:y,data:g,dataHash:p,timestamp:new Date().toISOString()})}w()}},addNode(_,g){u||(s.append({type:"task-upsert",taskName:_,taskConfig:g,timestamp:new Date().toISOString()}),w())},removeNode(_){u||(s.append({type:"task-removal",taskName:_,timestamp:new Date().toISOString()}),w())},addRequires(_,g){u||(s.append({type:"node-requires-add",nodeName:_,tokens:g,timestamp:new Date().toISOString()}),w())},removeRequires(_,g){u||(s.append({type:"node-requires-remove",nodeName:_,tokens:g,timestamp:new Date().toISOString()}),w())},addProvides(_,g){u||(s.append({type:"node-provides-add",nodeName:_,tokens:g,timestamp:new Date().toISOString()}),w())},removeProvides(_,g){u||(s.append({type:"node-provides-remove",nodeName:_,tokens:g,timestamp:new Date().toISOString()}),w())},registerHandler(_,g){c.set(_,g)},unregisterHandler(_){c.delete(_)},retrigger(_){u||o.config.tasks[_]&&(s.append({type:"task-restart",taskName:_,timestamp:new Date().toISOString()}),w())},retriggerAll(_){if(!u){for(let g of _)o.config.tasks[g]&&s.append({type:"task-restart",taskName:g,timestamp:new Date().toISOString()});w()}},snapshot(){return Go(o)},getState(){return o},getSchedule(){return Bo(o)},async waitForHandlers(){i.size>0&&await Promise.allSettled([...i])},async dispose(_){_?.wait&&i.size>0&&await Promise.allSettled([...i]),u=!0}}}var d_=kn(import.meta.url),Tn=d_("./jsonata-sync.cjs"),fd=Tn;function ql(e,t){if(!t||!e)return;let r=t.split("."),a=e;for(let n=0;n<r.length;n++){if(a==null)return;a=a[r[n]]}return a}function pd(e,t,r){let a=t.split("."),n=e;for(let s=0;s<a.length-1;s++)(n[a[s]]==null||typeof n[a[s]]!="object")&&(n[a[s]]={}),n=n[a[s]];n[a[a.length-1]]=r}async function f_(e,t){if(!e?.compute?.length)return e;e.card_data||(e.card_data={}),e.computed_values={},e._sourcesData=t?.sourcesData??{};let r=e.requires??{},a={card_data:e.card_data,requires:r,expects_data:r,fetched_sources:e._sourcesData,data:e.computed_values,computed_values:e.computed_values};for(let n of e.compute)try{let s=await Tn(n.expr).evaluate(a);pd(e.computed_values,n.bindTo,s),a.computed_values=e.computed_values}catch{}return e}function p_(e,t){if(!e?.compute?.length)return{ok:!0,node:e};e.card_data||(e.card_data={}),e.computed_values={},e._sourcesData=t?.sourcesData??{};let r=e.requires??{},a={card_data:e.card_data,requires:r,expects_data:r,fetched_sources:e._sourcesData,data:e.computed_values,computed_values:e.computed_values},n=[];for(let s of e.compute)try{let o=fd(s.expr).evaluate(a);pd(e.computed_values,s.bindTo,o),a.computed_values=e.computed_values}catch(o){let u=o instanceof Error?o.message:String(o);n.push({bindTo:s.bindTo,error:u})}return n.length>0?{ok:!0,node:e,errors:n}:{ok:!0,node:e}}async function h_(e,t,r){let a={...r??{},card_data:t.card_data??{},requires:t.requires??{},fetched_sources:t._sourcesData??{},computed_values:t.computed_values??{}};return Tn(e).evaluate(a)}function m_(e,t){return t.startsWith("fetched_sources.")?ql(e._sourcesData??{},t.slice(16)):ql(e,t)}var Al=new Set(["metric","table","editable-table","chart","form","filter","list","notes","todo","alert","narrative","badge","text","markdown","ref","custom","actions"]),y_=new Set(["id","meta","requires","provides","view","card_data","compute","source_defs"]);function g_(e){let t=[];if(!e||typeof e!="object"||Array.isArray(e))return{ok:!1,errors:["Node must be a non-null object"]};let r=e;(typeof r.id!="string"||!r.id)&&t.push("id: required, must be a non-empty string");for(let a of Object.keys(r))y_.has(a)||t.push(`Unknown top-level key: "${a}"`);if((r.card_data==null||typeof r.card_data!="object"||Array.isArray(r.card_data))&&t.push("card_data: required, must be an object"),r.meta!=null)if(typeof r.meta!="object"||Array.isArray(r.meta))t.push("meta: must be an object");else{let a=r.meta;a.title!=null&&typeof a.title!="string"&&t.push("meta.title: must be a string"),a.tags!=null&&!Array.isArray(a.tags)&&t.push("meta.tags: must be an array")}if(r.requires!=null&&!Array.isArray(r.requires)&&t.push("requires: must be an array of strings"),r.provides!=null&&(Array.isArray(r.provides)?r.provides.forEach((a,n)=>{if(!a||typeof a!="object"||Array.isArray(a))t.push(`provides[${n}]: must be an object with bindTo and ref`);else{let s=a;(typeof s.bindTo!="string"||!s.bindTo)&&t.push(`provides[${n}]: missing required "bindTo" string`),(typeof s.ref!="string"||!s.ref)&&t.push(`provides[${n}]: missing required "ref" string`)}}):t.push("provides: must be an array of { bindTo, ref } bindings")),r.compute!=null&&(Array.isArray(r.compute)?r.compute.forEach((a,n)=>{if(!a||typeof a!="object"||Array.isArray(a))t.push(`compute[${n}]: must be a compute step object`);else{let s=a;(typeof s.bindTo!="string"||!s.bindTo)&&t.push(`compute[${n}]: missing required "bindTo" property`),(typeof s.expr!="string"||!s.expr)&&t.push(`compute[${n}]: missing required "expr" string (JSONata expression)`)}}):t.push("compute: must be an array of compute steps")),r.source_defs!=null)if(!Array.isArray(r.source_defs))t.push("source_defs: must be an array");else{let a=new Set,n=new Set;r.source_defs.forEach((s,o)=>{if(!s||typeof s!="object"||Array.isArray(s))t.push(`source_defs[${o}]: must be an object`);else{let u=s;typeof u.bindTo!="string"||!u.bindTo?t.push(`source_defs[${o}]: missing required "bindTo" property`):(a.has(u.bindTo)&&t.push(`source_defs[${o}]: bindTo "${u.bindTo}" is not unique across source_defs`),a.add(u.bindTo)),typeof u.outputFile!="string"||!u.outputFile?t.push(`source_defs[${o}]: missing required "outputFile" property`):(n.has(u.outputFile)&&t.push(`source_defs[${o}]: outputFile "${u.outputFile}" is not unique across source_defs`),n.add(u.outputFile)),u.optionalForCompletionGating!=null&&typeof u.optionalForCompletionGating!="boolean"&&t.push(`source_defs[${o}]: optionalForCompletionGating must be a boolean`)}})}if(r.view!=null)if(typeof r.view!="object"||Array.isArray(r.view))t.push("view: must be an object");else{let a=r.view;!Array.isArray(a.elements)||a.elements.length===0?t.push("view.elements: required, must be a non-empty array"):a.elements.forEach((n,s)=>{if(!n||typeof n!="object"){t.push(`view.elements[${s}]: must be an object`);return}!n.kind||typeof n.kind!="string"?t.push(`view.elements[${s}].kind: required, must be a string`):Al.has(n.kind)||t.push(`view.elements[${s}].kind: unknown kind "${n.kind}". Valid: ${[...Al].join(", ")}`),n.data!=null&&(typeof n.data!="object"||Array.isArray(n.data))&&t.push(`view.elements[${s}].data: must be an object`)}),a.layout!=null&&(typeof a.layout!="object"||Array.isArray(a.layout))&&t.push("view.layout: must be an object"),a.features!=null&&(typeof a.features!="object"||Array.isArray(a.features))&&t.push("view.features: must be an object")}return{ok:t.length===0,errors:t}}async function v_(e,t){if(!e||e.length===0)return[];let r={card_data:t.card_data??{},requires:t.requires??{}};return Promise.all(e.map(async a=>{let n={};if(a.projections&&typeof a.projections=="object"&&!Array.isArray(a.projections)){for(let[s,o]of Object.entries(a.projections))if(typeof o=="string"&&o.trim().length>0)try{n[s]=await Tn(o).evaluate(r)}catch{n[s]=void 0}}return{...a,_projections:n}}))}function __(e,t){if(!e||e.length===0)return[];let r={card_data:t.card_data??{},requires:t.requires??{}};return e.map(a=>{let n={};if(a.projections&&typeof a.projections=="object"&&!Array.isArray(a.projections)){for(let[s,o]of Object.entries(a.projections))if(typeof o=="string"&&o.trim().length>0)try{n[s]=fd(o).evaluate(r)}catch{n[s]=void 0}}return{...a,_projections:n}})}var Cr={run:f_,runSync:p_,eval:h_,resolve:m_,validate:g_,enrichSources:v_,enrichSourcesSync:__};function $_(e){return JSON.stringify(e)}function w_(e){let t;try{t=JSON.parse(e)}catch{throw new Error(`parseExecutionRef: invalid JSON \u2014 ${e}`)}if(typeof t!="object"||t===null||typeof t.howToRun!="string"||typeof t.whatToRun!="string")throw new Error(`parseExecutionRef: missing required fields howToRun/whatToRun \u2014 ${e}`);return t}function hd(e,t){function r(){return e.readIndex()??{}}function a(n,s,o){let u=String(s||"").split(".").filter(Boolean);if(u.length===0)return o&&typeof o=="object"&&!Array.isArray(o)?o:{value:o};let i={...n},c=i;for(let l=0;l<u.length-1;l++){let d=u[l],b=c[d],w=b&&typeof b=="object"&&!Array.isArray(b)?{...b}:{};c[d]=w,c=w}return c[u[u.length-1]]=o,i}return{readCard(n){let s=r()[n];return!s||!e.cardExists(s.key)?null:e.readCard(s.key)},readCardKey(n){return r()[n]?.key??null},readAllCards(){let n=[];for(let[s,o]of Object.entries(r())){if(!e.cardExists(o.key))continue;let u=e.readCard(o.key);u?n.push(u):t?.(`[card-store] could not read card "${s}" at key "${o.key}"`)}return n},readChecksumIndex(){let n={};for(let[s,o]of Object.entries(r()))n[s]=o.checksum;return n},changedSince(n){let s=r(),o=[];for(let[u,i]of Object.entries(s))n[u]!==i.checksum&&o.push(u);for(let u of Object.keys(n))s[u]||o.push(u);return o},validateUpsert(n,s){let o=r(),u=o[n],i=Object.entries(o).find(([,c])=>c.key===s);return u&&u.key!==s?{ok:!1,error:`Card id "${n}" is already mapped to key "${u.key}", cannot remap to "${s}"`}:i&&i[0]!==n?{ok:!1,error:`Key "${s}" is already mapped to card id "${i[0]}", cannot remap to "${n}"`}:{ok:!0}},writeCard(n,s,o){let u=r(),i=o??u[n]?.key??e.defaultCardKey(n),c=e.writeCard(i,s);u[n]={key:i,checksum:c,updatedAt:new Date().toISOString()},e.writeIndex(u)},patchCard(n,s,o){let u=r(),i=u[n];if(!i||!e.cardExists(i.key))throw new Error(`card "${n}" not found`);let c=e.readCard(i.key);if(!c||typeof c!="object"||Array.isArray(c))throw new Error(`card "${n}" is not patchable`);let l=a(c,s,o),d=e.writeCard(i.key,l);u[n]={key:i.key,checksum:d,updatedAt:new Date().toISOString()},e.writeIndex(u)},removeCard(n){let s=r(),o=s[n];o&&(e.removeCard(o.key),delete s[n],e.writeIndex(s))},readIndex(){return r()}}}function Dl(e,t){return{readSourceData(r,a){let n=e.read(`${r}/${a}`);if(n==null)return null;let s=n.trim();if(!s)return null;try{return JSON.parse(s)}catch{return s}},ingestSourceDataStaged(r,a,n,s){let o=t(n);e.write(`${r}/.staged/${s}/${a}`,o)},commitSourceData(r,a,n){let s=`${r}/.staged/${n}/${a}`,o=e.read(s);return o==null?!1:(e.write(`${r}/${a}`,o),e.remove(s),!0)},hasSource(r,a){return e.exists(`${r}/${a}`)}}}function b_(e){function t(r){let a=e.readAllEntries();if(!r)return a;let n=a.findIndex(s=>s.id===r);return n===-1?a:a.slice(n+1)}return{readEntriesAfterCursor(r){let a=t(r);return a.length===0?{events:[],newCursor:r}:{events:a.map(n=>n.event),newCursor:a[a.length-1].id}},pendingCount(r){return t(r).length},appendEvent(r){e.appendEntry({id:e.generateId(),event:r})}}}function S_(e,t){return{appendEntries(r,a){if(!r||a.length===0)return;let n=e.read(r)??[];e.write(r,[...n,...a])},dispatchEntriesForJournalId(r,a){if(!r)return;let n=e.read(r);if(!(!n||n.length===0)){for(let s of n)try{a(s)}catch(o){let u=o instanceof Error?o.message:String(o);try{t(s,u)}catch{}}e.delete(r)}}}}var md="v1",ya="board/graph",yd="board/lastJournalProcessedId";function Ml(e){return`cards/${e}/runtime`}function k_(e){return{readRuntime(t){return e.read(Ml(t))??{_sources:{}}},writeRuntime(t,r){e.write(Ml(t),r)}}}function E_(e,t){let r={...e};for(let a of t.deleteKeys)delete r[a];return{...r,...t.shallowMerge}}function P_(e){return{readSnapshot(t){return e.readValues(t)},commitSnapshot(t,r){if(r.schemaVersion!==md)throw new Error(`Unsupported snapshot schema version: ${r.schemaVersion}`);let a=e.readValues(t);if(a.version!==r.expectedVersion)return{ok:!1,reason:"version-mismatch",currentVersion:a.version};let n=E_(a.values,r);return{ok:!0,newVersion:e.writeValues(t,n,r.deleteKeys)}}}}function gd(e){function t(r){let a=e.read(r);return a==null?null:typeof a=="string"?a:JSON.stringify(a)}return{readTaskExecutorRef(){let r=t("task-executor");if(r?.trim())return w_(r.trim())},writeTaskExecutorRef(r){e.write("task-executor",$_(r))},readChatHandlerFlow(){return e.read("chat-handler-flow")},writeChatHandlerFlow(r){e.write("chat-handler-flow",r)},readCardStoreRef(){return t("card-store-ref")},writeCardStoreRef(r){e.write("card-store-ref",r)},readOutputsStoreRef(){return t("outputs-store-ref")},writeOutputsStoreRef(r){e.write("outputs-store-ref",r)},readScratchStoreRef(){return t("scratch-store-ref")},writeScratchStoreRef(r){e.write("scratch-store-ref",r)},readArchiveStoreRef(){return t("archive-store-ref")},writeArchiveStoreRef(r){e.write("archive-store-ref",r)}}}function j_(e){return{writeComputedValues(t,r){e.write(`cards/${t}/computed_values`,r)},readComputedValues(t){return e.read(`cards/${t}/computed_values`)},readAllComputedValues(){let t={};for(let r of e.listKeys("cards/")){let a=r.match(/^cards\/([^/]+)\/computed_values$/);a&&(t[a[1]]=e.read(r))}return t},writeDataObjects(t){for(let[r,a]of Object.entries(t))r&&e.write(`data-objects/${r}`,a)},readDataObject(t){return e.read(`data-objects/${t}`)},readAllDataObjects(){let t={};for(let r of e.listKeys("data-objects/"))t[r.slice(13)]=e.read(r);return t},writeStatusSnapshot(t){e.write("status",t)},readStatusSnapshot(){return e.read("status")}}}function Fl(e){return e?{lastRequestedToken:e.lastRequestedToken,lastCompletedToken:e.lastCompletedToken,lastCompletionStatus:e.lastCompletionStatus??(e.lastCompletedToken?"success":"not-started"),queueRequestedToken:e.queueRequestedToken}:{lastCompletionStatus:"not-started"}}function O_(e){return e?.lastRequestedToken?e.lastCompletedToken!==e.lastRequestedToken:!1}function Vl(e,t){return e?.lastRequestedToken?O_(e)?"in-flight":!e.lastCompletedToken||e.lastCompletedToken<t?"dispatch":"idle":"dispatch"}function N_(e,t){return{...e,lastCompletedToken:t,lastCompletionStatus:"success"}}function zl(e,t){return{...e,lastCompletedToken:t,lastCompletionStatus:"failure"}}function Uo(e,t){let r=t.state.tasks,a=t.config.tasks,n=Object.keys(r),s=Bo(t),o={completed:0,failed:0,in_progress:0,pending:0,blocked:0,unresolved:0},u=new Map;for(let m of s.pending)u.set(m.taskName,m.waitingOn);for(let m of s.unresolved)u.set(m.taskName,m.missingTokens);for(let m of s.blocked)u.set(m.taskName,m.failedTokens);let i=new Map;for(let[m,v]of Object.entries(a))for(let h of v.requires??[]){let f=i.get(h)??[];f.push(m),i.set(h,f)}let c=n.sort().map(m=>{let v=r[m],h=a[m]??{requires:[],provides:[]};v.status==="completed"?o.completed+=1:v.status==="failed"?o.failed+=1:v.status==="in-progress"&&(o.in_progress+=1);let f=h.requires??[],_=h.provides??[],g=Object.keys(v.data??{}).sort(),E=f.filter(x=>t.state.availableOutputs.includes(x)),$=f.filter(x=>!t.state.availableOutputs.includes(x)),y=u.get(m)??$,p=new Set;for(let x of _)for(let I of i.get(x)??[])I!==m&&p.add(I);let P=v.failedAt,j=v.error?{message:v.error,code:"TASK_FAILED",at:P,source:"task-runtime"}:void 0;return{name:m,status:v.status,error:j,requires:f,requires_satisfied:E,requires_missing:$,provides_declared:_,provides_runtime:g,blocked_by:y,unblocks:Array.from(p).sort(),runtime:{attempt_count:v.executionCount??0,restart_count:v.retryCount??0,in_progress_since:v.status==="in-progress"?v.startedAt??null:null,last_transition_at:v.lastUpdated??null,last_completed_at:v.completedAt??null,last_restarted_at:v.startedAt??null,status_age_ms:v.lastUpdated?0:null}}});o.pending=s.pending.length,o.blocked=s.blocked.length,o.unresolved=s.unresolved.length;let l=c.map(m=>({name:m.name,fanOut:m.unblocks.length})).sort((m,v)=>v.fanOut-m.fanOut||m.name.localeCompare(v.name)),d=l.length>0?l[0]:{name:null,fanOut:0},b=new Set;for(let m of Object.values(a))for(let v of m.requires??[])b.add(v);let w=0;for(let[m,v]of Object.entries(a)){let h=(v.requires??[]).length===0,f=(v.provides??[]).some(_=>(i.get(_)??[]).some(g=>g!==m));h&&!f&&(w+=1)}return{schema_version:"v1",meta:{board:{path:e}},summary:{card_count:n.length,completed:o.completed,eligible:s.eligible.length,pending:o.pending,blocked:o.blocked,unresolved:o.unresolved,failed:o.failed,in_progress:o.in_progress,orphan_cards:w,topology:{edge_count:Array.from(b).length,max_fan_out_card:d.name,max_fan_out:d.fanOut}},cards:c}}function T_(){return new Date().toISOString()}function x_(e,t,r,a,n,s,o){return async u=>{let i=[],c=r.cardStore.readCard(u.nodeId);if(!c)return"task-initiate-failure";let l=c.id,d=c.card_data??{},b=c.source_defs??[],w=b.filter(F=>F.optionalForCompletionGating!==!0),m=r.cardRuntimeStore.readRuntime(l),v=!1,h=()=>{v&&(r.cardRuntimeStore.writeRuntime(l,m),v=!1)},f=F=>Fl(m._sources[F]),_=(F,U)=>{m._sources[F]=Fl(U),v=!0},g=u.taskState?.executionCount??0;if(m._lastExecutionCount!==g&&(m._sources={},m._lastExecutionCount=g,v=!0),u.update){let F=u.update,U=F.outputFile;if(U){let G=f(U);if(F.failure){let re=F.rqt??G.lastRequestedToken??G.queueRequestedToken;re&&_(U,zl(G,re))}else{let re=F.rqt;if(!G.lastCompletedToken||re>G.lastCompletedToken){let B=typeof F.deliveryToken=="string"?F.deliveryToken:void 0,T=!1;B&&(T=r.fetchedSourcesStore.commitSourceData(l,U,B)),T?_(U,N_(G,re)):_(U,zl(G,re))}}h()}}let E={};for(let F of b)if(F.outputFile){let U=r.fetchedSourcesStore.readSourceData(l,F.outputFile);U!==null&&(E[F.bindTo]=U)}let $={};for(let[F,U]of Object.entries(u.state??{}))if(U!==null&&typeof U=="object"&&!Array.isArray(U)){let G=U[F];$[F]=G!==void 0?G:U}else $[F]=U;let y={id:l,card_data:{...d},requires:$,source_defs:b,compute:c.compute};y._sourcesData=E,c.compute&&Cr.runSync(y,{sourcesData:E}),(s??r.outputStore.writeComputedValues.bind(r.outputStore))(l,y.computed_values??{});let p={...c},P=Cr.enrichSourcesSync(Array.isArray(c.source_defs)?c.source_defs:void 0,{card_data:c.card_data,requires:$}),j=e.value;p.source_defs=Array.isArray(P)?P.map(F=>({...F,boardDir:typeof F.boardDir=="string"&&F.boardDir?F.boardDir:j})):P;let x=T_(),I=u.update?void 0:x,q=w.filter(F=>{let U=F.outputFile;if(typeof U!="string"||!U)return!0;let G=f(U);I&&(G={...G,queueRequestedToken:I},_(U,G));let re=G.queueRequestedToken??G.lastRequestedToken??x,B=Vl(G,re);return B==="in-flight"?!1:B==="dispatch"});if(h(),q.length>0){let F=!1,U=x;for(let G of q){let re=G.outputFile;if(typeof re!="string"||!re)continue;let B=f(re),T=B.queueRequestedToken??x;_(re,{...B,lastRequestedToken:T}),U=T,F=!0}return F&&h(),F&&(i.push({taskKind:"source-fetch",payload:{boardRef:He(e),enrichedCard:p,callbackToken:u.callbackToken,rqt:U}}),r.executionRequestStore.appendEntries(t,i)),"task-initiated"}if(w.some(F=>{let U=F.outputFile;if(typeof U!="string"||!U)return!1;let G=f(U),re=G.queueRequestedToken??G.lastRequestedToken??x;return Vl(G,re)==="in-flight"}))return"task-initiated";let V=c.provides??[],H={};for(let{bindTo:F,ref:U}of V)H[F]=Cr.resolve(y,U);return(o??r.outputStore.writeDataObjects.bind(r.outputStore))(H),b.filter(F=>{if(F.optionalForCompletionGating!==!0)return!1;let U=f(F.outputFile);return!U.lastRequestedToken||!U.lastCompletedToken?!0:U.lastCompletedToken<=U.lastRequestedToken}).length>0&&i.push({taskKind:"source-fetch",payload:{boardRef:He(e),enrichedCard:p,callbackToken:u.callbackToken,rqt:x}}),a(u.nodeId,H),i.length>0&&r.executionRequestStore.appendEntries(t,i),"task-initiated"}}var I_={settings:{completion:"manual",refreshStrategy:"data-changed"},tasks:{}};function C_(e){return{[ya]:e.graph,[yd]:e.lastDrainedJournalId}}function R_(e){let t=e[ya],r=e[yd];if(!t||typeof t!="object")throw new Error(`State snapshot is missing required key: ${ya}`);return{graph:t,lastDrainedJournalId:typeof r=="string"?r:""}}function q_(e){let t=e.requires,r=e.provides?.map(a=>a.bindTo)??[];return{requires:t&&t.length>0?t:void 0,provides:r,taskHandlers:["card-handler"],description:e.meta?.title??e.id}}function ve(e){return e!==void 0?{status:"success",data:e}:{status:"success"}}function ae(e){return{status:"fail",error:e}}function _e(e){return{status:"error",error:e instanceof Error?e.message:String(e)}}function A_(e){let t=new TextEncoder().encode(e),r=Array.from(t,a=>String.fromCharCode(a)).join("");return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function vd(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=t+"=".repeat((4-t.length%4)%4),a=atob(r),n=Uint8Array.from(a,s=>s.charCodeAt(0));return new TextDecoder().decode(n)}function yn(e){try{let t=JSON.parse(vd(e));return typeof t?.t=="string"?{taskName:t.t}:null}catch{return null}}function D_(e){return A_(JSON.stringify(e))}function Ul(e){try{let t=JSON.parse(vd(e));return typeof t?.cbk=="string"&&typeof t?.cid=="string"&&typeof t?.b=="string"&&typeof t?.d=="string"?t:null}catch{return null}}function Ue(){return new Date().toISOString()}function Ho(e,t){let r=t.onWarn??(()=>{}),a=He(e);function n(S){if(S.length!==0)try{let k=t.publishBoardChangeNotifications?.(S);k&&typeof k.catch=="function"&&k.catch(N=>r(`[board-live-cards-public] publishBoardChangeNotifications failed: ${N instanceof Error?N.message:String(N)}`))}catch(k){r(`[board-live-cards-public] publishBoardChangeNotifications failed: ${k instanceof Error?k.message:String(k)}`)}}function s(){let S=u().readCardStoreRef();if(!S)throw new Error(`Board at ${e.value} has no card store configured. Run: init --base-ref <ref> --store-ref <b64-ref>`);let k=t.kvStorageForRef(S);return{readIndex(){return k.read("_index")},writeIndex(N){k.write("_index",N)},readCard(N){return k.read(N)},writeCard(N,A){return k.write(N,A),t.hashFn(A)},removeCard(N){k.delete(N)},cardExists(N){return k.read(N)!==null},defaultCardKey(N){return N}}}let o={readValues(S){let k=t.kvStorage("state-snapshot"),N=k.listKeys().sort();if(N.length===0)return{version:null,values:{}};let A={};for(let K of N)A[K]=k.read(K);return{version:t.hashFn(A),values:A}},writeValues(S,k,N){let A=t.kvStorage("state-snapshot");for(let K of N)A.delete(K);for(let[K,W]of Object.entries(k))A.write(K,W);return t.hashFn(k)}},u=()=>gd(t.kvStorage("config")),i=()=>P_(o),c=()=>b_(t.journalAdapter()),l=()=>hd(s(),r),d=()=>{let S=u().readOutputsStoreRef();if(!S)throw new Error(`Board at ${e.value} has no outputs store configured. Run: init --outputs-store-ref <b64-ref>`);return j_(t.kvStorageForRef(S))},b=()=>{let S=u().readArchiveStoreRef();return S?t.archiveFactoryForRef(S):t.archiveFactory()};function w(){return!!i().readSnapshot(e.value).values[ya]}function m(){let S=i().readSnapshot(e.value);if(!S.values[ya])throw new Error(`Board not initialized at ${e.value}`);return R_(S.values)}function v(S,k){let N=i().commitSnapshot(e.value,{schemaVersion:md,expectedVersion:k,commitId:t.genId(),committedAt:Ue(),deleteKeys:[],shallowMerge:C_(S)});if(!N.ok)throw new Error(`Snapshot commit failed (version mismatch): expected=${k??"null"} current=${N.currentVersion??"null"}`)}function h(S){c().appendEvent(S)}async function f(){let S=(X,se)=>{let je=X.payload,Gt=(je?.enrichedCard??{}).id??je?.cardId??"unknown";h({type:"task-failed",taskName:Gt,error:se,timestamp:Ue()})},k=S_(t.kvStorage("execution-requests"),S),N=k_(t.kvStorage("card-runtime")),A=Dl(t.blobStorage("sources"),X=>t.resolveBlob(X)),K=new Map,W={readRuntime(X){return K.get(X)??N.readRuntime(X)},writeRuntime(X,se){K.set(X,se)}},Y=[],fe=new Map,xe={readSourceData(X,se){let je=`${X}/${se}`;return fe.has(je)?fe.get(je):A.readSourceData(X,se)},ingestSourceDataStaged(X,se,je,Gt){A.ingestSourceDataStaged(X,se,je,Gt)},commitSourceData(X,se,je){let Gt=`${X}/.staged/${je}/${se}`,xt=t.blobStorage("sources").read(Gt);if(xt==null)return!1;let va=`${X}/${se}`,cr=xt.trim();try{fe.set(va,JSON.parse(cr))}catch{fe.set(va,cr)}return Y.push({cardId:X,outputFile:se,deliveryToken:je}),!0},hasSource(X,se){let je=`${X}/${se}`;return fe.has(je)?!0:A.hasSource(X,se)}},O={cardStore:l(),cardRuntimeStore:W,fetchedSourcesStore:xe,outputStore:d(),executionRequestStore:k},C=m(),D=Vo(C.graph),{events:Q,newCursor:te}=c().readEntriesAfterCursor(C.lastDrainedJournalId),ne=[],Te=[],Ce=[],Ze=new Map,Me=(X,se)=>{ne.push({type:"task-completed",taskName:X,data:se,timestamp:Ue()});try{b().stream("exec-history").append({taskName:X,status:"completed",completedAt:Ue()})}catch{}},Ne=(X,se)=>{h({type:"task-failed",taskName:X,error:se,timestamp:Ue()});try{b().stream("exec-history").append({taskName:X,status:"failed",error:se,completedAt:Ue()})}catch{}},st=l_(D,{handlers:{"card-handler":x_(e,te,O,Me,Ne,(X,se)=>{Te.push({cardId:X,values:se})},X=>{Ce.push(X)})}});for(ne=Q;ne.length>0;){let X=ne;ne=[];for(let se of X)if(se.type==="task-restart"){let je=O.cardStore.readCard(se.taskName);je&&Ze.set(se.taskName,je)}st.pushAll(X),await st.waitForHandlers()}let Le=st.getState();await st.dispose({wait:!0});let Rr=i().readSnapshot(e.value).version;v({lastDrainedJournalId:te,graph:Go(Le)},Rr);for(let{cardId:X,values:se}of Te)O.outputStore.writeComputedValues(X,se);for(let X of Ce)O.outputStore.writeDataObjects(X);for(let[X,se]of K)N.writeRuntime(X,se);for(let{cardId:X,outputFile:se,deliveryToken:je}of Y)A.commitSourceData(X,se,je);let ft;try{ft=Uo(a,Le),O.outputStore.writeStatusSnapshot(ft)}catch(X){r(`[board-live-cards-public] status publish failed: ${X instanceof Error?X.message:String(X)}`)}let bt=[];for(let{cardId:X,values:se}of Te)bt.push({kind:"computed_values",cardId:X,values:se});for(let X of Ce)for(let[se,je]of Object.entries(X))se&&bt.push({kind:"data_object",key:se,payload:je});for(let[X,se]of Ze)bt.push({kind:"card_refreshed",cardId:X,card:se});ft!==void 0&&bt.push({kind:"status",status:ft}),n(bt);let ga=u().readTaskExecutorRef()??{howToRun:"built-in",whatToRun:He({kind:"built-in",value:"source-cli-task-executor"})};k.dispatchEntriesForJournalId(te,X=>{if(X.taskKind!=="source-fetch"){r(`[process-accumulated-events] unknown taskKind "${X.taskKind}" \u2014 skipping`);return}let se=X.payload,je=se.enrichedCard?.id??"unknown",Gt=se.enrichedCard?.source_defs??[];for(let xt of Gt){if(!xt.outputFile){r(`[dispatch] source "${xt.bindTo}" has no outputFile \u2014 skipping`);continue}let va=D_({cbk:se.callbackToken,rg:e.value,br:He(e),cid:je,b:xt.bindTo,d:xt.outputFile,cs:void 0,rqt:se.rqt});t.dispatchExecution(ga,{source_def:xt,base_ref:He(e),callback:{token:va,via:t.selfRef}}).catch(cr=>Ne(je,cr instanceof Error?cr.message:String(cr)))}})}async function _(){try{let S=()=>{let N=m(),{events:A}=c().readEntriesAfterCursor(N.lastDrainedJournalId);A.length<=0||(_(),t.requestProcessAccumulated?.())},k=await Qv(t.lock,f,S);return ve({ran:k!==!1})}catch(S){return _e(S)}}function g(){_(),t.requestProcessAccumulated?.()}function E(S){try{let k=S.params?.cardStoreRef;if(!k)return ae("init requires params.cardStoreRef \u2014 create a card store with card-store-cli and pass its ref here");if(!w()){let fe=ld(I_);v({lastDrainedJournalId:"",graph:Go(fe)},null)}let N=S.params?.outputsStoreRef;if(!N)return ae("init requires params.outputsStoreRef \u2014 pass the outputs store ref here");let A=S.params?.scratchStoreRef,K=S.params?.archiveStoreRef,W=u();W.writeCardStoreRef(k),W.writeOutputsStoreRef(N),A&&W.writeScratchStoreRef(A),K&&W.writeArchiveStoreRef(K);let Y=S.body??{};Y["task-executor-ref"]&&W.writeTaskExecutorRef(Y["task-executor-ref"]),Object.prototype.hasOwnProperty.call(Y,"chat-handler-flow")&&W.writeChatHandlerFlow(Y["chat-handler-flow"]);try{d().writeStatusSnapshot(Uo(a,Vo(m().graph)))}catch{}return ve()}catch(k){return _e(k)}}function $(S){try{let k=d().readStatusSnapshot();if(!k){k=Uo(a,Vo(m().graph));try{d().writeStatusSnapshot(k)}catch{}}return ve(k)}catch(k){return _e(k)}}function y(S){try{let k=S.params?.id;return k?(h({type:"task-removal",taskName:k,timestamp:Ue()}),g(),ve()):ae("removeCard requires params.id")}catch(k){return _e(k)}}function p(S){try{let k=S.params?.id;return k?(h({type:"task-restart",taskName:k,timestamp:Ue()}),g(),ve()):ae("retrigger requires params.id")}catch(k){return _e(k)}}async function P(S){return _()}function j(S){try{let k=S.params?.cardId,N=S.params?.all,A=!!S.params?.restart;if(!k&&!N)return ae("upsertCard requires --card-id <id> or --all");let K=N?l().readAllCards().map(W=>W.id):[k];for(let W of K)if(!l().readCard(W))return ae(`Card "${W}" not found in board at ${e.value}`);for(let W of K){let Y=l().readCard(W),fe=q_(Y),xe=t.hashFn(fe),O=t.kvStorage("card-upsert"),C=O.read(W),D=C?.taskConfigHash!==xe;if(!(!D&&!A)){if(D){let Q=C?.blobRef??l().readCardKey(W)??W;h({type:"task-upsert",taskName:W,taskConfig:fe,timestamp:Ue()}),O.write(W,{blobRef:Q,taskConfigHash:xe,updatedAt:Ue()})}A&&h({type:"task-restart",taskName:W,timestamp:Ue()})}}return g(),ve()}catch(k){return _e(k)}}function x(S){try{let k=S.params?.token;if(!k)return ae("taskFailed requires params.token");let N=S.params?.error??"unknown error",A=yn(k);if(!A)return ae("Invalid callback token");h({type:"task-failed",taskName:A.taskName,error:N,timestamp:Ue()});try{b().stream("exec-history").append({taskName:A.taskName,status:"failed",error:N,completedAt:Ue()})}catch{}return g(),ve()}catch(k){return _e(k)}}function I(S){try{let k=S.params?.token;if(!k)return ae("taskProgress requires params.token");let N=(S.body??{}).update??{},A=yn(k);return A?(h({type:"task-progress",taskName:A.taskName,update:N,timestamp:Ue()}),g(),ve()):ae("Invalid callback token")}catch(k){return _e(k)}}function q(S){try{let k=S.params?.token,N=S.params?.ref;if(!k)return ae("sourceDataFetched requires params.token");if(!N)return ae("sourceDataFetched requires params.ref");let A=Ul(k);if(!A)return ae("Invalid source token");let{cbk:K,cid:W,b:Y,d:fe,cs:xe,rqt:O}=A,C=Dl(t.blobStorage("sources"),ne=>t.resolveBlob(ne)),D=t.genId();C.ingestSourceDataStaged(W,fe,$t(N),D);let Q=yn(K);if(!Q)return ae("Invalid callback token embedded in source token");let te=Ue();return h({type:"task-progress",taskName:Q.taskName,update:{bindTo:Y,outputFile:fe,fetchedAt:te,deliveryToken:D,sourceChecksum:xe,rqt:O},timestamp:te}),g(),ve()}catch(k){return _e(k)}}function V(S){try{let k=S.params?.token,N=S.params?.reason??"unknown";if(!k)return ae("sourceDataFetchFailure requires params.token");let A=Ul(k);if(!A)return ae("Invalid source token");let{cbk:K,b:W,d:Y,cs:fe,rqt:xe}=A,O=yn(K);return O?(h({type:"task-progress",taskName:O.taskName,update:{bindTo:W,outputFile:Y,failure:!0,reason:N,sourceChecksum:fe,rqt:xe},timestamp:Ue()}),g(),ve()):ae("Invalid callback token embedded in source token")}catch(k){return _e(k)}}function H(S){try{let k=u().readCardStoreRef();return k?ve({storeRef:k}):ae(`Board at ${e.value} has no card store configured`)}catch(k){return _e(k)}}function F(S){try{let k=u().readOutputsStoreRef();return k?ve({storeRef:k}):ae(`Board at ${e.value} has no outputs store configured`)}catch(k){return _e(k)}}function U(S){try{let k=u().readScratchStoreRef();return ve({storeRef:k})}catch(k){return _e(k)}}function G(S){try{let k=u().readArchiveStoreRef();return ve({storeRef:k})}catch(k){return _e(k)}}function re(S){try{let k=S.params?.key;if(!k)return ae("getConfig requires params.key");let N=u(),A;switch(k){case"task-executor":A=N.readTaskExecutorRef()??null;break;case"chat-handler-flow":A=N.readChatHandlerFlow()??null;break;case"card-store-ref":A=N.readCardStoreRef();break;case"outputs-store-ref":A=N.readOutputsStoreRef();break;case"scratch-store-ref":A=N.readScratchStoreRef();break;case"archive-store-ref":A=N.readArchiveStoreRef();break;default:return ae(`getConfig: unknown key "${k}"`)}return ve({value:A})}catch(k){return _e(k)}}function B(S){try{let k=S.params?.key;if(!k)return ae("getOutputsDataObject requires params.key");let N=d().readDataObject(k);return ve(N)}catch(k){return _e(k)}}function T(S){try{return ve(d().readAllDataObjects())}catch(k){return _e(k)}}function R(S){try{let k=S.params?.key;if(!k)return ae("getOutputsComputedValues requires params.key");let N=d().readComputedValues(k);return ve(N)}catch(k){return _e(k)}}function z(S){try{return ve(d().readAllComputedValues())}catch(k){return _e(k)}}return{init:E,status:$,getCardStoreRef:H,getOutputsStoreRef:F,getScratchStoreRef:U,getArchiveStoreRef:G,getConfig:re,getOutputsDataObject:B,getAllOutputsDataObjects:T,getOutputsComputedValues:R,getAllOutputsComputedValues:z,removeCard:y,retrigger:p,processAccumulatedEvents:P,upsertCard:j,taskFailed:x,taskProgress:I,sourceDataFetched:q,sourceDataFetchFailure:V}}function ir(e,t){let r=()=>gd(t.kvStorage("config"));function a(){let $=r().readCardStoreRef();if(!$)throw new Error(`Board at ${e.value} has no card store configured. Run: init --base-ref <ref> --store-ref <b64-ref>`);let y=t.kvStorageForRef($);return{readIndex(){return y.read("_index")},writeIndex(p){y.write("_index",p)},readCard(p){return y.read(p)},writeCard(p,P){return y.write(p,P),t.hashFn(P)},removeCard(p){y.delete(p)},cardExists(p){return y.read(p)!==null},defaultCardKey(p){return p}}}let n=()=>hd(a(),t.onWarn??(()=>{})),s=()=>{let $=r().readScratchStoreRef();return $?t.scratchStorageForRef($):t.scratchStorage()};function o($,y){let p=t.validateSchema(y),P=[],j=r().readTaskExecutorRef();if(j&&Array.isArray(y.source_defs))for(let I of y.source_defs){let q=typeof I.bindTo=="string"?I.bindTo:"(unknown)";try{let V;try{V=t.invokeExecutorSync(j,"validate-source-def",[],{timeout:t.executorTimeouts?.validationMs??1e4,input:JSON.stringify(I)})}catch(F){let U=F;if(V=typeof U?.stdout=="string"?U.stdout:"",!V.trim()){P.push(`source "${q}": executor validate-source-def failed \u2014 ${F instanceof Error?F.message:String(F)}`);continue}}let H=JSON.parse(V.trim());if(!H.ok&&Array.isArray(H.errors))for(let F of H.errors)P.push(`source "${q}": ${F}`)}catch(V){P.push(`source "${q}": executor validate-source-def failed \u2014 ${V instanceof Error?V.message:String(V)}`)}}let x=[...p.errors,...P];return ve({cardId:$,isValid:x.length===0,issues:x})}function u($,y){let p=r().readTaskExecutorRef();if(!p)throw new Error("No task-executor registered for this board");let P=typeof $.bindTo=="string"?$.bindTo:"source",j=s(),x={...$,boardDir:e.value,_projections:y},I=j.create(JSON.stringify(x,null,2),`probe-in-${P}`,".json"),q=j.getUniqueKey(`probe-out-${P}`,".json"),V=j.getUniqueKey(`probe-err-${P}`,".txt"),H=He(j.keyRef(I)),F=He(j.keyRef(q)),U=He(j.keyRef(V)),G=null;try{if(t.invokeExecutorSync(p,"run-source-fetch",["--in-ref",H,"--out-ref",F,"--err-ref",U],{timeout:$.timeout??t.executorTimeouts?.probeMs??6e4}),G=j.read(q),G===null)throw new Error("Executor produced no output file")}catch(re){let B=j.read(V)?.trim()??(re instanceof Error?re.message:String(re));throw new Error(`Probe failed: ${B}`)}finally{try{j.remove(I)}catch{}try{j.remove(V)}catch{}}return{bindTo:P,result:G}}function i($,y,p){let P;try{P=u($,y)}catch(j){return ae(j instanceof Error?j.message:String(j))}if(p){let j=$t(p);t.absoluteBlob.write(j.value,P.result)}return ve({bindTo:P.bindTo,resultSizeBytes:P.result.length})}function c($,y){let p=$.params?.sourceIdx,P=$.params?.outRef;if(p===void 0)return ae(`${y} requires params.sourceIdx`);if(!$.body||typeof $.body!="object"||Array.isArray($.body))return ae(`${y} requires card JSON object in body`);let j=$.body,x=j["card-content"]??j,I=j["mock-projections"]??{},q=x.source_defs??[];if(p<0||p>=q.length)return ae(`sourceIdx ${p} out of range (card has ${q.length} source(s))`);let V=q[p],H=typeof V.bindTo=="string"?V.bindTo:"source";return{src:V,bindTo:H,outRef:P,mockProjections:I}}function l($){try{let y=$.params?.cardId,p=$.params?.all;if(!y&&!p)return ae("validateCard requires --card-id <id> or --all");let P=p?n().readAllCards().map(x=>x.id):[y],j=[];for(let x of P){let I=n().readCard(x);if(!I){j.push({cardId:x,isValid:!1,issues:[`Card "${x}" not found`]});continue}let q=o(x,I);if(q.status!=="success")return q;j.push(q.data)}return ve(j)}catch(y){return _e(y)}}function d($){try{if(!$.body||typeof $.body!="object"||Array.isArray($.body))return ae("validateCardPreflight requires card JSON object in body");let y=$.body,p=y["card-content"]??y,P=typeof p.id=="string"?p.id:"(unknown)",j=o(P,p),x=r().readTaskExecutorRef();if(x)try{let I=t.invokeExecutorSync(x,"validate-card-preflight",[],{timeout:t.executorTimeouts?.validationMs??1e4,input:JSON.stringify(p)}),q=JSON.parse(I.trim());if(!q.ok&&Array.isArray(q.errors)&&q.errors.length>0){let V=[...j.status==="success"?j.data.issues:[],...q.errors];return ve({cardId:P,isValid:!1,issues:V})}}catch{}return j}catch(y){return _e(y)}}function b($){try{let y=$.params?.cardId,p=$.params?.sourceIdx,P=$.params?.outRef;if(!y)return ae("probeSource requires params.cardId");if(p===void 0)return ae("probeSource requires params.sourceIdx");let j=($.body??{})["mock-projections"]??{},x=n().readCard(y);if(!x)return ae(`Card "${y}" not found`);let I=x.source_defs??[];return p<0||p>=I.length?ae(`sourceIdx ${p} out of range (card has ${I.length} source(s))`):i(I[p],j,P)}catch(y){return _e(y)}}function w($){try{let y=$.params?.outRef,p=$.body;if(!p)return ae('probeTmpSource requires body with "source-def" and "mock-projections"');let P=p["source-def"],j=p["mock-projections"]??{};return P?i(P,j,y):ae('probeTmpSource body requires "source-def"')}catch(y){return _e(y)}}function m($){try{let y=c($,"probeSourcePreflight");if("status"in y)return y;let p=r().readTaskExecutorRef();if(!p)return ae("No task-executor registered for this board");try{let P={...y.src,_projections:y.mockProjections},j=t.invokeExecutorSync(p,"probe-source-preflight",[],{timeout:y.src.timeout??t.executorTimeouts?.preflightMs??6e4,input:JSON.stringify(P)}),x=JSON.parse(j.trim());return x.ok?ve({bindTo:y.bindTo,reachable:x.reachable,latencyMs:x.latencyMs,note:x.note}):ae(x.error??"Preflight probe failed")}catch{return ae("Executor does not support probe-source-preflight")}}catch(y){return _e(y)}}function v($){try{let y=c($,"runSourcePreflight");if("status"in y)return y;let p=r().readTaskExecutorRef();if(p)try{let I={...y.src,_projections:y.mockProjections},q=t.invokeExecutorSync(p,"run-source-preflight",[],{timeout:y.src.timeout??t.executorTimeouts?.preflightMs??6e4,input:JSON.stringify(I)}),V=JSON.parse(q.trim());return V.ok?ve({bindTo:V.bindTo??y.bindTo,reachable:V.reachable,latencyMs:V.latencyMs,kind:V.kind,resultValue:V.resultValue,note:V.note}):ae(V.error??"Source preflight failed")}catch{}let P=Date.now(),j=u(y.src,y.mockProjections);if(y.outRef){let I=$t(y.outRef);t.absoluteBlob.write(I.value,j.result)}let x=j.result;try{x=JSON.parse(j.result)}catch{}return ve({bindTo:j.bindTo,reachable:!0,latencyMs:Date.now()-P,resultValue:x,note:"Actual fetch preflight passed"})}catch(y){return _e(y)}}function h($){try{let y=r().readTaskExecutorRef();if(!y)return ae("No task-executor registered for this board");let p=t.invokeExecutorSync(y,"describe-capabilities",[],{timeout:t.executorTimeouts?.describeMs??1e4});return ve(JSON.parse(p.trim()))}catch(y){return _e(y)}}function f($){try{let y=$.body;if(!y||!Array.isArray(y.ops))return ae("updatesInCardStore requires body.ops array");let p=y.ops,P=n();for(let j of p){let x=j.op,I=j.id;if(!I)return ae('op is missing "id"');if(x==="update"){let q=j["card-content"];if(!q)return ae(`update op for "${I}" is missing "card-content"`);P.writeCard(I,q)}else return ae(`Unknown op type: "${x??"(none)"}"`)}return ve()}catch(y){return _e(y)}}function _($){try{let y=$.body;if(!y||!Array.isArray(y.ids))return ae("readFromCardStore requires body.ids array");let p=y.ids,P=n(),j=p.map(x=>({id:x,"card-content":P.readCard(x)}));return ve({cards:j})}catch(y){return _e(y)}}function g($){try{if(!$.body||typeof $.body!="object"||Array.isArray($.body))return ae("evalCardCompute requires a JSON object in body");let y=$.body,p=y["card-content"]??y,P=typeof p.id=="string"?p.id:"(unknown)",j=y["mock-fetched-sources"]??{},x=y["mock-requires"]??{},I=p.compute;if(!I||!Array.isArray(I)||I.length===0)return ve({cardId:P,ok:!0,computed_values:{},errors:[]});let q={id:P,card_data:p.card_data??{},requires:x,source_defs:p.source_defs,compute:I},V=Cr.runSync(q,{sourcesData:j}),H=V.node.computed_values??{},F=V.errors??[];return ve({cardId:P,ok:F.length===0,computed_values:H,errors:F})}catch(y){return _e(y)}}function E($){try{if(!$.body||typeof $.body!="object"||Array.isArray($.body))return ae("simulateCardCycle requires a JSON object in body");let y=$.body,p=y["card-content"]??y,P=typeof p.id=="string"?p.id:"(unknown)",j=y["mock-fetched-sources"]??{},x=y["mock-requires"]??{},I=o(P,p),q=I.status==="success"?{isValid:I.data.isValid,issues:I.data.issues}:{isValid:!1,issues:[I.status==="fail"?I.error:"internal error"]},V=p.source_defs??[],H=p.card_data??{},F=[],U=[];if(V.length>0){F=Cr.enrichSourcesSync(V,{card_data:H,requires:x});for(let k of F){let N=k.projections,A=k._projections;if(N&&A){for(let K of Object.keys(N))if(A[K]===void 0){let W=typeof k.bindTo=="string"?k.bindTo:"(unknown)";U.push({bindTo:W,key:K,error:`Projection "${K}" resolved to undefined`})}}}}let G=[],re=y["task-executor-ref"],B=(re?.howToRun&&re?.whatToRun?re:void 0)??r().readTaskExecutorRef();for(let k=0;k<F.length;k++){let N=F[k],A=typeof N.bindTo=="string"?N.bindTo:`source_${k}`;if(!B){G.push({bindTo:A,skipped:!0,error:"No task executor configured"});continue}try{let K={...N},W=t.invokeExecutorSync(B,"run-source-preflight",[],{timeout:N.timeout??t.executorTimeouts?.preflightMs??6e4,input:JSON.stringify(K)}),Y=JSON.parse(W.trim());G.push({bindTo:A,reachable:Y.reachable,latencyMs:Y.latencyMs,error:Y.ok?void 0:Y.error})}catch{G.push({bindTo:A,skipped:!0,error:"Executor does not support run-source-preflight"})}}let T=p.compute,R={},z=[];if(T&&Array.isArray(T)&&T.length>0){let k={id:P,card_data:H,requires:x,source_defs:p.source_defs,compute:T},N=Cr.runSync(k,{sourcesData:j});R=N.node.computed_values??{},z=N.errors??[]}let S=q.isValid&&U.length===0&&z.length===0&&G.every(k=>k.reachable!==!1);return ve({cardId:P,ok:S,validation:q,source_probes:G,projection_errors:U,computed_values:R,compute_errors:z})}catch(y){return _e(y)}}return{validateCard:l,validateCardPreflight:d,probeSource:b,probeTmpSource:w,probeSourcePreflight:m,runSourcePreflight:v,evalCardCompute:g,simulateCardCycle:E,describeTaskExecutorCapabilities:h,updatesInCardStore:f,readFromCardStore:_}}var M_=".board.lock";function F_(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function V_(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function _d(e){if(e)return e;let t=ad(import.meta.url),r=[t,Nt(t,"..","cli","node"),Nt(t,"..","..","cli","node")];for(let a of r)try{return od(a),a}catch{}throw new Error(`createFsBoardPlatformAdapter: could not resolve a public CLI directory from module dir ${t}`)}function $n(e,t,r){let{cliDir:a,opts:n}=F_(t,r),s=_d(a),o=e.value,u={meta:"board-live-cards",howToRun:"local-node",whatToRun:!n?.suppressSpawn&&od(s)?He({kind:"yaml-flow-cli",value:"board-live-cards-cli.js"}):"",...n?.notifyChannel?{extra:{notifyChannel:n.notifyChannel}}:{}};return{kvStorage:i=>Nl(Nt(o,`.${i}`)),blobStorage:i=>_n(i?Nt(o,i):o),scratchStorage:()=>Mo(Nt(o,".tmp")),scratchStorageForRef:i=>Mo($t(i).value),archiveFactory:()=>Fo(Nt(o,"archive")),archiveFactoryForRef:i=>Fo($t(i).value),journalAdapter:()=>O0(o),lock:N0(Nt(o,M_)),selfRef:u,async dispatchExecution(i,c){if(n?.suppressSpawn)return{dispatched:!1};try{let l=c.source_def?.bindTo??kl().slice(0,8),d=Mo(Nt(o,".tmp")),b=d.create(JSON.stringify(c,null,2),`exec-in-${l}`,".json"),w=d.getUniqueKey(`exec-out-${l}`,".json"),m=d.getUniqueKey(`exec-err-${l}`,".txt"),v=He(d.keyRef(b)),h=He(d.keyRef(w)),f=He(d.keyRef(m));return _0(i,{subcommand:"run-source-fetch",inRef:v,outRef:h,errRef:f},s),{dispatched:!0}}catch(l){let d=l instanceof Error?l.message:String(l);try{let b=Fo(Nt(o,"archive")),w=new Date().toISOString().replace(/[:.]/g,"-"),m=c.source_def?.bindTo??"unknown";b.blob("exec-failures").write(`${w}-${m}.json`,JSON.stringify({error:d,args:c,ref:i,at:new Date().toISOString()},null,2))}catch{}return{dispatched:!1,error:d}}},resolveBlob(i){let c=Xv(i.value)?ud().read(i.value):_n(o).read(i.value);if(c===null)throw new Error(`resolveBlob: blob not found: ::${i.kind}::${i.value}`);return c},hashFn:j0,genId:()=>e0(`${Date.now()}-${Math.random()}`).slice(0,32),kvStorageForRef:i=>Nl($t(i).value),requestProcessAccumulated(){n?.suppressSpawn||n0(s,e,n?.notifyChannel)},publishBoardChangeNotifications(i){if(!n?.notifyChannel||i.length===0)return;let c=i.map(l=>({id:kl(),ts:new Date().toISOString(),boardRef:He(e),notification:l}));o0(n.notifyChannel,c,n.onWarn)},onWarn:n?.onWarn}}function ur(e,t,r){let{cliDir:a,opts:n}=V_(t,r),s=_d(a),o=$n(e,s,n),u=i0();return{...o,invokeExecutorSync(i,c,l,d){let{command:b,baseArgs:w}=g0(i,s),m=i.extra?["--extra",Buffer.from(JSON.stringify(i.extra)).toString("base64")]:[];return u.executeSync(b,[...w,c,...l,...m],{timeout:d?.timeout??3e4,encoding:"utf-8",input:d?.input})},validateSchema(i){let c=F0(i);return{ok:c.errors.length===0,errors:c.errors}},absoluteBlob:ud()}}function Hl(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString());return typeof t.br=="string"?t.br:null}catch{return null}}var _t=ad(import.meta.url);function De(e,t,r){let a=e.indexOf(t),n=a!==-1?e[a+1]:void 0;if(!n)throw new Error(`Missing ${t}
|
|
28
|
+
`,"utf-8")},generateId(){return Qe()}}}function N0(e){return{tryAcquire(){try{if(!M.existsSync(e)){M.mkdirSync(Z.dirname(e),{recursive:!0});try{M.writeFileSync(e,"{}",{flag:"wx"})}catch{}}return(0,Bl.lockSync)(e,{retries:0})}catch{return null}}}}var T0={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://nsreehari.github.io/boards/live-cards.schema.json",definitions:{bind_ref:{description:"A card data path reference, e.g. 'card_data.raw_quotes' or 'requires.upstream'",type:"string",pattern:"^(card_data|requires|fetched_sources|computed_values)(\\.|$)"},bind_or_literal:{description:"A literal value or a bind reference object",oneOf:[{type:"string"},{type:"number"},{type:"boolean"},{type:"array"},{type:"object",properties:{bind:{$ref:"#/definitions/bind_ref"}},required:["bind"]}]},compute_expr:{description:"A declarative JSON compute expression",type:"object",required:["fn"],properties:{fn:{type:"string",description:"Function name from the built-in vocabulary",enum:["sum","avg","min","max","count","first","last","add","sub","mul","div","round","abs","mod","gt","gte","lt","lte","eq","neq","if","and","or","not","concat","upper","lower","template","filter","pluck","map","sort","slice","flat","unique","group","get","default","now","diff_days","format_date"]},input:{description:"card_data.path, literal, array of inputs, or nested compute_expr",oneOf:[{type:"string"},{type:"number"},{type:"boolean"},{type:"array"},{$ref:"#/definitions/compute_expr"}]},field:{type:"string",description:"For pluck/sum/group \u2014 the object key to extract"},where:{$ref:"#/definitions/compute_expr",description:"For filter \u2014 predicate expression ($ = current item)"},cond:{$ref:"#/definitions/compute_expr",description:"For if \u2014 condition expression"},then:{description:"For if \u2014 value when cond is truthy"},else:{description:"For if \u2014 value when cond is falsy"},format:{type:"string",description:"For format_date \u2014 date format string"}}},meta:{type:"object",properties:{title:{type:"string"},tags:{type:"array",items:{type:"string"}}}},requires:{type:"array",items:{type:"string"},description:"IDs of upstream nodes this node depends on"},provides:{type:"array",items:{type:"object",required:["bindTo","ref"],properties:{bindTo:{type:"string",description:"Token name published downstream"},ref:{type:"string",description:"Path to read value from (card_data.*, requires.*, fetched_sources.*, computed_values.*)"}}},description:"Explicit bindings exposing computed or card_data values downstream as named tokens"},compute_step:{description:"A single ordered compute step: reads card_data.*/requires.*/computed_values.*, writes to computed_values[bindTo]",type:"object",required:["bindTo","expr"],properties:{bindTo:{type:"string",description:"Key in computed_values to write result"},expr:{type:"string",description:"JSONata expression evaluated against { card_data, requires, fetched_sources, computed_values }"}}},source_def:{description:"One source entry. The engine requires 'bindTo' (compute namespace key) and 'outputFile' (delivery signal path). bindTo and outputFile must be unique across all source_defs in a card. Every other property is yours \u2014 add whatever your task-executor needs: kind, url, headers, mailbox, channel, model, query, etc. The full object is passed verbatim as the --in JSON to the executor.",type:"object",required:["bindTo","outputFile"],additionalProperties:!0,properties:{bindTo:{type:"string",description:"Key under fetched_sources.* available in compute expressions"},outputFile:{type:"string",description:"Board-relative path the executor writes its JSON result to. Presence of this file signals delivery."},projections:{type:"object",description:"Named data projections from card_data or requires, evaluated before the executor is called. Each key is a ref name; each value is a JSONata expression rooted at card_data or requires. The resolved values are passed to the executor as _projections. fetched_sources, computed_values, and source_defs are not accessible here \u2014 sources run before those exist.",additionalProperties:{type:"string"}},optionalForCompletionGating:{type:"boolean",default:!1,description:"When true this source does not gate card completion. Default false when absent, so source_defs are completion-gating by default."},timeout:{type:"integer",minimum:0,default:12e4,description:"Executor/script timeout in ms. Default: 120 000 (2 min)."},script:{type:"string",description:"Legacy direct-run: shell command executed when no .task-executor is registered. stdout is captured as the result."}}},render_element:{type:"object",required:["kind"],properties:{id:{type:"string",description:"Optional element ID for targeted updates"},kind:{enum:["metric","table","editable-table","chart","form","filter","list","notes","todo","alert","narrative","badge","text","markdown","ref","custom","actions"]},label:{type:"string",description:"Heading above this element"},className:{type:"string",description:"Bootstrap grid class, e.g. 'col-12 col-md-6'"},visible:{type:"string",description:"card_data/requires/fetched_sources/computed_values path \u2014 element shown only if truthy"},data:{type:"object",properties:{bind:{$ref:"#/definitions/bind_ref",description:"card_data/requires/fetched_sources/computed_values path to read data from"},writeTo:{$ref:"#/definitions/bind_ref",description:"card_data path for user input (form, filter, todo, notes)"},columns:{type:"array",items:{type:"string"},description:"table: visible columns"},maxRows:{type:"integer",description:"table/list: max rows to display"},sortable:{type:"boolean",default:!0,description:"table: enable click-to-sort"},placeholder:{type:"string",description:"Empty-state message"},chartType:{enum:["bar","line","pie","doughnut"]},chartOptions:{type:"object",description:"Chart.js options passthrough"},fields:{type:"object",description:"JSON Schema for form/filter fields"},thresholds:{type:"object",properties:{green:{type:"string"},amber:{type:"string"}}},colorMap:{type:"object",description:"badge: value \u2192 Bootstrap color"},style:{enum:["heading","muted","default"],description:"text: display style"},upload:{type:"boolean",default:!0,description:"file-upload: show drop zone (false = read-only file list)"},accept:{type:"array",items:{type:"string"},description:"file-upload: allowed extensions"},multiple:{type:"boolean",default:!0,description:"file-upload: allow multiple files"},fileAttach:{type:"boolean",default:!1,description:"chat: enable inline file attachments"},fileAccept:{type:"array",items:{type:"string"},description:"chat: allowed attachment extensions"},buttons:{type:"array",description:"actions: button definitions",items:{type:"object",required:["id","label"],properties:{id:{type:"string"},label:{type:"string"},style:{type:"string",description:"Bootstrap button variant, e.g. 'success', 'outline-danger'"},size:{type:"string",default:"sm"},disabled:{oneOf:[{type:"boolean"},{type:"string",description:"card_data/requires/fetched_sources/computed_values path \u2014 truthy = disabled"}]}}}}}}}},view:{type:"object",required:["elements"],properties:{elements:{type:"array",minItems:1,items:{$ref:"#/definitions/render_element"}},layout:{type:"object",properties:{board:{type:"object",properties:{col:{type:"integer",minimum:1,maximum:12},order:{type:"integer"}}},canvas:{type:"object",properties:{x:{type:"number"},y:{type:"number"},w:{type:"number"},h:{type:"number"}}}}},features:{type:"object",properties:{chat:{type:"boolean",default:!1},notes:{type:"boolean",default:!1},refresh:{type:"boolean",default:!0}}}}}},title:"LiveCard",description:"A unified card node. Behavior depends on which sections are present (source_defs, compute, view, etc.)",type:"object",required:["id"],additionalProperties:!1,properties:{id:{type:"string"},requires:{$ref:"#/definitions/requires"},provides:{$ref:"#/definitions/provides"},meta:{$ref:"#/definitions/meta"},view:{$ref:"#/definitions/view"},card_data:{type:"object",description:"Authored card data and runtime metadata. Includes uploaded-file metadata maintained by host handlers and inference evaluation results.",properties:{files:{type:"array",description:"Optional uploaded-file metadata maintained by host handlers. Stored name is normalized and serial-prefixed (for example 001-my_file.pdf).",items:{type:"object",required:["name","stored_name"],properties:{name:{type:"string",minLength:1},stored_name:{type:"string",minLength:5,maxLength:32,pattern:"^[0-9]{3,}-[a-z0-9._-]+$"},size:{oneOf:[{type:"integer",minimum:0},{type:"null"}]},mime_type:{type:"string"},path:{type:"string",pattern:"^[^\\s]+/files/[0-9]{3,}-[a-z0-9._-]+$"},uploaded_at:{type:"string",format:"date-time"},chat:{type:"boolean",description:"Whether this file entry is associated with a chat interaction"}},additionalProperties:!1}}},additionalProperties:!0},source_defs:{type:"array",description:"Source entries. Each entry is passed verbatim to the board's .task-executor (registered via init --task-executor) as the --in JSON file. The executor fetches/generates the data and writes JSON to --out. If no executor is registered, the built-in executor runs the entry's 'cli' command directly. Sources gate completion by default. Set optionalForCompletionGating: true for enrichment-only source_defs that should not block task-completed.",items:{$ref:"#/definitions/source_def"}},compute:{type:"array",description:"Ordered array of compute steps. Each reads card_data.*/requires.*/fetched_sources.*/computed_values.* and writes to ephemeral computed_values[bindTo].",items:{$ref:"#/definitions/compute_step"}}}},x0=rv(Wv()),I0=kn(import.meta.url),C0=I0("./jsonata-sync.cjs"),mn=null,Tl=/\b(card_data|requires|fetched_sources|computed_values|source_defs)\b/g,R0=/^\s*(card_data|requires|fetched_sources|computed_values|source_defs)(\.|$)/;function q0(e){let t=new Set,r;for(Tl.lastIndex=0;(r=Tl.exec(e))!==null;)t.add(r[1]);return t}function cd(e){let t=R0.exec(e);return t?t[1]:null}function xl(e,t,r,a){try{C0(e)}catch(s){let o=s instanceof Error?s.message:String(s);a.push(`${t}: invalid JSONata expression (${o})`);return}let n=q0(e);for(let s of n)r.has(s)||a.push(`${t}: disallowed namespace "${s}" in expression`)}function Ko(e,t,r){if(Array.isArray(e)){e.forEach((n,s)=>{Ko(n,`${t}/${s}`,r)});return}if(typeof e=="string"){let n=cd(e);if(!n)return;new Set(["card_data","requires","computed_values"]).has(n)||r.push(`${t}: disallowed namespace "${n}" in view reference`);return}if(!e||typeof e!="object")return;let a=e;for(let[n,s]of Object.entries(a))Ko(s,`${t}/${n}`,r)}function A0(){if(mn)return mn;let e=new x0.default({allErrors:!0});return(0,Jl.default)(e),mn=e.compile(T0),mn}function D0(e){let t=A0(),r=t(e),a=(t.errors??[]).map(n=>`${n.instancePath||"/"}: ${n.message??"unknown error"}`);if(e&&typeof e=="object"&&!Array.isArray(e)){let n=e.source_defs;if(Array.isArray(n)){let s=new Set,o=new Set;n.forEach((u,i)=>{if(!u||typeof u!="object"||Array.isArray(u))return;let c=u;typeof c.bindTo=="string"&&c.bindTo&&(s.has(c.bindTo)&&a.push(`/source_defs/${i}/bindTo: bindTo "${c.bindTo}" must be unique across all source_defs`),s.add(c.bindTo)),typeof c.outputFile=="string"&&c.outputFile&&(o.has(c.outputFile)&&a.push(`/source_defs/${i}/outputFile: outputFile "${c.outputFile}" must be unique across all source_defs`),o.add(c.outputFile))})}}return!r||a.length>0?{ok:!1,errors:a}:{ok:!0,errors:[]}}function M0(e){let t=[];if(!e||typeof e!="object"||Array.isArray(e))return{ok:!0,errors:[]};let r=e,a=r.compute;Array.isArray(a)&&a.forEach((c,l)=>{if(!c||typeof c!="object"||Array.isArray(c))return;let d=c.expr;typeof d!="string"||d.trim().length===0||xl(d,`/compute/${l}/expr`,new Set(["card_data","requires","fetched_sources","computed_values"]),t)});let n=new Set(["card_data","requires","fetched_sources","computed_values"]),s=r.provides;Array.isArray(s)&&s.forEach((c,l)=>{if(!c||typeof c!="object"||Array.isArray(c))return;let d=c.ref;if(typeof d!="string"||d.trim().length===0)return;let b=cd(d);b===null?t.push(`/provides/${l}/ref: path "${d}" must start with a valid namespace (${[...n].join(", ")})`):n.has(b)||t.push(`/provides/${l}/ref: disallowed namespace "${b}" in path "${d}" (valid: ${[...n].join(", ")})`)});let o=r.view;o&&typeof o=="object"&&!Array.isArray(o)&&Ko(o,"/view",t);let u=new Set(["card_data","requires"]),i=r.source_defs;return Array.isArray(i)&&i.forEach((c,l)=>{if(!c||typeof c!="object"||Array.isArray(c))return;let d=c.projections;if(!(!d||typeof d!="object"||Array.isArray(d)))for(let[b,w]of Object.entries(d))typeof w!="string"||w.trim().length===0||xl(w,`/source_defs/${l}/projections/${b}`,u,t)}),{ok:t.length===0,errors:t}}function F0(e){let t=D0(e);if(!t.ok)return t;let r=M0(e);return r.ok?{ok:!0,errors:[]}:{ok:!1,errors:r.errors}}var Ir={RUNNING:"running",COMPLETED:"completed",FAILED:"failed",INACTIVATED:"inactivated"};function wt(e){return e?Array.isArray(e.provides)?e.provides:[]:[]}function ma(e){return e?Array.isArray(e.requires)?e.requires:[]:[]}function V0(e){return e.tasks??{}}function Il(e){return e?e.status===Ir.FAILED||e.status===Ir.INACTIVATED:!1}function z0(e,t){return e.refreshStrategy??t?.refreshStrategy??"data-changed"}function U0(e){return e.maxExecutions}function H0(e,t){let r=new Set;for(let[a,n]of Object.entries(t))if(n.status===Ir.COMPLETED){let s=e.tasks[a];s&&wt(s).forEach(o=>r.add(o))}return Array.from(r)}function L0(e,t){let r={};return e.forEach(a=>{let n=t[a];n&&wt(n).forEach(s=>{r[s]||(r[s]=[]),r[s].push(a)})}),r}function K0(e,t,r){let a=e.tasks[t]??Nn(),n={};if(r){let o=r.tasks[t],u=ma(o);for(let i of u)for(let[c,l]of Object.entries(r.tasks))if(wt(l).includes(i)){let d=e.tasks[c];d?.lastDataHash&&(n[i]=d.lastDataHash);break}}let s={...a,status:"running",startedAt:new Date().toISOString(),lastUpdated:new Date().toISOString(),progress:0,error:void 0,startConsumedHashes:n};return{...e,tasks:{...e.tasks,[t]:s},lastUpdated:new Date().toISOString()}}function G0(e,t,r,a,n,s){let o=e.tasks[r]??Nn(),u=t.tasks[r];if(!u)throw new Error(`Task "${r}" not found in graph`);let i;a&&u.on&&u.on[a]?i=u.on[a]:i=wt(u);let c=o.startConsumedHashes?{...o.startConsumedHashes}:{...o.lastConsumedHashes};if(!o.startConsumedHashes){let b=u.requires??[];for(let w of b)for(let[m,v]of Object.entries(t.tasks))if(wt(v).includes(w)){let h=e.tasks[m];h?.lastDataHash&&(c[w]=h.lastDataHash);break}}let l={...o,status:"completed",completedAt:new Date().toISOString(),lastUpdated:new Date().toISOString(),executionCount:o.executionCount+1,lastEpoch:o.executionCount+1,lastDataHash:n,data:s,lastConsumedHashes:c,error:void 0},d=[...new Set([...e.availableOutputs,...i])];return{...e,tasks:{...e.tasks,[r]:l},availableOutputs:d,lastUpdated:new Date().toISOString()}}function B0(e,t,r,a){let n=e.tasks[r]??Nn(),s=t.tasks[r];if(s?.retry){let i=n.retryCount+1;if(i<=s.retry.max_attempts){let c={...n,status:"not-started",retryCount:i,lastUpdated:new Date().toISOString(),error:a};return{...e,tasks:{...e.tasks,[r]:c},lastUpdated:new Date().toISOString()}}}let o={...n,status:"failed",failedAt:new Date().toISOString(),lastUpdated:new Date().toISOString(),error:a,executionCount:n.executionCount+1},u=e.availableOutputs;if(s?.on_failure&&s.on_failure.length>0&&(u=[...new Set([...e.availableOutputs,...s.on_failure])]),s?.circuit_breaker&&o.executionCount>=s.circuit_breaker.max_executions){let i=s.circuit_breaker.on_break;u=[...new Set([...u,...i])]}return{...e,tasks:{...e.tasks,[r]:o},availableOutputs:u,lastUpdated:new Date().toISOString()}}function J0(e,t,r,a){let n=e.tasks[t]??Nn(),s={...n,progress:typeof a=="number"?a:n.progress,messages:[...n.messages??[],...r?[{message:r,timestamp:new Date().toISOString(),status:n.status}]:[]],lastUpdated:new Date().toISOString()};return{...e,tasks:{...e.tasks,[t]:s},lastUpdated:new Date().toISOString()}}function W0(e,t){let r=e.tasks[t];if(!r)return e;let a={...r,status:"not-started",startedAt:void 0,completedAt:void 0,failedAt:void 0,error:void 0,data:void 0,progress:null,lastUpdated:new Date().toISOString()};return{...e,tasks:{...e.tasks,[t]:a},lastUpdated:new Date().toISOString()}}function Nn(){return{status:"not-started",executionCount:0,retryCount:0,lastEpoch:0,messages:[],progress:null}}function ld(e,t){let r=`live-${Date.now()}`,a={};for(let s of Object.keys(e.tasks))a[s]=dd();let n={status:"running",tasks:a,availableOutputs:[],stuckDetection:{is_stuck:!1,stuck_description:null,outputs_unresolvable:[],tasks_blocked:[]},lastUpdated:new Date().toISOString(),executionId:r,executionConfig:{executionMode:e.settings.execution_mode??"eligibility-mode",conflictStrategy:e.settings.conflict_strategy??"alphabetical",completionStrategy:e.settings.completion}};return{config:e,state:n}}function Y0(e,t){let{config:r,state:a}=e;if("executionId"in t&&t.executionId&&t.executionId!==a.executionId)return e;switch(t.type){case"task-started":return{config:r,state:K0(a,t.taskName,r)};case"task-completed":return{config:r,state:G0(a,r,t.taskName,t.result,t.dataHash,t.data)};case"task-failed":return{config:r,state:B0(a,r,t.taskName,t.error)};case"task-progress":return{config:r,state:J0(a,t.taskName,t.message,t.progress)};case"task-restart":return{config:r,state:W0(a,t.taskName)};case"inject-tokens":return{config:r,state:{...a,availableOutputs:[...new Set([...a.availableOutputs,...t.tokens])],lastUpdated:new Date().toISOString()}};case"agent-action":return{config:r,state:n_(a,t.action)};case"task-upsert":return Q0(e,t.taskName,t.taskConfig);case"task-removal":return X0(e,t.taskName);case"node-requires-add":return e_(e,t.nodeName,t.tokens);case"node-requires-remove":return t_(e,t.nodeName,t.tokens);case"node-provides-add":return r_(e,t.nodeName,t.tokens);case"node-provides-remove":return a_(e,t.nodeName,t.tokens);default:return e}}function Z0(e,t){return t.reduce((r,a)=>Y0(r,a),e)}function Q0(e,t,r){let a=!!e.config.tasks[t];return{config:{...e.config,tasks:{...e.config.tasks,[t]:r}},state:{...e.state,tasks:{...e.state.tasks,[t]:a?e.state.tasks[t]:dd()},lastUpdated:new Date().toISOString()}}}function X0(e,t){if(!e.config.tasks[t])return e;let{[t]:r,...a}=e.config.tasks,{[t]:n,...s}=e.state.tasks;return{config:{...e.config,tasks:a},state:{...e.state,tasks:s,lastUpdated:new Date().toISOString()}}}function e_(e,t,r){let a=e.config.tasks[t];if(!a)return e;let n=ma(a),s=r.filter(o=>!n.includes(o));return s.length===0?e:{config:{...e.config,tasks:{...e.config.tasks,[t]:{...a,requires:[...n,...s]}}},state:e.state}}function t_(e,t,r){let a=e.config.tasks[t];if(!a)return e;let n=ma(a),s=n.filter(o=>!r.includes(o));return s.length===n.length?e:{config:{...e.config,tasks:{...e.config.tasks,[t]:{...a,requires:s}}},state:e.state}}function r_(e,t,r){let a=e.config.tasks[t];if(!a)return e;let n=wt(a),s=r.filter(o=>!n.includes(o));return s.length===0?e:{config:{...e.config,tasks:{...e.config.tasks,[t]:{...a,provides:[...n,...s]}}},state:e.state}}function a_(e,t,r){let a=e.config.tasks[t];if(!a)return e;let n=wt(a),s=n.filter(o=>!r.includes(o));return s.length===n.length?e:{config:{...e.config,tasks:{...e.config.tasks,[t]:{...a,provides:s}}},state:e.state}}function Go(e){return{version:1,config:e.config,state:e.state,snapshotAt:new Date().toISOString()}}function Vo(e){if(!e||typeof e!="object")throw new Error("Invalid snapshot: expected an object");let t=e;if(!t.config||typeof t.config!="object")throw new Error('Invalid snapshot: missing or invalid "config"');if(!t.state||typeof t.state!="object")throw new Error('Invalid snapshot: missing or invalid "state"');let r=t.config,a=t.state;if(!r.settings||typeof r.settings!="object")throw new Error("Invalid snapshot: config.settings missing");if(!r.tasks||typeof r.tasks!="object")throw new Error("Invalid snapshot: config.tasks missing");if(!a.tasks||typeof a.tasks!="object")throw new Error("Invalid snapshot: state.tasks missing");if(!Array.isArray(a.availableOutputs))throw new Error("Invalid snapshot: state.availableOutputs must be an array");return{config:r,state:a}}function dd(){return{status:"not-started",executionCount:0,retryCount:0,lastEpoch:0,messages:[],progress:null}}function n_(e,t){let r=new Date().toISOString();switch(t){case"stop":return{...e,status:"stopped",lastUpdated:r};case"pause":return{...e,status:"paused",lastUpdated:r};case"resume":return{...e,status:"running",lastUpdated:r};default:return e}}function Bo(e){let{config:t,state:r}=e,a=V0(t);if(Object.keys(a).length===0)return{eligible:[],pending:[],unresolved:[],blocked:[],conflicts:{}};let n=s_(a),s=H0(t,r.tasks),o=new Set([...s,...r.availableOutputs]),u=[],i=[],c=[],l=[];for(let[b,w]of Object.entries(a)){let m=r.tasks[b],v=z0(w,t.settings),h=v!=="once";if(m?.status===Ir.RUNNING||Il(m))continue;let f=U0(w);if(f!==void 0&&m&&m.executionCount>=f||w.circuit_breaker&&m&&m.executionCount>=w.circuit_breaker.max_executions||!h&&m?.status===Ir.COMPLETED)continue;if(h&&m?.status===Ir.COMPLETED){let y=ma(w),p=!1;switch(v){case"data-changed":{y.length>0&&y.some(P=>{for(let[j,x]of Object.entries(a))if(wt(x).includes(P)){let I=r.tasks[j];if(!I)continue;let q=m.lastConsumedHashes?.[P];return I.lastDataHash==null?I.executionCount>m.lastEpoch:I.lastDataHash!==q}return!1})||(p=!0);break}case"epoch-changed":{y.length>0&&y.some(P=>{for(let[j,x]of Object.entries(a))if(wt(x).includes(P)){let I=r.tasks[j];if(I&&I.executionCount>m.lastEpoch)return!0}return!1})||(p=!0);break}case"time-based":{let P=w.refreshInterval??0;if(P<=0){p=!0;break}let j=m.completedAt;if(!j){p=!0;break}(Date.now()-Date.parse(j))/1e3<P&&(p=!0);break}case"manual":p=!0;break}if(p)continue}let _=ma(w);if(_.length===0){u.push(b);continue}let g=[],E=[],$=[];for(let y of _){if(o.has(y))continue;let p=n[y]||[];p.length===0?g.push(y):p.every(P=>Il(r.tasks[P]))?$.push({token:y,failedProducer:p[0]}):E.push(y)}g.length>0?c.push({taskName:b,missingTokens:g}):$.length>0?l.push({taskName:b,failedTokens:$.map(y=>y.token),failedProducers:[...new Set($.map(y=>y.failedProducer))]}):E.length>0?i.push({taskName:b,waitingOn:E}):u.push(b)}let d={};if(u.length>1){let b=L0(u,a);for(let[w,m]of Object.entries(b))m.length>1&&(d[w]=m)}return{eligible:u,pending:i,unresolved:c,blocked:l,conflicts:d}}function s_(e){let t={};for(let[r,a]of Object.entries(e)){for(let n of wt(a))t[n]||(t[n]=[]),t[n].push(r);if(a.on)for(let n of Object.values(a.on))for(let s of n)t[s]||(t[s]=[]),t[s].includes(r)||t[s].push(r);if(a.on_failure)for(let n of a.on_failure)t[n]||(t[n]=[]),t[n].includes(r)||t[n].push(r)}return t}var Cl=class{buffer=[];append(e){this.buffer.push(e)}drain(){let e=this.buffer;return this.buffer=[],e}get size(){return this.buffer.length}};function zo(e){let t=Jo(e);return o_(t)}function Jo(e){if(e==null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return"["+e.map(Jo).join(",")+"]";let t=e;return"{"+Object.keys(t).sort().map(r=>JSON.stringify(r)+":"+Jo(t[r])).join(",")+"}"}function o_(e){let t=0xcbf29ce484222325n,r=0x100000001b3n,a=0xffffffffffffffffn;for(let n=0;n<e.length;n++)t^=BigInt(e.charCodeAt(n)),t=t*r&a;return t.toString(16).padStart(16,"0")}function i_(e){if(typeof Buffer<"u")return Buffer.from(e,"utf8").toString("base64url");if(typeof btoa=="function"){let t=new TextEncoder().encode(e),r="";for(let a of t)r+=String.fromCharCode(a);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}throw new Error("No base64 encoder available in this runtime")}function u_(e){if(typeof Buffer<"u")return Buffer.from(e,"base64url").toString("utf8");if(typeof atob=="function"){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=t+"=".repeat((4-t.length%4)%4),a=atob(r),n=new Uint8Array(a.length);for(let s=0;s<a.length;s++)n[s]=a.charCodeAt(s);return new TextDecoder().decode(n)}throw new Error("No base64 decoder available in this runtime")}function Rl(e){let t=JSON.stringify({t:e,n:Date.now().toString(36)+Math.random().toString(36).slice(2,6)});return i_(t)}function c_(e){try{let t=JSON.parse(u_(e));return typeof t?.t=="string"?{taskName:t.t}:null}catch{return null}}function l_(e,t,r){let{handlers:a,onDrain:n}=t,s=new Cl,o="state"in e&&"config"in e?e:ld(e),u=!1,i=new Set,c=new Map(Object.entries(a)),l=new Cl,d=!1,b=!1;function w(){if(!u){if(d){b=!0;return}d=!0;try{do b=!1,m();while(b)}finally{d=!1}}}function m(){let _=l.drain(),g=s.drain(),E=[..._,...g];E.length>0&&(o=Z0(o,E));let $=Bo(o);E.length>0&&n?.(E,o,$);for(let y of $.eligible)f(y);for(let y of E)if(y.type==="task-progress"){let{taskName:p,update:P}=y;if(!o.config.tasks[p])continue;let j=o.state.tasks[p];if(!j||j.status!=="running")continue;let x=Rl(p),I=h(p,x,P).catch(q=>{u||(l.append({type:"task-failed",taskName:p,error:q.message??String(q),timestamp:new Date().toISOString()}),w())}).finally(()=>{i.delete(I)});i.add(I)}}function v(_){let g=o.config.tasks[_].requires??[],E=new Map;for(let[y,p]of Object.entries(o.config.tasks))for(let P of p.provides??[])E.set(P,y);let $={};for(let y of g){let p=E.get(y);p?$[y]=o.state.tasks[p]?.data:$[y]=void 0}return $}async function h(_,g,E){let $=o.config.tasks[_],y=$.taskHandlers??[],p=v(_);for(let P of y){let j=c.get(P);if(!j)throw new Error(`Handler '${P}' not found in registry (task '${_}')`);let x={nodeId:_,state:p,taskState:o.state.tasks[_],config:$,callbackToken:g,update:E};if(await j(x)==="task-initiate-failure")throw new Error(`Handler '${P}' returned task-initiate-failure (task '${_}')`)}}function f(_){let g=o.config.tasks[_]?.taskHandlers;if(!g||g.length===0)return;l.append({type:"task-started",taskName:_,timestamp:new Date().toISOString()}),w();let E=Rl(_),$=h(_,E).catch(y=>{u||(l.append({type:"task-failed",taskName:_,error:y.message??String(y),timestamp:new Date().toISOString()}),w())}).finally(()=>{i.delete($)});i.add($)}return{push(_){u||(_.type==="task-completed"&&_.data&&!_.dataHash&&(_={..._,dataHash:zo(_.data)}),s.append(_),w())},pushAll(_){if(!u){for(let g of _)g.type==="task-completed"&&g.data&&!g.dataHash?s.append({...g,dataHash:zo(g.data)}):s.append(g);w()}},resolveCallback(_,g,E){if(u)return;let $=c_(_);if(!$)return;let{taskName:y}=$;if(o.config.tasks[y]){if(E&&E.length>0)s.append({type:"task-failed",taskName:y,error:E.join("; "),timestamp:new Date().toISOString()});else{let p=g&&Object.keys(g).length>0?zo(g):void 0;s.append({type:"task-completed",taskName:y,data:g,dataHash:p,timestamp:new Date().toISOString()})}w()}},addNode(_,g){u||(s.append({type:"task-upsert",taskName:_,taskConfig:g,timestamp:new Date().toISOString()}),w())},removeNode(_){u||(s.append({type:"task-removal",taskName:_,timestamp:new Date().toISOString()}),w())},addRequires(_,g){u||(s.append({type:"node-requires-add",nodeName:_,tokens:g,timestamp:new Date().toISOString()}),w())},removeRequires(_,g){u||(s.append({type:"node-requires-remove",nodeName:_,tokens:g,timestamp:new Date().toISOString()}),w())},addProvides(_,g){u||(s.append({type:"node-provides-add",nodeName:_,tokens:g,timestamp:new Date().toISOString()}),w())},removeProvides(_,g){u||(s.append({type:"node-provides-remove",nodeName:_,tokens:g,timestamp:new Date().toISOString()}),w())},registerHandler(_,g){c.set(_,g)},unregisterHandler(_){c.delete(_)},retrigger(_){u||o.config.tasks[_]&&(s.append({type:"task-restart",taskName:_,timestamp:new Date().toISOString()}),w())},retriggerAll(_){if(!u){for(let g of _)o.config.tasks[g]&&s.append({type:"task-restart",taskName:g,timestamp:new Date().toISOString()});w()}},snapshot(){return Go(o)},getState(){return o},getSchedule(){return Bo(o)},async waitForHandlers(){i.size>0&&await Promise.allSettled([...i])},async dispose(_){_?.wait&&i.size>0&&await Promise.allSettled([...i]),u=!0}}}var d_=kn(import.meta.url),Tn=d_("./jsonata-sync.cjs"),fd=Tn;function ql(e,t){if(!t||!e)return;let r=t.split("."),a=e;for(let n=0;n<r.length;n++){if(a==null)return;a=a[r[n]]}return a}function pd(e,t,r){let a=t.split("."),n=e;for(let s=0;s<a.length-1;s++)(n[a[s]]==null||typeof n[a[s]]!="object")&&(n[a[s]]={}),n=n[a[s]];n[a[a.length-1]]=r}async function f_(e,t){if(!e?.compute?.length)return e;e.card_data||(e.card_data={}),e.computed_values={},e._sourcesData=t?.sourcesData??{};let r=e.requires??{},a={card_data:e.card_data,requires:r,expects_data:r,fetched_sources:e._sourcesData,data:e.computed_values,computed_values:e.computed_values};for(let n of e.compute)try{let s=await Tn(n.expr).evaluate(a);pd(e.computed_values,n.bindTo,s),a.computed_values=e.computed_values}catch{}return e}function p_(e,t){if(!e?.compute?.length)return{ok:!0,node:e};e.card_data||(e.card_data={}),e.computed_values={},e._sourcesData=t?.sourcesData??{};let r=e.requires??{},a={card_data:e.card_data,requires:r,expects_data:r,fetched_sources:e._sourcesData,data:e.computed_values,computed_values:e.computed_values},n=[];for(let s of e.compute)try{let o=fd(s.expr).evaluate(a);pd(e.computed_values,s.bindTo,o),a.computed_values=e.computed_values}catch(o){let u=o instanceof Error?o.message:String(o);n.push({bindTo:s.bindTo,error:u})}return n.length>0?{ok:!0,node:e,errors:n}:{ok:!0,node:e}}async function h_(e,t,r){let a={...r??{},card_data:t.card_data??{},requires:t.requires??{},fetched_sources:t._sourcesData??{},computed_values:t.computed_values??{}};return Tn(e).evaluate(a)}function m_(e,t){return t.startsWith("fetched_sources.")?ql(e._sourcesData??{},t.slice(16)):ql(e,t)}var Al=new Set(["metric","table","editable-table","chart","form","filter","list","notes","todo","alert","narrative","badge","text","markdown","ref","custom","actions"]),y_=new Set(["id","meta","requires","provides","view","card_data","compute","source_defs"]);function g_(e){let t=[];if(!e||typeof e!="object"||Array.isArray(e))return{ok:!1,errors:["Node must be a non-null object"]};let r=e;(typeof r.id!="string"||!r.id)&&t.push("id: required, must be a non-empty string");for(let a of Object.keys(r))y_.has(a)||t.push(`Unknown top-level key: "${a}"`);if((r.card_data==null||typeof r.card_data!="object"||Array.isArray(r.card_data))&&t.push("card_data: required, must be an object"),r.meta!=null)if(typeof r.meta!="object"||Array.isArray(r.meta))t.push("meta: must be an object");else{let a=r.meta;a.title!=null&&typeof a.title!="string"&&t.push("meta.title: must be a string"),a.tags!=null&&!Array.isArray(a.tags)&&t.push("meta.tags: must be an array")}if(r.requires!=null&&!Array.isArray(r.requires)&&t.push("requires: must be an array of strings"),r.provides!=null&&(Array.isArray(r.provides)?r.provides.forEach((a,n)=>{if(!a||typeof a!="object"||Array.isArray(a))t.push(`provides[${n}]: must be an object with bindTo and ref`);else{let s=a;(typeof s.bindTo!="string"||!s.bindTo)&&t.push(`provides[${n}]: missing required "bindTo" string`),(typeof s.ref!="string"||!s.ref)&&t.push(`provides[${n}]: missing required "ref" string`)}}):t.push("provides: must be an array of { bindTo, ref } bindings")),r.compute!=null&&(Array.isArray(r.compute)?r.compute.forEach((a,n)=>{if(!a||typeof a!="object"||Array.isArray(a))t.push(`compute[${n}]: must be a compute step object`);else{let s=a;(typeof s.bindTo!="string"||!s.bindTo)&&t.push(`compute[${n}]: missing required "bindTo" property`),(typeof s.expr!="string"||!s.expr)&&t.push(`compute[${n}]: missing required "expr" string (JSONata expression)`)}}):t.push("compute: must be an array of compute steps")),r.source_defs!=null)if(!Array.isArray(r.source_defs))t.push("source_defs: must be an array");else{let a=new Set,n=new Set;r.source_defs.forEach((s,o)=>{if(!s||typeof s!="object"||Array.isArray(s))t.push(`source_defs[${o}]: must be an object`);else{let u=s;typeof u.bindTo!="string"||!u.bindTo?t.push(`source_defs[${o}]: missing required "bindTo" property`):(a.has(u.bindTo)&&t.push(`source_defs[${o}]: bindTo "${u.bindTo}" is not unique across source_defs`),a.add(u.bindTo)),typeof u.outputFile!="string"||!u.outputFile?t.push(`source_defs[${o}]: missing required "outputFile" property`):(n.has(u.outputFile)&&t.push(`source_defs[${o}]: outputFile "${u.outputFile}" is not unique across source_defs`),n.add(u.outputFile)),u.optionalForCompletionGating!=null&&typeof u.optionalForCompletionGating!="boolean"&&t.push(`source_defs[${o}]: optionalForCompletionGating must be a boolean`)}})}if(r.view!=null)if(typeof r.view!="object"||Array.isArray(r.view))t.push("view: must be an object");else{let a=r.view;!Array.isArray(a.elements)||a.elements.length===0?t.push("view.elements: required, must be a non-empty array"):a.elements.forEach((n,s)=>{if(!n||typeof n!="object"){t.push(`view.elements[${s}]: must be an object`);return}!n.kind||typeof n.kind!="string"?t.push(`view.elements[${s}].kind: required, must be a string`):Al.has(n.kind)||t.push(`view.elements[${s}].kind: unknown kind "${n.kind}". Valid: ${[...Al].join(", ")}`),n.data!=null&&(typeof n.data!="object"||Array.isArray(n.data))&&t.push(`view.elements[${s}].data: must be an object`)}),a.layout!=null&&(typeof a.layout!="object"||Array.isArray(a.layout))&&t.push("view.layout: must be an object"),a.features!=null&&(typeof a.features!="object"||Array.isArray(a.features))&&t.push("view.features: must be an object")}return{ok:t.length===0,errors:t}}async function v_(e,t){if(!e||e.length===0)return[];let r={card_data:t.card_data??{},requires:t.requires??{}};return Promise.all(e.map(async a=>{let n={};if(a.projections&&typeof a.projections=="object"&&!Array.isArray(a.projections)){for(let[s,o]of Object.entries(a.projections))if(typeof o=="string"&&o.trim().length>0)try{n[s]=await Tn(o).evaluate(r)}catch{n[s]=void 0}}return{...a,_projections:n}}))}function __(e,t){if(!e||e.length===0)return[];let r={card_data:t.card_data??{},requires:t.requires??{}};return e.map(a=>{let n={};if(a.projections&&typeof a.projections=="object"&&!Array.isArray(a.projections)){for(let[s,o]of Object.entries(a.projections))if(typeof o=="string"&&o.trim().length>0)try{n[s]=fd(o).evaluate(r)}catch{n[s]=void 0}}return{...a,_projections:n}})}var Cr={run:f_,runSync:p_,eval:h_,resolve:m_,validate:g_,enrichSources:v_,enrichSourcesSync:__};function $_(e){return JSON.stringify(e)}function w_(e){let t;try{t=JSON.parse(e)}catch{throw new Error(`parseExecutionRef: invalid JSON \u2014 ${e}`)}if(typeof t!="object"||t===null||typeof t.howToRun!="string"||typeof t.whatToRun!="string")throw new Error(`parseExecutionRef: missing required fields howToRun/whatToRun \u2014 ${e}`);return t}function hd(e,t){function r(){return e.readIndex()??{}}function a(n,s,o){let u=String(s||"").split(".").filter(Boolean);if(u.length===0)return o&&typeof o=="object"&&!Array.isArray(o)?o:{value:o};let i={...n},c=i;for(let l=0;l<u.length-1;l++){let d=u[l],b=c[d],w=b&&typeof b=="object"&&!Array.isArray(b)?{...b}:{};c[d]=w,c=w}return c[u[u.length-1]]=o,i}return{readCard(n){let s=r()[n];return!s||!e.cardExists(s.key)?null:e.readCard(s.key)},readCardKey(n){return r()[n]?.key??null},readAllCards(){let n=[];for(let[s,o]of Object.entries(r())){if(!e.cardExists(o.key))continue;let u=e.readCard(o.key);u?n.push(u):t?.(`[card-store] could not read card "${s}" at key "${o.key}"`)}return n},readChecksumIndex(){let n={};for(let[s,o]of Object.entries(r()))n[s]=o.checksum;return n},changedSince(n){let s=r(),o=[];for(let[u,i]of Object.entries(s))n[u]!==i.checksum&&o.push(u);for(let u of Object.keys(n))s[u]||o.push(u);return o},validateUpsert(n,s){let o=r(),u=o[n],i=Object.entries(o).find(([,c])=>c.key===s);return u&&u.key!==s?{ok:!1,error:`Card id "${n}" is already mapped to key "${u.key}", cannot remap to "${s}"`}:i&&i[0]!==n?{ok:!1,error:`Key "${s}" is already mapped to card id "${i[0]}", cannot remap to "${n}"`}:{ok:!0}},writeCard(n,s,o){let u=r(),i=o??u[n]?.key??e.defaultCardKey(n),c=e.writeCard(i,s);u[n]={key:i,checksum:c,updatedAt:new Date().toISOString()},e.writeIndex(u)},patchCard(n,s,o){let u=r(),i=u[n];if(!i||!e.cardExists(i.key))throw new Error(`card "${n}" not found`);let c=e.readCard(i.key);if(!c||typeof c!="object"||Array.isArray(c))throw new Error(`card "${n}" is not patchable`);let l=a(c,s,o),d=e.writeCard(i.key,l);u[n]={key:i.key,checksum:d,updatedAt:new Date().toISOString()},e.writeIndex(u)},removeCard(n){let s=r(),o=s[n];o&&(e.removeCard(o.key),delete s[n],e.writeIndex(s))},readIndex(){return r()}}}function Dl(e,t){return{readSourceData(r,a){let n=e.read(`${r}/${a}`);if(n==null)return null;let s=n.trim();if(!s)return null;try{return JSON.parse(s)}catch{return s}},ingestSourceDataStaged(r,a,n,s){let o=t(n);e.write(`${r}/.staged/${s}/${a}`,o)},commitSourceData(r,a,n){let s=`${r}/.staged/${n}/${a}`,o=e.read(s);return o==null?!1:(e.write(`${r}/${a}`,o),e.remove(s),!0)},hasSource(r,a){return e.exists(`${r}/${a}`)}}}function b_(e){function t(r){let a=e.readAllEntries();if(!r)return a;let n=a.findIndex(s=>s.id===r);return n===-1?a:a.slice(n+1)}return{readEntriesAfterCursor(r){let a=t(r);return a.length===0?{events:[],newCursor:r}:{events:a.map(n=>n.event),newCursor:a[a.length-1].id}},pendingCount(r){return t(r).length},appendEvent(r){e.appendEntry({id:e.generateId(),event:r})}}}function S_(e,t){return{appendEntries(r,a){if(!r||a.length===0)return;let n=e.read(r)??[];e.write(r,[...n,...a])},dispatchEntriesForJournalId(r,a){if(!r)return;let n=e.read(r);if(!(!n||n.length===0)){for(let s of n)try{a(s)}catch(o){let u=o instanceof Error?o.message:String(o);try{t(s,u)}catch{}}e.delete(r)}}}}var md="v1",ya="board/graph",yd="board/lastJournalProcessedId";function Ml(e){return`cards/${e}/runtime`}function k_(e){return{readRuntime(t){return e.read(Ml(t))??{_sources:{}}},writeRuntime(t,r){e.write(Ml(t),r)}}}function E_(e,t){let r={...e};for(let a of t.deleteKeys)delete r[a];return{...r,...t.shallowMerge}}function P_(e){return{readSnapshot(t){return e.readValues(t)},commitSnapshot(t,r){if(r.schemaVersion!==md)throw new Error(`Unsupported snapshot schema version: ${r.schemaVersion}`);let a=e.readValues(t);if(a.version!==r.expectedVersion)return{ok:!1,reason:"version-mismatch",currentVersion:a.version};let n=E_(a.values,r);return{ok:!0,newVersion:e.writeValues(t,n,r.deleteKeys)}}}}function gd(e){function t(r){let a=e.read(r);return a==null?null:typeof a=="string"?a:JSON.stringify(a)}return{readTaskExecutorRef(){let r=t("task-executor");if(r?.trim())return w_(r.trim())},writeTaskExecutorRef(r){e.write("task-executor",$_(r))},readChatHandlerFlow(){return e.read("chat-handler-flow")},writeChatHandlerFlow(r){e.write("chat-handler-flow",r)},readCardStoreRef(){return t("card-store-ref")},writeCardStoreRef(r){e.write("card-store-ref",r)},readOutputsStoreRef(){return t("outputs-store-ref")},writeOutputsStoreRef(r){e.write("outputs-store-ref",r)},readScratchStoreRef(){return t("scratch-store-ref")},writeScratchStoreRef(r){e.write("scratch-store-ref",r)},readArchiveStoreRef(){return t("archive-store-ref")},writeArchiveStoreRef(r){e.write("archive-store-ref",r)}}}function j_(e){return{writeComputedValues(t,r){e.write(`cards/${t}/computed_values`,r)},readComputedValues(t){return e.read(`cards/${t}/computed_values`)},readAllComputedValues(){let t={};for(let r of e.listKeys("cards/")){let a=r.match(/^cards\/([^/]+)\/computed_values$/);a&&(t[a[1]]=e.read(r))}return t},writeDataObjects(t){for(let[r,a]of Object.entries(t))r&&e.write(`data-objects/${r}`,a)},readDataObject(t){return e.read(`data-objects/${t}`)},readAllDataObjects(){let t={};for(let r of e.listKeys("data-objects/"))t[r.slice(13)]=e.read(r);return t},writeStatusSnapshot(t){e.write("status",t)},readStatusSnapshot(){return e.read("status")}}}function Fl(e){return e?{lastRequestedToken:e.lastRequestedToken,lastCompletedToken:e.lastCompletedToken,lastCompletionStatus:e.lastCompletionStatus??(e.lastCompletedToken?"success":"not-started"),queueRequestedToken:e.queueRequestedToken}:{lastCompletionStatus:"not-started"}}function O_(e){return e?.lastRequestedToken?e.lastCompletedToken!==e.lastRequestedToken:!1}function Vl(e,t){return e?.lastRequestedToken?O_(e)?"in-flight":!e.lastCompletedToken||e.lastCompletedToken<t?"dispatch":"idle":"dispatch"}function N_(e,t){return{...e,lastCompletedToken:t,lastCompletionStatus:"success"}}function zl(e,t){return{...e,lastCompletedToken:t,lastCompletionStatus:"failure"}}function Uo(e,t){let r=t.state.tasks,a=t.config.tasks,n=Object.keys(r),s=Bo(t),o={completed:0,failed:0,in_progress:0,pending:0,blocked:0,unresolved:0},u=new Map;for(let m of s.pending)u.set(m.taskName,m.waitingOn);for(let m of s.unresolved)u.set(m.taskName,m.missingTokens);for(let m of s.blocked)u.set(m.taskName,m.failedTokens);let i=new Map;for(let[m,v]of Object.entries(a))for(let h of v.requires??[]){let f=i.get(h)??[];f.push(m),i.set(h,f)}let c=n.sort().map(m=>{let v=r[m],h=a[m]??{requires:[],provides:[]};v.status==="completed"?o.completed+=1:v.status==="failed"?o.failed+=1:v.status==="in-progress"&&(o.in_progress+=1);let f=h.requires??[],_=h.provides??[],g=Object.keys(v.data??{}).sort(),E=f.filter(x=>t.state.availableOutputs.includes(x)),$=f.filter(x=>!t.state.availableOutputs.includes(x)),y=u.get(m)??$,p=new Set;for(let x of _)for(let I of i.get(x)??[])I!==m&&p.add(I);let P=v.failedAt,j=v.error?{message:v.error,code:"TASK_FAILED",at:P,source:"task-runtime"}:void 0;return{name:m,status:v.status,error:j,requires:f,requires_satisfied:E,requires_missing:$,provides_declared:_,provides_runtime:g,blocked_by:y,unblocks:Array.from(p).sort(),runtime:{attempt_count:v.executionCount??0,restart_count:v.retryCount??0,in_progress_since:v.status==="in-progress"?v.startedAt??null:null,last_transition_at:v.lastUpdated??null,last_completed_at:v.completedAt??null,last_restarted_at:v.startedAt??null,status_age_ms:v.lastUpdated?0:null}}});o.pending=s.pending.length,o.blocked=s.blocked.length,o.unresolved=s.unresolved.length;let l=c.map(m=>({name:m.name,fanOut:m.unblocks.length})).sort((m,v)=>v.fanOut-m.fanOut||m.name.localeCompare(v.name)),d=l.length>0?l[0]:{name:null,fanOut:0},b=new Set;for(let m of Object.values(a))for(let v of m.requires??[])b.add(v);let w=0;for(let[m,v]of Object.entries(a)){let h=(v.requires??[]).length===0,f=(v.provides??[]).some(_=>(i.get(_)??[]).some(g=>g!==m));h&&!f&&(w+=1)}return{schema_version:"v1",meta:{board:{path:e}},summary:{card_count:n.length,completed:o.completed,eligible:s.eligible.length,pending:o.pending,blocked:o.blocked,unresolved:o.unresolved,failed:o.failed,in_progress:o.in_progress,orphan_cards:w,topology:{edge_count:Array.from(b).length,max_fan_out_card:d.name,max_fan_out:d.fanOut}},cards:c}}function T_(){return new Date().toISOString()}function x_(e,t,r,a,n,s,o){return async u=>{let i=[],c=r.cardStore.readCard(u.nodeId);if(!c)return"task-initiate-failure";let l=c.id,d=c.card_data??{},b=c.source_defs??[],w=b.filter(F=>F.optionalForCompletionGating!==!0),m=r.cardRuntimeStore.readRuntime(l),v=!1,h=()=>{v&&(r.cardRuntimeStore.writeRuntime(l,m),v=!1)},f=F=>Fl(m._sources[F]),_=(F,U)=>{m._sources[F]=Fl(U),v=!0},g=u.taskState?.executionCount??0;if(m._lastExecutionCount!==g&&(m._sources={},m._lastExecutionCount=g,v=!0),u.update){let F=u.update,U=F.outputFile;if(U){let G=f(U);if(F.failure){let re=F.rqt??G.lastRequestedToken??G.queueRequestedToken;re&&_(U,zl(G,re))}else{let re=F.rqt;if(!G.lastCompletedToken||re>G.lastCompletedToken){let B=typeof F.deliveryToken=="string"?F.deliveryToken:void 0,T=!1;B&&(T=r.fetchedSourcesStore.commitSourceData(l,U,B)),T?_(U,N_(G,re)):_(U,zl(G,re))}}h()}}let E={};for(let F of b)if(F.outputFile){let U=r.fetchedSourcesStore.readSourceData(l,F.outputFile);U!==null&&(E[F.bindTo]=U)}let $={};for(let[F,U]of Object.entries(u.state??{}))if(U!==null&&typeof U=="object"&&!Array.isArray(U)){let G=U[F];$[F]=G!==void 0?G:U}else $[F]=U;let y={id:l,card_data:{...d},requires:$,source_defs:b,compute:c.compute};y._sourcesData=E,c.compute&&Cr.runSync(y,{sourcesData:E}),(s??r.outputStore.writeComputedValues.bind(r.outputStore))(l,y.computed_values??{});let p={...c},P=Cr.enrichSourcesSync(Array.isArray(c.source_defs)?c.source_defs:void 0,{card_data:c.card_data,requires:$}),j=e.value;p.source_defs=Array.isArray(P)?P.map(F=>({...F,boardDir:typeof F.boardDir=="string"&&F.boardDir?F.boardDir:j})):P;let x=T_(),I=u.update?void 0:x,q=w.filter(F=>{let U=F.outputFile;if(typeof U!="string"||!U)return!0;let G=f(U);I&&(G={...G,queueRequestedToken:I},_(U,G));let re=G.queueRequestedToken??G.lastRequestedToken??x,B=Vl(G,re);return B==="in-flight"?!1:B==="dispatch"});if(h(),q.length>0){let F=!1,U=x;for(let G of q){let re=G.outputFile;if(typeof re!="string"||!re)continue;let B=f(re),T=B.queueRequestedToken??x;_(re,{...B,lastRequestedToken:T}),U=T,F=!0}return F&&h(),F&&(i.push({taskKind:"source-fetch",payload:{boardRef:He(e),enrichedCard:p,callbackToken:u.callbackToken,rqt:U}}),r.executionRequestStore.appendEntries(t,i)),"task-initiated"}if(w.some(F=>{let U=F.outputFile;if(typeof U!="string"||!U)return!1;let G=f(U),re=G.queueRequestedToken??G.lastRequestedToken??x;return Vl(G,re)==="in-flight"}))return"task-initiated";let V=c.provides??[],H={};for(let{bindTo:F,ref:U}of V)H[F]=Cr.resolve(y,U);return(o??r.outputStore.writeDataObjects.bind(r.outputStore))(H),b.filter(F=>{if(F.optionalForCompletionGating!==!0)return!1;let U=f(F.outputFile);return!U.lastRequestedToken||!U.lastCompletedToken?!0:U.lastCompletedToken<=U.lastRequestedToken}).length>0&&i.push({taskKind:"source-fetch",payload:{boardRef:He(e),enrichedCard:p,callbackToken:u.callbackToken,rqt:x}}),a(u.nodeId,H),i.length>0&&r.executionRequestStore.appendEntries(t,i),"task-initiated"}}var I_={settings:{completion:"manual",refreshStrategy:"data-changed"},tasks:{}};function C_(e){return{[ya]:e.graph,[yd]:e.lastDrainedJournalId}}function R_(e){let t=e[ya],r=e[yd];if(!t||typeof t!="object")throw new Error(`State snapshot is missing required key: ${ya}`);return{graph:t,lastDrainedJournalId:typeof r=="string"?r:""}}function q_(e){let t=e.requires,r=e.provides?.map(a=>a.bindTo)??[];return{requires:t&&t.length>0?t:void 0,provides:r,taskHandlers:["card-handler"],description:e.meta?.title??e.id}}function ve(e){return e!==void 0?{status:"success",data:e}:{status:"success"}}function ae(e){return{status:"fail",error:e}}function _e(e){return{status:"error",error:e instanceof Error?e.message:String(e)}}function A_(e){let t=new TextEncoder().encode(e),r=Array.from(t,a=>String.fromCharCode(a)).join("");return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function vd(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=t+"=".repeat((4-t.length%4)%4),a=atob(r),n=Uint8Array.from(a,s=>s.charCodeAt(0));return new TextDecoder().decode(n)}function yn(e){try{let t=JSON.parse(vd(e));return typeof t?.t=="string"?{taskName:t.t}:null}catch{return null}}function D_(e){return A_(JSON.stringify(e))}function Ul(e){try{let t=JSON.parse(vd(e));return typeof t?.cbk=="string"&&typeof t?.cid=="string"&&typeof t?.b=="string"&&typeof t?.d=="string"?t:null}catch{return null}}function Ue(){return new Date().toISOString()}function Ho(e,t){let r=t.onWarn??(()=>{}),a=He(e);function n(S){if(S.length!==0)try{let k=t.publishBoardChangeNotifications?.(S);k&&typeof k.catch=="function"&&k.catch(N=>r(`[board-live-cards-public] publishBoardChangeNotifications failed: ${N instanceof Error?N.message:String(N)}`))}catch(k){r(`[board-live-cards-public] publishBoardChangeNotifications failed: ${k instanceof Error?k.message:String(k)}`)}}function s(){let S=u().readCardStoreRef();if(!S)throw new Error(`Board at ${e.value} has no card store configured. Run: init --base-ref <ref> --store-ref <b64-ref>`);let k=t.kvStorageForRef(S);return{readIndex(){return k.read("_index")},writeIndex(N){k.write("_index",N)},readCard(N){return k.read(N)},writeCard(N,A){return k.write(N,A),t.hashFn(A)},removeCard(N){k.delete(N)},cardExists(N){return k.read(N)!==null},defaultCardKey(N){return N}}}let o={readValues(S){let k=t.kvStorage("state-snapshot"),N=k.listKeys().sort();if(N.length===0)return{version:null,values:{}};let A={};for(let K of N)A[K]=k.read(K);return{version:t.hashFn(A),values:A}},writeValues(S,k,N){let A=t.kvStorage("state-snapshot");for(let K of N)A.delete(K);for(let[K,W]of Object.entries(k))A.write(K,W);return t.hashFn(k)}},u=()=>gd(t.kvStorage("config")),i=()=>P_(o),c=()=>b_(t.journalAdapter()),l=()=>hd(s(),r),d=()=>{let S=u().readOutputsStoreRef();if(!S)throw new Error(`Board at ${e.value} has no outputs store configured. Run: init --outputs-store-ref <b64-ref>`);return j_(t.kvStorageForRef(S))},b=()=>{let S=u().readArchiveStoreRef();return S?t.archiveFactoryForRef(S):t.archiveFactory()};function w(){return!!i().readSnapshot(e.value).values[ya]}function m(){let S=i().readSnapshot(e.value);if(!S.values[ya])throw new Error(`Board not initialized at ${e.value}`);return R_(S.values)}function v(S,k){let N=i().commitSnapshot(e.value,{schemaVersion:md,expectedVersion:k,commitId:t.genId(),committedAt:Ue(),deleteKeys:[],shallowMerge:C_(S)});if(!N.ok)throw new Error(`Snapshot commit failed (version mismatch): expected=${k??"null"} current=${N.currentVersion??"null"}`)}function h(S){c().appendEvent(S)}async function f(){let S=(X,se)=>{let je=X.payload,Gt=(je?.enrichedCard??{}).id??je?.cardId??"unknown";h({type:"task-failed",taskName:Gt,error:se,timestamp:Ue()})},k=S_(t.kvStorage("execution-requests"),S),N=k_(t.kvStorage("card-runtime")),A=Dl(t.blobStorage("sources"),X=>t.resolveBlob(X)),K=new Map,W={readRuntime(X){return K.get(X)??N.readRuntime(X)},writeRuntime(X,se){K.set(X,se)}},Y=[],fe=new Map,xe={readSourceData(X,se){let je=`${X}/${se}`;return fe.has(je)?fe.get(je):A.readSourceData(X,se)},ingestSourceDataStaged(X,se,je,Gt){A.ingestSourceDataStaged(X,se,je,Gt)},commitSourceData(X,se,je){let Gt=`${X}/.staged/${je}/${se}`,xt=t.blobStorage("sources").read(Gt);if(xt==null)return!1;let va=`${X}/${se}`,cr=xt.trim();try{fe.set(va,JSON.parse(cr))}catch{fe.set(va,cr)}return Y.push({cardId:X,outputFile:se,deliveryToken:je}),!0},hasSource(X,se){let je=`${X}/${se}`;return fe.has(je)?!0:A.hasSource(X,se)}},O={cardStore:l(),cardRuntimeStore:W,fetchedSourcesStore:xe,outputStore:d(),executionRequestStore:k},C=m(),D=Vo(C.graph),{events:Q,newCursor:te}=c().readEntriesAfterCursor(C.lastDrainedJournalId),ne=[],Te=[],Ce=[],Ze=new Map,Me=(X,se)=>{ne.push({type:"task-completed",taskName:X,data:se,timestamp:Ue()});try{b().stream("exec-history").append({taskName:X,status:"completed",completedAt:Ue()})}catch{}},Ne=(X,se)=>{h({type:"task-failed",taskName:X,error:se,timestamp:Ue()});try{b().stream("exec-history").append({taskName:X,status:"failed",error:se,completedAt:Ue()})}catch{}},st=l_(D,{handlers:{"card-handler":x_(e,te,O,Me,Ne,(X,se)=>{Te.push({cardId:X,values:se})},X=>{Ce.push(X)})}});for(ne=Q;ne.length>0;){let X=ne;ne=[];for(let se of X)if(se.type==="task-restart"){let je=O.cardStore.readCard(se.taskName);je&&Ze.set(se.taskName,je)}st.pushAll(X),await st.waitForHandlers()}let Le=st.getState();await st.dispose({wait:!0});let Rr=i().readSnapshot(e.value).version;v({lastDrainedJournalId:te,graph:Go(Le)},Rr);for(let{cardId:X,values:se}of Te)O.outputStore.writeComputedValues(X,se);for(let X of Ce)O.outputStore.writeDataObjects(X);for(let[X,se]of K)N.writeRuntime(X,se);for(let{cardId:X,outputFile:se,deliveryToken:je}of Y)A.commitSourceData(X,se,je);let ft;try{ft=Uo(a,Le),O.outputStore.writeStatusSnapshot(ft)}catch(X){r(`[board-live-cards-public] status publish failed: ${X instanceof Error?X.message:String(X)}`)}let bt=[];for(let{cardId:X,values:se}of Te)bt.push({kind:"computed_values",cardId:X,values:se});for(let X of Ce)for(let[se,je]of Object.entries(X))se&&bt.push({kind:"data_object",key:se,payload:je});for(let[X,se]of Ze)bt.push({kind:"card_refreshed",cardId:X,card:se});ft!==void 0&&bt.push({kind:"status",status:ft}),n(bt);let ga=u().readTaskExecutorRef()??{howToRun:"built-in",whatToRun:He({kind:"built-in",value:"source-cli-task-executor"})};k.dispatchEntriesForJournalId(te,X=>{if(X.taskKind!=="source-fetch"){r(`[process-accumulated-events] unknown taskKind "${X.taskKind}" \u2014 skipping`);return}let se=X.payload,je=se.enrichedCard?.id??"unknown",Gt=se.enrichedCard?.source_defs??[];for(let xt of Gt){if(!xt.outputFile){r(`[dispatch] source "${xt.bindTo}" has no outputFile \u2014 skipping`);continue}let va=D_({cbk:se.callbackToken,rg:e.value,br:He(e),cid:je,b:xt.bindTo,d:xt.outputFile,cs:void 0,rqt:se.rqt});t.dispatchExecution(ga,{source_def:xt,base_ref:He(e),callback:{token:va,via:t.selfRef}}).catch(cr=>Ne(je,cr instanceof Error?cr.message:String(cr)))}})}async function _(){try{let S=()=>{let N=m(),{events:A}=c().readEntriesAfterCursor(N.lastDrainedJournalId);A.length<=0||(_(),t.requestProcessAccumulated?.())},k=await Qv(t.lock,f,S);return ve({ran:k!==!1})}catch(S){return _e(S)}}function g(){_(),t.requestProcessAccumulated?.()}function E(S){try{let k=S.params?.cardStoreRef;if(!k)return ae("init requires params.cardStoreRef \u2014 create a card store with card-store-cli and pass its ref here");if(!w()){let fe=ld(I_);v({lastDrainedJournalId:"",graph:Go(fe)},null)}let N=S.params?.outputsStoreRef;if(!N)return ae("init requires params.outputsStoreRef \u2014 pass the outputs store ref here");let A=S.params?.scratchStoreRef,K=S.params?.archiveStoreRef,W=u();W.writeCardStoreRef(k),W.writeOutputsStoreRef(N),A&&W.writeScratchStoreRef(A),K&&W.writeArchiveStoreRef(K);let Y=S.body??{};Y["task-executor-ref"]&&W.writeTaskExecutorRef(Y["task-executor-ref"]),Object.prototype.hasOwnProperty.call(Y,"chat-handler-flow")&&W.writeChatHandlerFlow(Y["chat-handler-flow"]);try{d().writeStatusSnapshot(Uo(a,Vo(m().graph)))}catch{}return ve()}catch(k){return _e(k)}}function $(S){try{let k=d().readStatusSnapshot();if(!k){k=Uo(a,Vo(m().graph));try{d().writeStatusSnapshot(k)}catch{}}return ve(k)}catch(k){return _e(k)}}function y(S){try{let k=S.params?.id;return k?(h({type:"task-removal",taskName:k,timestamp:Ue()}),g(),ve()):ae("removeCard requires params.id")}catch(k){return _e(k)}}function p(S){try{let k=S.params?.id;return k?(h({type:"task-restart",taskName:k,timestamp:Ue()}),g(),ve()):ae("retrigger requires params.id")}catch(k){return _e(k)}}async function P(S){return _()}function j(S){try{let k=S.params?.cardId,N=S.params?.all,A=!!S.params?.restart;if(!k&&!N)return ae("upsertCard requires --card-id <id> or --all");let K=N?l().readAllCards().map(W=>W.id):[k];for(let W of K)if(!l().readCard(W))return ae(`Card "${W}" not found in board at ${e.value}`);for(let W of K){let Y=l().readCard(W),fe=q_(Y),xe=t.hashFn(fe),O=t.kvStorage("card-upsert"),C=O.read(W),D=C?.taskConfigHash!==xe;if(!(!D&&!A)){if(D){let Q=C?.blobRef??l().readCardKey(W)??W;h({type:"task-upsert",taskName:W,taskConfig:fe,timestamp:Ue()}),O.write(W,{blobRef:Q,taskConfigHash:xe,updatedAt:Ue()})}A&&h({type:"task-restart",taskName:W,timestamp:Ue()})}}return g(),ve()}catch(k){return _e(k)}}function x(S){try{let k=S.params?.token;if(!k)return ae("taskFailed requires params.token");let N=S.params?.error??"unknown error",A=yn(k);if(!A)return ae("Invalid callback token");h({type:"task-failed",taskName:A.taskName,error:N,timestamp:Ue()});try{b().stream("exec-history").append({taskName:A.taskName,status:"failed",error:N,completedAt:Ue()})}catch{}return g(),ve()}catch(k){return _e(k)}}function I(S){try{let k=S.params?.token;if(!k)return ae("taskProgress requires params.token");let N=(S.body??{}).update??{},A=yn(k);return A?(h({type:"task-progress",taskName:A.taskName,update:N,timestamp:Ue()}),g(),ve()):ae("Invalid callback token")}catch(k){return _e(k)}}function q(S){try{let k=S.params?.token,N=S.params?.ref;if(!k)return ae("sourceDataFetched requires params.token");if(!N)return ae("sourceDataFetched requires params.ref");let A=Ul(k);if(!A)return ae("Invalid source token");let{cbk:K,cid:W,b:Y,d:fe,cs:xe,rqt:O}=A,C=Dl(t.blobStorage("sources"),ne=>t.resolveBlob(ne)),D=t.genId();C.ingestSourceDataStaged(W,fe,$t(N),D);let Q=yn(K);if(!Q)return ae("Invalid callback token embedded in source token");let te=Ue();return h({type:"task-progress",taskName:Q.taskName,update:{bindTo:Y,outputFile:fe,fetchedAt:te,deliveryToken:D,sourceChecksum:xe,rqt:O},timestamp:te}),g(),ve()}catch(k){return _e(k)}}function V(S){try{let k=S.params?.token,N=S.params?.reason??"unknown";if(!k)return ae("sourceDataFetchFailure requires params.token");let A=Ul(k);if(!A)return ae("Invalid source token");let{cbk:K,b:W,d:Y,cs:fe,rqt:xe}=A,O=yn(K);return O?(h({type:"task-progress",taskName:O.taskName,update:{bindTo:W,outputFile:Y,failure:!0,reason:N,sourceChecksum:fe,rqt:xe},timestamp:Ue()}),g(),ve()):ae("Invalid callback token embedded in source token")}catch(k){return _e(k)}}function H(S){try{let k=u().readCardStoreRef();return k?ve({storeRef:k}):ae(`Board at ${e.value} has no card store configured`)}catch(k){return _e(k)}}function F(S){try{let k=u().readOutputsStoreRef();return k?ve({storeRef:k}):ae(`Board at ${e.value} has no outputs store configured`)}catch(k){return _e(k)}}function U(S){try{let k=u().readScratchStoreRef();return ve({storeRef:k})}catch(k){return _e(k)}}function G(S){try{let k=u().readArchiveStoreRef();return ve({storeRef:k})}catch(k){return _e(k)}}function re(S){try{let k=S.params?.key;if(!k)return ae("getConfig requires params.key");let N=u(),A;switch(k){case"task-executor":A=N.readTaskExecutorRef()??null;break;case"chat-handler-flow":A=N.readChatHandlerFlow()??null;break;case"card-store-ref":A=N.readCardStoreRef();break;case"outputs-store-ref":A=N.readOutputsStoreRef();break;case"scratch-store-ref":A=N.readScratchStoreRef();break;case"archive-store-ref":A=N.readArchiveStoreRef();break;default:return ae(`getConfig: unknown key "${k}"`)}return ve({value:A})}catch(k){return _e(k)}}function B(S){try{let k=S.params?.key;if(!k)return ae("getOutputsDataObject requires params.key");let N=d().readDataObject(k);return ve(N)}catch(k){return _e(k)}}function T(S){try{return ve(d().readAllDataObjects())}catch(k){return _e(k)}}function R(S){try{let k=S.params?.key;if(!k)return ae("getOutputsComputedValues requires params.key");let N=d().readComputedValues(k);return ve(N)}catch(k){return _e(k)}}function z(S){try{return ve(d().readAllComputedValues())}catch(k){return _e(k)}}return{init:E,status:$,getCardStoreRef:H,getOutputsStoreRef:F,getScratchStoreRef:U,getArchiveStoreRef:G,getConfig:re,getOutputsDataObject:B,getAllOutputsDataObjects:T,getOutputsComputedValues:R,getAllOutputsComputedValues:z,removeCard:y,retrigger:p,processAccumulatedEvents:P,upsertCard:j,taskFailed:x,taskProgress:I,sourceDataFetched:q,sourceDataFetchFailure:V}}function ir(e,t){let r=()=>gd(t.kvStorage("config"));function a(){let $=r().readCardStoreRef();if(!$)throw new Error(`Board at ${e.value} has no card store configured. Run: init --base-ref <ref> --store-ref <b64-ref>`);let y=t.kvStorageForRef($);return{readIndex(){return y.read("_index")},writeIndex(p){y.write("_index",p)},readCard(p){return y.read(p)},writeCard(p,P){return y.write(p,P),t.hashFn(P)},removeCard(p){y.delete(p)},cardExists(p){return y.read(p)!==null},defaultCardKey(p){return p}}}let n=()=>hd(a(),t.onWarn??(()=>{})),s=()=>{let $=r().readScratchStoreRef();return $?t.scratchStorageForRef($):t.scratchStorage()};function o($,y){let p=t.validateSchema(y),P=[],j=r().readTaskExecutorRef();if(j&&Array.isArray(y.source_defs))for(let I of y.source_defs){let q=typeof I.bindTo=="string"?I.bindTo:"(unknown)";try{let V;try{V=t.invokeExecutorSync(j,"validate-source-def",[],{timeout:t.executorTimeouts?.validationMs??1e4,input:JSON.stringify(I)})}catch(F){let U=F;if(V=typeof U?.stdout=="string"?U.stdout:"",!V.trim()){P.push(`source "${q}": executor validate-source-def failed \u2014 ${F instanceof Error?F.message:String(F)}`);continue}}let H=JSON.parse(V.trim());if(!H.ok&&Array.isArray(H.errors))for(let F of H.errors)P.push(`source "${q}": ${F}`)}catch(V){P.push(`source "${q}": executor validate-source-def failed \u2014 ${V instanceof Error?V.message:String(V)}`)}}let x=[...p.errors,...P];return ve({cardId:$,isValid:x.length===0,issues:x})}function u($,y){let p=r().readTaskExecutorRef();if(!p)throw new Error("No task-executor registered for this board");let P=typeof $.bindTo=="string"?$.bindTo:"source",j=s(),x={...$,boardDir:e.value,_projections:y},I=j.create(JSON.stringify(x,null,2),`probe-in-${P}`,".json"),q=j.getUniqueKey(`probe-out-${P}`,".json"),V=j.getUniqueKey(`probe-err-${P}`,".txt"),H=He(j.keyRef(I)),F=He(j.keyRef(q)),U=He(j.keyRef(V)),G=null;try{if(t.invokeExecutorSync(p,"run-source-fetch",["--in-ref",H,"--out-ref",F,"--err-ref",U],{timeout:$.timeout??t.executorTimeouts?.probeMs??6e4}),G=j.read(q),G===null)throw new Error("Executor produced no output file")}catch(re){let B=j.read(V)?.trim()??(re instanceof Error?re.message:String(re));throw new Error(`Probe failed: ${B}`)}finally{try{j.remove(I)}catch{}try{j.remove(V)}catch{}}return{bindTo:P,result:G}}function i($,y,p){let P;try{P=u($,y)}catch(j){return ae(j instanceof Error?j.message:String(j))}if(p){let j=$t(p);t.absoluteBlob.write(j.value,P.result)}return ve({bindTo:P.bindTo,resultSizeBytes:P.result.length})}function c($,y){let p=$.params?.sourceIdx,P=$.params?.outRef;if(p===void 0)return ae(`${y} requires params.sourceIdx`);if(!$.body||typeof $.body!="object"||Array.isArray($.body))return ae(`${y} requires card JSON object in body`);let j=$.body,x=j["card-content"]??j,I=j["mock-projections"]??{},q=x.source_defs??[];if(p<0||p>=q.length)return ae(`sourceIdx ${p} out of range (card has ${q.length} source(s))`);let V=q[p],H=typeof V.bindTo=="string"?V.bindTo:"source";return{src:V,bindTo:H,outRef:P,mockProjections:I}}function l($){try{let y=$.params?.cardId,p=$.params?.all;if(!y&&!p)return ae("validateCard requires --card-id <id> or --all");let P=p?n().readAllCards().map(x=>x.id):[y],j=[];for(let x of P){let I=n().readCard(x);if(!I){j.push({cardId:x,isValid:!1,issues:[`Card "${x}" not found`]});continue}let q=o(x,I);if(q.status!=="success")return q;j.push(q.data)}return ve(j)}catch(y){return _e(y)}}function d($){try{if(!$.body||typeof $.body!="object"||Array.isArray($.body))return ae("validateCardPreflight requires card JSON object in body");let y=$.body,p=y["card-content"]??y,P=typeof p.id=="string"?p.id:"(unknown)",j=o(P,p),x=r().readTaskExecutorRef();if(x)try{let I=t.invokeExecutorSync(x,"validate-card-preflight",[],{timeout:t.executorTimeouts?.validationMs??1e4,input:JSON.stringify(p)}),q=JSON.parse(I.trim());if(!q.ok&&Array.isArray(q.errors)&&q.errors.length>0){let V=[...j.status==="success"?j.data.issues:[],...q.errors];return ve({cardId:P,isValid:!1,issues:V})}}catch{}return j}catch(y){return _e(y)}}function b($){try{let y=$.params?.cardId,p=$.params?.sourceIdx,P=$.params?.outRef;if(!y)return ae("probeSource requires params.cardId");if(p===void 0)return ae("probeSource requires params.sourceIdx");let j=($.body??{})["mock-projections"]??{},x=n().readCard(y);if(!x)return ae(`Card "${y}" not found`);let I=x.source_defs??[];return p<0||p>=I.length?ae(`sourceIdx ${p} out of range (card has ${I.length} source(s))`):i(I[p],j,P)}catch(y){return _e(y)}}function w($){try{let y=$.params?.outRef,p=$.body;if(!p)return ae('probeTmpSource requires body with "source-def" and "mock-projections"');let P=p["source-def"],j=p["mock-projections"]??{};return P?i(P,j,y):ae('probeTmpSource body requires "source-def"')}catch(y){return _e(y)}}function m($){try{let y=c($,"probeSourcePreflight");if("status"in y)return y;let p=r().readTaskExecutorRef();if(!p)return ae("No task-executor registered for this board");try{let P={...y.src,_projections:y.mockProjections},j=t.invokeExecutorSync(p,"probe-source-preflight",[],{timeout:y.src.timeout??t.executorTimeouts?.preflightMs??6e4,input:JSON.stringify(P)}),x=JSON.parse(j.trim());return x.ok?ve({bindTo:y.bindTo,reachable:x.reachable,latencyMs:x.latencyMs,note:x.note}):ae(x.error??"Preflight probe failed")}catch{return ae("Executor does not support probe-source-preflight")}}catch(y){return _e(y)}}function v($){try{let y=c($,"runSourcePreflight");if("status"in y)return y;let p=r().readTaskExecutorRef();if(p)try{let I={...y.src,_projections:y.mockProjections},q=t.invokeExecutorSync(p,"run-source-preflight",[],{timeout:y.src.timeout??t.executorTimeouts?.preflightMs??6e4,input:JSON.stringify(I)}),V=JSON.parse(q.trim());return V.ok?ve({bindTo:V.bindTo??y.bindTo,reachable:V.reachable,latencyMs:V.latencyMs,kind:V.kind,resultValue:V.resultValue,note:V.note}):ae(V.error??"Source preflight failed")}catch{}let P=Date.now(),j=u(y.src,y.mockProjections);if(y.outRef){let I=$t(y.outRef);t.absoluteBlob.write(I.value,j.result)}let x=j.result;try{x=JSON.parse(j.result)}catch{}return ve({bindTo:j.bindTo,reachable:!0,latencyMs:Date.now()-P,resultValue:x,note:"Actual fetch preflight passed"})}catch(y){return _e(y)}}function h($){try{let y=r().readTaskExecutorRef();if(!y)return ae("No task-executor registered for this board");let p=t.invokeExecutorSync(y,"describe-capabilities",[],{timeout:t.executorTimeouts?.describeMs??1e4});return ve(JSON.parse(p.trim()))}catch(y){return _e(y)}}function f($){try{let y=$.body;if(!y||!Array.isArray(y.ops))return ae("updatesInCardStore requires body.ops array");let p=y.ops,P=n();for(let j of p){let x=j.op,I=j.id;if(!I)return ae('op is missing "id"');if(x==="update"){let q=j["card-content"];if(!q)return ae(`update op for "${I}" is missing "card-content"`);P.writeCard(I,q)}else return ae(`Unknown op type: "${x??"(none)"}"`)}return ve()}catch(y){return _e(y)}}function _($){try{let y=$.body;if(!y||!Array.isArray(y.ids))return ae("readFromCardStore requires body.ids array");let p=y.ids,P=n(),j=p.map(x=>({id:x,"card-content":P.readCard(x)}));return ve({cards:j})}catch(y){return _e(y)}}function g($){try{if(!$.body||typeof $.body!="object"||Array.isArray($.body))return ae("evalCardCompute requires a JSON object in body");let y=$.body,p=y["card-content"]??y,P=typeof p.id=="string"?p.id:"(unknown)",j=y["mock-fetched-sources"]??{},x=y["mock-requires"]??{},I=p.compute;if(!I||!Array.isArray(I)||I.length===0)return ve({cardId:P,ok:!0,computed_values:{},errors:[]});let q={id:P,card_data:p.card_data??{},requires:x,source_defs:p.source_defs,compute:I},V=Cr.runSync(q,{sourcesData:j}),H=V.node.computed_values??{},F=V.errors??[];return ve({cardId:P,ok:F.length===0,computed_values:H,errors:F})}catch(y){return _e(y)}}function E($){try{if(!$.body||typeof $.body!="object"||Array.isArray($.body))return ae("simulateCardCycle requires a JSON object in body");let y=$.body,p=y["card-content"]??y,P=typeof p.id=="string"?p.id:"(unknown)",j=y["mock-fetched-sources"]??{},x=y["mock-requires"]??{},I=o(P,p),q=I.status==="success"?{isValid:I.data.isValid,issues:I.data.issues}:{isValid:!1,issues:[I.status==="fail"?I.error:"internal error"]},V=p.source_defs??[],H=p.card_data??{},F=[],U=[];if(V.length>0){F=Cr.enrichSourcesSync(V,{card_data:H,requires:x});for(let k of F){let N=k.projections,A=k._projections;if(N&&A){for(let K of Object.keys(N))if(A[K]===void 0){let W=typeof k.bindTo=="string"?k.bindTo:"(unknown)";U.push({bindTo:W,key:K,error:`Projection "${K}" resolved to undefined`})}}}}let G=[],re=y["task-executor-ref"],B=(re?.howToRun&&re?.whatToRun?re:void 0)??r().readTaskExecutorRef();for(let k=0;k<F.length;k++){let N=F[k],A=typeof N.bindTo=="string"?N.bindTo:`source_${k}`;if(!B){G.push({bindTo:A,skipped:!0,error:"No task executor configured"});continue}try{let K={...N},W=t.invokeExecutorSync(B,"run-source-preflight",[],{timeout:N.timeout??t.executorTimeouts?.preflightMs??6e4,input:JSON.stringify(K)}),Y=JSON.parse(W.trim());G.push({bindTo:A,reachable:Y.reachable,latencyMs:Y.latencyMs,error:Y.ok?void 0:Y.error})}catch{G.push({bindTo:A,skipped:!0,error:"Executor does not support run-source-preflight"})}}let T=p.compute,R={},z=[];if(T&&Array.isArray(T)&&T.length>0){let k={id:P,card_data:H,requires:x,source_defs:p.source_defs,compute:T},N=Cr.runSync(k,{sourcesData:j});R=N.node.computed_values??{},z=N.errors??[]}let S=q.isValid&&U.length===0&&z.length===0&&G.every(k=>k.reachable!==!1);return ve({cardId:P,ok:S,validation:q,source_probes:G,projection_errors:U,computed_values:R,compute_errors:z})}catch(y){return _e(y)}}return{validateCard:l,validateCardPreflight:d,probeSource:b,probeTmpSource:w,probeSourcePreflight:m,runSourcePreflight:v,evalCardCompute:g,simulateCardCycle:E,describeTaskExecutorCapabilities:h,updatesInCardStore:f,readFromCardStore:_}}var M_=".board.lock";function F_(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function V_(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function _d(e){if(e)return e;let t=ad(import.meta.url),r=[t,Nt(t,"..","cli","node"),Nt(t,"..","..","cli","node")];for(let a of r)try{return od(a),a}catch{}throw new Error(`createFsBoardPlatformAdapter: could not resolve a public CLI directory from module dir ${t}`)}function $n(e,t,r){let{cliDir:a,opts:n}=F_(t,r),s=_d(a),o=e.value,u={meta:"board-live-cards",howToRun:"local-node",whatToRun:!n?.suppressSpawn&&od(s)?He({kind:"yaml-flow-cli",value:"board-live-cards-cli.js"}):"",...n?.notifyChannel?{extra:{notifyChannel:n.notifyChannel}}:{}};return{kvStorage:i=>Nl(Nt(o,`.${i}`)),blobStorage:i=>_n(i?Nt(o,i):o),scratchStorage:()=>Mo(Nt(o,".tmp")),scratchStorageForRef:i=>Mo($t(i).value),archiveFactory:()=>Fo(Nt(o,"archive")),archiveFactoryForRef:i=>Fo($t(i).value),journalAdapter:()=>O0(o),lock:N0(Nt(o,M_)),selfRef:u,async dispatchExecution(i,c){if(n?.suppressSpawn)return{dispatched:!1};try{let l=c.source_def?.bindTo??kl().slice(0,8),d=Mo(Nt(o,".tmp")),b=d.create(JSON.stringify(c,null,2),`exec-in-${l}`,".json"),w=d.getUniqueKey(`exec-out-${l}`,".json"),m=d.getUniqueKey(`exec-err-${l}`,".txt"),v=He(d.keyRef(b)),h=He(d.keyRef(w)),f=He(d.keyRef(m));return _0(i,{subcommand:"run-source-fetch",inRef:v,outRef:h,errRef:f},s),{dispatched:!0}}catch(l){let d=l instanceof Error?l.message:String(l);try{let b=Fo(Nt(o,"archive")),w=new Date().toISOString().replace(/[:.]/g,"-"),m=c.source_def?.bindTo??"unknown";b.blob("exec-failures").write(`${w}-${m}.json`,JSON.stringify({error:d,args:c,ref:i,at:new Date().toISOString()},null,2))}catch{}return{dispatched:!1,error:d}}},resolveBlob(i){let c=Xv(i.value)?ud().read(i.value):_n(o).read(i.value);if(c===null)throw new Error(`resolveBlob: blob not found: ::${i.kind}::${i.value}`);return c},hashFn:j0,genId:()=>e0(`${Date.now()}-${Math.random()}`).slice(0,32),kvStorageForRef:i=>Nl($t(i).value),requestProcessAccumulated(){n?.suppressSpawn||n0(s,e,n?.notifyChannel)},publishBoardChangeNotifications(i){if(!n?.notifyChannel||i.length===0)return;let c=i.map(l=>({id:kl(),ts:new Date().toISOString(),boardRef:He(e),notification:l}));o0(n.notifyChannel,c,n.onWarn)},onWarn:n?.onWarn}}function ur(e,t,r){let{cliDir:a,opts:n}=V_(t,r),s=_d(a),o=$n(e,s,n),u=i0();return{...o,invokeExecutorSync(i,c,l,d){let{command:b,baseArgs:w}=g0(i,s),m=i.extra?["--extra",Buffer.from(JSON.stringify(i.extra)).toString("base64")]:[];return u.executeSync(b,[...w,c,...l,...m],{timeout:d?.timeout??3e4,encoding:"utf-8",input:d?.input})},validateSchema(i){let c=F0(i);return{ok:c.errors.length===0,errors:c.errors}},absoluteBlob:ud()}}function Hl(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString());return typeof t.br=="string"?t.br:null}catch{return null}}var _t=ad(import.meta.url);function De(e,t,r){let a=e.indexOf(t),n=a!==-1?e[a+1]:void 0;if(!n)throw new Error(`Missing ${t}
|
|
29
29
|
Usage: ${r}`);return n}function nt(e,t){let r=e.indexOf(t);return r!==-1?e[r+1]:void 0}function be(e){console.log(JSON.stringify(e,null,2))}async function Ht(){if(process.stdin.isTTY)return;let e=[];for await(let r of process.stdin)e.push(Buffer.isBuffer(r)?r:Buffer.from(r));let t=Buffer.concat(e).toString("utf-8").trim();if(t)return JSON.parse(t)}async function z_(e){let t=e[0],r=e.slice(1);if(t==="help"||t==="--help"||t==="-h"){console.log("board-live-cards \u2014 see board-live-cards-cli-PARAMS.md for command reference");return}let a=nt(r,"--base-ref"),n=nt(r,"--notify-channel"),s=a?$t(a):void 0;if(t==="source-data-fetched"){let i=De(r,"--token","source-data-fetched --token <token> --ref <sourcefile>"),c=De(r,"--ref","source-data-fetched --token <token> --ref <sourcefile>"),l=Hl(i);if(!l)throw new Error("source-data-fetched: could not decode board ref from token \u2014 is this a valid source token?");let d=$t(l),b=Ho(d,$n(d,_t,{onWarn:console.warn,notifyChannel:n}));be(b.sourceDataFetched({params:{token:i,ref:c}}));return}if(t==="source-data-fetch-failure"){let i=De(r,"--token","source-data-fetch-failure --token <token> [--reason <message>]"),c=Hl(i);if(!c)throw new Error("source-data-fetch-failure: could not decode board ref from token \u2014 is this a valid source token?");let l=$t(c),d=Ho(l,$n(l,_t,{onWarn:console.warn,notifyChannel:n})),b={token:i},w=nt(r,"--reason");w&&(b.reason=w),be(d.sourceDataFetchFailure({params:b}));return}if(t==="validate-card-preflight"){let i=s??{kind:"fs-path",value:Lt(".")},c=ir(i,ur(i,_t,{onWarn:console.warn})),l=await Ht();be(c.validateCardPreflight({body:l}));return}if(t==="probe-source-preflight"){let i=De(r,"--source-idx","probe-source-preflight --source-idx <n>"),c=nt(r,"--out-ref"),l=s??{kind:"fs-path",value:Lt(".")},d=ir(l,ur(l,_t,{onWarn:console.warn})),b=await Ht(),w={sourceIdx:parseInt(i,10)};c&&(w.outRef=c),be(d.probeSourcePreflight({params:w,body:b}));return}if(t==="run-source-preflight"){let i=De(r,"--source-idx","run-source-preflight --source-idx <n>"),c=nt(r,"--out-ref"),l=s??{kind:"fs-path",value:Lt(".")},d=ir(l,ur(l,_t,{onWarn:console.warn})),b=await Ht(),w={sourceIdx:parseInt(i,10)};c&&(w.outRef=c),be(d.runSourcePreflight({params:w,body:b}));return}if(t==="eval-card-compute"){let i=s??{kind:"fs-path",value:Lt(".")},c=ir(i,ur(i,_t,{onWarn:console.warn})),l=await Ht();be(c.evalCardCompute({body:l}));return}if(t==="simulate-card-cycle"){let i=s??{kind:"fs-path",value:Lt(".")},c=ir(i,ur(i,_t,{onWarn:console.warn})),l=await Ht();be(c.simulateCardCycle({body:l}));return}if(t==="probe-tmp-source"){let i=De(r,"--out-ref","probe-tmp-source --out-ref <ref>"),c=s??{kind:"fs-path",value:Lt(".")},l=ir(c,ur(c,_t,{onWarn:console.warn})),d=await Ht();be(l.probeTmpSource({params:{outRef:i},body:d}));return}if(!s)throw new Error(`--base-ref is required for command "${t??"(none)"}"`);let o=()=>Ho(s,$n(s,_t,{onWarn:console.warn,notifyChannel:n})),u=()=>ir(s,ur(s,_t,{onWarn:console.warn}));switch(t){case"init":{let i=De(r,"--card-store-ref","init --base-ref <ref> --card-store-ref <b64-ref> --outputs-store-ref <b64-ref>"),c=De(r,"--outputs-store-ref","init --base-ref <ref> --card-store-ref <b64-ref> --outputs-store-ref <b64-ref>"),l=nt(r,"--scratch-store-ref"),d=nt(r,"--archive-store-ref"),b=await Ht();be(o().init({params:{cardStoreRef:i,outputsStoreRef:c,...l?{scratchStoreRef:l}:{},...d?{archiveStoreRef:d}:{}},body:b}));return}case"status":{be(o().status({}));return}case"get-card-store-ref":{be(o().getCardStoreRef({}));return}case"get-outputs-store-ref":{be(o().getOutputsStoreRef({}));return}case"get-scratch-store-ref":{be(o().getScratchStoreRef({}));return}case"get-archive-store-ref":{be(o().getArchiveStoreRef({}));return}case"get-outputs":{let i=De(r,"--type","get-outputs --base-ref <ref> --type <data-object|computed-values> [--key <key>] [--all]"),c=r.includes("--all");if(i==="data-object")if(c)be(o().getAllOutputsDataObjects({}));else{let l=De(r,"--key","get-outputs --type data-object --base-ref <ref> --key <datakey>");be(o().getOutputsDataObject({params:{key:l}}))}else if(i==="computed-values")if(c)be(o().getAllOutputsComputedValues({}));else{let l=De(r,"--key","get-outputs --type computed-values --base-ref <ref> --key <card-id>");be(o().getOutputsComputedValues({params:{key:l}}))}else throw new Error(`get-outputs: unknown --type "${i}", expected data-object | computed-values`);return}case"remove-card":{let i=De(r,"--id","remove-card --base-ref <ref> --id <card-id>");be(o().removeCard({params:{id:i}}));return}case"retrigger":{let i=De(r,"--id","retrigger --base-ref <ref> --id <card-id>");be(o().retrigger({params:{id:i}}));return}case"process-accumulated-events":{be(await o().processAccumulatedEvents({}));return}case"upsert-card":{let i=nt(r,"--card-id"),c=r.includes("--all"),l=r.includes("--restart");if(!i&&!c)throw new Error("upsert-card requires --card-id <id> or --all");let d={};i&&(d.cardId=i),c&&(d.all=!0),l&&(d.restart=!0),be(o().upsertCard({params:d}));return}case"task-failed":{let i={token:De(r,"--token","task-failed --base-ref <ref> --token <token> [--error <message>]")},c=nt(r,"--error");c&&(i.error=c),be(o().taskFailed({params:i}));return}case"task-progress":{let i=De(r,"--token","task-progress --base-ref <ref> --token <token> [--update <json>]"),c=nt(r,"--update"),l=c?JSON.parse(c):{};be(o().taskProgress({params:{token:i},body:{update:l}}));return}case"validate-card":{let i=nt(r,"--card-id"),c=r.includes("--all");if(!i&&!c)throw new Error("validate-card requires --card-id <id> or --all");let l={};i&&(l.cardId=i),c&&(l.all=!0),be(u().validateCard({params:l}));return}case"probe-source":{let i=De(r,"--card-id","probe-source --base-ref <ref> --card-id <id> --source-idx <n> --out-ref <ref>"),c=De(r,"--source-idx","probe-source --base-ref <ref> --card-id <id> --source-idx <n> --out-ref <ref>"),l=nt(r,"--out-ref"),d=await Ht(),b={cardId:i,sourceIdx:parseInt(c,10)};l&&(b.outRef=l),be(u().probeSource({params:b,body:d}));return}case"describe-task-executor-capabilities":{be(u().describeTaskExecutorCapabilities({}));return}default:throw new Error(`Unknown command: ${t??"(none)"}`)}}var U_=process.argv[1]&&Lt(process.argv[1])===Lt(new URL(import.meta.url).pathname.replace(/^\/([A-Z]:)/,"$1"));U_&&z_(process.argv.slice(2)).catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(t),process.exit(1)});export{z_ as cli};
|