@kitelev/exocortex-cli 16.88.1 → 16.88.2
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 v16.88.
|
|
2
|
+
// @kitelev/exocortex-cli v16.88.2
|
|
3
3
|
// CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more
|
|
4
4
|
// License: MIT
|
|
5
5
|
|
|
@@ -773,7 +773,7 @@ Next steps:
|
|
|
773
773
|
`),process.stdout.write(` File: ${e.file}
|
|
774
774
|
`),process.stdout.write(` Commit: ${e.sha}
|
|
775
775
|
`),process.stdout.write(` URL: ${e.url}
|
|
776
|
-
`)),process.exit(0)}catch(e){let t=e instanceof Error?e:new Error(String(e)),r=new Do;t.message=r.redact(t.message),t.stack&&(t.stack=r.redact(t.stack)),be.handle(t)}})}a(Eie,"restPushCommand");var Fo=require("node:fs"),p4=require("node:crypto"),_i=re(require("node:path"));var Si=re(it());var vie=a(async n=>{let e=await p4.webcrypto.subtle.digest("SHA-1",n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength));return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,"0")).join("")},"nodeSha1"),Tie={parse:a(n=>Br.load(n,{schema:Br.CORE_SCHEMA}),"parse"),stringify:a(n=>Br.dump(n,{schema:Br.CORE_SCHEMA,lineWidth:-1}),"stringify")};function Aie(n,e){if(n.tokenFromGh===!0)return Do.resolveGhToken(e.ghTokenRunner);let t=e.env??process.env,r=n.token||t.GITHUB_TOKEN||t.GH_TOKEN||"";if(r.length===0)throw new Error("A GitHub token is required (private sync units read as 404 without one). Use --token-from-gh, --token <pat>, or set GITHUB_TOKEN / GH_TOKEN.");return r}a(Aie,"resolveToken");function Iie(n){let e=a(r=>_i.join(n,r),"abs"),t=a(async(r,i)=>{let s;try{s=await Fo.promises.readdir(r,{withFileTypes:!0})}catch{return}for(let o of s){let c=_i.join(r,o.name);if(o.isDirectory()){if(o.name===".git")continue;await t(c,i)}else o.isFile()&&i.push(_i.relative(n,c).split(_i.sep).join("/"))}},"walk");return{async list(){let r=[];return(0,Fo.existsSync)(n)&&await t(n,r),r},read:a(r=>Fo.promises.readFile(e(r),"utf-8"),"read"),async readBinary(r){return new Uint8Array(await Fo.promises.readFile(e(r)))},async write(){throw new Error("exosync-parity is read-only \u2014 write refused")},async delete(){throw new Error("exosync-parity is read-only \u2014 delete refused")}}}a(Iie,"nodeLocalFilesPort");function xie(n){let e=new ht(n),t=new Si.SpaceSpecAccumulator;for(let r of e.getAllFiles()){let i=e.getFrontmatter(r);if(!i)continue;let s=(0,Si.classifySpaceDeclaration)(i,r.path);if(s.kind==="not-space"||(s.warning!==void 0&&t.warnings.push(s.warning),s.kind==="skip"))continue;let o=t.offer(s.candidate);o!==null&&(0,Fo.existsSync)(_i.join(n,o.localPath))&&t.commit(s.candidate)}return{specs:t.specs,warnings:t.warnings}}a(xie,"collectVaultSpecs");function Rie(n,e){for(let t of n.repos){let r=t.headSha!==void 0?` @${t.headSha.slice(0,7)}`:"";e(`${t.repoKey}${r}: ${t.status} \u2014 ${t.inParity}/${t.filesChecked} in parity, M2 diffs ${t.m2SemanticDiffs}, accounted ${t.accountedCount}, M1 violations ${t.m1Violations.length}${t.attachmentHashSetIdentical!==void 0?`, attachment hash-set ${t.attachmentHashSetIdentical?"identical":"DIFFERS"}`:""}`),t.detail!==void 0&&e(` ${t.detail}`);for(let i of t.warnings)e(` warn: ${i}`);for(let i of t.discrepancies)e(` ${i.cls}: ${i.path}${i.detail!==void 0?` (${i.detail})`:""}`);for(let i of t.m1Violations)e(` M1 VIOLATION: ${i.path} \u2014 ${i.detail}`)}e((0,Si.summarizeParityRound)(n))}a(Rie,"printHumanReport");async function Cie(n,e={}){let t=e.out??(g=>console.log(g)),r=_i.resolve(n.vault);if(!(0,Fo.existsSync)(r))throw new Error(`Vault path does not exist: ${r}`);let i=Aie(n,e),s=new Do({token:i,...n.apiBase!==void 0?{apiBase:n.apiBase}:{}}),o=e.transportFactory?.(i,n.apiBase)??s.transport(),{specs:c,warnings:l}=xie(r);for(let g of l)t(`warn: ${g}`);if(c.length===0)return t("Nothing to check \u2014 no materialized AssetSpaces with a GitHub source found in this vault."),2;let u=n.configDir??".obsidian",f=_i.join(r,u,"plugins","exocortex",Si.WATERMARK_STORE_FILENAME),d=new Si.FileWatermarkStore({read:a(async()=>{try{return await Fo.promises.readFile(f,"utf-8")}catch{return null}},"read"),writeAtomic:a(async()=>{throw new Error("exosync-parity: watermark access is read-only by contract")},"writeAtomic")}),h=new Si.ParityValidator({transport:o,sha1:vie,localFilesFor:a(g=>Iie(_i.join(r,g.localPath)),"localFilesFor"),watermarks:{get:a(g=>d.get(g),"get")},yaml:Tie,redact:a(g=>s.redact(g),"redact"),...n.apiBase!==void 0?{baseURL:n.apiBase}:{}});t(`ExoSync parity check: ${c.length} repo(s), vault ${r}`);let p=await h.runRound(c,{trigger:"standalone"});return n.json===!0?t(JSON.stringify(p,null,2)):Rie(p,t),p.vacuous?2:p.ok?0:1}a(Cie,"runExosyncParity");function m4(){return new Re("exosync-parity").description("ExoSync M1/M2 parity report: compare materialized sync units against their remote heads (read-only; RFC 4e4dc453 Phase E)").requiredOption("--vault <path>","Vault root path").option("--config-dir <name>","Obsidian config dir name (watermark location)",".obsidian").option("--json","Print the full round record as JSON").option("--token <pat>","GitHub PAT (or env GITHUB_TOKEN / GH_TOKEN). Prefer --token-from-gh.").option("--token-from-gh","Resolve the PAT via `gh auth token`").option("--api-base <url>","GitHub API base (testing)").action(async n=>{try{process.exitCode=await Cie(n)}catch(e){be.handle(e,{command:"exosync-parity"}),process.exitCode=1}})}a(m4,"exosyncParityCommand");function g4(n){let e=new Re;return e.name("exocortex").description("CLI tool for Exocortex knowledge management system").version(n??"16.88.
|
|
776
|
+
`)),process.exit(0)}catch(e){let t=e instanceof Error?e:new Error(String(e)),r=new Do;t.message=r.redact(t.message),t.stack&&(t.stack=r.redact(t.stack)),be.handle(t)}})}a(Eie,"restPushCommand");var Fo=require("node:fs"),p4=require("node:crypto"),_i=re(require("node:path"));var Si=re(it());var vie=a(async n=>{let e=await p4.webcrypto.subtle.digest("SHA-1",n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength));return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,"0")).join("")},"nodeSha1"),Tie={parse:a(n=>Br.load(n,{schema:Br.CORE_SCHEMA}),"parse"),stringify:a(n=>Br.dump(n,{schema:Br.CORE_SCHEMA,lineWidth:-1}),"stringify")};function Aie(n,e){if(n.tokenFromGh===!0)return Do.resolveGhToken(e.ghTokenRunner);let t=e.env??process.env,r=n.token||t.GITHUB_TOKEN||t.GH_TOKEN||"";if(r.length===0)throw new Error("A GitHub token is required (private sync units read as 404 without one). Use --token-from-gh, --token <pat>, or set GITHUB_TOKEN / GH_TOKEN.");return r}a(Aie,"resolveToken");function Iie(n){let e=a(r=>_i.join(n,r),"abs"),t=a(async(r,i)=>{let s;try{s=await Fo.promises.readdir(r,{withFileTypes:!0})}catch{return}for(let o of s){let c=_i.join(r,o.name);if(o.isDirectory()){if(o.name===".git")continue;await t(c,i)}else o.isFile()&&i.push(_i.relative(n,c).split(_i.sep).join("/"))}},"walk");return{async list(){let r=[];return(0,Fo.existsSync)(n)&&await t(n,r),r},read:a(r=>Fo.promises.readFile(e(r),"utf-8"),"read"),async readBinary(r){return new Uint8Array(await Fo.promises.readFile(e(r)))},async write(){throw new Error("exosync-parity is read-only \u2014 write refused")},async delete(){throw new Error("exosync-parity is read-only \u2014 delete refused")}}}a(Iie,"nodeLocalFilesPort");function xie(n){let e=new ht(n),t=new Si.SpaceSpecAccumulator;for(let r of e.getAllFiles()){let i=e.getFrontmatter(r);if(!i)continue;let s=(0,Si.classifySpaceDeclaration)(i,r.path);if(s.kind==="not-space"||(s.warning!==void 0&&t.warnings.push(s.warning),s.kind==="skip"))continue;let o=t.offer(s.candidate);o!==null&&(0,Fo.existsSync)(_i.join(n,o.localPath))&&t.commit(s.candidate)}return{specs:t.specs,warnings:t.warnings}}a(xie,"collectVaultSpecs");function Rie(n,e){for(let t of n.repos){let r=t.headSha!==void 0?` @${t.headSha.slice(0,7)}`:"";e(`${t.repoKey}${r}: ${t.status} \u2014 ${t.inParity}/${t.filesChecked} in parity, M2 diffs ${t.m2SemanticDiffs}, accounted ${t.accountedCount}, M1 violations ${t.m1Violations.length}${t.attachmentHashSetIdentical!==void 0?`, attachment hash-set ${t.attachmentHashSetIdentical?"identical":"DIFFERS"}`:""}`),t.detail!==void 0&&e(` ${t.detail}`);for(let i of t.warnings)e(` warn: ${i}`);for(let i of t.discrepancies)e(` ${i.cls}: ${i.path}${i.detail!==void 0?` (${i.detail})`:""}`);for(let i of t.m1Violations)e(` M1 VIOLATION: ${i.path} \u2014 ${i.detail}`)}e((0,Si.summarizeParityRound)(n))}a(Rie,"printHumanReport");async function Cie(n,e={}){let t=e.out??(g=>console.log(g)),r=_i.resolve(n.vault);if(!(0,Fo.existsSync)(r))throw new Error(`Vault path does not exist: ${r}`);let i=Aie(n,e),s=new Do({token:i,...n.apiBase!==void 0?{apiBase:n.apiBase}:{}}),o=e.transportFactory?.(i,n.apiBase)??s.transport(),{specs:c,warnings:l}=xie(r);for(let g of l)t(`warn: ${g}`);if(c.length===0)return t("Nothing to check \u2014 no materialized AssetSpaces with a GitHub source found in this vault."),2;let u=n.configDir??".obsidian",f=_i.join(r,u,"plugins","exocortex",Si.WATERMARK_STORE_FILENAME),d=new Si.FileWatermarkStore({read:a(async()=>{try{return await Fo.promises.readFile(f,"utf-8")}catch{return null}},"read"),writeAtomic:a(async()=>{throw new Error("exosync-parity: watermark access is read-only by contract")},"writeAtomic")}),h=new Si.ParityValidator({transport:o,sha1:vie,localFilesFor:a(g=>Iie(_i.join(r,g.localPath)),"localFilesFor"),watermarks:{get:a(g=>d.get(g),"get")},yaml:Tie,redact:a(g=>s.redact(g),"redact"),...n.apiBase!==void 0?{baseURL:n.apiBase}:{}});t(`ExoSync parity check: ${c.length} repo(s), vault ${r}`);let p=await h.runRound(c,{trigger:"standalone"});return n.json===!0?t(JSON.stringify(p,null,2)):Rie(p,t),p.vacuous?2:p.ok?0:1}a(Cie,"runExosyncParity");function m4(){return new Re("exosync-parity").description("ExoSync M1/M2 parity report: compare materialized sync units against their remote heads (read-only; RFC 4e4dc453 Phase E)").requiredOption("--vault <path>","Vault root path").option("--config-dir <name>","Obsidian config dir name (watermark location)",".obsidian").option("--json","Print the full round record as JSON").option("--token <pat>","GitHub PAT (or env GITHUB_TOKEN / GH_TOKEN). Prefer --token-from-gh.").option("--token-from-gh","Resolve the PAT via `gh auth token`").option("--api-base <url>","GitHub API base (testing)").action(async n=>{try{process.exitCode=await Cie(n)}catch(e){be.handle(e,{command:"exosync-parity"}),process.exitCode=1}})}a(m4,"exosyncParityCommand");function g4(n){let e=new Re;return e.name("exocortex").description("CLI tool for Exocortex knowledge management system").version(n??"16.88.2"),e.addCommand(xM()),e.addCommand(MM()),e.addCommand(wk()),e.addCommand(Tk()),e.addCommand(Zk()),e.addCommand(Rk()),e.addCommand(Ck()),e.addCommand(Lk()),e.addCommand(rM()),e.addCommand(lM()),e.addCommand(fM()),e.addCommand(gM()),e.addCommand(IM()),e.addCommand(JM()),e.addCommand(s4()),e.addCommand(o4()),e.addCommand(c4()),e.addCommand(h4()),e.addCommand(m4()),e}a(g4,"createProgram");g4().parse();0&&(module.exports={createProgram});
|
|
777
777
|
/*! Bundled license information:
|
|
778
778
|
|
|
779
779
|
reflect-metadata/Reflect.js:
|