@mcsherrylabs/pi-meerkat 0.11.0 → 0.11.1
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/README.md +29 -5
- package/dist/installer.d.ts +13 -1
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +61 -8
- package/dist/installer.js.map +1 -1
- package/installer/progress.mjs +12 -0
- package/installer/runtime-control.mjs +42 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Meerkat registry tools and a **stdio MCP facade**. One client registration exposes the seven
|
|
4
4
|
Meerkat tools plus every tool dynamically discovered from the private
|
|
5
|
-
`@mcsherrylabs/evolver-mcp@0.
|
|
5
|
+
`@mcsherrylabs/evolver-mcp@0.17.0` child. The released upstream baseline is 65 tools, so healthy
|
|
6
6
|
discovery currently returns 72. The count is a comparison baseline, not a routing allowlist.
|
|
7
7
|
|
|
8
|
-
**Version 0.
|
|
8
|
+
**Version 0.11.1 reports install progress (phases, sync ETA) on stderr. Version 0.11.0 runs the registry on the SDK's managed processor shell** (the same shell as
|
|
9
|
+
the evolver-mcp processor, with the registry module added; images are built FROM the evolver-mcp
|
|
10
|
+
0.17.0 processor image, and the node is evolver-mcp's own node-join/config). Version 0.9.0 made
|
|
11
|
+
DevNet the default install target (`install` installs against the public
|
|
9
12
|
DevNet; `install --local` creates a private local chain). Version 0.8.0 added the
|
|
10
13
|
zero-required-parameter installer (local chain only). Version 0.7.0 introduced the
|
|
11
14
|
facade but required an existing node, registry, identity and key. Version 0.6.0 is the old
|
|
@@ -25,8 +28,8 @@ Prerequisites in the environment where your MCP harness runs:
|
|
|
25
28
|
### 1. Install
|
|
26
29
|
|
|
27
30
|
```bash
|
|
28
|
-
npx --yes @mcsherrylabs/pi-meerkat@0.
|
|
29
|
-
npx --yes @mcsherrylabs/pi-meerkat@0.
|
|
31
|
+
npx --yes @mcsherrylabs/pi-meerkat@0.11.1 install # public DevNet (default)
|
|
32
|
+
npx --yes @mcsherrylabs/pi-meerkat@0.11.1 install --local # private local chain
|
|
30
33
|
```
|
|
31
34
|
|
|
32
35
|
No identity, key, endpoint, registry, chain ID, channel, port, GID, path, environment variables
|
|
@@ -54,6 +57,27 @@ builds the wrapper images, so allow time for Docker/npm downloads. Failed
|
|
|
54
57
|
preflight/build/readiness exits nonzero with a reason. Each mode keeps its own state directory
|
|
55
58
|
(`devnet/` or `local/` under your XDG state directory); 0.8.0 state is never touched.
|
|
56
59
|
|
|
60
|
+
**What to expect.** Installation prints only one line of JSON on **stdout** (the registration); all
|
|
61
|
+
human progress goes to **stderr**, one plain `[meerkat] …` line at a time (no colour, safe to pipe or
|
|
62
|
+
log). The phases and their usual durations are:
|
|
63
|
+
|
|
64
|
+
1. **Download and build** — downloads about 1 GB of images and builds the wrapper images (first
|
|
65
|
+
install: usually 2–10 minutes, depending on your connection).
|
|
66
|
+
2. **Start services** — local starts the consensus committee then the node; DevNet starts the node,
|
|
67
|
+
which **begins syncing the public DevNet from round 0** straight away.
|
|
68
|
+
3. **Claim identities** — through the DevNet faucet (DevNet) or the local committee (local); local
|
|
69
|
+
also claims the private announcement channel once.
|
|
70
|
+
4. **Catch-up / ready** — DevNet: *waiting for the node and registry to catch up with DevNet*
|
|
71
|
+
(usually 10–30 minutes, with a progress line every 30 s). Local: *waiting for the registry*
|
|
72
|
+
(usually under a minute).
|
|
73
|
+
5. **Done** — reports the total elapsed time and the next step (`claude mcp add … serve`, with
|
|
74
|
+
`--local` for local).
|
|
75
|
+
|
|
76
|
+
DevNet sync starts when the node starts and the final wait is the catch-up to the live chain tip
|
|
77
|
+
(the progress lines report the real "round X of Y" target — there is no hard-coded count). Running
|
|
78
|
+
the **same install command again resumes** the saved installation: skipped phases report themselves
|
|
79
|
+
truthfully (e.g. "already built", "already running") and never re-claim or re-initialize.
|
|
80
|
+
|
|
57
81
|
### 2. Register one server
|
|
58
82
|
|
|
59
83
|
Use the one `registration.mcpServers.meerkat` entry printed by installation. For Claude Code,
|
|
@@ -61,7 +85,7 @@ if you do not already have a registration named `meerkat`, the equivalent comman
|
|
|
61
85
|
|
|
62
86
|
```bash
|
|
63
87
|
claude mcp add --scope user --transport stdio meerkat -- \
|
|
64
|
-
npx --yes @mcsherrylabs/pi-meerkat@0.
|
|
88
|
+
npx --yes @mcsherrylabs/pi-meerkat@0.11.1 serve
|
|
65
89
|
```
|
|
66
90
|
|
|
67
91
|
Add `--local` after `serve` if you installed with `install --local`.
|
package/dist/installer.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface Installation {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
export interface InstallerDeps {
|
|
25
|
-
command(command: string, args: string[], env?: NodeJS.ProcessEnv, cwd?: string): Promise<string>;
|
|
25
|
+
command(command: string, args: string[], env?: NodeJS.ProcessEnv, cwd?: string, options?: CommandOptions): Promise<string>;
|
|
26
26
|
committeeReady?(state: Installation, env: NodeJS.ProcessEnv): Promise<void>;
|
|
27
27
|
nodeBinding(state: Installation, env: NodeJS.ProcessEnv): Promise<{
|
|
28
28
|
chainId: string;
|
|
@@ -31,6 +31,8 @@ export interface InstallerDeps {
|
|
|
31
31
|
registryReady(state: Installation, env: NodeJS.ProcessEnv): Promise<void>;
|
|
32
32
|
bootstrap(state: Installation, env: NodeJS.ProcessEnv): Promise<void>;
|
|
33
33
|
claimChannel?(state: Installation, env: NodeJS.ProcessEnv): Promise<void>;
|
|
34
|
+
/** Human-facing progress sink. Defaults to stderr, one `[meerkat] …` line per call. Tests inject this to assert ordering. */
|
|
35
|
+
say?(line: string): void;
|
|
34
36
|
}
|
|
35
37
|
export declare function managedDirectory(env?: NodeJS.ProcessEnv): string;
|
|
36
38
|
/** Per-mode state directory. The 0.8.0 path `<state>/meerkat/` (installation.json) is never used. */
|
|
@@ -371,6 +373,15 @@ export declare function renderDeployment(state: Installation): {
|
|
|
371
373
|
};
|
|
372
374
|
};
|
|
373
375
|
};
|
|
376
|
+
interface CommandOptions {
|
|
377
|
+
progress?: boolean;
|
|
378
|
+
timeoutMs?: number;
|
|
379
|
+
heartbeat?: (elapsedMs: number) => void;
|
|
380
|
+
heartbeatMs?: number;
|
|
381
|
+
}
|
|
382
|
+
/** Rewrites a stderr chunk into the `[meerkat]` lines to stream live. Only `[installer] `-prefixed
|
|
383
|
+
* lines surface (the runtime helper's own progress); everything else stays buffered for failures. */
|
|
384
|
+
export declare function installerProgressLines(chunk: string): string[];
|
|
374
385
|
export declare function operatorEnvironment(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
375
386
|
export declare function managedInstallation(mode?: Mode, env?: NodeJS.ProcessEnv): Promise<Installation | undefined>;
|
|
376
387
|
/** Protocol-only stdio bridge, one new facade/private child/session per harness connection.
|
|
@@ -388,4 +399,5 @@ export declare function installMeerkat(mode?: Mode, env?: NodeJS.ProcessEnv, dep
|
|
|
388
399
|
};
|
|
389
400
|
};
|
|
390
401
|
}>;
|
|
402
|
+
export {};
|
|
391
403
|
//# sourceMappingURL=installer.d.ts.map
|
package/dist/installer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AA4CA,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAC9E,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAClG,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAC1E,cAAc,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACnH;AACD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AA4CA,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAC9E,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAClG,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAC1E,cAAc,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACnH;AACD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3H,cAAc,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvG,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,YAAY,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,6HAA6H;IAC7H,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AACD,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAI7E;AACD,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAEtF;AACD,eAAO,MAAM,iBAAiB,GAAI,OAAM,IAAe,EAAE,MAAK,MAAM,CAAC,UAAwB,KAAG,MAC3C,CAAC;AAEtD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAe;;;;;;;EAGxE;AAkBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqEnD;AAED,UAAU,cAAc;IAAG,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAAE;AA+BnI;qGACqG;AACrG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9D;AAcD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAK7E;AAwED,wBAAsB,mBAAmB,CAAC,IAAI,GAAE,IAAe,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAOxI;AACD;2FAC2F;AAC3F,wBAAsB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC3G;AACD,wBAAsB,cAAc,CAAC,IAAI,GAAE,IAAe,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,IAAI,GAAE,aAAwB;;;;;;;;;;;GA0H/H"}
|
package/dist/installer.js
CHANGED
|
@@ -138,16 +138,33 @@ export function renderDeployment(state) {
|
|
|
138
138
|
networks: { default: { name: `${state.project}-network`, internal: true, labels } },
|
|
139
139
|
};
|
|
140
140
|
}
|
|
141
|
-
async function command(command, args, env = process.env, cwd,
|
|
141
|
+
async function command(command, args, env = process.env, cwd, options = {}) {
|
|
142
|
+
const { progress = false, timeoutMs = 600_000 } = options;
|
|
142
143
|
return new Promise((resolve, reject) => {
|
|
143
144
|
const child = spawn(command, args, { env, cwd, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
144
145
|
let stdout = '', stderr = '', timedOut = false;
|
|
146
|
+
const started = Date.now();
|
|
145
147
|
const timer = setTimeout(() => { timedOut = true; child.kill('SIGTERM'); }, timeoutMs);
|
|
146
148
|
const hard = setTimeout(() => child.kill('SIGKILL'), timeoutMs + 5_000);
|
|
149
|
+
// A heartbeat for a long silent phase: report elapsed wall-clock (never raw BuildKit output).
|
|
150
|
+
const heartbeat = options.heartbeat
|
|
151
|
+
? setInterval(() => options.heartbeat(Date.now() - started), options.heartbeatMs ?? 30_000) : undefined;
|
|
152
|
+
heartbeat?.unref?.();
|
|
147
153
|
child.stdout.on('data', data => { stdout = (stdout + String(data)).slice(-2 * 1024 * 1024); });
|
|
148
|
-
child.stderr.on('data', data => {
|
|
149
|
-
|
|
154
|
+
child.stderr.on('data', data => {
|
|
155
|
+
const chunk = String(data);
|
|
156
|
+
stderr = (stderr + chunk).slice(-8192);
|
|
157
|
+
// Stream only the runtime-control `[installer] …` lines live; everything else stays buffered
|
|
158
|
+
// for the failure message (so a successful run never dumps raw build/exec noise to stderr).
|
|
159
|
+
if (progress)
|
|
160
|
+
for (const line of installerProgressLines(chunk))
|
|
161
|
+
process.stderr.write(`${line}\n`);
|
|
162
|
+
});
|
|
163
|
+
child.on('error', error => { if (heartbeat)
|
|
164
|
+
clearInterval(heartbeat); clearTimeout(timer); clearTimeout(hard); reject(error); });
|
|
150
165
|
child.on('close', code => {
|
|
166
|
+
if (heartbeat)
|
|
167
|
+
clearInterval(heartbeat);
|
|
151
168
|
clearTimeout(timer);
|
|
152
169
|
clearTimeout(hard);
|
|
153
170
|
if (code !== 0 || timedOut)
|
|
@@ -159,19 +176,26 @@ async function command(command, args, env = process.env, cwd, timeoutMs = 600_00
|
|
|
159
176
|
}
|
|
160
177
|
const composeArgs = (state) => ['compose', '--project-name', state.project, '--file', join(state.dir, 'compose.json')];
|
|
161
178
|
const request = (state) => JSON.stringify({ mode: state.mode, nodeId: state.nodeId, committeeId: state.committeeId ?? '', identity: state.identity, channel: state.channel, binding: state.binding });
|
|
179
|
+
const sayLine = (line) => { process.stderr.write(`[meerkat] ${line}\n`); };
|
|
180
|
+
/** Rewrites a stderr chunk into the `[meerkat]` lines to stream live. Only `[installer] `-prefixed
|
|
181
|
+
* lines surface (the runtime helper's own progress); everything else stays buffered for failures. */
|
|
182
|
+
export function installerProgressLines(chunk) {
|
|
183
|
+
return chunk.split('\n').filter(line => line.startsWith('[installer] ')).map(line => `[meerkat] ${line.slice('[installer] '.length)}`);
|
|
184
|
+
}
|
|
162
185
|
const defaults = {
|
|
163
186
|
command,
|
|
164
187
|
committeeReady: async (state, env) => {
|
|
165
188
|
await command('docker', [...composeArgs(state), 'run', '--rm', '--no-deps',
|
|
166
189
|
'--entrypoint', 'node', 'registry', control, 'committee-ready', request(state)], env, state.dir);
|
|
167
190
|
},
|
|
191
|
+
// node-binding owns a progress-aware wait (DevNet: syncs from round 0); stream its `[installer]` lines.
|
|
168
192
|
nodeBinding: async (state, env) => JSON.parse(await command('docker', [...composeArgs(state), 'run', '--rm', '--no-deps',
|
|
169
|
-
'--entrypoint', 'node', 'registry', control, 'node-binding', request(state)], env, state.dir)),
|
|
193
|
+
'--entrypoint', 'node', 'registry', control, 'node-binding', request(state)], env, state.dir, { progress: true })),
|
|
170
194
|
// runtime-control 'ready' owns a progress-aware wait (DevNet: 45 min budget, 10 min stall); a fresh
|
|
171
195
|
// DevNet follower needs well over 10 min to sync, so the outer deadline must sit above that budget.
|
|
172
|
-
registryReady: async (state, env) => { await command('docker', ['exec', `${state.project}-registry`, 'node', control, 'ready', request(state)], env, undefined, 50 * 60_000); },
|
|
173
|
-
bootstrap: async (state, env) => { await command('docker', ['exec', '--workdir', '/meerkat/agent', `${state.project}-registry`, 'node', control, 'bootstrap', request(state)], env); },
|
|
174
|
-
claimChannel: async (state, env) => { await command('docker', ['exec', '--workdir', '/meerkat/agent', `${state.project}-registry`, 'node', control, 'claim-channel', request(state)], env); },
|
|
196
|
+
registryReady: async (state, env) => { await command('docker', ['exec', `${state.project}-registry`, 'node', control, 'ready', request(state)], env, undefined, { progress: true, timeoutMs: 50 * 60_000 }); },
|
|
197
|
+
bootstrap: async (state, env) => { await command('docker', ['exec', '--workdir', '/meerkat/agent', `${state.project}-registry`, 'node', control, 'bootstrap', request(state)], env, undefined, { progress: true }); },
|
|
198
|
+
claimChannel: async (state, env) => { await command('docker', ['exec', '--workdir', '/meerkat/agent', `${state.project}-registry`, 'node', control, 'claim-channel', request(state)], env, undefined, { progress: true }); },
|
|
175
199
|
};
|
|
176
200
|
export function operatorEnvironment(env) {
|
|
177
201
|
const result = {};
|
|
@@ -327,6 +351,9 @@ export async function serveManaged(state, env = process.env) {
|
|
|
327
351
|
export async function installMeerkat(mode = 'devnet', env = process.env, deps = defaults) {
|
|
328
352
|
if (Number(process.versions.node.split('.')[0]) < 22)
|
|
329
353
|
throw new Error('Meerkat install requires Node.js 22 or newer, npm/npx, and Docker Engine with Compose v2');
|
|
354
|
+
const say = deps.say ?? sayLine;
|
|
355
|
+
const devnet = mode === 'devnet';
|
|
356
|
+
const started = Date.now();
|
|
330
357
|
const packageVersion = JSON.parse(await readFile(join(packageDir, 'package.json'), 'utf8')).version;
|
|
331
358
|
const dir = modeDirectory(mode, env), configPath = managedConfigPath(mode, env), cleanEnv = operatorEnvironment(env);
|
|
332
359
|
await deps.command('docker', ['version', '--format', 'json'], cleanEnv);
|
|
@@ -376,6 +403,12 @@ export async function installMeerkat(mode = 'devnet', env = process.env, deps =
|
|
|
376
403
|
throw new Error('fresh initialization was interrupted; retained state requires operator inspection, never automatic reseeding');
|
|
377
404
|
await ownership(state, deps, cleanEnv, fresh);
|
|
378
405
|
checkpoint();
|
|
406
|
+
if (fresh) {
|
|
407
|
+
say(`${devnet ? 'DevNet' : 'Local'} install into ${dir} — the first run downloads about 1 GB of images`);
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
say(`Resuming ${devnet ? 'DevNet' : 'local'} install in ${dir}`);
|
|
411
|
+
}
|
|
379
412
|
if (fresh) {
|
|
380
413
|
await cp(join(packageDir, 'dist'), join(dir, 'package', 'dist'), { recursive: true, errorOnExist: true, force: false });
|
|
381
414
|
await cp(join(packageDir, 'installer'), join(dir, 'package', 'installer'), { recursive: true, errorOnExist: true, force: false });
|
|
@@ -388,7 +421,8 @@ export async function installMeerkat(mode = 'devnet', env = process.env, deps =
|
|
|
388
421
|
await compose('config', '--quiet');
|
|
389
422
|
checkpoint();
|
|
390
423
|
if (state.initialization === 'pending') {
|
|
391
|
-
|
|
424
|
+
say('Downloading and building images (first install: usually 2–10 minutes, depending on your connection) …');
|
|
425
|
+
await deps.command('docker', [...composeArgs(state), 'build', ...(state.mode === 'devnet' ? ['node', 'registry'] : ['committee', 'node', 'registry'])], cleanEnv, dir, { timeoutMs: 45 * 60_000, heartbeat: (elapsed) => say(`still downloading/building images… ${Math.round(elapsed / 60_000)}m elapsed`) });
|
|
392
426
|
checkpoint();
|
|
393
427
|
state.initialization = 'attempted';
|
|
394
428
|
await saveState(state);
|
|
@@ -397,11 +431,21 @@ export async function installMeerkat(mode = 'devnet', env = process.env, deps =
|
|
|
397
431
|
await saveState(state);
|
|
398
432
|
checkpoint();
|
|
399
433
|
}
|
|
434
|
+
else {
|
|
435
|
+
say('Images already built — skipping build');
|
|
436
|
+
}
|
|
400
437
|
if (state.mode === 'local') {
|
|
438
|
+
say(state.binding ? 'Starting the local consensus committee (already built) …' : 'Starting the local consensus committee …');
|
|
401
439
|
await compose('up', '-d', '--no-build', '--no-recreate', 'committee');
|
|
402
440
|
await deps.committeeReady(state, cleanEnv);
|
|
403
441
|
checkpoint();
|
|
404
442
|
}
|
|
443
|
+
if (devnet) {
|
|
444
|
+
say('Starting the node — it now begins syncing the public DevNet from round 0 (the live “round X of Y” progress lines report the real target); the installer waits for it to catch up at the end');
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
say(state.binding ? 'Starting the processing node (already running) …' : 'Starting the processing node …');
|
|
448
|
+
}
|
|
405
449
|
await compose('up', '-d', '--no-build', '--no-recreate', 'node');
|
|
406
450
|
checkpoint();
|
|
407
451
|
const observed = await deps.nodeBinding(state, cleanEnv);
|
|
@@ -416,19 +460,28 @@ export async function installMeerkat(mode = 'devnet', env = process.env, deps =
|
|
|
416
460
|
await writeFile(composePath, JSON.stringify(renderDeployment(state), null, 2), { mode: 0o600 });
|
|
417
461
|
await compose('up', '-d', '--no-build', '--no-recreate', 'registry');
|
|
418
462
|
checkpoint();
|
|
463
|
+
say(devnet ? 'Claiming identities through the DevNet faucet …' : 'Claiming the agent identity through the local committee …');
|
|
419
464
|
await deps.bootstrap(state, cleanEnv);
|
|
420
465
|
if (state.mode === 'local' && !state.ready) {
|
|
421
466
|
// The agent owns the install's private channel; claim it once through the child's own tools,
|
|
422
467
|
// BEFORE the registry's readiness check, so the read-only registry sees its pinned operator.
|
|
423
468
|
// A completed install never repeats the step. An interrupted one retries it: the runtime
|
|
424
469
|
// reads the terms first and never re-claims a channel the agent already owns.
|
|
470
|
+
say('Claiming the private announcement channel …');
|
|
425
471
|
await deps.claimChannel(state, cleanEnv);
|
|
426
472
|
}
|
|
473
|
+
if (devnet) {
|
|
474
|
+
say('Waiting for the node and registry to catch up with DevNet (usually 10–30 minutes; progress every 30 s). You can leave this running; re-running the same install command later resumes.');
|
|
475
|
+
}
|
|
476
|
+
else {
|
|
477
|
+
say(state.ready ? 'Waiting for the registry (already ready) …' : 'Waiting for the registry (usually under a minute) …');
|
|
478
|
+
}
|
|
427
479
|
await deps.registryReady(state, cleanEnv);
|
|
428
480
|
checkpoint();
|
|
429
481
|
state.ready = true;
|
|
430
482
|
await saveState(state);
|
|
431
483
|
checkpoint();
|
|
484
|
+
say(`Ready after ${Math.round((Date.now() - started) / 1000)}s. Next: register with — claude mcp add --scope user --transport stdio meerkat -- npx --yes ${PACKAGE}@${state.packageVersion} serve${devnet ? '' : ' --local'}`);
|
|
432
485
|
return { dir, configPath, registration: pinnedRegistration(state.packageVersion, state.mode) };
|
|
433
486
|
}
|
|
434
487
|
finally {
|
package/dist/installer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Pure progress-line formatting shared by the installer runtime helper and its unit tests.
|
|
2
|
+
// No side effects: importing this module does nothing observable. `untilProgress` (in
|
|
3
|
+
// runtime-control.mjs) calls `progressLine` to build its `[installer] …` report lines.
|
|
4
|
+
export function progressLine({ description, asOf, target, ratePerSec }) {
|
|
5
|
+
const pct = target != null && target > 0 ? `${(100 * asOf / target).toFixed(1)}%` : null;
|
|
6
|
+
// ETA needs both an observed rate and a known tip; otherwise it is honest to report no estimate.
|
|
7
|
+
const eta = ratePerSec && ratePerSec > 0 && target != null
|
|
8
|
+
? `about ${Math.ceil((target - asOf) / ratePerSec / 60)} min remaining`
|
|
9
|
+
: 'measuring rate';
|
|
10
|
+
const tip = target != null ? ` of ${target}` : '';
|
|
11
|
+
return `[installer] ${description}: round ${asOf}${tip}${pct ? ` (${pct})` : ''}, ${eta}`;
|
|
12
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Fixed-target installer helper, not an MCP tool or arbitrary URL/shell executor.
|
|
2
2
|
import { mkdir, readFile, writeFile, unlink, lstat } from 'node:fs/promises';
|
|
3
3
|
import { publishSessionPid } from './session-files.mjs';
|
|
4
|
+
import { progressLine } from './progress.mjs';
|
|
4
5
|
import { spawn } from 'node:child_process';
|
|
5
6
|
import { join } from 'node:path';
|
|
6
7
|
import { loadFacadeConfig, saveFacadeConfig } from '../dist/mcp-config.js';
|
|
@@ -26,21 +27,46 @@ async function until(description, check) {
|
|
|
26
27
|
// DevNet catch-up is long (~14k blocks) and progress stays observable. A fixed short deadline
|
|
27
28
|
// would fail a healthy sync, so this waits generously, fails only on STALLED progress, and reports
|
|
28
29
|
// advancement to stderr only. `readProgress` returns null (not observed yet), `{ done: value }`
|
|
29
|
-
// (finished), or `{ progress: scalar }` (still advancing
|
|
30
|
-
// the
|
|
31
|
-
|
|
30
|
+
// (finished), or `{ progress: scalar, target?: scalar }` (still advancing; target is the known tip
|
|
31
|
+
// when the reader can observe one). Progress must be comparable with `<=`; `target` does not affect
|
|
32
|
+
// the `<=` decision. The wait succeeds only on `done`, fails on a stall or the whole budget expiring,
|
|
33
|
+
// and reports one progress line every `intervalMs` while advancing (with an ETA computed from the
|
|
34
|
+
// observed rate over the recent window) plus a distinct line when stalled past 30 s.
|
|
35
|
+
export { progressLine };
|
|
36
|
+
async function untilProgress(description, readProgress, { budgetMs = 45 * 60 * 1000, stallMs = 10 * 60 * 1000, intervalMs = 30_000, reporter = line => process.stderr.write(`${line}\n`) } = {}) {
|
|
32
37
|
const end = Date.now() + budgetMs;
|
|
33
|
-
let last = null, lastAt =
|
|
38
|
+
let last = null, lastAt = 0, started = false;
|
|
39
|
+
let lastReport = 0, stalledReported = false;
|
|
40
|
+
// Rate over a recent window: (asOf, atMs) samples, kept to the last ~2 intervals.
|
|
41
|
+
const window = [];
|
|
34
42
|
while (Date.now() < end) {
|
|
35
43
|
const value = await readProgress();
|
|
36
44
|
if (value && value.done !== undefined) return value.done;
|
|
37
45
|
if (value && value.progress !== undefined) {
|
|
38
|
-
|
|
39
|
-
if (
|
|
46
|
+
const now = Date.now();
|
|
47
|
+
if (!started) { started = true; lastAt = now; lastReport = now; }
|
|
48
|
+
if (last === null || value.progress > last) {
|
|
49
|
+
window.push({ asOf: value.progress, at: now });
|
|
50
|
+
while (window.length > 2 && now - window[0].at > intervalMs * 2) window.shift();
|
|
51
|
+
last = value.progress; lastAt = now; stalledReported = false;
|
|
52
|
+
}
|
|
53
|
+
const target = value.target;
|
|
54
|
+
if (now - lastAt > stallMs)
|
|
55
|
+
throw new Error(`${description} stalled (no progress for ${Math.round((now - lastAt) / 1000)}s at ${last}); state retained, nothing reset`);
|
|
56
|
+
if (now - lastAt > 30_000 && !stalledReported) {
|
|
57
|
+
reporter(`[installer] ${description}: no progress for ${Math.round((now - lastAt) / 1000)}s at ${last}…`);
|
|
58
|
+
stalledReported = true;
|
|
59
|
+
} else if (now - lastReport >= intervalMs && last !== null) {
|
|
60
|
+
let ratePerSec = 0;
|
|
61
|
+
if (window.length >= 2) {
|
|
62
|
+
const first = window[0], latest = window[window.length - 1];
|
|
63
|
+
const dt = (latest.at - first.at) / 1000;
|
|
64
|
+
if (dt > 0) ratePerSec = (latest.asOf - first.asOf) / dt;
|
|
65
|
+
}
|
|
66
|
+
reporter(progressLine({ description, asOf: last, target, ratePerSec }));
|
|
67
|
+
lastReport = now;
|
|
68
|
+
}
|
|
40
69
|
}
|
|
41
|
-
if (started && Date.now() - lastAt > stallMs)
|
|
42
|
-
throw new Error(`${description} stalled (no progress for ${Math.round((Date.now() - lastAt) / 1000)}s at ${last}); state retained, nothing reset`);
|
|
43
|
-
if (started && last !== null && Date.now() - lastAt > 30_000) process.stderr.write(`[installer] ${description} at ${last}…\n`);
|
|
44
70
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
45
71
|
}
|
|
46
72
|
throw new Error(`${description} not observed within ${Math.round(budgetMs / 1000)}s (last ${last}); state retained, nothing reset`);
|
|
@@ -167,10 +193,12 @@ async function main() {
|
|
|
167
193
|
try {
|
|
168
194
|
const value = await json('http://node:8440/api/channel/processor-state');
|
|
169
195
|
if (!value.processing || !/^[0-9a-f]{64}$/.test(value.binding?.chainId)) {
|
|
170
|
-
// Followers report a synced height while catching up; expose it as stalled-detectable progress
|
|
196
|
+
// Followers report a synced height while catching up; expose it as stalled-detectable progress
|
|
197
|
+
// with the live chain tip so the reporter can name a real target (never a hard-coded count).
|
|
171
198
|
try {
|
|
172
199
|
const status = await json('http://node:8440/status');
|
|
173
|
-
|
|
200
|
+
const tip = Number.isInteger(status.heardRound) ? status.heardRound : undefined;
|
|
201
|
+
if (Number.isInteger(status.blockHeight) && status.blockHeight >= 0) return { progress: status.blockHeight, target: tip };
|
|
174
202
|
} catch { /* not up yet */ }
|
|
175
203
|
return null;
|
|
176
204
|
}
|
|
@@ -181,7 +209,7 @@ async function main() {
|
|
|
181
209
|
} catch (e) { if (e?.permanent) throw e; return null; }
|
|
182
210
|
};
|
|
183
211
|
const binding = args.mode === 'devnet'
|
|
184
|
-
? await untilProgress('
|
|
212
|
+
? await untilProgress('DevNet sync', reads)
|
|
185
213
|
: await until('owned processing node', async () => {
|
|
186
214
|
const value = await reads();
|
|
187
215
|
if (value === null) throw new Error('processing/genesis observation not ready');
|
|
@@ -206,13 +234,13 @@ async function main() {
|
|
|
206
234
|
return summary;
|
|
207
235
|
};
|
|
208
236
|
if (args.mode === 'devnet') {
|
|
209
|
-
await untilProgress('
|
|
237
|
+
await untilProgress('DevNet sync', async () => {
|
|
210
238
|
try {
|
|
211
239
|
const summary = await check();
|
|
212
240
|
const asOf = Number(summary.asOfRound), tip = Number(summary.tipRound);
|
|
213
241
|
if (Number.isSafeInteger(asOf) && Number.isSafeInteger(tip) && tip >= 0) {
|
|
214
242
|
// Fully caught up (asOf >= tip) with everything else already valid via check().
|
|
215
|
-
return asOf >= tip ? { done: true } : { progress: asOf };
|
|
243
|
+
return asOf >= tip ? { done: true } : { progress: asOf, target: tip };
|
|
216
244
|
}
|
|
217
245
|
return null;
|
|
218
246
|
} catch (e) { if (e?.permanent) throw e; return null; }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcsherrylabs/pi-meerkat",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "Meerkat zero-parameter DevNet installer (local chain with --local), stdio MCP facade and registry tools, with a private pinned Evolver MCP child. Preserves the announcement contract and existing Pi extension.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"meerkat-mcp": "./dist/mcp-cli.js"
|