@kitelev/exocortex-cli 15.47.2 → 15.47.3
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 +2 -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 v15.47.
|
|
2
|
+
// @kitelev/exocortex-cli v15.47.3
|
|
3
3
|
// CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more
|
|
4
4
|
// License: MIT
|
|
5
5
|
|
|
@@ -635,7 +635,7 @@ ${hr.dump(i,{lineWidth:-1})}---
|
|
|
635
635
|
States (${s.states.length}):`);for(let a of s.states){let c=a.optional?" (optional)":"",l=a.timestampOnEnter.length>0?` [timestamps: ${a.timestampOnEnter.join(", ")}]`:"";console.log(` ${a.order}. ${a.status}${c}${l}`)}console.log(`
|
|
636
636
|
Transitions (${s.transitions.length}):`);for(let a of s.transitions){let c=a.isRollback?" (rollback)":"";console.log(` ${a.label}: ${a.from} \u2192 ${a.to}${c}`)}}}catch(i){V.handle(i)}}),n.command("validate").description("Validate a workflow definition").argument("<uid>","UID of the workflow asset").option("--vault <path>","Path to Obsidian vault",process.cwd()).option("--output <type>","Response format: text|json","text").action(async(e,t)=>{let r=t.output||"text";V.setFormat(r);try{let i=(0,Rc.resolve)(t.vault);if(!(0,ms.existsSync)(i))throw new Be(i);let s=RI(i,e);if(!s){if(r==="json"){let l=ce.success({error:`Workflow with UID "${e}" not found`});console.log(JSON.stringify(l,null,2))}else console.log(`\u274C Workflow with UID "${e}" not found.`);process.exitCode=1;return}let c=new mi.WorkflowEngine(s).validate();if(r==="json"){let l=ce.success({workflow:s.name,uid:s.id,...c});console.log(JSON.stringify(l,null,2))}else if(c.valid)console.log(`\u2705 Workflow "${s.name}" is valid.`);else{console.log(`\u274C Workflow "${s.name}" has ${c.errors.length} error(s):
|
|
637
637
|
`);for(let l of c.errors)console.log(` \u2022 ${l}`);process.exitCode=1}}catch(i){V.handle(i)}}),n}o(PI,"workflowCommand");var FI=new mi.FrontmatterService;function DI(n){let e=[],t=[];NI(n,t);for(let{filePath:r,fm:i}of t){let s=i.exo__Instance_class;if(!s||!(Array.isArray(s)?s.some(p=>p.includes("ems__Workflow")&&!p.includes("WorkflowState")&&!p.includes("WorkflowTransition")):typeof s=="string"&&s.includes("ems__Workflow")&&!s.includes("WorkflowState")&&!s.includes("WorkflowTransition")))continue;let c=i.exo__Asset_uid??"",l=i.exo__Asset_label??uB(r),u=ps(i.ems__Workflow_targetClass??"ems__Task"),f=i.ems__Workflow_isDefault===!0||i.ems__Workflow_isDefault==="true",h=0,d=0;for(let{fm:p}of t){let y=p.exo__Instance_class;if(!ps(p.ems__WorkflowState_workflow??p.ems__WorkflowTransition_workflow??"").includes(c))continue;let S=Array.isArray(y)?y.some(F=>F.includes("ems__WorkflowState")):typeof y=="string"&&y.includes("ems__WorkflowState"),x=Array.isArray(y)?y.some(F=>F.includes("ems__WorkflowTransition")):typeof y=="string"&&y.includes("ems__WorkflowTransition");S&&h++,x&&d++}e.push({filePath:r,uid:c,label:l,targetClass:u,isDefault:f,stateCount:h,transitionCount:d})}return e}o(DI,"scanWorkflows");function NI(n,e){let t;try{t=(0,ms.readdirSync)(n,{withFileTypes:!0})}catch{return}for(let r of t){let i=(0,Rc.join)(n,r.name);if(r.isDirectory()){if(r.name.startsWith(".")||r.name==="node_modules")continue;NI(i,e)}else if(r.name.endsWith(".md"))try{let s=(0,ms.readFileSync)(i,"utf-8"),a=FI.parse(s);a.exists&&e.push({filePath:i,fm:kI(a.content)})}catch{}}}o(NI,"collectParsedFiles");function RI(n,e){let r=DI(n).find(i=>i.uid===e);if(!r)return null;try{let i=(0,ms.readFileSync)(r.filePath,"utf-8"),s=FI.parse(i);if(!s.exists)return null;let a=kI(s.content),c=ps(a.ems__Workflow_targetClass??"ems__Task"),l=ps(a.ems__Workflow_initialState??"ems__EffortStatusDraft"),u=Oc(l)??mi.EffortStatus.DRAFT,h=(Array.isArray(a.ems__Workflow_terminalStates)?a.ems__Workflow_terminalStates.map(S=>ps(S)):[]).map(Oc).filter(S=>S!==null),d=a.ems__Workflow_isDefault===!0||a.ems__Workflow_isDefault==="true",y=(Array.isArray(a.ems__Workflow_states)?a.ems__Workflow_states:[]).map((S,x)=>typeof S=="string"?{status:Oc(ps(S))??mi.EffortStatus.DRAFT,order:x+1,optional:!1,timestampOnEnter:[]}:{status:Oc(ps(S.status??""))??mi.EffortStatus.DRAFT,order:S.order??x+1,optional:S.optional===!0||S.optional==="true",timestampOnEnter:Array.isArray(S.timestampOnEnter)?S.timestampOnEnter:[],badgeColor:S.badgeColor}),T=(Array.isArray(a.ems__Workflow_transitions)?a.ems__Workflow_transitions:[]).map(S=>{let x=Oc(ps(S.from??"")),F=Oc(ps(S.to??""));return!x||!F?null:{from:x,to:F,label:S.label??`${x} \u2192 ${F}`,icon:S.icon,isRollback:S.isRollback===!0||S.isRollback==="true"}}).filter(S=>S!==null);return{id:e,name:r.label,targetClass:c,states:y,transitions:T,initialState:u,terminalStates:h.length>0?h:[mi.EffortStatus.DONE,mi.EffortStatus.TRASHED],isDefault:d}}catch{return null}}o(RI,"loadWorkflowByUid");function kI(n){let e={},t=n.split(`
|
|
638
|
-
`),r="",i=null;for(let s of t){if(s.match(/^\s+-\s+/)&&r){let c=s.replace(/^\s+-\s+/,"").trim();i||(i=[]),i.push(c),e[r]=i;continue}let a=s.match(/^([a-zA-Z0-9_]+):\s*(.*)/);if(a){r=a[1],i=null;let c=a[2].trim();if((c.startsWith('"')&&c.endsWith('"')||c.startsWith("'")&&c.endsWith("'"))&&(c=c.slice(1,-1)),c==="true"?c=!0:c==="false"&&(c=!1),c===""){e[r]=[],i=e[r];continue}e[r]=c}}return e}o(kI,"parseYamlFrontmatter");function ps(n){return typeof n!="string"?"":n.replace(/["'[\]]/g,"").trim()}o(ps,"normalizeWikilink");function uB(n){let e=n.split("/");return e[e.length-1].replace(/\.md$/,"")}o(uB,"extractLabelFromFilename");function Oc(n){return Object.values(mi.EffortStatus).includes(n)?n:null}o(Oc,"resolveEffortStatus");var Rr=new Ge;Rr.name("exocortex").description("CLI tool for Exocortex knowledge management system").version("15.47.
|
|
638
|
+
`),r="",i=null;for(let s of t){if(s.match(/^\s+-\s+/)&&r){let c=s.replace(/^\s+-\s+/,"").trim();i||(i=[]),i.push(c),e[r]=i;continue}let a=s.match(/^([a-zA-Z0-9_]+):\s*(.*)/);if(a){r=a[1],i=null;let c=a[2].trim();if((c.startsWith('"')&&c.endsWith('"')||c.startsWith("'")&&c.endsWith("'"))&&(c=c.slice(1,-1)),c==="true"?c=!0:c==="false"&&(c=!1),c===""){e[r]=[],i=e[r];continue}e[r]=c}}return e}o(kI,"parseYamlFrontmatter");function ps(n){return typeof n!="string"?"":n.replace(/["'[\]]/g,"").trim()}o(ps,"normalizeWikilink");function uB(n){let e=n.split("/");return e[e.length-1].replace(/\.md$/,"")}o(uB,"extractLabelFromFilename");function Oc(n){return Object.values(mi.EffortStatus).includes(n)?n:null}o(Oc,"resolveEffortStatus");var Rr=new Ge;Rr.name("exocortex").description("CLI tool for Exocortex knowledge management system").version("15.47.3");var Gv=Rr.command("sparql").description("SPARQL query execution and cache management");Gv.addCommand($A());Gv.addCommand(qA());Gv.addCommand(WA());Rr.addCommand(JC());Rr.addCommand(tI());Rr.addCommand(rI());Rr.addCommand(iI());Rr.addCommand(sI());Rr.addCommand(uI());Rr.addCommand(pI());Rr.addCommand(yI());Rr.addCommand(wI());Rr.addCommand(xI());Rr.addCommand(II());Rr.addCommand(OI());Rr.addCommand(PI());Rr.parse();
|
|
639
639
|
/*! Bundled license information:
|
|
640
640
|
|
|
641
641
|
reflect-metadata/Reflect.js:
|