@yefengr/remote-pi 0.7.9 → 0.7.10

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/index.js CHANGED
@@ -2,28 +2,27 @@
2
2
  /** One local Pi process is one stable Relay endpoint with replaceable sessions. */
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { readFileSync, realpathSync } from "node:fs";
5
+ import { hostname } from "node:os";
5
6
  import { dirname, join } from "node:path";
6
7
  import { fileURLToPath } from "node:url";
7
- import { hostname } from "node:os";
8
8
  import { canonicalizeEd25519PublicKey } from "./pairing/crypto.js";
9
9
  import { qrSession } from "./pairing/qr.js";
10
- import { addPeer, getOrCreateEd25519Keypair, KeyringUnavailableError, PairedIdentityMissingError, listPeers, } from "./pairing/storage.js";
10
+ import { addPeer, getOrCreateEd25519Keypair, KeyringUnavailableError, PairedIdentityMissingError, listPeers } from "./pairing/storage.js";
11
11
  import { RelayClient } from "./transport/relay_client.js";
12
12
  import { V2PeerChannel } from "./transport/peer_channel.js";
13
13
  import { TimelineV2Service } from "./timeline/v2_service.js";
14
14
  import { TimelineRuntime } from "./timeline/runtime.js";
15
15
  import { createExtensionUiBridge } from "./extension_ui_bridge.js";
16
- import { handleModelSet, handleSessionCompact, handleThinkingSet, getModelsList, } from "./actions/handlers.js";
16
+ import { handleModelSet, handleSessionCompact, handleThinkingSet, getModelsList } from "./actions/handlers.js";
17
17
  import { ensureModelRegistry } from "./actions/registry.js";
18
- import { EXIT_DAEMON_FRESH_SESSION } from "./daemon/rpc_child.js";
18
+ import { SessionNewBridge } from "./actions/session_new_bridge.js";
19
+ import { RPC_CONTROL_STATUS_KEY } from "./daemon/rpc_child.js";
19
20
  import { defaultAgentName, loadLocalConfig } from "./session/local_config.js";
20
21
  import { resolveRelayUrl, toWebSocketUrl } from "./config.js";
21
22
  import { persistModelDefault, registerCommands, runDirectCli } from "./daemon/commands.js";
22
23
  import { installOwnerRouter } from "./runtime/owner_router.js";
23
- const CONTROL_PROTOCOL_VERSION = 2;
24
- const RECONNECT_BACKOFFS_MS = [1_000, 2_000, 5_000, 10_000, 30_000];
25
- const ENDPOINT_ID_ENV = "REMOTE_PI_ENDPOINT_ID";
26
- const RUNTIME_INSTANCE_ID_ENV = "REMOTE_PI_RUNTIME_INSTANCE_ID";
24
+ const CONTROL_PROTOCOL_VERSION = 2, RECONNECT_BACKOFFS_MS = [1_000, 2_000, 5_000, 10_000, 30_000];
25
+ const ENDPOINT_ID_ENV = "REMOTE_PI_ENDPOINT_ID", RUNTIME_INSTANCE_ID_ENV = "REMOTE_PI_RUNTIME_INSTANCE_ID";
27
26
  const CTRL_PREFIX = "\x00remote-pi-ctrl:";
28
27
  const PROCESS_IDENTITY_KEY = Symbol.for("remote-pi.endpoint-process-identity");
