indelible-mcp 5.7.5 → 5.7.6
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/package.json +1 -1
- package/src/index.js +45 -26
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -16262,7 +16262,8 @@ Why this exists: your host deletes raw session files by default (~30 days).`);
|
|
|
16262
16262
|
const { deriveAgentIdentity: deriveAgentIdentity2, canonicalAgentName: canonName, deriveTenantMaster: deriveTenantMaster2, tenantIdFromAddress: tenantIdFromAddress3 } = await Promise.resolve().then(() => (init_customer_agent(), customer_agent_exports));
|
|
16263
16263
|
const { CUSTOMER_ROSTER: CUSTOMER_ROSTER2 } = await Promise.resolve().then(() => (init_customer_provision(), customer_provision_exports));
|
|
16264
16264
|
const { agentIdentityPath: agentIdentityPath2, agentPersonaPath: agentPersonaPath2, agentsDir: agentsDir2 } = await Promise.resolve().then(() => (init_tenant_paths(), tenant_paths_exports));
|
|
16265
|
-
const
|
|
16265
|
+
const registryMod = await Promise.resolve().then(() => (init_wall_stub(), wall_stub_exports)).catch(() => ({}));
|
|
16266
|
+
const rebuildRegistryFor = typeof registryMod.rebuildRegistryFor === "function" ? registryMod.rebuildRegistryFor : null;
|
|
16266
16267
|
const { resolveMaster: resolveMaster2 } = await Promise.resolve().then(() => (init_agent_signing(), agent_signing_exports));
|
|
16267
16268
|
const { stockPersonaFor: stockPersonaFor2, comparePersona: comparePersona2 } = await Promise.resolve().then(() => (init_stock_personas(), stock_personas_exports));
|
|
16268
16269
|
let master = null;
|
|
@@ -16308,33 +16309,49 @@ Why this exists: your host deletes raw session files by default (~30 days).`);
|
|
|
16308
16309
|
let verified = false;
|
|
16309
16310
|
let serverCompare = "skipped (no address configured)";
|
|
16310
16311
|
if (cfgR?.address) {
|
|
16312
|
+
const base2 = (cfgR.api_url || "https://indelible.one").replace(/\/$/, "");
|
|
16313
|
+
let resp = null;
|
|
16311
16314
|
try {
|
|
16312
|
-
|
|
16313
|
-
|
|
16314
|
-
|
|
16315
|
-
|
|
16316
|
-
|
|
16317
|
-
|
|
16315
|
+
resp = await fetch(`${base2}/api/sanctuary/crew/${cfgR.address}`, { signal: AbortSignal.timeout(6e3) });
|
|
16316
|
+
} catch {
|
|
16317
|
+
serverCompare = "unverified (server unreachable \u2014 derivation is still deterministic from your wallet)";
|
|
16318
|
+
}
|
|
16319
|
+
if (resp) {
|
|
16320
|
+
if (resp.status === 404) serverCompare = "unverified (no crew record published for this address \u2014 nothing to compare)";
|
|
16321
|
+
else if (!resp.ok) serverCompare = `unverified (server answered ${resp.status})`;
|
|
16322
|
+
else {
|
|
16323
|
+
const served = await resp.json().catch(() => null);
|
|
16324
|
+
const servedAgents = Array.isArray(served?.manifest?.agents) ? served.manifest.agents : null;
|
|
16325
|
+
if (!servedAgents || servedAgents.length === 0) {
|
|
16326
|
+
emit({ success: false, error: `cannot restore: the server serves a crew record for your address but this build cannot read a single agent from it (empty or unrecognized shape). Refusing rather than restoring unverified against a published crew \u2014 NOTHING was written. If your CLI is older than your crew, update indelible-mcp and retry.` });
|
|
16327
|
+
break;
|
|
16328
|
+
}
|
|
16329
|
+
let match = 0;
|
|
16330
|
+
const bad = [];
|
|
16318
16331
|
for (const sa of servedAgents) {
|
|
16319
|
-
|
|
16320
|
-
|
|
16321
|
-
|
|
16322
|
-
|
|
16323
|
-
|
|
16332
|
+
let sname = null;
|
|
16333
|
+
try {
|
|
16334
|
+
sname = canonName(String(sa?.name || ""));
|
|
16335
|
+
} catch {
|
|
16336
|
+
}
|
|
16337
|
+
const rosterRow = sname ? CUSTOMER_ROSTER2.find((x) => canonName(x.name) === sname) : null;
|
|
16338
|
+
if (!rosterRow || !/^0[23][0-9a-f]{64}$/.test(String(sa?.identity_key_hex || ""))) {
|
|
16339
|
+
bad.push(sname || "(unreadable entry)");
|
|
16340
|
+
continue;
|
|
16341
|
+
}
|
|
16342
|
+
if (deriveAgentIdentity2(master, rosterRow.domain, sname).identity_key_hex === sa.identity_key_hex) match++;
|
|
16324
16343
|
else {
|
|
16325
|
-
|
|
16344
|
+
bad.push(sname);
|
|
16326
16345
|
console.error(`\u2717 ${sname}: this wallet derives a DIFFERENT key than the crew record the server serves for your address.`);
|
|
16327
16346
|
}
|
|
16328
16347
|
}
|
|
16329
|
-
if (
|
|
16330
|
-
emit({ success: false, error: `cannot restore: ${
|
|
16348
|
+
if (bad.length > 0) {
|
|
16349
|
+
emit({ success: false, error: `cannot restore: ${bad.length} of ${servedAgents.length} agent(s) in the served crew record could not be verified against this wallet (${bad.join(", ")}) \u2014 wrong wallet, a crew born from a different key, or a record this build cannot read. NOTHING was written. If your CLI is older than your crew, update indelible-mcp and retry.` });
|
|
16331
16350
|
break;
|
|
16332
16351
|
}
|
|
16333
|
-
verified =
|
|
16334
|
-
serverCompare =
|
|
16335
|
-
}
|
|
16336
|
-
} catch {
|
|
16337
|
-
serverCompare = "unverified (server unreachable \u2014 derivation is still deterministic from your wallet)";
|
|
16352
|
+
verified = true;
|
|
16353
|
+
serverCompare = `all ${match} served agents match this wallet's derivation (verified before writing)`;
|
|
16354
|
+
}
|
|
16338
16355
|
}
|
|
16339
16356
|
}
|
|
16340
16357
|
if (rung2Wallet) {
|
|
@@ -16406,10 +16423,12 @@ Why this exists: your host deletes raw session files by default (~30 days).`);
|
|
|
16406
16423
|
}
|
|
16407
16424
|
}
|
|
16408
16425
|
}
|
|
16409
|
-
|
|
16410
|
-
|
|
16411
|
-
|
|
16412
|
-
|
|
16426
|
+
if (rebuildRegistryFor) {
|
|
16427
|
+
try {
|
|
16428
|
+
await rebuildRegistryFor(scope);
|
|
16429
|
+
} catch (e) {
|
|
16430
|
+
console.error(`\u26A0 registry rebuild after restore failed (identities intact): ${e.message}`);
|
|
16431
|
+
}
|
|
16413
16432
|
}
|
|
16414
16433
|
console.log(`Crew restore: ${born} restored \xB7 ${present} already present \xB7 ${refused2} refused (never overwritten) \xB7 ${personas} persona(s) written${personaDisagree ? ` \xB7 ${personaDisagree} persona disagreement(s)` : ""}`);
|
|
16415
16434
|
console.log(`Server check: ${serverCompare}`);
|
|
@@ -16980,7 +16999,7 @@ Answer THAT message and nothing else \u2014 the wire also carries unrelated conv
|
|
|
16980
16999
|
}
|
|
16981
17000
|
function printHelp() {
|
|
16982
17001
|
console.log(`
|
|
16983
|
-
Indelible MCP \u2014 Blockchain memory for Claude Code (v5.7.
|
|
17002
|
+
Indelible MCP \u2014 Blockchain memory for Claude Code (v5.7.6)
|
|
16984
17003
|
|
|
16985
17004
|
Setup:
|
|
16986
17005
|
indelible-mcp setup --wif=KEY --pin=PIN Import and encrypt your private key
|
|
@@ -17308,7 +17327,7 @@ function readStdin() {
|
|
|
17308
17327
|
}
|
|
17309
17328
|
var SERVER_INFO = {
|
|
17310
17329
|
name: "indelible",
|
|
17311
|
-
version: "5.7.
|
|
17330
|
+
version: "5.7.6",
|
|
17312
17331
|
description: "Blockchain-backed memory and code storage for Claude Code"
|
|
17313
17332
|
};
|
|
17314
17333
|
var TOOLS = [
|