@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.
- package/index.js +27 -7
- package/package.json +1 -1
- 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.
|
|
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 (
|
|
3711
|
-
|
|
3712
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
17
|
+
"version": "1.2.15",
|
|
18
18
|
"transport": {
|
|
19
19
|
"type": "stdio"
|
|
20
20
|
}
|