@kitelev/exocortex-cli 16.141.0 → 16.141.1

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.
Files changed (2) hide show
  1. package/dist/index.js +26 -26
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // @kitelev/exocortex-cli v16.141.0
2
+ // @kitelev/exocortex-cli v16.141.1
3
3
  // CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more
4
4
  // License: MIT
5
5
 
@@ -45,7 +45,7 @@ Expecting `+Mh.join(", ")+", got '"+(this.terminals_[yt]||yt)+"'":Pb="Parse erro
45
45
  `)+`
46
46
  `+s.trimStart()),s}findPrefixStarDeclarations(e){let t=[],r=e.toUpperCase(),i=0;for(;i<e.length;){if(e[i]==="'"||e[i]==='"'){let s=e[i];for(i++;i<e.length&&e[i]!==s;)e[i]==="\\"&&i++,i++;i++;continue}if(r.substring(i,i+6)==="PREFIX"){let s=i;for(i+=6;i<e.length&&/\s/.test(e[i]);)i++;if(e[i]==="*"){for(i++;i<e.length&&/\s/.test(e[i]);)i++;if(e[i]==="<"){i++;let o=i;for(;i<e.length&&e[i]!==">";)i++;if(e[i]===">"){let c=e.substring(o,i);i++;let l=this.findDeclarationEnd(e,i);t.push({uri:c,startPos:s,endPos:l}),i=l;continue}else throw new ol(`Unclosed IRI in PREFIX* declaration at position ${o}`)}else throw new ol(`Expected IRI after PREFIX* at position ${i}`)}else continue}i++}return t}findDeclarationEnd(e,t){let r=t;for(;r<e.length;){let i=e[r];if(i===`
47
47
  `)return r+1;let s=e.substring(r).toUpperCase();if(s.startsWith("PREFIX")||s.startsWith("BASE")||s.startsWith("SELECT")||s.startsWith("CONSTRUCT")||s.startsWith("DESCRIBE")||s.startsWith("ASK"))return r;if(/\s/.test(i)){r++;continue}break}return r}extractPrefixFromUri(e){let t=e.replace(/^https?:\/\//,"");t=t.replace(/\/$/,"").replace(/#$/,"");let r=t.split(/[/.#]+/).filter(Boolean);if(r.length===0)return null;let i=r[r.length-1];return/^(ontology|vocab|schema|ns|core)$/i.test(i)&&r.length>1?r[r.length-2].toLowerCase():i.toLowerCase().replace(/[^a-z0-9]/g,"")}};Zo.PrefixStarTransformer=Uw;var ol=class extends Error{static{a(this,"PrefixStarTransformerError")}constructor(e){super(`PREFIX* transformation error: ${e}`),this.name="PrefixStarTransformerError"}};Zo.PrefixStarTransformerError=ol});var Bw=v(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});cl.DescribeOptionsTransformer=cl.DescribeOptionsTransformerError=void 0;var Gp=class extends Error{static{a(this,"DescribeOptionsTransformerError")}constructor(e){super(e),this.name="DescribeOptionsTransformerError"}};cl.DescribeOptionsTransformerError=Gp;var al=class n{static{a(this,"DescribeOptionsTransformer")}transform(e){if(!n.DESCRIBE_QUERY_PATTERN.test(e))return{query:e};let t=e,r={},i=!1,s=n.DEPTH_PATTERN.exec(e);if(s){let o=parseInt(s[1],10);if(o<0)throw new Gp(`DESCRIBE DEPTH must be a non-negative integer, got: ${o}`);r.depth=o,i=!0,n.DEPTH_PATTERN.lastIndex=0,t=t.replace(n.DEPTH_PATTERN,"")}return n.DEPTH_PATTERN.lastIndex=0,n.SYMMETRIC_PATTERN.test(e)&&(r.symmetric=!0,i=!0,n.SYMMETRIC_PATTERN.lastIndex=0,t=t.replace(n.SYMMETRIC_PATTERN,"")),n.SYMMETRIC_PATTERN.lastIndex=0,t=t.replace(/\s{2,}/g," ").trim(),{query:t,options:i?r:void 0}}hasDescribeOptions(e){let t=n.DEPTH_PATTERN.test(e);n.DEPTH_PATTERN.lastIndex=0;let r=n.SYMMETRIC_PATTERN.test(e);return n.SYMMETRIC_PATTERN.lastIndex=0,t||r}};cl.DescribeOptionsTransformer=al;al.DEPTH_PATTERN=/\bDEPTH\s+(\d+)/gi;al.SYMMETRIC_PATTERN=/\bSYMMETRIC\b/gi;al.DESCRIBE_QUERY_PATTERN=/\bDESCRIBE\b/i});var RR=v(ll=>{"use strict";Object.defineProperty(ll,"__esModule",{value:!0});ll.DirectionalLangTagTransformerError=ll.DirectionalLangTagTransformer=void 0;var Wp=class n{static{a(this,"DirectionalLangTagTransformer")}constructor(){this.directionMappings=new Map}transform(e){return this.directionMappings.clear(),e.replace(n.DIRECTIONAL_TAG_REGEX,(t,r,i,s,o)=>{let c=s.toLowerCase();return this.directionMappings.set(c,o),`${r}${i}${r}@${s}`})}getDirection(e){return this.directionMappings.get(e.toLowerCase())}getAllMappings(){return new Map(this.directionMappings)}hasDirectionalTags(e){return n.DIRECTIONAL_TAG_REGEX.lastIndex=0,n.DIRECTIONAL_TAG_REGEX.test(e)}clearMappings(){this.directionMappings.clear()}};ll.DirectionalLangTagTransformer=Wp;Wp.DIRECTIONAL_TAG_REGEX=/(["'])((?:[^\\]|\\.)*?)\1@([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)--(ltr|rtl)/g;var Vw=class extends Error{static{a(this,"DirectionalLangTagTransformerError")}constructor(e){super(`Directional language tag transformation error: ${e}`),this.name="DirectionalLangTagTransformerError"}};ll.DirectionalLangTagTransformerError=Vw});var CR=v(fl=>{"use strict";Object.defineProperty(fl,"__esModule",{value:!0});fl.TripleTermTransformerError=fl.TripleTermTransformer=void 0;var qw=class{static{a(this,"TripleTermTransformer")}transform(e){let t=e,r,i=0,s=100;do if(r=t,t=this.transformSinglePass(t),i++,i>s)throw new ul("Too many nested triple terms (max 100 iterations)");while(t!==r);return t}hasTripleTermSyntax(e){return this.findTripleTermPositions(e).length>0}transformSinglePass(e){let t=this.findTripleTermPositions(e);if(t.length===0)return e;let r=e;for(let i=t.length-1;i>=0;i--){let s=t[i],o=this.extractTripleTerm(r,s);if(o){let c=this.convertToStandardSyntax(o.content);r=r.substring(0,s)+c+r.substring(s+o.length)}}return r}findTripleTermPositions(e){let t=[],r=0;for(;r<e.length;){if(e[r]==="'"){r=this.skipStringLiteral(e,r,"'");continue}if(e[r]==='"'){r=this.skipStringLiteral(e,r,'"');continue}if(e.substring(r,r+2)==="<<"&&this.isParenthesizedTripleTerm(e,r)){t.push(r),r+=2;continue}r++}return t}skipStringLiteral(e,t,r){let i=r.repeat(3);if(e.substring(t,t+3)===i){for(t+=3;t<e.length;){if(e.substring(t,t+3)===i)return t+3;e[t]==="\\"&&t++,t++}return t}for(t++;t<e.length&&e[t]!==r;)e[t]==="\\"&&t++,t++;return t+1}isParenthesizedTripleTerm(e,t){let r=t+2;for(;r<e.length&&/\s/.test(e[r]);)r++;return e[r]==="("}extractTripleTerm(e,t){let r=t+2;for(;r<e.length&&/\s/.test(e[r]);)r++;if(e[r]!=="(")return null;r++;let i=1;for(;r<e.length&&i>0;){if(e[r]==="'"||e[r]==='"'){r=this.skipStringLiteral(e,r,e[r]);continue}if(e.substring(r,r+2)==="<<"&&this.isParenthesizedTripleTerm(e,r)){for(r+=2;r<e.length&&/\s/.test(e[r]);)r++;e[r]==="("&&(i++,r++);continue}if(e.substring(r,r+2)==="<<"){r+=2;let s=1;for(;r<e.length&&s>0;){if(e[r]==="'"||e[r]==='"'){r=this.skipStringLiteral(e,r,e[r]);continue}if(e.substring(r,r+2)==="<<"){s++,r+=2;continue}if(e.substring(r,r+2)===">>"){s--,r+=2;continue}r++}continue}if(e[r]==="("){i++,r++;continue}if(e[r]===")"){let s=r+1;for(;s<e.length&&/\s/.test(e[s]);)s++;if(e.substring(s,s+2)===">>"){if(i--,i===0){let o=e.substring(t,s+2);return{content:o,length:o.length}}r=s+2;continue}r++;continue}r++}if(i>0)throw new ul(`Unclosed triple term at position ${t}: missing )>>`);return null}convertToStandardSyntax(e){let t=e.match(/^<<\s*\(\s*([\s\S]*?)\s*\)\s*>>$/);if(!t)throw new ul(`Invalid triple term syntax: ${e.substring(0,50)}...`);return`<< ${t[1]} >>`}};fl.TripleTermTransformer=qw;var ul=class extends Error{static{a(this,"TripleTermTransformerError")}constructor(e){super(`Triple term transformation error: ${e}`),this.name="TripleTermTransformerError"}};fl.TripleTermTransformerError=ul});var Ww=v(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});Hp.VaultPrefixTransformer=void 0;var w7=/PREFIX\s+(\w+)\s*:/gi,S7=new Set(["mailto","http","https","urn","ftp","prefix","base","select","construct","describe","ask","where","filter","optional","union","graph","order","group","having","limit","offset","values","bind","minus","service","insert","delete","load","clear","drop","create","move","copy","add"]),Gw=class{static{a(this,"VaultPrefixTransformer")}constructor(){this.vaultPrefixes=new Map}setVaultPrefixes(e){this.vaultPrefixes=new Map(e)}getVaultPrefixes(){return new Map(this.vaultPrefixes)}transform(e){if(this.vaultPrefixes.size===0)return e;let t=this.findDeclaredPrefixes(e),r=[];for(let[o,c]of this.vaultPrefixes)!t.has(o.toLowerCase())&&!S7.has(o.toLowerCase())&&r.push({prefix:o,baseIRI:c});if(r.length===0)return e;let i="",s=0;for(;s<e.length;){let o=e[s];if(o==='"'||o==="'"){let l=this.skipLiteral(e,s);i+=e.substring(s,l),s=l;continue}if(o==="<"){let l=e.indexOf(">",s);l!==-1?(i+=e.substring(s,l+1),s=l+1):(i+=o,s++);continue}if(o==="#"){let l=e.indexOf(`
48
- `,s);l!==-1?(i+=e.substring(s,l),s=l):(i+=e.substring(s),s=e.length);continue}let c=this.tryReplacePrefixedName(e,s,r);if(c){i+=c.iri,s=c.endIndex;continue}i+=o,s++}return i}tryReplacePrefixedName(e,t,r){if(t>0&&/[a-zA-Z0-9_]/.test(e[t-1]))return null;for(let{prefix:i,baseIRI:s}of r){if(e.substring(t,t+i.length+1)!==i+":")continue;let o=t+i.length+1,c=o;for(;c<e.length&&/[a-zA-Z0-9_.%-]/.test(e[c]);)c++;if(c===o)continue;let l=e.substring(o,c);return{iri:`<${s}${l}.md>`,endIndex:c}}return null}findDeclaredPrefixes(e){let t=new Set,r=new RegExp(w7.source,"gi"),i;for(;(i=r.exec(e))!==null;)t.add(i[1].toLowerCase());return t}skipLiteral(e,t){let r=e[t];if(t+2<e.length&&e.substring(t,t+3)===r+r+r){let s=e.indexOf(r+r+r,t+3);return s!==-1?s+3:e.length}let i=t+1;for(;i<e.length&&e[i]!==r;)e[i]==="\\"&&i++,i++;return i<e.length?i+1:e.length}};Hp.VaultPrefixTransformer=Gw});var dl=v(Nn=>{"use strict";var v7=Nn&&Nn.__createBinding||(Object.create?(function(n,e,t,r){r===void 0&&(r=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[t]},"get")}),Object.defineProperty(n,r,i)}):(function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]})),E7=Nn&&Nn.__setModuleDefault||(Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e}),T7=Nn&&Nn.__importStar||(function(){var n=a(function(e){return n=Object.getOwnPropertyNames||function(t){var r=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[r.length]=i);return r},n(e)},"ownKeys");return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=n(e),i=0;i<r.length;i++)r[i]!=="default"&&v7(t,e,r[i]);return E7(t,e),t}})();Object.defineProperty(Nn,"__esModule",{value:!0});Nn.SPARQLParser=Nn.ExoQLParser=Nn.SPARQLParseError=void 0;var OR=T7(xR()),Hw=jw(),zw=$w(),PR=IR(),Kw=Bw(),A7=RR(),Xw=CR(),x7=Ww(),pr=class extends Error{static{a(this,"SPARQLParseError")}constructor(e,t,r,i){super(e,i?{cause:i}:void 0),this.name="SPARQLParseError",this.line=t,this.column=r}};Nn.SPARQLParseError=pr;var zp=class{static{a(this,"ExoQLParser")}constructor(e){this.lastDirectionMappings=new Map,this.parser=new OR.Parser({sparqlStar:!0}),this.generator=new OR.Generator({sparqlStar:!0}),this.caseWhenTransformer=new Hw.CaseWhenTransformer,this.lateralTransformer=new zw.LateralTransformer,this.prefixStarTransformer=new PR.PrefixStarTransformer(e?.vocabularyResolver),this.describeOptionsTransformer=new Kw.DescribeOptionsTransformer,this.directionalLangTagTransformer=new A7.DirectionalLangTagTransformer,this.tripleTermTransformer=new Xw.TripleTermTransformer,this.vaultPrefixTransformer=new x7.VaultPrefixTransformer}setVaultPrefixes(e){this.vaultPrefixTransformer.setVaultPrefixes(e)}parse(e){try{let t=this.vaultPrefixTransformer.transform(e),r=this.describeOptionsTransformer.transform(t);this.lastDescribeOptions=r.options;let i=r.query;i=this.directionalLangTagTransformer.transform(i),this.lastDirectionMappings=this.directionalLangTagTransformer.getAllMappings(),i=this.lateralTransformer.transform(i),i=this.caseWhenTransformer.transform(i),i=this.tripleTermTransformer.transform(i);let s=this.parser.parse(i);return this.validateQuery(s),this.lastDescribeOptions&&this.isDescribeQuery(s)&&(s.describeOptions=this.lastDescribeOptions),s}catch(t){if(t instanceof Kw.DescribeOptionsTransformerError)throw new pr(t.message);if(t instanceof zw.LateralTransformerError)throw new pr(t.message);if(t instanceof Hw.CaseWhenTransformerError)throw new pr(t.message);if(t instanceof Xw.TripleTermTransformerError)throw new pr(t.message);if(t instanceof Error){let r=t.message.match(/line (\d+), column (\d+)/),i=r?parseInt(r[1],10):void 0,s=r?parseInt(r[2],10):void 0;throw new pr(`SPARQL syntax error: ${t.message}`,i,s,t)}throw t}}parseWithOptions(e){return{query:this.parse(e),describeOptions:this.lastDescribeOptions}}getLastDescribeOptions(){return this.lastDescribeOptions}async parseAsync(e){try{let t=this.vaultPrefixTransformer.transform(e),r=this.describeOptionsTransformer.transform(t);this.lastDescribeOptions=r.options;let i=r.query;i=this.directionalLangTagTransformer.transform(i),this.lastDirectionMappings=this.directionalLangTagTransformer.getAllMappings(),i=await this.prefixStarTransformer.transform(i),i=this.lateralTransformer.transform(i),i=this.caseWhenTransformer.transform(i),i=this.tripleTermTransformer.transform(i);let s=this.parser.parse(i);return this.validateQuery(s),this.lastDescribeOptions&&this.isDescribeQuery(s)&&(s.describeOptions=this.lastDescribeOptions),s}catch(t){if(t instanceof Kw.DescribeOptionsTransformerError)throw new pr(t.message);if(t instanceof PR.PrefixStarTransformerError)throw new pr(t.message);if(t instanceof zw.LateralTransformerError)throw new pr(t.message);if(t instanceof Hw.CaseWhenTransformerError)throw new pr(t.message);if(t instanceof Xw.TripleTermTransformerError)throw new pr(t.message);if(t instanceof Error){let r=t.message.match(/line (\d+), column (\d+)/),i=r?parseInt(r[1],10):void 0,s=r?parseInt(r[2],10):void 0;throw new pr(`SPARQL syntax error: ${t.message}`,i,s,t)}throw t}}async parseAsyncWithOptions(e){return{query:await this.parseAsync(e),describeOptions:this.lastDescribeOptions}}hasPrefixStar(e){return/PREFIX\s*\*/i.test(e)}hasLateral(e){return this.lateralTransformer.hasLateral(e)}hasDescribeOptions(e){return this.describeOptionsTransformer.hasDescribeOptions(e)}hasDirectionalLangTags(e){return this.directionalLangTagTransformer.hasDirectionalTags(e)}hasTripleTermSyntax(e){return this.tripleTermTransformer.hasTripleTermSyntax(e)}getLastDirectionMappings(){return new Map(this.lastDirectionMappings)}getDirectionForLanguage(e){return this.lastDirectionMappings.get(e.toLowerCase())}toString(e){try{return this.generator.stringify(e)}catch(t){throw t instanceof Error?new pr(`Failed to serialize SPARQL query: ${t.message}`,void 0,void 0,t):t}}getQueryType(e){if("queryType"in e&&e.type==="query")return e.queryType;throw new pr("Query does not have a valid queryType property")}isSelectQuery(e){return"queryType"in e&&e.type==="query"&&e.queryType==="SELECT"}isConstructQuery(e){return"queryType"in e&&e.type==="query"&&e.queryType==="CONSTRUCT"}isAskQuery(e){return"queryType"in e&&e.type==="query"&&e.queryType==="ASK"}isDescribeQuery(e){return"queryType"in e&&e.type==="query"&&e.queryType==="DESCRIBE"}isUpdateQuery(e){return e.type==="update"}isInsertDataOperation(e){return"updateType"in e&&e.updateType==="insert"}isDeleteDataOperation(e){return"updateType"in e&&e.updateType==="delete"}validateQuery(e){if(!e||typeof e!="object")throw new pr("Invalid query: not an object");if(e.type!=="query"&&e.type!=="update")throw new pr(`Invalid type: expected "query" or "update", got "${e.type}"`);if(e.type==="query"){let t=["SELECT","CONSTRUCT","ASK","DESCRIBE"];if(!t.includes(e.queryType))throw new pr(`Invalid query type: expected one of ${t.join(", ")}, got "${e.queryType}"`)}}};Nn.ExoQLParser=zp;Nn.SPARQLParser=zp});var ec=v(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});Kp.AlgebraTranslatorError=void 0;var Yw=class extends Error{static{a(this,"AlgebraTranslatorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="AlgebraTranslatorError"}};Kp.AlgebraTranslatorError=Yw});var Xp=v(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});ms.isVariableExpression=I7;ms.isVariableTerm=R7;ms.isNamedNode=C7;ms.isLiteral=O7;ms.isPropertyPath=P7;ms.isAggregateExpression=F7;ms.isOperationExpression=D7;ms.isFunctionCallExpression=L7;function I7(n){return typeof n=="object"&&n!==null&&"expression"in n&&"variable"in n}a(I7,"isVariableExpression");function R7(n){return typeof n=="object"&&n!==null&&"termType"in n&&n.termType==="Variable"}a(R7,"isVariableTerm");function C7(n){return typeof n=="object"&&n!==null&&"termType"in n&&n.termType==="NamedNode"}a(C7,"isNamedNode");function O7(n){return typeof n=="object"&&n!==null&&"termType"in n&&n.termType==="Literal"}a(O7,"isLiteral");function P7(n){return typeof n=="object"&&n!==null&&"type"in n&&n.type==="path"}a(P7,"isPropertyPath");function F7(n){return typeof n=="object"&&n!==null&&"type"in n&&n.type==="aggregate"}a(F7,"isAggregateExpression");function D7(n){return typeof n=="object"&&n!==null&&"type"in n&&n.type==="operation"}a(D7,"isOperationExpression");function L7(n){return typeof n=="object"&&n!==null&&"type"in n&&(n.type==="functionCall"||n.type==="functioncall")}a(L7,"isFunctionCallExpression")});var FR=v(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});Yp.TripleTranslator=void 0;var pn=ec(),Qw=class{static{a(this,"TripleTranslator")}constructor(){this.directionMappings=new Map}setDirectionMappings(e){this.directionMappings=e}translateBGP(e){if(!("triples"in e)||!Array.isArray(e.triples))throw new pn.AlgebraTranslatorError("BGP pattern must have triples array");return{type:"bgp",triples:e.triples.map(t=>this.translateTriple(t))}}translateTriple(e){if(!e.subject||!e.predicate||!e.object)throw new pn.AlgebraTranslatorError("Triple must have subject, predicate, and object");return{subject:this.translateTripleElement(e.subject),predicate:this.translatePredicate(e.predicate),object:this.translateTripleElement(e.object)}}translateConstructTemplate(e){return!e||!Array.isArray(e)?[]:e.map(t=>this.translateTriple(t))}translatePredicate(e){return"type"in e&&e.type==="path"?this.translatePropertyPath(e):this.translateTripleElement(e)}translatePropertyPath(e){if(!("pathType"in e)||!e.pathType)throw new pn.AlgebraTranslatorError("Property path must have pathType");if(!("items"in e)||!Array.isArray(e.items))throw new pn.AlgebraTranslatorError("Property path must have items array");let t=e.items.map(r=>this.translatePathItem(r));switch(e.pathType){case"/":return{type:"path",pathType:"/",items:t};case"|":return{type:"path",pathType:"|",items:t};case"^":if(t.length!==1)throw new pn.AlgebraTranslatorError("Inverse path must have exactly one item");return{type:"path",pathType:"^",items:[t[0]]};case"+":if(t.length!==1)throw new pn.AlgebraTranslatorError("OneOrMore path must have exactly one item");return{type:"path",pathType:"+",items:[t[0]]};case"*":if(t.length!==1)throw new pn.AlgebraTranslatorError("ZeroOrMore path must have exactly one item");return{type:"path",pathType:"*",items:[t[0]]};case"?":if(t.length!==1)throw new pn.AlgebraTranslatorError("ZeroOrOne path must have exactly one item");return{type:"path",pathType:"?",items:[t[0]]};default:throw new pn.AlgebraTranslatorError(`Unsupported property path type: ${e.pathType}`)}}translatePathItem(e){if("type"in e&&e.type==="path")return this.translatePropertyPath(e);if("termType"in e&&e.termType==="NamedNode")return{type:"iri",value:e.value};let t="type"in e?e.type:"termType"in e?e.termType:"unknown";throw new pn.AlgebraTranslatorError(`Unsupported path item type: ${String(t)}`)}translateTripleElement(e){if(!e||!("termType"in e))throw new pn.AlgebraTranslatorError("Triple element must have termType");switch(e.termType){case"Variable":return{type:"variable",value:e.value};case"NamedNode":return{type:"iri",value:e.value};case"Literal":{let t={type:"literal",value:e.value,datatype:e.datatype?.value,language:e.language};if(e.language){let r=this.directionMappings.get(e.language.toLowerCase());r&&(t.direction=r)}return t}case"BlankNode":return{type:"blank",value:e.value};case"Quad":return this.translateQuotedTriple(e);default:throw new pn.AlgebraTranslatorError(`Unsupported term type: ${e.termType}`)}}translateQuotedTriple(e){if(!e.subject||!e.predicate||!e.object)throw new pn.AlgebraTranslatorError("Quoted triple must have subject, predicate, and object");return{type:"quoted",subject:this.translateTripleElement(e.subject),predicate:this.translateQuotedTriplePredicate(e.predicate),object:this.translateTripleElement(e.object)}}translateQuotedTriplePredicate(e){if(!e||!("termType"in e))throw new pn.AlgebraTranslatorError("Quoted triple predicate must have termType");switch(e.termType){case"Variable":return{type:"variable",value:e.value};case"NamedNode":return{type:"iri",value:e.value};default:throw new pn.AlgebraTranslatorError(`Quoted triple predicate must be IRI or Variable, got: ${e.termType}`)}}};Yp.TripleTranslator=Qw});var DR=v(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.ExpressionTranslator=void 0;var hl=ec(),Jw=class{static{a(this,"ExpressionTranslator")}constructor(e){this.translateWhereFn=e.translateWhere,this.translateBGPFn=e.translateBGP,this.translatePatternFn=e.translatePattern}translateExpression(e){if(!e)throw new hl.AlgebraTranslatorError("Expression cannot be null or undefined");if("type"in e&&e.type==="operation")return this.translateOperationExpression(e);let t="type"in e?e.type:void 0;if(t==="functioncall"||t==="functionCall"){let r=e;return{type:"functionCall",function:r.function,args:r.args.map(i=>this.translateExpression(i))}}if("termType"in e)return this.translateTermExpression(e);throw new hl.AlgebraTranslatorError(`Unsupported expression structure: ${JSON.stringify(e)}`)}translateFilter(e){if(!e.expression)throw new hl.AlgebraTranslatorError("Filter pattern must have expression");let t={type:"bgp",triples:[]};return{type:"filter",expression:this.translateExpression(e.expression),input:t}}translateTermExpression(e){if(e.termType==="Variable")return{type:"variable",name:e.value};if(e.termType==="Literal"){let t=e.value;return e.datatype&&(e.datatype.value.includes("#integer")||e.datatype.value.includes("#decimal")?t=parseFloat(e.value):e.datatype.value.includes("#boolean")&&(t=e.value==="true")),{type:"literal",value:t,datatype:e.datatype?.value}}return{type:"literal",value:String(e.value||e)}}translateOperationExpression(e){let t=["=","!=","<",">","<=",">="],r=["&&","||","!"],i=["+","-","*","/"],s=e.args.filter(o=>!("patterns"in o)||"termType"in o);return t.includes(e.operator)?{type:"comparison",operator:e.operator,left:this.translateExpression(s[0]),right:this.translateExpression(s[1])}:r.includes(e.operator)?{type:"logical",operator:e.operator,operands:s.map(o=>this.translateExpression(o))}:i.includes(e.operator)?{type:"arithmetic",operator:e.operator,left:this.translateExpression(s[0]),right:this.translateExpression(s[1])}:e.operator==="exists"||e.operator==="notexists"?this.translateExistsExpression(e):e.operator==="in"||e.operator==="notin"?this.translateInExpression(e):{type:"function",function:e.operator,args:s.map(o=>this.translateExpression(o))}}translateExistsExpression(e){if(!e.args||e.args.length!==1)throw new hl.AlgebraTranslatorError("EXISTS/NOT EXISTS must have exactly one pattern argument");let t=e.args[0],r;return t.type==="group"&&"patterns"in t&&t.patterns?r=this.translateWhereFn(t.patterns):t.type==="bgp"?r=this.translateBGPFn(t):r=this.translatePatternFn(t),{type:"exists",negated:e.operator==="notexists",pattern:r}}translateInExpression(e){if(!e.args||e.args.length!==2)throw new hl.AlgebraTranslatorError("IN/NOT IN must have exactly 2 arguments (expression and list)");let t=e.args[0],r=e.args[1];if(!Array.isArray(r))throw new hl.AlgebraTranslatorError("IN/NOT IN second argument must be an array of values");return{type:"in",expression:this.translateExpression(t),list:r.map(i=>this.translateExpression(i)),negated:e.operator==="notin"}}};Qp.ExpressionTranslator=Jw});var kR=v(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});Jp.PatternTranslator=void 0;var LR=$w(),Ur=ec(),NR=Xp(),Zw=class{static{a(this,"PatternTranslator")}constructor(e){this.directionMappings=new Map,this.translateExpressionFn=e.translateExpression,this.translateSelectFn=e.translateSelect,this.translateBGPFn=e.translateBGP}setDirectionMappings(e){this.directionMappings=e}translateWhere(e){if(e.length===0)throw new Ur.AlgebraTranslatorError("Empty WHERE clause");let t=e.filter(o=>o.type==="filter"),r=e.filter(o=>o.type==="bind"),i=e.filter(o=>o.type!=="filter"&&o.type!=="bind"),s;if(i.length===0)s={type:"bgp",triples:[]};else if(i.length===1)if(i[0].type==="optional"){let o=i[0].expression;s={type:"leftjoin",left:{type:"bgp",triples:[]},right:this.translateWhere(i[0].patterns),expression:o?this.translateExpressionFn(o):void 0}}else s=this.translatePattern(i[0]);else{if(i[0].type==="optional"){let o=i[0].expression;s={type:"leftjoin",left:{type:"bgp",triples:[]},right:this.translateWhere(i[0].patterns),expression:o?this.translateExpressionFn(o):void 0}}else s=this.translatePattern(i[0]);for(let o=1;o<i.length;o++){let c=i[o];if(this.isLateralPattern(c)){let l=this.extractLateralSubquery(c),u=this.removeLateralMarker(l),f=this.translateSelectFn(u);s={type:"lateraljoin",left:s,right:f}}else if(c.type==="optional"){let l=c.expression;s={type:"leftjoin",left:s,right:this.translateWhere(c.patterns),expression:l?this.translateExpressionFn(l):void 0}}else{let l=this.translatePattern(c);s={type:"join",left:s,right:l}}}}for(let o of r)s=this.translateBind(o,s);for(let o of t)s={type:"filter",expression:this.translateExpressionFn(o.expression),input:s};return s}translatePattern(e){if(!e||!e.type)throw new Ur.AlgebraTranslatorError("Invalid pattern: missing type");switch(e.type){case"bgp":return this.translateBGPFn(e);case"filter":return this.translateFilter(e);case"optional":return this.translateOptional(e);case"union":return this.translateUnion(e);case"minus":return this.translateMinus(e);case"values":return this.translateValues(e);case"group":return this.translateWhere(e.patterns);case"query":return this.translateSubquery(e);case"service":return this.translateService(e);case"graph":return this.translateGraph(e);default:throw new Ur.AlgebraTranslatorError(`Unsupported pattern type: ${e.type}`)}}translateFilter(e){if(!e.expression)throw new Ur.AlgebraTranslatorError("Filter pattern must have expression");let t={type:"bgp",triples:[]};return{type:"filter",expression:this.translateExpressionFn(e.expression),input:t}}translateOptional(e){if(!e.patterns||e.patterns.length===0)throw new Ur.AlgebraTranslatorError("OPTIONAL pattern must have patterns");let t=e.expression;return{type:"leftjoin",left:{type:"bgp",triples:[]},right:this.translateWhere(e.patterns),expression:t?this.translateExpressionFn(t):void 0}}translateUnion(e){if(!e.patterns||e.patterns.length<2)throw new Ur.AlgebraTranslatorError("UNION pattern must have at least 2 patterns");let t=a(i=>i.type==="graph"?this.translateGraph(i):i.type==="service"?this.translateService(i):"patterns"in i&&i.patterns&&Array.isArray(i.patterns)?this.translateWhere(i.patterns):this.translateWhere([i]),"translateBranch"),r={type:"union",left:t(e.patterns[0]),right:t(e.patterns[1])};for(let i=2;i<e.patterns.length;i++)r={type:"union",left:r,right:t(e.patterns[i])};return r}translateMinus(e){if(!e.patterns||e.patterns.length===0)throw new Ur.AlgebraTranslatorError("MINUS pattern must have patterns");return{type:"minus",left:{type:"bgp",triples:[]},right:this.translateWhere(e.patterns)}}translateValues(e){if(!e.values||!Array.isArray(e.values))throw new Ur.AlgebraTranslatorError("VALUES pattern must have values array");let t=new Set;for(let i of e.values)for(let s of Object.keys(i)){let o=s.startsWith("?")?s.slice(1):s;t.add(o)}let r=e.values.map(i=>this.translateValuesBinding(i));return{type:"values",variables:Array.from(t),bindings:r}}translateValuesBinding(e){let t={};for(let[r,i]of Object.entries(e)){let s=r.startsWith("?")?r.slice(1):r,o=i;if(o)if(o.termType==="NamedNode")t[s]={type:"iri",value:o.value};else if(o.termType==="Literal"){let c=o,l={type:"literal",value:c.value,datatype:c.datatype?.value,language:c.language||void 0};if(c.language){let u=this.directionMappings.get(c.language.toLowerCase());u&&(l.direction=u)}t[s]=l}else throw new Ur.AlgebraTranslatorError(`Unsupported VALUES term type: ${o.termType}`)}return t}translateBind(e,t){if(!e.variable||!e.expression)throw new Ur.AlgebraTranslatorError("BIND pattern must have variable and expression");return{type:"extend",variable:e.variable.value,expression:this.translateExpressionFn(e.expression),input:t}}translateSubquery(e){if(e.queryType!=="SELECT")throw new Ur.AlgebraTranslatorError(`Only SELECT subqueries are supported, got: ${String(e.queryType)}`);let t=this.removeLateralMarker(e);return{type:"subquery",query:this.translateSelectFn(t)}}translateService(e){if(!e.name||e.name.termType!=="NamedNode")throw new Ur.AlgebraTranslatorError("SERVICE pattern must have a NamedNode endpoint");if(!e.patterns||!Array.isArray(e.patterns))throw new Ur.AlgebraTranslatorError("SERVICE pattern must have patterns array");return{type:"service",endpoint:e.name.value,pattern:this.translateWhere(e.patterns),silent:e.silent||!1}}translateGraph(e){if(!e.name)throw new Ur.AlgebraTranslatorError("GRAPH pattern must have a name (IRI or variable)");if(!e.patterns||!Array.isArray(e.patterns))throw new Ur.AlgebraTranslatorError("GRAPH pattern must have patterns array");let t;if(e.name.termType==="NamedNode")t={type:"iri",value:e.name.value};else if(e.name.termType==="Variable")t={type:"variable",value:e.name.value};else throw new Ur.AlgebraTranslatorError(`GRAPH pattern name must be NamedNode or Variable, got: ${e.name.termType}`);return{type:"graph",name:t,pattern:this.translateWhere(e.patterns)}}isLateralPattern(e){if(e.type==="query"&&this.isLateralSubquery(e))return!0;if(e.type==="group"&&e.patterns?.length===1){let t=e.patterns[0];if(t.type==="query"&&this.isLateralSubquery(t))return!0}return!1}extractLateralSubquery(e){if(e.type==="query")return e;if(e.type==="group"&&e.patterns?.length===1){let t=e.patterns[0];if(t.type==="query")return t}throw new Ur.AlgebraTranslatorError("Invalid lateral pattern structure")}isLateralSubquery(e){return!("queryType"in e)||e.queryType!=="SELECT"||!("variables"in e)||!e.variables?!1:e.variables.some(i=>(0,NR.isVariableTerm)(i)&&i.value===LR.LateralTransformer.LATERAL_MARKER)}removeLateralMarker(e){if(!("variables"in e)||!e.variables)return e;let t=e,r=t.variables;return{...t,variables:r.filter(i=>!((0,NR.isVariableTerm)(i)&&i.value===LR.LateralTransformer.LATERAL_MARKER))}}};Jp.PatternTranslator=Zw});var jR=v(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});Zp.AggregateTranslator=void 0;var MR=ec(),N7=Xp(),eS=class{static{a(this,"AggregateTranslator")}constructor(e){this.aggregateCounter=0,this.translateExpressionFn=e.translateExpression}resetCounter(){this.aggregateCounter=0}extractAggregatesWithMapping(e,t){if(!e)return[];let r=[];for(let i of e)(0,N7.isVariableExpression)(i)&&("type"in i.expression&&i.expression.type==="aggregate"?(r.push({variable:i.variable.value,expression:this.translateAggregateExpression(i.expression)}),t.set(i.expression,i.variable.value)):this.collectNestedAggregates(i.expression,r,t));return r}extractGroupVariables(e){return e?e.filter(t=>t.expression&&"termType"in t.expression&&t.expression.termType==="Variable").map(t=>t.expression.value):[]}extractHavingExpressions(e,t,r){if(!e||e.length===0)return[];for(let i of e)this.collectNestedAggregates(i,t,r);return e.map(i=>this.transformExpressionWithAggregateVars(i,r))}transformExpressionWithAggregateVars(e,t){let r=t.get(e);if(r!==void 0)return{type:"variable",name:r};if("type"in e&&e.type==="operation"&&"args"in e){let i=e,s=i.args.filter(u=>!Array.isArray(u)&&!("patterns"in u)).map(u=>this.transformExpressionWithAggregateVars(u,t)),o=["=","!=","<",">","<=",">="],c=["&&","||","!"],l=["+","-","*","/"];return o.includes(i.operator)?{type:"comparison",operator:i.operator,left:s[0],right:s[1]}:c.includes(i.operator)?{type:"logical",operator:i.operator,operands:s}:l.includes(i.operator)?{type:"arithmetic",operator:i.operator,left:s[0],right:s[1]}:{type:"function",function:i.operator,args:s}}return this.translateExpressionFn(e)}translateOrderComparator(e){return{expression:this.translateExpressionFn(e.expression),descending:e.descending||!1}}translateAggregateExpression(e){let t=e.aggregation,r=a(()=>{if(e.expression&&!("termType"in e.expression&&e.expression.termType==="Wildcard"))return this.translateExpressionFn(e.expression)},"translateInnerExpr");if(typeof t=="string"){let s=t.toLowerCase();return["count","sum","avg","min","max","group_concat","sample"].includes(s)?{type:"aggregate",aggregation:s,expression:r(),distinct:e.distinct||!1,separator:e.separator}:{type:"aggregate",aggregation:{type:"custom",iri:t},expression:r(),distinct:e.distinct||!1,separator:e.separator}}let i=t;if(i&&typeof i=="object"){let s,o=i;if(o.termType==="NamedNode"&&typeof o.value=="string")s=o.value;else if("value"in o)s=String(o.value);else throw new MR.AlgebraTranslatorError(`Invalid custom aggregate: expected IRI but got ${JSON.stringify(i)}`);return{type:"aggregate",aggregation:{type:"custom",iri:s},expression:r(),distinct:e.distinct||!1,separator:e.separator}}throw new MR.AlgebraTranslatorError(`Unknown aggregate format: ${JSON.stringify(t)}`)}collectNestedAggregates(e,t,r){if(e){if("type"in e&&e.type==="aggregate"){let i=`__agg${this.aggregateCounter++}`;t.push({variable:i,expression:this.translateAggregateExpression(e)}),r.set(e,i)}else if("type"in e&&e.type==="operation"&&"args"in e){let i=e;for(let s of i.args)!Array.isArray(s)&&"type"in s&&!("patterns"in s)?this.collectNestedAggregates(s,t,r):"termType"in s&&this.collectNestedAggregates(s,t,r)}}}};Zp.AggregateTranslator=eS});var pl=v(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.AlgebraTranslator=ea.ExoQLAlgebraTranslator=ea.AlgebraTranslatorError=void 0;var em=ec(),tm=Xp(),k7=FR(),M7=DR(),j7=kR(),$7=jR(),U7=ec();Object.defineProperty(ea,"AlgebraTranslatorError",{enumerable:!0,get:a(function(){return U7.AlgebraTranslatorError},"get")});var rm=class{static{a(this,"ExoQLAlgebraTranslator")}constructor(){this.tripleTranslator=new k7.TripleTranslator,this.expressionTranslator=new M7.ExpressionTranslator({translateWhere:a(e=>this.patternTranslator.translateWhere(e),"translateWhere"),translateBGP:a(e=>this.tripleTranslator.translateBGP(e),"translateBGP"),translatePattern:a(e=>this.patternTranslator.translatePattern(e),"translatePattern")}),this.patternTranslator=new j7.PatternTranslator({translateExpression:a(e=>this.expressionTranslator.translateExpression(e),"translateExpression"),translateSelect:a(e=>this.translateSelect(e),"translateSelect"),translateBGP:a(e=>this.tripleTranslator.translateBGP(e),"translateBGP")}),this.aggregateTranslator=new $7.AggregateTranslator({translateExpression:a(e=>this.expressionTranslator.translateExpression(e),"translateExpression")})}setDirectionMappings(e){this.tripleTranslator.setDirectionMappings(e),this.patternTranslator.setDirectionMappings(e)}translate(e){if(e.type!=="query")throw new em.AlgebraTranslatorError("Only query operations are supported (not updates)");if(e.queryType==="SELECT")return this.translateSelect(e);if(e.queryType==="CONSTRUCT")return this.translateConstruct(e);if(e.queryType==="ASK")return this.translateAsk(e);if(e.queryType==="DESCRIBE")return this.translateDescribe(e);throw new em.AlgebraTranslatorError(`Query type ${String(e.queryType)} not yet supported`)}translateSelect(e){if(!e.where||e.where.length===0)throw new em.AlgebraTranslatorError("SELECT query must have WHERE clause");let t=this.patternTranslator.translateWhere(e.where);this.aggregateTranslator.resetCounter();let r=new Map,i=Array.isArray(e.variables)?e.variables.filter(l=>!("termType"in l&&l.termType==="Wildcard")):[],s=this.aggregateTranslator.extractAggregatesWithMapping(i,r),o=this.aggregateTranslator.extractGroupVariables(e.group),c=this.aggregateTranslator.extractHavingExpressions(e.having,s,r);if((s.length>0||o.length>0||c.length>0)&&(t={type:"group",variables:o,aggregates:s,having:c.length>0?c:void 0,input:t}),i.length>0){for(let l of i)if((0,tm.isVariableExpression)(l)){if("type"in l.expression&&l.expression.type==="aggregate")continue;let u=this.aggregateTranslator.transformExpressionWithAggregateVars(l.expression,r);t={type:"extend",variable:l.variable.value,expression:u,input:t}}}if(e.order&&e.order.length>0&&(t={type:"orderby",comparators:e.order.map(l=>this.aggregateTranslator.translateOrderComparator(l)),input:t}),i.length>0){let l=i.filter(u=>(0,tm.isVariableTerm)(u)||(0,tm.isVariableExpression)(u)).map(u=>(0,tm.isVariableTerm)(u)?u.value:u.variable.value);l.length>0&&(t={type:"project",variables:l,input:t})}return e.distinct&&(t={type:"distinct",input:t}),e.reduced&&(t={type:"reduced",input:t}),(e.limit!==void 0||e.offset!==void 0)&&(t={type:"slice",limit:e.limit,offset:e.offset,input:t}),t}translateConstruct(e){let t=this.tripleTranslator.translateConstructTemplate(e.template??[]);if(!e.where||e.where.length===0)throw new em.AlgebraTranslatorError("CONSTRUCT query must have WHERE clause");let r=this.patternTranslator.translateWhere(e.where),i=e;return(i.limit!==void 0||i.offset!==void 0)&&(r={type:"slice",limit:i.limit,offset:i.offset,input:r}),{type:"construct",template:t,where:r}}translateAsk(e){return{type:"ask",where:e.where&&e.where.length>0?this.patternTranslator.translateWhere(e.where):{type:"bgp",triples:[]}}}translateDescribe(e){let t=[];if(e.variables&&Array.isArray(e.variables)){let s=e.variables;for(let o of s)o.termType==="Wildcard"||o.value==="*"||(o.termType==="Variable"?t.push({type:"variable",value:o.value}):o.termType==="NamedNode"&&t.push({type:"iri",value:o.value}))}let r;e.where&&e.where.length>0&&(r=this.patternTranslator.translateWhere(e.where));let i=e.describeOptions;return{type:"describe",resources:t,where:r,depth:i?.depth,symmetric:i?.symmetric}}};ea.ExoQLAlgebraTranslator=rm;ea.AlgebraTranslator=rm});var gs=v(nm=>{"use strict";Object.defineProperty(nm,"__esModule",{value:!0});nm.SolutionMapping=void 0;var $R=Ge(),UR=Ce(),BR=Mt(),tS=class n{static{a(this,"SolutionMapping")}constructor(e){this.bindings=e?new Map(e):new Map}get(e){return this.bindings.get(e)}set(e,t){this.bindings.set(e,t)}has(e){return this.bindings.has(e)}variables(){return Array.from(this.bindings.keys())}getBindings(){return new Map(this.bindings)}isCompatibleWith(e){for(let[t,r]of this.bindings.entries()){let i=e.get(t);if(i!==void 0&&!this.areEqual(r,i))return!1}return!0}merge(e){if(!this.isCompatibleWith(e))return null;let t=new n(this.bindings);for(let[r,i]of e.getBindings().entries())t.set(r,i);return t}clone(){return new n(this.bindings)}areEqual(e,t){return e instanceof $R.Literal&&t instanceof $R.Literal?e.equals(t):e instanceof UR.IRI&&t instanceof UR.IRI?e.value===t.value:e instanceof BR.BlankNode&&t instanceof BR.BlankNode?e.id===t.id:!1}toJSON(){let e={};for(let[t,r]of this.bindings.entries())e[t]=r.toString();return e}size(){return this.bindings.size}};nm.SolutionMapping=tS});var qR=v(gl=>{"use strict";Object.defineProperty(gl,"__esModule",{value:!0});gl.PropertyPathExecutor=gl.PropertyPathExecutorError=void 0;var B7=gs(),im=Ce(),VR=Mt(),V7=Ge(),ml=class extends Error{static{a(this,"PropertyPathExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="PropertyPathExecutorError"}};gl.PropertyPathExecutorError=ml;var rS=class n{static{a(this,"PropertyPathExecutor")}constructor(e){this.tripleStore=e,this.MAX_DEPTH=100}async*execute(e,t,r){if(this.isLiteralElement(e)||this.isLiteralElement(r)){let o=this.isLiteralElement(e)?"subject":"object",c=this.isLiteralElement(e)?e:r,l="value"in c?String(c.value):"<unknown>",u=l.length>80?`${l.slice(0,77)}...`:l,f=this.describePath(t),d={position:o,value:u,path:f,hint:"Wikilink could not be resolved to IRI (likely label-form wikilink with no matching basename/alias). Check whether the target file exists in the queried vault, or add an alias. See issue #3282."};if(console.error(`[PropertyPathExecutor] literal-safety guard fired: literal in ${o} position \u2014 yielding 0 solutions. value="${u}" path=${f}`,d),n.isStrictModeEnabled())throw new ml(`Literal subject in property path: "${u}" (path=${f}). Set EXOCORTEX_SPARQL_STRICT=0 or omit --strict to fall back to warn-and-empty behaviour.`);return}let i=await this.resolveElement(e),s=this.isVariable(r)?null:await this.resolveElement(r);for(let o of i){let c=await this.evaluatePath(o,t,s);for(let l of c){let u=new B7.SolutionMapping;this.isVariable(e)&&u.set(e.value,o),this.isVariable(r)&&u.set(r.value,l),yield u}}}async*executeWithBindings(e,t){if(!this.isPropertyPath(e.predicate))throw new ml("Predicate is not a property path");let r=this.instantiateElement(e.subject,t),i=this.instantiateElement(e.object,t);for await(let s of this.execute(r,e.predicate,i)){let o=t.merge(s);o!==null&&(yield o)}}async evaluatePath(e,t,r){switch(t.pathType){case"/":return this.evaluateSequencePath(e,t.items,r);case"|":return this.evaluateAlternativePath(e,t.items,r);case"^":return this.evaluateInversePath(e,t.items[0],r);case"+":return this.evaluateOneOrMorePath(e,t.items[0],r);case"*":return this.evaluateZeroOrMorePath(e,t.items[0],r);case"?":return this.evaluateZeroOrOnePath(e,t.items[0],r)}}async evaluateSequencePath(e,t,r){let i=new Set([e]);for(let s=0;s<t.length;s++){let o=t[s],c=s===t.length-1,l=new Set;for(let u of i){let f=await this.evaluatePathItem(u,o,c?r:null);for(let d of f)l.add(d)}if(i=l,i.size===0)break}return i}async evaluateAlternativePath(e,t,r){let i=new Set;for(let s of t){let o=await this.evaluatePathItem(e,s,r);for(let c of o)i.add(c)}return i}async evaluateInversePath(e,t,r){if(t.type==="iri"){let i=new im.IRI(t.value),s=await this.tripleStore.match(void 0,i,e),o=new Set;for(let c of s)(r===null||this.nodeInSet(c.subject,r))&&o.add(c.subject);return o}else return this.evaluatePath(e,this.invertPath(t),r)}async evaluateOneOrMorePath(e,t,r){let i=new Set,s=new Set,o=[{node:e,depth:0}];for(;o.length>0;){let c=o.shift();if(!c)break;let{node:l,depth:u}=c;if(u>=this.MAX_DEPTH)continue;let f=await this.evaluatePathItem(l,t,null);for(let d of f){let h=this.nodeToKey(d);(r===null||this.nodeInSet(d,r))&&s.add(d),i.has(h)||(i.add(h),o.push({node:d,depth:u+1}))}}return s}async evaluateZeroOrMorePath(e,t,r){let i=await this.evaluateOneOrMorePath(e,t,r);return(r===null||this.nodeInSet(e,r))&&i.add(e),i}async evaluateZeroOrOnePath(e,t,r){let i=new Set;(r===null||this.nodeInSet(e,r))&&i.add(e);let s=await this.evaluatePathItem(e,t,r);for(let o of s)i.add(o);return i}async evaluatePathItem(e,t,r){if(t.type==="iri"){let i=new im.IRI(t.value),s=await this.tripleStore.match(e,i,void 0),o=new Set;for(let c of s)(r===null||this.nodeInSet(c.object,r))&&o.add(c.object);return o}else return this.evaluatePath(e,t,r)}invertPath(e){switch(e.pathType){case"^":return e.items[0];case"/":return{type:"path",pathType:"/",items:[...e.items].reverse().map(t=>t.type==="iri"?{type:"path",pathType:"^",items:[t]}:this.invertPath(t))};case"|":return{type:"path",pathType:"|",items:e.items.map(t=>t.type==="iri"?{type:"path",pathType:"^",items:[t]}:this.invertPath(t))};case"+":case"*":case"?":{let t=e.items[0].type==="iri"?{type:"path",pathType:"^",items:[e.items[0]]}:this.invertPath(e.items[0]);return{type:"path",pathType:e.pathType,items:[t]}}}}async resolveElement(e){if(this.isVariable(e)){let r=new Set,i=await this.tripleStore.match(void 0,void 0,void 0);for(let s of i)r.add(s.subject),r.add(s.object);return r}let t=new Set;switch(e.type){case"iri":t.add(new im.IRI(e.value));break;case"blank":t.add(new VR.BlankNode(e.value));break;default:throw new ml(`Unsupported element type in subject/object position: ${e.type}`)}return t}instantiateElement(e,t){if(this.isVariable(e)){let r=t.get(e.value);if(r){if(r instanceof im.IRI)return{type:"iri",value:r.value};if(r instanceof VR.BlankNode)return{type:"blank",value:r.id};if(r instanceof V7.Literal)return{type:"literal",value:r.value,datatype:r.datatype?.value,language:r.language,direction:r.direction}}}return e}isVariable(e){return e.type==="variable"}isLiteralElement(e){return e.type==="literal"}isPropertyPath(e){return e.type==="path"}nodeToKey(e){return e.toString()}nodeInSet(e,t){let r=this.nodeToKey(e);for(let i of t)if(this.nodeToKey(i)===r)return!0;return!1}describePath(e){try{let t=e.items,r=a(s=>{if(s&&typeof s=="object"&&"type"in s){let o=s;if(o.type==="iri")return`<${String(o.value)}>`;if(o.type==="path")return this.describePath(o)}return"?"},"renderItem");if(!Array.isArray(t)||t.length===0)return"(?)";if(t.length===1){let s=r(t[0]);return e.pathType==="^"?`(^${s})`:e.pathType==="+"||e.pathType==="*"||e.pathType==="?"?`(${s}${e.pathType})`:`(${s})`}return`(${t.map(r).join(` ${e.pathType} `)})`}catch{return"<unprintable-path>"}}static isStrictModeEnabled(){let t=(typeof process<"u"?process.env:void 0)?.EXOCORTEX_SPARQL_STRICT;if(!t)return!1;let r=t.trim().toLowerCase();return r==="1"||r==="true"||r==="yes"}};gl.PropertyPathExecutor=rS});var sS=v(yl=>{"use strict";Object.defineProperty(yl,"__esModule",{value:!0});yl.BGPExecutor=yl.BGPExecutorError=void 0;var sm=gs(),ta=Ce(),nS=Ge(),om=Mt(),am=df(),GR=qR(),Br=class extends Error{static{a(this,"BGPExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="BGPExecutorError"}};yl.BGPExecutorError=Br;var iS=class{static{a(this,"BGPExecutor")}constructor(e){this.tripleStore=e,this.propertyPathExecutor=new GR.PropertyPathExecutor(e)}async*execute(e){if(e.triples.length===0){yield new sm.SolutionMapping;return}let t=this.matchTriplePattern(e.triples[0]);for(let r=1;r<e.triples.length;r++)t=this.joinWithPattern(t,e.triples[r]);for await(let r of t)yield r}async executeAll(e){let t=[];for await(let r of this.execute(e))t.push(r);return t}async*executeInGraph(e,t){if(e.triples.length===0){yield new sm.SolutionMapping;return}let r=this.matchTriplePatternInGraph(e.triples[0],t);for(let i=1;i<e.triples.length;i++)r=this.joinWithPatternInGraph(r,e.triples[i],t);for await(let i of r)yield i}async*matchTriplePatternInGraph(e,t){if(this.isPropertyPath(e.predicate))throw new Br("Property paths within named graphs are not yet supported");let r=e.predicate;if(this.isLiteral(e.subject)||this.isLiteral(r)){this.warnLiteralGuard("matchTriplePatternInGraph",this.isLiteral(e.subject)?"subject":"predicate",this.isLiteral(e.subject)?e.subject:r);return}let i=this.isVariable(e.subject)?void 0:this.toRDFTermAsSubject(e.subject),s=this.isVariable(r)?void 0:this.toRDFTermAsPredicate(r),o=this.isVariable(e.object)?void 0:this.toRDFTerm(e.object);if(!this.tripleStore.matchInGraph)throw new Br("Triple store does not support named graph operations");let c=await this.tripleStore.matchInGraph(i,s,o,t);for(let l of c){let u=new sm.SolutionMapping;this.isVariable(e.subject)&&u.set(e.subject.value,l.subject),this.isVariable(r)&&u.set(r.value,l.predicate),this.isVariable(e.object)&&u.set(e.object.value,l.object),yield u}}async*joinWithPatternInGraph(e,t,r){let i=[];for await(let s of e)i.push(s);for(let s of i){let o=this.instantiatePattern(t,s);for await(let c of this.matchTriplePatternInGraph(o,r)){let l=s.merge(c);l!==null&&(yield l)}}}async*matchTriplePattern(e){if(this.isPropertyPath(e.predicate)){if(this.isLiteral(e.subject)||this.isLiteral(e.object)){this.warnLiteralGuard("matchTriplePattern.propertyPath",this.isLiteral(e.subject)?"subject":"object",this.isLiteral(e.subject)?e.subject:e.object);return}yield*this.propertyPathExecutor.execute(e.subject,e.predicate,e.object);return}let t=e.predicate;if(this.isLiteral(e.subject)||this.isLiteral(t)){this.warnLiteralGuard("matchTriplePattern",this.isLiteral(e.subject)?"subject":"predicate",this.isLiteral(e.subject)?e.subject:t);return}let r=this.isVariable(e.subject)||this.isQuotedTriple(e.subject)&&this.hasVariablesInQuotedTriple(e.subject)?void 0:this.toRDFTermAsSubject(e.subject),i=this.isVariable(t)?void 0:this.toRDFTermAsPredicate(t),s=this.isVariable(e.object)||this.isQuotedTriple(e.object)&&this.hasVariablesInQuotedTriple(e.object)?void 0:this.toRDFTerm(e.object),o=await this.tripleStore.match(r,i,s);for(let c of o){let l=new sm.SolutionMapping;if(this.isVariable(e.subject))l.set(e.subject.value,c.subject);else if(this.isQuotedTriple(e.subject)){let u=this.matchQuotedTriplePattern(e.subject,c.subject);if(u===null)continue;for(let[f,d]of u.entries())l.set(f,d)}if(this.isVariable(t)&&l.set(t.value,c.predicate),this.isVariable(e.object))l.set(e.object.value,c.object);else if(this.isQuotedTriple(e.object)){let u=this.matchQuotedTriplePattern(e.object,c.object);if(u===null)continue;for(let[f,d]of u.entries())l.set(f,d)}yield l}}hasVariablesInQuotedTriple(e){return!!(this.isVariable(e.subject)||e.predicate.type==="variable"||this.isVariable(e.object)||this.isQuotedTriple(e.subject)&&this.hasVariablesInQuotedTriple(e.subject)||this.isQuotedTriple(e.object)&&this.hasVariablesInQuotedTriple(e.object))}matchQuotedTriplePattern(e,t){if(!(t instanceof am.QuotedTriple))return null;let r=new Map;if(this.isVariable(e.subject))r.set(e.subject.value,t.subject);else if(this.isQuotedTriple(e.subject)){let i=this.matchQuotedTriplePattern(e.subject,t.subject);if(i===null)return null;for(let[s,o]of i)r.set(s,o)}else if(!this.elementsMatch(e.subject,t.subject))return null;if(e.predicate.type==="variable")r.set(e.predicate.value,t.predicate);else if(e.predicate.value!==t.predicate.value)return null;if(this.isVariable(e.object))r.set(e.object.value,t.object);else if(this.isQuotedTriple(e.object)){let i=this.matchQuotedTriplePattern(e.object,t.object);if(i===null)return null;for(let[s,o]of i)r.set(s,o)}else if(!this.elementsMatch(e.object,t.object))return null;return r}elementsMatch(e,t){switch(e.type){case"iri":return t instanceof ta.IRI&&e.value===t.value;case"literal":return!(!(t instanceof nS.Literal)||e.value!==t.value||e.datatype!==t.datatype?.value||e.language!==t.language||e.direction!==t.direction);case"blank":return t instanceof om.BlankNode&&e.value===t.id;case"quoted":return t instanceof am.QuotedTriple?this.toRDFQuotedTriple(e).equals(t):!1;default:return!1}}isPropertyPath(e){return e.type==="path"}async*joinWithPattern(e,t){let r=[];for await(let i of e)r.push(i);for(let i of r){let s=this.instantiatePattern(t,i);for await(let o of this.matchTriplePattern(s)){let c=i.merge(o);c!==null&&(yield c)}}}instantiatePattern(e,t){let r=this.isPropertyPath(e.predicate)?e.predicate:this.instantiateElement(e.predicate,t);return{subject:this.instantiateElement(e.subject,t),predicate:r,object:this.instantiateElement(e.object,t)}}instantiateElement(e,t){if(this.isVariable(e)){let r=t.get(e.value);if(r)return this.toAlgebraElement(r)}return this.isQuotedTriple(e)?this.instantiateQuotedTriple(e,t):e}instantiateQuotedTriple(e,t){let r=this.instantiateElement(e.subject,t),i=e.predicate.type==="variable"?this.instantiatePredicateVariable(e.predicate,t):e.predicate,s=this.instantiateElement(e.object,t);return{type:"quoted",subject:r,predicate:i,object:s}}instantiatePredicateVariable(e,t){let r=t.get(e.value);return r&&r instanceof ta.IRI?{type:"iri",value:r.value}:e}isVariable(e){return e.type==="variable"}isQuotedTriple(e){return e.type==="quoted"}isLiteral(e){return e.type==="literal"}warnLiteralGuard(e,t,r){let i="value"in r?String(r.value):"<unknown>",s=i.length>80?`${i.slice(0,77)}...`:i,o={executor:"BGPExecutor",context:e,position:t,value:s,hint:"Wikilink could not be resolved to IRI (likely label-form wikilink with no matching basename/alias). Check whether the target file exists in the queried vault, or add an alias. See issue #3282."};if(console.error(`[BGPExecutor] literal-safety guard fired in ${e}: literal in ${t} position \u2014 yielding 0 solutions. value="${s}"`,o),GR.PropertyPathExecutor.isStrictModeEnabled())throw new Br(`Literal in ${t} position (${e}): "${s}". Set EXOCORTEX_SPARQL_STRICT=0 or omit --strict to fall back to warn-and-empty behaviour.`)}toRDFTermAsSubject(e){switch(e.type){case"iri":return new ta.IRI(e.value);case"blank":return new om.BlankNode(e.value);case"literal":throw new Br("Literals cannot appear in subject position");case"variable":throw new Br(`Cannot convert variable to RDF term: ${e.value}`);case"quoted":return this.toRDFQuotedTriple(e);default:throw new Br(`Unknown element type: ${String(e)}`)}}toRDFQuotedTriple(e){let t=this.toRDFTermAsSubject(e.subject),r=e.predicate.type==="iri"?new ta.IRI(e.predicate.value):(()=>{throw new Br("Quoted triple predicate must be IRI")})(),i=this.toRDFTerm(e.object);return new am.QuotedTriple(t,r,i)}toRDFTermAsPredicate(e){switch(e.type){case"iri":return new ta.IRI(e.value);case"literal":throw new Br("Literals cannot appear in predicate position");case"blank":throw new Br("Blank nodes cannot appear in predicate position");case"variable":throw new Br(`Cannot convert variable to RDF term: ${e.value}`);default:throw new Br(`Unknown element type: ${String(e)}`)}}toRDFTerm(e){switch(e.type){case"iri":return new ta.IRI(e.value);case"literal":return new nS.Literal(e.value,e.datatype?new ta.IRI(e.datatype):void 0,e.language,e.direction);case"blank":return new om.BlankNode(e.value);case"variable":throw new Br(`Cannot convert variable to RDF term: ${e.value}`);case"quoted":return this.toRDFQuotedTriple(e);default:throw new Br(`Unknown element type: ${String(e)}`)}}toAlgebraElement(e){if(e instanceof ta.IRI)return{type:"iri",value:e.value};if(e instanceof nS.Literal)return{type:"literal",value:e.value,datatype:e.datatype?.value,language:e.language,direction:e.direction};if(e instanceof om.BlankNode)return{type:"blank",value:e.id};if(e instanceof am.QuotedTriple)return this.toAlgebraQuotedTriple(e);throw new Br(`Unknown RDF term type: ${String(e)}`)}toAlgebraQuotedTriple(e){return{type:"quoted",subject:this.toAlgebraElement(e.subject),predicate:{type:"iri",value:e.predicate.value},object:this.toAlgebraElement(e.object)}}};yl.BGPExecutor=iS});var WR=v(cm=>{"use strict";Object.defineProperty(cm,"__esModule",{value:!0});cm.StringFunctions=void 0;var bl=Ce(),ra=Ge(),oS=Mt(),Df=class n{static{a(this,"StringFunctions")}static str(e){if(e===void 0)throw new Error("STR: argument is undefined");return e instanceof bl.IRI||e instanceof ra.Literal?e.value:e instanceof oS.BlankNode?e.id:String(e)}static lang(e){if(e===void 0)throw new Error("LANG: argument is undefined");return e instanceof ra.Literal&&e.language?e.language:""}static langdir(e){if(e===void 0)throw new Error("LANGDIR: argument is undefined");return!(e instanceof ra.Literal)||!e.language?"":e.direction?`${e.language}--${e.direction}`:e.language}static langMatches(e,t){let[r,i]=n.parseDirectionalLangTag(e),[s,o]=n.parseDirectionalLangTag(t),c=r.toLowerCase(),l=s.toLowerCase();return l==="*"?c!=="":c===""?l==="":o&&i!==o?!1:c===l?!0:c.startsWith(l+"-")}static parseDirectionalLangTag(e){let t=e.indexOf("--");if(t===-1)return[e,void 0];let r=e.substring(0,t),i=e.substring(t+2).toLowerCase();return[r,i]}static regex(e,t,r){try{let i=r?r.includes("u")?r:r+"u":"u";return new RegExp(t,i).test(e)}catch(i){throw new Error(`REGEX: invalid pattern '${t}': ${i.message}`)}}static contains(e,t){return e.includes(t)}static strStarts(e,t){return e.startsWith(t)}static strEnds(e,t){return e.endsWith(t)}static strlen(e){return e.length}static ucase(e){return e.toUpperCase()}static lcase(e){return e.toLowerCase()}static substr(e,t,r){let i=t-1;if(i<0){if(r!==void 0){let s=r+i;return s<=0?"":e.substring(0,s)}return e}return r!==void 0?e.substring(i,i+r):e.substring(i)}static strBefore(e,t){if(t==="")return"";let r=e.indexOf(t);return r===-1?"":e.substring(0,r)}static strAfter(e,t){if(t==="")return e;let r=e.indexOf(t);return r===-1?"":e.substring(r+t.length)}static concat(...e){return e.join("")}static replace(e,t,r,i){try{let s=i||"g",o=s.includes("u")?s:s+"u",c=new RegExp(t,o);return e.replace(c,r)}catch(s){throw new Error(`REPLACE: invalid pattern '${t}': ${s.message}`)}}static encodeForUri(e){return encodeURIComponent(e)}static normalize(e,t){if(e===void 0)throw new Error("NORMALIZE: string argument is undefined");let r;if(e instanceof ra.Literal)r=e.value;else if(e instanceof bl.IRI)r=e.value;else if(e instanceof oS.BlankNode)r=e.id;else if(typeof e=="string")r=e;else throw new Error("NORMALIZE: first argument must be a string or literal");let i="NFC";if(t!==void 0)if(t instanceof ra.Literal)i=t.value.toUpperCase();else if(typeof t=="string")i=t.toUpperCase();else if(t instanceof bl.IRI)i=t.value.toUpperCase();else throw new Error("NORMALIZE: second argument must be a string literal");if(!n.VALID_NORMALIZATION_FORMS.includes(i))throw new Error(`NORMALIZE: invalid normalization form '${i}'. Valid forms are: NFC, NFD, NFKC, NFKD`);let s=r.normalize(i);return new ra.Literal(s,new bl.IRI("http://www.w3.org/2001/XMLSchema#string"))}static fold(e){if(e===void 0)throw new Error("FOLD: string argument is undefined");let t;if(e instanceof ra.Literal)t=e.value;else if(e instanceof bl.IRI)t=e.value;else if(e instanceof oS.BlankNode)t=e.id;else if(typeof e=="string")t=e;else throw new Error("FOLD: argument must be a string or literal");let r=n.unicodeCaseFold(t);return new ra.Literal(r,new bl.IRI("http://www.w3.org/2001/XMLSchema#string"))}static unicodeCaseFold(e){let t="";for(let r of e){let i=n.CASE_FOLDING_MAP.get(r);i!==void 0?t+=i:t+=r.toLowerCase()}return t}};cm.StringFunctions=Df;Df.VALID_NORMALIZATION_FORMS=["NFC","NFD","NFKC","NFKD"];Df.CASE_FOLDING_MAP=new Map([["\xDF","ss"],["\u1E9E","ss"],["\u03A3","\u03C3"],["\u03C2","\u03C3"],["\u0130","i\u0307"],["I","i"],["\u0587","\u0565\u0582"],["\uFB00","ff"],["\uFB01","fi"],["\uFB02","fl"],["\uFB03","ffi"],["\uFB04","ffl"],["\uFB05","st"],["\uFB06","st"],["\u0390","\u03B9\u0308\u0301"],["\u03B0","\u03C5\u0308\u0301"],["\u017F","s"],["\u1E9B","\u1E61"],["\u212A","k"],["\u212B","\xE5"]])});var HR=v(lm=>{"use strict";Object.defineProperty(lm,"__esModule",{value:!0});lm.MathFunctions=void 0;var aS=class{static{a(this,"MathFunctions")}static msToMinutes(e){return Math.round(e/(1e3*60))}static msToHours(e){return Math.round(e/(1e3*60*60)*100)/100}static msToSeconds(e){return Math.round(e/1e3)}static abs(e){return Math.abs(e)}static round(e){return Math.round(e)}static ceil(e){return Math.ceil(e)}static floor(e){return Math.floor(e)}static rand(){return Math.random()}};lm.MathFunctions=aS});var Lf=v(um=>{"use strict";Object.defineProperty(um,"__esModule",{value:!0});um.DateTimeParsing=void 0;var q7=Ce(),G7=Ge(),cS=class n{static{a(this,"DateTimeParsing")}static parseDate(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`PARSEDATE: invalid date string '${e}'`);return t.getTime()}static parseDayTimeDuration(e){if(!e)throw new Error("parseDayTimeDuration: duration string is empty");let t=!1,r=e.trim();if(r.startsWith("-")&&(t=!0,r=r.substring(1)),!r.startsWith("P"))throw new Error(`parseDayTimeDuration: invalid format, must start with 'P': '${e}'`);r=r.substring(1);let i=0,s=r.indexOf("T"),o="",c="";if(s===-1?o=r:(o=r.substring(0,s),c=r.substring(s+1)),o){let l=o.match(/^(\d+(?:\.\d+)?)D$/);if(l){let u=parseFloat(l[1]);i+=u*24*60*60*1e3}else if(o!=="")throw new Error(`parseDayTimeDuration: invalid day component: '${o}' in '${e}'`)}if(c){let l=c,u=l.match(/^(\d+(?:\.\d+)?)H/);if(u){let h=parseFloat(u[1]);i+=h*60*60*1e3,l=l.substring(u[0].length)}let f=l.match(/^(\d+(?:\.\d+)?)M/);if(f){let h=parseFloat(f[1]);i+=h*60*1e3,l=l.substring(f[0].length)}let d=l.match(/^(\d+(?:\.\d+)?)S$/);if(d){let h=parseFloat(d[1]);i+=h*1e3,l=l.substring(d[0].length)}if(l!=="")throw new Error(`parseDayTimeDuration: invalid time component: '${l}' in '${e}'`)}return t?-i:i}static formatDayTimeDuration(e){let t=e<0,r=Math.abs(e),i=Math.floor(r/(1440*60*1e3));r=r%(1440*60*1e3);let s=Math.floor(r/(3600*1e3));r=r%(3600*1e3);let o=Math.floor(r/(60*1e3));r=r%(60*1e3);let c=r/1e3,l=t?"-P":"P";return i>0&&(l+=`${i}D`),(s>0||o>0||c>0||i===0)&&(l+="T",s>0&&(l+=`${s}H`),o>0&&(l+=`${o}M`),(c>0||s===0&&o===0)&&(Number.isInteger(c)?l+=`${c}S`:l+=`${parseFloat(c.toFixed(3))}S`)),l}static xsdDayTimeDuration(e){return n.parseDayTimeDuration(e),new G7.Literal(e,new q7.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static parseXSDDate(e){let t=/^(-?\d{4})-(\d{2})-(\d{2})(Z|[+-]\d{2}:\d{2})?$/,r=e.match(t);if(!r){let u=new Date(e);return isNaN(u.getTime())?null:new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()))}let i=parseInt(r[1],10),s=parseInt(r[2],10)-1,o=parseInt(r[3],10),c=r[4],l=new Date(Date.UTC(i,s,o));if(c&&c!=="Z"){let u=c.match(/([+-])(\d{2}):(\d{2})/);if(u){let f=u[1]==="+"?1:-1,d=parseInt(u[2],10),h=parseInt(u[3],10),p=f*(d*60+h)*60*1e3;l=new Date(l.getTime()-p)}}return l}static parseXSDTime(e){let t=/^(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(Z|[+-]\d{2}:\d{2})?$/,r=e.match(t);if(!r)return null;let i=parseInt(r[1],10),s=parseInt(r[2],10),o=parseInt(r[3],10),c=r[4],l=r[5];if(i<0||i>24||s<0||s>59||o<0||o>59||i===24&&(s!==0||o!==0))return null;let u=0;if(c){let d=c.padEnd(3,"0").slice(0,3);u=parseInt(d,10)}let f=i*60*60*1e3+s*60*1e3+o*1e3+u;if(i===24&&(f=1440*60*1e3),l&&l!=="Z"){let d=l.match(/([+-])(\d{2}):(\d{2})/);if(d){let h=d[1]==="+"?1:-1,p=parseInt(d[2],10),y=parseInt(d[3],10),g=h*(p*60+y)*60*1e3;f-=g}}return f}static formatDateDuration(e){if(e===0)return"P0D";let t=e<0,r=Math.abs(e);return t?`-P${r}D`:`P${r}D`}static parseYearMonthDuration(e){let t=/^(-)?P(?:(\d+)Y)?(?:(\d+)M)?$/,r=e.match(t);if(!r)throw new Error(`parseYearMonthDuration: invalid format: '${e}'`);let i=r[1]==="-",s=parseInt(r[2]||"0",10),o=parseInt(r[3]||"0",10);if(!r[2]&&!r[3])throw new Error(`parseYearMonthDuration: invalid format (no duration components): '${e}'`);let c=s*12+o;return i?-c:c}static formatYearMonthDuration(e){let t=e<0,r=Math.abs(e),i=Math.floor(r/12),s=r%12,o=t?"-P":"P";return i>0&&(o+=`${i}Y`),(s>0||i===0)&&(o+=`${s}M`),o}static parseYearMonthDurationComponents(e){let t=/^(-)?P(?:(\d+)Y)?(?:(\d+)M)?$/,r=e.match(t);if(!r)throw new Error(`parseYearMonthDurationComponents: invalid format: '${e}'`);let i=r[1]==="-",s=parseInt(r[2]||"0",10),o=parseInt(r[3]||"0",10);if(!r[2]&&!r[3])throw new Error(`parseYearMonthDurationComponents: invalid format (no duration components): '${e}'`);return{years:s,months:o,negative:i}}static parseDurationComponents(e){if(!e)throw new Error("parseDurationComponents: duration string is empty");let t=!1,r=e.trim();if(r.startsWith("-")&&(t=!0,r=r.substring(1)),!r.startsWith("P"))throw new Error(`parseDurationComponents: invalid format, must start with 'P': '${e}'`);r=r.substring(1);let i=0,s=0,o=0,c=0,l=r.indexOf("T"),u="",f="";if(l===-1?u=r:(u=r.substring(0,l),f=r.substring(l+1)),u){let d=u.match(/^(\d+(?:\.\d+)?)D$/);if(d)i=parseFloat(d[1]);else if(u!=="")throw new Error(`parseDurationComponents: invalid day component: '${u}' in '${e}'`)}if(f){let d=f,h=d.match(/^(\d+(?:\.\d+)?)H/);h&&(s=parseFloat(h[1]),d=d.substring(h[0].length));let p=d.match(/^(\d+(?:\.\d+)?)M/);p&&(o=parseFloat(p[1]),d=d.substring(p[0].length));let y=d.match(/^(\d+(?:\.\d+)?)S$/);if(y&&(c=parseFloat(y[1]),d=d.substring(y[0].length)),d!=="")throw new Error(`parseDurationComponents: invalid time component: '${d}' in '${e}'`)}return{negative:t,days:i,hours:s,minutes:o,seconds:c}}};um.DateTimeParsing=cS});var zR=v(fm=>{"use strict";Object.defineProperty(fm,"__esModule",{value:!0});fm.DateTimeArithmetic=void 0;var mn=Ce(),Be=Ge(),it=Lf(),lS=class{static{a(this,"DateTimeArithmetic")}static dateTimeDiff(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=new Date(r),o=new Date(i);if(isNaN(s.getTime()))throw new Error(`dateTimeDiff: invalid first dateTime: '${r}'`);if(isNaN(o.getTime()))throw new Error(`dateTimeDiff: invalid second dateTime: '${i}'`);let c=s.getTime()-o.getTime(),l=it.DateTimeParsing.formatDayTimeDuration(c);return new Be.Literal(l,new mn.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static dateTimeAdd(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=new Date(r);if(isNaN(s.getTime()))throw new Error(`dateTimeAdd: invalid dateTime: '${r}'`);let o=it.DateTimeParsing.parseDayTimeDuration(i),c=s.getTime()+o,l=new Date(c);return new Be.Literal(l.toISOString(),new mn.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static dateTimeSubtract(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=new Date(r);if(isNaN(s.getTime()))throw new Error(`dateTimeSubtract: invalid dateTime: '${r}'`);let o=it.DateTimeParsing.parseDayTimeDuration(i),c=s.getTime()-o,l=new Date(c);return new Be.Literal(l.toISOString(),new mn.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static dateAdd(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseXSDDate(r);if(s===null)throw new Error(`dateAdd: invalid date: '${r}'`);let o=it.DateTimeParsing.parseDayTimeDuration(i),c=s.getTime()+o,l=new Date(c),u=l.getUTCFullYear(),f=String(l.getUTCMonth()+1).padStart(2,"0"),d=String(l.getUTCDate()).padStart(2,"0"),h=`${u}-${f}-${d}`;return new Be.Literal(h,new mn.IRI("http://www.w3.org/2001/XMLSchema#date"))}static dateSubtract(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseXSDDate(r);if(s===null)throw new Error(`dateSubtract: invalid date: '${r}'`);let o=it.DateTimeParsing.parseDayTimeDuration(i),c=s.getTime()-o,l=new Date(c),u=l.getUTCFullYear(),f=String(l.getUTCMonth()+1).padStart(2,"0"),d=String(l.getUTCDate()).padStart(2,"0"),h=`${u}-${f}-${d}`;return new Be.Literal(h,new mn.IRI("http://www.w3.org/2001/XMLSchema#date"))}static dateTimeAddYearMonth(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=new Date(r);if(isNaN(s.getTime()))throw new Error(`dateTimeAddYearMonth: invalid dateTime: '${r}'`);let o=it.DateTimeParsing.parseYearMonthDuration(i),c=s.getUTCDate();return s.setUTCMonth(s.getUTCMonth()+o),s.getUTCDate()!==c&&s.setUTCDate(0),new Be.Literal(s.toISOString(),new mn.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static dateTimeSubtractYearMonth(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=new Date(r);if(isNaN(s.getTime()))throw new Error(`dateTimeSubtractYearMonth: invalid dateTime: '${r}'`);let o=it.DateTimeParsing.parseYearMonthDuration(i),c=s.getUTCDate();return s.setUTCMonth(s.getUTCMonth()-o),s.getUTCDate()!==c&&s.setUTCDate(0),new Be.Literal(s.toISOString(),new mn.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static dateAddYearMonth(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseXSDDate(r);if(s===null)throw new Error(`dateAddYearMonth: invalid date: '${r}'`);let o=it.DateTimeParsing.parseYearMonthDuration(i),c=s.getUTCDate();s.setUTCMonth(s.getUTCMonth()+o),s.getUTCDate()!==c&&s.setUTCDate(0);let l=s.getUTCFullYear(),u=String(s.getUTCMonth()+1).padStart(2,"0"),f=String(s.getUTCDate()).padStart(2,"0"),d=`${l}-${u}-${f}`;return new Be.Literal(d,new mn.IRI("http://www.w3.org/2001/XMLSchema#date"))}static dateSubtractYearMonth(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseXSDDate(r);if(s===null)throw new Error(`dateSubtractYearMonth: invalid date: '${r}'`);let o=it.DateTimeParsing.parseYearMonthDuration(i),c=s.getUTCDate();s.setUTCMonth(s.getUTCMonth()-o),s.getUTCDate()!==c&&s.setUTCDate(0);let l=s.getUTCFullYear(),u=String(s.getUTCMonth()+1).padStart(2,"0"),f=String(s.getUTCDate()).padStart(2,"0"),d=`${l}-${u}-${f}`;return new Be.Literal(d,new mn.IRI("http://www.w3.org/2001/XMLSchema#date"))}static durationAdd(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseDayTimeDuration(r),o=it.DateTimeParsing.parseDayTimeDuration(i),c=it.DateTimeParsing.formatDayTimeDuration(s+o);return new Be.Literal(c,new mn.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static durationSubtract(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseDayTimeDuration(r),o=it.DateTimeParsing.parseDayTimeDuration(i),c=it.DateTimeParsing.formatDayTimeDuration(s-o);return new Be.Literal(c,new mn.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static durationMultiply(e,t){let r=e instanceof Be.Literal?e.value:e,i=it.DateTimeParsing.parseDayTimeDuration(r),s=it.DateTimeParsing.formatDayTimeDuration(i*t);return new Be.Literal(s,new mn.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static durationDivide(e,t){if(t===0)throw new Error("durationDivide: division by zero");let r=e instanceof Be.Literal?e.value:e,i=it.DateTimeParsing.parseDayTimeDuration(r),s=it.DateTimeParsing.formatDayTimeDuration(i/t);return new Be.Literal(s,new mn.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static yearMonthDurationAdd(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseYearMonthDuration(r),o=it.DateTimeParsing.parseYearMonthDuration(i),c=it.DateTimeParsing.formatYearMonthDuration(s+o);return new Be.Literal(c,new mn.IRI("http://www.w3.org/2001/XMLSchema#yearMonthDuration"))}static yearMonthDurationSubtract(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseYearMonthDuration(r),o=it.DateTimeParsing.parseYearMonthDuration(i),c=it.DateTimeParsing.formatYearMonthDuration(s-o);return new Be.Literal(c,new mn.IRI("http://www.w3.org/2001/XMLSchema#yearMonthDuration"))}static durationToDays(e){let t=e instanceof Be.Literal?e.value:e;return it.DateTimeParsing.parseDayTimeDuration(t)/(1440*60*1e3)}static durationToHours(e){let t=e instanceof Be.Literal?e.value:e;return it.DateTimeParsing.parseDayTimeDuration(t)/(3600*1e3)}static durationToMinutes(e){let t=e instanceof Be.Literal?e.value:e;return it.DateTimeParsing.parseDayTimeDuration(t)/(60*1e3)}static durationToSeconds(e){let t=e instanceof Be.Literal?e.value:e;return it.DateTimeParsing.parseDayTimeDuration(t)/1e3}};fm.DateTimeArithmetic=lS});var KR=v(dm=>{"use strict";Object.defineProperty(dm,"__esModule",{value:!0});dm.DateTimeAccessors=void 0;var Nf=Ce(),jt=Ge(),It=Lf(),uS=class{static{a(this,"DateTimeAccessors")}static year(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`YEAR: invalid date string '${e}'`);return t.getFullYear()}static month(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`MONTH: invalid date string '${e}'`);return t.getMonth()+1}static day(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`DAY: invalid date string '${e}'`);return t.getDate()}static hours(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`HOURS: invalid date string '${e}'`);return t.getHours()}static minutes(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`MINUTES: invalid date string '${e}'`);return t.getMinutes()}static seconds(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`SECONDS: invalid date string '${e}'`);return t.getSeconds()+t.getMilliseconds()/1e3}static durationDays(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseDurationComponents(t),i=Math.floor(r.days);return r.negative?-i:i}static durationHours(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseDurationComponents(t),i=Math.floor(r.hours);return r.negative?-i:i}static durationMinutes(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseDurationComponents(t),i=Math.floor(r.minutes);return r.negative?-i:i}static durationSeconds(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseDurationComponents(t);return r.negative?-r.seconds:r.seconds}static durationYears(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseYearMonthDurationComponents(t);return r.negative?-r.years:r.years}static durationMonths(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseYearMonthDurationComponents(t);return r.negative?-r.months:r.months}static timezone(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`TIMEZONE: invalid date string '${e}'`);let r;if(e.endsWith("Z"))r="PT0S";else{let i=e.match(/([+-]\d{2}):?(\d{2})$/);if(i){let s=parseInt(i[1],10),o=parseInt(i[2],10),c=s>=0?"":"-",l=Math.abs(s);o===0?r=`${c}PT${l}H`:r=`${c}PT${l}H${o}M`}else{let s=-t.getTimezoneOffset(),o=Math.floor(Math.abs(s)/60),c=Math.abs(s)%60,l=s>=0?"":"-";c===0?r=`${l}PT${o}H`:r=`${l}PT${o}H${c}M`}}return new jt.Literal(r,new Nf.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static tz(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`TZ: invalid date string '${e}'`);if(e.endsWith("Z"))return"Z";let r=e.match(/([+-]\d{2}:\d{2})$/);if(r)return r[1];let i=e.match(/([+-])(\d{2})(\d{2})$/);return i?`${i[1]}${i[2]}:${i[3]}`:""}static adjust(e,t){let r=e instanceof jt.Literal?e.value:e,i=new Date(r);if(isNaN(i.getTime()))throw new Error(`ADJUST: invalid dateTime: '${r}'`);if(t==null){let R=i.getUTCFullYear(),B=String(i.getUTCMonth()+1).padStart(2,"0"),D=String(i.getUTCDate()).padStart(2,"0"),O=String(i.getUTCHours()).padStart(2,"0"),M=String(i.getUTCMinutes()).padStart(2,"0"),$=String(i.getUTCSeconds()).padStart(2,"0"),Z=i.getUTCMilliseconds(),ue=`${R}-${B}-${D}T${O}:${M}:${$}`;return Z>0&&(ue+=`.${String(Z).padStart(3,"0")}`),new jt.Literal(ue,new Nf.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}let s=t instanceof jt.Literal?t.value:t,o=It.DateTimeParsing.parseDayTimeDuration(s),c=840*60*1e3;if(Math.abs(o)>c)throw new Error(`ADJUST: timezone offset out of range: '${s}'`);let l=i.getTime(),u=new Date(l+o),f=u.getUTCFullYear(),d=String(u.getUTCMonth()+1).padStart(2,"0"),h=String(u.getUTCDate()).padStart(2,"0"),p=String(u.getUTCHours()).padStart(2,"0"),y=String(u.getUTCMinutes()).padStart(2,"0"),g=String(u.getUTCSeconds()).padStart(2,"0"),b=u.getUTCMilliseconds(),_=o>=0?"+":"-",S=Math.floor(Math.abs(o)/(3600*1e3)),x=Math.floor(Math.abs(o)%(3600*1e3)/(60*1e3)),A=`${_}${String(S).padStart(2,"0")}:${String(x).padStart(2,"0")}`,T=`${f}-${d}-${h}T${p}:${y}:${g}`;return b>0&&(T+=`.${String(b).padStart(3,"0")}`),T+=A,new jt.Literal(T,new Nf.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static now(){return new Date().toISOString()}static dateBefore(e,t){let r=It.DateTimeParsing.parseDate(e),i=It.DateTimeParsing.parseDate(t);return r<i}static dateAfter(e,t){let r=It.DateTimeParsing.parseDate(e),i=It.DateTimeParsing.parseDate(t);return r>i}static dateInRange(e,t,r){let i=It.DateTimeParsing.parseDate(e),s=It.DateTimeParsing.parseDate(t),o=It.DateTimeParsing.parseDate(r);return i>=s&&i<=o}static compareDurations(e,t,r){let i=e instanceof jt.Literal?e.value:e,s=t instanceof jt.Literal?t.value:t,o=It.DateTimeParsing.parseDayTimeDuration(i),c=It.DateTimeParsing.parseDayTimeDuration(s);switch(r){case"=":return o===c;case"!=":return o!==c;case"<":return o<c;case">":return o>c;case"<=":return o<=c;case">=":return o>=c;default:throw new Error(`compareDurations: unknown operator: ${r}`)}}static dateDiffMinutes(e,t){let r=It.DateTimeParsing.parseDate(e),i=It.DateTimeParsing.parseDate(t),s=Math.abs(i-r);return Math.round(s/(1e3*60))}static dateDiffHours(e,t){let r=It.DateTimeParsing.parseDate(e),i=It.DateTimeParsing.parseDate(t),s=Math.abs(i-r);return Math.round(s/(1e3*60*60)*100)/100}static timeDiff(e,t){let r=e instanceof jt.Literal?e.value:e,i=t instanceof jt.Literal?t.value:t,s=It.DateTimeParsing.parseXSDTime(r),o=It.DateTimeParsing.parseXSDTime(i);if(s===null)throw new Error(`timeDiff: invalid first time: '${r}'`);if(o===null)throw new Error(`timeDiff: invalid second time: '${i}'`);let c=s-o,l=It.DateTimeParsing.formatDayTimeDuration(c);return new jt.Literal(l,new Nf.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static isDayTimeDuration(e){return e instanceof jt.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#dayTimeDuration":!1}static isDate(e){return e instanceof jt.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#date":!1}static isYearMonthDuration(e){return e instanceof jt.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#yearMonthDuration":!1}static isTime(e){return e instanceof jt.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#time":!1}static dateDiff(e,t){let r=e instanceof jt.Literal?e.value:e,i=t instanceof jt.Literal?t.value:t,s=It.DateTimeParsing.parseXSDDate(r),o=It.DateTimeParsing.parseXSDDate(i);if(s===null)throw new Error(`dateDiff: invalid first date: '${r}'`);if(o===null)throw new Error(`dateDiff: invalid second date: '${i}'`);let c=s.getTime()-o.getTime(),l=Math.round(c/(1440*60*1e3)),u=It.DateTimeParsing.formatDateDuration(l);return new jt.Literal(u,new Nf.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}};dm.DateTimeAccessors=uS});var pm=v(hm=>{"use strict";Object.defineProperty(hm,"__esModule",{value:!0});hm.DateTimeFunctions=void 0;var _l=Lf(),mr=zR(),St=KR(),fS=class{static{a(this,"DateTimeFunctions")}static parseDate(e){return _l.DateTimeParsing.parseDate(e)}static parseDayTimeDuration(e){return _l.DateTimeParsing.parseDayTimeDuration(e)}static formatDayTimeDuration(e){return _l.DateTimeParsing.formatDayTimeDuration(e)}static xsdDayTimeDuration(e){return _l.DateTimeParsing.xsdDayTimeDuration(e)}static parseYearMonthDuration(e){return _l.DateTimeParsing.parseYearMonthDuration(e)}static formatYearMonthDuration(e){return _l.DateTimeParsing.formatYearMonthDuration(e)}static year(e){return St.DateTimeAccessors.year(e)}static month(e){return St.DateTimeAccessors.month(e)}static day(e){return St.DateTimeAccessors.day(e)}static hours(e){return St.DateTimeAccessors.hours(e)}static minutes(e){return St.DateTimeAccessors.minutes(e)}static seconds(e){return St.DateTimeAccessors.seconds(e)}static durationDays(e){return St.DateTimeAccessors.durationDays(e)}static durationHours(e){return St.DateTimeAccessors.durationHours(e)}static durationMinutes(e){return St.DateTimeAccessors.durationMinutes(e)}static durationSeconds(e){return St.DateTimeAccessors.durationSeconds(e)}static durationYears(e){return St.DateTimeAccessors.durationYears(e)}static durationMonths(e){return St.DateTimeAccessors.durationMonths(e)}static timezone(e){return St.DateTimeAccessors.timezone(e)}static tz(e){return St.DateTimeAccessors.tz(e)}static adjust(e,t){return St.DateTimeAccessors.adjust(e,t)}static now(){return St.DateTimeAccessors.now()}static dateBefore(e,t){return St.DateTimeAccessors.dateBefore(e,t)}static dateAfter(e,t){return St.DateTimeAccessors.dateAfter(e,t)}static dateInRange(e,t,r){return St.DateTimeAccessors.dateInRange(e,t,r)}static compareDurations(e,t,r){return St.DateTimeAccessors.compareDurations(e,t,r)}static dateDiffMinutes(e,t){return St.DateTimeAccessors.dateDiffMinutes(e,t)}static dateDiffHours(e,t){return St.DateTimeAccessors.dateDiffHours(e,t)}static timeDiff(e,t){return St.DateTimeAccessors.timeDiff(e,t)}static dateDiff(e,t){return St.DateTimeAccessors.dateDiff(e,t)}static isDayTimeDuration(e){return St.DateTimeAccessors.isDayTimeDuration(e)}static isDate(e){return St.DateTimeAccessors.isDate(e)}static isYearMonthDuration(e){return St.DateTimeAccessors.isYearMonthDuration(e)}static isTime(e){return St.DateTimeAccessors.isTime(e)}static dateTimeDiff(e,t){return mr.DateTimeArithmetic.dateTimeDiff(e,t)}static dateTimeAdd(e,t){return mr.DateTimeArithmetic.dateTimeAdd(e,t)}static dateTimeSubtract(e,t){return mr.DateTimeArithmetic.dateTimeSubtract(e,t)}static dateAdd(e,t){return mr.DateTimeArithmetic.dateAdd(e,t)}static dateSubtract(e,t){return mr.DateTimeArithmetic.dateSubtract(e,t)}static dateTimeAddYearMonth(e,t){return mr.DateTimeArithmetic.dateTimeAddYearMonth(e,t)}static dateTimeSubtractYearMonth(e,t){return mr.DateTimeArithmetic.dateTimeSubtractYearMonth(e,t)}static dateAddYearMonth(e,t){return mr.DateTimeArithmetic.dateAddYearMonth(e,t)}static dateSubtractYearMonth(e,t){return mr.DateTimeArithmetic.dateSubtractYearMonth(e,t)}static durationAdd(e,t){return mr.DateTimeArithmetic.durationAdd(e,t)}static durationSubtract(e,t){return mr.DateTimeArithmetic.durationSubtract(e,t)}static durationMultiply(e,t){return mr.DateTimeArithmetic.durationMultiply(e,t)}static durationDivide(e,t){return mr.DateTimeArithmetic.durationDivide(e,t)}static yearMonthDurationAdd(e,t){return mr.DateTimeArithmetic.yearMonthDurationAdd(e,t)}static yearMonthDurationSubtract(e,t){return mr.DateTimeArithmetic.yearMonthDurationSubtract(e,t)}static durationToDays(e){return mr.DateTimeArithmetic.durationToDays(e)}static durationToHours(e){return mr.DateTimeArithmetic.durationToHours(e)}static durationToMinutes(e){return mr.DateTimeArithmetic.durationToMinutes(e)}static durationToSeconds(e){return mr.DateTimeArithmetic.durationToSeconds(e)}};hm.DateTimeFunctions=fS});var XR=v(gm=>{"use strict";Object.defineProperty(gm,"__esModule",{value:!0});gm.LogicalFunctions=void 0;var W7=Ce(),wl=Ge(),H7=Mt(),mm=pm(),dS=class n{static{a(this,"LogicalFunctions")}static compare(e,t,r){if(n.isDayTimeDurationValue(e)&&n.isDayTimeDurationValue(t))return mm.DateTimeFunctions.compareDurations(e instanceof wl.Literal?e:String(e),t instanceof wl.Literal?t:String(t),r);if(n.isDayTimeDurationValue(e)&&typeof t=="string"&&/^-?P/.test(t))return mm.DateTimeFunctions.compareDurations(e instanceof wl.Literal?e:String(e),t,r);if(typeof e=="string"&&/^-?P/.test(e)&&n.isDayTimeDurationValue(t))return mm.DateTimeFunctions.compareDurations(e,t instanceof wl.Literal?t:String(t),r);let i=n.toComparableValue(e),s=n.toComparableValue(t);switch(r){case"=":return i===s;case"!=":return i!==s;case"<":return i<s;case">":return i>s;case"<=":return i<=s;case">=":return i>=s;default:throw new Error(`Unknown comparison operator: ${r}`)}}static isDayTimeDurationValue(e){return e instanceof wl.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#dayTimeDuration":!1}static toComparableValue(e){if(typeof e=="string"||typeof e=="number")return e;if(e instanceof wl.Literal){let t=e.datatype?.value;if(t?.includes("#integer")||t?.includes("#decimal")||t?.includes("#double")){let r=parseFloat(e.value);if(!isNaN(r))return r}if(t==="http://www.w3.org/2001/XMLSchema#dayTimeDuration")try{return mm.DateTimeFunctions.parseDayTimeDuration(e.value)}catch{return e.value}return e.value}return e instanceof W7.IRI?e.value:e instanceof H7.BlankNode?e.id:String(e)}static logicalAnd(e){return e.every(t=>t===!0)}static logicalOr(e){return e.some(t=>t===!0)}static logicalNot(e){return!e}static coalesce(e){for(let t of e)if(t!=null)return t}static if(e,t,r){return e?t:r}};gm.LogicalFunctions=dS});var YR=v(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.RDFTermFunctions=void 0;var Vr=Ce(),xt=Ge(),Ii=Mt(),Sl=df(),hS=Ti(),pS=class n{static{a(this,"RDFTermFunctions")}static datatype(e){if(e===void 0)throw new Error("DATATYPE: argument is undefined");if(e instanceof xt.Literal)return e.datatype?e.datatype:e.language?new Vr.IRI("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"):new Vr.IRI("http://www.w3.org/2001/XMLSchema#string");throw new Error("DATATYPE: argument must be a literal")}static bound(e){return e!==void 0}static isIRI(e){return e===void 0?!1:e instanceof Vr.IRI}static isBlank(e){return e===void 0?!1:e instanceof Ii.BlankNode}static isLiteral(e){return e===void 0?!1:e instanceof xt.Literal}static isTriple(e){return e===void 0?!1:e instanceof Sl.QuotedTriple}static hasLangdir(e){return e===void 0||!(e instanceof xt.Literal)?!1:!!e.language&&!!e.direction}static isNumeric(e){if(e===void 0||!(e instanceof xt.Literal))return!1;let t=e.datatype?.value;return t?["http://www.w3.org/2001/XMLSchema#integer","http://www.w3.org/2001/XMLSchema#decimal","http://www.w3.org/2001/XMLSchema#float","http://www.w3.org/2001/XMLSchema#double","http://www.w3.org/2001/XMLSchema#nonPositiveInteger","http://www.w3.org/2001/XMLSchema#negativeInteger","http://www.w3.org/2001/XMLSchema#long","http://www.w3.org/2001/XMLSchema#int","http://www.w3.org/2001/XMLSchema#short","http://www.w3.org/2001/XMLSchema#byte","http://www.w3.org/2001/XMLSchema#nonNegativeInteger","http://www.w3.org/2001/XMLSchema#unsignedLong","http://www.w3.org/2001/XMLSchema#unsignedInt","http://www.w3.org/2001/XMLSchema#unsignedShort","http://www.w3.org/2001/XMLSchema#unsignedByte","http://www.w3.org/2001/XMLSchema#positiveInteger"].includes(t):!1}static xsdDateTime(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`xsd:dateTime: invalid date string '${e}'`);return new xt.Literal(t.toISOString(),new Vr.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static xsdInteger(e){let t=parseInt(e,10);if(isNaN(t))throw new Error(`xsd:integer: cannot convert '${e}' to integer`);return new xt.Literal(String(t),new Vr.IRI("http://www.w3.org/2001/XMLSchema#integer"))}static xsdDecimal(e){let t=parseFloat(e);if(isNaN(t))throw new Error(`xsd:decimal: cannot convert '${e}' to decimal`);return new xt.Literal(String(t),new Vr.IRI("http://www.w3.org/2001/XMLSchema#decimal"))}static sameTerm(e,t){if(e===void 0&&t===void 0)return!0;if(e===void 0||t===void 0||e.constructor!==t.constructor)return!1;if(e instanceof Vr.IRI&&t instanceof Vr.IRI)return e.value===t.value;if(e instanceof Ii.BlankNode&&t instanceof Ii.BlankNode)return e.id===t.id;if(e instanceof xt.Literal&&t instanceof xt.Literal){if(e.value!==t.value||e.language!==t.language)return!1;let r=e.datatype?.value,i=t.datatype?.value;return r===i}return!1}static iri(e){if(e===void 0)throw new Error("IRI: argument is undefined");if(e instanceof Vr.IRI)return e;if(e instanceof xt.Literal)return new Vr.IRI(e.value);throw e instanceof Ii.BlankNode?new Error("IRI: cannot convert blank node to IRI"):new Error("IRI: unsupported term type")}static uri(e){return n.iri(e)}static bnode(e){if(e===void 0){let t=`b${(0,hS.v4)().replace(/-/g,"").substring(0,12)}`;return new Ii.BlankNode(t)}if(e instanceof xt.Literal)return new Ii.BlankNode(e.value);if(e instanceof Ii.BlankNode)return e;throw new Error("BNODE: argument must be a string literal or omitted")}static strdt(e,t){if(e===void 0)throw new Error("STRDT: lexical form is undefined");if(t===void 0)throw new Error("STRDT: datatype IRI is undefined");let r;if(e instanceof xt.Literal){if(e.language)throw new Error("STRDT: lexical form must not have a language tag");r=e.value}else if(typeof e=="string")r=e;else throw new Error("STRDT: lexical form must be a string literal");let i;if(t instanceof Vr.IRI)i=t;else if(t instanceof xt.Literal)i=new Vr.IRI(t.value);else throw new Error("STRDT: datatype must be an IRI");return new xt.Literal(r,i)}static strlang(e,t){if(e===void 0)throw new Error("STRLANG: lexical form is undefined");if(t===void 0)throw new Error("STRLANG: language tag is undefined");let r;if(e instanceof xt.Literal){if(e.language)throw new Error("STRLANG: lexical form must not already have a language tag");r=e.value}else if(typeof e=="string")r=e;else throw new Error("STRLANG: lexical form must be a string literal");let i;if(t instanceof xt.Literal)i=t.value;else if(typeof t=="string")i=t;else throw new Error("STRLANG: language tag must be a string literal");if(i==="")throw new Error("STRLANG: language tag cannot be empty");return new xt.Literal(r,void 0,i)}static strlangdir(e,t,r){if(e===void 0)throw new Error("STRLANGDIR: lexical form is undefined");if(t===void 0)throw new Error("STRLANGDIR: language tag is undefined");if(r===void 0)throw new Error("STRLANGDIR: direction is undefined");let i;if(e instanceof xt.Literal){if(e.language)throw new Error("STRLANGDIR: lexical form must not already have a language tag");i=e.value}else if(typeof e=="string")i=e;else throw new Error("STRLANGDIR: lexical form must be a string literal");let s;if(t instanceof xt.Literal)s=t.value;else if(typeof t=="string")s=t;else throw new Error("STRLANGDIR: language tag must be a string literal");if(s==="")throw new Error("STRLANGDIR: language tag cannot be empty");let o;if(r instanceof xt.Literal)o=r.value.toLowerCase();else throw new Error("STRLANGDIR: direction must be a string literal");if(o!=="ltr"&&o!=="rtl")throw new Error(`STRLANGDIR: invalid direction '${o}'. Must be 'ltr' or 'rtl'`);return new xt.Literal(i,void 0,s,o)}static uuid(){let e=(0,hS.v4)();return new Vr.IRI(`urn:uuid:${e}`)}static struuid(){let e=(0,hS.v4)();return new xt.Literal(e)}static triple(e,t,r){if(e===void 0)throw new Error("TRIPLE: subject is undefined");if(t===void 0)throw new Error("TRIPLE: predicate is undefined");if(r===void 0)throw new Error("TRIPLE: object is undefined");if(e instanceof xt.Literal)throw new Error("TRIPLE: subject must be IRI, BlankNode, or QuotedTriple, got Literal");if(!(t instanceof Vr.IRI)){let c=t instanceof xt.Literal?"Literal":t instanceof Ii.BlankNode?"BlankNode":t instanceof Sl.QuotedTriple?"QuotedTriple":typeof t;throw new Error(`TRIPLE: predicate must be IRI, got ${c}`)}let i=e,s=t,o=r;return new Sl.QuotedTriple(i,s,o)}static subject(e){if(e===void 0)throw new Error("SUBJECT: argument is undefined");if(!(e instanceof Sl.QuotedTriple)){let t=e instanceof Vr.IRI?"IRI":e instanceof xt.Literal?"Literal":e instanceof Ii.BlankNode?"BlankNode":typeof e;throw new Error(`SUBJECT: argument must be QuotedTriple, got ${t}`)}return e.subject}static predicate(e){if(e===void 0)throw new Error("PREDICATE: argument is undefined");if(!(e instanceof Sl.QuotedTriple)){let t=e instanceof Vr.IRI?"IRI":e instanceof xt.Literal?"Literal":e instanceof Ii.BlankNode?"BlankNode":typeof e;throw new Error(`PREDICATE: argument must be QuotedTriple, got ${t}`)}return e.predicate}static object(e){if(e===void 0)throw new Error("OBJECT: argument is undefined");if(!(e instanceof Sl.QuotedTriple)){let t=e instanceof Vr.IRI?"IRI":e instanceof xt.Literal?"Literal":e instanceof Ii.BlankNode?"BlankNode":typeof e;throw new Error(`OBJECT: argument must be QuotedTriple, got ${t}`)}return e.object}};ym.RDFTermFunctions=pS});var QR=v(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.HashFunctions=void 0;var mS=class{static{a(this,"HashFunctions")}static md5(e){return require("crypto").createHash("md5").update(e).digest("hex")}static sha1(e){return require("crypto").createHash("sha1").update(e).digest("hex")}static sha256(e){return require("crypto").createHash("sha256").update(e).digest("hex")}static sha384(e){return require("crypto").createHash("sha384").update(e).digest("hex")}static sha512(e){return require("crypto").createHash("sha512").update(e).digest("hex")}};bm.HashFunctions=mS});var wm=v(_m=>{"use strict";Object.defineProperty(_m,"__esModule",{value:!0});_m.BuiltInFunctions=void 0;var gr=WR(),na=HR(),Ie=pm(),vl=XR(),Pt=YR(),kf=QR(),gS=class{static{a(this,"BuiltInFunctions")}static str(...e){return gr.StringFunctions.str(...e)}static lang(...e){return gr.StringFunctions.lang(...e)}static langdir(...e){return gr.StringFunctions.langdir(...e)}static langMatches(...e){return gr.StringFunctions.langMatches(...e)}static regex(...e){return gr.StringFunctions.regex(...e)}static contains(...e){return gr.StringFunctions.contains(...e)}static strStarts(...e){return gr.StringFunctions.strStarts(...e)}static strEnds(...e){return gr.StringFunctions.strEnds(...e)}static strlen(...e){return gr.StringFunctions.strlen(...e)}static ucase(...e){return gr.StringFunctions.ucase(...e)}static lcase(...e){return gr.StringFunctions.lcase(...e)}static substr(...e){return gr.StringFunctions.substr(...e)}static strBefore(...e){return gr.StringFunctions.strBefore(...e)}static strAfter(...e){return gr.StringFunctions.strAfter(...e)}static concat(...e){return gr.StringFunctions.concat(...e)}static replace(...e){return gr.StringFunctions.replace(...e)}static encodeForUri(...e){return gr.StringFunctions.encodeForUri(...e)}static normalize(...e){return gr.StringFunctions.normalize(...e)}static fold(...e){return gr.StringFunctions.fold(...e)}static abs(...e){return na.MathFunctions.abs(...e)}static round(...e){return na.MathFunctions.round(...e)}static ceil(...e){return na.MathFunctions.ceil(...e)}static floor(...e){return na.MathFunctions.floor(...e)}static rand(){return na.MathFunctions.rand()}static msToMinutes(...e){return na.MathFunctions.msToMinutes(...e)}static msToHours(...e){return na.MathFunctions.msToHours(...e)}static msToSeconds(...e){return na.MathFunctions.msToSeconds(...e)}static parseDate(...e){return Ie.DateTimeFunctions.parseDate(...e)}static dateBefore(...e){return Ie.DateTimeFunctions.dateBefore(...e)}static dateAfter(...e){return Ie.DateTimeFunctions.dateAfter(...e)}static dateInRange(...e){return Ie.DateTimeFunctions.dateInRange(...e)}static dateDiffMinutes(...e){return Ie.DateTimeFunctions.dateDiffMinutes(...e)}static dateDiffHours(...e){return Ie.DateTimeFunctions.dateDiffHours(...e)}static year(...e){return Ie.DateTimeFunctions.year(...e)}static month(...e){return Ie.DateTimeFunctions.month(...e)}static day(...e){return Ie.DateTimeFunctions.day(...e)}static hours(...e){return Ie.DateTimeFunctions.hours(...e)}static minutes(...e){return Ie.DateTimeFunctions.minutes(...e)}static seconds(...e){return Ie.DateTimeFunctions.seconds(...e)}static timezone(...e){return Ie.DateTimeFunctions.timezone(...e)}static tz(...e){return Ie.DateTimeFunctions.tz(...e)}static now(){return Ie.DateTimeFunctions.now()}static parseDayTimeDuration(...e){return Ie.DateTimeFunctions.parseDayTimeDuration(...e)}static formatDayTimeDuration(...e){return Ie.DateTimeFunctions.formatDayTimeDuration(...e)}static xsdDayTimeDuration(...e){return Ie.DateTimeFunctions.xsdDayTimeDuration(...e)}static compareDurations(...e){return Ie.DateTimeFunctions.compareDurations(...e)}static isDayTimeDuration(...e){return Ie.DateTimeFunctions.isDayTimeDuration(...e)}static isDate(...e){return Ie.DateTimeFunctions.isDate(...e)}static dateDiff(...e){return Ie.DateTimeFunctions.dateDiff(...e)}static dateTimeDiff(...e){return Ie.DateTimeFunctions.dateTimeDiff(...e)}static dateTimeAdd(...e){return Ie.DateTimeFunctions.dateTimeAdd(...e)}static dateTimeSubtract(...e){return Ie.DateTimeFunctions.dateTimeSubtract(...e)}static dateAdd(...e){return Ie.DateTimeFunctions.dateAdd(...e)}static dateSubtract(...e){return Ie.DateTimeFunctions.dateSubtract(...e)}static parseYearMonthDuration(...e){return Ie.DateTimeFunctions.parseYearMonthDuration(...e)}static isYearMonthDuration(...e){return Ie.DateTimeFunctions.isYearMonthDuration(...e)}static dateTimeAddYearMonth(...e){return Ie.DateTimeFunctions.dateTimeAddYearMonth(...e)}static dateTimeSubtractYearMonth(...e){return Ie.DateTimeFunctions.dateTimeSubtractYearMonth(...e)}static dateAddYearMonth(...e){return Ie.DateTimeFunctions.dateAddYearMonth(...e)}static dateSubtractYearMonth(...e){return Ie.DateTimeFunctions.dateSubtractYearMonth(...e)}static durationAdd(...e){return Ie.DateTimeFunctions.durationAdd(...e)}static durationSubtract(...e){return Ie.DateTimeFunctions.durationSubtract(...e)}static durationMultiply(...e){return Ie.DateTimeFunctions.durationMultiply(...e)}static durationDivide(...e){return Ie.DateTimeFunctions.durationDivide(...e)}static formatYearMonthDuration(...e){return Ie.DateTimeFunctions.formatYearMonthDuration(...e)}static yearMonthDurationAdd(...e){return Ie.DateTimeFunctions.yearMonthDurationAdd(...e)}static yearMonthDurationSubtract(...e){return Ie.DateTimeFunctions.yearMonthDurationSubtract(...e)}static durationYears(...e){return Ie.DateTimeFunctions.durationYears(...e)}static durationMonths(...e){return Ie.DateTimeFunctions.durationMonths(...e)}static durationToDays(...e){return Ie.DateTimeFunctions.durationToDays(...e)}static durationToHours(...e){return Ie.DateTimeFunctions.durationToHours(...e)}static durationToMinutes(...e){return Ie.DateTimeFunctions.durationToMinutes(...e)}static durationToSeconds(...e){return Ie.DateTimeFunctions.durationToSeconds(...e)}static durationDays(...e){return Ie.DateTimeFunctions.durationDays(...e)}static durationHours(...e){return Ie.DateTimeFunctions.durationHours(...e)}static durationMinutes(...e){return Ie.DateTimeFunctions.durationMinutes(...e)}static durationSeconds(...e){return Ie.DateTimeFunctions.durationSeconds(...e)}static adjust(...e){return Ie.DateTimeFunctions.adjust(...e)}static isTime(...e){return Ie.DateTimeFunctions.isTime(...e)}static timeDiff(...e){return Ie.DateTimeFunctions.timeDiff(...e)}static compare(...e){return vl.LogicalFunctions.compare(...e)}static logicalAnd(...e){return vl.LogicalFunctions.logicalAnd(...e)}static logicalOr(...e){return vl.LogicalFunctions.logicalOr(...e)}static logicalNot(...e){return vl.LogicalFunctions.logicalNot(...e)}static coalesce(...e){return vl.LogicalFunctions.coalesce(...e)}static if(...e){return vl.LogicalFunctions.if(...e)}static datatype(...e){return Pt.RDFTermFunctions.datatype(...e)}static bound(...e){return Pt.RDFTermFunctions.bound(...e)}static isIRI(...e){return Pt.RDFTermFunctions.isIRI(...e)}static isBlank(...e){return Pt.RDFTermFunctions.isBlank(...e)}static isLiteral(...e){return Pt.RDFTermFunctions.isLiteral(...e)}static isTriple(...e){return Pt.RDFTermFunctions.isTriple(...e)}static isNumeric(...e){return Pt.RDFTermFunctions.isNumeric(...e)}static hasLangdir(...e){return Pt.RDFTermFunctions.hasLangdir(...e)}static sameTerm(...e){return Pt.RDFTermFunctions.sameTerm(...e)}static iri(...e){return Pt.RDFTermFunctions.iri(...e)}static uri(...e){return Pt.RDFTermFunctions.uri(...e)}static bnode(...e){return Pt.RDFTermFunctions.bnode(...e)}static strdt(...e){return Pt.RDFTermFunctions.strdt(...e)}static strlang(...e){return Pt.RDFTermFunctions.strlang(...e)}static strlangdir(...e){return Pt.RDFTermFunctions.strlangdir(...e)}static uuid(){return Pt.RDFTermFunctions.uuid()}static struuid(){return Pt.RDFTermFunctions.struuid()}static xsdDateTime(...e){return Pt.RDFTermFunctions.xsdDateTime(...e)}static xsdInteger(...e){return Pt.RDFTermFunctions.xsdInteger(...e)}static xsdDecimal(...e){return Pt.RDFTermFunctions.xsdDecimal(...e)}static triple(...e){return Pt.RDFTermFunctions.triple(...e)}static subject(...e){return Pt.RDFTermFunctions.subject(...e)}static predicate(...e){return Pt.RDFTermFunctions.predicate(...e)}static object(...e){return Pt.RDFTermFunctions.object(...e)}static md5(...e){return kf.HashFunctions.md5(...e)}static sha1(...e){return kf.HashFunctions.sha1(...e)}static sha256(...e){return kf.HashFunctions.sha256(...e)}static sha384(...e){return kf.HashFunctions.sha384(...e)}static sha512(...e){return kf.HashFunctions.sha512(...e)}};_m.BuiltInFunctions=gS});var Mf=v(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.ExoQLBudgetExceededError=ys.ExoQLCycleError=ys.ExoQLEvalDisabledError=ys.ExoQLForbiddenKeywordError=void 0;var yS=class extends Error{static{a(this,"ExoQLForbiddenKeywordError")}constructor(e,t){super(t??`ExoQLForbiddenKeywordError: keyword "${e}" is not permitted by the exoql__Query AST allowlist`),this.name="ExoQLForbiddenKeywordError",this.keyword=e}};ys.ExoQLForbiddenKeywordError=yS;var bS=class extends Error{static{a(this,"ExoQLEvalDisabledError")}constructor(e){super(e??"ExoQLEvalDisabledError: exoql.eval.enabled is false (default). Flip the feature flag to opt in."),this.name="ExoQLEvalDisabledError"}};ys.ExoQLEvalDisabledError=bS;var _S=class extends Error{static{a(this,"ExoQLCycleError")}constructor(e,t){super(t??`ExoQLCycleError: cycle detected in nested exo:eval invocations: ${e.join(" \u2192 ")}`),this.name="ExoQLCycleError",this.path=e}};ys.ExoQLCycleError=_S;var wS=class extends Error{static{a(this,"ExoQLBudgetExceededError")}constructor(e,t,r,i){super(i??`ExoQLBudgetExceededError: ${e} budget exceeded (limit=${t}, observed=${r})`),this.name="ExoQLBudgetExceededError",this.budget=e,this.limit=t,this.observed=r}};ys.ExoQLBudgetExceededError=wS});var o3=v(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.functionHandlers=void 0;var z=wm();K.functionHandlers=new Map;K.functionHandlers.set("str",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.str(t)});K.functionHandlers.set("lang",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.lang(t)});K.functionHandlers.set("langmatches",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.langMatches(t,r)});K.functionHandlers.set("contains",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.contains(t,r)});K.functionHandlers.set("strstarts",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.strStarts(t,r)});K.functionHandlers.set("strends",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.strEnds(t,r)});K.functionHandlers.set("strlen",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.strlen(t)});K.functionHandlers.set("ucase",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.ucase(t)});K.functionHandlers.set("lcase",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.lcase(t)});K.functionHandlers.set("substr",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=Number(e.evaluateExpression(n[1],e.solution));if(n[2]){let i=Number(e.evaluateExpression(n[2],e.solution));return z.BuiltInFunctions.substr(t,r,i)}return z.BuiltInFunctions.substr(t,r)});K.functionHandlers.set("strbefore",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.strBefore(t,r)});K.functionHandlers.set("strafter",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.strAfter(t,r)});K.functionHandlers.set("concat",(n,e)=>{let t=n.map(r=>e.getStringValue(e.evaluateExpression(r,e.solution)));return z.BuiltInFunctions.concat(...t)});K.functionHandlers.set("replace",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=e.getStringValue(e.evaluateExpression(n[2],e.solution)),s=n[3]?e.getStringValue(e.evaluateExpression(n[3],e.solution)):void 0;return z.BuiltInFunctions.replace(t,r,i,s)});K.functionHandlers.set("regex",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=n[2]?e.getStringValue(e.evaluateExpression(n[2],e.solution)):void 0;return z.BuiltInFunctions.regex(t,r,i)});K.functionHandlers.set("encode_for_uri",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.encodeForUri(t)});K.functionHandlers.set("datatype",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.datatype(t).value});K.functionHandlers.set("bound",(n,e)=>{let t=n[0];if(t.type==="variable"&&t.name){let r=e.solution.get(t.name);return z.BuiltInFunctions.bound(r)}return!0});var JR=a((n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.isIRI(t)},"isIriHandler");K.functionHandlers.set("isiri",JR);K.functionHandlers.set("isuri",JR);K.functionHandlers.set("isblank",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.isBlank(t)});K.functionHandlers.set("isliteral",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.isLiteral(t)});K.functionHandlers.set("isnumeric",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.isNumeric(t)});K.functionHandlers.set("haslangdir",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.hasLangdir(t)});K.functionHandlers.set("istriple",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.isTriple(t)});K.functionHandlers.set("sameterm",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution),r=e.getTermFromExpression(n[1],e.solution);return z.BuiltInFunctions.sameTerm(t,r)});K.functionHandlers.set("abs",(n,e)=>{let t=Number(e.getStringValue(e.evaluateExpression(n[0],e.solution)));return z.BuiltInFunctions.abs(t)});K.functionHandlers.set("round",(n,e)=>{let t=Number(e.getStringValue(e.evaluateExpression(n[0],e.solution)));return z.BuiltInFunctions.round(t)});K.functionHandlers.set("ceil",(n,e)=>{let t=Number(e.getStringValue(e.evaluateExpression(n[0],e.solution)));return z.BuiltInFunctions.ceil(t)});K.functionHandlers.set("floor",(n,e)=>{let t=Number(e.getStringValue(e.evaluateExpression(n[0],e.solution)));return z.BuiltInFunctions.floor(t)});K.functionHandlers.set("rand",()=>z.BuiltInFunctions.rand());K.functionHandlers.set("parsedate",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.parseDate(t)});K.functionHandlers.set("datebefore",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.dateBefore(t,r)});K.functionHandlers.set("dateafter",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.dateAfter(t,r)});K.functionHandlers.set("dateinrange",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=e.getStringValue(e.evaluateExpression(n[2],e.solution));return z.BuiltInFunctions.dateInRange(t,r,i)});K.functionHandlers.set("datediffminutes",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.dateDiffMinutes(t,r)});K.functionHandlers.set("datediffhours",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.dateDiffHours(t,r)});var El=a((n,e,t)=>(r,i)=>{let s=i.evaluateExpression(r[0],i.solution);return e&&i.isYearMonthDurationValue(s)?e(s):t&&i.isDayTimeDurationValue(s)?t(s):n(i.getStringValue(s))},"createDateTimeAccessor"),ZR=El(z.BuiltInFunctions.year.bind(z.BuiltInFunctions),z.BuiltInFunctions.durationYears.bind(z.BuiltInFunctions),null);K.functionHandlers.set("year",ZR);K.functionHandlers.set("years",ZR);var e3=El(z.BuiltInFunctions.month.bind(z.BuiltInFunctions),z.BuiltInFunctions.durationMonths.bind(z.BuiltInFunctions),null);K.functionHandlers.set("month",e3);K.functionHandlers.set("months",e3);var t3=El(z.BuiltInFunctions.day.bind(z.BuiltInFunctions),null,z.BuiltInFunctions.durationDays.bind(z.BuiltInFunctions));K.functionHandlers.set("day",t3);K.functionHandlers.set("days",t3);K.functionHandlers.set("hours",El(z.BuiltInFunctions.hours.bind(z.BuiltInFunctions),null,z.BuiltInFunctions.durationHours.bind(z.BuiltInFunctions)));K.functionHandlers.set("minutes",El(z.BuiltInFunctions.minutes.bind(z.BuiltInFunctions),null,z.BuiltInFunctions.durationMinutes.bind(z.BuiltInFunctions)));K.functionHandlers.set("seconds",El(z.BuiltInFunctions.seconds.bind(z.BuiltInFunctions),null,z.BuiltInFunctions.durationSeconds.bind(z.BuiltInFunctions)));K.functionHandlers.set("timezone",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.timezone(t)});K.functionHandlers.set("tz",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.tz(t)});K.functionHandlers.set("adjust",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution),r=n.length>1?e.evaluateExpression(n[1],e.solution):void 0;return z.BuiltInFunctions.adjust(t,r)});K.functionHandlers.set("now",()=>z.BuiltInFunctions.now());var r3=a((n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.xsdDateTime(e.getStringValue(t))},"dateTimeHandler");K.functionHandlers.set("datetime",r3);K.functionHandlers.set("xsd:datetime",r3);var n3=a((n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.xsdInteger(e.getStringValue(t))},"integerHandler");K.functionHandlers.set("integer",n3);K.functionHandlers.set("xsd:integer",n3);var i3=a((n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.xsdDecimal(e.getStringValue(t))},"decimalHandler");K.functionHandlers.set("decimal",i3);K.functionHandlers.set("xsd:decimal",i3);var s3=a((n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.xsdDayTimeDuration(e.getStringValue(t))},"dayTimeDurationHandler");K.functionHandlers.set("daytimeduration",s3);K.functionHandlers.set("xsd:daytimeduration",s3);K.functionHandlers.set("durationtodays",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationToDays(t)});K.functionHandlers.set("durationtohours",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationToHours(t)});K.functionHandlers.set("durationtominutes",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationToMinutes(t)});K.functionHandlers.set("durationtoseconds",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationToSeconds(t)});K.functionHandlers.set("durationdays",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationDays(t)});K.functionHandlers.set("durationhours",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationHours(t)});K.functionHandlers.set("durationminutes",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationMinutes(t)});K.functionHandlers.set("durationseconds",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationSeconds(t)});K.functionHandlers.set("durationyears",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationYears(t)});K.functionHandlers.set("durationmonths",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationMonths(t)});K.functionHandlers.set("datetimediff",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution),r=e.evaluateExpression(n[1],e.solution);return z.BuiltInFunctions.dateTimeDiff(t,r)});K.functionHandlers.set("datetimeadd",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution),r=e.evaluateExpression(n[1],e.solution);return z.BuiltInFunctions.dateTimeAdd(t,r)});K.functionHandlers.set("datetimesubtract",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution),r=e.evaluateExpression(n[1],e.solution);return z.BuiltInFunctions.dateTimeSubtract(t,r)});K.functionHandlers.set("mstominutes",(n,e)=>{let t=Number(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.msToMinutes(t)});K.functionHandlers.set("mstohours",(n,e)=>{let t=Number(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.msToHours(t)});K.functionHandlers.set("mstoseconds",(n,e)=>{let t=Number(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.msToSeconds(t)});K.functionHandlers.set("md5",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.md5(t)});K.functionHandlers.set("sha1",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.sha1(t)});K.functionHandlers.set("sha256",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.sha256(t)});K.functionHandlers.set("sha384",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.sha384(t)});K.functionHandlers.set("sha512",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.sha512(t)});K.functionHandlers.set("subject",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.subject(t)});K.functionHandlers.set("predicate",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.predicate(t)});K.functionHandlers.set("object",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.object(t)});K.functionHandlers.set("triple",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution),r=e.getTermFromExpression(n[1],e.solution),i=e.getTermFromExpression(n[2],e.solution);return z.BuiltInFunctions.triple(t,r,i)});K.functionHandlers.set("days_between",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=new Date(t),s=new Date(r);return Math.floor((s.getTime()-i.getTime())/(1440*60*1e3))});K.functionHandlers.set("minutes_between",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=new Date(t),s=new Date(r);return Math.floor((s.getTime()-i.getTime())/(60*1e3))});K.functionHandlers.set("hours_between",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=new Date(t);return(new Date(r).getTime()-i.getTime())/(3600*1e3)});K.functionHandlers.set("age_days",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=new Date(t);return Math.floor((new Date().getTime()-r.getTime())/(1440*60*1e3))});K.functionHandlers.set("week_number",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=new Date(t),i=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate()));i.setUTCDate(i.getUTCDate()+4-(i.getUTCDay()||7));let s=new Date(Date.UTC(i.getUTCFullYear(),0,1));return Math.ceil(((i.getTime()-s.getTime())/(1440*60*1e3)+1)/7)});K.functionHandlers.set("format_date",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=new Date(t);return r.replace("YYYY",String(i.getFullYear())).replace("MM",String(i.getMonth()+1).padStart(2,"0")).replace("DD",String(i.getDate()).padStart(2,"0")).replace("HH",String(i.getHours()).padStart(2,"0")).replace("mm",String(i.getMinutes()).padStart(2,"0")).replace("ss",String(i.getSeconds()).padStart(2,"0"))});K.functionHandlers.set("exo:eval",()=>{let{ExoQLEvalDisabledError:n}=Mf();throw new n})});var Sm=v(Tl=>{"use strict";Object.defineProperty(Tl,"__esModule",{value:!0});Tl.FilterExecutor=Tl.FilterExecutorError=void 0;var vt=wm(),z7=o3(),SS=Ce(),bs=Ge(),Tr=class extends Error{static{a(this,"FilterExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="FilterExecutorError"}};Tl.FilterExecutorError=Tr;var vS=class{static{a(this,"FilterExecutor")}constructor(){this.existsEvaluator=null,this.tripleStore=null,this.uuidCache=new Map}setExistsEvaluator(e){this.existsEvaluator=e}setTripleStore(e){this.tripleStore=e,this.uuidCache.clear()}async*execute(e,t){let r=this.expressionContainsExists(e.expression);for await(let i of t)try{let s;r?s=await this.evaluateExpressionAsync(e.expression,i):s=this.evaluateExpression(e.expression,i),s===!0&&(yield i)}catch{continue}}expressionContainsExists(e){if(!e||typeof e!="object")return!1;if(e.type==="exists")return!0;if(e.type==="logical")return e.operands.some(t=>this.expressionContainsExists(t));if(e.type==="comparison"){let t=e;return this.expressionContainsExists(t.left)||this.expressionContainsExists(t.right)}if(e.type==="arithmetic"){let t=e;return this.expressionContainsExists(t.left)||this.expressionContainsExists(t.right)}if(e.type==="in"){let t=e;return this.expressionContainsExists(t.expression)||t.list.some(r=>this.expressionContainsExists(r))}if(e.type==="function"||e.type==="functionCall"){let t=e;return Array.isArray(t.args)?t.args.some(r=>this.expressionContainsExists(r)):!1}return!1}async executeAll(e,t){let r=[];async function*i(){for(let s of t)yield s}a(i,"generator");for await(let s of this.execute(e,i()))r.push(s);return r}evaluateExpression(e,t){let r=e;if("termType"in e)switch(r.termType){case"Variable":return t.get(r.value);case"Literal":{let i=r.value,s=r.datatype,o=typeof s=="string"?s:s?.value;return o&&i.length>0&&this.shouldPreserveDatatype(o)?new bs.Literal(i,new SS.IRI(o)):i}case"NamedNode":return r.value;default:throw new Tr(`Unsupported termType: ${String(r.termType)}`)}switch(e.type){case"comparison":return this.evaluateComparison(e,t);case"logical":return this.evaluateLogical(e,t);case"arithmetic":return this.evaluateArithmetic(e,t);case"function":case"functionCall":return this.evaluateFunction(e,t);case"variable":return t.get(e.name);case"literal":{let i=e;return i.datatype&&i.value.length>0&&this.shouldPreserveDatatype(i.datatype)?new bs.Literal(i.value,new SS.IRI(i.datatype)):i.value}case"in":return this.evaluateIn(e,t);case"exists":throw new Tr("EXISTS expressions require async evaluation. Use evaluateExpressionAsync instead.");default:throw new Tr(`Unsupported expression type: ${e.type}`)}}async evaluateExpressionAsync(e,t){if(!this.expressionContainsExists(e))return this.evaluateExpression(e,t);if(e.type==="exists")return this.evaluateExists(e,t);if(e.type==="logical")return this.evaluateLogicalAsync(e,t);if(e.type==="comparison"){let r=e,i=await this.evaluateExpressionAsync(r.left,t),s=await this.evaluateExpressionAsync(r.right,t);return vt.BuiltInFunctions.compare(i,s,r.operator)}return e.type==="in"?this.evaluateInAsync(e,t):e.type==="function"||e.type==="functionCall"?this.evaluateFunctionAsync(e,t):this.evaluateExpression(e,t)}async evaluateExists(e,t){if(!this.existsEvaluator)throw new Tr("EXISTS evaluator not set. Call setExistsEvaluator before evaluating EXISTS expressions.");let r=await this.existsEvaluator(e.pattern,t);return e.negated?!r:r}async evaluateLogicalAsync(e,t){if(e.operator==="!"){let i=await this.evaluateExpressionAsync(e.operands[0],t);return vt.BuiltInFunctions.logicalNot(i)}let r=[];for(let i of e.operands){let s=await this.evaluateExpressionAsync(i,t);r.push(s)}if(e.operator==="&&")return vt.BuiltInFunctions.logicalAnd(r);if(e.operator==="||")return vt.BuiltInFunctions.logicalOr(r);throw new Tr(`Unknown logical operator: ${String(e.operator)}`)}async evaluateInAsync(e,t){let r=await this.evaluateExpressionAsync(e.expression,t),i=!1;for(let s of e.list){let o=await this.evaluateExpressionAsync(s,t);if(vt.BuiltInFunctions.compare(r,o,"=")){i=!0;break}}return e.negated?!i:i}async evaluateFunctionAsync(e,t){let r=e,i=this.extractFunctionName(r.function),s=r.args??[];if(i==="if"){if(s.length!==3)throw new Tr("IF requires exactly 3 arguments");let l=await this.evaluateExpressionAsync(s[0],t);return this.toBoolean(l)?this.evaluateExpressionAsync(s[1],t):this.evaluateExpressionAsync(s[2],t)}if(i==="coalesce"){for(let l of s)try{let u=await this.evaluateExpressionAsync(l,t);if(u!=null)return u}catch{continue}return}let o=[];for(let l of s){let u=await this.evaluateExpressionAsync(l,t);o.push(this.wrapAsLiteralExpression(u))}let c={...r,args:o};return this.evaluateFunction(c,t)}wrapAsLiteralExpression(e){return e==null?{type:"literal",value:""}:typeof e=="object"&&"termType"in e?e:e instanceof SS.IRI||e instanceof bs.Literal?{type:"literal",value:e.value}:typeof e=="number"||typeof e=="boolean"||typeof e=="string"?{type:"literal",value:e}:{type:"literal",value:String(e)}}evaluateComparison(e,t){let r=this.evaluateExpression(e.left,t),i=this.evaluateExpression(e.right,t);return vt.BuiltInFunctions.compare(r,i,e.operator)}evaluateLogical(e,t){if(e.operator==="!"){let i=this.evaluateExpression(e.operands[0],t);return vt.BuiltInFunctions.logicalNot(i)}let r=e.operands.map(i=>this.evaluateExpression(i,t));if(e.operator==="&&")return vt.BuiltInFunctions.logicalAnd(r);if(e.operator==="||")return vt.BuiltInFunctions.logicalOr(r);throw new Tr(`Unknown logical operator: ${String(e.operator)}`)}evaluateIn(e,t){let r=this.evaluateExpression(e.expression,t),i=e.list.some(s=>{let o=this.evaluateExpression(s,t);return vt.BuiltInFunctions.compare(r,o,"=")});return e.negated?!i:i}evaluateArithmetic(e,t){let r=this.evaluateExpression(e.left,t),i=this.evaluateExpression(e.right,t);if(e.operator==="-"&&this.isDateValue(r)&&this.isDateValue(i))return vt.BuiltInFunctions.dateDiff(r,i);if(e.operator==="-"&&this.isTimeValue(r)&&this.isTimeValue(i))return vt.BuiltInFunctions.timeDiff(r,i);if(e.operator==="-"&&this.isDateTimeValue(r)&&this.isDateTimeValue(i))return vt.BuiltInFunctions.dateTimeDiff(r,i);if(e.operator==="+"&&this.isDateValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.dateAdd(r,i);if(e.operator==="-"&&this.isDateValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.dateSubtract(r,i);if(e.operator==="+"&&this.isDateValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.dateAddYearMonth(r,i);if(e.operator==="-"&&this.isDateValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.dateSubtractYearMonth(r,i);if(e.operator==="+"&&this.isDateTimeValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.dateTimeAdd(r,i);if(e.operator==="-"&&this.isDateTimeValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.dateTimeSubtract(r,i);if(e.operator==="+"&&this.isDateTimeValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.dateTimeAddYearMonth(r,i);if(e.operator==="-"&&this.isDateTimeValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.dateTimeSubtractYearMonth(r,i);if(e.operator==="+"&&this.isDayTimeDurationValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.durationAdd(r,i);if(e.operator==="-"&&this.isDayTimeDurationValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.durationSubtract(r,i);if(e.operator==="*"&&this.isDayTimeDurationValue(r)&&!this.isDayTimeDurationValue(i)){let c=this.toNumericValue(i);return vt.BuiltInFunctions.durationMultiply(r,c)}if(e.operator==="*"&&!this.isDayTimeDurationValue(r)&&this.isDayTimeDurationValue(i)){let c=this.toNumericValue(r);return vt.BuiltInFunctions.durationMultiply(i,c)}if(e.operator==="/"&&this.isDayTimeDurationValue(r)&&!this.isDayTimeDurationValue(i)){let c=this.toNumericValue(i);if(c===0)throw new Tr("Division by zero");return vt.BuiltInFunctions.durationDivide(r,c)}if(e.operator==="+"&&this.isYearMonthDurationValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.yearMonthDurationAdd(r,i);if(e.operator==="-"&&this.isYearMonthDurationValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.yearMonthDurationSubtract(r,i);let s=this.toNumericValue(r),o=this.toNumericValue(i);switch(e.operator){case"+":return s+o;case"-":return s-o;case"*":return s*o;case"/":if(o===0)throw new Tr("Division by zero");return s/o;default:throw new Tr(`Unknown arithmetic operator: ${String(e.operator)}`)}}shouldPreserveDatatype(e){return e==="http://www.w3.org/2001/XMLSchema#dateTime"||e==="http://www.w3.org/2001/XMLSchema#date"||e==="http://www.w3.org/2001/XMLSchema#time"||e==="http://www.w3.org/2001/XMLSchema#dayTimeDuration"||e==="http://www.w3.org/2001/XMLSchema#yearMonthDuration"||e==="http://www.w3.org/2001/XMLSchema#duration"}isDayTimeDurationValue(e){return e instanceof bs.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#dayTimeDuration":!1}isYearMonthDurationValue(e){return e instanceof bs.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#yearMonthDuration":!1}toNumericValue(e){if(typeof e=="number")return e;if(e instanceof bs.Literal){let t=e.datatype?.value||"";if(t.includes("#integer")||t.includes("#decimal")||t.includes("#double")||t.includes("#float")){let i=parseFloat(e.value);if(!isNaN(i))return i}let r=parseFloat(e.value);if(!isNaN(r))return r}if(typeof e=="string"){let t=parseFloat(e);if(!isNaN(t))return t}if(e&&typeof e=="object"&&"value"in e){let t=parseFloat(String(e.value));if(!isNaN(t))return t}throw new Tr(`Cannot convert to number: ${e}`)}isDateTimeValue(e){if(e instanceof bs.Literal){let t=e.datatype?.value||"";return t.includes("#dateTime")||t.includes("#date")?!0:/^\d{4}-\d{2}-\d{2}(T|\s)/.test(e.value)}return typeof e=="string"?/^\d{4}-\d{2}-\d{2}(T|\s)/.test(e):!1}isDateValue(e){return e instanceof bs.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#date":!1}isTimeValue(e){return e instanceof bs.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#time":!1}evaluateFunction(e,t){let r=e,i=this.extractFunctionName(r.function),s=this.evaluateSpecialFunction(i,r.args,t);if(s!==void 0)return s.value;let o=z7.functionHandlers.get(i);if(!o)throw new Tr(`Unknown function: ${i}`);let c={evaluateExpression:a((l,u)=>this.evaluateExpression(l,u),"evaluateExpression"),getTermFromExpression:a((l,u)=>this.getTermFromExpression(l,u),"getTermFromExpression"),getStringValue:a(l=>this.getStringValue(l),"getStringValue"),solution:t,isYearMonthDurationValue:a(l=>this.isYearMonthDurationValue(l),"isYearMonthDurationValue"),isDayTimeDurationValue:a(l=>this.isDayTimeDurationValue(l),"isDayTimeDurationValue")};return o(r.args,c)}extractFunctionName(e){if(typeof e=="string")return e.toLowerCase();if(e&&typeof e=="object"&&"value"in e){let t=e.value;return((t.includes("#")?t.split("#").pop():t.split("/").pop())||t).toLowerCase()}throw new Tr(`Unknown function format: ${String(e)}`)}evaluateSpecialFunction(e,t,r){switch(e){case"coalesce":for(let i of t)try{let s=this.evaluateExpression(i,r);if(s!=null)return{value:s}}catch{continue}return{value:void 0};case"if":{if(!t||t.length!==3)throw new Tr("IF requires exactly 3 arguments");let i=this.evaluateExpression(t[0],r);return{value:this.toBoolean(i)?this.evaluateExpression(t[1],r):this.evaluateExpression(t[2],r)}}case"byuuid":return{value:this.evaluateByUUID({type:"function",function:"byuuid",args:t},r)};default:return}}getTermFromExpression(e,t){let r=e;if(r.type==="variable"&&r.name)return t.get(r.name)}getStringValue(e){return e==null?"":typeof e=="object"&&"value"in e?String(e.value):String(e)}toBoolean(e){if(typeof e=="boolean")return e;if(typeof e=="number")return!isNaN(e)&&e!==0;if(typeof e=="string")return e.length>0;if(e instanceof bs.Literal){let t=e.datatype?.value||"";if(t.includes("#boolean"))return e.value==="true"||e.value==="1";if(t.includes("#integer")||t.includes("#decimal")||t.includes("#double")||t.includes("#float")){let r=parseFloat(e.value);return!isNaN(r)&&r!==0}return e.value.length>0}return!!e}evaluateByUUID(e,t){if(!e.args||e.args.length!==1)throw new Tr("exo:byUUID requires exactly 1 argument (UUID string)");let r=this.evaluateExpression(e.args[0],t),i=this.getStringValue(r);if(!i)return;let s=i.toLowerCase();if(this.uuidCache.has(s))return this.uuidCache.get(s)??void 0;if(!this.tripleStore){this.uuidCache.set(s,null);return}if(this.tripleStore.findSubjectsByUUIDSync){let o=this.tripleStore.findSubjectsByUUIDSync(s);if(o.length===0){this.uuidCache.set(s,null);return}let c=o[0];return this.uuidCache.set(s,c),c}this.uuidCache.set(s,null)}cacheUUIDResult(e,t){let r=e.toLowerCase();this.uuidCache.set(r,t)}getCachedUUID(e){let t=e.toLowerCase();if(this.uuidCache.has(t))return this.uuidCache.get(t)}};Tl.FilterExecutor=vS});var TS=v(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.OptionalExecutor=void 0;var ES=class{static{a(this,"OptionalExecutor")}async*execute(e,t){let r=[];for await(let s of e)r.push(s);let i=[];for await(let s of t)i.push(s);yield*this.hashJoin(r,i)}async executeAll(e,t){let r=[];for(let i of this.hashJoin(e,t))r.push(i);return r}*hashJoin(e,t){if(e.length===0)return;if(t.length===0){yield*e;return}let r=new Set;for(let l of e)for(let u of l.variables())r.add(u);let i=new Set;for(let l of t)for(let u of l.variables())i.add(u);let s=[];for(let l of r)i.has(l)&&s.push(l);if(s.sort(),s.length===0){yield*this.nestedLoopJoin(e,t);return}let o="\0",c=new Map;for(let l of t){let u=this.computeHashKey(l,s,o),f=c.get(u);f||(f=[],c.set(u,f)),f.push(l)}for(let l of e){let u=this.computeHashKey(l,s,o),f=c.get(u),d=!1;if(f)for(let h of f){let p=l.merge(h);p!==null&&(yield p,d=!0)}d||(yield l)}}computeHashKey(e,t,r){let i=[];for(let s of t){let o=e.get(s);i.push(o!==void 0?o.toString():"UNBOUND")}return i.join(r)}*nestedLoopJoin(e,t){for(let r of e){let i=!1;for(let s of t){let o=r.merge(s);o!==null&&(yield o,i=!0)}i||(yield r)}}};vm.OptionalExecutor=ES});var xS=v(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.UnionExecutor=void 0;var AS=class{static{a(this,"UnionExecutor")}async*execute(e,t){let r=new Set;for await(let i of e){let s=this.getSolutionKey(i);r.has(s)||(r.add(s),yield i)}for await(let i of t){let s=this.getSolutionKey(i);r.has(s)||(r.add(s),yield i)}}async executeAll(e,t){let r=[];async function*i(){for(let o of e)yield o}a(i,"generateLeft");async function*s(){for(let o of t)yield o}a(s,"generateRight");for await(let o of this.execute(i(),s()))r.push(o);return r}getSolutionKey(e){let t=e.toJSON();return Object.keys(t).sort().map(i=>`${i}=${t[i]}`).join("|")}};Em.UnionExecutor=AS});var a3=v(Tm=>{"use strict";Object.defineProperty(Tm,"__esModule",{value:!0});Tm.MinusExecutor=void 0;var IS=class{static{a(this,"MinusExecutor")}async*execute(e,t){let r=[];for await(let s of e)r.push(s);let i=[];for await(let s of t)i.push(s);for(let s of r){let o=!1;for(let c of i)if(this.areCompatible(s,c)){o=!0;break}o||(yield s)}}async executeAll(e,t){let r=[];async function*i(){for(let o of e)yield o}a(i,"generateLeft");async function*s(){for(let o of t)yield o}a(s,"generateRight");for await(let o of this.execute(i(),s()))r.push(o);return r}areCompatible(e,t){let r=e.variables(),i=new Set(t.variables()),s=r.filter(o=>i.has(o));if(s.length===0)return!1;for(let o of s){let c=e.get(o),l=t.get(o);if(c===void 0||l===void 0||c.toString()!==l.toString())return!1}return!0}};Tm.MinusExecutor=IS});var l3=v(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});Al.ValuesExecutor=Al.ValuesExecutorError=void 0;var K7=gs(),c3=Ce(),X7=Ge(),Am=class extends Error{static{a(this,"ValuesExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="ValuesExecutorError"}};Al.ValuesExecutorError=Am;var RS=class{static{a(this,"ValuesExecutor")}async*execute(e){if(e.bindings.length!==0)for(let t of e.bindings)yield this.createSolutionMapping(t)}async executeAll(e){let t=[];for await(let r of this.execute(e))t.push(r);return t}createSolutionMapping(e){let t=new K7.SolutionMapping;for(let[r,i]of Object.entries(e)){let s=this.toRDFTerm(i);t.set(r,s)}return t}toRDFTerm(e){if(e.type==="iri")return new c3.IRI(e.value);if(e.type==="literal")return new X7.Literal(e.value,e.datatype?new c3.IRI(e.datatype):void 0,e.language,e.direction);throw new Am(`Unknown term type: ${e.type}`)}};Al.ValuesExecutor=RS});var CS=v(Il=>{"use strict";Object.defineProperty(Il,"__esModule",{value:!0});Il.CustomAggregateRegistry=Il.CustomAggregateError=void 0;var xl=class extends Error{static{a(this,"CustomAggregateError")}constructor(e,t){super(e),this.iri=t,this.name="CustomAggregateError"}};Il.CustomAggregateError=xl;var xm=class n{static{a(this,"CustomAggregateRegistry")}constructor(){this.aggregates=new Map}static getInstance(){return n.instance||(n.instance=new n),n.instance}static resetInstance(){n.instance&&n.instance.clear(),n.instance=null}register(e,t){if(!e||typeof e!="string")throw new xl("Aggregate IRI must be a non-empty string");if(!t||typeof t.init!="function"||typeof t.step!="function"||typeof t.finalize!="function")throw new xl("Aggregate must implement init(), step(), and finalize() methods",e);if(this.aggregates.has(e))throw new xl(`Aggregate with IRI "${e}" is already registered`,e);this.aggregates.set(e,t)}unregister(e){return this.aggregates.delete(e)}get(e){return this.aggregates.get(e)}has(e){return this.aggregates.has(e)}getRegisteredIris(){return Array.from(this.aggregates.keys())}clear(){this.aggregates.clear()}get size(){return this.aggregates.size}};Il.CustomAggregateRegistry=xm;xm.instance=null});var OS=v(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.BUILT_IN_AGGREGATES=st.modeAggregate=st.stddevAggregate=st.varianceAggregate=st.medianAggregate=st.EXO_AGGREGATE_NS=void 0;st.getNumericValue=Im;st.createDecimalLiteral=Ri;st.createDoubleLiteral=J7;st.createPercentileAggregate=tc;var rc=Ge(),Rl=Ce(),Y7=new Rl.IRI("http://www.w3.org/2001/XMLSchema#decimal"),Q7=new Rl.IRI("http://www.w3.org/2001/XMLSchema#double");st.EXO_AGGREGATE_NS="https://exocortex.my/ontology/agg#";function Im(n){return n==null?NaN:typeof n=="number"?n:typeof n=="string"?parseFloat(n):n instanceof rc.Literal?parseFloat(n.value):n instanceof Rl.IRI?NaN:typeof n=="boolean"?n?1:0:NaN}a(Im,"getNumericValue");function Ri(n){return new rc.Literal(String(n),Y7)}a(Ri,"createDecimalLiteral");function J7(n){return new rc.Literal(String(n),Q7)}a(J7,"createDoubleLiteral");st.medianAggregate={init(){return{values:[]}},step(n,e){let t=n,r=Im(e);isNaN(r)||t.values.push(r)},finalize(n){let e=n,{values:t}=e;if(t.length===0)return Ri(0);let r=[...t].sort((o,c)=>o-c),i=Math.floor(r.length/2),s=r.length%2!==0?r[i]:(r[i-1]+r[i])/2;return Ri(s)}};st.varianceAggregate={init(){return{values:[]}},step(n,e){let t=n,r=Im(e);isNaN(r)||t.values.push(r)},finalize(n){let e=n,{values:t}=e;if(t.length===0)return Ri(0);let r=t.reduce((s,o)=>s+o,0)/t.length,i=t.reduce((s,o)=>s+Math.pow(o-r,2),0)/t.length;return Ri(i)}};st.stddevAggregate={init(){return{values:[]}},step(n,e){st.varianceAggregate.step(n,e)},finalize(n){let e=n,{values:t}=e;if(t.length===0)return Ri(0);let r=t.reduce((s,o)=>s+o,0)/t.length,i=t.reduce((s,o)=>s+Math.pow(o-r,2),0)/t.length;return Ri(Math.sqrt(i))}};st.modeAggregate={init(){return{counts:new Map,values:new Map}},step(n,e){if(e==null)return;let t=n,r=String(e instanceof rc.Literal||e instanceof Rl.IRI?e.value:e),i=t.counts.get(r)||0;t.counts.set(r,i+1),t.values.set(r,e)},finalize(n){let e=n;if(e.counts.size===0)return new rc.Literal(" ",new Rl.IRI("http://www.w3.org/2001/XMLSchema#string"));let t="",r=0;for(let[o,c]of e.counts)c>r&&(r=c,t=o);let i=e.values.get(t);if(i instanceof rc.Literal)return i;let s=parseFloat(t);return isNaN(s)?new rc.Literal(t,new Rl.IRI("http://www.w3.org/2001/XMLSchema#string")):Ri(s)}};function tc(n){let e=Math.max(0,Math.min(100,n))/100;return{init(){return{values:[],percentile:e}},step(t,r){let i=t,s=Im(r);isNaN(s)||i.values.push(s)},finalize(t){let r=t,{values:i}=r;if(i.length===0)return Ri(0);let s=[...i].sort((d,h)=>d-h),o=r.percentile*(s.length-1),c=Math.floor(o),l=Math.ceil(o);if(c===l)return Ri(s[c]);let u=o-c,f=s[c]*(1-u)+s[l]*u;return Ri(f)}}}a(tc,"createPercentileAggregate");st.BUILT_IN_AGGREGATES={[`${st.EXO_AGGREGATE_NS}median`]:st.medianAggregate,[`${st.EXO_AGGREGATE_NS}variance`]:st.varianceAggregate,[`${st.EXO_AGGREGATE_NS}stddev`]:st.stddevAggregate,[`${st.EXO_AGGREGATE_NS}mode`]:st.modeAggregate,[`${st.EXO_AGGREGATE_NS}percentile25`]:tc(25),[`${st.EXO_AGGREGATE_NS}percentile50`]:tc(50),[`${st.EXO_AGGREGATE_NS}percentile75`]:tc(75),[`${st.EXO_AGGREGATE_NS}percentile90`]:tc(90),[`${st.EXO_AGGREGATE_NS}percentile95`]:tc(95),[`${st.EXO_AGGREGATE_NS}percentile99`]:tc(99)}});var d3=v(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});Cl.AggregateExecutor=Cl.AggregateExecutorError=void 0;var yr=Ge(),FS=Ce(),Z7=Sm(),eU=CS(),tU=OS(),u3=new FS.IRI("http://www.w3.org/2001/XMLSchema#integer"),nc=new FS.IRI("http://www.w3.org/2001/XMLSchema#decimal"),_s=new FS.IRI("http://www.w3.org/2001/XMLSchema#string");function f3(n){return typeof n=="object"&&n.type==="custom"}a(f3,"isCustomAggregation");var jf=class extends Error{static{a(this,"AggregateExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="AggregateExecutorError"}};Cl.AggregateExecutorError=jf;var PS=class{static{a(this,"AggregateExecutor")}constructor(){this.filterExecutor=new Z7.FilterExecutor}execute(e,t){let r=this.groupSolutions(t,e.variables),i=[];for(let[s,o]of r.entries()){let c=new Map;for(let f of e.variables)if(o.length>0){let d=o[0].get(f);d&&c.set(f,d)}for(let f of e.aggregates){let d=this.computeAggregate(f.expression,o);c.set(f.variable,d)}let{SolutionMapping:l}=gs(),u=new l;for(let[f,d]of c.entries())u.set(f,d);i.push(u)}if(i.length===0&&e.aggregates.length>0){let s=this.createEmptyAggregateResult(e);s&&i.push(s)}return i}groupSolutions(e,t){let r=new Map;if(t.length===0)return r.set("",e),r;for(let i of e){let s=this.computeGroupKey(i,t),o=r.get(s);o?o.push(i):r.set(s,[i])}return r}computeGroupKey(e,t){return t.map(r=>{let i=e.get(r);return i?this.termToString(i):""}).join("|")}termToString(e){if(e&&typeof e=="object"){if("value"in e)return String(e.value);if("id"in e)return String(e.id)}return String(e)}computeAggregate(e,t){if(f3(e.aggregation))return this.computeCustomAggregate(e,t);let r=this.extractValues(e,t),i=e.aggregation;switch(i){case"count":{let s=this.computeCount(r,e.distinct);return new yr.Literal(String(s),u3)}case"sum":{let s=this.computeSum(r);return new yr.Literal(String(s),nc)}case"avg":{let s=this.computeAvg(r);return new yr.Literal(String(s),nc)}case"min":{let s=this.computeMin(r);return s===void 0?new yr.Literal("",_s):typeof s=="number"?new yr.Literal(String(s),nc):new yr.Literal(String(s),_s)}case"max":{let s=this.computeMax(r);return s===void 0?new yr.Literal("",_s):typeof s=="number"?new yr.Literal(String(s),nc):new yr.Literal(String(s),_s)}case"group_concat":{let s=this.computeGroupConcat(r,e.separator||" ",e.distinct);return new yr.Literal(s||" ",_s)}case"sample":{let s=this.computeSample(r,e.distinct);return s===void 0?new yr.Literal(" ",_s):typeof s=="number"?new yr.Literal(String(s),nc):new yr.Literal(String(s),_s)}default:{let s=i;throw new jf(`Unknown aggregation function: ${s}`)}}}computeCustomAggregate(e,t){let i=e.aggregation.iri,o=eU.CustomAggregateRegistry.getInstance().get(i);if(o||(o=tU.BUILT_IN_AGGREGATES[i]),!o)throw new jf(`Unknown custom aggregate function: ${i}. Register it with CustomAggregateRegistry.getInstance().register() or use a built-in aggregate.`);let c=o.init();for(let l of t){let u=null;if(e.expression){let f=this.evaluateExpression(e.expression,l);f!==void 0&&(u=f)}else u=1;o.step(c,u)}return o.finalize(c)}extractValues(e,t){if(!e.expression)return t.map(()=>1);let r=[];for(let i of t){let s=this.evaluateExpression(e.expression,i);s!=null&&r.push(s)}return r}evaluateExpression(e,t){if(e.type==="variable"){let r=t.get(e.name);return r==null?void 0:typeof r=="number"||typeof r=="string"||typeof r=="boolean"?r:typeof r=="object"&&"value"in r?r.value:r}if(e.type==="literal")return e.value;try{return this.filterExecutor.evaluateExpression(e,t)}catch{return}}computeCount(e,t){return t?new Set(e.map(r=>String(r))).size:e.length}computeSum(e){return e.map(r=>parseFloat(String(r))).filter(r=>!isNaN(r)).reduce((r,i)=>r+i,0)}computeAvg(e){let t=e.map(r=>parseFloat(String(r))).filter(r=>!isNaN(r));return t.length===0?0:t.reduce((r,i)=>r+i,0)/t.length}computeMin(e){if(e.length===0)return;let t=e.map(i=>parseFloat(String(i))).filter(i=>!isNaN(i));if(t.length>0)return Math.min(...t);let r=e.map(i=>String(i));return r.reduce((i,s)=>s<i?s:i,r[0])}computeMax(e){if(e.length===0)return;let t=e.map(i=>parseFloat(String(i))).filter(i=>!isNaN(i));if(t.length>0)return Math.max(...t);let r=e.map(i=>String(i));return r.reduce((i,s)=>s>i?s:i,r[0])}computeGroupConcat(e,t,r){let i=e.map(s=>String(s));return r&&(i=[...new Set(i)]),i.join(t)}computeSample(e,t){if(e.length===0)return;if(t){let s=[...new Set(e.map(l=>String(l)))];if(s.length===0)return;let o=s[0],c=parseFloat(o);return isNaN(c)?o:c}let r=e[0];if(typeof r=="number")return r;let i=parseFloat(String(r));return isNaN(i)?String(r):i}createEmptyAggregateResult(e){let{SolutionMapping:t}=gs(),r=new t;for(let i of e.aggregates){let s=i.expression.aggregation;if(f3(s)){r.set(i.variable,new yr.Literal("0",nc));continue}switch(s){case"count":r.set(i.variable,new yr.Literal("0",u3));break;case"sum":case"avg":r.set(i.variable,new yr.Literal("0",nc));break;case"group_concat":r.set(i.variable,new yr.Literal(" ",_s));break;case"min":case"max":case"sample":r.set(i.variable,new yr.Literal("",_s));break;default:r.set(i.variable,new yr.Literal("",_s))}}return r}};Cl.AggregateExecutor=PS});var kS=v(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.ConstructExecutor=void 0;var rU=zn(),ic=Ce(),DS=Ge(),LS=Mt(),nU=df(),NS=class{static{a(this,"ConstructExecutor")}async execute(e,t){let r=[],i=new Set;for(let s of t)for(let o of e)try{let c=this.instantiateTriple(o,s),l=`${c.subject.toString()}|${c.predicate.toString()}|${c.object.toString()}`;i.has(l)||(i.add(l),r.push(c))}catch{continue}return r}instantiateTriple(e,t){if(this.isPropertyPath(e.predicate))throw new Error("Property paths are not supported in CONSTRUCT templates");let r=this.instantiateElement(e.subject,t),i=this.instantiateElement(e.predicate,t),s=this.instantiateElement(e.object,t);return new rU.Triple(r,i,s)}isPropertyPath(e){return e.type==="path"}instantiateElement(e,t){if(e.type==="variable"){let r=t.get(e.value);if(!r)throw new Error(`Unbound variable: ${e.value}`);return r}if(e.type==="iri")return new ic.IRI(e.value);if(e.type==="literal")return new DS.Literal(e.value,e.datatype?new ic.IRI(e.datatype):void 0,e.language);if(e.type==="blank")return new LS.BlankNode(e.value);if(e.type==="quoted")return this.instantiateQuotedTriple(e,t);throw new Error(`Unknown element type: ${e.type}`)}instantiateQuotedTriple(e,t){let r=this.instantiateQuotedSubject(e.subject,t),i=this.instantiateQuotedPredicate(e.predicate,t),s=this.instantiateQuotedObject(e.object,t);return new nU.QuotedTriple(r,i,s)}instantiateQuotedSubject(e,t){if(e.type==="variable"){let r=t.get(e.value);if(!r)throw new Error(`Unbound variable in quoted triple subject: ${e.value}`);if(r instanceof DS.Literal)throw new Error("Literals cannot appear in quoted triple subject position");return r}if(e.type==="iri")return new ic.IRI(e.value);if(e.type==="blank")return new LS.BlankNode(e.value);if(e.type==="quoted")return this.instantiateQuotedTriple(e,t);throw new Error(`Invalid element type for quoted triple subject: ${e.type}`)}instantiateQuotedPredicate(e,t){if(e.type==="variable"){let r=t.get(e.value);if(!r)throw new Error(`Unbound variable in quoted triple predicate: ${e.value}`);if(!(r instanceof ic.IRI))throw new Error("Quoted triple predicate must be an IRI");return r}return new ic.IRI(e.value)}instantiateQuotedObject(e,t){if(e.type==="variable"){let i=t.get(e.value);if(!i)throw new Error(`Unbound variable in quoted triple object: ${e.value}`);return i}if(e.type==="iri")return new ic.IRI(e.value);if(e.type==="blank")return new LS.BlankNode(e.value);if(e.type==="literal")return new DS.Literal(e.value,e.datatype?new ic.IRI(e.datatype):void 0,e.language);if(e.type==="quoted")return this.instantiateQuotedTriple(e,t);let r=e;throw new Error(`Invalid element type for quoted triple object: ${r.type}`)}};Rm.ConstructExecutor=NS});var p3=v(Ol=>{"use strict";Object.defineProperty(Ol,"__esModule",{value:!0});Ol.ServiceExecutor=Ol.ServiceExecutorError=void 0;var iU=gs(),h3=Ce(),sU=Ge(),oU=Mt(),sc=class extends Error{static{a(this,"ServiceExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="ServiceExecutorError"}};Ol.ServiceExecutorError=sc;var MS=class{static{a(this,"ServiceExecutor")}constructor(e={}){this.timeout=e.timeout??3e4,this.httpClient=e.httpClient??((t,r)=>fetch(t,r)),this.maxRetries=e.maxRetries??2,this.retryDelay=e.retryDelay??1e3}async*execute(e,t){try{let r=t(e.pattern),i=await this.executeRemoteQuery(e.endpoint,r);for(let s of i)yield s}catch(r){if(e.silent)return;throw r}}async executeRemoteQuery(e,t){let r;for(let i=0;i<=this.maxRetries;i++)try{let s=new AbortController,o=setTimeout(()=>s.abort(),this.timeout);try{let c=await this.httpClient(e,{method:"POST",headers:{"Content-Type":"application/sparql-query",Accept:"application/sparql-results+json"},body:t,signal:s.signal});if(!c.ok)throw new sc(`Remote SPARQL endpoint returned ${c.status}: ${c.statusText}`);let l=await c.json();return this.parseJsonResults(l)}finally{clearTimeout(o)}}catch(s){if(r=s instanceof Error?s:new Error(String(s)),this.isRetryableError(r)&&i<this.maxRetries){await this.delay(this.retryDelay);continue}throw new sc(`Failed to query remote SPARQL endpoint ${e}: ${r.message}`,r)}throw new sc(`Failed to query remote SPARQL endpoint ${e} after ${this.maxRetries+1} attempts`,r)}parseJsonResults(e){return!e.results||!Array.isArray(e.results.bindings)?[]:e.results.bindings.map(t=>this.parseBinding(t))}parseBinding(e){let t=new iU.SolutionMapping;for(let[r,i]of Object.entries(e)){let s=this.parseRDFTerm(i);t.set(r,s)}return t}parseRDFTerm(e){switch(e.type){case"uri":return new h3.IRI(e.value);case"literal":{let t=e.datatype?new h3.IRI(e.datatype):void 0;return new sU.Literal(e.value,t,e["xml:lang"])}case"bnode":return new oU.BlankNode(e.value);default:throw new sc(`Unknown RDF term type: ${e.type}`)}}isRetryableError(e){let t=e.message.toLowerCase();return!!(e.name==="AbortError"||t.includes("network")||t.includes("econnreset")||t.includes("econnrefused")||t.includes("etimedout")||t.includes("returned 5"))}delay(e){return new Promise(t=>setTimeout(t,e))}};Ol.ServiceExecutor=MS});var g3=v(Pl=>{"use strict";Object.defineProperty(Pl,"__esModule",{value:!0});Pl.GraphExecutor=Pl.GraphExecutorError=void 0;var m3=Ce(),Cm=class extends Error{static{a(this,"GraphExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="GraphExecutorError"}};Pl.GraphExecutorError=Cm;var jS=class{static{a(this,"GraphExecutor")}constructor(e){this.tripleStore=e}async*execute(e,t,r){let i=e.name;if(i.type==="iri")yield*this.executeWithGraph(e.pattern,i,t);else if(i.type==="variable")yield*this.executeWithGraphVariable(e,i,t,r);else throw new Cm(`Invalid graph name type: ${i.type}`)}async*executeWithGraph(e,t,r){let i=new m3.IRI(t.value);this.tripleStore.hasGraph&&!await this.tripleStore.hasGraph(i)||(yield*r(e,i))}async*executeWithGraphVariable(e,t,r,i){if(i){let o=i.get(t.value);if(o&&o instanceof m3.IRI){yield*this.executeWithGraph(e.pattern,{type:"iri",value:o.value},r);return}}if(!this.tripleStore.getNamedGraphs)return;let s=await this.tripleStore.getNamedGraphs();for(let o of s)for await(let c of r(e.pattern,o)){let l=c.clone();l.set(t.value,o),yield l}}};Pl.GraphExecutor=jS});var y3=v(Dl=>{"use strict";Object.defineProperty(Dl,"__esModule",{value:!0});Dl.SPARQLGenerator=Dl.SPARQLGeneratorError=void 0;var Fl=class extends Error{static{a(this,"SPARQLGeneratorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="SPARQLGeneratorError"}};Dl.SPARQLGeneratorError=Fl;var $S=class{static{a(this,"SPARQLGenerator")}collectVariables(e){let t=new Set;return this.collectVariablesFromOperation(e,t),t}generateSelect(e){let t=this.collectVariables(e),r=t.size>0?Array.from(t).map(s=>`?${s}`).join(" "):"*",i=this.generateWhereClause(e);return`SELECT ${r} WHERE {
48
+ `,s);l!==-1?(i+=e.substring(s,l),s=l):(i+=e.substring(s),s=e.length);continue}let c=this.tryReplacePrefixedName(e,s,r);if(c){i+=c.iri,s=c.endIndex;continue}i+=o,s++}return i}tryReplacePrefixedName(e,t,r){if(t>0&&/[a-zA-Z0-9_]/.test(e[t-1]))return null;for(let{prefix:i,baseIRI:s}of r){if(e.substring(t,t+i.length+1)!==i+":")continue;let o=t+i.length+1,c=o;for(;c<e.length&&/[a-zA-Z0-9_.%-]/.test(e[c]);)c++;if(c===o)continue;let l=e.substring(o,c);return{iri:`<${s}${l}.md>`,endIndex:c}}return null}findDeclaredPrefixes(e){let t=new Set,r=new RegExp(w7.source,"gi"),i;for(;(i=r.exec(e))!==null;)t.add(i[1].toLowerCase());return t}skipLiteral(e,t){let r=e[t];if(t+2<e.length&&e.substring(t,t+3)===r+r+r){let s=e.indexOf(r+r+r,t+3);return s!==-1?s+3:e.length}let i=t+1;for(;i<e.length&&e[i]!==r;)e[i]==="\\"&&i++,i++;return i<e.length?i+1:e.length}};Hp.VaultPrefixTransformer=Gw});var dl=v(Nn=>{"use strict";var v7=Nn&&Nn.__createBinding||(Object.create?(function(n,e,t,r){r===void 0&&(r=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[t]},"get")}),Object.defineProperty(n,r,i)}):(function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]})),E7=Nn&&Nn.__setModuleDefault||(Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e}),T7=Nn&&Nn.__importStar||(function(){var n=a(function(e){return n=Object.getOwnPropertyNames||function(t){var r=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[r.length]=i);return r},n(e)},"ownKeys");return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=n(e),i=0;i<r.length;i++)r[i]!=="default"&&v7(t,e,r[i]);return E7(t,e),t}})();Object.defineProperty(Nn,"__esModule",{value:!0});Nn.SPARQLParser=Nn.ExoQLParser=Nn.SPARQLParseError=void 0;var OR=T7(xR()),Hw=jw(),zw=$w(),PR=IR(),Kw=Bw(),A7=RR(),Xw=CR(),x7=Ww(),pr=class extends Error{static{a(this,"SPARQLParseError")}constructor(e,t,r,i){super(e,i?{cause:i}:void 0),this.name="SPARQLParseError",this.line=t,this.column=r}};Nn.SPARQLParseError=pr;var zp=class{static{a(this,"ExoQLParser")}constructor(e){this.lastDirectionMappings=new Map,this.parser=new OR.Parser({sparqlStar:!0}),this.generator=new OR.Generator({sparqlStar:!0}),this.caseWhenTransformer=new Hw.CaseWhenTransformer,this.lateralTransformer=new zw.LateralTransformer,this.prefixStarTransformer=new PR.PrefixStarTransformer(e?.vocabularyResolver),this.describeOptionsTransformer=new Kw.DescribeOptionsTransformer,this.directionalLangTagTransformer=new A7.DirectionalLangTagTransformer,this.tripleTermTransformer=new Xw.TripleTermTransformer,this.vaultPrefixTransformer=new x7.VaultPrefixTransformer}setVaultPrefixes(e){this.vaultPrefixTransformer.setVaultPrefixes(e)}parse(e){try{let t=this.vaultPrefixTransformer.transform(e),r=this.describeOptionsTransformer.transform(t);this.lastDescribeOptions=r.options;let i=r.query;i=this.directionalLangTagTransformer.transform(i),this.lastDirectionMappings=this.directionalLangTagTransformer.getAllMappings(),i=this.lateralTransformer.transform(i),i=this.caseWhenTransformer.transform(i),i=this.tripleTermTransformer.transform(i);let s=this.parser.parse(i);return this.validateQuery(s),this.lastDescribeOptions&&this.isDescribeQuery(s)&&(s.describeOptions=this.lastDescribeOptions),s}catch(t){if(t instanceof Kw.DescribeOptionsTransformerError)throw new pr(t.message);if(t instanceof zw.LateralTransformerError)throw new pr(t.message);if(t instanceof Hw.CaseWhenTransformerError)throw new pr(t.message);if(t instanceof Xw.TripleTermTransformerError)throw new pr(t.message);if(t instanceof Error){let r=t.message.match(/line (\d+), column (\d+)/),i=r?parseInt(r[1],10):void 0,s=r?parseInt(r[2],10):void 0;throw new pr(`SPARQL syntax error: ${t.message}`,i,s,t)}throw t}}parseWithOptions(e){return{query:this.parse(e),describeOptions:this.lastDescribeOptions}}getLastDescribeOptions(){return this.lastDescribeOptions}async parseAsync(e){try{let t=this.vaultPrefixTransformer.transform(e),r=this.describeOptionsTransformer.transform(t);this.lastDescribeOptions=r.options;let i=r.query;i=this.directionalLangTagTransformer.transform(i),this.lastDirectionMappings=this.directionalLangTagTransformer.getAllMappings(),i=await this.prefixStarTransformer.transform(i),i=this.lateralTransformer.transform(i),i=this.caseWhenTransformer.transform(i),i=this.tripleTermTransformer.transform(i);let s=this.parser.parse(i);return this.validateQuery(s),this.lastDescribeOptions&&this.isDescribeQuery(s)&&(s.describeOptions=this.lastDescribeOptions),s}catch(t){if(t instanceof Kw.DescribeOptionsTransformerError)throw new pr(t.message);if(t instanceof PR.PrefixStarTransformerError)throw new pr(t.message);if(t instanceof zw.LateralTransformerError)throw new pr(t.message);if(t instanceof Hw.CaseWhenTransformerError)throw new pr(t.message);if(t instanceof Xw.TripleTermTransformerError)throw new pr(t.message);if(t instanceof Error){let r=t.message.match(/line (\d+), column (\d+)/),i=r?parseInt(r[1],10):void 0,s=r?parseInt(r[2],10):void 0;throw new pr(`SPARQL syntax error: ${t.message}`,i,s,t)}throw t}}async parseAsyncWithOptions(e){return{query:await this.parseAsync(e),describeOptions:this.lastDescribeOptions}}hasPrefixStar(e){return/PREFIX\s*\*/i.test(e)}hasLateral(e){return this.lateralTransformer.hasLateral(e)}hasDescribeOptions(e){return this.describeOptionsTransformer.hasDescribeOptions(e)}hasDirectionalLangTags(e){return this.directionalLangTagTransformer.hasDirectionalTags(e)}hasTripleTermSyntax(e){return this.tripleTermTransformer.hasTripleTermSyntax(e)}getLastDirectionMappings(){return new Map(this.lastDirectionMappings)}getDirectionForLanguage(e){return this.lastDirectionMappings.get(e.toLowerCase())}toString(e){try{return this.generator.stringify(e)}catch(t){throw t instanceof Error?new pr(`Failed to serialize SPARQL query: ${t.message}`,void 0,void 0,t):t}}getQueryType(e){if("queryType"in e&&e.type==="query")return e.queryType;throw new pr("Query does not have a valid queryType property")}isSelectQuery(e){return"queryType"in e&&e.type==="query"&&e.queryType==="SELECT"}isConstructQuery(e){return"queryType"in e&&e.type==="query"&&e.queryType==="CONSTRUCT"}isAskQuery(e){return"queryType"in e&&e.type==="query"&&e.queryType==="ASK"}isDescribeQuery(e){return"queryType"in e&&e.type==="query"&&e.queryType==="DESCRIBE"}isUpdateQuery(e){return e.type==="update"}isInsertDataOperation(e){return"updateType"in e&&e.updateType==="insert"}isDeleteDataOperation(e){return"updateType"in e&&e.updateType==="delete"}validateQuery(e){if(!e||typeof e!="object")throw new pr("Invalid query: not an object");if(e.type!=="query"&&e.type!=="update")throw new pr(`Invalid type: expected "query" or "update", got "${e.type}"`);if(e.type==="query"){let t=["SELECT","CONSTRUCT","ASK","DESCRIBE"];if(!t.includes(e.queryType))throw new pr(`Invalid query type: expected one of ${t.join(", ")}, got "${e.queryType}"`)}}};Nn.ExoQLParser=zp;Nn.SPARQLParser=zp});var ec=v(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});Kp.AlgebraTranslatorError=void 0;var Yw=class extends Error{static{a(this,"AlgebraTranslatorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="AlgebraTranslatorError"}};Kp.AlgebraTranslatorError=Yw});var Xp=v(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});ms.isVariableExpression=I7;ms.isVariableTerm=R7;ms.isNamedNode=C7;ms.isLiteral=O7;ms.isPropertyPath=P7;ms.isAggregateExpression=F7;ms.isOperationExpression=D7;ms.isFunctionCallExpression=L7;function I7(n){return typeof n=="object"&&n!==null&&"expression"in n&&"variable"in n}a(I7,"isVariableExpression");function R7(n){return typeof n=="object"&&n!==null&&"termType"in n&&n.termType==="Variable"}a(R7,"isVariableTerm");function C7(n){return typeof n=="object"&&n!==null&&"termType"in n&&n.termType==="NamedNode"}a(C7,"isNamedNode");function O7(n){return typeof n=="object"&&n!==null&&"termType"in n&&n.termType==="Literal"}a(O7,"isLiteral");function P7(n){return typeof n=="object"&&n!==null&&"type"in n&&n.type==="path"}a(P7,"isPropertyPath");function F7(n){return typeof n=="object"&&n!==null&&"type"in n&&n.type==="aggregate"}a(F7,"isAggregateExpression");function D7(n){return typeof n=="object"&&n!==null&&"type"in n&&n.type==="operation"}a(D7,"isOperationExpression");function L7(n){return typeof n=="object"&&n!==null&&"type"in n&&(n.type==="functionCall"||n.type==="functioncall")}a(L7,"isFunctionCallExpression")});var FR=v(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});Yp.TripleTranslator=void 0;var pn=ec(),Qw=class{static{a(this,"TripleTranslator")}constructor(){this.directionMappings=new Map}setDirectionMappings(e){this.directionMappings=e}translateBGP(e){if(!("triples"in e)||!Array.isArray(e.triples))throw new pn.AlgebraTranslatorError("BGP pattern must have triples array");return{type:"bgp",triples:e.triples.map(t=>this.translateTriple(t))}}translateTriple(e){if(!e.subject||!e.predicate||!e.object)throw new pn.AlgebraTranslatorError("Triple must have subject, predicate, and object");return{subject:this.translateTripleElement(e.subject),predicate:this.translatePredicate(e.predicate),object:this.translateTripleElement(e.object)}}translateConstructTemplate(e){return!e||!Array.isArray(e)?[]:e.map(t=>this.translateTriple(t))}translatePredicate(e){return"type"in e&&e.type==="path"?this.translatePropertyPath(e):this.translateTripleElement(e)}translatePropertyPath(e){if(!("pathType"in e)||!e.pathType)throw new pn.AlgebraTranslatorError("Property path must have pathType");if(!("items"in e)||!Array.isArray(e.items))throw new pn.AlgebraTranslatorError("Property path must have items array");let t=e.items.map(r=>this.translatePathItem(r));switch(e.pathType){case"/":return{type:"path",pathType:"/",items:t};case"|":return{type:"path",pathType:"|",items:t};case"^":if(t.length!==1)throw new pn.AlgebraTranslatorError("Inverse path must have exactly one item");return{type:"path",pathType:"^",items:[t[0]]};case"+":if(t.length!==1)throw new pn.AlgebraTranslatorError("OneOrMore path must have exactly one item");return{type:"path",pathType:"+",items:[t[0]]};case"*":if(t.length!==1)throw new pn.AlgebraTranslatorError("ZeroOrMore path must have exactly one item");return{type:"path",pathType:"*",items:[t[0]]};case"?":if(t.length!==1)throw new pn.AlgebraTranslatorError("ZeroOrOne path must have exactly one item");return{type:"path",pathType:"?",items:[t[0]]};default:throw new pn.AlgebraTranslatorError(`Unsupported property path type: ${e.pathType}`)}}translatePathItem(e){if("type"in e&&e.type==="path")return this.translatePropertyPath(e);if("termType"in e&&e.termType==="NamedNode")return{type:"iri",value:e.value};let t="type"in e?e.type:"termType"in e?e.termType:"unknown";throw new pn.AlgebraTranslatorError(`Unsupported path item type: ${String(t)}`)}translateTripleElement(e){if(!e||!("termType"in e))throw new pn.AlgebraTranslatorError("Triple element must have termType");switch(e.termType){case"Variable":return{type:"variable",value:e.value};case"NamedNode":return{type:"iri",value:e.value};case"Literal":{let t={type:"literal",value:e.value,datatype:e.datatype?.value,language:e.language};if(e.language){let r=this.directionMappings.get(e.language.toLowerCase());r&&(t.direction=r)}return t}case"BlankNode":return{type:"blank",value:e.value};case"Quad":return this.translateQuotedTriple(e);default:throw new pn.AlgebraTranslatorError(`Unsupported term type: ${e.termType}`)}}translateQuotedTriple(e){if(!e.subject||!e.predicate||!e.object)throw new pn.AlgebraTranslatorError("Quoted triple must have subject, predicate, and object");return{type:"quoted",subject:this.translateTripleElement(e.subject),predicate:this.translateQuotedTriplePredicate(e.predicate),object:this.translateTripleElement(e.object)}}translateQuotedTriplePredicate(e){if(!e||!("termType"in e))throw new pn.AlgebraTranslatorError("Quoted triple predicate must have termType");switch(e.termType){case"Variable":return{type:"variable",value:e.value};case"NamedNode":return{type:"iri",value:e.value};default:throw new pn.AlgebraTranslatorError(`Quoted triple predicate must be IRI or Variable, got: ${e.termType}`)}}};Yp.TripleTranslator=Qw});var DR=v(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.ExpressionTranslator=void 0;var hl=ec(),Jw=class{static{a(this,"ExpressionTranslator")}constructor(e){this.translateWhereFn=e.translateWhere,this.translateBGPFn=e.translateBGP,this.translatePatternFn=e.translatePattern}translateExpression(e){if(!e)throw new hl.AlgebraTranslatorError("Expression cannot be null or undefined");if("type"in e&&e.type==="operation")return this.translateOperationExpression(e);let t="type"in e?e.type:void 0;if(t==="functioncall"||t==="functionCall"){let r=e;return{type:"functionCall",function:r.function,args:r.args.map(i=>this.translateExpression(i))}}if("termType"in e)return this.translateTermExpression(e);throw new hl.AlgebraTranslatorError(`Unsupported expression structure: ${JSON.stringify(e)}`)}translateFilter(e){if(!e.expression)throw new hl.AlgebraTranslatorError("Filter pattern must have expression");let t={type:"bgp",triples:[]};return{type:"filter",expression:this.translateExpression(e.expression),input:t}}translateTermExpression(e){if(e.termType==="Variable")return{type:"variable",name:e.value};if(e.termType==="Literal"){let t=e.value;return e.datatype&&(e.datatype.value.includes("#integer")||e.datatype.value.includes("#decimal")?t=parseFloat(e.value):e.datatype.value.includes("#boolean")&&(t=e.value==="true")),{type:"literal",value:t,datatype:e.datatype?.value}}return{type:"literal",value:String(e.value||e)}}translateOperationExpression(e){let t=["=","!=","<",">","<=",">="],r=["&&","||","!"],i=["+","-","*","/"],s=e.args.filter(o=>!("patterns"in o)||"termType"in o);return t.includes(e.operator)?{type:"comparison",operator:e.operator,left:this.translateExpression(s[0]),right:this.translateExpression(s[1])}:r.includes(e.operator)?{type:"logical",operator:e.operator,operands:s.map(o=>this.translateExpression(o))}:i.includes(e.operator)?{type:"arithmetic",operator:e.operator,left:this.translateExpression(s[0]),right:this.translateExpression(s[1])}:e.operator==="exists"||e.operator==="notexists"?this.translateExistsExpression(e):e.operator==="in"||e.operator==="notin"?this.translateInExpression(e):{type:"function",function:e.operator,args:s.map(o=>this.translateExpression(o))}}translateExistsExpression(e){if(!e.args||e.args.length!==1)throw new hl.AlgebraTranslatorError("EXISTS/NOT EXISTS must have exactly one pattern argument");let t=e.args[0],r;return t.type==="group"&&"patterns"in t&&t.patterns?r=this.translateWhereFn(t.patterns):t.type==="bgp"?r=this.translateBGPFn(t):r=this.translatePatternFn(t),{type:"exists",negated:e.operator==="notexists",pattern:r}}translateInExpression(e){if(!e.args||e.args.length!==2)throw new hl.AlgebraTranslatorError("IN/NOT IN must have exactly 2 arguments (expression and list)");let t=e.args[0],r=e.args[1];if(!Array.isArray(r))throw new hl.AlgebraTranslatorError("IN/NOT IN second argument must be an array of values");return{type:"in",expression:this.translateExpression(t),list:r.map(i=>this.translateExpression(i)),negated:e.operator==="notin"}}};Qp.ExpressionTranslator=Jw});var kR=v(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});Jp.PatternTranslator=void 0;var LR=$w(),Ur=ec(),NR=Xp(),Zw=class{static{a(this,"PatternTranslator")}constructor(e){this.directionMappings=new Map,this.translateExpressionFn=e.translateExpression,this.translateSelectFn=e.translateSelect,this.translateBGPFn=e.translateBGP}setDirectionMappings(e){this.directionMappings=e}translateWhere(e){if(e.length===0)throw new Ur.AlgebraTranslatorError("Empty WHERE clause");let t=e.filter(o=>o.type==="filter"),r=e.filter(o=>o.type==="bind"),i=e.filter(o=>o.type!=="filter"&&o.type!=="bind"),s;if(i.length===0)s={type:"bgp",triples:[]};else if(i.length===1)if(i[0].type==="optional"){let o=i[0].expression;s={type:"leftjoin",left:{type:"bgp",triples:[]},right:this.translateWhere(i[0].patterns),expression:o?this.translateExpressionFn(o):void 0}}else s=this.translatePattern(i[0]);else{if(i[0].type==="optional"){let o=i[0].expression;s={type:"leftjoin",left:{type:"bgp",triples:[]},right:this.translateWhere(i[0].patterns),expression:o?this.translateExpressionFn(o):void 0}}else s=this.translatePattern(i[0]);for(let o=1;o<i.length;o++){let c=i[o];if(this.isLateralPattern(c)){let l=this.extractLateralSubquery(c),u=this.removeLateralMarker(l),f=this.translateSelectFn(u);s={type:"lateraljoin",left:s,right:f}}else if(c.type==="optional"){let l=c.expression;s={type:"leftjoin",left:s,right:this.translateWhere(c.patterns),expression:l?this.translateExpressionFn(l):void 0}}else{let l=this.translatePattern(c);s={type:"join",left:s,right:l}}}}for(let o of r)s=this.translateBind(o,s);for(let o of t)s={type:"filter",expression:this.translateExpressionFn(o.expression),input:s};return s}translatePattern(e){if(!e||!e.type)throw new Ur.AlgebraTranslatorError("Invalid pattern: missing type");switch(e.type){case"bgp":return this.translateBGPFn(e);case"filter":return this.translateFilter(e);case"optional":return this.translateOptional(e);case"union":return this.translateUnion(e);case"minus":return this.translateMinus(e);case"values":return this.translateValues(e);case"group":return this.translateWhere(e.patterns);case"query":return this.translateSubquery(e);case"service":return this.translateService(e);case"graph":return this.translateGraph(e);default:throw new Ur.AlgebraTranslatorError(`Unsupported pattern type: ${e.type}`)}}translateFilter(e){if(!e.expression)throw new Ur.AlgebraTranslatorError("Filter pattern must have expression");let t={type:"bgp",triples:[]};return{type:"filter",expression:this.translateExpressionFn(e.expression),input:t}}translateOptional(e){if(!e.patterns||e.patterns.length===0)throw new Ur.AlgebraTranslatorError("OPTIONAL pattern must have patterns");let t=e.expression;return{type:"leftjoin",left:{type:"bgp",triples:[]},right:this.translateWhere(e.patterns),expression:t?this.translateExpressionFn(t):void 0}}translateUnion(e){if(!e.patterns||e.patterns.length<2)throw new Ur.AlgebraTranslatorError("UNION pattern must have at least 2 patterns");let t=a(i=>i.type==="graph"?this.translateGraph(i):i.type==="service"?this.translateService(i):"patterns"in i&&i.patterns&&Array.isArray(i.patterns)?this.translateWhere(i.patterns):this.translateWhere([i]),"translateBranch"),r={type:"union",left:t(e.patterns[0]),right:t(e.patterns[1])};for(let i=2;i<e.patterns.length;i++)r={type:"union",left:r,right:t(e.patterns[i])};return r}translateMinus(e){if(!e.patterns||e.patterns.length===0)throw new Ur.AlgebraTranslatorError("MINUS pattern must have patterns");return{type:"minus",left:{type:"bgp",triples:[]},right:this.translateWhere(e.patterns)}}translateValues(e){if(!e.values||!Array.isArray(e.values))throw new Ur.AlgebraTranslatorError("VALUES pattern must have values array");let t=new Set;for(let i of e.values)for(let s of Object.keys(i)){let o=s.startsWith("?")?s.slice(1):s;t.add(o)}let r=e.values.map(i=>this.translateValuesBinding(i));return{type:"values",variables:Array.from(t),bindings:r}}translateValuesBinding(e){let t={};for(let[r,i]of Object.entries(e)){let s=r.startsWith("?")?r.slice(1):r,o=i;if(o)if(o.termType==="NamedNode")t[s]={type:"iri",value:o.value};else if(o.termType==="Literal"){let c=o,l={type:"literal",value:c.value,datatype:c.datatype?.value,language:c.language||void 0};if(c.language){let u=this.directionMappings.get(c.language.toLowerCase());u&&(l.direction=u)}t[s]=l}else throw new Ur.AlgebraTranslatorError(`Unsupported VALUES term type: ${o.termType}`)}return t}translateBind(e,t){if(!e.variable||!e.expression)throw new Ur.AlgebraTranslatorError("BIND pattern must have variable and expression");return{type:"extend",variable:e.variable.value,expression:this.translateExpressionFn(e.expression),input:t}}translateSubquery(e){if(e.queryType!=="SELECT")throw new Ur.AlgebraTranslatorError(`Only SELECT subqueries are supported, got: ${String(e.queryType)}`);let t=this.removeLateralMarker(e);return{type:"subquery",query:this.translateSelectFn(t)}}translateService(e){if(!e.name||e.name.termType!=="NamedNode")throw new Ur.AlgebraTranslatorError("SERVICE pattern must have a NamedNode endpoint");if(!e.patterns||!Array.isArray(e.patterns))throw new Ur.AlgebraTranslatorError("SERVICE pattern must have patterns array");return{type:"service",endpoint:e.name.value,pattern:this.translateWhere(e.patterns),silent:e.silent||!1}}translateGraph(e){if(!e.name)throw new Ur.AlgebraTranslatorError("GRAPH pattern must have a name (IRI or variable)");if(!e.patterns||!Array.isArray(e.patterns))throw new Ur.AlgebraTranslatorError("GRAPH pattern must have patterns array");let t;if(e.name.termType==="NamedNode")t={type:"iri",value:e.name.value};else if(e.name.termType==="Variable")t={type:"variable",value:e.name.value};else throw new Ur.AlgebraTranslatorError(`GRAPH pattern name must be NamedNode or Variable, got: ${e.name.termType}`);return{type:"graph",name:t,pattern:this.translateWhere(e.patterns)}}isLateralPattern(e){if(e.type==="query"&&this.isLateralSubquery(e))return!0;if(e.type==="group"&&e.patterns?.length===1){let t=e.patterns[0];if(t.type==="query"&&this.isLateralSubquery(t))return!0}return!1}extractLateralSubquery(e){if(e.type==="query")return e;if(e.type==="group"&&e.patterns?.length===1){let t=e.patterns[0];if(t.type==="query")return t}throw new Ur.AlgebraTranslatorError("Invalid lateral pattern structure")}isLateralSubquery(e){return!("queryType"in e)||e.queryType!=="SELECT"||!("variables"in e)||!e.variables?!1:e.variables.some(i=>(0,NR.isVariableTerm)(i)&&i.value===LR.LateralTransformer.LATERAL_MARKER)}removeLateralMarker(e){if(!("variables"in e)||!e.variables)return e;let t=e,r=t.variables;return{...t,variables:r.filter(i=>!((0,NR.isVariableTerm)(i)&&i.value===LR.LateralTransformer.LATERAL_MARKER))}}};Jp.PatternTranslator=Zw});var jR=v(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});Zp.AggregateTranslator=void 0;var MR=ec(),N7=Xp(),eS=class{static{a(this,"AggregateTranslator")}constructor(e){this.aggregateCounter=0,this.translateExpressionFn=e.translateExpression}resetCounter(){this.aggregateCounter=0}extractAggregatesWithMapping(e,t){if(!e)return[];let r=[];for(let i of e)(0,N7.isVariableExpression)(i)&&("type"in i.expression&&i.expression.type==="aggregate"?(r.push({variable:i.variable.value,expression:this.translateAggregateExpression(i.expression)}),t.set(i.expression,i.variable.value)):this.collectNestedAggregates(i.expression,r,t));return r}extractGroupVariables(e){return e?e.filter(t=>t.expression&&"termType"in t.expression&&t.expression.termType==="Variable").map(t=>t.expression.value):[]}extractHavingExpressions(e,t,r){if(!e||e.length===0)return[];for(let i of e)this.collectNestedAggregates(i,t,r);return e.map(i=>this.transformExpressionWithAggregateVars(i,r))}transformExpressionWithAggregateVars(e,t){let r=t.get(e);if(r!==void 0)return{type:"variable",name:r};if("type"in e&&e.type==="operation"&&"args"in e){let i=e,s=i.args.filter(u=>!Array.isArray(u)&&!("patterns"in u)).map(u=>this.transformExpressionWithAggregateVars(u,t)),o=["=","!=","<",">","<=",">="],c=["&&","||","!"],l=["+","-","*","/"];return o.includes(i.operator)?{type:"comparison",operator:i.operator,left:s[0],right:s[1]}:c.includes(i.operator)?{type:"logical",operator:i.operator,operands:s}:l.includes(i.operator)?{type:"arithmetic",operator:i.operator,left:s[0],right:s[1]}:{type:"function",function:i.operator,args:s}}return this.translateExpressionFn(e)}translateOrderComparator(e){return{expression:this.translateExpressionFn(e.expression),descending:e.descending||!1}}translateAggregateExpression(e){let t=e.aggregation,r=a(()=>{if(e.expression&&!("termType"in e.expression&&e.expression.termType==="Wildcard"))return this.translateExpressionFn(e.expression)},"translateInnerExpr");if(typeof t=="string"){let s=t.toLowerCase();return["count","sum","avg","min","max","group_concat","sample"].includes(s)?{type:"aggregate",aggregation:s,expression:r(),distinct:e.distinct||!1,separator:e.separator}:{type:"aggregate",aggregation:{type:"custom",iri:t},expression:r(),distinct:e.distinct||!1,separator:e.separator}}let i=t;if(i&&typeof i=="object"){let s,o=i;if(o.termType==="NamedNode"&&typeof o.value=="string")s=o.value;else if("value"in o)s=String(o.value);else throw new MR.AlgebraTranslatorError(`Invalid custom aggregate: expected IRI but got ${JSON.stringify(i)}`);return{type:"aggregate",aggregation:{type:"custom",iri:s},expression:r(),distinct:e.distinct||!1,separator:e.separator}}throw new MR.AlgebraTranslatorError(`Unknown aggregate format: ${JSON.stringify(t)}`)}collectNestedAggregates(e,t,r){if(e){if("type"in e&&e.type==="aggregate"){let i=`__agg${this.aggregateCounter++}`;t.push({variable:i,expression:this.translateAggregateExpression(e)}),r.set(e,i)}else if("type"in e&&e.type==="operation"&&"args"in e){let i=e;for(let s of i.args)!Array.isArray(s)&&"type"in s&&!("patterns"in s)?this.collectNestedAggregates(s,t,r):"termType"in s&&this.collectNestedAggregates(s,t,r)}}}};Zp.AggregateTranslator=eS});var pl=v(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.AlgebraTranslator=ea.ExoQLAlgebraTranslator=ea.AlgebraTranslatorError=void 0;var em=ec(),tm=Xp(),k7=FR(),M7=DR(),j7=kR(),$7=jR(),U7=ec();Object.defineProperty(ea,"AlgebraTranslatorError",{enumerable:!0,get:a(function(){return U7.AlgebraTranslatorError},"get")});var rm=class{static{a(this,"ExoQLAlgebraTranslator")}constructor(){this.tripleTranslator=new k7.TripleTranslator,this.expressionTranslator=new M7.ExpressionTranslator({translateWhere:a(e=>this.patternTranslator.translateWhere(e),"translateWhere"),translateBGP:a(e=>this.tripleTranslator.translateBGP(e),"translateBGP"),translatePattern:a(e=>this.patternTranslator.translatePattern(e),"translatePattern")}),this.patternTranslator=new j7.PatternTranslator({translateExpression:a(e=>this.expressionTranslator.translateExpression(e),"translateExpression"),translateSelect:a(e=>this.translateSelect(e),"translateSelect"),translateBGP:a(e=>this.tripleTranslator.translateBGP(e),"translateBGP")}),this.aggregateTranslator=new $7.AggregateTranslator({translateExpression:a(e=>this.expressionTranslator.translateExpression(e),"translateExpression")})}setDirectionMappings(e){this.tripleTranslator.setDirectionMappings(e),this.patternTranslator.setDirectionMappings(e)}translate(e){if(e.type!=="query")throw new em.AlgebraTranslatorError("Only query operations are supported (not updates)");if(e.queryType==="SELECT")return this.translateSelect(e);if(e.queryType==="CONSTRUCT")return this.translateConstruct(e);if(e.queryType==="ASK")return this.translateAsk(e);if(e.queryType==="DESCRIBE")return this.translateDescribe(e);throw new em.AlgebraTranslatorError(`Query type ${String(e.queryType)} not yet supported`)}translateSelect(e){if(!e.where||e.where.length===0)throw new em.AlgebraTranslatorError("SELECT query must have WHERE clause");let t=this.patternTranslator.translateWhere(e.where);this.aggregateTranslator.resetCounter();let r=new Map,i=Array.isArray(e.variables)?e.variables.filter(l=>!("termType"in l&&l.termType==="Wildcard")):[],s=this.aggregateTranslator.extractAggregatesWithMapping(i,r),o=this.aggregateTranslator.extractGroupVariables(e.group),c=this.aggregateTranslator.extractHavingExpressions(e.having,s,r);if((s.length>0||o.length>0||c.length>0)&&(t={type:"group",variables:o,aggregates:s,having:c.length>0?c:void 0,input:t}),i.length>0){for(let l of i)if((0,tm.isVariableExpression)(l)){if("type"in l.expression&&l.expression.type==="aggregate")continue;let u=this.aggregateTranslator.transformExpressionWithAggregateVars(l.expression,r);t={type:"extend",variable:l.variable.value,expression:u,input:t}}}if(e.order&&e.order.length>0&&(t={type:"orderby",comparators:e.order.map(l=>this.aggregateTranslator.translateOrderComparator(l)),input:t}),i.length>0){let l=i.filter(u=>(0,tm.isVariableTerm)(u)||(0,tm.isVariableExpression)(u)).map(u=>(0,tm.isVariableTerm)(u)?u.value:u.variable.value);l.length>0&&(t={type:"project",variables:l,input:t})}return e.distinct&&(t={type:"distinct",input:t}),e.reduced&&(t={type:"reduced",input:t}),(e.limit!==void 0||e.offset!==void 0)&&(t={type:"slice",limit:e.limit,offset:e.offset,input:t}),t}translateConstruct(e){let t=this.tripleTranslator.translateConstructTemplate(e.template??[]);if(!e.where||e.where.length===0)throw new em.AlgebraTranslatorError("CONSTRUCT query must have WHERE clause");let r=this.patternTranslator.translateWhere(e.where),i=e;return(i.limit!==void 0||i.offset!==void 0)&&(r={type:"slice",limit:i.limit,offset:i.offset,input:r}),{type:"construct",template:t,where:r}}translateAsk(e){return{type:"ask",where:e.where&&e.where.length>0?this.patternTranslator.translateWhere(e.where):{type:"bgp",triples:[]}}}translateDescribe(e){let t=[];if(e.variables&&Array.isArray(e.variables)){let s=e.variables;for(let o of s)o.termType==="Wildcard"||o.value==="*"||(o.termType==="Variable"?t.push({type:"variable",value:o.value}):o.termType==="NamedNode"&&t.push({type:"iri",value:o.value}))}let r;e.where&&e.where.length>0&&(r=this.patternTranslator.translateWhere(e.where));let i=e.describeOptions;return{type:"describe",resources:t,where:r,depth:i?.depth,symmetric:i?.symmetric}}};ea.ExoQLAlgebraTranslator=rm;ea.AlgebraTranslator=rm});var gs=v(nm=>{"use strict";Object.defineProperty(nm,"__esModule",{value:!0});nm.SolutionMapping=void 0;var $R=Ge(),UR=Ce(),BR=Mt(),tS=class n{static{a(this,"SolutionMapping")}constructor(e){this.bindings=e?new Map(e):new Map}get(e){return this.bindings.get(e)}set(e,t){this.bindings.set(e,t)}has(e){return this.bindings.has(e)}variables(){return Array.from(this.bindings.keys())}getBindings(){return new Map(this.bindings)}isCompatibleWith(e){for(let[t,r]of this.bindings.entries()){let i=e.get(t);if(i!==void 0&&!this.areEqual(r,i))return!1}return!0}merge(e){if(!this.isCompatibleWith(e))return null;let t=new n(this.bindings);for(let[r,i]of e.getBindings().entries())t.set(r,i);return t}clone(){return new n(this.bindings)}areEqual(e,t){return e instanceof $R.Literal&&t instanceof $R.Literal?e.equals(t):e instanceof UR.IRI&&t instanceof UR.IRI?e.value===t.value:e instanceof BR.BlankNode&&t instanceof BR.BlankNode?e.id===t.id:!1}toJSON(){let e={};for(let[t,r]of this.bindings.entries())e[t]=r.toString();return e}size(){return this.bindings.size}};nm.SolutionMapping=tS});var qR=v(gl=>{"use strict";Object.defineProperty(gl,"__esModule",{value:!0});gl.PropertyPathExecutor=gl.PropertyPathExecutorError=void 0;var B7=gs(),im=Ce(),VR=Mt(),V7=Ge(),ml=class extends Error{static{a(this,"PropertyPathExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="PropertyPathExecutorError"}};gl.PropertyPathExecutorError=ml;var rS=class n{static{a(this,"PropertyPathExecutor")}constructor(e){this.tripleStore=e,this.MAX_DEPTH=100}async*execute(e,t,r){if(this.isLiteralElement(e)||this.isLiteralElement(r)){let o=this.isLiteralElement(e)?"subject":"object",c=this.isLiteralElement(e)?e:r,l="value"in c?String(c.value):"<unknown>",u=l.length>80?`${l.slice(0,77)}...`:l,f=this.describePath(t),d={position:o,value:u,path:f,hint:"Wikilink could not be resolved to IRI (likely label-form wikilink with no matching basename/alias). Check whether the target file exists in the queried vault, or add an alias. See issue #3282."};if(console.error(`[PropertyPathExecutor] literal-safety guard fired: literal in ${o} position \u2014 yielding 0 solutions. value="${u}" path=${f}`,d),n.isStrictModeEnabled())throw new ml(`Literal subject in property path: "${u}" (path=${f}). Set EXOCORTEX_SPARQL_STRICT=0 or omit --strict to fall back to warn-and-empty behaviour.`);return}let i=await this.resolveElement(e),s=this.isVariable(r)?null:await this.resolveElement(r);for(let o of i){let c=await this.evaluatePath(o,t,s);for(let l of c){let u=new B7.SolutionMapping;this.isVariable(e)&&u.set(e.value,o),this.isVariable(r)&&u.set(r.value,l),yield u}}}async*executeWithBindings(e,t){if(!this.isPropertyPath(e.predicate))throw new ml("Predicate is not a property path");let r=this.instantiateElement(e.subject,t),i=this.instantiateElement(e.object,t);for await(let s of this.execute(r,e.predicate,i)){let o=t.merge(s);o!==null&&(yield o)}}async evaluatePath(e,t,r){switch(t.pathType){case"/":return this.evaluateSequencePath(e,t.items,r);case"|":return this.evaluateAlternativePath(e,t.items,r);case"^":return this.evaluateInversePath(e,t.items[0],r);case"+":return this.evaluateOneOrMorePath(e,t.items[0],r);case"*":return this.evaluateZeroOrMorePath(e,t.items[0],r);case"?":return this.evaluateZeroOrOnePath(e,t.items[0],r)}}async evaluateSequencePath(e,t,r){let i=new Set([e]);for(let s=0;s<t.length;s++){let o=t[s],c=s===t.length-1,l=new Set;for(let u of i){let f=await this.evaluatePathItem(u,o,c?r:null);for(let d of f)l.add(d)}if(i=l,i.size===0)break}return i}async evaluateAlternativePath(e,t,r){let i=new Set;for(let s of t){let o=await this.evaluatePathItem(e,s,r);for(let c of o)i.add(c)}return i}async evaluateInversePath(e,t,r){if(t.type==="iri"){let i=new im.IRI(t.value),s=await this.tripleStore.match(void 0,i,e),o=new Set;for(let c of s)(r===null||this.nodeInSet(c.subject,r))&&o.add(c.subject);return o}else return this.evaluatePath(e,this.invertPath(t),r)}async evaluateOneOrMorePath(e,t,r){let i=new Set,s=new Set,o=[{node:e,depth:0}];for(;o.length>0;){let c=o.shift();if(!c)break;let{node:l,depth:u}=c;if(u>=this.MAX_DEPTH)continue;let f=await this.evaluatePathItem(l,t,null);for(let d of f){let h=this.nodeToKey(d);(r===null||this.nodeInSet(d,r))&&s.add(d),i.has(h)||(i.add(h),o.push({node:d,depth:u+1}))}}return s}async evaluateZeroOrMorePath(e,t,r){let i=await this.evaluateOneOrMorePath(e,t,r);return(r===null||this.nodeInSet(e,r))&&i.add(e),i}async evaluateZeroOrOnePath(e,t,r){let i=new Set;(r===null||this.nodeInSet(e,r))&&i.add(e);let s=await this.evaluatePathItem(e,t,r);for(let o of s)i.add(o);return i}async evaluatePathItem(e,t,r){if(t.type==="iri"){let i=new im.IRI(t.value),s=await this.tripleStore.match(e,i,void 0),o=new Set;for(let c of s)(r===null||this.nodeInSet(c.object,r))&&o.add(c.object);return o}else return this.evaluatePath(e,t,r)}invertPath(e){switch(e.pathType){case"^":return e.items[0];case"/":return{type:"path",pathType:"/",items:[...e.items].reverse().map(t=>t.type==="iri"?{type:"path",pathType:"^",items:[t]}:this.invertPath(t))};case"|":return{type:"path",pathType:"|",items:e.items.map(t=>t.type==="iri"?{type:"path",pathType:"^",items:[t]}:this.invertPath(t))};case"+":case"*":case"?":{let t=e.items[0].type==="iri"?{type:"path",pathType:"^",items:[e.items[0]]}:this.invertPath(e.items[0]);return{type:"path",pathType:e.pathType,items:[t]}}}}async resolveElement(e){if(this.isVariable(e)){let r=new Set,i=await this.tripleStore.match(void 0,void 0,void 0);for(let s of i)r.add(s.subject),r.add(s.object);return r}let t=new Set;switch(e.type){case"iri":t.add(new im.IRI(e.value));break;case"blank":t.add(new VR.BlankNode(e.value));break;default:throw new ml(`Unsupported element type in subject/object position: ${e.type}`)}return t}instantiateElement(e,t){if(this.isVariable(e)){let r=t.get(e.value);if(r){if(r instanceof im.IRI)return{type:"iri",value:r.value};if(r instanceof VR.BlankNode)return{type:"blank",value:r.id};if(r instanceof V7.Literal)return{type:"literal",value:r.value,datatype:r.datatype?.value,language:r.language,direction:r.direction}}}return e}isVariable(e){return e.type==="variable"}isLiteralElement(e){return e.type==="literal"}isPropertyPath(e){return e.type==="path"}nodeToKey(e){return e.toString()}nodeInSet(e,t){let r=this.nodeToKey(e);for(let i of t)if(this.nodeToKey(i)===r)return!0;return!1}describePath(e){try{let t=e.items,r=a(s=>{if(s&&typeof s=="object"&&"type"in s){let o=s;if(o.type==="iri")return`<${String(o.value)}>`;if(o.type==="path")return this.describePath(o)}return"?"},"renderItem");if(!Array.isArray(t)||t.length===0)return"(?)";if(t.length===1){let s=r(t[0]);return e.pathType==="^"?`(^${s})`:e.pathType==="+"||e.pathType==="*"||e.pathType==="?"?`(${s}${e.pathType})`:`(${s})`}return`(${t.map(r).join(` ${e.pathType} `)})`}catch{return"<unprintable-path>"}}static isStrictModeEnabled(){let t=(typeof process<"u"?process.env:void 0)?.EXOCORTEX_SPARQL_STRICT;if(!t)return!1;let r=t.trim().toLowerCase();return r==="1"||r==="true"||r==="yes"}};gl.PropertyPathExecutor=rS});var sS=v(yl=>{"use strict";Object.defineProperty(yl,"__esModule",{value:!0});yl.BGPExecutor=yl.BGPExecutorError=void 0;var sm=gs(),ta=Ce(),nS=Ge(),om=Mt(),am=df(),GR=qR(),Br=class extends Error{static{a(this,"BGPExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="BGPExecutorError"}};yl.BGPExecutorError=Br;var iS=class{static{a(this,"BGPExecutor")}constructor(e){this.tripleStore=e,this.propertyPathExecutor=new GR.PropertyPathExecutor(e)}async*execute(e){if(e.triples.length===0){yield new sm.SolutionMapping;return}let t=this.matchTriplePattern(e.triples[0]);for(let r=1;r<e.triples.length;r++)t=this.joinWithPattern(t,e.triples[r]);for await(let r of t)yield r}async executeAll(e){let t=[];for await(let r of this.execute(e))t.push(r);return t}async*executeInGraph(e,t){if(e.triples.length===0){yield new sm.SolutionMapping;return}let r=this.matchTriplePatternInGraph(e.triples[0],t);for(let i=1;i<e.triples.length;i++)r=this.joinWithPatternInGraph(r,e.triples[i],t);for await(let i of r)yield i}async*matchTriplePatternInGraph(e,t){if(this.isPropertyPath(e.predicate))throw new Br("Property paths within named graphs are not yet supported");let r=e.predicate;if(this.isLiteral(e.subject)||this.isLiteral(r)){this.warnLiteralGuard("matchTriplePatternInGraph",this.isLiteral(e.subject)?"subject":"predicate",this.isLiteral(e.subject)?e.subject:r);return}let i=this.isVariable(e.subject)?void 0:this.toRDFTermAsSubject(e.subject),s=this.isVariable(r)?void 0:this.toRDFTermAsPredicate(r),o=this.isVariable(e.object)?void 0:this.toRDFTerm(e.object);if(!this.tripleStore.matchInGraph)throw new Br("Triple store does not support named graph operations");let c=await this.tripleStore.matchInGraph(i,s,o,t);for(let l of c){let u=new sm.SolutionMapping;this.isVariable(e.subject)&&u.set(e.subject.value,l.subject),this.isVariable(r)&&u.set(r.value,l.predicate),this.isVariable(e.object)&&u.set(e.object.value,l.object),yield u}}async*joinWithPatternInGraph(e,t,r){let i=[];for await(let s of e)i.push(s);for(let s of i){let o=this.instantiatePattern(t,s);for await(let c of this.matchTriplePatternInGraph(o,r)){let l=s.merge(c);l!==null&&(yield l)}}}async*matchTriplePattern(e){if(this.isPropertyPath(e.predicate)){if(this.isLiteral(e.subject)||this.isLiteral(e.object)){this.warnLiteralGuard("matchTriplePattern.propertyPath",this.isLiteral(e.subject)?"subject":"object",this.isLiteral(e.subject)?e.subject:e.object);return}yield*this.propertyPathExecutor.execute(e.subject,e.predicate,e.object);return}let t=e.predicate;if(this.isLiteral(e.subject)||this.isLiteral(t)){this.warnLiteralGuard("matchTriplePattern",this.isLiteral(e.subject)?"subject":"predicate",this.isLiteral(e.subject)?e.subject:t);return}let r=this.isVariable(e.subject)||this.isQuotedTriple(e.subject)&&this.hasVariablesInQuotedTriple(e.subject)?void 0:this.toRDFTermAsSubject(e.subject),i=this.isVariable(t)?void 0:this.toRDFTermAsPredicate(t),s=this.isVariable(e.object)||this.isQuotedTriple(e.object)&&this.hasVariablesInQuotedTriple(e.object)?void 0:this.toRDFTerm(e.object),o=await this.tripleStore.match(r,i,s);for(let c of o){let l=new sm.SolutionMapping;if(this.isVariable(e.subject))l.set(e.subject.value,c.subject);else if(this.isQuotedTriple(e.subject)){let u=this.matchQuotedTriplePattern(e.subject,c.subject);if(u===null)continue;for(let[f,d]of u.entries())l.set(f,d)}if(this.isVariable(t)&&l.set(t.value,c.predicate),this.isVariable(e.object))l.set(e.object.value,c.object);else if(this.isQuotedTriple(e.object)){let u=this.matchQuotedTriplePattern(e.object,c.object);if(u===null)continue;for(let[f,d]of u.entries())l.set(f,d)}yield l}}hasVariablesInQuotedTriple(e){return!!(this.isVariable(e.subject)||e.predicate.type==="variable"||this.isVariable(e.object)||this.isQuotedTriple(e.subject)&&this.hasVariablesInQuotedTriple(e.subject)||this.isQuotedTriple(e.object)&&this.hasVariablesInQuotedTriple(e.object))}matchQuotedTriplePattern(e,t){if(!(t instanceof am.QuotedTriple))return null;let r=new Map;if(this.isVariable(e.subject))r.set(e.subject.value,t.subject);else if(this.isQuotedTriple(e.subject)){let i=this.matchQuotedTriplePattern(e.subject,t.subject);if(i===null)return null;for(let[s,o]of i)r.set(s,o)}else if(!this.elementsMatch(e.subject,t.subject))return null;if(e.predicate.type==="variable")r.set(e.predicate.value,t.predicate);else if(e.predicate.value!==t.predicate.value)return null;if(this.isVariable(e.object))r.set(e.object.value,t.object);else if(this.isQuotedTriple(e.object)){let i=this.matchQuotedTriplePattern(e.object,t.object);if(i===null)return null;for(let[s,o]of i)r.set(s,o)}else if(!this.elementsMatch(e.object,t.object))return null;return r}elementsMatch(e,t){switch(e.type){case"iri":return t instanceof ta.IRI&&e.value===t.value;case"literal":return!(!(t instanceof nS.Literal)||e.value!==t.value||e.datatype!==t.datatype?.value||e.language!==t.language||e.direction!==t.direction);case"blank":return t instanceof om.BlankNode&&e.value===t.id;case"quoted":return t instanceof am.QuotedTriple?this.toRDFQuotedTriple(e).equals(t):!1;default:return!1}}isPropertyPath(e){return e.type==="path"}async*joinWithPattern(e,t){let r=[];for await(let i of e)r.push(i);for(let i of r){let s=this.instantiatePattern(t,i);for await(let o of this.matchTriplePattern(s)){let c=i.merge(o);c!==null&&(yield c)}}}instantiatePattern(e,t){let r=this.isPropertyPath(e.predicate)?e.predicate:this.instantiateElement(e.predicate,t);return{subject:this.instantiateElement(e.subject,t),predicate:r,object:this.instantiateElement(e.object,t)}}instantiateElement(e,t){if(this.isVariable(e)){let r=t.get(e.value);if(r)return this.toAlgebraElement(r)}return this.isQuotedTriple(e)?this.instantiateQuotedTriple(e,t):e}instantiateQuotedTriple(e,t){let r=this.instantiateElement(e.subject,t),i=e.predicate.type==="variable"?this.instantiatePredicateVariable(e.predicate,t):e.predicate,s=this.instantiateElement(e.object,t);return{type:"quoted",subject:r,predicate:i,object:s}}instantiatePredicateVariable(e,t){let r=t.get(e.value);return r&&r instanceof ta.IRI?{type:"iri",value:r.value}:e}isVariable(e){return e.type==="variable"}isQuotedTriple(e){return e.type==="quoted"}isLiteral(e){return e.type==="literal"}warnLiteralGuard(e,t,r){let i="value"in r?String(r.value):"<unknown>",s=i.length>80?`${i.slice(0,77)}...`:i,o={executor:"BGPExecutor",context:e,position:t,value:s,hint:"Wikilink could not be resolved to IRI (likely label-form wikilink with no matching basename/alias). Check whether the target file exists in the queried vault, or add an alias. See issue #3282."};if(console.error(`[BGPExecutor] literal-safety guard fired in ${e}: literal in ${t} position \u2014 yielding 0 solutions. value="${s}"`,o),GR.PropertyPathExecutor.isStrictModeEnabled())throw new Br(`Literal in ${t} position (${e}): "${s}". Set EXOCORTEX_SPARQL_STRICT=0 or omit --strict to fall back to warn-and-empty behaviour.`)}toRDFTermAsSubject(e){switch(e.type){case"iri":return new ta.IRI(e.value);case"blank":return new om.BlankNode(e.value);case"literal":throw new Br("Literals cannot appear in subject position");case"variable":throw new Br(`Cannot convert variable to RDF term: ${e.value}`);case"quoted":return this.toRDFQuotedTriple(e);default:throw new Br(`Unknown element type: ${String(e)}`)}}toRDFQuotedTriple(e){let t=this.toRDFTermAsSubject(e.subject),r=e.predicate.type==="iri"?new ta.IRI(e.predicate.value):(()=>{throw new Br("Quoted triple predicate must be IRI")})(),i=this.toRDFTerm(e.object);return new am.QuotedTriple(t,r,i)}toRDFTermAsPredicate(e){switch(e.type){case"iri":return new ta.IRI(e.value);case"literal":throw new Br("Literals cannot appear in predicate position");case"blank":throw new Br("Blank nodes cannot appear in predicate position");case"variable":throw new Br(`Cannot convert variable to RDF term: ${e.value}`);default:throw new Br(`Unknown element type: ${String(e)}`)}}toRDFTerm(e){switch(e.type){case"iri":return new ta.IRI(e.value);case"literal":return new nS.Literal(e.value,e.datatype?new ta.IRI(e.datatype):void 0,e.language,e.direction);case"blank":return new om.BlankNode(e.value);case"variable":throw new Br(`Cannot convert variable to RDF term: ${e.value}`);case"quoted":return this.toRDFQuotedTriple(e);default:throw new Br(`Unknown element type: ${String(e)}`)}}toAlgebraElement(e){if(e instanceof ta.IRI)return{type:"iri",value:e.value};if(e instanceof nS.Literal)return{type:"literal",value:e.value,datatype:e.datatype?.value,language:e.language,direction:e.direction};if(e instanceof om.BlankNode)return{type:"blank",value:e.id};if(e instanceof am.QuotedTriple)return this.toAlgebraQuotedTriple(e);throw new Br(`Unknown RDF term type: ${String(e)}`)}toAlgebraQuotedTriple(e){return{type:"quoted",subject:this.toAlgebraElement(e.subject),predicate:{type:"iri",value:e.predicate.value},object:this.toAlgebraElement(e.object)}}};yl.BGPExecutor=iS});var WR=v(cm=>{"use strict";Object.defineProperty(cm,"__esModule",{value:!0});cm.StringFunctions=void 0;var bl=Ce(),ra=Ge(),oS=Mt(),Df=class n{static{a(this,"StringFunctions")}static str(e){if(e===void 0)throw new Error("STR: argument is undefined");return e instanceof bl.IRI||e instanceof ra.Literal?e.value:e instanceof oS.BlankNode?e.id:String(e)}static lang(e){if(e===void 0)throw new Error("LANG: argument is undefined");return e instanceof ra.Literal&&e.language?e.language:""}static langdir(e){if(e===void 0)throw new Error("LANGDIR: argument is undefined");return!(e instanceof ra.Literal)||!e.language?"":e.direction?`${e.language}--${e.direction}`:e.language}static langMatches(e,t){let[r,i]=n.parseDirectionalLangTag(e),[s,o]=n.parseDirectionalLangTag(t),c=r.toLowerCase(),l=s.toLowerCase();return l==="*"?c!=="":c===""?l==="":o&&i!==o?!1:c===l?!0:c.startsWith(l+"-")}static parseDirectionalLangTag(e){let t=e.indexOf("--");if(t===-1)return[e,void 0];let r=e.substring(0,t),i=e.substring(t+2).toLowerCase();return[r,i]}static regex(e,t,r){try{let i=r?r.includes("u")?r:r+"u":"u";return new RegExp(t,i).test(e)}catch(i){throw new Error(`REGEX: invalid pattern '${t}': ${i.message}`)}}static contains(e,t){return e.includes(t)}static strStarts(e,t){return e.startsWith(t)}static strEnds(e,t){return e.endsWith(t)}static strlen(e){return e.length}static ucase(e){return e.toUpperCase()}static lcase(e){return e.toLowerCase()}static substr(e,t,r){let i=t-1;if(i<0){if(r!==void 0){let s=r+i;return s<=0?"":e.substring(0,s)}return e}return r!==void 0?e.substring(i,i+r):e.substring(i)}static strBefore(e,t){if(t==="")return"";let r=e.indexOf(t);return r===-1?"":e.substring(0,r)}static strAfter(e,t){if(t==="")return e;let r=e.indexOf(t);return r===-1?"":e.substring(r+t.length)}static concat(...e){return e.join("")}static replace(e,t,r,i){try{let s=i||"g",o=s.includes("u")?s:s+"u",c=new RegExp(t,o);return e.replace(c,r)}catch(s){throw new Error(`REPLACE: invalid pattern '${t}': ${s.message}`)}}static encodeForUri(e){return encodeURIComponent(e)}static normalize(e,t){if(e===void 0)throw new Error("NORMALIZE: string argument is undefined");let r;if(e instanceof ra.Literal)r=e.value;else if(e instanceof bl.IRI)r=e.value;else if(e instanceof oS.BlankNode)r=e.id;else if(typeof e=="string")r=e;else throw new Error("NORMALIZE: first argument must be a string or literal");let i="NFC";if(t!==void 0)if(t instanceof ra.Literal)i=t.value.toUpperCase();else if(typeof t=="string")i=t.toUpperCase();else if(t instanceof bl.IRI)i=t.value.toUpperCase();else throw new Error("NORMALIZE: second argument must be a string literal");if(!n.VALID_NORMALIZATION_FORMS.includes(i))throw new Error(`NORMALIZE: invalid normalization form '${i}'. Valid forms are: NFC, NFD, NFKC, NFKD`);let s=r.normalize(i);return new ra.Literal(s,new bl.IRI("http://www.w3.org/2001/XMLSchema#string"))}static fold(e){if(e===void 0)throw new Error("FOLD: string argument is undefined");let t;if(e instanceof ra.Literal)t=e.value;else if(e instanceof bl.IRI)t=e.value;else if(e instanceof oS.BlankNode)t=e.id;else if(typeof e=="string")t=e;else throw new Error("FOLD: argument must be a string or literal");let r=n.unicodeCaseFold(t);return new ra.Literal(r,new bl.IRI("http://www.w3.org/2001/XMLSchema#string"))}static unicodeCaseFold(e){let t="";for(let r of e){let i=n.CASE_FOLDING_MAP.get(r);i!==void 0?t+=i:t+=r.toLowerCase()}return t}};cm.StringFunctions=Df;Df.VALID_NORMALIZATION_FORMS=["NFC","NFD","NFKC","NFKD"];Df.CASE_FOLDING_MAP=new Map([["\xDF","ss"],["\u1E9E","ss"],["\u03A3","\u03C3"],["\u03C2","\u03C3"],["\u0130","i\u0307"],["I","i"],["\u0587","\u0565\u0582"],["\uFB00","ff"],["\uFB01","fi"],["\uFB02","fl"],["\uFB03","ffi"],["\uFB04","ffl"],["\uFB05","st"],["\uFB06","st"],["\u0390","\u03B9\u0308\u0301"],["\u03B0","\u03C5\u0308\u0301"],["\u017F","s"],["\u1E9B","\u1E61"],["\u212A","k"],["\u212B","\xE5"]])});var HR=v(lm=>{"use strict";Object.defineProperty(lm,"__esModule",{value:!0});lm.MathFunctions=void 0;var aS=class{static{a(this,"MathFunctions")}static msToMinutes(e){return Math.round(e/(1e3*60))}static msToHours(e){return Math.round(e/(1e3*60*60)*100)/100}static msToSeconds(e){return Math.round(e/1e3)}static abs(e){return Math.abs(e)}static round(e){return Math.round(e)}static ceil(e){return Math.ceil(e)}static floor(e){return Math.floor(e)}static rand(){return Math.random()}};lm.MathFunctions=aS});var Lf=v(um=>{"use strict";Object.defineProperty(um,"__esModule",{value:!0});um.DateTimeParsing=void 0;var q7=Ce(),G7=Ge(),cS=class n{static{a(this,"DateTimeParsing")}static parseDate(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`PARSEDATE: invalid date string '${e}'`);return t.getTime()}static parseDayTimeDuration(e){if(!e)throw new Error("parseDayTimeDuration: duration string is empty");let t=!1,r=e.trim();if(r.startsWith("-")&&(t=!0,r=r.substring(1)),!r.startsWith("P"))throw new Error(`parseDayTimeDuration: invalid format, must start with 'P': '${e}'`);r=r.substring(1);let i=0,s=r.indexOf("T"),o="",c="";if(s===-1?o=r:(o=r.substring(0,s),c=r.substring(s+1)),o){let l=o.match(/^(\d+(?:\.\d+)?)D$/);if(l){let u=parseFloat(l[1]);i+=u*24*60*60*1e3}else if(o!=="")throw new Error(`parseDayTimeDuration: invalid day component: '${o}' in '${e}'`)}if(c){let l=c,u=l.match(/^(\d+(?:\.\d+)?)H/);if(u){let h=parseFloat(u[1]);i+=h*60*60*1e3,l=l.substring(u[0].length)}let f=l.match(/^(\d+(?:\.\d+)?)M/);if(f){let h=parseFloat(f[1]);i+=h*60*1e3,l=l.substring(f[0].length)}let d=l.match(/^(\d+(?:\.\d+)?)S$/);if(d){let h=parseFloat(d[1]);i+=h*1e3,l=l.substring(d[0].length)}if(l!=="")throw new Error(`parseDayTimeDuration: invalid time component: '${l}' in '${e}'`)}return t?-i:i}static formatDayTimeDuration(e){let t=e<0,r=Math.abs(e),i=Math.floor(r/(1440*60*1e3));r=r%(1440*60*1e3);let s=Math.floor(r/(3600*1e3));r=r%(3600*1e3);let o=Math.floor(r/(60*1e3));r=r%(60*1e3);let c=r/1e3,l=t?"-P":"P";return i>0&&(l+=`${i}D`),(s>0||o>0||c>0||i===0)&&(l+="T",s>0&&(l+=`${s}H`),o>0&&(l+=`${o}M`),(c>0||s===0&&o===0)&&(Number.isInteger(c)?l+=`${c}S`:l+=`${parseFloat(c.toFixed(3))}S`)),l}static xsdDayTimeDuration(e){return n.parseDayTimeDuration(e),new G7.Literal(e,new q7.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static parseXSDDate(e){let t=/^(-?\d{4})-(\d{2})-(\d{2})(Z|[+-]\d{2}:\d{2})?$/,r=e.match(t);if(!r){let u=new Date(e);return isNaN(u.getTime())?null:new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()))}let i=parseInt(r[1],10),s=parseInt(r[2],10)-1,o=parseInt(r[3],10),c=r[4],l=new Date(Date.UTC(i,s,o));if(c&&c!=="Z"){let u=c.match(/([+-])(\d{2}):(\d{2})/);if(u){let f=u[1]==="+"?1:-1,d=parseInt(u[2],10),h=parseInt(u[3],10),p=f*(d*60+h)*60*1e3;l=new Date(l.getTime()-p)}}return l}static parseXSDTime(e){let t=/^(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(Z|[+-]\d{2}:\d{2})?$/,r=e.match(t);if(!r)return null;let i=parseInt(r[1],10),s=parseInt(r[2],10),o=parseInt(r[3],10),c=r[4],l=r[5];if(i<0||i>24||s<0||s>59||o<0||o>59||i===24&&(s!==0||o!==0))return null;let u=0;if(c){let d=c.padEnd(3,"0").slice(0,3);u=parseInt(d,10)}let f=i*60*60*1e3+s*60*1e3+o*1e3+u;if(i===24&&(f=1440*60*1e3),l&&l!=="Z"){let d=l.match(/([+-])(\d{2}):(\d{2})/);if(d){let h=d[1]==="+"?1:-1,p=parseInt(d[2],10),y=parseInt(d[3],10),g=h*(p*60+y)*60*1e3;f-=g}}return f}static formatDateDuration(e){if(e===0)return"P0D";let t=e<0,r=Math.abs(e);return t?`-P${r}D`:`P${r}D`}static parseYearMonthDuration(e){let t=/^(-)?P(?:(\d+)Y)?(?:(\d+)M)?$/,r=e.match(t);if(!r)throw new Error(`parseYearMonthDuration: invalid format: '${e}'`);let i=r[1]==="-",s=parseInt(r[2]||"0",10),o=parseInt(r[3]||"0",10);if(!r[2]&&!r[3])throw new Error(`parseYearMonthDuration: invalid format (no duration components): '${e}'`);let c=s*12+o;return i?-c:c}static formatYearMonthDuration(e){let t=e<0,r=Math.abs(e),i=Math.floor(r/12),s=r%12,o=t?"-P":"P";return i>0&&(o+=`${i}Y`),(s>0||i===0)&&(o+=`${s}M`),o}static parseYearMonthDurationComponents(e){let t=/^(-)?P(?:(\d+)Y)?(?:(\d+)M)?$/,r=e.match(t);if(!r)throw new Error(`parseYearMonthDurationComponents: invalid format: '${e}'`);let i=r[1]==="-",s=parseInt(r[2]||"0",10),o=parseInt(r[3]||"0",10);if(!r[2]&&!r[3])throw new Error(`parseYearMonthDurationComponents: invalid format (no duration components): '${e}'`);return{years:s,months:o,negative:i}}static parseDurationComponents(e){if(!e)throw new Error("parseDurationComponents: duration string is empty");let t=!1,r=e.trim();if(r.startsWith("-")&&(t=!0,r=r.substring(1)),!r.startsWith("P"))throw new Error(`parseDurationComponents: invalid format, must start with 'P': '${e}'`);r=r.substring(1);let i=0,s=0,o=0,c=0,l=r.indexOf("T"),u="",f="";if(l===-1?u=r:(u=r.substring(0,l),f=r.substring(l+1)),u){let d=u.match(/^(\d+(?:\.\d+)?)D$/);if(d)i=parseFloat(d[1]);else if(u!=="")throw new Error(`parseDurationComponents: invalid day component: '${u}' in '${e}'`)}if(f){let d=f,h=d.match(/^(\d+(?:\.\d+)?)H/);h&&(s=parseFloat(h[1]),d=d.substring(h[0].length));let p=d.match(/^(\d+(?:\.\d+)?)M/);p&&(o=parseFloat(p[1]),d=d.substring(p[0].length));let y=d.match(/^(\d+(?:\.\d+)?)S$/);if(y&&(c=parseFloat(y[1]),d=d.substring(y[0].length)),d!=="")throw new Error(`parseDurationComponents: invalid time component: '${d}' in '${e}'`)}return{negative:t,days:i,hours:s,minutes:o,seconds:c}}};um.DateTimeParsing=cS});var zR=v(fm=>{"use strict";Object.defineProperty(fm,"__esModule",{value:!0});fm.DateTimeArithmetic=void 0;var mn=Ce(),Be=Ge(),it=Lf(),lS=class{static{a(this,"DateTimeArithmetic")}static dateTimeDiff(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=new Date(r),o=new Date(i);if(isNaN(s.getTime()))throw new Error(`dateTimeDiff: invalid first dateTime: '${r}'`);if(isNaN(o.getTime()))throw new Error(`dateTimeDiff: invalid second dateTime: '${i}'`);let c=s.getTime()-o.getTime(),l=it.DateTimeParsing.formatDayTimeDuration(c);return new Be.Literal(l,new mn.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static dateTimeAdd(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=new Date(r);if(isNaN(s.getTime()))throw new Error(`dateTimeAdd: invalid dateTime: '${r}'`);let o=it.DateTimeParsing.parseDayTimeDuration(i),c=s.getTime()+o,l=new Date(c);return new Be.Literal(l.toISOString(),new mn.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static dateTimeSubtract(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=new Date(r);if(isNaN(s.getTime()))throw new Error(`dateTimeSubtract: invalid dateTime: '${r}'`);let o=it.DateTimeParsing.parseDayTimeDuration(i),c=s.getTime()-o,l=new Date(c);return new Be.Literal(l.toISOString(),new mn.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static dateAdd(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseXSDDate(r);if(s===null)throw new Error(`dateAdd: invalid date: '${r}'`);let o=it.DateTimeParsing.parseDayTimeDuration(i),c=s.getTime()+o,l=new Date(c),u=l.getUTCFullYear(),f=String(l.getUTCMonth()+1).padStart(2,"0"),d=String(l.getUTCDate()).padStart(2,"0"),h=`${u}-${f}-${d}`;return new Be.Literal(h,new mn.IRI("http://www.w3.org/2001/XMLSchema#date"))}static dateSubtract(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseXSDDate(r);if(s===null)throw new Error(`dateSubtract: invalid date: '${r}'`);let o=it.DateTimeParsing.parseDayTimeDuration(i),c=s.getTime()-o,l=new Date(c),u=l.getUTCFullYear(),f=String(l.getUTCMonth()+1).padStart(2,"0"),d=String(l.getUTCDate()).padStart(2,"0"),h=`${u}-${f}-${d}`;return new Be.Literal(h,new mn.IRI("http://www.w3.org/2001/XMLSchema#date"))}static dateTimeAddYearMonth(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=new Date(r);if(isNaN(s.getTime()))throw new Error(`dateTimeAddYearMonth: invalid dateTime: '${r}'`);let o=it.DateTimeParsing.parseYearMonthDuration(i),c=s.getUTCDate();return s.setUTCMonth(s.getUTCMonth()+o),s.getUTCDate()!==c&&s.setUTCDate(0),new Be.Literal(s.toISOString(),new mn.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static dateTimeSubtractYearMonth(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=new Date(r);if(isNaN(s.getTime()))throw new Error(`dateTimeSubtractYearMonth: invalid dateTime: '${r}'`);let o=it.DateTimeParsing.parseYearMonthDuration(i),c=s.getUTCDate();return s.setUTCMonth(s.getUTCMonth()-o),s.getUTCDate()!==c&&s.setUTCDate(0),new Be.Literal(s.toISOString(),new mn.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static dateAddYearMonth(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseXSDDate(r);if(s===null)throw new Error(`dateAddYearMonth: invalid date: '${r}'`);let o=it.DateTimeParsing.parseYearMonthDuration(i),c=s.getUTCDate();s.setUTCMonth(s.getUTCMonth()+o),s.getUTCDate()!==c&&s.setUTCDate(0);let l=s.getUTCFullYear(),u=String(s.getUTCMonth()+1).padStart(2,"0"),f=String(s.getUTCDate()).padStart(2,"0"),d=`${l}-${u}-${f}`;return new Be.Literal(d,new mn.IRI("http://www.w3.org/2001/XMLSchema#date"))}static dateSubtractYearMonth(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseXSDDate(r);if(s===null)throw new Error(`dateSubtractYearMonth: invalid date: '${r}'`);let o=it.DateTimeParsing.parseYearMonthDuration(i),c=s.getUTCDate();s.setUTCMonth(s.getUTCMonth()-o),s.getUTCDate()!==c&&s.setUTCDate(0);let l=s.getUTCFullYear(),u=String(s.getUTCMonth()+1).padStart(2,"0"),f=String(s.getUTCDate()).padStart(2,"0"),d=`${l}-${u}-${f}`;return new Be.Literal(d,new mn.IRI("http://www.w3.org/2001/XMLSchema#date"))}static durationAdd(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseDayTimeDuration(r),o=it.DateTimeParsing.parseDayTimeDuration(i),c=it.DateTimeParsing.formatDayTimeDuration(s+o);return new Be.Literal(c,new mn.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static durationSubtract(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseDayTimeDuration(r),o=it.DateTimeParsing.parseDayTimeDuration(i),c=it.DateTimeParsing.formatDayTimeDuration(s-o);return new Be.Literal(c,new mn.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static durationMultiply(e,t){let r=e instanceof Be.Literal?e.value:e,i=it.DateTimeParsing.parseDayTimeDuration(r),s=it.DateTimeParsing.formatDayTimeDuration(i*t);return new Be.Literal(s,new mn.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static durationDivide(e,t){if(t===0)throw new Error("durationDivide: division by zero");let r=e instanceof Be.Literal?e.value:e,i=it.DateTimeParsing.parseDayTimeDuration(r),s=it.DateTimeParsing.formatDayTimeDuration(i/t);return new Be.Literal(s,new mn.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static yearMonthDurationAdd(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseYearMonthDuration(r),o=it.DateTimeParsing.parseYearMonthDuration(i),c=it.DateTimeParsing.formatYearMonthDuration(s+o);return new Be.Literal(c,new mn.IRI("http://www.w3.org/2001/XMLSchema#yearMonthDuration"))}static yearMonthDurationSubtract(e,t){let r=e instanceof Be.Literal?e.value:e,i=t instanceof Be.Literal?t.value:t,s=it.DateTimeParsing.parseYearMonthDuration(r),o=it.DateTimeParsing.parseYearMonthDuration(i),c=it.DateTimeParsing.formatYearMonthDuration(s-o);return new Be.Literal(c,new mn.IRI("http://www.w3.org/2001/XMLSchema#yearMonthDuration"))}static durationToDays(e){let t=e instanceof Be.Literal?e.value:e;return it.DateTimeParsing.parseDayTimeDuration(t)/(1440*60*1e3)}static durationToHours(e){let t=e instanceof Be.Literal?e.value:e;return it.DateTimeParsing.parseDayTimeDuration(t)/(3600*1e3)}static durationToMinutes(e){let t=e instanceof Be.Literal?e.value:e;return it.DateTimeParsing.parseDayTimeDuration(t)/(60*1e3)}static durationToSeconds(e){let t=e instanceof Be.Literal?e.value:e;return it.DateTimeParsing.parseDayTimeDuration(t)/1e3}};fm.DateTimeArithmetic=lS});var KR=v(dm=>{"use strict";Object.defineProperty(dm,"__esModule",{value:!0});dm.DateTimeAccessors=void 0;var Nf=Ce(),jt=Ge(),It=Lf(),uS=class{static{a(this,"DateTimeAccessors")}static year(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`YEAR: invalid date string '${e}'`);return t.getFullYear()}static month(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`MONTH: invalid date string '${e}'`);return t.getMonth()+1}static day(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`DAY: invalid date string '${e}'`);return t.getDate()}static hours(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`HOURS: invalid date string '${e}'`);return t.getHours()}static minutes(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`MINUTES: invalid date string '${e}'`);return t.getMinutes()}static seconds(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`SECONDS: invalid date string '${e}'`);return t.getSeconds()+t.getMilliseconds()/1e3}static durationDays(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseDurationComponents(t),i=Math.floor(r.days);return r.negative?-i:i}static durationHours(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseDurationComponents(t),i=Math.floor(r.hours);return r.negative?-i:i}static durationMinutes(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseDurationComponents(t),i=Math.floor(r.minutes);return r.negative?-i:i}static durationSeconds(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseDurationComponents(t);return r.negative?-r.seconds:r.seconds}static durationYears(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseYearMonthDurationComponents(t);return r.negative?-r.years:r.years}static durationMonths(e){let t=e instanceof jt.Literal?e.value:e,r=It.DateTimeParsing.parseYearMonthDurationComponents(t);return r.negative?-r.months:r.months}static timezone(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`TIMEZONE: invalid date string '${e}'`);let r;if(e.endsWith("Z"))r="PT0S";else{let i=e.match(/([+-]\d{2}):?(\d{2})$/);if(i){let s=parseInt(i[1],10),o=parseInt(i[2],10),c=s>=0?"":"-",l=Math.abs(s);o===0?r=`${c}PT${l}H`:r=`${c}PT${l}H${o}M`}else{let s=-t.getTimezoneOffset(),o=Math.floor(Math.abs(s)/60),c=Math.abs(s)%60,l=s>=0?"":"-";c===0?r=`${l}PT${o}H`:r=`${l}PT${o}H${c}M`}}return new jt.Literal(r,new Nf.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static tz(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`TZ: invalid date string '${e}'`);if(e.endsWith("Z"))return"Z";let r=e.match(/([+-]\d{2}:\d{2})$/);if(r)return r[1];let i=e.match(/([+-])(\d{2})(\d{2})$/);return i?`${i[1]}${i[2]}:${i[3]}`:""}static adjust(e,t){let r=e instanceof jt.Literal?e.value:e,i=new Date(r);if(isNaN(i.getTime()))throw new Error(`ADJUST: invalid dateTime: '${r}'`);if(t==null){let R=i.getUTCFullYear(),B=String(i.getUTCMonth()+1).padStart(2,"0"),D=String(i.getUTCDate()).padStart(2,"0"),O=String(i.getUTCHours()).padStart(2,"0"),M=String(i.getUTCMinutes()).padStart(2,"0"),$=String(i.getUTCSeconds()).padStart(2,"0"),Z=i.getUTCMilliseconds(),ue=`${R}-${B}-${D}T${O}:${M}:${$}`;return Z>0&&(ue+=`.${String(Z).padStart(3,"0")}`),new jt.Literal(ue,new Nf.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}let s=t instanceof jt.Literal?t.value:t,o=It.DateTimeParsing.parseDayTimeDuration(s),c=840*60*1e3;if(Math.abs(o)>c)throw new Error(`ADJUST: timezone offset out of range: '${s}'`);let l=i.getTime(),u=new Date(l+o),f=u.getUTCFullYear(),d=String(u.getUTCMonth()+1).padStart(2,"0"),h=String(u.getUTCDate()).padStart(2,"0"),p=String(u.getUTCHours()).padStart(2,"0"),y=String(u.getUTCMinutes()).padStart(2,"0"),g=String(u.getUTCSeconds()).padStart(2,"0"),b=u.getUTCMilliseconds(),_=o>=0?"+":"-",S=Math.floor(Math.abs(o)/(3600*1e3)),x=Math.floor(Math.abs(o)%(3600*1e3)/(60*1e3)),A=`${_}${String(S).padStart(2,"0")}:${String(x).padStart(2,"0")}`,T=`${f}-${d}-${h}T${p}:${y}:${g}`;return b>0&&(T+=`.${String(b).padStart(3,"0")}`),T+=A,new jt.Literal(T,new Nf.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static now(){return new Date().toISOString()}static dateBefore(e,t){let r=It.DateTimeParsing.parseDate(e),i=It.DateTimeParsing.parseDate(t);return r<i}static dateAfter(e,t){let r=It.DateTimeParsing.parseDate(e),i=It.DateTimeParsing.parseDate(t);return r>i}static dateInRange(e,t,r){let i=It.DateTimeParsing.parseDate(e),s=It.DateTimeParsing.parseDate(t),o=It.DateTimeParsing.parseDate(r);return i>=s&&i<=o}static compareDurations(e,t,r){let i=e instanceof jt.Literal?e.value:e,s=t instanceof jt.Literal?t.value:t,o=It.DateTimeParsing.parseDayTimeDuration(i),c=It.DateTimeParsing.parseDayTimeDuration(s);switch(r){case"=":return o===c;case"!=":return o!==c;case"<":return o<c;case">":return o>c;case"<=":return o<=c;case">=":return o>=c;default:throw new Error(`compareDurations: unknown operator: ${r}`)}}static dateDiffMinutes(e,t){let r=It.DateTimeParsing.parseDate(e),i=It.DateTimeParsing.parseDate(t),s=Math.abs(i-r);return Math.round(s/(1e3*60))}static dateDiffHours(e,t){let r=It.DateTimeParsing.parseDate(e),i=It.DateTimeParsing.parseDate(t),s=Math.abs(i-r);return Math.round(s/(1e3*60*60)*100)/100}static timeDiff(e,t){let r=e instanceof jt.Literal?e.value:e,i=t instanceof jt.Literal?t.value:t,s=It.DateTimeParsing.parseXSDTime(r),o=It.DateTimeParsing.parseXSDTime(i);if(s===null)throw new Error(`timeDiff: invalid first time: '${r}'`);if(o===null)throw new Error(`timeDiff: invalid second time: '${i}'`);let c=s-o,l=It.DateTimeParsing.formatDayTimeDuration(c);return new jt.Literal(l,new Nf.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}static isDayTimeDuration(e){return e instanceof jt.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#dayTimeDuration":!1}static isDate(e){return e instanceof jt.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#date":!1}static isYearMonthDuration(e){return e instanceof jt.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#yearMonthDuration":!1}static isTime(e){return e instanceof jt.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#time":!1}static dateDiff(e,t){let r=e instanceof jt.Literal?e.value:e,i=t instanceof jt.Literal?t.value:t,s=It.DateTimeParsing.parseXSDDate(r),o=It.DateTimeParsing.parseXSDDate(i);if(s===null)throw new Error(`dateDiff: invalid first date: '${r}'`);if(o===null)throw new Error(`dateDiff: invalid second date: '${i}'`);let c=s.getTime()-o.getTime(),l=Math.round(c/(1440*60*1e3)),u=It.DateTimeParsing.formatDateDuration(l);return new jt.Literal(u,new Nf.IRI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))}};dm.DateTimeAccessors=uS});var pm=v(hm=>{"use strict";Object.defineProperty(hm,"__esModule",{value:!0});hm.DateTimeFunctions=void 0;var _l=Lf(),mr=zR(),St=KR(),fS=class{static{a(this,"DateTimeFunctions")}static parseDate(e){return _l.DateTimeParsing.parseDate(e)}static parseDayTimeDuration(e){return _l.DateTimeParsing.parseDayTimeDuration(e)}static formatDayTimeDuration(e){return _l.DateTimeParsing.formatDayTimeDuration(e)}static xsdDayTimeDuration(e){return _l.DateTimeParsing.xsdDayTimeDuration(e)}static parseYearMonthDuration(e){return _l.DateTimeParsing.parseYearMonthDuration(e)}static formatYearMonthDuration(e){return _l.DateTimeParsing.formatYearMonthDuration(e)}static year(e){return St.DateTimeAccessors.year(e)}static month(e){return St.DateTimeAccessors.month(e)}static day(e){return St.DateTimeAccessors.day(e)}static hours(e){return St.DateTimeAccessors.hours(e)}static minutes(e){return St.DateTimeAccessors.minutes(e)}static seconds(e){return St.DateTimeAccessors.seconds(e)}static durationDays(e){return St.DateTimeAccessors.durationDays(e)}static durationHours(e){return St.DateTimeAccessors.durationHours(e)}static durationMinutes(e){return St.DateTimeAccessors.durationMinutes(e)}static durationSeconds(e){return St.DateTimeAccessors.durationSeconds(e)}static durationYears(e){return St.DateTimeAccessors.durationYears(e)}static durationMonths(e){return St.DateTimeAccessors.durationMonths(e)}static timezone(e){return St.DateTimeAccessors.timezone(e)}static tz(e){return St.DateTimeAccessors.tz(e)}static adjust(e,t){return St.DateTimeAccessors.adjust(e,t)}static now(){return St.DateTimeAccessors.now()}static dateBefore(e,t){return St.DateTimeAccessors.dateBefore(e,t)}static dateAfter(e,t){return St.DateTimeAccessors.dateAfter(e,t)}static dateInRange(e,t,r){return St.DateTimeAccessors.dateInRange(e,t,r)}static compareDurations(e,t,r){return St.DateTimeAccessors.compareDurations(e,t,r)}static dateDiffMinutes(e,t){return St.DateTimeAccessors.dateDiffMinutes(e,t)}static dateDiffHours(e,t){return St.DateTimeAccessors.dateDiffHours(e,t)}static timeDiff(e,t){return St.DateTimeAccessors.timeDiff(e,t)}static dateDiff(e,t){return St.DateTimeAccessors.dateDiff(e,t)}static isDayTimeDuration(e){return St.DateTimeAccessors.isDayTimeDuration(e)}static isDate(e){return St.DateTimeAccessors.isDate(e)}static isYearMonthDuration(e){return St.DateTimeAccessors.isYearMonthDuration(e)}static isTime(e){return St.DateTimeAccessors.isTime(e)}static dateTimeDiff(e,t){return mr.DateTimeArithmetic.dateTimeDiff(e,t)}static dateTimeAdd(e,t){return mr.DateTimeArithmetic.dateTimeAdd(e,t)}static dateTimeSubtract(e,t){return mr.DateTimeArithmetic.dateTimeSubtract(e,t)}static dateAdd(e,t){return mr.DateTimeArithmetic.dateAdd(e,t)}static dateSubtract(e,t){return mr.DateTimeArithmetic.dateSubtract(e,t)}static dateTimeAddYearMonth(e,t){return mr.DateTimeArithmetic.dateTimeAddYearMonth(e,t)}static dateTimeSubtractYearMonth(e,t){return mr.DateTimeArithmetic.dateTimeSubtractYearMonth(e,t)}static dateAddYearMonth(e,t){return mr.DateTimeArithmetic.dateAddYearMonth(e,t)}static dateSubtractYearMonth(e,t){return mr.DateTimeArithmetic.dateSubtractYearMonth(e,t)}static durationAdd(e,t){return mr.DateTimeArithmetic.durationAdd(e,t)}static durationSubtract(e,t){return mr.DateTimeArithmetic.durationSubtract(e,t)}static durationMultiply(e,t){return mr.DateTimeArithmetic.durationMultiply(e,t)}static durationDivide(e,t){return mr.DateTimeArithmetic.durationDivide(e,t)}static yearMonthDurationAdd(e,t){return mr.DateTimeArithmetic.yearMonthDurationAdd(e,t)}static yearMonthDurationSubtract(e,t){return mr.DateTimeArithmetic.yearMonthDurationSubtract(e,t)}static durationToDays(e){return mr.DateTimeArithmetic.durationToDays(e)}static durationToHours(e){return mr.DateTimeArithmetic.durationToHours(e)}static durationToMinutes(e){return mr.DateTimeArithmetic.durationToMinutes(e)}static durationToSeconds(e){return mr.DateTimeArithmetic.durationToSeconds(e)}};hm.DateTimeFunctions=fS});var XR=v(gm=>{"use strict";Object.defineProperty(gm,"__esModule",{value:!0});gm.LogicalFunctions=void 0;var W7=Ce(),wl=Ge(),H7=Mt(),mm=pm(),dS=class n{static{a(this,"LogicalFunctions")}static compare(e,t,r){if(n.isDayTimeDurationValue(e)&&n.isDayTimeDurationValue(t))return mm.DateTimeFunctions.compareDurations(e instanceof wl.Literal?e:String(e),t instanceof wl.Literal?t:String(t),r);if(n.isDayTimeDurationValue(e)&&typeof t=="string"&&/^-?P/.test(t))return mm.DateTimeFunctions.compareDurations(e instanceof wl.Literal?e:String(e),t,r);if(typeof e=="string"&&/^-?P/.test(e)&&n.isDayTimeDurationValue(t))return mm.DateTimeFunctions.compareDurations(e,t instanceof wl.Literal?t:String(t),r);let i=n.toComparableValue(e),s=n.toComparableValue(t);switch(r){case"=":return i===s;case"!=":return i!==s;case"<":return i<s;case">":return i>s;case"<=":return i<=s;case">=":return i>=s;default:throw new Error(`Unknown comparison operator: ${r}`)}}static isDayTimeDurationValue(e){return e instanceof wl.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#dayTimeDuration":!1}static toComparableValue(e){if(typeof e=="string"||typeof e=="number")return e;if(e instanceof wl.Literal){let t=e.datatype?.value;if(t?.includes("#integer")||t?.includes("#decimal")||t?.includes("#double")){let r=parseFloat(e.value);if(!isNaN(r))return r}if(t==="http://www.w3.org/2001/XMLSchema#dayTimeDuration")try{return mm.DateTimeFunctions.parseDayTimeDuration(e.value)}catch{return e.value}return e.value}return e instanceof W7.IRI?e.value:e instanceof H7.BlankNode?e.id:String(e)}static logicalAnd(e){return e.every(t=>t===!0)}static logicalOr(e){return e.some(t=>t===!0)}static logicalNot(e){return!e}static coalesce(e){for(let t of e)if(t!=null)return t}static if(e,t,r){return e?t:r}};gm.LogicalFunctions=dS});var YR=v(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.RDFTermFunctions=void 0;var Vr=Ce(),xt=Ge(),Ii=Mt(),Sl=df(),hS=Ti(),pS=class n{static{a(this,"RDFTermFunctions")}static datatype(e){if(e===void 0)throw new Error("DATATYPE: argument is undefined");if(e instanceof xt.Literal)return e.datatype?e.datatype:e.language?new Vr.IRI("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"):new Vr.IRI("http://www.w3.org/2001/XMLSchema#string");throw new Error("DATATYPE: argument must be a literal")}static bound(e){return e!==void 0}static isIRI(e){return e===void 0?!1:e instanceof Vr.IRI}static isBlank(e){return e===void 0?!1:e instanceof Ii.BlankNode}static isLiteral(e){return e===void 0?!1:e instanceof xt.Literal}static isTriple(e){return e===void 0?!1:e instanceof Sl.QuotedTriple}static hasLangdir(e){return e===void 0||!(e instanceof xt.Literal)?!1:!!e.language&&!!e.direction}static isNumeric(e){if(e===void 0||!(e instanceof xt.Literal))return!1;let t=e.datatype?.value;return t?["http://www.w3.org/2001/XMLSchema#integer","http://www.w3.org/2001/XMLSchema#decimal","http://www.w3.org/2001/XMLSchema#float","http://www.w3.org/2001/XMLSchema#double","http://www.w3.org/2001/XMLSchema#nonPositiveInteger","http://www.w3.org/2001/XMLSchema#negativeInteger","http://www.w3.org/2001/XMLSchema#long","http://www.w3.org/2001/XMLSchema#int","http://www.w3.org/2001/XMLSchema#short","http://www.w3.org/2001/XMLSchema#byte","http://www.w3.org/2001/XMLSchema#nonNegativeInteger","http://www.w3.org/2001/XMLSchema#unsignedLong","http://www.w3.org/2001/XMLSchema#unsignedInt","http://www.w3.org/2001/XMLSchema#unsignedShort","http://www.w3.org/2001/XMLSchema#unsignedByte","http://www.w3.org/2001/XMLSchema#positiveInteger"].includes(t):!1}static xsdDateTime(e){let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`xsd:dateTime: invalid date string '${e}'`);return new xt.Literal(t.toISOString(),new Vr.IRI("http://www.w3.org/2001/XMLSchema#dateTime"))}static xsdInteger(e){let t=parseInt(e,10);if(isNaN(t))throw new Error(`xsd:integer: cannot convert '${e}' to integer`);return new xt.Literal(String(t),new Vr.IRI("http://www.w3.org/2001/XMLSchema#integer"))}static xsdDecimal(e){let t=parseFloat(e);if(isNaN(t))throw new Error(`xsd:decimal: cannot convert '${e}' to decimal`);return new xt.Literal(String(t),new Vr.IRI("http://www.w3.org/2001/XMLSchema#decimal"))}static sameTerm(e,t){if(e===void 0&&t===void 0)return!0;if(e===void 0||t===void 0||e.constructor!==t.constructor)return!1;if(e instanceof Vr.IRI&&t instanceof Vr.IRI)return e.value===t.value;if(e instanceof Ii.BlankNode&&t instanceof Ii.BlankNode)return e.id===t.id;if(e instanceof xt.Literal&&t instanceof xt.Literal){if(e.value!==t.value||e.language!==t.language)return!1;let r=e.datatype?.value,i=t.datatype?.value;return r===i}return!1}static iri(e){if(e===void 0)throw new Error("IRI: argument is undefined");if(e instanceof Vr.IRI)return e;if(e instanceof xt.Literal)return new Vr.IRI(e.value);throw e instanceof Ii.BlankNode?new Error("IRI: cannot convert blank node to IRI"):new Error("IRI: unsupported term type")}static uri(e){return n.iri(e)}static bnode(e){if(e===void 0){let t=`b${(0,hS.v4)().replace(/-/g,"").substring(0,12)}`;return new Ii.BlankNode(t)}if(e instanceof xt.Literal)return new Ii.BlankNode(e.value);if(e instanceof Ii.BlankNode)return e;throw new Error("BNODE: argument must be a string literal or omitted")}static strdt(e,t){if(e===void 0)throw new Error("STRDT: lexical form is undefined");if(t===void 0)throw new Error("STRDT: datatype IRI is undefined");let r;if(e instanceof xt.Literal){if(e.language)throw new Error("STRDT: lexical form must not have a language tag");r=e.value}else if(typeof e=="string")r=e;else throw new Error("STRDT: lexical form must be a string literal");let i;if(t instanceof Vr.IRI)i=t;else if(t instanceof xt.Literal)i=new Vr.IRI(t.value);else throw new Error("STRDT: datatype must be an IRI");return new xt.Literal(r,i)}static strlang(e,t){if(e===void 0)throw new Error("STRLANG: lexical form is undefined");if(t===void 0)throw new Error("STRLANG: language tag is undefined");let r;if(e instanceof xt.Literal){if(e.language)throw new Error("STRLANG: lexical form must not already have a language tag");r=e.value}else if(typeof e=="string")r=e;else throw new Error("STRLANG: lexical form must be a string literal");let i;if(t instanceof xt.Literal)i=t.value;else if(typeof t=="string")i=t;else throw new Error("STRLANG: language tag must be a string literal");if(i==="")throw new Error("STRLANG: language tag cannot be empty");return new xt.Literal(r,void 0,i)}static strlangdir(e,t,r){if(e===void 0)throw new Error("STRLANGDIR: lexical form is undefined");if(t===void 0)throw new Error("STRLANGDIR: language tag is undefined");if(r===void 0)throw new Error("STRLANGDIR: direction is undefined");let i;if(e instanceof xt.Literal){if(e.language)throw new Error("STRLANGDIR: lexical form must not already have a language tag");i=e.value}else if(typeof e=="string")i=e;else throw new Error("STRLANGDIR: lexical form must be a string literal");let s;if(t instanceof xt.Literal)s=t.value;else if(typeof t=="string")s=t;else throw new Error("STRLANGDIR: language tag must be a string literal");if(s==="")throw new Error("STRLANGDIR: language tag cannot be empty");let o;if(r instanceof xt.Literal)o=r.value.toLowerCase();else throw new Error("STRLANGDIR: direction must be a string literal");if(o!=="ltr"&&o!=="rtl")throw new Error(`STRLANGDIR: invalid direction '${o}'. Must be 'ltr' or 'rtl'`);return new xt.Literal(i,void 0,s,o)}static uuid(){let e=(0,hS.v4)();return new Vr.IRI(`urn:uuid:${e}`)}static struuid(){let e=(0,hS.v4)();return new xt.Literal(e)}static triple(e,t,r){if(e===void 0)throw new Error("TRIPLE: subject is undefined");if(t===void 0)throw new Error("TRIPLE: predicate is undefined");if(r===void 0)throw new Error("TRIPLE: object is undefined");if(e instanceof xt.Literal)throw new Error("TRIPLE: subject must be IRI, BlankNode, or QuotedTriple, got Literal");if(!(t instanceof Vr.IRI)){let c=t instanceof xt.Literal?"Literal":t instanceof Ii.BlankNode?"BlankNode":t instanceof Sl.QuotedTriple?"QuotedTriple":typeof t;throw new Error(`TRIPLE: predicate must be IRI, got ${c}`)}let i=e,s=t,o=r;return new Sl.QuotedTriple(i,s,o)}static subject(e){if(e===void 0)throw new Error("SUBJECT: argument is undefined");if(!(e instanceof Sl.QuotedTriple)){let t=e instanceof Vr.IRI?"IRI":e instanceof xt.Literal?"Literal":e instanceof Ii.BlankNode?"BlankNode":typeof e;throw new Error(`SUBJECT: argument must be QuotedTriple, got ${t}`)}return e.subject}static predicate(e){if(e===void 0)throw new Error("PREDICATE: argument is undefined");if(!(e instanceof Sl.QuotedTriple)){let t=e instanceof Vr.IRI?"IRI":e instanceof xt.Literal?"Literal":e instanceof Ii.BlankNode?"BlankNode":typeof e;throw new Error(`PREDICATE: argument must be QuotedTriple, got ${t}`)}return e.predicate}static object(e){if(e===void 0)throw new Error("OBJECT: argument is undefined");if(!(e instanceof Sl.QuotedTriple)){let t=e instanceof Vr.IRI?"IRI":e instanceof xt.Literal?"Literal":e instanceof Ii.BlankNode?"BlankNode":typeof e;throw new Error(`OBJECT: argument must be QuotedTriple, got ${t}`)}return e.object}};ym.RDFTermFunctions=pS});var QR=v(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.HashFunctions=void 0;var mS=class{static{a(this,"HashFunctions")}static md5(e){return require("crypto").createHash("md5").update(e).digest("hex")}static sha1(e){return require("crypto").createHash("sha1").update(e).digest("hex")}static sha256(e){return require("crypto").createHash("sha256").update(e).digest("hex")}static sha384(e){return require("crypto").createHash("sha384").update(e).digest("hex")}static sha512(e){return require("crypto").createHash("sha512").update(e).digest("hex")}};bm.HashFunctions=mS});var wm=v(_m=>{"use strict";Object.defineProperty(_m,"__esModule",{value:!0});_m.BuiltInFunctions=void 0;var gr=WR(),na=HR(),Ie=pm(),vl=XR(),Pt=YR(),kf=QR(),gS=class{static{a(this,"BuiltInFunctions")}static str(...e){return gr.StringFunctions.str(...e)}static lang(...e){return gr.StringFunctions.lang(...e)}static langdir(...e){return gr.StringFunctions.langdir(...e)}static langMatches(...e){return gr.StringFunctions.langMatches(...e)}static regex(...e){return gr.StringFunctions.regex(...e)}static contains(...e){return gr.StringFunctions.contains(...e)}static strStarts(...e){return gr.StringFunctions.strStarts(...e)}static strEnds(...e){return gr.StringFunctions.strEnds(...e)}static strlen(...e){return gr.StringFunctions.strlen(...e)}static ucase(...e){return gr.StringFunctions.ucase(...e)}static lcase(...e){return gr.StringFunctions.lcase(...e)}static substr(...e){return gr.StringFunctions.substr(...e)}static strBefore(...e){return gr.StringFunctions.strBefore(...e)}static strAfter(...e){return gr.StringFunctions.strAfter(...e)}static concat(...e){return gr.StringFunctions.concat(...e)}static replace(...e){return gr.StringFunctions.replace(...e)}static encodeForUri(...e){return gr.StringFunctions.encodeForUri(...e)}static normalize(...e){return gr.StringFunctions.normalize(...e)}static fold(...e){return gr.StringFunctions.fold(...e)}static abs(...e){return na.MathFunctions.abs(...e)}static round(...e){return na.MathFunctions.round(...e)}static ceil(...e){return na.MathFunctions.ceil(...e)}static floor(...e){return na.MathFunctions.floor(...e)}static rand(){return na.MathFunctions.rand()}static msToMinutes(...e){return na.MathFunctions.msToMinutes(...e)}static msToHours(...e){return na.MathFunctions.msToHours(...e)}static msToSeconds(...e){return na.MathFunctions.msToSeconds(...e)}static parseDate(...e){return Ie.DateTimeFunctions.parseDate(...e)}static dateBefore(...e){return Ie.DateTimeFunctions.dateBefore(...e)}static dateAfter(...e){return Ie.DateTimeFunctions.dateAfter(...e)}static dateInRange(...e){return Ie.DateTimeFunctions.dateInRange(...e)}static dateDiffMinutes(...e){return Ie.DateTimeFunctions.dateDiffMinutes(...e)}static dateDiffHours(...e){return Ie.DateTimeFunctions.dateDiffHours(...e)}static year(...e){return Ie.DateTimeFunctions.year(...e)}static month(...e){return Ie.DateTimeFunctions.month(...e)}static day(...e){return Ie.DateTimeFunctions.day(...e)}static hours(...e){return Ie.DateTimeFunctions.hours(...e)}static minutes(...e){return Ie.DateTimeFunctions.minutes(...e)}static seconds(...e){return Ie.DateTimeFunctions.seconds(...e)}static timezone(...e){return Ie.DateTimeFunctions.timezone(...e)}static tz(...e){return Ie.DateTimeFunctions.tz(...e)}static now(){return Ie.DateTimeFunctions.now()}static parseDayTimeDuration(...e){return Ie.DateTimeFunctions.parseDayTimeDuration(...e)}static formatDayTimeDuration(...e){return Ie.DateTimeFunctions.formatDayTimeDuration(...e)}static xsdDayTimeDuration(...e){return Ie.DateTimeFunctions.xsdDayTimeDuration(...e)}static compareDurations(...e){return Ie.DateTimeFunctions.compareDurations(...e)}static isDayTimeDuration(...e){return Ie.DateTimeFunctions.isDayTimeDuration(...e)}static isDate(...e){return Ie.DateTimeFunctions.isDate(...e)}static dateDiff(...e){return Ie.DateTimeFunctions.dateDiff(...e)}static dateTimeDiff(...e){return Ie.DateTimeFunctions.dateTimeDiff(...e)}static dateTimeAdd(...e){return Ie.DateTimeFunctions.dateTimeAdd(...e)}static dateTimeSubtract(...e){return Ie.DateTimeFunctions.dateTimeSubtract(...e)}static dateAdd(...e){return Ie.DateTimeFunctions.dateAdd(...e)}static dateSubtract(...e){return Ie.DateTimeFunctions.dateSubtract(...e)}static parseYearMonthDuration(...e){return Ie.DateTimeFunctions.parseYearMonthDuration(...e)}static isYearMonthDuration(...e){return Ie.DateTimeFunctions.isYearMonthDuration(...e)}static dateTimeAddYearMonth(...e){return Ie.DateTimeFunctions.dateTimeAddYearMonth(...e)}static dateTimeSubtractYearMonth(...e){return Ie.DateTimeFunctions.dateTimeSubtractYearMonth(...e)}static dateAddYearMonth(...e){return Ie.DateTimeFunctions.dateAddYearMonth(...e)}static dateSubtractYearMonth(...e){return Ie.DateTimeFunctions.dateSubtractYearMonth(...e)}static durationAdd(...e){return Ie.DateTimeFunctions.durationAdd(...e)}static durationSubtract(...e){return Ie.DateTimeFunctions.durationSubtract(...e)}static durationMultiply(...e){return Ie.DateTimeFunctions.durationMultiply(...e)}static durationDivide(...e){return Ie.DateTimeFunctions.durationDivide(...e)}static formatYearMonthDuration(...e){return Ie.DateTimeFunctions.formatYearMonthDuration(...e)}static yearMonthDurationAdd(...e){return Ie.DateTimeFunctions.yearMonthDurationAdd(...e)}static yearMonthDurationSubtract(...e){return Ie.DateTimeFunctions.yearMonthDurationSubtract(...e)}static durationYears(...e){return Ie.DateTimeFunctions.durationYears(...e)}static durationMonths(...e){return Ie.DateTimeFunctions.durationMonths(...e)}static durationToDays(...e){return Ie.DateTimeFunctions.durationToDays(...e)}static durationToHours(...e){return Ie.DateTimeFunctions.durationToHours(...e)}static durationToMinutes(...e){return Ie.DateTimeFunctions.durationToMinutes(...e)}static durationToSeconds(...e){return Ie.DateTimeFunctions.durationToSeconds(...e)}static durationDays(...e){return Ie.DateTimeFunctions.durationDays(...e)}static durationHours(...e){return Ie.DateTimeFunctions.durationHours(...e)}static durationMinutes(...e){return Ie.DateTimeFunctions.durationMinutes(...e)}static durationSeconds(...e){return Ie.DateTimeFunctions.durationSeconds(...e)}static adjust(...e){return Ie.DateTimeFunctions.adjust(...e)}static isTime(...e){return Ie.DateTimeFunctions.isTime(...e)}static timeDiff(...e){return Ie.DateTimeFunctions.timeDiff(...e)}static compare(...e){return vl.LogicalFunctions.compare(...e)}static logicalAnd(...e){return vl.LogicalFunctions.logicalAnd(...e)}static logicalOr(...e){return vl.LogicalFunctions.logicalOr(...e)}static logicalNot(...e){return vl.LogicalFunctions.logicalNot(...e)}static coalesce(...e){return vl.LogicalFunctions.coalesce(...e)}static if(...e){return vl.LogicalFunctions.if(...e)}static datatype(...e){return Pt.RDFTermFunctions.datatype(...e)}static bound(...e){return Pt.RDFTermFunctions.bound(...e)}static isIRI(...e){return Pt.RDFTermFunctions.isIRI(...e)}static isBlank(...e){return Pt.RDFTermFunctions.isBlank(...e)}static isLiteral(...e){return Pt.RDFTermFunctions.isLiteral(...e)}static isTriple(...e){return Pt.RDFTermFunctions.isTriple(...e)}static isNumeric(...e){return Pt.RDFTermFunctions.isNumeric(...e)}static hasLangdir(...e){return Pt.RDFTermFunctions.hasLangdir(...e)}static sameTerm(...e){return Pt.RDFTermFunctions.sameTerm(...e)}static iri(...e){return Pt.RDFTermFunctions.iri(...e)}static uri(...e){return Pt.RDFTermFunctions.uri(...e)}static bnode(...e){return Pt.RDFTermFunctions.bnode(...e)}static strdt(...e){return Pt.RDFTermFunctions.strdt(...e)}static strlang(...e){return Pt.RDFTermFunctions.strlang(...e)}static strlangdir(...e){return Pt.RDFTermFunctions.strlangdir(...e)}static uuid(){return Pt.RDFTermFunctions.uuid()}static struuid(){return Pt.RDFTermFunctions.struuid()}static xsdDateTime(...e){return Pt.RDFTermFunctions.xsdDateTime(...e)}static xsdInteger(...e){return Pt.RDFTermFunctions.xsdInteger(...e)}static xsdDecimal(...e){return Pt.RDFTermFunctions.xsdDecimal(...e)}static triple(...e){return Pt.RDFTermFunctions.triple(...e)}static subject(...e){return Pt.RDFTermFunctions.subject(...e)}static predicate(...e){return Pt.RDFTermFunctions.predicate(...e)}static object(...e){return Pt.RDFTermFunctions.object(...e)}static md5(...e){return kf.HashFunctions.md5(...e)}static sha1(...e){return kf.HashFunctions.sha1(...e)}static sha256(...e){return kf.HashFunctions.sha256(...e)}static sha384(...e){return kf.HashFunctions.sha384(...e)}static sha512(...e){return kf.HashFunctions.sha512(...e)}};_m.BuiltInFunctions=gS});var Mf=v(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.ExoQLBudgetExceededError=ys.ExoQLCycleError=ys.ExoQLEvalDisabledError=ys.ExoQLForbiddenKeywordError=void 0;var yS=class extends Error{static{a(this,"ExoQLForbiddenKeywordError")}constructor(e,t){super(t??`ExoQLForbiddenKeywordError: keyword "${e}" is not permitted by the exoql__Query AST allowlist`),this.name="ExoQLForbiddenKeywordError",this.keyword=e}};ys.ExoQLForbiddenKeywordError=yS;var bS=class extends Error{static{a(this,"ExoQLEvalDisabledError")}constructor(e){super(e??"ExoQLEvalDisabledError: exoql.eval.enabled is false (default). Flip the feature flag to opt in."),this.name="ExoQLEvalDisabledError"}};ys.ExoQLEvalDisabledError=bS;var _S=class extends Error{static{a(this,"ExoQLCycleError")}constructor(e,t){super(t??`ExoQLCycleError: cycle detected in nested exo:eval invocations: ${e.join(" \u2192 ")}`),this.name="ExoQLCycleError",this.path=e}};ys.ExoQLCycleError=_S;var wS=class extends Error{static{a(this,"ExoQLBudgetExceededError")}constructor(e,t,r,i){super(i??`ExoQLBudgetExceededError: ${e} budget exceeded (limit=${t}, observed=${r})`),this.name="ExoQLBudgetExceededError",this.budget=e,this.limit=t,this.observed=r}};ys.ExoQLBudgetExceededError=wS});var oC=v(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.functionHandlers=void 0;var z=wm();K.functionHandlers=new Map;K.functionHandlers.set("str",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.str(t)});K.functionHandlers.set("lang",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.lang(t)});K.functionHandlers.set("langmatches",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.langMatches(t,r)});K.functionHandlers.set("contains",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.contains(t,r)});K.functionHandlers.set("strstarts",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.strStarts(t,r)});K.functionHandlers.set("strends",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.strEnds(t,r)});K.functionHandlers.set("strlen",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.strlen(t)});K.functionHandlers.set("ucase",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.ucase(t)});K.functionHandlers.set("lcase",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.lcase(t)});K.functionHandlers.set("substr",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=Number(e.evaluateExpression(n[1],e.solution));if(n[2]){let i=Number(e.evaluateExpression(n[2],e.solution));return z.BuiltInFunctions.substr(t,r,i)}return z.BuiltInFunctions.substr(t,r)});K.functionHandlers.set("strbefore",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.strBefore(t,r)});K.functionHandlers.set("strafter",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.strAfter(t,r)});K.functionHandlers.set("concat",(n,e)=>{let t=n.map(r=>e.getStringValue(e.evaluateExpression(r,e.solution)));return z.BuiltInFunctions.concat(...t)});K.functionHandlers.set("replace",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=e.getStringValue(e.evaluateExpression(n[2],e.solution)),s=n[3]?e.getStringValue(e.evaluateExpression(n[3],e.solution)):void 0;return z.BuiltInFunctions.replace(t,r,i,s)});K.functionHandlers.set("regex",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=n[2]?e.getStringValue(e.evaluateExpression(n[2],e.solution)):void 0;return z.BuiltInFunctions.regex(t,r,i)});K.functionHandlers.set("encode_for_uri",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.encodeForUri(t)});K.functionHandlers.set("datatype",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.datatype(t).value});K.functionHandlers.set("bound",(n,e)=>{let t=n[0];if(t.type==="variable"&&t.name){let r=e.solution.get(t.name);return z.BuiltInFunctions.bound(r)}return!0});var JR=a((n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.isIRI(t)},"isIriHandler");K.functionHandlers.set("isiri",JR);K.functionHandlers.set("isuri",JR);K.functionHandlers.set("isblank",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.isBlank(t)});K.functionHandlers.set("isliteral",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.isLiteral(t)});K.functionHandlers.set("isnumeric",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.isNumeric(t)});K.functionHandlers.set("haslangdir",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.hasLangdir(t)});K.functionHandlers.set("istriple",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.isTriple(t)});K.functionHandlers.set("sameterm",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution),r=e.getTermFromExpression(n[1],e.solution);return z.BuiltInFunctions.sameTerm(t,r)});K.functionHandlers.set("abs",(n,e)=>{let t=Number(e.getStringValue(e.evaluateExpression(n[0],e.solution)));return z.BuiltInFunctions.abs(t)});K.functionHandlers.set("round",(n,e)=>{let t=Number(e.getStringValue(e.evaluateExpression(n[0],e.solution)));return z.BuiltInFunctions.round(t)});K.functionHandlers.set("ceil",(n,e)=>{let t=Number(e.getStringValue(e.evaluateExpression(n[0],e.solution)));return z.BuiltInFunctions.ceil(t)});K.functionHandlers.set("floor",(n,e)=>{let t=Number(e.getStringValue(e.evaluateExpression(n[0],e.solution)));return z.BuiltInFunctions.floor(t)});K.functionHandlers.set("rand",()=>z.BuiltInFunctions.rand());K.functionHandlers.set("parsedate",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.parseDate(t)});K.functionHandlers.set("datebefore",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.dateBefore(t,r)});K.functionHandlers.set("dateafter",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.dateAfter(t,r)});K.functionHandlers.set("dateinrange",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=e.getStringValue(e.evaluateExpression(n[2],e.solution));return z.BuiltInFunctions.dateInRange(t,r,i)});K.functionHandlers.set("datediffminutes",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.dateDiffMinutes(t,r)});K.functionHandlers.set("datediffhours",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution));return z.BuiltInFunctions.dateDiffHours(t,r)});var El=a((n,e,t)=>(r,i)=>{let s=i.evaluateExpression(r[0],i.solution);return e&&i.isYearMonthDurationValue(s)?e(s):t&&i.isDayTimeDurationValue(s)?t(s):n(i.getStringValue(s))},"createDateTimeAccessor"),ZR=El(z.BuiltInFunctions.year.bind(z.BuiltInFunctions),z.BuiltInFunctions.durationYears.bind(z.BuiltInFunctions),null);K.functionHandlers.set("year",ZR);K.functionHandlers.set("years",ZR);var eC=El(z.BuiltInFunctions.month.bind(z.BuiltInFunctions),z.BuiltInFunctions.durationMonths.bind(z.BuiltInFunctions),null);K.functionHandlers.set("month",eC);K.functionHandlers.set("months",eC);var tC=El(z.BuiltInFunctions.day.bind(z.BuiltInFunctions),null,z.BuiltInFunctions.durationDays.bind(z.BuiltInFunctions));K.functionHandlers.set("day",tC);K.functionHandlers.set("days",tC);K.functionHandlers.set("hours",El(z.BuiltInFunctions.hours.bind(z.BuiltInFunctions),null,z.BuiltInFunctions.durationHours.bind(z.BuiltInFunctions)));K.functionHandlers.set("minutes",El(z.BuiltInFunctions.minutes.bind(z.BuiltInFunctions),null,z.BuiltInFunctions.durationMinutes.bind(z.BuiltInFunctions)));K.functionHandlers.set("seconds",El(z.BuiltInFunctions.seconds.bind(z.BuiltInFunctions),null,z.BuiltInFunctions.durationSeconds.bind(z.BuiltInFunctions)));K.functionHandlers.set("timezone",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.timezone(t)});K.functionHandlers.set("tz",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.tz(t)});K.functionHandlers.set("adjust",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution),r=n.length>1?e.evaluateExpression(n[1],e.solution):void 0;return z.BuiltInFunctions.adjust(t,r)});K.functionHandlers.set("now",()=>z.BuiltInFunctions.now());var rC=a((n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.xsdDateTime(e.getStringValue(t))},"dateTimeHandler");K.functionHandlers.set("datetime",rC);K.functionHandlers.set("xsd:datetime",rC);var nC=a((n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.xsdInteger(e.getStringValue(t))},"integerHandler");K.functionHandlers.set("integer",nC);K.functionHandlers.set("xsd:integer",nC);var iC=a((n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.xsdDecimal(e.getStringValue(t))},"decimalHandler");K.functionHandlers.set("decimal",iC);K.functionHandlers.set("xsd:decimal",iC);var sC=a((n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.xsdDayTimeDuration(e.getStringValue(t))},"dayTimeDurationHandler");K.functionHandlers.set("daytimeduration",sC);K.functionHandlers.set("xsd:daytimeduration",sC);K.functionHandlers.set("durationtodays",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationToDays(t)});K.functionHandlers.set("durationtohours",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationToHours(t)});K.functionHandlers.set("durationtominutes",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationToMinutes(t)});K.functionHandlers.set("durationtoseconds",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationToSeconds(t)});K.functionHandlers.set("durationdays",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationDays(t)});K.functionHandlers.set("durationhours",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationHours(t)});K.functionHandlers.set("durationminutes",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationMinutes(t)});K.functionHandlers.set("durationseconds",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationSeconds(t)});K.functionHandlers.set("durationyears",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationYears(t)});K.functionHandlers.set("durationmonths",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution);return z.BuiltInFunctions.durationMonths(t)});K.functionHandlers.set("datetimediff",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution),r=e.evaluateExpression(n[1],e.solution);return z.BuiltInFunctions.dateTimeDiff(t,r)});K.functionHandlers.set("datetimeadd",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution),r=e.evaluateExpression(n[1],e.solution);return z.BuiltInFunctions.dateTimeAdd(t,r)});K.functionHandlers.set("datetimesubtract",(n,e)=>{let t=e.evaluateExpression(n[0],e.solution),r=e.evaluateExpression(n[1],e.solution);return z.BuiltInFunctions.dateTimeSubtract(t,r)});K.functionHandlers.set("mstominutes",(n,e)=>{let t=Number(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.msToMinutes(t)});K.functionHandlers.set("mstohours",(n,e)=>{let t=Number(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.msToHours(t)});K.functionHandlers.set("mstoseconds",(n,e)=>{let t=Number(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.msToSeconds(t)});K.functionHandlers.set("md5",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.md5(t)});K.functionHandlers.set("sha1",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.sha1(t)});K.functionHandlers.set("sha256",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.sha256(t)});K.functionHandlers.set("sha384",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.sha384(t)});K.functionHandlers.set("sha512",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution));return z.BuiltInFunctions.sha512(t)});K.functionHandlers.set("subject",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.subject(t)});K.functionHandlers.set("predicate",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.predicate(t)});K.functionHandlers.set("object",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution);return z.BuiltInFunctions.object(t)});K.functionHandlers.set("triple",(n,e)=>{let t=e.getTermFromExpression(n[0],e.solution),r=e.getTermFromExpression(n[1],e.solution),i=e.getTermFromExpression(n[2],e.solution);return z.BuiltInFunctions.triple(t,r,i)});K.functionHandlers.set("days_between",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=new Date(t),s=new Date(r);return Math.floor((s.getTime()-i.getTime())/(1440*60*1e3))});K.functionHandlers.set("minutes_between",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=new Date(t),s=new Date(r);return Math.floor((s.getTime()-i.getTime())/(60*1e3))});K.functionHandlers.set("hours_between",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=new Date(t);return(new Date(r).getTime()-i.getTime())/(3600*1e3)});K.functionHandlers.set("age_days",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=new Date(t);return Math.floor((new Date().getTime()-r.getTime())/(1440*60*1e3))});K.functionHandlers.set("week_number",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=new Date(t),i=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate()));i.setUTCDate(i.getUTCDate()+4-(i.getUTCDay()||7));let s=new Date(Date.UTC(i.getUTCFullYear(),0,1));return Math.ceil(((i.getTime()-s.getTime())/(1440*60*1e3)+1)/7)});K.functionHandlers.set("format_date",(n,e)=>{let t=e.getStringValue(e.evaluateExpression(n[0],e.solution)),r=e.getStringValue(e.evaluateExpression(n[1],e.solution)),i=new Date(t);return r.replace("YYYY",String(i.getFullYear())).replace("MM",String(i.getMonth()+1).padStart(2,"0")).replace("DD",String(i.getDate()).padStart(2,"0")).replace("HH",String(i.getHours()).padStart(2,"0")).replace("mm",String(i.getMinutes()).padStart(2,"0")).replace("ss",String(i.getSeconds()).padStart(2,"0"))});K.functionHandlers.set("exo:eval",()=>{let{ExoQLEvalDisabledError:n}=Mf();throw new n})});var Sm=v(Tl=>{"use strict";Object.defineProperty(Tl,"__esModule",{value:!0});Tl.FilterExecutor=Tl.FilterExecutorError=void 0;var vt=wm(),z7=oC(),SS=Ce(),bs=Ge(),Tr=class extends Error{static{a(this,"FilterExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="FilterExecutorError"}};Tl.FilterExecutorError=Tr;var vS=class{static{a(this,"FilterExecutor")}constructor(){this.existsEvaluator=null,this.tripleStore=null,this.uuidCache=new Map}setExistsEvaluator(e){this.existsEvaluator=e}setTripleStore(e){this.tripleStore=e,this.uuidCache.clear()}async*execute(e,t){let r=this.expressionContainsExists(e.expression);for await(let i of t)try{let s;r?s=await this.evaluateExpressionAsync(e.expression,i):s=this.evaluateExpression(e.expression,i),s===!0&&(yield i)}catch{continue}}expressionContainsExists(e){if(!e||typeof e!="object")return!1;if(e.type==="exists")return!0;if(e.type==="logical")return e.operands.some(t=>this.expressionContainsExists(t));if(e.type==="comparison"){let t=e;return this.expressionContainsExists(t.left)||this.expressionContainsExists(t.right)}if(e.type==="arithmetic"){let t=e;return this.expressionContainsExists(t.left)||this.expressionContainsExists(t.right)}if(e.type==="in"){let t=e;return this.expressionContainsExists(t.expression)||t.list.some(r=>this.expressionContainsExists(r))}if(e.type==="function"||e.type==="functionCall"){let t=e;return Array.isArray(t.args)?t.args.some(r=>this.expressionContainsExists(r)):!1}return!1}async executeAll(e,t){let r=[];async function*i(){for(let s of t)yield s}a(i,"generator");for await(let s of this.execute(e,i()))r.push(s);return r}evaluateExpression(e,t){let r=e;if("termType"in e)switch(r.termType){case"Variable":return t.get(r.value);case"Literal":{let i=r.value,s=r.datatype,o=typeof s=="string"?s:s?.value;return o&&i.length>0&&this.shouldPreserveDatatype(o)?new bs.Literal(i,new SS.IRI(o)):i}case"NamedNode":return r.value;default:throw new Tr(`Unsupported termType: ${String(r.termType)}`)}switch(e.type){case"comparison":return this.evaluateComparison(e,t);case"logical":return this.evaluateLogical(e,t);case"arithmetic":return this.evaluateArithmetic(e,t);case"function":case"functionCall":return this.evaluateFunction(e,t);case"variable":return t.get(e.name);case"literal":{let i=e;return i.datatype&&i.value.length>0&&this.shouldPreserveDatatype(i.datatype)?new bs.Literal(i.value,new SS.IRI(i.datatype)):i.value}case"in":return this.evaluateIn(e,t);case"exists":throw new Tr("EXISTS expressions require async evaluation. Use evaluateExpressionAsync instead.");default:throw new Tr(`Unsupported expression type: ${e.type}`)}}async evaluateExpressionAsync(e,t){if(!this.expressionContainsExists(e))return this.evaluateExpression(e,t);if(e.type==="exists")return this.evaluateExists(e,t);if(e.type==="logical")return this.evaluateLogicalAsync(e,t);if(e.type==="comparison"){let r=e,i=await this.evaluateExpressionAsync(r.left,t),s=await this.evaluateExpressionAsync(r.right,t);return vt.BuiltInFunctions.compare(i,s,r.operator)}return e.type==="in"?this.evaluateInAsync(e,t):e.type==="function"||e.type==="functionCall"?this.evaluateFunctionAsync(e,t):this.evaluateExpression(e,t)}async evaluateExists(e,t){if(!this.existsEvaluator)throw new Tr("EXISTS evaluator not set. Call setExistsEvaluator before evaluating EXISTS expressions.");let r=await this.existsEvaluator(e.pattern,t);return e.negated?!r:r}async evaluateLogicalAsync(e,t){if(e.operator==="!"){let i=await this.evaluateExpressionAsync(e.operands[0],t);return vt.BuiltInFunctions.logicalNot(i)}let r=[];for(let i of e.operands){let s=await this.evaluateExpressionAsync(i,t);r.push(s)}if(e.operator==="&&")return vt.BuiltInFunctions.logicalAnd(r);if(e.operator==="||")return vt.BuiltInFunctions.logicalOr(r);throw new Tr(`Unknown logical operator: ${String(e.operator)}`)}async evaluateInAsync(e,t){let r=await this.evaluateExpressionAsync(e.expression,t),i=!1;for(let s of e.list){let o=await this.evaluateExpressionAsync(s,t);if(vt.BuiltInFunctions.compare(r,o,"=")){i=!0;break}}return e.negated?!i:i}async evaluateFunctionAsync(e,t){let r=e,i=this.extractFunctionName(r.function),s=r.args??[];if(i==="if"){if(s.length!==3)throw new Tr("IF requires exactly 3 arguments");let l=await this.evaluateExpressionAsync(s[0],t);return this.toBoolean(l)?this.evaluateExpressionAsync(s[1],t):this.evaluateExpressionAsync(s[2],t)}if(i==="coalesce"){for(let l of s)try{let u=await this.evaluateExpressionAsync(l,t);if(u!=null)return u}catch{continue}return}let o=[];for(let l of s){let u=await this.evaluateExpressionAsync(l,t);o.push(this.wrapAsLiteralExpression(u))}let c={...r,args:o};return this.evaluateFunction(c,t)}wrapAsLiteralExpression(e){return e==null?{type:"literal",value:""}:typeof e=="object"&&"termType"in e?e:e instanceof SS.IRI||e instanceof bs.Literal?{type:"literal",value:e.value}:typeof e=="number"||typeof e=="boolean"||typeof e=="string"?{type:"literal",value:e}:{type:"literal",value:String(e)}}evaluateComparison(e,t){let r=this.evaluateExpression(e.left,t),i=this.evaluateExpression(e.right,t);return vt.BuiltInFunctions.compare(r,i,e.operator)}evaluateLogical(e,t){if(e.operator==="!"){let i=this.evaluateExpression(e.operands[0],t);return vt.BuiltInFunctions.logicalNot(i)}let r=e.operands.map(i=>this.evaluateExpression(i,t));if(e.operator==="&&")return vt.BuiltInFunctions.logicalAnd(r);if(e.operator==="||")return vt.BuiltInFunctions.logicalOr(r);throw new Tr(`Unknown logical operator: ${String(e.operator)}`)}evaluateIn(e,t){let r=this.evaluateExpression(e.expression,t),i=e.list.some(s=>{let o=this.evaluateExpression(s,t);return vt.BuiltInFunctions.compare(r,o,"=")});return e.negated?!i:i}evaluateArithmetic(e,t){let r=this.evaluateExpression(e.left,t),i=this.evaluateExpression(e.right,t);if(e.operator==="-"&&this.isDateValue(r)&&this.isDateValue(i))return vt.BuiltInFunctions.dateDiff(r,i);if(e.operator==="-"&&this.isTimeValue(r)&&this.isTimeValue(i))return vt.BuiltInFunctions.timeDiff(r,i);if(e.operator==="-"&&this.isDateTimeValue(r)&&this.isDateTimeValue(i))return vt.BuiltInFunctions.dateTimeDiff(r,i);if(e.operator==="+"&&this.isDateValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.dateAdd(r,i);if(e.operator==="-"&&this.isDateValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.dateSubtract(r,i);if(e.operator==="+"&&this.isDateValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.dateAddYearMonth(r,i);if(e.operator==="-"&&this.isDateValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.dateSubtractYearMonth(r,i);if(e.operator==="+"&&this.isDateTimeValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.dateTimeAdd(r,i);if(e.operator==="-"&&this.isDateTimeValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.dateTimeSubtract(r,i);if(e.operator==="+"&&this.isDateTimeValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.dateTimeAddYearMonth(r,i);if(e.operator==="-"&&this.isDateTimeValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.dateTimeSubtractYearMonth(r,i);if(e.operator==="+"&&this.isDayTimeDurationValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.durationAdd(r,i);if(e.operator==="-"&&this.isDayTimeDurationValue(r)&&this.isDayTimeDurationValue(i))return vt.BuiltInFunctions.durationSubtract(r,i);if(e.operator==="*"&&this.isDayTimeDurationValue(r)&&!this.isDayTimeDurationValue(i)){let c=this.toNumericValue(i);return vt.BuiltInFunctions.durationMultiply(r,c)}if(e.operator==="*"&&!this.isDayTimeDurationValue(r)&&this.isDayTimeDurationValue(i)){let c=this.toNumericValue(r);return vt.BuiltInFunctions.durationMultiply(i,c)}if(e.operator==="/"&&this.isDayTimeDurationValue(r)&&!this.isDayTimeDurationValue(i)){let c=this.toNumericValue(i);if(c===0)throw new Tr("Division by zero");return vt.BuiltInFunctions.durationDivide(r,c)}if(e.operator==="+"&&this.isYearMonthDurationValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.yearMonthDurationAdd(r,i);if(e.operator==="-"&&this.isYearMonthDurationValue(r)&&this.isYearMonthDurationValue(i))return vt.BuiltInFunctions.yearMonthDurationSubtract(r,i);let s=this.toNumericValue(r),o=this.toNumericValue(i);switch(e.operator){case"+":return s+o;case"-":return s-o;case"*":return s*o;case"/":if(o===0)throw new Tr("Division by zero");return s/o;default:throw new Tr(`Unknown arithmetic operator: ${String(e.operator)}`)}}shouldPreserveDatatype(e){return e==="http://www.w3.org/2001/XMLSchema#dateTime"||e==="http://www.w3.org/2001/XMLSchema#date"||e==="http://www.w3.org/2001/XMLSchema#time"||e==="http://www.w3.org/2001/XMLSchema#dayTimeDuration"||e==="http://www.w3.org/2001/XMLSchema#yearMonthDuration"||e==="http://www.w3.org/2001/XMLSchema#duration"}isDayTimeDurationValue(e){return e instanceof bs.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#dayTimeDuration":!1}isYearMonthDurationValue(e){return e instanceof bs.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#yearMonthDuration":!1}toNumericValue(e){if(typeof e=="number")return e;if(e instanceof bs.Literal){let t=e.datatype?.value||"";if(t.includes("#integer")||t.includes("#decimal")||t.includes("#double")||t.includes("#float")){let i=parseFloat(e.value);if(!isNaN(i))return i}let r=parseFloat(e.value);if(!isNaN(r))return r}if(typeof e=="string"){let t=parseFloat(e);if(!isNaN(t))return t}if(e&&typeof e=="object"&&"value"in e){let t=parseFloat(String(e.value));if(!isNaN(t))return t}throw new Tr(`Cannot convert to number: ${e}`)}isDateTimeValue(e){if(e instanceof bs.Literal){let t=e.datatype?.value||"";return t.includes("#dateTime")||t.includes("#date")?!0:/^\d{4}-\d{2}-\d{2}(T|\s)/.test(e.value)}return typeof e=="string"?/^\d{4}-\d{2}-\d{2}(T|\s)/.test(e):!1}isDateValue(e){return e instanceof bs.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#date":!1}isTimeValue(e){return e instanceof bs.Literal?(e.datatype?.value||"")==="http://www.w3.org/2001/XMLSchema#time":!1}evaluateFunction(e,t){let r=e,i=this.extractFunctionName(r.function),s=this.evaluateSpecialFunction(i,r.args,t);if(s!==void 0)return s.value;let o=z7.functionHandlers.get(i);if(!o)throw new Tr(`Unknown function: ${i}`);let c={evaluateExpression:a((l,u)=>this.evaluateExpression(l,u),"evaluateExpression"),getTermFromExpression:a((l,u)=>this.getTermFromExpression(l,u),"getTermFromExpression"),getStringValue:a(l=>this.getStringValue(l),"getStringValue"),solution:t,isYearMonthDurationValue:a(l=>this.isYearMonthDurationValue(l),"isYearMonthDurationValue"),isDayTimeDurationValue:a(l=>this.isDayTimeDurationValue(l),"isDayTimeDurationValue")};return o(r.args,c)}extractFunctionName(e){if(typeof e=="string")return e.toLowerCase();if(e&&typeof e=="object"&&"value"in e){let t=e.value;return((t.includes("#")?t.split("#").pop():t.split("/").pop())||t).toLowerCase()}throw new Tr(`Unknown function format: ${String(e)}`)}evaluateSpecialFunction(e,t,r){switch(e){case"coalesce":for(let i of t)try{let s=this.evaluateExpression(i,r);if(s!=null)return{value:s}}catch{continue}return{value:void 0};case"if":{if(!t||t.length!==3)throw new Tr("IF requires exactly 3 arguments");let i=this.evaluateExpression(t[0],r);return{value:this.toBoolean(i)?this.evaluateExpression(t[1],r):this.evaluateExpression(t[2],r)}}case"byuuid":return{value:this.evaluateByUUID({type:"function",function:"byuuid",args:t},r)};default:return}}getTermFromExpression(e,t){let r=e;if(r.type==="variable"&&r.name)return t.get(r.name)}getStringValue(e){return e==null?"":typeof e=="object"&&"value"in e?String(e.value):String(e)}toBoolean(e){if(typeof e=="boolean")return e;if(typeof e=="number")return!isNaN(e)&&e!==0;if(typeof e=="string")return e.length>0;if(e instanceof bs.Literal){let t=e.datatype?.value||"";if(t.includes("#boolean"))return e.value==="true"||e.value==="1";if(t.includes("#integer")||t.includes("#decimal")||t.includes("#double")||t.includes("#float")){let r=parseFloat(e.value);return!isNaN(r)&&r!==0}return e.value.length>0}return!!e}evaluateByUUID(e,t){if(!e.args||e.args.length!==1)throw new Tr("exo:byUUID requires exactly 1 argument (UUID string)");let r=this.evaluateExpression(e.args[0],t),i=this.getStringValue(r);if(!i)return;let s=i.toLowerCase();if(this.uuidCache.has(s))return this.uuidCache.get(s)??void 0;if(!this.tripleStore){this.uuidCache.set(s,null);return}if(this.tripleStore.findSubjectsByUUIDSync){let o=this.tripleStore.findSubjectsByUUIDSync(s);if(o.length===0){this.uuidCache.set(s,null);return}let c=o[0];return this.uuidCache.set(s,c),c}this.uuidCache.set(s,null)}cacheUUIDResult(e,t){let r=e.toLowerCase();this.uuidCache.set(r,t)}getCachedUUID(e){let t=e.toLowerCase();if(this.uuidCache.has(t))return this.uuidCache.get(t)}};Tl.FilterExecutor=vS});var TS=v(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.OptionalExecutor=void 0;var ES=class{static{a(this,"OptionalExecutor")}async*execute(e,t){let r=[];for await(let s of e)r.push(s);let i=[];for await(let s of t)i.push(s);yield*this.hashJoin(r,i)}async executeAll(e,t){let r=[];for(let i of this.hashJoin(e,t))r.push(i);return r}*hashJoin(e,t){if(e.length===0)return;if(t.length===0){yield*e;return}let r=new Set;for(let l of e)for(let u of l.variables())r.add(u);let i=new Set;for(let l of t)for(let u of l.variables())i.add(u);let s=[];for(let l of r)i.has(l)&&s.push(l);if(s.sort(),s.length===0){yield*this.nestedLoopJoin(e,t);return}let o="\0",c=new Map;for(let l of t){let u=this.computeHashKey(l,s,o),f=c.get(u);f||(f=[],c.set(u,f)),f.push(l)}for(let l of e){let u=this.computeHashKey(l,s,o),f=c.get(u),d=!1;if(f)for(let h of f){let p=l.merge(h);p!==null&&(yield p,d=!0)}d||(yield l)}}computeHashKey(e,t,r){let i=[];for(let s of t){let o=e.get(s);i.push(o!==void 0?o.toString():"UNBOUND")}return i.join(r)}*nestedLoopJoin(e,t){for(let r of e){let i=!1;for(let s of t){let o=r.merge(s);o!==null&&(yield o,i=!0)}i||(yield r)}}};vm.OptionalExecutor=ES});var xS=v(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.UnionExecutor=void 0;var AS=class{static{a(this,"UnionExecutor")}async*execute(e,t){let r=new Set;for await(let i of e){let s=this.getSolutionKey(i);r.has(s)||(r.add(s),yield i)}for await(let i of t){let s=this.getSolutionKey(i);r.has(s)||(r.add(s),yield i)}}async executeAll(e,t){let r=[];async function*i(){for(let o of e)yield o}a(i,"generateLeft");async function*s(){for(let o of t)yield o}a(s,"generateRight");for await(let o of this.execute(i(),s()))r.push(o);return r}getSolutionKey(e){let t=e.toJSON();return Object.keys(t).sort().map(i=>`${i}=${t[i]}`).join("|")}};Em.UnionExecutor=AS});var aC=v(Tm=>{"use strict";Object.defineProperty(Tm,"__esModule",{value:!0});Tm.MinusExecutor=void 0;var IS=class{static{a(this,"MinusExecutor")}async*execute(e,t){let r=[];for await(let s of e)r.push(s);let i=[];for await(let s of t)i.push(s);for(let s of r){let o=!1;for(let c of i)if(this.areCompatible(s,c)){o=!0;break}o||(yield s)}}async executeAll(e,t){let r=[];async function*i(){for(let o of e)yield o}a(i,"generateLeft");async function*s(){for(let o of t)yield o}a(s,"generateRight");for await(let o of this.execute(i(),s()))r.push(o);return r}areCompatible(e,t){let r=e.variables(),i=new Set(t.variables()),s=r.filter(o=>i.has(o));if(s.length===0)return!1;for(let o of s){let c=e.get(o),l=t.get(o);if(c===void 0||l===void 0||c.toString()!==l.toString())return!1}return!0}};Tm.MinusExecutor=IS});var lC=v(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});Al.ValuesExecutor=Al.ValuesExecutorError=void 0;var K7=gs(),cC=Ce(),X7=Ge(),Am=class extends Error{static{a(this,"ValuesExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="ValuesExecutorError"}};Al.ValuesExecutorError=Am;var RS=class{static{a(this,"ValuesExecutor")}async*execute(e){if(e.bindings.length!==0)for(let t of e.bindings)yield this.createSolutionMapping(t)}async executeAll(e){let t=[];for await(let r of this.execute(e))t.push(r);return t}createSolutionMapping(e){let t=new K7.SolutionMapping;for(let[r,i]of Object.entries(e)){let s=this.toRDFTerm(i);t.set(r,s)}return t}toRDFTerm(e){if(e.type==="iri")return new cC.IRI(e.value);if(e.type==="literal")return new X7.Literal(e.value,e.datatype?new cC.IRI(e.datatype):void 0,e.language,e.direction);throw new Am(`Unknown term type: ${e.type}`)}};Al.ValuesExecutor=RS});var CS=v(Il=>{"use strict";Object.defineProperty(Il,"__esModule",{value:!0});Il.CustomAggregateRegistry=Il.CustomAggregateError=void 0;var xl=class extends Error{static{a(this,"CustomAggregateError")}constructor(e,t){super(e),this.iri=t,this.name="CustomAggregateError"}};Il.CustomAggregateError=xl;var xm=class n{static{a(this,"CustomAggregateRegistry")}constructor(){this.aggregates=new Map}static getInstance(){return n.instance||(n.instance=new n),n.instance}static resetInstance(){n.instance&&n.instance.clear(),n.instance=null}register(e,t){if(!e||typeof e!="string")throw new xl("Aggregate IRI must be a non-empty string");if(!t||typeof t.init!="function"||typeof t.step!="function"||typeof t.finalize!="function")throw new xl("Aggregate must implement init(), step(), and finalize() methods",e);if(this.aggregates.has(e))throw new xl(`Aggregate with IRI "${e}" is already registered`,e);this.aggregates.set(e,t)}unregister(e){return this.aggregates.delete(e)}get(e){return this.aggregates.get(e)}has(e){return this.aggregates.has(e)}getRegisteredIris(){return Array.from(this.aggregates.keys())}clear(){this.aggregates.clear()}get size(){return this.aggregates.size}};Il.CustomAggregateRegistry=xm;xm.instance=null});var OS=v(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.BUILT_IN_AGGREGATES=st.modeAggregate=st.stddevAggregate=st.varianceAggregate=st.medianAggregate=st.EXO_AGGREGATE_NS=void 0;st.getNumericValue=Im;st.createDecimalLiteral=Ri;st.createDoubleLiteral=J7;st.createPercentileAggregate=tc;var rc=Ge(),Rl=Ce(),Y7=new Rl.IRI("http://www.w3.org/2001/XMLSchema#decimal"),Q7=new Rl.IRI("http://www.w3.org/2001/XMLSchema#double");st.EXO_AGGREGATE_NS="https://exocortex.my/ontology/agg#";function Im(n){return n==null?NaN:typeof n=="number"?n:typeof n=="string"?parseFloat(n):n instanceof rc.Literal?parseFloat(n.value):n instanceof Rl.IRI?NaN:typeof n=="boolean"?n?1:0:NaN}a(Im,"getNumericValue");function Ri(n){return new rc.Literal(String(n),Y7)}a(Ri,"createDecimalLiteral");function J7(n){return new rc.Literal(String(n),Q7)}a(J7,"createDoubleLiteral");st.medianAggregate={init(){return{values:[]}},step(n,e){let t=n,r=Im(e);isNaN(r)||t.values.push(r)},finalize(n){let e=n,{values:t}=e;if(t.length===0)return Ri(0);let r=[...t].sort((o,c)=>o-c),i=Math.floor(r.length/2),s=r.length%2!==0?r[i]:(r[i-1]+r[i])/2;return Ri(s)}};st.varianceAggregate={init(){return{values:[]}},step(n,e){let t=n,r=Im(e);isNaN(r)||t.values.push(r)},finalize(n){let e=n,{values:t}=e;if(t.length===0)return Ri(0);let r=t.reduce((s,o)=>s+o,0)/t.length,i=t.reduce((s,o)=>s+Math.pow(o-r,2),0)/t.length;return Ri(i)}};st.stddevAggregate={init(){return{values:[]}},step(n,e){st.varianceAggregate.step(n,e)},finalize(n){let e=n,{values:t}=e;if(t.length===0)return Ri(0);let r=t.reduce((s,o)=>s+o,0)/t.length,i=t.reduce((s,o)=>s+Math.pow(o-r,2),0)/t.length;return Ri(Math.sqrt(i))}};st.modeAggregate={init(){return{counts:new Map,values:new Map}},step(n,e){if(e==null)return;let t=n,r=String(e instanceof rc.Literal||e instanceof Rl.IRI?e.value:e),i=t.counts.get(r)||0;t.counts.set(r,i+1),t.values.set(r,e)},finalize(n){let e=n;if(e.counts.size===0)return new rc.Literal(" ",new Rl.IRI("http://www.w3.org/2001/XMLSchema#string"));let t="",r=0;for(let[o,c]of e.counts)c>r&&(r=c,t=o);let i=e.values.get(t);if(i instanceof rc.Literal)return i;let s=parseFloat(t);return isNaN(s)?new rc.Literal(t,new Rl.IRI("http://www.w3.org/2001/XMLSchema#string")):Ri(s)}};function tc(n){let e=Math.max(0,Math.min(100,n))/100;return{init(){return{values:[],percentile:e}},step(t,r){let i=t,s=Im(r);isNaN(s)||i.values.push(s)},finalize(t){let r=t,{values:i}=r;if(i.length===0)return Ri(0);let s=[...i].sort((d,h)=>d-h),o=r.percentile*(s.length-1),c=Math.floor(o),l=Math.ceil(o);if(c===l)return Ri(s[c]);let u=o-c,f=s[c]*(1-u)+s[l]*u;return Ri(f)}}}a(tc,"createPercentileAggregate");st.BUILT_IN_AGGREGATES={[`${st.EXO_AGGREGATE_NS}median`]:st.medianAggregate,[`${st.EXO_AGGREGATE_NS}variance`]:st.varianceAggregate,[`${st.EXO_AGGREGATE_NS}stddev`]:st.stddevAggregate,[`${st.EXO_AGGREGATE_NS}mode`]:st.modeAggregate,[`${st.EXO_AGGREGATE_NS}percentile25`]:tc(25),[`${st.EXO_AGGREGATE_NS}percentile50`]:tc(50),[`${st.EXO_AGGREGATE_NS}percentile75`]:tc(75),[`${st.EXO_AGGREGATE_NS}percentile90`]:tc(90),[`${st.EXO_AGGREGATE_NS}percentile95`]:tc(95),[`${st.EXO_AGGREGATE_NS}percentile99`]:tc(99)}});var dC=v(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});Cl.AggregateExecutor=Cl.AggregateExecutorError=void 0;var yr=Ge(),FS=Ce(),Z7=Sm(),eU=CS(),tU=OS(),uC=new FS.IRI("http://www.w3.org/2001/XMLSchema#integer"),nc=new FS.IRI("http://www.w3.org/2001/XMLSchema#decimal"),_s=new FS.IRI("http://www.w3.org/2001/XMLSchema#string");function fC(n){return typeof n=="object"&&n.type==="custom"}a(fC,"isCustomAggregation");var jf=class extends Error{static{a(this,"AggregateExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="AggregateExecutorError"}};Cl.AggregateExecutorError=jf;var PS=class{static{a(this,"AggregateExecutor")}constructor(){this.filterExecutor=new Z7.FilterExecutor}execute(e,t){let r=this.groupSolutions(t,e.variables),i=[];for(let[s,o]of r.entries()){let c=new Map;for(let f of e.variables)if(o.length>0){let d=o[0].get(f);d&&c.set(f,d)}for(let f of e.aggregates){let d=this.computeAggregate(f.expression,o);c.set(f.variable,d)}let{SolutionMapping:l}=gs(),u=new l;for(let[f,d]of c.entries())u.set(f,d);i.push(u)}if(i.length===0&&e.aggregates.length>0){let s=this.createEmptyAggregateResult(e);s&&i.push(s)}return i}groupSolutions(e,t){let r=new Map;if(t.length===0)return r.set("",e),r;for(let i of e){let s=this.computeGroupKey(i,t),o=r.get(s);o?o.push(i):r.set(s,[i])}return r}computeGroupKey(e,t){return t.map(r=>{let i=e.get(r);return i?this.termToString(i):""}).join("|")}termToString(e){if(e&&typeof e=="object"){if("value"in e)return String(e.value);if("id"in e)return String(e.id)}return String(e)}computeAggregate(e,t){if(fC(e.aggregation))return this.computeCustomAggregate(e,t);let r=this.extractValues(e,t),i=e.aggregation;switch(i){case"count":{let s=this.computeCount(r,e.distinct);return new yr.Literal(String(s),uC)}case"sum":{let s=this.computeSum(r);return new yr.Literal(String(s),nc)}case"avg":{let s=this.computeAvg(r);return new yr.Literal(String(s),nc)}case"min":{let s=this.computeMin(r);return s===void 0?new yr.Literal("",_s):typeof s=="number"?new yr.Literal(String(s),nc):new yr.Literal(String(s),_s)}case"max":{let s=this.computeMax(r);return s===void 0?new yr.Literal("",_s):typeof s=="number"?new yr.Literal(String(s),nc):new yr.Literal(String(s),_s)}case"group_concat":{let s=this.computeGroupConcat(r,e.separator||" ",e.distinct);return new yr.Literal(s||" ",_s)}case"sample":{let s=this.computeSample(r,e.distinct);return s===void 0?new yr.Literal(" ",_s):typeof s=="number"?new yr.Literal(String(s),nc):new yr.Literal(String(s),_s)}default:{let s=i;throw new jf(`Unknown aggregation function: ${s}`)}}}computeCustomAggregate(e,t){let i=e.aggregation.iri,o=eU.CustomAggregateRegistry.getInstance().get(i);if(o||(o=tU.BUILT_IN_AGGREGATES[i]),!o)throw new jf(`Unknown custom aggregate function: ${i}. Register it with CustomAggregateRegistry.getInstance().register() or use a built-in aggregate.`);let c=o.init();for(let l of t){let u=null;if(e.expression){let f=this.evaluateExpression(e.expression,l);f!==void 0&&(u=f)}else u=1;o.step(c,u)}return o.finalize(c)}extractValues(e,t){if(!e.expression)return t.map(()=>1);let r=[];for(let i of t){let s=this.evaluateExpression(e.expression,i);s!=null&&r.push(s)}return r}evaluateExpression(e,t){if(e.type==="variable"){let r=t.get(e.name);return r==null?void 0:typeof r=="number"||typeof r=="string"||typeof r=="boolean"?r:typeof r=="object"&&"value"in r?r.value:r}if(e.type==="literal")return e.value;try{return this.filterExecutor.evaluateExpression(e,t)}catch{return}}computeCount(e,t){return t?new Set(e.map(r=>String(r))).size:e.length}computeSum(e){return e.map(r=>parseFloat(String(r))).filter(r=>!isNaN(r)).reduce((r,i)=>r+i,0)}computeAvg(e){let t=e.map(r=>parseFloat(String(r))).filter(r=>!isNaN(r));return t.length===0?0:t.reduce((r,i)=>r+i,0)/t.length}computeMin(e){if(e.length===0)return;let t=e.map(i=>parseFloat(String(i))).filter(i=>!isNaN(i));if(t.length>0)return Math.min(...t);let r=e.map(i=>String(i));return r.reduce((i,s)=>s<i?s:i,r[0])}computeMax(e){if(e.length===0)return;let t=e.map(i=>parseFloat(String(i))).filter(i=>!isNaN(i));if(t.length>0)return Math.max(...t);let r=e.map(i=>String(i));return r.reduce((i,s)=>s>i?s:i,r[0])}computeGroupConcat(e,t,r){let i=e.map(s=>String(s));return r&&(i=[...new Set(i)]),i.join(t)}computeSample(e,t){if(e.length===0)return;if(t){let s=[...new Set(e.map(l=>String(l)))];if(s.length===0)return;let o=s[0],c=parseFloat(o);return isNaN(c)?o:c}let r=e[0];if(typeof r=="number")return r;let i=parseFloat(String(r));return isNaN(i)?String(r):i}createEmptyAggregateResult(e){let{SolutionMapping:t}=gs(),r=new t;for(let i of e.aggregates){let s=i.expression.aggregation;if(fC(s)){r.set(i.variable,new yr.Literal("0",nc));continue}switch(s){case"count":r.set(i.variable,new yr.Literal("0",uC));break;case"sum":case"avg":r.set(i.variable,new yr.Literal("0",nc));break;case"group_concat":r.set(i.variable,new yr.Literal(" ",_s));break;case"min":case"max":case"sample":r.set(i.variable,new yr.Literal("",_s));break;default:r.set(i.variable,new yr.Literal("",_s))}}return r}};Cl.AggregateExecutor=PS});var kS=v(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.ConstructExecutor=void 0;var rU=zn(),ic=Ce(),DS=Ge(),LS=Mt(),nU=df(),NS=class{static{a(this,"ConstructExecutor")}async execute(e,t){let r=[],i=new Set;for(let s of t)for(let o of e)try{let c=this.instantiateTriple(o,s),l=`${c.subject.toString()}|${c.predicate.toString()}|${c.object.toString()}`;i.has(l)||(i.add(l),r.push(c))}catch{continue}return r}instantiateTriple(e,t){if(this.isPropertyPath(e.predicate))throw new Error("Property paths are not supported in CONSTRUCT templates");let r=this.instantiateElement(e.subject,t),i=this.instantiateElement(e.predicate,t),s=this.instantiateElement(e.object,t);return new rU.Triple(r,i,s)}isPropertyPath(e){return e.type==="path"}instantiateElement(e,t){if(e.type==="variable"){let r=t.get(e.value);if(!r)throw new Error(`Unbound variable: ${e.value}`);return r}if(e.type==="iri")return new ic.IRI(e.value);if(e.type==="literal")return new DS.Literal(e.value,e.datatype?new ic.IRI(e.datatype):void 0,e.language);if(e.type==="blank")return new LS.BlankNode(e.value);if(e.type==="quoted")return this.instantiateQuotedTriple(e,t);throw new Error(`Unknown element type: ${e.type}`)}instantiateQuotedTriple(e,t){let r=this.instantiateQuotedSubject(e.subject,t),i=this.instantiateQuotedPredicate(e.predicate,t),s=this.instantiateQuotedObject(e.object,t);return new nU.QuotedTriple(r,i,s)}instantiateQuotedSubject(e,t){if(e.type==="variable"){let r=t.get(e.value);if(!r)throw new Error(`Unbound variable in quoted triple subject: ${e.value}`);if(r instanceof DS.Literal)throw new Error("Literals cannot appear in quoted triple subject position");return r}if(e.type==="iri")return new ic.IRI(e.value);if(e.type==="blank")return new LS.BlankNode(e.value);if(e.type==="quoted")return this.instantiateQuotedTriple(e,t);throw new Error(`Invalid element type for quoted triple subject: ${e.type}`)}instantiateQuotedPredicate(e,t){if(e.type==="variable"){let r=t.get(e.value);if(!r)throw new Error(`Unbound variable in quoted triple predicate: ${e.value}`);if(!(r instanceof ic.IRI))throw new Error("Quoted triple predicate must be an IRI");return r}return new ic.IRI(e.value)}instantiateQuotedObject(e,t){if(e.type==="variable"){let i=t.get(e.value);if(!i)throw new Error(`Unbound variable in quoted triple object: ${e.value}`);return i}if(e.type==="iri")return new ic.IRI(e.value);if(e.type==="blank")return new LS.BlankNode(e.value);if(e.type==="literal")return new DS.Literal(e.value,e.datatype?new ic.IRI(e.datatype):void 0,e.language);if(e.type==="quoted")return this.instantiateQuotedTriple(e,t);let r=e;throw new Error(`Invalid element type for quoted triple object: ${r.type}`)}};Rm.ConstructExecutor=NS});var pC=v(Ol=>{"use strict";Object.defineProperty(Ol,"__esModule",{value:!0});Ol.ServiceExecutor=Ol.ServiceExecutorError=void 0;var iU=gs(),hC=Ce(),sU=Ge(),oU=Mt(),sc=class extends Error{static{a(this,"ServiceExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="ServiceExecutorError"}};Ol.ServiceExecutorError=sc;var MS=class{static{a(this,"ServiceExecutor")}constructor(e={}){this.timeout=e.timeout??3e4,this.httpClient=e.httpClient??((t,r)=>fetch(t,r)),this.maxRetries=e.maxRetries??2,this.retryDelay=e.retryDelay??1e3}async*execute(e,t){try{let r=t(e.pattern),i=await this.executeRemoteQuery(e.endpoint,r);for(let s of i)yield s}catch(r){if(e.silent)return;throw r}}async executeRemoteQuery(e,t){let r;for(let i=0;i<=this.maxRetries;i++)try{let s=new AbortController,o=setTimeout(()=>s.abort(),this.timeout);try{let c=await this.httpClient(e,{method:"POST",headers:{"Content-Type":"application/sparql-query",Accept:"application/sparql-results+json"},body:t,signal:s.signal});if(!c.ok)throw new sc(`Remote SPARQL endpoint returned ${c.status}: ${c.statusText}`);let l=await c.json();return this.parseJsonResults(l)}finally{clearTimeout(o)}}catch(s){if(r=s instanceof Error?s:new Error(String(s)),this.isRetryableError(r)&&i<this.maxRetries){await this.delay(this.retryDelay);continue}throw new sc(`Failed to query remote SPARQL endpoint ${e}: ${r.message}`,r)}throw new sc(`Failed to query remote SPARQL endpoint ${e} after ${this.maxRetries+1} attempts`,r)}parseJsonResults(e){return!e.results||!Array.isArray(e.results.bindings)?[]:e.results.bindings.map(t=>this.parseBinding(t))}parseBinding(e){let t=new iU.SolutionMapping;for(let[r,i]of Object.entries(e)){let s=this.parseRDFTerm(i);t.set(r,s)}return t}parseRDFTerm(e){switch(e.type){case"uri":return new hC.IRI(e.value);case"literal":{let t=e.datatype?new hC.IRI(e.datatype):void 0;return new sU.Literal(e.value,t,e["xml:lang"])}case"bnode":return new oU.BlankNode(e.value);default:throw new sc(`Unknown RDF term type: ${e.type}`)}}isRetryableError(e){let t=e.message.toLowerCase();return!!(e.name==="AbortError"||t.includes("network")||t.includes("econnreset")||t.includes("econnrefused")||t.includes("etimedout")||t.includes("returned 5"))}delay(e){return new Promise(t=>setTimeout(t,e))}};Ol.ServiceExecutor=MS});var gC=v(Pl=>{"use strict";Object.defineProperty(Pl,"__esModule",{value:!0});Pl.GraphExecutor=Pl.GraphExecutorError=void 0;var mC=Ce(),Cm=class extends Error{static{a(this,"GraphExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="GraphExecutorError"}};Pl.GraphExecutorError=Cm;var jS=class{static{a(this,"GraphExecutor")}constructor(e){this.tripleStore=e}async*execute(e,t,r){let i=e.name;if(i.type==="iri")yield*this.executeWithGraph(e.pattern,i,t);else if(i.type==="variable")yield*this.executeWithGraphVariable(e,i,t,r);else throw new Cm(`Invalid graph name type: ${i.type}`)}async*executeWithGraph(e,t,r){let i=new mC.IRI(t.value);this.tripleStore.hasGraph&&!await this.tripleStore.hasGraph(i)||(yield*r(e,i))}async*executeWithGraphVariable(e,t,r,i){if(i){let o=i.get(t.value);if(o&&o instanceof mC.IRI){yield*this.executeWithGraph(e.pattern,{type:"iri",value:o.value},r);return}}if(!this.tripleStore.getNamedGraphs)return;let s=await this.tripleStore.getNamedGraphs();for(let o of s)for await(let c of r(e.pattern,o)){let l=c.clone();l.set(t.value,o),yield l}}};Pl.GraphExecutor=jS});var yC=v(Dl=>{"use strict";Object.defineProperty(Dl,"__esModule",{value:!0});Dl.SPARQLGenerator=Dl.SPARQLGeneratorError=void 0;var Fl=class extends Error{static{a(this,"SPARQLGeneratorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="SPARQLGeneratorError"}};Dl.SPARQLGeneratorError=Fl;var $S=class{static{a(this,"SPARQLGenerator")}collectVariables(e){let t=new Set;return this.collectVariablesFromOperation(e,t),t}generateSelect(e){let t=this.collectVariables(e),r=t.size>0?Array.from(t).map(s=>`?${s}`).join(" "):"*",i=this.generateWhereClause(e);return`SELECT ${r} WHERE {
49
49
  ${i}
50
50
  }`}generateWhereClause(e,t=2){let r=" ".repeat(t);switch(e.type){case"bgp":return this.generateBGP(e,t);case"filter":return`${this.generateWhereClause(e.input,t)}
51
51
  ${r}FILTER(${this.generateExpression(e.expression)})`;case"join":return`${this.generateWhereClause(e.left,t)}
@@ -67,7 +67,7 @@ ${r}}`}default:throw new Fl(`Unsupported operation type for SPARQL generation: $
67
67
  `)}generateTriple(e){let t=this.generateElement(e.subject),r=this.generatePredicate(e.predicate),i=this.generateElement(e.object);return`${t} ${r} ${i}`}generatePredicate(e){return"pathType"in e?this.generatePropertyPath(e):this.generateElement(e)}generatePropertyPath(e){let t=e.items.map(r=>"pathType"in r?`(${this.generatePropertyPath(r)})`:`<${r.value}>`);switch(e.pathType){case"/":return t.join("/");case"|":return t.join("|");case"^":return`^${t[0]}`;case"+":return`${t[0]}+`;case"*":return`${t[0]}*`;case"?":return`${t[0]}?`}}generateElement(e){switch(e.type){case"variable":return`?${e.value}`;case"iri":return`<${e.value}>`;case"literal":{let r=`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}"`;return e.language?r+=`@${e.language}`:e.datatype&&(r+=`^^<${e.datatype}>`),r}case"blank":return`_:${e.value}`;default:throw new Fl(`Unknown element type: ${e.type}`)}}generateValues(e,t){let r=" ".repeat(t);if(e.variables.length===0||e.bindings.length===0)return"";if(e.variables.length===1){let o=e.variables[0],c=e.bindings.map(l=>{let u=l[o];return u?this.generateValuesTerm(u):"UNDEF"}).join(" ");return`${r}VALUES ?${o} { ${c} }`}let i=e.variables.map(o=>`?${o}`).join(" "),s=e.bindings.map(o=>`(${e.variables.map(l=>{let u=o[l];return u?this.generateValuesTerm(u):"UNDEF"}).join(" ")})`);return`${r}VALUES (${i}) {
68
68
  ${s.map(o=>`${r} ${o}`).join(`
69
69
  `)}
70
- ${r}}`}generateValuesTerm(e){if(e.type==="iri")return`<${e.value}>`;let r=`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`;return e.language?r+=`@${e.language}`:e.datatype&&(r+=`^^<${e.datatype}>`),r}generateExpression(e){switch(e.type){case"variable":return`?${e.name}`;case"literal":return typeof e.value=="string"?`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:typeof e.value=="boolean"?e.value?"true":"false":String(e.value);case"comparison":return`(${this.generateExpression(e.left)} ${e.operator} ${this.generateExpression(e.right)})`;case"logical":return e.operator==="!"?`!(${this.generateExpression(e.operands[0])})`:`(${e.operands.map(t=>this.generateExpression(t)).join(` ${e.operator} `)})`;case"arithmetic":return`(${this.generateExpression(e.left)} ${e.operator} ${this.generateExpression(e.right)})`;case"function":return`${e.function.toUpperCase()}(${e.args.map(t=>this.generateExpression(t)).join(", ")})`;case"functionCall":return`${(typeof e.function=="string"?e.function:e.function.value).toUpperCase()}(${e.args.map(r=>this.generateExpression(r)).join(", ")})`;case"exists":return`${e.negated?"NOT EXISTS":"EXISTS"} { ${this.generateWhereClause(e.pattern,0)} }`;case"in":{let t=this.generateExpression(e.expression),r=e.list.map(i=>this.generateExpression(i)).join(", ");return e.negated?`${t} NOT IN (${r})`:`${t} IN (${r})`}default:throw new Fl(`Unknown expression type: ${e.type}`)}}collectVariablesFromOperation(e,t){switch(e.type){case"bgp":for(let r of e.triples)this.collectVariablesFromTriple(r,t);break;case"filter":this.collectVariablesFromOperation(e.input,t),this.collectVariablesFromExpression(e.expression,t);break;case"join":case"leftjoin":case"union":case"minus":this.collectVariablesFromOperation(e.left,t),this.collectVariablesFromOperation(e.right,t);break;case"values":for(let r of e.variables)t.add(r);break;case"project":for(let r of e.variables)t.add(r);this.collectVariablesFromOperation(e.input,t);break;case"extend":t.add(e.variable),this.collectVariablesFromOperation(e.input,t);break;case"orderby":case"slice":case"distinct":case"reduced":this.collectVariablesFromOperation(e.input,t);break;case"group":for(let r of e.variables)t.add(r);for(let r of e.aggregates)t.add(r.variable);this.collectVariablesFromOperation(e.input,t);break;case"subquery":this.collectVariablesFromOperation(e.query,t);break}}collectVariablesFromTriple(e,t){e.subject.type==="variable"&&t.add(e.subject.value),"type"in e.predicate&&e.predicate.type==="variable"&&t.add(e.predicate.value),e.object.type==="variable"&&t.add(e.object.value)}collectVariablesFromExpression(e,t){switch(e.type){case"variable":t.add(e.name);break;case"comparison":case"arithmetic":this.collectVariablesFromExpression(e.left,t),this.collectVariablesFromExpression(e.right,t);break;case"logical":for(let r of e.operands)this.collectVariablesFromExpression(r,t);break;case"function":case"functionCall":for(let r of e.args)this.collectVariablesFromExpression(r,t);break;case"exists":this.collectVariablesFromOperation(e.pattern,t);break;case"in":this.collectVariablesFromExpression(e.expression,t);for(let r of e.list)this.collectVariablesFromExpression(r,t);break}}};Dl.SPARQLGenerator=$S});var Nl=v(kn=>{"use strict";var aU=kn&&kn.__createBinding||(Object.create?(function(n,e,t,r){r===void 0&&(r=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[t]},"get")}),Object.defineProperty(n,r,i)}):(function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]})),cU=kn&&kn.__setModuleDefault||(Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e}),b3=kn&&kn.__importStar||(function(){var n=a(function(e){return n=Object.getOwnPropertyNames||function(t){var r=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[r.length]=i);return r},n(e)},"ownKeys");return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=n(e),i=0;i<r.length;i++)r[i]!=="default"&&aU(t,e,r[i]);return cU(t,e),t}})();Object.defineProperty(kn,"__esModule",{value:!0});kn.QueryExecutor=kn.ExoQLQueryExecutor=kn.QueryExecutorError=void 0;var lU=sS(),uU=Sm(),fU=TS(),dU=xS(),hU=a3(),pU=l3(),mU=d3(),gU=kS(),yU=p3(),bU=g3(),_U=y3(),wU=Ce(),SU=Ge(),vU=pm(),qr="http://www.w3.org/2001/XMLSchema#",EU=new Set([`${qr}integer`,`${qr}decimal`,`${qr}float`,`${qr}double`,`${qr}nonPositiveInteger`,`${qr}negativeInteger`,`${qr}long`,`${qr}int`,`${qr}short`,`${qr}byte`,`${qr}nonNegativeInteger`,`${qr}unsignedLong`,`${qr}unsignedInt`,`${qr}unsignedShort`,`${qr}unsignedByte`,`${qr}positiveInteger`]),Ll=class extends Error{static{a(this,"QueryExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="QueryExecutorError"}};kn.QueryExecutorError=Ll;var Om=class{static{a(this,"ExoQLQueryExecutor")}constructor(e,t={}){this.tripleStore=e,this.bgpExecutor=new lU.BGPExecutor(e),this.filterExecutor=new uU.FilterExecutor,this.optionalExecutor=new fU.OptionalExecutor,this.unionExecutor=new dU.UnionExecutor,this.minusExecutor=new hU.MinusExecutor,this.valuesExecutor=new pU.ValuesExecutor,this.aggregateExecutor=new mU.AggregateExecutor,this.constructExecutor=new gU.ConstructExecutor,this.serviceExecutor=new yU.ServiceExecutor(t.serviceConfig),this.graphExecutor=new bU.GraphExecutor(e),this.sparqlGenerator=new _U.SPARQLGenerator,this.filterExecutor.setExistsEvaluator(async(r,i)=>this.evaluateExistsPattern(r,i)),this.filterExecutor.setTripleStore(e)}async evaluateExistsPattern(e,t){for await(let r of this.execute(e))if(t.merge(r)!==null)return!0;return!1}async executeAll(e){let t=[];for await(let r of this.execute(e))t.push(r);return t}async*execute(e){switch(e.type){case"bgp":yield*this.executeBGP(e);break;case"filter":yield*this.executeFilter(e);break;case"join":yield*this.executeJoin(e);break;case"leftjoin":yield*this.executeLeftJoin(e);break;case"union":yield*this.executeUnion(e);break;case"minus":yield*this.executeMinus(e);break;case"values":yield*this.executeValues(e);break;case"project":yield*this.executeProject(e);break;case"orderby":yield*this.executeOrderBy(e);break;case"slice":yield*this.executeSlice(e);break;case"distinct":yield*this.executeDistinct(e);break;case"reduced":yield*this.executeReduced(e);break;case"group":yield*this.executeGroup(e);break;case"extend":yield*this.executeExtend(e);break;case"subquery":yield*this.executeSubquery(e);break;case"lateraljoin":yield*this.executeLateralJoin(e);break;case"service":yield*this.executeService(e);break;case"graph":yield*this.executeGraph(e);break;default:throw new Ll(`Unknown operation type: ${e.type}`)}}async*executeBGP(e){yield*this.bgpExecutor.execute(e)}async*executeFilter(e){let t=this.execute(e.input);yield*this.filterExecutor.execute(e,t)}async*executeJoin(e){let t=[];for await(let o of this.execute(e.left))t.push(o);if(t.length===0)return;let r=new Set;for(let o of t)for(let c of o.variables())r.add(c);let i=this.collectOperationVariables(e.right);if([...r].some(o=>i.has(o)))for(let o of t){let c=this.substituteVariables(e.right,o);for await(let l of this.execute(c)){let u=o.merge(l);u!==null&&(yield u)}}else{let o=[];for await(let c of this.execute(e.right))o.push(c);for(let c of t)for(let l of o){let u=c.merge(l);u!==null&&(yield u)}}}async*executeLeftJoin(e){let t=[];for await(let o of this.execute(e.left))t.push(o);let r=[];for await(let o of this.execute(e.right))r.push(o);async function*i(){for(let o of t)yield o}a(i,"leftGen");async function*s(){for(let o of r)yield o}a(s,"rightGen"),yield*this.optionalExecutor.execute(i(),s())}async*executeUnion(e){let t=[];for await(let o of this.execute(e.left))t.push(o);let r=[];for await(let o of this.execute(e.right))r.push(o);async function*i(){for(let o of t)yield o}a(i,"leftGen");async function*s(){for(let o of r)yield o}a(s,"rightGen"),yield*this.unionExecutor.execute(i(),s())}async*executeMinus(e){let t=[];for await(let o of this.execute(e.left))t.push(o);let r=[];for await(let o of this.execute(e.right))r.push(o);async function*i(){for(let o of t)yield o}a(i,"leftGen");async function*s(){for(let o of r)yield o}a(s,"rightGen"),yield*this.minusExecutor.execute(i(),s())}async*executeValues(e){yield*this.valuesExecutor.execute(e)}async*executeProject(e){let{SolutionMapping:t}=await Promise.resolve().then(()=>b3(gs())),r=new Set(e.variables);for await(let i of this.execute(e.input)){let s=new t;for(let o of i.variables())if(r.has(o)){let c=i.get(o);c!==void 0&&s.set(o,c)}yield s}}async*executeOrderBy(e){let t=[];for await(let r of this.execute(e.input))t.push(r);t.sort((r,i)=>{for(let s of e.comparators){let o=this.getExpressionValue(s.expression,r),c=this.getExpressionValue(s.expression,i),l=0;if(o===void 0&&c===void 0?l=0:o===void 0?l=1:c===void 0?l=-1:typeof o=="number"&&typeof c=="number"?l=o-c:l=String(o).localeCompare(String(c)),s.descending&&(l=-l),l!==0)return l}return 0});for(let r of t)yield r}async*executeSlice(e){let t=0,r=e.offset??0,i=e.limit;for await(let s of this.execute(e.input)){if(t>=r){if(i!==void 0&&t-r>=i)break;yield s}t++}}async*executeDistinct(e){let t=new Set;for await(let r of this.execute(e.input)){let i=this.getSolutionKey(r);t.has(i)||(t.add(i),yield r)}}async*executeReduced(e){let t=new Set;for await(let r of this.execute(e.input)){let i=this.getSolutionKey(r);t.has(i)||(t.add(i),yield r)}}async*executeGroup(e){let t=[];for await(let i of this.execute(e.input))t.push(i);let r=this.aggregateExecutor.execute(e,t);if(e.having&&e.having.length>0)for(let i of r)e.having.every(o=>this.filterExecutor.evaluateExpression(o,i)===!0)&&(yield i);else for(let i of r)yield i}async*executeExtend(e){let t=e.expression.type!=="aggregate"&&this.filterExecutor.expressionContainsExists(e.expression);for await(let r of this.execute(e.input)){let i=r.clone(),s=t?await this.evaluateExtendExpressionAsync(e.expression,r):this.evaluateExtendExpression(e.expression,r);s!==void 0&&i.set(e.variable,s),yield i}}async*executeSubquery(e){yield*this.execute(e.query)}async*executeLateralJoin(e){let t=[];for await(let r of this.execute(e.left))t.push(r);for(let r of t){let i=this.substituteVariables(e.right,r);for await(let s of this.execute(i)){let o=r.merge(s);o!==null&&(yield o)}}}substituteVariables(e,t){let r=JSON.parse(JSON.stringify(e));return this.substituteInOperation(r,t)}substituteInOperation(e,t){if(!e||typeof e!="object")return e;let r=e;return e.type==="bgp"&&e.triples?(e.triples=e.triples.map(i=>this.substituteInTriple(i,t)),e):(r.input&&(r.input=this.substituteInOperation(r.input,t)),r.left&&(r.left=this.substituteInOperation(r.left,t)),r.right&&(r.right=this.substituteInOperation(r.right,t)),r.pattern&&(r.pattern=this.substituteInOperation(r.pattern,t)),r.query&&(r.query=this.substituteInOperation(r.query,t)),r.where&&(r.where=this.substituteInOperation(r.where,t)),r.expression&&this.substituteInExpression(r.expression,t),e)}substituteInExpression(e,t){if(!(!e||typeof e!="object")){if(e.type==="exists"&&e.pattern&&(e.pattern=this.substituteInOperation(e.pattern,t)),e.left&&this.substituteInExpression(e.left,t),e.right&&this.substituteInExpression(e.right,t),e.operands)for(let r of e.operands)this.substituteInExpression(r,t);if(e.args)for(let r of e.args)this.substituteInExpression(r,t);if(e.expression&&this.substituteInExpression(e.expression,t),e.list)for(let r of e.list)this.substituteInExpression(r,t)}}substituteInTriple(e,t){return{subject:this.substituteInTripleElement(e.subject,t),predicate:e.predicate,object:this.substituteInTripleElement(e.object,t)}}substituteInTripleElement(e,t){if(e&&e.type==="variable"){let r=t.get(e.value);if(r!=null){let i=r;if(r instanceof wU.IRI||i.termType==="NamedNode")return{type:"iri",value:r.value};if(i.termType==="Literal"||typeof i.value=="string")return{type:"literal",value:i.value,datatype:i.datatype?.value??i._datatype?.value,language:i.language??i._language}}}return e}async*executeService(e){yield*this.serviceExecutor.execute(e,t=>this.sparqlGenerator.generateSelect(t))}async*executeGraph(e){let t=async function*(r,i){let s=this.currentGraphContext;this.currentGraphContext=i;try{r.type==="bgp"&&i&&this.tripleStore.matchInGraph?yield*this.executeBGPInGraph(r,i):yield*this.execute(r)}finally{this.currentGraphContext=s}}.bind(this);yield*this.graphExecutor.execute(e,t)}async*executeBGPInGraph(e,t){if(e.triples.length===0){let{SolutionMapping:r}=await Promise.resolve().then(()=>b3(gs()));yield new r;return}yield*this.bgpExecutor.executeInGraph(e,t)}evaluateExtendExpression(e,t){if(e.type!=="aggregate")try{return this.filterExecutor.evaluateExpression(e,t)}catch{return}}async evaluateExtendExpressionAsync(e,t){if(e.type!=="aggregate")try{return await this.filterExecutor.evaluateExpressionAsync(e,t)}catch{return}}getExpressionValue(e,t){if(e.type==="variable"){let r=t.get(e.name);if(!r)return;if(r instanceof SU.Literal){let i=r.datatype?.value;if(i===`${qr}dayTimeDuration`)try{return vU.DateTimeFunctions.parseDayTimeDuration(r.value)}catch{return r.value}if(i&&EU.has(i)){let s=parseFloat(r.value);if(!Number.isNaN(s))return s}return r.value}return r.value??r.id??String(r)}if(e.type==="literal")return e.value}collectOperationVariables(e){let t=new Set;return this.collectVarsFromOperation(e,t),t}collectVarsFromOperation(e,t){if(!e||typeof e!="object")return;let r=e;if(r.type==="bgp"&&r.triples)for(let i of r.triples)this.collectVarsFromElement(i.subject,t),i.predicate?.type!=="path"&&this.collectVarsFromElement(i.predicate,t),this.collectVarsFromElement(i.object,t);if(r.type==="values"&&r.variables)for(let i of r.variables)t.add(i);r.expression&&this.collectVarsFromExpressionTree(r.expression,t),r.type==="extend"&&r.variable&&t.add(r.variable),r.input&&this.collectVarsFromOperation(r.input,t),r.left&&this.collectVarsFromOperation(r.left,t),r.right&&this.collectVarsFromOperation(r.right,t),r.pattern&&this.collectVarsFromOperation(r.pattern,t),r.query&&this.collectVarsFromOperation(r.query,t),r.where&&this.collectVarsFromOperation(r.where,t)}collectVarsFromElement(e,t){if(!e||typeof e!="object")return;let r=e;r.type==="variable"&&t.add(r.value),r.type==="quoted"&&(this.collectVarsFromElement(r.subject,t),this.collectVarsFromElement(r.predicate,t),this.collectVarsFromElement(r.object,t))}collectVarsFromExpressionTree(e,t){if(!e||typeof e!="object")return;let r=e;if(r.type==="variable"&&r.name&&t.add(r.name),r.type==="exists"&&r.pattern&&this.collectVarsFromOperation(r.pattern,t),r.left&&this.collectVarsFromExpressionTree(r.left,t),r.right&&this.collectVarsFromExpressionTree(r.right,t),r.operands)for(let i of r.operands)this.collectVarsFromExpressionTree(i,t);if(r.args)for(let i of r.args)this.collectVarsFromExpressionTree(i,t);if(r.expression&&this.collectVarsFromExpressionTree(r.expression,t),r.list)for(let i of r.list)this.collectVarsFromExpressionTree(i,t)}getSolutionKey(e){let t=e.toJSON();return Object.keys(t).sort().map(i=>`${i}=${t[i]}`).join("|")}isConstructQuery(e){return e.type==="construct"}async executeConstruct(e){if(e.type!=="construct")throw new Ll("executeConstruct requires a CONSTRUCT operation");let t=await this.executeAll(e.where);return this.constructExecutor.execute(e.template,t)}isAskQuery(e){return e.type==="ask"}async executeAsk(e){if(e.type!=="ask")throw new Ll("executeAsk requires an ASK operation");for await(let t of this.execute(e.where))return!0;return!1}};kn.ExoQLQueryExecutor=Om;kn.QueryExecutor=Om});var x3=v(so=>{"use strict";var TU=so&&so.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},AU=so&&so.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},US;Object.defineProperty(so,"__esModule",{value:!0});so.CommandResolver=void 0;var xU=Ve(),IU=el(),Jt=Ce(),$t=Ge(),V=Ht(),_3=Wo(),w3=uf(),RU=rl(),CU=Pp(),kl=Zb(),Pm=hR(),OU=dl(),PU=pl(),FU=Nl(),$f=10,Fm="exo__Asset",DU=$f+1,S3="08cec529-90eb-4d43-88de-ceecccea12b0",LU=V.Namespace.EXOCMD.term("SubstitutionToken").value,v3=new Set(["today","todayStart","targetFolder","target","randomUUIDv4","nowTimestamp","nowDate","nowYear","nowMonth","userInputLabel","userInput","targetProperty","labelAsArray","groundingTargetClass","targetClassSelf"]);function NU(n,e){return`__SUBSTITUTE__${n}__${e}__`}a(NU,"buildSubstitutionMarker");function kU(n,e,t){let r=(0,RU.utf8ToBase64)(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");return`__SUBSTITUTE_P__${n}__${e}__${r}__`}a(kU,"buildParameterisedMarker");var E3="3f28af98-c031-4718-8ba2-44ad0b012c52",MU=V.Namespace.EXOCMD.term("TokenInvocation").value,T3="29e2c8f8-2d27-4e58-b467-2e85d46f8122",A3="universal-default-template",jU=new Set(["today","todayStart","nowTimestamp","nowDate","nowYear","nowMonth"]),BS=US=class{static{a(this,"CommandResolver")}clearUniversalCache(){this._universalCacheReady=!1,this._universalCacheValue=null,(0,Pm.clearUniversalDefault)()}constructor(e,t=IU.NullLogger){this.tripleStore=e,this.logger=t,this.cache=new Map,this.multiCache=new Map,this._ancestorDepthCache=new Map,this._legacyPropertyDefaultsWarnedGroundings=new Set,this._universalCacheReady=!1,this._universalCacheValue=null}async resolveForAssetMulti(e,t,r){if(t.length===0)return[];let i=[...t].sort().join(","),s=`${e}::${i}::${r??""}`,o=this.multiCache.get(s);if(o)return o;let c=await this.expandClassHierarchy(t),l=new Map;for(let[h,p]of c){let y=await this.resolveForAsset(e,h,r);for(let g of y){let b=this.getBindingPriority(g.binding)===2?p:0,_=l.get(g.binding.id);(!_||b<_.depth)&&l.set(g.binding.id,{rc:g,depth:b})}}let u=new Set;for(let{rc:h}of l.values())if(h.binding.overrides)for(let p of h.binding.overrides)u.add(p);let f=Array.from(l.entries()).filter(([h])=>!u.has(h)).map(([,h])=>h);f.sort((h,p)=>{let y=this.getBindingPriority(h.rc.binding),g=this.getBindingPriority(p.rc.binding);return y!==g?y-g:h.depth!==p.depth?h.depth-p.depth:(h.rc.binding.order??100)-(p.rc.binding.order??100)});let d=f.map(h=>h.rc);return this.multiCache.set(s,d),d}async expandClassHierarchy(e){let t=new Map;for(let c of e){if(c===Fm){t.set(c,new Set);continue}let l=[];try{l=await this.getClassAncestors(c)}catch{l=[]}t.set(c,new Set(l))}let r=a(c=>{for(let l of e)if(l!==c&&t.get(l)?.has(c)&&!t.get(c)?.has(l))return!0;return!1},"isAncestorOfSibling"),i=e.filter(c=>!r(c)),s=new Map,o=a((c,l)=>{let u=s.get(c);(u===void 0||l<u)&&s.set(c,l)},"setMin");for(let c of i){if(o(c,0),this.looksLikeUUID(c))try{let u=await this.resolveLabelByUID(c);u&&o(u,0)}catch{}if(c===Fm)continue;let l=[];try{l=await this.getClassAncestorsWithDepth(c)}catch{l=[]}for(let{ref:u,depth:f}of l)o(u,f)}return s.has(Fm)||s.set(Fm,DU),s}async resolveForAsset(e,t,r){let i=`${e}:${t}:${r??""}`,s=this.cache.get(i);if(s)return s;let o=await this.findBindings(t,r,e),c=[];for(let l of o){let u=await this.loadCommand(l.commandRef,{targetClass:l.targetClass});if(!u)continue;let f=l.precondition?{...u,precondition:l.precondition}:u;c.push({command:f,binding:l})}return c.sort((l,u)=>{let f=this.getBindingPriority(l.binding),d=this.getBindingPriority(u.binding);return f!==d?f-d:(l.binding.order??100)-(u.binding.order??100)}),this.cache.set(i,c),c}async loadCommand(e,t){let r=await this.findSubjectByUID(e);if(!r||(await this.tripleStore.match(r,V.Namespace.RDF.term("type"),V.Namespace.EXOCMD.term("Command"))).length===0)return null;let s=await this.getLiteralValue(r,V.Namespace.EXO.term("Asset_label"))??"Unknown Command",o=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_labelTemplate")),c=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_icon")),l=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_confirmMessage")),u=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_successMessage")),f=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_category")),d=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_openInSameTab")),h=d!==null&&String(d).trim().toLowerCase()==="true",p=await this.loadLinkedPrecondition(r),y=await this.loadLinkedGrounding(r,0,t);return y?{id:e,name:s,labelTemplate:o??void 0,icon:c??void 0,precondition:p??void 0,grounding:y,confirmMessage:l??void 0,successMessage:u??void 0,category:f??void 0,openInSameTab:h||void 0}:null}async findBindings(e,t,r){let i=await this.tripleStore.match(void 0,V.Namespace.RDF.term("type"),V.Namespace.EXOCMD.term("CommandBinding")),s=[];for(let o of i){let c=o.subject,l=await this.loadBindingDefinition(c);l&&this.bindingMatches(l,e,t,r)&&s.push(l)}return s}async findPaletteEnabledCommands(){let e=await this.tripleStore.match(void 0,V.Namespace.RDF.term("type"),V.Namespace.EXOCMD.term("Command")),t=[],r=new Set;for(let i of e){let s=i.subject;if((await this.getLiteralValue(s,V.Namespace.EXOCMD.term("Command_paletteEnabled")))?.toLowerCase()!=="true")continue;let c=await this.getLiteralValue(s,V.Namespace.EXO.term("Asset_uid"));if(!c){this.logger.warn(`[CommandResolver] paletteEnabled command at ${s.value} has no exo__Asset_uid \u2014 skipped`);continue}let l=await this.loadCommand(c);if(!l){this.logger.warn(`[CommandResolver] paletteEnabled command ${c} could not be loaded (missing grounding?) \u2014 skipped`);continue}let u=await this.getLiteralValue(s,V.Namespace.EXOCMD.term("Command_paletteId")),f=await this.getLiteralValue(s,V.Namespace.EXOCMD.term("Command_cliName")),d=u??f??c;if(r.has(d)){this.logger.warn(`[CommandResolver] duplicate paletteId "${d}" \u2014 first registration wins, dropping ${c}`);continue}r.add(d),t.push({command:l,paletteId:d})}return t}invalidateCache(){this.cache.clear(),this.multiCache.clear(),this._ancestorDepthCache.clear()}async resolveLabel(e,t){if(!e.labelTemplate)return e.name;let r=e.labelTemplate,i=this.extractPlaceholders(e.labelTemplate);for(let{full:s,body:o}of i){let c=await this.evaluateSelectSnippet(o,t);r=r.replace(s,c)}return r}extractPlaceholders(e){let t=[],r=0;for(;r<e.length;)if(e[r]==="{"){let i=1,s=r+1;for(;s<e.length&&i>0;)e[s]==="{"?i++:e[s]==="}"&&i--,s++;if(i===0){let o=e.slice(r,s),c=e.slice(r+1,s-1);t.push({full:o,body:c})}r=s}else r++;return t}async evaluateSelectSnippet(e,t){try{let r=e.replace(/\$target/g,`<${t}>`),s=new OU.ExoQLParser().parse(r),c=new PU.ExoQLAlgebraTranslator().translate(s),u=await new FU.ExoQLQueryExecutor(this.tripleStore).executeAll(c);if(u.length===0)return"";let f=u[0],d=f.variables();if(d.length===0)return"";let h=f.get(d[0]);return h?h instanceof $t.Literal||h instanceof Jt.IRI?h.value:String(h):""}catch{return""}}async loadBindingDefinition(e){let t=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_uid"));if(!t)return null;let r=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_label"))??"",i=await this.getLinkedUID(e,V.Namespace.EXOCMD.term("CommandBinding_command"));if(!i)return null;let s=await this.getLinkedValue(e,V.Namespace.EXOCMD.term("CommandBinding_targetClass")),o=await this.getLinkedValue(e,V.Namespace.EXOCMD.term("CommandBinding_targetPrototype")),c=await this.getLinkedValue(e,V.Namespace.EXOCMD.term("CommandBinding_targetAsset"));if(!s&&!o&&!c)return null;let l=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBinding_position")),u=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBinding_order")),f=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBinding_variant")),d=f!==null?this.coerceVariant(f,t):void 0,h=await this.loadLinkedPreconditionFromProperty(e,V.Namespace.EXOCMD.term("CommandBinding_precondition")),p=await this.loadLinkedStyle(e,t),y=await this.getLinkedUIDs(e,V.Namespace.EXOCMD.term("CommandBinding_overrides"));return{id:t,label:r,commandRef:i,targetClass:s??void 0,targetPrototype:o??void 0,targetAsset:c??void 0,position:l??void 0,order:u?parseInt(u,10):void 0,variant:d,precondition:h??void 0,style:p??void 0,overrides:y.length>0?y:void 0}}async loadLinkedStyle(e,t){let r=await this.tripleStore.match(e,V.Namespace.EXOCMD.term("CommandBinding_style"),void 0);if(r.length>0){let s=r[0].object,o=null;if(s instanceof Jt.IRI)o=s;else if(s instanceof $t.Literal){let c=this.normalizeWikilink(s.value);o=await this.findSubjectByUID(c)}if(o){let c=await this.loadStyleAsset(o);if(c)return c}this.logger.warn(this.capWarning(`CommandBinding ${t}: style reference unresolved, falling back to inline variant`))}let i=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBinding_variant"));if(i!==null){let s=this.coerceVariant(i,t);if(s!==void 0)return{id:`inline:${t}`,label:"",variant:s,inline:!0}}return null}async loadStyleAsset(e){let t=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_uid"));if(!t)return null;let r=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_label"))??"",i=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_variant")),s=i!==null?this.coerceVariant(i,t):void 0,o=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_showIcon")),c=this.coerceBoolean(o),l=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_labelClass")),u=l!==null?this.coerceLabelClass(l,t):void 0,f=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_ariaLabel")),d=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_tooltip")),h=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_keyboardShortcut")),p=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_source")),y=p!==null?this.coerceStyleSource(p,t):void 0;return{id:t,label:r,variant:s,showIcon:c,labelClass:u,ariaLabel:f??void 0,tooltip:d??void 0,keyboardShortcut:h??void 0,source:y,inline:!1}}coerceVariant(e,t){if(e==null)return;let r=String(e).trim().toLowerCase();if(r!==""){if(kl.COMMAND_VARIANT_VALUES.includes(r))return r;this.logger.warn(this.capWarning(`CommandBindingStyle variant "${r}" not in whitelist [${kl.COMMAND_VARIANT_VALUES.join(",")}]; dropped (asset ${t})`))}}coerceLabelClass(e,t){if(e==null)return;let r=String(e).trim().toLowerCase();if(r!==""){if(kl.LABEL_CLASS_VALUES.includes(r))return r;this.logger.warn(this.capWarning(`CommandBindingStyle labelClass "${r}" not in whitelist [${kl.LABEL_CLASS_VALUES.join(",")}]; dropped (asset ${t})`))}}coerceStyleSource(e,t){if(e==null)return;let r=String(e).trim().toLowerCase();if(r!==""){if(kl.STYLE_SOURCE_VALUES.includes(r))return r;this.logger.warn(this.capWarning(`CommandBindingStyle source "${r}" not in whitelist [${kl.STYLE_SOURCE_VALUES.join(",")}]; dropped (asset ${t})`))}}coerceBoolean(e){if(e===null)return;let t=e.trim().toLowerCase();if(t==="true")return!0;if(t==="false")return!1}capWarning(e){return e.length<=200?e:e.slice(0,197)+"..."}bindingMatches(e,t,r,i){return!!(e.targetAsset&&i&&this.matchesReference(e.targetAsset,i)||e.targetPrototype&&r&&this.matchesReference(e.targetPrototype,r)||e.targetClass&&t&&this.matchesReference(e.targetClass,t))}matchesReference(e,t){let r=this.normalizeWikilink(e),i=this.normalizeWikilink(t);if(r===i)return!0;let s=this.extractPathBasename(i);if(s&&s===r)return!0;let o=this.extractPathBasename(r);if(o&&o===i)return!0;let c=this.extractAlias(t);if(c&&r===c)return!0;let l=this.extractAlias(e);return!!(l&&l===i)}extractPathBasename(e){let t=e.match(/\/([^/]+)\.md$/);return t?t[1]:null}extractAlias(e){let t=e.replace(/["'[\]]/g,"").trim(),r=t.indexOf("|");return r>=0?t.substring(r+1).trim():null}getBindingPriority(e){return e.targetAsset?0:e.targetPrototype?1:2}async loadLinkedPrecondition(e){return this.loadLinkedPreconditionFromProperty(e,V.Namespace.EXOCMD.term("Command_precondition"))}async loadLinkedPreconditionFromProperty(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object,s=null;if(i instanceof Jt.IRI)s=i;else if(i instanceof $t.Literal){let h=this.normalizeWikilink(i.value);s=await this.findSubjectByUID(h)}if(!s)return null;let o=await this.getLiteralValue(s,V.Namespace.EXO.term("Asset_uid")),c=await this.getLiteralValue(s,V.Namespace.EXO.term("Asset_label"))??"",l=await this.getLiteralValue(s,V.Namespace.EXOCMD.term("Precondition_sparqlAsk")),u=await this.getLiteralValue(s,V.Namespace.EXOCMD.term("Precondition_hostFunction")),f=await this.tripleStore.match(s,V.Namespace.EXOCMD.term("Precondition_query"),void 0),d;if(f.length>0){let h=f[0].object;if(h instanceof Jt.IRI){let p=await this.getLiteralValue(h,V.Namespace.EXO.term("Asset_uid"));p&&(d=p)}else h instanceof $t.Literal&&(d=this.normalizeWikilink(h.value))}return!o||!l&&!u&&!d?null:{id:o,label:c,...l&&{sparqlAsk:l},...u&&{hostFunction:u},...d&&{query:d}}}async loadLinkedGrounding(e,t,r){if(t>=$f)return null;let i=await this.tripleStore.match(e,V.Namespace.EXOCMD.term("Command_grounding"),void 0);if(i.length===0)return null;if(i.length===1||!r?.targetClass){let o=await this.resolveGroundingRef(i[0].object);return o?this.loadGroundingDefinition(o,t):null}for(let o of i){let c=await this.resolveGroundingRef(o.object);if(!c)continue;let l=await this.getObsidianName(c,V.Namespace.EXOCMD.term("Grounding_targetPrototype"));if(l&&this.matchesReference(l,r.targetClass))return this.loadGroundingDefinition(c,t)}this.logger.warn(`Command ${e.value}: ${i.length} groundings declared, none matched context.targetClass='${r.targetClass}' via Grounding_targetPrototype \u2014 falling back to first grounding by iteration order (legacy behaviour). Check that one grounding's Grounding_targetPrototype references this targetClass.`);let s=await this.resolveGroundingRef(i[0].object);return s?this.loadGroundingDefinition(s,t):null}async resolveGroundingRef(e){if(e instanceof Jt.IRI)return e;if(e instanceof $t.Literal){let t=this.normalizeWikilink(e.value);return await this.findSubjectByUID(t)}return null}async loadGroundingByUid(e){let t=await this.findSubjectByUID(e);return t?this.loadGroundingDefinition(t,0):null}async loadGroundingDefinition(e,t){if(t>=$f)return null;let r=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_uid"));if(!r)return null;let i=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_label"))??"",s=await this.resolveGroundingTypeReference(e);if(!s)return null;let o=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetProperty"));if(o&&this.looksLikeUUID(o)){let Y=await this.resolveLabelByUID(o);if(!Y)return this.logger.warn(`Grounding ${r}: targetProperty wikilink UID '${o}' is not resolvable to exo__Asset_label \u2014 grounding skipped (would otherwise write a UUID-named frontmatter key).`),null;o=Y}if(s===_3.GroundingType.SERVICE_CALL){let Y=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_serviceId"));Y&&(o=Y)}let c=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetValueRef")),l=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_targetValueLiteral")),u=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetValueSubstitution")),f=null;if(u&&this.looksLikeUUID(u)){let Y=await this.resolveLabelByUID(u);if(!Y)return this.logger.warn(`Grounding ${r}: targetValueSubstitution UID '${u}' is not resolvable to exo__Asset_label (SubstitutionToken instance missing or unlabelled) \u2014 grounding skipped.`),null;f=Y}else u&&(f=u);let d=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetValueQuery")),h=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_serviceCallPayload")),p=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_appendExpression")),y=await this.getObsidianWikilinkValue(e,V.Namespace.EXOCMD.term("Grounding_isDefinedBy")),g=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_sparqlUpdate")),b=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetClass"));if(b&&!this.looksLikeUUID(b)){let Y=await this.findUidByLabel(b);Y&&(b=Y)}let _=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetPrototype")),S=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_targetFolder")),x=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_linkBackProperty")),A=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_inputSchema")),T=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_incrementBy")),R=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_shiftDelta")),B;if(T!=null&&T!==""){let Y=Number.parseInt(String(T),10);Number.isFinite(Y)&&(B=Y)}let D=await this.resolvePropertyDefaults(e,r),O=await this.resolveInheritanceRules(e,r),M=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_propertyDefaults"));M!==null&&M!==""&&!this._legacyPropertyDefaultsWarnedGroundings.has(r)&&(this.logger.warn(`Grounding ${r}: deprecated exocmd__Grounding_propertyDefaults (plural) JSON predicate detected \u2014 the parser was removed in RFC v2 Phase 5 (#3167); value is ignored. Migrate to ref-form exocmd__Grounding_propertyDefault (singular) pointing to exocmd__PropertyDefault assets. See vault TBox c8f87363-d39c-45cb-9d4d-1be96d70f892 for the canonical replacement.`),this._legacyPropertyDefaultsWarnedGroundings.add(r));let $;s===_3.GroundingType.COMPOSITE&&($=await this.loadCompositeSteps(e,t+1));let Z;if(A)try{let Y=JSON.parse(A);Y?.properties&&(Z=Object.entries(Y.properties).map(([q,ee])=>{let J=ee.type,ge=J==="string"?"text":J,Ue=ee.defaultValue!==void 0?ee.defaultValue:ee.default,qe={name:q,type:ge,label:ee.title??q,required:Array.isArray(Y.required)&&Y.required.includes(q)};return Ue!=null&&(qe.defaultValue=String(Ue)),typeof ee.targetClassUid=="string"&&(qe.targetClassUid=ee.targetClassUid),qe}))}catch{}let ue=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_prefillLabelWithDate")),X=ue!==null&&String(ue).trim().toLowerCase()==="true",_e=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_labelTemplate")),le=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_direction")),fe;if(le!=null){let Y=String(le).trim().toLowerCase();Y==="forward"||Y==="rollback"?fe=Y:Y!==""&&this.logger.warn(`Grounding ${r}: exocmd__Grounding_direction value '${le}' is not 'forward' or 'rollback' \u2014 treating as undefined (will default to 'forward' at dispatch).`)}let N=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_bodyTemplate")),W=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_templateRef")),$e={id:r,label:i,type:s,targetProperty:o??void 0,targetValueRef:c??void 0,targetValueLiteral:l??void 0,targetValueSubstitution:f??void 0,targetValueQuery:d??void 0,serviceCallPayload:h??void 0,appendExpression:p??void 0,sparqlUpdate:g??void 0,steps:$,targetClass:b??void 0,targetPrototype:_??void 0,targetFolder:S??void 0,linkBackProperty:x??void 0,incrementBy:B,shiftDelta:R??void 0,propertyDefault:D.length>0?D:void 0,inheritanceRule:O.length>0?O:void 0,isDefinedBy:y??void 0,prefillLabelWithDate:X||void 0,labelTemplate:_e??void 0,direction:fe,bodyTemplate:N??void 0,templateRef:W??void 0};return Z&&($e.inputSchema=Z),$e}async loadCompositeSteps(e,t){if(t>=$f)return[];let r=await this.tripleStore.match(e,V.Namespace.EXOCMD.term("Grounding_steps"),void 0),i=[];for(let s of r){let o=null;if(s.object instanceof Jt.IRI)o=s.object;else if(s.object instanceof $t.Literal){let l=this.normalizeWikilink(s.object.value);o=await this.findSubjectByUID(l)}if(!o)continue;let c=await this.loadGroundingDefinition(o,t);c&&i.push(c)}return i}async resolvePropertyDefaults(e,t){let r=await this.resolvePropertyDefaultsForSubject(e,t,V.Namespace.EXOCMD.term("Grounding_propertyDefault")),i=await this.getUniversalCache();return i&&i.propertyDefaults.length>0?(0,Pm.mergePropertyDefaults)(i.propertyDefaults,r):r}async resolvePropertyDefaultsForSubject(e,t,r){let i=await this.tripleStore.match(e,r,void 0),s=[];for(let o of i){let c=await this.resolveRefTripleObject(o.object);if(!c)continue;let l=await this.getObsidianName(c,V.Namespace.EXOCMD.term("PropertyDefault_property"));if(!l){this.logger.warn(`Grounding ${t}: PropertyDefault asset missing exocmd__PropertyDefault_property \u2014 entry skipped.`);continue}let u=this.looksLikeUUID(l)?await this.resolveLabelByUID(l):l;if(!u){this.logger.warn(`Grounding ${t}: PropertyDefault property UID '${l}' is not resolvable to exo__Asset_label \u2014 entry skipped.`);continue}let f=await this.getObsidianName(c,V.Namespace.EXOCMD.term("PropertyDefault_value"));if(!f){this.logger.warn(`Grounding ${t}: PropertyDefault '${u}' missing exocmd__PropertyDefault_value \u2014 entry skipped.`);continue}let d=await this.resolvePropertyDefaultValue(f,t,u);d!==null&&s.push({propertyName:u,value:d})}return s}async getUniversalCache(){if(this._universalCacheReady)return this._universalCacheValue;this._universalCacheReady=!0;let e=await(0,Pm.loadUniversalDefault)();if(e)return this._universalCacheValue=e,e;let t=await this.findUniversalSingleton();if(!t)return this._universalCacheValue=null,null;let r=await this.resolvePropertyDefaultsForSubject(t,A3,V.Namespace.EXOCMD.term("Template_propertyDefault")),i=await this.resolveInheritanceRulesForSubject(t,A3,V.Namespace.EXOCMD.term("Template_inheritanceRule"));return this._universalCacheValue={propertyDefaults:r,inheritanceRules:i},this._universalCacheValue}async findUniversalSingleton(){let e=V.Namespace.EXOCMD.term("UniversalDefaultTemplate").value,t=await this.tripleStore.match(void 0,V.Namespace.EXO.term("Instance_class"),void 0),r=[];for(let i of t){let s=!1;if(i.object instanceof Jt.IRI)s=i.object.value===e||i.object.value.includes(T3);else if(i.object instanceof $t.Literal){let o=this.unwrapWikilink(i.object.value);s=o==="exocmd__UniversalDefaultTemplate"||o===T3}s&&i.subject instanceof Jt.IRI&&r.push(i.subject)}return r.length===0?null:(r.length===1||(r.sort((i,s)=>i.value.localeCompare(s.value)),this.logger.warn(`Multiple UniversalDefaultTemplate singletons found (${r.length}); selecting deterministically by lexicographic UID order: ${r[0].value}`)),r[0])}async resolveInheritanceRules(e,t){let r=await this.resolveInheritanceRulesForSubject(e,t,V.Namespace.EXOCMD.term("Grounding_inheritanceRule")),i=await this.getUniversalCache();return i&&i.inheritanceRules.length>0?(0,Pm.mergeInheritanceRules)(i.inheritanceRules,r):r}async resolveInheritanceRulesForSubject(e,t,r){let i=await this.tripleStore.match(e,r,void 0),s=[],o=t;for(let c of i){let l=await this.resolveRefTripleObject(c.object);if(!l)continue;let u=await this.resolveLabelRef(l,V.Namespace.EXOCMD.term("InheritanceRule_sourceProperty"));if(!u){this.logger.warn(`Grounding ${o}: InheritanceRule missing/unresolvable exocmd__InheritanceRule_sourceProperty \u2014 entry skipped.`);continue}let f=await this.resolveLabelRef(l,V.Namespace.EXOCMD.term("InheritanceRule_targetProperty"));if(!f){this.logger.warn(`Grounding ${o}: InheritanceRule missing/unresolvable exocmd__InheritanceRule_targetProperty \u2014 entry skipped.`);continue}let d=await this.tripleStore.match(l,V.Namespace.EXOCMD.term("InheritanceRule_targetClassCondition"),void 0),h,p;if(d.length>0){let A=await this.getObsidianName(l,V.Namespace.EXOCMD.term("InheritanceRule_targetClassCondition"));if(!A||!A.trim()){this.logger.warn(`Grounding ${o}: InheritanceRule has exocmd__InheritanceRule_targetClassCondition triple but ref is unresolvable \u2014 entire rule skipped (would otherwise apply unconditionally, broadening scope).`);continue}this.looksLikeUUID(A)?(p=A,h=await this.resolveLabelByUID(A)??void 0):h=A}let y=await this.tripleStore.match(l,V.Namespace.EXOCMD.term("InheritanceRule_targetClassExclusion"),void 0),g=[],b=[],_=!1;for(let A of y){let T=null;if(A.object instanceof Jt.IRI?T=this.iriToObsidianName(A.object.value)??A.object.value:A.object instanceof $t.Literal&&(T=this.unwrapWikilink(A.object.value)),!T){_=!0;continue}if(this.looksLikeUUID(T)){b.push(T);let R=await this.resolveLabelByUID(T);R&&g.push(R)}else g.push(T)}if(_){this.logger.warn(`Grounding ${o}: InheritanceRule has unresolvable exocmd__InheritanceRule_targetClassExclusion entry \u2014 entire rule skipped (would otherwise expand scope by silently dropping the excluded class).`);continue}let S=await this.getLiteralValue(l,V.Namespace.EXOCMD.term("InheritanceRule_priority")),x=50;if(S!==null&&S!==""){let A=Number.parseInt(String(S),10);Number.isFinite(A)&&(x=A)}s.push({sourcePropertyName:u,targetPropertyName:f,targetClassCondition:h,targetClassConditionUid:p,targetClassExclusion:g,targetClassExclusionUids:b,priority:x})}return s}async resolveRefTripleObject(e){if(e instanceof Jt.IRI)return e;if(e instanceof $t.Literal){let t=this.normalizeWikilink(e.value);return t?this.findSubjectByUID(t):null}return null}async resolveLabelRef(e,t){let r=await this.getObsidianName(e,t);return r?this.looksLikeUUID(r)?this.resolveLabelByUID(r):r:null}async resolvePropertyDefaultValue(e,t,r){if(!this.looksLikeUUID(e))return`"[[${e}]]"`;let i=await this.findSubjectByUID(e);return i?await this.assetIsTokenInvocation(i)?this.resolveTokenInvocation(i,e,t,r):await this.assetIsSubstitutionToken(i)?this.dispatchSubstitutionToken(i,e,t,r,void 0):`"[[${e}]]"`:`"[[${e}]]"`}async dispatchSubstitutionToken(e,t,r,i,s){let o=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("SubstitutionToken_resolver"));if(!o||!o.trim())return this.logger.warn(`Grounding ${r}: PropertyDefault '${i}' references SubstitutionToken '${t}' with no exocmd__SubstitutionToken_resolver \u2014 falling back to wikilink form.`),`"[[${t}]]"`;let c=o.trim();return v3.has(c)?s!==void 0?kU(c,t,s):jU.has(c)?US.parseTimeResolve(c):NU(c,t):(this.logger.warn(`Grounding ${r}: PropertyDefault '${i}' SubstitutionToken '${t}' declares unknown resolver-id '${c}' \u2014 falling back to wikilink form. Known ids: ${Array.from(v3).join(", ")}.`),`"[[${t}]]"`)}static parseTimeResolve(e){let t=new Date,r=a(i=>i<10?`0${i}`:String(i),"pad");switch(e){case"today":return t.toISOString().slice(0,10);case"todayStart":return new Date(new Date().setHours(0,0,0,0)).toISOString();case"nowTimestamp":return`${t.getFullYear()}-${r(t.getMonth()+1)}-${r(t.getDate())}T${r(t.getHours())}:${r(t.getMinutes())}:${r(t.getSeconds())}`;case"nowDate":return`${t.getFullYear()}-${r(t.getMonth()+1)}-${r(t.getDate())}`;case"nowYear":return String(t.getFullYear());case"nowMonth":return r(t.getMonth()+1);default:return""}}async resolveTokenInvocation(e,t,r,i){let s=await this.getObsidianName(e,V.Namespace.EXOCMD.term("TokenInvocation_token"));if(!s)return this.logger.warn(`Grounding ${r}: PropertyDefault '${i}' TokenInvocation '${t}' missing exocmd__TokenInvocation_token \u2014 entry skipped.`),null;let o=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("TokenInvocation_parameter"))??"";if(!this.looksLikeUUID(s))return this.logger.warn(`Grounding ${r}: PropertyDefault '${i}' TokenInvocation '${t}' references non-UUID token '${s}' \u2014 entry skipped.`),null;let c=await this.findSubjectByUID(s);return c?this.dispatchSubstitutionToken(c,s,r,i,o):(this.logger.warn(`Grounding ${r}: PropertyDefault '${i}' TokenInvocation '${t}' token ref '${s}' not found in store \u2014 entry skipped.`),null)}async assetIsTokenInvocation(e){let t=await this.tripleStore.match(e,V.Namespace.EXO.term("Instance_class"),void 0);for(let r of t)if(r.object instanceof Jt.IRI){if(r.object.value===MU||r.object.value.includes(E3))return!0}else if(r.object instanceof $t.Literal){let i=this.unwrapWikilink(r.object.value);if(i==="exocmd__TokenInvocation"||i===E3)return!0}return!1}async assetIsSubstitutionToken(e){let t=await this.tripleStore.match(e,V.Namespace.EXO.term("Instance_class"),void 0);for(let r of t)if(r.object instanceof Jt.IRI){if(r.object.value===LU||r.object.value.includes(S3))return!0}else if(r.object instanceof $t.Literal){let i=this.unwrapWikilink(r.object.value);if(i==="exocmd__SubstitutionToken"||i===S3)return!0}return!1}async resolveGroundingTypeReference(e){let t=await this.tripleStore.match(e,V.Namespace.EXOCMD.term("Grounding_type"),void 0);if(t.length===0)return null;let r=t[0].object;if(r instanceof Jt.IRI)return(0,w3.resolveGroundingTypeFromIRI)(r.value);if(r instanceof $t.Literal){let i=r.value,s=i.match(/^\[\[([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\|[^\]]*)?\]\]$/i);return s?(0,w3.resolveGroundingTypeFromIRI)(`obsidian://vault/${s[1].toLowerCase()}.md`):(this.logger.warn(`[exocmd-grounding-type-literal-form] legacy literal-string form '${i}' for exocmd__Grounding_type on <${e.value}>. Migrate to wikilink form per RFC 9d20c91f Phase 3.`),null)}return null}async findSubjectByUID(e){if(this.tripleStore.findSubjectsByUUID){let r=await this.tripleStore.findSubjectsByUUID(e);if(r.length>0)return r[0]}let t=await this.tripleStore.match(void 0,V.Namespace.EXO.term("Asset_uid"),void 0);for(let r of t)if(r.object instanceof $t.Literal&&r.object.value===e)return r.subject;return null}async getLiteralValue(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object;return i instanceof $t.Literal||i instanceof Jt.IRI?i.value:null}looksLikeUUID(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}async resolveLabelByUID(e){let t=await this.findSubjectByUID(e);return t?this.getLiteralValue(t,V.Namespace.EXO.term("Asset_label")):null}async getClassAncestors(e){return(await this.getClassAncestorsWithDepth(e)).map(r=>r.ref)}async getClassAncestorsWithDepth(e){let t=this._ancestorDepthCache.get(e);if(t)return t;let r=new Map,i=new Set,s=await this.resolveClassFileIRI(e);if(!s)return[];let o=new Set([e]),c=await this.getLiteralValue(s,V.Namespace.EXO.term("Asset_uid"));c&&o.add(c);let l=await this.getLiteralValue(s,V.Namespace.EXO.term("Asset_label"));l&&o.add(l);let u=a((h,p)=>{if(o.has(h))return;let y=r.get(h);(y===void 0||p<y)&&r.set(h,p)},"setMin"),f=[{fileIRI:s,depth:0}];for(;f.length>0;){let h=f.shift();if(!h)break;let{fileIRI:p,depth:y}=h;if(y>=$f||i.has(p.value))continue;i.add(p.value);let g=await this.tripleStore.match(p,V.Namespace.EXO.term("Class_superClass"),void 0);for(let b of g){let _=b.object;if(!(_ instanceof Jt.IRI))continue;let S=y+1,x=_.value.startsWith("obsidian://vault/"),A=this.iriToObsidianName(_.value);A&&u(A,S);let T=null;if(x?T=_:A&&(T=await this.resolveClassFileIRI(A)),!T)continue;let R=await this.getLiteralValue(T,V.Namespace.EXO.term("Asset_uid"));R&&u(R,S),i.has(T.value)||f.push({fileIRI:T,depth:S})}}let d=Array.from(r.entries()).map(([h,p])=>({ref:h,depth:p}));return this._ancestorDepthCache.set(e,d),d}async resolveClassFileIRI(e){if(this.looksLikeUUID(e))return this.findSubjectByUID(e);let t=await this.findUidByLabel(e);return t?this.findSubjectByUID(t):null}async findUidByLabel(e){let t=await this.tripleStore.match(void 0,V.Namespace.EXO.term("Asset_label"),void 0);for(let r of t)if(r.object instanceof $t.Literal&&r.object.value===e&&r.subject instanceof Jt.IRI){let i=await this.tripleStore.match(r.subject,V.Namespace.EXO.term("Asset_uid"),void 0);if(i.length>0&&i[0].object instanceof $t.Literal)return i[0].object.value}return null}async getLinkedUID(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object;if(i instanceof Jt.IRI){let s=await this.tripleStore.match(i,V.Namespace.EXO.term("Asset_uid"),void 0);return s.length>0&&s[0].object instanceof $t.Literal?s[0].object.value:i.value.split("/").pop()?.replace(".md","")??null}return i instanceof $t.Literal?this.normalizeWikilink(i.value):null}async getLinkedUIDs(e,t){let r=await this.tripleStore.match(e,t,void 0),i=[];for(let s of r){let o=s.object;if(o instanceof Jt.IRI){let c=await this.tripleStore.match(o,V.Namespace.EXO.term("Asset_uid"),void 0);if(c.length>0&&c[0].object instanceof $t.Literal)i.push(c[0].object.value);else{let l=o.value.split("/").pop()?.replace(".md","");l&&i.push(l)}}else if(o instanceof $t.Literal){let c=this.normalizeWikilink(o.value);c&&i.push(c)}}return i}async getLinkedValue(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object;return i instanceof $t.Literal?this.normalizeWikilink(i.value):i instanceof Jt.IRI?this.iriToObsidianName(i.value)??i.value:null}async getObsidianName(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object;return i instanceof $t.Literal?this.unwrapWikilink(i.value):i instanceof Jt.IRI?this.iriToObsidianName(i.value)??i.value:null}unwrapWikilink(e){if(!e)return e;let t=e.trim().replace(/^"|"$/g,"");if(t.startsWith("http://")||t.startsWith("https://"))return this.iriToObsidianName(t)??t;let r=t.match(/^\[\[([^\]|]+)\|([^\]]+)\]\]$/);if(r)return r[2].trim();let i=t.match(/^\[\[([^\]|]+)\]\]$/);if(i){let s=i[1].trim();return s.startsWith("http://")||s.startsWith("https://")?this.iriToObsidianName(s)??s:s}return t}async getObsidianWikilinkValue(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object;if(i instanceof $t.Literal)return this.resolveWikilinkAlias(i.value);if(i instanceof Jt.IRI){let s=this.iriToObsidianName(i.value);return s?`"[[${s}]]"`:i.value}return null}async resolveWikilinkAlias(e){let t=e.match(/\[\[([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\]\]/);if(!t)return e;let r=t[1],i=await this.findSubjectByUID(r);if(!i)return e;let s=await this.getLiteralValue(i,V.Namespace.EXO.term("Asset_label"));return s?e.replace(`[[${r}]]`,`[[${r}|${s}]]`):e}iriToObsidianName(e){return(0,CU.iriToObsidianName)(e)}normalizeWikilink(e){let t=e.replace(/["'[\]]/g,"").trim(),r=t.indexOf("|");return r>=0?t.substring(0,r):t}};so.CommandResolver=BS;so.CommandResolver=BS=US=TU([(0,xU.injectable)(),AU("design:paramtypes",[Object,Object])],BS)});var qS=v(VS=>{"use strict";Object.defineProperty(VS,"__esModule",{value:!0});VS.validateExoQLAllowlist=$U;var Dm=Mf();function $U(n){if(!n||typeof n!="object")return;let e=n;if(e.type==="update"){let t=n.updates??[];for(let r of t)if(r?.type==="load")throw new Dm.ExoQLForbiddenKeywordError("LOAD");throw new Dm.ExoQLForbiddenKeywordError("UPDATE")}if(e.type==="query"){if(e.from){let t=Array.isArray(e.from.default)&&e.from.default.length>0,r=Array.isArray(e.from.named)&&e.from.named.length>0;if(t||r)throw new Dm.ExoQLForbiddenKeywordError("FROM")}if(Array.isArray(e.where))for(let t of e.where)Lm(t);if(Array.isArray(e.template))for(let t of e.template)Lm(t)}}a($U,"validateExoQLAllowlist");function Lm(n){if(!n||typeof n!="object")return;if(n.type==="service")throw new Dm.ExoQLForbiddenKeywordError("SERVICE");if(Array.isArray(n.patterns))for(let t of n.patterns)Lm(t);let e=n.where;if(Array.isArray(e))for(let t of e)Lm(t)}a(Lm,"walkPatternForBannedKeywords")});var GS=v(Nm=>{"use strict";Object.defineProperty(Nm,"__esModule",{value:!0});Nm.DEFAULT_EVAL_CONFIG=void 0;Nm.DEFAULT_EVAL_CONFIG=Object.freeze({enabled:!0,maxNestedEvalCount:100,maxAggregateEvalMillis:1e4})});var km=v(WS=>{"use strict";Object.defineProperty(WS,"__esModule",{value:!0});WS.evaluateWithExoEval=HU;var UU=dl(),BU=pl(),VU=Nl(),qU=qS(),GU=GS(),WU=Mf();async function HU(n,e={}){if(typeof n!="string")throw new TypeError("evaluateWithExoEval: sparql must be a string");let r=new UU.ExoQLParser().parse(n);if((0,qU.validateExoQLAllowlist)(r),!{...GU.DEFAULT_EVAL_CONFIG,...e.config??{}}.enabled)throw new WU.ExoQLEvalDisabledError;let s="queryType"in r&&typeof r.queryType=="string"?r.queryType:"SELECT";if(!e.store)return s==="ASK"?{kind:"ask",result:!1}:s==="CONSTRUCT"?{kind:"construct",triples:[]}:{kind:"select",rows:[]};let c=new BU.ExoQLAlgebraTranslator().translate(r),l=new VU.ExoQLQueryExecutor(e.store);return l.isAskQuery(c)?{kind:"ask",result:await l.executeAsk(c)}:l.isConstructQuery(c)?{kind:"construct",triples:await l.executeConstruct(c)}:{kind:"select",rows:await l.executeAll(c)}}a(HU,"evaluateWithExoEval")});var Uf=v(Mm=>{"use strict";Object.defineProperty(Mm,"__esModule",{value:!0});Mm.liveClock=zU;Mm.frozenClock=KU;function zU(){return{now:a(()=>new Date,"now")}}a(zU,"liveClock");function KU(n){let e=new Date(n);return{now:a(()=>new Date(e.getTime()),"now")}}a(KU,"frozenClock")});var R3=v(oo=>{"use strict";var XU=oo&&oo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},YU=oo&&oo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},Bf;Object.defineProperty(oo,"__esModule",{value:!0});oo.PreconditionEvaluator=void 0;var QU=Ve(),JU=dl(),ZU=pl(),I3=Nl(),e8=km(),t8=Uf(),Vf=Bf=class{static{a(this,"PreconditionEvaluator")}constructor(e,t,r){this.hostFunctions=new Map,this.askCache=new Map,this.tripleStore=e,this.queryBodyResolver=t,this.clock=r?.clock??(0,t8.liveClock)()}async evaluate(e,t,r){return e?e.sparqlAsk?this.evaluateSparqlAsk(e.sparqlAsk,t):e.query?this.evaluateQueryRef(e.query,t):e.hostFunction?this.evaluateHostFunction(e.hostFunction,t,r):!0:!0}async evaluateQueryRef(e,t){if(!this.queryBodyResolver)return!1;try{let r=await this.queryBodyResolver.resolveSparql(e);if(!r)return!1;let i=this.substituteVariables(r,t),s=await(0,e8.evaluateWithExoEval)(i,{store:this.tripleStore});return s.kind!=="ask"?!1:s.result}catch{return!1}}registerHostFunction(e,t){this.hostFunctions.set(e,t)}hasHostFunction(e){return this.hostFunctions.has(e)}evaluateHostFunctionSync(e,t,r){return this.hostFunctions.has(e)?this.evaluateHostFunction(e,t,r):null}invalidateCache(){this.askCache.clear()}compileAsk(e){let t=this.substituteVariables(e,Bf.SENTINEL_IRI),i=new JU.ExoQLParser().parse(t),o=new ZU.ExoQLAlgebraTranslator().translate(i);return new I3.ExoQLQueryExecutor(this.tripleStore).isAskQuery(o)?o:null}evaluateHostFunction(e,t,r){let i=this.hostFunctions.get(e);if(!i)return!0;let s=r?{...r,targetIRI:t}:{targetIRI:t};try{return i(s)}catch{return!1}}async evaluateSparqlAsk(e,t){try{let r=this.askCache.get(e);if(r===void 0){let o=this.compileAsk(e);if(!o)return!1;r=o,this.askCache.set(e,r)}let i=JSON.parse(JSON.stringify(r).replaceAll(Bf.SENTINEL_IRI,t));return await new I3.ExoQLQueryExecutor(this.tripleStore).executeAsk(i)}catch{return!1}}substituteVariables(e,t){let r=this.clock.now(),i=r.toISOString(),s=i.slice(0,10),o=new Date(r.getTime()+Bf.ALMATY_OFFSET_MS),c=o.getUTCFullYear(),l=o.getUTCMonth(),u=o.getUTCDate(),f=o.getUTCDay(),h=new Date(Date.UTC(c,l,u-1)).toISOString().slice(0,10),p=(f+6)%7,y=new Date(Date.UTC(c,l,u-p)),g=y.toISOString().slice(0,10),_=new Date(y.getTime()-10080*60*1e3).toISOString().slice(0,10),S=`${c}-${String(l+1).padStart(2,"0")}-01`,x=l===0?11:l-1,T=`${l===0?c-1:c}-${String(x+1).padStart(2,"0")}-01`,R=`${c}-01-01`;return e.replace(/\$target/g,`<${t}>`).replace(/\$now/g,`"${i}"^^xsd:dateTime`).replace(/\$yesterday/g,`"${h}"^^xsd:date`).replace(/\$thisWeekStart/g,`"${g}"^^xsd:date`).replace(/\$lastWeekStart/g,`"${_}"^^xsd:date`).replace(/\$thisMonthStart/g,`"${S}"^^xsd:date`).replace(/\$lastMonthStart/g,`"${T}"^^xsd:date`).replace(/\$thisYearStart/g,`"${R}"^^xsd:date`).replace(/\$today/g,`"${s}"^^xsd:date`)}};oo.PreconditionEvaluator=Vf;Vf.SENTINEL_IRI="urn:exocortex:cache-sentinel:target";Vf.ALMATY_OFFSET_MS=300*60*1e3;oo.PreconditionEvaluator=Vf=Bf=XU([(0,QU.injectable)(),YU("design:paramtypes",[Object,Object,Object])],Vf)});var C3=v(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.hasUidFilename=ao.hasNonUidFilename=void 0;ao.registerDefaultHostFunctions=i8;var r8=a(n=>{let e=n.assetUid;if(typeof e!="string"||e.trim()==="")return!1;let t=n.fileBasename;return typeof t!="string"?!1:t!==e},"hasNonUidFilename");ao.hasNonUidFilename=r8;var n8=a(n=>{let e=n.assetUid;if(typeof e!="string"||e.trim()==="")return!1;let t=n.fileBasename;return typeof t!="string"?!1:t===e},"hasUidFilename");ao.hasUidFilename=n8;function i8(n){n.registerHostFunction("hasNonUidFilename",ao.hasNonUidFilename),n.registerHostFunction("hasUidFilename",ao.hasUidFilename)}a(i8,"registerDefaultHostFunctions")});var $m=v(jm=>{"use strict";Object.defineProperty(jm,"__esModule",{value:!0});jm.liveUidGenerator=s8;jm.seededUidGenerator=a8;var HS=Ti();function s8(){return{next:a(()=>(0,HS.v4)(),"next")}}a(s8,"liveUidGenerator");var o8="6ba7b810-9dad-11d1-80b4-00c04fd430c8";function a8(n){let e=0,t=(0,HS.v5)(n,o8);return{next:a(()=>{let r=`${n}#${e}`;return e+=1,(0,HS.v5)(r,t)},"next")}}a(a8,"seededUidGenerator")});var Vm=v(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.registerResolver=or;ia.getResolver=c8;ia.isResolverModifierAware=l8;ia.getRegisteredResolverIds=u8;ia.clearResolvers=f8;ia.installDefaultResolvers=S8;var Bm=new Map,zS=new Set;function or(n,e,t=!1){Bm.set(n,e),t&&zS.add(n)}a(or,"registerResolver");function c8(n){return Bm.get(n)}a(c8,"getResolver");function l8(n){return zS.has(n)}a(l8,"isResolverModifierAware");function u8(){return Array.from(Bm.keys())}a(u8,"getRegisteredResolverIds");function f8(){Bm.clear(),zS.clear()}a(f8,"clearResolvers");function gn(n){return n<10?`0${n}`:String(n)}a(gn,"pad2");var d8=["January","February","March","April","May","June","July","August","September","October","November","December"],h8=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],p8=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],m8=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function g8(n){let e=["th","st","nd","rd"],t=n%100;return`${n}${e[(t-20)%10]||e[t]||e[0]}`}a(g8,"ordinalDay");var y8=/YYYY|YY|MMMM|MMM|MM|M|Do|DD|D|dddd|ddd|HH|H|hh|h|mm|m|ss|s|A|a/g;function b8(n,e){let t=(n.getHours()+11)%12+1;return e.replace(y8,r=>{switch(r){case"YYYY":return String(n.getFullYear());case"YY":return gn(n.getFullYear()%100);case"MMMM":return d8[n.getMonth()];case"MMM":return h8[n.getMonth()];case"MM":return gn(n.getMonth()+1);case"M":return String(n.getMonth()+1);case"Do":return g8(n.getDate());case"DD":return gn(n.getDate());case"D":return String(n.getDate());case"dddd":return p8[n.getDay()];case"ddd":return m8[n.getDay()];case"HH":return gn(n.getHours());case"H":return String(n.getHours());case"hh":return gn(t);case"h":return String(t);case"mm":return gn(n.getMinutes());case"m":return String(n.getMinutes());case"ss":return gn(n.getSeconds());case"s":return String(n.getSeconds());case"A":return n.getHours()<12?"AM":"PM";case"a":return n.getHours()<12?"am":"pm";default:return r}})}a(b8,"formatDate");function O3(n,e,t){let r=n.getDate(),i=new Date(n.getTime());i.setDate(1),t==="M"?i.setMonth(i.getMonth()+e):i.setFullYear(i.getFullYear()+e);let s=new Date(i.getFullYear(),i.getMonth()+1,0).getDate();return i.setDate(Math.min(r,s)),i}a(O3,"addMonthsClamped");function _8(n,e){if(!e)return n;let t=e.match(/^([+-])(\d+)([dwMy])?$/);if(!t)return n;let r=(t[1]==="-"?-1:1)*parseInt(t[2],10),i=t[3]??"d",s=new Date(n.getTime());switch(i){case"d":s.setDate(s.getDate()+r);break;case"w":s.setDate(s.getDate()+r*7);break;case"M":s=O3(s,r,"M");break;case"y":s=O3(s,r,"y");break}return isNaN(s.getTime())?n:s}a(_8,"applyDateOffset");function w8(n){if(!n)return{offset:null,format:null};let e=n.indexOf(":");if(e<0)return{offset:n||null,format:null};let t=n.slice(0,e),r=n.slice(e+1);return{offset:t||null,format:r||null}}a(w8,"parseDateModifier");function Um(n,e){return(t,r)=>{let{offset:i,format:s}=w8(r),o=new Date;return n!==0&&o.setDate(o.getDate()+n),o=_8(o,i),b8(o,s??e)}}a(Um,"makeDateResolver");function S8(){or("today",()=>new Date().toISOString().slice(0,10)),or("todayStart",()=>new Date(new Date().setHours(0,0,0,0)).toISOString()),or("date",Um(0,"YYYY-MM-DD"),!0),or("now",Um(0,"YYYY-MM-DDTHH:mm:ss"),!0),or("tomorrow",Um(1,"YYYY-MM-DD"),!0),or("yesterday",Um(-1,"YYYY-MM-DD"),!0),or("target",n=>n.targetIRI?`"[[${n.targetIRI}]]"`:""),or("targetFolder",n=>{if(!n.targetFilePath)return"";let e=n.targetFilePath.replace(/^\/+/,""),t=e.lastIndexOf("/");return t>=0?e.slice(0,t):""}),or("randomUUIDv4",()=>{if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();throw new Error("randomUUIDv4 resolver requires crypto.randomUUID() \u2014 runtime is missing Node crypto / Web Crypto API.")}),or("nowTimestamp",()=>{let n=new Date;return`${n.getFullYear()}-${gn(n.getMonth()+1)}-${gn(n.getDate())}T${gn(n.getHours())}:${gn(n.getMinutes())}:${gn(n.getSeconds())}`}),or("nowDate",()=>{let n=new Date;return`${n.getFullYear()}-${gn(n.getMonth()+1)}-${gn(n.getDate())}`}),or("nowYear",()=>String(new Date().getFullYear())),or("nowMonth",()=>gn(new Date().getMonth()+1)),or("userInputLabel",n=>{let e=n.userInput?.label;return typeof e=="string"?e:""}),or("userInput",(n,e)=>{if(!e)return null;let t=n.userInput?.[e];return typeof t=="string"?t:t==null?null:String(t)}),or("targetProperty",(n,e)=>{if(!e||!n.targetFm)return null;let t=n.targetFm[e];return t==null?null:Array.isArray(t)?t.map(String):String(t)}),or("labelAsArray",n=>{let e=n.userInput?.label;return typeof e=="string"&&e.length>0?[e]:[]}),or("groundingTargetClass",n=>n.groundingTargetClassUid?`"[[${n.groundingTargetClassUid}]]"`:null),or("targetClassSelf",n=>{if(!n.targetFilePath)return null;let e=n.targetFilePath.replace(/^\/+/,""),r=e.slice(e.lastIndexOf("/")+1).replace(/\.md$/i,"");return r.length>0?`"[[${r}]]"`:null})}a(S8,"installDefaultResolvers")});var XS=v(qm=>{"use strict";Object.defineProperty(qm,"__esModule",{value:!0});qm.resolveTemplateBody=E8;qm.stripTemplateFrontmatter=T8;var KS=Vm();(0,KS.installDefaultResolvers)();var v8=/\$([A-Za-z][A-Za-z0-9_]*)((?:[+-]\d+[dwMy])?(?::[A-Za-z0-9:./-]+)?)/g;function E8(n,e={}){return n.replace(v8,(t,r,i)=>{let s=(0,KS.getResolver)(r);if(s===void 0)return t;let o=s(e,i.length>0?i:void 0);return typeof o!="string"||o.length===0?t:(0,KS.isResolverModifierAware)(r)?o:o+i})}a(E8,"resolveTemplateBody");function T8(n){let e=n.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return e?n.slice(e[0].length):n}a(T8,"stripTemplateFrontmatter")});var qf=v(Ml=>{"use strict";Object.defineProperty(Ml,"__esModule",{value:!0});Ml.registerOrderSpecLoader=A8;Ml.clearOrderSpecLoader=x8;Ml.loadDefaultSpec=I8;Ml.orderProperties=R8;var Gm=null,sa,Wm=!1;function A8(n){Gm=n,sa=void 0,Wm=!1}a(A8,"registerOrderSpecLoader");function x8(){Gm=null,sa=void 0,Wm=!1}a(x8,"clearOrderSpecLoader");function I8(){if(sa!==void 0)return sa;if(!Gm)return sa=null,null;try{sa=Gm()}catch(n){Wm||(console.warn("[OrderSpecResolver] loader threw, falling back to insertion order:",n),Wm=!0),sa=null}return sa}a(I8,"loadDefaultSpec");function R8(n,e){if(!e||e.head.length===0&&e.tail.length===0)return n;let t=Object.keys(n),r=new Set(e.head),i=new Set(e.tail),s=e.head.filter(u=>Object.prototype.hasOwnProperty.call(n,u)),o=e.tail.filter(u=>Object.prototype.hasOwnProperty.call(n,u)),c=t.filter(u=>!r.has(u)&&!i.has(u));e.middleStrategy==="alphabetical"&&c.sort((u,f)=>u.localeCompare(f));let l={};for(let u of s)l[u]=n[u];for(let u of c)l[u]=n[u];for(let u of o)l[u]=n[u];return l}a(R8,"orderProperties")});var ws=v(Hm=>{"use strict";Object.defineProperty(Hm,"__esModule",{value:!0});Hm.FrontmatterService=void 0;var P3=qf(),Gf=class n{static{a(this,"FrontmatterService")}parse(e){let t=e.match(n.FRONTMATTER_REGEX);return t?{exists:!0,content:t[1],originalContent:e}:{exists:!1,content:"",originalContent:e}}parseObject(e){let t=this.parse(e);if(!t.exists)return null;let r={},i=t.content.split(/\r?\n/),s=null,o=null,c=a(()=>{s!==null&&o!==null&&(r[s]=o),s=null,o=null},"flushArray");for(let l of i){let u=/^ {2}- (.*)$/.exec(l);if(u){s!==null&&o!==null&&o.push(u[1].trim());continue}c();let f=/^([^:\s][^:]*):\s*(.*)$/.exec(l);if(!f)continue;let d=f[1].trim(),h=f[2].trim();h===""?(s=d,o=[]):r[d]=h}return c(),r}updateProperty(e,t,r){t=n.normalizeIRI(t),typeof r=="string"&&(r=n.normalizeIRIValue(r));let i=this.parse(e),s=this.serializeValue(t,r);if(!i.exists)return`---
70
+ ${r}}`}generateValuesTerm(e){if(e.type==="iri")return`<${e.value}>`;let r=`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`;return e.language?r+=`@${e.language}`:e.datatype&&(r+=`^^<${e.datatype}>`),r}generateExpression(e){switch(e.type){case"variable":return`?${e.name}`;case"literal":return typeof e.value=="string"?`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:typeof e.value=="boolean"?e.value?"true":"false":String(e.value);case"comparison":return`(${this.generateExpression(e.left)} ${e.operator} ${this.generateExpression(e.right)})`;case"logical":return e.operator==="!"?`!(${this.generateExpression(e.operands[0])})`:`(${e.operands.map(t=>this.generateExpression(t)).join(` ${e.operator} `)})`;case"arithmetic":return`(${this.generateExpression(e.left)} ${e.operator} ${this.generateExpression(e.right)})`;case"function":return`${e.function.toUpperCase()}(${e.args.map(t=>this.generateExpression(t)).join(", ")})`;case"functionCall":return`${(typeof e.function=="string"?e.function:e.function.value).toUpperCase()}(${e.args.map(r=>this.generateExpression(r)).join(", ")})`;case"exists":return`${e.negated?"NOT EXISTS":"EXISTS"} { ${this.generateWhereClause(e.pattern,0)} }`;case"in":{let t=this.generateExpression(e.expression),r=e.list.map(i=>this.generateExpression(i)).join(", ");return e.negated?`${t} NOT IN (${r})`:`${t} IN (${r})`}default:throw new Fl(`Unknown expression type: ${e.type}`)}}collectVariablesFromOperation(e,t){switch(e.type){case"bgp":for(let r of e.triples)this.collectVariablesFromTriple(r,t);break;case"filter":this.collectVariablesFromOperation(e.input,t),this.collectVariablesFromExpression(e.expression,t);break;case"join":case"leftjoin":case"union":case"minus":this.collectVariablesFromOperation(e.left,t),this.collectVariablesFromOperation(e.right,t);break;case"values":for(let r of e.variables)t.add(r);break;case"project":for(let r of e.variables)t.add(r);this.collectVariablesFromOperation(e.input,t);break;case"extend":t.add(e.variable),this.collectVariablesFromOperation(e.input,t);break;case"orderby":case"slice":case"distinct":case"reduced":this.collectVariablesFromOperation(e.input,t);break;case"group":for(let r of e.variables)t.add(r);for(let r of e.aggregates)t.add(r.variable);this.collectVariablesFromOperation(e.input,t);break;case"subquery":this.collectVariablesFromOperation(e.query,t);break}}collectVariablesFromTriple(e,t){e.subject.type==="variable"&&t.add(e.subject.value),"type"in e.predicate&&e.predicate.type==="variable"&&t.add(e.predicate.value),e.object.type==="variable"&&t.add(e.object.value)}collectVariablesFromExpression(e,t){switch(e.type){case"variable":t.add(e.name);break;case"comparison":case"arithmetic":this.collectVariablesFromExpression(e.left,t),this.collectVariablesFromExpression(e.right,t);break;case"logical":for(let r of e.operands)this.collectVariablesFromExpression(r,t);break;case"function":case"functionCall":for(let r of e.args)this.collectVariablesFromExpression(r,t);break;case"exists":this.collectVariablesFromOperation(e.pattern,t);break;case"in":this.collectVariablesFromExpression(e.expression,t);for(let r of e.list)this.collectVariablesFromExpression(r,t);break}}};Dl.SPARQLGenerator=$S});var Nl=v(kn=>{"use strict";var aU=kn&&kn.__createBinding||(Object.create?(function(n,e,t,r){r===void 0&&(r=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[t]},"get")}),Object.defineProperty(n,r,i)}):(function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]})),cU=kn&&kn.__setModuleDefault||(Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e}),bC=kn&&kn.__importStar||(function(){var n=a(function(e){return n=Object.getOwnPropertyNames||function(t){var r=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[r.length]=i);return r},n(e)},"ownKeys");return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=n(e),i=0;i<r.length;i++)r[i]!=="default"&&aU(t,e,r[i]);return cU(t,e),t}})();Object.defineProperty(kn,"__esModule",{value:!0});kn.QueryExecutor=kn.ExoQLQueryExecutor=kn.QueryExecutorError=void 0;var lU=sS(),uU=Sm(),fU=TS(),dU=xS(),hU=aC(),pU=lC(),mU=dC(),gU=kS(),yU=pC(),bU=gC(),_U=yC(),wU=Ce(),SU=Ge(),vU=pm(),qr="http://www.w3.org/2001/XMLSchema#",EU=new Set([`${qr}integer`,`${qr}decimal`,`${qr}float`,`${qr}double`,`${qr}nonPositiveInteger`,`${qr}negativeInteger`,`${qr}long`,`${qr}int`,`${qr}short`,`${qr}byte`,`${qr}nonNegativeInteger`,`${qr}unsignedLong`,`${qr}unsignedInt`,`${qr}unsignedShort`,`${qr}unsignedByte`,`${qr}positiveInteger`]),Ll=class extends Error{static{a(this,"QueryExecutorError")}constructor(e,t){super(e,t?{cause:t}:void 0),this.name="QueryExecutorError"}};kn.QueryExecutorError=Ll;var Om=class{static{a(this,"ExoQLQueryExecutor")}constructor(e,t={}){this.tripleStore=e,this.bgpExecutor=new lU.BGPExecutor(e),this.filterExecutor=new uU.FilterExecutor,this.optionalExecutor=new fU.OptionalExecutor,this.unionExecutor=new dU.UnionExecutor,this.minusExecutor=new hU.MinusExecutor,this.valuesExecutor=new pU.ValuesExecutor,this.aggregateExecutor=new mU.AggregateExecutor,this.constructExecutor=new gU.ConstructExecutor,this.serviceExecutor=new yU.ServiceExecutor(t.serviceConfig),this.graphExecutor=new bU.GraphExecutor(e),this.sparqlGenerator=new _U.SPARQLGenerator,this.filterExecutor.setExistsEvaluator(async(r,i)=>this.evaluateExistsPattern(r,i)),this.filterExecutor.setTripleStore(e)}async evaluateExistsPattern(e,t){for await(let r of this.execute(e))if(t.merge(r)!==null)return!0;return!1}async executeAll(e){let t=[];for await(let r of this.execute(e))t.push(r);return t}async*execute(e){switch(e.type){case"bgp":yield*this.executeBGP(e);break;case"filter":yield*this.executeFilter(e);break;case"join":yield*this.executeJoin(e);break;case"leftjoin":yield*this.executeLeftJoin(e);break;case"union":yield*this.executeUnion(e);break;case"minus":yield*this.executeMinus(e);break;case"values":yield*this.executeValues(e);break;case"project":yield*this.executeProject(e);break;case"orderby":yield*this.executeOrderBy(e);break;case"slice":yield*this.executeSlice(e);break;case"distinct":yield*this.executeDistinct(e);break;case"reduced":yield*this.executeReduced(e);break;case"group":yield*this.executeGroup(e);break;case"extend":yield*this.executeExtend(e);break;case"subquery":yield*this.executeSubquery(e);break;case"lateraljoin":yield*this.executeLateralJoin(e);break;case"service":yield*this.executeService(e);break;case"graph":yield*this.executeGraph(e);break;default:throw new Ll(`Unknown operation type: ${e.type}`)}}async*executeBGP(e){yield*this.bgpExecutor.execute(e)}async*executeFilter(e){let t=this.execute(e.input);yield*this.filterExecutor.execute(e,t)}async*executeJoin(e){let t=[];for await(let o of this.execute(e.left))t.push(o);if(t.length===0)return;let r=new Set;for(let o of t)for(let c of o.variables())r.add(c);let i=this.collectOperationVariables(e.right);if([...r].some(o=>i.has(o)))for(let o of t){let c=this.substituteVariables(e.right,o);for await(let l of this.execute(c)){let u=o.merge(l);u!==null&&(yield u)}}else{let o=[];for await(let c of this.execute(e.right))o.push(c);for(let c of t)for(let l of o){let u=c.merge(l);u!==null&&(yield u)}}}async*executeLeftJoin(e){let t=[];for await(let o of this.execute(e.left))t.push(o);let r=[];for await(let o of this.execute(e.right))r.push(o);async function*i(){for(let o of t)yield o}a(i,"leftGen");async function*s(){for(let o of r)yield o}a(s,"rightGen"),yield*this.optionalExecutor.execute(i(),s())}async*executeUnion(e){let t=[];for await(let o of this.execute(e.left))t.push(o);let r=[];for await(let o of this.execute(e.right))r.push(o);async function*i(){for(let o of t)yield o}a(i,"leftGen");async function*s(){for(let o of r)yield o}a(s,"rightGen"),yield*this.unionExecutor.execute(i(),s())}async*executeMinus(e){let t=[];for await(let o of this.execute(e.left))t.push(o);let r=[];for await(let o of this.execute(e.right))r.push(o);async function*i(){for(let o of t)yield o}a(i,"leftGen");async function*s(){for(let o of r)yield o}a(s,"rightGen"),yield*this.minusExecutor.execute(i(),s())}async*executeValues(e){yield*this.valuesExecutor.execute(e)}async*executeProject(e){let{SolutionMapping:t}=await Promise.resolve().then(()=>bC(gs())),r=new Set(e.variables);for await(let i of this.execute(e.input)){let s=new t;for(let o of i.variables())if(r.has(o)){let c=i.get(o);c!==void 0&&s.set(o,c)}yield s}}async*executeOrderBy(e){let t=[];for await(let r of this.execute(e.input))t.push(r);t.sort((r,i)=>{for(let s of e.comparators){let o=this.getExpressionValue(s.expression,r),c=this.getExpressionValue(s.expression,i),l=0;if(o===void 0&&c===void 0?l=0:o===void 0?l=1:c===void 0?l=-1:typeof o=="number"&&typeof c=="number"?l=o-c:l=String(o).localeCompare(String(c)),s.descending&&(l=-l),l!==0)return l}return 0});for(let r of t)yield r}async*executeSlice(e){let t=0,r=e.offset??0,i=e.limit;for await(let s of this.execute(e.input)){if(t>=r){if(i!==void 0&&t-r>=i)break;yield s}t++}}async*executeDistinct(e){let t=new Set;for await(let r of this.execute(e.input)){let i=this.getSolutionKey(r);t.has(i)||(t.add(i),yield r)}}async*executeReduced(e){let t=new Set;for await(let r of this.execute(e.input)){let i=this.getSolutionKey(r);t.has(i)||(t.add(i),yield r)}}async*executeGroup(e){let t=[];for await(let i of this.execute(e.input))t.push(i);let r=this.aggregateExecutor.execute(e,t);if(e.having&&e.having.length>0)for(let i of r)e.having.every(o=>this.filterExecutor.evaluateExpression(o,i)===!0)&&(yield i);else for(let i of r)yield i}async*executeExtend(e){let t=e.expression.type!=="aggregate"&&this.filterExecutor.expressionContainsExists(e.expression);for await(let r of this.execute(e.input)){let i=r.clone(),s=t?await this.evaluateExtendExpressionAsync(e.expression,r):this.evaluateExtendExpression(e.expression,r);s!==void 0&&i.set(e.variable,s),yield i}}async*executeSubquery(e){yield*this.execute(e.query)}async*executeLateralJoin(e){let t=[];for await(let r of this.execute(e.left))t.push(r);for(let r of t){let i=this.substituteVariables(e.right,r);for await(let s of this.execute(i)){let o=r.merge(s);o!==null&&(yield o)}}}substituteVariables(e,t){let r=JSON.parse(JSON.stringify(e));return this.substituteInOperation(r,t)}substituteInOperation(e,t){if(!e||typeof e!="object")return e;let r=e;return e.type==="bgp"&&e.triples?(e.triples=e.triples.map(i=>this.substituteInTriple(i,t)),e):(r.input&&(r.input=this.substituteInOperation(r.input,t)),r.left&&(r.left=this.substituteInOperation(r.left,t)),r.right&&(r.right=this.substituteInOperation(r.right,t)),r.pattern&&(r.pattern=this.substituteInOperation(r.pattern,t)),r.query&&(r.query=this.substituteInOperation(r.query,t)),r.where&&(r.where=this.substituteInOperation(r.where,t)),r.expression&&this.substituteInExpression(r.expression,t),e)}substituteInExpression(e,t){if(!(!e||typeof e!="object")){if(e.type==="exists"&&e.pattern&&(e.pattern=this.substituteInOperation(e.pattern,t)),e.left&&this.substituteInExpression(e.left,t),e.right&&this.substituteInExpression(e.right,t),e.operands)for(let r of e.operands)this.substituteInExpression(r,t);if(e.args)for(let r of e.args)this.substituteInExpression(r,t);if(e.expression&&this.substituteInExpression(e.expression,t),e.list)for(let r of e.list)this.substituteInExpression(r,t)}}substituteInTriple(e,t){return{subject:this.substituteInTripleElement(e.subject,t),predicate:e.predicate,object:this.substituteInTripleElement(e.object,t)}}substituteInTripleElement(e,t){if(e&&e.type==="variable"){let r=t.get(e.value);if(r!=null){let i=r;if(r instanceof wU.IRI||i.termType==="NamedNode")return{type:"iri",value:r.value};if(i.termType==="Literal"||typeof i.value=="string")return{type:"literal",value:i.value,datatype:i.datatype?.value??i._datatype?.value,language:i.language??i._language}}}return e}async*executeService(e){yield*this.serviceExecutor.execute(e,t=>this.sparqlGenerator.generateSelect(t))}async*executeGraph(e){let t=async function*(r,i){let s=this.currentGraphContext;this.currentGraphContext=i;try{r.type==="bgp"&&i&&this.tripleStore.matchInGraph?yield*this.executeBGPInGraph(r,i):yield*this.execute(r)}finally{this.currentGraphContext=s}}.bind(this);yield*this.graphExecutor.execute(e,t)}async*executeBGPInGraph(e,t){if(e.triples.length===0){let{SolutionMapping:r}=await Promise.resolve().then(()=>bC(gs()));yield new r;return}yield*this.bgpExecutor.executeInGraph(e,t)}evaluateExtendExpression(e,t){if(e.type!=="aggregate")try{return this.filterExecutor.evaluateExpression(e,t)}catch{return}}async evaluateExtendExpressionAsync(e,t){if(e.type!=="aggregate")try{return await this.filterExecutor.evaluateExpressionAsync(e,t)}catch{return}}getExpressionValue(e,t){if(e.type==="variable"){let r=t.get(e.name);if(!r)return;if(r instanceof SU.Literal){let i=r.datatype?.value;if(i===`${qr}dayTimeDuration`)try{return vU.DateTimeFunctions.parseDayTimeDuration(r.value)}catch{return r.value}if(i&&EU.has(i)){let s=parseFloat(r.value);if(!Number.isNaN(s))return s}return r.value}return r.value??r.id??String(r)}if(e.type==="literal")return e.value}collectOperationVariables(e){let t=new Set;return this.collectVarsFromOperation(e,t),t}collectVarsFromOperation(e,t){if(!e||typeof e!="object")return;let r=e;if(r.type==="bgp"&&r.triples)for(let i of r.triples)this.collectVarsFromElement(i.subject,t),i.predicate?.type!=="path"&&this.collectVarsFromElement(i.predicate,t),this.collectVarsFromElement(i.object,t);if(r.type==="values"&&r.variables)for(let i of r.variables)t.add(i);r.expression&&this.collectVarsFromExpressionTree(r.expression,t),r.type==="extend"&&r.variable&&t.add(r.variable),r.input&&this.collectVarsFromOperation(r.input,t),r.left&&this.collectVarsFromOperation(r.left,t),r.right&&this.collectVarsFromOperation(r.right,t),r.pattern&&this.collectVarsFromOperation(r.pattern,t),r.query&&this.collectVarsFromOperation(r.query,t),r.where&&this.collectVarsFromOperation(r.where,t)}collectVarsFromElement(e,t){if(!e||typeof e!="object")return;let r=e;r.type==="variable"&&t.add(r.value),r.type==="quoted"&&(this.collectVarsFromElement(r.subject,t),this.collectVarsFromElement(r.predicate,t),this.collectVarsFromElement(r.object,t))}collectVarsFromExpressionTree(e,t){if(!e||typeof e!="object")return;let r=e;if(r.type==="variable"&&r.name&&t.add(r.name),r.type==="exists"&&r.pattern&&this.collectVarsFromOperation(r.pattern,t),r.left&&this.collectVarsFromExpressionTree(r.left,t),r.right&&this.collectVarsFromExpressionTree(r.right,t),r.operands)for(let i of r.operands)this.collectVarsFromExpressionTree(i,t);if(r.args)for(let i of r.args)this.collectVarsFromExpressionTree(i,t);if(r.expression&&this.collectVarsFromExpressionTree(r.expression,t),r.list)for(let i of r.list)this.collectVarsFromExpressionTree(i,t)}getSolutionKey(e){let t=e.toJSON();return Object.keys(t).sort().map(i=>`${i}=${t[i]}`).join("|")}isConstructQuery(e){return e.type==="construct"}async executeConstruct(e){if(e.type!=="construct")throw new Ll("executeConstruct requires a CONSTRUCT operation");let t=await this.executeAll(e.where);return this.constructExecutor.execute(e.template,t)}isAskQuery(e){return e.type==="ask"}async executeAsk(e){if(e.type!=="ask")throw new Ll("executeAsk requires an ASK operation");for await(let t of this.execute(e.where))return!0;return!1}};kn.ExoQLQueryExecutor=Om;kn.QueryExecutor=Om});var xC=v(so=>{"use strict";var TU=so&&so.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},AU=so&&so.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},US;Object.defineProperty(so,"__esModule",{value:!0});so.CommandResolver=void 0;var xU=Ve(),IU=el(),Jt=Ce(),$t=Ge(),V=Ht(),_C=Wo(),wC=uf(),RU=rl(),CU=Pp(),kl=Zb(),Pm=hR(),OU=dl(),PU=pl(),FU=Nl(),$f=10,Fm="exo__Asset",DU=$f+1,SC="08cec529-90eb-4d43-88de-ceecccea12b0",LU=V.Namespace.EXOCMD.term("SubstitutionToken").value,vC=new Set(["today","todayStart","targetFolder","target","randomUUIDv4","nowTimestamp","nowDate","nowYear","nowMonth","userInputLabel","userInput","targetProperty","labelAsArray","groundingTargetClass","targetClassSelf"]);function NU(n,e){return`__SUBSTITUTE__${n}__${e}__`}a(NU,"buildSubstitutionMarker");function kU(n,e,t){let r=(0,RU.utf8ToBase64)(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");return`__SUBSTITUTE_P__${n}__${e}__${r}__`}a(kU,"buildParameterisedMarker");var EC="3f28af98-c031-4718-8ba2-44ad0b012c52",MU=V.Namespace.EXOCMD.term("TokenInvocation").value,TC="29e2c8f8-2d27-4e58-b467-2e85d46f8122",AC="universal-default-template",jU=new Set(["today","todayStart","nowTimestamp","nowDate","nowYear","nowMonth"]),BS=US=class{static{a(this,"CommandResolver")}clearUniversalCache(){this._universalCacheReady=!1,this._universalCacheValue=null,(0,Pm.clearUniversalDefault)()}constructor(e,t=IU.NullLogger){this.tripleStore=e,this.logger=t,this.cache=new Map,this.multiCache=new Map,this._ancestorDepthCache=new Map,this._legacyPropertyDefaultsWarnedGroundings=new Set,this._universalCacheReady=!1,this._universalCacheValue=null}async resolveForAssetMulti(e,t,r){if(t.length===0)return[];let i=[...t].sort().join(","),s=`${e}::${i}::${r??""}`,o=this.multiCache.get(s);if(o)return o;let c=await this.expandClassHierarchy(t),l=new Map;for(let[h,p]of c){let y=await this.resolveForAsset(e,h,r);for(let g of y){let b=this.getBindingPriority(g.binding)===2?p:0,_=l.get(g.binding.id);(!_||b<_.depth)&&l.set(g.binding.id,{rc:g,depth:b})}}let u=new Set;for(let{rc:h}of l.values())if(h.binding.overrides)for(let p of h.binding.overrides)u.add(p);let f=Array.from(l.entries()).filter(([h])=>!u.has(h)).map(([,h])=>h);f.sort((h,p)=>{let y=this.getBindingPriority(h.rc.binding),g=this.getBindingPriority(p.rc.binding);return y!==g?y-g:h.depth!==p.depth?h.depth-p.depth:(h.rc.binding.order??100)-(p.rc.binding.order??100)});let d=f.map(h=>h.rc);return this.multiCache.set(s,d),d}async expandClassHierarchy(e){let t=new Map;for(let c of e){if(c===Fm){t.set(c,new Set);continue}let l=[];try{l=await this.getClassAncestors(c)}catch{l=[]}t.set(c,new Set(l))}let r=a(c=>{for(let l of e)if(l!==c&&t.get(l)?.has(c)&&!t.get(c)?.has(l))return!0;return!1},"isAncestorOfSibling"),i=e.filter(c=>!r(c)),s=new Map,o=a((c,l)=>{let u=s.get(c);(u===void 0||l<u)&&s.set(c,l)},"setMin");for(let c of i){if(o(c,0),this.looksLikeUUID(c))try{let u=await this.resolveLabelByUID(c);u&&o(u,0)}catch{}if(c===Fm)continue;let l=[];try{l=await this.getClassAncestorsWithDepth(c)}catch{l=[]}for(let{ref:u,depth:f}of l)o(u,f)}return s.has(Fm)||s.set(Fm,DU),s}async resolveForAsset(e,t,r){let i=`${e}:${t}:${r??""}`,s=this.cache.get(i);if(s)return s;let o=await this.findBindings(t,r,e),c=[];for(let l of o){let u=await this.loadCommand(l.commandRef,{targetClass:l.targetClass});if(!u)continue;let f=l.precondition?{...u,precondition:l.precondition}:u;c.push({command:f,binding:l})}return c.sort((l,u)=>{let f=this.getBindingPriority(l.binding),d=this.getBindingPriority(u.binding);return f!==d?f-d:(l.binding.order??100)-(u.binding.order??100)}),this.cache.set(i,c),c}async loadCommand(e,t){let r=await this.findSubjectByUID(e);if(!r||(await this.tripleStore.match(r,V.Namespace.RDF.term("type"),V.Namespace.EXOCMD.term("Command"))).length===0)return null;let s=await this.getLiteralValue(r,V.Namespace.EXO.term("Asset_label"))??"Unknown Command",o=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_labelTemplate")),c=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_icon")),l=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_confirmMessage")),u=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_successMessage")),f=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_category")),d=await this.getLiteralValue(r,V.Namespace.EXOCMD.term("Command_openInSameTab")),h=d!==null&&String(d).trim().toLowerCase()==="true",p=await this.loadLinkedPrecondition(r),y=await this.loadLinkedGrounding(r,0,t);return y?{id:e,name:s,labelTemplate:o??void 0,icon:c??void 0,precondition:p??void 0,grounding:y,confirmMessage:l??void 0,successMessage:u??void 0,category:f??void 0,openInSameTab:h||void 0}:null}async findBindings(e,t,r){let i=await this.tripleStore.match(void 0,V.Namespace.RDF.term("type"),V.Namespace.EXOCMD.term("CommandBinding")),s=[];for(let o of i){let c=o.subject,l=await this.loadBindingDefinition(c);l&&this.bindingMatches(l,e,t,r)&&s.push(l)}return s}async findPaletteEnabledCommands(){let e=await this.tripleStore.match(void 0,V.Namespace.RDF.term("type"),V.Namespace.EXOCMD.term("Command")),t=[],r=new Set;for(let i of e){let s=i.subject;if((await this.getLiteralValue(s,V.Namespace.EXOCMD.term("Command_paletteEnabled")))?.toLowerCase()!=="true")continue;let c=await this.getLiteralValue(s,V.Namespace.EXO.term("Asset_uid"));if(!c){this.logger.warn(`[CommandResolver] paletteEnabled command at ${s.value} has no exo__Asset_uid \u2014 skipped`);continue}let l=await this.loadCommand(c);if(!l){this.logger.warn(`[CommandResolver] paletteEnabled command ${c} could not be loaded (missing grounding?) \u2014 skipped`);continue}let u=await this.getLiteralValue(s,V.Namespace.EXOCMD.term("Command_paletteId")),f=await this.getLiteralValue(s,V.Namespace.EXOCMD.term("Command_cliName")),d=u??f??c;if(r.has(d)){this.logger.warn(`[CommandResolver] duplicate paletteId "${d}" \u2014 first registration wins, dropping ${c}`);continue}r.add(d),t.push({command:l,paletteId:d})}return t}invalidateCache(){this.cache.clear(),this.multiCache.clear(),this._ancestorDepthCache.clear()}async resolveLabel(e,t){if(!e.labelTemplate)return e.name;let r=e.labelTemplate,i=this.extractPlaceholders(e.labelTemplate);for(let{full:s,body:o}of i){let c=await this.evaluateSelectSnippet(o,t);r=r.replace(s,c)}return r}extractPlaceholders(e){let t=[],r=0;for(;r<e.length;)if(e[r]==="{"){let i=1,s=r+1;for(;s<e.length&&i>0;)e[s]==="{"?i++:e[s]==="}"&&i--,s++;if(i===0){let o=e.slice(r,s),c=e.slice(r+1,s-1);t.push({full:o,body:c})}r=s}else r++;return t}async evaluateSelectSnippet(e,t){try{let r=e.replace(/\$target/g,`<${t}>`),s=new OU.ExoQLParser().parse(r),c=new PU.ExoQLAlgebraTranslator().translate(s),u=await new FU.ExoQLQueryExecutor(this.tripleStore).executeAll(c);if(u.length===0)return"";let f=u[0],d=f.variables();if(d.length===0)return"";let h=f.get(d[0]);return h?h instanceof $t.Literal||h instanceof Jt.IRI?h.value:String(h):""}catch{return""}}async loadBindingDefinition(e){let t=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_uid"));if(!t)return null;let r=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_label"))??"",i=await this.getLinkedUID(e,V.Namespace.EXOCMD.term("CommandBinding_command"));if(!i)return null;let s=await this.getLinkedValue(e,V.Namespace.EXOCMD.term("CommandBinding_targetClass")),o=await this.getLinkedValue(e,V.Namespace.EXOCMD.term("CommandBinding_targetPrototype")),c=await this.getLinkedValue(e,V.Namespace.EXOCMD.term("CommandBinding_targetAsset"));if(!s&&!o&&!c)return null;let l=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBinding_position")),u=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBinding_order")),f=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBinding_variant")),d=f!==null?this.coerceVariant(f,t):void 0,h=await this.loadLinkedPreconditionFromProperty(e,V.Namespace.EXOCMD.term("CommandBinding_precondition")),p=await this.loadLinkedStyle(e,t),y=await this.getLinkedUIDs(e,V.Namespace.EXOCMD.term("CommandBinding_overrides"));return{id:t,label:r,commandRef:i,targetClass:s??void 0,targetPrototype:o??void 0,targetAsset:c??void 0,position:l??void 0,order:u?parseInt(u,10):void 0,variant:d,precondition:h??void 0,style:p??void 0,overrides:y.length>0?y:void 0}}async loadLinkedStyle(e,t){let r=await this.tripleStore.match(e,V.Namespace.EXOCMD.term("CommandBinding_style"),void 0);if(r.length>0){let s=r[0].object,o=null;if(s instanceof Jt.IRI)o=s;else if(s instanceof $t.Literal){let c=this.normalizeWikilink(s.value);o=await this.findSubjectByUID(c)}if(o){let c=await this.loadStyleAsset(o);if(c)return c}this.logger.warn(this.capWarning(`CommandBinding ${t}: style reference unresolved, falling back to inline variant`))}let i=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBinding_variant"));if(i!==null){let s=this.coerceVariant(i,t);if(s!==void 0)return{id:`inline:${t}`,label:"",variant:s,inline:!0}}return null}async loadStyleAsset(e){let t=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_uid"));if(!t)return null;let r=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_label"))??"",i=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_variant")),s=i!==null?this.coerceVariant(i,t):void 0,o=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_showIcon")),c=this.coerceBoolean(o),l=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_labelClass")),u=l!==null?this.coerceLabelClass(l,t):void 0,f=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_ariaLabel")),d=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_tooltip")),h=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_keyboardShortcut")),p=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("CommandBindingStyle_source")),y=p!==null?this.coerceStyleSource(p,t):void 0;return{id:t,label:r,variant:s,showIcon:c,labelClass:u,ariaLabel:f??void 0,tooltip:d??void 0,keyboardShortcut:h??void 0,source:y,inline:!1}}coerceVariant(e,t){if(e==null)return;let r=String(e).trim().toLowerCase();if(r!==""){if(kl.COMMAND_VARIANT_VALUES.includes(r))return r;this.logger.warn(this.capWarning(`CommandBindingStyle variant "${r}" not in whitelist [${kl.COMMAND_VARIANT_VALUES.join(",")}]; dropped (asset ${t})`))}}coerceLabelClass(e,t){if(e==null)return;let r=String(e).trim().toLowerCase();if(r!==""){if(kl.LABEL_CLASS_VALUES.includes(r))return r;this.logger.warn(this.capWarning(`CommandBindingStyle labelClass "${r}" not in whitelist [${kl.LABEL_CLASS_VALUES.join(",")}]; dropped (asset ${t})`))}}coerceStyleSource(e,t){if(e==null)return;let r=String(e).trim().toLowerCase();if(r!==""){if(kl.STYLE_SOURCE_VALUES.includes(r))return r;this.logger.warn(this.capWarning(`CommandBindingStyle source "${r}" not in whitelist [${kl.STYLE_SOURCE_VALUES.join(",")}]; dropped (asset ${t})`))}}coerceBoolean(e){if(e===null)return;let t=e.trim().toLowerCase();if(t==="true")return!0;if(t==="false")return!1}capWarning(e){return e.length<=200?e:e.slice(0,197)+"..."}bindingMatches(e,t,r,i){return!!(e.targetAsset&&i&&this.matchesReference(e.targetAsset,i)||e.targetPrototype&&r&&this.matchesReference(e.targetPrototype,r)||e.targetClass&&t&&this.matchesReference(e.targetClass,t))}matchesReference(e,t){let r=this.normalizeWikilink(e),i=this.normalizeWikilink(t);if(r===i)return!0;let s=this.extractPathBasename(i);if(s&&s===r)return!0;let o=this.extractPathBasename(r);if(o&&o===i)return!0;let c=this.extractAlias(t);if(c&&r===c)return!0;let l=this.extractAlias(e);return!!(l&&l===i)}extractPathBasename(e){let t=e.match(/\/([^/]+)\.md$/);return t?t[1]:null}extractAlias(e){let t=e.replace(/["'[\]]/g,"").trim(),r=t.indexOf("|");return r>=0?t.substring(r+1).trim():null}getBindingPriority(e){return e.targetAsset?0:e.targetPrototype?1:2}async loadLinkedPrecondition(e){return this.loadLinkedPreconditionFromProperty(e,V.Namespace.EXOCMD.term("Command_precondition"))}async loadLinkedPreconditionFromProperty(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object,s=null;if(i instanceof Jt.IRI)s=i;else if(i instanceof $t.Literal){let h=this.normalizeWikilink(i.value);s=await this.findSubjectByUID(h)}if(!s)return null;let o=await this.getLiteralValue(s,V.Namespace.EXO.term("Asset_uid")),c=await this.getLiteralValue(s,V.Namespace.EXO.term("Asset_label"))??"",l=await this.getLiteralValue(s,V.Namespace.EXOCMD.term("Precondition_sparqlAsk")),u=await this.getLiteralValue(s,V.Namespace.EXOCMD.term("Precondition_hostFunction")),f=await this.tripleStore.match(s,V.Namespace.EXOCMD.term("Precondition_query"),void 0),d;if(f.length>0){let h=f[0].object;if(h instanceof Jt.IRI){let p=await this.getLiteralValue(h,V.Namespace.EXO.term("Asset_uid"));p&&(d=p)}else h instanceof $t.Literal&&(d=this.normalizeWikilink(h.value))}return!o||!l&&!u&&!d?null:{id:o,label:c,...l&&{sparqlAsk:l},...u&&{hostFunction:u},...d&&{query:d}}}async loadLinkedGrounding(e,t,r){if(t>=$f)return null;let i=await this.tripleStore.match(e,V.Namespace.EXOCMD.term("Command_grounding"),void 0);if(i.length===0)return null;if(i.length===1||!r?.targetClass){let o=await this.resolveGroundingRef(i[0].object);return o?this.loadGroundingDefinition(o,t):null}for(let o of i){let c=await this.resolveGroundingRef(o.object);if(!c)continue;let l=await this.getObsidianName(c,V.Namespace.EXOCMD.term("Grounding_targetPrototype"));if(l&&this.matchesReference(l,r.targetClass))return this.loadGroundingDefinition(c,t)}this.logger.warn(`Command ${e.value}: ${i.length} groundings declared, none matched context.targetClass='${r.targetClass}' via Grounding_targetPrototype \u2014 falling back to first grounding by iteration order (legacy behaviour). Check that one grounding's Grounding_targetPrototype references this targetClass.`);let s=await this.resolveGroundingRef(i[0].object);return s?this.loadGroundingDefinition(s,t):null}async resolveGroundingRef(e){if(e instanceof Jt.IRI)return e;if(e instanceof $t.Literal){let t=this.normalizeWikilink(e.value);return await this.findSubjectByUID(t)}return null}async loadGroundingByUid(e){let t=await this.findSubjectByUID(e);return t?this.loadGroundingDefinition(t,0):null}async loadGroundingDefinition(e,t){if(t>=$f)return null;let r=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_uid"));if(!r)return null;let i=await this.getLiteralValue(e,V.Namespace.EXO.term("Asset_label"))??"",s=await this.resolveGroundingTypeReference(e);if(!s)return null;let o=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetProperty"));if(o&&this.looksLikeUUID(o)){let Y=await this.resolveLabelByUID(o);if(!Y)return this.logger.warn(`Grounding ${r}: targetProperty wikilink UID '${o}' is not resolvable to exo__Asset_label \u2014 grounding skipped (would otherwise write a UUID-named frontmatter key).`),null;o=Y}if(s===_C.GroundingType.SERVICE_CALL){let Y=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_serviceId"));Y&&(o=Y)}let c=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetValueRef")),l=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_targetValueLiteral")),u=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetValueSubstitution")),f=null;if(u&&this.looksLikeUUID(u)){let Y=await this.resolveLabelByUID(u);if(!Y)return this.logger.warn(`Grounding ${r}: targetValueSubstitution UID '${u}' is not resolvable to exo__Asset_label (SubstitutionToken instance missing or unlabelled) \u2014 grounding skipped.`),null;f=Y}else u&&(f=u);let d=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetValueQuery")),h=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_serviceCallPayload")),p=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_appendExpression")),y=await this.getObsidianWikilinkValue(e,V.Namespace.EXOCMD.term("Grounding_isDefinedBy")),g=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_sparqlUpdate")),b=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetClass"));if(b&&!this.looksLikeUUID(b)){let Y=await this.findUidByLabel(b);Y&&(b=Y)}let _=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_targetPrototype")),S=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_targetFolder")),x=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_linkBackProperty")),A=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_inputSchema")),T=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_incrementBy")),R=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_shiftDelta")),B;if(T!=null&&T!==""){let Y=Number.parseInt(String(T),10);Number.isFinite(Y)&&(B=Y)}let D=await this.resolvePropertyDefaults(e,r),O=await this.resolveInheritanceRules(e,r),M=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_propertyDefaults"));M!==null&&M!==""&&!this._legacyPropertyDefaultsWarnedGroundings.has(r)&&(this.logger.warn(`Grounding ${r}: deprecated exocmd__Grounding_propertyDefaults (plural) JSON predicate detected \u2014 the parser was removed in RFC v2 Phase 5 (#3167); value is ignored. Migrate to ref-form exocmd__Grounding_propertyDefault (singular) pointing to exocmd__PropertyDefault assets. See vault TBox c8f87363-d39c-45cb-9d4d-1be96d70f892 for the canonical replacement.`),this._legacyPropertyDefaultsWarnedGroundings.add(r));let $;s===_C.GroundingType.COMPOSITE&&($=await this.loadCompositeSteps(e,t+1));let Z;if(A)try{let Y=JSON.parse(A);Y?.properties&&(Z=Object.entries(Y.properties).map(([q,ee])=>{let J=ee.type,ge=J==="string"?"text":J,Ue=ee.defaultValue!==void 0?ee.defaultValue:ee.default,qe={name:q,type:ge,label:ee.title??q,required:Array.isArray(Y.required)&&Y.required.includes(q)};return Ue!=null&&(qe.defaultValue=String(Ue)),typeof ee.targetClassUid=="string"&&(qe.targetClassUid=ee.targetClassUid),qe}))}catch{}let ue=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_prefillLabelWithDate")),X=ue!==null&&String(ue).trim().toLowerCase()==="true",_e=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_labelTemplate")),le=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_direction")),fe;if(le!=null){let Y=String(le).trim().toLowerCase();Y==="forward"||Y==="rollback"?fe=Y:Y!==""&&this.logger.warn(`Grounding ${r}: exocmd__Grounding_direction value '${le}' is not 'forward' or 'rollback' \u2014 treating as undefined (will default to 'forward' at dispatch).`)}let N=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("Grounding_bodyTemplate")),W=await this.getObsidianName(e,V.Namespace.EXOCMD.term("Grounding_templateRef")),$e={id:r,label:i,type:s,targetProperty:o??void 0,targetValueRef:c??void 0,targetValueLiteral:l??void 0,targetValueSubstitution:f??void 0,targetValueQuery:d??void 0,serviceCallPayload:h??void 0,appendExpression:p??void 0,sparqlUpdate:g??void 0,steps:$,targetClass:b??void 0,targetPrototype:_??void 0,targetFolder:S??void 0,linkBackProperty:x??void 0,incrementBy:B,shiftDelta:R??void 0,propertyDefault:D.length>0?D:void 0,inheritanceRule:O.length>0?O:void 0,isDefinedBy:y??void 0,prefillLabelWithDate:X||void 0,labelTemplate:_e??void 0,direction:fe,bodyTemplate:N??void 0,templateRef:W??void 0};return Z&&($e.inputSchema=Z),$e}async loadCompositeSteps(e,t){if(t>=$f)return[];let r=await this.tripleStore.match(e,V.Namespace.EXOCMD.term("Grounding_steps"),void 0),i=[];for(let s of r){let o=null;if(s.object instanceof Jt.IRI)o=s.object;else if(s.object instanceof $t.Literal){let l=this.normalizeWikilink(s.object.value);o=await this.findSubjectByUID(l)}if(!o)continue;let c=await this.loadGroundingDefinition(o,t);c&&i.push(c)}return i}async resolvePropertyDefaults(e,t){let r=await this.resolvePropertyDefaultsForSubject(e,t,V.Namespace.EXOCMD.term("Grounding_propertyDefault")),i=await this.getUniversalCache();return i&&i.propertyDefaults.length>0?(0,Pm.mergePropertyDefaults)(i.propertyDefaults,r):r}async resolvePropertyDefaultsForSubject(e,t,r){let i=await this.tripleStore.match(e,r,void 0),s=[];for(let o of i){let c=await this.resolveRefTripleObject(o.object);if(!c)continue;let l=await this.getObsidianName(c,V.Namespace.EXOCMD.term("PropertyDefault_property"));if(!l){this.logger.warn(`Grounding ${t}: PropertyDefault asset missing exocmd__PropertyDefault_property \u2014 entry skipped.`);continue}let u=this.looksLikeUUID(l)?await this.resolveLabelByUID(l):l;if(!u){this.logger.warn(`Grounding ${t}: PropertyDefault property UID '${l}' is not resolvable to exo__Asset_label \u2014 entry skipped.`);continue}let f=await this.getObsidianName(c,V.Namespace.EXOCMD.term("PropertyDefault_value"));if(!f){this.logger.warn(`Grounding ${t}: PropertyDefault '${u}' missing exocmd__PropertyDefault_value \u2014 entry skipped.`);continue}let d=await this.resolvePropertyDefaultValue(f,t,u);d!==null&&s.push({propertyName:u,value:d})}return s}async getUniversalCache(){if(this._universalCacheReady)return this._universalCacheValue;this._universalCacheReady=!0;let e=await(0,Pm.loadUniversalDefault)();if(e)return this._universalCacheValue=e,e;let t=await this.findUniversalSingleton();if(!t)return this._universalCacheValue=null,null;let r=await this.resolvePropertyDefaultsForSubject(t,AC,V.Namespace.EXOCMD.term("Template_propertyDefault")),i=await this.resolveInheritanceRulesForSubject(t,AC,V.Namespace.EXOCMD.term("Template_inheritanceRule"));return this._universalCacheValue={propertyDefaults:r,inheritanceRules:i},this._universalCacheValue}async findUniversalSingleton(){let e=V.Namespace.EXOCMD.term("UniversalDefaultTemplate").value,t=await this.tripleStore.match(void 0,V.Namespace.EXO.term("Instance_class"),void 0),r=[];for(let i of t){let s=!1;if(i.object instanceof Jt.IRI)s=i.object.value===e||i.object.value.includes(TC);else if(i.object instanceof $t.Literal){let o=this.unwrapWikilink(i.object.value);s=o==="exocmd__UniversalDefaultTemplate"||o===TC}s&&i.subject instanceof Jt.IRI&&r.push(i.subject)}return r.length===0?null:(r.length===1||(r.sort((i,s)=>i.value.localeCompare(s.value)),this.logger.warn(`Multiple UniversalDefaultTemplate singletons found (${r.length}); selecting deterministically by lexicographic UID order: ${r[0].value}`)),r[0])}async resolveInheritanceRules(e,t){let r=await this.resolveInheritanceRulesForSubject(e,t,V.Namespace.EXOCMD.term("Grounding_inheritanceRule")),i=await this.getUniversalCache();return i&&i.inheritanceRules.length>0?(0,Pm.mergeInheritanceRules)(i.inheritanceRules,r):r}async resolveInheritanceRulesForSubject(e,t,r){let i=await this.tripleStore.match(e,r,void 0),s=[],o=t;for(let c of i){let l=await this.resolveRefTripleObject(c.object);if(!l)continue;let u=await this.resolveLabelRef(l,V.Namespace.EXOCMD.term("InheritanceRule_sourceProperty"));if(!u){this.logger.warn(`Grounding ${o}: InheritanceRule missing/unresolvable exocmd__InheritanceRule_sourceProperty \u2014 entry skipped.`);continue}let f=await this.resolveLabelRef(l,V.Namespace.EXOCMD.term("InheritanceRule_targetProperty"));if(!f){this.logger.warn(`Grounding ${o}: InheritanceRule missing/unresolvable exocmd__InheritanceRule_targetProperty \u2014 entry skipped.`);continue}let d=await this.tripleStore.match(l,V.Namespace.EXOCMD.term("InheritanceRule_targetClassCondition"),void 0),h,p;if(d.length>0){let A=await this.getObsidianName(l,V.Namespace.EXOCMD.term("InheritanceRule_targetClassCondition"));if(!A||!A.trim()){this.logger.warn(`Grounding ${o}: InheritanceRule has exocmd__InheritanceRule_targetClassCondition triple but ref is unresolvable \u2014 entire rule skipped (would otherwise apply unconditionally, broadening scope).`);continue}this.looksLikeUUID(A)?(p=A,h=await this.resolveLabelByUID(A)??void 0):h=A}let y=await this.tripleStore.match(l,V.Namespace.EXOCMD.term("InheritanceRule_targetClassExclusion"),void 0),g=[],b=[],_=!1;for(let A of y){let T=null;if(A.object instanceof Jt.IRI?T=this.iriToObsidianName(A.object.value)??A.object.value:A.object instanceof $t.Literal&&(T=this.unwrapWikilink(A.object.value)),!T){_=!0;continue}if(this.looksLikeUUID(T)){b.push(T);let R=await this.resolveLabelByUID(T);R&&g.push(R)}else g.push(T)}if(_){this.logger.warn(`Grounding ${o}: InheritanceRule has unresolvable exocmd__InheritanceRule_targetClassExclusion entry \u2014 entire rule skipped (would otherwise expand scope by silently dropping the excluded class).`);continue}let S=await this.getLiteralValue(l,V.Namespace.EXOCMD.term("InheritanceRule_priority")),x=50;if(S!==null&&S!==""){let A=Number.parseInt(String(S),10);Number.isFinite(A)&&(x=A)}s.push({sourcePropertyName:u,targetPropertyName:f,targetClassCondition:h,targetClassConditionUid:p,targetClassExclusion:g,targetClassExclusionUids:b,priority:x})}return s}async resolveRefTripleObject(e){if(e instanceof Jt.IRI)return e;if(e instanceof $t.Literal){let t=this.normalizeWikilink(e.value);return t?this.findSubjectByUID(t):null}return null}async resolveLabelRef(e,t){let r=await this.getObsidianName(e,t);return r?this.looksLikeUUID(r)?this.resolveLabelByUID(r):r:null}async resolvePropertyDefaultValue(e,t,r){if(!this.looksLikeUUID(e))return`"[[${e}]]"`;let i=await this.findSubjectByUID(e);return i?await this.assetIsTokenInvocation(i)?this.resolveTokenInvocation(i,e,t,r):await this.assetIsSubstitutionToken(i)?this.dispatchSubstitutionToken(i,e,t,r,void 0):`"[[${e}]]"`:`"[[${e}]]"`}async dispatchSubstitutionToken(e,t,r,i,s){let o=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("SubstitutionToken_resolver"));if(!o||!o.trim())return this.logger.warn(`Grounding ${r}: PropertyDefault '${i}' references SubstitutionToken '${t}' with no exocmd__SubstitutionToken_resolver \u2014 falling back to wikilink form.`),`"[[${t}]]"`;let c=o.trim();return vC.has(c)?s!==void 0?kU(c,t,s):jU.has(c)?US.parseTimeResolve(c):NU(c,t):(this.logger.warn(`Grounding ${r}: PropertyDefault '${i}' SubstitutionToken '${t}' declares unknown resolver-id '${c}' \u2014 falling back to wikilink form. Known ids: ${Array.from(vC).join(", ")}.`),`"[[${t}]]"`)}static parseTimeResolve(e){let t=new Date,r=a(i=>i<10?`0${i}`:String(i),"pad");switch(e){case"today":return t.toISOString().slice(0,10);case"todayStart":return new Date(new Date().setHours(0,0,0,0)).toISOString();case"nowTimestamp":return`${t.getFullYear()}-${r(t.getMonth()+1)}-${r(t.getDate())}T${r(t.getHours())}:${r(t.getMinutes())}:${r(t.getSeconds())}`;case"nowDate":return`${t.getFullYear()}-${r(t.getMonth()+1)}-${r(t.getDate())}`;case"nowYear":return String(t.getFullYear());case"nowMonth":return r(t.getMonth()+1);default:return""}}async resolveTokenInvocation(e,t,r,i){let s=await this.getObsidianName(e,V.Namespace.EXOCMD.term("TokenInvocation_token"));if(!s)return this.logger.warn(`Grounding ${r}: PropertyDefault '${i}' TokenInvocation '${t}' missing exocmd__TokenInvocation_token \u2014 entry skipped.`),null;let o=await this.getLiteralValue(e,V.Namespace.EXOCMD.term("TokenInvocation_parameter"))??"";if(!this.looksLikeUUID(s))return this.logger.warn(`Grounding ${r}: PropertyDefault '${i}' TokenInvocation '${t}' references non-UUID token '${s}' \u2014 entry skipped.`),null;let c=await this.findSubjectByUID(s);return c?this.dispatchSubstitutionToken(c,s,r,i,o):(this.logger.warn(`Grounding ${r}: PropertyDefault '${i}' TokenInvocation '${t}' token ref '${s}' not found in store \u2014 entry skipped.`),null)}async assetIsTokenInvocation(e){let t=await this.tripleStore.match(e,V.Namespace.EXO.term("Instance_class"),void 0);for(let r of t)if(r.object instanceof Jt.IRI){if(r.object.value===MU||r.object.value.includes(EC))return!0}else if(r.object instanceof $t.Literal){let i=this.unwrapWikilink(r.object.value);if(i==="exocmd__TokenInvocation"||i===EC)return!0}return!1}async assetIsSubstitutionToken(e){let t=await this.tripleStore.match(e,V.Namespace.EXO.term("Instance_class"),void 0);for(let r of t)if(r.object instanceof Jt.IRI){if(r.object.value===LU||r.object.value.includes(SC))return!0}else if(r.object instanceof $t.Literal){let i=this.unwrapWikilink(r.object.value);if(i==="exocmd__SubstitutionToken"||i===SC)return!0}return!1}async resolveGroundingTypeReference(e){let t=await this.tripleStore.match(e,V.Namespace.EXOCMD.term("Grounding_type"),void 0);if(t.length===0)return null;let r=t[0].object;if(r instanceof Jt.IRI)return(0,wC.resolveGroundingTypeFromIRI)(r.value);if(r instanceof $t.Literal){let i=r.value,s=i.match(/^\[\[([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\|[^\]]*)?\]\]$/i);return s?(0,wC.resolveGroundingTypeFromIRI)(`obsidian://vault/${s[1].toLowerCase()}.md`):(this.logger.warn(`[exocmd-grounding-type-literal-form] legacy literal-string form '${i}' for exocmd__Grounding_type on <${e.value}>. Migrate to wikilink form per RFC 9d20c91f Phase 3.`),null)}return null}async findSubjectByUID(e){if(this.tripleStore.findSubjectsByUUID){let r=await this.tripleStore.findSubjectsByUUID(e);if(r.length>0)return r[0]}let t=await this.tripleStore.match(void 0,V.Namespace.EXO.term("Asset_uid"),void 0);for(let r of t)if(r.object instanceof $t.Literal&&r.object.value===e)return r.subject;return null}async getLiteralValue(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object;return i instanceof $t.Literal||i instanceof Jt.IRI?i.value:null}looksLikeUUID(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}async resolveLabelByUID(e){let t=await this.findSubjectByUID(e);return t?this.getLiteralValue(t,V.Namespace.EXO.term("Asset_label")):null}async getClassAncestors(e){return(await this.getClassAncestorsWithDepth(e)).map(r=>r.ref)}async getClassAncestorsWithDepth(e){let t=this._ancestorDepthCache.get(e);if(t)return t;let r=new Map,i=new Set,s=await this.resolveClassFileIRI(e);if(!s)return[];let o=new Set([e]),c=await this.getLiteralValue(s,V.Namespace.EXO.term("Asset_uid"));c&&o.add(c);let l=await this.getLiteralValue(s,V.Namespace.EXO.term("Asset_label"));l&&o.add(l);let u=a((h,p)=>{if(o.has(h))return;let y=r.get(h);(y===void 0||p<y)&&r.set(h,p)},"setMin"),f=[{fileIRI:s,depth:0}];for(;f.length>0;){let h=f.shift();if(!h)break;let{fileIRI:p,depth:y}=h;if(y>=$f||i.has(p.value))continue;i.add(p.value);let g=await this.tripleStore.match(p,V.Namespace.EXO.term("Class_superClass"),void 0);for(let b of g){let _=b.object;if(!(_ instanceof Jt.IRI))continue;let S=y+1,x=_.value.startsWith("obsidian://vault/"),A=this.iriToObsidianName(_.value);A&&u(A,S);let T=null;if(x?T=_:A&&(T=await this.resolveClassFileIRI(A)),!T)continue;let R=await this.getLiteralValue(T,V.Namespace.EXO.term("Asset_uid"));R&&u(R,S),i.has(T.value)||f.push({fileIRI:T,depth:S})}}let d=Array.from(r.entries()).map(([h,p])=>({ref:h,depth:p}));return this._ancestorDepthCache.set(e,d),d}async resolveClassFileIRI(e){if(this.looksLikeUUID(e))return this.findSubjectByUID(e);let t=await this.findUidByLabel(e);return t?this.findSubjectByUID(t):null}async findUidByLabel(e){let t=await this.tripleStore.match(void 0,V.Namespace.EXO.term("Asset_label"),void 0);for(let r of t)if(r.object instanceof $t.Literal&&r.object.value===e&&r.subject instanceof Jt.IRI){let i=await this.tripleStore.match(r.subject,V.Namespace.EXO.term("Asset_uid"),void 0);if(i.length>0&&i[0].object instanceof $t.Literal)return i[0].object.value}return null}async getLinkedUID(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object;if(i instanceof Jt.IRI){let s=await this.tripleStore.match(i,V.Namespace.EXO.term("Asset_uid"),void 0);return s.length>0&&s[0].object instanceof $t.Literal?s[0].object.value:i.value.split("/").pop()?.replace(".md","")??null}return i instanceof $t.Literal?this.normalizeWikilink(i.value):null}async getLinkedUIDs(e,t){let r=await this.tripleStore.match(e,t,void 0),i=[];for(let s of r){let o=s.object;if(o instanceof Jt.IRI){let c=await this.tripleStore.match(o,V.Namespace.EXO.term("Asset_uid"),void 0);if(c.length>0&&c[0].object instanceof $t.Literal)i.push(c[0].object.value);else{let l=o.value.split("/").pop()?.replace(".md","");l&&i.push(l)}}else if(o instanceof $t.Literal){let c=this.normalizeWikilink(o.value);c&&i.push(c)}}return i}async getLinkedValue(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object;return i instanceof $t.Literal?this.normalizeWikilink(i.value):i instanceof Jt.IRI?this.iriToObsidianName(i.value)??i.value:null}async getObsidianName(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object;return i instanceof $t.Literal?this.unwrapWikilink(i.value):i instanceof Jt.IRI?this.iriToObsidianName(i.value)??i.value:null}unwrapWikilink(e){if(!e)return e;let t=e.trim().replace(/^"|"$/g,"");if(t.startsWith("http://")||t.startsWith("https://"))return this.iriToObsidianName(t)??t;let r=t.match(/^\[\[([^\]|]+)\|([^\]]+)\]\]$/);if(r)return r[2].trim();let i=t.match(/^\[\[([^\]|]+)\]\]$/);if(i){let s=i[1].trim();return s.startsWith("http://")||s.startsWith("https://")?this.iriToObsidianName(s)??s:s}return t}async getObsidianWikilinkValue(e,t){let r=await this.tripleStore.match(e,t,void 0);if(r.length===0)return null;let i=r[0].object;if(i instanceof $t.Literal)return this.resolveWikilinkAlias(i.value);if(i instanceof Jt.IRI){let s=this.iriToObsidianName(i.value);return s?`"[[${s}]]"`:i.value}return null}async resolveWikilinkAlias(e){let t=e.match(/\[\[([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\]\]/);if(!t)return e;let r=t[1],i=await this.findSubjectByUID(r);if(!i)return e;let s=await this.getLiteralValue(i,V.Namespace.EXO.term("Asset_label"));return s?e.replace(`[[${r}]]`,`[[${r}|${s}]]`):e}iriToObsidianName(e){return(0,CU.iriToObsidianName)(e)}normalizeWikilink(e){let t=e.replace(/["'[\]]/g,"").trim(),r=t.indexOf("|");return r>=0?t.substring(0,r):t}};so.CommandResolver=BS;so.CommandResolver=BS=US=TU([(0,xU.injectable)(),AU("design:paramtypes",[Object,Object])],BS)});var qS=v(VS=>{"use strict";Object.defineProperty(VS,"__esModule",{value:!0});VS.validateExoQLAllowlist=$U;var Dm=Mf();function $U(n){if(!n||typeof n!="object")return;let e=n;if(e.type==="update"){let t=n.updates??[];for(let r of t)if(r?.type==="load")throw new Dm.ExoQLForbiddenKeywordError("LOAD");throw new Dm.ExoQLForbiddenKeywordError("UPDATE")}if(e.type==="query"){if(e.from){let t=Array.isArray(e.from.default)&&e.from.default.length>0,r=Array.isArray(e.from.named)&&e.from.named.length>0;if(t||r)throw new Dm.ExoQLForbiddenKeywordError("FROM")}if(Array.isArray(e.where))for(let t of e.where)Lm(t);if(Array.isArray(e.template))for(let t of e.template)Lm(t)}}a($U,"validateExoQLAllowlist");function Lm(n){if(!n||typeof n!="object")return;if(n.type==="service")throw new Dm.ExoQLForbiddenKeywordError("SERVICE");if(Array.isArray(n.patterns))for(let t of n.patterns)Lm(t);let e=n.where;if(Array.isArray(e))for(let t of e)Lm(t)}a(Lm,"walkPatternForBannedKeywords")});var GS=v(Nm=>{"use strict";Object.defineProperty(Nm,"__esModule",{value:!0});Nm.DEFAULT_EVAL_CONFIG=void 0;Nm.DEFAULT_EVAL_CONFIG=Object.freeze({enabled:!0,maxNestedEvalCount:100,maxAggregateEvalMillis:1e4})});var km=v(WS=>{"use strict";Object.defineProperty(WS,"__esModule",{value:!0});WS.evaluateWithExoEval=HU;var UU=dl(),BU=pl(),VU=Nl(),qU=qS(),GU=GS(),WU=Mf();async function HU(n,e={}){if(typeof n!="string")throw new TypeError("evaluateWithExoEval: sparql must be a string");let r=new UU.ExoQLParser().parse(n);if((0,qU.validateExoQLAllowlist)(r),!{...GU.DEFAULT_EVAL_CONFIG,...e.config??{}}.enabled)throw new WU.ExoQLEvalDisabledError;let s="queryType"in r&&typeof r.queryType=="string"?r.queryType:"SELECT";if(!e.store)return s==="ASK"?{kind:"ask",result:!1}:s==="CONSTRUCT"?{kind:"construct",triples:[]}:{kind:"select",rows:[]};let c=new BU.ExoQLAlgebraTranslator().translate(r),l=new VU.ExoQLQueryExecutor(e.store);return l.isAskQuery(c)?{kind:"ask",result:await l.executeAsk(c)}:l.isConstructQuery(c)?{kind:"construct",triples:await l.executeConstruct(c)}:{kind:"select",rows:await l.executeAll(c)}}a(HU,"evaluateWithExoEval")});var Uf=v(Mm=>{"use strict";Object.defineProperty(Mm,"__esModule",{value:!0});Mm.liveClock=zU;Mm.frozenClock=KU;function zU(){return{now:a(()=>new Date,"now")}}a(zU,"liveClock");function KU(n){let e=new Date(n);return{now:a(()=>new Date(e.getTime()),"now")}}a(KU,"frozenClock")});var RC=v(oo=>{"use strict";var XU=oo&&oo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},YU=oo&&oo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},Bf;Object.defineProperty(oo,"__esModule",{value:!0});oo.PreconditionEvaluator=void 0;var QU=Ve(),JU=dl(),ZU=pl(),IC=Nl(),e8=km(),t8=Uf(),Vf=Bf=class{static{a(this,"PreconditionEvaluator")}constructor(e,t,r){this.hostFunctions=new Map,this.askCache=new Map,this.tripleStore=e,this.queryBodyResolver=t,this.clock=r?.clock??(0,t8.liveClock)()}async evaluate(e,t,r){return e?e.sparqlAsk?this.evaluateSparqlAsk(e.sparqlAsk,t):e.query?this.evaluateQueryRef(e.query,t):e.hostFunction?this.evaluateHostFunction(e.hostFunction,t,r):!0:!0}async evaluateQueryRef(e,t){if(!this.queryBodyResolver)return!1;try{let r=await this.queryBodyResolver.resolveSparql(e);if(!r)return!1;let i=this.substituteVariables(r,t),s=await(0,e8.evaluateWithExoEval)(i,{store:this.tripleStore});return s.kind!=="ask"?!1:s.result}catch{return!1}}registerHostFunction(e,t){this.hostFunctions.set(e,t)}hasHostFunction(e){return this.hostFunctions.has(e)}evaluateHostFunctionSync(e,t,r){return this.hostFunctions.has(e)?this.evaluateHostFunction(e,t,r):null}invalidateCache(){this.askCache.clear()}compileAsk(e){let t=this.substituteVariables(e,Bf.SENTINEL_IRI),i=new JU.ExoQLParser().parse(t),o=new ZU.ExoQLAlgebraTranslator().translate(i);return new IC.ExoQLQueryExecutor(this.tripleStore).isAskQuery(o)?o:null}evaluateHostFunction(e,t,r){let i=this.hostFunctions.get(e);if(!i)return!0;let s=r?{...r,targetIRI:t}:{targetIRI:t};try{return i(s)}catch{return!1}}async evaluateSparqlAsk(e,t){try{let r=this.askCache.get(e);if(r===void 0){let o=this.compileAsk(e);if(!o)return!1;r=o,this.askCache.set(e,r)}let i=JSON.parse(JSON.stringify(r).replaceAll(Bf.SENTINEL_IRI,t));return await new IC.ExoQLQueryExecutor(this.tripleStore).executeAsk(i)}catch{return!1}}substituteVariables(e,t){let r=this.clock.now(),i=r.toISOString(),s=i.slice(0,10),o=new Date(r.getTime()+Bf.ALMATY_OFFSET_MS),c=o.getUTCFullYear(),l=o.getUTCMonth(),u=o.getUTCDate(),f=o.getUTCDay(),h=new Date(Date.UTC(c,l,u-1)).toISOString().slice(0,10),p=(f+6)%7,y=new Date(Date.UTC(c,l,u-p)),g=y.toISOString().slice(0,10),_=new Date(y.getTime()-10080*60*1e3).toISOString().slice(0,10),S=`${c}-${String(l+1).padStart(2,"0")}-01`,x=l===0?11:l-1,T=`${l===0?c-1:c}-${String(x+1).padStart(2,"0")}-01`,R=`${c}-01-01`;return e.replace(/\$target/g,`<${t}>`).replace(/\$now/g,`"${i}"^^xsd:dateTime`).replace(/\$yesterday/g,`"${h}"^^xsd:date`).replace(/\$thisWeekStart/g,`"${g}"^^xsd:date`).replace(/\$lastWeekStart/g,`"${_}"^^xsd:date`).replace(/\$thisMonthStart/g,`"${S}"^^xsd:date`).replace(/\$lastMonthStart/g,`"${T}"^^xsd:date`).replace(/\$thisYearStart/g,`"${R}"^^xsd:date`).replace(/\$today/g,`"${s}"^^xsd:date`)}};oo.PreconditionEvaluator=Vf;Vf.SENTINEL_IRI="urn:exocortex:cache-sentinel:target";Vf.ALMATY_OFFSET_MS=300*60*1e3;oo.PreconditionEvaluator=Vf=Bf=XU([(0,QU.injectable)(),YU("design:paramtypes",[Object,Object,Object])],Vf)});var CC=v(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.hasUidFilename=ao.hasNonUidFilename=void 0;ao.registerDefaultHostFunctions=i8;var r8=a(n=>{let e=n.assetUid;if(typeof e!="string"||e.trim()==="")return!1;let t=n.fileBasename;return typeof t!="string"?!1:t!==e},"hasNonUidFilename");ao.hasNonUidFilename=r8;var n8=a(n=>{let e=n.assetUid;if(typeof e!="string"||e.trim()==="")return!1;let t=n.fileBasename;return typeof t!="string"?!1:t===e},"hasUidFilename");ao.hasUidFilename=n8;function i8(n){n.registerHostFunction("hasNonUidFilename",ao.hasNonUidFilename),n.registerHostFunction("hasUidFilename",ao.hasUidFilename)}a(i8,"registerDefaultHostFunctions")});var $m=v(jm=>{"use strict";Object.defineProperty(jm,"__esModule",{value:!0});jm.liveUidGenerator=s8;jm.seededUidGenerator=a8;var HS=Ti();function s8(){return{next:a(()=>(0,HS.v4)(),"next")}}a(s8,"liveUidGenerator");var o8="6ba7b810-9dad-11d1-80b4-00c04fd430c8";function a8(n){let e=0,t=(0,HS.v5)(n,o8);return{next:a(()=>{let r=`${n}#${e}`;return e+=1,(0,HS.v5)(r,t)},"next")}}a(a8,"seededUidGenerator")});var Vm=v(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.registerResolver=or;ia.getResolver=c8;ia.isResolverModifierAware=l8;ia.getRegisteredResolverIds=u8;ia.clearResolvers=f8;ia.installDefaultResolvers=S8;var Bm=new Map,zS=new Set;function or(n,e,t=!1){Bm.set(n,e),t&&zS.add(n)}a(or,"registerResolver");function c8(n){return Bm.get(n)}a(c8,"getResolver");function l8(n){return zS.has(n)}a(l8,"isResolverModifierAware");function u8(){return Array.from(Bm.keys())}a(u8,"getRegisteredResolverIds");function f8(){Bm.clear(),zS.clear()}a(f8,"clearResolvers");function gn(n){return n<10?`0${n}`:String(n)}a(gn,"pad2");var d8=["January","February","March","April","May","June","July","August","September","October","November","December"],h8=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],p8=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],m8=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function g8(n){let e=["th","st","nd","rd"],t=n%100;return`${n}${e[(t-20)%10]||e[t]||e[0]}`}a(g8,"ordinalDay");var y8=/YYYY|YY|MMMM|MMM|MM|M|Do|DD|D|dddd|ddd|HH|H|hh|h|mm|m|ss|s|A|a/g;function b8(n,e){let t=(n.getHours()+11)%12+1;return e.replace(y8,r=>{switch(r){case"YYYY":return String(n.getFullYear());case"YY":return gn(n.getFullYear()%100);case"MMMM":return d8[n.getMonth()];case"MMM":return h8[n.getMonth()];case"MM":return gn(n.getMonth()+1);case"M":return String(n.getMonth()+1);case"Do":return g8(n.getDate());case"DD":return gn(n.getDate());case"D":return String(n.getDate());case"dddd":return p8[n.getDay()];case"ddd":return m8[n.getDay()];case"HH":return gn(n.getHours());case"H":return String(n.getHours());case"hh":return gn(t);case"h":return String(t);case"mm":return gn(n.getMinutes());case"m":return String(n.getMinutes());case"ss":return gn(n.getSeconds());case"s":return String(n.getSeconds());case"A":return n.getHours()<12?"AM":"PM";case"a":return n.getHours()<12?"am":"pm";default:return r}})}a(b8,"formatDate");function OC(n,e,t){let r=n.getDate(),i=new Date(n.getTime());i.setDate(1),t==="M"?i.setMonth(i.getMonth()+e):i.setFullYear(i.getFullYear()+e);let s=new Date(i.getFullYear(),i.getMonth()+1,0).getDate();return i.setDate(Math.min(r,s)),i}a(OC,"addMonthsClamped");function _8(n,e){if(!e)return n;let t=e.match(/^([+-])(\d+)([dwMy])?$/);if(!t)return n;let r=(t[1]==="-"?-1:1)*parseInt(t[2],10),i=t[3]??"d",s=new Date(n.getTime());switch(i){case"d":s.setDate(s.getDate()+r);break;case"w":s.setDate(s.getDate()+r*7);break;case"M":s=OC(s,r,"M");break;case"y":s=OC(s,r,"y");break}return isNaN(s.getTime())?n:s}a(_8,"applyDateOffset");function w8(n){if(!n)return{offset:null,format:null};let e=n.indexOf(":");if(e<0)return{offset:n||null,format:null};let t=n.slice(0,e),r=n.slice(e+1);return{offset:t||null,format:r||null}}a(w8,"parseDateModifier");function Um(n,e){return(t,r)=>{let{offset:i,format:s}=w8(r),o=new Date;return n!==0&&o.setDate(o.getDate()+n),o=_8(o,i),b8(o,s??e)}}a(Um,"makeDateResolver");function S8(){or("today",()=>new Date().toISOString().slice(0,10)),or("todayStart",()=>new Date(new Date().setHours(0,0,0,0)).toISOString()),or("date",Um(0,"YYYY-MM-DD"),!0),or("now",Um(0,"YYYY-MM-DDTHH:mm:ss"),!0),or("tomorrow",Um(1,"YYYY-MM-DD"),!0),or("yesterday",Um(-1,"YYYY-MM-DD"),!0),or("target",n=>n.targetIRI?`"[[${n.targetIRI}]]"`:""),or("targetFolder",n=>{if(!n.targetFilePath)return"";let e=n.targetFilePath.replace(/^\/+/,""),t=e.lastIndexOf("/");return t>=0?e.slice(0,t):""}),or("randomUUIDv4",()=>{if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();throw new Error("randomUUIDv4 resolver requires crypto.randomUUID() \u2014 runtime is missing Node crypto / Web Crypto API.")}),or("nowTimestamp",()=>{let n=new Date;return`${n.getFullYear()}-${gn(n.getMonth()+1)}-${gn(n.getDate())}T${gn(n.getHours())}:${gn(n.getMinutes())}:${gn(n.getSeconds())}`}),or("nowDate",()=>{let n=new Date;return`${n.getFullYear()}-${gn(n.getMonth()+1)}-${gn(n.getDate())}`}),or("nowYear",()=>String(new Date().getFullYear())),or("nowMonth",()=>gn(new Date().getMonth()+1)),or("userInputLabel",n=>{let e=n.userInput?.label;return typeof e=="string"?e:""}),or("userInput",(n,e)=>{if(!e)return null;let t=n.userInput?.[e];return typeof t=="string"?t:t==null?null:String(t)}),or("targetProperty",(n,e)=>{if(!e||!n.targetFm)return null;let t=n.targetFm[e];return t==null?null:Array.isArray(t)?t.map(String):String(t)}),or("labelAsArray",n=>{let e=n.userInput?.label;return typeof e=="string"&&e.length>0?[e]:[]}),or("groundingTargetClass",n=>n.groundingTargetClassUid?`"[[${n.groundingTargetClassUid}]]"`:null),or("targetClassSelf",n=>{if(!n.targetFilePath)return null;let e=n.targetFilePath.replace(/^\/+/,""),r=e.slice(e.lastIndexOf("/")+1).replace(/\.md$/i,"");return r.length>0?`"[[${r}]]"`:null})}a(S8,"installDefaultResolvers")});var XS=v(qm=>{"use strict";Object.defineProperty(qm,"__esModule",{value:!0});qm.resolveTemplateBody=E8;qm.stripTemplateFrontmatter=T8;var KS=Vm();(0,KS.installDefaultResolvers)();var v8=/\$([A-Za-z][A-Za-z0-9_]*)((?:[+-]\d+[dwMy])?(?::[A-Za-z0-9:./-]+)?)/g;function E8(n,e={}){return n.replace(v8,(t,r,i)=>{let s=(0,KS.getResolver)(r);if(s===void 0)return t;let o=s(e,i.length>0?i:void 0);return typeof o!="string"||o.length===0?t:(0,KS.isResolverModifierAware)(r)?o:o+i})}a(E8,"resolveTemplateBody");function T8(n){let e=n.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return e?n.slice(e[0].length):n}a(T8,"stripTemplateFrontmatter")});var qf=v(Ml=>{"use strict";Object.defineProperty(Ml,"__esModule",{value:!0});Ml.registerOrderSpecLoader=A8;Ml.clearOrderSpecLoader=x8;Ml.loadDefaultSpec=I8;Ml.orderProperties=R8;var Gm=null,sa,Wm=!1;function A8(n){Gm=n,sa=void 0,Wm=!1}a(A8,"registerOrderSpecLoader");function x8(){Gm=null,sa=void 0,Wm=!1}a(x8,"clearOrderSpecLoader");function I8(){if(sa!==void 0)return sa;if(!Gm)return sa=null,null;try{sa=Gm()}catch(n){Wm||(console.warn("[OrderSpecResolver] loader threw, falling back to insertion order:",n),Wm=!0),sa=null}return sa}a(I8,"loadDefaultSpec");function R8(n,e){if(!e||e.head.length===0&&e.tail.length===0)return n;let t=Object.keys(n),r=new Set(e.head),i=new Set(e.tail),s=e.head.filter(u=>Object.prototype.hasOwnProperty.call(n,u)),o=e.tail.filter(u=>Object.prototype.hasOwnProperty.call(n,u)),c=t.filter(u=>!r.has(u)&&!i.has(u));e.middleStrategy==="alphabetical"&&c.sort((u,f)=>u.localeCompare(f));let l={};for(let u of s)l[u]=n[u];for(let u of c)l[u]=n[u];for(let u of o)l[u]=n[u];return l}a(R8,"orderProperties")});var ws=v(Hm=>{"use strict";Object.defineProperty(Hm,"__esModule",{value:!0});Hm.FrontmatterService=void 0;var PC=qf(),Gf=class n{static{a(this,"FrontmatterService")}parse(e){let t=e.match(n.FRONTMATTER_REGEX);return t?{exists:!0,content:t[1],originalContent:e}:{exists:!1,content:"",originalContent:e}}parseObject(e){let t=this.parse(e);if(!t.exists)return null;let r={},i=t.content.split(/\r?\n/),s=null,o=null,c=a(()=>{s!==null&&o!==null&&(r[s]=o),s=null,o=null},"flushArray");for(let l of i){let u=/^ {2}- (.*)$/.exec(l);if(u){s!==null&&o!==null&&o.push(u[1].trim());continue}c();let f=/^([^:\s][^:]*):\s*(.*)$/.exec(l);if(!f)continue;let d=f[1].trim(),h=f[2].trim();h===""?(s=d,o=[]):r[d]=h}return c(),r}updateProperty(e,t,r){t=n.normalizeIRI(t),typeof r=="string"&&(r=n.normalizeIRIValue(r));let i=this.parse(e),s=this.serializeValue(t,r);if(!i.exists)return`---
71
71
  ${s}
72
72
  ---
73
73
  ${e}`;let o=i.content;if(this.hasProperty(o,t)){let c=new RegExp(`${this.escapeRegex(t)}:.*(?:
@@ -78,7 +78,7 @@ ${o}
78
78
  ?${this.escapeRegex(t)}:.*(?:
79
79
  {2}- .*)*`,"gm"),s=r.content.replace(i,"");return e.replace(n.FRONTMATTER_REGEX,`---
80
80
  ${s}
81
- ---`)}hasProperty(e,t){return e.includes(`${t}:`)}static normalizeIRI(e){let t=e.lastIndexOf("#");if(t<0)return e;let r=e.substring(0,t+1),i=e.substring(t+1),s=n.IRI_PREFIX_MAP[r];return s?s+i:e}static normalizeIRIValue(e){let t=e.match(/^obsidian:\/\/vault\/.*\/([^/]+)\.md$/);if(t)return`"[[${t[1]}]]"`;let r=n.normalizeIRI(e);return r!==e?`"[[${r}]]"`:e}createFrontmatter(e,t){let r=(0,P3.orderProperties)(t,(0,P3.loadDefaultSpec)()),s=`---
81
+ ---`)}hasProperty(e,t){return e.includes(`${t}:`)}static normalizeIRI(e){let t=e.lastIndexOf("#");if(t<0)return e;let r=e.substring(0,t+1),i=e.substring(t+1),s=n.IRI_PREFIX_MAP[r];return s?s+i:e}static normalizeIRIValue(e){let t=e.match(/^obsidian:\/\/vault\/.*\/([^/]+)\.md$/);if(t)return`"[[${t[1]}]]"`;let r=n.normalizeIRI(e);return r!==e?`"[[${r}]]"`:e}createFrontmatter(e,t){let r=(0,PC.orderProperties)(t,(0,PC.loadDefaultSpec)()),s=`---
82
82
  ${Object.entries(r).map(([c,l])=>this.serializeValue(c,l)).join(`
83
83
  `)}
84
84
  ---`,o=e.startsWith(`
@@ -88,9 +88,9 @@ ${Object.entries(r).map(([c,l])=>this.serializeValue(c,l)).join(`
88
88
  ${r}`}return`${e}: ${String(t)}`}escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}};Hm.FrontmatterService=Gf;Gf.FRONTMATTER_REGEX=/^---\n([\s\S]*?)\n---/;Gf.IRI_PREFIX_MAP={"https://exocortex.my/ontology/ems#":"ems__","https://exocortex.my/ontology/exo#":"exo__","https://exocortex.my/ontology/exocmd#":"exocmd__","https://exocortex.my/ontology/ims#":"ims__","https://exocortex.my/ontology/ztlk#":"ztlk__","https://exocortex.my/ontology/ptms#":"ptms__","https://exocortex.my/ontology/lit#":"lit__","https://exocortex.my/ontology/inbox#":"inbox__","https://exocortex.my/ontology/pmbok#":"pmbok__"}});var Mn=v(zm=>{"use strict";Object.defineProperty(zm,"__esModule",{value:!0});zm.DateFormatter=void 0;var YS=class n{static{a(this,"DateFormatter")}static toISOTimestamp(e){return e.toISOString().replace(/\.\d{3}Z$/,"Z")}static toLocalTimestamp(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0"),s=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),c=String(e.getSeconds()).padStart(2,"0");return`${t}-${r}-${i}T${s}:${o}:${c}`}static toDateWikilink(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0");return`"[[${t}-${r}-${i}]]"`}static getTodayWikilink(){return n.toDateWikilink(new Date)}static toDateString(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${i}`}static parseWikilink(e){let r=e.replace(/^["']|["']$/g,"").match(/\[\[(\d{4}-\d{2}-\d{2})\]\]/);return r?r[1]:null}static addDays(e,t){let r=new Date(e);return r.setDate(r.getDate()+t),r}static isSameDay(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}static getTodayStartTimestamp(){let e=new Date;return e.setHours(0,0,0,0),n.toLocalTimestamp(e)}static toTimestampAtStartOfDay(e){let t=e.split("-").map(Number);if(t.length!==3||t.some(isNaN))throw new Error(`Invalid date format: ${e}. Expected YYYY-MM-DD`);let[r,i,s]=t,o=new Date(r,i-1,s,0,0,0,0);if(isNaN(o.getTime()))throw new Error(`Invalid date values: ${e}`);return n.toLocalTimestamp(o)}static normalizeTimestamp(e){if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/.test(e))return e;let t=new Date(e);if(isNaN(t.getTime()))throw new Error(`Invalid timestamp format: ${e}`);return n.toISOTimestamp(t)}static isISOTimestamp(e){return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/.test(e)}};zm.DateFormatter=YS});var oc=v(Km=>{"use strict";Object.defineProperty(Km,"__esModule",{value:!0});Km.LoggingService=void 0;var Wf=class{static{a(this,"LoggingService")}static setVerbose(e){this.isVerbose=e}static setDevelopmentMode(e){this.isDevelopment=e}static checkIsDevelopment(){return this.isDevelopment!==void 0?this.isDevelopment:typeof process<"u"?(this.isDevelopment=!1,this.isDevelopment):(this.isDevelopment=!1,this.isDevelopment)}static debug(e,t){this.isVerbose&&console.debug(`[Exocortex] ${e}`,t??"")}static info(e,t){console.log(`[Exocortex] ${e}`,t??"")}static warn(e,t){console.warn(`[Exocortex] ${e}`,t??"")}static error(e,t,r){let i=this.checkIsDevelopment(),s=r?` [${r}]`:"";if(i){let o=t?.stack?`
89
89
  Stack trace:
90
90
  ${t.stack}`:"";console.error(`[Exocortex ERROR]${s} ${e}${o}`,t??"")}else{let o=t?.message?`
91
- Details: ${t.message}`:"";console.error(`[Exocortex ERROR]${s} ${e}${o}`)}}};Km.LoggingService=Wf;Wf.isVerbose=!1;Wf.isDevelopment=void 0});var N3=v(Ar=>{"use strict";var C8=Ar&&Ar.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},O8=Ar&&Ar.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},Yn;Object.defineProperty(Ar,"__esModule",{value:!0});Ar.GroundingExecutor=Ar.ServiceRegistry=Ar.CLASS_UID_TO_LABEL=Ar.STATUS_UID_BY_ENUM=void 0;var P8=Ve(),F8=Uf(),D8=$m(),jn=Wo(),L8=XS(),Xm=Yc(),N8=rl(),ac=Qc(),k8=Ce(),M8=ws(),QS=Mn(),F3=Lf(),cc=oc();Ar.STATUS_UID_BY_ENUM={[ac.EffortStatus.DRAFT]:"c42245d0-01de-4c35-bfcf-d910445ea28e",[ac.EffortStatus.BACKLOG]:"753a44d5-846c-4b82-9196-4fd9a4d48777",[ac.EffortStatus.ANALYSIS]:"cde3525c-57ea-4efc-b477-2e7e7ccd3a1e",[ac.EffortStatus.TODO]:"6a0e933a-6653-46f4-95ae-ed7508177c73",[ac.EffortStatus.DOING]:"027e78f4-6e16-4b36-b8fb-5510507d5745",[ac.EffortStatus.DONE]:"7b9b3116-7c3c-438c-9618-94fe301320a6",[ac.EffortStatus.TRASHED]:"5d14f18d-db2b-4847-9ac1-144cb93b2541"};var j8=Object.freeze(Object.fromEntries(Object.entries(Ar.STATUS_UID_BY_ENUM).map(([n,e])=>[e,n])));Ar.CLASS_UID_TO_LABEL=Object.freeze({"1b20a8f0-d745-4e93-91db-4531b3df120e":Xm.AssetClass.TASK,"7db5eeff-718a-49b0-8d2b-39b084a356e3":Xm.AssetClass.PROJECT,"1b0a5e34-dd7f-4ead-b43a-6c7c5a5ecaca":Xm.AssetClass.MEETING});var JS=Vm();(0,JS.installDefaultResolvers)();function $8(n){if(n){if(n==="1b20a8f0-d745-4e93-91db-4531b3df120e")return"ems__Task";if(n==="7db5eeff-718a-49b0-8d2b-39b084a356e3")return"ems__Project";if(n==="ems__Task"||n==="ems__Project")return n}}a($8,"resolveClassFlipTarget");var D3=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,U8=/^__SUBSTITUTE__([a-zA-Z][a-zA-Z0-9_]*)__[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}__$/,B8=/^__SUBSTITUTE_P__([a-zA-Z][a-zA-Z0-9_]*)__[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}__([A-Za-z0-9_-]*)__$/,Ym=class{static{a(this,"ServiceRegistry")}constructor(){this.services=new Map}register(e,t){this.services.set(e,t)}get(e){return this.services.get(e)}has(e){return this.services.has(e)}getRegisteredIds(){return Array.from(this.services.keys())}};Ar.ServiceRegistry=Ym;var L3=20,Qm=Yn=class{static{a(this,"GroundingExecutor")}constructor(e,t,r,i,s){this.frontmatterService=new M8.FrontmatterService,this.fileReader=e,this.fileWriter=t,this.serviceRegistry=r,this.classLabelToUid=i,this.refToFolder=s?.refToFolder,this.workflowResolver=s?.workflowResolver,this.groundingLoader=s?.groundingLoader,this.templateLoader=s?.templateLoader,this.namedQueryRunner=s?.namedQueryRunner,this.clock=s?.clock??(0,F8.liveClock)(),this.uidGen=s?.uidGenerator??(0,D8.liveUidGenerator)()}async execute(e,t,r,i){try{switch(e.type){case jn.GroundingType.PROPERTY_SET:return await this.executePropertySet(e,t,r,i);case jn.GroundingType.PROPERTY_DELETE:return await this.executePropertyDelete(e,r);case jn.GroundingType.COMPOSITE:return await this.executeComposite(e,t,r,i,0);case jn.GroundingType.SERVICE_CALL:return await this.executeServiceCall(e,t,r,i);case jn.GroundingType.CREATE_INSTANCE:return await this.executeCreateInstance(e,t,r,i);case jn.GroundingType.PROPERTY_APPEND:return await this.executePropertyAppend(e,t,r,i);case jn.GroundingType.PROPERTY_INCREMENT:return await this.executePropertyIncrement(e,r);case jn.GroundingType.PROPERTY_SHIFT:return await this.executePropertyShift(e,r);case jn.GroundingType.SPARQL_UPDATE:return{success:!1,error:"sparql_update grounding not yet implemented. Use property_set/property_delete instead."};case jn.GroundingType.WORKFLOW_TRANSITION:return await this.executeWorkflowTransition(e,t,r,i);case jn.GroundingType.BODY_TEMPLATE:return await this.executeBodyTemplate(e,t,r,i);default:return{success:!1,error:`Unknown grounding type: ${e.type}`}}}catch(s){return{success:!1,error:s instanceof Error?s.message:String(s)}}}async executePropertySet(e,t,r,i){if(!e.targetProperty)return{success:!1,error:"property_set requires targetProperty"};let s;if([e.targetValueRef!==void 0,e.targetValueLiteral!==void 0,e.targetValueSubstitution!==void 0,e.targetValueQuery!==void 0].filter(Boolean).length>1)return{success:!1,error:"property_set: more than one of targetValueRef/targetValueLiteral/targetValueSubstitution/targetValueQuery set (cardinality 0..1 each, mutually exclusive)"};if(e.targetValueRef!==void 0)s=`"[[${e.targetValueRef}]]"`;else if(e.targetValueLiteral!==void 0)s=e.targetValueLiteral;else if(e.targetValueSubstitution!==void 0)s=e.targetValueSubstitution;else if(e.targetValueQuery!==void 0){let d=await this.resolveTargetValueQuery(e.targetValueQuery,t);if(!d.success)return d;s=d.value}else return{success:!1,error:"property_set requires one of targetValueRef/targetValueLiteral/targetValueSubstitution/targetValueQuery"};if(/\$(input|value)\b/.test(s)&&(i===void 0||i.value===void 0||i.value===null))return{success:!1,error:"property_set: substituted value contains $input/$value placeholder but no userInput.value provided"};let l=this.substituteVariables(s,t,i),u=await this.fileReader.readFile(r),f=this.frontmatterService.updateProperty(u,e.targetProperty,l);return await this.fileWriter.updateFile(r,f),{success:!0}}async resolveTargetValueQuery(e,t){if(!this.namedQueryRunner)return{success:!1,error:"property_set targetValueQuery requires NamedQueryRunner injection (options.namedQueryRunner). Wire the plugin/CLI before using this value-source."};let r;try{r=await this.namedQueryRunner.runScalar(e,{currentAsset:t})}catch(s){return{success:!1,error:`property_set targetValueQuery: NamedQuery '${e}' failed \u2014 ${s instanceof Error?s.message:String(s)}`}}return r===null?{success:!1,error:`property_set targetValueQuery: NamedQuery '${e}' returned no scalar value (empty result set or non-scalar shape).`}:{success:!0,value:r.kind==="iri"?`"[[${r.value}]]"`:r.value}}async executePropertyDelete(e,t){if(!e.targetProperty)return{success:!1,error:"property_delete requires targetProperty"};let r=await this.fileReader.readFile(t),i=this.frontmatterService.removeProperty(r,e.targetProperty);return await this.fileWriter.updateFile(t,i),{success:!0}}async executeComposite(e,t,r,i,s){if(s>=L3)return{success:!1,error:`Composite grounding exceeded maximum depth of ${L3}`};let o=e.steps??[];if(o.length===0)return{success:!0};let c;try{c=await this.fileReader.readFile(r)}catch{}let l=[],u;try{for(let f=0;f<o.length;f++){let d=o[f],h=d.type===jn.GroundingType.BODY_TEMPLATE&&u?u:r,p=await this.executeStep(d,t,h,i,s+1);if(!p.success)return await this.rollback(c,r,l),{success:!1,error:`Composite step ${f} failed: ${p.error}`};p.openPath&&(u=p.openPath),l.push(f)}return{success:!0}}catch(f){return await this.rollback(c,r,l),{success:!1,error:`Composite execution failed: ${f instanceof Error?f.message:String(f)}`}}}async executeServiceCall(e,t,r,i){let s=e.targetProperty;if(!s)return{success:!1,error:"service_call requires targetProperty as serviceId"};if(s==="convertToTask")return await this.executeConvertToTask(r);if(s==="updateProperty"){let l=$8(e.targetValueRef);if(l==="ems__Task")return await this.executeConvertToTask(r);if(l==="ems__Project")return await this.executeConvertToProject(r)}let o=this.serviceRegistry.get(s);if(!o)return{success:!1,error:`Service not found: "${s}". Registered services: ${this.serviceRegistry.getRegisteredIds().join(", ")||"none"}`};let c=i;if(e.isDefinedBy&&(c={isDefinedBy:e.isDefinedBy,...c??{}}),e.serviceCallPayload)try{let l=this.substituteVariables(e.serviceCallPayload,t,i),u=JSON.parse(l);typeof u=="object"&&u!==null&&(c={...u,...c??{}})}catch{}return await o.execute(t,c),{success:!0}}async executeConvertToTask(e){let t=await this.fileReader.readFile(e),r=await this.resolveClassRefToUid("ems__Task"),i=this.frontmatterService.updateProperty(t,"exo__Instance_class",`["[[${r}]]"]`);return await this.fileWriter.updateFile(e,i),{success:!0}}async executeConvertToProject(e){let t=await this.fileReader.readFile(e),r=await this.resolveClassRefToUid("ems__Project"),i=this.frontmatterService.updateProperty(t,"exo__Instance_class",`["[[${r}]]"]`);return await this.fileWriter.updateFile(e,i),{success:!0}}async executeBodyTemplate(e,t,r,i){let s=null;if(e.templateRef)if(this.templateLoader){if(s=await this.templateLoader(e.templateRef),s===null)return{success:!1,error:`body_template: templateRef "${e.templateRef}" did not resolve to a template body (asset missing or empty).`}}else{if(e.bodyTemplate===void 0)return{success:!1,error:`body_template: templateRef "${e.templateRef}" set but no TemplateLoaderPort is wired (and no inline bodyTemplate fallback).`};s=e.bodyTemplate}else if(e.bodyTemplate!==void 0)s=e.bodyTemplate;else return{success:!1,error:"body_template requires bodyTemplate or templateRef"};let o=(0,L8.resolveTemplateBody)(s,{userInput:i,targetIRI:t,targetFilePath:r}),c;try{c=await this.fileReader.readFile(r)}catch(u){return{success:!1,error:`body_template: failed to read target file "${r}": ${u instanceof Error?u.message:String(u)}`}}let l=Yn.replaceBody(c,o);return await this.fileWriter.updateFile(r,l),{success:!0}}static replaceBody(e,t){let r=e.match(/^---\r?\n[\s\S]*?\r?\n---/);return r?`${r[0]}
92
- ${t}`:t}async executeCreateInstance(e,t,r,i){if(!e.targetFolder)return{success:!1,error:"create_instance requires targetFolder"};let s={},o=null;if((e.inheritanceRule&&e.inheritanceRule.length>0||e.propertyDefault&&e.propertyDefault.some(y=>typeof y.value=="string"&&y.value.includes("__SUBSTITUTE"))||e.labelTemplate!==void 0&&/\$target\./.test(e.labelTemplate))&&t&&r){let y;try{y=await this.fileReader.readFile(r)}catch(g){return{success:!1,error:`create_instance: failed to read $target file "${r}": ${g instanceof Error?g.message:String(g)}`}}o=this.frontmatterService.parseObject(y)??null}let l;e.targetClass&&(l=await this.resolveClassRefToUid(e.targetClass));let u={userInput:i,targetIRI:t,targetFilePath:r,targetFm:o??void 0,groundingTargetClassUid:l};if(e.propertyDefault&&e.propertyDefault.length>0&&this.applyPropertyDefaultStep(s,e.propertyDefault,u),this.applyMissingScalarPrimitives(s,i,l,e,t,o,r),i)for(let[y,g]of Object.entries(i))y!=="label"&&g!=null&&(s[y]=g);if(e.inheritanceRule&&e.inheritanceRule.length>0&&o&&await this.applyInheritanceRuleStep(s,e.inheritanceRule,o),this.applyMissingBacklinkTopUp(s,e,t,r),t&&e.linkBackProperty&&s[e.linkBackProperty]===void 0){let y=Yn.extractBacklinkTarget(t,r);s[e.linkBackProperty]=`"[[${y}]]"`}let f=s.exo__Asset_uid,d=this.frontmatterService.createFrontmatter("",s),h=e.targetFolder.includes("$isDefinedByFolder")?await this.resolveIsDefinedByFolder(s,r):this.substituteVariables(e.targetFolder,t,i,void 0,r),p=h?`${h}/${f}.md`:`${f}.md`;return await this.fileWriter.createFile(p,d),{success:!0,openPath:p}}async resolveIsDefinedByFolder(e,t){let r=Yn.parentFolderOf(t),i=e.exo__Asset_isDefinedBy,s=Yn.extractBareRef(i);if(s&&this.refToFolder)try{let o=await this.refToFolder(s);if(o!=null)return o}catch(o){cc.LoggingService.error(`[GroundingExecutor] $isDefinedByFolder resolution failed for ref "${s}" \u2014 falling back to host folder.`,o instanceof Error?o:new Error(String(o)))}return r}static parentFolderOf(e){let t=e.replace(/^\/+/,""),r=t.lastIndexOf("/");return r>=0?t.slice(0,r):""}static extractBareRef(e){if(typeof e!="string")return null;let t=e.trim();t=t.replace(/^["']|["']$/g,"").trim(),t=t.replace(/^\[\[/,"").replace(/\]\]$/,"");let r=t.indexOf("|");return r>=0&&(t=t.slice(0,r)),t=t.trim(),t.length>0?t:null}async resolveClassRefToUid(e){if(D3.test(e)||!this.classLabelToUid)return e;try{let t=await this.classLabelToUid(e);return t&&t.length>0?t:e}catch{return e}}applyPropertyDefaultStep(e,t,r){for(let{propertyName:i,value:s}of t){if(e[i]!==void 0)continue;let o=this.resolveSubstitutionMarker(s,r);if(o!=null){if(Array.isArray(o)){if(o.length===0)continue;e[i]=o;continue}if(i==="exo__Instance_class"&&typeof o=="string"){e[i]=[o];continue}e[i]=o}}}applyMissingScalarPrimitives(e,t,r,i,s,o,c){let l=[];e.exo__Asset_uid===void 0&&(e.exo__Asset_uid=this.uidGen.next(),l.push("exo__Asset_uid")),e.exo__Asset_createdAt===void 0&&(e.exo__Asset_createdAt=QS.DateFormatter.toLocalTimestamp(this.clock.now()),l.push("exo__Asset_createdAt"));let u=typeof e.exo__Asset_label=="string"&&e.exo__Asset_label.trim().length===0;if(e.exo__Asset_label===void 0||u){let f=t?.label;if(f===void 0&&i?.labelTemplate)try{let h=this.substituteVariables(i.labelTemplate,s??"",t,o??void 0,c);h.trim().length>0&&(f=h)}catch(h){cc.LoggingService.error(`[GroundingExecutor] labelTemplate substitution failed: ${h instanceof Error?h.message:String(h)}. Falling back to "Untitled".`)}let d=f??"Untitled";e.exo__Asset_label=d,d!=="Untitled"&&e.aliases===void 0&&(e.aliases=[d]),l.push("exo__Asset_label")}e.exo__Instance_class===void 0&&r&&(e.exo__Instance_class=[`"[[${r}]]"`],l.push("exo__Instance_class")),l.length>0&&cc.LoggingService.error(`[GroundingExecutor] Universal Default Template did not cover essential scalar primitives: ${l.join(", ")}. Filled from legacy TS fallback. Vault may be in an unhealthy state \u2014 verify UniversalDefaultTemplate singleton is present and complete.`)}applyMissingBacklinkTopUp(e,t,r,i){if(!r||t.linkBackProperty||e.exo__Asset_prototype!==void 0||e.ems__Effort_parent!==void 0)return;let s=Yn.extractBacklinkTarget(r,i);Yn.propertiesReferenceTarget(e,s)||(e.exo__Asset_prototype=`"[[${s}]]"`,cc.LoggingService.error("[GroundingExecutor] No backlink rule fired (Universal IRs absent or no class match). Falling back to legacy exo__Asset_prototype default. Bug #5 may surface if target is not a prototype-instance."))}static propertiesReferenceTarget(e,t){if(!t)return!1;let r=`[[${t}]]`,i=a(s=>typeof s=="string"&&s.includes(r),"refs");for(let s of Object.values(e))if(i(s)||Array.isArray(s)&&s.some(i))return!0;return!1}resolveSubstitutionMarker(e,t){let r=e.match(B8);if(r){let c=r[1],l=r[2],u=Yn.decodeBase64UrlSafe(l),f=(0,JS.getResolver)(c);return f?f(t,u):(cc.LoggingService.warn(`[GroundingExecutor] Parameterised marker references unknown resolver '${c}' \u2014 value left as marker.`),e)}let i=e.match(U8);if(!i)return e;let s=i[1];if(s==="target"){let c=t.targetIRI??"",l=t.targetFilePath??"";return`"[[${Yn.extractBacklinkTarget(c,l)}]]"`}if(s==="targetFolder"){let c=t.targetFilePath??"";if(!c)return"";let l=c.replace(/^\/+/,""),u=l.lastIndexOf("/");return u>=0?l.slice(0,u):""}let o=(0,JS.getResolver)(s);return o?o(t):(cc.LoggingService.warn(`[GroundingExecutor] Marker references unknown resolver '${s}' \u2014 value left as marker.`),e)}static decodeBase64UrlSafe(e){return(0,N8.base64ToUtf8)(e.replace(/-/g,"+").replace(/_/g,"/"))}async applyInheritanceRuleStep(e,t,r){let i=this.extractTargetClassNames(r),s=[];for(let o of t)!await this.inheritanceConditionMatches(o.targetClassCondition,o.targetClassConditionUid,i)||await this.inheritanceExclusionMatches(o.targetClassExclusion,o.targetClassExclusionUids,i)||s.push(o);s.sort((o,c)=>c.priority-o.priority);for(let o of s){if(e[o.targetPropertyName]!==void 0)continue;let c=r[o.sourcePropertyName];c!=null&&(e[o.targetPropertyName]=this.formatInheritedValue(c))}}async inheritanceConditionMatches(e,t,r){return!e&&!t?!0:this.classRefMatchesAny(e,t,r)}async inheritanceExclusionMatches(e,t,r){for(let i of t??[])if(i&&r.includes(i))return!0;for(let i of e)if(await this.classRefMatchesAny(i,void 0,r))return!0;return!1}async classRefMatchesAny(e,t,r){if(t&&r.includes(t)||e&&r.includes(e))return!0;if(e&&this.classLabelToUid)try{let i=await this.classLabelToUid(e);if(i&&i.length>0&&r.includes(i))return!0}catch{}return!1}extractTargetClassNames(e){let t=e.exo__Instance_class;if(t==null)return[];let r=Array.isArray(t)?t:[t],i=[];for(let s of r){let o=this.extractWikilinkInner(String(s));o&&i.push(o)}return i}extractWikilinkInner(e){let t=e.match(/\[\[([^\]|]+)(?:\|[^\]]*)?\]\]/);return t?t[1].trim():e.replace(/^["']|["']$/g,"").trim()}formatInheritedValue(e){return Array.isArray(e)?e.map(t=>this.formatInheritedScalar(String(t))):this.formatInheritedScalar(String(e))}formatInheritedScalar(e){return/^"?\[\[.+\]\]"?$/.test(e)?this.reformatWikilink(e):D3.test(e)?`"[[${e}]]"`:e}reformatWikilink(e){return e.startsWith('"[[')&&e.endsWith(']]"')?e:e.startsWith("[[")&&e.endsWith("]]")?`"${e}"`:e}async executeStep(e,t,r,i,s){return e.type===jn.GroundingType.COMPOSITE?this.executeComposite(e,t,r,i,s):this.execute(e,t,r,i)}async rollback(e,t,r){if(e!==void 0)try{await this.fileWriter.updateFile(t,e)}catch(i){cc.LoggingService.error(`[GroundingExecutor] Rollback failed for ${t}`,i instanceof Error?i:new Error(String(i)))}}substituteVariables(e,t,r,i,s){let o=this.clock.now(),c=o.toISOString(),l=QS.DateFormatter.toLocalTimestamp(o),u=c.slice(0,10),f=`${u}T00:00:00`,d=`${l.slice(0,10)}-${l.slice(11,13)}-${l.slice(14,16)}`,h=e.replace(/\$target\.([A-Za-z_][\w]*)/g,(p,y)=>{if(!i)throw new Error(`$target.${y} substitution requires target frontmatter context; none was supplied (asset IRI: ${t})`);let g=i[y];if(g==null)throw new Error(`$target.${y} is undefined on asset ${t}`);if(Array.isArray(g))throw new Error(`$target.${y} resolved to an array on asset ${t}; only scalar properties are supported for substitution`);return String(g).replace(/^["'](.*)["']$/,"$1")});if(/\$targetFolder\b/.test(h)){if(!s)throw new Error("$targetFolder substitution requires targetFilePath context; none was supplied (asset IRI: "+t+")");let p=s.replace(/^\/+/,""),y=p.lastIndexOf("/"),g=y>=0?p.slice(0,y):"";h=h.replace(/\$targetFolder\b/g,g)}if(h=h.replace(/\$target/g,t).replace(/\$nowCompact\b/g,d).replace(/\$nowLocal/g,l).replace(/\$now/g,c).replace(/\$todayStart\b/g,f).replace(/\$today/g,u),r?.value!==void 0&&r.value!==null){let p=String(r.value);h=h.replace(/\$input\b/g,p).replace(/\$value\b/g,p)}return h}async executePropertyAppend(e,t,r,i){if(!e.targetProperty)return{success:!1,error:"property_append requires targetProperty"};if(e.appendExpression===void 0)return{success:!1,error:"property_append requires appendExpression"};let s=await this.fileReader.readFile(r),o=this.frontmatterService.parseObject(s)??{},c=this.substituteVariables(e.appendExpression,t,i,o),l=o[e.targetProperty],u=Array.isArray(l)?l:l!==void 0?[String(l)]:[],f=a(y=>y.replace(/^["'](.*)["']$/,"$1"),"stripQuotes"),d=new Set(u.map(f)),h;if(d.has(f(c)))h=u;else{let y=`"${f(c)}"`;h=[...u,y]}let p=this.frontmatterService.updateProperty(s,e.targetProperty,h);return await this.fileWriter.updateFile(r,p),{success:!0}}async executePropertyIncrement(e,t){if(!e.targetProperty)return{success:!1,error:"property_increment requires targetProperty"};let r=e.incrementBy??1;if(!Number.isFinite(r)||!Number.isInteger(r))return{success:!1,error:`property_increment: incrementBy must be an integer (got ${String(e.incrementBy)})`};let i=await this.fileReader.readFile(t),o=(this.frontmatterService.parseObject(i)??{})[e.targetProperty],c;if(o==null||o==="")c=0;else{if(Array.isArray(o))return{success:!1,error:`property_increment: targetProperty "${e.targetProperty}" is an array, expected integer`};{let f=String(o).replace(/^["'](.*)["']$/,"$1").trim();if(!/^-?\d+$/.test(f))return{success:!1,error:`property_increment: targetProperty "${e.targetProperty}" current value "${String(o)}" is not a valid integer`};c=Number.parseInt(f,10)}}let l=c+r,u=this.frontmatterService.updateProperty(i,e.targetProperty,l);return await this.fileWriter.updateFile(t,u),{success:!0}}async executePropertyShift(e,t){if(!e.targetProperty)return{success:!1,error:"property_shift requires targetProperty"};if(!e.shiftDelta)return{success:!1,error:"property_shift requires shiftDelta (ISO-8601 duration literal)"};let r=await this.fileReader.readFile(t),s=(this.frontmatterService.parseObject(r)??{})[e.targetProperty];if(s==null||s==="")return{success:!1,error:`property_shift: targetProperty "${e.targetProperty}" is not set on target asset`};if(Array.isArray(s))return{success:!1,error:`property_shift: targetProperty "${e.targetProperty}" is an array, expected single datetime`};let o=String(s).replace(/^["'](.*)["']$/,"$1").trim(),c=new Date(o);if(Number.isNaN(c.getTime()))return{success:!1,error:`property_shift: current value "${o}" is not a valid datetime`};let l;try{l=Yn.applyIsoDuration(c,e.shiftDelta)}catch(d){return{success:!1,error:`property_shift: invalid shiftDelta "${e.shiftDelta}": ${d instanceof Error?d.message:String(d)}`}}let u=QS.DateFormatter.toLocalTimestamp(l),f=this.frontmatterService.updateProperty(r,e.targetProperty,u);return await this.fileWriter.updateFile(t,f),{success:!0}}async executeWorkflowTransition(e,t,r,i){if(!this.workflowResolver)return{success:!1,error:"workflow_transition requires WorkflowResolver injection (options.workflowResolver). Wire the plugin/CLI before using this grounding type."};let s=await this.fileReader.readFile(r),o=this.frontmatterService.parseObject(s)??{},c=this.resolveAssetClassFromFrontmatter(o);if(!c)return{success:!1,error:"workflow_transition: target asset has no recognised ems__* class in exo__Instance_class (cannot resolve workflow)."};let l=this.resolveStatusFromFrontmatter(o);if(!l)return{success:!1,error:"workflow_transition: target asset has no parseable ems__Effort_status value (need wikilink to an ems__EffortStatus* asset)."};let u;try{u=new k8.IRI(t)}catch(x){return{success:!1,error:`workflow_transition: invalid targetIRI "${t}" \u2014 ${x instanceof Error?x.message:String(x)}`}}let f=await this.workflowResolver.resolveForAsset(u,c),d=e.direction??"forward",h=d==="rollback",p=f.transitions.find(x=>x.from===l&&x.isRollback===h);if(!p)return{success:!1,error:`workflow_transition: no ${d} transition from "${l}" defined in workflow "${f.name}" (target class: ${c}).`};let y=Ar.STATUS_UID_BY_ENUM[p.to];if(!y)return{success:!1,error:`workflow_transition: no UID mapping for destination status "${p.to}" (transition target unreachable).`};let g={id:`${e.id}.statusMutation`,label:`workflow_transition: ${p.from} \u2192 ${p.to}`,type:jn.GroundingType.PROPERTY_SET,targetProperty:"ems__Effort_status",targetValueRef:y},b=await this.executePropertySet(g,t,r,i);if(!b.success)return{success:!1,error:`workflow_transition: status mutation failed \u2014 ${b.error}`};let _=p.postActions??[],S=this.groundingLoader;if(_.length>0&&S===void 0)return{success:!1,error:"workflow_transition: transition has postActions but no GroundingLoader injected (options.groundingLoader). Wire commandResolver.loadGroundingByUid in plugin/CLI."};for(let x of _){if(S===void 0)break;let A=await S(x);if(!A)return{success:!1,error:`workflow_transition: postAction grounding UID "${x}" could not be loaded (asset missing or invalid Grounding shape).`};let T=await this.execute(A,t,r,i);if(!T.success)return{success:!1,error:`workflow_transition: postAction "${A.label}" (UID ${x}) failed \u2014 ${T.error}`}}return{success:!0}}resolveAssetClassFromFrontmatter(e){let t=e.exo__Instance_class;if(t==null)return null;let r=Array.isArray(t)?t:[t],i=new Set(Object.values(Xm.AssetClass));for(let s of r){if(typeof s!="string")continue;let o=s.replace(/^\s*"?\[\[/,"").replace(/\]\]"?\s*$/,""),l=(o.includes("|")?o.split("|")[1]:o).trim();if(i.has(l))return l;let u=o.match(/^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i);if(u){let f=Ar.CLASS_UID_TO_LABEL[u[1].toLowerCase()];if(f&&i.has(f))return f}}return null}resolveStatusFromFrontmatter(e){let t=e.ems__Effort_status;if(t==null)return null;if(Array.isArray(t)){if(t.length!==1)return null;t=t[0]}let i=String(t).trim().replace(/^["']/,"").replace(/["']$/,"").replace(/^\[\[/,"").replace(/\]\]$/,"");if(/^ems__EffortStatus[A-Za-z]+$/.test(i))return i;if(i.includes("|")){let o=i.split("|")[1].trim();if(/^ems__EffortStatus[A-Za-z]+$/.test(o))return o}let s=i.match(/^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i);if(s){let o=j8[s[1].toLowerCase()];if(o)return o}return null}static applyIsoDuration(e,t){let r=t.trim();if(/^-?P(\d+Y)(\d+M)?$|^-?P\d+M$/.test(r)){let o=F3.DateTimeParsing.parseYearMonthDuration(r),c=new Date(e.getTime());return c.setMonth(c.getMonth()+o),c}let s=F3.DateTimeParsing.parseDayTimeDuration(r);return new Date(e.getTime()+s)}static extractBacklinkTarget(e,t){let r=Yn.resolveTargetPath(e,t),i=r.split("/").pop()??r;return Yn.UUID_BASENAME_RE.test(i)?i:r}static resolveTargetPath(e,t){if(t)return t.replace(/\.md$/i,"").replace(/^\/+/,"");if(e){let r=e.match(/^obsidian:\/\/vault\/(.+?)(?:\.md)?(?:\?|#|$)/i);if(r&&r[1])try{return decodeURIComponent(r[1])}catch{return r[1]}}return e}};Ar.GroundingExecutor=Qm;Qm.UUID_BASENAME_RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;Ar.GroundingExecutor=Qm=Yn=C8([(0,P8.injectable)(),O8("design:paramtypes",[Object,Object,Ym,Function,Object])],Qm)});var k3=v(ZS=>{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});ZS.createVaultFrontmatterClassLabelResolver=V8;function V8(n){return async e=>{if(!e)return null;let t=await n.findFilesByMetadata({exo__Asset_label:e});if(t.length>0){let s=(await n.getFileMetadata(t[0])).exo__Asset_uid;if(typeof s=="string"&&s.length>0)return s}let r=await n.findFilesByMetadata({aliases:e});if(r.length>0){let s=(await n.getFileMetadata(r[0])).exo__Asset_uid;if(typeof s=="string"&&s.length>0)return s}return null}}a(V8,"createVaultFrontmatterClassLabelResolver")});var M3=v(e1=>{"use strict";Object.defineProperty(e1,"__esModule",{value:!0});e1.createVaultFrontmatterRefToFolderResolver=q8;function q8(n){return async e=>{if(!e)return null;let t=await n.findFilesByMetadata({exo__Asset_uid:e});return t.length===0?null:G8(t[0])}}a(q8,"createVaultFrontmatterRefToFolderResolver");function G8(n){let e=n.replace(/^\/+/,""),t=e.lastIndexOf("/");return t>=0?e.slice(0,t):""}a(G8,"parentFolderOf")});var $3=v(co=>{"use strict";var W8=co&&co.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},H8=co&&co.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},jl;Object.defineProperty(co,"__esModule",{value:!0});co.NamedQueryRunner=void 0;var z8=Ve(),K8=Ce(),X8=Ge(),j3=km(),Y8=Pp(),t1=jl=class{static{a(this,"NamedQueryRunner")}constructor(e,t){this.queryBodyResolver=e,this.tripleStore=t}async run(e,t={}){if(!e)return null;let r=await this.queryBodyResolver.resolveSparql(e);if(!r)return null;let i=this.substitute(r,t);return(0,j3.evaluateWithExoEval)(i,{store:this.tripleStore})}async runScalar(e,t={},r){if(!e)throw new Error("NamedQueryRunner.runScalar: empty queryUid");let i=await this.queryBodyResolver.resolveSparql(e);if(!i)throw new Error(`NamedQueryRunner: query__NamedQuery '${e}' has no resolvable SPARQL body (asset missing or no \`\`\`sparql block).`);let s=this.substitute(i,t),o=await(0,j3.evaluateWithExoEval)(s,{store:this.tripleStore});if(o.kind==="ask")return{value:o.result?"true":"false",kind:"literal"};if(o.kind==="construct")return null;let c=o.rows[0];if(!c)return null;let l=c.variables(),u=r??l[0];if(!u)return null;let f=c.get(u);return f===void 0?null:f instanceof K8.IRI?{value:(0,Y8.iriToObsidianName)(f.value)??f.value,kind:"iri"}:f instanceof X8.Literal?{value:f.value,kind:"literal"}:null}substitute(e,t){let r=e;t.currentAsset&&(r=r.replace(/\$currentAsset\b/g,jl.formatIri(t.currentAsset))),t.currentClass&&(r=r.replace(/\$currentClass\b/g,jl.formatIri(t.currentClass)));let i=t.params;if(i){let s=Object.keys(i).sort((o,c)=>c.length-o.length);for(let o of s){let c=i[o],l=c.kind==="iri"?jl.formatIri(c.value):`"${jl.escapeLiteral(c.value)}"`,u=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");r=r.replace(new RegExp(`\\$${u}\\b`,"g"),l)}}return r}static formatIri(e){if(/[\s<>"{}|\\^`]/.test(e))throw new Error(`NamedQueryRunner: refusing to inject malformed IRI "${e}" \u2014 contains a character illegal in a SPARQL IRIREF (would break out of <...>). Pass a percent-encoded IRI.`);return`<${e}>`}static escapeLiteral(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}};co.NamedQueryRunner=t1;co.NamedQueryRunner=t1=jl=W8([(0,z8.injectable)(),H8("design:paramtypes",[Object,Object])],t1)});var U3=v(Jm=>{"use strict";Object.defineProperty(Jm,"__esModule",{value:!0});Jm.extractSparqlBlock=Q8;Jm.stripFrontmatter=J8;function Q8(n){let e=n.match(/```sparql\s*\n([\s\S]*?)\n```/);if(!e)return null;let t=e[1].trim();return t.length>0?t:null}a(Q8,"extractSparqlBlock");function J8(n){if(!n.startsWith("---"))return n;let e=n.indexOf(`
93
- ---`,3);return e<0?n:n.slice(e+4)}a(J8,"stripFrontmatter")});var V3=v(lo=>{"use strict";var Z8=lo&&lo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},eB=lo&&lo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},Hf;Object.defineProperty(lo,"__esModule",{value:!0});lo.CommandExecutionFlow=void 0;var tB=Ve(),B3=Wo(),rB=Ce(),nB=Ge(),iB=Ht(),sB=Mn(),Zm=Hf=class{static{a(this,"CommandExecutionFlow")}constructor(e,t,r,i,s,o,c){this.groundingExecutor=e,this.notificationService=t,this.logger=r,this.prompts=i,this.tripleStore=s,this.fileOpener=o,this.requiredPropertyResolver=c}async run(e,t){let{command:r}=e;if(r.confirmMessage&&!await this.prompts.confirm(r.confirmMessage))return;let i=t.injectedUserInput,s=Hf.extractInputSchema(e);if(s!==null&&s.length>0){let l=await this.applyLabelDatePrefill(s,r.grounding,t.targetIRI);l=await this.applyRequiredPropertyFields(l,r.grounding,t);let u=await this.prompts.promptInputSchema(l);if(u===null)return;i={...t.injectedUserInput??{},...u}}let o=await this.groundingExecutor.execute(r.grounding,t.targetIRI??"",t.filePath??"",i),c=t.filePath??"<no-file>";if(o.success){if(r.successMessage&&this.notificationService.success(r.successMessage),await new Promise(l=>setTimeout(l,100)),t.onComplete&&await t.onComplete(),o.openPath&&this.fileOpener)try{await this.fileOpener.open(o.openPath,{sameTab:r.openInSameTab})}catch(l){this.logger.info(`[CommandExecutionFlow] Failed to open created file "${o.openPath}": ${l instanceof Error?l.message:String(l)}`)}this.logger.info(`[CommandExecutionFlow] Executed "${r.name}" on ${c}`)}else this.notificationService.error(`Command failed: ${o.error??"unknown error"}`),this.logger.info(`[CommandExecutionFlow] Failed "${r.name}": ${o.error}`)}static extractInputSchema(e){let r=e.command.grounding.inputSchema;return!r||!Array.isArray(r)?null:r}async applyLabelDatePrefill(e,t,r){if(t.type!==B3.GroundingType.CREATE_INSTANCE||!t.prefillLabelWithDate||!r||!this.tripleStore)return e;let i=await this.resolveAssetLabel(r);if(!i)return e;let s=sB.DateFormatter.toDateString(new Date),o=`${i} ${s}`;return e.map(c=>{if(typeof c!="object"||c===null)return c;let l=c;if(l.name!=="label")return c;let u=l.defaultValue;return typeof u=="string"&&u.length>0?c:{...l,defaultValue:o}})}async applyRequiredPropertyFields(e,t,r){if(t.type!==B3.GroundingType.CREATE_INSTANCE||t.targetClass||!this.requiredPropertyResolver||!r.filePath)return e;let i=Hf.basenameUid(r.filePath);if(!i)return e;let s;try{s=await this.requiredPropertyResolver(i)}catch(l){return this.logger.info(`[CommandExecutionFlow] required-property resolution failed for "${i}": ${l instanceof Error?l.message:String(l)}`),e}if(s.length===0)return e;let o=new Set(Hf.ALWAYS_COVERED);for(let l of e)l&&typeof l=="object"&&typeof l.name=="string"&&o.add(l.name);let c=s.filter(l=>!o.has(l.propertyKey)).map(l=>{let u={name:l.propertyKey,type:l.fieldType,label:l.label,required:!0};return l.targetClassUid&&(u.targetClassUid=l.targetClassUid),l.fieldType==="boolean"&&(u.defaultValue="false"),u});return c.length===0?e:[...e,...c]}static basenameUid(e){let t=e.replace(/^\/+/,"").split("/").pop()?.replace(/\.md$/i,"");return t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?t.toLowerCase():null}async resolveAssetLabel(e){if(!this.tripleStore)return;let t=new rB.IRI(e),r=await this.tripleStore.match(t,iB.Namespace.EXO.term("Asset_label"),void 0);if(r.length===0)return;let i=r[0].object;if(i instanceof nB.Literal)return i.value.length>0?i.value:void 0}};lo.CommandExecutionFlow=Zm;Zm.ALWAYS_COVERED=["exo__Asset_uid","exo__Asset_createdAt","exo__Asset_updatedAt","exo__Asset_label","exo__Asset_createdBy","exo__Instance_class","exo__Asset_isDefinedBy"];lo.CommandExecutionFlow=Zm=Hf=Z8([(0,tB.injectable)(),eB("design:paramtypes",[Function,Object,Object,Object,Object,Object,Function])],Zm)});var W3=v(n1=>{"use strict";Object.defineProperty(n1,"__esModule",{value:!0});n1.createTripleStoreRequiredPropertyResolver=lB;var zf=Ce(),r1=Ge(),q3=Ht(),G3="http://www.w3.org/2001/XMLSchema#",oB=/\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.md$/i,aB=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Kf(n){let e=oB.exec(n);return e?e[1].toLowerCase():aB.test(n.trim())?n.trim().toLowerCase():null}a(Kf,"uidFrom");function cB(n){for(let e of n){let t=e.value;if(t.startsWith(G3)){let r=t.slice(G3.length).toLowerCase();return r==="date"||r==="datetime"?{fieldType:"date"}:r==="boolean"?{fieldType:"boolean"}:["integer","int","long","short","decimal","float","double","nonnegativeinteger","positiveinteger"].includes(r)?{fieldType:"number"}:{fieldType:"text"}}if(e.iri){let r=Kf(t);return r?{fieldType:"assetRef",targetClassUid:r}:{fieldType:"assetRef"}}}return{fieldType:"text"}}a(cB,"fieldTypeFromRange");function lB(n){let e=q3.Namespace.EXO,t=q3.Namespace.RDFS;return async r=>{let i=Kf(r)??r.trim().toLowerCase();if(!i)return[];let s=await n.match(void 0,e.term("Class_superClass"),void 0),o=new Map;for(let h of s){let p=h.subject instanceof zf.IRI?Kf(h.subject.value):null,y=h.object instanceof zf.IRI?Kf(h.object.value):null;if(!p||!y)continue;let g=o.get(p);g||(g=new Set,o.set(p,g)),g.add(y)}let c=new Set([i]),l=[i];for(;l.length>0;){let h=l.shift();if(h===void 0)break;for(let p of o.get(h)??[])c.has(p)||(c.add(p),l.push(p))}let u=await n.match(void 0,e.term("Property_minCount"),void 0),f=[],d=new Set;for(let h of u){if(!((h.object instanceof r1.Literal?parseInt(h.object.value,10):NaN)>0))continue;let y=h.subject;if(!(y instanceof zf.IRI)||!(await n.match(y,e.term("Property_domain"),void 0)).map(R=>R.object instanceof zf.IRI?Kf(R.object.value):null).filter(R=>R!==null).some(R=>c.has(R)))continue;let _=null;for(let R of[e.term("Asset_label"),t.term("label")]){let B=await n.match(y,R,void 0);for(let D of B)if(D.object instanceof r1.Literal&&D.object.value.trim().length>0){_=D.object.value.trim();break}if(_)break}if(!_||d.has(_))continue;d.add(_);let x=(await n.match(y,e.term("Property_range"),void 0)).map(R=>R.object instanceof zf.IRI?{iri:!0,value:R.object.value}:R.object instanceof r1.Literal?{iri:!1,value:R.object.value}:null).filter(R=>R!==null),{fieldType:A,targetClassUid:T}=cB(x);f.push({propertyKey:_,label:_,fieldType:A,targetClassUid:T})}return f.sort((h,p)=>h.propertyKey.localeCompare(p.propertyKey)),f}}a(lB,"createTripleStoreRequiredPropertyResolver")});var Xf=v(uo=>{"use strict";var uB=uo&&uo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},fB=uo&&uo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(uo,"__esModule",{value:!0});uo.WorkflowEngine=void 0;var dB=Ve(),i1=class{static{a(this,"WorkflowEngine")}constructor(e){this.definition=e}getAvailableTransitions(e){return this.definition.transitions.filter(t=>t.from===e&&!t.isRollback)}getRollbackTransitions(e){return this.definition.transitions.filter(t=>t.from===e&&t.isRollback)}getAllTransitions(e){return this.definition.transitions.filter(t=>t.from===e)}canTransition(e,t){return this.definition.transitions.some(r=>r.from===e&&r.to===t)}getPreviousStatus(e){return this.definition.transitions.find(r=>r.from===e&&r.isRollback)?.to??null}getNextStates(e){return this.getAvailableTransitions(e).map(t=>t.to)}isTerminalState(e){return this.definition.terminalStates.includes(e)}isInitialState(e){return this.definition.initialState===e}getTimestampsForStatus(e){return this.definition.states.find(r=>r.status===e)?.timestampOnEnter??[]}getTransition(e,t){return this.definition.transitions.find(r=>r.from===e&&r.to===t)}getOrderedStates(){return this.definition.states.map(e=>e.status)}getDefinition(){return this.definition}validate(){let e=[],t=new Set(this.definition.states.map(i=>i.status));this.definition.states.length===0&&e.push("Workflow must have at least one state"),t.has(this.definition.initialState)||e.push(`Initial state "${this.definition.initialState}" is not in the states list`);for(let i of this.definition.terminalStates)t.has(i)||e.push(`Terminal state "${i}" is not in the states list`);for(let i of this.definition.transitions)t.has(i.from)||e.push(`Transition "${i.label}" references unknown source state "${i.from}"`),t.has(i.to)||e.push(`Transition "${i.label}" references unknown target state "${i.to}"`);for(let i of this.definition.states){if(this.definition.terminalStates.includes(i.status))continue;this.definition.transitions.filter(o=>o.from===i.status&&!o.isRollback).length===0&&e.push(`State "${i.status}" has no outgoing forward transitions (dead end)`)}let r=new Set;for(let i of this.definition.transitions){let s=`${i.from}\u2192${i.to}`;r.has(s)&&e.push(`Duplicate transition: ${s}`),r.add(s)}return{valid:e.length===0,errors:e}}};uo.WorkflowEngine=i1;uo.WorkflowEngine=i1=uB([(0,dB.injectable)(),fB("design:paramtypes",[Object])],i1)});var H3=v(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});Ss.EFFORT_WORKFLOW_PROPERTY=Ss.WorkflowTransitionProperty=Ss.WorkflowStateProperty=Ss.WorkflowProperty=void 0;Ss.WorkflowProperty={TARGET_CLASS:"ems__Workflow_targetClass",INITIAL_STATE:"ems__Workflow_initialState",TERMINAL_STATES:"ems__Workflow_terminalStates",IS_DEFAULT:"ems__Workflow_isDefault"};Ss.WorkflowStateProperty={WORKFLOW:"ems__WorkflowState_workflow",STATUS:"ems__WorkflowState_status",ORDER:"ems__WorkflowState_order",OPTIONAL:"ems__WorkflowState_optional",TIMESTAMP_ON_ENTER:"ems__WorkflowState_timestampOnEnter",BADGE_COLOR:"ems__WorkflowState_badgeColor"};Ss.WorkflowTransitionProperty={WORKFLOW:"ems__WorkflowTransition_workflow",FROM:"ems__WorkflowTransition_from",TO:"ems__WorkflowTransition_to",LABEL:"ems__WorkflowTransition_label",ICON:"ems__WorkflowTransition_icon",IS_ROLLBACK:"ems__WorkflowTransition_isRollback"};Ss.EFFORT_WORKFLOW_PROPERTY="ems__Effort_workflow"});var fo=v(eg=>{"use strict";Object.defineProperty(eg,"__esModule",{value:!0});eg.MetadataHelpers=void 0;var z3=qf(),s1=class{static{a(this,"MetadataHelpers")}static findAllReferencingProperties(e,t){let r=[];for(let[i,s]of Object.entries(e))this.containsReference(s,t)&&r.push(i);return r}static findReferencingProperty(e,t){for(let[r,i]of Object.entries(e))if(this.containsReference(i,t))return r}static containsReference(e,t){if(!e)return!1;let r=t.replace(/\.md$/,"");if(typeof e=="string"){let i=/\[\[([^[\]]+)\]\]/g,s;for(;(s=i.exec(e))!==null;){let c=s[1].split("|")[0].trim();if(c===r||c.endsWith(`/${r}`))return!0}return!1}return Array.isArray(e)?e.some(i=>this.containsReference(i,t)):!1}static isAssetArchived(e){let t=e?.exo__Asset_isArchived;if(t!=null){if(t===!0||t===1)return!0;if(typeof t=="string"){let i=t.toLowerCase().trim();if(i==="true"||i==="yes"||i==="1")return!0}if(typeof t=="boolean")return t}let r=e?.archived;if(r==null)return!1;if(typeof r=="boolean")return r;if(typeof r=="number")return r!==0;if(typeof r=="string"){let i=r.toLowerCase().trim();return i==="true"||i==="yes"||i==="1"}return!1}static getPropertyValue(e,t){return t==="Name"||t==="title"?e.title:t==="created"?e.created:t==="modified"?e.modified:t==="path"?e.path:e.metadata?.[t]}static ensureQuoted(e){return!e||e==='""'?'""':e.startsWith('"')&&e.endsWith('"')?e:`"${e}"`}static buildFileContent(e,t){let r=(0,z3.orderProperties)(e,(0,z3.loadDefaultSpec)()),i=Object.entries(r).map(([c,l])=>{if(Array.isArray(l)){let u=l.map(f=>` - ${String(f)}`).join(`
91
+ Details: ${t.message}`:"";console.error(`[Exocortex ERROR]${s} ${e}${o}`)}}};Km.LoggingService=Wf;Wf.isVerbose=!1;Wf.isDevelopment=void 0});var NC=v(Ar=>{"use strict";var C8=Ar&&Ar.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},O8=Ar&&Ar.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},Yn;Object.defineProperty(Ar,"__esModule",{value:!0});Ar.GroundingExecutor=Ar.ServiceRegistry=Ar.CLASS_UID_TO_LABEL=Ar.STATUS_UID_BY_ENUM=void 0;var P8=Ve(),F8=Uf(),D8=$m(),jn=Wo(),L8=XS(),Xm=Yc(),N8=rl(),ac=Qc(),k8=Ce(),M8=ws(),QS=Mn(),FC=Lf(),cc=oc();Ar.STATUS_UID_BY_ENUM={[ac.EffortStatus.DRAFT]:"c42245d0-01de-4c35-bfcf-d910445ea28e",[ac.EffortStatus.BACKLOG]:"753a44d5-846c-4b82-9196-4fd9a4d48777",[ac.EffortStatus.ANALYSIS]:"cde3525c-57ea-4efc-b477-2e7e7ccd3a1e",[ac.EffortStatus.TODO]:"6a0e933a-6653-46f4-95ae-ed7508177c73",[ac.EffortStatus.DOING]:"027e78f4-6e16-4b36-b8fb-5510507d5745",[ac.EffortStatus.DONE]:"7b9b3116-7c3c-438c-9618-94fe301320a6",[ac.EffortStatus.TRASHED]:"5d14f18d-db2b-4847-9ac1-144cb93b2541"};var j8=Object.freeze(Object.fromEntries(Object.entries(Ar.STATUS_UID_BY_ENUM).map(([n,e])=>[e,n])));Ar.CLASS_UID_TO_LABEL=Object.freeze({"1b20a8f0-d745-4e93-91db-4531b3df120e":Xm.AssetClass.TASK,"7db5eeff-718a-49b0-8d2b-39b084a356e3":Xm.AssetClass.PROJECT,"1b0a5e34-dd7f-4ead-b43a-6c7c5a5ecaca":Xm.AssetClass.MEETING});var JS=Vm();(0,JS.installDefaultResolvers)();function $8(n){if(n){if(n==="1b20a8f0-d745-4e93-91db-4531b3df120e")return"ems__Task";if(n==="7db5eeff-718a-49b0-8d2b-39b084a356e3")return"ems__Project";if(n==="ems__Task"||n==="ems__Project")return n}}a($8,"resolveClassFlipTarget");var DC=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,U8=/^__SUBSTITUTE__([a-zA-Z][a-zA-Z0-9_]*)__[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}__$/,B8=/^__SUBSTITUTE_P__([a-zA-Z][a-zA-Z0-9_]*)__[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}__([A-Za-z0-9_-]*)__$/,Ym=class{static{a(this,"ServiceRegistry")}constructor(){this.services=new Map}register(e,t){this.services.set(e,t)}get(e){return this.services.get(e)}has(e){return this.services.has(e)}getRegisteredIds(){return Array.from(this.services.keys())}};Ar.ServiceRegistry=Ym;var LC=20,Qm=Yn=class{static{a(this,"GroundingExecutor")}constructor(e,t,r,i,s){this.frontmatterService=new M8.FrontmatterService,this.fileReader=e,this.fileWriter=t,this.serviceRegistry=r,this.classLabelToUid=i,this.refToFolder=s?.refToFolder,this.workflowResolver=s?.workflowResolver,this.groundingLoader=s?.groundingLoader,this.templateLoader=s?.templateLoader,this.namedQueryRunner=s?.namedQueryRunner,this.clock=s?.clock??(0,F8.liveClock)(),this.uidGen=s?.uidGenerator??(0,D8.liveUidGenerator)()}async execute(e,t,r,i){try{switch(e.type){case jn.GroundingType.PROPERTY_SET:return await this.executePropertySet(e,t,r,i);case jn.GroundingType.PROPERTY_DELETE:return await this.executePropertyDelete(e,r);case jn.GroundingType.COMPOSITE:return await this.executeComposite(e,t,r,i,0);case jn.GroundingType.SERVICE_CALL:return await this.executeServiceCall(e,t,r,i);case jn.GroundingType.CREATE_INSTANCE:return await this.executeCreateInstance(e,t,r,i);case jn.GroundingType.PROPERTY_APPEND:return await this.executePropertyAppend(e,t,r,i);case jn.GroundingType.PROPERTY_INCREMENT:return await this.executePropertyIncrement(e,r);case jn.GroundingType.PROPERTY_SHIFT:return await this.executePropertyShift(e,r);case jn.GroundingType.SPARQL_UPDATE:return{success:!1,error:"sparql_update grounding not yet implemented. Use property_set/property_delete instead."};case jn.GroundingType.WORKFLOW_TRANSITION:return await this.executeWorkflowTransition(e,t,r,i);case jn.GroundingType.BODY_TEMPLATE:return await this.executeBodyTemplate(e,t,r,i);default:return{success:!1,error:`Unknown grounding type: ${e.type}`}}}catch(s){return{success:!1,error:s instanceof Error?s.message:String(s)}}}async executePropertySet(e,t,r,i){if(!e.targetProperty)return{success:!1,error:"property_set requires targetProperty"};let s;if([e.targetValueRef!==void 0,e.targetValueLiteral!==void 0,e.targetValueSubstitution!==void 0,e.targetValueQuery!==void 0].filter(Boolean).length>1)return{success:!1,error:"property_set: more than one of targetValueRef/targetValueLiteral/targetValueSubstitution/targetValueQuery set (cardinality 0..1 each, mutually exclusive)"};if(e.targetValueRef!==void 0)s=`"[[${e.targetValueRef}]]"`;else if(e.targetValueLiteral!==void 0)s=e.targetValueLiteral;else if(e.targetValueSubstitution!==void 0)s=e.targetValueSubstitution;else if(e.targetValueQuery!==void 0){let d=await this.resolveTargetValueQuery(e.targetValueQuery,t);if(!d.success)return d;s=d.value}else return{success:!1,error:"property_set requires one of targetValueRef/targetValueLiteral/targetValueSubstitution/targetValueQuery"};if(/\$(input|value)\b/.test(s)&&(i===void 0||i.value===void 0||i.value===null))return{success:!1,error:"property_set: substituted value contains $input/$value placeholder but no userInput.value provided"};let l=this.substituteVariables(s,t,i),u=await this.fileReader.readFile(r),f=this.frontmatterService.updateProperty(u,e.targetProperty,l);return await this.fileWriter.updateFile(r,f),{success:!0}}async resolveTargetValueQuery(e,t){if(!this.namedQueryRunner)return{success:!1,error:"property_set targetValueQuery requires NamedQueryRunner injection (options.namedQueryRunner). Wire the plugin/CLI before using this value-source."};let r;try{r=await this.namedQueryRunner.runScalar(e,{currentAsset:t})}catch(s){return{success:!1,error:`property_set targetValueQuery: NamedQuery '${e}' failed \u2014 ${s instanceof Error?s.message:String(s)}`}}return r===null?{success:!1,error:`property_set targetValueQuery: NamedQuery '${e}' returned no scalar value (empty result set or non-scalar shape).`}:{success:!0,value:r.kind==="iri"?`"[[${r.value}]]"`:r.value}}async executePropertyDelete(e,t){if(!e.targetProperty)return{success:!1,error:"property_delete requires targetProperty"};let r=await this.fileReader.readFile(t),i=this.frontmatterService.removeProperty(r,e.targetProperty);return await this.fileWriter.updateFile(t,i),{success:!0}}async executeComposite(e,t,r,i,s){if(s>=LC)return{success:!1,error:`Composite grounding exceeded maximum depth of ${LC}`};let o=e.steps??[];if(o.length===0)return{success:!0};let c;try{c=await this.fileReader.readFile(r)}catch{}let l=[],u;try{for(let f=0;f<o.length;f++){let d=o[f],h=d.type===jn.GroundingType.BODY_TEMPLATE&&u?u:r,p=await this.executeStep(d,t,h,i,s+1);if(!p.success)return await this.rollback(c,r,l),{success:!1,error:`Composite step ${f} failed: ${p.error}`};p.openPath&&(u=p.openPath),l.push(f)}return{success:!0}}catch(f){return await this.rollback(c,r,l),{success:!1,error:`Composite execution failed: ${f instanceof Error?f.message:String(f)}`}}}async executeServiceCall(e,t,r,i){let s=e.targetProperty;if(!s)return{success:!1,error:"service_call requires targetProperty as serviceId"};if(s==="convertToTask")return await this.executeConvertToTask(r);if(s==="updateProperty"){let l=$8(e.targetValueRef);if(l==="ems__Task")return await this.executeConvertToTask(r);if(l==="ems__Project")return await this.executeConvertToProject(r)}let o=this.serviceRegistry.get(s);if(!o)return{success:!1,error:`Service not found: "${s}". Registered services: ${this.serviceRegistry.getRegisteredIds().join(", ")||"none"}`};let c=i;if(e.isDefinedBy&&(c={isDefinedBy:e.isDefinedBy,...c??{}}),e.serviceCallPayload)try{let l=this.substituteVariables(e.serviceCallPayload,t,i),u=JSON.parse(l);typeof u=="object"&&u!==null&&(c={...u,...c??{}})}catch{}return await o.execute(t,c),{success:!0}}async executeConvertToTask(e){let t=await this.fileReader.readFile(e),r=await this.resolveClassRefToUid("ems__Task"),i=this.frontmatterService.updateProperty(t,"exo__Instance_class",`["[[${r}]]"]`);return await this.fileWriter.updateFile(e,i),{success:!0}}async executeConvertToProject(e){let t=await this.fileReader.readFile(e),r=await this.resolveClassRefToUid("ems__Project"),i=this.frontmatterService.updateProperty(t,"exo__Instance_class",`["[[${r}]]"]`);return await this.fileWriter.updateFile(e,i),{success:!0}}async executeBodyTemplate(e,t,r,i){let s=null;if(e.templateRef)if(this.templateLoader){if(s=await this.templateLoader(e.templateRef),s===null)return{success:!1,error:`body_template: templateRef "${e.templateRef}" did not resolve to a template body (asset missing or empty).`}}else{if(e.bodyTemplate===void 0)return{success:!1,error:`body_template: templateRef "${e.templateRef}" set but no TemplateLoaderPort is wired (and no inline bodyTemplate fallback).`};s=e.bodyTemplate}else if(e.bodyTemplate!==void 0)s=e.bodyTemplate;else return{success:!1,error:"body_template requires bodyTemplate or templateRef"};let o=(0,L8.resolveTemplateBody)(s,{userInput:i,targetIRI:t,targetFilePath:r}),c;try{c=await this.fileReader.readFile(r)}catch(u){return{success:!1,error:`body_template: failed to read target file "${r}": ${u instanceof Error?u.message:String(u)}`}}let l=Yn.replaceBody(c,o);return await this.fileWriter.updateFile(r,l),{success:!0}}static replaceBody(e,t){let r=e.match(/^---\r?\n[\s\S]*?\r?\n---/);return r?`${r[0]}
92
+ ${t}`:t}async executeCreateInstance(e,t,r,i){if(!e.targetFolder)return{success:!1,error:"create_instance requires targetFolder"};let s={},o=null;if((e.inheritanceRule&&e.inheritanceRule.length>0||e.propertyDefault&&e.propertyDefault.some(y=>typeof y.value=="string"&&y.value.includes("__SUBSTITUTE"))||e.labelTemplate!==void 0&&/\$target\./.test(e.labelTemplate))&&t&&r){let y;try{y=await this.fileReader.readFile(r)}catch(g){return{success:!1,error:`create_instance: failed to read $target file "${r}": ${g instanceof Error?g.message:String(g)}`}}o=this.frontmatterService.parseObject(y)??null}let l;e.targetClass&&(l=await this.resolveClassRefToUid(e.targetClass));let u={userInput:i,targetIRI:t,targetFilePath:r,targetFm:o??void 0,groundingTargetClassUid:l};if(e.propertyDefault&&e.propertyDefault.length>0&&this.applyPropertyDefaultStep(s,e.propertyDefault,u),this.applyMissingScalarPrimitives(s,i,l,e,t,o,r),i)for(let[y,g]of Object.entries(i))y!=="label"&&g!=null&&(s[y]=g);if(e.inheritanceRule&&e.inheritanceRule.length>0&&o&&await this.applyInheritanceRuleStep(s,e.inheritanceRule,o),this.applyMissingBacklinkTopUp(s,e,t,r),t&&e.linkBackProperty&&s[e.linkBackProperty]===void 0){let y=Yn.extractBacklinkTarget(t,r);s[e.linkBackProperty]=`"[[${y}]]"`}let f=s.exo__Asset_uid,d=this.frontmatterService.createFrontmatter("",s),h=e.targetFolder.includes("$isDefinedByFolder")?await this.resolveIsDefinedByFolder(s,r):this.substituteVariables(e.targetFolder,t,i,void 0,r),p=h?`${h}/${f}.md`:`${f}.md`;return await this.fileWriter.createFile(p,d),{success:!0,openPath:p}}async resolveIsDefinedByFolder(e,t){let r=Yn.parentFolderOf(t),i=e.exo__Asset_isDefinedBy,s=Yn.extractBareRef(i);if(s&&this.refToFolder)try{let o=await this.refToFolder(s);if(o!=null)return o}catch(o){cc.LoggingService.error(`[GroundingExecutor] $isDefinedByFolder resolution failed for ref "${s}" \u2014 falling back to host folder.`,o instanceof Error?o:new Error(String(o)))}return r}static parentFolderOf(e){let t=e.replace(/^\/+/,""),r=t.lastIndexOf("/");return r>=0?t.slice(0,r):""}static extractBareRef(e){if(typeof e!="string")return null;let t=e.trim();t=t.replace(/^["']|["']$/g,"").trim(),t=t.replace(/^\[\[/,"").replace(/\]\]$/,"");let r=t.indexOf("|");return r>=0&&(t=t.slice(0,r)),t=t.trim(),t.length>0?t:null}async resolveClassRefToUid(e){if(DC.test(e)||!this.classLabelToUid)return e;try{let t=await this.classLabelToUid(e);return t&&t.length>0?t:e}catch{return e}}applyPropertyDefaultStep(e,t,r){for(let{propertyName:i,value:s}of t){if(e[i]!==void 0)continue;let o=this.resolveSubstitutionMarker(s,r);if(o!=null){if(Array.isArray(o)){if(o.length===0)continue;e[i]=o;continue}if(i==="exo__Instance_class"&&typeof o=="string"){e[i]=[o];continue}e[i]=o}}}applyMissingScalarPrimitives(e,t,r,i,s,o,c){let l=[];e.exo__Asset_uid===void 0&&(e.exo__Asset_uid=this.uidGen.next(),l.push("exo__Asset_uid")),e.exo__Asset_createdAt===void 0&&(e.exo__Asset_createdAt=QS.DateFormatter.toLocalTimestamp(this.clock.now()),l.push("exo__Asset_createdAt"));let u=typeof e.exo__Asset_label=="string"&&e.exo__Asset_label.trim().length===0;if(e.exo__Asset_label===void 0||u){let f=t?.label;if(f===void 0&&i?.labelTemplate)try{let h=this.substituteVariables(i.labelTemplate,s??"",t,o??void 0,c);h.trim().length>0&&(f=h)}catch(h){cc.LoggingService.error(`[GroundingExecutor] labelTemplate substitution failed: ${h instanceof Error?h.message:String(h)}. Falling back to "Untitled".`)}let d=f??"Untitled";e.exo__Asset_label=d,d!=="Untitled"&&e.aliases===void 0&&(e.aliases=[d]),l.push("exo__Asset_label")}e.exo__Instance_class===void 0&&r&&(e.exo__Instance_class=[`"[[${r}]]"`],l.push("exo__Instance_class")),l.length>0&&cc.LoggingService.error(`[GroundingExecutor] Universal Default Template did not cover essential scalar primitives: ${l.join(", ")}. Filled from legacy TS fallback. Vault may be in an unhealthy state \u2014 verify UniversalDefaultTemplate singleton is present and complete.`)}applyMissingBacklinkTopUp(e,t,r,i){if(!r||t.linkBackProperty||e.exo__Asset_prototype!==void 0||e.ems__Effort_parent!==void 0)return;let s=Yn.extractBacklinkTarget(r,i);Yn.propertiesReferenceTarget(e,s)||(e.exo__Asset_prototype=`"[[${s}]]"`,cc.LoggingService.error("[GroundingExecutor] No backlink rule fired (Universal IRs absent or no class match). Falling back to legacy exo__Asset_prototype default. Bug #5 may surface if target is not a prototype-instance."))}static propertiesReferenceTarget(e,t){if(!t)return!1;let r=`[[${t}]]`,i=a(s=>typeof s=="string"&&s.includes(r),"refs");for(let s of Object.values(e))if(i(s)||Array.isArray(s)&&s.some(i))return!0;return!1}resolveSubstitutionMarker(e,t){let r=e.match(B8);if(r){let c=r[1],l=r[2],u=Yn.decodeBase64UrlSafe(l),f=(0,JS.getResolver)(c);return f?f(t,u):(cc.LoggingService.warn(`[GroundingExecutor] Parameterised marker references unknown resolver '${c}' \u2014 value left as marker.`),e)}let i=e.match(U8);if(!i)return e;let s=i[1];if(s==="target"){let c=t.targetIRI??"",l=t.targetFilePath??"";return`"[[${Yn.extractBacklinkTarget(c,l)}]]"`}if(s==="targetFolder"){let c=t.targetFilePath??"";if(!c)return"";let l=c.replace(/^\/+/,""),u=l.lastIndexOf("/");return u>=0?l.slice(0,u):""}let o=(0,JS.getResolver)(s);return o?o(t):(cc.LoggingService.warn(`[GroundingExecutor] Marker references unknown resolver '${s}' \u2014 value left as marker.`),e)}static decodeBase64UrlSafe(e){return(0,N8.base64ToUtf8)(e.replace(/-/g,"+").replace(/_/g,"/"))}async applyInheritanceRuleStep(e,t,r){let i=this.extractTargetClassNames(r),s=[];for(let o of t)!await this.inheritanceConditionMatches(o.targetClassCondition,o.targetClassConditionUid,i)||await this.inheritanceExclusionMatches(o.targetClassExclusion,o.targetClassExclusionUids,i)||s.push(o);s.sort((o,c)=>c.priority-o.priority);for(let o of s){if(e[o.targetPropertyName]!==void 0)continue;let c=r[o.sourcePropertyName];c!=null&&(e[o.targetPropertyName]=this.formatInheritedValue(c))}}async inheritanceConditionMatches(e,t,r){return!e&&!t?!0:this.classRefMatchesAny(e,t,r)}async inheritanceExclusionMatches(e,t,r){for(let i of t??[])if(i&&r.includes(i))return!0;for(let i of e)if(await this.classRefMatchesAny(i,void 0,r))return!0;return!1}async classRefMatchesAny(e,t,r){if(t&&r.includes(t)||e&&r.includes(e))return!0;if(e&&this.classLabelToUid)try{let i=await this.classLabelToUid(e);if(i&&i.length>0&&r.includes(i))return!0}catch{}return!1}extractTargetClassNames(e){let t=e.exo__Instance_class;if(t==null)return[];let r=Array.isArray(t)?t:[t],i=[];for(let s of r){let o=this.extractWikilinkInner(String(s));o&&i.push(o)}return i}extractWikilinkInner(e){let t=e.match(/\[\[([^\]|]+)(?:\|[^\]]*)?\]\]/);return t?t[1].trim():e.replace(/^["']|["']$/g,"").trim()}formatInheritedValue(e){return Array.isArray(e)?e.map(t=>this.formatInheritedScalar(String(t))):this.formatInheritedScalar(String(e))}formatInheritedScalar(e){return/^"?\[\[.+\]\]"?$/.test(e)?this.reformatWikilink(e):DC.test(e)?`"[[${e}]]"`:e}reformatWikilink(e){return e.startsWith('"[[')&&e.endsWith(']]"')?e:e.startsWith("[[")&&e.endsWith("]]")?`"${e}"`:e}async executeStep(e,t,r,i,s){return e.type===jn.GroundingType.COMPOSITE?this.executeComposite(e,t,r,i,s):this.execute(e,t,r,i)}async rollback(e,t,r){if(e!==void 0)try{await this.fileWriter.updateFile(t,e)}catch(i){cc.LoggingService.error(`[GroundingExecutor] Rollback failed for ${t}`,i instanceof Error?i:new Error(String(i)))}}substituteVariables(e,t,r,i,s){let o=this.clock.now(),c=o.toISOString(),l=QS.DateFormatter.toLocalTimestamp(o),u=c.slice(0,10),f=`${u}T00:00:00`,d=`${l.slice(0,10)}-${l.slice(11,13)}-${l.slice(14,16)}`,h=e.replace(/\$target\.([A-Za-z_][\w]*)/g,(p,y)=>{if(!i)throw new Error(`$target.${y} substitution requires target frontmatter context; none was supplied (asset IRI: ${t})`);let g=i[y];if(g==null)throw new Error(`$target.${y} is undefined on asset ${t}`);if(Array.isArray(g))throw new Error(`$target.${y} resolved to an array on asset ${t}; only scalar properties are supported for substitution`);return String(g).replace(/^["'](.*)["']$/,"$1")});if(/\$targetFolder\b/.test(h)){if(!s)throw new Error("$targetFolder substitution requires targetFilePath context; none was supplied (asset IRI: "+t+")");let p=s.replace(/^\/+/,""),y=p.lastIndexOf("/"),g=y>=0?p.slice(0,y):"";h=h.replace(/\$targetFolder\b/g,g)}if(h=h.replace(/\$target/g,t).replace(/\$nowCompact\b/g,d).replace(/\$nowLocal/g,l).replace(/\$now/g,c).replace(/\$todayStart\b/g,f).replace(/\$today/g,u),r?.value!==void 0&&r.value!==null){let p=String(r.value);h=h.replace(/\$input\b/g,p).replace(/\$value\b/g,p)}return h}async executePropertyAppend(e,t,r,i){if(!e.targetProperty)return{success:!1,error:"property_append requires targetProperty"};if(e.appendExpression===void 0)return{success:!1,error:"property_append requires appendExpression"};let s=await this.fileReader.readFile(r),o=this.frontmatterService.parseObject(s)??{},c=this.substituteVariables(e.appendExpression,t,i,o),l=o[e.targetProperty],u=Array.isArray(l)?l:l!==void 0?[String(l)]:[],f=a(y=>y.replace(/^["'](.*)["']$/,"$1"),"stripQuotes"),d=new Set(u.map(f)),h;if(d.has(f(c)))h=u;else{let y=`"${f(c)}"`;h=[...u,y]}let p=this.frontmatterService.updateProperty(s,e.targetProperty,h);return await this.fileWriter.updateFile(r,p),{success:!0}}async executePropertyIncrement(e,t){if(!e.targetProperty)return{success:!1,error:"property_increment requires targetProperty"};let r=e.incrementBy??1;if(!Number.isFinite(r)||!Number.isInteger(r))return{success:!1,error:`property_increment: incrementBy must be an integer (got ${String(e.incrementBy)})`};let i=await this.fileReader.readFile(t),o=(this.frontmatterService.parseObject(i)??{})[e.targetProperty],c;if(o==null||o==="")c=0;else{if(Array.isArray(o))return{success:!1,error:`property_increment: targetProperty "${e.targetProperty}" is an array, expected integer`};{let f=String(o).replace(/^["'](.*)["']$/,"$1").trim();if(!/^-?\d+$/.test(f))return{success:!1,error:`property_increment: targetProperty "${e.targetProperty}" current value "${String(o)}" is not a valid integer`};c=Number.parseInt(f,10)}}let l=c+r,u=this.frontmatterService.updateProperty(i,e.targetProperty,l);return await this.fileWriter.updateFile(t,u),{success:!0}}async executePropertyShift(e,t){if(!e.targetProperty)return{success:!1,error:"property_shift requires targetProperty"};if(!e.shiftDelta)return{success:!1,error:"property_shift requires shiftDelta (ISO-8601 duration literal)"};let r=await this.fileReader.readFile(t),s=(this.frontmatterService.parseObject(r)??{})[e.targetProperty];if(s==null||s==="")return{success:!1,error:`property_shift: targetProperty "${e.targetProperty}" is not set on target asset`};if(Array.isArray(s))return{success:!1,error:`property_shift: targetProperty "${e.targetProperty}" is an array, expected single datetime`};let o=String(s).replace(/^["'](.*)["']$/,"$1").trim(),c=new Date(o);if(Number.isNaN(c.getTime()))return{success:!1,error:`property_shift: current value "${o}" is not a valid datetime`};let l;try{l=Yn.applyIsoDuration(c,e.shiftDelta)}catch(d){return{success:!1,error:`property_shift: invalid shiftDelta "${e.shiftDelta}": ${d instanceof Error?d.message:String(d)}`}}let u=QS.DateFormatter.toLocalTimestamp(l),f=this.frontmatterService.updateProperty(r,e.targetProperty,u);return await this.fileWriter.updateFile(t,f),{success:!0}}async executeWorkflowTransition(e,t,r,i){if(!this.workflowResolver)return{success:!1,error:"workflow_transition requires WorkflowResolver injection (options.workflowResolver). Wire the plugin/CLI before using this grounding type."};let s=await this.fileReader.readFile(r),o=this.frontmatterService.parseObject(s)??{},c=this.resolveAssetClassFromFrontmatter(o);if(!c)return{success:!1,error:"workflow_transition: target asset has no recognised ems__* class in exo__Instance_class (cannot resolve workflow)."};let l=this.resolveStatusFromFrontmatter(o);if(!l)return{success:!1,error:"workflow_transition: target asset has no parseable ems__Effort_status value (need wikilink to an ems__EffortStatus* asset)."};let u;try{u=new k8.IRI(t)}catch(x){return{success:!1,error:`workflow_transition: invalid targetIRI "${t}" \u2014 ${x instanceof Error?x.message:String(x)}`}}let f=await this.workflowResolver.resolveForAsset(u,c),d=e.direction??"forward",h=d==="rollback",p=f.transitions.find(x=>x.from===l&&x.isRollback===h);if(!p)return{success:!1,error:`workflow_transition: no ${d} transition from "${l}" defined in workflow "${f.name}" (target class: ${c}).`};let y=Ar.STATUS_UID_BY_ENUM[p.to];if(!y)return{success:!1,error:`workflow_transition: no UID mapping for destination status "${p.to}" (transition target unreachable).`};let g={id:`${e.id}.statusMutation`,label:`workflow_transition: ${p.from} \u2192 ${p.to}`,type:jn.GroundingType.PROPERTY_SET,targetProperty:"ems__Effort_status",targetValueRef:y},b=await this.executePropertySet(g,t,r,i);if(!b.success)return{success:!1,error:`workflow_transition: status mutation failed \u2014 ${b.error}`};let _=p.postActions??[],S=this.groundingLoader;if(_.length>0&&S===void 0)return{success:!1,error:"workflow_transition: transition has postActions but no GroundingLoader injected (options.groundingLoader). Wire commandResolver.loadGroundingByUid in plugin/CLI."};for(let x of _){if(S===void 0)break;let A=await S(x);if(!A)return{success:!1,error:`workflow_transition: postAction grounding UID "${x}" could not be loaded (asset missing or invalid Grounding shape).`};let T=await this.execute(A,t,r,i);if(!T.success)return{success:!1,error:`workflow_transition: postAction "${A.label}" (UID ${x}) failed \u2014 ${T.error}`}}return{success:!0}}resolveAssetClassFromFrontmatter(e){let t=e.exo__Instance_class;if(t==null)return null;let r=Array.isArray(t)?t:[t],i=new Set(Object.values(Xm.AssetClass));for(let s of r){if(typeof s!="string")continue;let o=s.replace(/^\s*"?\[\[/,"").replace(/\]\]"?\s*$/,""),l=(o.includes("|")?o.split("|")[1]:o).trim();if(i.has(l))return l;let u=o.match(/^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i);if(u){let f=Ar.CLASS_UID_TO_LABEL[u[1].toLowerCase()];if(f&&i.has(f))return f}}return null}resolveStatusFromFrontmatter(e){let t=e.ems__Effort_status;if(t==null)return null;if(Array.isArray(t)){if(t.length!==1)return null;t=t[0]}let i=String(t).trim().replace(/^["']/,"").replace(/["']$/,"").replace(/^\[\[/,"").replace(/\]\]$/,"");if(/^ems__EffortStatus[A-Za-z]+$/.test(i))return i;if(i.includes("|")){let o=i.split("|")[1].trim();if(/^ems__EffortStatus[A-Za-z]+$/.test(o))return o}let s=i.match(/^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i);if(s){let o=j8[s[1].toLowerCase()];if(o)return o}return null}static applyIsoDuration(e,t){let r=t.trim();if(/^-?P(\d+Y)(\d+M)?$|^-?P\d+M$/.test(r)){let o=FC.DateTimeParsing.parseYearMonthDuration(r),c=new Date(e.getTime());return c.setMonth(c.getMonth()+o),c}let s=FC.DateTimeParsing.parseDayTimeDuration(r);return new Date(e.getTime()+s)}static extractBacklinkTarget(e,t){let r=Yn.resolveTargetPath(e,t),i=r.split("/").pop()??r;return Yn.UUID_BASENAME_RE.test(i)?i:r}static resolveTargetPath(e,t){if(t)return t.replace(/\.md$/i,"").replace(/^\/+/,"");if(e){let r=e.match(/^obsidian:\/\/vault\/(.+?)(?:\.md)?(?:\?|#|$)/i);if(r&&r[1])try{return decodeURIComponent(r[1])}catch{return r[1]}}return e}};Ar.GroundingExecutor=Qm;Qm.UUID_BASENAME_RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;Ar.GroundingExecutor=Qm=Yn=C8([(0,P8.injectable)(),O8("design:paramtypes",[Object,Object,Ym,Function,Object])],Qm)});var kC=v(ZS=>{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});ZS.createVaultFrontmatterClassLabelResolver=V8;function V8(n){return async e=>{if(!e)return null;let t=await n.findFilesByMetadata({exo__Asset_label:e});if(t.length>0){let s=(await n.getFileMetadata(t[0])).exo__Asset_uid;if(typeof s=="string"&&s.length>0)return s}let r=await n.findFilesByMetadata({aliases:e});if(r.length>0){let s=(await n.getFileMetadata(r[0])).exo__Asset_uid;if(typeof s=="string"&&s.length>0)return s}return null}}a(V8,"createVaultFrontmatterClassLabelResolver")});var MC=v(e1=>{"use strict";Object.defineProperty(e1,"__esModule",{value:!0});e1.createVaultFrontmatterRefToFolderResolver=q8;function q8(n){return async e=>{if(!e)return null;let t=await n.findFilesByMetadata({exo__Asset_uid:e});return t.length===0?null:G8(t[0])}}a(q8,"createVaultFrontmatterRefToFolderResolver");function G8(n){let e=n.replace(/^\/+/,""),t=e.lastIndexOf("/");return t>=0?e.slice(0,t):""}a(G8,"parentFolderOf")});var $C=v(co=>{"use strict";var W8=co&&co.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},H8=co&&co.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},jl;Object.defineProperty(co,"__esModule",{value:!0});co.NamedQueryRunner=void 0;var z8=Ve(),K8=Ce(),X8=Ge(),jC=km(),Y8=Pp(),t1=jl=class{static{a(this,"NamedQueryRunner")}constructor(e,t){this.queryBodyResolver=e,this.tripleStore=t}async run(e,t={}){if(!e)return null;let r=await this.queryBodyResolver.resolveSparql(e);if(!r)return null;let i=this.substitute(r,t);return(0,jC.evaluateWithExoEval)(i,{store:this.tripleStore})}async runScalar(e,t={},r){if(!e)throw new Error("NamedQueryRunner.runScalar: empty queryUid");let i=await this.queryBodyResolver.resolveSparql(e);if(!i)throw new Error(`NamedQueryRunner: query__NamedQuery '${e}' has no resolvable SPARQL body (asset missing or no \`\`\`sparql block).`);let s=this.substitute(i,t),o=await(0,jC.evaluateWithExoEval)(s,{store:this.tripleStore});if(o.kind==="ask")return{value:o.result?"true":"false",kind:"literal"};if(o.kind==="construct")return null;let c=o.rows[0];if(!c)return null;let l=c.variables(),u=r??l[0];if(!u)return null;let f=c.get(u);return f===void 0?null:f instanceof K8.IRI?{value:(0,Y8.iriToObsidianName)(f.value)??f.value,kind:"iri"}:f instanceof X8.Literal?{value:f.value,kind:"literal"}:null}substitute(e,t){let r=e;t.currentAsset&&(r=r.replace(/\$currentAsset\b/g,jl.formatIri(t.currentAsset))),t.currentClass&&(r=r.replace(/\$currentClass\b/g,jl.formatIri(t.currentClass)));let i=t.params;if(i){let s=Object.keys(i).sort((o,c)=>c.length-o.length);for(let o of s){let c=i[o],l=c.kind==="iri"?jl.formatIri(c.value):`"${jl.escapeLiteral(c.value)}"`,u=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");r=r.replace(new RegExp(`\\$${u}\\b`,"g"),l)}}return r}static formatIri(e){if(/[\s<>"{}|\\^`]/.test(e))throw new Error(`NamedQueryRunner: refusing to inject malformed IRI "${e}" \u2014 contains a character illegal in a SPARQL IRIREF (would break out of <...>). Pass a percent-encoded IRI.`);return`<${e}>`}static escapeLiteral(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}};co.NamedQueryRunner=t1;co.NamedQueryRunner=t1=jl=W8([(0,z8.injectable)(),H8("design:paramtypes",[Object,Object])],t1)});var UC=v(Jm=>{"use strict";Object.defineProperty(Jm,"__esModule",{value:!0});Jm.extractSparqlBlock=Q8;Jm.stripFrontmatter=J8;function Q8(n){let e=n.match(/```sparql\s*\n([\s\S]*?)\n```/);if(!e)return null;let t=e[1].trim();return t.length>0?t:null}a(Q8,"extractSparqlBlock");function J8(n){if(!n.startsWith("---"))return n;let e=n.indexOf(`
93
+ ---`,3);return e<0?n:n.slice(e+4)}a(J8,"stripFrontmatter")});var VC=v(lo=>{"use strict";var Z8=lo&&lo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},eB=lo&&lo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},Hf;Object.defineProperty(lo,"__esModule",{value:!0});lo.CommandExecutionFlow=void 0;var tB=Ve(),BC=Wo(),rB=Ce(),nB=Ge(),iB=Ht(),sB=Mn(),Zm=Hf=class{static{a(this,"CommandExecutionFlow")}constructor(e,t,r,i,s,o,c){this.groundingExecutor=e,this.notificationService=t,this.logger=r,this.prompts=i,this.tripleStore=s,this.fileOpener=o,this.requiredPropertyResolver=c}async run(e,t){let{command:r}=e;if(r.confirmMessage&&!await this.prompts.confirm(r.confirmMessage))return;let i=t.injectedUserInput,s=Hf.extractInputSchema(e);if(s!==null&&s.length>0){let l=await this.applyLabelDatePrefill(s,r.grounding,t.targetIRI);l=await this.applyRequiredPropertyFields(l,r.grounding,t);let u=await this.prompts.promptInputSchema(l);if(u===null)return;i={...t.injectedUserInput??{},...u}}let o=await this.groundingExecutor.execute(r.grounding,t.targetIRI??"",t.filePath??"",i),c=t.filePath??"<no-file>";if(o.success){if(r.successMessage&&this.notificationService.success(r.successMessage),await new Promise(l=>setTimeout(l,100)),t.onComplete&&await t.onComplete(),o.openPath&&this.fileOpener)try{await this.fileOpener.open(o.openPath,{sameTab:r.openInSameTab})}catch(l){this.logger.info(`[CommandExecutionFlow] Failed to open created file "${o.openPath}": ${l instanceof Error?l.message:String(l)}`)}this.logger.info(`[CommandExecutionFlow] Executed "${r.name}" on ${c}`)}else this.notificationService.error(`Command failed: ${o.error??"unknown error"}`),this.logger.info(`[CommandExecutionFlow] Failed "${r.name}": ${o.error}`)}static extractInputSchema(e){let r=e.command.grounding.inputSchema;return!r||!Array.isArray(r)?null:r}async applyLabelDatePrefill(e,t,r){if(t.type!==BC.GroundingType.CREATE_INSTANCE||!t.prefillLabelWithDate||!r||!this.tripleStore)return e;let i=await this.resolveAssetLabel(r);if(!i)return e;let s=sB.DateFormatter.toDateString(new Date),o=`${i} ${s}`;return e.map(c=>{if(typeof c!="object"||c===null)return c;let l=c;if(l.name!=="label")return c;let u=l.defaultValue;return typeof u=="string"&&u.length>0?c:{...l,defaultValue:o}})}async applyRequiredPropertyFields(e,t,r){if(t.type!==BC.GroundingType.CREATE_INSTANCE||t.targetClass||!this.requiredPropertyResolver||!r.filePath)return e;let i=Hf.basenameUid(r.filePath);if(!i)return e;let s;try{s=await this.requiredPropertyResolver(i)}catch(l){return this.logger.info(`[CommandExecutionFlow] required-property resolution failed for "${i}": ${l instanceof Error?l.message:String(l)}`),e}if(s.length===0)return e;let o=new Set(Hf.ALWAYS_COVERED);for(let l of e)l&&typeof l=="object"&&typeof l.name=="string"&&o.add(l.name);let c=s.filter(l=>!o.has(l.propertyKey)).map(l=>{let u={name:l.propertyKey,type:l.fieldType,label:l.label,required:!0};return l.targetClassUid&&(u.targetClassUid=l.targetClassUid),l.fieldType==="boolean"&&(u.defaultValue="false"),u});return c.length===0?e:[...e,...c]}static basenameUid(e){let t=e.replace(/^\/+/,"").split("/").pop()?.replace(/\.md$/i,"");return t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?t.toLowerCase():null}async resolveAssetLabel(e){if(!this.tripleStore)return;let t=new rB.IRI(e),r=await this.tripleStore.match(t,iB.Namespace.EXO.term("Asset_label"),void 0);if(r.length===0)return;let i=r[0].object;if(i instanceof nB.Literal)return i.value.length>0?i.value:void 0}};lo.CommandExecutionFlow=Zm;Zm.ALWAYS_COVERED=["exo__Asset_uid","exo__Asset_createdAt","exo__Asset_updatedAt","exo__Asset_label","exo__Asset_createdBy","exo__Instance_class","exo__Asset_isDefinedBy"];lo.CommandExecutionFlow=Zm=Hf=Z8([(0,tB.injectable)(),eB("design:paramtypes",[Function,Object,Object,Object,Object,Object,Function])],Zm)});var WC=v(n1=>{"use strict";Object.defineProperty(n1,"__esModule",{value:!0});n1.createTripleStoreRequiredPropertyResolver=lB;var zf=Ce(),r1=Ge(),qC=Ht(),GC="http://www.w3.org/2001/XMLSchema#",oB=/\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.md$/i,aB=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Kf(n){let e=oB.exec(n);return e?e[1].toLowerCase():aB.test(n.trim())?n.trim().toLowerCase():null}a(Kf,"uidFrom");function cB(n){for(let e of n){let t=e.value;if(t.startsWith(GC)){let r=t.slice(GC.length).toLowerCase();return r==="date"||r==="datetime"?{fieldType:"date"}:r==="boolean"?{fieldType:"boolean"}:["integer","int","long","short","decimal","float","double","nonnegativeinteger","positiveinteger"].includes(r)?{fieldType:"number"}:{fieldType:"text"}}if(e.iri){let r=Kf(t);return r?{fieldType:"assetRef",targetClassUid:r}:{fieldType:"assetRef"}}}return{fieldType:"text"}}a(cB,"fieldTypeFromRange");function lB(n){let e=qC.Namespace.EXO,t=qC.Namespace.RDFS;return async r=>{let i=Kf(r)??r.trim().toLowerCase();if(!i)return[];let s=await n.match(void 0,e.term("Class_superClass"),void 0),o=new Map;for(let h of s){let p=h.subject instanceof zf.IRI?Kf(h.subject.value):null,y=h.object instanceof zf.IRI?Kf(h.object.value):null;if(!p||!y)continue;let g=o.get(p);g||(g=new Set,o.set(p,g)),g.add(y)}let c=new Set([i]),l=[i];for(;l.length>0;){let h=l.shift();if(h===void 0)break;for(let p of o.get(h)??[])c.has(p)||(c.add(p),l.push(p))}let u=await n.match(void 0,e.term("Property_minCount"),void 0),f=[],d=new Set;for(let h of u){if(!((h.object instanceof r1.Literal?parseInt(h.object.value,10):NaN)>0))continue;let y=h.subject;if(!(y instanceof zf.IRI)||!(await n.match(y,e.term("Property_domain"),void 0)).map(R=>R.object instanceof zf.IRI?Kf(R.object.value):null).filter(R=>R!==null).some(R=>c.has(R)))continue;let _=null;for(let R of[e.term("Asset_label"),t.term("label")]){let B=await n.match(y,R,void 0);for(let D of B)if(D.object instanceof r1.Literal&&D.object.value.trim().length>0){_=D.object.value.trim();break}if(_)break}if(!_||d.has(_))continue;d.add(_);let x=(await n.match(y,e.term("Property_range"),void 0)).map(R=>R.object instanceof zf.IRI?{iri:!0,value:R.object.value}:R.object instanceof r1.Literal?{iri:!1,value:R.object.value}:null).filter(R=>R!==null),{fieldType:A,targetClassUid:T}=cB(x);f.push({propertyKey:_,label:_,fieldType:A,targetClassUid:T})}return f.sort((h,p)=>h.propertyKey.localeCompare(p.propertyKey)),f}}a(lB,"createTripleStoreRequiredPropertyResolver")});var Xf=v(uo=>{"use strict";var uB=uo&&uo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},fB=uo&&uo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(uo,"__esModule",{value:!0});uo.WorkflowEngine=void 0;var dB=Ve(),i1=class{static{a(this,"WorkflowEngine")}constructor(e){this.definition=e}getAvailableTransitions(e){return this.definition.transitions.filter(t=>t.from===e&&!t.isRollback)}getRollbackTransitions(e){return this.definition.transitions.filter(t=>t.from===e&&t.isRollback)}getAllTransitions(e){return this.definition.transitions.filter(t=>t.from===e)}canTransition(e,t){return this.definition.transitions.some(r=>r.from===e&&r.to===t)}getPreviousStatus(e){return this.definition.transitions.find(r=>r.from===e&&r.isRollback)?.to??null}getNextStates(e){return this.getAvailableTransitions(e).map(t=>t.to)}isTerminalState(e){return this.definition.terminalStates.includes(e)}isInitialState(e){return this.definition.initialState===e}getTimestampsForStatus(e){return this.definition.states.find(r=>r.status===e)?.timestampOnEnter??[]}getTransition(e,t){return this.definition.transitions.find(r=>r.from===e&&r.to===t)}getOrderedStates(){return this.definition.states.map(e=>e.status)}getDefinition(){return this.definition}validate(){let e=[],t=new Set(this.definition.states.map(i=>i.status));this.definition.states.length===0&&e.push("Workflow must have at least one state"),t.has(this.definition.initialState)||e.push(`Initial state "${this.definition.initialState}" is not in the states list`);for(let i of this.definition.terminalStates)t.has(i)||e.push(`Terminal state "${i}" is not in the states list`);for(let i of this.definition.transitions)t.has(i.from)||e.push(`Transition "${i.label}" references unknown source state "${i.from}"`),t.has(i.to)||e.push(`Transition "${i.label}" references unknown target state "${i.to}"`);for(let i of this.definition.states){if(this.definition.terminalStates.includes(i.status))continue;this.definition.transitions.filter(o=>o.from===i.status&&!o.isRollback).length===0&&e.push(`State "${i.status}" has no outgoing forward transitions (dead end)`)}let r=new Set;for(let i of this.definition.transitions){let s=`${i.from}\u2192${i.to}`;r.has(s)&&e.push(`Duplicate transition: ${s}`),r.add(s)}return{valid:e.length===0,errors:e}}};uo.WorkflowEngine=i1;uo.WorkflowEngine=i1=uB([(0,dB.injectable)(),fB("design:paramtypes",[Object])],i1)});var HC=v(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});Ss.EFFORT_WORKFLOW_PROPERTY=Ss.WorkflowTransitionProperty=Ss.WorkflowStateProperty=Ss.WorkflowProperty=void 0;Ss.WorkflowProperty={TARGET_CLASS:"ems__Workflow_targetClass",INITIAL_STATE:"ems__Workflow_initialState",TERMINAL_STATES:"ems__Workflow_terminalStates",IS_DEFAULT:"ems__Workflow_isDefault"};Ss.WorkflowStateProperty={WORKFLOW:"ems__WorkflowState_workflow",STATUS:"ems__WorkflowState_status",ORDER:"ems__WorkflowState_order",OPTIONAL:"ems__WorkflowState_optional",TIMESTAMP_ON_ENTER:"ems__WorkflowState_timestampOnEnter",BADGE_COLOR:"ems__WorkflowState_badgeColor"};Ss.WorkflowTransitionProperty={WORKFLOW:"ems__WorkflowTransition_workflow",FROM:"ems__WorkflowTransition_from",TO:"ems__WorkflowTransition_to",LABEL:"ems__WorkflowTransition_label",ICON:"ems__WorkflowTransition_icon",IS_ROLLBACK:"ems__WorkflowTransition_isRollback"};Ss.EFFORT_WORKFLOW_PROPERTY="ems__Effort_workflow"});var fo=v(eg=>{"use strict";Object.defineProperty(eg,"__esModule",{value:!0});eg.MetadataHelpers=void 0;var zC=qf(),s1=class{static{a(this,"MetadataHelpers")}static findAllReferencingProperties(e,t){let r=[];for(let[i,s]of Object.entries(e))this.containsReference(s,t)&&r.push(i);return r}static findReferencingProperty(e,t){for(let[r,i]of Object.entries(e))if(this.containsReference(i,t))return r}static containsReference(e,t){if(!e)return!1;let r=t.replace(/\.md$/,"");if(typeof e=="string"){let i=/\[\[([^[\]]+)\]\]/g,s;for(;(s=i.exec(e))!==null;){let c=s[1].split("|")[0].trim();if(c===r||c.endsWith(`/${r}`))return!0}return!1}return Array.isArray(e)?e.some(i=>this.containsReference(i,t)):!1}static isAssetArchived(e){let t=e?.exo__Asset_isArchived;if(t!=null){if(t===!0||t===1)return!0;if(typeof t=="string"){let i=t.toLowerCase().trim();if(i==="true"||i==="yes"||i==="1")return!0}if(typeof t=="boolean")return t}let r=e?.archived;if(r==null)return!1;if(typeof r=="boolean")return r;if(typeof r=="number")return r!==0;if(typeof r=="string"){let i=r.toLowerCase().trim();return i==="true"||i==="yes"||i==="1"}return!1}static getPropertyValue(e,t){return t==="Name"||t==="title"?e.title:t==="created"?e.created:t==="modified"?e.modified:t==="path"?e.path:e.metadata?.[t]}static ensureQuoted(e){return!e||e==='""'?'""':e.startsWith('"')&&e.endsWith('"')?e:`"${e}"`}static buildFileContent(e,t){let r=(0,zC.orderProperties)(e,(0,zC.loadDefaultSpec)()),i=Object.entries(r).map(([c,l])=>{if(Array.isArray(l)){let u=l.map(f=>` - ${String(f)}`).join(`
94
94
  `);return`${c}:
95
95
  ${u}`}return`${c}: ${String(l)}`}).join(`
96
96
  `),s=t;if(s===void 0){let c=r.exo__Asset_label;typeof c=="string"&&c.trim()!==""&&(s=`# ${c}`)}let o=s?`
@@ -99,14 +99,14 @@ ${s}
99
99
  `;return`---
100
100
  ${i}
101
101
  ---
102
- ${o}`}};eg.MetadataHelpers=s1});var X3=v(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.TASK_DEFAULT_WORKFLOW=lc.PROJECT_DEFAULT_WORKFLOW=void 0;lc.buildWorkflowAssetContent=hB;var K3=Ti(),Yf=Yc(),je=Qc(),Yr=H3(),o1=fo();lc.PROJECT_DEFAULT_WORKFLOW={id:"a1b2c3d4-1111-4000-a000-000000000001",name:"Project Default Workflow",targetClass:Yf.AssetClass.PROJECT,initialState:je.EffortStatus.DRAFT,terminalStates:[je.EffortStatus.DONE,je.EffortStatus.TRASHED],isDefault:!0,states:[{status:je.EffortStatus.DRAFT,order:1,optional:!1,timestampOnEnter:[]},{status:je.EffortStatus.BACKLOG,order:2,optional:!1,timestampOnEnter:[]},{status:je.EffortStatus.ANALYSIS,order:3,optional:!0,timestampOnEnter:[]},{status:je.EffortStatus.TODO,order:4,optional:!0,timestampOnEnter:[]},{status:je.EffortStatus.DOING,order:5,optional:!1,timestampOnEnter:["ems__Effort_startTimestamp"]},{status:je.EffortStatus.DONE,order:6,optional:!1,timestampOnEnter:["ems__Effort_endTimestamp","ems__Effort_resolutionTimestamp"]},{status:je.EffortStatus.TRASHED,order:7,optional:!1,timestampOnEnter:["ems__Effort_resolutionTimestamp"]}],transitions:[{from:je.EffortStatus.DRAFT,to:je.EffortStatus.BACKLOG,label:"\u2192 Backlog",isRollback:!1},{from:je.EffortStatus.BACKLOG,to:je.EffortStatus.ANALYSIS,label:"\u2192 Analysis",isRollback:!1},{from:je.EffortStatus.ANALYSIS,to:je.EffortStatus.TODO,label:"\u2192 ToDo",isRollback:!1},{from:je.EffortStatus.TODO,to:je.EffortStatus.DOING,label:"\u25B6 Start",isRollback:!1},{from:je.EffortStatus.DOING,to:je.EffortStatus.DONE,label:"\u2713 Done",isRollback:!1},{from:je.EffortStatus.BACKLOG,to:je.EffortStatus.DRAFT,label:"\u2190 Draft",isRollback:!0},{from:je.EffortStatus.ANALYSIS,to:je.EffortStatus.BACKLOG,label:"\u2190 Backlog",isRollback:!0},{from:je.EffortStatus.TODO,to:je.EffortStatus.ANALYSIS,label:"\u2190 Analysis",isRollback:!0},{from:je.EffortStatus.DOING,to:je.EffortStatus.TODO,label:"\u2190 ToDo",isRollback:!0},{from:je.EffortStatus.DONE,to:je.EffortStatus.DOING,label:"\u2190 Doing",isRollback:!0}]};lc.TASK_DEFAULT_WORKFLOW={id:"a1b2c3d4-2222-4000-a000-000000000002",name:"Task Default Workflow",targetClass:Yf.AssetClass.TASK,initialState:je.EffortStatus.DRAFT,terminalStates:[je.EffortStatus.DONE,je.EffortStatus.TRASHED],isDefault:!0,states:[{status:je.EffortStatus.DRAFT,order:1,optional:!1,timestampOnEnter:[]},{status:je.EffortStatus.BACKLOG,order:2,optional:!1,timestampOnEnter:[]},{status:je.EffortStatus.DOING,order:3,optional:!1,timestampOnEnter:["ems__Effort_startTimestamp"]},{status:je.EffortStatus.DONE,order:4,optional:!1,timestampOnEnter:["ems__Effort_endTimestamp","ems__Effort_resolutionTimestamp"]},{status:je.EffortStatus.TRASHED,order:5,optional:!1,timestampOnEnter:["ems__Effort_resolutionTimestamp"]}],transitions:[{from:je.EffortStatus.DRAFT,to:je.EffortStatus.BACKLOG,label:"\u2192 Backlog",isRollback:!1},{from:je.EffortStatus.BACKLOG,to:je.EffortStatus.DOING,label:"\u25B6 Start",isRollback:!1},{from:je.EffortStatus.DOING,to:je.EffortStatus.DONE,label:"\u2713 Done",isRollback:!1},{from:je.EffortStatus.BACKLOG,to:je.EffortStatus.DRAFT,label:"\u2190 Draft",isRollback:!0},{from:je.EffortStatus.DOING,to:je.EffortStatus.BACKLOG,label:"\u2190 Backlog",isRollback:!0},{from:je.EffortStatus.DONE,to:je.EffortStatus.DOING,label:"\u2190 Doing",isRollback:!0}]};function hB(n){let e=new Date().toISOString(),t=[],r=n.id,i={exo__Asset_uid:r,exo__Asset_label:`"${n.name}"`,exo__Asset_createdAt:e,exo__Instance_class:Yf.AssetClass.WORKFLOW,[Yr.WorkflowProperty.TARGET_CLASS]:`"[[${n.targetClass}]]"`,[Yr.WorkflowProperty.INITIAL_STATE]:`"[[${n.initialState}]]"`,[Yr.WorkflowProperty.TERMINAL_STATES]:n.terminalStates.map(s=>`"[[${s}]]"`),[Yr.WorkflowProperty.IS_DEFAULT]:n.isDefault};t.push({filename:`${r}.md`,content:o1.MetadataHelpers.buildFileContent(i)});for(let s of n.states){let o=(0,K3.v4)(),c={exo__Asset_uid:o,exo__Asset_label:`"${n.name} - ${s.status}"`,exo__Asset_createdAt:e,exo__Instance_class:Yf.AssetClass.WORKFLOW_STATE,[Yr.WorkflowStateProperty.WORKFLOW]:`"[[${r}]]"`,[Yr.WorkflowStateProperty.STATUS]:`"[[${s.status}]]"`,[Yr.WorkflowStateProperty.ORDER]:s.order,[Yr.WorkflowStateProperty.OPTIONAL]:s.optional};s.timestampOnEnter.length>0&&(c[Yr.WorkflowStateProperty.TIMESTAMP_ON_ENTER]=s.timestampOnEnter),s.badgeColor&&(c[Yr.WorkflowStateProperty.BADGE_COLOR]=`"${s.badgeColor}"`),t.push({filename:`${o}.md`,content:o1.MetadataHelpers.buildFileContent(c)})}for(let s of n.transitions){let o=(0,K3.v4)(),c={exo__Asset_uid:o,exo__Asset_label:`"${n.name} - ${s.label}"`,exo__Asset_createdAt:e,exo__Instance_class:Yf.AssetClass.WORKFLOW_TRANSITION,[Yr.WorkflowTransitionProperty.WORKFLOW]:`"[[${r}]]"`,[Yr.WorkflowTransitionProperty.FROM]:`"[[${s.from}]]"`,[Yr.WorkflowTransitionProperty.TO]:`"[[${s.to}]]"`,[Yr.WorkflowTransitionProperty.LABEL]:`"${s.label}"`,[Yr.WorkflowTransitionProperty.IS_ROLLBACK]:s.isRollback};s.icon&&(c[Yr.WorkflowTransitionProperty.ICON]=`"${s.icon}"`),t.push({filename:`${o}.md`,content:o1.MetadataHelpers.buildFileContent(c)})}return t}a(hB,"buildWorkflowAssetContent")});var c1=v(ho=>{"use strict";var pB=ho&&ho.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},mB=ho&&ho.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(ho,"__esModule",{value:!0});ho.WorkflowResolver=void 0;var gB=Ve(),$l=Ce(),Qr=Ge(),Et=Ht(),uc=Yc(),tg=Qc(),Y3=X3(),a1=class{static{a(this,"WorkflowResolver")}constructor(e){this.tripleStore=e,this.cache=new Map}async resolveForClass(e){let t=`class:${e}`,r=this.cache.get(t);if(r)return r;let s=await this.findDefaultWorkflow(e)??this.getHardcodedFallback(e);return this.cache.set(t,s),s}async resolveForAsset(e,t){let r=await this.tripleStore.match(e,Et.Namespace.EMS.term("Effort_workflow"),void 0);if(r.length>0){let i=r[0].object;if(i instanceof $l.IRI){let s=await this.loadWorkflowBySubject(i);if(s)return s}}return this.resolveForClass(t)}invalidateCache(){this.cache.clear()}async findDefaultWorkflow(e){let t=await this.tripleStore.match(void 0,Et.Namespace.RDF.term("type"),Et.Namespace.EMS.term("Workflow"));for(let r of t){let i=r.subject;if(!(!(await this.tripleStore.match(i,Et.Namespace.EMS.term("Workflow_targetClass"),void 0)).some(u=>{let f=u.object;return f instanceof $l.IRI?f.value.endsWith(e.replace(/^ems__/,"")):f instanceof Qr.Literal?this.normalizeWikilink(f.value)===e:!1})||!(await this.tripleStore.match(i,Et.Namespace.EMS.term("Workflow_isDefault"),void 0)).some(u=>{let f=u.object instanceof Qr.Literal?u.object.value:"";return f==="true"||f==="1"})))return this.loadWorkflowBySubject(i)}return null}async loadWorkflowBySubject(e){let t=await this.tripleStore.match(e,Et.Namespace.EXO.term("Asset_label"),void 0),r=t.length>0&&t[0].object instanceof Qr.Literal?t[0].object.value:"Unknown Workflow",i=await this.tripleStore.match(e,Et.Namespace.EXO.term("Asset_uid"),void 0),s=i.length>0&&i[0].object instanceof Qr.Literal?i[0].object.value:e.value,o=await this.tripleStore.match(e,Et.Namespace.EMS.term("Workflow_targetClass"),void 0),c=this.resolveAssetClass(o),l=await this.tripleStore.match(e,Et.Namespace.EMS.term("Workflow_initialState"),void 0),u=this.resolveEffortStatus(l)??tg.EffortStatus.DRAFT,f=await this.tripleStore.match(e,Et.Namespace.EMS.term("Workflow_terminalStates"),void 0),d=this.resolveEffortStatuses(f),p=(await this.tripleStore.match(e,Et.Namespace.EMS.term("Workflow_isDefault"),void 0)).some(b=>{let _=b.object instanceof Qr.Literal?b.object.value:"";return _==="true"||_==="1"}),y=await this.loadStates(e),g=await this.loadTransitions(e);return y.length===0&&g.length===0?null:{id:s,name:r,targetClass:c,states:y,transitions:g,initialState:u,terminalStates:d.length>0?d:[tg.EffortStatus.DONE,tg.EffortStatus.TRASHED],isDefault:p}}async loadStates(e){let t=await this.tripleStore.match(void 0,Et.Namespace.RDF.term("type"),Et.Namespace.EMS.term("WorkflowState")),r=[];for(let i of t){let s=i.subject;if(!(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_workflow"),void 0)).some(S=>this.isSameSubject(S.object,e)))continue;let l=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_status"),void 0),u=this.resolveEffortStatus(l);if(!u)continue;let f=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_order"),void 0),d=f.length>0&&f[0].object instanceof Qr.Literal&&parseInt(f[0].object.value,10)||0,p=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_optional"),void 0)).some(S=>{let x=S.object instanceof Qr.Literal?S.object.value:"";return x==="true"||x==="1"}),g=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_timestampOnEnter"),void 0)).map(S=>S.object instanceof Qr.Literal?S.object.value:"").filter(S=>S.length>0),b=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_badgeColor"),void 0),_=b.length>0&&b[0].object instanceof Qr.Literal?b[0].object.value:void 0;r.push({status:u,order:d,optional:p,timestampOnEnter:g,badgeColor:_})}return r.sort((i,s)=>i.order-s.order)}async loadTransitions(e){let t=await this.tripleStore.match(void 0,Et.Namespace.RDF.term("type"),Et.Namespace.EMS.term("WorkflowTransition")),r=[];for(let i of t){let s=i.subject;if(!(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_workflow"),void 0)).some(A=>this.isSameSubject(A.object,e)))continue;let l=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_from"),void 0),u=this.resolveEffortStatus(l),f=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_to"),void 0),d=this.resolveEffortStatus(f);if(!u||!d)continue;let h=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_label"),void 0),p=h.length>0&&h[0].object instanceof Qr.Literal?h[0].object.value:`${u} \u2192 ${d}`,y=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_icon"),void 0),g=y.length>0&&y[0].object instanceof Qr.Literal?y[0].object.value:void 0,_=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_isRollback"),void 0)).some(A=>{let T=A.object instanceof Qr.Literal?A.object.value:"";return T==="true"||T==="1"}),x=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_postActions"),void 0)).map(A=>this.extractUid(A.object)).filter(A=>A!==null);r.push({from:u,to:d,label:p,icon:g,isRollback:_,postActions:x.length>0?x:void 0})}return r}extractUid(e){let t=/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i,r=e instanceof $l.IRI||e instanceof Qr.Literal?e.value:null;if(r===null)return null;let i=r.match(t);return i?i[1].toLowerCase():null}normalizeWikilink(e){return e.replace(/["'[\]]/g,"").trim()}resolveAssetClass(e){if(e.length===0)return uc.AssetClass.TASK;let t=e[0].object;if(t instanceof $l.IRI){let i=`ems__${t.value.split("#").pop()??""}`;return Object.values(uc.AssetClass).includes(i)?i:uc.AssetClass.TASK}if(t instanceof Qr.Literal){let r=this.normalizeWikilink(t.value);return Object.values(uc.AssetClass).includes(r)?r:uc.AssetClass.TASK}return uc.AssetClass.TASK}resolveEffortStatus(e){if(e.length===0)return null;let t=e[0].object,r;if(t instanceof $l.IRI)r=`ems__${t.value.split("#").pop()??""}`;else if(t instanceof Qr.Literal)r=this.normalizeWikilink(t.value);else return null;return Object.values(tg.EffortStatus).includes(r)?r:null}resolveEffortStatuses(e){return e.map(t=>this.resolveEffortStatus([t])).filter(t=>t!==null)}isSameSubject(e,t){if(e instanceof $l.IRI)return e.value===t.value;if(e instanceof Qr.Literal){let r=this.normalizeWikilink(e.value);return t.value.includes(r)}return!1}getHardcodedFallback(e){return e===uc.AssetClass.PROJECT?{...Y3.PROJECT_DEFAULT_WORKFLOW}:{...Y3.TASK_DEFAULT_WORKFLOW}}};ho.WorkflowResolver=a1;ho.WorkflowResolver=a1=pB([(0,gB.injectable)(),mB("design:paramtypes",[Object])],a1)});var d1=v(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.TransactionError=oa.TripleNotFoundError=oa.TripleAlreadyExistsError=void 0;var l1=class extends Error{static{a(this,"TripleAlreadyExistsError")}constructor(e){super(`Triple already exists: ${e.toString()}`),this.name="TripleAlreadyExistsError"}};oa.TripleAlreadyExistsError=l1;var u1=class extends Error{static{a(this,"TripleNotFoundError")}constructor(e){super(`Triple not found: ${e.toString()}`),this.name="TripleNotFoundError"}};oa.TripleNotFoundError=u1;var f1=class extends Error{static{a(this,"TransactionError")}constructor(e){super(e),this.name="TransactionError"}};oa.TransactionError=f1});var ng=v(rg=>{"use strict";Object.defineProperty(rg,"__esModule",{value:!0});rg.LRUCache=void 0;var h1=class{static{a(this,"LRUCache")}constructor(e){this.maxSize=e,this.cache=new Map}get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}};rg.LRUCache=h1});var g1=v(sg=>{"use strict";Object.defineProperty(sg,"__esModule",{value:!0});sg.InMemoryTripleStore=void 0;var aa=d1(),ig=Ce(),yB=Mt(),bB=Ge(),_B=Ht(),wB=ng(),SB=_B.Namespace.XSD.term("string").value,vB=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,Ul="__default__",p1=class n{static{a(this,"InMemoryTripleStore")}constructor(){this.triples=new Map,this.spo=new Map,this.sop=new Map,this.pso=new Map,this.pos=new Map,this.osp=new Map,this.ops=new Map,this.queryCache=new wB.LRUCache(1e3),this.uuidIndex=new Map,this.namedGraphs=new Map}async add(e){let t=this.getTripleKey(e);if(this.triples.has(t))return;this.triples.set(t,e);let r=this.getNodeKey(e.subject),i=this.getNodeKey(e.predicate),s=this.getNodeKey(e.object);this.addToIndex(this.spo,r,i,s),this.addToIndex(this.sop,r,s,i),this.addToIndex(this.pso,i,r,s),this.addToIndex(this.pos,i,s,r),this.addToIndex(this.osp,s,r,i),this.addToIndex(this.ops,s,i,r),this.addToUUIDIndex(e.subject),this.queryCache.clear()}async remove(e){let t=this.getTripleKey(e);if(!this.triples.has(t))return!1;this.triples.delete(t);let r=this.getNodeKey(e.subject),i=this.getNodeKey(e.predicate),s=this.getNodeKey(e.object);return this.removeFromIndex(this.spo,r,i,s),this.removeFromIndex(this.sop,r,s,i),this.removeFromIndex(this.pso,i,r,s),this.removeFromIndex(this.pos,i,s,r),this.removeFromIndex(this.osp,s,r,i),this.removeFromIndex(this.ops,s,i,r),this.queryCache.clear(),!0}async has(e){let t=this.getTripleKey(e);return this.triples.has(t)}async match(e,t,r){let i=this.getMatchCacheKey(e,t,r),s=this.queryCache.get(i);if(s!==void 0)return s;let o;return!e&&!t&&!r?o=Array.from(this.triples.values()):e&&t&&r?o=this.matchSPO(e,t,r):e&&t?o=this.matchSP(e,t):e&&r?o=this.matchSO(e,r):t&&r?o=this.matchPO(t,r):e?o=this.matchS(e):t?o=this.matchP(t):r?o=this.matchO(r):o=[],this.queryCache.set(i,o),o}async addAll(e){for(let t of e)await this.add(t)}async removeAll(e){let t=0;for(let r of e)await this.remove(r)&&t++;return t}async clear(){this.triples.clear(),this.spo.clear(),this.sop.clear(),this.pso.clear(),this.pos.clear(),this.osp.clear(),this.ops.clear(),this.uuidIndex.clear(),this.queryCache.clear()}async count(){return this.triples.size}async subjects(){let e=new Set;for(let t of this.triples.values())e.add(t.subject);return Array.from(e)}async predicates(){let e=new Set;for(let t of this.triples.values())e.add(t.predicate);return Array.from(e)}async objects(){let e=new Set;for(let t of this.triples.values())e.add(t.object);return Array.from(e)}async beginTransaction(){return new m1(this)}async findSubjectsByUUID(e){return this.findSubjectsByUUIDSync(e)}findSubjectsByUUIDSync(e){let t=e.toLowerCase(),r=this.uuidIndex.get(t);if(!r||r.size===0)return[];let i=[];for(let s of r)this.spo.has(`i:${s}`)&&i.push(new ig.IRI(s));return i}addToUUIDIndex(e){if(!(e instanceof ig.IRI))return;let t=e.value,r=t.match(vB);if(r)for(let i of r){let s=i.toLowerCase();this.uuidIndex.has(s)||this.uuidIndex.set(s,new Set),this.uuidIndex.get(s).add(t)}}matchSPO(e,t,r){let i=this.getNodeKey(e),s=this.getNodeKey(t),o=this.getNodeKey(r),c=this.spo.get(i);if(!c)return[];let l=c.get(s);if(!l)return[];if(l.has(o)){let u=this.buildTripleKey(i,s,o),f=this.triples.get(u);return f?[f]:[]}return[]}matchSP(e,t){let r=this.getNodeKey(e),i=this.getNodeKey(t),s=this.spo.get(r);if(!s)return[];let o=s.get(i);return o?this.getTriplesByKeys(Array.from(o).map(c=>this.buildTripleKey(r,i,c))):[]}matchSO(e,t){let r=this.getNodeKey(e),i=this.getNodeKey(t),s=this.sop.get(r);if(!s)return[];let o=s.get(i);return o?this.getTriplesByKeys(Array.from(o).map(c=>this.buildTripleKey(r,c,i))):[]}matchPO(e,t){let r=this.getNodeKey(e),i=this.getNodeKey(t),s=this.pos.get(r);if(!s)return[];let o=s.get(i);return o?this.getTriplesByKeys(Array.from(o).map(c=>this.buildTripleKey(c,r,i))):[]}matchS(e){let t=this.getNodeKey(e),r=this.spo.get(t);if(!r)return[];let i=[];for(let[s,o]of r.entries())for(let c of o)i.push(this.buildTripleKey(t,s,c));return this.getTriplesByKeys(i)}matchP(e){let t=this.getNodeKey(e),r=this.pso.get(t);if(!r)return[];let i=[];for(let[s,o]of r.entries())for(let c of o)i.push(this.buildTripleKey(s,t,c));return this.getTriplesByKeys(i)}matchO(e){let t=this.getNodeKey(e),r=this.osp.get(t);if(!r)return[];let i=[];for(let[s,o]of r.entries())for(let c of o)i.push(this.buildTripleKey(s,c,t));return this.getTriplesByKeys(i)}getTriplesByKeys(e){let t=[];for(let r of e){let i=this.triples.get(r);i&&t.push(i)}return t}addToIndex(e,t,r,i){e.has(t)||e.set(t,new Map);let s=e.get(t);s.has(r)||s.set(r,new Set),s.get(r).add(i)}removeFromIndex(e,t,r,i){let s=e.get(t);if(!s)return;let o=s.get(r);o&&(o.delete(i),o.size===0&&s.delete(r),s.size===0&&e.delete(t))}getTripleKey(e){let t=this.getNodeKey(e.subject),r=this.getNodeKey(e.predicate),i=this.getNodeKey(e.object);return this.buildTripleKey(t,r,i)}buildTripleKey(e,t,r){return`${e}|${t}|${r}`}getNodeKey(e){if(e instanceof ig.IRI)return`i:${e.value}`;if(e instanceof yB.BlankNode)return`b:${e.id}`;if(e instanceof bB.Literal){let t=`l:${e.value}`;return e.datatype&&e.datatype.value!==SB?t+=`^^${e.datatype.value}`:e.language&&(t+=`@${e.language}`),t}return""}getMatchCacheKey(e,t,r){let i=e?this.getNodeKey(e):"?",s=t?this.getNodeKey(t):"?",o=r?this.getNodeKey(r):"?";return`${i}|${s}|${o}`}getGraphKey(e){return e?e.value:Ul}getOrCreateGraphStore(e){let t=this.getGraphKey(e);return t===Ul?this:(this.namedGraphs.has(t)||this.namedGraphs.set(t,new n),this.namedGraphs.get(t))}async addToGraph(e,t){await this.getOrCreateGraphStore(t).add(e)}async removeFromGraph(e,t){let r=this.getGraphKey(t);if(r===Ul)return this.remove(e);let i=this.namedGraphs.get(r);return i?i.remove(e):!1}async matchInGraph(e,t,r,i){let s=this.getGraphKey(i);if(s===Ul)return this.match(e,t,r);let o=this.namedGraphs.get(s);return o?o.match(e,t,r):[]}async getNamedGraphs(){return Array.from(this.namedGraphs.keys()).map(e=>new ig.IRI(e))}async hasGraph(e){let t=this.namedGraphs.get(e.value);return t?await t.count()>0:!1}async clearGraph(e){let t=this.getGraphKey(e);if(t===Ul){await this.clear();return}let r=this.namedGraphs.get(t);r&&(await r.clear(),this.namedGraphs.delete(t))}async countInGraph(e){let t=this.getGraphKey(e);if(t===Ul)return this.count();let r=this.namedGraphs.get(t);return r?r.count():0}};sg.InMemoryTripleStore=p1;var m1=class{static{a(this,"InMemoryTransaction")}constructor(e){this.store=e,this.operations=[],this.committed=!1,this.rolledBack=!1}async add(e){if(this.committed)throw new aa.TransactionError("Transaction already committed");if(this.rolledBack)throw new aa.TransactionError("Transaction already rolled back");this.operations.push({type:"add",triple:e})}async remove(e){if(this.committed)throw new aa.TransactionError("Transaction already committed");if(this.rolledBack)throw new aa.TransactionError("Transaction already rolled back");return this.operations.push({type:"remove",triple:e}),!0}async commit(){if(this.committed)throw new aa.TransactionError("Transaction already committed");if(this.rolledBack)throw new aa.TransactionError("Transaction already rolled back");for(let e of this.operations)e.type==="add"?await this.store.add(e.triple):await this.store.remove(e.triple);this.committed=!0,this.operations=[]}async rollback(){if(this.committed)throw new aa.TransactionError("Transaction already committed");if(this.rolledBack)throw new aa.TransactionError("Transaction already rolled back");this.operations=[],this.rolledBack=!0}}});var ag=v(po=>{"use strict";var EB=po&&po.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},TB=po&&po.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(po,"__esModule",{value:!0});po.EffortStatusWorkflow=void 0;var AB=Ve(),og=zo(),xB=Xf(),IB=c1(),RB=g1(),y1=class{static{a(this,"EffortStatusWorkflow")}constructor(){this.resolver=new IB.WorkflowResolver(new RB.InMemoryTripleStore)}setResolver(e){this.resolver=e}getPreviousStatus(e,t){let r=this.normalizeStatus(e),i=this.resolveDefinition(t),s=new xB.WorkflowEngine(i);if(s.isInitialState(r))return null;let o=s.getPreviousStatus(r);if(o!==null)return this.wrapStatus(o)}normalizeStatus(e){return e.replace(/["'[\]]/g,"").trim()}wrapStatus(e){return`"[[${e}]]"`}resolveDefinition(e){return this.hasInstanceClass(e,og.AssetClass.TASK)||this.hasInstanceClass(e,og.AssetClass.MEETING)?this.resolver.getHardcodedFallback(og.AssetClass.TASK):this.resolver.getHardcodedFallback(og.AssetClass.PROJECT)}hasInstanceClass(e,t){return e?(Array.isArray(e)?e:[e]).some(i=>i.replace(/["'[\]]/g,"").trim()===t):!1}};po.EffortStatusWorkflow=y1;po.EffortStatusWorkflow=y1=EB([(0,AB.injectable)(),TB("design:paramtypes",[])],y1)});var Ut=v(cg=>{"use strict";Object.defineProperty(cg,"__esModule",{value:!0});cg.DI_TOKENS=void 0;cg.DI_TOKENS={IFileSystemAdapter:Symbol.for("IFileSystemAdapter"),IVaultAdapter:Symbol.for("IVaultAdapter"),IVaultContext:Symbol.for("IVaultContext"),IMultiVaultManager:Symbol.for("IMultiVaultManager"),ILogger:Symbol.for("ILogger"),IEventBus:Symbol.for("IEventBus"),IConfiguration:Symbol.for("IConfiguration"),INotificationService:Symbol.for("INotificationService"),AreaCreationService:Symbol.for("AreaCreationService"),ClassCreationService:Symbol.for("ClassCreationService"),ConceptCreationService:Symbol.for("ConceptCreationService"),SupervisionCreationService:Symbol.for("SupervisionCreationService"),GenericAssetCreationService:Symbol.for("GenericAssetCreationService"),DynamicFrontmatterGenerator:Symbol.for("DynamicFrontmatterGenerator"),AlgorithmExtractor:Symbol.for("AlgorithmExtractor"),TaskStatusService:Symbol.for("TaskStatusService"),EffortStatusWorkflow:Symbol.for("EffortStatusWorkflow"),StatusTimestampService:Symbol.for("StatusTimestampService"),PropertyCleanupService:Symbol.for("PropertyCleanupService"),FolderRepairService:Symbol.for("FolderRepairService"),RenameToUidService:Symbol.for("RenameToUidService"),PlanningService:Symbol.for("PlanningService"),EffortVotingService:Symbol.for("EffortVotingService"),SessionEventService:Symbol.for("SessionEventService"),CriticalityZoneService:Symbol.for("CriticalityZoneService"),AssetConversionService:Symbol.for("AssetConversionService"),NoteToRDFConverter:Symbol.for("NoteToRDFConverter"),IVaultSettings:Symbol.for("IVaultSettings"),AreaHierarchyBuilder:Symbol.for("AreaHierarchyBuilder"),URIConstructionService:Symbol.for("URIConstructionService"),ClassHierarchyResolver:Symbol.for("ClassHierarchyResolver")}});var lg=v(Ci=>{"use strict";var CB=Ci&&Ci.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},OB=Ci&&Ci.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},PB=Ci&&Ci.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Ci,"__esModule",{value:!0});Ci.StatusTimestampService=void 0;var Q3=Ve(),FB=ws(),Bl=Mn(),DB=Ut(),b1=class{static{a(this,"StatusTimestampService")}constructor(e){this.vault=e,this.frontmatterService=new FB.FrontmatterService}async addStartTimestamp(e){let t=await this.vault.read(e),r=Bl.DateFormatter.toLocalTimestamp(new Date),i=this.frontmatterService.updateProperty(t,"ems__Effort_startTimestamp",r);await this.vault.modify(e,i)}async addEndTimestamp(e,t){let r=await this.vault.read(e),i=t||new Date,s=Bl.DateFormatter.toLocalTimestamp(i),o=this.frontmatterService.updateProperty(r,"ems__Effort_endTimestamp",s);await this.vault.modify(e,o)}async addResolutionTimestamp(e){let t=await this.vault.read(e),r=Bl.DateFormatter.toLocalTimestamp(new Date),i=this.frontmatterService.updateProperty(t,"ems__Effort_resolutionTimestamp",r);await this.vault.modify(e,i)}async addReviewTimestamp(e){let t=await this.vault.read(e),r=Bl.DateFormatter.toLocalTimestamp(new Date),i=this.frontmatterService.updateProperty(t,"ems__Effort_lastReviewTimestamp",r);await this.vault.modify(e,i)}async addEndAndResolutionTimestamps(e,t){let r=await this.vault.read(e),i=t||new Date,s=Bl.DateFormatter.toLocalTimestamp(i),o=this.frontmatterService.updateProperty(r,"ems__Effort_endTimestamp",s);o=this.frontmatterService.updateProperty(o,"ems__Effort_resolutionTimestamp",s),await this.vault.modify(e,o)}async removeStartTimestamp(e){let t=await this.vault.read(e),r=this.frontmatterService.removeProperty(t,"ems__Effort_startTimestamp");await this.vault.modify(e,r)}async removeEndTimestamp(e){let t=await this.vault.read(e),r=this.frontmatterService.removeProperty(t,"ems__Effort_endTimestamp");await this.vault.modify(e,r)}async removeResolutionTimestamp(e){let t=await this.vault.read(e),r=this.frontmatterService.removeProperty(t,"ems__Effort_resolutionTimestamp");await this.vault.modify(e,r)}async removeEndAndResolutionTimestamps(e){let t=await this.vault.read(e),r=this.frontmatterService.removeProperty(t,"ems__Effort_endTimestamp");r=this.frontmatterService.removeProperty(r,"ems__Effort_resolutionTimestamp"),await this.vault.modify(e,r)}async shiftPlannedEndTimestamp(e,t){let r=await this.vault.read(e),i=this.frontmatterService.parse(r);if(!i.exists)return;let s=this.frontmatterService.getPropertyValue(i.content,"ems__Effort_plannedEndTimestamp");if(!s)return;let o=new Date(s.replace(/["']/g,""));if(isNaN(o.getTime()))return;let c=new Date(o.getTime()+t),l=Bl.DateFormatter.toLocalTimestamp(c),u=this.frontmatterService.updateProperty(r,"ems__Effort_plannedEndTimestamp",l);await this.vault.modify(e,u)}};Ci.StatusTimestampService=b1;Ci.StatusTimestampService=b1=CB([(0,Q3.injectable)(),PB(0,(0,Q3.inject)(DB.DI_TOKENS.IVaultAdapter)),OB("design:paramtypes",[Object])],b1)});var w1=v(Oi=>{"use strict";var LB=Oi&&Oi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},NB=Oi&&Oi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},kB=Oi&&Oi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Oi,"__esModule",{value:!0});Oi.TaskStatusService=void 0;var J3=Ve(),MB=ws(),jB=Mn(),$B=ag(),UB=lg(),BB=Ut(),_1=class{static{a(this,"TaskStatusService")}constructor(e,t,r){this.vault=e,this.timestampService=r,this.frontmatterService=new MB.FrontmatterService}async syncEffortEndTimestamp(e,t){await this.timestampService.addEndAndResolutionTimestamps(e,t)}async shiftPlannedEndTimestamp(e,t){await this.timestampService.shiftPlannedEndTimestamp(e,t)}async planForEvening(e){let t=await this.vault.read(e),r=new Date;r.setHours(19,0,0,0);let i=jB.DateFormatter.toLocalTimestamp(r),s=this.frontmatterService.updateProperty(t,"ems__Effort_plannedStartTimestamp",i);await this.vault.modify(e,s)}};Oi.TaskStatusService=_1;Oi.TaskStatusService=_1=LB([(0,J3.injectable)(),kB(0,(0,J3.inject)(BB.DI_TOKENS.IVaultAdapter)),NB("design:paramtypes",[Object,$B.EffortStatusWorkflow,UB.StatusTimestampService])],_1)});var v1=v(ug=>{"use strict";Object.defineProperty(ug,"__esModule",{value:!0});ug.MetadataExtractor=void 0;var VB=fo(),S1=class{static{a(this,"MetadataExtractor")}constructor(e){this.vault=e}extractMetadata(e){return e?this.vault.getFrontmatter(e)||{}:{}}extractInstanceClass(e){return e.exo__Instance_class||null}extractStatus(e){return e.ems__Effort_status||null}extractIsArchived(e){return VB.MetadataHelpers.isAssetArchived(e)}static extractIsDefinedBy(e){let t=e.exo__Asset_isDefinedBy||'""';return Array.isArray(t)&&(t=t[0]||'""'),String(t)}extractExpectedFolder(e){let t=e.exo__Asset_isDefinedBy;if(!t)return null;let r=Array.isArray(t)?t[0]:t;if(!r||typeof r!="string")return null;let i=r.replace(/["'[\]]/g,"").trim();if(!i)return null;let s=i.split("/");return s.pop(),s.join("/")}extractCommandVisibilityContext(e){let t=this.extractMetadata(e),r=this.extractInstanceClass(t),i=this.extractStatus(t),s=this.extractIsArchived(t),o=e.parent?.path||"",c=this.extractExpectedFolder(t);return{instanceClass:r,currentStatus:i,metadata:t,isArchived:s,currentFolder:o,expectedFolder:c}}extractCache(e){return e?this.vault.getFrontmatter(e):null}};ug.MetadataExtractor=S1});var T1=v(Pi=>{"use strict";var qB=Pi&&Pi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},GB=Pi&&Pi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},WB=Pi&&Pi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Pi,"__esModule",{value:!0});Pi.AreaCreationService=void 0;var Z3=Ve(),eC=Ti(),HB=zo(),zB=Mn(),KB=v1(),tC=fo(),XB=Ut(),E1=class{static{a(this,"AreaCreationService")}constructor(e){this.vault=e}async createChildArea(e,t,r){let i=(0,eC.v4)(),s=`${i}.md`,o=this.generateChildAreaFrontmatter(t,e.basename,r,i),c=tC.MetadataHelpers.buildFileContent(o),l=e.parent?.path||"",u=l?`${l}/${s}`:s;return await this.vault.create(u,c)}generateChildAreaFrontmatter(e,t,r,i){let s=new Date,o=zB.DateFormatter.toLocalTimestamp(s),c=KB.MetadataExtractor.extractIsDefinedBy(e),l={};if(l.exo__Asset_isDefinedBy=tC.MetadataHelpers.ensureQuoted(c),l.exo__Asset_uid=i||(0,eC.v4)(),l.exo__Asset_createdAt=o,l.exo__Instance_class=[`"[[${HB.AssetClass.AREA}]]"`],l.ems__Area_parent=`"[[${t}]]"`,r&&r.trim()!==""){let u=r.trim();l.exo__Asset_label=u,l.aliases=[u]}return l}};Pi.AreaCreationService=E1;Pi.AreaCreationService=E1=qB([(0,Z3.injectable)(),WB(0,(0,Z3.inject)(XB.DI_TOKENS.IVaultAdapter)),GB("design:paramtypes",[Object])],E1)});var x1=v(Fi=>{"use strict";var YB=Fi&&Fi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},QB=Fi&&Fi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},JB=Fi&&Fi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Fi,"__esModule",{value:!0});Fi.AreaHierarchyBuilder=void 0;var rC=Ve(),nC=zo(),ZB=Ut(),fg=Zs(),A1=class{static{a(this,"AreaHierarchyBuilder")}constructor(e){this.vault=e}buildHierarchy(e,t){let r=this.vault.getAbstractFileByPath(e);if(!this.isFile(r))return null;let i=this.vault.getFrontmatter(r)||{};if(this.extractInstanceClass(i)!==nC.AssetClass.AREA)return null;let o=this.collectAllAreasFromVault(),c=new Set;return this.buildTree(e,o,c,0)}isFile(e){return!!e&&typeof e=="object"&&"basename"in e&&"path"in e}extractInstanceClass(e){let t=e.exo__Instance_class||"";return Array.isArray(t)?fg.WikiLinkHelpers.normalize(String(t[0]||"")):fg.WikiLinkHelpers.normalize(String(t))}collectAllAreasFromVault(){let e=new Map,t=new Map,r=this.vault.getAllFiles();for(let i of r){let s=this.vault.getFrontmatter(i)||{};if(this.extractInstanceClass(s)===nC.AssetClass.AREA){let c=this.extractParentPath(s);e.set(i.path,{path:i.path,title:i.basename,label:s.exo__Asset_label||void 0,isArchived:this.isArchived(s),depth:0,parentPath:c||void 0}),t.set(i.basename,i.path)}}for(let[,i]of e.entries())i.parentPath&&t.has(i.parentPath)&&(i.parentPath=t.get(i.parentPath));return e}extractParentPath(e){let t=e.ems__Area_parent;if(!t)return null;if(Array.isArray(t)){let r=t[0]||"";return fg.WikiLinkHelpers.normalize(String(r))}return fg.WikiLinkHelpers.normalize(String(t))}isArchived(e){let t=e.exo__Asset_archived;if(t===!0||t==="true")return!0;if(Array.isArray(t)&&t.length>0){let r=t[0];return r===!0||r==="true"}return!1}buildTree(e,t,r,i){if(r.has(e))return null;r.add(e);let s=t.get(e);if(!s)return null;let o=[];for(let[c,l]of t.entries())if(l.parentPath===e){let u=this.buildTree(c,t,r,i+1);u&&o.push(u)}return o.sort((c,l)=>{let u=c.label||c.title,f=l.label||l.title;return u.localeCompare(f)}),{path:s.path,title:s.title,label:s.label,isArchived:s.isArchived,depth:i,parentPath:s.parentPath,children:o}}};Fi.AreaHierarchyBuilder=A1;Fi.AreaHierarchyBuilder=A1=YB([(0,rC.injectable)(),JB(0,(0,rC.inject)(ZB.DI_TOKENS.IVaultAdapter)),QB("design:paramtypes",[Object])],A1)});var R1=v(Di=>{"use strict";var eV=Di&&Di.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},tV=Di&&Di.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},rV=Di&&Di.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Di,"__esModule",{value:!0});Di.ClassCreationService=void 0;var iC=Ve(),nV=Ti(),iV=Mn(),sV=fo(),oV=Ut(),I1=class{static{a(this,"ClassCreationService")}constructor(e){this.vault=e}async createSubclass(e,t,r){let i=(0,nV.v4)(),s=this.generateFileName(t),o=s.endsWith(".md")?s:`${s}.md`,c=this.generateClassFrontmatter(e.basename,t,i,r),l=sV.MetadataHelpers.buildFileContent(c),u="classes",f=`${u}/${o}`;return this.vault.getAbstractFileByPath(u)||await this.vault.createFolder(u),await this.vault.create(f,l)}generateFileName(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,"-");for(;t.startsWith("-");)t=t.slice(1);for(;t.endsWith("-");)t=t.slice(0,-1);return t}generateClassFrontmatter(e,t,r,i){let s=new Date,o=iV.DateFormatter.toLocalTimestamp(s),c={};c.exo__Asset_uid=r,c.exo__Asset_label=t,c.exo__Asset_createdAt=o,c.exo__Instance_class=['"[[exo__Class]]"'],c.exo__Class_superClass=`"[[${e}]]"`;let l=i.exo__Asset_isDefinedBy||'"[[Ontology/EXO]]"';return c.exo__Asset_isDefinedBy=l,c.aliases=[t],c}};Di.ClassCreationService=I1;Di.ClassCreationService=I1=eV([(0,iC.injectable)(),rV(0,(0,iC.inject)(oV.DI_TOKENS.IVaultAdapter)),tV("design:paramtypes",[Object])],I1)});var O1=v(Li=>{"use strict";var aV=Li&&Li.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},cV=Li&&Li.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},lV=Li&&Li.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Li,"__esModule",{value:!0});Li.ConceptCreationService=void 0;var sC=Ve(),uV=Ti(),fV=Mn(),dV=fo(),hV=zo(),pV=Ut(),C1=class{static{a(this,"ConceptCreationService")}constructor(e){this.vault=e}async createNarrowerConcept(e,t,r,i){let s=(0,uV.v4)(),o=t.endsWith(".md")?t:`${t}.md`,c=this.generateConceptFrontmatter(e.basename,r,i,s),l=dV.MetadataHelpers.buildFileContent(c),u="concepts",f=`${u}/${o}`;return this.vault.getAbstractFileByPath(u)||await this.vault.createFolder(u),await this.vault.create(f,l)}generateConceptFrontmatter(e,t,r,i){let s=new Date,o=fV.DateFormatter.toLocalTimestamp(s),c={};return c.exo__Asset_isDefinedBy='"[[!concepts]]"',c.exo__Asset_uid=i,c.exo__Asset_createdAt=o,c.exo__Instance_class=[`"[[${hV.AssetClass.CONCEPT}]]"`],c.ims__Concept_broader=`"[[${e}]]"`,c.ims__Concept_definition=t,r.length>0&&(c.aliases=r),c}};Li.ConceptCreationService=C1;Li.ConceptCreationService=C1=aV([(0,sC.injectable)(),lV(0,(0,sC.inject)(pV.DI_TOKENS.IVaultAdapter)),cV("design:paramtypes",[Object])],C1)});var oC=v(go=>{"use strict";var mV=go&&go.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},gV=go&&go.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(go,"__esModule",{value:!0});go.InstantiationRuleResolver=void 0;var yV=Ve(),P1=Ce(),Vl=Ge(),mo=Ht(),F1=class{static{a(this,"InstantiationRuleResolver")}constructor(e){this.tripleStore=e,this.cache=new Map}async getRule(e){let t=this.cache.get(e);if(t!==void 0)return t;let r=await this.findRuleForClass(e);return this.cache.set(e,r),r}invalidateCache(){this.cache.clear()}async findRuleForClass(e){let t=await this.tripleStore.match(void 0,mo.Namespace.RDF.term("type"),mo.Namespace.EXO.term("InstantiationRule"));for(let r of t){let i=r.subject;if((await this.tripleStore.match(i,mo.Namespace.EXO.term("rule_targetClass"),void 0)).some(c=>this.matchesTargetClass(c.object,e)))return this.loadRule(i)}return null}async loadRule(e){let t=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_prototypeUID"),void 0),r=t.length>0&&t[0].object instanceof Vl.Literal?t[0].object.value:null,i=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_defaultFolder"),void 0),s=i.length>0&&i[0].object instanceof Vl.Literal?i[0].object.value:null,o=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_propertySetRules"),void 0),c=[];for(let l of o){let u=l.object;if(!(u instanceof P1.IRI))continue;let f=await this.loadPropertySetRule(u);f&&c.push(f)}return{prototypeUID:r,defaultFolder:s,propertySetRules:c}}async loadPropertySetRule(e){let t=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_property"),void 0);if(t.length===0)return null;let r=t[0].object,i=r instanceof P1.IRI?this.extractLocalName(r):r instanceof Vl.Literal?this.normalizeWikilink(r.value):null;if(!i)return null;let s=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_value"),void 0),o=s.length>0&&s[0].object instanceof Vl.Literal?s[0].object.value:"",c=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_valueType"),void 0),l=c.length>0&&c[0].object instanceof Vl.Literal?c[0].object.value:"literal";return{property:i,value:o,valueType:l}}matchesTargetClass(e,t){return e instanceof P1.IRI?this.extractLocalName(e)===t:e instanceof Vl.Literal?this.normalizeWikilink(e.value)===t:!1}extractLocalName(e){let t=e.value,r=t.lastIndexOf("#");if(r>=0){let s=t.substring(r+1);return t.includes("/ems#")?`ems__${s}`:t.includes("/exo#")?`exo__${s}`:t.includes("/ims#")?`ims__${s}`:s}let i=t.lastIndexOf("/");return i>=0?t.substring(i+1):t}normalizeWikilink(e){return e.replace(/["'[\]]/g,"").trim()}};go.InstantiationRuleResolver=F1;go.InstantiationRuleResolver=F1=mV([(0,yV.injectable)(),gV("design:paramtypes",[Object])],F1)});var aC=v(yo=>{"use strict";var bV=yo&&yo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},_V=yo&&yo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(yo,"__esModule",{value:!0});yo.VisibilityGenerator=void 0;var wV=Ve(),SV=Xf(),D1=class{static{a(this,"VisibilityGenerator")}constructor(e){this.engine=e}getVisibleCommands(e){return this.engine.getAllTransitions(e).map(t=>this.toCommand(t))}getForwardCommands(e){return this.engine.getAvailableTransitions(e).map(t=>this.toCommand(t))}getRollbackCommands(e){return this.engine.getRollbackTransitions(e).map(t=>this.toCommand(t))}toCommand(e){let t=e.from.replace("ems__EffortStatus","").toLowerCase(),r=e.to.replace("ems__EffortStatus","").toLowerCase();return{commandId:`workflow-${t}-to-${r}`,label:e.label,icon:e.icon,targetStatus:e.to,isRollback:e.isRollback}}};yo.VisibilityGenerator=D1;yo.VisibilityGenerator=D1=bV([(0,wV.injectable)(),_V("design:paramtypes",[SV.WorkflowEngine])],D1)});var cC=v(bo=>{"use strict";var vV=bo&&bo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},EV=bo&&bo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(bo,"__esModule",{value:!0});bo.WorkflowCommandAdapter=void 0;var TV=Ve(),L1=Wo(),AV=Xf(),N1=class{static{a(this,"WorkflowCommandAdapter")}constructor(e){this.workflow=e,this.engine=new AV.WorkflowEngine(e)}adaptTransitions(e){return this.engine.getAllTransitions(e).map(r=>this.transitionToCommand(r))}adaptForwardTransitions(e){return this.engine.getAvailableTransitions(e).map(r=>this.transitionToCommand(r))}adaptRollbackTransitions(e){return this.engine.getRollbackTransitions(e).map(r=>this.transitionToCommand(r))}getEngine(){return this.engine}getWorkflow(){return this.workflow}transitionToCommand(e){let t=this.generateCommandId(e),r=this.buildPrecondition(e),i=this.buildGrounding(e),s=e.isRollback?"rollback":"workflow";return{id:t,name:e.label,icon:e.icon,precondition:r,grounding:i,category:s,confirmMessage:e.isRollback?`Rollback to ${this.shortStatus(e.to)}?`:void 0,successMessage:`Status changed to ${this.shortStatus(e.to)}`}}generateCommandId(e){let t=this.shortStatus(e.from),r=this.shortStatus(e.to);return`workflow-${t}-to-${r}`}buildPrecondition(e){return{id:`precond-${this.generateCommandId(e)}`,label:`Asset status is ${this.shortStatus(e.from)}`,sparqlAsk:`ASK { $target ems:Effort_status "${e.from}" }`}}buildGrounding(e){let t=[];t.push({id:`gnd-status-${this.shortStatus(e.to)}`,label:`Set status to ${this.shortStatus(e.to)}`,type:L1.GroundingType.PROPERTY_SET,targetProperty:"ems__Effort_status",targetValueRef:e.to});let r=this.engine.getTimestampsForStatus(e.to);for(let i of r)t.push({id:`gnd-ts-${i}`,label:`Set ${i}`,type:L1.GroundingType.PROPERTY_SET,targetProperty:i,targetValueSubstitution:"$now"});return t.length===1?t[0]:{id:`gnd-composite-${this.generateCommandId(e)}`,label:`Transition to ${this.shortStatus(e.to)}`,type:L1.GroundingType.COMPOSITE,steps:t}}shortStatus(e){return e.replace("ems__EffortStatus","").toLowerCase()}};bo.WorkflowCommandAdapter=N1;bo.WorkflowCommandAdapter=N1=vV([(0,TV.injectable)(),EV("design:paramtypes",[Object])],N1)});var M1=v(Ni=>{"use strict";var xV=Ni&&Ni.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},IV=Ni&&Ni.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},RV=Ni&&Ni.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Ni,"__esModule",{value:!0});Ni.EffortVotingService=void 0;var lC=Ve(),CV=Ut(),k1=class{static{a(this,"EffortVotingService")}constructor(e){this.vault=e}async incrementEffortVotes(e){let t=await this.vault.read(e),i=this.extractVoteCount(t)+1,s=this.updateFrontmatterWithVotes(t,i);return await this.vault.modify(e,s),i}extractVoteCount(e){let t=/^---\r?\n([\s\S]*?)\r?\n---/,r=e.match(t);if(!r)return 0;let s=r[1].match(/ems__Effort_votes:\s*(\d+)/);return s&&s[1]?parseInt(s[1],10):0}updateFrontmatterWithVotes(e,t){let r=/^---\r?\n([\s\S]*?)\r?\n---/,i=e.match(r),s=e.includes(`\r
102
+ ${o}`}};eg.MetadataHelpers=s1});var XC=v(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.TASK_DEFAULT_WORKFLOW=lc.PROJECT_DEFAULT_WORKFLOW=void 0;lc.buildWorkflowAssetContent=hB;var KC=Ti(),Yf=Yc(),je=Qc(),Yr=HC(),o1=fo();lc.PROJECT_DEFAULT_WORKFLOW={id:"a1b2c3d4-1111-4000-a000-000000000001",name:"Project Default Workflow",targetClass:Yf.AssetClass.PROJECT,initialState:je.EffortStatus.DRAFT,terminalStates:[je.EffortStatus.DONE,je.EffortStatus.TRASHED],isDefault:!0,states:[{status:je.EffortStatus.DRAFT,order:1,optional:!1,timestampOnEnter:[]},{status:je.EffortStatus.BACKLOG,order:2,optional:!1,timestampOnEnter:[]},{status:je.EffortStatus.ANALYSIS,order:3,optional:!0,timestampOnEnter:[]},{status:je.EffortStatus.TODO,order:4,optional:!0,timestampOnEnter:[]},{status:je.EffortStatus.DOING,order:5,optional:!1,timestampOnEnter:["ems__Effort_startTimestamp"]},{status:je.EffortStatus.DONE,order:6,optional:!1,timestampOnEnter:["ems__Effort_endTimestamp","ems__Effort_resolutionTimestamp"]},{status:je.EffortStatus.TRASHED,order:7,optional:!1,timestampOnEnter:["ems__Effort_resolutionTimestamp"]}],transitions:[{from:je.EffortStatus.DRAFT,to:je.EffortStatus.BACKLOG,label:"\u2192 Backlog",isRollback:!1},{from:je.EffortStatus.BACKLOG,to:je.EffortStatus.ANALYSIS,label:"\u2192 Analysis",isRollback:!1},{from:je.EffortStatus.ANALYSIS,to:je.EffortStatus.TODO,label:"\u2192 ToDo",isRollback:!1},{from:je.EffortStatus.TODO,to:je.EffortStatus.DOING,label:"\u25B6 Start",isRollback:!1},{from:je.EffortStatus.DOING,to:je.EffortStatus.DONE,label:"\u2713 Done",isRollback:!1},{from:je.EffortStatus.BACKLOG,to:je.EffortStatus.DRAFT,label:"\u2190 Draft",isRollback:!0},{from:je.EffortStatus.ANALYSIS,to:je.EffortStatus.BACKLOG,label:"\u2190 Backlog",isRollback:!0},{from:je.EffortStatus.TODO,to:je.EffortStatus.ANALYSIS,label:"\u2190 Analysis",isRollback:!0},{from:je.EffortStatus.DOING,to:je.EffortStatus.TODO,label:"\u2190 ToDo",isRollback:!0},{from:je.EffortStatus.DONE,to:je.EffortStatus.DOING,label:"\u2190 Doing",isRollback:!0}]};lc.TASK_DEFAULT_WORKFLOW={id:"a1b2c3d4-2222-4000-a000-000000000002",name:"Task Default Workflow",targetClass:Yf.AssetClass.TASK,initialState:je.EffortStatus.DRAFT,terminalStates:[je.EffortStatus.DONE,je.EffortStatus.TRASHED],isDefault:!0,states:[{status:je.EffortStatus.DRAFT,order:1,optional:!1,timestampOnEnter:[]},{status:je.EffortStatus.BACKLOG,order:2,optional:!1,timestampOnEnter:[]},{status:je.EffortStatus.DOING,order:3,optional:!1,timestampOnEnter:["ems__Effort_startTimestamp"]},{status:je.EffortStatus.DONE,order:4,optional:!1,timestampOnEnter:["ems__Effort_endTimestamp","ems__Effort_resolutionTimestamp"]},{status:je.EffortStatus.TRASHED,order:5,optional:!1,timestampOnEnter:["ems__Effort_resolutionTimestamp"]}],transitions:[{from:je.EffortStatus.DRAFT,to:je.EffortStatus.BACKLOG,label:"\u2192 Backlog",isRollback:!1},{from:je.EffortStatus.BACKLOG,to:je.EffortStatus.DOING,label:"\u25B6 Start",isRollback:!1},{from:je.EffortStatus.DOING,to:je.EffortStatus.DONE,label:"\u2713 Done",isRollback:!1},{from:je.EffortStatus.BACKLOG,to:je.EffortStatus.DRAFT,label:"\u2190 Draft",isRollback:!0},{from:je.EffortStatus.DOING,to:je.EffortStatus.BACKLOG,label:"\u2190 Backlog",isRollback:!0},{from:je.EffortStatus.DONE,to:je.EffortStatus.DOING,label:"\u2190 Doing",isRollback:!0}]};function hB(n){let e=new Date().toISOString(),t=[],r=n.id,i={exo__Asset_uid:r,exo__Asset_label:`"${n.name}"`,exo__Asset_createdAt:e,exo__Instance_class:Yf.AssetClass.WORKFLOW,[Yr.WorkflowProperty.TARGET_CLASS]:`"[[${n.targetClass}]]"`,[Yr.WorkflowProperty.INITIAL_STATE]:`"[[${n.initialState}]]"`,[Yr.WorkflowProperty.TERMINAL_STATES]:n.terminalStates.map(s=>`"[[${s}]]"`),[Yr.WorkflowProperty.IS_DEFAULT]:n.isDefault};t.push({filename:`${r}.md`,content:o1.MetadataHelpers.buildFileContent(i)});for(let s of n.states){let o=(0,KC.v4)(),c={exo__Asset_uid:o,exo__Asset_label:`"${n.name} - ${s.status}"`,exo__Asset_createdAt:e,exo__Instance_class:Yf.AssetClass.WORKFLOW_STATE,[Yr.WorkflowStateProperty.WORKFLOW]:`"[[${r}]]"`,[Yr.WorkflowStateProperty.STATUS]:`"[[${s.status}]]"`,[Yr.WorkflowStateProperty.ORDER]:s.order,[Yr.WorkflowStateProperty.OPTIONAL]:s.optional};s.timestampOnEnter.length>0&&(c[Yr.WorkflowStateProperty.TIMESTAMP_ON_ENTER]=s.timestampOnEnter),s.badgeColor&&(c[Yr.WorkflowStateProperty.BADGE_COLOR]=`"${s.badgeColor}"`),t.push({filename:`${o}.md`,content:o1.MetadataHelpers.buildFileContent(c)})}for(let s of n.transitions){let o=(0,KC.v4)(),c={exo__Asset_uid:o,exo__Asset_label:`"${n.name} - ${s.label}"`,exo__Asset_createdAt:e,exo__Instance_class:Yf.AssetClass.WORKFLOW_TRANSITION,[Yr.WorkflowTransitionProperty.WORKFLOW]:`"[[${r}]]"`,[Yr.WorkflowTransitionProperty.FROM]:`"[[${s.from}]]"`,[Yr.WorkflowTransitionProperty.TO]:`"[[${s.to}]]"`,[Yr.WorkflowTransitionProperty.LABEL]:`"${s.label}"`,[Yr.WorkflowTransitionProperty.IS_ROLLBACK]:s.isRollback};s.icon&&(c[Yr.WorkflowTransitionProperty.ICON]=`"${s.icon}"`),t.push({filename:`${o}.md`,content:o1.MetadataHelpers.buildFileContent(c)})}return t}a(hB,"buildWorkflowAssetContent")});var c1=v(ho=>{"use strict";var pB=ho&&ho.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},mB=ho&&ho.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(ho,"__esModule",{value:!0});ho.WorkflowResolver=void 0;var gB=Ve(),$l=Ce(),Qr=Ge(),Et=Ht(),uc=Yc(),tg=Qc(),YC=XC(),a1=class{static{a(this,"WorkflowResolver")}constructor(e){this.tripleStore=e,this.cache=new Map}async resolveForClass(e){let t=`class:${e}`,r=this.cache.get(t);if(r)return r;let s=await this.findDefaultWorkflow(e)??this.getHardcodedFallback(e);return this.cache.set(t,s),s}async resolveForAsset(e,t){let r=await this.tripleStore.match(e,Et.Namespace.EMS.term("Effort_workflow"),void 0);if(r.length>0){let i=r[0].object;if(i instanceof $l.IRI){let s=await this.loadWorkflowBySubject(i);if(s)return s}}return this.resolveForClass(t)}invalidateCache(){this.cache.clear()}async findDefaultWorkflow(e){let t=await this.tripleStore.match(void 0,Et.Namespace.RDF.term("type"),Et.Namespace.EMS.term("Workflow"));for(let r of t){let i=r.subject;if(!(!(await this.tripleStore.match(i,Et.Namespace.EMS.term("Workflow_targetClass"),void 0)).some(u=>{let f=u.object;return f instanceof $l.IRI?f.value.endsWith(e.replace(/^ems__/,"")):f instanceof Qr.Literal?this.normalizeWikilink(f.value)===e:!1})||!(await this.tripleStore.match(i,Et.Namespace.EMS.term("Workflow_isDefault"),void 0)).some(u=>{let f=u.object instanceof Qr.Literal?u.object.value:"";return f==="true"||f==="1"})))return this.loadWorkflowBySubject(i)}return null}async loadWorkflowBySubject(e){let t=await this.tripleStore.match(e,Et.Namespace.EXO.term("Asset_label"),void 0),r=t.length>0&&t[0].object instanceof Qr.Literal?t[0].object.value:"Unknown Workflow",i=await this.tripleStore.match(e,Et.Namespace.EXO.term("Asset_uid"),void 0),s=i.length>0&&i[0].object instanceof Qr.Literal?i[0].object.value:e.value,o=await this.tripleStore.match(e,Et.Namespace.EMS.term("Workflow_targetClass"),void 0),c=this.resolveAssetClass(o),l=await this.tripleStore.match(e,Et.Namespace.EMS.term("Workflow_initialState"),void 0),u=this.resolveEffortStatus(l)??tg.EffortStatus.DRAFT,f=await this.tripleStore.match(e,Et.Namespace.EMS.term("Workflow_terminalStates"),void 0),d=this.resolveEffortStatuses(f),p=(await this.tripleStore.match(e,Et.Namespace.EMS.term("Workflow_isDefault"),void 0)).some(b=>{let _=b.object instanceof Qr.Literal?b.object.value:"";return _==="true"||_==="1"}),y=await this.loadStates(e),g=await this.loadTransitions(e);return y.length===0&&g.length===0?null:{id:s,name:r,targetClass:c,states:y,transitions:g,initialState:u,terminalStates:d.length>0?d:[tg.EffortStatus.DONE,tg.EffortStatus.TRASHED],isDefault:p}}async loadStates(e){let t=await this.tripleStore.match(void 0,Et.Namespace.RDF.term("type"),Et.Namespace.EMS.term("WorkflowState")),r=[];for(let i of t){let s=i.subject;if(!(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_workflow"),void 0)).some(S=>this.isSameSubject(S.object,e)))continue;let l=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_status"),void 0),u=this.resolveEffortStatus(l);if(!u)continue;let f=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_order"),void 0),d=f.length>0&&f[0].object instanceof Qr.Literal&&parseInt(f[0].object.value,10)||0,p=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_optional"),void 0)).some(S=>{let x=S.object instanceof Qr.Literal?S.object.value:"";return x==="true"||x==="1"}),g=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_timestampOnEnter"),void 0)).map(S=>S.object instanceof Qr.Literal?S.object.value:"").filter(S=>S.length>0),b=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_badgeColor"),void 0),_=b.length>0&&b[0].object instanceof Qr.Literal?b[0].object.value:void 0;r.push({status:u,order:d,optional:p,timestampOnEnter:g,badgeColor:_})}return r.sort((i,s)=>i.order-s.order)}async loadTransitions(e){let t=await this.tripleStore.match(void 0,Et.Namespace.RDF.term("type"),Et.Namespace.EMS.term("WorkflowTransition")),r=[];for(let i of t){let s=i.subject;if(!(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_workflow"),void 0)).some(A=>this.isSameSubject(A.object,e)))continue;let l=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_from"),void 0),u=this.resolveEffortStatus(l),f=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_to"),void 0),d=this.resolveEffortStatus(f);if(!u||!d)continue;let h=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_label"),void 0),p=h.length>0&&h[0].object instanceof Qr.Literal?h[0].object.value:`${u} \u2192 ${d}`,y=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_icon"),void 0),g=y.length>0&&y[0].object instanceof Qr.Literal?y[0].object.value:void 0,_=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_isRollback"),void 0)).some(A=>{let T=A.object instanceof Qr.Literal?A.object.value:"";return T==="true"||T==="1"}),x=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_postActions"),void 0)).map(A=>this.extractUid(A.object)).filter(A=>A!==null);r.push({from:u,to:d,label:p,icon:g,isRollback:_,postActions:x.length>0?x:void 0})}return r}extractUid(e){let t=/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i,r=e instanceof $l.IRI||e instanceof Qr.Literal?e.value:null;if(r===null)return null;let i=r.match(t);return i?i[1].toLowerCase():null}normalizeWikilink(e){return e.replace(/["'[\]]/g,"").trim()}resolveAssetClass(e){if(e.length===0)return uc.AssetClass.TASK;let t=e[0].object;if(t instanceof $l.IRI){let i=`ems__${t.value.split("#").pop()??""}`;return Object.values(uc.AssetClass).includes(i)?i:uc.AssetClass.TASK}if(t instanceof Qr.Literal){let r=this.normalizeWikilink(t.value);return Object.values(uc.AssetClass).includes(r)?r:uc.AssetClass.TASK}return uc.AssetClass.TASK}resolveEffortStatus(e){if(e.length===0)return null;let t=e[0].object,r;if(t instanceof $l.IRI)r=`ems__${t.value.split("#").pop()??""}`;else if(t instanceof Qr.Literal)r=this.normalizeWikilink(t.value);else return null;return Object.values(tg.EffortStatus).includes(r)?r:null}resolveEffortStatuses(e){return e.map(t=>this.resolveEffortStatus([t])).filter(t=>t!==null)}isSameSubject(e,t){if(e instanceof $l.IRI)return e.value===t.value;if(e instanceof Qr.Literal){let r=this.normalizeWikilink(e.value);return t.value.includes(r)}return!1}getHardcodedFallback(e){return e===uc.AssetClass.PROJECT?{...YC.PROJECT_DEFAULT_WORKFLOW}:{...YC.TASK_DEFAULT_WORKFLOW}}};ho.WorkflowResolver=a1;ho.WorkflowResolver=a1=pB([(0,gB.injectable)(),mB("design:paramtypes",[Object])],a1)});var d1=v(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.TransactionError=oa.TripleNotFoundError=oa.TripleAlreadyExistsError=void 0;var l1=class extends Error{static{a(this,"TripleAlreadyExistsError")}constructor(e){super(`Triple already exists: ${e.toString()}`),this.name="TripleAlreadyExistsError"}};oa.TripleAlreadyExistsError=l1;var u1=class extends Error{static{a(this,"TripleNotFoundError")}constructor(e){super(`Triple not found: ${e.toString()}`),this.name="TripleNotFoundError"}};oa.TripleNotFoundError=u1;var f1=class extends Error{static{a(this,"TransactionError")}constructor(e){super(e),this.name="TransactionError"}};oa.TransactionError=f1});var ng=v(rg=>{"use strict";Object.defineProperty(rg,"__esModule",{value:!0});rg.LRUCache=void 0;var h1=class{static{a(this,"LRUCache")}constructor(e){this.maxSize=e,this.cache=new Map}get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}};rg.LRUCache=h1});var g1=v(sg=>{"use strict";Object.defineProperty(sg,"__esModule",{value:!0});sg.InMemoryTripleStore=void 0;var aa=d1(),ig=Ce(),yB=Mt(),bB=Ge(),_B=Ht(),wB=ng(),SB=_B.Namespace.XSD.term("string").value,vB=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,Ul="__default__",p1=class n{static{a(this,"InMemoryTripleStore")}constructor(){this.triples=new Map,this.spo=new Map,this.sop=new Map,this.pso=new Map,this.pos=new Map,this.osp=new Map,this.ops=new Map,this.queryCache=new wB.LRUCache(1e3),this.uuidIndex=new Map,this.namedGraphs=new Map}async add(e){let t=this.getTripleKey(e);if(this.triples.has(t))return;this.triples.set(t,e);let r=this.getNodeKey(e.subject),i=this.getNodeKey(e.predicate),s=this.getNodeKey(e.object);this.addToIndex(this.spo,r,i,s),this.addToIndex(this.sop,r,s,i),this.addToIndex(this.pso,i,r,s),this.addToIndex(this.pos,i,s,r),this.addToIndex(this.osp,s,r,i),this.addToIndex(this.ops,s,i,r),this.addToUUIDIndex(e.subject),this.queryCache.clear()}async remove(e){let t=this.getTripleKey(e);if(!this.triples.has(t))return!1;this.triples.delete(t);let r=this.getNodeKey(e.subject),i=this.getNodeKey(e.predicate),s=this.getNodeKey(e.object);return this.removeFromIndex(this.spo,r,i,s),this.removeFromIndex(this.sop,r,s,i),this.removeFromIndex(this.pso,i,r,s),this.removeFromIndex(this.pos,i,s,r),this.removeFromIndex(this.osp,s,r,i),this.removeFromIndex(this.ops,s,i,r),this.queryCache.clear(),!0}async has(e){let t=this.getTripleKey(e);return this.triples.has(t)}async match(e,t,r){let i=this.getMatchCacheKey(e,t,r),s=this.queryCache.get(i);if(s!==void 0)return s;let o;return!e&&!t&&!r?o=Array.from(this.triples.values()):e&&t&&r?o=this.matchSPO(e,t,r):e&&t?o=this.matchSP(e,t):e&&r?o=this.matchSO(e,r):t&&r?o=this.matchPO(t,r):e?o=this.matchS(e):t?o=this.matchP(t):r?o=this.matchO(r):o=[],this.queryCache.set(i,o),o}async addAll(e){for(let t of e)await this.add(t)}async removeAll(e){let t=0;for(let r of e)await this.remove(r)&&t++;return t}async clear(){this.triples.clear(),this.spo.clear(),this.sop.clear(),this.pso.clear(),this.pos.clear(),this.osp.clear(),this.ops.clear(),this.uuidIndex.clear(),this.queryCache.clear()}async count(){return this.triples.size}async subjects(){let e=new Set;for(let t of this.triples.values())e.add(t.subject);return Array.from(e)}async predicates(){let e=new Set;for(let t of this.triples.values())e.add(t.predicate);return Array.from(e)}async objects(){let e=new Set;for(let t of this.triples.values())e.add(t.object);return Array.from(e)}async beginTransaction(){return new m1(this)}async findSubjectsByUUID(e){return this.findSubjectsByUUIDSync(e)}findSubjectsByUUIDSync(e){let t=e.toLowerCase(),r=this.uuidIndex.get(t);if(!r||r.size===0)return[];let i=[];for(let s of r)this.spo.has(`i:${s}`)&&i.push(new ig.IRI(s));return i}addToUUIDIndex(e){if(!(e instanceof ig.IRI))return;let t=e.value,r=t.match(vB);if(r)for(let i of r){let s=i.toLowerCase();this.uuidIndex.has(s)||this.uuidIndex.set(s,new Set),this.uuidIndex.get(s).add(t)}}matchSPO(e,t,r){let i=this.getNodeKey(e),s=this.getNodeKey(t),o=this.getNodeKey(r),c=this.spo.get(i);if(!c)return[];let l=c.get(s);if(!l)return[];if(l.has(o)){let u=this.buildTripleKey(i,s,o),f=this.triples.get(u);return f?[f]:[]}return[]}matchSP(e,t){let r=this.getNodeKey(e),i=this.getNodeKey(t),s=this.spo.get(r);if(!s)return[];let o=s.get(i);return o?this.getTriplesByKeys(Array.from(o).map(c=>this.buildTripleKey(r,i,c))):[]}matchSO(e,t){let r=this.getNodeKey(e),i=this.getNodeKey(t),s=this.sop.get(r);if(!s)return[];let o=s.get(i);return o?this.getTriplesByKeys(Array.from(o).map(c=>this.buildTripleKey(r,c,i))):[]}matchPO(e,t){let r=this.getNodeKey(e),i=this.getNodeKey(t),s=this.pos.get(r);if(!s)return[];let o=s.get(i);return o?this.getTriplesByKeys(Array.from(o).map(c=>this.buildTripleKey(c,r,i))):[]}matchS(e){let t=this.getNodeKey(e),r=this.spo.get(t);if(!r)return[];let i=[];for(let[s,o]of r.entries())for(let c of o)i.push(this.buildTripleKey(t,s,c));return this.getTriplesByKeys(i)}matchP(e){let t=this.getNodeKey(e),r=this.pso.get(t);if(!r)return[];let i=[];for(let[s,o]of r.entries())for(let c of o)i.push(this.buildTripleKey(s,t,c));return this.getTriplesByKeys(i)}matchO(e){let t=this.getNodeKey(e),r=this.osp.get(t);if(!r)return[];let i=[];for(let[s,o]of r.entries())for(let c of o)i.push(this.buildTripleKey(s,c,t));return this.getTriplesByKeys(i)}getTriplesByKeys(e){let t=[];for(let r of e){let i=this.triples.get(r);i&&t.push(i)}return t}addToIndex(e,t,r,i){e.has(t)||e.set(t,new Map);let s=e.get(t);s.has(r)||s.set(r,new Set),s.get(r).add(i)}removeFromIndex(e,t,r,i){let s=e.get(t);if(!s)return;let o=s.get(r);o&&(o.delete(i),o.size===0&&s.delete(r),s.size===0&&e.delete(t))}getTripleKey(e){let t=this.getNodeKey(e.subject),r=this.getNodeKey(e.predicate),i=this.getNodeKey(e.object);return this.buildTripleKey(t,r,i)}buildTripleKey(e,t,r){return`${e}|${t}|${r}`}getNodeKey(e){if(e instanceof ig.IRI)return`i:${e.value}`;if(e instanceof yB.BlankNode)return`b:${e.id}`;if(e instanceof bB.Literal){let t=`l:${e.value}`;return e.datatype&&e.datatype.value!==SB?t+=`^^${e.datatype.value}`:e.language&&(t+=`@${e.language}`),t}return""}getMatchCacheKey(e,t,r){let i=e?this.getNodeKey(e):"?",s=t?this.getNodeKey(t):"?",o=r?this.getNodeKey(r):"?";return`${i}|${s}|${o}`}getGraphKey(e){return e?e.value:Ul}getOrCreateGraphStore(e){let t=this.getGraphKey(e);return t===Ul?this:(this.namedGraphs.has(t)||this.namedGraphs.set(t,new n),this.namedGraphs.get(t))}async addToGraph(e,t){await this.getOrCreateGraphStore(t).add(e)}async removeFromGraph(e,t){let r=this.getGraphKey(t);if(r===Ul)return this.remove(e);let i=this.namedGraphs.get(r);return i?i.remove(e):!1}async matchInGraph(e,t,r,i){let s=this.getGraphKey(i);if(s===Ul)return this.match(e,t,r);let o=this.namedGraphs.get(s);return o?o.match(e,t,r):[]}async getNamedGraphs(){return Array.from(this.namedGraphs.keys()).map(e=>new ig.IRI(e))}async hasGraph(e){let t=this.namedGraphs.get(e.value);return t?await t.count()>0:!1}async clearGraph(e){let t=this.getGraphKey(e);if(t===Ul){await this.clear();return}let r=this.namedGraphs.get(t);r&&(await r.clear(),this.namedGraphs.delete(t))}async countInGraph(e){let t=this.getGraphKey(e);if(t===Ul)return this.count();let r=this.namedGraphs.get(t);return r?r.count():0}};sg.InMemoryTripleStore=p1;var m1=class{static{a(this,"InMemoryTransaction")}constructor(e){this.store=e,this.operations=[],this.committed=!1,this.rolledBack=!1}async add(e){if(this.committed)throw new aa.TransactionError("Transaction already committed");if(this.rolledBack)throw new aa.TransactionError("Transaction already rolled back");this.operations.push({type:"add",triple:e})}async remove(e){if(this.committed)throw new aa.TransactionError("Transaction already committed");if(this.rolledBack)throw new aa.TransactionError("Transaction already rolled back");return this.operations.push({type:"remove",triple:e}),!0}async commit(){if(this.committed)throw new aa.TransactionError("Transaction already committed");if(this.rolledBack)throw new aa.TransactionError("Transaction already rolled back");for(let e of this.operations)e.type==="add"?await this.store.add(e.triple):await this.store.remove(e.triple);this.committed=!0,this.operations=[]}async rollback(){if(this.committed)throw new aa.TransactionError("Transaction already committed");if(this.rolledBack)throw new aa.TransactionError("Transaction already rolled back");this.operations=[],this.rolledBack=!0}}});var ag=v(po=>{"use strict";var EB=po&&po.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},TB=po&&po.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(po,"__esModule",{value:!0});po.EffortStatusWorkflow=void 0;var AB=Ve(),og=zo(),xB=Xf(),IB=c1(),RB=g1(),y1=class{static{a(this,"EffortStatusWorkflow")}constructor(){this.resolver=new IB.WorkflowResolver(new RB.InMemoryTripleStore)}setResolver(e){this.resolver=e}getPreviousStatus(e,t){let r=this.normalizeStatus(e),i=this.resolveDefinition(t),s=new xB.WorkflowEngine(i);if(s.isInitialState(r))return null;let o=s.getPreviousStatus(r);if(o!==null)return this.wrapStatus(o)}normalizeStatus(e){return e.replace(/["'[\]]/g,"").trim()}wrapStatus(e){return`"[[${e}]]"`}resolveDefinition(e){return this.hasInstanceClass(e,og.AssetClass.TASK)||this.hasInstanceClass(e,og.AssetClass.MEETING)?this.resolver.getHardcodedFallback(og.AssetClass.TASK):this.resolver.getHardcodedFallback(og.AssetClass.PROJECT)}hasInstanceClass(e,t){return e?(Array.isArray(e)?e:[e]).some(i=>i.replace(/["'[\]]/g,"").trim()===t):!1}};po.EffortStatusWorkflow=y1;po.EffortStatusWorkflow=y1=EB([(0,AB.injectable)(),TB("design:paramtypes",[])],y1)});var Ut=v(cg=>{"use strict";Object.defineProperty(cg,"__esModule",{value:!0});cg.DI_TOKENS=void 0;cg.DI_TOKENS={IFileSystemAdapter:Symbol.for("IFileSystemAdapter"),IVaultAdapter:Symbol.for("IVaultAdapter"),IVaultContext:Symbol.for("IVaultContext"),IMultiVaultManager:Symbol.for("IMultiVaultManager"),ILogger:Symbol.for("ILogger"),IEventBus:Symbol.for("IEventBus"),IConfiguration:Symbol.for("IConfiguration"),INotificationService:Symbol.for("INotificationService"),AreaCreationService:Symbol.for("AreaCreationService"),ClassCreationService:Symbol.for("ClassCreationService"),ConceptCreationService:Symbol.for("ConceptCreationService"),SupervisionCreationService:Symbol.for("SupervisionCreationService"),GenericAssetCreationService:Symbol.for("GenericAssetCreationService"),DynamicFrontmatterGenerator:Symbol.for("DynamicFrontmatterGenerator"),AlgorithmExtractor:Symbol.for("AlgorithmExtractor"),TaskStatusService:Symbol.for("TaskStatusService"),EffortStatusWorkflow:Symbol.for("EffortStatusWorkflow"),StatusTimestampService:Symbol.for("StatusTimestampService"),PropertyCleanupService:Symbol.for("PropertyCleanupService"),FolderRepairService:Symbol.for("FolderRepairService"),RenameToUidService:Symbol.for("RenameToUidService"),PlanningService:Symbol.for("PlanningService"),EffortVotingService:Symbol.for("EffortVotingService"),SessionEventService:Symbol.for("SessionEventService"),CriticalityZoneService:Symbol.for("CriticalityZoneService"),AssetConversionService:Symbol.for("AssetConversionService"),NoteToRDFConverter:Symbol.for("NoteToRDFConverter"),IVaultSettings:Symbol.for("IVaultSettings"),AreaHierarchyBuilder:Symbol.for("AreaHierarchyBuilder"),URIConstructionService:Symbol.for("URIConstructionService"),ClassHierarchyResolver:Symbol.for("ClassHierarchyResolver")}});var lg=v(Ci=>{"use strict";var CB=Ci&&Ci.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},OB=Ci&&Ci.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},PB=Ci&&Ci.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Ci,"__esModule",{value:!0});Ci.StatusTimestampService=void 0;var QC=Ve(),FB=ws(),Bl=Mn(),DB=Ut(),b1=class{static{a(this,"StatusTimestampService")}constructor(e){this.vault=e,this.frontmatterService=new FB.FrontmatterService}async addStartTimestamp(e){let t=await this.vault.read(e),r=Bl.DateFormatter.toLocalTimestamp(new Date),i=this.frontmatterService.updateProperty(t,"ems__Effort_startTimestamp",r);await this.vault.modify(e,i)}async addEndTimestamp(e,t){let r=await this.vault.read(e),i=t||new Date,s=Bl.DateFormatter.toLocalTimestamp(i),o=this.frontmatterService.updateProperty(r,"ems__Effort_endTimestamp",s);await this.vault.modify(e,o)}async addResolutionTimestamp(e){let t=await this.vault.read(e),r=Bl.DateFormatter.toLocalTimestamp(new Date),i=this.frontmatterService.updateProperty(t,"ems__Effort_resolutionTimestamp",r);await this.vault.modify(e,i)}async addReviewTimestamp(e){let t=await this.vault.read(e),r=Bl.DateFormatter.toLocalTimestamp(new Date),i=this.frontmatterService.updateProperty(t,"ems__Effort_lastReviewTimestamp",r);await this.vault.modify(e,i)}async addEndAndResolutionTimestamps(e,t){let r=await this.vault.read(e),i=t||new Date,s=Bl.DateFormatter.toLocalTimestamp(i),o=this.frontmatterService.updateProperty(r,"ems__Effort_endTimestamp",s);o=this.frontmatterService.updateProperty(o,"ems__Effort_resolutionTimestamp",s),await this.vault.modify(e,o)}async removeStartTimestamp(e){let t=await this.vault.read(e),r=this.frontmatterService.removeProperty(t,"ems__Effort_startTimestamp");await this.vault.modify(e,r)}async removeEndTimestamp(e){let t=await this.vault.read(e),r=this.frontmatterService.removeProperty(t,"ems__Effort_endTimestamp");await this.vault.modify(e,r)}async removeResolutionTimestamp(e){let t=await this.vault.read(e),r=this.frontmatterService.removeProperty(t,"ems__Effort_resolutionTimestamp");await this.vault.modify(e,r)}async removeEndAndResolutionTimestamps(e){let t=await this.vault.read(e),r=this.frontmatterService.removeProperty(t,"ems__Effort_endTimestamp");r=this.frontmatterService.removeProperty(r,"ems__Effort_resolutionTimestamp"),await this.vault.modify(e,r)}async shiftPlannedEndTimestamp(e,t){let r=await this.vault.read(e),i=this.frontmatterService.parse(r);if(!i.exists)return;let s=this.frontmatterService.getPropertyValue(i.content,"ems__Effort_plannedEndTimestamp");if(!s)return;let o=new Date(s.replace(/["']/g,""));if(isNaN(o.getTime()))return;let c=new Date(o.getTime()+t),l=Bl.DateFormatter.toLocalTimestamp(c),u=this.frontmatterService.updateProperty(r,"ems__Effort_plannedEndTimestamp",l);await this.vault.modify(e,u)}};Ci.StatusTimestampService=b1;Ci.StatusTimestampService=b1=CB([(0,QC.injectable)(),PB(0,(0,QC.inject)(DB.DI_TOKENS.IVaultAdapter)),OB("design:paramtypes",[Object])],b1)});var w1=v(Oi=>{"use strict";var LB=Oi&&Oi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},NB=Oi&&Oi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},kB=Oi&&Oi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Oi,"__esModule",{value:!0});Oi.TaskStatusService=void 0;var JC=Ve(),MB=ws(),jB=Mn(),$B=ag(),UB=lg(),BB=Ut(),_1=class{static{a(this,"TaskStatusService")}constructor(e,t,r){this.vault=e,this.timestampService=r,this.frontmatterService=new MB.FrontmatterService}async syncEffortEndTimestamp(e,t){await this.timestampService.addEndAndResolutionTimestamps(e,t)}async shiftPlannedEndTimestamp(e,t){await this.timestampService.shiftPlannedEndTimestamp(e,t)}async planForEvening(e){let t=await this.vault.read(e),r=new Date;r.setHours(19,0,0,0);let i=jB.DateFormatter.toLocalTimestamp(r),s=this.frontmatterService.updateProperty(t,"ems__Effort_plannedStartTimestamp",i);await this.vault.modify(e,s)}};Oi.TaskStatusService=_1;Oi.TaskStatusService=_1=LB([(0,JC.injectable)(),kB(0,(0,JC.inject)(BB.DI_TOKENS.IVaultAdapter)),NB("design:paramtypes",[Object,$B.EffortStatusWorkflow,UB.StatusTimestampService])],_1)});var v1=v(ug=>{"use strict";Object.defineProperty(ug,"__esModule",{value:!0});ug.MetadataExtractor=void 0;var VB=fo(),S1=class{static{a(this,"MetadataExtractor")}constructor(e){this.vault=e}extractMetadata(e){return e?this.vault.getFrontmatter(e)||{}:{}}extractInstanceClass(e){return e.exo__Instance_class||null}extractStatus(e){return e.ems__Effort_status||null}extractIsArchived(e){return VB.MetadataHelpers.isAssetArchived(e)}static extractIsDefinedBy(e){let t=e.exo__Asset_isDefinedBy||'""';return Array.isArray(t)&&(t=t[0]||'""'),String(t)}extractExpectedFolder(e){let t=e.exo__Asset_isDefinedBy;if(!t)return null;let r=Array.isArray(t)?t[0]:t;if(!r||typeof r!="string")return null;let i=r.replace(/["'[\]]/g,"").trim();if(!i)return null;let s=i.split("/");return s.pop(),s.join("/")}extractCommandVisibilityContext(e){let t=this.extractMetadata(e),r=this.extractInstanceClass(t),i=this.extractStatus(t),s=this.extractIsArchived(t),o=e.parent?.path||"",c=this.extractExpectedFolder(t);return{instanceClass:r,currentStatus:i,metadata:t,isArchived:s,currentFolder:o,expectedFolder:c}}extractCache(e){return e?this.vault.getFrontmatter(e):null}};ug.MetadataExtractor=S1});var T1=v(Pi=>{"use strict";var qB=Pi&&Pi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},GB=Pi&&Pi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},WB=Pi&&Pi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Pi,"__esModule",{value:!0});Pi.AreaCreationService=void 0;var ZC=Ve(),e3=Ti(),HB=zo(),zB=Mn(),KB=v1(),t3=fo(),XB=Ut(),E1=class{static{a(this,"AreaCreationService")}constructor(e){this.vault=e}async createChildArea(e,t,r){let i=(0,e3.v4)(),s=`${i}.md`,o=this.generateChildAreaFrontmatter(t,e.basename,r,i),c=t3.MetadataHelpers.buildFileContent(o),l=e.parent?.path||"",u=l?`${l}/${s}`:s;return await this.vault.create(u,c)}generateChildAreaFrontmatter(e,t,r,i){let s=new Date,o=zB.DateFormatter.toLocalTimestamp(s),c=KB.MetadataExtractor.extractIsDefinedBy(e),l={};if(l.exo__Asset_isDefinedBy=t3.MetadataHelpers.ensureQuoted(c),l.exo__Asset_uid=i||(0,e3.v4)(),l.exo__Asset_createdAt=o,l.exo__Instance_class=[`"[[${HB.AssetClass.AREA}]]"`],l.ems__Area_parent=`"[[${t}]]"`,r&&r.trim()!==""){let u=r.trim();l.exo__Asset_label=u,l.aliases=[u]}return l}};Pi.AreaCreationService=E1;Pi.AreaCreationService=E1=qB([(0,ZC.injectable)(),WB(0,(0,ZC.inject)(XB.DI_TOKENS.IVaultAdapter)),GB("design:paramtypes",[Object])],E1)});var x1=v(Fi=>{"use strict";var YB=Fi&&Fi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},QB=Fi&&Fi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},JB=Fi&&Fi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Fi,"__esModule",{value:!0});Fi.AreaHierarchyBuilder=void 0;var r3=Ve(),n3=zo(),ZB=Ut(),fg=Zs(),A1=class{static{a(this,"AreaHierarchyBuilder")}constructor(e){this.vault=e}buildHierarchy(e,t){let r=this.vault.getAbstractFileByPath(e);if(!this.isFile(r))return null;let i=this.vault.getFrontmatter(r)||{};if(this.extractInstanceClass(i)!==n3.AssetClass.AREA)return null;let o=this.collectAllAreasFromVault(),c=new Set;return this.buildTree(e,o,c,0)}isFile(e){return!!e&&typeof e=="object"&&"basename"in e&&"path"in e}extractInstanceClass(e){let t=e.exo__Instance_class||"";return Array.isArray(t)?fg.WikiLinkHelpers.normalize(String(t[0]||"")):fg.WikiLinkHelpers.normalize(String(t))}collectAllAreasFromVault(){let e=new Map,t=new Map,r=this.vault.getAllFiles();for(let i of r){let s=this.vault.getFrontmatter(i)||{};if(this.extractInstanceClass(s)===n3.AssetClass.AREA){let c=this.extractParentPath(s);e.set(i.path,{path:i.path,title:i.basename,label:s.exo__Asset_label||void 0,isArchived:this.isArchived(s),depth:0,parentPath:c||void 0}),t.set(i.basename,i.path)}}for(let[,i]of e.entries())i.parentPath&&t.has(i.parentPath)&&(i.parentPath=t.get(i.parentPath));return e}extractParentPath(e){let t=e.ems__Area_parent;if(!t)return null;if(Array.isArray(t)){let r=t[0]||"";return fg.WikiLinkHelpers.normalize(String(r))}return fg.WikiLinkHelpers.normalize(String(t))}isArchived(e){let t=e.exo__Asset_archived;if(t===!0||t==="true")return!0;if(Array.isArray(t)&&t.length>0){let r=t[0];return r===!0||r==="true"}return!1}buildTree(e,t,r,i){if(r.has(e))return null;r.add(e);let s=t.get(e);if(!s)return null;let o=[];for(let[c,l]of t.entries())if(l.parentPath===e){let u=this.buildTree(c,t,r,i+1);u&&o.push(u)}return o.sort((c,l)=>{let u=c.label||c.title,f=l.label||l.title;return u.localeCompare(f)}),{path:s.path,title:s.title,label:s.label,isArchived:s.isArchived,depth:i,parentPath:s.parentPath,children:o}}};Fi.AreaHierarchyBuilder=A1;Fi.AreaHierarchyBuilder=A1=YB([(0,r3.injectable)(),JB(0,(0,r3.inject)(ZB.DI_TOKENS.IVaultAdapter)),QB("design:paramtypes",[Object])],A1)});var R1=v(Di=>{"use strict";var eV=Di&&Di.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},tV=Di&&Di.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},rV=Di&&Di.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Di,"__esModule",{value:!0});Di.ClassCreationService=void 0;var i3=Ve(),nV=Ti(),iV=Mn(),sV=fo(),oV=Ut(),I1=class{static{a(this,"ClassCreationService")}constructor(e){this.vault=e}async createSubclass(e,t,r){let i=(0,nV.v4)(),s=this.generateFileName(t),o=s.endsWith(".md")?s:`${s}.md`,c=this.generateClassFrontmatter(e.basename,t,i,r),l=sV.MetadataHelpers.buildFileContent(c),u="classes",f=`${u}/${o}`;return this.vault.getAbstractFileByPath(u)||await this.vault.createFolder(u),await this.vault.create(f,l)}generateFileName(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,"-");for(;t.startsWith("-");)t=t.slice(1);for(;t.endsWith("-");)t=t.slice(0,-1);return t}generateClassFrontmatter(e,t,r,i){let s=new Date,o=iV.DateFormatter.toLocalTimestamp(s),c={};c.exo__Asset_uid=r,c.exo__Asset_label=t,c.exo__Asset_createdAt=o,c.exo__Instance_class=['"[[exo__Class]]"'],c.exo__Class_superClass=`"[[${e}]]"`;let l=i.exo__Asset_isDefinedBy||'"[[Ontology/EXO]]"';return c.exo__Asset_isDefinedBy=l,c.aliases=[t],c}};Di.ClassCreationService=I1;Di.ClassCreationService=I1=eV([(0,i3.injectable)(),rV(0,(0,i3.inject)(oV.DI_TOKENS.IVaultAdapter)),tV("design:paramtypes",[Object])],I1)});var O1=v(Li=>{"use strict";var aV=Li&&Li.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},cV=Li&&Li.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},lV=Li&&Li.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Li,"__esModule",{value:!0});Li.ConceptCreationService=void 0;var s3=Ve(),uV=Ti(),fV=Mn(),dV=fo(),hV=zo(),pV=Ut(),C1=class{static{a(this,"ConceptCreationService")}constructor(e){this.vault=e}async createNarrowerConcept(e,t,r,i){let s=(0,uV.v4)(),o=t.endsWith(".md")?t:`${t}.md`,c=this.generateConceptFrontmatter(e.basename,r,i,s),l=dV.MetadataHelpers.buildFileContent(c),u="concepts",f=`${u}/${o}`;return this.vault.getAbstractFileByPath(u)||await this.vault.createFolder(u),await this.vault.create(f,l)}generateConceptFrontmatter(e,t,r,i){let s=new Date,o=fV.DateFormatter.toLocalTimestamp(s),c={};return c.exo__Asset_isDefinedBy='"[[!concepts]]"',c.exo__Asset_uid=i,c.exo__Asset_createdAt=o,c.exo__Instance_class=[`"[[${hV.AssetClass.CONCEPT}]]"`],c.ims__Concept_broader=`"[[${e}]]"`,c.ims__Concept_definition=t,r.length>0&&(c.aliases=r),c}};Li.ConceptCreationService=C1;Li.ConceptCreationService=C1=aV([(0,s3.injectable)(),lV(0,(0,s3.inject)(pV.DI_TOKENS.IVaultAdapter)),cV("design:paramtypes",[Object])],C1)});var o3=v(go=>{"use strict";var mV=go&&go.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},gV=go&&go.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(go,"__esModule",{value:!0});go.InstantiationRuleResolver=void 0;var yV=Ve(),P1=Ce(),Vl=Ge(),mo=Ht(),F1=class{static{a(this,"InstantiationRuleResolver")}constructor(e){this.tripleStore=e,this.cache=new Map}async getRule(e){let t=this.cache.get(e);if(t!==void 0)return t;let r=await this.findRuleForClass(e);return this.cache.set(e,r),r}invalidateCache(){this.cache.clear()}async findRuleForClass(e){let t=await this.tripleStore.match(void 0,mo.Namespace.RDF.term("type"),mo.Namespace.EXO.term("InstantiationRule"));for(let r of t){let i=r.subject;if((await this.tripleStore.match(i,mo.Namespace.EXO.term("rule_targetClass"),void 0)).some(c=>this.matchesTargetClass(c.object,e)))return this.loadRule(i)}return null}async loadRule(e){let t=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_prototypeUID"),void 0),r=t.length>0&&t[0].object instanceof Vl.Literal?t[0].object.value:null,i=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_defaultFolder"),void 0),s=i.length>0&&i[0].object instanceof Vl.Literal?i[0].object.value:null,o=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_propertySetRules"),void 0),c=[];for(let l of o){let u=l.object;if(!(u instanceof P1.IRI))continue;let f=await this.loadPropertySetRule(u);f&&c.push(f)}return{prototypeUID:r,defaultFolder:s,propertySetRules:c}}async loadPropertySetRule(e){let t=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_property"),void 0);if(t.length===0)return null;let r=t[0].object,i=r instanceof P1.IRI?this.extractLocalName(r):r instanceof Vl.Literal?this.normalizeWikilink(r.value):null;if(!i)return null;let s=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_value"),void 0),o=s.length>0&&s[0].object instanceof Vl.Literal?s[0].object.value:"",c=await this.tripleStore.match(e,mo.Namespace.EXO.term("rule_valueType"),void 0),l=c.length>0&&c[0].object instanceof Vl.Literal?c[0].object.value:"literal";return{property:i,value:o,valueType:l}}matchesTargetClass(e,t){return e instanceof P1.IRI?this.extractLocalName(e)===t:e instanceof Vl.Literal?this.normalizeWikilink(e.value)===t:!1}extractLocalName(e){let t=e.value,r=t.lastIndexOf("#");if(r>=0){let s=t.substring(r+1);return t.includes("/ems#")?`ems__${s}`:t.includes("/exo#")?`exo__${s}`:t.includes("/ims#")?`ims__${s}`:s}let i=t.lastIndexOf("/");return i>=0?t.substring(i+1):t}normalizeWikilink(e){return e.replace(/["'[\]]/g,"").trim()}};go.InstantiationRuleResolver=F1;go.InstantiationRuleResolver=F1=mV([(0,yV.injectable)(),gV("design:paramtypes",[Object])],F1)});var a3=v(yo=>{"use strict";var bV=yo&&yo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},_V=yo&&yo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(yo,"__esModule",{value:!0});yo.VisibilityGenerator=void 0;var wV=Ve(),SV=Xf(),D1=class{static{a(this,"VisibilityGenerator")}constructor(e){this.engine=e}getVisibleCommands(e){return this.engine.getAllTransitions(e).map(t=>this.toCommand(t))}getForwardCommands(e){return this.engine.getAvailableTransitions(e).map(t=>this.toCommand(t))}getRollbackCommands(e){return this.engine.getRollbackTransitions(e).map(t=>this.toCommand(t))}toCommand(e){let t=e.from.replace("ems__EffortStatus","").toLowerCase(),r=e.to.replace("ems__EffortStatus","").toLowerCase();return{commandId:`workflow-${t}-to-${r}`,label:e.label,icon:e.icon,targetStatus:e.to,isRollback:e.isRollback}}};yo.VisibilityGenerator=D1;yo.VisibilityGenerator=D1=bV([(0,wV.injectable)(),_V("design:paramtypes",[SV.WorkflowEngine])],D1)});var c3=v(bo=>{"use strict";var vV=bo&&bo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},EV=bo&&bo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(bo,"__esModule",{value:!0});bo.WorkflowCommandAdapter=void 0;var TV=Ve(),L1=Wo(),AV=Xf(),N1=class{static{a(this,"WorkflowCommandAdapter")}constructor(e){this.workflow=e,this.engine=new AV.WorkflowEngine(e)}adaptTransitions(e){return this.engine.getAllTransitions(e).map(r=>this.transitionToCommand(r))}adaptForwardTransitions(e){return this.engine.getAvailableTransitions(e).map(r=>this.transitionToCommand(r))}adaptRollbackTransitions(e){return this.engine.getRollbackTransitions(e).map(r=>this.transitionToCommand(r))}getEngine(){return this.engine}getWorkflow(){return this.workflow}transitionToCommand(e){let t=this.generateCommandId(e),r=this.buildPrecondition(e),i=this.buildGrounding(e),s=e.isRollback?"rollback":"workflow";return{id:t,name:e.label,icon:e.icon,precondition:r,grounding:i,category:s,confirmMessage:e.isRollback?`Rollback to ${this.shortStatus(e.to)}?`:void 0,successMessage:`Status changed to ${this.shortStatus(e.to)}`}}generateCommandId(e){let t=this.shortStatus(e.from),r=this.shortStatus(e.to);return`workflow-${t}-to-${r}`}buildPrecondition(e){return{id:`precond-${this.generateCommandId(e)}`,label:`Asset status is ${this.shortStatus(e.from)}`,sparqlAsk:`ASK { $target ems:Effort_status "${e.from}" }`}}buildGrounding(e){let t=[];t.push({id:`gnd-status-${this.shortStatus(e.to)}`,label:`Set status to ${this.shortStatus(e.to)}`,type:L1.GroundingType.PROPERTY_SET,targetProperty:"ems__Effort_status",targetValueRef:e.to});let r=this.engine.getTimestampsForStatus(e.to);for(let i of r)t.push({id:`gnd-ts-${i}`,label:`Set ${i}`,type:L1.GroundingType.PROPERTY_SET,targetProperty:i,targetValueSubstitution:"$now"});return t.length===1?t[0]:{id:`gnd-composite-${this.generateCommandId(e)}`,label:`Transition to ${this.shortStatus(e.to)}`,type:L1.GroundingType.COMPOSITE,steps:t}}shortStatus(e){return e.replace("ems__EffortStatus","").toLowerCase()}};bo.WorkflowCommandAdapter=N1;bo.WorkflowCommandAdapter=N1=vV([(0,TV.injectable)(),EV("design:paramtypes",[Object])],N1)});var M1=v(Ni=>{"use strict";var xV=Ni&&Ni.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},IV=Ni&&Ni.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},RV=Ni&&Ni.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Ni,"__esModule",{value:!0});Ni.EffortVotingService=void 0;var l3=Ve(),CV=Ut(),k1=class{static{a(this,"EffortVotingService")}constructor(e){this.vault=e}async incrementEffortVotes(e){let t=await this.vault.read(e),i=this.extractVoteCount(t)+1,s=this.updateFrontmatterWithVotes(t,i);return await this.vault.modify(e,s),i}extractVoteCount(e){let t=/^---\r?\n([\s\S]*?)\r?\n---/,r=e.match(t);if(!r)return 0;let s=r[1].match(/ems__Effort_votes:\s*(\d+)/);return s&&s[1]?parseInt(s[1],10):0}updateFrontmatterWithVotes(e,t){let r=/^---\r?\n([\s\S]*?)\r?\n---/,i=e.match(r),s=e.includes(`\r
103
103
  `)?`\r
104
104
  `:`
105
- `;if(!i)return`---${s}ems__Effort_votes: ${t}${s}---${s}${e}`;let c=i[1];return c.includes("ems__Effort_votes:")?c=c.replace(/ems__Effort_votes:.*$/m,`ems__Effort_votes: ${t}`):c+=`${s}ems__Effort_votes: ${t}`,e.replace(r,`---${s}${c}${s}---`)}};Ni.EffortVotingService=k1;Ni.EffortVotingService=k1=xV([(0,lC.injectable)(),RV(0,(0,lC.inject)(CV.DI_TOKENS.IVaultAdapter)),IV("design:paramtypes",[Object])],k1)});var $1=v(j1=>{"use strict";Object.defineProperty(j1,"__esModule",{value:!0});j1.extractAssetReference=OV;function OV(n){if(typeof n!="string")return null;let e=n.trim().replace(/^["']|["']$/g,"");e=e.replace(/^\[\[|\]\]$/g,"");let t=e.indexOf("|");return t!==-1&&(e=e.slice(0,t).trim()),e||null}a(OV,"extractAssetReference")});var B1=v(ki=>{"use strict";var PV=ki&&ki.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},FV=ki&&ki.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},DV=ki&&ki.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(ki,"__esModule",{value:!0});ki.FolderRepairService=void 0;var uC=Ve(),LV=Ut(),NV=$1(),U1=class{static{a(this,"FolderRepairService")}constructor(e){this.vault=e}async getExpectedFolder(e,t){return this.getExpectedFolderSync(e,t)}getExpectedFolderSync(e,t){let r=t?.exo__Asset_isDefinedBy;if(!r)return null;let i=(0,NV.extractAssetReference)(r);if(!i)return null;let s=this.vault.getFirstLinkpathDest(i,e.path);return s?this.getFileFolder(s):null}async repairFolder(e,t){let r=t?`${t}/${e.name}`:e.name;if(this.vault.getAbstractFileByPath(r))throw new Error(`Cannot move file: ${r} already exists`);await this.ensureFolderExists(t),await this.vault.rename(e,r)}getFileFolder(e){return e.parent?.path||""}async ensureFolderExists(e){if(!e)return;let t=this.vault.getAbstractFileByPath(e);if(!(t&&"children"in t))try{await this.vault.createFolder(e)}catch(r){if(r instanceof Error&&r.message.includes("Folder already exists"))return;throw r}}};ki.FolderRepairService=U1;ki.FolderRepairService=U1=PV([(0,uC.injectable)(),DV(0,(0,uC.inject)(LV.DI_TOKENS.IVaultAdapter)),FV("design:paramtypes",[Object])],U1)});var G1=v(Mi=>{"use strict";var kV=Mi&&Mi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},MV=Mi&&Mi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},fC=Mi&&Mi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Mi,"__esModule",{value:!0});Mi.PropertyCleanupService=void 0;var V1=Ve(),dC=Ut(),jV=el(),q1=class{static{a(this,"PropertyCleanupService")}constructor(e,t=jV.NullLogger){this.vault=e,this.logger=t,this.logger.debug("PropertyCleanupService initialized")}async cleanEmptyProperties(e){this.logger.debug("Cleaning empty properties",{path:e.path});let t=await this.vault.read(e),r=this.removeEmptyPropertiesFromContent(t);await this.vault.modify(e,r),this.logger.info("Empty properties cleaned",{path:e.path})}removeEmptyPropertiesFromContent(e){let t=/^---\n([\s\S]*?)\n---/,r=e.match(t);if(!r)return e;let s=r[1].split(`
105
+ `;if(!i)return`---${s}ems__Effort_votes: ${t}${s}---${s}${e}`;let c=i[1];return c.includes("ems__Effort_votes:")?c=c.replace(/ems__Effort_votes:.*$/m,`ems__Effort_votes: ${t}`):c+=`${s}ems__Effort_votes: ${t}`,e.replace(r,`---${s}${c}${s}---`)}};Ni.EffortVotingService=k1;Ni.EffortVotingService=k1=xV([(0,l3.injectable)(),RV(0,(0,l3.inject)(CV.DI_TOKENS.IVaultAdapter)),IV("design:paramtypes",[Object])],k1)});var $1=v(j1=>{"use strict";Object.defineProperty(j1,"__esModule",{value:!0});j1.extractAssetReference=OV;function OV(n){if(typeof n!="string")return null;let e=n.trim().replace(/^["']|["']$/g,"");e=e.replace(/^\[\[|\]\]$/g,"");let t=e.indexOf("|");return t!==-1&&(e=e.slice(0,t).trim()),e||null}a(OV,"extractAssetReference")});var B1=v(ki=>{"use strict";var PV=ki&&ki.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},FV=ki&&ki.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},DV=ki&&ki.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(ki,"__esModule",{value:!0});ki.FolderRepairService=void 0;var u3=Ve(),LV=Ut(),NV=$1(),U1=class{static{a(this,"FolderRepairService")}constructor(e){this.vault=e}async getExpectedFolder(e,t){return this.getExpectedFolderSync(e,t)}getExpectedFolderSync(e,t){let r=t?.exo__Asset_isDefinedBy;if(!r)return null;let i=(0,NV.extractAssetReference)(r);if(!i)return null;let s=this.vault.getFirstLinkpathDest(i,e.path);return s?this.getFileFolder(s):null}async repairFolder(e,t){let r=t?`${t}/${e.name}`:e.name;if(this.vault.getAbstractFileByPath(r))throw new Error(`Cannot move file: ${r} already exists`);await this.ensureFolderExists(t),await this.vault.rename(e,r)}getFileFolder(e){return e.parent?.path||""}async ensureFolderExists(e){if(!e)return;let t=this.vault.getAbstractFileByPath(e);if(!(t&&"children"in t))try{await this.vault.createFolder(e)}catch(r){if(r instanceof Error&&r.message.includes("Folder already exists"))return;throw r}}};ki.FolderRepairService=U1;ki.FolderRepairService=U1=PV([(0,u3.injectable)(),DV(0,(0,u3.inject)(LV.DI_TOKENS.IVaultAdapter)),FV("design:paramtypes",[Object])],U1)});var G1=v(Mi=>{"use strict";var kV=Mi&&Mi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},MV=Mi&&Mi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},f3=Mi&&Mi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Mi,"__esModule",{value:!0});Mi.PropertyCleanupService=void 0;var V1=Ve(),d3=Ut(),jV=el(),q1=class{static{a(this,"PropertyCleanupService")}constructor(e,t=jV.NullLogger){this.vault=e,this.logger=t,this.logger.debug("PropertyCleanupService initialized")}async cleanEmptyProperties(e){this.logger.debug("Cleaning empty properties",{path:e.path});let t=await this.vault.read(e),r=this.removeEmptyPropertiesFromContent(t);await this.vault.modify(e,r),this.logger.info("Empty properties cleaned",{path:e.path})}removeEmptyPropertiesFromContent(e){let t=/^---\n([\s\S]*?)\n---/,r=e.match(t);if(!r)return e;let s=r[1].split(`
106
106
  `),o=[],c=0;for(;c<s.length;){let u=s[c],f=u.trim();if(f===""){o.push(u),c++;continue}let d=f.match(/^([^:]+):\s*(.*)$/);if(d){let h=d[2];if(h===""&&c+1<s.length&&s[c+1].match(/^\s+- /)){let y=[],g=c+1;for(;g<s.length&&s[g].match(/^\s+- /);)y.push(s[g]),g++;if(y.every(_=>{let S=_.replace(/^\s+- /,"").trim();return this.isEmptyValue(S)})){c=g;continue}else{o.push(u);for(let _=c+1;_<g;_++)o.push(s[_]);c=g;continue}}if(this.isEmptyValue(h)){c++;continue}o.push(u),c++}else f.match(/^\s*- /)||o.push(u),c++}let l=o.join(`
107
107
  `);return e.replace(t,`---
108
108
  ${l}
109
- ---`)}isEmptyValue(e){let t=e.trim();return t===""||t==="null"||t==="undefined"||t==="[]"||t==="{}"||t==='""'||t==="''"}};Mi.PropertyCleanupService=q1;Mi.PropertyCleanupService=q1=kV([(0,V1.injectable)(),fC(0,(0,V1.inject)(dC.DI_TOKENS.IVaultAdapter)),fC(1,(0,V1.inject)(dC.DI_TOKENS.ILogger)),MV("design:paramtypes",[Object,Object])],q1)});var H1=v(ji=>{"use strict";var $V=ji&&ji.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},UV=ji&&ji.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},BV=ji&&ji.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(ji,"__esModule",{value:!0});ji.RenameToUidService=void 0;var hC=Ve(),VV=Ut(),W1=class{static{a(this,"RenameToUidService")}constructor(e){this.vault=e}async renameToUid(e,t){let r=t.exo__Asset_uid;if(!r||typeof r!="string")throw new Error("Asset has no exo__Asset_uid property");let i=e.basename,s=r;if(i===s)throw new Error("File is already named according to UID");let o=t.exo__Asset_label,c=!o||o.trim()==="",l=!this.isAssetArchived(t);(c||l)&&await this.updateFrontmatter(e,i,{setLabel:c,appendAlias:l});let u=e.parent?.path||"",f=u?`${u}/${s}.md`:`${s}.md`;await this.vault.updateLinks(e.path,f,i),await this.vault.rename(e,f)}async updateFrontmatter(e,t,r){await this.vault.process(e,i=>{let s=/^---\n([\s\S]*?)\n---/,o=i.match(s);if(!o)return i;let c=o[1];return r.setLabel&&(c=`${c}
109
+ ---`)}isEmptyValue(e){let t=e.trim();return t===""||t==="null"||t==="undefined"||t==="[]"||t==="{}"||t==='""'||t==="''"}};Mi.PropertyCleanupService=q1;Mi.PropertyCleanupService=q1=kV([(0,V1.injectable)(),f3(0,(0,V1.inject)(d3.DI_TOKENS.IVaultAdapter)),f3(1,(0,V1.inject)(d3.DI_TOKENS.ILogger)),MV("design:paramtypes",[Object,Object])],q1)});var H1=v(ji=>{"use strict";var $V=ji&&ji.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},UV=ji&&ji.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},BV=ji&&ji.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(ji,"__esModule",{value:!0});ji.RenameToUidService=void 0;var h3=Ve(),VV=Ut(),W1=class{static{a(this,"RenameToUidService")}constructor(e){this.vault=e}async renameToUid(e,t){let r=t.exo__Asset_uid;if(!r||typeof r!="string")throw new Error("Asset has no exo__Asset_uid property");let i=e.basename,s=r;if(i===s)throw new Error("File is already named according to UID");let o=t.exo__Asset_label,c=!o||o.trim()==="",l=!this.isAssetArchived(t);(c||l)&&await this.updateFrontmatter(e,i,{setLabel:c,appendAlias:l});let u=e.parent?.path||"",f=u?`${u}/${s}.md`:`${s}.md`;await this.vault.updateLinks(e.path,f,i),await this.vault.rename(e,f)}async updateFrontmatter(e,t,r){await this.vault.process(e,i=>{let s=/^---\n([\s\S]*?)\n---/,o=i.match(s);if(!o)return i;let c=o[1];return r.setLabel&&(c=`${c}
110
110
  exo__Asset_label: ${t}`),r.appendAlias&&(c=this.updateAliases(c,t)),i.replace(s,`---
111
111
  ${c}
112
112
  ---`)})}updateAliases(e,t){if(!/^aliases\s*:/m.test(e))return`${e}
@@ -116,8 +116,8 @@ aliases:
116
116
  - ${t}
117
117
  `;return e.replace(s[1],d)}let o=/^aliases\s*:\s*\[([^\]]*)\]/m,c=e.match(o);if(c){let u=c[1].trim();return u===""?e.replace(o,`aliases:
118
118
  - ${t}`):u.split(",").map(d=>d.trim().replace(/^["']|["']$/g,"")).includes(t)?e:e.replace(o,`aliases: [${u}, ${t}]`)}let l=/^aliases\s*:\s*(?:null|~)?\s*$/m;return e.replace(l,`aliases:
119
- - ${t}`)}isAssetArchived(e){if(e?.exo__Asset_isArchived===!0)return!0;let t=e?.archived;if(t==null)return!1;if(typeof t=="boolean")return t;if(typeof t=="number")return t!==0;if(typeof t=="string"){let r=t.toLowerCase().trim();return r==="true"||r==="yes"||r==="1"}return!1}};ji.RenameToUidService=W1;ji.RenameToUidService=W1=$V([(0,hC.injectable)(),BV(0,(0,hC.inject)(VV.DI_TOKENS.IVaultAdapter)),UV("design:paramtypes",[Object])],W1)});var X1=v($i=>{"use strict";var qV=$i&&$i.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},GV=$i&&$i.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},pC=$i&&$i.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty($i,"__esModule",{value:!0});$i.SupervisionCreationService=void 0;var z1=Ve(),WV=Ti(),HV=Mn(),mC=Ut(),gC=qf(),K1=class{static{a(this,"SupervisionCreationService")}constructor(e,t){this.vault=e,this.vaultSettings=t}async createSupervision(e){let t=(0,WV.v4)(),r=`${t}.md`,i=this.generateFrontmatter(t),s=this.generateBody(e),o=this.buildFileContent(i,s),c=this.vaultSettings.getDefaultInboxFolder(),l=`${c}/${r}`;return await this.ensureFolderExists(c),await this.vault.create(l,o)}async ensureFolderExists(e){await this.vault.exists(e)||await this.vault.createFolder(e)}generateFrontmatter(e){let t=new Date,r=HV.DateFormatter.toLocalTimestamp(t);return{exo__Asset_isDefinedBy:this.vaultSettings.getOwnerIdentity(),exo__Asset_uid:e,exo__Asset_createdAt:r,exo__Instance_class:[`"[[${this.vaultSettings.getFleetingNoteClassUID()}]]"`],ztlk__FleetingNote_type:'"[[CBT-Diary Record]]"'}}generateBody(e){return[{label:"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044F/\u0442\u0440\u0438\u0433\u0433\u0435\u0440",value:e.situation},{label:"\u042D\u043C\u043E\u0446\u0438\u0438",value:e.emotions},{label:"\u041C\u044B\u0441\u043B\u0438",value:e.thoughts},{label:"\u041F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435",value:e.behavior},{label:"\u041A\u0440\u0430\u0442\u043A\u043E\u0441\u0440\u043E\u0447\u043D\u044B\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u0441\u0442\u0432\u0438\u044F \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F",value:e.shortTermConsequences},{label:"\u0414\u043E\u043B\u0433\u043E\u0441\u0440\u043E\u0447\u043D\u044B\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u0441\u0442\u0432\u0438\u044F \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F",value:e.longTermConsequences}].map(r=>`- ${r.label}: ${r.value}`).join(`
120
- `)}buildFileContent(e,t){let r=(0,gC.orderProperties)(e,(0,gC.loadDefaultSpec)());return`---
119
+ - ${t}`)}isAssetArchived(e){if(e?.exo__Asset_isArchived===!0)return!0;let t=e?.archived;if(t==null)return!1;if(typeof t=="boolean")return t;if(typeof t=="number")return t!==0;if(typeof t=="string"){let r=t.toLowerCase().trim();return r==="true"||r==="yes"||r==="1"}return!1}};ji.RenameToUidService=W1;ji.RenameToUidService=W1=$V([(0,h3.injectable)(),BV(0,(0,h3.inject)(VV.DI_TOKENS.IVaultAdapter)),UV("design:paramtypes",[Object])],W1)});var X1=v($i=>{"use strict";var qV=$i&&$i.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},GV=$i&&$i.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},p3=$i&&$i.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty($i,"__esModule",{value:!0});$i.SupervisionCreationService=void 0;var z1=Ve(),WV=Ti(),HV=Mn(),m3=Ut(),g3=qf(),K1=class{static{a(this,"SupervisionCreationService")}constructor(e,t){this.vault=e,this.vaultSettings=t}async createSupervision(e){let t=(0,WV.v4)(),r=`${t}.md`,i=this.generateFrontmatter(t),s=this.generateBody(e),o=this.buildFileContent(i,s),c=this.vaultSettings.getDefaultInboxFolder(),l=`${c}/${r}`;return await this.ensureFolderExists(c),await this.vault.create(l,o)}async ensureFolderExists(e){await this.vault.exists(e)||await this.vault.createFolder(e)}generateFrontmatter(e){let t=new Date,r=HV.DateFormatter.toLocalTimestamp(t);return{exo__Asset_isDefinedBy:this.vaultSettings.getOwnerIdentity(),exo__Asset_uid:e,exo__Asset_createdAt:r,exo__Instance_class:[`"[[${this.vaultSettings.getFleetingNoteClassUID()}]]"`],ztlk__FleetingNote_type:'"[[CBT-Diary Record]]"'}}generateBody(e){return[{label:"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044F/\u0442\u0440\u0438\u0433\u0433\u0435\u0440",value:e.situation},{label:"\u042D\u043C\u043E\u0446\u0438\u0438",value:e.emotions},{label:"\u041C\u044B\u0441\u043B\u0438",value:e.thoughts},{label:"\u041F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435",value:e.behavior},{label:"\u041A\u0440\u0430\u0442\u043A\u043E\u0441\u0440\u043E\u0447\u043D\u044B\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u0441\u0442\u0432\u0438\u044F \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F",value:e.shortTermConsequences},{label:"\u0414\u043E\u043B\u0433\u043E\u0441\u0440\u043E\u0447\u043D\u044B\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u0441\u0442\u0432\u0438\u044F \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F",value:e.longTermConsequences}].map(r=>`- ${r.label}: ${r.value}`).join(`
120
+ `)}buildFileContent(e,t){let r=(0,g3.orderProperties)(e,(0,g3.loadDefaultSpec)());return`---
121
121
  ${Object.entries(r).map(([s,o])=>{if(Array.isArray(o)){let c=o.map(l=>` - ${l}`).join(`
122
122
  `);return`${s}:
123
123
  ${c}`}return`${s}: ${String(o)}`}).join(`
@@ -125,14 +125,14 @@ ${c}`}return`${s}: ${String(o)}`}).join(`
125
125
  ---
126
126
 
127
127
  ${t}
128
- `}};$i.SupervisionCreationService=K1;$i.SupervisionCreationService=K1=qV([(0,z1.injectable)(),pC(0,(0,z1.inject)(mC.DI_TOKENS.IVaultAdapter)),pC(1,(0,z1.inject)(mC.DI_TOKENS.IVaultSettings)),GV("design:paramtypes",[Object,Object])],K1)});var Q1=v(fc=>{"use strict";var zV=fc&&fc.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s};Object.defineProperty(fc,"__esModule",{value:!0});fc.DynamicFrontmatterGenerator=void 0;var KV=Ve(),XV=Ti(),Qf=Mn(),Y1=class{static{a(this,"DynamicFrontmatterGenerator")}generate(e,t,r,i){let s={},o=new Date;i?.isDefinedBy&&(s.exo__Asset_isDefinedBy=this.ensureQuoted(i.isDefinedBy)),s.exo__Asset_uid=i?.uid||(0,XV.v4)(),s.exo__Asset_createdAt=i?.createdAt||Qf.DateFormatter.toLocalTimestamp(o),s.exo__Instance_class=[this.formatWikilink(e)];let c=new Map;for(let u of r)c.set(u.name,u.type);for(let[u,f]of Object.entries(t)){if(f==null||u==="exo__Asset_uid"||u==="exo__Asset_createdAt"||u==="exo__Instance_class"||u==="exo__Asset_isDefinedBy")continue;let d=c.get(u);s[u]=this.formatValue(f,d)}let l=t.exo__Asset_label;if(l&&typeof l=="string"&&l.trim()!==""){let u=l.trim();s.exo__Asset_label=u,s.aliases=[u]}return s}formatValue(e,t){if(e==null)return null;if(!t)return this.formatInferredValue(e);switch(t){case"text":return this.formatText(e);case"wikilink":return this.formatWikilink(e);case"status-select":case"size-select":return this.formatWikilink(e);case"number":return this.formatNumber(e);case"boolean":return this.formatBoolean(e);case"timestamp":return this.formatTimestamp(e);default:return this.formatText(e)}}formatText(e){return typeof e=="string"?e:String(e)}formatWikilink(e){let t=String(e);return t.startsWith('"[[')&&t.endsWith(']]"')?t:t.startsWith("[[")&&t.endsWith("]]")?`"${t}"`:`"[[${t}]]"`}formatNumber(e){if(typeof e=="number")return e;let t=Number(e);return isNaN(t)?0:t}formatBoolean(e){if(typeof e=="boolean")return e;if(typeof e=="string"){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"}return typeof e=="number"?e!==0:!!e}formatTimestamp(e){if(e instanceof Date)return Qf.DateFormatter.toLocalTimestamp(e);if(typeof e=="string"){if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(e))return e;if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/.test(e))return e.replace("Z","");let t=new Date(e);return isNaN(t.getTime())?e:Qf.DateFormatter.toLocalTimestamp(t)}if(typeof e=="number"){let t=new Date(e);if(!isNaN(t.getTime()))return Qf.DateFormatter.toLocalTimestamp(t)}return String(e)}formatInferredValue(e){return typeof e=="boolean"||typeof e=="number"?e:e instanceof Date?Qf.DateFormatter.toLocalTimestamp(e):typeof e=="string"?e.startsWith("[[")||e.startsWith('"[[')?this.formatWikilink(e):e:String(e)}ensureQuoted(e){return!e||e==='""'?'""':e.startsWith('"')&&e.endsWith('"')?e:`"${e}"`}generateYAML(e,t,r,i){let s=this.generate(e,t,r,i);return this.toYAML(s)}toYAML(e){return`---
128
+ `}};$i.SupervisionCreationService=K1;$i.SupervisionCreationService=K1=qV([(0,z1.injectable)(),p3(0,(0,z1.inject)(m3.DI_TOKENS.IVaultAdapter)),p3(1,(0,z1.inject)(m3.DI_TOKENS.IVaultSettings)),GV("design:paramtypes",[Object,Object])],K1)});var Q1=v(fc=>{"use strict";var zV=fc&&fc.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s};Object.defineProperty(fc,"__esModule",{value:!0});fc.DynamicFrontmatterGenerator=void 0;var KV=Ve(),XV=Ti(),Qf=Mn(),Y1=class{static{a(this,"DynamicFrontmatterGenerator")}generate(e,t,r,i){let s={},o=new Date;i?.isDefinedBy&&(s.exo__Asset_isDefinedBy=this.ensureQuoted(i.isDefinedBy)),s.exo__Asset_uid=i?.uid||(0,XV.v4)(),s.exo__Asset_createdAt=i?.createdAt||Qf.DateFormatter.toLocalTimestamp(o),s.exo__Instance_class=[this.formatWikilink(e)];let c=new Map;for(let u of r)c.set(u.name,u.type);for(let[u,f]of Object.entries(t)){if(f==null||u==="exo__Asset_uid"||u==="exo__Asset_createdAt"||u==="exo__Instance_class"||u==="exo__Asset_isDefinedBy")continue;let d=c.get(u);s[u]=this.formatValue(f,d)}let l=t.exo__Asset_label;if(l&&typeof l=="string"&&l.trim()!==""){let u=l.trim();s.exo__Asset_label=u,s.aliases=[u]}return s}formatValue(e,t){if(e==null)return null;if(!t)return this.formatInferredValue(e);switch(t){case"text":return this.formatText(e);case"wikilink":return this.formatWikilink(e);case"status-select":case"size-select":return this.formatWikilink(e);case"number":return this.formatNumber(e);case"boolean":return this.formatBoolean(e);case"timestamp":return this.formatTimestamp(e);default:return this.formatText(e)}}formatText(e){return typeof e=="string"?e:String(e)}formatWikilink(e){let t=String(e);return t.startsWith('"[[')&&t.endsWith(']]"')?t:t.startsWith("[[")&&t.endsWith("]]")?`"${t}"`:`"[[${t}]]"`}formatNumber(e){if(typeof e=="number")return e;let t=Number(e);return isNaN(t)?0:t}formatBoolean(e){if(typeof e=="boolean")return e;if(typeof e=="string"){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"}return typeof e=="number"?e!==0:!!e}formatTimestamp(e){if(e instanceof Date)return Qf.DateFormatter.toLocalTimestamp(e);if(typeof e=="string"){if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(e))return e;if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/.test(e))return e.replace("Z","");let t=new Date(e);return isNaN(t.getTime())?e:Qf.DateFormatter.toLocalTimestamp(t)}if(typeof e=="number"){let t=new Date(e);if(!isNaN(t.getTime()))return Qf.DateFormatter.toLocalTimestamp(t)}return String(e)}formatInferredValue(e){return typeof e=="boolean"||typeof e=="number"?e:e instanceof Date?Qf.DateFormatter.toLocalTimestamp(e):typeof e=="string"?e.startsWith("[[")||e.startsWith('"[[')?this.formatWikilink(e):e:String(e)}ensureQuoted(e){return!e||e==='""'?'""':e.startsWith('"')&&e.endsWith('"')?e:`"${e}"`}generateYAML(e,t,r,i){let s=this.generate(e,t,r,i);return this.toYAML(s)}toYAML(e){return`---
129
129
  ${Object.entries(e).map(([r,i])=>{if(Array.isArray(i)){let s=i.map(o=>` - ${o}`).join(`
130
130
  `);return`${r}:
131
131
  ${s}`}return`${r}: ${i}`}).join(`
132
132
  `)}
133
133
  ---`}};fc.DynamicFrontmatterGenerator=Y1;fc.DynamicFrontmatterGenerator=Y1=zV([(0,KV.injectable)()],Y1)});var Z1=v(dc=>{"use strict";var YV=dc&&dc.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s};Object.defineProperty(dc,"__esModule",{value:!0});dc.AlgorithmExtractor=void 0;var QV=Ve(),J1=class{static{a(this,"AlgorithmExtractor")}extractH2Section(e,t){let r=e.split(`
134
134
  `),i=`## ${t}`,s=!1,o=[];for(let l of r){if(l.trim()===i){s=!0;continue}if(s){if(l.startsWith("## ")||l.startsWith("# "))break;o.push(l)}}return o.length===0?null:o.join(`
135
- `).trim()||null}};dc.AlgorithmExtractor=J1;dc.AlgorithmExtractor=J1=YV([(0,QV.injectable)()],J1)});var tv=v(Ui=>{"use strict";var JV=Ui&&Ui.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},ZV=Ui&&Ui.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},eq=Ui&&Ui.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Ui,"__esModule",{value:!0});Ui.PlanningService=void 0;var yC=Ve(),tq=ws(),rq=Mn(),nq=Ut(),ev=class{static{a(this,"PlanningService")}constructor(e){this.vault=e,this.frontmatterService=new tq.FrontmatterService}async planOnToday(e){let t=this.vault.getAbstractFileByPath(e);if(!t||!this.isFile(t))throw new Error(`File not found: ${e}`);let r=await this.vault.read(t),i=rq.DateFormatter.getTodayStartTimestamp(),s=this.frontmatterService.updateProperty(r,"ems__Effort_plannedStartTimestamp",i);await this.vault.modify(t,s)}isFile(e){return typeof e=="object"&&e!==null&&"basename"in e}};Ui.PlanningService=ev;Ui.PlanningService=ev=JV([(0,yC.injectable)(),eq(0,(0,yC.inject)(nq.DI_TOKENS.IVaultAdapter)),ZV("design:paramtypes",[Object])],ev)});var _C=v(_o=>{"use strict";var iq=_o&&_o.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},sq=_o&&_o.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(_o,"__esModule",{value:!0});_o.PropertySchemaResolver=void 0;var oq=Ve(),bC=dp(),aq=V_(),rv=class{static{a(this,"PropertySchemaResolver")}constructor(e,t){this.sparqlService=e,this.logger=t,this.cache=new Map,this.allSchemasLoaded=!1}async getSchema(e){let t=this.normalizeIRI(e),r=this.cache.get(t);if(r)return r;try{let i=await this.loadSchemaFromStore(t);return i&&this.cache.set(t,i),i}catch(i){return this.logger?.warn(`Failed to load schema for ${e}`,{error:String(i)}),null}}async getAllSchemas(){if(this.allSchemasLoaded)return new Map(this.cache);try{let e=await this.loadAllSchemasFromStore();for(let[t,r]of e)this.cache.set(t,r);return this.allSchemasLoaded=!0,new Map(this.cache)}catch(e){return this.logger?.warn("Failed to load all schemas",{error:String(e)}),new Map(this.cache)}}invalidateCache(){this.cache.clear(),this.allSchemasLoaded=!1}async loadSchemaFromStore(e){let t=this.toFullIRI(e),r=`
135
+ `).trim()||null}};dc.AlgorithmExtractor=J1;dc.AlgorithmExtractor=J1=YV([(0,QV.injectable)()],J1)});var tv=v(Ui=>{"use strict";var JV=Ui&&Ui.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},ZV=Ui&&Ui.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},eq=Ui&&Ui.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Ui,"__esModule",{value:!0});Ui.PlanningService=void 0;var y3=Ve(),tq=ws(),rq=Mn(),nq=Ut(),ev=class{static{a(this,"PlanningService")}constructor(e){this.vault=e,this.frontmatterService=new tq.FrontmatterService}async planOnToday(e){let t=this.vault.getAbstractFileByPath(e);if(!t||!this.isFile(t))throw new Error(`File not found: ${e}`);let r=await this.vault.read(t),i=rq.DateFormatter.getTodayStartTimestamp(),s=this.frontmatterService.updateProperty(r,"ems__Effort_plannedStartTimestamp",i);await this.vault.modify(t,s)}isFile(e){return typeof e=="object"&&e!==null&&"basename"in e}};Ui.PlanningService=ev;Ui.PlanningService=ev=JV([(0,y3.injectable)(),eq(0,(0,y3.inject)(nq.DI_TOKENS.IVaultAdapter)),ZV("design:paramtypes",[Object])],ev)});var _3=v(_o=>{"use strict";var iq=_o&&_o.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},sq=_o&&_o.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(_o,"__esModule",{value:!0});_o.PropertySchemaResolver=void 0;var oq=Ve(),b3=dp(),aq=V_(),rv=class{static{a(this,"PropertySchemaResolver")}constructor(e,t){this.sparqlService=e,this.logger=t,this.cache=new Map,this.allSchemasLoaded=!1}async getSchema(e){let t=this.normalizeIRI(e),r=this.cache.get(t);if(r)return r;try{let i=await this.loadSchemaFromStore(t);return i&&this.cache.set(t,i),i}catch(i){return this.logger?.warn(`Failed to load schema for ${e}`,{error:String(i)}),null}}async getAllSchemas(){if(this.allSchemasLoaded)return new Map(this.cache);try{let e=await this.loadAllSchemasFromStore();for(let[t,r]of e)this.cache.set(t,r);return this.allSchemasLoaded=!0,new Map(this.cache)}catch(e){return this.logger?.warn("Failed to load all schemas",{error:String(e)}),new Map(this.cache)}}invalidateCache(){this.cache.clear(),this.allSchemasLoaded=!1}async loadSchemaFromStore(e){let t=this.toFullIRI(e),r=`
136
136
  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
137
137
  PREFIX owl: <http://www.w3.org/2002/07/owl#>
138
138
  PREFIX exo: <https://exocortex.my/ontology/exo#>
@@ -178,7 +178,7 @@ ${s}`}return`${r}: ${i}`}).join(`
178
178
  OPTIONAL { ?optionValue rdfs:label ?optionLabel . }
179
179
  }
180
180
  }
181
- `),r=new Map;for(let s of t){let o=s.get("property");if(!o)continue;let c=this.fromFullIRI(String(o)),l=r.get(c);l?l.push(s):r.set(c,[s])}let i=new Map;for(let[s,o]of r){let c=this.buildSchemaFromBindings(s,o);c&&i.set(s,c)}return i}buildSchemaFromBindings(e,t){if(t.length===0)return null;let r=t[0],i=this.getBindingValue(r,"rangeType"),s=this.getBindingValue(r,"label")||(0,aq.extractPropertyLabel)(e),o=i?(0,bC.rangeToFieldType)(i):bC.PropertyFieldType.Text,c=this.getBindingValue(r,"readOnly"),l=this.extractOptions(t),u=this.extractValidation(r),f={type:o,label:s};return c==="true"&&(f.readOnly=!0),l.length>0&&(f.options=l),u&&(f.validation=u),f}extractOptions(e){let t=[],r=new Set;for(let i of e){let s=this.getBindingValue(i,"optionValue");if(s&&!r.has(s)){r.add(s);let o=this.getBindingValue(i,"optionLabel")||s;t.push({value:s,label:o})}}return t}extractValidation(e){let t=this.getBindingValue(e,"required"),r=this.getBindingValue(e,"minValue"),i=this.getBindingValue(e,"maxValue"),s=this.getBindingValue(e,"maxLength"),o=this.getBindingValue(e,"pattern");if(!(t||r||i||s||o))return;let l={};if(t==="true"&&(l.required=!0),r!==void 0){let u=Number(r);isNaN(u)||(l.minValue=u)}if(i!==void 0){let u=Number(i);isNaN(u)||(l.maxValue=u)}if(s!==void 0){let u=Number(s);isNaN(u)||(l.maxLength=u)}return o&&(l.pattern=o),l}getBindingValue(e,t){let r=e.get(t);if(r!=null)return String(r)}normalizeIRI(e){return e.startsWith("http://")||e.startsWith("https://")?this.fromFullIRI(e):e}toFullIRI(e){if(e.startsWith("http://")||e.startsWith("https://"))return e;let t=e.match(/^([a-z]+)__(.+)$/);if(t){let[,r,i]=t;switch(r){case"ems":return`https://exocortex.my/ontology/ems#${i}`;case"exo":return`https://exocortex.my/ontology/exo#${i}`;default:return`https://exocortex.my/ontology/${r}#${i}`}}return e}fromFullIRI(e){let t=e.match(/https:\/\/exocortex\.my\/ontology\/([a-z]+)#(.+)$/);if(t){let[,r,i]=t;return`${r}__${i}`}return e}};_o.PropertySchemaResolver=rv;_o.PropertySchemaResolver=rv=iq([(0,oq.injectable)(),sq("design:paramtypes",[Object,Object])],rv)});var wC=v(wo=>{"use strict";var cq=wo&&wo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},lq=wo&&wo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(wo,"__esModule",{value:!0});wo.ClassHierarchyResolver=void 0;var uq=Ve(),nv=class{static{a(this,"ClassHierarchyResolver")}constructor(e,t){this.sparqlService=e,this.logger=t,this.cache=new Map}async resolve(e){let t=this.cache.get(e);if(t)return[...t];try{let r=await this.loadHierarchy(e);return this.cache.set(e,r),[...r]}catch(r){return this.logger?.warn(`Failed to resolve class hierarchy for ${e}`,{error:String(r)}),this.fallback(e)}}invalidateCache(){this.cache.clear()}async loadHierarchy(e){let r=`
181
+ `),r=new Map;for(let s of t){let o=s.get("property");if(!o)continue;let c=this.fromFullIRI(String(o)),l=r.get(c);l?l.push(s):r.set(c,[s])}let i=new Map;for(let[s,o]of r){let c=this.buildSchemaFromBindings(s,o);c&&i.set(s,c)}return i}buildSchemaFromBindings(e,t){if(t.length===0)return null;let r=t[0],i=this.getBindingValue(r,"rangeType"),s=this.getBindingValue(r,"label")||(0,aq.extractPropertyLabel)(e),o=i?(0,b3.rangeToFieldType)(i):b3.PropertyFieldType.Text,c=this.getBindingValue(r,"readOnly"),l=this.extractOptions(t),u=this.extractValidation(r),f={type:o,label:s};return c==="true"&&(f.readOnly=!0),l.length>0&&(f.options=l),u&&(f.validation=u),f}extractOptions(e){let t=[],r=new Set;for(let i of e){let s=this.getBindingValue(i,"optionValue");if(s&&!r.has(s)){r.add(s);let o=this.getBindingValue(i,"optionLabel")||s;t.push({value:s,label:o})}}return t}extractValidation(e){let t=this.getBindingValue(e,"required"),r=this.getBindingValue(e,"minValue"),i=this.getBindingValue(e,"maxValue"),s=this.getBindingValue(e,"maxLength"),o=this.getBindingValue(e,"pattern");if(!(t||r||i||s||o))return;let l={};if(t==="true"&&(l.required=!0),r!==void 0){let u=Number(r);isNaN(u)||(l.minValue=u)}if(i!==void 0){let u=Number(i);isNaN(u)||(l.maxValue=u)}if(s!==void 0){let u=Number(s);isNaN(u)||(l.maxLength=u)}return o&&(l.pattern=o),l}getBindingValue(e,t){let r=e.get(t);if(r!=null)return String(r)}normalizeIRI(e){return e.startsWith("http://")||e.startsWith("https://")?this.fromFullIRI(e):e}toFullIRI(e){if(e.startsWith("http://")||e.startsWith("https://"))return e;let t=e.match(/^([a-z]+)__(.+)$/);if(t){let[,r,i]=t;switch(r){case"ems":return`https://exocortex.my/ontology/ems#${i}`;case"exo":return`https://exocortex.my/ontology/exo#${i}`;default:return`https://exocortex.my/ontology/${r}#${i}`}}return e}fromFullIRI(e){let t=e.match(/https:\/\/exocortex\.my\/ontology\/([a-z]+)#(.+)$/);if(t){let[,r,i]=t;return`${r}__${i}`}return e}};_o.PropertySchemaResolver=rv;_o.PropertySchemaResolver=rv=iq([(0,oq.injectable)(),sq("design:paramtypes",[Object,Object])],rv)});var w3=v(wo=>{"use strict";var cq=wo&&wo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},lq=wo&&wo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(wo,"__esModule",{value:!0});wo.ClassHierarchyResolver=void 0;var uq=Ve(),nv=class{static{a(this,"ClassHierarchyResolver")}constructor(e,t){this.sparqlService=e,this.logger=t,this.cache=new Map}async resolve(e){let t=this.cache.get(e);if(t)return[...t];try{let r=await this.loadHierarchy(e);return this.cache.set(e,r),[...r]}catch(r){return this.logger?.warn(`Failed to resolve class hierarchy for ${e}`,{error:String(r)}),this.fallback(e)}}invalidateCache(){this.cache.clear()}async loadHierarchy(e){let r=`
182
182
  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
183
183
  PREFIX exo: <https://exocortex.my/ontology/exo#>
184
184
 
@@ -186,7 +186,7 @@ ${s}`}return`${r}: ${i}`}).join(`
186
186
  <${this.toFullIRI(e)}> rdfs:subClassOf+ ?ancestorFull .
187
187
  BIND(STR(?ancestorFull) AS ?ancestor)
188
188
  }
189
- `,i=await this.sparqlService.query(r);if(i.length===0)return this.fallback(e);let s=[e];for(let o of i){let c=o.get("ancestor");if(c){let l=this.fromFullIRI(String(c));s.includes(l)||s.push(l)}}return!s.includes("exo__Asset")&&s.length>1&&s.push("exo__Asset"),s}fallback(e){return[e,"exo__Asset"]}toFullIRI(e){if(e.startsWith("http://")||e.startsWith("https://"))return e;let t=e.match(/^([a-z]+)__(.+)$/);if(t){let[,r,i]=t;switch(r){case"ems":return`https://exocortex.my/ontology/ems#${i}`;case"exo":return`https://exocortex.my/ontology/exo#${i}`;default:return`https://exocortex.my/ontology/${r}#${i}`}}return e}fromFullIRI(e){let t=e.match(/https:\/\/exocortex\.my\/ontology\/([a-z]+)#(.+)$/);if(t){let[,r,i]=t;return`${r}__${i}`}return e}};wo.ClassHierarchyResolver=nv;wo.ClassHierarchyResolver=nv=cq([(0,uq.injectable)(),lq("design:paramtypes",[Object,Object])],nv)});var SC=v(So=>{"use strict";var fq=So&&So.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},dq=So&&So.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(So,"__esModule",{value:!0});So.EnumValueResolver=void 0;var hq=Ve(),iv=class{static{a(this,"EnumValueResolver")}constructor(e,t){this.sparqlService=e,this.logger=t,this.cache=new Map}async resolve(e){let t=this.normalizeClassName(e),r=this.cache.get(t);if(r)return r;try{let i=await this.queryEnumValues(t);return i.length>0&&this.cache.set(t,i),i}catch(i){return this.logger?.warn(`Failed to resolve enum values for ${e}`,{error:String(i)}),[]}}invalidateCache(e){if(e){let t=this.normalizeClassName(e);this.cache.delete(t)}else this.cache.clear()}async queryEnumValues(e){let t=this.toFullIRI(e),r=this.buildRankProperty(e),i=r?this.toFullIRI(r):null,s=i?`
189
+ `,i=await this.sparqlService.query(r);if(i.length===0)return this.fallback(e);let s=[e];for(let o of i){let c=o.get("ancestor");if(c){let l=this.fromFullIRI(String(c));s.includes(l)||s.push(l)}}return!s.includes("exo__Asset")&&s.length>1&&s.push("exo__Asset"),s}fallback(e){return[e,"exo__Asset"]}toFullIRI(e){if(e.startsWith("http://")||e.startsWith("https://"))return e;let t=e.match(/^([a-z]+)__(.+)$/);if(t){let[,r,i]=t;switch(r){case"ems":return`https://exocortex.my/ontology/ems#${i}`;case"exo":return`https://exocortex.my/ontology/exo#${i}`;default:return`https://exocortex.my/ontology/${r}#${i}`}}return e}fromFullIRI(e){let t=e.match(/https:\/\/exocortex\.my\/ontology\/([a-z]+)#(.+)$/);if(t){let[,r,i]=t;return`${r}__${i}`}return e}};wo.ClassHierarchyResolver=nv;wo.ClassHierarchyResolver=nv=cq([(0,uq.injectable)(),lq("design:paramtypes",[Object,Object])],nv)});var S3=v(So=>{"use strict";var fq=So&&So.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},dq=So&&So.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(So,"__esModule",{value:!0});So.EnumValueResolver=void 0;var hq=Ve(),iv=class{static{a(this,"EnumValueResolver")}constructor(e,t){this.sparqlService=e,this.logger=t,this.cache=new Map}async resolve(e){let t=this.normalizeClassName(e),r=this.cache.get(t);if(r)return r;try{let i=await this.queryEnumValues(t);return i.length>0&&this.cache.set(t,i),i}catch(i){return this.logger?.warn(`Failed to resolve enum values for ${e}`,{error:String(i)}),[]}}invalidateCache(e){if(e){let t=this.normalizeClassName(e);this.cache.delete(t)}else this.cache.clear()}async queryEnumValues(e){let t=this.toFullIRI(e),r=this.buildRankProperty(e),i=r?this.toFullIRI(r):null,s=i?`
190
190
  PREFIX exo: <https://exocortex.my/ontology/exo#>
191
191
  PREFIX ems: <https://exocortex.my/ontology/ems#>
192
192
 
@@ -205,22 +205,22 @@ ${s}`}return`${r}: ${i}`}).join(`
205
205
  ?instance exo:Asset_label ?label .
206
206
  }
207
207
  ORDER BY ?instance
208
- `,o=await this.sparqlService.query(s);return this.buildEnumValues(o)}buildEnumValues(e){let t=[],r=new Set;for(let i of e){let s=this.getBindingValue(i,"instance");if(!s||r.has(s))continue;r.add(s);let o=this.getBindingValue(i,"label")??s,l=`[[${this.fromFullIRI(s)}]]`;t.push({value:l,label:o})}return t}buildRankProperty(e){let t=e.match(/^([a-z]+)__(.+)$/);if(!t)return null;let[,r,i]=t;return`${r}__${i}_rank`}normalizeClassName(e){return e.replace(/\[\[|\]\]/g,"").trim()}getBindingValue(e,t){let r=e.get(t);if(r!=null)return String(r)}toFullIRI(e){if(e.startsWith("http://")||e.startsWith("https://"))return e;let t=e.match(/^([a-z]+)__(.+)$/);if(t){let[,r,i]=t;return`https://exocortex.my/ontology/${r}#${i}`}return e}fromFullIRI(e){let t=e.match(/https:\/\/exocortex\.my\/ontology\/([a-z]+)#(.+)$/);if(t){let[,r,i]=t;return`${r}__${i}`}return e}};So.EnumValueResolver=iv;So.EnumValueResolver=iv=fq([(0,hq.injectable)(),dq("design:paramtypes",[Object,Object])],iv)});var ov=v(Bi=>{"use strict";var pq=Bi&&Bi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},mq=Bi&&Bi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},gq=Bi&&Bi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Bi,"__esModule",{value:!0});Bi.AssetConversionService=void 0;var vC=Ve(),EC=zo(),yq=ws(),dg=oc(),bq=Ut(),sv=class{static{a(this,"AssetConversionService")}constructor(e){this.vault=e,this.frontmatterService=new yq.FrontmatterService}async convertTaskToProject(e){try{let t=await this.vault.read(e),r=this.removeInstanceClassProperty(t);return r=this.frontmatterService.updateProperty(r,"exo__Instance_class",`["[[${EC.AssetClass.PROJECT}]]"]`),await this.vault.modify(e,r),dg.LoggingService.info(`Converted Task to Project: ${e.basename} (${e.path})`),e}catch(t){let r=`Failed to convert Task to Project: ${e.path}`;throw dg.LoggingService.error(r,t instanceof Error?t:void 0),new Error(r)}}async convertProjectToTask(e){try{let t=await this.vault.read(e),r=this.removeInstanceClassProperty(t);return r=this.frontmatterService.updateProperty(r,"exo__Instance_class",`["[[${EC.AssetClass.TASK}]]"]`),await this.vault.modify(e,r),dg.LoggingService.info(`Converted Project to Task: ${e.basename} (${e.path})`),e}catch(t){let r=`Failed to convert Project to Task: ${e.path}`;throw dg.LoggingService.error(r,t instanceof Error?t:void 0),new Error(r)}}removeInstanceClassProperty(e){let t=this.frontmatterService.parse(e);if(!t.exists)return e;let r=/^exo__Instance_class:.*$(\n -.*$)*/gm,i=t.content.replace(r,"").replace(/\n\n+/g,`
208
+ `,o=await this.sparqlService.query(s);return this.buildEnumValues(o)}buildEnumValues(e){let t=[],r=new Set;for(let i of e){let s=this.getBindingValue(i,"instance");if(!s||r.has(s))continue;r.add(s);let o=this.getBindingValue(i,"label")??s,l=`[[${this.fromFullIRI(s)}]]`;t.push({value:l,label:o})}return t}buildRankProperty(e){let t=e.match(/^([a-z]+)__(.+)$/);if(!t)return null;let[,r,i]=t;return`${r}__${i}_rank`}normalizeClassName(e){return e.replace(/\[\[|\]\]/g,"").trim()}getBindingValue(e,t){let r=e.get(t);if(r!=null)return String(r)}toFullIRI(e){if(e.startsWith("http://")||e.startsWith("https://"))return e;let t=e.match(/^([a-z]+)__(.+)$/);if(t){let[,r,i]=t;return`https://exocortex.my/ontology/${r}#${i}`}return e}fromFullIRI(e){let t=e.match(/https:\/\/exocortex\.my\/ontology\/([a-z]+)#(.+)$/);if(t){let[,r,i]=t;return`${r}__${i}`}return e}};So.EnumValueResolver=iv;So.EnumValueResolver=iv=fq([(0,hq.injectable)(),dq("design:paramtypes",[Object,Object])],iv)});var ov=v(Bi=>{"use strict";var pq=Bi&&Bi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},mq=Bi&&Bi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},gq=Bi&&Bi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Bi,"__esModule",{value:!0});Bi.AssetConversionService=void 0;var v3=Ve(),E3=zo(),yq=ws(),dg=oc(),bq=Ut(),sv=class{static{a(this,"AssetConversionService")}constructor(e){this.vault=e,this.frontmatterService=new yq.FrontmatterService}async convertTaskToProject(e){try{let t=await this.vault.read(e),r=this.removeInstanceClassProperty(t);return r=this.frontmatterService.updateProperty(r,"exo__Instance_class",`["[[${E3.AssetClass.PROJECT}]]"]`),await this.vault.modify(e,r),dg.LoggingService.info(`Converted Task to Project: ${e.basename} (${e.path})`),e}catch(t){let r=`Failed to convert Task to Project: ${e.path}`;throw dg.LoggingService.error(r,t instanceof Error?t:void 0),new Error(r)}}async convertProjectToTask(e){try{let t=await this.vault.read(e),r=this.removeInstanceClassProperty(t);return r=this.frontmatterService.updateProperty(r,"exo__Instance_class",`["[[${E3.AssetClass.TASK}]]"]`),await this.vault.modify(e,r),dg.LoggingService.info(`Converted Project to Task: ${e.basename} (${e.path})`),e}catch(t){let r=`Failed to convert Project to Task: ${e.path}`;throw dg.LoggingService.error(r,t instanceof Error?t:void 0),new Error(r)}}removeInstanceClassProperty(e){let t=this.frontmatterService.parse(e);if(!t.exists)return e;let r=/^exo__Instance_class:.*$(\n -.*$)*/gm,i=t.content.replace(r,"").replace(/\n\n+/g,`
209
209
  `).trim();return e.replace(/^---\n[\s\S]*?\n---/,`---
210
210
  ${i}
211
- ---`)}};Bi.AssetConversionService=sv;Bi.AssetConversionService=sv=pq([(0,vC.injectable)(),gq(0,(0,vC.inject)(bq.DI_TOKENS.IVaultAdapter)),mq("design:paramtypes",[Object])],sv)});var lv=v(Vi=>{"use strict";var _q=Vi&&Vi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},wq=Vi&&Vi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},TC=Vi&&Vi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Vi,"__esModule",{value:!0});Vi.SessionEventService=void 0;var av=Ve(),Sq=Ti(),AC=zo(),vq=Mn(),Eq=fo(),xC=Ut(),cv=class{static{a(this,"SessionEventService")}constructor(e,t){this.vault=e,this.vaultSettings=t,this.folderPathCache=null}async createSessionStartEvent(e){return this.createSessionEvent(e,AC.AssetClass.SESSION_START_EVENT)}async createSessionEndEvent(e){return this.createSessionEvent(e,AC.AssetClass.SESSION_END_EVENT)}getSessionEventFolder(){if(this.folderPathCache!==null)return this.folderPathCache;let e=this.vault.getDefaultNewFileParent();return this.folderPathCache=e?.path||"",this.folderPathCache}async createSessionEvent(e,t){let r=(0,Sq.v4)(),i=vq.DateFormatter.toLocalTimestamp(new Date),s={exo__Asset_uid:r,exo__Asset_createdAt:i,exo__Asset_isDefinedBy:this.vaultSettings.getOwnerIdentity(),exo__Instance_class:[`"[[${t}]]"`],ems__SessionEvent_timestamp:i,ems__Session_area:`"[[${e}]]"`},o=Eq.MetadataHelpers.buildFileContent(s),c=this.getSessionEventFolder();c&&!await this.vault.exists(c)&&await this.vault.createFolder(c);let l=c?`${c}/${r}.md`:`${r}.md`;return await this.vault.create(l,o)}};Vi.SessionEventService=cv;Vi.SessionEventService=cv=_q([(0,av.injectable)(),TC(0,(0,av.inject)(xC.DI_TOKENS.IVaultAdapter)),TC(1,(0,av.inject)(xC.DI_TOKENS.IVaultSettings)),wq("design:paramtypes",[Object,Object])],cv)});var dv=v(qi=>{"use strict";var Tq=qi&&qi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},Aq=qi&&qi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},IC=qi&&qi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(qi,"__esModule",{value:!0});qi.URIConstructionService=void 0;var uv=Ve(),RC=Ut(),xq=el(),fv=class{static{a(this,"URIConstructionService")}constructor(e,t=xq.NullLogger){this.fileSystem=e,this.logger=t,this.defaultOntologyURL="https://exocortex.my/default/",this.strictValidation=!0}configure(e){e?.defaultOntologyURL&&(this.defaultOntologyURL=e.defaultOntologyURL),e?.strictValidation!==void 0&&(this.strictValidation=e.strictValidation)}async constructAssetURI(e){let t=this.extractUID(e);if(!t){if(this.strictValidation)throw new Error(`Asset missing exo__Asset_uid: ${e.path}`);return this.logger.warn(`Asset ${e.path} missing UID, using filename fallback`),this.constructFallbackURI(e)}let r=await this.resolveOntologyURL(e);if(!this.validateOntologyURL(r))throw new Error(`Invalid ontology URL: ${r}`);return`${r.endsWith("/")?r:`${r}/`}${t}`}validateOntologyURL(e){if(!e)return!1;try{let t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}async resolveOntologyURL(e){let t=e.frontmatter?.exo__Asset_isDefinedBy;if(!t||typeof t!="string")return this.defaultOntologyURL;let r=this.extractWikiLink(t),i=r,s=await this.fileSystem.fileExists(r);return!s&&!r.endsWith(".md")&&(i=`${r}.md`,s=await this.fileSystem.fileExists(i)),s?(await this.fileSystem.getFileMetadata(i))?.exo__Ontology_url||this.defaultOntologyURL:(this.logger.warn(`Ontology file not found: ${r}, using default`),this.defaultOntologyURL)}extractUID(e){let t=e.frontmatter?.exo__Asset_uid;return typeof t=="string"?t:null}extractWikiLink(e){return e.replace(/^\[\[|\]\]$/g,"")}constructFallbackURI(e){let t=e.path.split("/").pop()?.replace(".md","")||"unknown";return`${this.defaultOntologyURL}${t}`}};qi.URIConstructionService=fv;qi.URIConstructionService=fv=Tq([(0,uv.injectable)(),IC(0,(0,uv.inject)(RC.DI_TOKENS.IFileSystemAdapter)),IC(1,(0,uv.inject)(RC.DI_TOKENS.ILogger)),Aq("design:paramtypes",[Object,Object])],fv)});var pv=v(Gi=>{"use strict";var Iq=Gi&&Gi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},Rq=Gi&&Gi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},Cq=Gi&&Gi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Gi,"__esModule",{value:!0});Gi.GenericAssetCreationService=void 0;var CC=Ve(),Jf=Mn(),Oq=fo(),Pq=Zs(),Fq=Ht(),Dq=Ut(),vs=dp(),Lq=Uf(),Nq=$m(),hv=class{static{a(this,"GenericAssetCreationService")}constructor(e){this.vault=e,this.clock=(0,Lq.liveClock)(),this.uidGen=(0,Nq.liveUidGenerator)()}withDeterminism(e){return e.clock&&(this.clock=e.clock),e.uidGenerator&&(this.uidGen=e.uidGenerator),this}async createAsset(e,t){let{folderPath:r,path:i,content:s}=this.buildAsset(e,t);return this.vault.getAbstractFileByPath(r)||await this.vault.createFolder(r),await this.vault.create(i,s)}buildAsset(e,t){let r=this.uidGen.next(),i=this.generateFrontmatter(e,t||[],r),s=Oq.MetadataHelpers.buildFileContent(i,e.body),o=e.folderPath||this.getDefaultFolderPath(e),c=`${r}.md`,l=o?`${o}/${c}`:c;return{uid:r,folderPath:o,path:l,frontmatter:i,content:s}}generateFrontmatter(e,t=[],r=this.uidGen.next()){let i={},s=new Map;for(let c of t)s.set(c.name,c.fieldType);i.exo__Asset_uid=r,i.exo__Asset_createdAt=e.timezone?this.generateTimestampInTimezone(e.timezone):Jf.DateFormatter.toLocalTimestamp(this.clock.now());let o=e.classRefForm==="uuid"&&e.classUid?e.classUid:e.className;if(i.exo__Instance_class=[this.formatWikilink(o)],e.createdBy&&e.createdBy.trim()!==""&&(i.exo__Asset_createdBy=this.formatWikilink(e.createdBy.trim())),e.label&&e.label.trim()!==""){let c=e.label.trim();i.exo__Asset_label=c;let l=[c];if(e.aliases)for(let u of e.aliases)l.includes(u)||l.push(u);i.aliases=l}if(e.parentFile&&e.parentMetadata&&this.inheritParentContext(i,e),e.propertyValues){for(let[c,l]of Object.entries(e.propertyValues))if(!(c==="exo__Asset_uid"||c==="exo__Asset_createdAt"||c==="exo__Asset_createdBy"||c==="exo__Instance_class"||c==="exo__Asset_label"||c==="aliases")&&l!=null)if(e.shapeRegistry!==void 0)i[c]=this.formatPropertyValueWithCardinality(c,String(l),e.shapeRegistry);else{let u=s.get(c);i[c]=this.formatValue(l,u)}}return i}inheritParentContext(e,t){let r=t.parentMetadata||{},i=t.parentFile?.basename;if(t.className==="ems__Task"||t.className.startsWith("ems__Task")){let s=r.exo__Instance_class,c=this.isAreaClass(s,t.classResolver)?"ems__Effort_area":"ems__Effort_parent";e[c]=i?this.formatWikilink(i):null}if(t.className==="ems__Project"||t.className.startsWith("ems__Project")){let s=r.exo__Instance_class,c=this.isAreaClass(s,t.classResolver)?"ems__Effort_area":"ems__Effort_parent";e[c]=i?this.formatWikilink(i):null}if(r.exo__Asset_isDefinedBy){let s=r.exo__Asset_isDefinedBy;e.exo__Asset_isDefinedBy=typeof s=="string"?this.formatWikilink(s):s}}isAreaClass(e,t){if(!e)return!1;let r=Array.isArray(e)?e:[e],i=a(()=>null,"noopResolver");return r.some(s=>{let o=Pq.WikiLinkHelpers.resolveSymbolic(String(s),t??i);return o.includes("Area")||o.includes("ems__Area")})}getDefaultFolderPath(e){if(e.parentFile?.parent?.path)return e.parentFile.parent.path;let t={ems__Task:"tasks",ems__Project:"projects",ems__Area:"areas",ems__Meeting:"meetings",exo__Event:"events",ims__Concept:"concepts"};if(t[e.className])return t[e.className];for(let[r,i]of Object.entries(t))if(e.className.startsWith(r))return i;return"assets"}formatValue(e,t){if(e==null)return null;if(!t)return this.formatInferredValue(e);switch(t){case vs.PropertyFieldType.Text:return String(e);case vs.PropertyFieldType.Wikilink:case vs.PropertyFieldType.Reference:case vs.PropertyFieldType.StatusSelect:case vs.PropertyFieldType.SizeSelect:return this.formatWikilink(String(e));case vs.PropertyFieldType.Number:return typeof e=="number"?e:Number(e)||0;case vs.PropertyFieldType.Boolean:return this.formatBoolean(e);case vs.PropertyFieldType.Date:case vs.PropertyFieldType.DateTime:case vs.PropertyFieldType.Timestamp:return this.formatTimestamp(e);default:return String(e)}}formatInferredValue(e){return typeof e=="boolean"||typeof e=="number"?e:e instanceof Date?Jf.DateFormatter.toLocalTimestamp(e):typeof e=="string"?e.startsWith("[[")||e.startsWith('"[[')?this.formatWikilink(e):e:String(e)}formatWikilink(e){return e.startsWith('"[[')&&e.endsWith(']]"')?e:e.startsWith("[[")&&e.endsWith("]]")?`"${e}"`:`"[[${e}]]"`}formatBoolean(e){if(typeof e=="boolean")return e;if(typeof e=="string"){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"}return typeof e=="number"?e!==0:!!e}formatTimestamp(e){if(e instanceof Date)return Jf.DateFormatter.toLocalTimestamp(e);if(typeof e=="string"){if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(e))return e;if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/.test(e))return e.replace("Z","");let t=new Date(e);return isNaN(t.getTime())?e:Jf.DateFormatter.toLocalTimestamp(t)}if(typeof e=="number"){let t=new Date(e);if(!isNaN(t.getTime()))return Jf.DateFormatter.toLocalTimestamp(t)}return String(e)}formatPropertyValueWithCardinality(e,t,r){if(!t.includes("[["))return t;let i=t.startsWith('"')&&t.endsWith('"')?t:`"${t}"`;return this.shouldEmitAsArray(e,r)?[i]:i}shouldEmitAsArray(e,t){if(!t)return!1;let r=Fq.Namespace.fromPropertyKey(e);if(!r)return!1;let i=r.namespace.term(r.localName).value;return t.get(i)?.cardinality==="Multiple"}generateTimestampInTimezone(e){let t=this.clock.now(),i=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(t),s=a(o=>i.find(c=>c.type===o)?.value||"00","get");return`${s("year")}-${s("month")}-${s("day")}T${s("hour")}:${s("minute")}:${s("second")}`}};Gi.GenericAssetCreationService=hv;Gi.GenericAssetCreationService=hv=Iq([(0,CC.injectable)(),Cq(0,(0,CC.inject)(Dq.DI_TOKENS.IVaultAdapter)),Rq("design:paramtypes",[Object])],hv)});var PC=v(Wi=>{"use strict";var kq=Wi&&Wi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},Mq=Wi&&Wi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},jq=Wi&&Wi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Wi,"__esModule",{value:!0});Wi.ArchiveAssetService=void 0;var OC=Ve(),$q=Ut(),Uq=ws(),mv=class{static{a(this,"ArchiveAssetService")}constructor(e){this.vault=e,this.frontmatterService=new Uq.FrontmatterService}async archiveAsset(e){let t=await this.vault.read(e),r=this.frontmatterService.updateProperty(t,"archived","true");r=this.frontmatterService.removeProperty(r,"aliases"),r!==t&&await this.vault.modify(e,r)}};Wi.ArchiveAssetService=mv;Wi.ArchiveAssetService=mv=kq([(0,OC.injectable)(),jq(0,(0,OC.inject)($q.DI_TOKENS.IVaultAdapter)),Mq("design:paramtypes",[Object])],mv)});var DC=v(Hi=>{"use strict";var Bq=Hi&&Hi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},Vq=Hi&&Hi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},qq=Hi&&Hi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Hi,"__esModule",{value:!0});Hi.FixMissingLabelService=void 0;var FC=Ve(),Gq=Ut(),Wq=ws(),gv=class{static{a(this,"FixMissingLabelService")}constructor(e){this.vault=e,this.frontmatterService=new Wq.FrontmatterService}async fixMissingLabel(e){let t=await this.vault.read(e);if(this.hasNonEmptyLabel(t))return;let r=this.frontmatterService.updateProperty(t,"exo__Asset_label",e.basename);r!==t&&await this.vault.modify(e,r)}hasNonEmptyLabel(e){let t=this.frontmatterService.parse(e);if(!t.exists)return!1;let r=t.content.match(/^exo__Asset_label:\s*(.*)$/m);if(!r)return!1;let i=r[1].trim();return!(i===""||i==='""'||i==="''")}};Hi.FixMissingLabelService=gv;Hi.FixMissingLabelService=gv=Bq([(0,FC.injectable)(),qq(0,(0,FC.inject)(Gq.DI_TOKENS.IVaultAdapter)),Vq("design:paramtypes",[Object])],gv)});var LC=v(vo=>{"use strict";var Hq=vo&&vo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},zq=vo&&vo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(vo,"__esModule",{value:!0});vo.GraphQueryService=void 0;var Kq=Ve(),Zf=Ce(),Xq=Ge(),ca=Ht(),Yq=r_(),Es={INSTANCE_CLASS:ca.Namespace.EXO.term("Instance_class"),ASSET_LABEL:ca.Namespace.EXO.term("Asset_label"),ASSET_PROTOTYPE:ca.Namespace.EXO.term("Asset_prototype"),ASSET_IS_ARCHIVED:ca.Namespace.EXO.term("Asset_isArchived"),EFFORT_PARENT:ca.Namespace.EMS.term("Effort_parent"),REFERENCES:ca.Namespace.EXO.term("references"),REFERENCED_BY:ca.Namespace.EXO.term("referencedBy"),RDF_TYPE:ca.Namespace.RDF.term("type")},yv=class{static{a(this,"GraphQueryService")}constructor(e,t={},r){this.subscribers=new Set,this.nodeCache=new Map,this.lastCacheUpdate=0,this.tripleStore=e,this.logger=r,this.config={defaultLimit:t.defaultLimit??100,maxLimit:t.maxLimit??1e4,defaultDepth:t.defaultDepth??2,maxDepth:t.maxDepth??10,includeArchivedByDefault:t.includeArchivedByDefault??!1,cacheTTL:t.cacheTTL??3e4}}async loadGraphData(e={}){let t=Date.now(),r=await this.loadNodes(e),i=await this.loadEdges(r,e),s=this.computeStats(r,i),o=Date.now()-t;return o>100&&r.length>0&&this.logger?.debug(`GraphQueryService: loaded ${r.length} nodes in ${o}ms (${(o/r.length).toFixed(2)}ms/node)`),{nodes:r,edges:i,stats:s,lastUpdated:Date.now(),version:1}}async loadNodesIncremental(e={}){let t=Math.min(e.limit??this.config.defaultLimit,this.config.maxLimit),r=e.offset??0,i=await this.loadNodes({...e,limit:t+1,offset:r}),s=i.length>t,o=s?i.slice(0,t):i,c=await this.loadEdges(o,e);return{nodes:o,edges:c,hasMore:s,totalCount:void 0,cursor:s?String(r+t):void 0}}async loadConnectedNodes(e,t={}){let r=Math.min(t.depth??this.config.defaultDepth,this.config.maxDepth),i=Math.min(t.limit??this.config.maxLimit,this.config.maxLimit),s=new Set,o=[{id:e,currentDepth:0}],c=[];for(;o.length>0&&c.length<i;){let u=o.shift();if(!u)break;let{id:f,currentDepth:d}=u;if(s.has(f))continue;s.add(f);let h=await this.getNodeById(f,t);if(h&&(c.push(h),d<r)){let p=await this.getConnectedNodeIds(f);for(let y of p)s.has(y)||o.push({id:y,currentDepth:d+1})}}let l=await this.loadEdges(c,t);return{nodes:c,edges:l,hasMore:o.length>0,totalCount:s.size+o.length}}async getNodeById(e,t={}){let r=this.getCachedNode(e);if(r)return{...r};let i=this.idToIRI(e),s=await this.tripleStore.match(i,void 0,void 0);if(s.length===0)return null;let o=this.triplesToNode(e,s,t);return o&&this.cacheNode(o),o}subscribe(e){return this.subscribers.add(e),{unsubscribe:a(()=>{this.subscribers.delete(e)},"unsubscribe")}}notifyChange(e){for(let t of this.subscribers)try{t(e)}catch(r){this.logger?.error("GraphQueryService: error in subscriber callback",r instanceof Error?r:new Error(String(r)))}this.invalidateCache()}async getStats(){let e=await this.loadNodes({includeArchived:!0}),t=await this.loadEdges(e,{});return this.computeStats(e,t)}clearCache(){this.nodeCache.clear(),this.lastCacheUpdate=0}async loadNodes(e){let t=e.includeArchived??this.config.includeArchivedByDefault,r=e.limit??this.config.maxLimit,i=e.offset??0,s=await this.tripleStore.match(void 0,Es.INSTANCE_CLASS,void 0),o=s;if(e.classes&&e.classes.length>0){let p=new Set(e.classes);o=s.filter(y=>{let g=this.getObjectValue(y.object);return g&&p.has(g)})}let c=new Set;for(let p of o)c.add(this.subjectToId(p.subject));let f=Array.from(c).slice(i,i+r).map(p=>this.getNodeById(p,e));return(await Promise.all(f)).filter(p=>!(!p||!t&&p.isArchived))}async loadEdges(e,t){let r=new Set(e.map(o=>o.id)),i=[],s=new Set;for(let o of e){let c=this.idToIRI(o.id),l=await this.tripleStore.match(c,void 0,void 0);for(let u of l){let f=this.tripleToEdge(o.id,u,r);f&&f.id&&!s.has(f.id)&&(!t.edgeTypes||t.edgeTypes.includes(f.type))&&(s.add(f.id),i.push(f))}}return i}async getConnectedNodeIds(e){let t=this.idToIRI(e),r=[],i=await this.tripleStore.match(t,void 0,void 0);for(let o of i){let c=this.objectToId(o.object);c&&r.push(c)}let s=await this.tripleStore.match(void 0,void 0,t);for(let o of s)r.push(this.subjectToId(o.subject));return[...new Set(r)]}triplesToNode(e,t,r){let i={},s,o,c,l,u=!1;for(let h of t){let p=h.predicate.value,y=this.getObjectValue(h.object);if(p===Es.INSTANCE_CLASS.value)s=y;else if(p===Es.ASSET_LABEL.value)o=y;else if(p===Es.ASSET_PROTOTYPE.value)c=this.objectToId(h.object)??y;else if(p===Es.EFFORT_PARENT.value)l=this.objectToId(h.object)??y;else if(p===Es.ASSET_IS_ARCHIVED.value)u=y==="true"||y==="1";else{let g=this.predicateToPropertyName(p);g&&(i[g]=y)}}if(u&&!(r.includeArchived??this.config.includeArchivedByDefault))return null;let f=this.idToPath(e),d=o??this.pathToTitle(f);return{id:e,path:f,title:d,label:d,assetClass:s,isArchived:u,uri:e.startsWith("http")?e:void 0,prototype:c,parent:l,properties:Object.keys(i).length>0?i:void 0}}tripleToEdge(e,t,r){let i=t.predicate.value,s=this.objectToId(t.object);if(!s||!r.has(s)||s===e)return null;let o=this.predicateToEdgeType(i);if(!o)return null;let c=(0,Yq.createEdgeId)(e,s,o,i),l=this.predicateToLabel(i);return{id:c,source:e,target:s,type:o,predicate:i,label:l}}predicateToEdgeType(e){return e===Es.EFFORT_PARENT.value?"hierarchy":e===Es.ASSET_PROTOTYPE.value?"prototype":e===Es.REFERENCES.value?"forward-link":e===Es.REFERENCED_BY.value?"backlink":e.includes("Asset_")||e.includes("Instance_")?null:"semantic"}predicateToLabel(e){let t=e.lastIndexOf("#"),r=e.lastIndexOf("/"),i=Math.max(t,r);return i>=0?e.substring(i+1):e}predicateToPropertyName(e){return this.predicateToLabel(e).replace(/_/g,"__").replace(/#/g,"_")}computeStats(e,t){let r={},i={backlink:0,"forward-link":0,hierarchy:0,prototype:0,semantic:0,reference:0};for(let c of e){let l=c.assetClass??"unknown";r[l]=(r[l]??0)+1}for(let c of t)i[c.type]=(i[c.type]??0)+1;let s=new Map,o=new Map;for(let c of t)o.set(c.source,(o.get(c.source)??0)+1),s.set(c.target,(s.get(c.target)??0)+1);for(let c of e)c.inDegree=s.get(c.id)??0,c.outDegree=o.get(c.id)??0,c.weight=c.inDegree+c.outDegree;return{nodeCount:e.length,edgeCount:t.length,nodesByClass:r,edgesByType:i,computedAt:Date.now()}}idToIRI(e){return e.startsWith("http://")||e.startsWith("https://")?new Zf.IRI(e):new Zf.IRI(`obsidian://vault/${encodeURIComponent(e)}`)}subjectToId(e){if(e instanceof Zf.IRI){let t=e.value;return t.startsWith("obsidian://vault/")?decodeURIComponent(t.replace("obsidian://vault/","")):t}return e.toString()}objectToId(e){if(e instanceof Zf.IRI){let t=e.value;return t.startsWith("obsidian://vault/")?decodeURIComponent(t.replace("obsidian://vault/","")):t}return null}getObjectValue(e){if(e instanceof Xq.Literal||e instanceof Zf.IRI)return e.value}idToPath(e){if(e.startsWith("obsidian://vault/"))return decodeURIComponent(e.replace("obsidian://vault/",""));if(e.startsWith("http://")||e.startsWith("https://")){let t=e.match(/\/([^/]+\.md)$/);if(t)return t[1]}return e}pathToTitle(e){return(e.split("/").pop()??e).replace(/\.md$/,"")}getCachedNode(e){return Date.now()-this.lastCacheUpdate>this.config.cacheTTL?(this.clearCache(),null):this.nodeCache.get(e)??null}cacheNode(e){this.nodeCache.set(e.id,e),this.lastCacheUpdate===0&&(this.lastCacheUpdate=Date.now())}invalidateCache(){this.clearCache()}};vo.GraphQueryService=yv;vo.GraphQueryService=yv=Hq([(0,Kq.injectable)(),zq("design:paramtypes",[Object,Object,Object])],yv)});var kC=v(Eo=>{"use strict";var Qq=Eo&&Eo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},Jq=Eo&&Eo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(Eo,"__esModule",{value:!0});Eo.TypeRegistry=void 0;var Zq=Ve(),Ts=Ce(),NC=Mt(),eG=Ge(),tG=oc(),bt=n_(),bv=class{static{a(this,"TypeRegistry")}constructor(e=null,t={}){this.nodeTypes=new Map,this.edgeTypes=new Map,this.typeHierarchy=new Map,this.subscribers=new Set,this.discoveryComplete=!1,this.tripleStore=e,this.config={autoDiscoverTypes:t.autoDiscoverTypes??!0,includeBuiltInStyles:t.includeBuiltInStyles??!0,styleResolution:t.styleResolution??{mergeStyles:!0,inheritParentStyles:!0,defaultNodeStyle:bt.DEFAULT_NODE_STYLE,defaultEdgeStyle:bt.DEFAULT_EDGE_STYLE},maxInheritanceDepth:t.maxInheritanceDepth??10},this.config.includeBuiltInStyles&&this.registerBuiltInTypes()}registerNodeType(e){let r=this.nodeTypes.get(e.uri)?"type-updated":"type-added";this.nodeTypes.set(e.uri,e),e.parentTypes&&e.parentTypes.length>0&&this.typeHierarchy.set(e.uri,e.parentTypes),this.emit({type:r,typeUri:e.uri,definition:e})}registerEdgeType(e){let r=this.edgeTypes.get(e.uri)?"type-updated":"type-added";this.edgeTypes.set(e.uri,e),this.emit({type:r,typeUri:e.uri,definition:e})}unregisterType(e){let t=this.nodeTypes.delete(e),r=this.edgeTypes.delete(e);this.typeHierarchy.delete(e),(t||r)&&this.emit({type:"type-removed",typeUri:e})}getNodeType(e){return this.nodeTypes.get(e)}getEdgeType(e){return this.edgeTypes.get(e)}getAllNodeTypes(){return Array.from(this.nodeTypes.values())}getAllEdgeTypes(){return Array.from(this.edgeTypes.values())}getParentTypes(e,t=this.config.maxInheritanceDepth){let r=[],i=new Set,s=[{uri:e,currentDepth:0}];for(;s.length>0;){let o=s.shift();if(!o)break;let{uri:c,currentDepth:l}=o;if(i.has(c)||(i.add(c),l>=t))continue;let u=this.typeHierarchy.get(c)??[];for(let f of u)i.has(f)||(r.push(f),s.push({uri:f,currentDepth:l+1}))}return r}getChildTypes(e){let t=[];for(let[r,i]of this.typeHierarchy)i.includes(e)&&t.push(r);return t}isSubtypeOf(e,t){return e===t?!0:this.getParentTypes(e).includes(t)}resolveNodeType(e){let t=[],r="unknown",i="custom";if(e.assetClass){let c=this.normalizeTypeUri(e.assetClass);t.push(c),r=c,i="exo:Instance_class"}let s=e.properties?.[bt.RDF_TYPE_PREDICATES.RDF_TYPE];s&&!t.includes(s)&&(t.push(s),r==="unknown"&&(r=s,i="rdf:type"));for(let c of[...t]){let l=this.getParentTypes(c);for(let u of l)t.includes(u)||t.push(u)}let o=this.resolveNodeStyle(t);return{primaryType:r,types:t,resolvedStyle:o,source:i}}resolveEdgeType(e){let t=e.predicate??e.type,r=e.predicate?"rdf:type":"custom",i=this.resolveEdgeStyle(t);return{primaryType:t,resolvedStyle:i,source:r}}resolveNodeStyle(e){let{mergeStyles:t,defaultNodeStyle:r}=this.config.styleResolution,i={...r},s=[];for(let o of e){let c=this.nodeTypes.get(o);c&&s.push(c)}if(s.sort((o,c)=>o.priority-c.priority),t)for(let o of s)i=(0,bt.mergeNodeStyles)(i,o.style);else if(s.length>0){let o=s[s.length-1];i=(0,bt.mergeNodeStyles)(i,o.style)}return i}resolveEdgeStyle(e){let{defaultEdgeStyle:t}=this.config.styleResolution,r={...t},i=this.edgeTypes.get(e);return i&&(r=(0,bt.mergeEdgeStyles)(r,i.style)),r}filterNodes(e,t){return e.filter(r=>{let i=this.resolveNodeType(r);return!(t.includeNodeTypes&&t.includeNodeTypes.length>0&&!t.includeNodeTypes.some(o=>i.types.includes(o)||t.includeInferred&&this.isSubtypeOf(i.primaryType,o))||t.excludeNodeTypes&&t.excludeNodeTypes.length>0&&t.excludeNodeTypes.some(o=>i.types.includes(o)||t.includeInferred&&this.isSubtypeOf(i.primaryType,o))||!t.includeDeprecated&&this.nodeTypes.get(i.primaryType)?.deprecated)})}filterEdges(e,t){return e.filter(r=>{let i=r.predicate??r.type;return!(t.includeEdgeTypes&&t.includeEdgeTypes.length>0&&!t.includeEdgeTypes.includes(i)||t.excludeEdgeTypes&&t.excludeEdgeTypes.length>0&&t.excludeEdgeTypes.includes(i))})}groupNodesByType(e,t,r={}){let{groupByNodeType:i=!0,groupByParentType:s=!1,groupLevel:o=0,maxGroups:c=20,customGroupFn:l}=r,u=new Map;for(let h of e){let p=this.resolveNodeType(h),y;if(l?y=l(p.types):s&&p.types.length>o?y=p.types[o]??p.primaryType:i?y=p.primaryType:y="all",!u.has(y)){let _=this.nodeTypes.get(y)?.label??(0,bt.extractLocalName)(y);u.set(y,{nodeIds:new Set,label:_})}let g=u.get(y);g&&g.nodeIds.add(h.id)}let f=Array.from(u.entries()).map(([h,p])=>({id:h,label:p.label,nodeIds:Array.from(p.nodeIds)}));if(f.length>c){f.sort((y,g)=>g.nodeIds.length-y.nodeIds.length);let h=f.slice(0,c-1),p=f.slice(c-1).flatMap(y=>y.nodeIds);h.push({id:"other",label:"Other",nodeIds:p}),f=h}let d=new Map;for(let h of f)for(let p of h.nodeIds)d.set(p,h.id);return f.map((h,p)=>{let y=new Set(h.nodeIds),g=[],b=[];for(let x of t){let A=y.has(x.source),T=y.has(x.target);A&&T?x.id&&g.push(x.id):(A||T)&&x.id&&b.push(x.id)}let S=`hsl(${p*137.5%360}, 70%, 50%)`;return{id:h.id,label:h.label,nodeIds:h.nodeIds,internalEdgeIds:g,externalEdgeIds:b,color:S,stats:{nodeCount:h.nodeIds.length,internalEdgeCount:g.length,externalEdgeCount:b.length}}})}validateTypes(e,t){let r=[],i=[];for(let s of e){let o=this.resolveNodeType(s);if(o.primaryType!=="unknown"){let c=this.nodeTypes.get(o.primaryType);!c&&o.source!=="inferred"&&i.push({code:"UNREGISTERED_NODE_TYPE",message:`Node type "${o.primaryType}" is not registered`,elementId:s.id,suggestion:"Register the type with registerNodeType()"}),c?.deprecated&&i.push({code:"DEPRECATED_NODE_TYPE",message:`Node uses deprecated type "${o.primaryType}"`,elementId:s.id,suggestion:"Migrate to a non-deprecated type"})}else i.push({code:"MISSING_NODE_TYPE",message:"Node has no type information",elementId:s.id,suggestion:"Add exo:Instance_class or rdf:type to the node"})}for(let s of t){let o=s.predicate??s.type,c=this.edgeTypes.get(o);if(c?.domain&&c.domain.length>0){let l=e.find(u=>u.id===s.source);if(l){let u=this.resolveNodeType(l);c.domain.some(d=>u.types.includes(d))||r.push({code:"DOMAIN_VIOLATION",message:"Edge source does not match expected domain",elementId:s.id,expected:c.domain,actual:u.types})}}if(c?.range&&c.range.length>0){let l=e.find(u=>u.id===s.target);if(l){let u=this.resolveNodeType(l);c.range.some(d=>u.types.includes(d))||r.push({code:"RANGE_VIOLATION",message:"Edge target does not match expected range",elementId:s.id,expected:c.range,actual:u.types})}}}return{valid:r.length===0,errors:r,warnings:i}}async discoverTypes(){if(!this.tripleStore||this.discoveryComplete)return;let e=await this.tripleStore.match(void 0,new Ts.IRI(bt.RDF_TYPE_PREDICATES.RDF_TYPE),void 0);for(let r of e){let i=this.getObjectValue(r.object);if(i&&(0,bt.isClassType)(i)){let s=this.getSubjectValue(r.subject);s&&await this.discoverNodeType(s)}}let t=await this.tripleStore.match(void 0,new Ts.IRI(bt.RDF_TYPE_PREDICATES.RDFS_SUBCLASS_OF),void 0);for(let r of t){let i=this.getSubjectValue(r.subject),s=this.getObjectValue(r.object);if(i&&s){let o=this.typeHierarchy.get(i)??[];if(!o.includes(s)){o.push(s),this.typeHierarchy.set(i,o);let c=this.nodeTypes.get(i);c&&(c.parentTypes=o)}}}this.discoveryComplete=!0,this.emit({type:"hierarchy-updated",rootTypes:this.getRootTypes()})}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}clear(){this.nodeTypes.clear(),this.edgeTypes.clear(),this.typeHierarchy.clear(),this.discoveryComplete=!1,this.config.includeBuiltInStyles&&this.registerBuiltInTypes()}registerBuiltInTypes(){for(let[e,t]of Object.entries(bt.BUILT_IN_NODE_STYLES))this.nodeTypes.set(e,{uri:e,label:(0,bt.extractLocalName)(e),source:"custom",style:(0,bt.mergeNodeStyles)(bt.DEFAULT_NODE_STYLE,t),priority:1});for(let[e,t]of Object.entries(bt.BUILT_IN_EDGE_STYLES))this.edgeTypes.set(e,{uri:e,label:(0,bt.extractLocalName)(e),source:"custom",style:(0,bt.mergeEdgeStyles)(bt.DEFAULT_EDGE_STYLE,t),priority:1})}async discoverNodeType(e){if(this.nodeTypes.has(e)||!this.tripleStore)return;let t=await this.tripleStore.match(new Ts.IRI(e),new Ts.IRI(bt.RDF_TYPE_PREDICATES.RDFS_LABEL),void 0),r=await this.tripleStore.match(new Ts.IRI(e),new Ts.IRI(bt.RDF_TYPE_PREDICATES.RDFS_COMMENT),void 0),i=t.length>0?this.getObjectValue(t[0].object)??(0,bt.extractLocalName)(e):(0,bt.extractLocalName)(e),s=r.length>0?this.getObjectValue(r[0].object):void 0,o="rdfs:Class",c=await this.tripleStore.match(new Ts.IRI(e),new Ts.IRI(bt.RDF_TYPE_PREDICATES.RDF_TYPE),void 0);for(let f of c)if(this.getObjectValue(f.object)===bt.RDF_TYPE_PREDICATES.OWL_CLASS){o="owl:Class";break}let l=bt.BUILT_IN_NODE_STYLES[e]??bt.BUILT_IN_NODE_STYLES[(0,bt.extractLocalName)(e)],u={uri:e,label:i,description:s,source:o,style:(0,bt.mergeNodeStyles)(bt.DEFAULT_NODE_STYLE,l??{}),priority:1};this.registerNodeType(u)}normalizeTypeUri(e){let t=e.match(/^\[\[(.+?)\]\]$/);return t?t[1]:e}getSubjectValue(e){if(e instanceof Ts.IRI)return e.value;if(e instanceof NC.BlankNode)return`_:${e.id}`;if(typeof e=="object"&&e!==null&&"termType"in e)return e.toString()}getObjectValue(e){if(e instanceof eG.Literal||e instanceof Ts.IRI)return e.value;if(e instanceof NC.BlankNode)return`_:${e.id}`}getRootTypes(){let e=new Set;for(let r of this.typeHierarchy.values())for(let i of r)e.add(i);let t=[];for(let r of this.nodeTypes.keys()){let i=this.typeHierarchy.get(r);(!i||i.length===0)&&e.has(r)&&t.push(r)}return t}emit(e){for(let t of this.subscribers)try{t(e)}catch(r){tG.LoggingService.error("TypeRegistry: error in subscriber callback",r instanceof Error?r:new Error(String(r)))}}};Eo.TypeRegistry=bv;Eo.TypeRegistry=bv=Qq([(0,Zq.injectable)(),Jq("design:paramtypes",[Object,Object])],bv)});var MC=v(hg=>{"use strict";Object.defineProperty(hg,"__esModule",{value:!0});hg.SPARQL_PREFIXES=void 0;hg.SPARQL_PREFIXES=`PREFIX exo: <https://exocortex.my/ontology/exo#>
211
+ ---`)}};Bi.AssetConversionService=sv;Bi.AssetConversionService=sv=pq([(0,v3.injectable)(),gq(0,(0,v3.inject)(bq.DI_TOKENS.IVaultAdapter)),mq("design:paramtypes",[Object])],sv)});var lv=v(Vi=>{"use strict";var _q=Vi&&Vi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},wq=Vi&&Vi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},T3=Vi&&Vi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Vi,"__esModule",{value:!0});Vi.SessionEventService=void 0;var av=Ve(),Sq=Ti(),A3=zo(),vq=Mn(),Eq=fo(),x3=Ut(),cv=class{static{a(this,"SessionEventService")}constructor(e,t){this.vault=e,this.vaultSettings=t,this.folderPathCache=null}async createSessionStartEvent(e){return this.createSessionEvent(e,A3.AssetClass.SESSION_START_EVENT)}async createSessionEndEvent(e){return this.createSessionEvent(e,A3.AssetClass.SESSION_END_EVENT)}getSessionEventFolder(){if(this.folderPathCache!==null)return this.folderPathCache;let e=this.vault.getDefaultNewFileParent();return this.folderPathCache=e?.path||"",this.folderPathCache}async createSessionEvent(e,t){let r=(0,Sq.v4)(),i=vq.DateFormatter.toLocalTimestamp(new Date),s={exo__Asset_uid:r,exo__Asset_createdAt:i,exo__Asset_isDefinedBy:this.vaultSettings.getOwnerIdentity(),exo__Instance_class:[`"[[${t}]]"`],ems__SessionEvent_timestamp:i,ems__Session_area:`"[[${e}]]"`},o=Eq.MetadataHelpers.buildFileContent(s),c=this.getSessionEventFolder();c&&!await this.vault.exists(c)&&await this.vault.createFolder(c);let l=c?`${c}/${r}.md`:`${r}.md`;return await this.vault.create(l,o)}};Vi.SessionEventService=cv;Vi.SessionEventService=cv=_q([(0,av.injectable)(),T3(0,(0,av.inject)(x3.DI_TOKENS.IVaultAdapter)),T3(1,(0,av.inject)(x3.DI_TOKENS.IVaultSettings)),wq("design:paramtypes",[Object,Object])],cv)});var dv=v(qi=>{"use strict";var Tq=qi&&qi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},Aq=qi&&qi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},I3=qi&&qi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(qi,"__esModule",{value:!0});qi.URIConstructionService=void 0;var uv=Ve(),R3=Ut(),xq=el(),fv=class{static{a(this,"URIConstructionService")}constructor(e,t=xq.NullLogger){this.fileSystem=e,this.logger=t,this.defaultOntologyURL="https://exocortex.my/default/",this.strictValidation=!0}configure(e){e?.defaultOntologyURL&&(this.defaultOntologyURL=e.defaultOntologyURL),e?.strictValidation!==void 0&&(this.strictValidation=e.strictValidation)}async constructAssetURI(e){let t=this.extractUID(e);if(!t){if(this.strictValidation)throw new Error(`Asset missing exo__Asset_uid: ${e.path}`);return this.logger.warn(`Asset ${e.path} missing UID, using filename fallback`),this.constructFallbackURI(e)}let r=await this.resolveOntologyURL(e);if(!this.validateOntologyURL(r))throw new Error(`Invalid ontology URL: ${r}`);return`${r.endsWith("/")?r:`${r}/`}${t}`}validateOntologyURL(e){if(!e)return!1;try{let t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}async resolveOntologyURL(e){let t=e.frontmatter?.exo__Asset_isDefinedBy;if(!t||typeof t!="string")return this.defaultOntologyURL;let r=this.extractWikiLink(t),i=r,s=await this.fileSystem.fileExists(r);return!s&&!r.endsWith(".md")&&(i=`${r}.md`,s=await this.fileSystem.fileExists(i)),s?(await this.fileSystem.getFileMetadata(i))?.exo__Ontology_url||this.defaultOntologyURL:(this.logger.warn(`Ontology file not found: ${r}, using default`),this.defaultOntologyURL)}extractUID(e){let t=e.frontmatter?.exo__Asset_uid;return typeof t=="string"?t:null}extractWikiLink(e){return e.replace(/^\[\[|\]\]$/g,"")}constructFallbackURI(e){let t=e.path.split("/").pop()?.replace(".md","")||"unknown";return`${this.defaultOntologyURL}${t}`}};qi.URIConstructionService=fv;qi.URIConstructionService=fv=Tq([(0,uv.injectable)(),I3(0,(0,uv.inject)(R3.DI_TOKENS.IFileSystemAdapter)),I3(1,(0,uv.inject)(R3.DI_TOKENS.ILogger)),Aq("design:paramtypes",[Object,Object])],fv)});var pv=v(Gi=>{"use strict";var Iq=Gi&&Gi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},Rq=Gi&&Gi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},Cq=Gi&&Gi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Gi,"__esModule",{value:!0});Gi.GenericAssetCreationService=void 0;var C3=Ve(),Jf=Mn(),Oq=fo(),Pq=Zs(),Fq=Ht(),Dq=Ut(),vs=dp(),Lq=Uf(),Nq=$m(),hv=class{static{a(this,"GenericAssetCreationService")}constructor(e){this.vault=e,this.clock=(0,Lq.liveClock)(),this.uidGen=(0,Nq.liveUidGenerator)()}withDeterminism(e){return e.clock&&(this.clock=e.clock),e.uidGenerator&&(this.uidGen=e.uidGenerator),this}async createAsset(e,t){let{folderPath:r,path:i,content:s}=this.buildAsset(e,t);return this.vault.getAbstractFileByPath(r)||await this.vault.createFolder(r),await this.vault.create(i,s)}buildAsset(e,t){let r=this.uidGen.next(),i=this.generateFrontmatter(e,t||[],r),s=Oq.MetadataHelpers.buildFileContent(i,e.body),o=e.folderPath||this.getDefaultFolderPath(e),c=`${r}.md`,l=o?`${o}/${c}`:c;return{uid:r,folderPath:o,path:l,frontmatter:i,content:s}}generateFrontmatter(e,t=[],r=this.uidGen.next()){let i={},s=new Map;for(let c of t)s.set(c.name,c.fieldType);i.exo__Asset_uid=r,i.exo__Asset_createdAt=e.timezone?this.generateTimestampInTimezone(e.timezone):Jf.DateFormatter.toLocalTimestamp(this.clock.now());let o=e.classRefForm==="uuid"&&e.classUid?e.classUid:e.className;if(i.exo__Instance_class=[this.formatWikilink(o)],e.createdBy&&e.createdBy.trim()!==""&&(i.exo__Asset_createdBy=this.formatWikilink(e.createdBy.trim())),e.label&&e.label.trim()!==""){let c=e.label.trim();i.exo__Asset_label=c;let l=[c];if(e.aliases)for(let u of e.aliases)l.includes(u)||l.push(u);i.aliases=l}if(e.parentFile&&e.parentMetadata&&this.inheritParentContext(i,e),e.propertyValues){for(let[c,l]of Object.entries(e.propertyValues))if(!(c==="exo__Asset_uid"||c==="exo__Asset_createdAt"||c==="exo__Asset_createdBy"||c==="exo__Instance_class"||c==="exo__Asset_label"||c==="aliases")&&l!=null)if(e.shapeRegistry!==void 0)i[c]=this.formatPropertyValueWithCardinality(c,String(l),e.shapeRegistry);else{let u=s.get(c);i[c]=this.formatValue(l,u)}}return i}inheritParentContext(e,t){let r=t.parentMetadata||{},i=t.parentFile?.basename;if(t.className==="ems__Task"||t.className.startsWith("ems__Task")){let s=r.exo__Instance_class,c=this.isAreaClass(s,t.classResolver)?"ems__Effort_area":"ems__Effort_parent";e[c]=i?this.formatWikilink(i):null}if(t.className==="ems__Project"||t.className.startsWith("ems__Project")){let s=r.exo__Instance_class,c=this.isAreaClass(s,t.classResolver)?"ems__Effort_area":"ems__Effort_parent";e[c]=i?this.formatWikilink(i):null}if(r.exo__Asset_isDefinedBy){let s=r.exo__Asset_isDefinedBy;e.exo__Asset_isDefinedBy=typeof s=="string"?this.formatWikilink(s):s}}isAreaClass(e,t){if(!e)return!1;let r=Array.isArray(e)?e:[e],i=a(()=>null,"noopResolver");return r.some(s=>{let o=Pq.WikiLinkHelpers.resolveSymbolic(String(s),t??i);return o.includes("Area")||o.includes("ems__Area")})}getDefaultFolderPath(e){if(e.parentFile?.parent?.path)return e.parentFile.parent.path;let t={ems__Task:"tasks",ems__Project:"projects",ems__Area:"areas",ems__Meeting:"meetings",exo__Event:"events",ims__Concept:"concepts"};if(t[e.className])return t[e.className];for(let[r,i]of Object.entries(t))if(e.className.startsWith(r))return i;return"assets"}formatValue(e,t){if(e==null)return null;if(!t)return this.formatInferredValue(e);switch(t){case vs.PropertyFieldType.Text:return String(e);case vs.PropertyFieldType.Wikilink:case vs.PropertyFieldType.Reference:case vs.PropertyFieldType.StatusSelect:case vs.PropertyFieldType.SizeSelect:return this.formatWikilink(String(e));case vs.PropertyFieldType.Number:return typeof e=="number"?e:Number(e)||0;case vs.PropertyFieldType.Boolean:return this.formatBoolean(e);case vs.PropertyFieldType.Date:case vs.PropertyFieldType.DateTime:case vs.PropertyFieldType.Timestamp:return this.formatTimestamp(e);default:return String(e)}}formatInferredValue(e){return typeof e=="boolean"||typeof e=="number"?e:e instanceof Date?Jf.DateFormatter.toLocalTimestamp(e):typeof e=="string"?e.startsWith("[[")||e.startsWith('"[[')?this.formatWikilink(e):e:String(e)}formatWikilink(e){return e.startsWith('"[[')&&e.endsWith(']]"')?e:e.startsWith("[[")&&e.endsWith("]]")?`"${e}"`:`"[[${e}]]"`}formatBoolean(e){if(typeof e=="boolean")return e;if(typeof e=="string"){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"}return typeof e=="number"?e!==0:!!e}formatTimestamp(e){if(e instanceof Date)return Jf.DateFormatter.toLocalTimestamp(e);if(typeof e=="string"){if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(e))return e;if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/.test(e))return e.replace("Z","");let t=new Date(e);return isNaN(t.getTime())?e:Jf.DateFormatter.toLocalTimestamp(t)}if(typeof e=="number"){let t=new Date(e);if(!isNaN(t.getTime()))return Jf.DateFormatter.toLocalTimestamp(t)}return String(e)}formatPropertyValueWithCardinality(e,t,r){if(!t.includes("[["))return t;let i=t.startsWith('"')&&t.endsWith('"')?t:`"${t}"`;return this.shouldEmitAsArray(e,r)?[i]:i}shouldEmitAsArray(e,t){if(!t)return!1;let r=Fq.Namespace.fromPropertyKey(e);if(!r)return!1;let i=r.namespace.term(r.localName).value;return t.get(i)?.cardinality==="Multiple"}generateTimestampInTimezone(e){let t=this.clock.now(),i=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(t),s=a(o=>i.find(c=>c.type===o)?.value||"00","get");return`${s("year")}-${s("month")}-${s("day")}T${s("hour")}:${s("minute")}:${s("second")}`}};Gi.GenericAssetCreationService=hv;Gi.GenericAssetCreationService=hv=Iq([(0,C3.injectable)(),Cq(0,(0,C3.inject)(Dq.DI_TOKENS.IVaultAdapter)),Rq("design:paramtypes",[Object])],hv)});var P3=v(Wi=>{"use strict";var kq=Wi&&Wi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},Mq=Wi&&Wi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},jq=Wi&&Wi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Wi,"__esModule",{value:!0});Wi.ArchiveAssetService=void 0;var O3=Ve(),$q=Ut(),Uq=ws(),mv=class{static{a(this,"ArchiveAssetService")}constructor(e){this.vault=e,this.frontmatterService=new Uq.FrontmatterService}async archiveAsset(e){let t=await this.vault.read(e),r=this.frontmatterService.updateProperty(t,"archived","true");r=this.frontmatterService.removeProperty(r,"aliases"),r!==t&&await this.vault.modify(e,r)}};Wi.ArchiveAssetService=mv;Wi.ArchiveAssetService=mv=kq([(0,O3.injectable)(),jq(0,(0,O3.inject)($q.DI_TOKENS.IVaultAdapter)),Mq("design:paramtypes",[Object])],mv)});var D3=v(Hi=>{"use strict";var Bq=Hi&&Hi.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},Vq=Hi&&Hi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},qq=Hi&&Hi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Hi,"__esModule",{value:!0});Hi.FixMissingLabelService=void 0;var F3=Ve(),Gq=Ut(),Wq=ws(),gv=class{static{a(this,"FixMissingLabelService")}constructor(e){this.vault=e,this.frontmatterService=new Wq.FrontmatterService}async fixMissingLabel(e){let t=await this.vault.read(e);if(this.hasNonEmptyLabel(t))return;let r=this.frontmatterService.updateProperty(t,"exo__Asset_label",e.basename);r!==t&&await this.vault.modify(e,r)}hasNonEmptyLabel(e){let t=this.frontmatterService.parse(e);if(!t.exists)return!1;let r=t.content.match(/^exo__Asset_label:\s*(.*)$/m);if(!r)return!1;let i=r[1].trim();return!(i===""||i==='""'||i==="''")}};Hi.FixMissingLabelService=gv;Hi.FixMissingLabelService=gv=Bq([(0,F3.injectable)(),qq(0,(0,F3.inject)(Gq.DI_TOKENS.IVaultAdapter)),Vq("design:paramtypes",[Object])],gv)});var L3=v(vo=>{"use strict";var Hq=vo&&vo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},zq=vo&&vo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(vo,"__esModule",{value:!0});vo.GraphQueryService=void 0;var Kq=Ve(),Zf=Ce(),Xq=Ge(),ca=Ht(),Yq=r_(),Es={INSTANCE_CLASS:ca.Namespace.EXO.term("Instance_class"),ASSET_LABEL:ca.Namespace.EXO.term("Asset_label"),ASSET_PROTOTYPE:ca.Namespace.EXO.term("Asset_prototype"),ASSET_IS_ARCHIVED:ca.Namespace.EXO.term("Asset_isArchived"),EFFORT_PARENT:ca.Namespace.EMS.term("Effort_parent"),REFERENCES:ca.Namespace.EXO.term("references"),REFERENCED_BY:ca.Namespace.EXO.term("referencedBy"),RDF_TYPE:ca.Namespace.RDF.term("type")},yv=class{static{a(this,"GraphQueryService")}constructor(e,t={},r){this.subscribers=new Set,this.nodeCache=new Map,this.lastCacheUpdate=0,this.tripleStore=e,this.logger=r,this.config={defaultLimit:t.defaultLimit??100,maxLimit:t.maxLimit??1e4,defaultDepth:t.defaultDepth??2,maxDepth:t.maxDepth??10,includeArchivedByDefault:t.includeArchivedByDefault??!1,cacheTTL:t.cacheTTL??3e4}}async loadGraphData(e={}){let t=Date.now(),r=await this.loadNodes(e),i=await this.loadEdges(r,e),s=this.computeStats(r,i),o=Date.now()-t;return o>100&&r.length>0&&this.logger?.debug(`GraphQueryService: loaded ${r.length} nodes in ${o}ms (${(o/r.length).toFixed(2)}ms/node)`),{nodes:r,edges:i,stats:s,lastUpdated:Date.now(),version:1}}async loadNodesIncremental(e={}){let t=Math.min(e.limit??this.config.defaultLimit,this.config.maxLimit),r=e.offset??0,i=await this.loadNodes({...e,limit:t+1,offset:r}),s=i.length>t,o=s?i.slice(0,t):i,c=await this.loadEdges(o,e);return{nodes:o,edges:c,hasMore:s,totalCount:void 0,cursor:s?String(r+t):void 0}}async loadConnectedNodes(e,t={}){let r=Math.min(t.depth??this.config.defaultDepth,this.config.maxDepth),i=Math.min(t.limit??this.config.maxLimit,this.config.maxLimit),s=new Set,o=[{id:e,currentDepth:0}],c=[];for(;o.length>0&&c.length<i;){let u=o.shift();if(!u)break;let{id:f,currentDepth:d}=u;if(s.has(f))continue;s.add(f);let h=await this.getNodeById(f,t);if(h&&(c.push(h),d<r)){let p=await this.getConnectedNodeIds(f);for(let y of p)s.has(y)||o.push({id:y,currentDepth:d+1})}}let l=await this.loadEdges(c,t);return{nodes:c,edges:l,hasMore:o.length>0,totalCount:s.size+o.length}}async getNodeById(e,t={}){let r=this.getCachedNode(e);if(r)return{...r};let i=this.idToIRI(e),s=await this.tripleStore.match(i,void 0,void 0);if(s.length===0)return null;let o=this.triplesToNode(e,s,t);return o&&this.cacheNode(o),o}subscribe(e){return this.subscribers.add(e),{unsubscribe:a(()=>{this.subscribers.delete(e)},"unsubscribe")}}notifyChange(e){for(let t of this.subscribers)try{t(e)}catch(r){this.logger?.error("GraphQueryService: error in subscriber callback",r instanceof Error?r:new Error(String(r)))}this.invalidateCache()}async getStats(){let e=await this.loadNodes({includeArchived:!0}),t=await this.loadEdges(e,{});return this.computeStats(e,t)}clearCache(){this.nodeCache.clear(),this.lastCacheUpdate=0}async loadNodes(e){let t=e.includeArchived??this.config.includeArchivedByDefault,r=e.limit??this.config.maxLimit,i=e.offset??0,s=await this.tripleStore.match(void 0,Es.INSTANCE_CLASS,void 0),o=s;if(e.classes&&e.classes.length>0){let p=new Set(e.classes);o=s.filter(y=>{let g=this.getObjectValue(y.object);return g&&p.has(g)})}let c=new Set;for(let p of o)c.add(this.subjectToId(p.subject));let f=Array.from(c).slice(i,i+r).map(p=>this.getNodeById(p,e));return(await Promise.all(f)).filter(p=>!(!p||!t&&p.isArchived))}async loadEdges(e,t){let r=new Set(e.map(o=>o.id)),i=[],s=new Set;for(let o of e){let c=this.idToIRI(o.id),l=await this.tripleStore.match(c,void 0,void 0);for(let u of l){let f=this.tripleToEdge(o.id,u,r);f&&f.id&&!s.has(f.id)&&(!t.edgeTypes||t.edgeTypes.includes(f.type))&&(s.add(f.id),i.push(f))}}return i}async getConnectedNodeIds(e){let t=this.idToIRI(e),r=[],i=await this.tripleStore.match(t,void 0,void 0);for(let o of i){let c=this.objectToId(o.object);c&&r.push(c)}let s=await this.tripleStore.match(void 0,void 0,t);for(let o of s)r.push(this.subjectToId(o.subject));return[...new Set(r)]}triplesToNode(e,t,r){let i={},s,o,c,l,u=!1;for(let h of t){let p=h.predicate.value,y=this.getObjectValue(h.object);if(p===Es.INSTANCE_CLASS.value)s=y;else if(p===Es.ASSET_LABEL.value)o=y;else if(p===Es.ASSET_PROTOTYPE.value)c=this.objectToId(h.object)??y;else if(p===Es.EFFORT_PARENT.value)l=this.objectToId(h.object)??y;else if(p===Es.ASSET_IS_ARCHIVED.value)u=y==="true"||y==="1";else{let g=this.predicateToPropertyName(p);g&&(i[g]=y)}}if(u&&!(r.includeArchived??this.config.includeArchivedByDefault))return null;let f=this.idToPath(e),d=o??this.pathToTitle(f);return{id:e,path:f,title:d,label:d,assetClass:s,isArchived:u,uri:e.startsWith("http")?e:void 0,prototype:c,parent:l,properties:Object.keys(i).length>0?i:void 0}}tripleToEdge(e,t,r){let i=t.predicate.value,s=this.objectToId(t.object);if(!s||!r.has(s)||s===e)return null;let o=this.predicateToEdgeType(i);if(!o)return null;let c=(0,Yq.createEdgeId)(e,s,o,i),l=this.predicateToLabel(i);return{id:c,source:e,target:s,type:o,predicate:i,label:l}}predicateToEdgeType(e){return e===Es.EFFORT_PARENT.value?"hierarchy":e===Es.ASSET_PROTOTYPE.value?"prototype":e===Es.REFERENCES.value?"forward-link":e===Es.REFERENCED_BY.value?"backlink":e.includes("Asset_")||e.includes("Instance_")?null:"semantic"}predicateToLabel(e){let t=e.lastIndexOf("#"),r=e.lastIndexOf("/"),i=Math.max(t,r);return i>=0?e.substring(i+1):e}predicateToPropertyName(e){return this.predicateToLabel(e).replace(/_/g,"__").replace(/#/g,"_")}computeStats(e,t){let r={},i={backlink:0,"forward-link":0,hierarchy:0,prototype:0,semantic:0,reference:0};for(let c of e){let l=c.assetClass??"unknown";r[l]=(r[l]??0)+1}for(let c of t)i[c.type]=(i[c.type]??0)+1;let s=new Map,o=new Map;for(let c of t)o.set(c.source,(o.get(c.source)??0)+1),s.set(c.target,(s.get(c.target)??0)+1);for(let c of e)c.inDegree=s.get(c.id)??0,c.outDegree=o.get(c.id)??0,c.weight=c.inDegree+c.outDegree;return{nodeCount:e.length,edgeCount:t.length,nodesByClass:r,edgesByType:i,computedAt:Date.now()}}idToIRI(e){return e.startsWith("http://")||e.startsWith("https://")?new Zf.IRI(e):new Zf.IRI(`obsidian://vault/${encodeURIComponent(e)}`)}subjectToId(e){if(e instanceof Zf.IRI){let t=e.value;return t.startsWith("obsidian://vault/")?decodeURIComponent(t.replace("obsidian://vault/","")):t}return e.toString()}objectToId(e){if(e instanceof Zf.IRI){let t=e.value;return t.startsWith("obsidian://vault/")?decodeURIComponent(t.replace("obsidian://vault/","")):t}return null}getObjectValue(e){if(e instanceof Xq.Literal||e instanceof Zf.IRI)return e.value}idToPath(e){if(e.startsWith("obsidian://vault/"))return decodeURIComponent(e.replace("obsidian://vault/",""));if(e.startsWith("http://")||e.startsWith("https://")){let t=e.match(/\/([^/]+\.md)$/);if(t)return t[1]}return e}pathToTitle(e){return(e.split("/").pop()??e).replace(/\.md$/,"")}getCachedNode(e){return Date.now()-this.lastCacheUpdate>this.config.cacheTTL?(this.clearCache(),null):this.nodeCache.get(e)??null}cacheNode(e){this.nodeCache.set(e.id,e),this.lastCacheUpdate===0&&(this.lastCacheUpdate=Date.now())}invalidateCache(){this.clearCache()}};vo.GraphQueryService=yv;vo.GraphQueryService=yv=Hq([(0,Kq.injectable)(),zq("design:paramtypes",[Object,Object,Object])],yv)});var k3=v(Eo=>{"use strict";var Qq=Eo&&Eo.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},Jq=Eo&&Eo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(Eo,"__esModule",{value:!0});Eo.TypeRegistry=void 0;var Zq=Ve(),Ts=Ce(),N3=Mt(),eG=Ge(),tG=oc(),bt=n_(),bv=class{static{a(this,"TypeRegistry")}constructor(e=null,t={}){this.nodeTypes=new Map,this.edgeTypes=new Map,this.typeHierarchy=new Map,this.subscribers=new Set,this.discoveryComplete=!1,this.tripleStore=e,this.config={autoDiscoverTypes:t.autoDiscoverTypes??!0,includeBuiltInStyles:t.includeBuiltInStyles??!0,styleResolution:t.styleResolution??{mergeStyles:!0,inheritParentStyles:!0,defaultNodeStyle:bt.DEFAULT_NODE_STYLE,defaultEdgeStyle:bt.DEFAULT_EDGE_STYLE},maxInheritanceDepth:t.maxInheritanceDepth??10},this.config.includeBuiltInStyles&&this.registerBuiltInTypes()}registerNodeType(e){let r=this.nodeTypes.get(e.uri)?"type-updated":"type-added";this.nodeTypes.set(e.uri,e),e.parentTypes&&e.parentTypes.length>0&&this.typeHierarchy.set(e.uri,e.parentTypes),this.emit({type:r,typeUri:e.uri,definition:e})}registerEdgeType(e){let r=this.edgeTypes.get(e.uri)?"type-updated":"type-added";this.edgeTypes.set(e.uri,e),this.emit({type:r,typeUri:e.uri,definition:e})}unregisterType(e){let t=this.nodeTypes.delete(e),r=this.edgeTypes.delete(e);this.typeHierarchy.delete(e),(t||r)&&this.emit({type:"type-removed",typeUri:e})}getNodeType(e){return this.nodeTypes.get(e)}getEdgeType(e){return this.edgeTypes.get(e)}getAllNodeTypes(){return Array.from(this.nodeTypes.values())}getAllEdgeTypes(){return Array.from(this.edgeTypes.values())}getParentTypes(e,t=this.config.maxInheritanceDepth){let r=[],i=new Set,s=[{uri:e,currentDepth:0}];for(;s.length>0;){let o=s.shift();if(!o)break;let{uri:c,currentDepth:l}=o;if(i.has(c)||(i.add(c),l>=t))continue;let u=this.typeHierarchy.get(c)??[];for(let f of u)i.has(f)||(r.push(f),s.push({uri:f,currentDepth:l+1}))}return r}getChildTypes(e){let t=[];for(let[r,i]of this.typeHierarchy)i.includes(e)&&t.push(r);return t}isSubtypeOf(e,t){return e===t?!0:this.getParentTypes(e).includes(t)}resolveNodeType(e){let t=[],r="unknown",i="custom";if(e.assetClass){let c=this.normalizeTypeUri(e.assetClass);t.push(c),r=c,i="exo:Instance_class"}let s=e.properties?.[bt.RDF_TYPE_PREDICATES.RDF_TYPE];s&&!t.includes(s)&&(t.push(s),r==="unknown"&&(r=s,i="rdf:type"));for(let c of[...t]){let l=this.getParentTypes(c);for(let u of l)t.includes(u)||t.push(u)}let o=this.resolveNodeStyle(t);return{primaryType:r,types:t,resolvedStyle:o,source:i}}resolveEdgeType(e){let t=e.predicate??e.type,r=e.predicate?"rdf:type":"custom",i=this.resolveEdgeStyle(t);return{primaryType:t,resolvedStyle:i,source:r}}resolveNodeStyle(e){let{mergeStyles:t,defaultNodeStyle:r}=this.config.styleResolution,i={...r},s=[];for(let o of e){let c=this.nodeTypes.get(o);c&&s.push(c)}if(s.sort((o,c)=>o.priority-c.priority),t)for(let o of s)i=(0,bt.mergeNodeStyles)(i,o.style);else if(s.length>0){let o=s[s.length-1];i=(0,bt.mergeNodeStyles)(i,o.style)}return i}resolveEdgeStyle(e){let{defaultEdgeStyle:t}=this.config.styleResolution,r={...t},i=this.edgeTypes.get(e);return i&&(r=(0,bt.mergeEdgeStyles)(r,i.style)),r}filterNodes(e,t){return e.filter(r=>{let i=this.resolveNodeType(r);return!(t.includeNodeTypes&&t.includeNodeTypes.length>0&&!t.includeNodeTypes.some(o=>i.types.includes(o)||t.includeInferred&&this.isSubtypeOf(i.primaryType,o))||t.excludeNodeTypes&&t.excludeNodeTypes.length>0&&t.excludeNodeTypes.some(o=>i.types.includes(o)||t.includeInferred&&this.isSubtypeOf(i.primaryType,o))||!t.includeDeprecated&&this.nodeTypes.get(i.primaryType)?.deprecated)})}filterEdges(e,t){return e.filter(r=>{let i=r.predicate??r.type;return!(t.includeEdgeTypes&&t.includeEdgeTypes.length>0&&!t.includeEdgeTypes.includes(i)||t.excludeEdgeTypes&&t.excludeEdgeTypes.length>0&&t.excludeEdgeTypes.includes(i))})}groupNodesByType(e,t,r={}){let{groupByNodeType:i=!0,groupByParentType:s=!1,groupLevel:o=0,maxGroups:c=20,customGroupFn:l}=r,u=new Map;for(let h of e){let p=this.resolveNodeType(h),y;if(l?y=l(p.types):s&&p.types.length>o?y=p.types[o]??p.primaryType:i?y=p.primaryType:y="all",!u.has(y)){let _=this.nodeTypes.get(y)?.label??(0,bt.extractLocalName)(y);u.set(y,{nodeIds:new Set,label:_})}let g=u.get(y);g&&g.nodeIds.add(h.id)}let f=Array.from(u.entries()).map(([h,p])=>({id:h,label:p.label,nodeIds:Array.from(p.nodeIds)}));if(f.length>c){f.sort((y,g)=>g.nodeIds.length-y.nodeIds.length);let h=f.slice(0,c-1),p=f.slice(c-1).flatMap(y=>y.nodeIds);h.push({id:"other",label:"Other",nodeIds:p}),f=h}let d=new Map;for(let h of f)for(let p of h.nodeIds)d.set(p,h.id);return f.map((h,p)=>{let y=new Set(h.nodeIds),g=[],b=[];for(let x of t){let A=y.has(x.source),T=y.has(x.target);A&&T?x.id&&g.push(x.id):(A||T)&&x.id&&b.push(x.id)}let S=`hsl(${p*137.5%360}, 70%, 50%)`;return{id:h.id,label:h.label,nodeIds:h.nodeIds,internalEdgeIds:g,externalEdgeIds:b,color:S,stats:{nodeCount:h.nodeIds.length,internalEdgeCount:g.length,externalEdgeCount:b.length}}})}validateTypes(e,t){let r=[],i=[];for(let s of e){let o=this.resolveNodeType(s);if(o.primaryType!=="unknown"){let c=this.nodeTypes.get(o.primaryType);!c&&o.source!=="inferred"&&i.push({code:"UNREGISTERED_NODE_TYPE",message:`Node type "${o.primaryType}" is not registered`,elementId:s.id,suggestion:"Register the type with registerNodeType()"}),c?.deprecated&&i.push({code:"DEPRECATED_NODE_TYPE",message:`Node uses deprecated type "${o.primaryType}"`,elementId:s.id,suggestion:"Migrate to a non-deprecated type"})}else i.push({code:"MISSING_NODE_TYPE",message:"Node has no type information",elementId:s.id,suggestion:"Add exo:Instance_class or rdf:type to the node"})}for(let s of t){let o=s.predicate??s.type,c=this.edgeTypes.get(o);if(c?.domain&&c.domain.length>0){let l=e.find(u=>u.id===s.source);if(l){let u=this.resolveNodeType(l);c.domain.some(d=>u.types.includes(d))||r.push({code:"DOMAIN_VIOLATION",message:"Edge source does not match expected domain",elementId:s.id,expected:c.domain,actual:u.types})}}if(c?.range&&c.range.length>0){let l=e.find(u=>u.id===s.target);if(l){let u=this.resolveNodeType(l);c.range.some(d=>u.types.includes(d))||r.push({code:"RANGE_VIOLATION",message:"Edge target does not match expected range",elementId:s.id,expected:c.range,actual:u.types})}}}return{valid:r.length===0,errors:r,warnings:i}}async discoverTypes(){if(!this.tripleStore||this.discoveryComplete)return;let e=await this.tripleStore.match(void 0,new Ts.IRI(bt.RDF_TYPE_PREDICATES.RDF_TYPE),void 0);for(let r of e){let i=this.getObjectValue(r.object);if(i&&(0,bt.isClassType)(i)){let s=this.getSubjectValue(r.subject);s&&await this.discoverNodeType(s)}}let t=await this.tripleStore.match(void 0,new Ts.IRI(bt.RDF_TYPE_PREDICATES.RDFS_SUBCLASS_OF),void 0);for(let r of t){let i=this.getSubjectValue(r.subject),s=this.getObjectValue(r.object);if(i&&s){let o=this.typeHierarchy.get(i)??[];if(!o.includes(s)){o.push(s),this.typeHierarchy.set(i,o);let c=this.nodeTypes.get(i);c&&(c.parentTypes=o)}}}this.discoveryComplete=!0,this.emit({type:"hierarchy-updated",rootTypes:this.getRootTypes()})}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}clear(){this.nodeTypes.clear(),this.edgeTypes.clear(),this.typeHierarchy.clear(),this.discoveryComplete=!1,this.config.includeBuiltInStyles&&this.registerBuiltInTypes()}registerBuiltInTypes(){for(let[e,t]of Object.entries(bt.BUILT_IN_NODE_STYLES))this.nodeTypes.set(e,{uri:e,label:(0,bt.extractLocalName)(e),source:"custom",style:(0,bt.mergeNodeStyles)(bt.DEFAULT_NODE_STYLE,t),priority:1});for(let[e,t]of Object.entries(bt.BUILT_IN_EDGE_STYLES))this.edgeTypes.set(e,{uri:e,label:(0,bt.extractLocalName)(e),source:"custom",style:(0,bt.mergeEdgeStyles)(bt.DEFAULT_EDGE_STYLE,t),priority:1})}async discoverNodeType(e){if(this.nodeTypes.has(e)||!this.tripleStore)return;let t=await this.tripleStore.match(new Ts.IRI(e),new Ts.IRI(bt.RDF_TYPE_PREDICATES.RDFS_LABEL),void 0),r=await this.tripleStore.match(new Ts.IRI(e),new Ts.IRI(bt.RDF_TYPE_PREDICATES.RDFS_COMMENT),void 0),i=t.length>0?this.getObjectValue(t[0].object)??(0,bt.extractLocalName)(e):(0,bt.extractLocalName)(e),s=r.length>0?this.getObjectValue(r[0].object):void 0,o="rdfs:Class",c=await this.tripleStore.match(new Ts.IRI(e),new Ts.IRI(bt.RDF_TYPE_PREDICATES.RDF_TYPE),void 0);for(let f of c)if(this.getObjectValue(f.object)===bt.RDF_TYPE_PREDICATES.OWL_CLASS){o="owl:Class";break}let l=bt.BUILT_IN_NODE_STYLES[e]??bt.BUILT_IN_NODE_STYLES[(0,bt.extractLocalName)(e)],u={uri:e,label:i,description:s,source:o,style:(0,bt.mergeNodeStyles)(bt.DEFAULT_NODE_STYLE,l??{}),priority:1};this.registerNodeType(u)}normalizeTypeUri(e){let t=e.match(/^\[\[(.+?)\]\]$/);return t?t[1]:e}getSubjectValue(e){if(e instanceof Ts.IRI)return e.value;if(e instanceof N3.BlankNode)return`_:${e.id}`;if(typeof e=="object"&&e!==null&&"termType"in e)return e.toString()}getObjectValue(e){if(e instanceof eG.Literal||e instanceof Ts.IRI)return e.value;if(e instanceof N3.BlankNode)return`_:${e.id}`}getRootTypes(){let e=new Set;for(let r of this.typeHierarchy.values())for(let i of r)e.add(i);let t=[];for(let r of this.nodeTypes.keys()){let i=this.typeHierarchy.get(r);(!i||i.length===0)&&e.has(r)&&t.push(r)}return t}emit(e){for(let t of this.subscribers)try{t(e)}catch(r){tG.LoggingService.error("TypeRegistry: error in subscriber callback",r instanceof Error?r:new Error(String(r)))}}};Eo.TypeRegistry=bv;Eo.TypeRegistry=bv=Qq([(0,Zq.injectable)(),Jq("design:paramtypes",[Object,Object])],bv)});var M3=v(hg=>{"use strict";Object.defineProperty(hg,"__esModule",{value:!0});hg.SPARQL_PREFIXES=void 0;hg.SPARQL_PREFIXES=`PREFIX exo: <https://exocortex.my/ontology/exo#>
212
212
  PREFIX ems: <https://exocortex.my/ontology/ems#>
213
213
  PREFIX ims: <https://exocortex.my/ontology/ims#>
214
214
  PREFIX gtd: <https://exocortex.my/ontology/gtd#>
215
215
  PREFIX period: <https://exocortex.my/ontology/period#>
216
216
  PREFIX lit: <https://exocortex.my/ontology/lit#>
217
217
  PREFIX inbox: <https://exocortex.my/ontology/inbox#>
218
- PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>`});var wv=v(Jr=>{"use strict";var rG=Jr&&Jr.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},nG=Jr&&Jr.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},iG=Jr&&Jr.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Jr,"__esModule",{value:!0});Jr.CriticalityZoneService=Jr.CriticalityZoneUUIDs=void 0;var jC=Ve(),sG=ws(),oG=Ut();Jr.CriticalityZoneUUIDs={TODAY:"e266a2e9-9eb0-431d-b1fe-b95b9d3e9a3f",THIS_WEEK:"c7f1a968-0959-4ac7-ac82-31b0cdc2aba7",SOMEDAY:"6968a0fc-7a41-4393-82b1-17d767c7ad7c"};var _v=class{static{a(this,"CriticalityZoneService")}constructor(e){this.vault=e,this.frontmatterService=new sG.FrontmatterService}async setZoneToday(e){await this.setZone(e,Jr.CriticalityZoneUUIDs.TODAY)}async setZoneThisWeek(e){await this.setZone(e,Jr.CriticalityZoneUUIDs.THIS_WEEK)}async setZoneSomeday(e){await this.setZone(e,Jr.CriticalityZoneUUIDs.SOMEDAY)}async setZone(e,t){let r=await this.vault.read(e),i=this.frontmatterService.updateProperty(r,"ems__Task_zone",`"[[${t}]]"`);await this.vault.modify(e,i)}};Jr.CriticalityZoneService=_v;Jr.CriticalityZoneService=_v=rG([(0,jC.injectable)(),iG(0,(0,jC.inject)(oG.DI_TOKENS.IVaultAdapter)),nG("design:paramtypes",[Object])],_v)});var $C=v(pg=>{"use strict";Object.defineProperty(pg,"__esModule",{value:!0});pg.EffortSortingHelpers=void 0;var Sv=class n{static{a(this,"EffortSortingHelpers")}static getTimeFromTimestamp(e){if(!e)return"00:00:00";let t=new Date(e);if(isNaN(t.getTime()))return"00:00:00";let r=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),s=String(t.getSeconds()).padStart(2,"0");return`${r}:${i}:${s}`}static sortByStartTime(e,t){let r=n.getTimeFromTimestamp(e.startTimestamp),i=n.getTimeFromTimestamp(t.startTimestamp),s=r==="00:00:00",o=i==="00:00:00";return s&&!o?1:!s&&o?-1:r.localeCompare(i)}static sortByPriority(e,t){if(e.isTrashed!==t.isTrashed)return e.isTrashed?1:-1;if(e.isDone!==t.isDone)return e.isDone?1:-1;let r=typeof e.metadata.ems__Effort_votes=="number"?e.metadata.ems__Effort_votes:0,i=typeof t.metadata.ems__Effort_votes=="number"?t.metadata.ems__Effort_votes:0;return r!==i?i-r:e.startTime&&t.startTime?e.startTime.localeCompare(t.startTime):e.startTime?-1:t.startTime?1:0}};pg.EffortSortingHelpers=Sv});var UC=v(mg=>{"use strict";Object.defineProperty(mg,"__esModule",{value:!0});mg.FilenameValidator=void 0;var hc=class{static{a(this,"FilenameValidator")}static validate(e,t={}){let{maxLength:r=this.DEFAULT_MAX_LENGTH,replacementChar:i=this.DEFAULT_REPLACEMENT,allowEmpty:s=!1}=t,o=[];if(!e||e.trim().length===0)return s||o.push("Filename cannot be empty"),{valid:o.length===0,sanitized:"",errors:o};e.endsWith(" ")&&o.push("Filename should not end with a space");let c=e.trim();this.INVALID_CHARS_PATTERN.test(c)&&o.push('Filename contains invalid characters: / \\ : * ? " < > |');let l=this.getBaseName(c);this.RESERVED_NAMES.has(l.toUpperCase())&&o.push(`"${l}" is a reserved filename on Windows`),c.length>r&&o.push(`Filename exceeds maximum length of ${r} characters`),c.startsWith(".")&&o.push("Filename should not start with a dot"),c.endsWith(".")&&o.push("Filename should not end with a dot");let u=this.sanitize(e,{maxLength:r,replacementChar:i});return{valid:o.length===0,sanitized:u,errors:o}}static sanitize(e,t={}){let{maxLength:r=this.DEFAULT_MAX_LENGTH,replacementChar:i=this.DEFAULT_REPLACEMENT}=t;if(!e||e.trim().length===0)return"";let s=e.trim();for(s=s.replace(this.INVALID_CHARS_PATTERN,i);s.startsWith(".")&&s.length>1;)s=s.substring(1);for(;s.length>0&&(s.endsWith(".")||s.endsWith(" "));)s=s.slice(0,-1);for(s.includes(i)&&(s=s.split(i).filter(u=>u!=="").join(i));s.startsWith(i);)s=s.slice(i.length);for(;s.endsWith(i);)s=s.slice(0,-i.length);let o=this.getBaseName(s);if(this.RESERVED_NAMES.has(o.toUpperCase())){let c=this.getExtension(s);s=o+i+c}if(s.length>r)for(s=s.slice(0,r);s.endsWith(i);)s=s.slice(0,-i.length);return s}static hasInvalidChars(e){return this.INVALID_CHARS_PATTERN.test(e)}static getInvalidChars(e){let t=e.match(this.INVALID_CHARS_PATTERN);return t?[...new Set(t)]:[]}static getBaseName(e){let t=e.lastIndexOf(".");return t===-1||t===0?e:e.substring(0,t)}static getExtension(e){let t=e.lastIndexOf(".");return t===-1||t===0?"":e.substring(t)}};mg.FilenameValidator=hc;hc.INVALID_CHARS_PATTERN=/[/\\:*?"<>|\x00-\x1F]/g;hc.RESERVED_NAMES=new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]);hc.DEFAULT_MAX_LENGTH=200;hc.DEFAULT_REPLACEMENT="_"});var Ev=v(gg=>{"use strict";Object.defineProperty(gg,"__esModule",{value:!0});gg.NTriplesSerializer=void 0;var vv=class{static{a(this,"NTriplesSerializer")}serialize(e,t={}){let r=t.newline??`
219
- `;return e.length===0?"":e.map(i=>i.toString()).join(r)+r}serializeChunk(e,t){return e.length===0?"":e.map(r=>r.toString()).join(t)+t}};gg.NTriplesSerializer=vv});var BC=v(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0});yg.TurtleSerializer=void 0;var ql=Ht(),aG=Ev(),cG={rdf:ql.Namespace.RDF.iri.value,rdfs:ql.Namespace.RDFS.iri.value,owl:ql.Namespace.OWL.iri.value,xsd:ql.Namespace.XSD.iri.value,exo:ql.Namespace.EXO.iri.value,ems:ql.Namespace.EMS.iri.value},Tv=class{static{a(this,"TurtleSerializer")}constructor(){this.nTriplesSerializer=new aG.NTriplesSerializer}serialize(e,t={}){let r=t.newline??`
220
- `,i=this.composePrefixes(t),s=this.serializePrefixes(i,r),o=this.nTriplesSerializer.serialize(e,{newline:r}).trimEnd();return s?o?`${s}${r}${r}${o}${r}`:`${s}${r}`:o?`${o}${r}`:""}serializePrefixes(e,t){let r=Object.entries(e);return r.length===0?"":r.map(([i,s])=>`@prefix ${i}: <${s}> .`).join(t)}composePrefixes(e){return e.includeDefaultPrefixes??!0?{...cG,...e.prefixes??{}}:{...e.prefixes??{}}}serializeTriplesOnly(e,t){return this.nTriplesSerializer.serializeChunk(e,t).trimEnd()}};yg.TurtleSerializer=Tv});var GC=v(bg=>{"use strict";Object.defineProperty(bg,"__esModule",{value:!0});bg.JSONLDSerializer=void 0;var VC=Ce(),qC=Mt(),lG=Ge(),Gl=Ht(),uG={rdf:Gl.Namespace.RDF.iri.value,rdfs:Gl.Namespace.RDFS.iri.value,owl:Gl.Namespace.OWL.iri.value,xsd:Gl.Namespace.XSD.iri.value,exo:Gl.Namespace.EXO.iri.value,ems:Gl.Namespace.EMS.iri.value},Av=class{static{a(this,"JSONLDSerializer")}toDocument(e,t={}){let r={...uG,...t.context??{}},i=new Map;for(let s of e){let o=this.subjectToId(s.subject),c=this.compactIri(s.predicate.value,r),l=this.objectToJSONLD(s.object,r),u=i.get(o)??{"@id":o},f=u[c];f===void 0?u[c]=l:Array.isArray(f)?f.push(l):u[c]=[f,l],i.set(o,u)}return{"@context":r,"@graph":Array.from(i.values())}}serialize(e,t={}){let r=this.toDocument(e,t),i=t.pretty?t.indent??2:void 0;return JSON.stringify(r,null,i)}subjectToId(e){return e instanceof VC.IRI?e.value:e instanceof qC.BlankNode?`_:${e.id}`:String(e)}compactIri(e,t){for(let[r,i]of Object.entries(t))if(e.startsWith(i)){let s=e.slice(i.length);if(s.length>0)return`${r}:${s}`}return e}objectToJSONLD(e,t){if(e instanceof VC.IRI)return{"@id":e.value};if(e instanceof qC.BlankNode)return{"@id":`_:${e.id}`};if(e instanceof lG.Literal){let r={"@value":e.value};return e.datatype?r["@type"]=this.compactIri(e.datatype.value,t):e.language&&(r["@language"]=e.language,e.hasDirection()&&e.direction&&(r["@direction"]=e.direction)),r}return e}};bg.JSONLDSerializer=Av});var Rv=v(_g=>{"use strict";Object.defineProperty(_g,"__esModule",{value:!0});_g.NTriplesParser=void 0;var fG=zn(),WC=Ce(),xv=Ge(),dG=Mt(),Wl=Ht(),hG={rdf:Wl.Namespace.RDF.iri.value,rdfs:Wl.Namespace.RDFS.iri.value,owl:Wl.Namespace.OWL.iri.value,xsd:Wl.Namespace.XSD.iri.value,exo:Wl.Namespace.EXO.iri.value,ems:Wl.Namespace.EMS.iri.value},Iv=class{static{a(this,"NTriplesParser")}parse(e,t={}){let r={prefixes:{...hG,...t.prefixes??{}},strict:t.strict??!1},i=[];return e.split(/\r?\n/).forEach((o,c)=>{let l=o.trim();!l||l.startsWith("#")||i.push(this.parseLine(l,c+1,r))}),i}parseLine(e,t,r){if(!e.endsWith("."))throw new Error(`Invalid RDF statement at line ${t}: missing '.' terminator`);let s=e.slice(0,-1).trim(),o=this.parseSubject(s,t,r);s=o.rest.trim();let c=this.parsePredicate(s,t,r);s=c.rest.trim();let l=this.parseObject(s,t,r);if(s=l.rest.trim(),s.length>0)throw new Error(`Unexpected tokens after object at line ${t}`);return new fG.Triple(o.node,c.node,l.node)}parseSubject(e,t,r){return e.startsWith("<")?this.consumeIRI(e,t,r):e.startsWith("_:")?this.consumeBlankNode(e,t):this.consumePrefixedName(e,t,r)}parsePredicate(e,t,r){return e.startsWith("<")?this.consumeIRI(e,t,r):this.consumePrefixedName(e,t,r)}parseObject(e,t,r){return e.startsWith("<")?this.consumeIRI(e,t,r):e.startsWith("_:")?this.consumeBlankNode(e,t):e.startsWith('"')?this.consumeLiteral(e,t,r):this.consumePrefixedName(e,t,r)}consumePrefixedName(e,t,r){let i=e.match(/^([a-zA-Z_][\w-]*):([^\s]+)(?:\s+(.*))?$/);if(!i)throw new Error(`Invalid token at line ${t}: ${e}`);let[,s,o,c]=i,l=r.prefixes[s];if(!l)throw new Error(`Unknown prefix "${s}" at line ${t}`);return{node:new WC.IRI(`${l}${o}`),rest:(c??"").trimStart()}}consumeIRI(e,t,r){let i=this.findClosingBracket(e,"<",">");if(i===-1)throw new Error(`Invalid IRI at line ${t}`);let s=e.slice(1,i),o=new WC.IRI(s),c=e.slice(i+1).trimStart();return{node:o,rest:c}}consumeBlankNode(e,t){let r=e.match(/^_:(\w+)(?:\s+(.*))?$/);if(!r)throw new Error(`Invalid blank node identifier at line ${t}`);let[,i,s]=r;return{node:new dG.BlankNode(i),rest:(s??"").trimStart()}}consumeLiteral(e,t,r){let{value:i,rest:s}=this.consumeQuotedString(e,t),o=s.trimStart();if(o.startsWith("^^")){o=o.slice(2).trimStart();let c=o.startsWith("<")?this.consumeIRI(o,t,r):this.consumePrefixedName(o,t,r);return{node:new xv.Literal(i,c.node),rest:c.rest}}if(o.startsWith("@")){let c=o.match(/^@([a-zA-Z-]+)(?:\s+(.*))?$/);if(!c)throw new Error(`Invalid language tag at line ${t}`);let[,l,u]=c;return{node:new xv.Literal(i,void 0,l),rest:(u??"").trimStart()}}return{node:new xv.Literal(i),rest:o}}consumeQuotedString(e,t){if(!e.startsWith('"'))throw new Error(`Expected quoted string at line ${t}`);let r="";for(let i=1;i<e.length;i++){let s=e[i];if(s==="\\"){if(i+1>=e.length)throw new Error(`Invalid escape sequence at line ${t}`);let o=e[i+1];switch(o){case"t":r+=" ",i+=1;break;case"b":r+="\b",i+=1;break;case"n":r+=`
221
- `,i+=1;break;case"r":r+="\r",i+=1;break;case"f":r+="\f",i+=1;break;case'"':r+='"',i+=1;break;case"\\":r+="\\",i+=1;break;case"u":{let c=e.slice(i+2,i+6);if(c.length!==4||!/^[0-9a-fA-F]{4}$/.test(c))throw new Error(`Invalid \\u escape at line ${t}`);r+=String.fromCharCode(parseInt(c,16)),i+=5;break}case"U":{let c=e.slice(i+2,i+10);if(c.length!==8||!/^[0-9a-fA-F]{8}$/.test(c))throw new Error(`Invalid \\U escape at line ${t}`);r+=String.fromCodePoint(parseInt(c,16)),i+=9;break}default:throw new Error(`Unknown escape sequence \\${o} at line ${t}`)}continue}if(s==='"'){let o=e.slice(i+1);return{value:r,rest:o}}r+=s}throw new Error(`Unterminated string literal at line ${t}`)}findClosingBracket(e,t,r){let i=0;for(let s=0;s<e.length;s++){let o=e[s];if(o===t){i++;continue}if(o===r&&(i--,i===0))return s}return-1}};_g.NTriplesParser=Iv});var HC=v(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.TurtleParser=void 0;var Hl=Ht(),pG=Rv(),mG={rdf:Hl.Namespace.RDF.iri.value,rdfs:Hl.Namespace.RDFS.iri.value,owl:Hl.Namespace.OWL.iri.value,xsd:Hl.Namespace.XSD.iri.value,exo:Hl.Namespace.EXO.iri.value,ems:Hl.Namespace.EMS.iri.value},gG=/^@prefix\s+([a-zA-Z_][\w-]*):\s*<([^>]+)>\s*\.$/,Cv=class{static{a(this,"TurtleParser")}constructor(){this.nTriplesParser=new pG.NTriplesParser}parse(e,t={}){let r={...mG,...t.prefixes??{}},i=this.collectStatements(e),s=[];return i.forEach(({statement:o,lineNumber:c})=>{if(this.isPrefixStatement(o)){let u=o.match(gG);if(!u)throw new Error(`Invalid prefix declaration at line ${c}`);let[,f,d]=u;r[f]=d;return}if(o.includes(";")||o.includes(","))throw new Error(`Complex Turtle statements with ';' or ',' are not supported (line ${c})`);let l=this.normalizeShortcuts(o);s.push(this.nTriplesParser.parseLine(l,c,{prefixes:r,strict:!1}))}),s}collectStatements(e){let t=e.split(/\r?\n/),r=[],i="",s=0;if(t.forEach((o,c)=>{let l=o.trim();!l||l.startsWith("#")||(i||(s=c+1),i=i?`${i} ${l}`:l,l.endsWith(".")&&(r.push({statement:i,lineNumber:s}),i=""))}),i)throw new Error(`Unterminated Turtle statement near line ${s}`);return r}isPrefixStatement(e){return e.startsWith("@prefix")}normalizeShortcuts(e){return e.includes(" a ")?e.replace(/\sa\s/g," rdf:type "):e}};wg.TurtleParser=Cv});var zC=v(Sg=>{"use strict";Object.defineProperty(Sg,"__esModule",{value:!0});Sg.RDFSerializer=void 0;var zl=zn(),pc=Ce(),mc=Ge(),Ov=Mt(),As=Ht(),yG=BC(),bG=Ev(),_G=GC(),wG=HC(),SG=Rv(),vG=1024,EG=`
218
+ PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>`});var wv=v(Jr=>{"use strict";var rG=Jr&&Jr.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},nG=Jr&&Jr.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},iG=Jr&&Jr.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Jr,"__esModule",{value:!0});Jr.CriticalityZoneService=Jr.CriticalityZoneUUIDs=void 0;var j3=Ve(),sG=ws(),oG=Ut();Jr.CriticalityZoneUUIDs={TODAY:"e266a2e9-9eb0-431d-b1fe-b95b9d3e9a3f",THIS_WEEK:"c7f1a968-0959-4ac7-ac82-31b0cdc2aba7",SOMEDAY:"6968a0fc-7a41-4393-82b1-17d767c7ad7c"};var _v=class{static{a(this,"CriticalityZoneService")}constructor(e){this.vault=e,this.frontmatterService=new sG.FrontmatterService}async setZoneToday(e){await this.setZone(e,Jr.CriticalityZoneUUIDs.TODAY)}async setZoneThisWeek(e){await this.setZone(e,Jr.CriticalityZoneUUIDs.THIS_WEEK)}async setZoneSomeday(e){await this.setZone(e,Jr.CriticalityZoneUUIDs.SOMEDAY)}async setZone(e,t){let r=await this.vault.read(e),i=this.frontmatterService.updateProperty(r,"ems__Task_zone",`"[[${t}]]"`);await this.vault.modify(e,i)}};Jr.CriticalityZoneService=_v;Jr.CriticalityZoneService=_v=rG([(0,j3.injectable)(),iG(0,(0,j3.inject)(oG.DI_TOKENS.IVaultAdapter)),nG("design:paramtypes",[Object])],_v)});var $3=v(pg=>{"use strict";Object.defineProperty(pg,"__esModule",{value:!0});pg.EffortSortingHelpers=void 0;var Sv=class n{static{a(this,"EffortSortingHelpers")}static getTimeFromTimestamp(e){if(!e)return"00:00:00";let t=new Date(e);if(isNaN(t.getTime()))return"00:00:00";let r=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),s=String(t.getSeconds()).padStart(2,"0");return`${r}:${i}:${s}`}static sortByStartTime(e,t){let r=n.getTimeFromTimestamp(e.startTimestamp),i=n.getTimeFromTimestamp(t.startTimestamp),s=r==="00:00:00",o=i==="00:00:00";return s&&!o?1:!s&&o?-1:r.localeCompare(i)}static sortByPriority(e,t){if(e.isTrashed!==t.isTrashed)return e.isTrashed?1:-1;if(e.isDone!==t.isDone)return e.isDone?1:-1;let r=typeof e.metadata.ems__Effort_votes=="number"?e.metadata.ems__Effort_votes:0,i=typeof t.metadata.ems__Effort_votes=="number"?t.metadata.ems__Effort_votes:0;return r!==i?i-r:e.startTime&&t.startTime?e.startTime.localeCompare(t.startTime):e.startTime?-1:t.startTime?1:0}};pg.EffortSortingHelpers=Sv});var U3=v(mg=>{"use strict";Object.defineProperty(mg,"__esModule",{value:!0});mg.FilenameValidator=void 0;var hc=class{static{a(this,"FilenameValidator")}static validate(e,t={}){let{maxLength:r=this.DEFAULT_MAX_LENGTH,replacementChar:i=this.DEFAULT_REPLACEMENT,allowEmpty:s=!1}=t,o=[];if(!e||e.trim().length===0)return s||o.push("Filename cannot be empty"),{valid:o.length===0,sanitized:"",errors:o};e.endsWith(" ")&&o.push("Filename should not end with a space");let c=e.trim();this.INVALID_CHARS_PATTERN.test(c)&&o.push('Filename contains invalid characters: / \\ : * ? " < > |');let l=this.getBaseName(c);this.RESERVED_NAMES.has(l.toUpperCase())&&o.push(`"${l}" is a reserved filename on Windows`),c.length>r&&o.push(`Filename exceeds maximum length of ${r} characters`),c.startsWith(".")&&o.push("Filename should not start with a dot"),c.endsWith(".")&&o.push("Filename should not end with a dot");let u=this.sanitize(e,{maxLength:r,replacementChar:i});return{valid:o.length===0,sanitized:u,errors:o}}static sanitize(e,t={}){let{maxLength:r=this.DEFAULT_MAX_LENGTH,replacementChar:i=this.DEFAULT_REPLACEMENT}=t;if(!e||e.trim().length===0)return"";let s=e.trim();for(s=s.replace(this.INVALID_CHARS_PATTERN,i);s.startsWith(".")&&s.length>1;)s=s.substring(1);for(;s.length>0&&(s.endsWith(".")||s.endsWith(" "));)s=s.slice(0,-1);for(s.includes(i)&&(s=s.split(i).filter(u=>u!=="").join(i));s.startsWith(i);)s=s.slice(i.length);for(;s.endsWith(i);)s=s.slice(0,-i.length);let o=this.getBaseName(s);if(this.RESERVED_NAMES.has(o.toUpperCase())){let c=this.getExtension(s);s=o+i+c}if(s.length>r)for(s=s.slice(0,r);s.endsWith(i);)s=s.slice(0,-i.length);return s}static hasInvalidChars(e){return this.INVALID_CHARS_PATTERN.test(e)}static getInvalidChars(e){let t=e.match(this.INVALID_CHARS_PATTERN);return t?[...new Set(t)]:[]}static getBaseName(e){let t=e.lastIndexOf(".");return t===-1||t===0?e:e.substring(0,t)}static getExtension(e){let t=e.lastIndexOf(".");return t===-1||t===0?"":e.substring(t)}};mg.FilenameValidator=hc;hc.INVALID_CHARS_PATTERN=/[/\\:*?"<>|\x00-\x1F]/g;hc.RESERVED_NAMES=new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]);hc.DEFAULT_MAX_LENGTH=200;hc.DEFAULT_REPLACEMENT="_"});var Ev=v(gg=>{"use strict";Object.defineProperty(gg,"__esModule",{value:!0});gg.NTriplesSerializer=void 0;var vv=class{static{a(this,"NTriplesSerializer")}serialize(e,t={}){let r=t.newline??`
219
+ `;return e.length===0?"":e.map(i=>i.toString()).join(r)+r}serializeChunk(e,t){return e.length===0?"":e.map(r=>r.toString()).join(t)+t}};gg.NTriplesSerializer=vv});var B3=v(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0});yg.TurtleSerializer=void 0;var ql=Ht(),aG=Ev(),cG={rdf:ql.Namespace.RDF.iri.value,rdfs:ql.Namespace.RDFS.iri.value,owl:ql.Namespace.OWL.iri.value,xsd:ql.Namespace.XSD.iri.value,exo:ql.Namespace.EXO.iri.value,ems:ql.Namespace.EMS.iri.value},Tv=class{static{a(this,"TurtleSerializer")}constructor(){this.nTriplesSerializer=new aG.NTriplesSerializer}serialize(e,t={}){let r=t.newline??`
220
+ `,i=this.composePrefixes(t),s=this.serializePrefixes(i,r),o=this.nTriplesSerializer.serialize(e,{newline:r}).trimEnd();return s?o?`${s}${r}${r}${o}${r}`:`${s}${r}`:o?`${o}${r}`:""}serializePrefixes(e,t){let r=Object.entries(e);return r.length===0?"":r.map(([i,s])=>`@prefix ${i}: <${s}> .`).join(t)}composePrefixes(e){return e.includeDefaultPrefixes??!0?{...cG,...e.prefixes??{}}:{...e.prefixes??{}}}serializeTriplesOnly(e,t){return this.nTriplesSerializer.serializeChunk(e,t).trimEnd()}};yg.TurtleSerializer=Tv});var G3=v(bg=>{"use strict";Object.defineProperty(bg,"__esModule",{value:!0});bg.JSONLDSerializer=void 0;var V3=Ce(),q3=Mt(),lG=Ge(),Gl=Ht(),uG={rdf:Gl.Namespace.RDF.iri.value,rdfs:Gl.Namespace.RDFS.iri.value,owl:Gl.Namespace.OWL.iri.value,xsd:Gl.Namespace.XSD.iri.value,exo:Gl.Namespace.EXO.iri.value,ems:Gl.Namespace.EMS.iri.value},Av=class{static{a(this,"JSONLDSerializer")}toDocument(e,t={}){let r={...uG,...t.context??{}},i=new Map;for(let s of e){let o=this.subjectToId(s.subject),c=this.compactIri(s.predicate.value,r),l=this.objectToJSONLD(s.object,r),u=i.get(o)??{"@id":o},f=u[c];f===void 0?u[c]=l:Array.isArray(f)?f.push(l):u[c]=[f,l],i.set(o,u)}return{"@context":r,"@graph":Array.from(i.values())}}serialize(e,t={}){let r=this.toDocument(e,t),i=t.pretty?t.indent??2:void 0;return JSON.stringify(r,null,i)}subjectToId(e){return e instanceof V3.IRI?e.value:e instanceof q3.BlankNode?`_:${e.id}`:String(e)}compactIri(e,t){for(let[r,i]of Object.entries(t))if(e.startsWith(i)){let s=e.slice(i.length);if(s.length>0)return`${r}:${s}`}return e}objectToJSONLD(e,t){if(e instanceof V3.IRI)return{"@id":e.value};if(e instanceof q3.BlankNode)return{"@id":`_:${e.id}`};if(e instanceof lG.Literal){let r={"@value":e.value};return e.datatype?r["@type"]=this.compactIri(e.datatype.value,t):e.language&&(r["@language"]=e.language,e.hasDirection()&&e.direction&&(r["@direction"]=e.direction)),r}return e}};bg.JSONLDSerializer=Av});var Rv=v(_g=>{"use strict";Object.defineProperty(_g,"__esModule",{value:!0});_g.NTriplesParser=void 0;var fG=zn(),W3=Ce(),xv=Ge(),dG=Mt(),Wl=Ht(),hG={rdf:Wl.Namespace.RDF.iri.value,rdfs:Wl.Namespace.RDFS.iri.value,owl:Wl.Namespace.OWL.iri.value,xsd:Wl.Namespace.XSD.iri.value,exo:Wl.Namespace.EXO.iri.value,ems:Wl.Namespace.EMS.iri.value},Iv=class{static{a(this,"NTriplesParser")}parse(e,t={}){let r={prefixes:{...hG,...t.prefixes??{}},strict:t.strict??!1},i=[];return e.split(/\r?\n/).forEach((o,c)=>{let l=o.trim();!l||l.startsWith("#")||i.push(this.parseLine(l,c+1,r))}),i}parseLine(e,t,r){if(!e.endsWith("."))throw new Error(`Invalid RDF statement at line ${t}: missing '.' terminator`);let s=e.slice(0,-1).trim(),o=this.parseSubject(s,t,r);s=o.rest.trim();let c=this.parsePredicate(s,t,r);s=c.rest.trim();let l=this.parseObject(s,t,r);if(s=l.rest.trim(),s.length>0)throw new Error(`Unexpected tokens after object at line ${t}`);return new fG.Triple(o.node,c.node,l.node)}parseSubject(e,t,r){return e.startsWith("<")?this.consumeIRI(e,t,r):e.startsWith("_:")?this.consumeBlankNode(e,t):this.consumePrefixedName(e,t,r)}parsePredicate(e,t,r){return e.startsWith("<")?this.consumeIRI(e,t,r):this.consumePrefixedName(e,t,r)}parseObject(e,t,r){return e.startsWith("<")?this.consumeIRI(e,t,r):e.startsWith("_:")?this.consumeBlankNode(e,t):e.startsWith('"')?this.consumeLiteral(e,t,r):this.consumePrefixedName(e,t,r)}consumePrefixedName(e,t,r){let i=e.match(/^([a-zA-Z_][\w-]*):([^\s]+)(?:\s+(.*))?$/);if(!i)throw new Error(`Invalid token at line ${t}: ${e}`);let[,s,o,c]=i,l=r.prefixes[s];if(!l)throw new Error(`Unknown prefix "${s}" at line ${t}`);return{node:new W3.IRI(`${l}${o}`),rest:(c??"").trimStart()}}consumeIRI(e,t,r){let i=this.findClosingBracket(e,"<",">");if(i===-1)throw new Error(`Invalid IRI at line ${t}`);let s=e.slice(1,i),o=new W3.IRI(s),c=e.slice(i+1).trimStart();return{node:o,rest:c}}consumeBlankNode(e,t){let r=e.match(/^_:(\w+)(?:\s+(.*))?$/);if(!r)throw new Error(`Invalid blank node identifier at line ${t}`);let[,i,s]=r;return{node:new dG.BlankNode(i),rest:(s??"").trimStart()}}consumeLiteral(e,t,r){let{value:i,rest:s}=this.consumeQuotedString(e,t),o=s.trimStart();if(o.startsWith("^^")){o=o.slice(2).trimStart();let c=o.startsWith("<")?this.consumeIRI(o,t,r):this.consumePrefixedName(o,t,r);return{node:new xv.Literal(i,c.node),rest:c.rest}}if(o.startsWith("@")){let c=o.match(/^@([a-zA-Z-]+)(?:\s+(.*))?$/);if(!c)throw new Error(`Invalid language tag at line ${t}`);let[,l,u]=c;return{node:new xv.Literal(i,void 0,l),rest:(u??"").trimStart()}}return{node:new xv.Literal(i),rest:o}}consumeQuotedString(e,t){if(!e.startsWith('"'))throw new Error(`Expected quoted string at line ${t}`);let r="";for(let i=1;i<e.length;i++){let s=e[i];if(s==="\\"){if(i+1>=e.length)throw new Error(`Invalid escape sequence at line ${t}`);let o=e[i+1];switch(o){case"t":r+=" ",i+=1;break;case"b":r+="\b",i+=1;break;case"n":r+=`
221
+ `,i+=1;break;case"r":r+="\r",i+=1;break;case"f":r+="\f",i+=1;break;case'"':r+='"',i+=1;break;case"\\":r+="\\",i+=1;break;case"u":{let c=e.slice(i+2,i+6);if(c.length!==4||!/^[0-9a-fA-F]{4}$/.test(c))throw new Error(`Invalid \\u escape at line ${t}`);r+=String.fromCharCode(parseInt(c,16)),i+=5;break}case"U":{let c=e.slice(i+2,i+10);if(c.length!==8||!/^[0-9a-fA-F]{8}$/.test(c))throw new Error(`Invalid \\U escape at line ${t}`);r+=String.fromCodePoint(parseInt(c,16)),i+=9;break}default:throw new Error(`Unknown escape sequence \\${o} at line ${t}`)}continue}if(s==='"'){let o=e.slice(i+1);return{value:r,rest:o}}r+=s}throw new Error(`Unterminated string literal at line ${t}`)}findClosingBracket(e,t,r){let i=0;for(let s=0;s<e.length;s++){let o=e[s];if(o===t){i++;continue}if(o===r&&(i--,i===0))return s}return-1}};_g.NTriplesParser=Iv});var H3=v(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.TurtleParser=void 0;var Hl=Ht(),pG=Rv(),mG={rdf:Hl.Namespace.RDF.iri.value,rdfs:Hl.Namespace.RDFS.iri.value,owl:Hl.Namespace.OWL.iri.value,xsd:Hl.Namespace.XSD.iri.value,exo:Hl.Namespace.EXO.iri.value,ems:Hl.Namespace.EMS.iri.value},gG=/^@prefix\s+([a-zA-Z_][\w-]*):\s*<([^>]+)>\s*\.$/,Cv=class{static{a(this,"TurtleParser")}constructor(){this.nTriplesParser=new pG.NTriplesParser}parse(e,t={}){let r={...mG,...t.prefixes??{}},i=this.collectStatements(e),s=[];return i.forEach(({statement:o,lineNumber:c})=>{if(this.isPrefixStatement(o)){let u=o.match(gG);if(!u)throw new Error(`Invalid prefix declaration at line ${c}`);let[,f,d]=u;r[f]=d;return}if(o.includes(";")||o.includes(","))throw new Error(`Complex Turtle statements with ';' or ',' are not supported (line ${c})`);let l=this.normalizeShortcuts(o);s.push(this.nTriplesParser.parseLine(l,c,{prefixes:r,strict:!1}))}),s}collectStatements(e){let t=e.split(/\r?\n/),r=[],i="",s=0;if(t.forEach((o,c)=>{let l=o.trim();!l||l.startsWith("#")||(i||(s=c+1),i=i?`${i} ${l}`:l,l.endsWith(".")&&(r.push({statement:i,lineNumber:s}),i=""))}),i)throw new Error(`Unterminated Turtle statement near line ${s}`);return r}isPrefixStatement(e){return e.startsWith("@prefix")}normalizeShortcuts(e){return e.includes(" a ")?e.replace(/\sa\s/g," rdf:type "):e}};wg.TurtleParser=Cv});var z3=v(Sg=>{"use strict";Object.defineProperty(Sg,"__esModule",{value:!0});Sg.RDFSerializer=void 0;var zl=zn(),pc=Ce(),mc=Ge(),Ov=Mt(),As=Ht(),yG=B3(),bG=Ev(),_G=G3(),wG=H3(),SG=Rv(),vG=1024,EG=`
222
222
  `,TG={rdf:As.Namespace.RDF.iri.value,rdfs:As.Namespace.RDFS.iri.value,owl:As.Namespace.OWL.iri.value,xsd:As.Namespace.XSD.iri.value,exo:As.Namespace.EXO.iri.value,ems:As.Namespace.EMS.iri.value},Pv=class{static{a(this,"RDFSerializer")}constructor(e){this.store=e,this.turtleSerializer=new yG.TurtleSerializer,this.nTriplesSerializer=new bG.NTriplesSerializer,this.jsonldSerializer=new _G.JSONLDSerializer,this.turtleParser=new wG.TurtleParser,this.nTriplesParser=new SG.NTriplesParser}async serialize(e,t={}){let r=await this.store.match();return this.serializeTriples(r,e,t)}serializeTriples(e,t,r={}){switch(t){case"turtle":return this.turtleSerializer.serialize(e,{prefixes:r.prefixes,includeDefaultPrefixes:r.includeDefaultPrefixes,newline:r.newline});case"n-triples":return this.nTriplesSerializer.serialize(e,{newline:r.newline});case"json-ld":return this.jsonldSerializer.serialize(e,{context:r.prefixes,pretty:r.pretty,indent:r.indent});default:throw new Error(`Unsupported serialization format: ${t}`)}}stream(e,t={}){let r=t.newline??EG,i=t.batchSize??vG,s=t.includeDefaultPrefixes,o=t.prefixes,c=this,l=!1,u=[],f=[],d=0,h=a(async()=>{if(!l){if(f=await c.store.match(),e==="json-ld"){let y=c.jsonldSerializer.toDocument(f,{context:o,pretty:!1});u.push(...c.buildJsonLdChunks(y))}else if(e==="turtle"){let y=c.turtleSerializer.serializePrefixes(c.composePrefixes(o,s),r);y&&u.push(`${y}${r}${r}`)}l=!0}},"ensureInitialized");return{async next(){if(await h(),u.length>0)return{value:u.shift(),done:!1};if(e==="json-ld")return{value:void 0,done:!0};if(d>=f.length)return{value:void 0,done:!0};let y=f.slice(d,d+i);d+=y.length;let g="";if(e==="turtle"){let b=c.turtleSerializer.serializeTriplesOnly(y,r);b&&(g=`${b}${r}`)}else e==="n-triples"&&(g=c.nTriplesSerializer.serializeChunk(y,r));return g?{value:g,done:!1}:this.next()},async return(){return u=[],f=[],d=0,{value:void 0,done:!0}},[Symbol.asyncIterator](){return this}}}async load(e,t,r={}){let i=this.parse(e,t,r);return r.mode!=="append"&&await this.store.clear(),await this.store.addAll(i),i.length}parse(e,t,r={}){switch(t){case"turtle":return this.turtleParser.parse(e,this.buildTurtleParseOptions(r));case"n-triples":return this.nTriplesParser.parse(e,this.buildNTriplesParseOptions(r));case"json-ld":return this.parseJsonLd(e,r);default:throw new Error(`Unsupported serialization format: ${t}`)}}buildTurtleParseOptions(e){return{prefixes:this.composePrefixes(e.prefixes,!0),strict:e.strict}}buildNTriplesParseOptions(e){return{prefixes:this.composePrefixes(e.prefixes,!0),strict:e.strict}}composePrefixes(e,t){return t??!0?{...TG,...e??{}}:{...e??{}}}parseJsonLd(e,t){let r;try{r=JSON.parse(e)}catch(u){throw new Error(`Invalid JSON-LD document: ${u.message}`)}let i=this.composePrefixes(t.prefixes,!0),s=this.extractContext(r),o={...i,...s},c=this.extractGraph(r),l=[];return c.forEach((u,f)=>{if(!u||typeof u!="object"||Array.isArray(u))throw new Error(`Invalid JSON-LD node at index ${f}`);let d=this.parseSubjectFromNode(u,o,f),h=Object.entries(u);for(let[p,y]of h){if(p==="@id"||p==="@context")continue;if(p==="@type"){this.collectTypeTriples(d,y,l,o);continue}let g=this.expandTerm(p,o),b=new pc.IRI(g);this.collectTriplesForValue(d,b,y,l,o)}}),l}extractContext(e){if(!e||typeof e!="object"||Array.isArray(e))return{};let t=e["@context"];if(!t||typeof t!="object"||Array.isArray(t))return{};let r={};return Object.entries(t).forEach(([i,s])=>{typeof s=="string"&&(r[i]=s)}),r}extractGraph(e){if(Array.isArray(e))return e;if(!e||typeof e!="object")return[];let t=e["@graph"];return Array.isArray(t)?t:[e]}parseSubjectFromNode(e,t,r){let i=e["@id"];if(typeof i=="string"){if(i.startsWith("_:"))return new Ov.BlankNode(i.slice(2));if(this.isAbsoluteIri(i))return new pc.IRI(i);let s=this.expandTerm(i,t);return new pc.IRI(s)}return new Ov.BlankNode(`jsonld_${r}`)}collectTypeTriples(e,t,r,i){let s=As.Namespace.RDF.term("type");(Array.isArray(t)?t:[t]).forEach(c=>{if(typeof c!="string")throw new Error("Invalid @type value in JSON-LD node");let l=this.expandTerm(c,i);r.push(new zl.Triple(e,s,new pc.IRI(l)))})}collectTriplesForValue(e,t,r,i,s){if(r!=null){if(Array.isArray(r)){r.forEach(o=>this.collectTriplesForValue(e,t,o,i,s));return}if(typeof r=="object"){let o=r;if(typeof o["@id"]=="string"){let c=this.parseIdNode(o["@id"],s);i.push(new zl.Triple(e,t,c));return}if(o["@value"]!==void 0){let c=this.parseLiteralObject(o,s);i.push(new zl.Triple(e,t,c));return}}if(typeof r=="string"){i.push(new zl.Triple(e,t,new mc.Literal(r)));return}if(typeof r=="number"){let o=Number.isInteger(r)?As.Namespace.XSD.term("integer"):As.Namespace.XSD.term("decimal");i.push(new zl.Triple(e,t,new mc.Literal(r.toString(),o)));return}if(typeof r=="boolean"){let o=As.Namespace.XSD.term("boolean");i.push(new zl.Triple(e,t,new mc.Literal(r.toString(),o)));return}throw new Error("Unsupported JSON-LD value encountered")}}parseIdNode(e,t){if(e.startsWith("_:"))return new Ov.BlankNode(e.slice(2));if(this.isAbsoluteIri(e))return new pc.IRI(e);let r=this.expandTerm(e,t);return new pc.IRI(r)}parseLiteralObject(e,t){let r=e["@value"];if(typeof r!="string")throw new Error("JSON-LD literal values must be strings");if(typeof e["@language"]=="string"){let i=e["@direction"];return i==="ltr"||i==="rtl"?new mc.Literal(r,void 0,e["@language"],i):new mc.Literal(r,void 0,e["@language"])}if(typeof e["@type"]=="string"){let i=this.expandTerm(e["@type"],t);return new mc.Literal(r,new pc.IRI(i))}return new mc.Literal(r)}expandTerm(e,t){if(this.isAbsoluteIri(e))return e;let r=e.indexOf(":");if(r>0){let s=e.slice(0,r),o=e.slice(r+1),c=t[s];if(!c)throw new Error(`Unknown prefix "${s}" in JSON-LD document`);return`${c}${o}`}let i=t["@vocab"];if(i)return`${i}${e}`;throw new Error(`Unable to expand JSON-LD term "${e}"`)}isAbsoluteIri(e){return/^[a-z][a-z0-9+.-]*:/i.test(e)}buildJsonLdChunks(e){let t=[],r=JSON.stringify(e["@context"]);return t.push(`{"@context":${r},"@graph":[`),e["@graph"].forEach((i,s)=>{let o=JSON.stringify(i);s>0?t.push(`,${o}`):t.push(o)}),t.push(`]}
223
- `),t}};Sg.RDFSerializer=Pv});var Fv=v(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.OBSIDIAN_VAULT_SCHEME=void 0;To.vaultPathToIRI=AG;To.iriToVaultPath=xG;To.OBSIDIAN_VAULT_SCHEME="obsidian://vault/";function AG(n){let e=n.startsWith("./")?n.slice(2):n;return`${To.OBSIDIAN_VAULT_SCHEME}${encodeURI(e)}`}a(AG,"vaultPathToIRI");function xG(n){if(!n.startsWith(To.OBSIDIAN_VAULT_SCHEME))return null;let e=n.slice(To.OBSIDIAN_VAULT_SCHEME.length);try{return decodeURI(e)}catch{return null}}a(xG,"iriToVaultPath")});var Lv=v(vg=>{"use strict";Object.defineProperty(vg,"__esModule",{value:!0});vg.RDFVocabularyMapper=void 0;var ar=zn(),KC=Ce(),he=Ht(),Dv=class{static{a(this,"RDFVocabularyMapper")}constructor(){this.propertyMappings=new Map([["exo__Instance_class",he.Namespace.RDF.term("type")],["exo__Asset_isDefinedBy",he.Namespace.RDFS.term("isDefinedBy")],["exo__Class_superClass",he.Namespace.RDFS.term("subClassOf")],["exo__Property_range",he.Namespace.RDFS.term("range")],["exo__Property_domain",he.Namespace.RDFS.term("domain")],["exo__Property_superProperty",he.Namespace.RDFS.term("subPropertyOf")]])}generateClassHierarchyTriples(){let e=[];return e.push(new ar.Triple(he.Namespace.EXO.term("Asset"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.RDFS.term("Resource"))),e.push(new ar.Triple(he.Namespace.EXO.term("Class"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.RDFS.term("Class"))),e.push(new ar.Triple(he.Namespace.EXO.term("Property"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.RDF.term("Property"))),e.push(new ar.Triple(he.Namespace.EMS.term("Task"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EMS.term("Project"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EMS.term("Area"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EMS.term("Workflow"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EMS.term("WorkflowState"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EMS.term("WorkflowTransition"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EXOCMD.term("Command"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EXOCMD.term("Precondition"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EXOCMD.term("Grounding"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EXOCMD.term("CommandBinding"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e}generatePropertyHierarchyTriples(){let e=[];return e.push(new ar.Triple(he.Namespace.EXO.term("Instance_class"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDF.term("type"))),e.push(new ar.Triple(he.Namespace.EXO.term("Asset_isDefinedBy"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDFS.term("isDefinedBy"))),e.push(new ar.Triple(he.Namespace.EXO.term("Class_superClass"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDFS.term("subClassOf"))),e.push(new ar.Triple(he.Namespace.EXO.term("Property_range"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDFS.term("range"))),e.push(new ar.Triple(he.Namespace.EXO.term("Property_domain"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDFS.term("domain"))),e.push(new ar.Triple(he.Namespace.EXO.term("Property_superProperty"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDFS.term("subPropertyOf"))),e}generateMappedTriple(e,t,r){let i=this.propertyMappings.get(t);if(!i)return null;let s;if(r instanceof KC.IRI)s=r;else{let o=r.match(/^(ems|exo|exocmd)__(.+)$/);if(o){let[,c,l]=o;s=(c==="ems"?he.Namespace.EMS:c==="exocmd"?he.Namespace.EXOCMD:he.Namespace.EXO).term(l)}else s=new KC.IRI(r)}return new ar.Triple(e,i,s)}hasMappingFor(e){return this.propertyMappings.has(e)}};vg.RDFVocabularyMapper=Dv});var XC=v(Tg=>{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0});Tg.RDFSInferenceEngine=void 0;var IG=zn(),Eg=Ce(),Nv=class{static{a(this,"RDFSInferenceEngine")}async materialize(e){let t=await e.predicates(),r=t.find(d=>d.value.includes("Class_superClass")),i=t.find(d=>d.value.includes("Instance_class"));if(!r||!i)return 0;let s=await this.buildDirectParentMap(e,r);if(s.size===0)return 0;let o=this.computeAllAncestors(s),c=await e.count(),l=await e.match(void 0,i),u=[];for(let d of l)if(d.object instanceof Eg.IRI){let h=o.get(d.object.value);if(h)for(let p of h)u.push(new IG.Triple(d.subject,i,new Eg.IRI(p)))}return u.length>0&&await e.addAll(u),await e.count()-c}async buildDirectParentMap(e,t){let r=await e.match(void 0,t),i=new Map;for(let s of r)if(s.subject instanceof Eg.IRI&&s.object instanceof Eg.IRI){let o=s.subject.value,c=s.object.value;i.has(o)||i.set(o,new Set),i.get(o).add(c)}return i}computeAllAncestors(e){let t=new Map;for(let r of e.keys())t.has(r)||t.set(r,this.computeAncestorsBFS(r,e));return t}computeAncestorsBFS(e,t){let r=new Set,i=new Set,s=[],o=t.get(e);if(o)for(let c of o)s.push(c);for(;s.length>0;){let c=s.shift();if(i.has(c))continue;i.add(c),r.add(c);let l=t.get(c);if(l)for(let u of l)i.has(u)||s.push(u)}return r}};Tg.RDFSInferenceEngine=Nv});var jv=v(gc=>{"use strict";var RG=gc&&gc.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s};Object.defineProperty(gc,"__esModule",{value:!0});gc.NonInheritablePropertyRegistry=void 0;var CG=Ve(),YC=Ce(),QC=Ge(),kv=Ht(),Mv=class{static{a(this,"NonInheritablePropertyRegistry")}constructor(){this.nonInheritableIRIs=new Set,this.initialized=!1}async initialize(e){this.nonInheritableIRIs.clear();try{let t=await e.predicates(),r=t.find(c=>c.value.includes("Instance_class"));if(!r){this.initialized=!0;return}let i=await this.findNonInheritableClassIRI(e,t);if(!i){this.initialized=!0;return}let s=await e.match(void 0,r,i);if(s.length===0){this.initialized=!0;return}let o=t.find(c=>c.value.includes("Asset_label"));if(!o){this.initialized=!0;return}for(let c of s){let l=await e.match(c.subject,o,void 0);for(let u of l)if(u.object instanceof QC.Literal){let f=u.object.value,d=this.propertyKeyToIRI(f);d&&this.nonInheritableIRIs.add(d)}}}catch{}this.initialized=!0}isNonInheritable(e){return this.nonInheritableIRIs.has(e)}get size(){return this.nonInheritableIRIs.size}get isInitialized(){return this.initialized}async findNonInheritableClassIRI(e,t){let r=t.find(o=>o.value.includes("Asset_label"));if(!r)return null;let i=await e.match(void 0,r,new QC.Literal("exo__NonInheritableProperty"));if(i.length>0&&i[0].subject instanceof YC.IRI)return i[0].subject;let s=t.find(o=>o.value.includes("Instance_class"));if(s){let o=await e.match(void 0,s,void 0);for(let c of o)if(c.object instanceof YC.IRI&&c.object.value.includes("NonInheritableProperty"))return c.object}return null}propertyKeyToIRI(e){return e.startsWith("exo__")?kv.Namespace.EXO.term(e.substring(5)).value:e.startsWith("ems__")?kv.Namespace.EMS.term(e.substring(5)).value:e.startsWith("exocmd__")?kv.Namespace.EXOCMD.term(e.substring(8)).value:null}};gc.NonInheritablePropertyRegistry=Mv;gc.NonInheritablePropertyRegistry=Mv=RG([(0,CG.injectable)()],Mv)});var Bv=v(yc=>{"use strict";var OG=yc&&yc.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s};Object.defineProperty(yc,"__esModule",{value:!0});yc.PropertyCardinalityRegistry=void 0;var PG=Ve(),JC=Ce(),ZC=Ge(),$v=Ht(),Uv=class{static{a(this,"PropertyCardinalityRegistry")}constructor(){this.multiValuedIRIs=new Set,this.initialized=!1}async initialize(e){this.multiValuedIRIs.clear();try{let t=await e.predicates(),r=t.find(c=>c.value.includes("Property_cardinality"));if(!r){this.initialized=!0;return}let i=await this.findMultipleCardinalityIRI(e,t);if(!i){this.initialized=!0;return}let s=await e.match(void 0,r,i);if(s.length===0){this.initialized=!0;return}let o=t.find(c=>c.value.includes("Asset_label"));if(!o){this.initialized=!0;return}for(let c of s){let l=await e.match(c.subject,o,void 0);for(let u of l)if(u.object instanceof ZC.Literal){let f=u.object.value,d=this.propertyKeyToIRI(f);d&&this.multiValuedIRIs.add(d)}}}catch{}this.initialized=!0}isMultiValued(e){return this.multiValuedIRIs.has(e)}get size(){return this.multiValuedIRIs.size}get isInitialized(){return this.initialized}async findMultipleCardinalityIRI(e,t){let r=t.find(o=>o.value.includes("Asset_label"));if(!r)return null;let i=await e.match(void 0,r,new ZC.Literal("exo__PropertyCardinalityMultiple"));if(i.length>0&&i[0].subject instanceof JC.IRI)return i[0].subject;let s=t.find(o=>o.value.includes("Instance_class"));if(s){let o=await e.match(void 0,s,void 0);for(let c of o)if(c.object instanceof JC.IRI&&c.object.value.includes("PropertyCardinalityMultiple"))return c.object}return null}propertyKeyToIRI(e){return e.startsWith("exo__")?$v.Namespace.EXO.term(e.substring(5)).value:e.startsWith("ems__")?$v.Namespace.EMS.term(e.substring(5)).value:e.startsWith("exocmd__")?$v.Namespace.EXOCMD.term(e.substring(8)).value:null}};yc.PropertyCardinalityRegistry=Uv;yc.PropertyCardinalityRegistry=Uv=OG([(0,PG.injectable)()],Uv)});var Gv=v(xr=>{"use strict";var FG=xr&&xr.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},DG=xr&&xr.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(xr,"__esModule",{value:!0});xr.PrototypeChainMaterializer=xr.MAX_PROTOTYPE_DEPTH=xr.INFERRED_GRAPH=void 0;xr.inferredGraphForDepth=Vv;var LG=Ve(),eO=zn(),la=Ce(),NG=jv(),kG=Bv();xr.INFERRED_GRAPH=new la.IRI("https://exocortex.my/ontology/exo#inferred");var MG="https://exocortex.my/ontology/exo#inferred/";function Vv(n){return new la.IRI(`${MG}${n}`)}a(Vv,"inferredGraphForDepth");xr.MAX_PROTOTYPE_DEPTH=10;var qv=class{static{a(this,"PrototypeChainMaterializer")}constructor(e,t){this.registry=e,this.cardinalityRegistry=t??null}async materialize(e){let r=(await e.predicates()).find(c=>c.value.includes("Asset_prototype"));if(!r)return 0;let i=await e.match(void 0,r,void 0);if(i.length===0)return 0;let s=new Map;for(let c of i)if(c.subject instanceof la.IRI&&c.object instanceof la.IRI){let l=c.subject.value,u=c.object.value;l!==u&&s.set(l,c.object)}if(s.size===0)return 0;let o=0;for(let[c]of s){let l=new la.IRI(c),u=this.resolveChain(c,s);if(u.length===0)continue;let f=await e.match(l,void 0,void 0),d=new Set,h=new Map;for(let p of f)if(d.add(p.predicate.value),this.isMultiValued(p.predicate.value)){let y=p.object instanceof la.IRI?p.object.value:String(p.object),g=h.get(p.predicate.value);g||(g=new Set,h.set(p.predicate.value,g)),g.add(y)}for(let p=0;p<u.length;p++){let y=u[p],g=p+1,b=new la.IRI(y),_=await e.match(b,void 0,void 0),S=new Set;if(e.matchInGraph){let x=await e.matchInGraph(b,void 0,void 0,xr.INFERRED_GRAPH);for(let A of x)S.add(A.predicate.value)}for(let x of _){let A=x.predicate.value;if(this.registry.isNonInheritable(A)||S.has(A))continue;if(d.has(A)&&this.isMultiValued(A)){let R=x.object instanceof la.IRI?x.object.value:String(x.object);if(h.get(A)?.has(R))continue;let D=h.get(A);D||(D=new Set,h.set(A,D)),D.add(R);let O=new eO.Triple(l,x.predicate,x.object);await e.add(O),e.addToGraph&&(await e.addToGraph(O,xr.INFERRED_GRAPH),await e.addToGraph(O,Vv(g))),o++;continue}if(d.has(A))continue;let T=new eO.Triple(l,x.predicate,x.object);await e.add(T),e.addToGraph&&(await e.addToGraph(T,xr.INFERRED_GRAPH),await e.addToGraph(T,Vv(g))),d.add(A),o++}}}return o}isMultiValued(e){return this.cardinalityRegistry?this.cardinalityRegistry.isMultiValued(e):!1}resolveChain(e,t){let r=[],i=new Set;i.add(e);let s=[],o=t.get(e);for(o&&s.push(o.value);s.length>0&&r.length<xr.MAX_PROTOTYPE_DEPTH;){let c=s.shift();if(c===void 0)break;if(i.has(c))continue;i.add(c),r.push(c);let l=t.get(c);l&&!i.has(l.value)&&s.push(l.value)}return r}};xr.PrototypeChainMaterializer=qv;xr.PrototypeChainMaterializer=qv=FG([(0,LG.injectable)(),DG("design:paramtypes",[NG.NonInheritablePropertyRegistry,kG.PropertyCardinalityRegistry])],qv)});var rO=v(xg=>{"use strict";Object.defineProperty(xg,"__esModule",{value:!0});xg.IRICanonicalizer=void 0;var tO=Ce(),jG=Ge(),$G=Mt(),UG=zn(),Wv=/^obsidian:\/\/vault\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.md$/i,Ag=class n{static{a(this,"IRICanonicalizer")}static extractSynthAUid(e){let t=Wv.exec(e);return t?t[1].toLowerCase():null}static canonicalize(e,t){if(t.size===0)return{triples:e,remapCount:0,uniqueRemapCount:0};let r=new Map,i=new Set,s=0;return{triples:e.map(c=>{let l=n.remapIfSynthA(c.subject,t,r,i),u=n.remapIfSynthA(c.object,t,r,i);return l===c.subject&&u===c.object?c:(s++,new UG.Triple(l,c.predicate,u))}),remapCount:s,uniqueRemapCount:i.size}}static remapIfSynthA(e,t,r,i){if(e instanceof jG.Literal||e instanceof $G.BlankNode||!(e instanceof tO.IRI))return e;let s=Wv.exec(e.value);if(!s)return e;let o=s[1].toLowerCase(),c=t.get(o);if(!c||c===e.value)return e;i.add(o);let l=r.get(c);return l||(l=new tO.IRI(c),r.set(c,l)),l}};xg.IRICanonicalizer=Ag;Ag.SYNTH_A_IRI_PATTERN=Wv});var Rg=v(Ig=>{"use strict";Object.defineProperty(Ig,"__esModule",{value:!0});Ig.derivePath=sO;Ig.deriveLegacyFlatPath=BG;var iO="assetspaces",nO=/^[A-Za-z0-9._-]+$/;function sO(n){if(typeof n!="string")return null;let e=n.trim();if(e.length===0||/^file:\/\//i.test(e))return null;e=e.replace(/\/+$/,""),e=e.replace(/\.git$/i,"");let t=null;if(!e.includes("://")){let o=/^[^/@\s]+@[^/:\s]+:(.+)$/.exec(e);o&&(t=o[1])}if(t===null){let o=e.replace(/^[a-z][a-z0-9+.-]*:\/\//i,"");o=o.replace(/^[^/@]+@/,"");let c=o.indexOf("/");if(c<0)return null;t=o.slice(c+1)}let r=t.split("/").filter(o=>o.length>0);if(r.length<2)return null;let i=r[0],s=r[1];return i==="."||i===".."||s==="."||s===".."||!nO.test(i)||!nO.test(s)?null:`${iO}/${i}/${s}`}a(sO,"derivePath");function BG(n){let e=sO(n);if(e===null)return null;let t=e.split("/")[2];if(t===void 0||t.length===0)return null;let r=t.startsWith("exoas-")?t.slice(6):t;return r.length===0?null:`${iO}/${r}`}a(BG,"deriveLegacyFlatPath")});var Cg=v(zi=>{"use strict";Object.defineProperty(zi,"__esModule",{value:!0});zi.FILE_SPACE_CLASS_UID=void 0;zi.frontmatterDeclaresFileSpace=qG;zi.discoverFileSpaceExclusions=WG;var VG=Rg();zi.FILE_SPACE_CLASS_UID="aad8913e-5e9f-4047-879d-93cc46befd52";var oO=/\[\[([^\]|]+)(?:\|[^\]]*)?\]\]/g,Hv=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function cO(n){let e=Array.isArray(n)?n:[n],t=[];for(let r of e){if(typeof r!="string")continue;oO.lastIndex=0;let i;for(;(i=oO.exec(r))!==null;)t.push(i[1].trim())}return t}a(cO,"wikilinkTargets");function qG(n){return n?cO(n.exo__Instance_class).some(e=>Hv.test(e)&&e.toLowerCase()===zi.FILE_SPACE_CLASS_UID):!1}a(qG,"frontmatterDeclaresFileSpace");function aO(n,e){try{return n.getFrontmatter(e)}catch{return null}}a(aO,"readFrontmatterSafe");function GG(n){let e=n.exo__AssetSpace_source;if(typeof e=="string"&&e.length>0)return e;let t=n.exo__AssetSpace_git;return typeof t=="string"&&t.length>0?t:null}a(GG,"readSource");function WG(n){let e=[],t=[],r=[],i=new Map,s=a((c,l)=>{if(Hv.test(c))return c.toLowerCase()===zi.FILE_SPACE_CLASS_UID;let u=n.getFirstLinkpathDest(c,l);if(u==null)return!1;let f=i.get(u.path);if(f!==void 0)return f;let h=aO(n,u)?.exo__Asset_uid,p=typeof h=="string"&&h.toLowerCase()===zi.FILE_SPACE_CLASS_UID;return i.set(u.path,p),p},"isFileSpaceClassRef"),o=a(c=>c.some(l=>Hv.test(l)&&l.toLowerCase()===zi.FILE_SPACE_CLASS_UID),"hasUuidFormRef");for(let c of n.getAllFiles()){let l=aO(n,c);if(!l)continue;let u=cO(l.exo__Instance_class);if(!u.some(p=>s(p,c.path)))continue;t.push(c.path),o(u)||r.push(`FileSpace declaration ${c.path} references the class via a label-form link only \u2014 the sync layer will not pick it up; use the UUID-form wikilink [[${zi.FILE_SPACE_CLASS_UID}]] (UID-canon)`);let f=GG(l);if(f===null){r.push(`FileSpace declaration ${c.path} has no exo__AssetSpace_source/_git \u2014 mount path underivable, content NOT excluded from the index`);continue}let d=(0,VG.derivePath)(f);if(d===null){r.push(`FileSpace declaration ${c.path}: cannot derive mount path from source "${f}" \u2014 content NOT excluded from the index`);continue}let h=`${d}/`;c.path.startsWith(h)&&r.push(`FileSpace declaration ${c.path} lies INSIDE its own mount ${h} \u2014 it will be excluded from the index together with the content; move the declaration outside the mount folder`),e.push(h)}return{prefixes:e,declarationPaths:t,warnings:r}}a(WG,"discoverFileSpaceExclusions")});var lO=v(Qn=>{"use strict";var HG=Qn&&Qn.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},zG=Qn&&Qn.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(Qn,"__esModule",{value:!0});Qn.LazyAssetGraphLoader=Qn.MAX_LAZY_DEPTH=void 0;var KG=Ve(),XG=Ce(),zv=Ht();Qn.MAX_LAZY_DEPTH=10;var Kv=class{static{a(this,"LazyAssetGraphLoader")}constructor(e,t,r){this.converter=e,this.fileResolver=t,this.store=r,this.loadedIRIs=new Set,this.instanceClassPredicate=zv.Namespace.EXO.term("Instance_class"),this.superClassPredicate=zv.Namespace.EXO.term("Class_superClass"),this.prototypePredicate=zv.Namespace.EXO.term("Asset_prototype")}async ensureFileLoaded(e,t=0){if(t>=Qn.MAX_LAZY_DEPTH)return;let r=this.converter.notePathToIRI(e.path).value;if(!this.loadedIRIs.has(r)){this.loadedIRIs.add(r);try{let i=await this.converter.convertNote(e);if(!this.loadedIRIs.has(r)||(await this.store.addAll(i),!this.loadedIRIs.has(r)))return;await this.walkClassAndPrototypeRelations(i,t+1)}catch(i){throw this.loadedIRIs.delete(r),i}}}async ensureLoadedByIRI(e,t=0){if(t>=Qn.MAX_LAZY_DEPTH||this.loadedIRIs.has(e.value))return;let r=this.fileResolver.resolveByIRI(e);r!==null&&await this.ensureFileLoaded(r,t)}isLoaded(e){return this.loadedIRIs.has(e.value)}forget(e){this.loadedIRIs.delete(e.value)}clearAll(){this.loadedIRIs.clear()}get loadedCount(){return this.loadedIRIs.size}clearForTests(){this.loadedIRIs.clear()}async walkClassAndPrototypeRelations(e,t){let r=[];for(let i of e){if(!(i.object instanceof XG.IRI))continue;let s=i.predicate.value;(s===this.instanceClassPredicate.value||s===this.superClassPredicate.value||s===this.prototypePredicate.value)&&r.push(i.object)}for(let i of r)await this.ensureLoadedByIRI(i,t)}};Qn.LazyAssetGraphLoader=Kv;Qn.LazyAssetGraphLoader=Kv=HG([(0,KG.injectable)(),zG("design:paramtypes",[Object,Object,Object])],Kv)});var Yv=v(br=>{"use strict";var YG=br&&br.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},QG=br&&br.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(br,"__esModule",{value:!0});br.SourceAnnotator=br.DEPTH_VARIABLE=br.SOURCE_VARIABLE=void 0;var JG=Ve(),Kl=Ge(),ZG=Ce(),Og=Gv();br.SOURCE_VARIABLE="_source";br.DEPTH_VARIABLE="_depth";var Xv=class{static{a(this,"SourceAnnotator")}constructor(e){this.tripleStore=e}async annotate(e,t,r,i){if(!this.tripleStore.matchInGraph)return e.map(o=>{let c=o.clone();return c.set(br.SOURCE_VARIABLE,new Kl.Literal("own")),c});let s=[];for(let o of e){let c=o.get(t),l=o.get(r),u=o.get(i),f=o.clone();if(!c||!l||!u)f.set(br.SOURCE_VARIABLE,new Kl.Literal("own"));else{let d=await this.determineSource(c,l,u);f.set(br.SOURCE_VARIABLE,new Kl.Literal(d))}s.push(f)}return s}async annotateSingle(e,t,r,i){return(await this.annotate([e],t,r,i))[0]}async determineSource(e,t,r){return this.tripleStore.matchInGraph&&(await this.tripleStore.matchInGraph(e,t,r,Og.INFERRED_GRAPH)).length>0?"inherited":"own"}async getInheritanceDepth(e,t,r){if(!this.tripleStore.matchInGraph)return 0;for(let i=1;i<=Og.MAX_PROTOTYPE_DEPTH;i++){let s=(0,Og.inferredGraphForDepth)(i);if((await this.tripleStore.matchInGraph(e,t,r,s)).length>0)return i}return 0}async annotateBySubject(e,t){if(!this.tripleStore.matchInGraph)return e.map(s=>{let o=s.clone();return o.set(br.SOURCE_VARIABLE,new Kl.Literal("own")),o});let r=[],i=new Map;for(let s of e){let o=s.get(t),c=s.clone();if(!o||!(o instanceof ZG.IRI))c.set(br.SOURCE_VARIABLE,new Kl.Literal("own"));else{let l=o.value;if(!i.has(l)){let f=await this.tripleStore.matchInGraph(o,void 0,void 0,Og.INFERRED_GRAPH);i.set(l,f.length>0?"inherited":"own")}let u=i.get(l)??"own";c.set(br.SOURCE_VARIABLE,new Kl.Literal(u))}r.push(c)}return r}};br.SourceAnnotator=Xv;br.SourceAnnotator=Xv=YG([(0,JG.injectable)(),QG("design:paramtypes",[Object])],Xv)});var eE=v(Jn=>{"use strict";var eW=Jn&&Jn.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},tW=Jn&&Jn.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},uO=Jn&&Jn.__param||function(n,e){return function(t,r){e(t,r,n)}},Zv;Object.defineProperty(Jn,"__esModule",{value:!0});Jn.NoteToRDFConverter=void 0;Jn.normaliseExcludedFolders=pO;Jn.isPathExcluded=mO;var Qv=Ve(),cr=zn(),Ki=Ce(),yn=Ge(),fO=Mt(),zt=Ht(),dO=Ut(),rW=Lv(),nW=el(),Jv=Fv(),$n=j_(),iW=Cg(),hO=new Set(["archived","draft","pinned","aliases"]);function pO(n){return Array.isArray(n)?n.map(e=>String(e).replace(/\\/g,"/").trim()).filter(e=>e.length>0).map(e=>e.endsWith("/")?e:`${e}/`):[]}a(pO,"normaliseExcludedFolders");function mO(n,e){if(e.length===0)return!1;let t=n.replace(/\\/g,"/");for(let r of e)if(t.startsWith(r))return!0;return!1}a(mO,"isPathExcluded");function sW(n){if(!n)return"";let e=n.replace(/\\/g,"/");for(;e.startsWith("/");)e=e.slice(1);for(;e.endsWith("/");)e=e.slice(0,-1);return e.length>0?`${e}/`:""}a(sW,"normaliseSubjectIriPrefix");var bc=Zv=class{static{a(this,"NoteToRDFConverter")}constructor(e,t=nW.NullLogger,r={}){this.vault=e,this.logger=t,this.BODY_WIKILINK_PATTERN=/(?<!!)\[\[([^\]|]+)(?:\|[^\]]+)?\]\]/g,this.pendingExtraTriples=[],this.vocabularyMapper=new rW.RDFVocabularyMapper,this.subjectIriPrefix=sW(r.subjectIriPrefix)}async convertNote(e){let t=this.vault.getFrontmatter(e);if(!t)return[];let r=this.notePathToIRI(e.path),i=zt.Namespace.EXO.term("Asset_filename"),s=new cr.Triple(r,i,new yn.Literal(e.basename));if($n.Exo003Parser.isExo003Format(t)){let o=await this.convertExo003Note(e,t);return[s,...o]}return this.convertLegacyNote(e,t,s)}async convertLegacyNote(e,t,r){this.pendingExtraTriples=[];let i=[r],s=this.notePathToIRI(e.path),o,c,l,u=!1,f=zt.Namespace.EXO.term("Statement").value;for(let[g,b]of Object.entries(t)){let _=hO.has(g)?`exo__Asset_${g}`:g;if(!this.isExocortexProperty(_))continue;let S=this.propertyKeyToIRI(_),x=Array.isArray(b)?b:[b];for(let A of x)if(!((g==="exo__Asset_label"||hO.has(g))&&(A==null||typeof A=="string"&&A.trim()==="")))if(g==="exo__Instance_class"){let T=this.valueToClassURI(A);i.push(new cr.Triple(s,S,T))}else{let T=await this.valueToRDFObject(A,e,S);if(_==="exo__Statement_subject"&&o===void 0){let R=T.find(B=>B instanceof Ki.IRI);R&&(o=R)}else if(_==="exo__Statement_predicate"&&c===void 0){let R=T.find(B=>B instanceof Ki.IRI);R&&(c=R)}else _==="exo__Statement_object"&&l===void 0&&(l=T[0]);for(let R of T)if(i.push(new cr.Triple(s,S,R)),this.vocabularyMapper.hasMappingFor(g)&&R instanceof Ki.IRI){let B=this.vocabularyMapper.generateMappedTriple(s,g,R);B&&i.push(B)}}if(g==="exo__Instance_class")for(let A of x){let T=this.valueToClassURI(A);if(T instanceof Ki.IRI){let R=zt.Namespace.RDF.term("type");i.push(new cr.Triple(s,R,T)),T.value===f&&(u=!0)}}if(g==="exo__Asset_label"){let A=zt.Namespace.RDFS.term("label");for(let T of x)typeof T=="string"&&T.length>0&&i.push(new cr.Triple(s,A,new yn.Literal(T)))}}let d="exo__Instance_class"in t||"exo__Asset_uid"in t,h=t.exo__Asset_label,p="exo__Asset_label"in t&&h!==null&&h!==void 0&&!(typeof h=="string"&&h.trim()==="")&&!(Array.isArray(h)&&h.length===0);if(d&&!p){let g=zt.Namespace.RDFS.term("label"),b=zt.Namespace.EXO.term("Asset_label"),_=new yn.Literal(e.basename);i.push(new cr.Triple(s,g,_)),i.push(new cr.Triple(s,b,_))}i.push(...this.pendingExtraTriples),this.pendingExtraTriples=[],u&&o&&c&&l&&i.push(new cr.Triple(o,c,l));let y=await this.convertBodyWikilinks(e,s);return i.push(...y),i}async convertExo003Note(e,t){let r=$n.Exo003Parser.parse(t);if(!r.success||!r.metadata)return[];let i=r.metadata,s=[];switch(i.metadata){case $n.Exo003MetadataType.Namespace:break;case $n.Exo003MetadataType.Anchor:s.push(...this.convertExo003Anchor(e,i));break;case $n.Exo003MetadataType.BlankNode:s.push(...this.convertExo003BlankNode(e,i));break;case $n.Exo003MetadataType.Statement:s.push(...this.convertExo003Statement(e,i));break;case $n.Exo003MetadataType.Body:s.push(...await this.convertExo003Body(e,i));break}return s}convertExo003Anchor(e,t){let r=this.notePathToIRI(e.path),i=new Ki.IRI(t.uri);return[new cr.Triple(r,zt.Namespace.OWL.term("sameAs"),i),new cr.Triple(i,zt.Namespace.OWL.term("sameAs"),r)]}convertExo003BlankNode(e,t){let r=this.notePathToIRI(e.path),i=t.uri.replace(/[^a-zA-Z0-9_-]/g,"_");return[new cr.Triple(r,zt.Namespace.OWL.term("sameAs"),new fO.BlankNode(i))]}convertExo003Statement(e,t){let r=[];try{let i=this.createExo003ReferenceResolver(e),s=$n.Exo003Parser.toTriple(t,i);r.push(s);let o=this.notePathToIRI(e.path);r.push(new cr.Triple(o,zt.Namespace.RDF.term("value"),s.subject))}catch{}return r}async convertExo003Body(e,t){let r=[];try{let i=await this.vault.read(e),s=this.extractBodyContent(i),o=this.createExo003ReferenceResolver(e),c=o(t.subject),l=o(t.predicate);if(c.type==="literal")throw new Error("Body subject cannot be a literal");if(l.type!=="iri")throw new Error("Body predicate must be an IRI");let u=c.type==="iri"?new Ki.IRI(c.value):new fO.BlankNode(c.value),f=new Ki.IRI(l.value),d=$n.Exo003Parser.toLiteral(t,s.trim());r.push(new cr.Triple(u,f,d));let h=this.notePathToIRI(e.path);r.push(new cr.Triple(h,zt.Namespace.RDF.term("value"),u))}catch{}return r}createExo003ReferenceResolver(e){return t=>{let r=this.extractWikilink(t),i=r||t,s=this.vault.getFirstLinkpathDest(i,e.path);if(s){let o=this.vault.getFrontmatter(s);if(o&&$n.Exo003Parser.isExo003Format(o)){let c=$n.Exo003Parser.parse(o);if(c.success&&c.metadata){let l=c.metadata;if(l.metadata===$n.Exo003MetadataType.Anchor||l.metadata===$n.Exo003MetadataType.Namespace)return{type:"iri",value:l.uri};if(l.metadata===$n.Exo003MetadataType.BlankNode)return{type:"blank",value:l.uri.replace(/[^a-zA-Z0-9_-]/g,"_")}}}return{type:"iri",value:this.notePathToIRI(s.path).value}}return!r&&t.includes("://")?{type:"iri",value:t}:{type:"literal",value:t}}}async convertVault(e={}){return(await this.convertVaultWithValidation({strict:!1,excludedFolders:e.excludedFolders})).triples}async convertVaultWithValidation(e={}){let t=this.vault.getAllFiles(),r=[],i=[],s=e.strict??!1,o=0,c=0,l=(0,iW.discoverFileSpaceExclusions)(this.vault);for(let g of l.warnings)this.logger.warn(`FileSpace discovery: ${g}`);let u=[...pO(e.excludedFolders),...l.prefixes],f=u.length===0?t:t.filter(g=>!mO(g.path,u)),d=e.onProgress,h=e.progressIntervalFiles&&e.progressIntervalFiles>0?e.progressIntervalFiles:Zv.INDEX_PROGRESS_INTERVAL,p=f.length,y=0;for(let g of f){if(y++,d&&y%h===0&&y<p)try{d(y,p)}catch{}try{let b=this.vault.getFrontmatter(g),_=b?this.validateExocortexAsset(b,g.basename):null;if(_){if(s)throw new Error(`Invariant violation in "${g.path}": ${_.message}`);i.push({path:g.path,reason:`Invariant violation: ${_.message}`}),o++,this.logger.info(`Skipping file with invariant violation: ${g.path}`,{code:_.code,property:_.property,reason:_.message});continue}let S=await this.convertNote(g);r.push(...S)}catch(b){let _=b instanceof Error?b.message:String(b);if(s)throw new Error(`Invalid IRI for file "${g.path}": ${_}`);i.push({path:g.path,reason:`Invalid IRI: ${_}`}),c++,this.logger.info(`Skipping file with invalid IRI: ${g.path}`,{reason:_})}}return o>0&&this.logger.warn(`Skipped ${o} file${o===1?"":"s"} with invariant violations during indexing (paths in developer console)`,{count:o}),c>0&&this.logger.warn(`Skipped ${c} file${c===1?"":"s"} with invalid IRI during indexing (paths in developer console)`,{count:c}),{triples:r,skippedFiles:i,summary:{total:f.length,indexed:f.length-i.length,skipped:i.length},fileSpaces:l}}static inferLabelFromBasename(e){return zt.Namespace.fromPropertyKey(e)!==null?e:null}validateExocortexAsset(e,t){let r=a(d=>d==null?!0:typeof d=="string"?d.trim()==="":Array.isArray(d)?d.length===0||d.every(r):!1,"isEmpty");if(!("exo__Instance_class"in e||"exo__Asset_uid"in e))return null;let s=["exo__Asset_uid","exo__Instance_class"];for(let d of s){if(!(d in e))return{code:"MISSING_PROPERTY",property:d,message:`Required property "${d}" is missing`};if(r(e[d]))return{code:"EMPTY_PROPERTY",property:d,message:`Required property "${d}" is empty`}}let o=["ems__Effort_status","ems__Effort_parent","ems__Effort_lockedBy","ems__Effort_lockExpires","exo__Asset_updatedAt","ems__Effort_startTimestamp"];for(let d of o)if(d in e&&r(e[d]))return{code:"EMPTY_OPTIONAL_PROPERTY",property:d,message:`Optional property "${d}" is present but empty`};let c=e.exo__Instance_class,l=Array.isArray(c)?c:[c],u=null,f=!1;for(let d of l){if(typeof d!="string")continue;let h=this.removeQuotes(d),y=(this.extractWikilink(h)??h).trim();/^[a-z][a-zA-Z0-9]*__/.test(y)&&/[\s()]/.test(y)?u||(u={candidate:d}):f=!0}return u&&!f?{code:"INVALID_INSTANCE_CLASS_IRI",property:"exo__Instance_class",message:`Invalid Instance_class IRI: "${u.candidate}"`}:null}async validateVault(){let e=this.vault.getAllFiles(),t=[];for(let r of e){let i=(0,Jv.vaultPathToIRI)(r.path);Ki.IRI.isValidIRI(i)||t.push({path:r.path,reason:`Path "${r.path}" cannot be converted to a valid IRI`})}return t}notePathToIRI(e){return new Ki.IRI((0,Jv.vaultPathToIRI)(`${this.subjectIriPrefix}${e}`))}synthesizeWikilinkTargetIRI(e){return new Ki.IRI((0,Jv.vaultPathToIRI)(e))}isExocortexProperty(e){return zt.Namespace.fromPropertyKey(e)!==null}propertyKeyToIRI(e){let t=zt.Namespace.fromPropertyKey(e);if(!t)throw new Error(`Invalid property key: ${e}`);return t.namespace.term(t.localName)}emitTypeTripleForEnumInstance(e,t){let r=this.vault.getFrontmatter(t);if(!r)return;let i=r.exo__Instance_class,s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return;let o=this.valueToClassURI(s);o instanceof Ki.IRI&&(this.pendingExtraTriples.push(new cr.Triple(e,zt.Namespace.RDF.term("type"),o)),this.pendingExtraTriples.push(new cr.Triple(e,zt.Namespace.EXO.term("Instance_class"),o)))}async valueToRDFObject(e,t,r){if(typeof e=="string"){let i=this.removeQuotes(e),s=this.extractWikilink(i);if(s){let o=this.vault.getFirstLinkpathDest(s,t.path);if(o){let l=this.notePathToIRI(o.path),u=s.includes("|")?s.split("|")[0]:s;if(this.isUUID(u)){let d=new yn.Literal(u);if(r?.value.endsWith("#Grounding_targetValueRef")||r?.value.endsWith("#Grounding_targetValueSubstitution")||r?.value.endsWith("#Grounding_targetClass")||r?.value.endsWith("#Grounding_type")||r?.value.endsWith("#PropertyDefault_value"))return[l];let p=this.expandClassValue(o.basename);if(p)return this.emitTypeTripleForEnumInstance(p,o),[p];let y=this.vault.getFrontmatter(o);if(y){let x=y.exo__Asset_label;if(typeof x=="string"){let A=this.expandClassValue(x);if(A)return this.emitTypeTripleForEnumInstance(A,o),[A]}}let g=r?.value.endsWith("#Asset_prototype")||r?.value.endsWith("/Asset_prototype"),_=((typeof process<"u"?process.env:void 0)?.EXOCORTEX_DUAL_STORAGE_PREDICATES??"").split(",").map(x=>x.trim()).filter(Boolean),S=_.length>0&&_.some(x=>r?.value.endsWith(`#${x}`));return g||S?[l,d]:[l]}let f=this.expandClassValue(o.basename);return f?(this.emitTypeTripleForEnumInstance(f,o),[f]):[l]}if(this.isClassReference(s)){let l=this.expandClassValue(s);if(l)return[l]}let c=s.includes("|")?s.split("|")[0]:s;return this.isUUID(c)?[this.synthesizeWikilinkTargetIRI(`${c}.md`)]:[new yn.Literal(i)]}if(this.isClassReference(i)){let o=this.expandClassValue(i);if(o)return[o]}return this.isISO8601DateTime(i)?[new yn.Literal(i,zt.Namespace.XSD.term("dateTime"))]:[new yn.Literal(i)]}return typeof e=="boolean"?[new yn.Literal(e.toString())]:typeof e=="number"?[new yn.Literal(e.toString(),zt.Namespace.XSD.term("decimal"))]:e instanceof Date?[new yn.Literal(e.toISOString(),zt.Namespace.XSD.term("dateTime"))]:[new yn.Literal(String(e))]}isISO8601DateTime(e){return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-]\d{2}:\d{2})?$/.test(e)}removeQuotes(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.substring(1,t.length-1):e}extractWikilink(e){let t=e.match(/^\[\[([^\]]+)\]\]$/);if(!t)return null;let r=t[1];return r.includes("|")?r.split("|")[0]:r}extractWikilinkAlias(e){let t=e.match(/^\[\[([^\]]+)\]\]$/);if(!t)return null;let r=t[1],i=r.indexOf("|");return i>=0?r.substring(i+1).trim():null}valueToClassURI(e){if(typeof e!="string")return new yn.Literal(String(e));let t=this.removeQuotes(e),i=this.extractWikilink(t)||t,s=this.expandClassValue(i);if(s)return s;let o=this.extractWikilinkAlias(t);if(o){let c=this.expandClassValue(o);if(c)return c}if(this.isUUID(i)){let c=this.vault.getFirstLinkpathDest(i,"");if(c){let l=this.expandClassValue(c.basename);if(l)return l;let u=this.vault.getFrontmatter(c);if(u){let f=u.exo__Asset_label;if(typeof f=="string"){let d=this.expandClassValue(f);if(d)return d}}return this.notePathToIRI(c.path)}}return new yn.Literal(t)}isClassReference(e){return/\s/.test(e)?!1:zt.Namespace.fromPropertyKey(e)!==null}isUUID(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}expandClassValue(e){let t=this.removeQuotes(e),r=zt.Namespace.fromPropertyKey(t);return!r||/[\s()]/.test(r.localName)?null:r.namespace.term(r.localName)}extractBodyContent(e){let t=/^---\r?\n[\s\S]*?\r?\n---\r?\n?/;return e.replace(t,"")}extractBodyWikilinks(e){let t=new Set,r,i=new RegExp(this.BODY_WIKILINK_PATTERN.source,"g");for(;(r=i.exec(e))!==null;)r[1]&&t.add(r[1]);return Array.from(t)}async convertBodyWikilinks(e,t){let r=[];try{let i=await this.vault.read(e),s=this.extractBodyContent(i),o=this.extractBodyWikilinks(s),c=zt.Namespace.EXO.term("Asset_bodyLink");for(let l of o){let u=this.vault.getFirstLinkpathDest(l,e.path);if(u){let f=this.notePathToIRI(u.path);r.push(new cr.Triple(t,c,f))}else if(this.isClassReference(l)){let f=this.expandClassValue(l);f?r.push(new cr.Triple(t,c,f)):r.push(new cr.Triple(t,c,new yn.Literal(l)))}else r.push(new cr.Triple(t,c,new yn.Literal(l)))}}catch{}return r}};Jn.NoteToRDFConverter=bc;bc.INDEX_PROGRESS_INTERVAL=200;bc.SkippedFileInfo=class{constructor(n,e){this.path=n,this.reason=e}};bc.VaultValidationResult=class{constructor(n,e,t){this.triples=n,this.skippedFiles=e,this.summary=t}};bc.VaultValidationOptions=class{constructor(n=!1){this.strict=n}};Jn.NoteToRDFConverter=bc=Zv=eW([(0,Qv.injectable)(),uO(0,(0,Qv.inject)(dO.DI_TOKENS.IVaultAdapter)),uO(1,(0,Qv.inject)(dO.DI_TOKENS.ILogger)),tW("design:paramtypes",[Object,Object,Object])],bc)});var rE=v(Pg=>{"use strict";Object.defineProperty(Pg,"__esModule",{value:!0});Pg.FilterContainsOptimizer=void 0;var oW=Ce(),aW=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i,tE=class{static{a(this,"FilterContainsOptimizer")}constructor(){this.tripleStore=null,this.lastOptimizationHints=[]}setTripleStore(e){this.tripleStore=e}getLastOptimizationHints(){return this.lastOptimizationHints}clearHints(){this.lastOptimizationHints=[]}async optimize(e){return this.clearHints(),this.optimizeRecursive(e)}optimizeSync(e,t){return this.clearHints(),this.optimizeSyncRecursive(e,t)}async optimizeRecursive(e){return e.type==="filter"?this.optimizeFilter(e):e.type==="join"?{type:"join",left:await this.optimizeRecursive(e.left),right:await this.optimizeRecursive(e.right)}:e.type==="leftjoin"?{...e,left:await this.optimizeRecursive(e.left),right:await this.optimizeRecursive(e.right)}:e.type==="union"?{type:"union",left:await this.optimizeRecursive(e.left),right:await this.optimizeRecursive(e.right)}:e.type==="minus"?{...e,left:await this.optimizeRecursive(e.left),right:await this.optimizeRecursive(e.right)}:e.type==="project"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="orderby"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="slice"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="distinct"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="reduced"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="group"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="extend"?{...e,input:await this.optimizeRecursive(e.input)}:e}optimizeSyncRecursive(e,t){return e.type==="filter"?this.optimizeFilterSync(e,t):e.type==="join"?{type:"join",left:this.optimizeSyncRecursive(e.left,t),right:this.optimizeSyncRecursive(e.right,t)}:e.type==="leftjoin"?{...e,left:this.optimizeSyncRecursive(e.left,t),right:this.optimizeSyncRecursive(e.right,t)}:e.type==="union"?{type:"union",left:this.optimizeSyncRecursive(e.left,t),right:this.optimizeSyncRecursive(e.right,t)}:e.type==="minus"?{...e,left:this.optimizeSyncRecursive(e.left,t),right:this.optimizeSyncRecursive(e.right,t)}:e.type==="project"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="orderby"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="slice"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="distinct"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="reduced"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="group"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="extend"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e}async optimizeFilter(e){let t=this.detectContainsUUIDPattern(e.expression);if(!t)return{type:"filter",expression:e.expression,input:await this.optimizeRecursive(e.input)};let r=[];return this.tripleStore&&(r=await this.findSubjectsContainingUUID(t.uuid)),this.rewriteFilter(e,t,r)}optimizeFilterSync(e,t){let r=this.detectContainsUUIDPattern(e.expression);if(!r)return{type:"filter",expression:e.expression,input:this.optimizeSyncRecursive(e.input,t)};let i=t?t.filter(s=>s.includes(r.uuid)):[];return this.rewriteFilter(e,r,i)}rewriteFilter(e,t,r){if(this.lastOptimizationHints.push({type:"uuid-index-lookup",originalPattern:`FILTER(CONTAINS(STR(?${t.variable}), "${t.uuid}"))`,suggestedRewrite:r.length===1?`VALUES ?${t.variable} { <${r[0]}> }`:r.length>1?`VALUES ?${t.variable} { ${r.map(i=>`<${i}>`).join(" ")} }`:"No matching URIs found for UUID",estimatedSpeedup:r.length>0?"O(n) \u2192 O(1)":"N/A",matchedUri:r.length===1?r[0]:void 0}),r.length===0)return{type:"filter",expression:e.expression,input:this.optimizeSyncRecursive(e.input)};if(r.length===1){let i=this.injectSubjectConstraint(e.input,t.variable,r[0]);if(i!==e.input)return i}return this.createValuesJoin(e,t,r)}detectContainsUUIDPattern(e){if(e.type==="function"||e.type==="functionCall"){let t=e;if((typeof t.function=="string"?t.function.toLowerCase():t.function?.value?.toLowerCase()??"")==="contains"&&t.args.length===2)return this.analyzeContainsArgs(t.args[0],t.args[1],e)}if(e.type==="logical"&&e.operator==="&&")for(let t of e.operands){let r=this.detectContainsUUIDPattern(t);if(r)return r}return null}analyzeContainsArgs(e,t,r){let i=null;if(e.type==="function"||e.type==="functionCall"){let s=e;if((typeof s.function=="string"?s.function.toLowerCase():s.function?.value?.toLowerCase()??"")==="str"&&s.args.length===1){let c=s.args[0];c.type==="variable"&&(i=c.name)}}if(!i&&e.type==="variable"&&(i=e.name),!i)return null;if(t.type==="literal"){let c=String(t.value).match(aW);if(c)return{variable:i,uuid:c[0].toLowerCase(),originalExpression:r}}return null}async findSubjectsContainingUUID(e){if(!this.tripleStore)return[];if(this.tripleStore.findSubjectsByUUID)return(await this.tripleStore.findSubjectsByUUID(e)).map(s=>s.value);let t=await this.tripleStore.subjects(),r=[];for(let i of t)i instanceof oW.IRI&&i.value.toLowerCase().includes(e.toLowerCase())&&r.push(i.value);return r}injectSubjectConstraint(e,t,r){if(e.type==="bgp"){let i=e.triples.map(o=>o.subject.type==="variable"&&o.subject.value===t?{...o,subject:{type:"iri",value:r}}:o);if(i.some((o,c)=>o.subject!==e.triples[c].subject))return{type:"bgp",triples:i}}if(e.type==="join"){let i=this.injectSubjectConstraint(e.left,t,r),s=this.injectSubjectConstraint(e.right,t,r);if(i!==e.left||s!==e.right)return{type:"join",left:i,right:s}}if(e.type==="filter"){let i=this.injectSubjectConstraint(e.input,t,r);if(i!==e.input)return{...e,input:i}}return e}createValuesJoin(e,t,r){return{type:"join",left:{type:"values",variables:[t.variable],bindings:r.map(o=>({[t.variable]:{type:"iri",value:o}}))},right:this.optimizeSyncRecursive(e.input)}}analyzeQuery(e){let t=[];return this.analyzeRecursive(e,t),t}analyzeRecursive(e,t){if(e.type==="filter"){let r=this.detectContainsUUIDPattern(e.expression);r&&t.push({type:"uuid-index-lookup",originalPattern:`FILTER(CONTAINS(STR(?${r.variable}), "${r.uuid}"))`,suggestedRewrite:`Use --optimize flag or rewrite as VALUES ?${r.variable} { <uri-containing-uuid> }`,estimatedSpeedup:"O(n) \u2192 O(1) with UUID index lookup"}),this.analyzeRecursive(e.input,t);return}e.type==="join"?(this.analyzeRecursive(e.left,t),this.analyzeRecursive(e.right,t)):e.type==="leftjoin"?(this.analyzeRecursive(e.left,t),this.analyzeRecursive(e.right,t)):e.type==="union"?(this.analyzeRecursive(e.left,t),this.analyzeRecursive(e.right,t)):e.type==="minus"?(this.analyzeRecursive(e.left,t),this.analyzeRecursive(e.right,t)):e.type==="project"?this.analyzeRecursive(e.input,t):e.type==="orderby"?this.analyzeRecursive(e.input,t):e.type==="slice"?this.analyzeRecursive(e.input,t):e.type==="distinct"?this.analyzeRecursive(e.input,t):e.type==="reduced"?this.analyzeRecursive(e.input,t):e.type==="group"?this.analyzeRecursive(e.input,t):e.type==="extend"&&this.analyzeRecursive(e.input,t)}};Pg.FilterContainsOptimizer=tE});var gO=v(Fg=>{"use strict";Object.defineProperty(Fg,"__esModule",{value:!0});Fg.AlgebraOptimizer=void 0;var cW=rE(),nE=class{static{a(this,"AlgebraOptimizer")}constructor(){this.stats=new Map,this.tripleStore=null,this.filterContainsOptimizer=new cW.FilterContainsOptimizer}setTripleStore(e){this.tripleStore=e,this.filterContainsOptimizer.setTripleStore(e)}getOptimizationHints(){return this.filterContainsOptimizer.getLastOptimizationHints()}analyzeQuery(e){return this.filterContainsOptimizer.analyzeQuery(e)}optimize(e){let t=e;return t=this.eliminateEmptyBGPInFilterJoin(t),t=this.filterPushDown(t),t=this.joinReordering(t),t}async optimizeAsync(e){let t=e;return t=this.eliminateEmptyBGPInFilterJoin(t),this.tripleStore&&(t=await this.filterContainsOptimizer.optimize(t)),t=this.filterPushDown(t),t=this.joinReordering(t),t}optimizeWithSubjects(e,t){let r=e;return r=this.eliminateEmptyBGPInFilterJoin(r),r=this.filterContainsOptimizer.optimizeSync(r,t),r=this.filterPushDown(r),r=this.joinReordering(r),r}eliminateEmptyBGPInFilterJoin(e){if(e.type==="join"){if(e.left.type==="filter"){let t=e.left;if(t.input.type==="bgp"&&t.input.triples.length===0)return{type:"filter",expression:t.expression,input:this.eliminateEmptyBGPInFilterJoin(e.right)}}if(e.right.type==="filter"){let t=e.right;if(t.input.type==="bgp"&&t.input.triples.length===0)return{type:"filter",expression:t.expression,input:this.eliminateEmptyBGPInFilterJoin(e.left)}}return{type:"join",left:this.eliminateEmptyBGPInFilterJoin(e.left),right:this.eliminateEmptyBGPInFilterJoin(e.right)}}return e.type==="filter"?{...e,input:this.eliminateEmptyBGPInFilterJoin(e.input)}:e.type==="leftjoin"?{...e,left:this.eliminateEmptyBGPInFilterJoin(e.left),right:this.eliminateEmptyBGPInFilterJoin(e.right)}:e.type==="union"?{...e,left:this.eliminateEmptyBGPInFilterJoin(e.left),right:this.eliminateEmptyBGPInFilterJoin(e.right)}:e.type==="minus"?{...e,left:this.eliminateEmptyBGPInFilterJoin(e.left),right:this.eliminateEmptyBGPInFilterJoin(e.right)}:e.type==="project"?{...e,input:this.eliminateEmptyBGPInFilterJoin(e.input)}:e.type==="orderby"?{...e,input:this.eliminateEmptyBGPInFilterJoin(e.input)}:e.type==="slice"?{...e,input:this.eliminateEmptyBGPInFilterJoin(e.input)}:e.type==="distinct"?{...e,input:this.eliminateEmptyBGPInFilterJoin(e.input)}:e}filterPushDown(e){return e.type==="filter"?this.pushDownFilter(e):e.type==="join"?{type:"join",left:this.filterPushDown(e.left),right:this.filterPushDown(e.right)}:e.type==="leftjoin"?{...e,left:this.filterPushDown(e.left),right:this.filterPushDown(e.right)}:e.type==="union"?{type:"union",left:this.filterPushDown(e.left),right:this.filterPushDown(e.right)}:e.type==="minus"?{...e,left:this.filterPushDown(e.left),right:this.filterPushDown(e.right)}:e.type==="project"?{...e,input:this.filterPushDown(e.input)}:e.type==="orderby"?{...e,input:this.filterPushDown(e.input)}:e.type==="slice"?{...e,input:this.filterPushDown(e.input)}:e.type==="distinct"?{...e,input:this.filterPushDown(e.input)}:e}pushDownFilter(e){let t=e.input;if(t.type==="join"){let r=this.getFilterVariables(e.expression),i=this.getOperationVariables(t.left),s=this.getOperationVariables(t.right),o=r.every(l=>i.has(l)),c=r.every(l=>s.has(l));return o&&!c?{type:"join",left:{type:"filter",expression:e.expression,input:this.filterPushDown(t.left)},right:this.filterPushDown(t.right)}:c&&!o?{type:"join",left:this.filterPushDown(t.left),right:{type:"filter",expression:e.expression,input:this.filterPushDown(t.right)}}:{type:"filter",expression:e.expression,input:{type:"join",left:this.filterPushDown(t.left),right:this.filterPushDown(t.right)}}}return t.type==="union"?{type:"union",left:{type:"filter",expression:e.expression,input:this.filterPushDown(t.left)},right:{type:"filter",expression:e.expression,input:this.filterPushDown(t.right)}}:{type:"filter",expression:e.expression,input:this.filterPushDown(t)}}getFilterVariables(e){let t=[];if(e.type==="variable")t.push(e.name);else if(e.type==="comparison")t.push(...this.getFilterVariables(e.left)),t.push(...this.getFilterVariables(e.right));else if(e.type==="logical")for(let r of e.operands)t.push(...this.getFilterVariables(r));else if(e.type==="function")for(let r of e.args)t.push(...this.getFilterVariables(r));return Array.from(new Set(t))}getOperationVariables(e){let t=new Set;if(e.type==="bgp")for(let r of e.triples)r.subject.type==="variable"&&t.add(r.subject.value),r.predicate.type==="variable"&&t.add(r.predicate.value),r.object.type==="variable"&&t.add(r.object.value);else if(e.type==="join"){let r=this.getOperationVariables(e.left),i=this.getOperationVariables(e.right);return new Set([...r,...i])}else{if(e.type==="filter")return this.getOperationVariables(e.input);if(e.type==="leftjoin"){let r=this.getOperationVariables(e.left),i=this.getOperationVariables(e.right);return new Set([...r,...i])}else if(e.type==="union"){let r=this.getOperationVariables(e.left),i=this.getOperationVariables(e.right);return new Set([...r,...i])}else{if(e.type==="minus")return this.getOperationVariables(e.left);if(e.type==="project")return new Set(e.variables)}}return t}joinReordering(e){return e.type==="join"?this.reorderJoin(e):e.type==="filter"?{...e,input:this.joinReordering(e.input)}:e.type==="leftjoin"?{...e,left:this.joinReordering(e.left),right:this.joinReordering(e.right)}:e.type==="union"?{...e,left:this.joinReordering(e.left),right:this.joinReordering(e.right)}:e.type==="minus"?{...e,left:this.joinReordering(e.left),right:this.joinReordering(e.right)}:e.type==="project"?{...e,input:this.joinReordering(e.input)}:e.type==="orderby"?{...e,input:this.joinReordering(e.input)}:e.type==="slice"?{...e,input:this.joinReordering(e.input)}:e.type==="distinct"?{...e,input:this.joinReordering(e.input)}:e}reorderJoin(e){let t=this.isConstrained(e.left),r=this.isConstrained(e.right);if(r&&!t)return{type:"join",left:this.joinReordering(e.right),right:this.joinReordering(e.left)};if(t&&!r)return{type:"join",left:this.joinReordering(e.left),right:this.joinReordering(e.right)};let i=this.estimateCost(e.left);return this.estimateCost(e.right)<i?{type:"join",left:this.joinReordering(e.right),right:this.joinReordering(e.left)}:{type:"join",left:this.joinReordering(e.left),right:this.joinReordering(e.right)}}isConstrained(e){return e.type==="values"?!0:e.type==="bgp"?e.triples.some(t=>t.object.type!=="variable"||t.subject.type!=="variable"):e.type==="filter"?this.isConstrained(e.input):e.type==="join"?this.isConstrained(e.left)||this.isConstrained(e.right):e.type==="union"?this.isConstrained(e.left)&&this.isConstrained(e.right):!1}estimateCost(e){if(e.type==="bgp"){let t=0;for(let r of e.triples){let i=10;r.subject.type==="variable"&&(i*=10),r.predicate.type==="variable"&&(i*=20),r.object.type==="variable"&&(i*=5),t+=i}return t}if(e.type==="filter")return this.estimateCost(e.input)*.3;if(e.type==="join"){let t=this.estimateCost(e.left),r=this.estimateCost(e.right);return e.left.type==="values"||e.right.type==="values"?Math.min(t,r)*2:t*r}if(e.type==="leftjoin")return this.estimateCost(e.left)+this.estimateCost(e.right)*.5;if(e.type==="union")return this.estimateCost(e.left)+this.estimateCost(e.right);if(e.type==="values"){let t=e.bindings;return Array.isArray(t)?t.length*5:10}return e.type==="minus"?this.estimateCost(e.left)+this.estimateCost(e.right)*.3:100}setStatistics(e,t){this.stats.set(e,t)}getStatistics(e){return this.stats.get(e)}};Fg.AlgebraOptimizer=nE});var yO=v(Dg=>{"use strict";Object.defineProperty(Dg,"__esModule",{value:!0});Dg.AlgebraSerializer=void 0;var iE=class{static{a(this,"AlgebraSerializer")}toString(e,t=0){let r=" ".repeat(t);switch(e.type){case"bgp":return`${r}BGP [
223
+ `),t}};Sg.RDFSerializer=Pv});var Fv=v(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.OBSIDIAN_VAULT_SCHEME=void 0;To.vaultPathToIRI=AG;To.iriToVaultPath=xG;To.OBSIDIAN_VAULT_SCHEME="obsidian://vault/";function AG(n){let e=n.startsWith("./")?n.slice(2):n;return`${To.OBSIDIAN_VAULT_SCHEME}${encodeURI(e)}`}a(AG,"vaultPathToIRI");function xG(n){if(!n.startsWith(To.OBSIDIAN_VAULT_SCHEME))return null;let e=n.slice(To.OBSIDIAN_VAULT_SCHEME.length);try{return decodeURI(e)}catch{return null}}a(xG,"iriToVaultPath")});var Lv=v(vg=>{"use strict";Object.defineProperty(vg,"__esModule",{value:!0});vg.RDFVocabularyMapper=void 0;var ar=zn(),K3=Ce(),he=Ht(),Dv=class{static{a(this,"RDFVocabularyMapper")}constructor(){this.propertyMappings=new Map([["exo__Instance_class",he.Namespace.RDF.term("type")],["exo__Asset_isDefinedBy",he.Namespace.RDFS.term("isDefinedBy")],["exo__Class_superClass",he.Namespace.RDFS.term("subClassOf")],["exo__Property_range",he.Namespace.RDFS.term("range")],["exo__Property_domain",he.Namespace.RDFS.term("domain")],["exo__Property_superProperty",he.Namespace.RDFS.term("subPropertyOf")]])}generateClassHierarchyTriples(){let e=[];return e.push(new ar.Triple(he.Namespace.EXO.term("Asset"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.RDFS.term("Resource"))),e.push(new ar.Triple(he.Namespace.EXO.term("Class"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.RDFS.term("Class"))),e.push(new ar.Triple(he.Namespace.EXO.term("Property"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.RDF.term("Property"))),e.push(new ar.Triple(he.Namespace.EMS.term("Task"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EMS.term("Project"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EMS.term("Area"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EMS.term("Workflow"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EMS.term("WorkflowState"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EMS.term("WorkflowTransition"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EXOCMD.term("Command"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EXOCMD.term("Precondition"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EXOCMD.term("Grounding"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e.push(new ar.Triple(he.Namespace.EXOCMD.term("CommandBinding"),he.Namespace.RDFS.term("subClassOf"),he.Namespace.EXO.term("Asset"))),e}generatePropertyHierarchyTriples(){let e=[];return e.push(new ar.Triple(he.Namespace.EXO.term("Instance_class"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDF.term("type"))),e.push(new ar.Triple(he.Namespace.EXO.term("Asset_isDefinedBy"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDFS.term("isDefinedBy"))),e.push(new ar.Triple(he.Namespace.EXO.term("Class_superClass"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDFS.term("subClassOf"))),e.push(new ar.Triple(he.Namespace.EXO.term("Property_range"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDFS.term("range"))),e.push(new ar.Triple(he.Namespace.EXO.term("Property_domain"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDFS.term("domain"))),e.push(new ar.Triple(he.Namespace.EXO.term("Property_superProperty"),he.Namespace.RDFS.term("subPropertyOf"),he.Namespace.RDFS.term("subPropertyOf"))),e}generateMappedTriple(e,t,r){let i=this.propertyMappings.get(t);if(!i)return null;let s;if(r instanceof K3.IRI)s=r;else{let o=r.match(/^(ems|exo|exocmd)__(.+)$/);if(o){let[,c,l]=o;s=(c==="ems"?he.Namespace.EMS:c==="exocmd"?he.Namespace.EXOCMD:he.Namespace.EXO).term(l)}else s=new K3.IRI(r)}return new ar.Triple(e,i,s)}hasMappingFor(e){return this.propertyMappings.has(e)}};vg.RDFVocabularyMapper=Dv});var X3=v(Tg=>{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0});Tg.RDFSInferenceEngine=void 0;var IG=zn(),Eg=Ce(),Nv=class{static{a(this,"RDFSInferenceEngine")}async materialize(e){let t=await e.predicates(),r=t.find(d=>d.value.includes("Class_superClass")),i=t.find(d=>d.value.includes("Instance_class"));if(!r||!i)return 0;let s=await this.buildDirectParentMap(e,r);if(s.size===0)return 0;let o=this.computeAllAncestors(s),c=await e.count(),l=await e.match(void 0,i),u=[];for(let d of l)if(d.object instanceof Eg.IRI){let h=o.get(d.object.value);if(h)for(let p of h)u.push(new IG.Triple(d.subject,i,new Eg.IRI(p)))}return u.length>0&&await e.addAll(u),await e.count()-c}async buildDirectParentMap(e,t){let r=await e.match(void 0,t),i=new Map;for(let s of r)if(s.subject instanceof Eg.IRI&&s.object instanceof Eg.IRI){let o=s.subject.value,c=s.object.value;i.has(o)||i.set(o,new Set),i.get(o).add(c)}return i}computeAllAncestors(e){let t=new Map;for(let r of e.keys())t.has(r)||t.set(r,this.computeAncestorsBFS(r,e));return t}computeAncestorsBFS(e,t){let r=new Set,i=new Set,s=[],o=t.get(e);if(o)for(let c of o)s.push(c);for(;s.length>0;){let c=s.shift();if(i.has(c))continue;i.add(c),r.add(c);let l=t.get(c);if(l)for(let u of l)i.has(u)||s.push(u)}return r}};Tg.RDFSInferenceEngine=Nv});var jv=v(gc=>{"use strict";var RG=gc&&gc.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s};Object.defineProperty(gc,"__esModule",{value:!0});gc.NonInheritablePropertyRegistry=void 0;var CG=Ve(),Y3=Ce(),Q3=Ge(),kv=Ht(),Mv=class{static{a(this,"NonInheritablePropertyRegistry")}constructor(){this.nonInheritableIRIs=new Set,this.initialized=!1}async initialize(e){this.nonInheritableIRIs.clear();try{let t=await e.predicates(),r=t.find(c=>c.value.includes("Instance_class"));if(!r){this.initialized=!0;return}let i=await this.findNonInheritableClassIRI(e,t);if(!i){this.initialized=!0;return}let s=await e.match(void 0,r,i);if(s.length===0){this.initialized=!0;return}let o=t.find(c=>c.value.includes("Asset_label"));if(!o){this.initialized=!0;return}for(let c of s){let l=await e.match(c.subject,o,void 0);for(let u of l)if(u.object instanceof Q3.Literal){let f=u.object.value,d=this.propertyKeyToIRI(f);d&&this.nonInheritableIRIs.add(d)}}}catch{}this.initialized=!0}isNonInheritable(e){return this.nonInheritableIRIs.has(e)}get size(){return this.nonInheritableIRIs.size}get isInitialized(){return this.initialized}async findNonInheritableClassIRI(e,t){let r=t.find(o=>o.value.includes("Asset_label"));if(!r)return null;let i=await e.match(void 0,r,new Q3.Literal("exo__NonInheritableProperty"));if(i.length>0&&i[0].subject instanceof Y3.IRI)return i[0].subject;let s=t.find(o=>o.value.includes("Instance_class"));if(s){let o=await e.match(void 0,s,void 0);for(let c of o)if(c.object instanceof Y3.IRI&&c.object.value.includes("NonInheritableProperty"))return c.object}return null}propertyKeyToIRI(e){return e.startsWith("exo__")?kv.Namespace.EXO.term(e.substring(5)).value:e.startsWith("ems__")?kv.Namespace.EMS.term(e.substring(5)).value:e.startsWith("exocmd__")?kv.Namespace.EXOCMD.term(e.substring(8)).value:null}};gc.NonInheritablePropertyRegistry=Mv;gc.NonInheritablePropertyRegistry=Mv=RG([(0,CG.injectable)()],Mv)});var Bv=v(yc=>{"use strict";var OG=yc&&yc.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s};Object.defineProperty(yc,"__esModule",{value:!0});yc.PropertyCardinalityRegistry=void 0;var PG=Ve(),J3=Ce(),Z3=Ge(),$v=Ht(),Uv=class{static{a(this,"PropertyCardinalityRegistry")}constructor(){this.multiValuedIRIs=new Set,this.initialized=!1}async initialize(e){this.multiValuedIRIs.clear();try{let t=await e.predicates(),r=t.find(c=>c.value.includes("Property_cardinality"));if(!r){this.initialized=!0;return}let i=await this.findMultipleCardinalityIRI(e,t);if(!i){this.initialized=!0;return}let s=await e.match(void 0,r,i);if(s.length===0){this.initialized=!0;return}let o=t.find(c=>c.value.includes("Asset_label"));if(!o){this.initialized=!0;return}for(let c of s){let l=await e.match(c.subject,o,void 0);for(let u of l)if(u.object instanceof Z3.Literal){let f=u.object.value,d=this.propertyKeyToIRI(f);d&&this.multiValuedIRIs.add(d)}}}catch{}this.initialized=!0}isMultiValued(e){return this.multiValuedIRIs.has(e)}get size(){return this.multiValuedIRIs.size}get isInitialized(){return this.initialized}async findMultipleCardinalityIRI(e,t){let r=t.find(o=>o.value.includes("Asset_label"));if(!r)return null;let i=await e.match(void 0,r,new Z3.Literal("exo__PropertyCardinalityMultiple"));if(i.length>0&&i[0].subject instanceof J3.IRI)return i[0].subject;let s=t.find(o=>o.value.includes("Instance_class"));if(s){let o=await e.match(void 0,s,void 0);for(let c of o)if(c.object instanceof J3.IRI&&c.object.value.includes("PropertyCardinalityMultiple"))return c.object}return null}propertyKeyToIRI(e){return e.startsWith("exo__")?$v.Namespace.EXO.term(e.substring(5)).value:e.startsWith("ems__")?$v.Namespace.EMS.term(e.substring(5)).value:e.startsWith("exocmd__")?$v.Namespace.EXOCMD.term(e.substring(8)).value:null}};yc.PropertyCardinalityRegistry=Uv;yc.PropertyCardinalityRegistry=Uv=OG([(0,PG.injectable)()],Uv)});var Gv=v(xr=>{"use strict";var FG=xr&&xr.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},DG=xr&&xr.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(xr,"__esModule",{value:!0});xr.PrototypeChainMaterializer=xr.MAX_PROTOTYPE_DEPTH=xr.INFERRED_GRAPH=void 0;xr.inferredGraphForDepth=Vv;var LG=Ve(),eO=zn(),la=Ce(),NG=jv(),kG=Bv();xr.INFERRED_GRAPH=new la.IRI("https://exocortex.my/ontology/exo#inferred");var MG="https://exocortex.my/ontology/exo#inferred/";function Vv(n){return new la.IRI(`${MG}${n}`)}a(Vv,"inferredGraphForDepth");xr.MAX_PROTOTYPE_DEPTH=10;var qv=class{static{a(this,"PrototypeChainMaterializer")}constructor(e,t){this.registry=e,this.cardinalityRegistry=t??null}async materialize(e){let r=(await e.predicates()).find(c=>c.value.includes("Asset_prototype"));if(!r)return 0;let i=await e.match(void 0,r,void 0);if(i.length===0)return 0;let s=new Map;for(let c of i)if(c.subject instanceof la.IRI&&c.object instanceof la.IRI){let l=c.subject.value,u=c.object.value;l!==u&&s.set(l,c.object)}if(s.size===0)return 0;let o=0;for(let[c]of s){let l=new la.IRI(c),u=this.resolveChain(c,s);if(u.length===0)continue;let f=await e.match(l,void 0,void 0),d=new Set,h=new Map;for(let p of f)if(d.add(p.predicate.value),this.isMultiValued(p.predicate.value)){let y=p.object instanceof la.IRI?p.object.value:String(p.object),g=h.get(p.predicate.value);g||(g=new Set,h.set(p.predicate.value,g)),g.add(y)}for(let p=0;p<u.length;p++){let y=u[p],g=p+1,b=new la.IRI(y),_=await e.match(b,void 0,void 0),S=new Set;if(e.matchInGraph){let x=await e.matchInGraph(b,void 0,void 0,xr.INFERRED_GRAPH);for(let A of x)S.add(A.predicate.value)}for(let x of _){let A=x.predicate.value;if(this.registry.isNonInheritable(A)||S.has(A))continue;if(d.has(A)&&this.isMultiValued(A)){let R=x.object instanceof la.IRI?x.object.value:String(x.object);if(h.get(A)?.has(R))continue;let D=h.get(A);D||(D=new Set,h.set(A,D)),D.add(R);let O=new eO.Triple(l,x.predicate,x.object);await e.add(O),e.addToGraph&&(await e.addToGraph(O,xr.INFERRED_GRAPH),await e.addToGraph(O,Vv(g))),o++;continue}if(d.has(A))continue;let T=new eO.Triple(l,x.predicate,x.object);await e.add(T),e.addToGraph&&(await e.addToGraph(T,xr.INFERRED_GRAPH),await e.addToGraph(T,Vv(g))),d.add(A),o++}}}return o}isMultiValued(e){return this.cardinalityRegistry?this.cardinalityRegistry.isMultiValued(e):!1}resolveChain(e,t){let r=[],i=new Set;i.add(e);let s=[],o=t.get(e);for(o&&s.push(o.value);s.length>0&&r.length<xr.MAX_PROTOTYPE_DEPTH;){let c=s.shift();if(c===void 0)break;if(i.has(c))continue;i.add(c),r.push(c);let l=t.get(c);l&&!i.has(l.value)&&s.push(l.value)}return r}};xr.PrototypeChainMaterializer=qv;xr.PrototypeChainMaterializer=qv=FG([(0,LG.injectable)(),DG("design:paramtypes",[NG.NonInheritablePropertyRegistry,kG.PropertyCardinalityRegistry])],qv)});var rO=v(xg=>{"use strict";Object.defineProperty(xg,"__esModule",{value:!0});xg.IRICanonicalizer=void 0;var tO=Ce(),jG=Ge(),$G=Mt(),UG=zn(),Wv=/^obsidian:\/\/vault\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.md$/i,Ag=class n{static{a(this,"IRICanonicalizer")}static extractSynthAUid(e){let t=Wv.exec(e);return t?t[1].toLowerCase():null}static canonicalize(e,t){if(t.size===0)return{triples:e,remapCount:0,uniqueRemapCount:0};let r=new Map,i=new Set,s=0;return{triples:e.map(c=>{let l=n.remapIfSynthA(c.subject,t,r,i),u=n.remapIfSynthA(c.object,t,r,i);return l===c.subject&&u===c.object?c:(s++,new UG.Triple(l,c.predicate,u))}),remapCount:s,uniqueRemapCount:i.size}}static remapIfSynthA(e,t,r,i){if(e instanceof jG.Literal||e instanceof $G.BlankNode||!(e instanceof tO.IRI))return e;let s=Wv.exec(e.value);if(!s)return e;let o=s[1].toLowerCase(),c=t.get(o);if(!c||c===e.value)return e;i.add(o);let l=r.get(c);return l||(l=new tO.IRI(c),r.set(c,l)),l}};xg.IRICanonicalizer=Ag;Ag.SYNTH_A_IRI_PATTERN=Wv});var Rg=v(Ig=>{"use strict";Object.defineProperty(Ig,"__esModule",{value:!0});Ig.derivePath=sO;Ig.deriveLegacyFlatPath=BG;var iO="assetspaces",nO=/^[A-Za-z0-9._-]+$/;function sO(n){if(typeof n!="string")return null;let e=n.trim();if(e.length===0||/^file:\/\//i.test(e))return null;e=e.replace(/\/+$/,""),e=e.replace(/\.git$/i,"");let t=null;if(!e.includes("://")){let o=/^[^/@\s]+@[^/:\s]+:(.+)$/.exec(e);o&&(t=o[1])}if(t===null){let o=e.replace(/^[a-z][a-z0-9+.-]*:\/\//i,"");o=o.replace(/^[^/@]+@/,"");let c=o.indexOf("/");if(c<0)return null;t=o.slice(c+1)}let r=t.split("/").filter(o=>o.length>0);if(r.length<2)return null;let i=r[0],s=r[1];return i==="."||i===".."||s==="."||s===".."||!nO.test(i)||!nO.test(s)?null:`${iO}/${i}/${s}`}a(sO,"derivePath");function BG(n){let e=sO(n);if(e===null)return null;let t=e.split("/")[2];if(t===void 0||t.length===0)return null;let r=t.startsWith("exoas-")?t.slice(6):t;return r.length===0?null:`${iO}/${r}`}a(BG,"deriveLegacyFlatPath")});var Cg=v(zi=>{"use strict";Object.defineProperty(zi,"__esModule",{value:!0});zi.FILE_SPACE_CLASS_UID=void 0;zi.frontmatterDeclaresFileSpace=qG;zi.discoverFileSpaceExclusions=WG;var VG=Rg();zi.FILE_SPACE_CLASS_UID="aad8913e-5e9f-4047-879d-93cc46befd52";var oO=/\[\[([^\]|]+)(?:\|[^\]]*)?\]\]/g,Hv=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function cO(n){let e=Array.isArray(n)?n:[n],t=[];for(let r of e){if(typeof r!="string")continue;oO.lastIndex=0;let i;for(;(i=oO.exec(r))!==null;)t.push(i[1].trim())}return t}a(cO,"wikilinkTargets");function qG(n){return n?cO(n.exo__Instance_class).some(e=>Hv.test(e)&&e.toLowerCase()===zi.FILE_SPACE_CLASS_UID):!1}a(qG,"frontmatterDeclaresFileSpace");function aO(n,e){try{return n.getFrontmatter(e)}catch{return null}}a(aO,"readFrontmatterSafe");function GG(n){let e=n.exo__AssetSpace_source;if(typeof e=="string"&&e.length>0)return e;let t=n.exo__AssetSpace_git;return typeof t=="string"&&t.length>0?t:null}a(GG,"readSource");function WG(n){let e=[],t=[],r=[],i=new Map,s=a((c,l)=>{if(Hv.test(c))return c.toLowerCase()===zi.FILE_SPACE_CLASS_UID;let u=n.getFirstLinkpathDest(c,l);if(u==null)return!1;let f=i.get(u.path);if(f!==void 0)return f;let h=aO(n,u)?.exo__Asset_uid,p=typeof h=="string"&&h.toLowerCase()===zi.FILE_SPACE_CLASS_UID;return i.set(u.path,p),p},"isFileSpaceClassRef"),o=a(c=>c.some(l=>Hv.test(l)&&l.toLowerCase()===zi.FILE_SPACE_CLASS_UID),"hasUuidFormRef");for(let c of n.getAllFiles()){let l=aO(n,c);if(!l)continue;let u=cO(l.exo__Instance_class);if(!u.some(p=>s(p,c.path)))continue;t.push(c.path),o(u)||r.push(`FileSpace declaration ${c.path} references the class via a label-form link only \u2014 the sync layer will not pick it up; use the UUID-form wikilink [[${zi.FILE_SPACE_CLASS_UID}]] (UID-canon)`);let f=GG(l);if(f===null){r.push(`FileSpace declaration ${c.path} has no exo__AssetSpace_source/_git \u2014 mount path underivable, content NOT excluded from the index`);continue}let d=(0,VG.derivePath)(f);if(d===null){r.push(`FileSpace declaration ${c.path}: cannot derive mount path from source "${f}" \u2014 content NOT excluded from the index`);continue}let h=`${d}/`;c.path.startsWith(h)&&r.push(`FileSpace declaration ${c.path} lies INSIDE its own mount ${h} \u2014 it will be excluded from the index together with the content; move the declaration outside the mount folder`),e.push(h)}return{prefixes:e,declarationPaths:t,warnings:r}}a(WG,"discoverFileSpaceExclusions")});var lO=v(Qn=>{"use strict";var HG=Qn&&Qn.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},zG=Qn&&Qn.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(Qn,"__esModule",{value:!0});Qn.LazyAssetGraphLoader=Qn.MAX_LAZY_DEPTH=void 0;var KG=Ve(),XG=Ce(),zv=Ht();Qn.MAX_LAZY_DEPTH=10;var Kv=class{static{a(this,"LazyAssetGraphLoader")}constructor(e,t,r){this.converter=e,this.fileResolver=t,this.store=r,this.loadedIRIs=new Set,this.instanceClassPredicate=zv.Namespace.EXO.term("Instance_class"),this.superClassPredicate=zv.Namespace.EXO.term("Class_superClass"),this.prototypePredicate=zv.Namespace.EXO.term("Asset_prototype")}async ensureFileLoaded(e,t=0){if(t>=Qn.MAX_LAZY_DEPTH)return;let r=this.converter.notePathToIRI(e.path).value;if(!this.loadedIRIs.has(r)){this.loadedIRIs.add(r);try{let i=await this.converter.convertNote(e);if(!this.loadedIRIs.has(r)||(await this.store.addAll(i),!this.loadedIRIs.has(r)))return;await this.walkClassAndPrototypeRelations(i,t+1)}catch(i){throw this.loadedIRIs.delete(r),i}}}async ensureLoadedByIRI(e,t=0){if(t>=Qn.MAX_LAZY_DEPTH||this.loadedIRIs.has(e.value))return;let r=this.fileResolver.resolveByIRI(e);r!==null&&await this.ensureFileLoaded(r,t)}isLoaded(e){return this.loadedIRIs.has(e.value)}forget(e){this.loadedIRIs.delete(e.value)}clearAll(){this.loadedIRIs.clear()}get loadedCount(){return this.loadedIRIs.size}clearForTests(){this.loadedIRIs.clear()}async walkClassAndPrototypeRelations(e,t){let r=[];for(let i of e){if(!(i.object instanceof XG.IRI))continue;let s=i.predicate.value;(s===this.instanceClassPredicate.value||s===this.superClassPredicate.value||s===this.prototypePredicate.value)&&r.push(i.object)}for(let i of r)await this.ensureLoadedByIRI(i,t)}};Qn.LazyAssetGraphLoader=Kv;Qn.LazyAssetGraphLoader=Kv=HG([(0,KG.injectable)(),zG("design:paramtypes",[Object,Object,Object])],Kv)});var Yv=v(br=>{"use strict";var YG=br&&br.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},QG=br&&br.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(br,"__esModule",{value:!0});br.SourceAnnotator=br.DEPTH_VARIABLE=br.SOURCE_VARIABLE=void 0;var JG=Ve(),Kl=Ge(),ZG=Ce(),Og=Gv();br.SOURCE_VARIABLE="_source";br.DEPTH_VARIABLE="_depth";var Xv=class{static{a(this,"SourceAnnotator")}constructor(e){this.tripleStore=e}async annotate(e,t,r,i){if(!this.tripleStore.matchInGraph)return e.map(o=>{let c=o.clone();return c.set(br.SOURCE_VARIABLE,new Kl.Literal("own")),c});let s=[];for(let o of e){let c=o.get(t),l=o.get(r),u=o.get(i),f=o.clone();if(!c||!l||!u)f.set(br.SOURCE_VARIABLE,new Kl.Literal("own"));else{let d=await this.determineSource(c,l,u);f.set(br.SOURCE_VARIABLE,new Kl.Literal(d))}s.push(f)}return s}async annotateSingle(e,t,r,i){return(await this.annotate([e],t,r,i))[0]}async determineSource(e,t,r){return this.tripleStore.matchInGraph&&(await this.tripleStore.matchInGraph(e,t,r,Og.INFERRED_GRAPH)).length>0?"inherited":"own"}async getInheritanceDepth(e,t,r){if(!this.tripleStore.matchInGraph)return 0;for(let i=1;i<=Og.MAX_PROTOTYPE_DEPTH;i++){let s=(0,Og.inferredGraphForDepth)(i);if((await this.tripleStore.matchInGraph(e,t,r,s)).length>0)return i}return 0}async annotateBySubject(e,t){if(!this.tripleStore.matchInGraph)return e.map(s=>{let o=s.clone();return o.set(br.SOURCE_VARIABLE,new Kl.Literal("own")),o});let r=[],i=new Map;for(let s of e){let o=s.get(t),c=s.clone();if(!o||!(o instanceof ZG.IRI))c.set(br.SOURCE_VARIABLE,new Kl.Literal("own"));else{let l=o.value;if(!i.has(l)){let f=await this.tripleStore.matchInGraph(o,void 0,void 0,Og.INFERRED_GRAPH);i.set(l,f.length>0?"inherited":"own")}let u=i.get(l)??"own";c.set(br.SOURCE_VARIABLE,new Kl.Literal(u))}r.push(c)}return r}};br.SourceAnnotator=Xv;br.SourceAnnotator=Xv=YG([(0,JG.injectable)(),QG("design:paramtypes",[Object])],Xv)});var eE=v(Jn=>{"use strict";var eW=Jn&&Jn.__decorate||function(n,e,t,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,e,t,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},tW=Jn&&Jn.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},uO=Jn&&Jn.__param||function(n,e){return function(t,r){e(t,r,n)}},Zv;Object.defineProperty(Jn,"__esModule",{value:!0});Jn.NoteToRDFConverter=void 0;Jn.normaliseExcludedFolders=pO;Jn.isPathExcluded=mO;var Qv=Ve(),cr=zn(),Ki=Ce(),yn=Ge(),fO=Mt(),zt=Ht(),dO=Ut(),rW=Lv(),nW=el(),Jv=Fv(),$n=j_(),iW=Cg(),hO=new Set(["archived","draft","pinned","aliases"]);function pO(n){return Array.isArray(n)?n.map(e=>String(e).replace(/\\/g,"/").trim()).filter(e=>e.length>0).map(e=>e.endsWith("/")?e:`${e}/`):[]}a(pO,"normaliseExcludedFolders");function mO(n,e){if(e.length===0)return!1;let t=n.replace(/\\/g,"/");for(let r of e)if(t.startsWith(r))return!0;return!1}a(mO,"isPathExcluded");function sW(n){if(!n)return"";let e=n.replace(/\\/g,"/");for(;e.startsWith("/");)e=e.slice(1);for(;e.endsWith("/");)e=e.slice(0,-1);return e.length>0?`${e}/`:""}a(sW,"normaliseSubjectIriPrefix");var bc=Zv=class{static{a(this,"NoteToRDFConverter")}constructor(e,t=nW.NullLogger,r={}){this.vault=e,this.logger=t,this.BODY_WIKILINK_PATTERN=/(?<!!)\[\[([^\]|]+)(?:\|[^\]]+)?\]\]/g,this.pendingExtraTriples=[],this.vocabularyMapper=new rW.RDFVocabularyMapper,this.subjectIriPrefix=sW(r.subjectIriPrefix)}async convertNote(e){let t=this.vault.getFrontmatter(e);if(!t)return[];let r=this.notePathToIRI(e.path),i=zt.Namespace.EXO.term("Asset_filename"),s=new cr.Triple(r,i,new yn.Literal(e.basename));if($n.Exo003Parser.isExo003Format(t)){let o=await this.convertExo003Note(e,t);return[s,...o]}return this.convertLegacyNote(e,t,s)}async convertLegacyNote(e,t,r){this.pendingExtraTriples=[];let i=[r],s=this.notePathToIRI(e.path),o,c,l,u=!1,f=zt.Namespace.EXO.term("Statement").value;for(let[g,b]of Object.entries(t)){let _=hO.has(g)?`exo__Asset_${g}`:g;if(!this.isExocortexProperty(_))continue;let S=this.propertyKeyToIRI(_),x=Array.isArray(b)?b:[b];for(let A of x)if(!((g==="exo__Asset_label"||hO.has(g))&&(A==null||typeof A=="string"&&A.trim()==="")))if(g==="exo__Instance_class"){let T=this.valueToClassURI(A);i.push(new cr.Triple(s,S,T))}else{let T=await this.valueToRDFObject(A,e,S);if(_==="exo__Statement_subject"&&o===void 0){let R=T.find(B=>B instanceof Ki.IRI);R&&(o=R)}else if(_==="exo__Statement_predicate"&&c===void 0){let R=T.find(B=>B instanceof Ki.IRI);R&&(c=R)}else _==="exo__Statement_object"&&l===void 0&&(l=T[0]);for(let R of T)if(i.push(new cr.Triple(s,S,R)),this.vocabularyMapper.hasMappingFor(g)&&R instanceof Ki.IRI){let B=this.vocabularyMapper.generateMappedTriple(s,g,R);B&&i.push(B)}}if(g==="exo__Instance_class")for(let A of x){let T=this.valueToClassURI(A);if(T instanceof Ki.IRI){let R=zt.Namespace.RDF.term("type");i.push(new cr.Triple(s,R,T)),T.value===f&&(u=!0)}}if(g==="exo__Asset_label"){let A=zt.Namespace.RDFS.term("label");for(let T of x)typeof T=="string"&&T.length>0&&i.push(new cr.Triple(s,A,new yn.Literal(T)))}}let d="exo__Instance_class"in t||"exo__Asset_uid"in t,h=t.exo__Asset_label,p="exo__Asset_label"in t&&h!==null&&h!==void 0&&!(typeof h=="string"&&h.trim()==="")&&!(Array.isArray(h)&&h.length===0);if(d&&!p){let g=zt.Namespace.RDFS.term("label"),b=zt.Namespace.EXO.term("Asset_label"),_=new yn.Literal(e.basename);i.push(new cr.Triple(s,g,_)),i.push(new cr.Triple(s,b,_))}i.push(...this.pendingExtraTriples),this.pendingExtraTriples=[],u&&o&&c&&l&&i.push(new cr.Triple(o,c,l));let y=await this.convertBodyWikilinks(e,s);return i.push(...y),i}async convertExo003Note(e,t){let r=$n.Exo003Parser.parse(t);if(!r.success||!r.metadata)return[];let i=r.metadata,s=[];switch(i.metadata){case $n.Exo003MetadataType.Namespace:break;case $n.Exo003MetadataType.Anchor:s.push(...this.convertExo003Anchor(e,i));break;case $n.Exo003MetadataType.BlankNode:s.push(...this.convertExo003BlankNode(e,i));break;case $n.Exo003MetadataType.Statement:s.push(...this.convertExo003Statement(e,i));break;case $n.Exo003MetadataType.Body:s.push(...await this.convertExo003Body(e,i));break}return s}convertExo003Anchor(e,t){let r=this.notePathToIRI(e.path),i=new Ki.IRI(t.uri);return[new cr.Triple(r,zt.Namespace.OWL.term("sameAs"),i),new cr.Triple(i,zt.Namespace.OWL.term("sameAs"),r)]}convertExo003BlankNode(e,t){let r=this.notePathToIRI(e.path),i=t.uri.replace(/[^a-zA-Z0-9_-]/g,"_");return[new cr.Triple(r,zt.Namespace.OWL.term("sameAs"),new fO.BlankNode(i))]}convertExo003Statement(e,t){let r=[];try{let i=this.createExo003ReferenceResolver(e),s=$n.Exo003Parser.toTriple(t,i);r.push(s);let o=this.notePathToIRI(e.path);r.push(new cr.Triple(o,zt.Namespace.RDF.term("value"),s.subject))}catch{}return r}async convertExo003Body(e,t){let r=[];try{let i=await this.vault.read(e),s=this.extractBodyContent(i),o=this.createExo003ReferenceResolver(e),c=o(t.subject),l=o(t.predicate);if(c.type==="literal")throw new Error("Body subject cannot be a literal");if(l.type!=="iri")throw new Error("Body predicate must be an IRI");let u=c.type==="iri"?new Ki.IRI(c.value):new fO.BlankNode(c.value),f=new Ki.IRI(l.value),d=$n.Exo003Parser.toLiteral(t,s.trim());r.push(new cr.Triple(u,f,d));let h=this.notePathToIRI(e.path);r.push(new cr.Triple(h,zt.Namespace.RDF.term("value"),u))}catch{}return r}createExo003ReferenceResolver(e){return t=>{let r=this.extractWikilink(t),i=r||t,s=this.vault.getFirstLinkpathDest(i,e.path);if(s){let o=this.vault.getFrontmatter(s);if(o&&$n.Exo003Parser.isExo003Format(o)){let c=$n.Exo003Parser.parse(o);if(c.success&&c.metadata){let l=c.metadata;if(l.metadata===$n.Exo003MetadataType.Anchor||l.metadata===$n.Exo003MetadataType.Namespace)return{type:"iri",value:l.uri};if(l.metadata===$n.Exo003MetadataType.BlankNode)return{type:"blank",value:l.uri.replace(/[^a-zA-Z0-9_-]/g,"_")}}}return{type:"iri",value:this.notePathToIRI(s.path).value}}return!r&&t.includes("://")?{type:"iri",value:t}:{type:"literal",value:t}}}async convertVault(e={}){return(await this.convertVaultWithValidation({strict:!1,excludedFolders:e.excludedFolders})).triples}async convertVaultWithValidation(e={}){let t=this.vault.getAllFiles(),r=[],i=[],s=e.strict??!1,o=0,c=0,l=(0,iW.discoverFileSpaceExclusions)(this.vault);for(let g of l.warnings)this.logger.warn(`FileSpace discovery: ${g}`);let u=[...pO(e.excludedFolders),...l.prefixes],f=u.length===0?t:t.filter(g=>!mO(g.path,u)),d=e.onProgress,h=e.progressIntervalFiles&&e.progressIntervalFiles>0?e.progressIntervalFiles:Zv.INDEX_PROGRESS_INTERVAL,p=f.length,y=0;for(let g of f){if(y++,d&&y%h===0&&y<p)try{d(y,p)}catch{}try{let b=this.vault.getFrontmatter(g),_=b?this.validateExocortexAsset(b,g.basename):null;if(_){if(s)throw new Error(`Invariant violation in "${g.path}": ${_.message}`);i.push({path:g.path,reason:`Invariant violation: ${_.message}`}),o++,this.logger.info(`Skipping file with invariant violation: ${g.path}`,{code:_.code,property:_.property,reason:_.message});continue}let S=await this.convertNote(g);r.push(...S)}catch(b){let _=b instanceof Error?b.message:String(b);if(s)throw new Error(`Invalid IRI for file "${g.path}": ${_}`);i.push({path:g.path,reason:`Invalid IRI: ${_}`}),c++,this.logger.info(`Skipping file with invalid IRI: ${g.path}`,{reason:_})}}return o>0&&this.logger.warn(`Skipped ${o} file${o===1?"":"s"} with invariant violations during indexing (paths in developer console)`,{count:o}),c>0&&this.logger.warn(`Skipped ${c} file${c===1?"":"s"} with invalid IRI during indexing (paths in developer console)`,{count:c}),{triples:r,skippedFiles:i,summary:{total:f.length,indexed:f.length-i.length,skipped:i.length},fileSpaces:l}}static inferLabelFromBasename(e){return zt.Namespace.fromPropertyKey(e)!==null?e:null}validateExocortexAsset(e,t){let r=a(d=>d==null?!0:typeof d=="string"?d.trim()==="":Array.isArray(d)?d.length===0||d.every(r):!1,"isEmpty");if(!("exo__Instance_class"in e||"exo__Asset_uid"in e))return null;let s=["exo__Asset_uid","exo__Instance_class"];for(let d of s){if(!(d in e))return{code:"MISSING_PROPERTY",property:d,message:`Required property "${d}" is missing`};if(r(e[d]))return{code:"EMPTY_PROPERTY",property:d,message:`Required property "${d}" is empty`}}let o=["ems__Effort_status","ems__Effort_parent","ems__Effort_lockedBy","ems__Effort_lockExpires","exo__Asset_updatedAt","ems__Effort_startTimestamp"];for(let d of o)if(d in e&&r(e[d]))return{code:"EMPTY_OPTIONAL_PROPERTY",property:d,message:`Optional property "${d}" is present but empty`};let c=e.exo__Instance_class,l=Array.isArray(c)?c:[c],u=null,f=!1;for(let d of l){if(typeof d!="string")continue;let h=this.removeQuotes(d),y=(this.extractWikilink(h)??h).trim();/^[a-z][a-zA-Z0-9]*__/.test(y)&&/[\s()]/.test(y)?u||(u={candidate:d}):f=!0}return u&&!f?{code:"INVALID_INSTANCE_CLASS_IRI",property:"exo__Instance_class",message:`Invalid Instance_class IRI: "${u.candidate}"`}:null}async validateVault(){let e=this.vault.getAllFiles(),t=[];for(let r of e){let i=(0,Jv.vaultPathToIRI)(r.path);Ki.IRI.isValidIRI(i)||t.push({path:r.path,reason:`Path "${r.path}" cannot be converted to a valid IRI`})}return t}notePathToIRI(e){return new Ki.IRI((0,Jv.vaultPathToIRI)(`${this.subjectIriPrefix}${e}`))}synthesizeWikilinkTargetIRI(e){return new Ki.IRI((0,Jv.vaultPathToIRI)(e))}isExocortexProperty(e){return zt.Namespace.fromPropertyKey(e)!==null}propertyKeyToIRI(e){let t=zt.Namespace.fromPropertyKey(e);if(!t)throw new Error(`Invalid property key: ${e}`);return t.namespace.term(t.localName)}emitTypeTripleForEnumInstance(e,t){let r=this.vault.getFrontmatter(t);if(!r)return;let i=r.exo__Instance_class,s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return;let o=this.valueToClassURI(s);o instanceof Ki.IRI&&(this.pendingExtraTriples.push(new cr.Triple(e,zt.Namespace.RDF.term("type"),o)),this.pendingExtraTriples.push(new cr.Triple(e,zt.Namespace.EXO.term("Instance_class"),o)))}async valueToRDFObject(e,t,r){if(typeof e=="string"){let i=this.removeQuotes(e),s=this.extractWikilink(i);if(s){let o=this.vault.getFirstLinkpathDest(s,t.path);if(o){let l=this.notePathToIRI(o.path),u=s.includes("|")?s.split("|")[0]:s;if(this.isUUID(u)){let d=new yn.Literal(u);if(r?.value.endsWith("#Grounding_targetValueRef")||r?.value.endsWith("#Grounding_targetValueSubstitution")||r?.value.endsWith("#Grounding_targetClass")||r?.value.endsWith("#Grounding_type")||r?.value.endsWith("#PropertyDefault_value"))return[l];let p=this.expandClassValue(o.basename);if(p)return this.emitTypeTripleForEnumInstance(p,o),[p];let y=this.vault.getFrontmatter(o);if(y){let x=y.exo__Asset_label;if(typeof x=="string"){let A=this.expandClassValue(x);if(A)return this.emitTypeTripleForEnumInstance(A,o),[A]}}let g=r?.value.endsWith("#Asset_prototype")||r?.value.endsWith("/Asset_prototype"),_=((typeof process<"u"?process.env:void 0)?.EXOCORTEX_DUAL_STORAGE_PREDICATES??"").split(",").map(x=>x.trim()).filter(Boolean),S=_.length>0&&_.some(x=>r?.value.endsWith(`#${x}`));return g||S?[l,d]:[l]}let f=this.expandClassValue(o.basename);return f?(this.emitTypeTripleForEnumInstance(f,o),[f]):[l]}if(this.isClassReference(s)){let l=this.expandClassValue(s);if(l)return[l]}let c=s.includes("|")?s.split("|")[0]:s;return this.isUUID(c)?[this.synthesizeWikilinkTargetIRI(`${c}.md`)]:[new yn.Literal(i)]}if(this.isClassReference(i)){let o=this.expandClassValue(i);if(o)return[o]}return this.isISO8601DateTime(i)?[new yn.Literal(i,zt.Namespace.XSD.term("dateTime"))]:[new yn.Literal(i)]}return typeof e=="boolean"?[new yn.Literal(e.toString())]:typeof e=="number"?[new yn.Literal(e.toString(),zt.Namespace.XSD.term("decimal"))]:e instanceof Date?[new yn.Literal(e.toISOString(),zt.Namespace.XSD.term("dateTime"))]:[new yn.Literal(String(e))]}isISO8601DateTime(e){return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-]\d{2}:\d{2})?$/.test(e)}removeQuotes(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.substring(1,t.length-1):e}extractWikilink(e){let t=e.match(/^\[\[([^\]]+)\]\]$/);if(!t)return null;let r=t[1];return r.includes("|")?r.split("|")[0]:r}extractWikilinkAlias(e){let t=e.match(/^\[\[([^\]]+)\]\]$/);if(!t)return null;let r=t[1],i=r.indexOf("|");return i>=0?r.substring(i+1).trim():null}valueToClassURI(e){if(typeof e!="string")return new yn.Literal(String(e));let t=this.removeQuotes(e),i=this.extractWikilink(t)||t,s=this.expandClassValue(i);if(s)return s;let o=this.extractWikilinkAlias(t);if(o){let c=this.expandClassValue(o);if(c)return c}if(this.isUUID(i)){let c=this.vault.getFirstLinkpathDest(i,"");if(c){let l=this.expandClassValue(c.basename);if(l)return l;let u=this.vault.getFrontmatter(c);if(u){let f=u.exo__Asset_label;if(typeof f=="string"){let d=this.expandClassValue(f);if(d)return d}}return this.notePathToIRI(c.path)}}return new yn.Literal(t)}isClassReference(e){return/\s/.test(e)?!1:zt.Namespace.fromPropertyKey(e)!==null}isUUID(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}expandClassValue(e){let t=this.removeQuotes(e),r=zt.Namespace.fromPropertyKey(t);return!r||/[\s()]/.test(r.localName)?null:r.namespace.term(r.localName)}extractBodyContent(e){let t=/^---\r?\n[\s\S]*?\r?\n---\r?\n?/;return e.replace(t,"")}extractBodyWikilinks(e){let t=new Set,r,i=new RegExp(this.BODY_WIKILINK_PATTERN.source,"g");for(;(r=i.exec(e))!==null;)r[1]&&t.add(r[1]);return Array.from(t)}async convertBodyWikilinks(e,t){let r=[];try{let i=await this.vault.read(e),s=this.extractBodyContent(i),o=this.extractBodyWikilinks(s),c=zt.Namespace.EXO.term("Asset_bodyLink");for(let l of o){let u=this.vault.getFirstLinkpathDest(l,e.path);if(u){let f=this.notePathToIRI(u.path);r.push(new cr.Triple(t,c,f))}else if(this.isClassReference(l)){let f=this.expandClassValue(l);f?r.push(new cr.Triple(t,c,f)):r.push(new cr.Triple(t,c,new yn.Literal(l)))}else r.push(new cr.Triple(t,c,new yn.Literal(l)))}}catch{}return r}};Jn.NoteToRDFConverter=bc;bc.INDEX_PROGRESS_INTERVAL=200;bc.SkippedFileInfo=class{constructor(n,e){this.path=n,this.reason=e}};bc.VaultValidationResult=class{constructor(n,e,t){this.triples=n,this.skippedFiles=e,this.summary=t}};bc.VaultValidationOptions=class{constructor(n=!1){this.strict=n}};Jn.NoteToRDFConverter=bc=Zv=eW([(0,Qv.injectable)(),uO(0,(0,Qv.inject)(dO.DI_TOKENS.IVaultAdapter)),uO(1,(0,Qv.inject)(dO.DI_TOKENS.ILogger)),tW("design:paramtypes",[Object,Object,Object])],bc)});var rE=v(Pg=>{"use strict";Object.defineProperty(Pg,"__esModule",{value:!0});Pg.FilterContainsOptimizer=void 0;var oW=Ce(),aW=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i,tE=class{static{a(this,"FilterContainsOptimizer")}constructor(){this.tripleStore=null,this.lastOptimizationHints=[]}setTripleStore(e){this.tripleStore=e}getLastOptimizationHints(){return this.lastOptimizationHints}clearHints(){this.lastOptimizationHints=[]}async optimize(e){return this.clearHints(),this.optimizeRecursive(e)}optimizeSync(e,t){return this.clearHints(),this.optimizeSyncRecursive(e,t)}async optimizeRecursive(e){return e.type==="filter"?this.optimizeFilter(e):e.type==="join"?{type:"join",left:await this.optimizeRecursive(e.left),right:await this.optimizeRecursive(e.right)}:e.type==="leftjoin"?{...e,left:await this.optimizeRecursive(e.left),right:await this.optimizeRecursive(e.right)}:e.type==="union"?{type:"union",left:await this.optimizeRecursive(e.left),right:await this.optimizeRecursive(e.right)}:e.type==="minus"?{...e,left:await this.optimizeRecursive(e.left),right:await this.optimizeRecursive(e.right)}:e.type==="project"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="orderby"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="slice"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="distinct"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="reduced"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="group"?{...e,input:await this.optimizeRecursive(e.input)}:e.type==="extend"?{...e,input:await this.optimizeRecursive(e.input)}:e}optimizeSyncRecursive(e,t){return e.type==="filter"?this.optimizeFilterSync(e,t):e.type==="join"?{type:"join",left:this.optimizeSyncRecursive(e.left,t),right:this.optimizeSyncRecursive(e.right,t)}:e.type==="leftjoin"?{...e,left:this.optimizeSyncRecursive(e.left,t),right:this.optimizeSyncRecursive(e.right,t)}:e.type==="union"?{type:"union",left:this.optimizeSyncRecursive(e.left,t),right:this.optimizeSyncRecursive(e.right,t)}:e.type==="minus"?{...e,left:this.optimizeSyncRecursive(e.left,t),right:this.optimizeSyncRecursive(e.right,t)}:e.type==="project"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="orderby"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="slice"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="distinct"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="reduced"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="group"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e.type==="extend"?{...e,input:this.optimizeSyncRecursive(e.input,t)}:e}async optimizeFilter(e){let t=this.detectContainsUUIDPattern(e.expression);if(!t)return{type:"filter",expression:e.expression,input:await this.optimizeRecursive(e.input)};let r=[];return this.tripleStore&&(r=await this.findSubjectsContainingUUID(t.uuid)),this.rewriteFilter(e,t,r)}optimizeFilterSync(e,t){let r=this.detectContainsUUIDPattern(e.expression);if(!r)return{type:"filter",expression:e.expression,input:this.optimizeSyncRecursive(e.input,t)};let i=t?t.filter(s=>s.includes(r.uuid)):[];return this.rewriteFilter(e,r,i)}rewriteFilter(e,t,r){if(this.lastOptimizationHints.push({type:"uuid-index-lookup",originalPattern:`FILTER(CONTAINS(STR(?${t.variable}), "${t.uuid}"))`,suggestedRewrite:r.length===1?`VALUES ?${t.variable} { <${r[0]}> }`:r.length>1?`VALUES ?${t.variable} { ${r.map(i=>`<${i}>`).join(" ")} }`:"No matching URIs found for UUID",estimatedSpeedup:r.length>0?"O(n) \u2192 O(1)":"N/A",matchedUri:r.length===1?r[0]:void 0}),r.length===0)return{type:"filter",expression:e.expression,input:this.optimizeSyncRecursive(e.input)};if(r.length===1){let i=this.injectSubjectConstraint(e.input,t.variable,r[0]);if(i!==e.input)return i}return this.createValuesJoin(e,t,r)}detectContainsUUIDPattern(e){if(e.type==="function"||e.type==="functionCall"){let t=e;if((typeof t.function=="string"?t.function.toLowerCase():t.function?.value?.toLowerCase()??"")==="contains"&&t.args.length===2)return this.analyzeContainsArgs(t.args[0],t.args[1],e)}if(e.type==="logical"&&e.operator==="&&")for(let t of e.operands){let r=this.detectContainsUUIDPattern(t);if(r)return r}return null}analyzeContainsArgs(e,t,r){let i=null;if(e.type==="function"||e.type==="functionCall"){let s=e;if((typeof s.function=="string"?s.function.toLowerCase():s.function?.value?.toLowerCase()??"")==="str"&&s.args.length===1){let c=s.args[0];c.type==="variable"&&(i=c.name)}}if(!i&&e.type==="variable"&&(i=e.name),!i)return null;if(t.type==="literal"){let c=String(t.value).match(aW);if(c)return{variable:i,uuid:c[0].toLowerCase(),originalExpression:r}}return null}async findSubjectsContainingUUID(e){if(!this.tripleStore)return[];if(this.tripleStore.findSubjectsByUUID)return(await this.tripleStore.findSubjectsByUUID(e)).map(s=>s.value);let t=await this.tripleStore.subjects(),r=[];for(let i of t)i instanceof oW.IRI&&i.value.toLowerCase().includes(e.toLowerCase())&&r.push(i.value);return r}injectSubjectConstraint(e,t,r){if(e.type==="bgp"){let i=e.triples.map(o=>o.subject.type==="variable"&&o.subject.value===t?{...o,subject:{type:"iri",value:r}}:o);if(i.some((o,c)=>o.subject!==e.triples[c].subject))return{type:"bgp",triples:i}}if(e.type==="join"){let i=this.injectSubjectConstraint(e.left,t,r),s=this.injectSubjectConstraint(e.right,t,r);if(i!==e.left||s!==e.right)return{type:"join",left:i,right:s}}if(e.type==="filter"){let i=this.injectSubjectConstraint(e.input,t,r);if(i!==e.input)return{...e,input:i}}return e}createValuesJoin(e,t,r){return{type:"join",left:{type:"values",variables:[t.variable],bindings:r.map(o=>({[t.variable]:{type:"iri",value:o}}))},right:this.optimizeSyncRecursive(e.input)}}analyzeQuery(e){let t=[];return this.analyzeRecursive(e,t),t}analyzeRecursive(e,t){if(e.type==="filter"){let r=this.detectContainsUUIDPattern(e.expression);r&&t.push({type:"uuid-index-lookup",originalPattern:`FILTER(CONTAINS(STR(?${r.variable}), "${r.uuid}"))`,suggestedRewrite:`Use --optimize flag or rewrite as VALUES ?${r.variable} { <uri-containing-uuid> }`,estimatedSpeedup:"O(n) \u2192 O(1) with UUID index lookup"}),this.analyzeRecursive(e.input,t);return}e.type==="join"?(this.analyzeRecursive(e.left,t),this.analyzeRecursive(e.right,t)):e.type==="leftjoin"?(this.analyzeRecursive(e.left,t),this.analyzeRecursive(e.right,t)):e.type==="union"?(this.analyzeRecursive(e.left,t),this.analyzeRecursive(e.right,t)):e.type==="minus"?(this.analyzeRecursive(e.left,t),this.analyzeRecursive(e.right,t)):e.type==="project"?this.analyzeRecursive(e.input,t):e.type==="orderby"?this.analyzeRecursive(e.input,t):e.type==="slice"?this.analyzeRecursive(e.input,t):e.type==="distinct"?this.analyzeRecursive(e.input,t):e.type==="reduced"?this.analyzeRecursive(e.input,t):e.type==="group"?this.analyzeRecursive(e.input,t):e.type==="extend"&&this.analyzeRecursive(e.input,t)}};Pg.FilterContainsOptimizer=tE});var gO=v(Fg=>{"use strict";Object.defineProperty(Fg,"__esModule",{value:!0});Fg.AlgebraOptimizer=void 0;var cW=rE(),nE=class{static{a(this,"AlgebraOptimizer")}constructor(){this.stats=new Map,this.tripleStore=null,this.filterContainsOptimizer=new cW.FilterContainsOptimizer}setTripleStore(e){this.tripleStore=e,this.filterContainsOptimizer.setTripleStore(e)}getOptimizationHints(){return this.filterContainsOptimizer.getLastOptimizationHints()}analyzeQuery(e){return this.filterContainsOptimizer.analyzeQuery(e)}optimize(e){let t=e;return t=this.eliminateEmptyBGPInFilterJoin(t),t=this.filterPushDown(t),t=this.joinReordering(t),t}async optimizeAsync(e){let t=e;return t=this.eliminateEmptyBGPInFilterJoin(t),this.tripleStore&&(t=await this.filterContainsOptimizer.optimize(t)),t=this.filterPushDown(t),t=this.joinReordering(t),t}optimizeWithSubjects(e,t){let r=e;return r=this.eliminateEmptyBGPInFilterJoin(r),r=this.filterContainsOptimizer.optimizeSync(r,t),r=this.filterPushDown(r),r=this.joinReordering(r),r}eliminateEmptyBGPInFilterJoin(e){if(e.type==="join"){if(e.left.type==="filter"){let t=e.left;if(t.input.type==="bgp"&&t.input.triples.length===0)return{type:"filter",expression:t.expression,input:this.eliminateEmptyBGPInFilterJoin(e.right)}}if(e.right.type==="filter"){let t=e.right;if(t.input.type==="bgp"&&t.input.triples.length===0)return{type:"filter",expression:t.expression,input:this.eliminateEmptyBGPInFilterJoin(e.left)}}return{type:"join",left:this.eliminateEmptyBGPInFilterJoin(e.left),right:this.eliminateEmptyBGPInFilterJoin(e.right)}}return e.type==="filter"?{...e,input:this.eliminateEmptyBGPInFilterJoin(e.input)}:e.type==="leftjoin"?{...e,left:this.eliminateEmptyBGPInFilterJoin(e.left),right:this.eliminateEmptyBGPInFilterJoin(e.right)}:e.type==="union"?{...e,left:this.eliminateEmptyBGPInFilterJoin(e.left),right:this.eliminateEmptyBGPInFilterJoin(e.right)}:e.type==="minus"?{...e,left:this.eliminateEmptyBGPInFilterJoin(e.left),right:this.eliminateEmptyBGPInFilterJoin(e.right)}:e.type==="project"?{...e,input:this.eliminateEmptyBGPInFilterJoin(e.input)}:e.type==="orderby"?{...e,input:this.eliminateEmptyBGPInFilterJoin(e.input)}:e.type==="slice"?{...e,input:this.eliminateEmptyBGPInFilterJoin(e.input)}:e.type==="distinct"?{...e,input:this.eliminateEmptyBGPInFilterJoin(e.input)}:e}filterPushDown(e){return e.type==="filter"?this.pushDownFilter(e):e.type==="join"?{type:"join",left:this.filterPushDown(e.left),right:this.filterPushDown(e.right)}:e.type==="leftjoin"?{...e,left:this.filterPushDown(e.left),right:this.filterPushDown(e.right)}:e.type==="union"?{type:"union",left:this.filterPushDown(e.left),right:this.filterPushDown(e.right)}:e.type==="minus"?{...e,left:this.filterPushDown(e.left),right:this.filterPushDown(e.right)}:e.type==="project"?{...e,input:this.filterPushDown(e.input)}:e.type==="orderby"?{...e,input:this.filterPushDown(e.input)}:e.type==="slice"?{...e,input:this.filterPushDown(e.input)}:e.type==="distinct"?{...e,input:this.filterPushDown(e.input)}:e}pushDownFilter(e){let t=e.input;if(t.type==="join"){let r=this.getFilterVariables(e.expression),i=this.getOperationVariables(t.left),s=this.getOperationVariables(t.right),o=r.every(l=>i.has(l)),c=r.every(l=>s.has(l));return o&&!c?{type:"join",left:{type:"filter",expression:e.expression,input:this.filterPushDown(t.left)},right:this.filterPushDown(t.right)}:c&&!o?{type:"join",left:this.filterPushDown(t.left),right:{type:"filter",expression:e.expression,input:this.filterPushDown(t.right)}}:{type:"filter",expression:e.expression,input:{type:"join",left:this.filterPushDown(t.left),right:this.filterPushDown(t.right)}}}return t.type==="union"?{type:"union",left:{type:"filter",expression:e.expression,input:this.filterPushDown(t.left)},right:{type:"filter",expression:e.expression,input:this.filterPushDown(t.right)}}:{type:"filter",expression:e.expression,input:this.filterPushDown(t)}}getFilterVariables(e){let t=[];if(e.type==="variable")t.push(e.name);else if(e.type==="comparison")t.push(...this.getFilterVariables(e.left)),t.push(...this.getFilterVariables(e.right));else if(e.type==="logical")for(let r of e.operands)t.push(...this.getFilterVariables(r));else if(e.type==="function")for(let r of e.args)t.push(...this.getFilterVariables(r));return Array.from(new Set(t))}getOperationVariables(e){let t=new Set;if(e.type==="bgp")for(let r of e.triples)r.subject.type==="variable"&&t.add(r.subject.value),r.predicate.type==="variable"&&t.add(r.predicate.value),r.object.type==="variable"&&t.add(r.object.value);else if(e.type==="join"){let r=this.getOperationVariables(e.left),i=this.getOperationVariables(e.right);return new Set([...r,...i])}else{if(e.type==="filter")return this.getOperationVariables(e.input);if(e.type==="leftjoin"){let r=this.getOperationVariables(e.left),i=this.getOperationVariables(e.right);return new Set([...r,...i])}else if(e.type==="union"){let r=this.getOperationVariables(e.left),i=this.getOperationVariables(e.right);return new Set([...r,...i])}else{if(e.type==="minus")return this.getOperationVariables(e.left);if(e.type==="project")return new Set(e.variables)}}return t}joinReordering(e){return e.type==="join"?this.reorderJoin(e):e.type==="filter"?{...e,input:this.joinReordering(e.input)}:e.type==="leftjoin"?{...e,left:this.joinReordering(e.left),right:this.joinReordering(e.right)}:e.type==="union"?{...e,left:this.joinReordering(e.left),right:this.joinReordering(e.right)}:e.type==="minus"?{...e,left:this.joinReordering(e.left),right:this.joinReordering(e.right)}:e.type==="project"?{...e,input:this.joinReordering(e.input)}:e.type==="orderby"?{...e,input:this.joinReordering(e.input)}:e.type==="slice"?{...e,input:this.joinReordering(e.input)}:e.type==="distinct"?{...e,input:this.joinReordering(e.input)}:e}reorderJoin(e){let t=this.isConstrained(e.left),r=this.isConstrained(e.right);if(r&&!t)return{type:"join",left:this.joinReordering(e.right),right:this.joinReordering(e.left)};if(t&&!r)return{type:"join",left:this.joinReordering(e.left),right:this.joinReordering(e.right)};let i=this.estimateCost(e.left);return this.estimateCost(e.right)<i?{type:"join",left:this.joinReordering(e.right),right:this.joinReordering(e.left)}:{type:"join",left:this.joinReordering(e.left),right:this.joinReordering(e.right)}}isConstrained(e){return e.type==="values"?!0:e.type==="bgp"?e.triples.some(t=>t.object.type!=="variable"||t.subject.type!=="variable"):e.type==="filter"?this.isConstrained(e.input):e.type==="join"?this.isConstrained(e.left)||this.isConstrained(e.right):e.type==="union"?this.isConstrained(e.left)&&this.isConstrained(e.right):!1}estimateCost(e){if(e.type==="bgp"){let t=0;for(let r of e.triples){let i=10;r.subject.type==="variable"&&(i*=10),r.predicate.type==="variable"&&(i*=20),r.object.type==="variable"&&(i*=5),t+=i}return t}if(e.type==="filter")return this.estimateCost(e.input)*.3;if(e.type==="join"){let t=this.estimateCost(e.left),r=this.estimateCost(e.right);return e.left.type==="values"||e.right.type==="values"?Math.min(t,r)*2:t*r}if(e.type==="leftjoin")return this.estimateCost(e.left)+this.estimateCost(e.right)*.5;if(e.type==="union")return this.estimateCost(e.left)+this.estimateCost(e.right);if(e.type==="values"){let t=e.bindings;return Array.isArray(t)?t.length*5:10}return e.type==="minus"?this.estimateCost(e.left)+this.estimateCost(e.right)*.3:100}setStatistics(e,t){this.stats.set(e,t)}getStatistics(e){return this.stats.get(e)}};Fg.AlgebraOptimizer=nE});var yO=v(Dg=>{"use strict";Object.defineProperty(Dg,"__esModule",{value:!0});Dg.AlgebraSerializer=void 0;var iE=class{static{a(this,"AlgebraSerializer")}toString(e,t=0){let r=" ".repeat(t);switch(e.type){case"bgp":return`${r}BGP [
224
224
  ${e.triples.map(u=>`${r} ${this.tripleToString(u)}`).join(`
225
225
  `)}
226
226
  ${r}]`;case"filter":return`${r}Filter(
@@ -323,7 +323,7 @@ ${b}---
323
323
  ${y.body}`,warnings:g}}splitDoc(e){let t=lK.exec(e);if(!t)return{frontmatter:{},body:e};let r=e.slice(t[0].length);try{let i=this.codec.parse(t[1]);return i==null?{frontmatter:{},body:r}:typeof i!="object"||Array.isArray(i)?null:{frontmatter:i,body:r}}catch{return null}}};gd.StructuredMerger=ST});var PP=v(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.MergeShaclGate=void 0;var vT=ay(),gK="http://www.w3.org/1999/02/22-rdf-syntax-ns#type";function yK(n,e){let t=new Set;for(let r of n){if(r.subject.type!=="iri"||!("type"in r.predicate)||r.predicate.type!=="iri"||r.object.type!=="iri"||r.predicate.value!==e&&r.predicate.value!==gK)continue;t.add(r.subject.value);let i=(0,vT.extractUidFromIRI)(r.subject.value);i&&t.add(`uid:${i}`)}return t}a(yK,"typedSubjects");var ET=class{static{a(this,"MergeShaclGate")}constructor(e){this.deps=e}async checkMergedAsset(e,t){let r=await this.deps.triplesFor(e,t),i=this.deps.contextTriples??[],s=[...r,...i],o=(0,vT.validate)(s,this.deps.registry,this.deps.hierarchy),c=new Set;for(let h of r)h.subject.type==="iri"&&c.add(h.subject.value);let l=yK(s,this.deps.registry.typePredicateIRI),u=this.deps.isMountedRef??(h=>{if(l.has(h))return!0;let p=(0,vT.extractUidFromIRI)(h);return p!==null&&l.has(`uid:${p}`)}),f=[],d=0;for(let h of o.violations)if(c.has(h.focusNode)){if(h.constraint==="class"){if(h.actualValue!==void 0&&!u(h.actualValue)){d++;continue}f.push(h);continue}h.severity==="sh:Violation"&&f.push(h)}return{ok:f.length===0,violations:f,skippedOpenWorld:d}}};Iy.MergeShaclGate=ET});var FP=v(Ry=>{"use strict";Object.defineProperty(Ry,"__esModule",{value:!0});Ry.GatedStructuredMerger=void 0;var TT=class{static{a(this,"GatedStructuredMerger")}constructor(e,t){this.merger=e,this.gate=t}async resolve(e){let t=this.merger.mergeAsset(e);if(t.status==="conflict")return{action:"quarantine",reason:t.reason};if(this.gate!==void 0){let r=await this.gate.checkMergedAsset(e.path,t.content);if(!r.ok)return{action:"quarantine",reason:`merged result is SHACL-invalid: ${r.violations.slice(0,3).map(s=>s.message).join("; ")}`}}return{action:"use-merged",content:t.content,warnings:t.warnings}}};Ry.GatedStructuredMerger=TT});var DP=v(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.FileWatermarkStore=ou.WATERMARK_STORE_FILENAME=void 0;ou.WATERMARK_STORE_FILENAME="exosync-watermarks.local.json";function bK(n){if(n===null||typeof n!="object")return!1;let e=n;return typeof e.lastSyncedSha=="string"&&typeof e.rootTreeSha=="string"&&Array.isArray(e.files)}a(bK,"isWatermarkRecord");var AT=class{static{a(this,"FileWatermarkStore")}constructor(e){this.io=e,this.writeChain=Promise.resolve()}async get(e){let r=(await this.readRepos())[e];return bK(r)?r:null}async set(e,t){let r=this.writeChain.then(async()=>{let i=await this.readRepos();i[e]=t;let s={version:1,repos:i};await this.io.writeAtomic(JSON.stringify(s,null,2))});return this.writeChain=r.catch(()=>{}),r}async readRepos(){try{let e=await this.io.read();if(e===null)return{};let t=JSON.parse(e);if(t===null||typeof t!="object")return{};let r=t.repos;return r===null||typeof r!="object"?{}:{...r}}catch{return{}}}};ou.FileWatermarkStore=AT});var LP=v(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.FileMountBaseStore=au.MOUNT_BASE_STORE_FILENAME=void 0;au.MOUNT_BASE_STORE_FILENAME="exosync-mountbase.local.json";var xT=class{static{a(this,"FileMountBaseStore")}constructor(e){this.io=e,this.writeChain=Promise.resolve()}async get(e){let r=(await this.readRepos())[e];return typeof r=="string"&&r.length>0?r:null}async set(e,t){let r=this.writeChain.then(async()=>{let i=await this.readRepos();i[e]=t;let s={version:1,repos:i};await this.io.writeAtomic(JSON.stringify(s,null,2))});return this.writeChain=r.catch(()=>{}),r}async readRepos(){try{let e=await this.io.read();if(e===null)return{};let t=JSON.parse(e);if(t===null||typeof t!="object")return{};let r=t.repos;if(r===null||typeof r!="object")return{};let i={};for(let[s,o]of Object.entries(r))typeof o=="string"&&(i[s]=o);return i}catch{return{}}}};au.FileMountBaseStore=xT});var NP=v(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.LocalConflictCacheStore=cu.CONFLICT_CACHE_STORE_FILENAME=void 0;var _K=rl();cu.CONFLICT_CACHE_STORE_FILENAME="exosync-conflicts.local.json";function IT(n,e){return`${n}\0${e}`}a(IT,"cacheKey");function RT(n){if(n===null||typeof n!="object")return!1;let e=n;return typeof e.repoKey=="string"&&typeof e.path=="string"&&typeof e.reason=="string"&&typeof e.quarantinedAt=="string"}a(RT,"isRecord");var CT=class{static{a(this,"LocalConflictCacheStore")}constructor(e){this.writeChain=Promise.resolve(),this.io=e.io,this.now=e.now??(()=>new Date().toISOString())}async quarantine(e){await this.quarantineAll([e])}async quarantineAll(e){e.length!==0&&await this.mutate(t=>{for(let r of e){let i=IT(r.repoKey,r.path),s=t.entries[i],o=s!==void 0&&RT(s)?s.quarantinedAt:this.now();t.entries[i]={version:1,repoKey:r.repoKey,path:r.path,...r.uid!==void 0?{uid:r.uid}:{},reason:r.reason,quarantinedAt:o,...r.baseContent!==void 0?{baseContent:r.baseContent}:{},...r.localContent!==void 0?{localContent:r.localContent}:{},...r.remoteContent!==void 0?{remoteContent:r.remoteContent}:{},...r.localContentBytes!==void 0?{localContentBytesBase64:(0,_K.bytesToBase64)(r.localContentBytes)}:{}}}})}async markResolved(e,t){let r=IT(e,t);await this.mutate(i=>{delete i.entries[r]})}async list(){let e=await this.read();return Object.values(e.entries).filter(RT)}async get(e,t){let i=(await this.read()).entries[IT(e,t)];return i!==void 0&&RT(i)?i:null}async mutate(e){let t=this.writeChain.then(async()=>{let r=await this.read();e(r),await this.io.writeAtomic(JSON.stringify(r,null,2))});return this.writeChain=t.catch(()=>{}),t}async read(){try{let e=await this.io.read();if(e===null)return{version:1,entries:{}};let t=JSON.parse(e);if(t===null||typeof t!="object")return{version:1,entries:{}};let r=t.entries;return r===null||typeof r!="object"?{version:1,entries:{}}:{version:1,entries:{...r}}}catch{return{version:1,entries:{}}}}};cu.LocalConflictCacheStore=CT});var VP=v(en=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});en.SpaceSpecAccumulator=en.SYNC_BRANCH=en.ASSET_SPACE_CLASS_UID=void 0;en.isAssetSpaceFrontmatter=jP;en.isFileSpaceFrontmatter=$P;en.readSpaceSource=UP;en.parseStrictGitHubRepoURL=BP;en.classifySpaceDeclaration=EK;var wK=Cg(),SK=Rg();en.ASSET_SPACE_CLASS_UID="73bd00e4-ccc0-4f3f-b20d-c4388c4588fb";en.SYNC_BRANCH="main";var kP=/\[\[([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\|[^\]]*)?\]\]/gi;function MP(n,e){let t=n.exo__Instance_class,r=Array.isArray(t)?t:[t];for(let i of r){if(typeof i!="string")continue;kP.lastIndex=0;let s;for(;(s=kP.exec(i))!==null;)if(s[1].toLowerCase()===e)return!0}return!1}a(MP,"instanceClassHasUid");function jP(n){return MP(n,en.ASSET_SPACE_CLASS_UID)}a(jP,"isAssetSpaceFrontmatter");function $P(n){return MP(n,wK.FILE_SPACE_CLASS_UID)}a($P,"isFileSpaceFrontmatter");function UP(n){let e=n.exo__AssetSpace_source;if(typeof e=="string"&&e.length>0)return e;let t=n.exo__AssetSpace_git;return typeof t=="string"&&t.length>0?t:null}a(UP,"readSpaceSource");var vK=/^https:\/\/github\.com\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_.-]+$/;function BP(n){if(typeof n!="string"||n.length===0||n.length>256||!vK.test(n))return null;let e=n.slice(19),[t,r,...i]=e.split("/");if(i.length>0||t===".."||r===".."||r.startsWith("."))return null;let s=r.replace(/\.git$/,"");return s.length===0?null:{owner:t,repo:s}}a(BP,"parseStrictGitHubRepoURL");function EK(n,e){let t=jP(n),r=$P(n);if(!t&&!r)return{kind:"not-space"};let i;t&&r&&(i=`declaration at ${e} carries BOTH exo__AssetSpace and exo__FileSpace classes (disjoint) \u2014 treating as AssetSpace (conservative)`);let s=t?"asset":"file",o=UP(n);if(o===null)return s==="file"?{kind:"skip",warning:`skipped FileSpace at ${e}: no exo__AssetSpace_source/_git \u2014 mount path underivable`}:{kind:"skip"};let c=o.replace(/\.git$/i,""),l=BP(c);if(l===null)return{kind:"skip",warning:`skipped AssetSpace at ${e}: source is not a plain https://github.com/<owner>/<repo> URL`};let u=(0,SK.derivePath)(c);if(u===null)return{kind:"skip",warning:`skipped AssetSpace at ${e}: cannot derive mount path from source`};let f=`${l.owner}/${l.repo}#${en.SYNC_BRANCH}`,d=n.exo__Asset_uid,h=typeof d=="string"&&d.trim().length>0?d.trim():void 0;return{kind:"candidate",candidate:{spec:{owner:l.owner,repo:l.repo,branch:en.SYNC_BRANCH,repoKey:f,localPath:u,...s==="file"?{spaceKind:s}:{}},spaceKind:s,...h!==void 0?{asUid:h}:{}},...i!==void 0?{warning:i}:{}}}a(EK,"classifySpaceDeclaration");var OT=class{static{a(this,"SpaceSpecAccumulator")}constructor(){this.specs=[],this.warnings=[],this.asUidByRepoKey=new Map,this.seen=new Set,this.kindByRepoKey=new Map}offer(e){let{spec:t,spaceKind:r}=e;if(this.seen.has(t.repoKey)){let i=this.kindByRepoKey.get(t.repoKey);if(i!==void 0&&i!==r&&(this.warnings.push(`repo ${t.repoKey} is declared as BOTH AssetSpace and FileSpace by different assets \u2014 treating as AssetSpace (deterministic, conservative); fix the vault (disjoint subtypes)`),i==="file")){this.kindByRepoKey.set(t.repoKey,"asset");let s=this.specs.find(o=>o.repoKey===t.repoKey);s!==void 0&&delete s.spaceKind}return null}return this.seen.add(t.repoKey),this.kindByRepoKey.set(t.repoKey,r),t}commit(e){this.specs.push(e.spec),e.asUid!==void 0&&this.asUidByRepoKey.set(e.spec.repoKey,e.asUid)}};en.SpaceSpecAccumulator=OT});var PT=v(Oy=>{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});Oy.isFormatOnlyDrift=TK;Oy.compareAssetSemantics=xK;function TK(n){return n.frontmatterEqual&&n.bodyEqual}a(TK,"isFormatOnlyDrift");var AK=/^---\r?\n([\s\S]*?)\r?\n---(?=\r?\n|$)/;function qP(n){let e=AK.exec(n);return e?{fm:e[1],body:n.slice(e[0].length)}:{fm:null,body:n}}a(qP,"splitDoc");function Cy(n){if(Array.isArray(n))return`[${n.map(Cy).sort().join(",")}]`;if(n!==null&&typeof n=="object"){let e=n;return`{${Object.keys(e).sort().map(r=>`${JSON.stringify(r)}:${Cy(e[r])}`).join(",")}}`}return JSON.stringify(n)??"undefined"}a(Cy,"canonicalise");function GP(n){return n.replace(/\r\n/g,`
324
324
  `).replace(/\s+$/,"")}a(GP,"normaliseBody");function xK(n,e,t){let r=qP(n),i=qP(e),s;if(r.fm===null&&i.fm===null)s=!0;else if(r.fm===null||i.fm===null)s=!1;else try{s=Cy(t.parse(r.fm))===Cy(t.parse(i.fm))}catch{s=!1}return{frontmatterEqual:s,bodyEqual:GP(r.body)===GP(i.body)}}a(xK,"compareAssetSemantics")});var KP=v(bd=>{"use strict";Object.defineProperty(bd,"__esModule",{value:!0});bd.ParityValidator=void 0;bd.summarizeParityRound=DK;var yd=ld(),WP=iu(),IK=_y(),RK=vy(),lu=Ey(),HP=PT(),CK=50,OK=200,zP=new Set(["pending-local-edit","pending-remote-add","pending-remote-edit","pending-remote-delete","deferred-local-delete","pending-conflict","unverified-divergence"]),PK=new Set(["quarantine-pinned","format-only-drift"]);function ya(n){return n instanceof Error?n.message:String(n)}a(ya,"errMsg");function FK(n){return/HTTP 404/.test(ya(n))}a(FK,"isNotFoundError");var FT=class{static{a(this,"ParityValidator")}constructor(e){this.deps=e,this.transport=(0,RK.withRateLimitBackoff)(e.transport,e.backoff)}async captureSnapshot(e){let t=new Map,r=[],i=this.deps.redact??(s=>s);for(let s of e)try{let o=await this.deps.watermarks.get(s.repoKey);if(o===null)continue;let c=new Map(o.files.map(f=>[f.path,f.blobSha])),l=await this.readLocalSnapshot(s,s.spaceKind==="file"),u=new Map;for(let[f,d]of l.shas)c.get(f)!==d&&u.set(f,d);u.size>0&&t.set(s.repoKey,u)}catch(o){r.push(`${s.repoKey}: conservation snapshot failed (${i(ya(o))}) \u2014 no coverage this round`)}return{dirtyByRepo:t,warnings:r}}async runRound(e,t){let r=this.deps.now??(()=>new Date().toISOString()),i=this.deps.maxSemanticFetchesPerRun??OK,s=[];for(let u of e){let f=await this.checkRepo(u,t,{take:a(d=>i<d?!1:(i-=d,!0),"take")});s.push(f)}t.previousRound!=null&&t.trigger==="post-sync"&&this.escalatePersistentDivergence(s,t.previousRound,t.syncResults);let o=s.filter(u=>u.status==="checked").length,c=s.reduce((u,f)=>u+f.m1Violations.length,0),l=s.reduce((u,f)=>u+(f.status==="checked"?f.m2SemanticDiffs:0),0);return{version:1,ts:r(),trigger:t.trigger,repos:s,checkedRepos:o,m1Total:c,m2Total:l,ok:c===0&&l===0&&o>0,vacuous:o===0}}async checkRepo(e,t,r){let i=[],s=this.deps.redact??(l=>l),o=a((l,u={})=>({repoKey:e.repoKey,status:l,filesChecked:0,inParity:0,discrepancies:[],m2SemanticDiffs:0,accountedCount:0,m1Violations:[],warnings:i,...u}),"report"),c=t.syncResults?.find(l=>l.repoKey===e.repoKey);if(c?.warnings.some(l=>l.startsWith("race-window")))return o("inconclusive",{detail:"sync hit its race window (watermark not advanced) \u2014 parity deferred to the next round"});if(c?.status==="skipped-not-materialized")return o("inconclusive",{detail:"repo not fully materialized (D19) \u2014 local absence is not divergence; parity deferred to the next round"});try{let l=e.spaceKind==="file",u=await(0,yd.getHeadSha)(this.transport,e.owner,e.repo,e.branch,this.deps.baseURL),f=await(0,yd.getCommitInfo)(this.transport,e.owner,e.repo,u,this.deps.baseURL),d=await(0,yd.getTree)(this.transport,e.owner,e.repo,f.treeSha,this.deps.baseURL),h=this.deps.maxFileBytes??lu.DEFAULT_MAX_FILE_BYTES,p=l?lu.isFileSpaceSyncablePath:lu.isSyncablePath,y=new Map;for(let $ of d)if(p($.path)){if($.size!==void 0&&$.size>h){i.push(`remote ${$.path} exceeds the ${h}-byte cap \u2014 excluded symmetrically`);continue}y.set($.path,$)}let g=await this.readLocalSnapshot(e,l);i.push(...g.warnings);let b=await this.deps.watermarks.get(e.repoKey);if(b===null){let $=0;for(let[ue,X]of g.shas)y.get(ue)?.blobSha===X&&$++;let Z=new Set([...g.shas.keys(),...y.keys()]);return o("no-watermark",{filesChecked:Z.size,inParity:$,headSha:u,detail:`repo has no sync watermark on this device (${Z.size-$} raw diff(s)) \u2014 run a sync first; not counted toward M1/M2`})}let _=new Map(b.files.map($=>[$.path,$.blobSha])),S=new Set(b.pinnedPaths??[]),{discrepancies:x,inParity:A,filesChecked:T}=await this.classifyAll(e,g,y,_,S,l,{warnings:i,runBudget:r}),R=await(0,yd.getHeadSha)(this.transport,e.owner,e.repo,e.branch,this.deps.baseURL);if(R!==u)return o("inconclusive",{headSha:u,detail:`remote head moved during the check (${u.slice(0,7)} \u2192 ${R.slice(0,7)}) \u2014 parity deferred to the next round`});let B=this.checkConservation(e,t,g,y,S,c),D=x.filter($=>!PK.has($.cls)).length,O=x.length-D,M;if(l){let $=[...g.shas.values()].sort().join(`
325
325
  `),Z=[...y.values()].map(ue=>ue.blobSha).sort().join(`
326
- `);M=$===Z}return o("checked",{filesChecked:T,inParity:A,discrepancies:x,m2SemanticDiffs:D,accountedCount:O,m1Violations:B,headSha:u,...M!==void 0?{attachmentHashSetIdentical:M}:{}})}catch(l){return(0,IK.isAuthError)(l)?o("auth-required",{detail:s(`authentication failed: ${ya(l)} \u2014 the PAT is expired, revoked or under-scoped; update it (R8)`)}):FK(l)?(i.push("repo unreachable (HTTP 404): dead AssetSpace pointer, or the fine-grained PAT does not allowlist this repo \u2014 skipped"),o("error",{detail:s(ya(l))})):(i.push(`parity check failed: ${s(ya(l))}`),o("error",{detail:s(ya(l))}))}}async readLocalSnapshot(e,t){let r=this.deps.localFilesFor(e),i=t?lu.isFileSpaceSyncablePath:lu.isSyncablePath,s=this.deps.maxFileBytes??lu.DEFAULT_MAX_FILE_BYTES,o=new Map,c=new Map,l=[];if(t&&r.readBinary===void 0)throw new Error("file-mode repo requires a LocalFilesPort with readBinary \u2014 refusing to hash through the text-only port (binary would corrupt)");let u=new TextEncoder;for(let f of await r.list())if(i(f))try{if(t){let d=await r.readBinary(f);if(d.byteLength>s){l.push(`local ${f} exceeds the ${s}-byte cap \u2014 excluded symmetrically`);continue}o.set(f,await(0,WP.gitBlobSha)(d,this.deps.sha1))}else{let d=await r.read(f);if(u.encode(d).byteLength>s){l.push(`local ${f} exceeds the ${s}-byte cap \u2014 excluded symmetrically`);continue}c.set(f,d),o.set(f,await(0,WP.gitBlobSha)(d,this.deps.sha1))}}catch(d){let h=this.deps.redact??(p=>p);l.push(`local ${f} unreadable (${h(ya(d))}) \u2014 skipped`)}return{shas:o,texts:c,warnings:l}}async classifyAll(e,t,r,i,s,o,c){let l=[],u=0,f=this.deps.maxSemanticFetchesPerRepo??CK,d=new Set([...t.shas.keys(),...r.keys()]);for(let h of[...d].sort()){let p=t.shas.get(h),g=r.get(h)?.blobSha,b=i.get(h);if(p!==void 0&&g!==void 0){if(p===g){u++;continue}l.push(await this.classifyContentDiff(e,h,p,g,b,s,o,t,{...c,takeRepoFetch:a(()=>f-- >0,"takeRepoFetch")}));continue}if(p!==void 0){let _;s.has(h)?_={path:h,presence:"local-only",cls:"quarantine-pinned",localSha:p}:b===void 0?_={path:h,presence:"local-only",cls:"pending-local-add",localSha:p}:b===p?_={path:h,presence:"local-only",cls:"pending-remote-delete",localSha:p,detail:"remote deleted it; the local copy is unchanged"}:_={path:h,presence:"local-only",cls:"pending-conflict",localSha:p,detail:"remote deleted it AND the local copy was edited"},l.push(_);continue}if(g!==void 0){let _;s.has(h)?_={path:h,presence:"remote-only",cls:"quarantine-pinned",remoteSha:g}:b===void 0?_={path:h,presence:"remote-only",cls:"pending-remote-add",remoteSha:g}:b===g?_={path:h,presence:"remote-only",cls:"deferred-local-delete",remoteSha:g,detail:"locally deleted; the delete propagates on the next sync (#3476) \u2014 escalates if it survives a converged round"}:_={path:h,presence:"remote-only",cls:"pending-conflict",remoteSha:g,detail:"locally deleted AND the remote copy was edited"},l.push(_)}}return{discrepancies:l,inParity:u,filesChecked:d.size}}async classifyContentDiff(e,t,r,i,s,o,c,l,u){let f={localSha:r,remoteSha:i};if(o.has(t))return{path:t,presence:"both",cls:"quarantine-pinned",...f};if(s!==void 0&&s===r)return{path:t,presence:"both",cls:"pending-remote-edit",...f};if(s!==void 0&&s===i)return{path:t,presence:"both",cls:"pending-local-edit",...f};if(c)return{path:t,presence:"both",cls:"pending-conflict",...f,detail:"binary content differs on both sides"};if(!u.takeRepoFetch()||!u.runBudget.take(1))return u.warnings.push(`semantic-fetch cap reached \u2014 ${t} left unverified (counted into M2)`),{path:t,presence:"both",cls:"unverified-divergence",...f};let d=l.texts.get(t),h;try{h=await(0,yd.getBlobText)(this.transport,e.owner,e.repo,i,this.deps.baseURL)}catch(y){let g=this.deps.redact??(b=>b);return u.warnings.push(`blob fetch for ${t} failed (${g(ya(y))}) \u2014 left unverified`),{path:t,presence:"both",cls:"unverified-divergence",...f}}let p=(0,HP.compareAssetSemantics)(d??"",h,this.deps.yaml);return(0,HP.isFormatOnlyDrift)(p)?{path:t,presence:"both",cls:"format-only-drift",...f,frontmatterEqual:!0,bodyEqual:!0}:{path:t,presence:"both",cls:"pending-conflict",...f,frontmatterEqual:p.frontmatterEqual,bodyEqual:p.bodyEqual,detail:`semantic divergence (frontmatter ${p.frontmatterEqual?"equal":"differs"}, body ${p.bodyEqual?"equal":"differs"})`}}checkConservation(e,t,r,i,s,o){let c=t.snapshot?.dirtyByRepo.get(e.repoKey);if(c===void 0||c.size===0)return[];let l=new Set(o?.mergedPaths??[]),u=new Set(o?.quarantinedPaths??[]),f=[];for(let[d,h]of c)r.shas.get(d)!==h&&i.get(d)?.blobSha!==h&&(l.has(d)||u.has(d)||s.has(d)||f.push({repoKey:e.repoKey,path:d,kind:"conservation",detail:`pre-sync dirty content ${h.slice(0,7)} survived NOWHERE: disk now ${r.shas.get(d)?.slice(0,7)??"absent"}, not in head tree, not merged/quarantined/pinned \u2014 possible lost edit`}));return f}escalatePersistentDivergence(e,t,r){for(let i of e){if(i.status!=="checked")continue;let s=r?.find(u=>u.repoKey===i.repoKey);if(s!==void 0&&s.status!=="synced")continue;let o=new Set(s?.deferredDeletes??[]),c=t.repos.find(u=>u.repoKey===i.repoKey&&u.status==="checked");if(c===void 0)continue;let l=new Map(c.discrepancies.filter(u=>zP.has(u.cls)).map(u=>[u.path,u]));for(let u of i.discrepancies){if(!zP.has(u.cls)||u.cls==="deferred-local-delete"&&o.has(u.path))continue;let f=l.get(u.path);f!==void 0&&f.localSha===u.localSha&&f.remoteSha===u.remoteSha&&i.m1Violations.push({repoKey:i.repoKey,path:u.path,kind:"persistent-divergence",detail:`identical divergence (local ${u.localSha?.slice(0,7)??"absent"}, remote ${u.remoteSha?.slice(0,7)??"absent"}) survived a sync round unchanged (${f.cls} \u2192 ${u.cls}) \u2014 the engine failed to converge it`})}}}};bd.ParityValidator=FT;function DK(n){if(n.vacuous)return`ExoSync parity: VACUOUS \u2014 0 of ${n.repos.length} repo(s) checked (errors / never synced)`;let e=n.repos.length-n.checkedRepos,t=e>0?`, ${e} skipped`:"";return n.ok?`ExoSync parity: M1=0, M2=\u2205 (${n.checkedRepos} repo(s) checked${t})`:`ExoSync parity: M1=${n.m1Total}, M2=${n.m2Total} diff(s) (${n.checkedRepos} repo(s) checked${t}) \u2014 see log`}a(DK,"summarizeParityRound")});var nt=v(m=>{"use strict";var LK=m&&m.__createBinding||(Object.create?(function(n,e,t,r){r===void 0&&(r=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[t]},"get")}),Object.defineProperty(n,r,i)}):(function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]})),fi=m&&m.__exportStar||function(n,e){for(var t in n)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&LK(e,n,t)};Object.defineProperty(m,"__esModule",{value:!0});m.createVaultFrontmatterClassLabelResolver=m.ServiceRegistry=m.GroundingExecutor=m.registerDefaultHostFunctions=m.hasUidFilename=m.hasNonUidFilename=m.PreconditionEvaluator=m.CommandResolver=m.extractPropertyLabel=m.uriToPropertyName=m.propertyNameToUri=m.rangeToFieldType=m.PropertyFieldType=m.transitiveDependsOnClosure=m.isTsFloorMountPath=m.isTsFloorAssetSpace=m.assertTsFloorReconciled=m.assertTsFloor=m.TsFloorViolationError=m.CATALOG_KEEP_NAMESPACES=m.PLUGIN_UI_FLOOR=m.SDK_FLOOR=m.PLUGIN_UI_FLOOR_ASSETSPACE_UIDS=m.SDK_FLOOR_ASSETSPACE_UIDS=m.TS_FLOOR_AS_UID_SHARED_IDENTITIES=m.TS_FLOOR_AS_UID_EXOCMD=m.TS_FLOOR_AS_UID_EXO=m.parseGroundingDefinitionFromFrontmatter=m.isCommandBindingFrontmatter=m.isGroundingFrontmatter=m.isPreconditionFrontmatter=m.isCommandFrontmatter=m.isStyleSource=m.isLabelClass=m.isCommandVariant=m.STYLE_SOURCE_VALUES=m.LABEL_CLASS_VALUES=m.COMMAND_VARIANT_VALUES=m.CommandBindingStyleProperty=m.CommandBindingProperty=m.GroundingProperty=m.PreconditionProperty=m.CommandProperty=m.resolveGroundingTypeFromWikilinkLiteral=m.resolveGroundingTypeFromIRI=m.GROUNDING_TYPE_IRI_TO_ENUM=m.GROUNDING_TYPE_UID_TO_ENUM=m.GROUNDING_TYPE_UIDS=m.GroundingType=m.EFFORT_STATUS_OPTIONS=void 0;m.GraphQueryService=m.FixMissingLabelService=m.ArchiveAssetService=m.GenericAssetCreationService=m.URIConstructionService=m.SessionEventService=m.AssetConversionService=m.EnumValueResolver=m.ClassHierarchyResolver=m.PropertySchemaResolver=m.PlanningService=m.AlgorithmExtractor=m.orderProperties=m.loadDefaultSpec=m.clearOrderSpecLoader=m.registerOrderSpecLoader=m.DynamicFrontmatterGenerator=m.SupervisionCreationService=m.StatusTimestampService=m.RenameToUidService=m.PropertyCleanupService=m.LoggingService=m.extractAssetReference=m.FolderRepairService=m.EffortVotingService=m.WorkflowCommandAdapter=m.VisibilityGenerator=m.InstantiationRuleResolver=m.stripTemplateFrontmatter=m.resolveTemplateBody=m.getRegisteredResolverIds=m.clearResolvers=m.registerResolver=m.getResolver=m.installDefaultResolvers=m.WorkflowResolver=m.WorkflowEngine=m.EffortStatusWorkflow=m.ConceptCreationService=m.ClassCreationService=m.AreaHierarchyBuilder=m.AreaCreationService=m.TaskStatusService=m.createTripleStoreRequiredPropertyResolver=m.CommandExecutionFlow=m.stripFrontmatter=m.extractSparqlBlock=m.iriToObsidianName=m.NamedQueryRunner=m.createVaultFrontmatterRefToFolderResolver=void 0;m.BGPExecutor=m.AlgebraSerializer=m.AlgebraOptimizer=m.AlgebraTranslator=m.ExoQLAlgebraTranslator=m.DescribeOptionsTransformerError=m.DescribeOptionsTransformer=m.SPARQLParseError=m.SPARQLParser=m.ExoQLParser=m.isPathExcluded=m.normaliseExcludedFolders=m.NoteToRDFConverter=m.SOURCE_VARIABLE=m.SourceAnnotator=m.MAX_LAZY_DEPTH=m.LazyAssetGraphLoader=m.FILE_SPACE_CLASS_UID=m.frontmatterDeclaresFileSpace=m.discoverFileSpaceExclusions=m.deriveLegacyFlatPath=m.derivePath=m.IRICanonicalizer=m.INFERRED_GRAPH=m.PrototypeChainMaterializer=m.PropertyCardinalityRegistry=m.NonInheritablePropertyRegistry=m.RDFSInferenceEngine=m.RDFVocabularyMapper=m.DomainTriple=m.DomainBlankNode=m.DomainLiteral=m.DomainIRI=m.InMemoryTripleStore=m.OBSIDIAN_VAULT_SCHEME=m.iriToVaultPath=m.vaultPathToIRI=m.NullLogger=m.RDFSerializer=m.FilenameValidator=m.EffortSortingHelpers=m.MetadataExtractor=m.MetadataHelpers=m.WikiLinkHelpers=m.DateFormatter=m.FrontmatterService=m.CriticalityZoneUUIDs=m.CriticalityZoneService=m.SPARQL_PREFIXES=m.TypeRegistry=void 0;m.createChildContainer=m.registerCoreServices=m.DI_TOKENS=m.DEFAULT_FLEETING_NOTE_CLASS_UID=m.DEFAULT_INBOX_FOLDER=m.DEFAULT_OWNER_IDENTITY=m.VaultSettings=m.seededUidGenerator=m.liveUidGenerator=m.frozenClock=m.liveClock=m.TransactionError=m.TripleNotFoundError=m.TripleAlreadyExistsError=m.FileAlreadyExistsError=m.FileNotFoundError=m.FilterContainsOptimizer=m.VaultPrefixTransformer=m.CaseWhenTransformerError=m.CaseWhenTransformer=m.ResultSerializer=m.createIncrementalIndexer=m.IncrementalIndexer=m.createSPARQLResultCache=m.SPARQLResultCache=m.QueryPlanCache=m.createDoubleLiteral=m.createDecimalLiteral=m.getNumericValue=m.createPercentileAggregate=m.modeAggregate=m.stddevAggregate=m.varianceAggregate=m.medianAggregate=m.EXO_AGGREGATE_NS=m.BUILT_IN_AGGREGATES=m.CustomAggregateError=m.CustomAggregateRegistry=m.AggregateFunctions=m.BuiltInFunctions=m.SolutionMapping=m.UpdateExecutorError=m.UpdateExecutor=m.QueryExecutor=m.ExoQLQueryExecutor=m.DescribeExecutor=m.ConstructExecutor=m.UnionExecutor=m.OptionalExecutor=m.FilterExecutor=void 0;m.extractAssetUid=m.detectChanges=m.escapeGitmodulesRegex=m.stripGitmodulesEntry=m.appendGitmodulesEntry=m.extractAssetSpaceSha=m.discoverAssetSpaceWrapperDir=m.mountAssetSpaceFiles=m.isBinaryPayload=m.restCreateCommit=m.parseTarballGzip=m.parseTarball=m.TripleClassHierarchy=m.IDLE_TIMEOUT_MS=m.DEFAULT_SOCKET_PATH=m.ValidatorDaemon=m.ShaclShapeRegistry=m.shaclValidate=m.Namespace=m.ShapeRegistry=m.ShapeLoader=m.selectByPriority=m.LayoutSelector=m.isPropertiesBlock=m.isLayoutBlockFrontmatter=m.isBacklinksTableBlock=m.createLayoutBlockFromFrontmatter=m.PROPERTIES_BLOCK_CLASS_UID=m.PROPERTIES_BLOCK_CLASS_IRI=m.BACKLINKS_TABLE_BLOCK_CLASS_UID=m.BACKLINKS_TABLE_BLOCK_CLASS_IRI=m.isLayoutFrontmatter=m.isLayout=m.createLayoutFromFrontmatter=m.LAYOUT_CLASS_UID=m.LAYOUT_CLASS_IRI=m.ExoQLError=m.ExoQL=m.createStreamingSource=m.StreamingLoader=m.resetGlobalPool=m.getGlobalPool=m.MemoryPool=m.CompactGraphStore=m.StringTable=m.DEFAULT_COLORS=m.NODE_FLAGS=m.container=m.resetContainer=m.getContainer=void 0;m.OUTBOX_REMOTE_ABSENT=m.OUTBOX_STORE_FILENAME=m.LocalOutboxStore=m.CONFLICT_CACHE_STORE_FILENAME=m.LocalConflictCacheStore=m.scanForSecrets=m.redactSecrets=m.withRateLimitBackoff=m.isRateLimitError=m.isAuthError=m.MOUNT_BASE_STORE_FILENAME=m.FileMountBaseStore=m.WATERMARK_STORE_FILENAME=m.FileWatermarkStore=m.GatedStructuredMerger=m.MergeShaclGate=m.splitSections=m.StructuredMerger=m.diff3=m.LOCAL_MANIFEST_STORE_FILENAME=m.FileLocalManifestStore=m.isSyncablePath=m.isFileSpaceSyncablePath=m.contentEquals=m.InMemoryQuarantineStore=m.DEFAULT_MAX_FILE_BYTES=m.backupPathFor=m.QuarantineResolver=m.formatRepoTimings=m.formatTimingsLine=m.fmtMs=m.dominantPhase=m.totalMs=m.aggregateTimings=m.addTimings=m.emptyTimings=m.classifyRestPhase=m.SYNC_PHASES=m.SyncPhaseTimer=m.orderChildrenFirst=m.isNonFastForwardError=m.SyncEngine=m.DEFAULT_LOCAL_MANIFEST_REHASH_MS=m.DEFAULT_MAX_PUSH_RETRIES=m.getTree=m.getHeadSha=m.getCommitInfo=m.getBlobText=m.getBlobBytes=m.gitBlobSha=void 0;m.isFormatOnlyDrift=m.compareAssetSemantics=m.summarizeParityRound=m.ParityValidator=m.readSpaceSource=m.parseStrictGitHubRepoURL=m.isFileSpaceFrontmatter=m.isAssetSpaceFrontmatter=m.classifySpaceDeclaration=m.SpaceSpecAccumulator=m.SYNC_BRANCH=m.ASSET_SPACE_CLASS_UID=void 0;fi(Yc(),m);fi(Qc(),m);var NK=Qb();Object.defineProperty(m,"EFFORT_STATUS_OPTIONS",{enumerable:!0,get:a(function(){return NK.EFFORT_STATUS_OPTIONS},"get")});var kK=Wo();Object.defineProperty(m,"GroundingType",{enumerable:!0,get:a(function(){return kK.GroundingType},"get")});var _d=uf();Object.defineProperty(m,"GROUNDING_TYPE_UIDS",{enumerable:!0,get:a(function(){return _d.GROUNDING_TYPE_UIDS},"get")});Object.defineProperty(m,"GROUNDING_TYPE_UID_TO_ENUM",{enumerable:!0,get:a(function(){return _d.GROUNDING_TYPE_UID_TO_ENUM},"get")});Object.defineProperty(m,"GROUNDING_TYPE_IRI_TO_ENUM",{enumerable:!0,get:a(function(){return _d.GROUNDING_TYPE_IRI_TO_ENUM},"get")});Object.defineProperty(m,"resolveGroundingTypeFromIRI",{enumerable:!0,get:a(function(){return _d.resolveGroundingTypeFromIRI},"get")});Object.defineProperty(m,"resolveGroundingTypeFromWikilinkLiteral",{enumerable:!0,get:a(function(){return _d.resolveGroundingTypeFromWikilinkLiteral},"get")});var wd=Jb();Object.defineProperty(m,"CommandProperty",{enumerable:!0,get:a(function(){return wd.CommandProperty},"get")});Object.defineProperty(m,"PreconditionProperty",{enumerable:!0,get:a(function(){return wd.PreconditionProperty},"get")});Object.defineProperty(m,"GroundingProperty",{enumerable:!0,get:a(function(){return wd.GroundingProperty},"get")});Object.defineProperty(m,"CommandBindingProperty",{enumerable:!0,get:a(function(){return wd.CommandBindingProperty},"get")});Object.defineProperty(m,"CommandBindingStyleProperty",{enumerable:!0,get:a(function(){return wd.CommandBindingStyleProperty},"get")});var uu=Zb();Object.defineProperty(m,"COMMAND_VARIANT_VALUES",{enumerable:!0,get:a(function(){return uu.COMMAND_VARIANT_VALUES},"get")});Object.defineProperty(m,"LABEL_CLASS_VALUES",{enumerable:!0,get:a(function(){return uu.LABEL_CLASS_VALUES},"get")});Object.defineProperty(m,"STYLE_SOURCE_VALUES",{enumerable:!0,get:a(function(){return uu.STYLE_SOURCE_VALUES},"get")});Object.defineProperty(m,"isCommandVariant",{enumerable:!0,get:a(function(){return uu.isCommandVariant},"get")});Object.defineProperty(m,"isLabelClass",{enumerable:!0,get:a(function(){return uu.isLabelClass},"get")});Object.defineProperty(m,"isStyleSource",{enumerable:!0,get:a(function(){return uu.isStyleSource},"get")});var Py=Yx();Object.defineProperty(m,"isCommandFrontmatter",{enumerable:!0,get:a(function(){return Py.isCommandFrontmatter},"get")});Object.defineProperty(m,"isPreconditionFrontmatter",{enumerable:!0,get:a(function(){return Py.isPreconditionFrontmatter},"get")});Object.defineProperty(m,"isGroundingFrontmatter",{enumerable:!0,get:a(function(){return Py.isGroundingFrontmatter},"get")});Object.defineProperty(m,"isCommandBindingFrontmatter",{enumerable:!0,get:a(function(){return Py.isCommandBindingFrontmatter},"get")});var MK=Qx();Object.defineProperty(m,"parseGroundingDefinitionFromFrontmatter",{enumerable:!0,get:a(function(){return MK.parseGroundingDefinitionFromFrontmatter},"get")});fi(Jx(),m);fi(Zx(),m);fi(r_(),m);fi(n_(),m);fi(tI(),m);fi(iI(),m);fi(j_(),m);fi(MI(),m);var ei=jI();Object.defineProperty(m,"TS_FLOOR_AS_UID_EXO",{enumerable:!0,get:a(function(){return ei.TS_FLOOR_AS_UID_EXO},"get")});Object.defineProperty(m,"TS_FLOOR_AS_UID_EXOCMD",{enumerable:!0,get:a(function(){return ei.TS_FLOOR_AS_UID_EXOCMD},"get")});Object.defineProperty(m,"TS_FLOOR_AS_UID_SHARED_IDENTITIES",{enumerable:!0,get:a(function(){return ei.TS_FLOOR_AS_UID_SHARED_IDENTITIES},"get")});Object.defineProperty(m,"SDK_FLOOR_ASSETSPACE_UIDS",{enumerable:!0,get:a(function(){return ei.SDK_FLOOR_ASSETSPACE_UIDS},"get")});Object.defineProperty(m,"PLUGIN_UI_FLOOR_ASSETSPACE_UIDS",{enumerable:!0,get:a(function(){return ei.PLUGIN_UI_FLOOR_ASSETSPACE_UIDS},"get")});Object.defineProperty(m,"SDK_FLOOR",{enumerable:!0,get:a(function(){return ei.SDK_FLOOR},"get")});Object.defineProperty(m,"PLUGIN_UI_FLOOR",{enumerable:!0,get:a(function(){return ei.PLUGIN_UI_FLOOR},"get")});Object.defineProperty(m,"CATALOG_KEEP_NAMESPACES",{enumerable:!0,get:a(function(){return ei.CATALOG_KEEP_NAMESPACES},"get")});Object.defineProperty(m,"TsFloorViolationError",{enumerable:!0,get:a(function(){return ei.TsFloorViolationError},"get")});Object.defineProperty(m,"assertTsFloor",{enumerable:!0,get:a(function(){return ei.assertTsFloor},"get")});Object.defineProperty(m,"assertTsFloorReconciled",{enumerable:!0,get:a(function(){return ei.assertTsFloorReconciled},"get")});Object.defineProperty(m,"isTsFloorAssetSpace",{enumerable:!0,get:a(function(){return ei.isTsFloorAssetSpace},"get")});Object.defineProperty(m,"isTsFloorMountPath",{enumerable:!0,get:a(function(){return ei.isTsFloorMountPath},"get")});var jK=$I();Object.defineProperty(m,"transitiveDependsOnClosure",{enumerable:!0,get:a(function(){return jK.transitiveDependsOnClosure},"get")});var XP=dp();Object.defineProperty(m,"PropertyFieldType",{enumerable:!0,get:a(function(){return XP.PropertyFieldType},"get")});Object.defineProperty(m,"rangeToFieldType",{enumerable:!0,get:a(function(){return XP.rangeToFieldType},"get")});var DT=V_();Object.defineProperty(m,"propertyNameToUri",{enumerable:!0,get:a(function(){return DT.propertyNameToUri},"get")});Object.defineProperty(m,"uriToPropertyName",{enumerable:!0,get:a(function(){return DT.uriToPropertyName},"get")});Object.defineProperty(m,"extractPropertyLabel",{enumerable:!0,get:a(function(){return DT.extractPropertyLabel},"get")});var $K=x3();Object.defineProperty(m,"CommandResolver",{enumerable:!0,get:a(function(){return $K.CommandResolver},"get")});var UK=R3();Object.defineProperty(m,"PreconditionEvaluator",{enumerable:!0,get:a(function(){return UK.PreconditionEvaluator},"get")});var LT=C3();Object.defineProperty(m,"hasNonUidFilename",{enumerable:!0,get:a(function(){return LT.hasNonUidFilename},"get")});Object.defineProperty(m,"hasUidFilename",{enumerable:!0,get:a(function(){return LT.hasUidFilename},"get")});Object.defineProperty(m,"registerDefaultHostFunctions",{enumerable:!0,get:a(function(){return LT.registerDefaultHostFunctions},"get")});var YP=N3();Object.defineProperty(m,"GroundingExecutor",{enumerable:!0,get:a(function(){return YP.GroundingExecutor},"get")});Object.defineProperty(m,"ServiceRegistry",{enumerable:!0,get:a(function(){return YP.ServiceRegistry},"get")});var BK=k3();Object.defineProperty(m,"createVaultFrontmatterClassLabelResolver",{enumerable:!0,get:a(function(){return BK.createVaultFrontmatterClassLabelResolver},"get")});var VK=M3();Object.defineProperty(m,"createVaultFrontmatterRefToFolderResolver",{enumerable:!0,get:a(function(){return VK.createVaultFrontmatterRefToFolderResolver},"get")});var qK=$3();Object.defineProperty(m,"NamedQueryRunner",{enumerable:!0,get:a(function(){return qK.NamedQueryRunner},"get")});var GK=Pp();Object.defineProperty(m,"iriToObsidianName",{enumerable:!0,get:a(function(){return GK.iriToObsidianName},"get")});var QP=U3();Object.defineProperty(m,"extractSparqlBlock",{enumerable:!0,get:a(function(){return QP.extractSparqlBlock},"get")});Object.defineProperty(m,"stripFrontmatter",{enumerable:!0,get:a(function(){return QP.stripFrontmatter},"get")});var WK=V3();Object.defineProperty(m,"CommandExecutionFlow",{enumerable:!0,get:a(function(){return WK.CommandExecutionFlow},"get")});var HK=W3();Object.defineProperty(m,"createTripleStoreRequiredPropertyResolver",{enumerable:!0,get:a(function(){return HK.createTripleStoreRequiredPropertyResolver},"get")});var zK=w1();Object.defineProperty(m,"TaskStatusService",{enumerable:!0,get:a(function(){return zK.TaskStatusService},"get")});var KK=T1();Object.defineProperty(m,"AreaCreationService",{enumerable:!0,get:a(function(){return KK.AreaCreationService},"get")});var XK=x1();Object.defineProperty(m,"AreaHierarchyBuilder",{enumerable:!0,get:a(function(){return XK.AreaHierarchyBuilder},"get")});var YK=R1();Object.defineProperty(m,"ClassCreationService",{enumerable:!0,get:a(function(){return YK.ClassCreationService},"get")});var QK=O1();Object.defineProperty(m,"ConceptCreationService",{enumerable:!0,get:a(function(){return QK.ConceptCreationService},"get")});var JK=ag();Object.defineProperty(m,"EffortStatusWorkflow",{enumerable:!0,get:a(function(){return JK.EffortStatusWorkflow},"get")});var ZK=Xf();Object.defineProperty(m,"WorkflowEngine",{enumerable:!0,get:a(function(){return ZK.WorkflowEngine},"get")});var eX=c1();Object.defineProperty(m,"WorkflowResolver",{enumerable:!0,get:a(function(){return eX.WorkflowResolver},"get")});var Sd=Vm();Object.defineProperty(m,"installDefaultResolvers",{enumerable:!0,get:a(function(){return Sd.installDefaultResolvers},"get")});Object.defineProperty(m,"getResolver",{enumerable:!0,get:a(function(){return Sd.getResolver},"get")});Object.defineProperty(m,"registerResolver",{enumerable:!0,get:a(function(){return Sd.registerResolver},"get")});Object.defineProperty(m,"clearResolvers",{enumerable:!0,get:a(function(){return Sd.clearResolvers},"get")});Object.defineProperty(m,"getRegisteredResolverIds",{enumerable:!0,get:a(function(){return Sd.getRegisteredResolverIds},"get")});var JP=XS();Object.defineProperty(m,"resolveTemplateBody",{enumerable:!0,get:a(function(){return JP.resolveTemplateBody},"get")});Object.defineProperty(m,"stripTemplateFrontmatter",{enumerable:!0,get:a(function(){return JP.stripTemplateFrontmatter},"get")});var tX=oC();Object.defineProperty(m,"InstantiationRuleResolver",{enumerable:!0,get:a(function(){return tX.InstantiationRuleResolver},"get")});var rX=aC();Object.defineProperty(m,"VisibilityGenerator",{enumerable:!0,get:a(function(){return rX.VisibilityGenerator},"get")});var nX=cC();Object.defineProperty(m,"WorkflowCommandAdapter",{enumerable:!0,get:a(function(){return nX.WorkflowCommandAdapter},"get")});var iX=M1();Object.defineProperty(m,"EffortVotingService",{enumerable:!0,get:a(function(){return iX.EffortVotingService},"get")});var sX=B1();Object.defineProperty(m,"FolderRepairService",{enumerable:!0,get:a(function(){return sX.FolderRepairService},"get")});var oX=$1();Object.defineProperty(m,"extractAssetReference",{enumerable:!0,get:a(function(){return oX.extractAssetReference},"get")});var aX=oc();Object.defineProperty(m,"LoggingService",{enumerable:!0,get:a(function(){return aX.LoggingService},"get")});var cX=G1();Object.defineProperty(m,"PropertyCleanupService",{enumerable:!0,get:a(function(){return cX.PropertyCleanupService},"get")});var lX=H1();Object.defineProperty(m,"RenameToUidService",{enumerable:!0,get:a(function(){return lX.RenameToUidService},"get")});var uX=lg();Object.defineProperty(m,"StatusTimestampService",{enumerable:!0,get:a(function(){return uX.StatusTimestampService},"get")});var fX=X1();Object.defineProperty(m,"SupervisionCreationService",{enumerable:!0,get:a(function(){return fX.SupervisionCreationService},"get")});var dX=Q1();Object.defineProperty(m,"DynamicFrontmatterGenerator",{enumerable:!0,get:a(function(){return dX.DynamicFrontmatterGenerator},"get")});var Fy=qf();Object.defineProperty(m,"registerOrderSpecLoader",{enumerable:!0,get:a(function(){return Fy.registerOrderSpecLoader},"get")});Object.defineProperty(m,"clearOrderSpecLoader",{enumerable:!0,get:a(function(){return Fy.clearOrderSpecLoader},"get")});Object.defineProperty(m,"loadDefaultSpec",{enumerable:!0,get:a(function(){return Fy.loadDefaultSpec},"get")});Object.defineProperty(m,"orderProperties",{enumerable:!0,get:a(function(){return Fy.orderProperties},"get")});var hX=Z1();Object.defineProperty(m,"AlgorithmExtractor",{enumerable:!0,get:a(function(){return hX.AlgorithmExtractor},"get")});var pX=tv();Object.defineProperty(m,"PlanningService",{enumerable:!0,get:a(function(){return pX.PlanningService},"get")});var mX=_C();Object.defineProperty(m,"PropertySchemaResolver",{enumerable:!0,get:a(function(){return mX.PropertySchemaResolver},"get")});var gX=wC();Object.defineProperty(m,"ClassHierarchyResolver",{enumerable:!0,get:a(function(){return gX.ClassHierarchyResolver},"get")});var yX=SC();Object.defineProperty(m,"EnumValueResolver",{enumerable:!0,get:a(function(){return yX.EnumValueResolver},"get")});var bX=ov();Object.defineProperty(m,"AssetConversionService",{enumerable:!0,get:a(function(){return bX.AssetConversionService},"get")});var _X=lv();Object.defineProperty(m,"SessionEventService",{enumerable:!0,get:a(function(){return _X.SessionEventService},"get")});var wX=dv();Object.defineProperty(m,"URIConstructionService",{enumerable:!0,get:a(function(){return wX.URIConstructionService},"get")});var SX=pv();Object.defineProperty(m,"GenericAssetCreationService",{enumerable:!0,get:a(function(){return SX.GenericAssetCreationService},"get")});var vX=PC();Object.defineProperty(m,"ArchiveAssetService",{enumerable:!0,get:a(function(){return vX.ArchiveAssetService},"get")});var EX=DC();Object.defineProperty(m,"FixMissingLabelService",{enumerable:!0,get:a(function(){return EX.FixMissingLabelService},"get")});var TX=LC();Object.defineProperty(m,"GraphQueryService",{enumerable:!0,get:a(function(){return TX.GraphQueryService},"get")});var AX=kC();Object.defineProperty(m,"TypeRegistry",{enumerable:!0,get:a(function(){return AX.TypeRegistry},"get")});var xX=MC();Object.defineProperty(m,"SPARQL_PREFIXES",{enumerable:!0,get:a(function(){return xX.SPARQL_PREFIXES},"get")});var ZP=wv();Object.defineProperty(m,"CriticalityZoneService",{enumerable:!0,get:a(function(){return ZP.CriticalityZoneService},"get")});Object.defineProperty(m,"CriticalityZoneUUIDs",{enumerable:!0,get:a(function(){return ZP.CriticalityZoneUUIDs},"get")});var IX=ws();Object.defineProperty(m,"FrontmatterService",{enumerable:!0,get:a(function(){return IX.FrontmatterService},"get")});var RX=Mn();Object.defineProperty(m,"DateFormatter",{enumerable:!0,get:a(function(){return RX.DateFormatter},"get")});var CX=Zs();Object.defineProperty(m,"WikiLinkHelpers",{enumerable:!0,get:a(function(){return CX.WikiLinkHelpers},"get")});var OX=fo();Object.defineProperty(m,"MetadataHelpers",{enumerable:!0,get:a(function(){return OX.MetadataHelpers},"get")});var PX=v1();Object.defineProperty(m,"MetadataExtractor",{enumerable:!0,get:a(function(){return PX.MetadataExtractor},"get")});var FX=$C();Object.defineProperty(m,"EffortSortingHelpers",{enumerable:!0,get:a(function(){return FX.EffortSortingHelpers},"get")});var DX=UC();Object.defineProperty(m,"FilenameValidator",{enumerable:!0,get:a(function(){return DX.FilenameValidator},"get")});var LX=zC();Object.defineProperty(m,"RDFSerializer",{enumerable:!0,get:a(function(){return LX.RDFSerializer},"get")});var NX=el();Object.defineProperty(m,"NullLogger",{enumerable:!0,get:a(function(){return NX.NullLogger},"get")});var NT=Fv();Object.defineProperty(m,"vaultPathToIRI",{enumerable:!0,get:a(function(){return NT.vaultPathToIRI},"get")});Object.defineProperty(m,"iriToVaultPath",{enumerable:!0,get:a(function(){return NT.iriToVaultPath},"get")});Object.defineProperty(m,"OBSIDIAN_VAULT_SCHEME",{enumerable:!0,get:a(function(){return NT.OBSIDIAN_VAULT_SCHEME},"get")});var kX=g1();Object.defineProperty(m,"InMemoryTripleStore",{enumerable:!0,get:a(function(){return kX.InMemoryTripleStore},"get")});var MX=Ce();Object.defineProperty(m,"DomainIRI",{enumerable:!0,get:a(function(){return MX.IRI},"get")});var jX=Ge();Object.defineProperty(m,"DomainLiteral",{enumerable:!0,get:a(function(){return jX.Literal},"get")});var $X=Mt();Object.defineProperty(m,"DomainBlankNode",{enumerable:!0,get:a(function(){return $X.BlankNode},"get")});var UX=zn();Object.defineProperty(m,"DomainTriple",{enumerable:!0,get:a(function(){return UX.Triple},"get")});var BX=Lv();Object.defineProperty(m,"RDFVocabularyMapper",{enumerable:!0,get:a(function(){return BX.RDFVocabularyMapper},"get")});var VX=XC();Object.defineProperty(m,"RDFSInferenceEngine",{enumerable:!0,get:a(function(){return VX.RDFSInferenceEngine},"get")});var qX=jv();Object.defineProperty(m,"NonInheritablePropertyRegistry",{enumerable:!0,get:a(function(){return qX.NonInheritablePropertyRegistry},"get")});var GX=Bv();Object.defineProperty(m,"PropertyCardinalityRegistry",{enumerable:!0,get:a(function(){return GX.PropertyCardinalityRegistry},"get")});var eF=Gv();Object.defineProperty(m,"PrototypeChainMaterializer",{enumerable:!0,get:a(function(){return eF.PrototypeChainMaterializer},"get")});Object.defineProperty(m,"INFERRED_GRAPH",{enumerable:!0,get:a(function(){return eF.INFERRED_GRAPH},"get")});var WX=rO();Object.defineProperty(m,"IRICanonicalizer",{enumerable:!0,get:a(function(){return WX.IRICanonicalizer},"get")});var tF=Rg();Object.defineProperty(m,"derivePath",{enumerable:!0,get:a(function(){return tF.derivePath},"get")});Object.defineProperty(m,"deriveLegacyFlatPath",{enumerable:!0,get:a(function(){return tF.deriveLegacyFlatPath},"get")});var kT=Cg();Object.defineProperty(m,"discoverFileSpaceExclusions",{enumerable:!0,get:a(function(){return kT.discoverFileSpaceExclusions},"get")});Object.defineProperty(m,"frontmatterDeclaresFileSpace",{enumerable:!0,get:a(function(){return kT.frontmatterDeclaresFileSpace},"get")});Object.defineProperty(m,"FILE_SPACE_CLASS_UID",{enumerable:!0,get:a(function(){return kT.FILE_SPACE_CLASS_UID},"get")});var rF=lO();Object.defineProperty(m,"LazyAssetGraphLoader",{enumerable:!0,get:a(function(){return rF.LazyAssetGraphLoader},"get")});Object.defineProperty(m,"MAX_LAZY_DEPTH",{enumerable:!0,get:a(function(){return rF.MAX_LAZY_DEPTH},"get")});var nF=Yv();Object.defineProperty(m,"SourceAnnotator",{enumerable:!0,get:a(function(){return nF.SourceAnnotator},"get")});Object.defineProperty(m,"SOURCE_VARIABLE",{enumerable:!0,get:a(function(){return nF.SOURCE_VARIABLE},"get")});var MT=eE();Object.defineProperty(m,"NoteToRDFConverter",{enumerable:!0,get:a(function(){return MT.NoteToRDFConverter},"get")});Object.defineProperty(m,"normaliseExcludedFolders",{enumerable:!0,get:a(function(){return MT.normaliseExcludedFolders},"get")});Object.defineProperty(m,"isPathExcluded",{enumerable:!0,get:a(function(){return MT.isPathExcluded},"get")});var jT=dl();Object.defineProperty(m,"ExoQLParser",{enumerable:!0,get:a(function(){return jT.ExoQLParser},"get")});Object.defineProperty(m,"SPARQLParser",{enumerable:!0,get:a(function(){return jT.SPARQLParser},"get")});Object.defineProperty(m,"SPARQLParseError",{enumerable:!0,get:a(function(){return jT.SPARQLParseError},"get")});var iF=Bw();Object.defineProperty(m,"DescribeOptionsTransformer",{enumerable:!0,get:a(function(){return iF.DescribeOptionsTransformer},"get")});Object.defineProperty(m,"DescribeOptionsTransformerError",{enumerable:!0,get:a(function(){return iF.DescribeOptionsTransformerError},"get")});var sF=pl();Object.defineProperty(m,"ExoQLAlgebraTranslator",{enumerable:!0,get:a(function(){return sF.ExoQLAlgebraTranslator},"get")});Object.defineProperty(m,"AlgebraTranslator",{enumerable:!0,get:a(function(){return sF.AlgebraTranslator},"get")});var HX=gO();Object.defineProperty(m,"AlgebraOptimizer",{enumerable:!0,get:a(function(){return HX.AlgebraOptimizer},"get")});var zX=yO();Object.defineProperty(m,"AlgebraSerializer",{enumerable:!0,get:a(function(){return zX.AlgebraSerializer},"get")});var KX=sS();Object.defineProperty(m,"BGPExecutor",{enumerable:!0,get:a(function(){return KX.BGPExecutor},"get")});var XX=Sm();Object.defineProperty(m,"FilterExecutor",{enumerable:!0,get:a(function(){return XX.FilterExecutor},"get")});var YX=TS();Object.defineProperty(m,"OptionalExecutor",{enumerable:!0,get:a(function(){return YX.OptionalExecutor},"get")});var QX=xS();Object.defineProperty(m,"UnionExecutor",{enumerable:!0,get:a(function(){return QX.UnionExecutor},"get")});var JX=kS();Object.defineProperty(m,"ConstructExecutor",{enumerable:!0,get:a(function(){return JX.ConstructExecutor},"get")});var ZX=_O();Object.defineProperty(m,"DescribeExecutor",{enumerable:!0,get:a(function(){return ZX.DescribeExecutor},"get")});var oF=Nl();Object.defineProperty(m,"ExoQLQueryExecutor",{enumerable:!0,get:a(function(){return oF.ExoQLQueryExecutor},"get")});Object.defineProperty(m,"QueryExecutor",{enumerable:!0,get:a(function(){return oF.QueryExecutor},"get")});var aF=SO();Object.defineProperty(m,"UpdateExecutor",{enumerable:!0,get:a(function(){return aF.UpdateExecutor},"get")});Object.defineProperty(m,"UpdateExecutorError",{enumerable:!0,get:a(function(){return aF.UpdateExecutorError},"get")});var eY=gs();Object.defineProperty(m,"SolutionMapping",{enumerable:!0,get:a(function(){return eY.SolutionMapping},"get")});var tY=wm();Object.defineProperty(m,"BuiltInFunctions",{enumerable:!0,get:a(function(){return tY.BuiltInFunctions},"get")});var rY=EO();Object.defineProperty(m,"AggregateFunctions",{enumerable:!0,get:a(function(){return rY.AggregateFunctions},"get")});var cF=CS();Object.defineProperty(m,"CustomAggregateRegistry",{enumerable:!0,get:a(function(){return cF.CustomAggregateRegistry},"get")});Object.defineProperty(m,"CustomAggregateError",{enumerable:!0,get:a(function(){return cF.CustomAggregateError},"get")});var Ds=OS();Object.defineProperty(m,"BUILT_IN_AGGREGATES",{enumerable:!0,get:a(function(){return Ds.BUILT_IN_AGGREGATES},"get")});Object.defineProperty(m,"EXO_AGGREGATE_NS",{enumerable:!0,get:a(function(){return Ds.EXO_AGGREGATE_NS},"get")});Object.defineProperty(m,"medianAggregate",{enumerable:!0,get:a(function(){return Ds.medianAggregate},"get")});Object.defineProperty(m,"varianceAggregate",{enumerable:!0,get:a(function(){return Ds.varianceAggregate},"get")});Object.defineProperty(m,"stddevAggregate",{enumerable:!0,get:a(function(){return Ds.stddevAggregate},"get")});Object.defineProperty(m,"modeAggregate",{enumerable:!0,get:a(function(){return Ds.modeAggregate},"get")});Object.defineProperty(m,"createPercentileAggregate",{enumerable:!0,get:a(function(){return Ds.createPercentileAggregate},"get")});Object.defineProperty(m,"getNumericValue",{enumerable:!0,get:a(function(){return Ds.getNumericValue},"get")});Object.defineProperty(m,"createDecimalLiteral",{enumerable:!0,get:a(function(){return Ds.createDecimalLiteral},"get")});Object.defineProperty(m,"createDoubleLiteral",{enumerable:!0,get:a(function(){return Ds.createDoubleLiteral},"get")});var nY=TO();Object.defineProperty(m,"QueryPlanCache",{enumerable:!0,get:a(function(){return nY.QueryPlanCache},"get")});var lF=AO();Object.defineProperty(m,"SPARQLResultCache",{enumerable:!0,get:a(function(){return lF.SPARQLResultCache},"get")});Object.defineProperty(m,"createSPARQLResultCache",{enumerable:!0,get:a(function(){return lF.createSPARQLResultCache},"get")});var uF=xO();Object.defineProperty(m,"IncrementalIndexer",{enumerable:!0,get:a(function(){return uF.IncrementalIndexer},"get")});Object.defineProperty(m,"createIncrementalIndexer",{enumerable:!0,get:a(function(){return uF.createIncrementalIndexer},"get")});var iY=IO();Object.defineProperty(m,"ResultSerializer",{enumerable:!0,get:a(function(){return iY.ResultSerializer},"get")});var fF=jw();Object.defineProperty(m,"CaseWhenTransformer",{enumerable:!0,get:a(function(){return fF.CaseWhenTransformer},"get")});Object.defineProperty(m,"CaseWhenTransformerError",{enumerable:!0,get:a(function(){return fF.CaseWhenTransformerError},"get")});var sY=Ww();Object.defineProperty(m,"VaultPrefixTransformer",{enumerable:!0,get:a(function(){return sY.VaultPrefixTransformer},"get")});var oY=rE();Object.defineProperty(m,"FilterContainsOptimizer",{enumerable:!0,get:a(function(){return oY.FilterContainsOptimizer},"get")});var dF=RO();Object.defineProperty(m,"FileNotFoundError",{enumerable:!0,get:a(function(){return dF.FileNotFoundError},"get")});Object.defineProperty(m,"FileAlreadyExistsError",{enumerable:!0,get:a(function(){return dF.FileAlreadyExistsError},"get")});var $T=d1();Object.defineProperty(m,"TripleAlreadyExistsError",{enumerable:!0,get:a(function(){return $T.TripleAlreadyExistsError},"get")});Object.defineProperty(m,"TripleNotFoundError",{enumerable:!0,get:a(function(){return $T.TripleNotFoundError},"get")});Object.defineProperty(m,"TransactionError",{enumerable:!0,get:a(function(){return $T.TransactionError},"get")});var hF=Uf();Object.defineProperty(m,"liveClock",{enumerable:!0,get:a(function(){return hF.liveClock},"get")});Object.defineProperty(m,"frozenClock",{enumerable:!0,get:a(function(){return hF.frozenClock},"get")});var pF=$m();Object.defineProperty(m,"liveUidGenerator",{enumerable:!0,get:a(function(){return pF.liveUidGenerator},"get")});Object.defineProperty(m,"seededUidGenerator",{enumerable:!0,get:a(function(){return pF.seededUidGenerator},"get")});var Dy=mE();Object.defineProperty(m,"VaultSettings",{enumerable:!0,get:a(function(){return Dy.VaultSettings},"get")});Object.defineProperty(m,"DEFAULT_OWNER_IDENTITY",{enumerable:!0,get:a(function(){return Dy.DEFAULT_OWNER_IDENTITY},"get")});Object.defineProperty(m,"DEFAULT_INBOX_FOLDER",{enumerable:!0,get:a(function(){return Dy.DEFAULT_INBOX_FOLDER},"get")});Object.defineProperty(m,"DEFAULT_FLEETING_NOTE_CLASS_UID",{enumerable:!0,get:a(function(){return Dy.DEFAULT_FLEETING_NOTE_CLASS_UID},"get")});var aY=Ut();Object.defineProperty(m,"DI_TOKENS",{enumerable:!0,get:a(function(){return aY.DI_TOKENS},"get")});var vd=CO();Object.defineProperty(m,"registerCoreServices",{enumerable:!0,get:a(function(){return vd.registerCoreServices},"get")});Object.defineProperty(m,"createChildContainer",{enumerable:!0,get:a(function(){return vd.createChildContainer},"get")});Object.defineProperty(m,"getContainer",{enumerable:!0,get:a(function(){return vd.getContainer},"get")});Object.defineProperty(m,"resetContainer",{enumerable:!0,get:a(function(){return vd.resetContainer},"get")});Object.defineProperty(m,"container",{enumerable:!0,get:a(function(){return vd.container},"get")});var Io=NO();Object.defineProperty(m,"NODE_FLAGS",{enumerable:!0,get:a(function(){return Io.NODE_FLAGS},"get")});Object.defineProperty(m,"DEFAULT_COLORS",{enumerable:!0,get:a(function(){return Io.DEFAULT_COLORS},"get")});Object.defineProperty(m,"StringTable",{enumerable:!0,get:a(function(){return Io.StringTable},"get")});Object.defineProperty(m,"CompactGraphStore",{enumerable:!0,get:a(function(){return Io.CompactGraphStore},"get")});Object.defineProperty(m,"MemoryPool",{enumerable:!0,get:a(function(){return Io.MemoryPool},"get")});Object.defineProperty(m,"getGlobalPool",{enumerable:!0,get:a(function(){return Io.getGlobalPool},"get")});Object.defineProperty(m,"resetGlobalPool",{enumerable:!0,get:a(function(){return Io.resetGlobalPool},"get")});Object.defineProperty(m,"StreamingLoader",{enumerable:!0,get:a(function(){return Io.StreamingLoader},"get")});Object.defineProperty(m,"createStreamingSource",{enumerable:!0,get:a(function(){return Io.createStreamingSource},"get")});var mF=kO();Object.defineProperty(m,"ExoQL",{enumerable:!0,get:a(function(){return mF.ExoQL},"get")});Object.defineProperty(m,"ExoQLError",{enumerable:!0,get:a(function(){return mF.ExoQLError},"get")});var Ed=IE();Object.defineProperty(m,"LAYOUT_CLASS_IRI",{enumerable:!0,get:a(function(){return Ed.LAYOUT_CLASS_IRI},"get")});Object.defineProperty(m,"LAYOUT_CLASS_UID",{enumerable:!0,get:a(function(){return Ed.LAYOUT_CLASS_UID},"get")});Object.defineProperty(m,"createLayoutFromFrontmatter",{enumerable:!0,get:a(function(){return Ed.createLayoutFromFrontmatter},"get")});Object.defineProperty(m,"isLayout",{enumerable:!0,get:a(function(){return Ed.isLayout},"get")});Object.defineProperty(m,"isLayoutFrontmatter",{enumerable:!0,get:a(function(){return Ed.isLayoutFrontmatter},"get")});var ba=IE();Object.defineProperty(m,"BACKLINKS_TABLE_BLOCK_CLASS_IRI",{enumerable:!0,get:a(function(){return ba.BACKLINKS_TABLE_BLOCK_CLASS_IRI},"get")});Object.defineProperty(m,"BACKLINKS_TABLE_BLOCK_CLASS_UID",{enumerable:!0,get:a(function(){return ba.BACKLINKS_TABLE_BLOCK_CLASS_UID},"get")});Object.defineProperty(m,"PROPERTIES_BLOCK_CLASS_IRI",{enumerable:!0,get:a(function(){return ba.PROPERTIES_BLOCK_CLASS_IRI},"get")});Object.defineProperty(m,"PROPERTIES_BLOCK_CLASS_UID",{enumerable:!0,get:a(function(){return ba.PROPERTIES_BLOCK_CLASS_UID},"get")});Object.defineProperty(m,"createLayoutBlockFromFrontmatter",{enumerable:!0,get:a(function(){return ba.createLayoutBlockFromFrontmatter},"get")});Object.defineProperty(m,"isBacklinksTableBlock",{enumerable:!0,get:a(function(){return ba.isBacklinksTableBlock},"get")});Object.defineProperty(m,"isLayoutBlockFrontmatter",{enumerable:!0,get:a(function(){return ba.isLayoutBlockFrontmatter},"get")});Object.defineProperty(m,"isPropertiesBlock",{enumerable:!0,get:a(function(){return ba.isPropertiesBlock},"get")});var gF=qO();Object.defineProperty(m,"LayoutSelector",{enumerable:!0,get:a(function(){return gF.LayoutSelector},"get")});Object.defineProperty(m,"selectByPriority",{enumerable:!0,get:a(function(){return gF.selectByPriority},"get")});fi(JO(),m);var cY=BE();Object.defineProperty(m,"ShapeLoader",{enumerable:!0,get:a(function(){return cY.ShapeLoader},"get")});var lY=jE();Object.defineProperty(m,"ShapeRegistry",{enumerable:!0,get:a(function(){return lY.ShapeRegistry},"get")});var uY=Ht();Object.defineProperty(m,"Namespace",{enumerable:!0,get:a(function(){return uY.Namespace},"get")});var yF=ay();Object.defineProperty(m,"shaclValidate",{enumerable:!0,get:a(function(){return yF.validate},"get")});Object.defineProperty(m,"ShaclShapeRegistry",{enumerable:!0,get:a(function(){return yF.ShapeRegistry},"get")});fi(eP(),m);var UT=rP();Object.defineProperty(m,"ValidatorDaemon",{enumerable:!0,get:a(function(){return UT.ValidatorDaemon},"get")});Object.defineProperty(m,"DEFAULT_SOCKET_PATH",{enumerable:!0,get:a(function(){return UT.DEFAULT_SOCKET_PATH},"get")});Object.defineProperty(m,"IDLE_TIMEOUT_MS",{enumerable:!0,get:a(function(){return UT.IDLE_TIMEOUT_MS},"get")});var fY=zE();Object.defineProperty(m,"TripleClassHierarchy",{enumerable:!0,get:a(function(){return fY.ClassHierarchy},"get")});var bF=YE();Object.defineProperty(m,"parseTarball",{enumerable:!0,get:a(function(){return bF.parseTarball},"get")});Object.defineProperty(m,"parseTarballGzip",{enumerable:!0,get:a(function(){return bF.parseTarballGzip},"get")});var _F=hy();Object.defineProperty(m,"restCreateCommit",{enumerable:!0,get:a(function(){return _F.restCreateCommit},"get")});Object.defineProperty(m,"isBinaryPayload",{enumerable:!0,get:a(function(){return _F.isBinaryPayload},"get")});var fu=lP();Object.defineProperty(m,"mountAssetSpaceFiles",{enumerable:!0,get:a(function(){return fu.mountAssetSpaceFiles},"get")});Object.defineProperty(m,"discoverAssetSpaceWrapperDir",{enumerable:!0,get:a(function(){return fu.discoverWrapperDir},"get")});Object.defineProperty(m,"extractAssetSpaceSha",{enumerable:!0,get:a(function(){return fu.extractShaFromWrapper},"get")});Object.defineProperty(m,"appendGitmodulesEntry",{enumerable:!0,get:a(function(){return fu.appendGitmodulesEntry},"get")});Object.defineProperty(m,"stripGitmodulesEntry",{enumerable:!0,get:a(function(){return fu.stripGitmodulesEntry},"get")});Object.defineProperty(m,"escapeGitmodulesRegex",{enumerable:!0,get:a(function(){return fu.escapeGitmodulesRegex},"get")});var wF=gy();Object.defineProperty(m,"detectChanges",{enumerable:!0,get:a(function(){return wF.detectChanges},"get")});Object.defineProperty(m,"extractAssetUid",{enumerable:!0,get:a(function(){return wF.extractAssetUid},"get")});var dY=iu();Object.defineProperty(m,"gitBlobSha",{enumerable:!0,get:a(function(){return dY.gitBlobSha},"get")});var Td=ld();Object.defineProperty(m,"getBlobBytes",{enumerable:!0,get:a(function(){return Td.getBlobBytes},"get")});Object.defineProperty(m,"getBlobText",{enumerable:!0,get:a(function(){return Td.getBlobText},"get")});Object.defineProperty(m,"getCommitInfo",{enumerable:!0,get:a(function(){return Td.getCommitInfo},"get")});Object.defineProperty(m,"getHeadSha",{enumerable:!0,get:a(function(){return Td.getHeadSha},"get")});Object.defineProperty(m,"getTree",{enumerable:!0,get:a(function(){return Td.getTree},"get")});var Ad=TP();Object.defineProperty(m,"DEFAULT_MAX_PUSH_RETRIES",{enumerable:!0,get:a(function(){return Ad.DEFAULT_MAX_PUSH_RETRIES},"get")});Object.defineProperty(m,"DEFAULT_LOCAL_MANIFEST_REHASH_MS",{enumerable:!0,get:a(function(){return Ad.DEFAULT_LOCAL_MANIFEST_REHASH_MS},"get")});Object.defineProperty(m,"SyncEngine",{enumerable:!0,get:a(function(){return Ad.SyncEngine},"get")});Object.defineProperty(m,"isNonFastForwardError",{enumerable:!0,get:a(function(){return Ad.isNonFastForwardError},"get")});Object.defineProperty(m,"orderChildrenFirst",{enumerable:!0,get:a(function(){return Ad.orderChildrenFirst},"get")});var Yi=iT();Object.defineProperty(m,"SyncPhaseTimer",{enumerable:!0,get:a(function(){return Yi.SyncPhaseTimer},"get")});Object.defineProperty(m,"SYNC_PHASES",{enumerable:!0,get:a(function(){return Yi.SYNC_PHASES},"get")});Object.defineProperty(m,"classifyRestPhase",{enumerable:!0,get:a(function(){return Yi.classifyRestPhase},"get")});Object.defineProperty(m,"emptyTimings",{enumerable:!0,get:a(function(){return Yi.emptyTimings},"get")});Object.defineProperty(m,"addTimings",{enumerable:!0,get:a(function(){return Yi.addTimings},"get")});Object.defineProperty(m,"aggregateTimings",{enumerable:!0,get:a(function(){return Yi.aggregateTimings},"get")});Object.defineProperty(m,"totalMs",{enumerable:!0,get:a(function(){return Yi.totalMs},"get")});Object.defineProperty(m,"dominantPhase",{enumerable:!0,get:a(function(){return Yi.dominantPhase},"get")});Object.defineProperty(m,"fmtMs",{enumerable:!0,get:a(function(){return Yi.fmtMs},"get")});Object.defineProperty(m,"formatTimingsLine",{enumerable:!0,get:a(function(){return Yi.formatTimingsLine},"get")});Object.defineProperty(m,"formatRepoTimings",{enumerable:!0,get:a(function(){return Yi.formatRepoTimings},"get")});var SF=xP();Object.defineProperty(m,"QuarantineResolver",{enumerable:!0,get:a(function(){return SF.QuarantineResolver},"get")});Object.defineProperty(m,"backupPathFor",{enumerable:!0,get:a(function(){return SF.backupPathFor},"get")});var xd=Ey();Object.defineProperty(m,"DEFAULT_MAX_FILE_BYTES",{enumerable:!0,get:a(function(){return xd.DEFAULT_MAX_FILE_BYTES},"get")});Object.defineProperty(m,"InMemoryQuarantineStore",{enumerable:!0,get:a(function(){return xd.InMemoryQuarantineStore},"get")});Object.defineProperty(m,"contentEquals",{enumerable:!0,get:a(function(){return xd.contentEquals},"get")});Object.defineProperty(m,"isFileSpaceSyncablePath",{enumerable:!0,get:a(function(){return xd.isFileSpaceSyncablePath},"get")});Object.defineProperty(m,"isSyncablePath",{enumerable:!0,get:a(function(){return xd.isSyncablePath},"get")});var vF=IP();Object.defineProperty(m,"FileLocalManifestStore",{enumerable:!0,get:a(function(){return vF.FileLocalManifestStore},"get")});Object.defineProperty(m,"LOCAL_MANIFEST_STORE_FILENAME",{enumerable:!0,get:a(function(){return vF.LOCAL_MANIFEST_STORE_FILENAME},"get")});var hY=yT();Object.defineProperty(m,"diff3",{enumerable:!0,get:a(function(){return hY.diff3},"get")});var EF=OP();Object.defineProperty(m,"StructuredMerger",{enumerable:!0,get:a(function(){return EF.StructuredMerger},"get")});Object.defineProperty(m,"splitSections",{enumerable:!0,get:a(function(){return EF.splitSections},"get")});var pY=PP();Object.defineProperty(m,"MergeShaclGate",{enumerable:!0,get:a(function(){return pY.MergeShaclGate},"get")});var mY=FP();Object.defineProperty(m,"GatedStructuredMerger",{enumerable:!0,get:a(function(){return mY.GatedStructuredMerger},"get")});var TF=DP();Object.defineProperty(m,"FileWatermarkStore",{enumerable:!0,get:a(function(){return TF.FileWatermarkStore},"get")});Object.defineProperty(m,"WATERMARK_STORE_FILENAME",{enumerable:!0,get:a(function(){return TF.WATERMARK_STORE_FILENAME},"get")});var AF=LP();Object.defineProperty(m,"FileMountBaseStore",{enumerable:!0,get:a(function(){return AF.FileMountBaseStore},"get")});Object.defineProperty(m,"MOUNT_BASE_STORE_FILENAME",{enumerable:!0,get:a(function(){return AF.MOUNT_BASE_STORE_FILENAME},"get")});var gY=_y();Object.defineProperty(m,"isAuthError",{enumerable:!0,get:a(function(){return gY.isAuthError},"get")});var xF=vy();Object.defineProperty(m,"isRateLimitError",{enumerable:!0,get:a(function(){return xF.isRateLimitError},"get")});Object.defineProperty(m,"withRateLimitBackoff",{enumerable:!0,get:a(function(){return xF.withRateLimitBackoff},"get")});var IF=cT();Object.defineProperty(m,"redactSecrets",{enumerable:!0,get:a(function(){return IF.redactSecrets},"get")});Object.defineProperty(m,"scanForSecrets",{enumerable:!0,get:a(function(){return IF.scanForSecrets},"get")});var RF=NP();Object.defineProperty(m,"LocalConflictCacheStore",{enumerable:!0,get:a(function(){return RF.LocalConflictCacheStore},"get")});Object.defineProperty(m,"CONFLICT_CACHE_STORE_FILENAME",{enumerable:!0,get:a(function(){return RF.CONFLICT_CACHE_STORE_FILENAME},"get")});var BT=by();Object.defineProperty(m,"LocalOutboxStore",{enumerable:!0,get:a(function(){return BT.LocalOutboxStore},"get")});Object.defineProperty(m,"OUTBOX_STORE_FILENAME",{enumerable:!0,get:a(function(){return BT.OUTBOX_STORE_FILENAME},"get")});Object.defineProperty(m,"OUTBOX_REMOTE_ABSENT",{enumerable:!0,get:a(function(){return BT.OUTBOX_REMOTE_ABSENT},"get")});var _a=VP();Object.defineProperty(m,"ASSET_SPACE_CLASS_UID",{enumerable:!0,get:a(function(){return _a.ASSET_SPACE_CLASS_UID},"get")});Object.defineProperty(m,"SYNC_BRANCH",{enumerable:!0,get:a(function(){return _a.SYNC_BRANCH},"get")});Object.defineProperty(m,"SpaceSpecAccumulator",{enumerable:!0,get:a(function(){return _a.SpaceSpecAccumulator},"get")});Object.defineProperty(m,"classifySpaceDeclaration",{enumerable:!0,get:a(function(){return _a.classifySpaceDeclaration},"get")});Object.defineProperty(m,"isAssetSpaceFrontmatter",{enumerable:!0,get:a(function(){return _a.isAssetSpaceFrontmatter},"get")});Object.defineProperty(m,"isFileSpaceFrontmatter",{enumerable:!0,get:a(function(){return _a.isFileSpaceFrontmatter},"get")});Object.defineProperty(m,"parseStrictGitHubRepoURL",{enumerable:!0,get:a(function(){return _a.parseStrictGitHubRepoURL},"get")});Object.defineProperty(m,"readSpaceSource",{enumerable:!0,get:a(function(){return _a.readSpaceSource},"get")});var CF=KP();Object.defineProperty(m,"ParityValidator",{enumerable:!0,get:a(function(){return CF.ParityValidator},"get")});Object.defineProperty(m,"summarizeParityRound",{enumerable:!0,get:a(function(){return CF.summarizeParityRound},"get")});var OF=PT();Object.defineProperty(m,"compareAssetSemantics",{enumerable:!0,get:a(function(){return OF.compareAssetSemantics},"get")});Object.defineProperty(m,"isFormatOnlyDrift",{enumerable:!0,get:a(function(){return OF.isFormatOnlyDrift},"get")})});var Cr=v(VT=>{"use strict";VT.fromCallback=function(n){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")n.apply(this,e);else return new Promise((t,r)=>{e.push((i,s)=>i!=null?r(i):t(s)),n.apply(this,e)})},"name",{value:n.name})};VT.fromPromise=function(n){return Object.defineProperty(function(...e){let t=e[e.length-1];if(typeof t!="function")return n.apply(this,e);e.pop(),n.apply(this,e).then(r=>t(null,r),t)},"name",{value:n.name})}});var FF=v((w0e,PF)=>{var wa=require("constants"),yY=process.cwd,Ly=null,bY=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return Ly||(Ly=yY.call(process)),Ly};try{process.cwd()}catch{}typeof process.chdir=="function"&&(qT=process.chdir,process.chdir=function(n){Ly=null,qT.call(process,n)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,qT));var qT;PF.exports=_Y;function _Y(n){wa.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&e(n),n.lutimes||t(n),n.chown=s(n.chown),n.fchown=s(n.fchown),n.lchown=s(n.lchown),n.chmod=r(n.chmod),n.fchmod=r(n.fchmod),n.lchmod=r(n.lchmod),n.chownSync=o(n.chownSync),n.fchownSync=o(n.fchownSync),n.lchownSync=o(n.lchownSync),n.chmodSync=i(n.chmodSync),n.fchmodSync=i(n.fchmodSync),n.lchmodSync=i(n.lchmodSync),n.stat=c(n.stat),n.fstat=c(n.fstat),n.lstat=c(n.lstat),n.statSync=l(n.statSync),n.fstatSync=l(n.fstatSync),n.lstatSync=l(n.lstatSync),n.chmod&&!n.lchmod&&(n.lchmod=function(f,d,h){h&&process.nextTick(h)},n.lchmodSync=function(){}),n.chown&&!n.lchown&&(n.lchown=function(f,d,h,p){p&&process.nextTick(p)},n.lchownSync=function(){}),bY==="win32"&&(n.rename=typeof n.rename!="function"?n.rename:(function(f){function d(h,p,y){var g=Date.now(),b=0;f(h,p,a(function _(S){if(S&&(S.code==="EACCES"||S.code==="EPERM"||S.code==="EBUSY")&&Date.now()-g<6e4){setTimeout(function(){n.stat(p,function(x,A){x&&x.code==="ENOENT"?f(h,p,_):y(S)})},b),b<100&&(b+=10);return}y&&y(S)},"CB"))}return a(d,"rename"),Object.setPrototypeOf&&Object.setPrototypeOf(d,f),d})(n.rename)),n.read=typeof n.read!="function"?n.read:(function(f){function d(h,p,y,g,b,_){var S;if(_&&typeof _=="function"){var x=0;S=a(function(A,T,R){if(A&&A.code==="EAGAIN"&&x<10)return x++,f.call(n,h,p,y,g,b,S);_.apply(this,arguments)},"callback")}return f.call(n,h,p,y,g,b,S)}return a(d,"read"),Object.setPrototypeOf&&Object.setPrototypeOf(d,f),d})(n.read),n.readSync=typeof n.readSync!="function"?n.readSync:(function(f){return function(d,h,p,y,g){for(var b=0;;)try{return f.call(n,d,h,p,y,g)}catch(_){if(_.code==="EAGAIN"&&b<10){b++;continue}throw _}}})(n.readSync);function e(f){f.lchmod=function(d,h,p){f.open(d,wa.O_WRONLY|wa.O_SYMLINK,h,function(y,g){if(y){p&&p(y);return}f.fchmod(g,h,function(b){f.close(g,function(_){p&&p(b||_)})})})},f.lchmodSync=function(d,h){var p=f.openSync(d,wa.O_WRONLY|wa.O_SYMLINK,h),y=!0,g;try{g=f.fchmodSync(p,h),y=!1}finally{if(y)try{f.closeSync(p)}catch{}else f.closeSync(p)}return g}}a(e,"patchLchmod");function t(f){wa.hasOwnProperty("O_SYMLINK")&&f.futimes?(f.lutimes=function(d,h,p,y){f.open(d,wa.O_SYMLINK,function(g,b){if(g){y&&y(g);return}f.futimes(b,h,p,function(_){f.close(b,function(S){y&&y(_||S)})})})},f.lutimesSync=function(d,h,p){var y=f.openSync(d,wa.O_SYMLINK),g,b=!0;try{g=f.futimesSync(y,h,p),b=!1}finally{if(b)try{f.closeSync(y)}catch{}else f.closeSync(y)}return g}):f.futimes&&(f.lutimes=function(d,h,p,y){y&&process.nextTick(y)},f.lutimesSync=function(){})}a(t,"patchLutimes");function r(f){return f&&function(d,h,p){return f.call(n,d,h,function(y){u(y)&&(y=null),p&&p.apply(this,arguments)})}}a(r,"chmodFix");function i(f){return f&&function(d,h){try{return f.call(n,d,h)}catch(p){if(!u(p))throw p}}}a(i,"chmodFixSync");function s(f){return f&&function(d,h,p,y){return f.call(n,d,h,p,function(g){u(g)&&(g=null),y&&y.apply(this,arguments)})}}a(s,"chownFix");function o(f){return f&&function(d,h,p){try{return f.call(n,d,h,p)}catch(y){if(!u(y))throw y}}}a(o,"chownFixSync");function c(f){return f&&function(d,h,p){typeof h=="function"&&(p=h,h=null);function y(g,b){b&&(b.uid<0&&(b.uid+=4294967296),b.gid<0&&(b.gid+=4294967296)),p&&p.apply(this,arguments)}return a(y,"callback"),h?f.call(n,d,h,y):f.call(n,d,y)}}a(c,"statFix");function l(f){return f&&function(d,h){var p=h?f.call(n,d,h):f.call(n,d);return p&&(p.uid<0&&(p.uid+=4294967296),p.gid<0&&(p.gid+=4294967296)),p}}a(l,"statFixSync");function u(f){if(!f||f.code==="ENOSYS")return!0;var d=!process.getuid||process.getuid()!==0;return!!(d&&(f.code==="EINVAL"||f.code==="EPERM"))}a(u,"chownErOk")}a(_Y,"patch")});var NF=v((v0e,LF)=>{var DF=require("stream").Stream;LF.exports=wY;function wY(n){return{ReadStream:e,WriteStream:t};function e(r,i){if(!(this instanceof e))return new e(r,i);DF.call(this);var s=this;this.path=r,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,i=i||{};for(var o=Object.keys(i),c=0,l=o.length;c<l;c++){var u=o[c];this[u]=i[u]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!="number")throw TypeError("end must be a Number");if(this.start>this.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){s._read()});return}n.open(this.path,this.flags,this.mode,function(f,d){if(f){s.emit("error",f),s.readable=!1;return}s.fd=d,s.emit("open",d),s._read()})}function t(r,i){if(!(this instanceof t))return new t(r,i);DF.call(this),this.path=r,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,i=i||{};for(var s=Object.keys(i),o=0,c=s.length;o<c;o++){var l=s[o];this[l]=i[l]}if(this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.start<0)throw new Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=n.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}a(wY,"legacy")});var MF=v((T0e,kF)=>{"use strict";kF.exports=vY;var SY=Object.getPrototypeOf||function(n){return n.__proto__};function vY(n){if(n===null||typeof n!="object")return n;if(n instanceof Object)var e={__proto__:SY(n)};else var e=Object.create(null);return Object.getOwnPropertyNames(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}a(vY,"clone")});var hu=v((x0e,HT)=>{var Vt=require("fs"),EY=FF(),TY=NF(),AY=MF(),Ny=require("util"),Gr,My;typeof Symbol=="function"&&typeof Symbol.for=="function"?(Gr=Symbol.for("graceful-fs.queue"),My=Symbol.for("graceful-fs.previous")):(Gr="___graceful-fs.queue",My="___graceful-fs.previous");function xY(){}a(xY,"noop");function UF(n,e){Object.defineProperty(n,Gr,{get:a(function(){return e},"get")})}a(UF,"publishQueue");var Ec=xY;Ny.debuglog?Ec=Ny.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(Ec=a(function(){var n=Ny.format.apply(Ny,arguments);n="GFS4: "+n.split(/\n/).join(`
326
+ `);M=$===Z}return o("checked",{filesChecked:T,inParity:A,discrepancies:x,m2SemanticDiffs:D,accountedCount:O,m1Violations:B,headSha:u,...M!==void 0?{attachmentHashSetIdentical:M}:{}})}catch(l){return(0,IK.isAuthError)(l)?o("auth-required",{detail:s(`authentication failed: ${ya(l)} \u2014 the PAT is expired, revoked or under-scoped; update it (R8)`)}):FK(l)?(i.push("repo unreachable (HTTP 404): dead AssetSpace pointer, or the fine-grained PAT does not allowlist this repo \u2014 skipped"),o("error",{detail:s(ya(l))})):(i.push(`parity check failed: ${s(ya(l))}`),o("error",{detail:s(ya(l))}))}}async readLocalSnapshot(e,t){let r=this.deps.localFilesFor(e),i=t?lu.isFileSpaceSyncablePath:lu.isSyncablePath,s=this.deps.maxFileBytes??lu.DEFAULT_MAX_FILE_BYTES,o=new Map,c=new Map,l=[];if(t&&r.readBinary===void 0)throw new Error("file-mode repo requires a LocalFilesPort with readBinary \u2014 refusing to hash through the text-only port (binary would corrupt)");let u=new TextEncoder;for(let f of await r.list())if(i(f))try{if(t){let d=await r.readBinary(f);if(d.byteLength>s){l.push(`local ${f} exceeds the ${s}-byte cap \u2014 excluded symmetrically`);continue}o.set(f,await(0,WP.gitBlobSha)(d,this.deps.sha1))}else{let d=await r.read(f);if(u.encode(d).byteLength>s){l.push(`local ${f} exceeds the ${s}-byte cap \u2014 excluded symmetrically`);continue}c.set(f,d),o.set(f,await(0,WP.gitBlobSha)(d,this.deps.sha1))}}catch(d){let h=this.deps.redact??(p=>p);l.push(`local ${f} unreadable (${h(ya(d))}) \u2014 skipped`)}return{shas:o,texts:c,warnings:l}}async classifyAll(e,t,r,i,s,o,c){let l=[],u=0,f=this.deps.maxSemanticFetchesPerRepo??CK,d=new Set([...t.shas.keys(),...r.keys()]);for(let h of[...d].sort()){let p=t.shas.get(h),g=r.get(h)?.blobSha,b=i.get(h);if(p!==void 0&&g!==void 0){if(p===g){u++;continue}l.push(await this.classifyContentDiff(e,h,p,g,b,s,o,t,{...c,takeRepoFetch:a(()=>f-- >0,"takeRepoFetch")}));continue}if(p!==void 0){let _;s.has(h)?_={path:h,presence:"local-only",cls:"quarantine-pinned",localSha:p}:b===void 0?_={path:h,presence:"local-only",cls:"pending-local-add",localSha:p}:b===p?_={path:h,presence:"local-only",cls:"pending-remote-delete",localSha:p,detail:"remote deleted it; the local copy is unchanged"}:_={path:h,presence:"local-only",cls:"pending-conflict",localSha:p,detail:"remote deleted it AND the local copy was edited"},l.push(_);continue}if(g!==void 0){let _;s.has(h)?_={path:h,presence:"remote-only",cls:"quarantine-pinned",remoteSha:g}:b===void 0?_={path:h,presence:"remote-only",cls:"pending-remote-add",remoteSha:g}:b===g?_={path:h,presence:"remote-only",cls:"deferred-local-delete",remoteSha:g,detail:"locally deleted; the delete propagates on the next sync (#3476) \u2014 escalates if it survives a converged round"}:_={path:h,presence:"remote-only",cls:"pending-conflict",remoteSha:g,detail:"locally deleted AND the remote copy was edited"},l.push(_)}}return{discrepancies:l,inParity:u,filesChecked:d.size}}async classifyContentDiff(e,t,r,i,s,o,c,l,u){let f={localSha:r,remoteSha:i};if(o.has(t))return{path:t,presence:"both",cls:"quarantine-pinned",...f};if(s!==void 0&&s===r)return{path:t,presence:"both",cls:"pending-remote-edit",...f};if(s!==void 0&&s===i)return{path:t,presence:"both",cls:"pending-local-edit",...f};if(c)return{path:t,presence:"both",cls:"pending-conflict",...f,detail:"binary content differs on both sides"};if(!u.takeRepoFetch()||!u.runBudget.take(1))return u.warnings.push(`semantic-fetch cap reached \u2014 ${t} left unverified (counted into M2)`),{path:t,presence:"both",cls:"unverified-divergence",...f};let d=l.texts.get(t),h;try{h=await(0,yd.getBlobText)(this.transport,e.owner,e.repo,i,this.deps.baseURL)}catch(y){let g=this.deps.redact??(b=>b);return u.warnings.push(`blob fetch for ${t} failed (${g(ya(y))}) \u2014 left unverified`),{path:t,presence:"both",cls:"unverified-divergence",...f}}let p=(0,HP.compareAssetSemantics)(d??"",h,this.deps.yaml);return(0,HP.isFormatOnlyDrift)(p)?{path:t,presence:"both",cls:"format-only-drift",...f,frontmatterEqual:!0,bodyEqual:!0}:{path:t,presence:"both",cls:"pending-conflict",...f,frontmatterEqual:p.frontmatterEqual,bodyEqual:p.bodyEqual,detail:`semantic divergence (frontmatter ${p.frontmatterEqual?"equal":"differs"}, body ${p.bodyEqual?"equal":"differs"})`}}checkConservation(e,t,r,i,s,o){let c=t.snapshot?.dirtyByRepo.get(e.repoKey);if(c===void 0||c.size===0)return[];let l=new Set(o?.mergedPaths??[]),u=new Set(o?.quarantinedPaths??[]),f=[];for(let[d,h]of c)r.shas.get(d)!==h&&i.get(d)?.blobSha!==h&&(l.has(d)||u.has(d)||s.has(d)||f.push({repoKey:e.repoKey,path:d,kind:"conservation",detail:`pre-sync dirty content ${h.slice(0,7)} survived NOWHERE: disk now ${r.shas.get(d)?.slice(0,7)??"absent"}, not in head tree, not merged/quarantined/pinned \u2014 possible lost edit`}));return f}escalatePersistentDivergence(e,t,r){for(let i of e){if(i.status!=="checked")continue;let s=r?.find(u=>u.repoKey===i.repoKey);if(s!==void 0&&s.status!=="synced")continue;let o=new Set(s?.deferredDeletes??[]),c=t.repos.find(u=>u.repoKey===i.repoKey&&u.status==="checked");if(c===void 0)continue;let l=new Map(c.discrepancies.filter(u=>zP.has(u.cls)).map(u=>[u.path,u]));for(let u of i.discrepancies){if(!zP.has(u.cls)||u.cls==="deferred-local-delete"&&o.has(u.path))continue;let f=l.get(u.path);f!==void 0&&f.localSha===u.localSha&&f.remoteSha===u.remoteSha&&i.m1Violations.push({repoKey:i.repoKey,path:u.path,kind:"persistent-divergence",detail:`identical divergence (local ${u.localSha?.slice(0,7)??"absent"}, remote ${u.remoteSha?.slice(0,7)??"absent"}) survived a sync round unchanged (${f.cls} \u2192 ${u.cls}) \u2014 the engine failed to converge it`})}}}};bd.ParityValidator=FT;function DK(n){if(n.vacuous)return`ExoSync parity: VACUOUS \u2014 0 of ${n.repos.length} repo(s) checked (errors / never synced)`;let e=n.repos.length-n.checkedRepos,t=e>0?`, ${e} skipped`:"";return n.ok?`ExoSync parity: M1=0, M2=\u2205 (${n.checkedRepos} repo(s) checked${t})`:`ExoSync parity: M1=${n.m1Total}, M2=${n.m2Total} diff(s) (${n.checkedRepos} repo(s) checked${t}) \u2014 see log`}a(DK,"summarizeParityRound")});var nt=v(m=>{"use strict";var LK=m&&m.__createBinding||(Object.create?(function(n,e,t,r){r===void 0&&(r=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[t]},"get")}),Object.defineProperty(n,r,i)}):(function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]})),fi=m&&m.__exportStar||function(n,e){for(var t in n)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&LK(e,n,t)};Object.defineProperty(m,"__esModule",{value:!0});m.createVaultFrontmatterClassLabelResolver=m.ServiceRegistry=m.GroundingExecutor=m.registerDefaultHostFunctions=m.hasUidFilename=m.hasNonUidFilename=m.PreconditionEvaluator=m.CommandResolver=m.extractPropertyLabel=m.uriToPropertyName=m.propertyNameToUri=m.rangeToFieldType=m.PropertyFieldType=m.transitiveDependsOnClosure=m.isTsFloorMountPath=m.isTsFloorAssetSpace=m.assertTsFloorReconciled=m.assertTsFloor=m.TsFloorViolationError=m.CATALOG_KEEP_NAMESPACES=m.PLUGIN_UI_FLOOR=m.SDK_FLOOR=m.PLUGIN_UI_FLOOR_ASSETSPACE_UIDS=m.SDK_FLOOR_ASSETSPACE_UIDS=m.TS_FLOOR_AS_UID_SHARED_IDENTITIES=m.TS_FLOOR_AS_UID_EXOCMD=m.TS_FLOOR_AS_UID_EXO=m.parseGroundingDefinitionFromFrontmatter=m.isCommandBindingFrontmatter=m.isGroundingFrontmatter=m.isPreconditionFrontmatter=m.isCommandFrontmatter=m.isStyleSource=m.isLabelClass=m.isCommandVariant=m.STYLE_SOURCE_VALUES=m.LABEL_CLASS_VALUES=m.COMMAND_VARIANT_VALUES=m.CommandBindingStyleProperty=m.CommandBindingProperty=m.GroundingProperty=m.PreconditionProperty=m.CommandProperty=m.resolveGroundingTypeFromWikilinkLiteral=m.resolveGroundingTypeFromIRI=m.GROUNDING_TYPE_IRI_TO_ENUM=m.GROUNDING_TYPE_UID_TO_ENUM=m.GROUNDING_TYPE_UIDS=m.GroundingType=m.EFFORT_STATUS_OPTIONS=void 0;m.GraphQueryService=m.FixMissingLabelService=m.ArchiveAssetService=m.GenericAssetCreationService=m.URIConstructionService=m.SessionEventService=m.AssetConversionService=m.EnumValueResolver=m.ClassHierarchyResolver=m.PropertySchemaResolver=m.PlanningService=m.AlgorithmExtractor=m.orderProperties=m.loadDefaultSpec=m.clearOrderSpecLoader=m.registerOrderSpecLoader=m.DynamicFrontmatterGenerator=m.SupervisionCreationService=m.StatusTimestampService=m.RenameToUidService=m.PropertyCleanupService=m.LoggingService=m.extractAssetReference=m.FolderRepairService=m.EffortVotingService=m.WorkflowCommandAdapter=m.VisibilityGenerator=m.InstantiationRuleResolver=m.stripTemplateFrontmatter=m.resolveTemplateBody=m.getRegisteredResolverIds=m.clearResolvers=m.registerResolver=m.getResolver=m.installDefaultResolvers=m.WorkflowResolver=m.WorkflowEngine=m.EffortStatusWorkflow=m.ConceptCreationService=m.ClassCreationService=m.AreaHierarchyBuilder=m.AreaCreationService=m.TaskStatusService=m.createTripleStoreRequiredPropertyResolver=m.CommandExecutionFlow=m.stripFrontmatter=m.extractSparqlBlock=m.iriToObsidianName=m.NamedQueryRunner=m.createVaultFrontmatterRefToFolderResolver=void 0;m.BGPExecutor=m.AlgebraSerializer=m.AlgebraOptimizer=m.AlgebraTranslator=m.ExoQLAlgebraTranslator=m.DescribeOptionsTransformerError=m.DescribeOptionsTransformer=m.SPARQLParseError=m.SPARQLParser=m.ExoQLParser=m.isPathExcluded=m.normaliseExcludedFolders=m.NoteToRDFConverter=m.SOURCE_VARIABLE=m.SourceAnnotator=m.MAX_LAZY_DEPTH=m.LazyAssetGraphLoader=m.FILE_SPACE_CLASS_UID=m.frontmatterDeclaresFileSpace=m.discoverFileSpaceExclusions=m.deriveLegacyFlatPath=m.derivePath=m.IRICanonicalizer=m.INFERRED_GRAPH=m.PrototypeChainMaterializer=m.PropertyCardinalityRegistry=m.NonInheritablePropertyRegistry=m.RDFSInferenceEngine=m.RDFVocabularyMapper=m.DomainTriple=m.DomainBlankNode=m.DomainLiteral=m.DomainIRI=m.InMemoryTripleStore=m.OBSIDIAN_VAULT_SCHEME=m.iriToVaultPath=m.vaultPathToIRI=m.NullLogger=m.RDFSerializer=m.FilenameValidator=m.EffortSortingHelpers=m.MetadataExtractor=m.MetadataHelpers=m.WikiLinkHelpers=m.DateFormatter=m.FrontmatterService=m.CriticalityZoneUUIDs=m.CriticalityZoneService=m.SPARQL_PREFIXES=m.TypeRegistry=void 0;m.createChildContainer=m.registerCoreServices=m.DI_TOKENS=m.DEFAULT_FLEETING_NOTE_CLASS_UID=m.DEFAULT_INBOX_FOLDER=m.DEFAULT_OWNER_IDENTITY=m.VaultSettings=m.seededUidGenerator=m.liveUidGenerator=m.frozenClock=m.liveClock=m.TransactionError=m.TripleNotFoundError=m.TripleAlreadyExistsError=m.FileAlreadyExistsError=m.FileNotFoundError=m.FilterContainsOptimizer=m.VaultPrefixTransformer=m.CaseWhenTransformerError=m.CaseWhenTransformer=m.ResultSerializer=m.createIncrementalIndexer=m.IncrementalIndexer=m.createSPARQLResultCache=m.SPARQLResultCache=m.QueryPlanCache=m.createDoubleLiteral=m.createDecimalLiteral=m.getNumericValue=m.createPercentileAggregate=m.modeAggregate=m.stddevAggregate=m.varianceAggregate=m.medianAggregate=m.EXO_AGGREGATE_NS=m.BUILT_IN_AGGREGATES=m.CustomAggregateError=m.CustomAggregateRegistry=m.AggregateFunctions=m.BuiltInFunctions=m.SolutionMapping=m.UpdateExecutorError=m.UpdateExecutor=m.QueryExecutor=m.ExoQLQueryExecutor=m.DescribeExecutor=m.ConstructExecutor=m.UnionExecutor=m.OptionalExecutor=m.FilterExecutor=void 0;m.extractAssetUid=m.detectChanges=m.escapeGitmodulesRegex=m.stripGitmodulesEntry=m.appendGitmodulesEntry=m.extractAssetSpaceSha=m.discoverAssetSpaceWrapperDir=m.mountAssetSpaceFiles=m.isBinaryPayload=m.restCreateCommit=m.parseTarballGzip=m.parseTarball=m.TripleClassHierarchy=m.IDLE_TIMEOUT_MS=m.DEFAULT_SOCKET_PATH=m.ValidatorDaemon=m.ShaclShapeRegistry=m.shaclValidate=m.Namespace=m.ShapeRegistry=m.ShapeLoader=m.selectByPriority=m.LayoutSelector=m.isPropertiesBlock=m.isLayoutBlockFrontmatter=m.isBacklinksTableBlock=m.createLayoutBlockFromFrontmatter=m.PROPERTIES_BLOCK_CLASS_UID=m.PROPERTIES_BLOCK_CLASS_IRI=m.BACKLINKS_TABLE_BLOCK_CLASS_UID=m.BACKLINKS_TABLE_BLOCK_CLASS_IRI=m.isLayoutFrontmatter=m.isLayout=m.createLayoutFromFrontmatter=m.LAYOUT_CLASS_UID=m.LAYOUT_CLASS_IRI=m.ExoQLError=m.ExoQL=m.createStreamingSource=m.StreamingLoader=m.resetGlobalPool=m.getGlobalPool=m.MemoryPool=m.CompactGraphStore=m.StringTable=m.DEFAULT_COLORS=m.NODE_FLAGS=m.container=m.resetContainer=m.getContainer=void 0;m.OUTBOX_REMOTE_ABSENT=m.OUTBOX_STORE_FILENAME=m.LocalOutboxStore=m.CONFLICT_CACHE_STORE_FILENAME=m.LocalConflictCacheStore=m.scanForSecrets=m.redactSecrets=m.withRateLimitBackoff=m.isRateLimitError=m.isAuthError=m.MOUNT_BASE_STORE_FILENAME=m.FileMountBaseStore=m.WATERMARK_STORE_FILENAME=m.FileWatermarkStore=m.GatedStructuredMerger=m.MergeShaclGate=m.splitSections=m.StructuredMerger=m.diff3=m.LOCAL_MANIFEST_STORE_FILENAME=m.FileLocalManifestStore=m.isSyncablePath=m.isFileSpaceSyncablePath=m.contentEquals=m.InMemoryQuarantineStore=m.DEFAULT_MAX_FILE_BYTES=m.backupPathFor=m.QuarantineResolver=m.formatRepoTimings=m.formatTimingsLine=m.fmtMs=m.dominantPhase=m.totalMs=m.aggregateTimings=m.addTimings=m.emptyTimings=m.classifyRestPhase=m.SYNC_PHASES=m.SyncPhaseTimer=m.orderChildrenFirst=m.isNonFastForwardError=m.SyncEngine=m.DEFAULT_LOCAL_MANIFEST_REHASH_MS=m.DEFAULT_MAX_PUSH_RETRIES=m.getTree=m.getHeadSha=m.getCommitInfo=m.getBlobText=m.getBlobBytes=m.gitBlobSha=void 0;m.isFormatOnlyDrift=m.compareAssetSemantics=m.summarizeParityRound=m.ParityValidator=m.readSpaceSource=m.parseStrictGitHubRepoURL=m.isFileSpaceFrontmatter=m.isAssetSpaceFrontmatter=m.classifySpaceDeclaration=m.SpaceSpecAccumulator=m.SYNC_BRANCH=m.ASSET_SPACE_CLASS_UID=void 0;fi(Yc(),m);fi(Qc(),m);var NK=Qb();Object.defineProperty(m,"EFFORT_STATUS_OPTIONS",{enumerable:!0,get:a(function(){return NK.EFFORT_STATUS_OPTIONS},"get")});var kK=Wo();Object.defineProperty(m,"GroundingType",{enumerable:!0,get:a(function(){return kK.GroundingType},"get")});var _d=uf();Object.defineProperty(m,"GROUNDING_TYPE_UIDS",{enumerable:!0,get:a(function(){return _d.GROUNDING_TYPE_UIDS},"get")});Object.defineProperty(m,"GROUNDING_TYPE_UID_TO_ENUM",{enumerable:!0,get:a(function(){return _d.GROUNDING_TYPE_UID_TO_ENUM},"get")});Object.defineProperty(m,"GROUNDING_TYPE_IRI_TO_ENUM",{enumerable:!0,get:a(function(){return _d.GROUNDING_TYPE_IRI_TO_ENUM},"get")});Object.defineProperty(m,"resolveGroundingTypeFromIRI",{enumerable:!0,get:a(function(){return _d.resolveGroundingTypeFromIRI},"get")});Object.defineProperty(m,"resolveGroundingTypeFromWikilinkLiteral",{enumerable:!0,get:a(function(){return _d.resolveGroundingTypeFromWikilinkLiteral},"get")});var wd=Jb();Object.defineProperty(m,"CommandProperty",{enumerable:!0,get:a(function(){return wd.CommandProperty},"get")});Object.defineProperty(m,"PreconditionProperty",{enumerable:!0,get:a(function(){return wd.PreconditionProperty},"get")});Object.defineProperty(m,"GroundingProperty",{enumerable:!0,get:a(function(){return wd.GroundingProperty},"get")});Object.defineProperty(m,"CommandBindingProperty",{enumerable:!0,get:a(function(){return wd.CommandBindingProperty},"get")});Object.defineProperty(m,"CommandBindingStyleProperty",{enumerable:!0,get:a(function(){return wd.CommandBindingStyleProperty},"get")});var uu=Zb();Object.defineProperty(m,"COMMAND_VARIANT_VALUES",{enumerable:!0,get:a(function(){return uu.COMMAND_VARIANT_VALUES},"get")});Object.defineProperty(m,"LABEL_CLASS_VALUES",{enumerable:!0,get:a(function(){return uu.LABEL_CLASS_VALUES},"get")});Object.defineProperty(m,"STYLE_SOURCE_VALUES",{enumerable:!0,get:a(function(){return uu.STYLE_SOURCE_VALUES},"get")});Object.defineProperty(m,"isCommandVariant",{enumerable:!0,get:a(function(){return uu.isCommandVariant},"get")});Object.defineProperty(m,"isLabelClass",{enumerable:!0,get:a(function(){return uu.isLabelClass},"get")});Object.defineProperty(m,"isStyleSource",{enumerable:!0,get:a(function(){return uu.isStyleSource},"get")});var Py=Yx();Object.defineProperty(m,"isCommandFrontmatter",{enumerable:!0,get:a(function(){return Py.isCommandFrontmatter},"get")});Object.defineProperty(m,"isPreconditionFrontmatter",{enumerable:!0,get:a(function(){return Py.isPreconditionFrontmatter},"get")});Object.defineProperty(m,"isGroundingFrontmatter",{enumerable:!0,get:a(function(){return Py.isGroundingFrontmatter},"get")});Object.defineProperty(m,"isCommandBindingFrontmatter",{enumerable:!0,get:a(function(){return Py.isCommandBindingFrontmatter},"get")});var MK=Qx();Object.defineProperty(m,"parseGroundingDefinitionFromFrontmatter",{enumerable:!0,get:a(function(){return MK.parseGroundingDefinitionFromFrontmatter},"get")});fi(Jx(),m);fi(Zx(),m);fi(r_(),m);fi(n_(),m);fi(tI(),m);fi(iI(),m);fi(j_(),m);fi(MI(),m);var ei=jI();Object.defineProperty(m,"TS_FLOOR_AS_UID_EXO",{enumerable:!0,get:a(function(){return ei.TS_FLOOR_AS_UID_EXO},"get")});Object.defineProperty(m,"TS_FLOOR_AS_UID_EXOCMD",{enumerable:!0,get:a(function(){return ei.TS_FLOOR_AS_UID_EXOCMD},"get")});Object.defineProperty(m,"TS_FLOOR_AS_UID_SHARED_IDENTITIES",{enumerable:!0,get:a(function(){return ei.TS_FLOOR_AS_UID_SHARED_IDENTITIES},"get")});Object.defineProperty(m,"SDK_FLOOR_ASSETSPACE_UIDS",{enumerable:!0,get:a(function(){return ei.SDK_FLOOR_ASSETSPACE_UIDS},"get")});Object.defineProperty(m,"PLUGIN_UI_FLOOR_ASSETSPACE_UIDS",{enumerable:!0,get:a(function(){return ei.PLUGIN_UI_FLOOR_ASSETSPACE_UIDS},"get")});Object.defineProperty(m,"SDK_FLOOR",{enumerable:!0,get:a(function(){return ei.SDK_FLOOR},"get")});Object.defineProperty(m,"PLUGIN_UI_FLOOR",{enumerable:!0,get:a(function(){return ei.PLUGIN_UI_FLOOR},"get")});Object.defineProperty(m,"CATALOG_KEEP_NAMESPACES",{enumerable:!0,get:a(function(){return ei.CATALOG_KEEP_NAMESPACES},"get")});Object.defineProperty(m,"TsFloorViolationError",{enumerable:!0,get:a(function(){return ei.TsFloorViolationError},"get")});Object.defineProperty(m,"assertTsFloor",{enumerable:!0,get:a(function(){return ei.assertTsFloor},"get")});Object.defineProperty(m,"assertTsFloorReconciled",{enumerable:!0,get:a(function(){return ei.assertTsFloorReconciled},"get")});Object.defineProperty(m,"isTsFloorAssetSpace",{enumerable:!0,get:a(function(){return ei.isTsFloorAssetSpace},"get")});Object.defineProperty(m,"isTsFloorMountPath",{enumerable:!0,get:a(function(){return ei.isTsFloorMountPath},"get")});var jK=$I();Object.defineProperty(m,"transitiveDependsOnClosure",{enumerable:!0,get:a(function(){return jK.transitiveDependsOnClosure},"get")});var XP=dp();Object.defineProperty(m,"PropertyFieldType",{enumerable:!0,get:a(function(){return XP.PropertyFieldType},"get")});Object.defineProperty(m,"rangeToFieldType",{enumerable:!0,get:a(function(){return XP.rangeToFieldType},"get")});var DT=V_();Object.defineProperty(m,"propertyNameToUri",{enumerable:!0,get:a(function(){return DT.propertyNameToUri},"get")});Object.defineProperty(m,"uriToPropertyName",{enumerable:!0,get:a(function(){return DT.uriToPropertyName},"get")});Object.defineProperty(m,"extractPropertyLabel",{enumerable:!0,get:a(function(){return DT.extractPropertyLabel},"get")});var $K=xC();Object.defineProperty(m,"CommandResolver",{enumerable:!0,get:a(function(){return $K.CommandResolver},"get")});var UK=RC();Object.defineProperty(m,"PreconditionEvaluator",{enumerable:!0,get:a(function(){return UK.PreconditionEvaluator},"get")});var LT=CC();Object.defineProperty(m,"hasNonUidFilename",{enumerable:!0,get:a(function(){return LT.hasNonUidFilename},"get")});Object.defineProperty(m,"hasUidFilename",{enumerable:!0,get:a(function(){return LT.hasUidFilename},"get")});Object.defineProperty(m,"registerDefaultHostFunctions",{enumerable:!0,get:a(function(){return LT.registerDefaultHostFunctions},"get")});var YP=NC();Object.defineProperty(m,"GroundingExecutor",{enumerable:!0,get:a(function(){return YP.GroundingExecutor},"get")});Object.defineProperty(m,"ServiceRegistry",{enumerable:!0,get:a(function(){return YP.ServiceRegistry},"get")});var BK=kC();Object.defineProperty(m,"createVaultFrontmatterClassLabelResolver",{enumerable:!0,get:a(function(){return BK.createVaultFrontmatterClassLabelResolver},"get")});var VK=MC();Object.defineProperty(m,"createVaultFrontmatterRefToFolderResolver",{enumerable:!0,get:a(function(){return VK.createVaultFrontmatterRefToFolderResolver},"get")});var qK=$C();Object.defineProperty(m,"NamedQueryRunner",{enumerable:!0,get:a(function(){return qK.NamedQueryRunner},"get")});var GK=Pp();Object.defineProperty(m,"iriToObsidianName",{enumerable:!0,get:a(function(){return GK.iriToObsidianName},"get")});var QP=UC();Object.defineProperty(m,"extractSparqlBlock",{enumerable:!0,get:a(function(){return QP.extractSparqlBlock},"get")});Object.defineProperty(m,"stripFrontmatter",{enumerable:!0,get:a(function(){return QP.stripFrontmatter},"get")});var WK=VC();Object.defineProperty(m,"CommandExecutionFlow",{enumerable:!0,get:a(function(){return WK.CommandExecutionFlow},"get")});var HK=WC();Object.defineProperty(m,"createTripleStoreRequiredPropertyResolver",{enumerable:!0,get:a(function(){return HK.createTripleStoreRequiredPropertyResolver},"get")});var zK=w1();Object.defineProperty(m,"TaskStatusService",{enumerable:!0,get:a(function(){return zK.TaskStatusService},"get")});var KK=T1();Object.defineProperty(m,"AreaCreationService",{enumerable:!0,get:a(function(){return KK.AreaCreationService},"get")});var XK=x1();Object.defineProperty(m,"AreaHierarchyBuilder",{enumerable:!0,get:a(function(){return XK.AreaHierarchyBuilder},"get")});var YK=R1();Object.defineProperty(m,"ClassCreationService",{enumerable:!0,get:a(function(){return YK.ClassCreationService},"get")});var QK=O1();Object.defineProperty(m,"ConceptCreationService",{enumerable:!0,get:a(function(){return QK.ConceptCreationService},"get")});var JK=ag();Object.defineProperty(m,"EffortStatusWorkflow",{enumerable:!0,get:a(function(){return JK.EffortStatusWorkflow},"get")});var ZK=Xf();Object.defineProperty(m,"WorkflowEngine",{enumerable:!0,get:a(function(){return ZK.WorkflowEngine},"get")});var eX=c1();Object.defineProperty(m,"WorkflowResolver",{enumerable:!0,get:a(function(){return eX.WorkflowResolver},"get")});var Sd=Vm();Object.defineProperty(m,"installDefaultResolvers",{enumerable:!0,get:a(function(){return Sd.installDefaultResolvers},"get")});Object.defineProperty(m,"getResolver",{enumerable:!0,get:a(function(){return Sd.getResolver},"get")});Object.defineProperty(m,"registerResolver",{enumerable:!0,get:a(function(){return Sd.registerResolver},"get")});Object.defineProperty(m,"clearResolvers",{enumerable:!0,get:a(function(){return Sd.clearResolvers},"get")});Object.defineProperty(m,"getRegisteredResolverIds",{enumerable:!0,get:a(function(){return Sd.getRegisteredResolverIds},"get")});var JP=XS();Object.defineProperty(m,"resolveTemplateBody",{enumerable:!0,get:a(function(){return JP.resolveTemplateBody},"get")});Object.defineProperty(m,"stripTemplateFrontmatter",{enumerable:!0,get:a(function(){return JP.stripTemplateFrontmatter},"get")});var tX=o3();Object.defineProperty(m,"InstantiationRuleResolver",{enumerable:!0,get:a(function(){return tX.InstantiationRuleResolver},"get")});var rX=a3();Object.defineProperty(m,"VisibilityGenerator",{enumerable:!0,get:a(function(){return rX.VisibilityGenerator},"get")});var nX=c3();Object.defineProperty(m,"WorkflowCommandAdapter",{enumerable:!0,get:a(function(){return nX.WorkflowCommandAdapter},"get")});var iX=M1();Object.defineProperty(m,"EffortVotingService",{enumerable:!0,get:a(function(){return iX.EffortVotingService},"get")});var sX=B1();Object.defineProperty(m,"FolderRepairService",{enumerable:!0,get:a(function(){return sX.FolderRepairService},"get")});var oX=$1();Object.defineProperty(m,"extractAssetReference",{enumerable:!0,get:a(function(){return oX.extractAssetReference},"get")});var aX=oc();Object.defineProperty(m,"LoggingService",{enumerable:!0,get:a(function(){return aX.LoggingService},"get")});var cX=G1();Object.defineProperty(m,"PropertyCleanupService",{enumerable:!0,get:a(function(){return cX.PropertyCleanupService},"get")});var lX=H1();Object.defineProperty(m,"RenameToUidService",{enumerable:!0,get:a(function(){return lX.RenameToUidService},"get")});var uX=lg();Object.defineProperty(m,"StatusTimestampService",{enumerable:!0,get:a(function(){return uX.StatusTimestampService},"get")});var fX=X1();Object.defineProperty(m,"SupervisionCreationService",{enumerable:!0,get:a(function(){return fX.SupervisionCreationService},"get")});var dX=Q1();Object.defineProperty(m,"DynamicFrontmatterGenerator",{enumerable:!0,get:a(function(){return dX.DynamicFrontmatterGenerator},"get")});var Fy=qf();Object.defineProperty(m,"registerOrderSpecLoader",{enumerable:!0,get:a(function(){return Fy.registerOrderSpecLoader},"get")});Object.defineProperty(m,"clearOrderSpecLoader",{enumerable:!0,get:a(function(){return Fy.clearOrderSpecLoader},"get")});Object.defineProperty(m,"loadDefaultSpec",{enumerable:!0,get:a(function(){return Fy.loadDefaultSpec},"get")});Object.defineProperty(m,"orderProperties",{enumerable:!0,get:a(function(){return Fy.orderProperties},"get")});var hX=Z1();Object.defineProperty(m,"AlgorithmExtractor",{enumerable:!0,get:a(function(){return hX.AlgorithmExtractor},"get")});var pX=tv();Object.defineProperty(m,"PlanningService",{enumerable:!0,get:a(function(){return pX.PlanningService},"get")});var mX=_3();Object.defineProperty(m,"PropertySchemaResolver",{enumerable:!0,get:a(function(){return mX.PropertySchemaResolver},"get")});var gX=w3();Object.defineProperty(m,"ClassHierarchyResolver",{enumerable:!0,get:a(function(){return gX.ClassHierarchyResolver},"get")});var yX=S3();Object.defineProperty(m,"EnumValueResolver",{enumerable:!0,get:a(function(){return yX.EnumValueResolver},"get")});var bX=ov();Object.defineProperty(m,"AssetConversionService",{enumerable:!0,get:a(function(){return bX.AssetConversionService},"get")});var _X=lv();Object.defineProperty(m,"SessionEventService",{enumerable:!0,get:a(function(){return _X.SessionEventService},"get")});var wX=dv();Object.defineProperty(m,"URIConstructionService",{enumerable:!0,get:a(function(){return wX.URIConstructionService},"get")});var SX=pv();Object.defineProperty(m,"GenericAssetCreationService",{enumerable:!0,get:a(function(){return SX.GenericAssetCreationService},"get")});var vX=P3();Object.defineProperty(m,"ArchiveAssetService",{enumerable:!0,get:a(function(){return vX.ArchiveAssetService},"get")});var EX=D3();Object.defineProperty(m,"FixMissingLabelService",{enumerable:!0,get:a(function(){return EX.FixMissingLabelService},"get")});var TX=L3();Object.defineProperty(m,"GraphQueryService",{enumerable:!0,get:a(function(){return TX.GraphQueryService},"get")});var AX=k3();Object.defineProperty(m,"TypeRegistry",{enumerable:!0,get:a(function(){return AX.TypeRegistry},"get")});var xX=M3();Object.defineProperty(m,"SPARQL_PREFIXES",{enumerable:!0,get:a(function(){return xX.SPARQL_PREFIXES},"get")});var ZP=wv();Object.defineProperty(m,"CriticalityZoneService",{enumerable:!0,get:a(function(){return ZP.CriticalityZoneService},"get")});Object.defineProperty(m,"CriticalityZoneUUIDs",{enumerable:!0,get:a(function(){return ZP.CriticalityZoneUUIDs},"get")});var IX=ws();Object.defineProperty(m,"FrontmatterService",{enumerable:!0,get:a(function(){return IX.FrontmatterService},"get")});var RX=Mn();Object.defineProperty(m,"DateFormatter",{enumerable:!0,get:a(function(){return RX.DateFormatter},"get")});var CX=Zs();Object.defineProperty(m,"WikiLinkHelpers",{enumerable:!0,get:a(function(){return CX.WikiLinkHelpers},"get")});var OX=fo();Object.defineProperty(m,"MetadataHelpers",{enumerable:!0,get:a(function(){return OX.MetadataHelpers},"get")});var PX=v1();Object.defineProperty(m,"MetadataExtractor",{enumerable:!0,get:a(function(){return PX.MetadataExtractor},"get")});var FX=$3();Object.defineProperty(m,"EffortSortingHelpers",{enumerable:!0,get:a(function(){return FX.EffortSortingHelpers},"get")});var DX=U3();Object.defineProperty(m,"FilenameValidator",{enumerable:!0,get:a(function(){return DX.FilenameValidator},"get")});var LX=z3();Object.defineProperty(m,"RDFSerializer",{enumerable:!0,get:a(function(){return LX.RDFSerializer},"get")});var NX=el();Object.defineProperty(m,"NullLogger",{enumerable:!0,get:a(function(){return NX.NullLogger},"get")});var NT=Fv();Object.defineProperty(m,"vaultPathToIRI",{enumerable:!0,get:a(function(){return NT.vaultPathToIRI},"get")});Object.defineProperty(m,"iriToVaultPath",{enumerable:!0,get:a(function(){return NT.iriToVaultPath},"get")});Object.defineProperty(m,"OBSIDIAN_VAULT_SCHEME",{enumerable:!0,get:a(function(){return NT.OBSIDIAN_VAULT_SCHEME},"get")});var kX=g1();Object.defineProperty(m,"InMemoryTripleStore",{enumerable:!0,get:a(function(){return kX.InMemoryTripleStore},"get")});var MX=Ce();Object.defineProperty(m,"DomainIRI",{enumerable:!0,get:a(function(){return MX.IRI},"get")});var jX=Ge();Object.defineProperty(m,"DomainLiteral",{enumerable:!0,get:a(function(){return jX.Literal},"get")});var $X=Mt();Object.defineProperty(m,"DomainBlankNode",{enumerable:!0,get:a(function(){return $X.BlankNode},"get")});var UX=zn();Object.defineProperty(m,"DomainTriple",{enumerable:!0,get:a(function(){return UX.Triple},"get")});var BX=Lv();Object.defineProperty(m,"RDFVocabularyMapper",{enumerable:!0,get:a(function(){return BX.RDFVocabularyMapper},"get")});var VX=X3();Object.defineProperty(m,"RDFSInferenceEngine",{enumerable:!0,get:a(function(){return VX.RDFSInferenceEngine},"get")});var qX=jv();Object.defineProperty(m,"NonInheritablePropertyRegistry",{enumerable:!0,get:a(function(){return qX.NonInheritablePropertyRegistry},"get")});var GX=Bv();Object.defineProperty(m,"PropertyCardinalityRegistry",{enumerable:!0,get:a(function(){return GX.PropertyCardinalityRegistry},"get")});var eF=Gv();Object.defineProperty(m,"PrototypeChainMaterializer",{enumerable:!0,get:a(function(){return eF.PrototypeChainMaterializer},"get")});Object.defineProperty(m,"INFERRED_GRAPH",{enumerable:!0,get:a(function(){return eF.INFERRED_GRAPH},"get")});var WX=rO();Object.defineProperty(m,"IRICanonicalizer",{enumerable:!0,get:a(function(){return WX.IRICanonicalizer},"get")});var tF=Rg();Object.defineProperty(m,"derivePath",{enumerable:!0,get:a(function(){return tF.derivePath},"get")});Object.defineProperty(m,"deriveLegacyFlatPath",{enumerable:!0,get:a(function(){return tF.deriveLegacyFlatPath},"get")});var kT=Cg();Object.defineProperty(m,"discoverFileSpaceExclusions",{enumerable:!0,get:a(function(){return kT.discoverFileSpaceExclusions},"get")});Object.defineProperty(m,"frontmatterDeclaresFileSpace",{enumerable:!0,get:a(function(){return kT.frontmatterDeclaresFileSpace},"get")});Object.defineProperty(m,"FILE_SPACE_CLASS_UID",{enumerable:!0,get:a(function(){return kT.FILE_SPACE_CLASS_UID},"get")});var rF=lO();Object.defineProperty(m,"LazyAssetGraphLoader",{enumerable:!0,get:a(function(){return rF.LazyAssetGraphLoader},"get")});Object.defineProperty(m,"MAX_LAZY_DEPTH",{enumerable:!0,get:a(function(){return rF.MAX_LAZY_DEPTH},"get")});var nF=Yv();Object.defineProperty(m,"SourceAnnotator",{enumerable:!0,get:a(function(){return nF.SourceAnnotator},"get")});Object.defineProperty(m,"SOURCE_VARIABLE",{enumerable:!0,get:a(function(){return nF.SOURCE_VARIABLE},"get")});var MT=eE();Object.defineProperty(m,"NoteToRDFConverter",{enumerable:!0,get:a(function(){return MT.NoteToRDFConverter},"get")});Object.defineProperty(m,"normaliseExcludedFolders",{enumerable:!0,get:a(function(){return MT.normaliseExcludedFolders},"get")});Object.defineProperty(m,"isPathExcluded",{enumerable:!0,get:a(function(){return MT.isPathExcluded},"get")});var jT=dl();Object.defineProperty(m,"ExoQLParser",{enumerable:!0,get:a(function(){return jT.ExoQLParser},"get")});Object.defineProperty(m,"SPARQLParser",{enumerable:!0,get:a(function(){return jT.SPARQLParser},"get")});Object.defineProperty(m,"SPARQLParseError",{enumerable:!0,get:a(function(){return jT.SPARQLParseError},"get")});var iF=Bw();Object.defineProperty(m,"DescribeOptionsTransformer",{enumerable:!0,get:a(function(){return iF.DescribeOptionsTransformer},"get")});Object.defineProperty(m,"DescribeOptionsTransformerError",{enumerable:!0,get:a(function(){return iF.DescribeOptionsTransformerError},"get")});var sF=pl();Object.defineProperty(m,"ExoQLAlgebraTranslator",{enumerable:!0,get:a(function(){return sF.ExoQLAlgebraTranslator},"get")});Object.defineProperty(m,"AlgebraTranslator",{enumerable:!0,get:a(function(){return sF.AlgebraTranslator},"get")});var HX=gO();Object.defineProperty(m,"AlgebraOptimizer",{enumerable:!0,get:a(function(){return HX.AlgebraOptimizer},"get")});var zX=yO();Object.defineProperty(m,"AlgebraSerializer",{enumerable:!0,get:a(function(){return zX.AlgebraSerializer},"get")});var KX=sS();Object.defineProperty(m,"BGPExecutor",{enumerable:!0,get:a(function(){return KX.BGPExecutor},"get")});var XX=Sm();Object.defineProperty(m,"FilterExecutor",{enumerable:!0,get:a(function(){return XX.FilterExecutor},"get")});var YX=TS();Object.defineProperty(m,"OptionalExecutor",{enumerable:!0,get:a(function(){return YX.OptionalExecutor},"get")});var QX=xS();Object.defineProperty(m,"UnionExecutor",{enumerable:!0,get:a(function(){return QX.UnionExecutor},"get")});var JX=kS();Object.defineProperty(m,"ConstructExecutor",{enumerable:!0,get:a(function(){return JX.ConstructExecutor},"get")});var ZX=_O();Object.defineProperty(m,"DescribeExecutor",{enumerable:!0,get:a(function(){return ZX.DescribeExecutor},"get")});var oF=Nl();Object.defineProperty(m,"ExoQLQueryExecutor",{enumerable:!0,get:a(function(){return oF.ExoQLQueryExecutor},"get")});Object.defineProperty(m,"QueryExecutor",{enumerable:!0,get:a(function(){return oF.QueryExecutor},"get")});var aF=SO();Object.defineProperty(m,"UpdateExecutor",{enumerable:!0,get:a(function(){return aF.UpdateExecutor},"get")});Object.defineProperty(m,"UpdateExecutorError",{enumerable:!0,get:a(function(){return aF.UpdateExecutorError},"get")});var eY=gs();Object.defineProperty(m,"SolutionMapping",{enumerable:!0,get:a(function(){return eY.SolutionMapping},"get")});var tY=wm();Object.defineProperty(m,"BuiltInFunctions",{enumerable:!0,get:a(function(){return tY.BuiltInFunctions},"get")});var rY=EO();Object.defineProperty(m,"AggregateFunctions",{enumerable:!0,get:a(function(){return rY.AggregateFunctions},"get")});var cF=CS();Object.defineProperty(m,"CustomAggregateRegistry",{enumerable:!0,get:a(function(){return cF.CustomAggregateRegistry},"get")});Object.defineProperty(m,"CustomAggregateError",{enumerable:!0,get:a(function(){return cF.CustomAggregateError},"get")});var Ds=OS();Object.defineProperty(m,"BUILT_IN_AGGREGATES",{enumerable:!0,get:a(function(){return Ds.BUILT_IN_AGGREGATES},"get")});Object.defineProperty(m,"EXO_AGGREGATE_NS",{enumerable:!0,get:a(function(){return Ds.EXO_AGGREGATE_NS},"get")});Object.defineProperty(m,"medianAggregate",{enumerable:!0,get:a(function(){return Ds.medianAggregate},"get")});Object.defineProperty(m,"varianceAggregate",{enumerable:!0,get:a(function(){return Ds.varianceAggregate},"get")});Object.defineProperty(m,"stddevAggregate",{enumerable:!0,get:a(function(){return Ds.stddevAggregate},"get")});Object.defineProperty(m,"modeAggregate",{enumerable:!0,get:a(function(){return Ds.modeAggregate},"get")});Object.defineProperty(m,"createPercentileAggregate",{enumerable:!0,get:a(function(){return Ds.createPercentileAggregate},"get")});Object.defineProperty(m,"getNumericValue",{enumerable:!0,get:a(function(){return Ds.getNumericValue},"get")});Object.defineProperty(m,"createDecimalLiteral",{enumerable:!0,get:a(function(){return Ds.createDecimalLiteral},"get")});Object.defineProperty(m,"createDoubleLiteral",{enumerable:!0,get:a(function(){return Ds.createDoubleLiteral},"get")});var nY=TO();Object.defineProperty(m,"QueryPlanCache",{enumerable:!0,get:a(function(){return nY.QueryPlanCache},"get")});var lF=AO();Object.defineProperty(m,"SPARQLResultCache",{enumerable:!0,get:a(function(){return lF.SPARQLResultCache},"get")});Object.defineProperty(m,"createSPARQLResultCache",{enumerable:!0,get:a(function(){return lF.createSPARQLResultCache},"get")});var uF=xO();Object.defineProperty(m,"IncrementalIndexer",{enumerable:!0,get:a(function(){return uF.IncrementalIndexer},"get")});Object.defineProperty(m,"createIncrementalIndexer",{enumerable:!0,get:a(function(){return uF.createIncrementalIndexer},"get")});var iY=IO();Object.defineProperty(m,"ResultSerializer",{enumerable:!0,get:a(function(){return iY.ResultSerializer},"get")});var fF=jw();Object.defineProperty(m,"CaseWhenTransformer",{enumerable:!0,get:a(function(){return fF.CaseWhenTransformer},"get")});Object.defineProperty(m,"CaseWhenTransformerError",{enumerable:!0,get:a(function(){return fF.CaseWhenTransformerError},"get")});var sY=Ww();Object.defineProperty(m,"VaultPrefixTransformer",{enumerable:!0,get:a(function(){return sY.VaultPrefixTransformer},"get")});var oY=rE();Object.defineProperty(m,"FilterContainsOptimizer",{enumerable:!0,get:a(function(){return oY.FilterContainsOptimizer},"get")});var dF=RO();Object.defineProperty(m,"FileNotFoundError",{enumerable:!0,get:a(function(){return dF.FileNotFoundError},"get")});Object.defineProperty(m,"FileAlreadyExistsError",{enumerable:!0,get:a(function(){return dF.FileAlreadyExistsError},"get")});var $T=d1();Object.defineProperty(m,"TripleAlreadyExistsError",{enumerable:!0,get:a(function(){return $T.TripleAlreadyExistsError},"get")});Object.defineProperty(m,"TripleNotFoundError",{enumerable:!0,get:a(function(){return $T.TripleNotFoundError},"get")});Object.defineProperty(m,"TransactionError",{enumerable:!0,get:a(function(){return $T.TransactionError},"get")});var hF=Uf();Object.defineProperty(m,"liveClock",{enumerable:!0,get:a(function(){return hF.liveClock},"get")});Object.defineProperty(m,"frozenClock",{enumerable:!0,get:a(function(){return hF.frozenClock},"get")});var pF=$m();Object.defineProperty(m,"liveUidGenerator",{enumerable:!0,get:a(function(){return pF.liveUidGenerator},"get")});Object.defineProperty(m,"seededUidGenerator",{enumerable:!0,get:a(function(){return pF.seededUidGenerator},"get")});var Dy=mE();Object.defineProperty(m,"VaultSettings",{enumerable:!0,get:a(function(){return Dy.VaultSettings},"get")});Object.defineProperty(m,"DEFAULT_OWNER_IDENTITY",{enumerable:!0,get:a(function(){return Dy.DEFAULT_OWNER_IDENTITY},"get")});Object.defineProperty(m,"DEFAULT_INBOX_FOLDER",{enumerable:!0,get:a(function(){return Dy.DEFAULT_INBOX_FOLDER},"get")});Object.defineProperty(m,"DEFAULT_FLEETING_NOTE_CLASS_UID",{enumerable:!0,get:a(function(){return Dy.DEFAULT_FLEETING_NOTE_CLASS_UID},"get")});var aY=Ut();Object.defineProperty(m,"DI_TOKENS",{enumerable:!0,get:a(function(){return aY.DI_TOKENS},"get")});var vd=CO();Object.defineProperty(m,"registerCoreServices",{enumerable:!0,get:a(function(){return vd.registerCoreServices},"get")});Object.defineProperty(m,"createChildContainer",{enumerable:!0,get:a(function(){return vd.createChildContainer},"get")});Object.defineProperty(m,"getContainer",{enumerable:!0,get:a(function(){return vd.getContainer},"get")});Object.defineProperty(m,"resetContainer",{enumerable:!0,get:a(function(){return vd.resetContainer},"get")});Object.defineProperty(m,"container",{enumerable:!0,get:a(function(){return vd.container},"get")});var Io=NO();Object.defineProperty(m,"NODE_FLAGS",{enumerable:!0,get:a(function(){return Io.NODE_FLAGS},"get")});Object.defineProperty(m,"DEFAULT_COLORS",{enumerable:!0,get:a(function(){return Io.DEFAULT_COLORS},"get")});Object.defineProperty(m,"StringTable",{enumerable:!0,get:a(function(){return Io.StringTable},"get")});Object.defineProperty(m,"CompactGraphStore",{enumerable:!0,get:a(function(){return Io.CompactGraphStore},"get")});Object.defineProperty(m,"MemoryPool",{enumerable:!0,get:a(function(){return Io.MemoryPool},"get")});Object.defineProperty(m,"getGlobalPool",{enumerable:!0,get:a(function(){return Io.getGlobalPool},"get")});Object.defineProperty(m,"resetGlobalPool",{enumerable:!0,get:a(function(){return Io.resetGlobalPool},"get")});Object.defineProperty(m,"StreamingLoader",{enumerable:!0,get:a(function(){return Io.StreamingLoader},"get")});Object.defineProperty(m,"createStreamingSource",{enumerable:!0,get:a(function(){return Io.createStreamingSource},"get")});var mF=kO();Object.defineProperty(m,"ExoQL",{enumerable:!0,get:a(function(){return mF.ExoQL},"get")});Object.defineProperty(m,"ExoQLError",{enumerable:!0,get:a(function(){return mF.ExoQLError},"get")});var Ed=IE();Object.defineProperty(m,"LAYOUT_CLASS_IRI",{enumerable:!0,get:a(function(){return Ed.LAYOUT_CLASS_IRI},"get")});Object.defineProperty(m,"LAYOUT_CLASS_UID",{enumerable:!0,get:a(function(){return Ed.LAYOUT_CLASS_UID},"get")});Object.defineProperty(m,"createLayoutFromFrontmatter",{enumerable:!0,get:a(function(){return Ed.createLayoutFromFrontmatter},"get")});Object.defineProperty(m,"isLayout",{enumerable:!0,get:a(function(){return Ed.isLayout},"get")});Object.defineProperty(m,"isLayoutFrontmatter",{enumerable:!0,get:a(function(){return Ed.isLayoutFrontmatter},"get")});var ba=IE();Object.defineProperty(m,"BACKLINKS_TABLE_BLOCK_CLASS_IRI",{enumerable:!0,get:a(function(){return ba.BACKLINKS_TABLE_BLOCK_CLASS_IRI},"get")});Object.defineProperty(m,"BACKLINKS_TABLE_BLOCK_CLASS_UID",{enumerable:!0,get:a(function(){return ba.BACKLINKS_TABLE_BLOCK_CLASS_UID},"get")});Object.defineProperty(m,"PROPERTIES_BLOCK_CLASS_IRI",{enumerable:!0,get:a(function(){return ba.PROPERTIES_BLOCK_CLASS_IRI},"get")});Object.defineProperty(m,"PROPERTIES_BLOCK_CLASS_UID",{enumerable:!0,get:a(function(){return ba.PROPERTIES_BLOCK_CLASS_UID},"get")});Object.defineProperty(m,"createLayoutBlockFromFrontmatter",{enumerable:!0,get:a(function(){return ba.createLayoutBlockFromFrontmatter},"get")});Object.defineProperty(m,"isBacklinksTableBlock",{enumerable:!0,get:a(function(){return ba.isBacklinksTableBlock},"get")});Object.defineProperty(m,"isLayoutBlockFrontmatter",{enumerable:!0,get:a(function(){return ba.isLayoutBlockFrontmatter},"get")});Object.defineProperty(m,"isPropertiesBlock",{enumerable:!0,get:a(function(){return ba.isPropertiesBlock},"get")});var gF=qO();Object.defineProperty(m,"LayoutSelector",{enumerable:!0,get:a(function(){return gF.LayoutSelector},"get")});Object.defineProperty(m,"selectByPriority",{enumerable:!0,get:a(function(){return gF.selectByPriority},"get")});fi(JO(),m);var cY=BE();Object.defineProperty(m,"ShapeLoader",{enumerable:!0,get:a(function(){return cY.ShapeLoader},"get")});var lY=jE();Object.defineProperty(m,"ShapeRegistry",{enumerable:!0,get:a(function(){return lY.ShapeRegistry},"get")});var uY=Ht();Object.defineProperty(m,"Namespace",{enumerable:!0,get:a(function(){return uY.Namespace},"get")});var yF=ay();Object.defineProperty(m,"shaclValidate",{enumerable:!0,get:a(function(){return yF.validate},"get")});Object.defineProperty(m,"ShaclShapeRegistry",{enumerable:!0,get:a(function(){return yF.ShapeRegistry},"get")});fi(eP(),m);var UT=rP();Object.defineProperty(m,"ValidatorDaemon",{enumerable:!0,get:a(function(){return UT.ValidatorDaemon},"get")});Object.defineProperty(m,"DEFAULT_SOCKET_PATH",{enumerable:!0,get:a(function(){return UT.DEFAULT_SOCKET_PATH},"get")});Object.defineProperty(m,"IDLE_TIMEOUT_MS",{enumerable:!0,get:a(function(){return UT.IDLE_TIMEOUT_MS},"get")});var fY=zE();Object.defineProperty(m,"TripleClassHierarchy",{enumerable:!0,get:a(function(){return fY.ClassHierarchy},"get")});var bF=YE();Object.defineProperty(m,"parseTarball",{enumerable:!0,get:a(function(){return bF.parseTarball},"get")});Object.defineProperty(m,"parseTarballGzip",{enumerable:!0,get:a(function(){return bF.parseTarballGzip},"get")});var _F=hy();Object.defineProperty(m,"restCreateCommit",{enumerable:!0,get:a(function(){return _F.restCreateCommit},"get")});Object.defineProperty(m,"isBinaryPayload",{enumerable:!0,get:a(function(){return _F.isBinaryPayload},"get")});var fu=lP();Object.defineProperty(m,"mountAssetSpaceFiles",{enumerable:!0,get:a(function(){return fu.mountAssetSpaceFiles},"get")});Object.defineProperty(m,"discoverAssetSpaceWrapperDir",{enumerable:!0,get:a(function(){return fu.discoverWrapperDir},"get")});Object.defineProperty(m,"extractAssetSpaceSha",{enumerable:!0,get:a(function(){return fu.extractShaFromWrapper},"get")});Object.defineProperty(m,"appendGitmodulesEntry",{enumerable:!0,get:a(function(){return fu.appendGitmodulesEntry},"get")});Object.defineProperty(m,"stripGitmodulesEntry",{enumerable:!0,get:a(function(){return fu.stripGitmodulesEntry},"get")});Object.defineProperty(m,"escapeGitmodulesRegex",{enumerable:!0,get:a(function(){return fu.escapeGitmodulesRegex},"get")});var wF=gy();Object.defineProperty(m,"detectChanges",{enumerable:!0,get:a(function(){return wF.detectChanges},"get")});Object.defineProperty(m,"extractAssetUid",{enumerable:!0,get:a(function(){return wF.extractAssetUid},"get")});var dY=iu();Object.defineProperty(m,"gitBlobSha",{enumerable:!0,get:a(function(){return dY.gitBlobSha},"get")});var Td=ld();Object.defineProperty(m,"getBlobBytes",{enumerable:!0,get:a(function(){return Td.getBlobBytes},"get")});Object.defineProperty(m,"getBlobText",{enumerable:!0,get:a(function(){return Td.getBlobText},"get")});Object.defineProperty(m,"getCommitInfo",{enumerable:!0,get:a(function(){return Td.getCommitInfo},"get")});Object.defineProperty(m,"getHeadSha",{enumerable:!0,get:a(function(){return Td.getHeadSha},"get")});Object.defineProperty(m,"getTree",{enumerable:!0,get:a(function(){return Td.getTree},"get")});var Ad=TP();Object.defineProperty(m,"DEFAULT_MAX_PUSH_RETRIES",{enumerable:!0,get:a(function(){return Ad.DEFAULT_MAX_PUSH_RETRIES},"get")});Object.defineProperty(m,"DEFAULT_LOCAL_MANIFEST_REHASH_MS",{enumerable:!0,get:a(function(){return Ad.DEFAULT_LOCAL_MANIFEST_REHASH_MS},"get")});Object.defineProperty(m,"SyncEngine",{enumerable:!0,get:a(function(){return Ad.SyncEngine},"get")});Object.defineProperty(m,"isNonFastForwardError",{enumerable:!0,get:a(function(){return Ad.isNonFastForwardError},"get")});Object.defineProperty(m,"orderChildrenFirst",{enumerable:!0,get:a(function(){return Ad.orderChildrenFirst},"get")});var Yi=iT();Object.defineProperty(m,"SyncPhaseTimer",{enumerable:!0,get:a(function(){return Yi.SyncPhaseTimer},"get")});Object.defineProperty(m,"SYNC_PHASES",{enumerable:!0,get:a(function(){return Yi.SYNC_PHASES},"get")});Object.defineProperty(m,"classifyRestPhase",{enumerable:!0,get:a(function(){return Yi.classifyRestPhase},"get")});Object.defineProperty(m,"emptyTimings",{enumerable:!0,get:a(function(){return Yi.emptyTimings},"get")});Object.defineProperty(m,"addTimings",{enumerable:!0,get:a(function(){return Yi.addTimings},"get")});Object.defineProperty(m,"aggregateTimings",{enumerable:!0,get:a(function(){return Yi.aggregateTimings},"get")});Object.defineProperty(m,"totalMs",{enumerable:!0,get:a(function(){return Yi.totalMs},"get")});Object.defineProperty(m,"dominantPhase",{enumerable:!0,get:a(function(){return Yi.dominantPhase},"get")});Object.defineProperty(m,"fmtMs",{enumerable:!0,get:a(function(){return Yi.fmtMs},"get")});Object.defineProperty(m,"formatTimingsLine",{enumerable:!0,get:a(function(){return Yi.formatTimingsLine},"get")});Object.defineProperty(m,"formatRepoTimings",{enumerable:!0,get:a(function(){return Yi.formatRepoTimings},"get")});var SF=xP();Object.defineProperty(m,"QuarantineResolver",{enumerable:!0,get:a(function(){return SF.QuarantineResolver},"get")});Object.defineProperty(m,"backupPathFor",{enumerable:!0,get:a(function(){return SF.backupPathFor},"get")});var xd=Ey();Object.defineProperty(m,"DEFAULT_MAX_FILE_BYTES",{enumerable:!0,get:a(function(){return xd.DEFAULT_MAX_FILE_BYTES},"get")});Object.defineProperty(m,"InMemoryQuarantineStore",{enumerable:!0,get:a(function(){return xd.InMemoryQuarantineStore},"get")});Object.defineProperty(m,"contentEquals",{enumerable:!0,get:a(function(){return xd.contentEquals},"get")});Object.defineProperty(m,"isFileSpaceSyncablePath",{enumerable:!0,get:a(function(){return xd.isFileSpaceSyncablePath},"get")});Object.defineProperty(m,"isSyncablePath",{enumerable:!0,get:a(function(){return xd.isSyncablePath},"get")});var vF=IP();Object.defineProperty(m,"FileLocalManifestStore",{enumerable:!0,get:a(function(){return vF.FileLocalManifestStore},"get")});Object.defineProperty(m,"LOCAL_MANIFEST_STORE_FILENAME",{enumerable:!0,get:a(function(){return vF.LOCAL_MANIFEST_STORE_FILENAME},"get")});var hY=yT();Object.defineProperty(m,"diff3",{enumerable:!0,get:a(function(){return hY.diff3},"get")});var EF=OP();Object.defineProperty(m,"StructuredMerger",{enumerable:!0,get:a(function(){return EF.StructuredMerger},"get")});Object.defineProperty(m,"splitSections",{enumerable:!0,get:a(function(){return EF.splitSections},"get")});var pY=PP();Object.defineProperty(m,"MergeShaclGate",{enumerable:!0,get:a(function(){return pY.MergeShaclGate},"get")});var mY=FP();Object.defineProperty(m,"GatedStructuredMerger",{enumerable:!0,get:a(function(){return mY.GatedStructuredMerger},"get")});var TF=DP();Object.defineProperty(m,"FileWatermarkStore",{enumerable:!0,get:a(function(){return TF.FileWatermarkStore},"get")});Object.defineProperty(m,"WATERMARK_STORE_FILENAME",{enumerable:!0,get:a(function(){return TF.WATERMARK_STORE_FILENAME},"get")});var AF=LP();Object.defineProperty(m,"FileMountBaseStore",{enumerable:!0,get:a(function(){return AF.FileMountBaseStore},"get")});Object.defineProperty(m,"MOUNT_BASE_STORE_FILENAME",{enumerable:!0,get:a(function(){return AF.MOUNT_BASE_STORE_FILENAME},"get")});var gY=_y();Object.defineProperty(m,"isAuthError",{enumerable:!0,get:a(function(){return gY.isAuthError},"get")});var xF=vy();Object.defineProperty(m,"isRateLimitError",{enumerable:!0,get:a(function(){return xF.isRateLimitError},"get")});Object.defineProperty(m,"withRateLimitBackoff",{enumerable:!0,get:a(function(){return xF.withRateLimitBackoff},"get")});var IF=cT();Object.defineProperty(m,"redactSecrets",{enumerable:!0,get:a(function(){return IF.redactSecrets},"get")});Object.defineProperty(m,"scanForSecrets",{enumerable:!0,get:a(function(){return IF.scanForSecrets},"get")});var RF=NP();Object.defineProperty(m,"LocalConflictCacheStore",{enumerable:!0,get:a(function(){return RF.LocalConflictCacheStore},"get")});Object.defineProperty(m,"CONFLICT_CACHE_STORE_FILENAME",{enumerable:!0,get:a(function(){return RF.CONFLICT_CACHE_STORE_FILENAME},"get")});var BT=by();Object.defineProperty(m,"LocalOutboxStore",{enumerable:!0,get:a(function(){return BT.LocalOutboxStore},"get")});Object.defineProperty(m,"OUTBOX_STORE_FILENAME",{enumerable:!0,get:a(function(){return BT.OUTBOX_STORE_FILENAME},"get")});Object.defineProperty(m,"OUTBOX_REMOTE_ABSENT",{enumerable:!0,get:a(function(){return BT.OUTBOX_REMOTE_ABSENT},"get")});var _a=VP();Object.defineProperty(m,"ASSET_SPACE_CLASS_UID",{enumerable:!0,get:a(function(){return _a.ASSET_SPACE_CLASS_UID},"get")});Object.defineProperty(m,"SYNC_BRANCH",{enumerable:!0,get:a(function(){return _a.SYNC_BRANCH},"get")});Object.defineProperty(m,"SpaceSpecAccumulator",{enumerable:!0,get:a(function(){return _a.SpaceSpecAccumulator},"get")});Object.defineProperty(m,"classifySpaceDeclaration",{enumerable:!0,get:a(function(){return _a.classifySpaceDeclaration},"get")});Object.defineProperty(m,"isAssetSpaceFrontmatter",{enumerable:!0,get:a(function(){return _a.isAssetSpaceFrontmatter},"get")});Object.defineProperty(m,"isFileSpaceFrontmatter",{enumerable:!0,get:a(function(){return _a.isFileSpaceFrontmatter},"get")});Object.defineProperty(m,"parseStrictGitHubRepoURL",{enumerable:!0,get:a(function(){return _a.parseStrictGitHubRepoURL},"get")});Object.defineProperty(m,"readSpaceSource",{enumerable:!0,get:a(function(){return _a.readSpaceSource},"get")});var CF=KP();Object.defineProperty(m,"ParityValidator",{enumerable:!0,get:a(function(){return CF.ParityValidator},"get")});Object.defineProperty(m,"summarizeParityRound",{enumerable:!0,get:a(function(){return CF.summarizeParityRound},"get")});var OF=PT();Object.defineProperty(m,"compareAssetSemantics",{enumerable:!0,get:a(function(){return OF.compareAssetSemantics},"get")});Object.defineProperty(m,"isFormatOnlyDrift",{enumerable:!0,get:a(function(){return OF.isFormatOnlyDrift},"get")})});var Cr=v(VT=>{"use strict";VT.fromCallback=function(n){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")n.apply(this,e);else return new Promise((t,r)=>{e.push((i,s)=>i!=null?r(i):t(s)),n.apply(this,e)})},"name",{value:n.name})};VT.fromPromise=function(n){return Object.defineProperty(function(...e){let t=e[e.length-1];if(typeof t!="function")return n.apply(this,e);e.pop(),n.apply(this,e).then(r=>t(null,r),t)},"name",{value:n.name})}});var FF=v((w0e,PF)=>{var wa=require("constants"),yY=process.cwd,Ly=null,bY=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return Ly||(Ly=yY.call(process)),Ly};try{process.cwd()}catch{}typeof process.chdir=="function"&&(qT=process.chdir,process.chdir=function(n){Ly=null,qT.call(process,n)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,qT));var qT;PF.exports=_Y;function _Y(n){wa.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&e(n),n.lutimes||t(n),n.chown=s(n.chown),n.fchown=s(n.fchown),n.lchown=s(n.lchown),n.chmod=r(n.chmod),n.fchmod=r(n.fchmod),n.lchmod=r(n.lchmod),n.chownSync=o(n.chownSync),n.fchownSync=o(n.fchownSync),n.lchownSync=o(n.lchownSync),n.chmodSync=i(n.chmodSync),n.fchmodSync=i(n.fchmodSync),n.lchmodSync=i(n.lchmodSync),n.stat=c(n.stat),n.fstat=c(n.fstat),n.lstat=c(n.lstat),n.statSync=l(n.statSync),n.fstatSync=l(n.fstatSync),n.lstatSync=l(n.lstatSync),n.chmod&&!n.lchmod&&(n.lchmod=function(f,d,h){h&&process.nextTick(h)},n.lchmodSync=function(){}),n.chown&&!n.lchown&&(n.lchown=function(f,d,h,p){p&&process.nextTick(p)},n.lchownSync=function(){}),bY==="win32"&&(n.rename=typeof n.rename!="function"?n.rename:(function(f){function d(h,p,y){var g=Date.now(),b=0;f(h,p,a(function _(S){if(S&&(S.code==="EACCES"||S.code==="EPERM"||S.code==="EBUSY")&&Date.now()-g<6e4){setTimeout(function(){n.stat(p,function(x,A){x&&x.code==="ENOENT"?f(h,p,_):y(S)})},b),b<100&&(b+=10);return}y&&y(S)},"CB"))}return a(d,"rename"),Object.setPrototypeOf&&Object.setPrototypeOf(d,f),d})(n.rename)),n.read=typeof n.read!="function"?n.read:(function(f){function d(h,p,y,g,b,_){var S;if(_&&typeof _=="function"){var x=0;S=a(function(A,T,R){if(A&&A.code==="EAGAIN"&&x<10)return x++,f.call(n,h,p,y,g,b,S);_.apply(this,arguments)},"callback")}return f.call(n,h,p,y,g,b,S)}return a(d,"read"),Object.setPrototypeOf&&Object.setPrototypeOf(d,f),d})(n.read),n.readSync=typeof n.readSync!="function"?n.readSync:(function(f){return function(d,h,p,y,g){for(var b=0;;)try{return f.call(n,d,h,p,y,g)}catch(_){if(_.code==="EAGAIN"&&b<10){b++;continue}throw _}}})(n.readSync);function e(f){f.lchmod=function(d,h,p){f.open(d,wa.O_WRONLY|wa.O_SYMLINK,h,function(y,g){if(y){p&&p(y);return}f.fchmod(g,h,function(b){f.close(g,function(_){p&&p(b||_)})})})},f.lchmodSync=function(d,h){var p=f.openSync(d,wa.O_WRONLY|wa.O_SYMLINK,h),y=!0,g;try{g=f.fchmodSync(p,h),y=!1}finally{if(y)try{f.closeSync(p)}catch{}else f.closeSync(p)}return g}}a(e,"patchLchmod");function t(f){wa.hasOwnProperty("O_SYMLINK")&&f.futimes?(f.lutimes=function(d,h,p,y){f.open(d,wa.O_SYMLINK,function(g,b){if(g){y&&y(g);return}f.futimes(b,h,p,function(_){f.close(b,function(S){y&&y(_||S)})})})},f.lutimesSync=function(d,h,p){var y=f.openSync(d,wa.O_SYMLINK),g,b=!0;try{g=f.futimesSync(y,h,p),b=!1}finally{if(b)try{f.closeSync(y)}catch{}else f.closeSync(y)}return g}):f.futimes&&(f.lutimes=function(d,h,p,y){y&&process.nextTick(y)},f.lutimesSync=function(){})}a(t,"patchLutimes");function r(f){return f&&function(d,h,p){return f.call(n,d,h,function(y){u(y)&&(y=null),p&&p.apply(this,arguments)})}}a(r,"chmodFix");function i(f){return f&&function(d,h){try{return f.call(n,d,h)}catch(p){if(!u(p))throw p}}}a(i,"chmodFixSync");function s(f){return f&&function(d,h,p,y){return f.call(n,d,h,p,function(g){u(g)&&(g=null),y&&y.apply(this,arguments)})}}a(s,"chownFix");function o(f){return f&&function(d,h,p){try{return f.call(n,d,h,p)}catch(y){if(!u(y))throw y}}}a(o,"chownFixSync");function c(f){return f&&function(d,h,p){typeof h=="function"&&(p=h,h=null);function y(g,b){b&&(b.uid<0&&(b.uid+=4294967296),b.gid<0&&(b.gid+=4294967296)),p&&p.apply(this,arguments)}return a(y,"callback"),h?f.call(n,d,h,y):f.call(n,d,y)}}a(c,"statFix");function l(f){return f&&function(d,h){var p=h?f.call(n,d,h):f.call(n,d);return p&&(p.uid<0&&(p.uid+=4294967296),p.gid<0&&(p.gid+=4294967296)),p}}a(l,"statFixSync");function u(f){if(!f||f.code==="ENOSYS")return!0;var d=!process.getuid||process.getuid()!==0;return!!(d&&(f.code==="EINVAL"||f.code==="EPERM"))}a(u,"chownErOk")}a(_Y,"patch")});var NF=v((v0e,LF)=>{var DF=require("stream").Stream;LF.exports=wY;function wY(n){return{ReadStream:e,WriteStream:t};function e(r,i){if(!(this instanceof e))return new e(r,i);DF.call(this);var s=this;this.path=r,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,i=i||{};for(var o=Object.keys(i),c=0,l=o.length;c<l;c++){var u=o[c];this[u]=i[u]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!="number")throw TypeError("end must be a Number");if(this.start>this.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){s._read()});return}n.open(this.path,this.flags,this.mode,function(f,d){if(f){s.emit("error",f),s.readable=!1;return}s.fd=d,s.emit("open",d),s._read()})}function t(r,i){if(!(this instanceof t))return new t(r,i);DF.call(this),this.path=r,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,i=i||{};for(var s=Object.keys(i),o=0,c=s.length;o<c;o++){var l=s[o];this[l]=i[l]}if(this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.start<0)throw new Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=n.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}a(wY,"legacy")});var MF=v((T0e,kF)=>{"use strict";kF.exports=vY;var SY=Object.getPrototypeOf||function(n){return n.__proto__};function vY(n){if(n===null||typeof n!="object")return n;if(n instanceof Object)var e={__proto__:SY(n)};else var e=Object.create(null);return Object.getOwnPropertyNames(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}a(vY,"clone")});var hu=v((x0e,HT)=>{var Vt=require("fs"),EY=FF(),TY=NF(),AY=MF(),Ny=require("util"),Gr,My;typeof Symbol=="function"&&typeof Symbol.for=="function"?(Gr=Symbol.for("graceful-fs.queue"),My=Symbol.for("graceful-fs.previous")):(Gr="___graceful-fs.queue",My="___graceful-fs.previous");function xY(){}a(xY,"noop");function UF(n,e){Object.defineProperty(n,Gr,{get:a(function(){return e},"get")})}a(UF,"publishQueue");var Ec=xY;Ny.debuglog?Ec=Ny.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(Ec=a(function(){var n=Ny.format.apply(Ny,arguments);n="GFS4: "+n.split(/\n/).join(`
327
327
  GFS4: `),console.error(n)},"debug"));Vt[Gr]||(jF=global[Gr]||[],UF(Vt,jF),Vt.close=(function(n){function e(t,r){return n.call(Vt,t,function(i){i||$F(),typeof r=="function"&&r.apply(this,arguments)})}return a(e,"close"),Object.defineProperty(e,My,{value:n}),e})(Vt.close),Vt.closeSync=(function(n){function e(t){n.apply(Vt,arguments),$F()}return a(e,"closeSync"),Object.defineProperty(e,My,{value:n}),e})(Vt.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){Ec(Vt[Gr]),require("assert").equal(Vt[Gr].length,0)}));var jF;global[Gr]||UF(global,Vt[Gr]);HT.exports=GT(AY(Vt));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!Vt.__patched&&(HT.exports=GT(Vt),Vt.__patched=!0);function GT(n){EY(n),n.gracefulify=GT,n.createReadStream=T,n.createWriteStream=R;var e=n.readFile;n.readFile=t;function t(O,M,$){return typeof M=="function"&&($=M,M=null),Z(O,M,$);function Z(ue,X,_e,le){return e(ue,X,function(fe){fe&&(fe.code==="EMFILE"||fe.code==="ENFILE")?du([Z,[ue,X,_e],fe,le||Date.now(),Date.now()]):typeof _e=="function"&&_e.apply(this,arguments)})}a(Z,"go$readFile")}a(t,"readFile");var r=n.writeFile;n.writeFile=i;function i(O,M,$,Z){return typeof $=="function"&&(Z=$,$=null),ue(O,M,$,Z);function ue(X,_e,le,fe,N){return r(X,_e,le,function(W){W&&(W.code==="EMFILE"||W.code==="ENFILE")?du([ue,[X,_e,le,fe],W,N||Date.now(),Date.now()]):typeof fe=="function"&&fe.apply(this,arguments)})}a(ue,"go$writeFile")}a(i,"writeFile");var s=n.appendFile;s&&(n.appendFile=o);function o(O,M,$,Z){return typeof $=="function"&&(Z=$,$=null),ue(O,M,$,Z);function ue(X,_e,le,fe,N){return s(X,_e,le,function(W){W&&(W.code==="EMFILE"||W.code==="ENFILE")?du([ue,[X,_e,le,fe],W,N||Date.now(),Date.now()]):typeof fe=="function"&&fe.apply(this,arguments)})}a(ue,"go$appendFile")}a(o,"appendFile");var c=n.copyFile;c&&(n.copyFile=l);function l(O,M,$,Z){return typeof $=="function"&&(Z=$,$=0),ue(O,M,$,Z);function ue(X,_e,le,fe,N){return c(X,_e,le,function(W){W&&(W.code==="EMFILE"||W.code==="ENFILE")?du([ue,[X,_e,le,fe],W,N||Date.now(),Date.now()]):typeof fe=="function"&&fe.apply(this,arguments)})}a(ue,"go$copyFile")}a(l,"copyFile");var u=n.readdir;n.readdir=d;var f=/^v[0-5]\./;function d(O,M,$){typeof M=="function"&&($=M,M=null);var Z=f.test(process.version)?a(function(_e,le,fe,N){return u(_e,ue(_e,le,fe,N))},"go$readdir"):a(function(_e,le,fe,N){return u(_e,le,ue(_e,le,fe,N))},"go$readdir");return Z(O,M,$);function ue(X,_e,le,fe){return function(N,W){N&&(N.code==="EMFILE"||N.code==="ENFILE")?du([Z,[X,_e,le],N,fe||Date.now(),Date.now()]):(W&&W.sort&&W.sort(),typeof le=="function"&&le.call(this,N,W))}}}if(a(d,"readdir"),process.version.substr(0,4)==="v0.8"){var h=TY(n);_=h.ReadStream,x=h.WriteStream}var p=n.ReadStream;p&&(_.prototype=Object.create(p.prototype),_.prototype.open=S);var y=n.WriteStream;y&&(x.prototype=Object.create(y.prototype),x.prototype.open=A),Object.defineProperty(n,"ReadStream",{get:a(function(){return _},"get"),set:a(function(O){_=O},"set"),enumerable:!0,configurable:!0}),Object.defineProperty(n,"WriteStream",{get:a(function(){return x},"get"),set:a(function(O){x=O},"set"),enumerable:!0,configurable:!0});var g=_;Object.defineProperty(n,"FileReadStream",{get:a(function(){return g},"get"),set:a(function(O){g=O},"set"),enumerable:!0,configurable:!0});var b=x;Object.defineProperty(n,"FileWriteStream",{get:a(function(){return b},"get"),set:a(function(O){b=O},"set"),enumerable:!0,configurable:!0});function _(O,M){return this instanceof _?(p.apply(this,arguments),this):_.apply(Object.create(_.prototype),arguments)}a(_,"ReadStream");function S(){var O=this;D(O.path,O.flags,O.mode,function(M,$){M?(O.autoClose&&O.destroy(),O.emit("error",M)):(O.fd=$,O.emit("open",$),O.read())})}a(S,"ReadStream$open");function x(O,M){return this instanceof x?(y.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}a(x,"WriteStream");function A(){var O=this;D(O.path,O.flags,O.mode,function(M,$){M?(O.destroy(),O.emit("error",M)):(O.fd=$,O.emit("open",$))})}a(A,"WriteStream$open");function T(O,M){return new n.ReadStream(O,M)}a(T,"createReadStream");function R(O,M){return new n.WriteStream(O,M)}a(R,"createWriteStream");var B=n.open;n.open=D;function D(O,M,$,Z){return typeof $=="function"&&(Z=$,$=null),ue(O,M,$,Z);function ue(X,_e,le,fe,N){return B(X,_e,le,function(W,$e){W&&(W.code==="EMFILE"||W.code==="ENFILE")?du([ue,[X,_e,le,fe],W,N||Date.now(),Date.now()]):typeof fe=="function"&&fe.apply(this,arguments)})}a(ue,"go$open")}return a(D,"open"),n}a(GT,"patch");function du(n){Ec("ENQUEUE",n[0].name,n[1]),Vt[Gr].push(n),WT()}a(du,"enqueue");var ky;function $F(){for(var n=Date.now(),e=0;e<Vt[Gr].length;++e)Vt[Gr][e].length>2&&(Vt[Gr][e][3]=n,Vt[Gr][e][4]=n);WT()}a($F,"resetQueue");function WT(){if(clearTimeout(ky),ky=void 0,Vt[Gr].length!==0){var n=Vt[Gr].shift(),e=n[0],t=n[1],r=n[2],i=n[3],s=n[4];if(i===void 0)Ec("RETRY",e.name,t),e.apply(null,t);else if(Date.now()-i>=6e4){Ec("TIMEOUT",e.name,t);var o=t.pop();typeof o=="function"&&o.call(null,r)}else{var c=Date.now()-s,l=Math.max(s-i,1),u=Math.min(l*1.2,100);c>=u?(Ec("RETRY",e.name,t),e.apply(null,t.concat([i]))):Vt[Gr].push(n)}ky===void 0&&(ky=setTimeout(WT,0))}}a(WT,"retry")});var _n=v(Ro=>{"use strict";var BF=Cr().fromCallback,bn=hu(),IY=["access","appendFile","chmod","chown","close","copyFile","cp","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","glob","lchmod","lchown","lutimes","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","statfs","symlink","truncate","unlink","utimes","writeFile"].filter(n=>typeof bn[n]=="function");Object.assign(Ro,bn);IY.forEach(n=>{Ro[n]=BF(bn[n])});Ro.exists=function(n,e){return typeof e=="function"?bn.exists(n,e):new Promise(t=>bn.exists(n,t))};Ro.read=function(n,e,t,r,i,s){return typeof s=="function"?bn.read(n,e,t,r,i,s):new Promise((o,c)=>{bn.read(n,e,t,r,i,(l,u,f)=>{if(l)return c(l);o({bytesRead:u,buffer:f})})})};Ro.write=function(n,e,...t){return typeof t[t.length-1]=="function"?bn.write(n,e,...t):new Promise((r,i)=>{bn.write(n,e,...t,(s,o,c)=>{if(s)return i(s);r({bytesWritten:o,buffer:c})})})};Ro.readv=function(n,e,...t){return typeof t[t.length-1]=="function"?bn.readv(n,e,...t):new Promise((r,i)=>{bn.readv(n,e,...t,(s,o,c)=>{if(s)return i(s);r({bytesRead:o,buffers:c})})})};Ro.writev=function(n,e,...t){return typeof t[t.length-1]=="function"?bn.writev(n,e,...t):new Promise((r,i)=>{bn.writev(n,e,...t,(s,o,c)=>{if(s)return i(s);r({bytesWritten:o,buffers:c})})})};typeof bn.realpath.native=="function"?Ro.realpath.native=BF(bn.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var qF=v((C0e,VF)=>{"use strict";var RY=require("path");VF.exports.checkPath=a(function(e){if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(RY.parse(e).root,""))){let r=new Error(`Path contains invalid characters: ${e}`);throw r.code="EINVAL",r}},"checkPath")});var zF=v((P0e,zT)=>{"use strict";var GF=_n(),{checkPath:WF}=qF(),HF=a(n=>{let e={mode:511};return typeof n=="number"?n:{...e,...n}.mode},"getMode");zT.exports.makeDir=async(n,e)=>(WF(n),GF.mkdir(n,{mode:HF(e),recursive:!0}));zT.exports.makeDirSync=(n,e)=>(WF(n),GF.mkdirSync(n,{mode:HF(e),recursive:!0}))});var Qi=v((D0e,KF)=>{"use strict";var CY=Cr().fromPromise,{makeDir:OY,makeDirSync:KT}=zF(),XT=CY(OY);KF.exports={mkdirs:XT,mkdirsSync:KT,mkdirp:XT,mkdirpSync:KT,ensureDir:XT,ensureDirSync:KT}});var Sa=v((L0e,YF)=>{"use strict";var PY=Cr().fromPromise,XF=_n();function FY(n){return XF.access(n).then(()=>!0).catch(()=>!1)}a(FY,"pathExists");YF.exports={pathExists:PY(FY),pathExistsSync:XF.existsSync}});var YT=v((k0e,QF)=>{"use strict";var pu=_n(),DY=Cr().fromPromise;async function LY(n,e,t){let r=await pu.open(n,"r+"),i=null;try{await pu.futimes(r,e,t)}finally{try{await pu.close(r)}catch(s){i=s}}if(i)throw i}a(LY,"utimesMillis");function NY(n,e,t){let r=pu.openSync(n,"r+");return pu.futimesSync(r,e,t),pu.closeSync(r)}a(NY,"utimesMillisSync");QF.exports={utimesMillis:DY(LY),utimesMillisSync:NY}});var Tc=v((j0e,tD)=>{"use strict";var mu=_n(),Or=require("path"),JF=Cr().fromPromise;function kY(n,e,t){let r=t.dereference?i=>mu.stat(i,{bigint:!0}):i=>mu.lstat(i,{bigint:!0});return Promise.all([r(n),r(e).catch(i=>{if(i.code==="ENOENT")return null;throw i})]).then(([i,s])=>({srcStat:i,destStat:s}))}a(kY,"getStats");function MY(n,e,t){let r,i=t.dereference?o=>mu.statSync(o,{bigint:!0}):o=>mu.lstatSync(o,{bigint:!0}),s=i(n);try{r=i(e)}catch(o){if(o.code==="ENOENT")return{srcStat:s,destStat:null};throw o}return{srcStat:s,destStat:r}}a(MY,"getStatsSync");async function jY(n,e,t,r){let{srcStat:i,destStat:s}=await kY(n,e,r);if(s){if(Id(i,s)){let o=Or.basename(n),c=Or.basename(e);if(t==="move"&&o!==c&&o.toLowerCase()===c.toLowerCase())return{srcStat:i,destStat:s,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!s.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${n}'.`);if(!i.isDirectory()&&s.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${n}'.`)}if(i.isDirectory()&&QT(n,e))throw new Error(jy(n,e,t));return{srcStat:i,destStat:s}}a(jY,"checkPaths");function $Y(n,e,t,r){let{srcStat:i,destStat:s}=MY(n,e,r);if(s){if(Id(i,s)){let o=Or.basename(n),c=Or.basename(e);if(t==="move"&&o!==c&&o.toLowerCase()===c.toLowerCase())return{srcStat:i,destStat:s,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!s.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${n}'.`);if(!i.isDirectory()&&s.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${n}'.`)}if(i.isDirectory()&&QT(n,e))throw new Error(jy(n,e,t));return{srcStat:i,destStat:s}}a($Y,"checkPathsSync");async function ZF(n,e,t,r){let i=Or.resolve(Or.dirname(n)),s=Or.resolve(Or.dirname(t));if(s===i||s===Or.parse(s).root)return;let o;try{o=await mu.stat(s,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(Id(e,o))throw new Error(jy(n,t,r));return ZF(n,e,s,r)}a(ZF,"checkParentPaths");function eD(n,e,t,r){let i=Or.resolve(Or.dirname(n)),s=Or.resolve(Or.dirname(t));if(s===i||s===Or.parse(s).root)return;let o;try{o=mu.statSync(s,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(Id(e,o))throw new Error(jy(n,t,r));return eD(n,e,s,r)}a(eD,"checkParentPathsSync");function Id(n,e){return e.ino!==void 0&&e.dev!==void 0&&e.ino===n.ino&&e.dev===n.dev}a(Id,"areIdentical");function QT(n,e){let t=Or.resolve(n).split(Or.sep).filter(i=>i),r=Or.resolve(e).split(Or.sep).filter(i=>i);return t.every((i,s)=>r[s]===i)}a(QT,"isSrcSubdir");function jy(n,e,t){return`Cannot ${t} '${n}' to a subdirectory of itself, '${e}'.`}a(jy,"errMsg");tD.exports={checkPaths:JF(jY),checkPathsSync:$Y,checkParentPaths:JF(ZF),checkParentPathsSync:eD,isSrcSubdir:QT,areIdentical:Id}});var nD=v((U0e,rD)=>{"use strict";async function UY(n,e){let t=[];for await(let r of n)t.push(e(r).then(()=>null,i=>i??new Error("unknown error")));await Promise.all(t.map(r=>r.then(i=>{if(i!==null)throw i})))}a(UY,"asyncIteratorConcurrentProcess");rD.exports={asyncIteratorConcurrentProcess:UY}});var cD=v((V0e,aD)=>{"use strict";var tn=_n(),Rd=require("path"),{mkdirs:BY}=Qi(),{pathExists:VY}=Sa(),{utimesMillis:qY}=YT(),Cd=Tc(),{asyncIteratorConcurrentProcess:GY}=nD();async function WY(n,e,t={}){typeof t=="function"&&(t={filter:t}),t.clobber="clobber"in t?!!t.clobber:!0,t.overwrite="overwrite"in t?!!t.overwrite:t.clobber,t.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
328
328
 
329
329
  see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001");let{srcStat:r,destStat:i}=await Cd.checkPaths(n,e,"copy",t);if(await Cd.checkParentPaths(n,r,e,"copy"),!await sD(n,e,t))return;let o=Rd.dirname(e);await VY(o)||await BY(o),await oD(i,n,e,t)}a(WY,"copy");async function sD(n,e,t){return t.filter?t.filter(n,e):!0}a(sD,"runFilter");async function oD(n,e,t,r){let s=await(r.dereference?tn.stat:tn.lstat)(e);if(s.isDirectory())return XY(s,n,e,t,r);if(s.isFile()||s.isCharacterDevice()||s.isBlockDevice())return HY(s,n,e,t,r);if(s.isSymbolicLink())return YY(n,e,t,r);throw s.isSocket()?new Error(`Cannot copy a socket file: ${e}`):s.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}a(oD,"getStatsAndPerformCopy");async function HY(n,e,t,r,i){if(!e)return iD(n,t,r,i);if(i.overwrite)return await tn.unlink(r),iD(n,t,r,i);if(i.errorOnExist)throw new Error(`'${r}' already exists`)}a(HY,"onFile");async function iD(n,e,t,r){if(await tn.copyFile(e,t),r.preserveTimestamps){zY(n.mode)&&await KY(t,n.mode);let i=await tn.stat(e);await qY(t,i.atime,i.mtime)}return tn.chmod(t,n.mode)}a(iD,"copyFile");function zY(n){return(n&128)===0}a(zY,"fileIsNotWritable");function KY(n,e){return tn.chmod(n,e|128)}a(KY,"makeFileWritable");async function XY(n,e,t,r,i){e||await tn.mkdir(r),await GY(await tn.opendir(t),async s=>{let o=Rd.join(t,s.name),c=Rd.join(r,s.name);if(await sD(o,c,i)){let{destStat:u}=await Cd.checkPaths(o,c,"copy",i);await oD(u,o,c,i)}}),e||await tn.chmod(r,n.mode)}a(XY,"onDir");async function YY(n,e,t,r){let i=await tn.readlink(e);if(r.dereference&&(i=Rd.resolve(process.cwd(),i)),!n)return tn.symlink(i,t);let s=null;try{s=await tn.readlink(t)}catch(o){if(o.code==="EINVAL"||o.code==="UNKNOWN")return tn.symlink(i,t);throw o}if(r.dereference&&(s=Rd.resolve(process.cwd(),s)),Cd.isSrcSubdir(i,s))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${s}'.`);if(Cd.isSrcSubdir(s,i))throw new Error(`Cannot overwrite '${s}' with '${i}'.`);return await tn.unlink(t),tn.symlink(i,t)}a(YY,"onLink");aD.exports=WY});var hD=v((G0e,dD)=>{"use strict";var wn=hu(),Od=require("path"),QY=Qi().mkdirsSync,JY=YT().utimesMillisSync,Pd=Tc();function ZY(n,e,t){typeof t=="function"&&(t={filter:t}),t=t||{},t.clobber="clobber"in t?!!t.clobber:!0,t.overwrite="overwrite"in t?!!t.overwrite:t.clobber,t.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
@@ -545,7 +545,7 @@ Available prefixes: ${u}`,this.wellKnownPrefixes[r]&&c.push(`Add: PREFIX ${r}: <
545
545
  `;o=s.parse(p),c=new Lr.ExoQLAlgebraTranslator,l=c.translate(o),u=new Lr.AlgebraOptimizer,l=u.optimize(l);let g=(await f.executeAll(l)).map(_=>{let S=_.get("property"),x=_.get("usageCount");return{name:S?$M(S.toString()):"unknown",usageCount:x?parseInt(x.toString(),10):0}}),b={name:e,instanceCount:h,properties:g};if(r==="json"||t.format==="json"){let _=Ke.success(b);console.log(JSON.stringify(_,null,2))}else{if(console.log(`\u{1F4CB} Class: ${e}
546
546
  `),console.log(` Instances: ${h}`),console.log(` Properties: ${g.length}
547
547
  `),g.length===0){console.log(" No properties found.");return}let _=Math.max(...g.map(S=>S.name.length),10);console.log(" \u250C"+"\u2500".repeat(_+2)+"\u252C"+"\u2500".repeat(10)+"\u2510"),console.log(" \u2502 "+"Property".padEnd(_)+" \u2502 "+"Usage".padEnd(8)+" \u2502"),console.log(" \u251C"+"\u2500".repeat(_+2)+"\u253C"+"\u2500".repeat(10)+"\u2524");for(let S of g)console.log(" \u2502 "+S.name.padEnd(_)+" \u2502 "+S.usageCount.toString().padStart(8)+" \u2502");console.log(" \u2514"+"\u2500".repeat(_+2)+"\u2534"+"\u2500".repeat(10)+"\u2518")}}a(zne,"showClassDetails");function $M(n){let e=n.replace(/^<|>$/g,""),t=e.lastIndexOf("#");if(t!==-1)return e.substring(t+1);let r=e.lastIndexOf("/");return r!==-1?e.substring(r+1):e}a($M,"extractLocalName");var WM=require("path"),SA=require("fs"),HM=require("fs"),$u=te(nt());var wr=te(Oo()),Pa=te(require("path"));var Lc=te(nt());var Fa=class{constructor(e){this.rootPath=e}static{a(this,"NodeFsAdapter")}async readFile(e){let t=this.resolvePath(e);if(!await wr.default.pathExists(t))throw new Lc.FileNotFoundError(e);return wr.default.readFile(t,"utf-8")}async fileExists(e){let t=this.resolvePath(e);return wr.default.pathExists(t)}async getFileMetadata(e){let t=await this.readFile(e);return this.extractFrontmatter(t)}async createFile(e,t){let r=this.resolvePath(e);if(await wr.default.pathExists(r))throw new Lc.FileAlreadyExistsError(e);return await wr.default.ensureDir(Pa.default.dirname(r)),await wr.default.writeFile(r,t,"utf-8"),e}async updateFile(e,t){let r=this.resolvePath(e);if(!await wr.default.pathExists(r))throw new Lc.FileNotFoundError(e);await wr.default.writeFile(r,t,"utf-8")}async writeFile(e,t){let r=this.resolvePath(e);await wr.default.ensureDir(Pa.default.dirname(r)),await wr.default.writeFile(r,t,"utf-8")}async deleteFile(e){let t=this.resolvePath(e);if(!await wr.default.pathExists(t))throw new Lc.FileNotFoundError(e);await wr.default.remove(t)}async renameFile(e,t){let r=this.resolvePath(e),i=this.resolvePath(t);if(!await wr.default.pathExists(r))throw new Lc.FileNotFoundError(e);await wr.default.ensureDir(Pa.default.dirname(i)),await wr.default.move(r,i)}async createDirectory(e){let t=this.resolvePath(e);await wr.default.ensureDir(t)}async directoryExists(e){let t=this.resolvePath(e);return await wr.default.pathExists(t)?(await wr.default.stat(t)).isDirectory():!1}async getMarkdownFiles(e){let t=e?this.resolvePath(e):this.rootPath,r=Pa.default.join(t,"**/*.md");return(await Oa(r,{nodir:!0})).map(o=>Pa.default.relative(this.rootPath,o))}async findFilesByMetadata(e){let t=await this.getMarkdownFiles(),r=[];for(let i of t)try{let s=await this.getFileMetadata(i);this.matchesQuery(s,e)&&r.push(i)}catch{continue}return r}async findFileByUID(e){let t=await this.findFilesByMetadata({exo__Asset_uid:e});return t.length>0?t[0]:null}resolvePath(e){return Pa.default.isAbsolute(e)?e:Pa.default.join(this.rootPath,e)}extractFrontmatter(e){let t=/^---\n([\s\S]*?)\n---/,r=e.match(t);if(!r)return{};try{let i=Ft.load(r[1]);return typeof i=="object"&&i!==null?i:{}}catch{return{}}}matchesQuery(e,t){for(let[r,i]of Object.entries(t)){let s=e[r];if(Array.isArray(s)){if(!s.some(o=>this.normalizeValue(o)===this.normalizeValue(i)))return!1}else if(this.normalizeValue(s)!==this.normalizeValue(i))return!1}return!0}normalizeValue(e){return e==null?"":String(e).replace(/["'[\]]/g,"").trim()}};var yA=class extends Error{static{a(this,"ClassNotFoundError")}constructor(e,t){let r=`Class '${e}' not found in vault`;t&&t.length>0&&(r+=`
548
- Available classes: ${t.join(", ")}`),super(r),this.name="ClassNotFoundError"}},$0=class{constructor(e){this.fsAdapter=e;this.cache=new Map}static{a(this,"ClassResolverService")}async resolve(e,t){if(this.isUUID(t))return t;let r=await this.getOrBuildIndex(e),i=r.get(t);if(!i){let s=Array.from(r.keys()).filter(o=>!this.isUUID(o));throw new yA(t,s)}return i}async listClasses(e){let t=await this.getOrBuildIndex(e);return Array.from(t.keys())}async getOrBuildIndex(e){if(this.cache.has(e))return this.cache.get(e);let t=await this.buildIndex(e);return this.cache.set(e,t),t}async buildIndex(e){let t=new Map,r=await this.fsAdapter.getMarkdownFiles();for(let i of r)try{let s=await this.fsAdapter.getFileMetadata(i);if(!this.isClassDefinition(s))continue;let o=this.getBasename(i),c=s.exo__Asset_uid;if(!c&&this.isUUID(o)&&(c=o),!c)continue;let l=String(c);o&&t.set(o,l);let u=s.exo__Asset_label;u&&typeof u=="string"&&u!==o&&t.set(u,l)}catch{continue}return t}isClassDefinition(e){let t=e.exo__Instance_class;return t?(Array.isArray(t)?t:[t]).some(i=>{let s=String(i);return s.includes("ims__Class")||s.includes("exo__Class")}):!1}getBasename(e){let t=e.split("/");return t[t.length-1].replace(/\.md$/,"")}isUUID(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}};var bA=class extends Error{static{a(this,"WikilinkNotFoundError")}constructor(e,t){let r=t?`|${t}`:"";super(`Wikilink [[${e}${r}]] \u2014 file not found in vault`),this.name="WikilinkNotFoundError"}},U0=class{constructor(e){this.fsAdapter=e}static{a(this,"WikilinkValidator")}static{this.WIKILINK_PATTERN=/\[\[([^\]|]+)(?:\|[^\]]*)?]]/g}async validatePropertyValues(e){for(let[,t]of Object.entries(e))await this.validateValue(t)}async validateValue(e){let t=this.extractWikilinks(e);for(let r of t)await this.validateWikilink(r.uuid,r.label)}extractWikilinks(e){let t=[],r=/\[\[([^\]|]+)(?:\|([^\]]*))?\]\]/g,i;for(;(i=r.exec(e))!==null;)t.push({uuid:i[1].trim(),label:i[2]?.trim()});return t}async validateWikilink(e,t){if(!this.looksLikeUUID(e))return;if(!await this.fsAdapter.fileExists(`${e}.md`)&&!await this.fsAdapter.findFileByUID(e))throw new bA(e,t)}looksLikeUUID(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}};var Mu=require("fs"),_A=require("path"),BM=te(nt());function B0(n){(0,BM.registerOrderSpecLoader)(()=>{let e=Kne(n);for(let t of e){let r=Xne(t);if(r)return r}return null})}a(B0,"registerOrderSpecFromVault");function Kne(n){return[(0,_A.join)(n,"assetspaces","exo")]}a(Kne,"collectCandidateDirs");function Xne(n){if(!(0,Mu.existsSync)(n))return null;let e;try{e=(0,Mu.readdirSync)(n)}catch{return null}for(let t of e){if(!t.endsWith(".md"))continue;let r=(0,_A.join)(n,t),i;try{i=(0,Mu.readFileSync)(r,"utf-8")}catch{continue}let s=Yne(i);if(s&&/^exo__FrontmatterOrderSpec_default:\s*true\b/m.test(s))return{head:UM(s,"exo__FrontmatterOrderSpec_head"),tail:UM(s,"exo__FrontmatterOrderSpec_tail"),middleStrategy:Qne(s,"exo__FrontmatterOrderSpec_middleStrategy")??"alphabetical"}}return null}a(Xne,"scanDirForDefault");function Yne(n){let e=n.match(/^---\n([\s\S]*?)\n---/);return e?e[1]:null}a(Yne,"extractFrontmatter");function Qne(n,e){let t=new RegExp(`^${VM(e)}:\\s*(.+)$`,"m"),r=n.match(t);return r?r[1].trim():null}a(Qne,"extractScalar");function UM(n,e){let t=new RegExp(`^${VM(e)}:\\s*\\n((?: -.*\\n?)+)`,"m"),r=n.match(t);return r?r[1].split(`
548
+ Available classes: ${t.join(", ")}`),super(r),this.name="ClassNotFoundError"}},$0=class{constructor(e){this.fsAdapter=e;this.cache=new Map}static{a(this,"ClassResolverService")}async resolve(e,t){if(this.isUUID(t))return t;let r=await this.getOrBuildIndex(e),i=r.get(t);if(!i){let s=Array.from(r.keys()).filter(o=>!this.isUUID(o));throw new yA(t,s)}return i}async listClasses(e){let t=await this.getOrBuildIndex(e);return Array.from(t.keys())}async getOrBuildIndex(e){if(this.cache.has(e))return this.cache.get(e);let t=await this.buildIndex(e);return this.cache.set(e,t),t}async buildIndex(e){let t=new Map,r=await this.fsAdapter.getMarkdownFiles(),i=[],s=new Set;for(let o of r)try{let c=await this.fsAdapter.getFileMetadata(o),l=this.getBasename(o),u=c.exo__Asset_uid;!u&&this.isUUID(l)&&(u=l);let f=u?String(u):void 0,d=c.exo__Asset_label,h=typeof d=="string"?d:void 0,p=c.exo__Instance_class,y=p?(Array.isArray(p)?p:[p]).map(g=>String(g)):[];i.push({basename:l,uid:f,label:h,classValues:y}),f&&(h==="exo__Class"||h==="ims__Class")&&s.add(f)}catch{continue}for(let o of i)o.uid&&this.isClassDefinition(o.classValues,s)&&(o.basename&&t.set(o.basename,o.uid),o.label&&o.label!==o.basename&&t.set(o.label,o.uid));return t}isClassDefinition(e,t){return e.some(r=>{if(r.includes("ims__Class")||r.includes("exo__Class"))return!0;for(let i of t)if(i&&r.includes(i))return!0;return!1})}getBasename(e){let t=e.split("/");return t[t.length-1].replace(/\.md$/,"")}isUUID(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}};var bA=class extends Error{static{a(this,"WikilinkNotFoundError")}constructor(e,t){let r=t?`|${t}`:"";super(`Wikilink [[${e}${r}]] \u2014 file not found in vault`),this.name="WikilinkNotFoundError"}},U0=class{constructor(e){this.fsAdapter=e}static{a(this,"WikilinkValidator")}static{this.WIKILINK_PATTERN=/\[\[([^\]|]+)(?:\|[^\]]*)?]]/g}async validatePropertyValues(e){for(let[,t]of Object.entries(e))await this.validateValue(t)}async validateValue(e){let t=this.extractWikilinks(e);for(let r of t)await this.validateWikilink(r.uuid,r.label)}extractWikilinks(e){let t=[],r=/\[\[([^\]|]+)(?:\|([^\]]*))?\]\]/g,i;for(;(i=r.exec(e))!==null;)t.push({uuid:i[1].trim(),label:i[2]?.trim()});return t}async validateWikilink(e,t){if(!this.looksLikeUUID(e))return;if(!await this.fsAdapter.fileExists(`${e}.md`)&&!await this.fsAdapter.findFileByUID(e))throw new bA(e,t)}looksLikeUUID(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}};var Mu=require("fs"),_A=require("path"),BM=te(nt());function B0(n){(0,BM.registerOrderSpecLoader)(()=>{let e=Kne(n);for(let t of e){let r=Xne(t);if(r)return r}return null})}a(B0,"registerOrderSpecFromVault");function Kne(n){return[(0,_A.join)(n,"assetspaces","exo")]}a(Kne,"collectCandidateDirs");function Xne(n){if(!(0,Mu.existsSync)(n))return null;let e;try{e=(0,Mu.readdirSync)(n)}catch{return null}for(let t of e){if(!t.endsWith(".md"))continue;let r=(0,_A.join)(n,t),i;try{i=(0,Mu.readFileSync)(r,"utf-8")}catch{continue}let s=Yne(i);if(s&&/^exo__FrontmatterOrderSpec_default:\s*true\b/m.test(s))return{head:UM(s,"exo__FrontmatterOrderSpec_head"),tail:UM(s,"exo__FrontmatterOrderSpec_tail"),middleStrategy:Qne(s,"exo__FrontmatterOrderSpec_middleStrategy")??"alphabetical"}}return null}a(Xne,"scanDirForDefault");function Yne(n){let e=n.match(/^---\n([\s\S]*?)\n---/);return e?e[1]:null}a(Yne,"extractFrontmatter");function Qne(n,e){let t=new RegExp(`^${VM(e)}:\\s*(.+)$`,"m"),r=n.match(t);return r?r[1].trim():null}a(Qne,"extractScalar");function UM(n,e){let t=new RegExp(`^${VM(e)}:\\s*\\n((?: -.*\\n?)+)`,"m"),r=n.match(t);return r?r[1].split(`
549
549
  `).map(i=>i.trim()).filter(i=>i.startsWith("- ")).map(i=>i.slice(2).trim()):[]}a(UM,"extractList");function VM(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}a(VM,"escapeRegex");var hh=te(require("path")),qM=te(nt());async function ju(n,e,t){let r=e.endsWith(".md")?e:`${e}.md`;if(e.includes("/")&&await n.fileExists(r))return r;let i=hh.default.dirname(t),s=i!=="."?`${i}/${r}`:r;if(await n.fileExists(s))return s;let c=await n.findFileByUID(e);return c||(await n.getMarkdownFiles()).find(f=>{let d=hh.default.basename(f,".md"),h=hh.default.basename(r,".md");return d===h})||null}a(ju,"findReferencedFile");function wA(n){return n.replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/$/,"")}a(wA,"normalizePath");async function GM(n,e){let t=(0,qM.extractAssetReference)(e);if(!t||t.startsWith("!"))return null;let r=await ju(n,t,"");if(!r)return null;let i=hh.default.dirname(r);return i==="."?"":i}a(GM,"resolveCoLocationFolder");var Jne="01 Inbox",Zne="Asia/Almaty";function eie(n){if(!n||n.length===0)return{};let e={};for(let t of n){let r=t.indexOf("=");if(r===-1)throw new Error(`Invalid property format: "${t}". Expected "key=value" format.`);let i=t.substring(0,r).trim(),s=t.substring(r+1).trim();if(!i)throw new Error(`Invalid property format: "${t}". Key cannot be empty.`);e[i]=s}return e}a(eie,"parseProperties");async function tie(n){if(n.bodyFile){if(!(0,SA.existsSync)(n.bodyFile))throw new Error(`Body file not found: ${n.bodyFile}`);return(0,HM.readFileSync)(n.bodyFile,"utf-8")}if(n.body==="-")return rie(3e4);if(n.body)return n.body}a(tie,"resolveBody");function rie(n){return new Promise((e,t)=>{let r=[],i=setTimeout(()=>{process.stdin.removeAllListeners(),process.stdin.destroy(),t(new Error(`Stdin read timed out after ${n}ms. Ensure you pipe content to stdin or close the pipe.`))},n);process.stdin.on("data",s=>{r.push(s)}),process.stdin.on("end",()=>{clearTimeout(i),e(Buffer.concat(r).toString("utf-8"))}),process.stdin.on("error",s=>{clearTimeout(i),t(s)}),process.stdin.isTTY&&(clearTimeout(i),e("")),process.stdin.resume()})}a(rie,"readStdin");function zM(){return new be("create").description("Create a new vault asset with auto-generated UUID, timestamp, and frontmatter").requiredOption("--class <name>","Class short name (e.g. ztlk__PermanentNote) or UUID").requiredOption("--label <text>","Human-readable label for the asset").option("--vault <path>","Path to Obsidian vault",process.cwd()).option("--aliases <names...>","Additional aliases for the asset").option("--property <key=value...>","Property key-value pairs (repeatable)",nie,[]).option("--body <text>","Markdown body content (use '-' to read from stdin)").option("--body-file <path>","Read body content from file").option("--dry-run","Preview frontmatter without writing file").option("--created-by <uuid>","Creator UUID (defaults to ExoAssistant)").option("--timezone <tz>","Timezone for timestamps (defaults to Asia/Almaty)").option("--skip-wikilink-validation","Skip wikilink existence validation").action(async n=>{try{let e=(0,WM.resolve)(n.vault);if(!(0,SA.existsSync)(e))throw new He(e);if(B0(e),!n.label||n.label.trim().length===0)throw new Error("Label cannot be empty");let t=n.label.trim(),r=eie(n.property),i=Object.keys(r).length>0?r:void 0,s=await tie(n);s&&(s=s.replace(/\\n/g,`
550
550
  `));let o=new Fa(e),c=new $0(o),l=new U0(o),u=await c.resolve(e,n.class);i&&!n.skipWikilinkValidation&&await l.validatePropertyValues(i);let f=Jne,d=i?.exo__Asset_isDefinedBy;if(d){let x=await GM(o,d);x&&(f=x)}let h;try{h=await $u.ShapeLoader.loadFromVaultFS(e)}catch{h=new $u.ShapeRegistry}let p=new Yt(e),y=new $u.GenericAssetCreationService(p),g={className:n.class,classRefForm:"uuid",classUid:u,label:t,aliases:n.aliases,folderPath:f,createdBy:n.createdBy,timezone:n.timezone||Zne,body:s,propertyValues:i,shapeRegistry:h},b,_;if(n.dryRun){let x=y.buildAsset(g);b=x.uid,_=x.path,process.stderr.write(`--- DRY RUN PREVIEW ---
551
551
  ${x.content}--- END PREVIEW ---
@@ -627,7 +627,7 @@ Duplicate bindings (${n.duplicates.length}) \u2014 uid claimed by >1 test (warni
627
627
  Skipped floor check for ${n.unknownPriority} requirement(s) with unparseable priority (fail-open).`),n.clean?e==="hard"&&!n.rampReady?console.error(`
628
628
  FAIL (hard gate): ramp not ready \u2014 ${n.p0Orphans} P0 requirement(s) unbound`+(n.p0Total===0?" (no P0 requirements found)":"")+"."):console.log(`
629
629
  OK: no hard findings (dangling tags + binding-class floor are clean).`):console.error(`
630
- FAIL: ${n.dangling.length} dangling + ${n.floorViolations.length} floor violation(s).`)}a(ooe,"renderText");function aoe(n,e,t){return!n.clean||t&&n.orphans.length>0||e==="hard"&&!n.rampReady}a(aoe,"isHardFail");function yj(){return new be("audit").description("Audit requirement\u2194test traceability: orphans, dangling @req tags, duplicate bindings, binding-class floor, coverage, P0 ramp-readiness").requiredOption("--reqs <path>","Directory tree containing req__Requirement assets (a vault or a reqs assetspace clone)").option("--tests <path>","Test-corpus root scanned for @req:<uid> tags",".").option("--output <type>","Response format: text|json","text").option("--strict","Also exit 1 on orphan requirements",!1).option("--gate <mode>","Gate mode: soft (warn only on hard findings) | hard (also block when the P0 checklist is not ramp-ready)","soft").action(async n=>{let e=n.output??"text";ce.setFormat(e);let t=n.gate==="hard"?"hard":"soft";try{let r=(0,VA.resolve)(n.reqs);if(!(0,Yu.existsSync)(r)||!(0,Yu.statSync)(r).isDirectory())throw new He(r);let i=(0,VA.resolve)(n.tests??".");if(!(0,Yu.existsSync)(i)||!(0,Yu.statSync)(i).isDirectory())throw new He(i);let[s,o]=await Promise.all([toe(r),noe(i)]),c=ioe(s,o);e==="json"?console.log(JSON.stringify({...c,gate:t},null,2)):ooe(c,t),aoe(c,t,n.strict===!0)&&(process.exitCode=1)}catch(r){ce.handle(r)}})}a(yj,"requirementsAuditCommand");function bj(){let n=new be("requirements").description("Requirements-management tooling (RFC 0003): traceability checker");return n.addCommand(yj()),n}a(bj,"requirementsCommand");function _j(n){let e=new be;return e.name("exocortex").description("CLI tool for Exocortex knowledge management system").version(n??"16.141.0"),e.addCommand(h4()),e.addCommand(E4()),e.addCommand(cM()),e.addCommand(dM()),e.addCommand(NM()),e.addCommand(mM()),e.addCommand(gM()),e.addCommand(jM()),e.addCommand(zM()),e.addCommand(XM()),e.addCommand(e4()),e.addCommand(u4()),e.addCommand($4()),e.addCommand(rj()),e.addCommand(nj()),e.addCommand(oj()),e.addCommand(aj()),e.addCommand(fj()),e.addCommand(pj()),e.addCommand(H4()),e.addCommand(Z4()),e.addCommand(bj()),e}a(_j,"createProgram");_j().parse();0&&(module.exports={createProgram});
630
+ FAIL: ${n.dangling.length} dangling + ${n.floorViolations.length} floor violation(s).`)}a(ooe,"renderText");function aoe(n,e,t){return!n.clean||t&&n.orphans.length>0||e==="hard"&&!n.rampReady}a(aoe,"isHardFail");function yj(){return new be("audit").description("Audit requirement\u2194test traceability: orphans, dangling @req tags, duplicate bindings, binding-class floor, coverage, P0 ramp-readiness").requiredOption("--reqs <path>","Directory tree containing req__Requirement assets (a vault or a reqs assetspace clone)").option("--tests <path>","Test-corpus root scanned for @req:<uid> tags",".").option("--output <type>","Response format: text|json","text").option("--strict","Also exit 1 on orphan requirements",!1).option("--gate <mode>","Gate mode: soft (warn only on hard findings) | hard (also block when the P0 checklist is not ramp-ready)","soft").action(async n=>{let e=n.output??"text";ce.setFormat(e);let t=n.gate==="hard"?"hard":"soft";try{let r=(0,VA.resolve)(n.reqs);if(!(0,Yu.existsSync)(r)||!(0,Yu.statSync)(r).isDirectory())throw new He(r);let i=(0,VA.resolve)(n.tests??".");if(!(0,Yu.existsSync)(i)||!(0,Yu.statSync)(i).isDirectory())throw new He(i);let[s,o]=await Promise.all([toe(r),noe(i)]),c=ioe(s,o);e==="json"?console.log(JSON.stringify({...c,gate:t},null,2)):ooe(c,t),aoe(c,t,n.strict===!0)&&(process.exitCode=1)}catch(r){ce.handle(r)}})}a(yj,"requirementsAuditCommand");function bj(){let n=new be("requirements").description("Requirements-management tooling (RFC 0003): traceability checker");return n.addCommand(yj()),n}a(bj,"requirementsCommand");function _j(n){let e=new be;return e.name("exocortex").description("CLI tool for Exocortex knowledge management system").version(n??"16.141.1"),e.addCommand(h4()),e.addCommand(E4()),e.addCommand(cM()),e.addCommand(dM()),e.addCommand(NM()),e.addCommand(mM()),e.addCommand(gM()),e.addCommand(jM()),e.addCommand(zM()),e.addCommand(XM()),e.addCommand(e4()),e.addCommand(u4()),e.addCommand($4()),e.addCommand(rj()),e.addCommand(nj()),e.addCommand(oj()),e.addCommand(aj()),e.addCommand(fj()),e.addCommand(pj()),e.addCommand(H4()),e.addCommand(Z4()),e.addCommand(bj()),e}a(_j,"createProgram");_j().parse();0&&(module.exports={createProgram});
631
631
  /*! Bundled license information:
632
632
 
633
633
  reflect-metadata/Reflect.js: