@kitelev/exocortex-cli 15.65.3 → 15.66.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.
- 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.
|
|
2
|
+
// @kitelev/exocortex-cli v15.66.0
|
|
3
3
|
// CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more
|
|
4
4
|
// License: MIT
|
|
5
5
|
|
|
@@ -648,7 +648,7 @@ ${Cr.dump(i,{lineWidth:-1})}---
|
|
|
648
648
|
\u{1F50D} Dry-run: command "${l.name}" on "${t.target}"
|
|
649
649
|
`),console.log(" Precondition: passed \u2705"),console.log(" Grounding (would execute):"),Hb(l.grounding," ");return}let h=new Bt.ServiceRegistry,p=new Dt(i),b=await new Bt.GroundingExecutor(p,p,h).execute(l.grounding,u,t.target);if(r==="json"){let E=Z.success({command:l.name,target:t.target,preconditionPassed:!0,executed:!0,success:b.success,...b.error&&{error:b.error},...l.successMessage&&b.success&&{message:l.successMessage}});console.log(JSON.stringify(E,null,2))}else if(b.success){let E=l.successMessage??`Command "${l.name}" executed successfully.`;console.log(`\u2705 ${E}`)}else console.log(`\u274C Command "${l.name}" failed: ${b.error}`),process.exitCode=5}catch(i){k.handle(i)}}),n.command("validate").description("Validate all dynamic command definitions in vault").option("--vault <path>","Path to Obsidian vault",process.cwd()).option("--output <type>","Response format: text|json","text").action(async e=>{let t=e.output||"text";k.setFormat(t);try{let r=(0,ls.resolve)(e.vault);if(!(0,cs.existsSync)(r))throw new Ie(r);let i=nH(r);if(t==="json"){let s=Z.success({totalCommands:Wb(r).length,totalIssues:i.reduce((a,c)=>a+c.issues.length,0),commandsWithIssues:i.length,issues:i});console.log(JSON.stringify(s,null,2))}else{let s=Wb(r);if(i.length===0)console.log(`\u2705 All ${s.length} dynamic command(s) are valid.`);else{let a=i.reduce((c,l)=>c+l.issues.length,0);console.log(`\u274C Found ${a} issue(s) in ${i.length} command(s) out of ${s.length} total:
|
|
650
650
|
`);for(let c of i){console.log(` \u{1F4C4} ${c.label} (${c.uid}):`);for(let l of c.issues)console.log(` \u2022 ${l}`);console.log()}process.exitCode=5}}}catch(r){k.handle(r)}}),n}o(pR,"dynamicCommandCommand");function Wb(n){let e=[],t=[];zb(n,t);for(let{filePath:r,fm:i}of t){if(!Al(i,"exocmd__Command"))continue;let s=i.exo__Asset_uid??"",a=i.exo__Asset_label??mR(r),c=i.exocmd__Command_category,l=i.exocmd__Command_icon,u=!!i.exocmd__Command_precondition,f=i.exocmd__Command_grounding,d;if(f){let h=ag(String(f)),p=t.find(_=>_.fm.exo__Asset_uid===h&&Al(_.fm,"exocmd__Grounding"));p&&(d=p.fm.exocmd__Grounding_type)}e.push({filePath:r,uid:s,label:a,category:c,icon:l,hasPrecondition:u,groundingType:d})}return e}o(Wb,"scanCommands");async function rH(n,e){let{tripleStore:t}=await Gb(n),r=new Bt.CommandResolver(t),i=await r.findBindings(),s=new Set;for(let c of i)s.add(c.commandRef);let a=[];for(let c of s){let l=await r.loadCommand(c);l&&a.push({filePath:"",uid:l.id,label:l.name,category:l.category,icon:l.icon,hasPrecondition:!!l.precondition,groundingType:l.grounding.type})}return a}o(rH,"listCommandsForTarget");function nH(n){let e=[],t=[];zb(n,t);let r=new Map;for(let i of t){let s=i.fm.exo__Asset_uid;s&&r.set(s,i)}for(let{filePath:i,fm:s}of t){if(!Al(s,"exocmd__Command"))continue;let a=s.exo__Asset_uid??"",c=s.exo__Asset_label??mR(i),l=[];a||l.push("Missing exo__Asset_uid"),s.exo__Asset_label||l.push("Missing exo__Asset_label");let u=s.exocmd__Command_grounding;if(!u)l.push("Missing exocmd__Command_grounding (required)");else{let h=ag(String(u)),p=r.get(h);if(!p)l.push(`Grounding reference "${h}" not found in vault`);else if(!Al(p.fm,"exocmd__Grounding"))l.push(`Grounding reference "${h}" is not an exocmd__Grounding asset`);else{let _=p.fm,b=_.exocmd__Grounding_type;b?(Object.values(Bt.GroundingType).includes(b)||l.push(`Grounding "${h}" has invalid type "${b}"`),(b===Bt.GroundingType.PROPERTY_SET||b===Bt.GroundingType.PROPERTY_DELETE)&&!_.exocmd__Grounding_targetProperty&&l.push(`Grounding "${h}" (${b}) missing targetProperty`),b===Bt.GroundingType.PROPERTY_SET&&!_.exocmd__Grounding_targetValue&&l.push(`Grounding "${h}" (property_set) missing targetValue`)):l.push(`Grounding "${h}" missing exocmd__Grounding_type`)}}let f=s.exocmd__Command_precondition;if(f){let h=ag(String(f)),p=r.get(h);p?Al(p.fm,"exocmd__Precondition")?p.fm.exocmd__Precondition_sparqlAsk||l.push(`Precondition "${h}" missing sparqlAsk`):l.push(`Precondition reference "${h}" is not an exocmd__Precondition asset`):l.push(`Precondition reference "${h}" not found in vault`)}t.some(h=>Al(h.fm,"exocmd__CommandBinding")?ag(String(h.fm.exocmd__CommandBinding_command??""))===a:!1)||l.push("No CommandBinding references this command (command will be unused)"),l.length>0&&e.push({uid:a,label:c,filePath:i,issues:l})}return e}o(nH,"validateCommands");async function Gb(n){let e=new Wr(n),r=await new Bt.NoteToRDFConverter(e).convertVault(),i=new Bt.InMemoryTripleStore;return await i.addAll(r),{tripleStore:i}}o(Gb,"buildTripleStore");function Hb(n,e){if(console.log(`${e}ID: ${n.id}`),console.log(`${e}Label: ${n.label}`),console.log(`${e}Type: ${n.type}`),n.targetProperty&&console.log(`${e}Target property: ${n.targetProperty}`),n.targetValue!==void 0&&console.log(`${e}Target value: ${n.targetValue}`),n.sparqlUpdate&&console.log(`${e}SPARQL UPDATE: ${n.sparqlUpdate}`),n.steps&&n.steps.length>0){console.log(`${e}Steps (${n.steps.length}):`);for(let t=0;t<n.steps.length;t++)console.log(`${e} Step ${t+1}:`),Hb(n.steps[t],e+" ")}}o(Hb,"printGrounding");function zb(n,e){let t;try{t=(0,cs.readdirSync)(n,{withFileTypes:!0})}catch{return}for(let r of t){let i=(0,ls.join)(n,r.name);if(r.isDirectory()){if(r.name.startsWith(".")||r.name==="node_modules")continue;zb(i,e)}else if(r.name.endsWith(".md"))try{let s=(0,cs.readFileSync)(i,"utf-8"),a=tH.parse(s);a.exists&&e.push({filePath:i,fm:iH(a.content)})}catch{}}}o(zb,"collectParsedFiles");function iH(n){let e={},t=n.split(`
|
|
651
|
-
`),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(iH,"parseYamlFrontmatter");function Al(n,e){let t=n.exo__Instance_class;if(!t)return!1;let r=Array.isArray(t)?t:[t];for(let i of r){if(typeof i!="string")continue;let s=i.match(/\[\[([^|\]]+)/);if((s?s[1]:i)===e)return!0}return!1}o(Al,"hasClass");function ag(n){return typeof n!="string"?"":n.replace(/["'[\]]/g,"").trim()}o(ag,"normalizeWikilink");function mR(n){return(0,ls.basename)(n,".md")}o(mR,"extractLabelFromFilename");var Dr=new qe;Dr.name("exocortex").description("CLI tool for Exocortex knowledge management system").version("15.
|
|
651
|
+
`),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(iH,"parseYamlFrontmatter");function Al(n,e){let t=n.exo__Instance_class;if(!t)return!1;let r=Array.isArray(t)?t:[t];for(let i of r){if(typeof i!="string")continue;let s=i.match(/\[\[([^|\]]+)/);if((s?s[1]:i)===e)return!0}return!1}o(Al,"hasClass");function ag(n){return typeof n!="string"?"":n.replace(/["'[\]]/g,"").trim()}o(ag,"normalizeWikilink");function mR(n){return(0,ls.basename)(n,".md")}o(mR,"extractLabelFromFilename");var Dr=new qe;Dr.name("exocortex").description("CLI tool for Exocortex knowledge management system").version("15.66.0");var Qb=Dr.command("sparql").description("SPARQL query execution and cache management");Qb.addCommand(yO());Qb.addCommand(SO());Qb.addCommand(wO());Dr.addCommand(II());Dr.addCommand(FI());Dr.addCommand(NI());Dr.addCommand(LI());Dr.addCommand(MI());Dr.addCommand(BI());Dr.addCommand(HI());Dr.addCommand(YI());Dr.addCommand(JI());Dr.addCommand(nR());Dr.addCommand(aR());Dr.addCommand(oR());Dr.addCommand(lR());Dr.addCommand(pR());Dr.parse();
|
|
652
652
|
/*! Bundled license information:
|
|
653
653
|
|
|
654
654
|
reflect-metadata/Reflect.js:
|