@kitelev/exocortex-cli 16.257.5 → 16.257.7

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 +3 -3
  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.257.5
2
+ // @kitelev/exocortex-cli v16.257.7
3
3
  // CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more
4
4
  // License: MIT
5
5
 
@@ -331,7 +331,7 @@ To resolve:
331
331
  \u2022 Check service initialization parameters
332
332
  \u2022 Verify all required dependencies are available
333
333
  \u2022 Review service logs for detailed error information
334
- \u2022 Contact support if the issue persists`}};Q_.ServiceError=RR});var v$=T(Lr=>{"use strict";Object.defineProperty(Lr,"__esModule",{value:!0});Lr.ServiceError=Lr.ResourceExhaustedError=Lr.NotFoundError=Lr.PermissionError=Lr.StateTransitionError=Lr.NetworkError=Lr.ValidationError=Lr.ApplicationError=Lr.ErrorCode=void 0;var Mse=Ro();Object.defineProperty(Lr,"ErrorCode",{enumerable:!0,get:a(function(){return Mse.ErrorCode},"get")});var jse=Co();Object.defineProperty(Lr,"ApplicationError",{enumerable:!0,get:a(function(){return jse.ApplicationError},"get")});var $se=g$();Object.defineProperty(Lr,"ValidationError",{enumerable:!0,get:a(function(){return $se.ValidationError},"get")});var Use=y$();Object.defineProperty(Lr,"NetworkError",{enumerable:!0,get:a(function(){return Use.NetworkError},"get")});var Bse=b$();Object.defineProperty(Lr,"StateTransitionError",{enumerable:!0,get:a(function(){return Bse.StateTransitionError},"get")});var Vse=_$();Object.defineProperty(Lr,"PermissionError",{enumerable:!0,get:a(function(){return Vse.PermissionError},"get")});var Gse=S$();Object.defineProperty(Lr,"NotFoundError",{enumerable:!0,get:a(function(){return Gse.NotFoundError},"get")});var qse=w$();Object.defineProperty(Lr,"ResourceExhaustedError",{enumerable:!0,get:a(function(){return qse.ResourceExhaustedError},"get")});var Wse=E$();Object.defineProperty(Lr,"ServiceError",{enumerable:!0,get:a(function(){return Wse.ServiceError},"get")})});var xR=T(J_=>{"use strict";Object.defineProperty(J_,"__esModule",{value:!0});J_.ShapeRegistry=void 0;var CR=class{static{a(this,"ShapeRegistry")}constructor(){this.shapes=new Map}get(e){return this.shapes.get(e)}register(e){this.shapes.set(e.propertyIRI,e)}getAll(){return Array.from(this.shapes.values())}get size(){return this.shapes.size}};J_.ShapeRegistry=CR});var A$=T(xo=>{"use strict";var zse=xo&&xo.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=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(r,n,i)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]})),Hse=xo&&xo.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),PR=xo&&xo.__importStar||(function(){var r=a(function(e){return r=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},r(e)},"ownKeys");return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=r(e),i=0;i<n.length;i++)n[i]!=="default"&&zse(t,e,n[i]);return Hse(t,e),t}})();Object.defineProperty(xo,"__esModule",{value:!0});xo.ShapeLoader=void 0;var OR=xR(),Bs=De(),Qh=He(),Er=At(),Kse=c0(),T$=vI(),Z_="http://www.w3.org/ns/shacl#",$Pe=[["exo__",Er.Namespace.EXO],["ems__",Er.Namespace.EMS],["exocmd__",Er.Namespace.EXOCMD],["ims__",Er.Namespace.IMS],["ztlk__",Er.Namespace.ZTLK],["ptms__",Er.Namespace.PTMS],["lit__",Er.Namespace.LIT],["inbox__",Er.Namespace.INBOX],["pmbok__",Er.Namespace.PMBOK]],Da=class r{static{a(this,"ShapeLoader")}static async loadFromVaultFS(e,t){let{readdir:n,readFile:i}=await Promise.resolve().then(()=>PR(require("fs/promises"))),s=await Promise.resolve().then(()=>PR(require("path"))),o=new OR.ShapeRegistry,c={classEdges:[],candidates:[],uidToLabel:new Map};await r.scanDir(e,c,{readdir:n,readFile:t?.readFile??i,path:s});let l=r.propertyClassKeysFromEdges(c.classEdges);for(let u of c.candidates)try{r.registerCandidate(u,o,l,s,c.uidToLabel)}catch{}return o}static async loadFromRDFGraph(e){let t=new OR.ShapeRegistry,n=Er.Namespace.EXO,i=Er.Namespace.RDFS,s=Er.Namespace.RDF,o=await r.buildUidClassIndex(e),c=await r.collectPropertyClassIRIs(e,o),l=await Promise.all([...c].map(async f=>{try{return await e.match(void 0,s.term("type"),new Bs.IRI(f))}catch{return[]}})),u=new Set;for(let f of l.flat())f.subject instanceof Bs.IRI&&u.add(f.subject.value);for(let f of u){let d;try{d=new Bs.IRI(f)}catch{continue}let[p,h,g,m,b,_,S,A,E]=await Promise.all([e.match(d,i.term("domain"),void 0),e.match(d,n.term("Property_domain"),void 0),e.match(d,i.term("range"),void 0),e.match(d,n.term("Property_range"),void 0),e.match(d,n.term("Property_cardinality"),void 0),e.match(d,n.term("Property_severity"),void 0),e.match(d,n.term("Asset_label"),void 0),e.match(d,i.term("label"),void 0),e.match(d,n.term("Property_minCount"),void 0)]),w=[...S,...A],R=[...p,...h],C=[...g,...m];if(R.length===0)continue;let O=null;for(let q of w)if(q.object instanceof Qh.Literal&&(O=r.labelToIRI(q.object.value),O))break;if(!O)continue;let N=await Promise.all(R.map(async q=>q.object instanceof Bs.IRI?await r.resolveClassIRI(q.object.value,e,o):null)),V=Array.from(new Set(N.filter(q=>q!==null))),$=await Promise.all(C.map(async q=>q.object instanceof Bs.IRI?await r.resolveClassIRI(q.object.value,e,o):q.object instanceof Qh.Literal?r.datatypeRangeToIRI(q.object.value):null)),ee=Array.from(new Set($.filter(q=>q!==null))),K=r.cardinalityFromIRI(b[0]?.object instanceof Bs.IRI?b[0].object.value:void 0),M=r.severityFromValue(_[0]?.object instanceof Qh.Literal||_[0]?.object instanceof Bs.IRI?_[0].object.value:void 0),ce=(0,T$.parseMinCount)(E.map(q=>q.object));t.register({propertyIRI:O,domain:V,range:ee.length>0?ee:void 0,cardinality:K,severity:M,minCount:ce})}return t}static async loadFromShapeJSON(e){let{readFile:t}=await Promise.resolve().then(()=>PR(require("fs/promises"))),n=await t(e,"utf-8"),i=JSON.parse(n),s=new OR.ShapeRegistry;for(let o of Object.values(i.shapes))s.register(o);return s}static extractUidFromFileIRI(e){let t=r.FILE_IRI_UID_RE.exec(e);return t?t[1].toLowerCase():null}static async buildUidClassIndex(e){let t=Er.Namespace.RDFS,n=Er.Namespace.EXO,[i,s]=await Promise.all([e.match(void 0,t.term("label"),void 0),e.match(void 0,n.term("Asset_label"),void 0)]),o=new Map;for(let c of[...i,...s]){if(!(c.subject instanceof Bs.IRI)||!(c.object instanceof Qh.Literal))continue;let l=r.extractUidFromFileIRI(c.subject.value);if(!l||o.has(l))continue;let u=c.object.value.trim();if(/\s/.test(u))continue;let f=r.labelToIRI(u);f&&o.set(l,f)}return o}static async collectPropertyClassIRIs(e,t){let n=Er.Namespace.EXO,i=Er.Namespace.RDFS,[s,o]=await Promise.all([e.match(void 0,n.term("Class_superClass"),void 0),e.match(void 0,i.term("subClassOf"),void 0)]),c=new Map,l=a(async p=>{let h=c.get(p);return h===void 0&&(h=await r.resolveClassIRI(p,e,t),c.set(p,h)),h},"canon"),u=new Map;for(let p of[...s,...o]){if(!(p.subject instanceof Bs.IRI)||!(p.object instanceof Bs.IRI))continue;let[h,g]=await Promise.all([l(p.subject.value),l(p.object.value)]);if(!h||!g||h===g)continue;let m=u.get(g)??new Set;m.add(h),u.set(g,m)}let f=new Set([n.term("Property").value,n.term("ObjectProperty").value]),d=[...f];for(;d.length>0;){let p=d.shift();for(let h of u.get(p)??[])f.has(h)||(f.add(h),d.push(h))}return f}static async resolveClassIRI(e,t,n){if(e.startsWith("https://exocortex.my/ontology/")||e.startsWith("http://www.w3.org/"))return e;let i;try{i=new Bs.IRI(e)}catch{return null}let s=Er.Namespace.RDFS,o=Er.Namespace.EXO,[c,l]=await Promise.all([t.match(i,s.term("label"),void 0),t.match(i,o.term("Asset_label"),void 0)]);for(let u of[...c,...l])if(u.object instanceof Qh.Literal){let f=r.labelToIRI(u.object.value);if(f)return f}if(n){let u=r.extractUidFromFileIRI(e);if(u){let f=n.get(u);if(f)return f}}return e}static propertyClassKeysFromEdges(e){let t=["exo__Property",r.EXO_PROPERTY_UID,"exo__ObjectProperty",r.EXO_OBJECT_PROPERTY_UID],n=new Set(t),i=[...t];for(;i.length>0;){let s=i.shift();for(let o of e)if(o.parentKeys.includes(s)&&!o.childKeys.some(c=>n.has(c)))for(let c of o.childKeys)n.add(c),i.push(c)}return n}static wikilinkClassKeys(e){let t=r.extractWikilinkRef(e);if(!t)return[];let n=[t.trim()];for(let i of t.split("|")){let s=i.trim();s.length>0&&n.push(s)}return n}static async scanDir(e,t,n){let i;try{i=await n.readdir(e,{withFileTypes:!0})}catch{return}i.sort((s,o)=>s.name<o.name?-1:s.name>o.name?1:0);for(let s of i){let o=n.path.join(e,s.name);if(s.isDirectory())await r.scanDir(o,t,n);else if(s.isFile()&&s.name.endsWith(".md"))try{await r.collectFile(o,t,n.readFile,n.path)}catch{}}}static async collectFile(e,t,n,i){let s;try{s=await n(e,"utf-8")}catch{return}let o=r.parseFrontmatter(s);if(!o)return;r.indexUidLabel(e,o,t.uidToLabel,i);let c=r.asArray(o.exo__Class_superClass);if(c.length>0){let l=[i.basename(e,".md")],u=o.exo__Asset_uid;typeof u=="string"&&u.trim().length>0&&l.push(u.trim().replace(/^["']|["']$/g,""));let f=o.exo__Asset_label;typeof f=="string"&&f.trim().length>0&&l.push(f.trim().replace(/^["']|["']$/g,"")),t.classEdges.push({childKeys:l,parentKeys:c.flatMap(d=>r.wikilinkClassKeys(d))})}r.asArray(o.exo__Property_domain).length>0&&t.candidates.push({filePath:e,fm:o})}static indexUidLabel(e,t,n,i){let s=t.exo__Asset_label;if(typeof s!="string")return;let o=s.trim().replace(/^["']|["']$/g,"");if(o.length===0||/\s/.test(o)||!Er.Namespace.fromPropertyKey(o))return;let c=t.exo__Asset_uid,l=[typeof c=="string"?c.trim().replace(/^["']|["']$/g,""):"",i.basename(e,".md")];for(let u of l){if(!r.BARE_UID_RE.test(u))continue;let f=u.toLowerCase();n.has(f)||n.set(f,o)}}static registerCandidate(e,t,n,i,s){let{filePath:o,fm:c}=e;if(!r.asArray(c.exo__Instance_class).some(C=>r.wikilinkClassKeys(C).some(O=>n.has(O))))return;let f=null,d=c.exo__Asset_label;if(typeof d=="string"&&d.trim().length>0)f=d.trim().replace(/^["']|["']$/g,"");else{let C=i.basename(o,".md");Er.Namespace.fromPropertyKey(C)&&(f=C)}if(!f)return;let p=r.labelToIRI(f);if(!p)return;let h=c.exo__Property_domain,g=c.exo__Property_range,m=c.exo__Property_cardinality,b=c.exo__Property_severity,_=c.exo__Property_minCount,S=r.asArray(h).map(C=>r.wikilinkToIRI(C,s)).filter(C=>C!==null);if(S.length===0)return;let A=r.asArray(g).map(C=>r.wikilinkToIRI(C,s)).filter(C=>C!==null),E=r.cardinalityFromLabel(typeof m=="string"?m:void 0),w=r.severityFromValue(typeof b=="string"?b:void 0),R=(0,T$.parseMinCount)(_);t.register({propertyIRI:p,domain:S,range:A.length>0?A:void 0,cardinality:E,severity:w,minCount:R})}static parseFrontmatter(e){let t=/^---\r?\n([\s\S]*?)\r?\n---/.exec(e);if(!t)return null;let n=t[1],i={},s=n.split(/\r?\n/),o=null,c=null;for(let l of s){let u=/^ {2}- (.*)$/.exec(l);if(u){o&&c&&c.push(u[1].trim());continue}o&&c&&(i[o]=c,o=null,c=null);let f=/^([^:]+):\s*(.*)$/.exec(l);if(!f)continue;let d=f[1].trim(),p=f[2].trim();p===""?(o=d,c=[]):i[d]=p}return o&&c&&(i[o]=c),i}static labelToIRI(e){let t=Er.Namespace.fromPropertyKey(e);if(!t)return null;try{return t.namespace.term(t.localName).value}catch{return null}}static extractWikilinkRef(e){let t=e.replace(/^["']|["']$/g,""),n=/\[\[([^\]]+)\]\]/.exec(t);return n?n[1]:t}static wikilinkToIRI(e,t){let n=r.extractWikilinkRef(e);if(!n)return null;let i=n.split("|"),s=i.length>1?[i[1],i[0]]:[i[0]];for(let c of s){let l=r.labelToIRI(c.trim());if(l)return l}let o=r.datatypeRangeToIRI(n);if(o)return o;if(n.startsWith("sh:"))return Z_+n.substring(3);if(t)for(let c of s){let l=t.get(c.trim().toLowerCase());if(l===void 0)continue;let u=r.labelToIRI(l);if(u)return u}return null}static datatypeRangeToIRI(e){return e.startsWith("http://")||e.startsWith("https://")?e:(0,Kse.xsdDatatypeIRI)(e)}static asArray(e){return Array.isArray(e)?e.map(String):typeof e=="string"?[e]:[]}static cardinalityFromIRI(e){if(e){if(e.endsWith("PropertyCardinalitySingle"))return"Single";if(e.endsWith("PropertyCardinalityMultiple"))return"Multiple";if(e.includes(r.CARDINALITY_SINGLE_UID))return"Single";if(e.includes(r.CARDINALITY_MULTIPLE_UID))return"Multiple"}}static cardinalityFromLabel(e){if(!e)return;let t=r.extractWikilinkRef(e)??e,n=t.split("|").pop()??t;if(n.includes("Single"))return"Single";if(n.includes("Multiple"))return"Multiple";if(t.includes(r.CARDINALITY_SINGLE_UID))return"Single";if(t.includes(r.CARDINALITY_MULTIPLE_UID))return"Multiple"}static severityFromValue(e){return!e||e.includes("Violation")||e===Z_+"Violation"?"sh:Violation":e.includes("Warning")||e===Z_+"Warning"?"sh:Warning":e.includes("Info")||e===Z_+"Info"?"sh:Info":"sh:Violation"}};xo.ShapeLoader=Da;Da.FILE_IRI_UID_RE=/\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.md$/i;Da.BARE_UID_RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;Da.EXO_PROPERTY_UID="38277bfa-d7f9-4a75-b856-b23276ab0db3";Da.EXO_OBJECT_PROPERTY_UID="9a1cf31c-9d41-4ef3-9023-584a8d087d16";Da.CARDINALITY_SINGLE_UID="c93c4b2f-b43d-4cc9-8dd0-31514d608da2";Da.CARDINALITY_MULTIPLE_UID="59a37aa7-ffbe-4e0d-ba60-06ae370d880f"});var LR=T(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.ShapeRegistry=void 0;pd.extractUidFromIRI=DR;pd.validate=aoe;var Yse=De(),FR=class{static{a(this,"ShapeRegistry")}constructor(e=[],t="https://exocortex.my/ontology/exo#Instance_class"){this.shapeMap=new Map(e.map(n=>[n.propertyIRI,n])),this.typePredicateIRI=t}getShape(e){return this.shapeMap.get(e)}getAllShapes(){return Array.from(this.shapeMap.values())}hasShape(e){return this.shapeMap.has(e)}};pd.ShapeRegistry=FR;var Xse="http://www.w3.org/1999/02/22-rdf-syntax-ns#type",Qse=["http://www.w3.org/2001/XMLSchema#","http://www.w3.org/1999/02/22-rdf-syntax-ns#","http://www.w3.org/2000/01/rdf-schema#","http://www.w3.org/2002/07/owl#","http://www.w3.org/ns/shacl#","http://www.w3.org/2004/02/skos/core#","http://purl.org/dc/elements/1.1/","http://purl.org/dc/terms/","http://xmlns.com/foaf/0.1/","https://schema.org/","https://exocortex.my/ontology/xsd#","https://exocortex.my/ontology/rdf#","https://exocortex.my/ontology/rdfs#","https://exocortex.my/ontology/owl#","https://exocortex.my/ontology/skos#"];function Jse(r){return Qse.some(e=>r.startsWith(e))}a(Jse,"isExternalOntologyIRI");var x$=["http://www.w3.org/2001/XMLSchema#","https://exocortex.my/ontology/xsd#"];function I$(r){return x$.some(e=>r.startsWith(e))}a(I$,"isXSDDatatypeIRI");function Zse(r){for(let e of x$)if(r.startsWith(e))return r.substring(e.length);return null}a(Zse,"xsdLocalName");var eoe="http://www.w3.org/2001/XMLSchema#decimal",toe="http://www.w3.org/2001/XMLSchema#integer",R$="http://www.w3.org/2001/XMLSchema#string",Jh=/^[+-]?\d+$/,Zh=/^\+?\d+$/,roe=/^[+-]?(\d+(\.\d*)?|\.\d+)$/,C$=/^([+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?|[+-]?INF|NaN)$/,noe={integer:Jh,long:Jh,int:Jh,short:Jh,byte:Jh,nonNegativeInteger:Zh,unsignedLong:Zh,unsignedInt:Zh,unsignedShort:Zh,unsignedByte:Zh,positiveInteger:/^\+?0*[1-9]\d*$/,nonPositiveInteger:/^(-\d+|\+?0+)$/,negativeInteger:/^-0*[1-9]\d*$/,decimal:roe,float:C$,double:C$,gYear:/^-?\d{4,}(Z|[+-]\d{2}:\d{2})?$/},ioe=/^(true|false)$/;function soe(r,e,t){if(e===t)return!0;let n=Zse(t);if(n===null)return!1;if(e===eoe||e===toe){let i=noe[n];return i!==void 0&&i.test(r)}return e===R$&&n==="boolean"?ioe.test(r):e===R$&&n==="anyURI"?Yse.IRI.isValidIRI(r):!1}a(soe,"literalConformsToDatatype");var ooe=/\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.md$/i;function DR(r){let e=ooe.exec(r);return e?e[1].toLowerCase():null}a(DR,"extractUidFromIRI");function aoe(r,e,t,n){let i=new Map,s=new Map;for(let l of r){let{subject:u,predicate:f,object:d}=l;if(u.type!=="iri"||f.type!=="iri"||d.type!=="iri"&&d.type!=="literal")continue;let p=u.value,h=f.value,g=d;if(h===e.typePredicateIRI||h===Xse){if(g.type==="iri"){let b=i.get(p)??[];b.push(g.value),i.set(p,b);let _=DR(p);if(_){let S=`uid:${_}`,A=i.get(S)??[];A.push(g.value),i.set(S,A)}}}else{let b=s.get(p);b||(b=new Map,s.set(p,b));let _=b.get(h)??[];_.push(g),b.set(h,_)}}let o=[],c=new Set([...i.keys(),...s.keys()]);for(let l of c){if(l.startsWith("uid:"))continue;let u=i.get(l)??[],f=s.get(l)??new Map;for(let d of e.getAllShapes()){if(!(d.domain.length===0||d.domain.some(g=>u.some(m=>m===g||t.isSubClassOf(m,g)))))continue;let h=f.get(d.propertyIRI)??[];if(d.minCount!==void 0&&d.minCount>0&&h.length<d.minCount){o.push({focusNode:l,propertyPath:d.propertyIRI,severity:d.severity,constraint:"minCount",message:d.message??`sh:minCount violation: expected at least ${d.minCount} value(s) for <${d.propertyIRI}>`});continue}if(h.length!==0){if(d.cardinality==="Single"&&h.length>1){o.push({focusNode:l,propertyPath:d.propertyIRI,severity:d.severity,constraint:"maxCount",message:d.message??`sh:maxCount violation: expected at most 1 value for <${d.propertyIRI}>, got ${h.length}`});continue}if(d.range&&d.range.length>0){for(let g of h)if(g.type==="iri"){if(Jse(g.value))continue;let m=d.range.filter(S=>!I$(S));if(m.length===0)continue;let b=i.get(g.value)??[];if(b.length===0){let S=DR(g.value);S&&(b=i.get(`uid:${S}`)??[])}if(!m.some(S=>b.some(A=>A===S||t.isSubClassOf(A,S)))){let S=b.length===0;o.push({focusNode:l,propertyPath:d.propertyIRI,severity:S?"sh:Warning":d.severity,constraint:"class",message:S?`sh:class unresolvable-ref: <${g.value}> has no resolvable type in this vault (cross-vault, symbolic, or external reference); not validated against ${m.join(" | ")}`:d.message??`sh:class violation: <${g.value}> does not conform to expected class ${m.join(" | ")}`,actualValue:g.value,expectedRange:m.join(" | ")})}}else if(g.type==="literal"){let m=d.range.filter(S=>I$(S));if(m.length===0)continue;let b=g.datatype??"http://www.w3.org/2001/XMLSchema#string";m.some(S=>soe(g.value,b,S))||o.push({focusNode:l,propertyPath:d.propertyIRI,severity:d.severity,constraint:"datatype",message:d.message??`sh:datatype violation: literal "${g.value}" has datatype <${b}>, expected ${m.join(" | ")}`,actualValue:g.value,expectedRange:m.join(" | ")})}}}}}if(n?.closedWorldMode)for(let l of c){let u=s.get(l)??new Map;for(let f of u.keys())e.hasShape(f)||o.push({focusNode:l,propertyPath:f,severity:"sh:Warning",constraint:"unknown-property",message:`Unknown property: <${f}> has no registered shape`})}return o.sort((l,u)=>{let f=l.focusNode.localeCompare(u.focusNode);return f!==0?f:l.propertyPath.localeCompare(u.propertyPath)}),{conforms:!o.some(l=>l.severity==="sh:Violation"),violations:o}}a(aoe,"validate")});var P$=T(eS=>{"use strict";Object.defineProperty(eS,"__esModule",{value:!0});eS.ApplicationErrorHandler=void 0;var NR=Co(),coe=Ro(),loe=Ql(),kR=class{static{a(this,"ApplicationErrorHandler")}constructor(e={},t,n){this.logger=t,this.notifier=n,this.telemetryHooks=new Set,this.retryConfig={maxRetries:e.maxRetries??3,initialDelayMs:e.initialDelayMs??1e3,backoffMultiplier:e.backoffMultiplier??2,maxDelayMs:e.maxDelayMs??1e4}}handle(e,t){let n=this.ensureApplicationError(e,t);return this.notifier&&this.notifier.error(n.message),this.callTelemetryHooks("onError",n,t),this.formatError(n)}async executeWithRetry(e,t){let n,i=0;for(;i<=this.retryConfig.maxRetries;)try{return await e()}catch(s){if(n=this.ensureApplicationError(s,t),!n.retriable||i>=this.retryConfig.maxRetries)throw this.callTelemetryHooks("onError",n,t),i>=this.retryConfig.maxRetries&&n.retriable&&this.callTelemetryHooks("onRetryExhausted",n,i+1),n;let o=this.calculateDelay(i);this.callTelemetryHooks("onRetry",n,i+1,o),this.logger?.debug(`Retrying after ${o}ms (attempt ${i+1}/${this.retryConfig.maxRetries})`),await this.sleep(o),i++}throw n}registerTelemetryHook(e){this.telemetryHooks.add(e)}unregisterTelemetryHook(e){this.telemetryHooks.delete(e)}ensureApplicationError(e,t){if(e instanceof NR.ApplicationError){if(t){let i=e,s={...e.context,...t};return new class extends NR.ApplicationError{constructor(){super(...arguments),this.code=i.code,this.retriable=i.retriable,this.guidance=i.guidance}}(e.message,s)}return e}return new class extends NR.ApplicationError{static{a(this,"UnknownError")}constructor(s,o){super(s,{originalError:o.name,...t}),this.code=coe.ErrorCode.UNKNOWN_ERROR,this.retriable=!1,this.guidance="An unexpected error occurred"}}(e.message,e)}formatError(e){let t=[];return t.push(`\u274C ${e.name}: ${e.message}`),e.guidance&&t.push(`\u{1F4A1} ${e.guidance}`),e.context&&Object.keys(e.context).length>0&&t.push(`Context: ${JSON.stringify(e.context,null,2)}`),t.join(`
334
+ \u2022 Contact support if the issue persists`}};Q_.ServiceError=RR});var v$=T(Lr=>{"use strict";Object.defineProperty(Lr,"__esModule",{value:!0});Lr.ServiceError=Lr.ResourceExhaustedError=Lr.NotFoundError=Lr.PermissionError=Lr.StateTransitionError=Lr.NetworkError=Lr.ValidationError=Lr.ApplicationError=Lr.ErrorCode=void 0;var Mse=Ro();Object.defineProperty(Lr,"ErrorCode",{enumerable:!0,get:a(function(){return Mse.ErrorCode},"get")});var jse=Co();Object.defineProperty(Lr,"ApplicationError",{enumerable:!0,get:a(function(){return jse.ApplicationError},"get")});var $se=g$();Object.defineProperty(Lr,"ValidationError",{enumerable:!0,get:a(function(){return $se.ValidationError},"get")});var Use=y$();Object.defineProperty(Lr,"NetworkError",{enumerable:!0,get:a(function(){return Use.NetworkError},"get")});var Bse=b$();Object.defineProperty(Lr,"StateTransitionError",{enumerable:!0,get:a(function(){return Bse.StateTransitionError},"get")});var Vse=_$();Object.defineProperty(Lr,"PermissionError",{enumerable:!0,get:a(function(){return Vse.PermissionError},"get")});var Gse=S$();Object.defineProperty(Lr,"NotFoundError",{enumerable:!0,get:a(function(){return Gse.NotFoundError},"get")});var qse=w$();Object.defineProperty(Lr,"ResourceExhaustedError",{enumerable:!0,get:a(function(){return qse.ResourceExhaustedError},"get")});var Wse=E$();Object.defineProperty(Lr,"ServiceError",{enumerable:!0,get:a(function(){return Wse.ServiceError},"get")})});var xR=T(J_=>{"use strict";Object.defineProperty(J_,"__esModule",{value:!0});J_.ShapeRegistry=void 0;var CR=class{static{a(this,"ShapeRegistry")}constructor(){this.shapes=new Map}get(e){return this.shapes.get(e)}register(e){this.shapes.set(e.propertyIRI,e)}getAll(){return Array.from(this.shapes.values())}get size(){return this.shapes.size}};J_.ShapeRegistry=CR});var A$=T(xo=>{"use strict";var zse=xo&&xo.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=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(r,n,i)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]})),Hse=xo&&xo.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),PR=xo&&xo.__importStar||(function(){var r=a(function(e){return r=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},r(e)},"ownKeys");return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=r(e),i=0;i<n.length;i++)n[i]!=="default"&&zse(t,e,n[i]);return Hse(t,e),t}})();Object.defineProperty(xo,"__esModule",{value:!0});xo.ShapeLoader=void 0;var OR=xR(),Bs=De(),Qh=He(),Er=At(),Kse=c0(),T$=vI(),Z_="http://www.w3.org/ns/shacl#",$Pe=[["exo__",Er.Namespace.EXO],["ems__",Er.Namespace.EMS],["exocmd__",Er.Namespace.EXOCMD],["ims__",Er.Namespace.IMS],["ztlk__",Er.Namespace.ZTLK],["ptms__",Er.Namespace.PTMS],["lit__",Er.Namespace.LIT],["inbox__",Er.Namespace.INBOX],["pmbok__",Er.Namespace.PMBOK]],Da=class r{static{a(this,"ShapeLoader")}static async loadFromVaultFS(e,t){let{readdir:n,readFile:i}=await Promise.resolve().then(()=>PR(require("fs/promises"))),s=await Promise.resolve().then(()=>PR(require("path"))),o=new OR.ShapeRegistry,c={classEdges:[],candidates:[],uidToLabel:new Map};await r.scanDir(e,c,{readdir:n,readFile:t?.readFile??i,path:s});let l=r.propertyClassKeysFromEdges(c.classEdges);for(let u of c.candidates)try{r.registerCandidate(u,o,l,s,c.uidToLabel)}catch{}return o}static async loadFromRDFGraph(e){let t=new OR.ShapeRegistry,n=Er.Namespace.EXO,i=Er.Namespace.RDFS,s=Er.Namespace.RDF,o=await r.buildUidClassIndex(e),c=await r.collectPropertyClassIRIs(e,o),l=await Promise.all([...c].map(async f=>{try{return await e.match(void 0,s.term("type"),new Bs.IRI(f))}catch{return[]}})),u=new Set;for(let f of l.flat())f.subject instanceof Bs.IRI&&u.add(f.subject.value);for(let f of u){let d;try{d=new Bs.IRI(f)}catch{continue}let[p,h,g,m,b,_,S,A,E]=await Promise.all([e.match(d,i.term("domain"),void 0),e.match(d,n.term("Property_domain"),void 0),e.match(d,i.term("range"),void 0),e.match(d,n.term("Property_range"),void 0),e.match(d,n.term("Property_cardinality"),void 0),e.match(d,n.term("Property_severity"),void 0),e.match(d,n.term("Asset_label"),void 0),e.match(d,i.term("label"),void 0),e.match(d,n.term("Property_minCount"),void 0)]),w=[...S,...A],R=[...p,...h],C=[...g,...m];if(R.length===0)continue;let O=null;for(let q of w)if(q.object instanceof Qh.Literal&&(O=r.labelToIRI(q.object.value),O))break;if(!O)continue;let N=await Promise.all(R.map(async q=>q.object instanceof Bs.IRI?await r.resolveClassIRI(q.object.value,e,o):null)),V=Array.from(new Set(N.filter(q=>q!==null))),$=await Promise.all(C.map(async q=>q.object instanceof Bs.IRI?await r.resolveClassIRI(q.object.value,e,o):q.object instanceof Qh.Literal?r.datatypeRangeToIRI(q.object.value):null)),ee=Array.from(new Set($.filter(q=>q!==null))),K=r.cardinalityFromIRI(b[0]?.object instanceof Bs.IRI?b[0].object.value:void 0),M=r.severityFromValue(_[0]?.object instanceof Qh.Literal||_[0]?.object instanceof Bs.IRI?_[0].object.value:void 0),ce=(0,T$.parseMinCount)(E.map(q=>q.object));t.register({propertyIRI:O,domain:V,range:ee.length>0?ee:void 0,cardinality:K,severity:M,minCount:ce})}return t}static async loadFromShapeJSON(e){let{readFile:t}=await Promise.resolve().then(()=>PR(require("fs/promises"))),n=await t(e,"utf-8"),i=JSON.parse(n),s=new OR.ShapeRegistry;for(let o of Object.values(i.shapes))s.register(o);return s}static extractUidFromFileIRI(e){let t=r.FILE_IRI_UID_RE.exec(e);return t?t[1].toLowerCase():null}static async buildUidClassIndex(e){let t=Er.Namespace.RDFS,n=Er.Namespace.EXO,[i,s]=await Promise.all([e.match(void 0,t.term("label"),void 0),e.match(void 0,n.term("Asset_label"),void 0)]),o=new Map;for(let c of[...i,...s]){if(!(c.subject instanceof Bs.IRI)||!(c.object instanceof Qh.Literal))continue;let l=r.extractUidFromFileIRI(c.subject.value);if(!l||o.has(l))continue;let u=c.object.value.trim();if(/\s/.test(u))continue;let f=r.labelToIRI(u);f&&o.set(l,f)}return o}static async collectPropertyClassIRIs(e,t){let n=Er.Namespace.EXO,i=Er.Namespace.RDFS,[s,o]=await Promise.all([e.match(void 0,n.term("Class_superClass"),void 0),e.match(void 0,i.term("subClassOf"),void 0)]),c=new Map,l=a(async p=>{let h=c.get(p);return h===void 0&&(h=await r.resolveClassIRI(p,e,t),c.set(p,h)),h},"canon"),u=new Map;for(let p of[...s,...o]){if(!(p.subject instanceof Bs.IRI)||!(p.object instanceof Bs.IRI))continue;let[h,g]=await Promise.all([l(p.subject.value),l(p.object.value)]);if(!h||!g||h===g)continue;let m=u.get(g)??new Set;m.add(h),u.set(g,m)}let f=new Set([n.term("Property").value,n.term("ObjectProperty").value]),d=[...f];for(;d.length>0;){let p=d.shift();for(let h of u.get(p)??[])f.has(h)||(f.add(h),d.push(h))}return f}static async resolveClassIRI(e,t,n){if(e.startsWith("https://exocortex.my/ontology/")||e.startsWith("http://www.w3.org/"))return e;let i;try{i=new Bs.IRI(e)}catch{return null}let s=Er.Namespace.RDFS,o=Er.Namespace.EXO,[c,l]=await Promise.all([t.match(i,s.term("label"),void 0),t.match(i,o.term("Asset_label"),void 0)]);for(let u of[...c,...l])if(u.object instanceof Qh.Literal){let f=r.labelToIRI(u.object.value);if(f)return f}if(n){let u=r.extractUidFromFileIRI(e);if(u){let f=n.get(u);if(f)return f}}return e}static propertyClassKeysFromEdges(e){let t=["exo__Property",r.EXO_PROPERTY_UID,"exo__ObjectProperty",r.EXO_OBJECT_PROPERTY_UID],n=new Set(t),i=[...t];for(;i.length>0;){let s=i.shift();for(let o of e)if(o.parentKeys.includes(s)&&!o.childKeys.some(c=>n.has(c)))for(let c of o.childKeys)n.add(c),i.push(c)}return n}static wikilinkClassKeys(e){let t=r.extractWikilinkRef(e);if(!t)return[];let n=[t.trim()];for(let i of t.split("|")){let s=i.trim();s.length>0&&n.push(s)}return n}static async scanDir(e,t,n){let i;try{i=await n.readdir(e,{withFileTypes:!0})}catch{return}i.sort((s,o)=>s.name<o.name?-1:s.name>o.name?1:0);for(let s of i){let o=n.path.join(e,s.name);if(s.isDirectory())await r.scanDir(o,t,n);else if(s.isFile()&&s.name.endsWith(".md"))try{await r.collectFile(o,t,n.readFile,n.path)}catch{}}}static async collectFile(e,t,n,i){let s;try{s=await n(e,"utf-8")}catch{return}let o=r.parseFrontmatter(s);if(!o)return;r.indexUidLabel(e,o,t.uidToLabel,i);let c=r.asArray(o.exo__Class_superClass);if(c.length>0){let l=[i.basename(e,".md")],u=o.exo__Asset_uid;typeof u=="string"&&u.trim().length>0&&l.push(u.trim().replace(/^["']|["']$/g,""));let f=o.exo__Asset_label;typeof f=="string"&&f.trim().length>0&&l.push(f.trim().replace(/^["']|["']$/g,"")),t.classEdges.push({childKeys:l,parentKeys:c.flatMap(d=>r.wikilinkClassKeys(d))})}r.asArray(o.exo__Property_domain).length>0&&t.candidates.push({filePath:e,fm:o})}static indexUidLabel(e,t,n,i){let s=t.exo__Asset_label;if(typeof s!="string")return;let o=s.trim().replace(/^["']|["']$/g,"");if(o.length===0||/\s/.test(o)||!Er.Namespace.fromPropertyKey(o))return;let c=t.exo__Asset_uid,l=[typeof c=="string"?c.trim().replace(/^["']|["']$/g,""):"",i.basename(e,".md")];for(let u of l){if(!r.BARE_UID_RE.test(u))continue;let f=u.toLowerCase();n.has(f)||n.set(f,o)}}static registerCandidate(e,t,n,i,s){let{filePath:o,fm:c}=e;if(!r.asArray(c.exo__Instance_class).some(C=>r.wikilinkClassKeys(C).some(O=>n.has(O))))return;let f=null,d=c.exo__Asset_label;if(typeof d=="string"&&d.trim().length>0)f=d.trim().replace(/^["']|["']$/g,"");else{let C=i.basename(o,".md");Er.Namespace.fromPropertyKey(C)&&(f=C)}if(!f)return;let p=r.labelToIRI(f);if(!p)return;let h=c.exo__Property_domain,g=c.exo__Property_range,m=c.exo__Property_cardinality,b=c.exo__Property_severity,_=c.exo__Property_minCount,S=r.asArray(h).map(C=>r.wikilinkToIRI(C,s)).filter(C=>C!==null);if(S.length===0)return;let A=r.asArray(g).map(C=>r.wikilinkToIRI(C,s)).filter(C=>C!==null),E=r.cardinalityFromLabel(typeof m=="string"?m:void 0),w=r.severityFromValue(typeof b=="string"?b:void 0),R=(0,T$.parseMinCount)(_);t.register({propertyIRI:p,domain:S,range:A.length>0?A:void 0,cardinality:E,severity:w,minCount:R})}static parseFrontmatter(e){let t=/^---\r?\n([\s\S]*?)\r?\n---/.exec(e);if(!t)return null;let n=t[1],i={},s=n.split(/\r?\n/),o=null,c=null;for(let l of s){let u=/^ {2}- (.*)$/.exec(l);if(u){o&&c&&c.push(u[1].trim());continue}o&&c&&(i[o]=c,o=null,c=null);let f=/^([^:]+):\s*(.*)$/.exec(l);if(!f)continue;let d=f[1].trim(),p=f[2].trim();p===""?(o=d,c=[]):i[d]=p}return o&&c&&(i[o]=c),i}static labelToIRI(e){let t=Er.Namespace.fromPropertyKey(e);if(!t)return null;try{return t.namespace.term(t.localName).value}catch{return null}}static extractWikilinkRef(e){let t=e.replace(/^["']|["']$/g,""),n=/\[\[([^\]]+)\]\]/.exec(t);return n?n[1]:t}static wikilinkToIRI(e,t){let n=r.extractWikilinkRef(e);if(!n)return null;let i=n.split("|"),s=i.length>1?[i[1],i[0]]:[i[0]];for(let c of s){let l=r.labelToIRI(c.trim());if(l)return l}let o=r.datatypeRangeToIRI(n);if(o)return o;if(n.startsWith("sh:"))return Z_+n.substring(3);if(t)for(let c of s){let l=t.get(c.trim().toLowerCase());if(l===void 0)continue;let u=r.labelToIRI(l);if(u)return u}return null}static datatypeRangeToIRI(e){return e.startsWith("http://")||e.startsWith("https://")?e:(0,Kse.xsdDatatypeIRI)(e)}static asArray(e){return Array.isArray(e)?e.map(String):typeof e=="string"?[e]:[]}static cardinalityFromIRI(e){if(e){if(e.endsWith("PropertyCardinalitySingle"))return"Single";if(e.endsWith("PropertyCardinalityMultiple"))return"Multiple";if(e.includes(r.CARDINALITY_SINGLE_UID))return"Single";if(e.includes(r.CARDINALITY_MULTIPLE_UID))return"Multiple"}}static cardinalityFromLabel(e){if(!e)return;let t=r.extractWikilinkRef(e)??e,n=t.split("|").pop()??t;if(n.includes("Single"))return"Single";if(n.includes("Multiple"))return"Multiple";if(t.includes(r.CARDINALITY_SINGLE_UID))return"Single";if(t.includes(r.CARDINALITY_MULTIPLE_UID))return"Multiple"}static severityFromValue(e){return!e||e.includes("Violation")||e===Z_+"Violation"?"sh:Violation":e.includes("Warning")||e===Z_+"Warning"?"sh:Warning":e.includes("Info")||e===Z_+"Info"?"sh:Info":"sh:Violation"}};xo.ShapeLoader=Da;Da.FILE_IRI_UID_RE=/\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.md$/i;Da.BARE_UID_RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;Da.EXO_PROPERTY_UID="38277bfa-d7f9-4a75-b856-b23276ab0db3";Da.EXO_OBJECT_PROPERTY_UID="9a1cf31c-9d41-4ef3-9023-584a8d087d16";Da.CARDINALITY_SINGLE_UID="c93c4b2f-b43d-4cc9-8dd0-31514d608da2";Da.CARDINALITY_MULTIPLE_UID="59a37aa7-ffbe-4e0d-ba60-06ae370d880f"});var LR=T(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.ShapeRegistry=void 0;pd.extractUidFromIRI=DR;pd.validate=aoe;var Yse=De(),FR=class{static{a(this,"ShapeRegistry")}constructor(e=[],t="https://exocortex.my/ontology/exo#Instance_class"){this.shapeMap=new Map(e.map(n=>[n.propertyIRI,n])),this.typePredicateIRI=t}getShape(e){return this.shapeMap.get(e)}getAllShapes(){return Array.from(this.shapeMap.values())}hasShape(e){return this.shapeMap.has(e)}};pd.ShapeRegistry=FR;var Xse="http://www.w3.org/1999/02/22-rdf-syntax-ns#type",Qse=["http://www.w3.org/2001/XMLSchema#","http://www.w3.org/1999/02/22-rdf-syntax-ns#","http://www.w3.org/2000/01/rdf-schema#","http://www.w3.org/2002/07/owl#","http://www.w3.org/ns/shacl#","http://www.w3.org/2004/02/skos/core#","http://purl.org/dc/elements/1.1/","http://purl.org/dc/terms/","http://xmlns.com/foaf/0.1/","https://schema.org/","https://exocortex.my/ontology/xsd#","https://exocortex.my/ontology/rdf#","https://exocortex.my/ontology/rdfs#","https://exocortex.my/ontology/owl#","https://exocortex.my/ontology/skos#"];function Jse(r){return Qse.some(e=>r.startsWith(e))}a(Jse,"isExternalOntologyIRI");var x$=["http://www.w3.org/2001/XMLSchema#","https://exocortex.my/ontology/xsd#"];function I$(r){return x$.some(e=>r.startsWith(e))}a(I$,"isXSDDatatypeIRI");function Zse(r){for(let e of x$)if(r.startsWith(e))return r.substring(e.length);return null}a(Zse,"xsdLocalName");var eoe="http://www.w3.org/2001/XMLSchema#decimal",toe="http://www.w3.org/2001/XMLSchema#integer",R$="http://www.w3.org/2001/XMLSchema#string",Jh=/^[+-]?\d+$/,Zh=/^\+?\d+$/,roe=/^[+-]?(\d+(\.\d*)?|\.\d+)$/,C$=/^([+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?|[+-]?INF|NaN)$/,noe={integer:Jh,long:Jh,int:Jh,short:Jh,byte:Jh,nonNegativeInteger:Zh,unsignedLong:Zh,unsignedInt:Zh,unsignedShort:Zh,unsignedByte:Zh,positiveInteger:/^\+?0*[1-9]\d*$/,nonPositiveInteger:/^(-\d+|\+?0+)$/,negativeInteger:/^-0*[1-9]\d*$/,decimal:roe,float:C$,double:C$,gYear:/^-?\d{4,}(Z|[+-]\d{2}:\d{2})?$/},ioe=/^(true|false)$/;function soe(r,e,t){if(e===t)return!0;let n=Zse(t);if(n===null)return!1;if(e===eoe||e===toe){let i=noe[n];return i!==void 0&&i.test(r)}return e===R$&&n==="boolean"?ioe.test(r):e===R$&&n==="anyURI"?Yse.IRI.isValidIRI(r):!1}a(soe,"literalConformsToDatatype");var ooe=/\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.md$/i;function DR(r){let e=ooe.exec(r);return e?e[1].toLowerCase():null}a(DR,"extractUidFromIRI");function aoe(r,e,t,n){let i=new Map,s=new Map;for(let d of r){let{subject:p,predicate:h,object:g}=d;if(p.type!=="iri"||h.type!=="iri"||g.type!=="iri"&&g.type!=="literal")continue;let m=p.value,b=h.value,_=g;if(b===e.typePredicateIRI||b===Xse){if(_.type==="iri"){let A=i.get(m)??[];A.push(_.value),i.set(m,A);let E=DR(m);if(E){let w=`uid:${E}`,R=i.get(w)??[];R.push(_.value),i.set(w,R)}}}else{let A=s.get(m);A||(A=new Map,s.set(m,A));let E=A.get(b)??[];E.push(_),A.set(b,E)}}let o=[],c=new Set([...i.keys(),...s.keys()]),l=e.getAllShapes(),u=new Map,f=a(d=>{let p=[...new Set(d)].sort().map(m=>`${m.length}:${m}`).join(""),h=u.get(p);if(h!==void 0)return h;let g=l.filter(m=>m.domain.length===0||m.domain.some(b=>d.some(_=>_===b||t.isSubClassOf(_,b))));return u.set(p,g),g},"applicableShapesFor");for(let d of c){if(d.startsWith("uid:"))continue;let p=i.get(d)??[],h=s.get(d)??new Map;for(let g of f(p)){let m=h.get(g.propertyIRI)??[];if(g.minCount!==void 0&&g.minCount>0&&m.length<g.minCount){o.push({focusNode:d,propertyPath:g.propertyIRI,severity:g.severity,constraint:"minCount",message:g.message??`sh:minCount violation: expected at least ${g.minCount} value(s) for <${g.propertyIRI}>`});continue}if(m.length!==0){if(g.cardinality==="Single"&&m.length>1){o.push({focusNode:d,propertyPath:g.propertyIRI,severity:g.severity,constraint:"maxCount",message:g.message??`sh:maxCount violation: expected at most 1 value for <${g.propertyIRI}>, got ${m.length}`});continue}if(g.range&&g.range.length>0){for(let b of m)if(b.type==="iri"){if(Jse(b.value))continue;let _=g.range.filter(E=>!I$(E));if(_.length===0)continue;let S=i.get(b.value)??[];if(S.length===0){let E=DR(b.value);E&&(S=i.get(`uid:${E}`)??[])}if(!_.some(E=>S.some(w=>w===E||t.isSubClassOf(w,E)))){let E=S.length===0;o.push({focusNode:d,propertyPath:g.propertyIRI,severity:E?"sh:Warning":g.severity,constraint:"class",message:E?`sh:class unresolvable-ref: <${b.value}> has no resolvable type in this vault (cross-vault, symbolic, or external reference); not validated against ${_.join(" | ")}`:g.message??`sh:class violation: <${b.value}> does not conform to expected class ${_.join(" | ")}`,actualValue:b.value,expectedRange:_.join(" | ")})}}else if(b.type==="literal"){let _=g.range.filter(E=>I$(E));if(_.length===0)continue;let S=b.datatype??"http://www.w3.org/2001/XMLSchema#string";_.some(E=>soe(b.value,S,E))||o.push({focusNode:d,propertyPath:g.propertyIRI,severity:g.severity,constraint:"datatype",message:g.message??`sh:datatype violation: literal "${b.value}" has datatype <${S}>, expected ${_.join(" | ")}`,actualValue:b.value,expectedRange:_.join(" | ")})}}}}}if(n?.closedWorldMode)for(let d of c){let p=s.get(d)??new Map;for(let h of p.keys())e.hasShape(h)||o.push({focusNode:d,propertyPath:h,severity:"sh:Warning",constraint:"unknown-property",message:`Unknown property: <${h}> has no registered shape`})}return o.sort((d,p)=>{let h=d.focusNode.localeCompare(p.focusNode);return h!==0?h:d.propertyPath.localeCompare(p.propertyPath)}),{conforms:!o.some(d=>d.severity==="sh:Violation"),violations:o}}a(aoe,"validate")});var P$=T(eS=>{"use strict";Object.defineProperty(eS,"__esModule",{value:!0});eS.ApplicationErrorHandler=void 0;var NR=Co(),coe=Ro(),loe=Ql(),kR=class{static{a(this,"ApplicationErrorHandler")}constructor(e={},t,n){this.logger=t,this.notifier=n,this.telemetryHooks=new Set,this.retryConfig={maxRetries:e.maxRetries??3,initialDelayMs:e.initialDelayMs??1e3,backoffMultiplier:e.backoffMultiplier??2,maxDelayMs:e.maxDelayMs??1e4}}handle(e,t){let n=this.ensureApplicationError(e,t);return this.notifier&&this.notifier.error(n.message),this.callTelemetryHooks("onError",n,t),this.formatError(n)}async executeWithRetry(e,t){let n,i=0;for(;i<=this.retryConfig.maxRetries;)try{return await e()}catch(s){if(n=this.ensureApplicationError(s,t),!n.retriable||i>=this.retryConfig.maxRetries)throw this.callTelemetryHooks("onError",n,t),i>=this.retryConfig.maxRetries&&n.retriable&&this.callTelemetryHooks("onRetryExhausted",n,i+1),n;let o=this.calculateDelay(i);this.callTelemetryHooks("onRetry",n,i+1,o),this.logger?.debug(`Retrying after ${o}ms (attempt ${i+1}/${this.retryConfig.maxRetries})`),await this.sleep(o),i++}throw n}registerTelemetryHook(e){this.telemetryHooks.add(e)}unregisterTelemetryHook(e){this.telemetryHooks.delete(e)}ensureApplicationError(e,t){if(e instanceof NR.ApplicationError){if(t){let i=e,s={...e.context,...t};return new class extends NR.ApplicationError{constructor(){super(...arguments),this.code=i.code,this.retriable=i.retriable,this.guidance=i.guidance}}(e.message,s)}return e}return new class extends NR.ApplicationError{static{a(this,"UnknownError")}constructor(s,o){super(s,{originalError:o.name,...t}),this.code=coe.ErrorCode.UNKNOWN_ERROR,this.retriable=!1,this.guidance="An unexpected error occurred"}}(e.message,e)}formatError(e){let t=[];return t.push(`\u274C ${e.name}: ${e.message}`),e.guidance&&t.push(`\u{1F4A1} ${e.guidance}`),e.context&&Object.keys(e.context).length>0&&t.push(`Context: ${JSON.stringify(e.context,null,2)}`),t.join(`
335
335
  `)}calculateDelay(e){let t=this.retryConfig.initialDelayMs*Math.pow(this.retryConfig.backoffMultiplier,e);return Math.min(t,this.retryConfig.maxDelayMs)}sleep(e){return new Promise(t=>setTimeout(t,e))}callTelemetryHooks(e,...t){for(let n of this.telemetryHooks)try{let i=n[e];i&&i.apply(n,t)}catch(i){loe.LoggingService.error("Error in telemetry hook",i instanceof Error?i:new Error(String(i)))}}};eS.ApplicationErrorHandler=kR});var O$=T(tS=>{"use strict";Object.defineProperty(tS,"__esModule",{value:!0});tS.ApplicationErrorHandler=void 0;var uoe=P$();Object.defineProperty(tS,"ApplicationErrorHandler",{enumerable:!0,get:a(function(){return uoe.ApplicationErrorHandler},"get")})});var F$=T(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0});rS.ClassHierarchy=void 0;var foe="http://www.w3.org/2000/01/rdf-schema#subClassOf",MR=class{static{a(this,"ClassHierarchy")}constructor(e){this.adjacency=new Map;for(let t of e){if(t.predicate.type!=="iri"||t.predicate.value!==foe||t.subject.type!=="iri"||t.object.type!=="iri")continue;let n=t.subject.value,i=t.object.value,s=this.adjacency.get(n);s||(s=new Set,this.adjacency.set(n,s)),s.add(i)}}isSubClassOf(e,t){if(e===t)return!0;let n=new Set,i=[e];for(;i.length>0;){let s=i.shift();if(s===void 0)break;if(n.has(s))continue;n.add(s);let o=this.adjacency.get(s);if(o)for(let c of o){if(c===t)return!0;n.has(c)||i.push(c)}}return!1}getAncestors(e){let t=new Set,n=new Set,i=[e];for(;i.length>0;){let s=i.shift();if(s===void 0)break;if(n.has(s))continue;n.add(s);let o=this.adjacency.get(s);if(o)for(let c of o)t.add(c),n.has(c)||i.push(c)}return t}};rS.ClassHierarchy=MR});var jR=T(nS=>{"use strict";Object.defineProperty(nS,"__esModule",{value:!0});nS.parseTarball=N$;nS.parseTarballGzip=yoe;var doe={0:"file",1:"hardLink",2:"symbolicLink",3:"characterDevice",4:"blockDevice",5:"directory",6:"fifo",7:"contiguousFile",g:"globalExtendedHeader",x:"extendedHeader",D:"gnuDirectory",I:"gnuInodeMetadata",K:"gnuLongLinkName",L:"gnuLongFileName",N:"gnuOldLongFileName",M:"gnuMultiVolume",S:"gnuSparseFile",E:"gnuExtendedSparse"},poe=new Set(["extendedHeader","globalExtendedHeader","gnuLongFileName","gnuOldLongFileName","gnuLongLinkName"]),D$;function L$(){return D$??(D$=new TextDecoder)}a(L$,"getDecoder");function em(r,e,t){let n=r.subarray(e,e+t),i=n.indexOf(0);return L$().decode(i===-1?n:n.subarray(0,i))}a(em,"readString");function hoe(r,e,t){let n="";for(let s=0;s<t;s++)n+=String.fromCodePoint(r[e+s]);let i=Number.parseInt(n,8);return Number.isNaN(i)?0:i}a(hoe,"readNumber");function moe(r){let e=L$().decode(r),t={};for(let n of e.split(`
