@mcsherrylabs/evolver-mcp 0.8.6 → 0.8.7
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/install.d.ts +8 -0
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +58 -1
- package/dist/install.js.map +1 -1
- package/package.json +1 -1
package/dist/install.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/** Split `--mcp-home <dir>` / `--mcp-home=<dir>` out of argv, returning the value (or undefined)
|
|
2
|
+
* and the argv with the flag + its value removed (so the forwarded bootstrap never sees it). Also
|
|
3
|
+
* drops the `install` subcommand token and forces `--target local`, yielding bootstrap-shaped argv
|
|
4
|
+
* (`[node, script, --target, local, …]`) the forwarded runBootstrap parses from index 2. */
|
|
5
|
+
export declare function parseMcpHome(argv: string[]): {
|
|
6
|
+
mcpHome: string | undefined;
|
|
7
|
+
rest: string[];
|
|
8
|
+
};
|
|
1
9
|
interface InstallEnv {
|
|
2
10
|
/** Override the shipped compose file path (default: `../deploy/docker-compose.yml` beside dist). */
|
|
3
11
|
EVOLVER_INSTALL_COMPOSE?: string;
|
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAoCA;;;6FAG6F;AAC7F,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CA0BjD;AASD,UAAU,UAAU;IAClB,oGAAoG;IACpG,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kDAAkD;IAClD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kGAAkG;IAClG,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvE;AAED,+FAA+F;AAC/F,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,6FAA6F;AAC7F,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,GAClC,OAAO,CAAC,aAAa,CAAC,CAmExB"}
|
package/dist/install.js
CHANGED
|
@@ -25,6 +25,49 @@ import { runBootstrap } from "./bootstrap.js";
|
|
|
25
25
|
const LOCAL_NODE_HOST = "127.0.0.1";
|
|
26
26
|
const LOCAL_CHAIN_URL = `http://${LOCAL_NODE_HOST}:8440`;
|
|
27
27
|
const HEALTH_PATH = "/api/explorer/blocks?limit=1";
|
|
28
|
+
/** `--mcp-home <dir>`: the `$HOME` of the environment WHERE CLAUDE RUNS, when that differs from the
|
|
29
|
+
* machine where `install` runs (Claude in a container with a bind-mounted `$HOME`). Unset means
|
|
30
|
+
* "same machine, same `$HOME`" — the default, and the correct non-container case. */
|
|
31
|
+
const MCP_HOME_FLAG = "--mcp-home";
|
|
32
|
+
/** Split `--mcp-home <dir>` / `--mcp-home=<dir>` out of argv, returning the value (or undefined)
|
|
33
|
+
* and the argv with the flag + its value removed (so the forwarded bootstrap never sees it). Also
|
|
34
|
+
* drops the `install` subcommand token and forces `--target local`, yielding bootstrap-shaped argv
|
|
35
|
+
* (`[node, script, --target, local, …]`) the forwarded runBootstrap parses from index 2. */
|
|
36
|
+
export function parseMcpHome(argv) {
|
|
37
|
+
let mcpHome;
|
|
38
|
+
const rest = [];
|
|
39
|
+
for (let i = 0; i < argv.length; i++) {
|
|
40
|
+
const a = argv[i];
|
|
41
|
+
if (a === MCP_HOME_FLAG) {
|
|
42
|
+
mcpHome = argv[++i];
|
|
43
|
+
if (mcpHome === undefined)
|
|
44
|
+
return { mcpHome: undefined, rest: argv }; // leave to install's error path
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (a.startsWith(`${MCP_HOME_FLAG}=`)) {
|
|
48
|
+
mcpHome = a.slice(MCP_HOME_FLAG.length + 1);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (a === "install")
|
|
52
|
+
continue; // the subcommand token, not a bootstrap flag
|
|
53
|
+
rest.push(a);
|
|
54
|
+
}
|
|
55
|
+
// Force the local target: install always bootstraps against the node it just started. Skip only
|
|
56
|
+
// if the operator already named one (their choice wins — but a non-local target would be wrong).
|
|
57
|
+
const targetIdx = rest.indexOf("--target");
|
|
58
|
+
const hasTarget = targetIdx >= 0 || rest.some((x) => x.startsWith("--target="));
|
|
59
|
+
if (!hasTarget) {
|
|
60
|
+
// insert after [node, script] (indices 0,1) so parseBootstrapArgs picks it up at index 2+
|
|
61
|
+
rest.splice(2, 0, "--target", "local");
|
|
62
|
+
}
|
|
63
|
+
return { mcpHome, rest };
|
|
64
|
+
}
|
|
65
|
+
/** Translate a `--mcp-home` value into the `EVOLVER_MCP_STATE_DIR` the bootstrap should derive,
|
|
66
|
+
* i.e. `<home>/.local/state/evolver-mcp/local` (mirroring stateDirFor's default). Only a
|
|
67
|
+
* convenience default: an explicit `EVOLVER_MCP_STATE_DIR` in the env always wins. */
|
|
68
|
+
function stateDirForMcpHome(mcpHome) {
|
|
69
|
+
return join(mcpHome, ".local", "state", "evolver-mcp", "local");
|
|
70
|
+
}
|
|
28
71
|
/** Resolve the shipped `deploy/docker-compose.yml`, honoring an explicit override. */
|
|
29
72
|
export function composePathFor(env, distDir) {
|
|
30
73
|
const explicit = env.EVOLVER_INSTALL_COMPOSE?.trim();
|
|
@@ -46,6 +89,12 @@ export async function runInstall(argv, env) {
|
|
|
46
89
|
output: `install: the node compose file is missing at ${composeFile} — the published package must ship deploy/ (see package.json "files").\n`,
|
|
47
90
|
};
|
|
48
91
|
}
|
|
92
|
+
// Parse `--mcp-home` (and the `install` token / forced `--target local`) up front, so a malformed
|
|
93
|
+
// flag fails fast instead of after the node boot.
|
|
94
|
+
const { mcpHome, rest } = parseMcpHome(argv);
|
|
95
|
+
if (argv.includes(MCP_HOME_FLAG) && (mcpHome === undefined || mcpHome.trim() === "")) {
|
|
96
|
+
return { exitCode: 1, toStderr: true, output: `install: ${MCP_HOME_FLAG} needs a value (Claude's $HOME, e.g. /home/rig)\n` };
|
|
97
|
+
}
|
|
49
98
|
// 1. Start the follower node (claims its own identity on devnet, then syncs from block 0).
|
|
50
99
|
// `--build` builds the config-bearing image (deploy/Dockerfile) on first use; the config is
|
|
51
100
|
// baked in, so no host bind-mount and no checkout-path dependency.
|
|
@@ -78,12 +127,20 @@ export async function runInstall(argv, env) {
|
|
|
78
127
|
// 3. Bootstrap the SEPARATE agent identity against the local node. `--target local` +
|
|
79
128
|
// EVOLVER_NODE=http://127.0.0.1:8440 makes the bootstrap derive
|
|
80
129
|
// EVOLVER_CONTENT_URL=http://127.0.0.1:8450 (the local node's content listener).
|
|
130
|
+
//
|
|
131
|
+
// `--mcp-home` (if given) names Claude's `$HOME` and is translated into a default
|
|
132
|
+
// EVOLVER_MCP_STATE_DIR so the printed `claude mcp add` line carries paths Claude can read.
|
|
133
|
+
// Unset → no translation: the bootstrap defaults to THIS process's `$HOME`, which is exactly
|
|
134
|
+
// right when Claude runs on the same machine as `install`.
|
|
81
135
|
const nodeEnv = {
|
|
82
136
|
...process.env,
|
|
83
137
|
...env,
|
|
84
138
|
EVOLVER_NODE: env.EVOLVER_NODE ?? LOCAL_CHAIN_URL,
|
|
85
139
|
};
|
|
86
|
-
|
|
140
|
+
if (mcpHome !== undefined && mcpHome.trim() !== "" && nodeEnv.EVOLVER_MCP_STATE_DIR === undefined) {
|
|
141
|
+
nodeEnv.EVOLVER_MCP_STATE_DIR = stateDirForMcpHome(mcpHome);
|
|
142
|
+
}
|
|
143
|
+
const boot = await runBootstrap(rest, nodeEnv);
|
|
87
144
|
return { exitCode: boot.exitCode, output: boot.output, toStderr: boot.toStderr };
|
|
88
145
|
}
|
|
89
146
|
/** Poll `url` until it answers 200 (or a healthy node's success), bounded by `timeoutMs`. */
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,mGAAmG;AACnG,EAAE;AACF,kGAAkG;AAClG,oGAAoG;AACpG,kGAAkG;AAClG,sFAAsF;AACtF,EAAE;AACF,iGAAiG;AACjG,gFAAgF;AAChF,gGAAgG;AAChG,EAAE;AACF,gGAAgG;AAChG,mGAAmG;AACnG,iGAAiG;AACjG,gGAAgG;AAChG,kGAAkG;AAClG,yFAAyF;AAEzF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,0FAA0F;AAC1F,MAAM,eAAe,GAAG,WAAW,CAAC;AACpC,MAAM,eAAe,GAAG,UAAU,eAAe,OAAO,CAAC;AACzD,MAAM,WAAW,GAAG,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcsherrylabs/evolver-mcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.7",
|
|
4
4
|
"description": "MCP server over a configurable Evolver node — read the chain, sign a transfer, administer what you own, write to a channel, submit a signed transaction. Wraps @mcsherrylabs/evolver-client; implements no wire format of its own.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|