remote-pi 0.4.1 → 0.4.3
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/daemon/rpc_child.d.ts +4 -1
- package/dist/daemon/rpc_child.js +14 -3
- package/dist/daemon/rpc_child.js.map +1 -1
- package/dist/daemon/supervisor.js +9 -1
- package/dist/daemon/supervisor.js.map +1 -1
- package/dist/index.js +75 -60
- package/dist/index.js.map +1 -1
- package/dist/mcp/mesh_server.js +170 -44
- package/dist/mcp/mesh_server.js.map +1 -1
- package/dist/session/address.d.ts +49 -0
- package/dist/session/address.js +58 -0
- package/dist/session/address.js.map +1 -0
- package/dist/session/broker.d.ts +18 -22
- package/dist/session/broker.js +10 -51
- package/dist/session/broker.js.map +1 -1
- package/dist/session/broker_remote.js +5 -5
- package/dist/session/broker_remote.js.map +1 -1
- package/dist/session/cwd_lock.js +11 -4
- package/dist/session/cwd_lock.js.map +1 -1
- package/dist/session/mesh_message.d.ts +20 -0
- package/dist/session/mesh_message.js +28 -0
- package/dist/session/mesh_message.js.map +1 -0
- package/dist/session/mesh_node.d.ts +11 -0
- package/dist/session/mesh_node.js +81 -2
- package/dist/session/mesh_node.js.map +1 -1
- package/dist/session/tools.js +17 -11
- package/dist/session/tools.js.map +1 -1
- package/package.json +1 -1
- package/skills/agent-network/SKILL.md +163 -280
- package/skills/claude-agent-network/SKILL.md +0 -239
|
@@ -35,6 +35,7 @@ export interface RpcChildExitEvent {
|
|
|
35
35
|
/** True when exit was not clean (non-zero or signal). */
|
|
36
36
|
isCrash: boolean;
|
|
37
37
|
}
|
|
38
|
+
export declare const EXIT_DAEMON_FRESH_SESSION = 42;
|
|
38
39
|
/**
|
|
39
40
|
* CLI args for the daemon's `pi --mode rpc` child.
|
|
40
41
|
*
|
|
@@ -52,7 +53,7 @@ export interface RpcChildExitEvent {
|
|
|
52
53
|
* daemon's name is set at registration (`remote-pi create <cwd> --name "…"`).
|
|
53
54
|
* Omitted when no name resolves, so the arg list stays minimal.
|
|
54
55
|
*/
|
|
55
|
-
export declare function rpcSpawnArgs(extensionPath: string, sessionName?: string): string[];
|
|
56
|
+
export declare function rpcSpawnArgs(extensionPath: string, sessionName?: string, useContinue?: boolean): string[];
|
|
56
57
|
export declare class RpcChild extends EventEmitter {
|
|
57
58
|
private readonly opts;
|
|
58
59
|
private child;
|
|
@@ -65,6 +66,8 @@ export declare class RpcChild extends EventEmitter {
|
|
|
65
66
|
* just stopped/removed. Gating `isCrash` on this makes a deliberate stop a
|
|
66
67
|
* clean exit (no restart). Reset on every `spawn()`. */
|
|
67
68
|
private _stopping;
|
|
69
|
+
/** Next spawn should create a fresh session instead of --continue. */
|
|
70
|
+
private forceFreshSessionOnNextSpawn;
|
|
68
71
|
/** Accumulates partial stdout lines while waiting for `\n`. */
|
|
69
72
|
private stdoutBuf;
|
|
70
73
|
constructor(opts: RpcChildOptions);
|
package/dist/daemon/rpc_child.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { EventEmitter } from "node:events";
|
|
3
3
|
import { defaultAgentName, loadLocalConfig } from "../session/local_config.js";
|
|
4
|
+
export const EXIT_DAEMON_FRESH_SESSION = 42;
|
|
4
5
|
/**
|
|
5
6
|
* CLI args for the daemon's `pi --mode rpc` child.
|
|
6
7
|
*
|
|
@@ -18,9 +19,10 @@ import { defaultAgentName, loadLocalConfig } from "../session/local_config.js";
|
|
|
18
19
|
* daemon's name is set at registration (`remote-pi create <cwd> --name "…"`).
|
|
19
20
|
* Omitted when no name resolves, so the arg list stays minimal.
|
|
20
21
|
*/
|
|
21
|
-
export function rpcSpawnArgs(extensionPath, sessionName) {
|
|
22
|
+
export function rpcSpawnArgs(extensionPath, sessionName, useContinue = true) {
|
|
22
23
|
return [
|
|
23
|
-
"--mode", "rpc",
|
|
24
|
+
"--mode", "rpc",
|
|
25
|
+
...(useContinue ? ["--continue"] : []),
|
|
24
26
|
...(sessionName ? ["--name", sessionName] : []),
|
|
25
27
|
"-e", extensionPath,
|
|
26
28
|
];
|
|
@@ -37,6 +39,8 @@ export class RpcChild extends EventEmitter {
|
|
|
37
39
|
* just stopped/removed. Gating `isCrash` on this makes a deliberate stop a
|
|
38
40
|
* clean exit (no restart). Reset on every `spawn()`. */
|
|
39
41
|
_stopping = false;
|
|
42
|
+
/** Next spawn should create a fresh session instead of --continue. */
|
|
43
|
+
forceFreshSessionOnNextSpawn = false;
|
|
40
44
|
/** Accumulates partial stdout lines while waiting for `\n`. */
|
|
41
45
|
stdoutBuf = "";
|
|
42
46
|
constructor(opts) {
|
|
@@ -63,7 +67,9 @@ export class RpcChild extends EventEmitter {
|
|
|
63
67
|
// so it shows up stably instead of an auto-generated name on each restart.
|
|
64
68
|
const sessionName = loadLocalConfig(this.opts.cwd).agent_name
|
|
65
69
|
?? defaultAgentName(this.opts.cwd);
|
|
66
|
-
const
|
|
70
|
+
const useContinue = !this.forceFreshSessionOnNextSpawn;
|
|
71
|
+
this.forceFreshSessionOnNextSpawn = false;
|
|
72
|
+
const args = rpcSpawnArgs(this.opts.extensionPath, sessionName, useContinue);
|
|
67
73
|
const env = {
|
|
68
74
|
...process.env,
|
|
69
75
|
...this.opts.env,
|
|
@@ -152,6 +158,11 @@ export class RpcChild extends EventEmitter {
|
|
|
152
158
|
}
|
|
153
159
|
}
|
|
154
160
|
_onExit(code, signal) {
|
|
161
|
+
// Daemon app-action `/new`: child exits with a private code, supervisor
|
|
162
|
+
// restarts it, and the next spawn omits --continue once to create a fresh
|
|
163
|
+
// session. Later restarts go back to --continue.
|
|
164
|
+
if (code === EXIT_DAEMON_FRESH_SESSION)
|
|
165
|
+
this.forceFreshSessionOnNextSpawn = true;
|
|
155
166
|
// A deliberate stop() kills by signal — not a crash, so the supervisor
|
|
156
167
|
// must NOT auto-restart it. Only an UNexpected exit counts as a crash.
|
|
157
168
|
const isCrash = !this._stopping && (code !== 0 || signal !== null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc_child.js","sourceRoot":"","sources":["../../src/daemon/rpc_child.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAwC/E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,
|
|
1
|
+
{"version":3,"file":"rpc_child.js","sourceRoot":"","sources":["../../src/daemon/rpc_child.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { dirname, join } from "node:path";
|
|
|
5
5
|
import { addDaemon, listDaemons, removeDaemon } from "./registry.js";
|
|
6
6
|
import { daemonIdForCwd } from "./id.js";
|
|
7
7
|
import { loadLocalConfig, defaultAgentName } from "../session/local_config.js";
|
|
8
|
-
import { RpcChild } from "./rpc_child.js";
|
|
8
|
+
import { EXIT_DAEMON_FRESH_SESSION, RpcChild } from "./rpc_child.js";
|
|
9
9
|
import { encodeReply, parseRequest, } from "./control_protocol.js";
|
|
10
10
|
/**
|
|
11
11
|
* Central process that owns the daemon fleet (plan/26).
|
|
@@ -329,6 +329,14 @@ export class Supervisor {
|
|
|
329
329
|
// Clean shutdown (e.g. via `stop_all`). Don't auto-restart.
|
|
330
330
|
return;
|
|
331
331
|
}
|
|
332
|
+
if (evt.code === EXIT_DAEMON_FRESH_SESSION) {
|
|
333
|
+
// App-triggered daemon `/new`: this is an intentional recycle, not a
|
|
334
|
+
// crash. Restart immediately and don't burn the crash backoff budget.
|
|
335
|
+
slot.restartAttempt = 0;
|
|
336
|
+
slot.child.noteRestart();
|
|
337
|
+
slot.child.spawn();
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
332
340
|
// Crash: schedule restart with backoff. After exhausting the schedule
|
|
333
341
|
// we give up and stay in `crashed`.
|
|
334
342
|
if (slot.restartAttempt >= RESTART_BACKOFFS_MS.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/daemon/supervisor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/daemon/supervisor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -47,6 +47,7 @@ import { ensureGlobalDirs, LOCAL_SESSION_NAME, sessionAuditPath, sessionSockPath
|
|
|
47
47
|
import { acquireCwdLock } from "./session/cwd_lock.js";
|
|
48
48
|
import { addDaemon, listDaemons, removeDaemon } from "./daemon/registry.js";
|
|
49
49
|
import { callSupervisor, supervisorOnline, SupervisorOfflineError } from "./daemon/client.js";
|
|
50
|
+
import { EXIT_DAEMON_FRESH_SESSION } from "./daemon/rpc_child.js";
|
|
50
51
|
import { installService, uninstallService, linkCliBinaries, unlinkCliBinaries } from "./daemon/install.js";
|
|
51
52
|
import { defaultAgentName, effectiveAutoStartRelay, loadLocalConfig, localConfigExists, saveLocalConfig, } from "./session/local_config.js";
|
|
52
53
|
import { runSetupWizard } from "./session/setup_wizard.js";
|
|
@@ -56,7 +57,7 @@ import { fileURLToPath } from "node:url";
|
|
|
56
57
|
import { mkdirSync, copyFileSync, existsSync, unlinkSync, readFileSync, writeFileSync, realpathSync } from "node:fs";
|
|
57
58
|
import { createInterface } from "node:readline";
|
|
58
59
|
import { spawnSync } from "node:child_process";
|
|
59
|
-
import { hostname
|
|
60
|
+
import { hostname } from "node:os";
|
|
60
61
|
import { kDefaultRelayUrl, resolveRelayUrl, saveConfig, isValidRelayUrl, isWebSocketScheme, toWebSocketUrl, } from "./config.js";
|
|
61
62
|
let _state = "idle";
|
|
62
63
|
let _relay = null;
|
|
@@ -930,11 +931,10 @@ const extension = (pi) => {
|
|
|
930
931
|
_broadcastToActive({ type: "agent_done", in_reply_to: _currentTurnId });
|
|
931
932
|
_currentTurnId = null;
|
|
932
933
|
});
|
|
933
|
-
// plan/
|
|
934
|
-
//
|
|
935
|
-
//
|
|
936
|
-
//
|
|
937
|
-
// next turn boundary. Skip silently when no mesh session is joined.
|
|
934
|
+
// plan/34: the broker no longer gates delivery on busy state, so we no
|
|
935
|
+
// longer notify it of turn lifecycle. Working state is still published as
|
|
936
|
+
// room_meta over the relay (plan/32) below — that's independent of the
|
|
937
|
+
// broker and drives the app's working indicator.
|
|
938
938
|
pi.on("turn_start", (_event, ctx) => {
|
|
939
939
|
// Late model hydration: if the model was still unknown at connect (resolved
|
|
940
940
|
// lazily by the SDK), grab it on the first turn and fan it out — so a daemon
|
|
@@ -955,10 +955,6 @@ const extension = (pi) => {
|
|
|
955
955
|
if (_relay && _myRoomId) {
|
|
956
956
|
_relay.sendControl({ type: "room_meta_update", room_id: _myRoomId, meta: { working: true } });
|
|
957
957
|
}
|
|
958
|
-
if (!_meshNode)
|
|
959
|
-
return;
|
|
960
|
-
void _meshNode.send("broker", { type: "turn_state", busy: true })
|
|
961
|
-
.catch(() => { });
|
|
962
958
|
});
|
|
963
959
|
pi.on("turn_end", () => {
|
|
964
960
|
// Plan/32 Part B: publish working=false as room_meta (raw, no debounce).
|
|
@@ -967,10 +963,6 @@ const extension = (pi) => {
|
|
|
967
963
|
if (_relay && _myRoomId) {
|
|
968
964
|
_relay.sendControl({ type: "room_meta_update", room_id: _myRoomId, meta: { working: false } });
|
|
969
965
|
}
|
|
970
|
-
if (!_meshNode)
|
|
971
|
-
return;
|
|
972
|
-
void _meshNode.send("broker", { type: "turn_state", busy: false })
|
|
973
|
-
.catch(() => { });
|
|
974
966
|
});
|
|
975
967
|
// Plan/32: compaction feedback. compact() doesn't run a turn, so bracket it
|
|
976
968
|
// with working=true/false here. Returning void = no veto → default
|
|
@@ -2240,8 +2232,19 @@ export function _routeClientMessageFrom(sender, msg, ctx) {
|
|
|
2240
2232
|
// session_start has landed yet (keeps the pre-replacement happy path).
|
|
2241
2233
|
handleSessionCompact((_lastEventCtx ?? _lastCtx), sender, msg);
|
|
2242
2234
|
break;
|
|
2243
|
-
case "session_new":
|
|
2244
|
-
|
|
2235
|
+
case "session_new": {
|
|
2236
|
+
const actionCtx = _lastCtx;
|
|
2237
|
+
if (process.env["REMOTE_PI_DAEMON"] === "1" && !actionCtx?.newSession) {
|
|
2238
|
+
// Headless RPC daemon has no ExtensionCommandContext, so ctx.newSession
|
|
2239
|
+
// is unavailable. Ack, clear remote-pi's mirror, then exit with a
|
|
2240
|
+
// private code; the supervisor restarts once without --continue, which
|
|
2241
|
+
// creates a fresh Pi session. Later restarts resume that fresh session.
|
|
2242
|
+
sender.send({ type: "action_ok", in_reply_to: msg.id, action: "session_new" });
|
|
2243
|
+
_resetSessionForNew(msg.id);
|
|
2244
|
+
setTimeout(() => process.exit(EXIT_DAEMON_FRESH_SESSION), 100);
|
|
2245
|
+
break;
|
|
2246
|
+
}
|
|
2247
|
+
void handleSessionNew(actionCtx, sender, msg, (freshCtx) => {
|
|
2245
2248
|
// newSession just made the captured _lastCtx STALE (the SDK throws
|
|
2246
2249
|
// if it's reused). Re-capture the fresh command-capable ctx the SDK
|
|
2247
2250
|
// passes to withSession so later command ops (another New session,
|
|
@@ -2259,6 +2262,7 @@ export function _routeClientMessageFrom(sender, msg, ctx) {
|
|
|
2259
2262
|
_resetSessionForNew(msg.id);
|
|
2260
2263
|
});
|
|
2261
2264
|
break;
|
|
2265
|
+
}
|
|
2262
2266
|
case "model_set":
|
|
2263
2267
|
void handleModelSet(_pi, ensureModelRegistry(), sender, msg, _persistModelDefault);
|
|
2264
2268
|
break;
|
|
@@ -2650,34 +2654,27 @@ if (_isDirectRun()) {
|
|
|
2650
2654
|
}
|
|
2651
2655
|
// ── `remote-pi claude` — launch Claude Code connected to the mesh ─────────────
|
|
2652
2656
|
/**
|
|
2653
|
-
*
|
|
2654
|
-
* (
|
|
2655
|
-
*
|
|
2656
|
-
*
|
|
2657
|
-
*
|
|
2658
|
-
* MCP `instructions` + tool descriptions still give Claude the basics).
|
|
2659
|
-
*
|
|
2660
|
-
* Mirrors the Pi extension's `_deployAgentNetworkSkill()` (which targets
|
|
2661
|
-
* `~/.pi/remote/skills/`): same concept, each runtime's own skills dir.
|
|
2657
|
+
* Resolve the packaged agent-network skill path
|
|
2658
|
+
* (`<pkgRoot>/skills/agent-network/SKILL.md`). Single source of truth shared
|
|
2659
|
+
* by both runtimes: Pi discovers it via `resources_discover`, and the Claude
|
|
2660
|
+
* launcher injects it as a system prompt (see `_cmdClaudeCli`). Returns null
|
|
2661
|
+
* if the file is missing (e.g. running before `pnpm build`).
|
|
2662
2662
|
*/
|
|
2663
|
-
function
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
if (!existsSync(template))
|
|
2669
|
-
return;
|
|
2670
|
-
const destDir = join(homedir(), ".claude", "skills", "agent-network");
|
|
2671
|
-
mkdirSync(destDir, { recursive: true });
|
|
2672
|
-
copyFileSync(template, join(destDir, "SKILL.md"));
|
|
2673
|
-
}
|
|
2674
|
-
catch {
|
|
2675
|
-
/* best-effort — never block the launch on skill deploy */
|
|
2676
|
-
}
|
|
2663
|
+
function _agentNetworkSkillPath() {
|
|
2664
|
+
const here = fileURLToPath(import.meta.url); // dist/index.js (or src/index.ts via tsx)
|
|
2665
|
+
const pkgRoot = dirname(dirname(here)); // package root (dist → ..; src → ..)
|
|
2666
|
+
const skill = join(pkgRoot, "skills", "agent-network", "SKILL.md");
|
|
2667
|
+
return existsSync(skill) ? skill : null;
|
|
2677
2668
|
}
|
|
2678
2669
|
async function _cmdClaudeCli(args) {
|
|
2679
|
-
//
|
|
2680
|
-
|
|
2670
|
+
// Contract: `remote-pi claude [cwd] [claude-flags...]`. The optional cwd is
|
|
2671
|
+
// ONLY the leading positional (first token, not a flag); everything after it
|
|
2672
|
+
// is forwarded verbatim to the `claude` binary (e.g. `--resume`, `-c`,
|
|
2673
|
+
// `-p "prompt"`). Restricting cwd to the leading token avoids mistaking a
|
|
2674
|
+
// flag's value (e.g. the id in `--resume <id>`) for the cwd.
|
|
2675
|
+
const hasCwdArg = args.length > 0 && !args[0].startsWith("-");
|
|
2676
|
+
const targetCwd = hasCwdArg ? args[0] : process.cwd();
|
|
2677
|
+
const passthroughArgs = hasCwdArg ? args.slice(1) : args;
|
|
2681
2678
|
// Wizard when no local config exists
|
|
2682
2679
|
if (!localConfigExists(targetCwd)) {
|
|
2683
2680
|
const suggested = defaultAgentName(targetCwd);
|
|
@@ -2698,14 +2695,6 @@ async function _cmdClaudeCli(args) {
|
|
|
2698
2695
|
}
|
|
2699
2696
|
const absCwd = resolve(targetCwd);
|
|
2700
2697
|
const SERVER_NAME = "remote-pi-mesh";
|
|
2701
|
-
// Deploy the agent-network skill so Claude knows HOW to use the mesh tools
|
|
2702
|
-
// (when to call get_messages, ACK statuses, cross-PC addressing, replies).
|
|
2703
|
-
// Skills load only from disk — an MCP server can't inject one — so we write
|
|
2704
|
-
// it to the user-global Claude skills dir, mirroring how the Pi extension
|
|
2705
|
-
// deploys its own agent-network skill to ~/.pi/remote/skills/. The skill's
|
|
2706
|
-
// `description` self-gates activation to mesh contexts, so a global deploy
|
|
2707
|
-
// doesn't pollute unrelated Claude sessions.
|
|
2708
|
-
_deployClaudeMeshSkill();
|
|
2709
2698
|
// The channel feature (claude/channel push) only recognizes MCP servers
|
|
2710
2699
|
// registered in one of the persistent scopes Claude Code enumerates:
|
|
2711
2700
|
// enterprise / user / project / local. A server passed via `--mcp-config`
|
|
@@ -2713,30 +2702,42 @@ async function _cmdClaudeCli(args) {
|
|
|
2713
2702
|
// scopes, so `--dangerously-load-development-channels server:<name>` can't
|
|
2714
2703
|
// match it ("no MCP server configured with that name").
|
|
2715
2704
|
//
|
|
2716
|
-
// We therefore register in the **local** scope
|
|
2717
|
-
//
|
|
2718
|
-
//
|
|
2719
|
-
//
|
|
2705
|
+
// We therefore register in the **local** scope, stored in `~/.claude.json`
|
|
2706
|
+
// (NOT written into the project dir, NOT committed to VCS, NOT global) so the
|
|
2707
|
+
// dev-channel flag matches it. Caveat that drives the next decision: `-s
|
|
2708
|
+
// local` is keyed by the **git repo root** and shares ONE entry per server
|
|
2709
|
+
// name across every subdir of the repo — a same-name re-add overwrites it.
|
|
2720
2710
|
//
|
|
2721
2711
|
// remove-then-add makes it idempotent and refreshes the path if the
|
|
2722
2712
|
// extension moved (Pi can reinstall to a new hash dir on upgrade).
|
|
2713
|
+
//
|
|
2714
|
+
// Crucially we do NOT bake `--cwd <absCwd>` into the registration. In a
|
|
2715
|
+
// monorepo (app/, relay/, site/, …) every subproject is its own agent, but
|
|
2716
|
+
// they'd all share this single repo-keyed entry — so whichever agent ran
|
|
2717
|
+
// `remote-pi claude` LAST would leak its cwd to every other session, and the
|
|
2718
|
+
// repo-root session would then spawn a peer that locks a subdir another agent
|
|
2719
|
+
// owns ("Failed to connect"). Instead, the server resolves its folder from
|
|
2720
|
+
// its own `process.cwd()`, which Claude sets to the directory each `claude`
|
|
2721
|
+
// session was launched in (verified empirically — NOT the git root, NOT
|
|
2722
|
+
// CLAUDE_PROJECT_DIR). We launch claude with `cwd: absCwd` below, so a single
|
|
2723
|
+
// shared registration self-identifies as the right agent in every session.
|
|
2723
2724
|
spawnSync("claude", ["mcp", "remove", SERVER_NAME, "-s", "local"], {
|
|
2724
2725
|
cwd: absCwd, stdio: "ignore", shell: false,
|
|
2725
2726
|
});
|
|
2726
2727
|
const add = spawnSync("claude", [
|
|
2727
2728
|
"mcp", "add", SERVER_NAME, "-s", "local", "--",
|
|
2728
|
-
process.execPath, meshServerPath,
|
|
2729
|
+
process.execPath, meshServerPath,
|
|
2729
2730
|
], { cwd: absCwd, stdio: ["ignore", "pipe", "pipe"], shell: false, encoding: "utf8" });
|
|
2730
2731
|
if (add.status !== 0) {
|
|
2731
2732
|
console.log(`[remote-pi] failed to register MCP server: ${add.stderr || add.stdout}`);
|
|
2732
2733
|
process.exit(1);
|
|
2733
2734
|
}
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2735
|
+
// Inject the agent-network protocol as a system prompt instead of deploying a
|
|
2736
|
+
// skill file into ~/.claude. Anyone running `remote-pi claude` is here to use
|
|
2737
|
+
// the mesh, so load the protocol unconditionally — no lazy skill gating, no
|
|
2738
|
+
// global skills-dir pollution, and the packaged file is the single source of
|
|
2739
|
+
// truth shared with the Pi runtime. Skipped only if the file is missing.
|
|
2740
|
+
const skillPath = _agentNetworkSkillPath();
|
|
2740
2741
|
// Launch flags:
|
|
2741
2742
|
// --dangerously-load-development-channels TAG — enable claude/channel push
|
|
2742
2743
|
// for our local (non-allowlisted) server, so incoming mesh messages
|
|
@@ -2745,9 +2746,23 @@ async function _cmdClaudeCli(args) {
|
|
|
2745
2746
|
// (`plugin:<name>@<marketplace>` is the plugin form). Shows a one-time
|
|
2746
2747
|
// confirmation dialog at startup.
|
|
2747
2748
|
// --dangerously-skip-permissions — auto-approve tool calls
|
|
2749
|
+
// --append-system-prompt-file=<skill> — load the mesh protocol
|
|
2750
|
+
// `--append-system-prompt-file` uses the glued `--flag=value` form (a SINGLE
|
|
2751
|
+
// argv token) on purpose: tools that restore a session by capturing and
|
|
2752
|
+
// replaying the live process's argv (e.g. cmux) drop the TRAILING token,
|
|
2753
|
+
// which here was the skill path — leaving a dangling `--append-system-prompt-file`
|
|
2754
|
+
// → `claude` aborts with "argument missing" and the session never comes back.
|
|
2755
|
+
// As one token, the worst case is the whole flag being dropped: claude still
|
|
2756
|
+
// starts (just without the injected protocol), which is recoverable instead
|
|
2757
|
+
// of fatal. (The channels flag stays a separate pair — it's never last, so
|
|
2758
|
+
// it isn't affected, and we don't risk a parser that may not accept `=`.)
|
|
2759
|
+
// Any extra args the user passed (e.g. `--resume`, `-c`) are appended last so
|
|
2760
|
+
// they reach the claude binary; ours come first as sensible defaults.
|
|
2748
2761
|
spawnSync("claude", [
|
|
2749
2762
|
"--dangerously-load-development-channels", `server:${SERVER_NAME}`,
|
|
2750
2763
|
"--dangerously-skip-permissions",
|
|
2764
|
+
...(skillPath ? [`--append-system-prompt-file=${skillPath}`] : []),
|
|
2765
|
+
...passthroughArgs,
|
|
2751
2766
|
], {
|
|
2752
2767
|
cwd: absCwd,
|
|
2753
2768
|
stdio: "inherit",
|