@kitelev/exocortex-cli 16.81.2 → 16.81.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.
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 v16.81.2
2
+ // @kitelev/exocortex-cli v16.81.3
3
3
  // CLI tool for Exocortex knowledge management system - SPARQL queries, task management, and more
4
4
  // License: MIT
5
5
 
@@ -831,7 +831,7 @@ Next steps:
831
831
  `),process.stdout.write(` File: ${e.file}
832
832
  `),process.stdout.write(` Commit: ${e.sha}
833
833
  `),process.stdout.write(` URL: ${e.url}
834
- `)),process.exit(0)}catch(e){let t=e instanceof Error?e:new Error(String(e)),r=new Fo;t.message=r.redact(t.message),t.stack&&(t.stack=r.redact(t.stack)),ee.handle(t)}})}a(_ie,"restPushCommand");var Do=require("node:fs"),gM=require("node:crypto"),bi=Y(require("node:path"));var Si=Y(st());var bie=a(async n=>{let e=await gM.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"),Sie={parse:a(n=>_t.load(n,{schema:_t.CORE_SCHEMA}),"parse"),stringify:a(n=>_t.dump(n,{schema:_t.CORE_SCHEMA,lineWidth:-1}),"stringify")};function wie(n,e){if(n.tokenFromGh===!0)return Fo.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(wie,"resolveToken");function vie(n){let e=a(r=>bi.join(n,r),"abs"),t=a(async(r,i)=>{let s;try{s=await Do.promises.readdir(r,{withFileTypes:!0})}catch{return}for(let o of s){let c=bi.join(r,o.name);if(o.isDirectory()){if(o.name===".git")continue;await t(c,i)}else o.isFile()&&i.push(bi.relative(n,c).split(bi.sep).join("/"))}},"walk");return{async list(){let r=[];return(0,Do.existsSync)(n)&&await t(n,r),r},read:a(r=>Do.promises.readFile(e(r),"utf-8"),"read"),async readBinary(r){return new Uint8Array(await Do.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(vie,"nodeLocalFilesPort");function Eie(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,Do.existsSync)(bi.join(n,o.localPath))&&t.commit(s.candidate)}return{specs:t.specs,warnings:t.warnings}}a(Eie,"collectVaultSpecs");function Tie(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(Tie,"printHumanReport");async function Aie(n,e={}){let t=e.out??(g=>console.log(g)),r=bi.resolve(n.vault);if(!(0,Do.existsSync)(r))throw new Error(`Vault path does not exist: ${r}`);let i=wie(n,e),s=new Fo({token:i,...n.apiBase!==void 0?{apiBase:n.apiBase}:{}}),o=e.transportFactory?.(i,n.apiBase)??s.transport(),{specs:c,warnings:l}=Eie(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=bi.join(r,u,"plugins","exocortex",Si.WATERMARK_STORE_FILENAME),d=new Si.FileWatermarkStore({read:a(async()=>{try{return await Do.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:bie,localFilesFor:a(g=>vie(bi.join(r,g.localPath)),"localFilesFor"),watermarks:{get:a(g=>d.get(g),"get")},yaml:Sie,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)):Tie(p,t),p.vacuous?2:p.ok?0:1}a(Aie,"runExosyncParity");function yM(){return new oe("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 Aie(n)}catch(e){ee.handle(e,{command:"exosync-parity"}),process.exitCode=1}})}a(yM,"exosyncParityCommand");function _M(n){let e=new oe;return e.name("exocortex").description("CLI tool for Exocortex knowledge management system").version(n??"16.81.2"),e.addCommand(k4()),e.addCommand(z4()),e.addCommand(dk()),e.addCommand(mk()),e.addCommand(qk()),e.addCommand(bk()),e.addCommand(Sk()),e.addCommand(Ak()),e.addCommand(Hk()),e.addCommand(e4()),e.addCommand(n4()),e.addCommand(i4()),e.addCommand(o4()),e.addCommand(y4()),e.addCommand(_4()),e.addCommand(A4()),e.addCommand(N4()),e.addCommand(eM()),e.addCommand(aM()),e.addCommand(cM()),e.addCommand(uM()),e.addCommand(mM()),e.addCommand(yM()),e}a(_M,"createProgram");_M().parse();0&&(module.exports={createProgram});
834
+ `)),process.exit(0)}catch(e){let t=e instanceof Error?e:new Error(String(e)),r=new Fo;t.message=r.redact(t.message),t.stack&&(t.stack=r.redact(t.stack)),ee.handle(t)}})}a(_ie,"restPushCommand");var Do=require("node:fs"),gM=require("node:crypto"),bi=Y(require("node:path"));var Si=Y(st());var bie=a(async n=>{let e=await gM.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"),Sie={parse:a(n=>_t.load(n,{schema:_t.CORE_SCHEMA}),"parse"),stringify:a(n=>_t.dump(n,{schema:_t.CORE_SCHEMA,lineWidth:-1}),"stringify")};function wie(n,e){if(n.tokenFromGh===!0)return Fo.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(wie,"resolveToken");function vie(n){let e=a(r=>bi.join(n,r),"abs"),t=a(async(r,i)=>{let s;try{s=await Do.promises.readdir(r,{withFileTypes:!0})}catch{return}for(let o of s){let c=bi.join(r,o.name);if(o.isDirectory()){if(o.name===".git")continue;await t(c,i)}else o.isFile()&&i.push(bi.relative(n,c).split(bi.sep).join("/"))}},"walk");return{async list(){let r=[];return(0,Do.existsSync)(n)&&await t(n,r),r},read:a(r=>Do.promises.readFile(e(r),"utf-8"),"read"),async readBinary(r){return new Uint8Array(await Do.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(vie,"nodeLocalFilesPort");function Eie(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,Do.existsSync)(bi.join(n,o.localPath))&&t.commit(s.candidate)}return{specs:t.specs,warnings:t.warnings}}a(Eie,"collectVaultSpecs");function Tie(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(Tie,"printHumanReport");async function Aie(n,e={}){let t=e.out??(g=>console.log(g)),r=bi.resolve(n.vault);if(!(0,Do.existsSync)(r))throw new Error(`Vault path does not exist: ${r}`);let i=wie(n,e),s=new Fo({token:i,...n.apiBase!==void 0?{apiBase:n.apiBase}:{}}),o=e.transportFactory?.(i,n.apiBase)??s.transport(),{specs:c,warnings:l}=Eie(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=bi.join(r,u,"plugins","exocortex",Si.WATERMARK_STORE_FILENAME),d=new Si.FileWatermarkStore({read:a(async()=>{try{return await Do.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:bie,localFilesFor:a(g=>vie(bi.join(r,g.localPath)),"localFilesFor"),watermarks:{get:a(g=>d.get(g),"get")},yaml:Sie,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)):Tie(p,t),p.vacuous?2:p.ok?0:1}a(Aie,"runExosyncParity");function yM(){return new oe("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 Aie(n)}catch(e){ee.handle(e,{command:"exosync-parity"}),process.exitCode=1}})}a(yM,"exosyncParityCommand");function _M(n){let e=new oe;return e.name("exocortex").description("CLI tool for Exocortex knowledge management system").version(n??"16.81.3"),e.addCommand(k4()),e.addCommand(z4()),e.addCommand(dk()),e.addCommand(mk()),e.addCommand(qk()),e.addCommand(bk()),e.addCommand(Sk()),e.addCommand(Ak()),e.addCommand(Hk()),e.addCommand(e4()),e.addCommand(n4()),e.addCommand(i4()),e.addCommand(o4()),e.addCommand(y4()),e.addCommand(_4()),e.addCommand(A4()),e.addCommand(N4()),e.addCommand(eM()),e.addCommand(aM()),e.addCommand(cM()),e.addCommand(uM()),e.addCommand(mM()),e.addCommand(yM()),e}a(_M,"createProgram");_M().parse();0&&(module.exports={createProgram});
835
835
  /*! Bundled license information:
836
836
 
837
837
  reflect-metadata/Reflect.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitelev/exocortex-cli",
3
- "version": "16.81.2",
3
+ "version": "16.81.3",
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": {