336
336
  `)){let i=n.indexOf("=");if(i===-1)continue;let s=n.slice(n.indexOf(" ")+1,i),o=n.slice(i+1);s&&(t[s]=o)}return t}a(moe,"parseExtendedHeaders");function goe(r){let e=r.replace(/\\/g,"/");e=e.replace(/^[a-zA-Z]:\//,""),e=e.replace(/^\/+/,"");let t=e.startsWith("./"),n=e.split("/"),i=[];for(let o of n)o===".."?i.pop():o!=="."&&o!==""&&i.push(o);let s=i.join("/");return t&&!s.startsWith("./")&&(s="./"+s),r.endsWith("/")&&!s.endsWith("/")&&(s+="/"),s}a(goe,"sanitizePath");function N$(r){let e=r.byteOffset===0&&r.byteLength===r.buffer.byteLength?r:r.slice(),t=[],n=0,i,s;for(;n+512<=e.byteLength;){let o=em(e,n,100);if(o.length===0)break;let c=!1;if(i){let h=i.path??i.linkpath;h&&(o=h,c=!0)}let l=hoe(e,n+124,12),u=512+512*Math.trunc(l/512)+(l%512?512:0),f=em(e,n+156,1)||"0",d=doe[f]??f;if(d==="extendedHeader"||d==="globalExtendedHeader"){let h=moe(e.subarray(n+512,n+512+l));d==="extendedHeader"?i=h:(i=void 0,s={...s,...h}),n+=u;continue}if(poe.has(d)){i={path:em(e,n+512,l)},n+=u;continue}if(!c&&em(e,n+257,6).startsWith("ustar")){let g=em(e,n+345,155);g.length>0&&(o=`${g}/${o}`)}o=goe(o);let p=l===0?void 0:e.subarray(n+512,n+512+l);t.push({name:o,type:d,size:l,data:p}),i=void 0,n+=u}return t}a(N$,"parseTarball");async function yoe(r){let e=new Uint8Array(r instanceof Uint8Array?r:new Uint8Array(r)),t=new DecompressionStream("gzip"),n=t.writable.getWriter(),[,i]=await Promise.all([n.write(e).then(()=>n.close()),new Response(t.readable).arrayBuffer()]);return N$(new Uint8Array(i))}a(yoe,"parseTarballGzip")});var sS=T(iS=>{"use strict";Object.defineProperty(iS,"__esModule",{value:!0});iS.isBinaryPayload=UR;iS.restCreateCommit=_oe;function UR(r){return typeof r!="string"}a(UR,"isBinaryPayload");var boe="https://api.github.com";function k$(r){if(r!==null&&typeof r=="object"&&"object"in r){let e=r.object;if(e!==null&&typeof e=="object"&&"sha"in e){let t=e.sha;return typeof t=="string"?t:void 0}}}a(k$,"readObjectSha");function $R(r){if(r!==null&&typeof r=="object"&&"sha"in r){let e=r.sha;return typeof e=="string"?e:void 0}}a($R,"readSha");async function _oe(r,e){let{owner:t,repo:n,branch:i,files:s,message:o}=e,c=e.deletions??[],l=(e.baseURL??boe).replace(/\/$/,""),u=e.redact??(O=>O);if(typeof t!="string"||t.length===0)throw new Error("restCreateCommit: owner is required");if(typeof n!="string"||n.length===0)throw new Error("restCreateCommit: repo is required");if(typeof i!="string"||i.length===0)throw new Error("GitHub createCommit: branch is required");if(!(s instanceof Map)||s.size===0&&c.length===0)throw new Error("GitHub createCommit: files map must be non-empty (unless deletions are provided)");let f=new Set;for(let O of c){if(typeof O!="string"||O.length===0)throw new Error("GitHub createCommit: deletion path must be a non-empty string");if(s.has(O))throw new Error(u(`GitHub createCommit: path ${O} is both written and deleted \u2014 ambiguous`));f.add(O)}if(typeof o!="string"||o.length===0)throw new Error("GitHub createCommit: message is required");let d=encodeURIComponent(t),p=encodeURIComponent(n),h=encodeURIComponent(i),g=await r({method:"GET",url:`${l}/repos/${d}/${p}/git/refs/heads/${h}`}),m=k$(g?.json);if(typeof m!="string"||m.length===0)throw new Error(u(`GitHub createCommit: missing object.sha for ref heads/${i}`));if(e.expectedHeadSha!==void 0&&m!==e.expectedHeadSha)throw new Error(u(`GitHub createCommit: head heads/${i} moved since the caller's check (expected ${e.expectedHeadSha}, found ${m}) \u2014 refusing to avoid overwriting a concurrent change`));let b=new Map;for(let[O,N]of s){if(!UR(N))continue;let V=await r({method:"POST",url:`${l}/repos/${d}/${p}/git/blobs`,contentType:"application/json",body:JSON.stringify({content:N.base64,encoding:"base64"})}),$=$R(V?.json);if(typeof $!="string"||$.length===0)throw new Error(u(`GitHub createCommit: blob create returned no sha for ${O}`));b.set(O,$)}let _=Array.from(s.entries()).map(([O,N])=>UR(N)?{path:O,mode:"100644",type:"blob",sha:b.get(O)}:{path:O,mode:"100644",type:"blob",content:N});for(let O of f)_.push({path:O,mode:"100644",type:"blob",sha:null});let S=await r({method:"POST",url:`${l}/repos/${d}/${p}/git/trees`,contentType:"application/json",body:JSON.stringify({base_tree:m,tree:_})}),A=$R(S?.json);if(typeof A!="string"||A.length===0)throw new Error(u("GitHub createCommit: tree create returned no sha"));let E=await r({method:"POST",url:`${l}/repos/${d}/${p}/git/commits`,contentType:"application/json",body:JSON.stringify({message:o,tree:A,parents:[m]})}),w=$R(E?.json);if(typeof w!="string"||w.length===0)throw new Error(u("GitHub createCommit: commit create returned no sha"));let R=await r({method:"PATCH",url:`${l}/repos/${d}/${p}/git/refs/heads/${h}`,contentType:"application/json",body:JSON.stringify({sha:w,force:!1})}),C=k$(R?.json);if(C!==w)throw new Error(u(`GitHub createCommit: ref update mismatch (expected ${w}, got ${C})`));return w}a(_oe,"restCreateCommit")});var $$=T(Li=>{"use strict";Object.defineProperty(Li,"__esModule",{value:!0});Li.MATERIALIZE_PROGRESS_MIN_FILES=Li.MATERIALIZE_PROGRESS_INTERVAL=void 0;Li.discoverWrapperDir=M$;Li.extractShaFromWrapper=j$;Li.mountAssetSpaceFiles=Eoe;Li.escapeGitmodulesRegex=VR;Li.appendGitmodulesEntry=voe;Li.stripGitmodulesEntry=Toe;var Soe=jR(),BR=new Set(["globalExtendedHeader","extendedHeader"]);function oS(r){let e=r.replace(/\\/g,"/").replace(/\/+/g,"/");for(;e.startsWith("./");)e=e.slice(2);return e}a(oS,"normalizeEntryPath");function M$(r){let e=r.find(s=>!BR.has(s.type)&&oS(s.name).includes("/"));if(e===void 0)throw new Error("discoverWrapperDir: no wrapper-bearing entry in tarball");let t=oS(e.name),n=t.slice(0,t.indexOf("/"));if(n.length===0)throw new Error(`discoverWrapperDir: empty wrapper segment in entry "${e.name}"`);let i=n+"/";for(let s of r){if(BR.has(s.type))continue;let o=oS(s.name);if(!(o===n||o===i)&&!o.startsWith(i))throw new Error(`discoverWrapperDir: entry "${s.name}" not under wrapper "${n}"`)}return n}a(M$,"discoverWrapperDir");function j$(r){let e=r.match(/-([0-9a-fA-F]{7,40})$/);if(e===null)throw new Error(`extractShaFromWrapper: wrapper "${r}" does not match expected GitHub pattern <owner>-<repo>-<sha>`);return e[1].toLowerCase()}a(j$,"extractShaFromWrapper");function woe(r,e){let t=e+"/",n=[];for(let i of r){if(i.type==="symbolicLink"||i.type==="hardLink")throw new Error(`${i.type} entry "${i.name}" rejected for security`);if(BR.has(i.type)||i.type==="directory")continue;let s=oS(i.name);if(s===e||s===t)continue;if(!s.startsWith(t))throw new Error(`entry "${i.name}" not under wrapper "${e}"`);let o=s.slice(t.length);if(o.length!==0){if(o.split("/").some(c=>c===".."))throw new Error(`path traversal detected for entry "${i.name}"`);i.data!==void 0&&n.push({relPath:o,content:i.data})}}return n}a(woe,"buildMountFiles");Li.MATERIALIZE_PROGRESS_INTERVAL=200;Li.MATERIALIZE_PROGRESS_MIN_FILES=500;async function Eoe(r){let{http:e,fs:t,owner:n,repo:i,ref:s,targetPath:o}=r,c=a((b,_)=>{if(r.onProgress!==void 0)try{r.onProgress(b,_)}catch{}},"emit");c("fetch");let l=await e.fetchTarball(n,i,s);c("extract");let u=await(0,Soe.parseTarballGzip)(l);if(u.length===0)throw new Error(`tarball empty for ${n}/${i}@${s}`);let f=M$(u),d=j$(f),p=woe(u,f);c("materialize");let h=p.length,g=r.onProgress!==void 0&&h>Li.MATERIALIZE_PROGRESS_MIN_FILES,m=await t.materialize(o,p,g?b=>{b%Li.MATERIALIZE_PROGRESS_INTERVAL===0&&b<h&&c("materialize",{processed:b,total:h})}:void 0);return{sha:d,fileCount:m}}a(Eoe,"mountAssetSpaceFiles");function VR(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}a(VR,"escapeGitmodulesRegex");function voe(r,e,t){let n=new RegExp(`^\\s*\\[submodule\\s+"${VR(e)}"\\]`,"m");if(r.length>0&&n.test(r))return{content:r,added:!1};let i=r.length===0||r.endsWith(`