29
28
  function opaqueUuidFromEnv(name) {
@@ -64,6 +63,8 @@ let lastCommandCtx = null;
64
63
  let lastEventCtx = null;
65
64
  let extensionUiBridge = null;
66
65
  let currentTurnId = null;
66
+ let replacedSessionId = null;
67
+ const sessionNewBridge = new SessionNewBridge({ getPi: () => piApi, onCommandContext: (ctx) => { lastCommandCtx = ctx; }, onReplaced: (ctx) => { lastCommandCtx = ctx; }, onFinished: () => finishSessionReplacement() });
67
68
  export const _getState = () => state === "idle" ? "idle" : activeOwners.size > 0 ? "paired" : "started";
68
69
  export const _getCachedPublicKeyForTest = () => keypair ? Buffer.from(keypair.publicKey).toString("base64") : null;
69
70
  export const _getCurrentTurnIdForTest = () => currentTurnId;
@@ -79,9 +80,8 @@ export const _getDisposedForTest = () => disposed;
79
80
  export const _setDisposedForTest = (value) => { disposed = value; };
80
81
  export const _resetAutoInitedForTest = () => undefined;
81
82
  export const _setAutoInitedForTest = (_value) => undefined;
82
- function displayName(cwd = process.cwd()) {
83
- return loadLocalConfig(cwd).agent_name ?? defaultAgentName(cwd);
84
- }
83
+ export const _setSessionNewBridgeTimeoutForTest = (timeoutMs) => sessionNewBridge.setTimeoutForTest(timeoutMs);
84
+ function displayName(cwd = process.cwd()) { return loadLocalConfig(cwd).agent_name ?? defaultAgentName(cwd); }
85
85
  function endpointMetadata(cwd = process.cwd()) {
86
86
  return {
87
87
  kind: process.env.REMOTE_PI_DAEMON === "1" ? "daemon" : "interactive",
@@ -97,11 +97,7 @@ function endpointMetadata(cwd = process.cwd()) {
97
97
  function routeIdentity() {
98
98
  if (!keypair)
99
99
  throw new Error("remote-pi identity is unavailable");
100
- return {
101
- deviceId: Buffer.from(keypair.publicKey).toString("base64"),
102
- endpointId: endpointIdentity.endpointId,
103
- runtimeInstanceId: endpointIdentity.runtimeInstanceId,
104
- };
100
+ return { deviceId: Buffer.from(keypair.publicKey).toString("base64"), endpointId: endpointIdentity.endpointId, runtimeInstanceId: endpointIdentity.runtimeInstanceId };
105
101
  }
106
102
  async function authorizedOwnerIds() {
107
103
  const owners = new Set();
@@ -119,6 +115,14 @@ function relayStatus() {
119
115
  return relay?.isOpen() ? "connected" : "reconnecting";
120
116
  }
121
117
  function emitRuntimeEvent(type, details) {
118
+ if (process.env.REMOTE_PI_DAEMON === "1") {
119
+ const ui = lastEventCtx?.ui ?? lastCommandCtx?.ui;
120
+ try {
121
+ ui?.setStatus(RPC_CONTROL_STATUS_KEY, JSON.stringify({ type: type.replace(/-/g, "_"), ...details }));
122
+ }
123
+ catch { /* a stale RPC UI context must not take down the process */ }
124
+ return;
125
+ }
122
126
  try {
123
127
  piApi?.sendMessage({ customType: `remote-pi:${type}`, content: "", details, display: false });
124
128
  }
@@ -175,15 +179,23 @@ function detachOwner(ownerId) {
175
179
  }
176
180
  function sendToOwner(ownerId, frames) {
177
181
  const binding = activeOwners.get(ownerId);
178
- if (!binding)
179
- return;
180
- for (const frame of frames)
181
- binding.channel.sendV2(frame);
182
+ if (binding)
183
+ for (const frame of frames)
184
+ binding.channel.sendV2(frame);
182
185
  }
183
186
  function broadcastV2(factory) {
184
- for (const { channel, service } of activeOwners.values()) {
187
+ for (const { channel, service } of activeOwners.values())
185
188
  for (const frame of factory(service))
186
189
  channel.sendV2(frame);
190
+ }
191
+ function finishSessionReplacement() {
192
+ const sessionId = replacedSessionId;
193
+ if (!sessionId)
194
+ return;
195
+ replacedSessionId = null;
196
+ for (const [ownerId, { channel, service }] of [...activeOwners]) {
197
+ channel.sendV2({ protocol_version: 2, type: "bye", session_id: sessionId, history_generation: service.generation, reason: "session_replaced" });
198
+ detachOwner(ownerId);
187
199
  }
188
200
  }
189
201
  function ensureTimeline(sessionManager) {
@@ -254,21 +266,9 @@ function routeAction(ownerId, frame) {
254
266
  case "session_compact":
255
267
  handleSessionCompact(ctx, sender, frame);
256
268
  return;
257
- case "session_new": {
258
- const freshSession = () => {
259
- sender.send({ type: "action_ok", in_reply_to: frame.id, action: "session_new" });
260
- if (process.env.REMOTE_PI_DAEMON === "1")
261
- setTimeout(() => process.exit(EXIT_DAEMON_FRESH_SESSION), 100);
262
- };
263
- if (!ctx?.newSession) {
264
- freshSession();
265
- return;
266
- }
267
- void ctx.newSession({ withSession: async (fresh) => { lastCommandCtx = fresh; } })
268
- .then((result) => result.cancelled ? sender.send({ type: "action_error", in_reply_to: frame.id, action: "session_new", error: "cancelled" }) : freshSession())
269
- .catch((error) => sender.send({ type: "action_error", in_reply_to: frame.id, action: "session_new", error: String(error) }));
269
+ case "session_new":
270
+ sessionNewBridge.dispatch(sender, frame);
270
271
  return;
271
- }
272
272
  case "model_set":
273
273
  if (piApi)
274
274
  void handleModelSet(piApi, ctx, ensureModelRegistry(ctx), sender, frame, persistModelDefault);
@@ -385,6 +385,8 @@ async function handlePairRequest(relayClient, ownerId, frame) {
385
385
  }
386
386
  function closeRelay(reason) {
387
387
  lifecycle += 1;
388
+ sessionNewBridge.clear("session replacement cancelled because the endpoint closed");
389
+ replacedSessionId = null;
388
390
  if (reconnectTimer) {
389
391
  clearTimeout(reconnectTimer);
390
392
  reconnectTimer = null;
@@ -555,6 +557,7 @@ const commandDependencies = {
555
557
  hasRelay: () => relay !== null,
556
558
  piApi: () => piApi,
557
559
  setCommandContext: (ctx) => { lastCommandCtx = ctx; },
560
+ runInternalSessionNew: (token, ctx) => sessionNewBridge.run(token, ctx),
558
561
  };
559
562
  const extension = (pi) => {
560
563
  if (appliedSet().has(pi))
@@ -577,6 +580,8 @@ const extension = (pi) => {
577
580
  }
578
581
  return undefined;
579
582
  });
583
+ pi.on("session_before_switch", (event) => sessionNewBridge.beforeSwitch(event.reason));
584
+ pi.on("session_before_fork", () => sessionNewBridge.beforeFork());
580
585
  pi.on("model_select", (event) => {
581
586
  const model = event.model;
582
587
  currentModel = model?.name ?? model?.id;
@@ -605,10 +610,12 @@ const extension = (pi) => {
605
610
  const manager = ctx.sessionManager;
606
611
  if (manager) {
607
612
  currentSessionManager = manager;
613
+ timelineGeneration = randomUUID();
608
614
  ensureTimeline(manager).resetSession(manager);
609
- rotateGeneration("session_replaced");
610
615
  emitRuntimeEvent("session-changed", { endpoint_id: endpointIdentity.endpointId, runtime_instance_id: endpointIdentity.runtimeInstanceId, session_id: manager.getSessionId(), history_generation: timelineGeneration });
611
616
  emitRuntimeReady();
617
+ if (!sessionNewBridge.isRunning())
618
+ finishSessionReplacement();
612
619
  }
613
620
  try {
614
621
  currentThinking = pi.getThinkingLevel();
@@ -621,12 +628,15 @@ const extension = (pi) => {
621
628
  pi.on("session_tree", () => rotateGeneration("branch_changed"));
622
629
  pi.on("session_shutdown", (event) => {
623
630
  const isProcessShutdown = event.reason === "quit";
624
- if (isProcessShutdown) {
625
- disposed = true;
626
- extensionUiBridge?.dispose();
627
- extensionUiBridge = null;
631
+ if (!isProcessShutdown) {
632
+ replacedSessionId = currentSessionManager?.getSessionId() ?? null;
633
+ currentSessionManager = null;
634
+ return;
628
635
  }
629
- closeRelay(isProcessShutdown ? "shutdown" : "session_replaced");
636
+ disposed = true;
637
+ extensionUiBridge?.dispose();
638
+ extensionUiBridge = null;
639
+ closeRelay("shutdown");
630
640
  });
631
641
  };
632
642
  export default extension;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/docs/daemon.md CHANGED
@@ -21,7 +21,9 @@ remote-pi install
21
21
 
22
22
  `install` configures `launchd` on macOS or `systemd --user` on Linux, links `remote-pi` and `pi-supervisord`, and starts the service. The service reads the v2 registry from `~/.pi/remote/daemons.json`.
23
23
 
24
- The supervisor launches Pi in RPC mode without passing an extra extension argument. Pi settings are the only source for extension loading, model selection, providers, and tool permissions. Correct Pi settings before registering an unattended daemon.
24
+ The supervisor launches Pi in RPC mode without passing an extra extension argument. Pi settings are the only source for extension loading, model selection, providers, and tool permissions. The supervisor does not import a private Pi SDK or repeat resource discovery out of process: the installed host Pi performs its own settings, package, resource, and diagnostic startup path. Correct Pi settings before registering an unattended daemon.
25
+
26
+ Runtime readiness requires both a successful host Pi RPC `get_state` response and the configured Remote Pi Extension's structured `runtime-ready` event with matching protocol and endpoint/runtime identities. In daemon RPC mode, lifecycle events use Pi's structured `extension_ui_request` status channel with the reserved `remote-pi:control` key; stderr remains diagnostic text and is never parsed as state. If RPC is ready but the Extension is missing or failed to load, the daemon becomes blocked with `extension_not_ready`; inspect the host Pi diagnostics in the supervisor log.
25
27
 
26
28
  ### Service does not start at login
27
29
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yefengr/remote-pi",
3
- "version": "0.7.9",
3
+ "version": "0.7.10",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -70,6 +70,7 @@
70
70
  ]
71
71
  },
72
72
  "devDependencies": {
73
+ "@earendil-works/pi-coding-agent": "0.84.4",
73
74
  "@types/node": "^25.8.0",
74
75
  "@types/ws": "^8.18.1",
75
76
  "tsx": "^4.22.0",
@@ -77,9 +78,10 @@
77
78
  "vite": "^8.0.16",
78
79
  "vitest": "^4.1.6"
79
80
  },
81
+ "peerDependencies": {
82
+ "@earendil-works/pi-coding-agent": "*"
83
+ },
80
84
  "dependencies": {
81
- "@earendil-works/pi-coding-agent": "^0.79.10",
82
- "@earendil-works/pi-tui": "^0.79.10",
83
85
  "@napi-rs/keyring": "^1.3.0",
84
86
  "@noble/ed25519": "^3.1.0",
85
87
  "croner": "^10.0.1",
@@ -1,51 +0,0 @@
1
- import { type AgentSessionRuntimeDiagnostic, type Extension } from "@earendil-works/pi-coding-agent";
2
- export type PreflightBlockedCode = "remote_pi_extension_missing" | "duplicate_remote_pi_extension" | "extension_diagnostic" | "preflight_failed";
3
- export type DaemonPreflightResult = {
4
- ok: true;
5
- } | {
6
- ok: false;
7
- code: PreflightBlockedCode;
8
- message: string;
9
- /** Safe package identities only; never raw paths, URLs, or diagnostics. */
10
- sources?: string[];
11
- };
12
- export interface PreflightServices {
13
- diagnostics: readonly AgentSessionRuntimeDiagnostic[];
14
- resourceLoader: {
15
- getExtensions(): {
16
- extensions: readonly Extension[];
17
- errors: readonly {
18
- path: string;
19
- error: string;
20
- }[];
21
- };
22
- };
23
- settingsManager?: {
24
- drainErrors(): readonly unknown[];
25
- };
26
- modelRegistry?: {
27
- getError(): string | undefined;
28
- };
29
- }
30
- export interface DaemonPreflightOptions {
31
- cwd: string;
32
- agentDir?: string;
33
- /** Tests inject discovery; production always uses Pi's SDK service factory. */
34
- discover?: (options: {
35
- cwd: string;
36
- agentDir: string;
37
- }) => Promise<PreflightServices>;
38
- /** Tests may substitute the installed Remote Pi package root. */
39
- packageRoot?: string;
40
- }
41
- /**
42
- * Classifies already-discovered Pi services. Kept pure with injected service
43
- * data so source identity and blocked-state rules have deterministic tests.
44
- */
45
- export declare function evaluateDaemonPreflight(services: PreflightServices, packageRoot?: string): DaemonPreflightResult;
46
- /**
47
- * Runs the same SettingsManager/package/resource discovery Pi performs before
48
- * RPC startup. It creates services only: no AgentSession or model runtime is
49
- * created, and the SDK exposes no service-level dispose operation to call.
50
- */
51
- export declare function runDaemonPreflight(options: DaemonPreflightOptions): Promise<DaemonPreflightResult>;
@@ -1,136 +0,0 @@
1
- import { existsSync, readFileSync, statSync } from "node:fs";
2
- import { dirname, relative, resolve } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { createAgentSessionServices, getAgentDir, } from "@earendil-works/pi-coding-agent";
5
- const REMOTE_PI_PACKAGE = "@yefengr/remote-pi";
6
- let offlineDiscoveryDepth = 0;
7
- let previousOfflineValue;
8
- /**
9
- * Pi 0.79's resource loader can install missing configured packages unless
10
- * PI_OFFLINE is set. The guard is reference-counted because supervisors can
11
- * preflight separate entries concurrently. Discovery remains local-only.
12
- */
13
- async function withOfflineDiscovery(action) {
14
- if (offlineDiscoveryDepth === 0) {
15
- previousOfflineValue = process.env["PI_OFFLINE"];
16
- process.env["PI_OFFLINE"] = "1";
17
- }
18
- offlineDiscoveryDepth += 1;
19
- try {
20
- return await action();
21
- }
22
- finally {
23
- offlineDiscoveryDepth -= 1;
24
- if (offlineDiscoveryDepth === 0) {
25
- if (previousOfflineValue === undefined)
26
- delete process.env["PI_OFFLINE"];
27
- else
28
- process.env["PI_OFFLINE"] = previousOfflineValue;
29
- previousOfflineValue = undefined;
30
- }
31
- }
32
- }
33
- function packageNameAt(path) {
34
- let current = path;
35
- try {
36
- if (!statSync(current).isDirectory())
37
- current = dirname(current);
38
- }
39
- catch {
40
- current = dirname(current);
41
- }
42
- while (true) {
43
- const manifest = resolve(current, "package.json");
44
- if (existsSync(manifest)) {
45
- try {
46
- const parsed = JSON.parse(readFileSync(manifest, "utf8"));
47
- return typeof parsed.name === "string" ? parsed.name : undefined;
48
- }
49
- catch {
50
- return undefined;
51
- }
52
- }
53
- const parent = dirname(current);
54
- if (parent === current)
55
- return undefined;
56
- current = parent;
57
- }
58
- }
59
- function isRemotePiPackageSource(source) {
60
- if (!source)
61
- return false;
62
- const spec = source.startsWith("npm:") ? source.slice("npm:".length) : source;
63
- return spec === REMOTE_PI_PACKAGE || spec.startsWith(`${REMOTE_PI_PACKAGE}@`);
64
- }
65
- function isPathWithin(path, root) {
66
- const child = resolve(path);
67
- const parent = resolve(root);
68
- const remainder = relative(parent, child);
69
- return remainder === "" || (!remainder.startsWith("..") && !remainder.includes("../"));
70
- }
71
- function installedPackageRoot() {
72
- return resolve(dirname(fileURLToPath(import.meta.url)), "../..");
73
- }
74
- function isRemotePiExtension(extension, packageRoot) {
75
- if (isRemotePiPackageSource(extension.sourceInfo.source))
76
- return true;
77
- if (extension.sourceInfo.baseDir && packageNameAt(extension.sourceInfo.baseDir) === REMOTE_PI_PACKAGE)
78
- return true;
79
- if (packageNameAt(extension.resolvedPath) === REMOTE_PI_PACKAGE)
80
- return true;
81
- return isPathWithin(extension.resolvedPath, packageRoot) && packageNameAt(packageRoot) === REMOTE_PI_PACKAGE;
82
- }
83
- function safeSource(extension) {
84
- const scope = extension.sourceInfo.scope === "project" || extension.sourceInfo.scope === "user"
85
- ? extension.sourceInfo.scope
86
- : "temporary";
87
- return `${scope}:package:${REMOTE_PI_PACKAGE}`;
88
- }
89
- /**
90
- * Classifies already-discovered Pi services. Kept pure with injected service
91
- * data so source identity and blocked-state rules have deterministic tests.
92
- */
93
- export function evaluateDaemonPreflight(services, packageRoot = installedPackageRoot()) {
94
- const extensions = services.resourceLoader.getExtensions();
95
- const diagnosticErrors = services.diagnostics.filter((diagnostic) => diagnostic.type === "error");
96
- if (extensions.errors.length > 0 || diagnosticErrors.length > 0) {
97
- return {
98
- ok: false,
99
- code: "extension_diagnostic",
100
- message: `Pi reported ${extensions.errors.length + diagnosticErrors.length} extension diagnostic error(s)`,
101
- };
102
- }
103
- if ((services.settingsManager?.drainErrors().length ?? 0) > 0 || services.modelRegistry?.getError()) {
104
- return { ok: false, code: "preflight_failed", message: "Pi settings or model configuration is invalid" };
105
- }
106
- const remoteExtensions = extensions.extensions.filter((extension) => isRemotePiExtension(extension, packageRoot));
107
- if (remoteExtensions.length === 0) {
108
- return { ok: false, code: "remote_pi_extension_missing", message: "No configured Remote Pi Extension was discovered" };
109
- }
110
- if (remoteExtensions.length > 1) {
111
- return {
112
- ok: false,
113
- code: "duplicate_remote_pi_extension",
114
- message: `Found ${remoteExtensions.length} configured Remote Pi Extension sources`,
115
- sources: remoteExtensions.map(safeSource),
116
- };
117
- }
118
- return { ok: true };
119
- }
120
- /**
121
- * Runs the same SettingsManager/package/resource discovery Pi performs before
122
- * RPC startup. It creates services only: no AgentSession or model runtime is
123
- * created, and the SDK exposes no service-level dispose operation to call.
124
- */
125
- export async function runDaemonPreflight(options) {
126
- try {
127
- const agentDir = options.agentDir ?? getAgentDir();
128
- const discover = options.discover ?? (async ({ cwd, agentDir: resolvedAgentDir }) => createAgentSessionServices({ cwd, agentDir: resolvedAgentDir }));
129
- const services = await withOfflineDiscovery(() => discover({ cwd: options.cwd, agentDir }));
130
- return evaluateDaemonPreflight(services, options.packageRoot);
131
- }
132
- catch {
133
- return { ok: false, code: "preflight_failed", message: "Pi SDK resource discovery failed" };
134
- }
135
- }
136
- //# sourceMappingURL=preflight.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/daemon/preflight.ts"],"names":[],"mappings":"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"}