@rel-time/mcp-server 1.2.14 → 1.2.15

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 (3) hide show
  1. package/index.js +27 -7
  2. package/package.json +1 -1
  3. package/server.json +2 -2
package/index.js CHANGED
@@ -56,9 +56,26 @@ let LAST_INVOICE_PACK = null;
56
56
 
57
57
  const SERVER_INFO = {
58
58
  name: "rel-time-mcp-server",
59
- version: "1.2.14",
59
+ version: "1.2.15",
60
60
  };
61
61
 
62
+ /**
63
+ * Redacts the local OS user home directory prefix (e.g., /Users/Name, /home/name, C:\Users\Name)
64
+ * to `~` so exported audit reports and payloads never leak local machine usernames.
65
+ */
66
+ function redactHomePath(rawPath) {
67
+ if (!rawPath || typeof rawPath !== "string") return "";
68
+ const home = os.homedir();
69
+ if (home) {
70
+ const escapedHome = home.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
71
+ const homeRegex = new RegExp(`^${escapedHome}(?=[/\\\\]|$)`, "i");
72
+ if (homeRegex.test(rawPath)) {
73
+ return rawPath.replace(homeRegex, "~");
74
+ }
75
+ }
76
+ return rawPath.replace(/^(\/Users\/[^/]+|\/home\/[^/]+|[A-Za-z]:\\Users\\[^\\]+)(?=[/\\]|$)/, "~");
77
+ }
78
+
62
79
  /**
63
80
  * Resolves a local file path, automatically matching macOS screenshot filenames
64
81
  * that contain Narrow No-Break Spaces (U+202F) or Non-Breaking Spaces (U+00A0)
@@ -651,7 +668,7 @@ function generateAuditReportHtml(audit) {
651
668
  <div class="section-index">SECTION 01 // ZERO-KNOWLEDGE LOCAL FILE INTEGRITY MATRIX</div>
652
669
  <h2>Local Directory Cross-Reference</h2>
653
670
  <p class="section-sub">Target Path: <span class="mono" style="color:var(--text-secondary)">${escapeHtml(
654
- localCheck.target_path
671
+ redactHomePath(localCheck.target_path)
655
672
  )}</span> · 0 Bytes Uploaded · Local SHA-256 vs. Bitcoin Ledger</p>
656
673
  </div>
657
674
  <div class="status-pill ${
@@ -3523,8 +3540,10 @@ async function executeTool(name, args = {}) {
3523
3540
 
3524
3541
  // Optional Zero-Knowledge Local File / Folder Integrity Verification
3525
3542
  let localPathVerification = null;
3543
+ let resolvedVerifyTargetPath = null;
3526
3544
  if (args.verify_local_path) {
3527
3545
  const targetPath = resolveLocalFilePath(args.verify_local_path);
3546
+ resolvedVerifyTargetPath = targetPath;
3528
3547
  if (!fs.existsSync(targetPath)) {
3529
3548
  throw new Error(`verify_local_path not found: ${targetPath}`);
3530
3549
  }
@@ -3637,7 +3656,7 @@ async function executeTool(name, args = {}) {
3637
3656
 
3638
3657
  fileAuditResults.push({
3639
3658
  file_name: fName,
3640
- file_path: fPath,
3659
+ file_path: redactHomePath(fPath),
3641
3660
  size_bytes: bytes,
3642
3661
  size_human: sizeHuman,
3643
3662
  local_sha256: embeddedHash || rawSha256,
@@ -3655,7 +3674,7 @@ async function executeTool(name, args = {}) {
3655
3674
  }
3656
3675
 
3657
3676
  localPathVerification = {
3658
- target_path: targetPath,
3677
+ target_path: redactHomePath(targetPath),
3659
3678
  summary: {
3660
3679
  total_files_scanned: fileAuditResults.length,
3661
3680
  verified_settled_count: vSettled,
@@ -3707,9 +3726,10 @@ async function executeTool(name, args = {}) {
3707
3726
  let reportDir = path.join(PASSKEY_CONFIG_DIR, "audits");
3708
3727
  if (args.output_dir) {
3709
3728
  reportDir = resolveLocalFilePath(args.output_dir);
3710
- } else if (localPathVerification) {
3711
- const tp = localPathVerification.target_path;
3712
- reportDir = fs.statSync(tp).isDirectory() ? tp : path.dirname(tp);
3729
+ } else if (resolvedVerifyTargetPath) {
3730
+ reportDir = fs.statSync(resolvedVerifyTargetPath).isDirectory()
3731
+ ? resolvedVerifyTargetPath
3732
+ : path.dirname(resolvedVerifyTargetPath);
3713
3733
  }
3714
3734
  if (!fs.existsSync(reportDir)) {
3715
3735
  fs.mkdirSync(reportDir, { recursive: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rel-time/mcp-server",
3
- "version": "1.2.14",
3
+ "version": "1.2.15",
4
4
  "mcpName": "io.github.relsun369-dev/rel-time",
5
5
  "description": "Official Model Context Protocol (MCP) server for Rel-Time (rel-time.com) — Zero-Knowledge Bitcoin & VDF Provenance, Local File Hashing, and Sun-Stamp Generation for Claude, Cursor, Windsurf, and Antigravity.",
6
6
  "main": "index.js",
package/server.json CHANGED
@@ -8,13 +8,13 @@
8
8
  "url": "https://github.com/relsun369-dev/reltime-mcp",
9
9
  "source": "github"
10
10
  },
11
- "version": "1.2.14",
11
+ "version": "1.2.15",
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "npm",
15
15
  "registryBaseUrl": "https://registry.npmjs.org",
16
16
  "identifier": "@rel-time/mcp-server",
17
- "version": "1.2.14",
17
+ "version": "1.2.15",
18
18
  "transport": {
19
19
  "type": "stdio"
20
20
  }