@kitelev/exocortex-cli 16.130.4 → 16.130.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -3
- 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.130.
|
|
2
|
+
// @kitelev/exocortex-cli v16.130.5
|
|
3
3
|
// CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more
|
|
4
4
|
// License: MIT
|
|
5
5
|
|
|
@@ -102,7 +102,7 @@ ${i}
|
|
|
102
102
|
${o}`}};Qm.MetadataHelpers=r1});var j3=w(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});ic.TASK_DEFAULT_WORKFLOW=ic.PROJECT_DEFAULT_WORKFLOW=void 0;ic.buildWorkflowAssetContent=qU;var M3=Si(),Wf=Gc(),je=Wc(),Qr=N3(),n1=co();ic.PROJECT_DEFAULT_WORKFLOW={id:"a1b2c3d4-1111-4000-a000-000000000001",name:"Project Default Workflow",targetClass:Wf.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}]};ic.TASK_DEFAULT_WORKFLOW={id:"a1b2c3d4-2222-4000-a000-000000000002",name:"Task Default Workflow",targetClass:Wf.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 qU(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:Wf.AssetClass.WORKFLOW,[Qr.WorkflowProperty.TARGET_CLASS]:`"[[${n.targetClass}]]"`,[Qr.WorkflowProperty.INITIAL_STATE]:`"[[${n.initialState}]]"`,[Qr.WorkflowProperty.TERMINAL_STATES]:n.terminalStates.map(s=>`"[[${s}]]"`),[Qr.WorkflowProperty.IS_DEFAULT]:n.isDefault};t.push({filename:`${r}.md`,content:n1.MetadataHelpers.buildFileContent(i)});for(let s of n.states){let o=(0,M3.v4)(),c={exo__Asset_uid:o,exo__Asset_label:`"${n.name} - ${s.status}"`,exo__Asset_createdAt:e,exo__Instance_class:Wf.AssetClass.WORKFLOW_STATE,[Qr.WorkflowStateProperty.WORKFLOW]:`"[[${r}]]"`,[Qr.WorkflowStateProperty.STATUS]:`"[[${s.status}]]"`,[Qr.WorkflowStateProperty.ORDER]:s.order,[Qr.WorkflowStateProperty.OPTIONAL]:s.optional};s.timestampOnEnter.length>0&&(c[Qr.WorkflowStateProperty.TIMESTAMP_ON_ENTER]=s.timestampOnEnter),s.badgeColor&&(c[Qr.WorkflowStateProperty.BADGE_COLOR]=`"${s.badgeColor}"`),t.push({filename:`${o}.md`,content:n1.MetadataHelpers.buildFileContent(c)})}for(let s of n.transitions){let o=(0,M3.v4)(),c={exo__Asset_uid:o,exo__Asset_label:`"${n.name} - ${s.label}"`,exo__Asset_createdAt:e,exo__Instance_class:Wf.AssetClass.WORKFLOW_TRANSITION,[Qr.WorkflowTransitionProperty.WORKFLOW]:`"[[${r}]]"`,[Qr.WorkflowTransitionProperty.FROM]:`"[[${s.from}]]"`,[Qr.WorkflowTransitionProperty.TO]:`"[[${s.to}]]"`,[Qr.WorkflowTransitionProperty.LABEL]:`"${s.label}"`,[Qr.WorkflowTransitionProperty.IS_ROLLBACK]:s.isRollback};s.icon&&(c[Qr.WorkflowTransitionProperty.ICON]=`"${s.icon}"`),t.push({filename:`${o}.md`,content:n1.MetadataHelpers.buildFileContent(c)})}return t}a(qU,"buildWorkflowAssetContent")});var s1=w(lo=>{"use strict";var GU=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},WU=lo&&lo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(lo,"__esModule",{value:!0});lo.WorkflowResolver=void 0;var zU=Ue(),Dl=Ae(),Xr=Ve(),Et=zt(),sc=Gc(),Xm=Wc(),$3=j3(),i1=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 Dl.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 Dl.IRI?f.value.endsWith(e.replace(/^ems__/,"")):f instanceof Xr.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 Xr.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 Xr.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 Xr.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)??Xm.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(_=>{let S=_.object instanceof Xr.Literal?_.object.value:"";return S==="true"||S==="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:[Xm.EffortStatus.DONE,Xm.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(E=>this.isSameSubject(E.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 Xr.Literal&&parseInt(f[0].object.value,10)||0,p=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_optional"),void 0)).some(E=>{let T=E.object instanceof Xr.Literal?E.object.value:"";return T==="true"||T==="1"}),g=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_timestampOnEnter"),void 0)).map(E=>E.object instanceof Xr.Literal?E.object.value:"").filter(E=>E.length>0),_=await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowState_badgeColor"),void 0),S=_.length>0&&_[0].object instanceof Xr.Literal?_[0].object.value:void 0;r.push({status:u,order:d,optional:p,timestampOnEnter:g,badgeColor:S})}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 Xr.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 Xr.Literal?y[0].object.value:void 0,S=(await this.tripleStore.match(s,Et.Namespace.EMS.term("WorkflowTransition_isRollback"),void 0)).some(A=>{let x=A.object instanceof Xr.Literal?A.object.value:"";return x==="true"||x==="1"}),T=(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:S,postActions:T.length>0?T: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 Dl.IRI||e instanceof Xr.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 sc.AssetClass.TASK;let t=e[0].object;if(t instanceof Dl.IRI){let i=`ems__${t.value.split("#").pop()??""}`;return Object.values(sc.AssetClass).includes(i)?i:sc.AssetClass.TASK}if(t instanceof Xr.Literal){let r=this.normalizeWikilink(t.value);return Object.values(sc.AssetClass).includes(r)?r:sc.AssetClass.TASK}return sc.AssetClass.TASK}resolveEffortStatus(e){if(e.length===0)return null;let t=e[0].object,r;if(t instanceof Dl.IRI)r=`ems__${t.value.split("#").pop()??""}`;else if(t instanceof Xr.Literal)r=this.normalizeWikilink(t.value);else return null;return Object.values(Xm.EffortStatus).includes(r)?r:null}resolveEffortStatuses(e){return e.map(t=>this.resolveEffortStatus([t])).filter(t=>t!==null)}isSameSubject(e,t){if(e instanceof Dl.IRI)return e.value===t.value;if(e instanceof Xr.Literal){let r=this.normalizeWikilink(e.value);return t.value.includes(r)}return!1}getHardcodedFallback(e){return e===sc.AssetClass.PROJECT?{...$3.PROJECT_DEFAULT_WORKFLOW}:{...$3.TASK_DEFAULT_WORKFLOW}}};lo.WorkflowResolver=i1;lo.WorkflowResolver=i1=GU([(0,zU.injectable)(),WU("design:paramtypes",[Object])],i1)});var l1=w(ra=>{"use strict";Object.defineProperty(ra,"__esModule",{value:!0});ra.TransactionError=ra.TripleNotFoundError=ra.TripleAlreadyExistsError=void 0;var o1=class extends Error{static{a(this,"TripleAlreadyExistsError")}constructor(e){super(`Triple already exists: ${e.toString()}`),this.name="TripleAlreadyExistsError"}};ra.TripleAlreadyExistsError=o1;var a1=class extends Error{static{a(this,"TripleNotFoundError")}constructor(e){super(`Triple not found: ${e.toString()}`),this.name="TripleNotFoundError"}};ra.TripleNotFoundError=a1;var c1=class extends Error{static{a(this,"TransactionError")}constructor(e){super(e),this.name="TransactionError"}};ra.TransactionError=c1});var Jm=w(Ym=>{"use strict";Object.defineProperty(Ym,"__esModule",{value:!0});Ym.LRUCache=void 0;var u1=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}};Ym.LRUCache=u1});var h1=w(eg=>{"use strict";Object.defineProperty(eg,"__esModule",{value:!0});eg.InMemoryTripleStore=void 0;var na=l1(),Zm=Ae(),HU=Mt(),KU=Ve(),QU=zt(),XU=Jm(),YU=QU.Namespace.XSD.term("string").value,JU=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,Ll="__default__",f1=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 XU.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 d1(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 Zm.IRI(s));return i}addToUUIDIndex(e){if(!(e instanceof Zm.IRI))return;let t=e.value,r=t.match(JU);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 Zm.IRI)return`i:${e.value}`;if(e instanceof HU.BlankNode)return`b:${e.id}`;if(e instanceof KU.Literal){let t=`l:${e.value}`;return e.datatype&&e.datatype.value!==YU?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:Ll}getOrCreateGraphStore(e){let t=this.getGraphKey(e);return t===Ll?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===Ll)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===Ll)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 Zm.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===Ll){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===Ll)return this.count();let r=this.namedGraphs.get(t);return r?r.count():0}};eg.InMemoryTripleStore=f1;var d1=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 na.TransactionError("Transaction already committed");if(this.rolledBack)throw new na.TransactionError("Transaction already rolled back");this.operations.push({type:"add",triple:e})}async remove(e){if(this.committed)throw new na.TransactionError("Transaction already committed");if(this.rolledBack)throw new na.TransactionError("Transaction already rolled back");return this.operations.push({type:"remove",triple:e}),!0}async commit(){if(this.committed)throw new na.TransactionError("Transaction already committed");if(this.rolledBack)throw new na.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 na.TransactionError("Transaction already committed");if(this.rolledBack)throw new na.TransactionError("Transaction already rolled back");this.operations=[],this.rolledBack=!0}}});var rg=w(uo=>{"use strict";var ZU=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},eB=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.EffortStatusWorkflow=void 0;var tB=Ue(),tg=qo(),rB=Gf(),nB=s1(),iB=h1(),p1=class{static{a(this,"EffortStatusWorkflow")}constructor(){this.resolver=new nB.WorkflowResolver(new iB.InMemoryTripleStore)}setResolver(e){this.resolver=e}getPreviousStatus(e,t){let r=this.normalizeStatus(e),i=this.resolveDefinition(t),s=new rB.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,tg.AssetClass.TASK)||this.hasInstanceClass(e,tg.AssetClass.MEETING)?this.resolver.getHardcodedFallback(tg.AssetClass.TASK):this.resolver.getHardcodedFallback(tg.AssetClass.PROJECT)}hasInstanceClass(e,t){return e?(Array.isArray(e)?e:[e]).some(i=>i.replace(/["'[\]]/g,"").trim()===t):!1}};uo.EffortStatusWorkflow=p1;uo.EffortStatusWorkflow=p1=ZU([(0,tB.injectable)(),eB("design:paramtypes",[])],p1)});var Ut=w(ng=>{"use strict";Object.defineProperty(ng,"__esModule",{value:!0});ng.DI_TOKENS=void 0;ng.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 ig=w(Ai=>{"use strict";var sB=Ai&&Ai.__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=Ai&&Ai.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},aB=Ai&&Ai.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Ai,"__esModule",{value:!0});Ai.StatusTimestampService=void 0;var U3=Ue(),cB=ys(),Nl=Ln(),lB=Ut(),m1=class{static{a(this,"StatusTimestampService")}constructor(e){this.vault=e,this.frontmatterService=new cB.FrontmatterService}async addStartTimestamp(e){let t=await this.vault.read(e),r=Nl.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=Nl.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=Nl.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=Nl.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=Nl.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=Nl.DateFormatter.toLocalTimestamp(c),u=this.frontmatterService.updateProperty(r,"ems__Effort_plannedEndTimestamp",l);await this.vault.modify(e,u)}};Ai.StatusTimestampService=m1;Ai.StatusTimestampService=m1=sB([(0,U3.injectable)(),aB(0,(0,U3.inject)(lB.DI_TOKENS.IVaultAdapter)),oB("design:paramtypes",[Object])],m1)});var y1=w(Ii=>{"use strict";var uB=Ii&&Ii.__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=Ii&&Ii.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},dB=Ii&&Ii.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Ii,"__esModule",{value:!0});Ii.TaskStatusService=void 0;var B3=Ue(),hB=ys(),pB=Ln(),mB=rg(),gB=ig(),yB=Ut(),g1=class{static{a(this,"TaskStatusService")}constructor(e,t,r){this.vault=e,this.timestampService=r,this.frontmatterService=new hB.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=pB.DateFormatter.toLocalTimestamp(r),s=this.frontmatterService.updateProperty(t,"ems__Effort_plannedStartTimestamp",i);await this.vault.modify(e,s)}};Ii.TaskStatusService=g1;Ii.TaskStatusService=g1=uB([(0,B3.injectable)(),dB(0,(0,B3.inject)(yB.DI_TOKENS.IVaultAdapter)),fB("design:paramtypes",[Object,mB.EffortStatusWorkflow,gB.StatusTimestampService])],g1)});var _1=w(sg=>{"use strict";Object.defineProperty(sg,"__esModule",{value:!0});sg.MetadataExtractor=void 0;var bB=co(),b1=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 bB.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}};sg.MetadataExtractor=b1});var S1=w(Ri=>{"use strict";var _B=Ri&&Ri.__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},wB=Ri&&Ri.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},SB=Ri&&Ri.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Ri,"__esModule",{value:!0});Ri.AreaCreationService=void 0;var V3=Ue(),q3=Si(),vB=qo(),EB=Ln(),TB=_1(),G3=co(),xB=Ut(),w1=class{static{a(this,"AreaCreationService")}constructor(e){this.vault=e}async createChildArea(e,t,r){let i=(0,q3.v4)(),s=`${i}.md`,o=this.generateChildAreaFrontmatter(t,e.basename,r,i),c=G3.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=EB.DateFormatter.toLocalTimestamp(s),c=TB.MetadataExtractor.extractIsDefinedBy(e),l={};if(l.exo__Asset_isDefinedBy=G3.MetadataHelpers.ensureQuoted(c),l.exo__Asset_uid=i||(0,q3.v4)(),l.exo__Asset_createdAt=o,l.exo__Instance_class=[`"[[${vB.AssetClass.AREA}]]"`],l.ems__Area_parent=`"[[${t}]]"`,r&&r.trim()!==""){let u=r.trim();l.exo__Asset_label=u,l.aliases=[u]}return l}};Ri.AreaCreationService=w1;Ri.AreaCreationService=w1=_B([(0,V3.injectable)(),SB(0,(0,V3.inject)(xB.DI_TOKENS.IVaultAdapter)),wB("design:paramtypes",[Object])],w1)});var E1=w(Ci=>{"use strict";var AB=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},IB=Ci&&Ci.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},RB=Ci&&Ci.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Ci,"__esModule",{value:!0});Ci.AreaHierarchyBuilder=void 0;var W3=Ue(),z3=qo(),CB=Ut(),og=Xs(),v1=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)!==z3.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)?og.WikiLinkHelpers.normalize(String(t[0]||"")):og.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)===z3.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 og.WikiLinkHelpers.normalize(String(r))}return og.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}}};Ci.AreaHierarchyBuilder=v1;Ci.AreaHierarchyBuilder=v1=AB([(0,W3.injectable)(),RB(0,(0,W3.inject)(CB.DI_TOKENS.IVaultAdapter)),IB("design:paramtypes",[Object])],v1)});var x1=w(Pi=>{"use strict";var PB=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},OB=Pi&&Pi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},FB=Pi&&Pi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Pi,"__esModule",{value:!0});Pi.ClassCreationService=void 0;var H3=Ue(),DB=Si(),LB=Ln(),NB=co(),kB=Ut(),T1=class{static{a(this,"ClassCreationService")}constructor(e){this.vault=e}async createSubclass(e,t,r){let i=(0,DB.v4)(),s=this.generateFileName(t),o=s.endsWith(".md")?s:`${s}.md`,c=this.generateClassFrontmatter(e.basename,t,i,r),l=NB.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=LB.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}};Pi.ClassCreationService=T1;Pi.ClassCreationService=T1=PB([(0,H3.injectable)(),FB(0,(0,H3.inject)(kB.DI_TOKENS.IVaultAdapter)),OB("design:paramtypes",[Object])],T1)});var I1=w(Oi=>{"use strict";var MB=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},jB=Oi&&Oi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},$B=Oi&&Oi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Oi,"__esModule",{value:!0});Oi.ConceptCreationService=void 0;var K3=Ue(),UB=Si(),BB=Ln(),VB=co(),qB=qo(),GB=Ut(),A1=class{static{a(this,"ConceptCreationService")}constructor(e){this.vault=e}async createNarrowerConcept(e,t,r,i){let s=(0,UB.v4)(),o=t.endsWith(".md")?t:`${t}.md`,c=this.generateConceptFrontmatter(e.basename,r,i,s),l=VB.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=BB.DateFormatter.toLocalTimestamp(s),c={};return c.exo__Asset_isDefinedBy='"[[!concepts]]"',c.exo__Asset_uid=i,c.exo__Asset_createdAt=o,c.exo__Instance_class=[`"[[${qB.AssetClass.CONCEPT}]]"`],c.ims__Concept_broader=`"[[${e}]]"`,c.ims__Concept_definition=t,r.length>0&&(c.aliases=r),c}};Oi.ConceptCreationService=A1;Oi.ConceptCreationService=A1=MB([(0,K3.injectable)(),$B(0,(0,K3.inject)(GB.DI_TOKENS.IVaultAdapter)),jB("design:paramtypes",[Object])],A1)});var Q3=w(ho=>{"use strict";var WB=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},zB=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.InstantiationRuleResolver=void 0;var HB=Ue(),R1=Ae(),kl=Ve(),fo=zt(),C1=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,fo.Namespace.RDF.term("type"),fo.Namespace.EXO.term("InstantiationRule"));for(let r of t){let i=r.subject;if((await this.tripleStore.match(i,fo.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,fo.Namespace.EXO.term("rule_prototypeUID"),void 0),r=t.length>0&&t[0].object instanceof kl.Literal?t[0].object.value:null,i=await this.tripleStore.match(e,fo.Namespace.EXO.term("rule_defaultFolder"),void 0),s=i.length>0&&i[0].object instanceof kl.Literal?i[0].object.value:null,o=await this.tripleStore.match(e,fo.Namespace.EXO.term("rule_propertySetRules"),void 0),c=[];for(let l of o){let u=l.object;if(!(u instanceof R1.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,fo.Namespace.EXO.term("rule_property"),void 0);if(t.length===0)return null;let r=t[0].object,i=r instanceof R1.IRI?this.extractLocalName(r):r instanceof kl.Literal?this.normalizeWikilink(r.value):null;if(!i)return null;let s=await this.tripleStore.match(e,fo.Namespace.EXO.term("rule_value"),void 0),o=s.length>0&&s[0].object instanceof kl.Literal?s[0].object.value:"",c=await this.tripleStore.match(e,fo.Namespace.EXO.term("rule_valueType"),void 0),l=c.length>0&&c[0].object instanceof kl.Literal?c[0].object.value:"literal";return{property:i,value:o,valueType:l}}matchesTargetClass(e,t){return e instanceof R1.IRI?this.extractLocalName(e)===t:e instanceof kl.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()}};ho.InstantiationRuleResolver=C1;ho.InstantiationRuleResolver=C1=WB([(0,HB.injectable)(),zB("design:paramtypes",[Object])],C1)});var X3=w(po=>{"use strict";var KB=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},QB=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.VisibilityGenerator=void 0;var XB=Ue(),YB=Gf(),P1=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}}};po.VisibilityGenerator=P1;po.VisibilityGenerator=P1=KB([(0,XB.injectable)(),QB("design:paramtypes",[YB.WorkflowEngine])],P1)});var Y3=w(mo=>{"use strict";var JB=mo&&mo.__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},ZB=mo&&mo.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)};Object.defineProperty(mo,"__esModule",{value:!0});mo.WorkflowCommandAdapter=void 0;var eV=Ue(),O1=Bo(),tV=Gf(),F1=class{static{a(this,"WorkflowCommandAdapter")}constructor(e){this.workflow=e,this.engine=new tV.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:O1.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:O1.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:O1.GroundingType.COMPOSITE,steps:t}}shortStatus(e){return e.replace("ems__EffortStatus","").toLowerCase()}};mo.WorkflowCommandAdapter=F1;mo.WorkflowCommandAdapter=F1=JB([(0,eV.injectable)(),ZB("design:paramtypes",[Object])],F1)});var L1=w(Fi=>{"use strict";var rV=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},nV=Fi&&Fi.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},iV=Fi&&Fi.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Fi,"__esModule",{value:!0});Fi.EffortVotingService=void 0;var J3=Ue(),sV=Ut(),D1=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}---`)}};Fi.EffortVotingService=D1;Fi.EffortVotingService=D1=rV([(0,J3.injectable)(),iV(0,(0,J3.inject)(sV.DI_TOKENS.IVaultAdapter)),nV("design:paramtypes",[Object])],D1)});var k1=w(N1=>{"use strict";Object.defineProperty(N1,"__esModule",{value:!0});N1.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 j1=w(Di=>{"use strict";var aV=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},cV=Di&&Di.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},lV=Di&&Di.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Di,"__esModule",{value:!0});Di.FolderRepairService=void 0;var Z3=Ue(),uV=Ut(),fV=k1(),M1=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,fV.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
|
|
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}---`)}};Fi.EffortVotingService=D1;Fi.EffortVotingService=D1=rV([(0,J3.injectable)(),iV(0,(0,J3.inject)(sV.DI_TOKENS.IVaultAdapter)),nV("design:paramtypes",[Object])],D1)});var k1=w(N1=>{"use strict";Object.defineProperty(N1,"__esModule",{value:!0});N1.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 j1=w(Di=>{"use strict";var aV=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},cV=Di&&Di.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},lV=Di&&Di.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Di,"__esModule",{value:!0});Di.FolderRepairService=void 0;var Z3=Ue(),uV=Ut(),fV=k1(),M1=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,fV.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}}};Di.FolderRepairService=M1;Di.FolderRepairService=M1=aV([(0,Z3.injectable)(),lV(0,(0,Z3.inject)(uV.DI_TOKENS.IVaultAdapter)),cV("design:paramtypes",[Object])],M1)});var B1=w(Li=>{"use strict";var dV=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},hV=Li&&Li.__metadata||function(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)},eC=Li&&Li.__param||function(n,e){return function(t,r){e(t,r,n)}};Object.defineProperty(Li,"__esModule",{value:!0});Li.PropertyCleanupService=void 0;var $1=Ue(),tC=Ut(),pV=Kc(),U1=class{static{a(this,"PropertyCleanupService")}constructor(e,t=pV.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(S=>{let E=S.replace(/^\s+- /,"").trim();return this.isEmptyValue(E)})){c=g;continue}else{o.push(u);for(let S=c+1;S<g;S++)o.push(s[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}
|
|
@@ -625,7 +625,7 @@ Orphan requirements (${n.orphans.length}) \u2014 no @req binding (warning):`);fo
|
|
|
625
625
|
Duplicate bindings (${n.duplicates.length}) \u2014 uid claimed by >1 test (warning):`);for(let e of n.duplicates){console.error(` ${e.uid}:`);for(let t of e.occurrences)console.error(` ${t.file}:${t.line}`)}}n.unknownPriority>0&&console.error(`
|
|
626
626
|
Skipped floor check for ${n.unknownPriority} requirement(s) with unparseable priority (fail-open).`),n.clean?console.log(`
|
|
627
627
|
OK: no hard findings (dangling tags + binding-class floor are clean).`):console.error(`
|
|
628
|
-
FAIL: ${n.dangling.length} dangling + ${n.floorViolations.length} floor violation(s).`)}a(jse,"renderText");function nj(){return new pe("audit").description("Audit requirement\u2194test traceability: orphans, dangling @req tags, duplicate bindings, binding-class floor, coverage").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).action(async n=>{let e=n.output??"text";ne.setFormat(e);try{let t=(0,Ox.resolve)(n.reqs);if(!(0,Wu.existsSync)(t)||!(0,Wu.statSync)(t).isDirectory())throw new ze(t);let r=(0,Ox.resolve)(n.tests??".");if(!(0,Wu.existsSync)(r)||!(0,Wu.statSync)(r).isDirectory())throw new ze(r);let[i,s]=await Promise.all([Dse(t),Nse(r)]),o=kse(i,s);e==="json"?console.log(JSON.stringify(o,null,2)):jse(o),(!o.clean||n.strict===!0&&o.orphans.length>0)&&(process.exitCode=1)}catch(t){ne.handle(t)}})}a(nj,"requirementsAuditCommand");function ij(){let n=new pe("requirements").description("Requirements-management tooling (RFC 0003): traceability checker");return n.addCommand(nj()),n}a(ij,"requirementsCommand");function sj(n){let e=new pe;return e.name("exocortex").description("CLI tool for Exocortex knowledge management system").version(n??"16.130.
|
|
628
|
+
FAIL: ${n.dangling.length} dangling + ${n.floorViolations.length} floor violation(s).`)}a(jse,"renderText");function nj(){return new pe("audit").description("Audit requirement\u2194test traceability: orphans, dangling @req tags, duplicate bindings, binding-class floor, coverage").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).action(async n=>{let e=n.output??"text";ne.setFormat(e);try{let t=(0,Ox.resolve)(n.reqs);if(!(0,Wu.existsSync)(t)||!(0,Wu.statSync)(t).isDirectory())throw new ze(t);let r=(0,Ox.resolve)(n.tests??".");if(!(0,Wu.existsSync)(r)||!(0,Wu.statSync)(r).isDirectory())throw new ze(r);let[i,s]=await Promise.all([Dse(t),Nse(r)]),o=kse(i,s);e==="json"?console.log(JSON.stringify(o,null,2)):jse(o),(!o.clean||n.strict===!0&&o.orphans.length>0)&&(process.exitCode=1)}catch(t){ne.handle(t)}})}a(nj,"requirementsAuditCommand");function ij(){let n=new pe("requirements").description("Requirements-management tooling (RFC 0003): traceability checker");return n.addCommand(nj()),n}a(ij,"requirementsCommand");function sj(n){let e=new pe;return e.name("exocortex").description("CLI tool for Exocortex knowledge management system").version(n??"16.130.5"),e.addCommand(Z4()),e.addCommand(lM()),e.addCommand(Kk()),e.addCommand(Jk()),e.addCommand(S4()),e.addCommand(t4()),e.addCommand(r4()),e.addCommand(T4()),e.addCommand(D4()),e.addCommand(N4()),e.addCommand(U4()),e.addCommand(X4()),e.addCommand(xM()),e.addCommand(VM()),e.addCommand(qM()),e.addCommand(zM()),e.addCommand(HM()),e.addCommand(YM()),e.addCommand(ej()),e.addCommand(FM()),e.addCommand($M()),e.addCommand(ij()),e}a(sj,"createProgram");sj().parse();0&&(module.exports={createProgram});
|
|
629
629
|
/*! Bundled license information:
|
|
630
630
|
|
|
631
631
|
reflect-metadata/Reflect.js:
|
package/package.json
CHANGED