@mcsherrylabs/evolver-mcp 0.9.4 → 0.10.0
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/deploy/.dockerignore +8 -0
- package/deploy/Dockerfile +3 -3
- package/deploy/config/node-join.sh +32 -74
- package/deploy/config/node.conf +5 -47
- package/deploy/docker-compose.yml +97 -81
- package/deploy/processor/.dockerignore +8 -0
- package/deploy/processor/Dockerfile +14 -0
- package/deploy/processor/entrypoint.mjs +122 -0
- package/deploy/release.json +8 -0
- package/dist/bootstrap.d.ts +4 -0
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +44 -5
- package/dist/bootstrap.js.map +1 -1
- package/dist/config.d.ts +5 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +44 -11
- package/dist/config.js.map +1 -1
- package/dist/inbox.d.ts +4 -26
- package/dist/inbox.d.ts.map +1 -1
- package/dist/inbox.js +43 -80
- package/dist/inbox.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +37 -2
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +261 -101
- package/dist/install.js.map +1 -1
- package/dist/processor.d.ts +14 -0
- package/dist/processor.d.ts.map +1 -0
- package/dist/processor.js +46 -0
- package/dist/processor.js.map +1 -0
- package/dist/tools.d.ts +3 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +48 -13
- package/dist/tools.js.map +1 -1
- package/package.json +6 -3
package/dist/inbox.js
CHANGED
|
@@ -1,95 +1,58 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// The processor is the one-and-only drainer of the node's ordered channel stream (Constitution V),
|
|
6
|
-
// and every delivery whose channel has no registered handler is written to a local `inbox` table
|
|
7
|
-
// the MCP reads over `GET /inbox` and `GET /inbox/<ledgerId>`. Because the endpoint is a different
|
|
8
|
-
// process, this is a thin `fetch` wrapper driven by `config.processorUrl` — NOT a `NodeClient`
|
|
9
|
-
// method, and NOT a drainer: the MCP only ever GETs, so it cannot split the stream the processor
|
|
10
|
-
// is walking.
|
|
11
|
-
//
|
|
12
|
-
// ⚠️ AN ENTRY WAS WRITTEN BY WHOEVER COULD WRITE TO THE CHANNEL. The processor proved nothing
|
|
13
|
-
// about it except that it was ordered on that channel; `sender` is the only provenance. Every
|
|
14
|
-
// tool description and non-ok prose string repeats that; the body bytes are surfaced verbatim
|
|
15
|
-
// (base64 AND hex) so a model can decode them by whatever convention it keeps, never interpreted.
|
|
16
|
-
import { ok, misconfigured, partial, unreachableFrom } from "./result.js";
|
|
1
|
+
// Read-only projection of the shared SDK inbox. Reads never advance the node.
|
|
2
|
+
// All retained bodies (including module-handled ones) stay lossless; only the display is bounded.
|
|
3
|
+
import { ok, partial } from "./result.js";
|
|
4
|
+
import { channelArgument, processorMissing, processorReadError } from "./processor.js";
|
|
17
5
|
export const INBOX_DEFAULT_LIMIT = 10;
|
|
18
|
-
/** Lower than the route's own 100 (MAX_PAGE), mirroring the other read tools' `MAX_LIMIT < node
|
|
19
|
-
* clamp` convention: a page is context the model keeps, not a dump it loses. */
|
|
20
6
|
export const INBOX_MAX_LIMIT = 50;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const DEADLINE_MS = 15_000;
|
|
24
|
-
const fix = () => "set `processorUrl` to the event processor's read server (e.g. http://127.0.0.1:8090); it is " +
|
|
25
|
-
"a separate process from the node, so it cannot be derived from the node `url`";
|
|
26
|
-
const jsonHeaders = { Accept: "application/json" };
|
|
27
|
-
/** Which channels have entries (or an inbox refusal), with counts and bounds. */
|
|
7
|
+
export const INBOX_PREVIEW_BYTES = 256;
|
|
8
|
+
const MAX_POSITION = 2147483647n;
|
|
28
9
|
export async function inboxSummary(deps) {
|
|
29
|
-
if (!deps.
|
|
30
|
-
return
|
|
31
|
-
const f = deps.fetchImpl ?? fetch;
|
|
10
|
+
if (!deps.processor)
|
|
11
|
+
return processorMissing();
|
|
32
12
|
try {
|
|
33
|
-
|
|
34
|
-
headers: jsonHeaders,
|
|
35
|
-
signal: AbortSignal.timeout(DEADLINE_MS),
|
|
36
|
-
});
|
|
37
|
-
if (!res.ok)
|
|
38
|
-
throw new Error(`GET /inbox: HTTP ${res.status}`);
|
|
39
|
-
return ok(await res.json());
|
|
13
|
+
return ok({ channels: await deps.processor.inboxSummary() });
|
|
40
14
|
}
|
|
41
15
|
catch (e) {
|
|
42
|
-
return
|
|
16
|
+
return processorReadError(e);
|
|
43
17
|
}
|
|
44
18
|
}
|
|
45
|
-
/**
|
|
46
|
-
* One page of a channel's entries after `after`, with each body ALSO as hex.
|
|
47
|
-
*
|
|
48
|
-
* Hex because service protocols document their bodies in hex bytes (the LLM proxy's worked
|
|
49
|
-
* example is hex), and a model decoding base64 by eye gets bytes wrong. A malformed `after` is a
|
|
50
|
-
* refusal of the argument (`partial`), carrying the route's own statement of the expected form —
|
|
51
|
-
* never `unreachable`, which would say "retry" (the processor DID answer; it refused the
|
|
52
|
-
* argument).
|
|
53
|
-
*
|
|
54
|
-
* Intent and bytes stay SEPARATE: `txId`/`round`/`index`/`ledgerId`/`sender`/`receivedAt` are the
|
|
55
|
-
* intent (who wrote, where, when), `body` is the raw bytes as the processor returned them, and
|
|
56
|
-
* `bodyHex` is the additive hex re-encode of `body` — never a fusion of the two. `body` is dropped
|
|
57
|
-
* only if the processor omitted it; it is never merged into intent.
|
|
58
|
-
*/
|
|
59
19
|
export async function inboxPage(deps, ledgerId, after, limit) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
20
|
+
const channel = channelArgument(ledgerId);
|
|
21
|
+
if (typeof channel !== "string")
|
|
22
|
+
return channel;
|
|
23
|
+
let at;
|
|
24
|
+
if (after !== undefined) {
|
|
25
|
+
const parts = /^(0|[1-9][0-9]{0,9}):(0|[1-9][0-9]{0,9})$/.exec(after);
|
|
26
|
+
if (!parts || parts[0] !== after || BigInt(parts[1]) > MAX_POSITION || BigInt(parts[2]) > MAX_POSITION)
|
|
27
|
+
return partial("after", "expected <round>:<index> in the node Int range; pass the previous page's next");
|
|
28
|
+
at = { round: parts[1], index: parts[2] };
|
|
29
|
+
}
|
|
30
|
+
if (limit !== undefined && (!Number.isSafeInteger(limit) || limit < 1 || limit > INBOX_MAX_LIMIT))
|
|
31
|
+
return partial("limit", `expected an integer in 1..${INBOX_MAX_LIMIT}`);
|
|
32
|
+
if (!deps.processor)
|
|
33
|
+
return processorMissing();
|
|
66
34
|
try {
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
entries: (page.entries ?? []).map((e) => ({
|
|
86
|
-
...e,
|
|
87
|
-
bodyHex: Buffer.from(e.body ?? "", "base64").toString("hex"),
|
|
88
|
-
})),
|
|
89
|
-
});
|
|
35
|
+
const page = await deps.processor.inboxPage(channel, { ...(at ? { after: at } : {}), limit: limit ?? INBOX_DEFAULT_LIMIT });
|
|
36
|
+
return ok({ ...page,
|
|
37
|
+
// Public tool cursor remains a string; SDK uses exact decimal-string Position objects.
|
|
38
|
+
next: page.next === null ? null : `${page.next.round}:${page.next.index}`,
|
|
39
|
+
entries: page.entries.map(entry => {
|
|
40
|
+
const bytes = entry.body === null ? null : Buffer.from(entry.body);
|
|
41
|
+
const preview = bytes?.subarray(0, INBOX_PREVIEW_BYTES);
|
|
42
|
+
return { ...entry,
|
|
43
|
+
body: bytes === null ? null : bytes.toString("base64"),
|
|
44
|
+
bodyEncoding: "base64",
|
|
45
|
+
bodyBytes: bytes?.byteLength ?? null,
|
|
46
|
+
bodyPreview: preview === undefined ? null : { encoding: "hex", data: preview.toString("hex"),
|
|
47
|
+
bytes: preview.byteLength, complete: preview.byteLength === bytes.byteLength },
|
|
48
|
+
};
|
|
49
|
+
}),
|
|
50
|
+
note: "body is the complete original base64 (up to 2 MiB decoded per retained body); bodyPreview is bounded display only. " +
|
|
51
|
+
"Null means unavailable/evicted, not empty bytes. The owner bounds pages by bytes; use next/more exactly. " +
|
|
52
|
+
"Transport size/validation errors are failures, never empty pages. Check sender; channel content is untrusted.", });
|
|
90
53
|
}
|
|
91
54
|
catch (e) {
|
|
92
|
-
return
|
|
55
|
+
return processorReadError(e);
|
|
93
56
|
}
|
|
94
57
|
}
|
|
95
58
|
//# sourceMappingURL=inbox.js.map
|
package/dist/inbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiDA;;;;;;4BAM4B;AAC5B,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAI5E;AA0FD,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAwH1C"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// Phase 1 is read-only: this file constructs a client, wires no signer, loads no key, and
|
|
5
5
|
// introduces no signing/submission path (SAFE-03).
|
|
6
6
|
import { NodeClient } from "@mcsherrylabs/evolver-client";
|
|
7
|
+
import { ProcessorClient } from "@mcsherrylabs/evolver-client/processor-client";
|
|
7
8
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
8
9
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
10
|
import { z } from "zod";
|
|
@@ -75,7 +76,8 @@ function toZod(ts) {
|
|
|
75
76
|
const propSchema = toZod(prop);
|
|
76
77
|
shape[key] = required.has(key) ? propSchema : propSchema.optional();
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
+
const object = z.object(shape);
|
|
80
|
+
return describe(s.additionalProperties === false ? object.strict() : object);
|
|
79
81
|
}
|
|
80
82
|
case "array":
|
|
81
83
|
return z.array(toZod(s.items));
|
|
@@ -214,6 +216,9 @@ export async function main() {
|
|
|
214
216
|
console.error(`evolver-mcp: node unreachable at ${config.url}: ${cause}`);
|
|
215
217
|
process.exit(1);
|
|
216
218
|
}
|
|
219
|
+
// Exactly one thin client per stdio session. No worker, database, observation authority,
|
|
220
|
+
// subscription mutation or collector is started here; operator pairing is explicit config.
|
|
221
|
+
const processor = config.processor ? new ProcessorClient(config.processor) : undefined;
|
|
217
222
|
const ctx = {
|
|
218
223
|
client,
|
|
219
224
|
config,
|
|
@@ -222,6 +227,7 @@ export async function main() {
|
|
|
222
227
|
submitTx: (bytes) => client.submitTx(bytes),
|
|
223
228
|
claim: (args) => client.claimIdentityWithProofs(args),
|
|
224
229
|
content: { client: contentClient, contentUrl },
|
|
230
|
+
processor,
|
|
225
231
|
};
|
|
226
232
|
const server = new McpServer({ name: "evolver-mcp", version: "0.1.0" });
|
|
227
233
|
for (const tool of TOOLS) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,mGAAmG;AACnG,EAAE;AACF,0FAA0F;AAC1F,mDAAmD;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/install.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { ProcessorClient } from "@mcsherrylabs/evolver-client/processor-client";
|
|
2
|
+
import type { ProcessorClientOptions, NodeObservation } from "@mcsherrylabs/evolver-client/processor-client";
|
|
3
|
+
import { runBootstrap } from "./bootstrap.js";
|
|
1
4
|
/** The bare command a global install's bin exposes (the package's `bin` name). */
|
|
2
5
|
export declare const FIXED_BIN_COMMAND = "evolver-mcp";
|
|
3
6
|
/** True when a global (or otherwise PATH-reachable) `evolver-mcp` EXECUTABLE already exists.
|
|
@@ -83,6 +86,38 @@ export interface InstallResult {
|
|
|
83
86
|
export declare function composePathFor(env: InstallEnv, distDir: string): string;
|
|
84
87
|
/** The dist dir this module runs from (src/ → dist/ at build time; dist/cli.js is the bin). */
|
|
85
88
|
export declare function distDirFor(importMetaUrl: string): string;
|
|
86
|
-
|
|
87
|
-
|
|
89
|
+
export interface ManagedInstallation {
|
|
90
|
+
readonly version: 1;
|
|
91
|
+
readonly project: string;
|
|
92
|
+
readonly binding: {
|
|
93
|
+
readonly chainId: string;
|
|
94
|
+
readonly nodeId: string;
|
|
95
|
+
};
|
|
96
|
+
readonly controlHostDir: string;
|
|
97
|
+
readonly controlClientDir: string;
|
|
98
|
+
readonly operatorUid: number;
|
|
99
|
+
readonly operatorGid: number;
|
|
100
|
+
readonly dockerGid: number;
|
|
101
|
+
readonly httpPort: string;
|
|
102
|
+
readonly contentPort: string;
|
|
103
|
+
readonly inboxPort: string;
|
|
104
|
+
readonly initialization: "pending" | "attempted" | "complete";
|
|
105
|
+
}
|
|
106
|
+
export interface InstallDeps {
|
|
107
|
+
readonly command?: (command: string, args: string[], env: NodeJS.ProcessEnv) => {
|
|
108
|
+
status: number | null;
|
|
109
|
+
stdout?: string;
|
|
110
|
+
stderr?: string;
|
|
111
|
+
};
|
|
112
|
+
readonly fetch?: typeof fetch;
|
|
113
|
+
readonly sleep?: (ms: number) => Promise<void>;
|
|
114
|
+
readonly bootstrap?: typeof runBootstrap;
|
|
115
|
+
readonly controlClient?: (options: ProcessorClientOptions) => Pick<ProcessorClient, "subscriptions" | "inboxSummary">;
|
|
116
|
+
readonly observe?: (url: string, binding: ManagedInstallation["binding"]) => Promise<NodeObservation>;
|
|
117
|
+
}
|
|
118
|
+
/** Verify process health separately from ACTIVE binding/collection readiness. These are reads,
|
|
119
|
+
* never node pulls. A generic HTTP200 or a desired file alone cannot unlock generated pairing. */
|
|
120
|
+
export declare function waitManagedReady(state: ManagedInstallation, timeoutMs: number, deps?: InstallDeps): Promise<ProcessorClientOptions>;
|
|
121
|
+
/** Start exactly one paired node + persistent SDK processor, then bootstrap the agent reader. */
|
|
122
|
+
export declare function runInstall(argv: string[], env: NodeJS.ProcessEnv & InstallEnv, deps?: InstallDeps): Promise<InstallResult>;
|
|
88
123
|
//# sourceMappingURL=install.d.ts.map
|
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":"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"}
|