@yefengr/remote-pi 0.7.8 → 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/actions/session_new_bridge.d.ts +35 -0
- package/dist/actions/session_new_bridge.js +88 -0
- package/dist/actions/session_new_bridge.js.map +1 -0
- package/dist/bin/supervisord.js +1 -8
- package/dist/bin/supervisord.js.map +1 -1
- package/dist/daemon/commands.d.ts +1 -0
- package/dist/daemon/commands.js +4 -1
- package/dist/daemon/commands.js.map +1 -1
- package/dist/daemon/rpc_child.d.ts +3 -8
- package/dist/daemon/rpc_child.js +27 -17
- package/dist/daemon/rpc_child.js.map +1 -1
- package/dist/daemon/status.js +1 -1
- package/dist/daemon/status.js.map +1 -1
- package/dist/daemon/supervisor.d.ts +6 -6
- package/dist/daemon/supervisor.js +164 -133
- package/dist/daemon/supervisor.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +54 -44
- package/dist/index.js.map +1 -1
- package/docs/daemon.md +3 -1
- package/package.json +5 -3
- package/dist/daemon/preflight.d.ts +0 -51
- package/dist/daemon/preflight.js +0 -136
- package/dist/daemon/preflight.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/** One local Pi process is one stable Relay endpoint with replaceable sessions. */
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
|
-
import { readFileSync } from "node:fs";
|
|
5
|
-
import { dirname, join, resolve } from "node:path";
|
|
6
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { readFileSync, realpathSync } from "node:fs";
|
|
7
5
|
import { hostname } from "node:os";
|
|
6
|
+
import { dirname, join } from "node:path";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
8
|
import { canonicalizeEd25519PublicKey } from "./pairing/crypto.js";
|
|
9
9
|
import { qrSession } from "./pairing/qr.js";
|
|
10
|
-
import { addPeer, getOrCreateEd25519Keypair, KeyringUnavailableError, PairedIdentityMissingError, listPeers
|
|
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
|
|
16
|
+
import { handleModelSet, handleSessionCompact, handleThinkingSet, getModelsList } from "./actions/handlers.js";
|
|
17
17
|
import { ensureModelRegistry } from "./actions/registry.js";
|
|
18
|
-
import {
|
|
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
|
|
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
|
-
|
|
83
|
-
|
|
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 (
|
|
179
|
-
|
|
180
|
-
|
|
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
|
-
|
|
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
|
-
|
|
626
|
-
|
|
627
|
-
|
|
631
|
+
if (!isProcessShutdown) {
|
|
632
|
+
replacedSessionId = currentSessionManager?.getSessionId() ?? null;
|
|
633
|
+
currentSessionManager = null;
|
|
634
|
+
return;
|
|
628
635
|
}
|
|
629
|
-
|
|
636
|
+
disposed = true;
|
|
637
|
+
extensionUiBridge?.dispose();
|
|
638
|
+
extensionUiBridge = null;
|
|
639
|
+
closeRelay("shutdown");
|
|
630
640
|
});
|
|
631
641
|
};
|
|
632
642
|
export default extension;
|
|
@@ -636,7 +646,7 @@ export async function _stopForTest(_ctx) { closeRelay("peer_stop"); }
|
|
|
636
646
|
export async function _connectForTest(ctx) { await start(ctx); }
|
|
637
647
|
runDirectCli(commandDependencies, (() => {
|
|
638
648
|
try {
|
|
639
|
-
return fileURLToPath(import.meta.url) ===
|
|
649
|
+
return fileURLToPath(import.meta.url) === realpathSync(process.argv[1] ?? "");
|
|
640
650
|
}
|
|
641
651
|
catch {
|
|
642
652
|
return false;
|
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.
|
|
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>;
|
package/dist/daemon/preflight.js
DELETED
|
@@ -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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"}
|