337
337
  `)?"":`
@@ -705,7 +705,7 @@ Next steps:
705
705
  `).map(n=>n.trim()).filter(n=>n.length>0),t=e[e.length-1];if(t!==void 0)try{return JSON.parse(t)}catch{return}}a(Fwe,"parseLastJsonLine");function vG(r,e){return e.filter(t=>{let n=r[t];return typeof n!="string"||n.trim().length===0})}a(vG,"missingStringFields");var HE=class{constructor(e){this.deps=e}static{a(this,"McpServer")}async handle(e){if(typeof e!="object"||e===null||Array.isArray(e))return{jsonrpc:"2.0",id:null,error:{code:EG,message:"Invalid request: expected a JSON-RPC object"}};let t=e.id,n=t===void 0;if(typeof e.method!="string")return n?null:{jsonrpc:"2.0",id:t??null,error:{code:EG,message:"Invalid request: missing method"}};if(n)return null;let i=t??null;switch(e.method){case"initialize":return{jsonrpc:"2.0",id:i,result:{protocolVersion:Pwe,capabilities:{tools:{}},serverInfo:{name:"exocortex",version:this.deps.version}}};case"ping":return{jsonrpc:"2.0",id:i,result:{}};case"tools/list":return{jsonrpc:"2.0",id:i,result:{tools:wG}};case"tools/call":return{jsonrpc:"2.0",id:i,result:await this.callTool(e.params??{})};default:return{jsonrpc:"2.0",id:i,error:{code:Owe,message:`Method not found: ${e.method}`}}}}async callTool(e){let t=e.name,n=e.arguments??{},i;if(t==="create_asset"){let c=vG(n,["vault","class","label"]);if(c.length>0)return Tp(`create_asset: missing required argument(s): ${c.join(", ")}`,!0);let l=bG(n);if(l!==null)return Tp(`create_asset: ${l}`,!0);i=_G(n)}else if(t==="create_effort"){let c=vG(n,["vault","command","target"]);if(c.length>0)return Tp(`create_effort: missing required argument(s): ${c.join(", ")}`,!0);i=SG(n)}else return Tp(`Unknown tool: ${String(t)}`,!0);let s=await this.deps.runCli(i);if(s.exitCode!==0){let c=s.stderr.trim()||s.stdout.trim()||"(no diagnostic output)";return Tp(`exocortex-cli exited ${s.exitCode}
