@kitelev/exocortex-cli 15.52.0 → 15.53.0

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 +2 -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.52.0
2
+ // @kitelev/exocortex-cli v15.53.0
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 @@ ${mr.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,Wc.resolve)(t.vault);if(!(0,As.existsSync)(i))throw new qe(i);let s=lO(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 vi.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(uO,"workflowCommand");var fO=new vi.FrontmatterService;function hO(n){let e=[],t=[];dO(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??Aq(r),u=Ts(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 v=p.exo__Instance_class;if(!Ts(p.ems__WorkflowState_workflow??p.ems__WorkflowTransition_workflow??"").includes(c))continue;let S=Array.isArray(v)?v.some(F=>F.includes("ems__WorkflowState")):typeof v=="string"&&v.includes("ems__WorkflowState"),A=Array.isArray(v)?v.some(F=>F.includes("ems__WorkflowTransition")):typeof v=="string"&&v.includes("ems__WorkflowTransition");S&&h++,A&&d++}e.push({filePath:r,uid:c,label:l,targetClass:u,isDefault:f,stateCount:h,transitionCount:d})}return e}o(hO,"scanWorkflows");function dO(n,e){let t;try{t=(0,As.readdirSync)(n,{withFileTypes:!0})}catch{return}for(let r of t){let i=(0,Wc.join)(n,r.name);if(r.isDirectory()){if(r.name.startsWith(".")||r.name==="node_modules")continue;dO(i,e)}else if(r.name.endsWith(".md"))try{let s=(0,As.readFileSync)(i,"utf-8"),a=fO.parse(s);a.exists&&e.push({filePath:i,fm:pO(a.content)})}catch{}}}o(dO,"collectParsedFiles");function lO(n,e){let r=hO(n).find(i=>i.uid===e);if(!r)return null;try{let i=(0,As.readFileSync)(r.filePath,"utf-8"),s=fO.parse(i);if(!s.exists)return null;let a=pO(s.content),c=Ts(a.ems__Workflow_targetClass??"ems__Task"),l=Ts(a.ems__Workflow_initialState??"ems__EffortStatusDraft"),u=qc(l)??vi.EffortStatus.DRAFT,h=(Array.isArray(a.ems__Workflow_terminalStates)?a.ems__Workflow_terminalStates.map(S=>Ts(S)):[]).map(qc).filter(S=>S!==null),d=a.ems__Workflow_isDefault===!0||a.ems__Workflow_isDefault==="true",v=(Array.isArray(a.ems__Workflow_states)?a.ems__Workflow_states:[]).map((S,A)=>typeof S=="string"?{status:qc(Ts(S))??vi.EffortStatus.DRAFT,order:A+1,optional:!1,timestampOnEnter:[]}:{status:qc(Ts(S.status??""))??vi.EffortStatus.DRAFT,order:S.order??A+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 A=qc(Ts(S.from??"")),F=qc(Ts(S.to??""));return!A||!F?null:{from:A,to:F,label:S.label??`${A} \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:v,transitions:T,initialState:u,terminalStates:h.length>0?h:[vi.EffortStatus.DONE,vi.EffortStatus.TRASHED],isDefault:d}}catch{return null}}o(lO,"loadWorkflowByUid");function pO(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(pO,"parseYamlFrontmatter");function Ts(n){return typeof n!="string"?"":n.replace(/["'[\]]/g,"").trim()}o(Ts,"normalizeWikilink");function Aq(n){let e=n.split("/");return e[e.length-1].replace(/\.md$/,"")}o(Aq,"extractLabelFromFilename");function qc(n){return Object.values(vi.EffortStatus).includes(n)?n:null}o(qc,"resolveEffortStatus");var Dr=new He;Dr.name("exocortex").description("CLI tool for Exocortex knowledge management system").version("15.52.0");var v_=Dr.command("sparql").description("SPARQL query execution and cache management");v_.addCommand(vC());v_.addCommand(SC());v_.addCommand(EC());Dr.addCommand(RP());Dr.addCommand(NP());Dr.addCommand(kP());Dr.addCommand(MP());Dr.addCommand(jP());Dr.addCommand(qP());Dr.addCommand(zP());Dr.addCommand(XP());Dr.addCommand(ZP());Dr.addCommand(iO());Dr.addCommand(oO());Dr.addCommand(cO());Dr.addCommand(uO());Dr.parse();
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(pO,"parseYamlFrontmatter");function Ts(n){return typeof n!="string"?"":n.replace(/["'[\]]/g,"").trim()}o(Ts,"normalizeWikilink");function Aq(n){let e=n.split("/");return e[e.length-1].replace(/\.md$/,"")}o(Aq,"extractLabelFromFilename");function qc(n){return Object.values(vi.EffortStatus).includes(n)?n:null}o(qc,"resolveEffortStatus");var Dr=new He;Dr.name("exocortex").description("CLI tool for Exocortex knowledge management system").version("15.53.0");var v_=Dr.command("sparql").description("SPARQL query execution and cache management");v_.addCommand(vC());v_.addCommand(SC());v_.addCommand(EC());Dr.addCommand(RP());Dr.addCommand(NP());Dr.addCommand(kP());Dr.addCommand(MP());Dr.addCommand(jP());Dr.addCommand(qP());Dr.addCommand(zP());Dr.addCommand(XP());Dr.addCommand(ZP());Dr.addCommand(iO());Dr.addCommand(oO());Dr.addCommand(cO());Dr.addCommand(uO());Dr.parse();
639
639
  /*! Bundled license information:
640
640
 
641
641
  reflect-metadata/Reflect.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitelev/exocortex-cli",
3
- "version": "15.52.0",
3
+ "version": "15.53.0",
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": {