706
706
  ${c}`,!0)}let o=Fwe(s.stdout);return Tp(o===void 0?s.stdout.trim():JSON.stringify(o))}};var IG=require("child_process");var Dwe=32*1024*1024;function RG(r){return e=>new Promise(t=>{(0,IG.execFile)(process.execPath,[r,...e],{maxBuffer:Dwe},(n,i,s)=>{let o=0;if(n){let c=n.code;o=typeof c=="number"?c:1}t({stdout:i,stderr:s,exitCode:o})})})}a(RG,"createSelfCliRunner");async function Lwe(r,e,t){let n=(0,CG.createInterface)({input:e,crlfDelay:1/0});for await(let i of n){let s=i.trim();if(s.length===0)continue;let o;try{o=JSON.parse(s)}catch{t(JSON.stringify({jsonrpc:"2.0",id:null,error:{code:TG,message:"Parse error: invalid JSON"}})+`
707
707
  `);continue}let c;try{c=await r.handle(o)}catch(l){c={jsonrpc:"2.0",id:typeof o?.id=="string"||typeof o?.id=="number"?o.id:null,error:{code:AG,message:`Internal error: ${l instanceof Error?l.message:String(l)}`}}}c!==null&&t(JSON.stringify(c)+`
708
- `)}}a(Lwe,"runStdioServer");function xG(r){return new pe("mcp").description("Run an MCP (Model Context Protocol) stdio server exposing create_asset / create_effort tools backed by this CLI").option("--entry <path>","Path to the CLI entry script the tools invoke (defaults to this process's script)").action(async e=>{let t=e.entry??process.argv[1],n=new HE({runCli:RG(t),version:r??"unknown"});await Lwe(n,process.stdin,i=>process.stdout.write(i))})}a(xG,"mcpCommand");function KE(r){let e=new pe;return e.name("exocortex").description("CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more").version(r??"16.257.5"),e.addCommand(aV()),e.addCommand(yV()),e.addCommand(V8()),e.addCommand(z8()),e.addCommand(p7()),e.addCommand(H8()),e.addCommand(J8()),e.addCommand(Z8()),e.addCommand(w7()),e.addCommand(I7()),e.addCommand(W7()),e.addCommand(X7()),e.addCommand(eV()),e.addCommand(tV()),e.addCommand(nV()),e.addCommand(iV()),e.addCommand(UV()),e.addCommand(GV()),e.addCommand(oG()),e.addCommand(cG()),e.addCommand(fG()),e.addCommand(dG()),e.addCommand(mG()),e.addCommand(YV()),e.addCommand(nG()),e.addCommand(gG()),e.addCommand(xG(r??"16.257.5")),e}a(KE,"createProgram");KE().parse();0&&(module.exports={createProgram});
708
+ `)}}a(Lwe,"runStdioServer");function xG(r){return new pe("mcp").description("Run an MCP (Model Context Protocol) stdio server exposing create_asset / create_effort tools backed by this CLI").option("--entry <path>","Path to the CLI entry script the tools invoke (defaults to this process's script)").action(async e=>{let t=e.entry??process.argv[1],n=new HE({runCli:RG(t),version:r??"unknown"});await Lwe(n,process.stdin,i=>process.stdout.write(i))})}a(xG,"mcpCommand");function KE(r){let e=new pe;return e.name("exocortex").description("CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more").version(r??"16.257.7"),e.addCommand(aV()),e.addCommand(yV()),e.addCommand(V8()),e.addCommand(z8()),e.addCommand(p7()),e.addCommand(H8()),e.addCommand(J8()),e.addCommand(Z8()),e.addCommand(w7()),e.addCommand(I7()),e.addCommand(W7()),e.addCommand(X7()),e.addCommand(eV()),e.addCommand(tV()),e.addCommand(nV()),e.addCommand(iV()),e.addCommand(UV()),e.addCommand(GV()),e.addCommand(oG()),e.addCommand(cG()),e.addCommand(fG()),e.addCommand(dG()),e.addCommand(mG()),e.addCommand(YV()),e.addCommand(nG()),e.addCommand(gG()),e.addCommand(xG(r??"16.257.7")),e}a(KE,"createProgram");KE().parse();0&&(module.exports={createProgram});
709
709
  /*! Bundled license information:
710
710
 
711
711
  reflect-metadata/Reflect.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitelev/exocortex-cli",
3
- "version": "16.257.5",
3
+ "version": "16.257.7",
4
4
  "description": "CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more",
5
5
  "main": "dist/index.js",
6
6
  "bin": {