@edeng23/pines 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +37 -0
- package/dist/cli.js +83 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/ansi.js +37 -0
- package/dist/client/ansi.js.map +1 -0
- package/dist/client/app.js +1868 -0
- package/dist/client/app.js.map +1 -0
- package/dist/client/boot.js +221 -0
- package/dist/client/boot.js.map +1 -0
- package/dist/client/commands.js +133 -0
- package/dist/client/commands.js.map +1 -0
- package/dist/client/daemon-client.js +99 -0
- package/dist/client/daemon-client.js.map +1 -0
- package/dist/client/forest/camera.js +88 -0
- package/dist/client/forest/camera.js.map +1 -0
- package/dist/client/forest/canvas.js +175 -0
- package/dist/client/forest/canvas.js.map +1 -0
- package/dist/client/forest/sidebar.js +182 -0
- package/dist/client/forest/sidebar.js.map +1 -0
- package/dist/client/forest/status.js +39 -0
- package/dist/client/forest/status.js.map +1 -0
- package/dist/client/forest/style.js +70 -0
- package/dist/client/forest/style.js.map +1 -0
- package/dist/client/forest/styles.js +429 -0
- package/dist/client/forest/styles.js.map +1 -0
- package/dist/client/forest/view.js +181 -0
- package/dist/client/forest/view.js.map +1 -0
- package/dist/client/forest/wordmark.js +26 -0
- package/dist/client/forest/wordmark.js.map +1 -0
- package/dist/client/input.js +89 -0
- package/dist/client/input.js.map +1 -0
- package/dist/client/theme.js +27 -0
- package/dist/client/theme.js.map +1 -0
- package/dist/client/tree/asciitree.js +277 -0
- package/dist/client/tree/asciitree.js.map +1 -0
- package/dist/client/tree/convmap.js +260 -0
- package/dist/client/tree/convmap.js.map +1 -0
- package/dist/client/tree/lanegraph.js +260 -0
- package/dist/client/tree/lanegraph.js.map +1 -0
- package/dist/client/tree/merge.js +161 -0
- package/dist/client/tree/merge.js.map +1 -0
- package/dist/client/tree/sessionview.js +163 -0
- package/dist/client/tree/sessionview.js.map +1 -0
- package/dist/client/tree/view.js +238 -0
- package/dist/client/tree/view.js.map +1 -0
- package/dist/client/uistate.js +45 -0
- package/dist/client/uistate.js.map +1 -0
- package/dist/daemon/agents.js +102 -0
- package/dist/daemon/agents.js.map +1 -0
- package/dist/daemon/branch.js +149 -0
- package/dist/daemon/branch.js.map +1 -0
- package/dist/daemon/embed-worker.js +74 -0
- package/dist/daemon/embed-worker.js.map +1 -0
- package/dist/daemon/essence.js +194 -0
- package/dist/daemon/essence.js.map +1 -0
- package/dist/daemon/extbridge.js +138 -0
- package/dist/daemon/extbridge.js.map +1 -0
- package/dist/daemon/lifecycle.js +134 -0
- package/dist/daemon/lifecycle.js.map +1 -0
- package/dist/daemon/pty-compat.js +53 -0
- package/dist/daemon/pty-compat.js.map +1 -0
- package/dist/daemon/semantic.js +337 -0
- package/dist/daemon/semantic.js.map +1 -0
- package/dist/daemon/server.js +808 -0
- package/dist/daemon/server.js.map +1 -0
- package/dist/daemon/supervisor.js +311 -0
- package/dist/daemon/supervisor.js.map +1 -0
- package/dist/extension/pines-extension.js +191 -0
- package/dist/extension/pines-extension.js.map +1 -0
- package/dist/layout/lexical.js +104 -0
- package/dist/layout/lexical.js.map +1 -0
- package/dist/layout/pca.js +91 -0
- package/dist/layout/pca.js.map +1 -0
- package/dist/layout/relax.js +47 -0
- package/dist/layout/relax.js.map +1 -0
- package/dist/session/ingest.js +95 -0
- package/dist/session/ingest.js.map +1 -0
- package/dist/session/parser.js +254 -0
- package/dist/session/parser.js.map +1 -0
- package/dist/shared/config.js +30 -0
- package/dist/shared/config.js.map +1 -0
- package/dist/shared/paths.js +47 -0
- package/dist/shared/paths.js.map +1 -0
- package/dist/shared/protocol.js +9 -0
- package/dist/shared/protocol.js.map +1 -0
- package/dist/shared/types.js +3 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/shared/wire.js +51 -0
- package/dist/shared/wire.js.map +1 -0
- package/dist/store/db.js +203 -0
- package/dist/store/db.js.map +1 -0
- package/dist/store/watcher.js +69 -0
- package/dist/store/watcher.js.map +1 -0
- package/package.json +80 -0
- package/scripts/fix-node-pty.mjs +34 -0
- package/src/extension/pines-extension.ts +192 -0
- package/src/store/schema.sql +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supervisor: the daemon's registry of trees and their (optional) live agents.
|
|
3
|
+
*
|
|
4
|
+
* A *tree* is a pi session; an *agent* is a pi process currently bound to one.
|
|
5
|
+
* Trees are dormant by default — an agent exists only when the user spawned,
|
|
6
|
+
* resumed, or branched-with-spawn. Detaching a client never stops an agent.
|
|
7
|
+
*/
|
|
8
|
+
import { EventEmitter } from "node:events";
|
|
9
|
+
import { randomUUID } from "node:crypto";
|
|
10
|
+
import { spawn } from "node:child_process";
|
|
11
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
12
|
+
import { createRequire } from "node:module";
|
|
13
|
+
import { dirname, join } from "node:path";
|
|
14
|
+
import { fileURLToPath } from "node:url";
|
|
15
|
+
import { AgentProc } from "./agents.js";
|
|
16
|
+
import { socketPath } from "../shared/paths.js";
|
|
17
|
+
import { loadConfig } from "../shared/config.js";
|
|
18
|
+
export const DEFAULT_MAX_LIVE_AGENTS = 12;
|
|
19
|
+
const ACTIVITY_QUIET_MS = 2000;
|
|
20
|
+
export function maxLiveAgents() {
|
|
21
|
+
return loadConfig().maxLiveAgents ?? DEFAULT_MAX_LIVE_AGENTS;
|
|
22
|
+
}
|
|
23
|
+
function packageRoot() {
|
|
24
|
+
// dist/daemon/supervisor.js → package root (same shape under src/ via tsx)
|
|
25
|
+
return join(dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
26
|
+
}
|
|
27
|
+
export function extensionEntryPath() {
|
|
28
|
+
return join(packageRoot(), "src", "extension", "pines-extension.ts");
|
|
29
|
+
}
|
|
30
|
+
const require = createRequire(import.meta.url);
|
|
31
|
+
export function bundledPiEntryPath() {
|
|
32
|
+
const packageName = "@earendil-works/pi-coding-agent";
|
|
33
|
+
for (const modulesDir of require.resolve.paths(packageName) ?? []) {
|
|
34
|
+
const candidate = join(modulesDir, packageName, "dist", "cli.js");
|
|
35
|
+
if (existsSync(candidate))
|
|
36
|
+
return candidate;
|
|
37
|
+
}
|
|
38
|
+
throw new Error(`cannot locate bundled ${packageName} CLI`);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Use pines' bundled pi by default so the runtime, SDK session writer, and
|
|
42
|
+
* extension API always have the same version. Explicit config/env overrides
|
|
43
|
+
* retain support for development binaries and test fixtures.
|
|
44
|
+
*/
|
|
45
|
+
export function piLaunch() {
|
|
46
|
+
const override = process.env.PINES_PI_BIN ?? loadConfig().piBin;
|
|
47
|
+
if (override)
|
|
48
|
+
return { command: override, prefixArgs: [] };
|
|
49
|
+
return {
|
|
50
|
+
command: process.execPath,
|
|
51
|
+
prefixArgs: [bundledPiEntryPath()],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Version of the pi this daemon actually launches — the one honest source
|
|
56
|
+
* for anything that displays it. Bundled pi: its manifest, read next to the
|
|
57
|
+
* CLI entry we exec. Override (config piBin / PINES_PI_BIN): probe the
|
|
58
|
+
* binary's `--version` briefly; a binary that won't say (test fixtures,
|
|
59
|
+
* wrappers) reports as "custom" rather than borrowing the bundled number.
|
|
60
|
+
*/
|
|
61
|
+
export async function piVersion() {
|
|
62
|
+
const override = process.env.PINES_PI_BIN ?? loadConfig().piBin;
|
|
63
|
+
if (!override) {
|
|
64
|
+
try {
|
|
65
|
+
const entry = bundledPiEntryPath(); // …/pi-coding-agent/dist/cli.js
|
|
66
|
+
const manifest = join(dirname(dirname(entry)), "package.json");
|
|
67
|
+
const p = JSON.parse(readFileSync(manifest, "utf8"));
|
|
68
|
+
return p.version;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return new Promise((resolve) => {
|
|
75
|
+
// The probed binary must not see the daemon's own plumbing: a pi-shaped
|
|
76
|
+
// program that ignores argv (test fixtures, wrappers) would otherwise
|
|
77
|
+
// connect back to PINES_SOCK as an extension and be SIGKILLed
|
|
78
|
+
// mid-handshake when the probe times out.
|
|
79
|
+
const env = {};
|
|
80
|
+
for (const [k, v] of Object.entries(process.env)) {
|
|
81
|
+
if (v === undefined || k.startsWith("PINES_") || k.startsWith("FAKE_PI_"))
|
|
82
|
+
continue;
|
|
83
|
+
env[k] = v;
|
|
84
|
+
}
|
|
85
|
+
let proc;
|
|
86
|
+
try {
|
|
87
|
+
proc = spawn(override, ["--version"], { stdio: ["ignore", "pipe", "ignore"], env });
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return resolve("custom");
|
|
91
|
+
}
|
|
92
|
+
let out = "";
|
|
93
|
+
const timer = setTimeout(() => {
|
|
94
|
+
proc.kill("SIGKILL");
|
|
95
|
+
resolve("custom");
|
|
96
|
+
}, 800);
|
|
97
|
+
proc.stdout?.on("data", (b) => {
|
|
98
|
+
out += b.toString("utf8");
|
|
99
|
+
});
|
|
100
|
+
proc.on("exit", () => {
|
|
101
|
+
clearTimeout(timer);
|
|
102
|
+
resolve(/\d+\.\d+[^\s]*/.exec(out)?.[0] ?? "custom");
|
|
103
|
+
});
|
|
104
|
+
proc.on("error", () => {
|
|
105
|
+
clearTimeout(timer);
|
|
106
|
+
resolve("custom");
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
export class Supervisor extends EventEmitter {
|
|
111
|
+
createAgent;
|
|
112
|
+
trees = new Map();
|
|
113
|
+
activityTimer;
|
|
114
|
+
constructor(createAgent = (options) => new AgentProc(options)) {
|
|
115
|
+
super();
|
|
116
|
+
this.createAgent = createAgent;
|
|
117
|
+
// Fallback status demotion for agents without a connected extension:
|
|
118
|
+
// PTY output implies working; quiet implies waiting for input.
|
|
119
|
+
this.activityTimer = setInterval(() => this.demoteQuietAgents(), 500);
|
|
120
|
+
this.activityTimer.unref();
|
|
121
|
+
}
|
|
122
|
+
liveCount() {
|
|
123
|
+
let n = 0;
|
|
124
|
+
for (const t of this.trees.values())
|
|
125
|
+
if (t.agent?.isRunning)
|
|
126
|
+
n++;
|
|
127
|
+
return n;
|
|
128
|
+
}
|
|
129
|
+
summary(rec) {
|
|
130
|
+
return {
|
|
131
|
+
treeId: rec.treeId,
|
|
132
|
+
sessionPath: rec.sessionPath ?? "",
|
|
133
|
+
sessionId: rec.sessionId,
|
|
134
|
+
name: rec.name,
|
|
135
|
+
cwd: rec.cwd,
|
|
136
|
+
parentSessionPath: rec.parentSessionPath,
|
|
137
|
+
status: rec.status,
|
|
138
|
+
seen: rec.seen,
|
|
139
|
+
leafId: rec.leafId,
|
|
140
|
+
nodeCount: rec.nodeCount,
|
|
141
|
+
x: rec.x,
|
|
142
|
+
y: rec.y,
|
|
143
|
+
live: rec.agent?.isRunning ?? false,
|
|
144
|
+
archived: rec.archived,
|
|
145
|
+
mtime: rec.mtime,
|
|
146
|
+
lastExitCode: rec.lastExitCode,
|
|
147
|
+
parentEntryId: rec.parentEntryId,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
forest() {
|
|
151
|
+
return [...this.trees.values()].map((t) => this.summary(t));
|
|
152
|
+
}
|
|
153
|
+
/** Create a tree record for a session file discovered on disk (dormant). */
|
|
154
|
+
upsertDormant(partial, preferredTreeId) {
|
|
155
|
+
let rec = [...this.trees.values()].find((t) => t.sessionPath === partial.sessionPath);
|
|
156
|
+
if (!rec) {
|
|
157
|
+
rec = this.newRecord();
|
|
158
|
+
if (preferredTreeId)
|
|
159
|
+
rec.treeId = preferredTreeId;
|
|
160
|
+
this.trees.set(rec.treeId, rec);
|
|
161
|
+
}
|
|
162
|
+
Object.assign(rec, partial);
|
|
163
|
+
this.touch(rec);
|
|
164
|
+
return rec;
|
|
165
|
+
}
|
|
166
|
+
newRecord() {
|
|
167
|
+
return {
|
|
168
|
+
treeId: `t_${randomUUID().slice(0, 8)}`,
|
|
169
|
+
sessionPath: null,
|
|
170
|
+
sessionId: null,
|
|
171
|
+
name: null,
|
|
172
|
+
cwd: null,
|
|
173
|
+
parentSessionPath: null,
|
|
174
|
+
status: "dormant",
|
|
175
|
+
seen: true,
|
|
176
|
+
archived: false,
|
|
177
|
+
leafId: null,
|
|
178
|
+
nodeCount: 0,
|
|
179
|
+
x: 0,
|
|
180
|
+
y: 0,
|
|
181
|
+
mtime: Date.now(),
|
|
182
|
+
extensionConnected: false,
|
|
183
|
+
lastOutputAt: 0,
|
|
184
|
+
lastExitCode: null,
|
|
185
|
+
parentEntryId: null,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Spawn a fresh pi on a new session (or resume `sessionPath` if given).
|
|
190
|
+
* Throws if the live-agent limit is reached.
|
|
191
|
+
*/
|
|
192
|
+
spawnAgent(options) {
|
|
193
|
+
const limit = maxLiveAgents();
|
|
194
|
+
if (this.liveCount() >= limit) {
|
|
195
|
+
const idle = [...this.trees.values()]
|
|
196
|
+
.filter((t) => t.agent?.isRunning && t.status === "waiting")
|
|
197
|
+
.map((t) => t.name ?? t.treeId)
|
|
198
|
+
.slice(0, 5);
|
|
199
|
+
throw new Error(`live agent limit reached (${limit}); idle candidates to kill: ${idle.join(", ") || "none"}`);
|
|
200
|
+
}
|
|
201
|
+
const rec = options.existing ?? this.newRecord();
|
|
202
|
+
rec.cwd = options.cwd;
|
|
203
|
+
if (options.name)
|
|
204
|
+
rec.name = options.name;
|
|
205
|
+
const launch = piLaunch();
|
|
206
|
+
const args = [...launch.prefixArgs, "-e", extensionEntryPath()];
|
|
207
|
+
if (options.sessionPath)
|
|
208
|
+
args.push("--session", options.sessionPath);
|
|
209
|
+
if (options.name)
|
|
210
|
+
args.push("--name", options.name);
|
|
211
|
+
if (options.prompt)
|
|
212
|
+
args.push(options.prompt);
|
|
213
|
+
const agent = this.createAgent({
|
|
214
|
+
treeId: rec.treeId,
|
|
215
|
+
cwd: options.cwd,
|
|
216
|
+
cols: options.cols ?? 80,
|
|
217
|
+
rows: options.rows ?? 24,
|
|
218
|
+
command: launch.command,
|
|
219
|
+
args,
|
|
220
|
+
env: {
|
|
221
|
+
PINES_SOCK: socketPath(),
|
|
222
|
+
PINES_TREE_ID: rec.treeId,
|
|
223
|
+
},
|
|
224
|
+
onData: (data) => {
|
|
225
|
+
rec.lastOutputAt = Date.now();
|
|
226
|
+
if (!rec.extensionConnected && rec.status !== "running") {
|
|
227
|
+
rec.status = "running";
|
|
228
|
+
this.touch(rec);
|
|
229
|
+
}
|
|
230
|
+
this.emit("output", rec.treeId, data);
|
|
231
|
+
},
|
|
232
|
+
onExit: (code) => {
|
|
233
|
+
const clean = code === 0 && (rec.status === "waiting" || rec.status === "dormant");
|
|
234
|
+
rec.status = clean ? "completed" : code === 0 ? "completed" : "crashed";
|
|
235
|
+
rec.lastExitCode = code;
|
|
236
|
+
rec.seen = false;
|
|
237
|
+
rec.agent?.dispose();
|
|
238
|
+
rec.agent = undefined;
|
|
239
|
+
rec.extensionConnected = false;
|
|
240
|
+
this.touch(rec);
|
|
241
|
+
this.emit("exit", rec.treeId, code);
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
rec.agent = agent;
|
|
245
|
+
if (!options.existing)
|
|
246
|
+
this.trees.set(rec.treeId, rec);
|
|
247
|
+
rec.status = "running";
|
|
248
|
+
rec.seen = true;
|
|
249
|
+
rec.archived = false; // active work belongs in the forest
|
|
250
|
+
this.touch(rec);
|
|
251
|
+
return rec;
|
|
252
|
+
}
|
|
253
|
+
/** Force a persist + broadcast for out-of-band field changes (name, leaf, …). */
|
|
254
|
+
notify(rec) {
|
|
255
|
+
this.touch(rec);
|
|
256
|
+
}
|
|
257
|
+
setStatus(rec, status, opts) {
|
|
258
|
+
const changed = rec.status !== status || (opts?.unseen === true && rec.seen);
|
|
259
|
+
rec.status = status;
|
|
260
|
+
if (opts?.unseen)
|
|
261
|
+
rec.seen = false;
|
|
262
|
+
if (changed)
|
|
263
|
+
this.touch(rec);
|
|
264
|
+
}
|
|
265
|
+
ackSeen(treeId) {
|
|
266
|
+
const rec = this.trees.get(treeId);
|
|
267
|
+
if (rec && !rec.seen) {
|
|
268
|
+
rec.seen = true;
|
|
269
|
+
this.touch(rec);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
killAgent(treeId) {
|
|
273
|
+
const rec = this.trees.get(treeId);
|
|
274
|
+
if (!rec?.agent)
|
|
275
|
+
return false;
|
|
276
|
+
rec.agent.kill("SIGTERM");
|
|
277
|
+
return true;
|
|
278
|
+
}
|
|
279
|
+
demoteQuietAgents() {
|
|
280
|
+
const now = Date.now();
|
|
281
|
+
for (const rec of this.trees.values()) {
|
|
282
|
+
if (rec.agent?.isRunning &&
|
|
283
|
+
!rec.extensionConnected &&
|
|
284
|
+
rec.status === "running" &&
|
|
285
|
+
now - rec.lastOutputAt > ACTIVITY_QUIET_MS) {
|
|
286
|
+
rec.status = "waiting";
|
|
287
|
+
rec.seen = false;
|
|
288
|
+
this.touch(rec);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
touch(rec) {
|
|
293
|
+
rec.mtime = Date.now();
|
|
294
|
+
this.emit("update", rec);
|
|
295
|
+
}
|
|
296
|
+
async shutdown() {
|
|
297
|
+
if (this.activityTimer)
|
|
298
|
+
clearInterval(this.activityTimer);
|
|
299
|
+
const live = [...this.trees.values()].filter((t) => t.agent?.isRunning);
|
|
300
|
+
for (const t of live)
|
|
301
|
+
t.agent.kill("SIGTERM");
|
|
302
|
+
const deadline = Date.now() + 3000;
|
|
303
|
+
while (Date.now() < deadline && live.some((t) => t.agent?.isRunning)) {
|
|
304
|
+
await new Promise((r) => setTimeout(r, 50));
|
|
305
|
+
}
|
|
306
|
+
for (const t of live)
|
|
307
|
+
if (t.agent?.isRunning)
|
|
308
|
+
t.agent.kill("SIGKILL");
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
//# sourceMappingURL=supervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/daemon/supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pines extension — loaded INSIDE each pines-spawned pi via `-e <this file>`.
|
|
3
|
+
*
|
|
4
|
+
* Reports precise agent/session state to the pines daemon over PINES_SOCK and
|
|
5
|
+
* executes daemon commands (labels, session name, in-place tree navigation).
|
|
6
|
+
* No-ops instantly when PINES_SOCK is unset, so it is harmless if a user
|
|
7
|
+
* copies it into ~/.pi/agent/extensions/.
|
|
8
|
+
*
|
|
9
|
+
* SELF-CONTAINED by design: runtime imports are node builtins only; pi types
|
|
10
|
+
* are `import type` (erased). jiti loads this from wherever pines is installed,
|
|
11
|
+
* where pines' own modules may not be resolvable.
|
|
12
|
+
*
|
|
13
|
+
* Wire protocol: NDJSON over a Unix socket — keep in sync with
|
|
14
|
+
* src/shared/protocol.ts (PROTOCOL_VERSION below must match).
|
|
15
|
+
*/
|
|
16
|
+
import * as net from "node:net";
|
|
17
|
+
const PROTOCOL_VERSION = 2;
|
|
18
|
+
const NAV_COMMAND = "pines-nav";
|
|
19
|
+
export default function pinesExtension(pi) {
|
|
20
|
+
const sockPath = process.env.PINES_SOCK;
|
|
21
|
+
const treeId = process.env.PINES_TREE_ID ?? "";
|
|
22
|
+
if (!sockPath)
|
|
23
|
+
return;
|
|
24
|
+
let socket = null;
|
|
25
|
+
let connected = false;
|
|
26
|
+
let backoff = 250;
|
|
27
|
+
let lastCtx = null;
|
|
28
|
+
let stamped = false;
|
|
29
|
+
/** Editor draft saved around an injected /pines-nav submission. */
|
|
30
|
+
let savedDraft = null;
|
|
31
|
+
function send(obj) {
|
|
32
|
+
if (connected && socket)
|
|
33
|
+
socket.write(JSON.stringify(obj) + "\n");
|
|
34
|
+
}
|
|
35
|
+
function hello(ctx) {
|
|
36
|
+
send({
|
|
37
|
+
t: "hello",
|
|
38
|
+
role: "extension",
|
|
39
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
40
|
+
pid: process.pid,
|
|
41
|
+
treeId,
|
|
42
|
+
sessionPath: ctx.sessionManager.getSessionFile() ?? null,
|
|
43
|
+
sessionId: ctx.sessionManager.getSessionId(),
|
|
44
|
+
leafId: ctx.sessionManager.getLeafId(),
|
|
45
|
+
idle: ctx.isIdle(),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function handleCmd(msg) {
|
|
49
|
+
const id = String(msg.id ?? "");
|
|
50
|
+
const reply = (ok, err) => send({ t: "cmd_result", re: id, ok, err });
|
|
51
|
+
const ctx = lastCtx;
|
|
52
|
+
if (!ctx)
|
|
53
|
+
return reply(false, "no session context yet");
|
|
54
|
+
try {
|
|
55
|
+
switch (msg.op) {
|
|
56
|
+
case "set_label":
|
|
57
|
+
pi.setLabel(String(msg.entryId), msg.label ?? undefined);
|
|
58
|
+
return reply(true);
|
|
59
|
+
case "set_session_name":
|
|
60
|
+
pi.setSessionName(String(msg.name ?? ""));
|
|
61
|
+
return reply(true);
|
|
62
|
+
case "stamp":
|
|
63
|
+
pi.appendEntry("pines", msg.data ?? { treeId, v: 1 });
|
|
64
|
+
return reply(true);
|
|
65
|
+
case "navigate_tree": {
|
|
66
|
+
// navigateTree needs a user-initiated command context. We stage the
|
|
67
|
+
// registered /pines-nav command in the editor; the daemon submits it
|
|
68
|
+
// by writing CR to the PTY once we ack.
|
|
69
|
+
if (ctx.mode !== "tui")
|
|
70
|
+
return reply(false, "navigate requires tui mode");
|
|
71
|
+
if (!ctx.isIdle())
|
|
72
|
+
return reply(false, "agent is busy");
|
|
73
|
+
savedDraft = ctx.ui.getEditorText();
|
|
74
|
+
ctx.ui.setEditorText(`/${NAV_COMMAND} ${String(msg.targetId)}`);
|
|
75
|
+
return reply(true);
|
|
76
|
+
}
|
|
77
|
+
default:
|
|
78
|
+
return reply(false, `unknown op ${String(msg.op)}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
return reply(false, err instanceof Error ? err.message : String(err));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function connect() {
|
|
86
|
+
if (socket)
|
|
87
|
+
return;
|
|
88
|
+
const sock = net.connect(sockPath);
|
|
89
|
+
socket = sock;
|
|
90
|
+
let buf = "";
|
|
91
|
+
sock.on("connect", () => {
|
|
92
|
+
connected = true;
|
|
93
|
+
backoff = 250;
|
|
94
|
+
if (lastCtx)
|
|
95
|
+
hello(lastCtx);
|
|
96
|
+
});
|
|
97
|
+
sock.on("data", (chunk) => {
|
|
98
|
+
buf += chunk.toString("utf8");
|
|
99
|
+
let idx;
|
|
100
|
+
while ((idx = buf.indexOf("\n")) >= 0) {
|
|
101
|
+
const line = buf.slice(0, idx);
|
|
102
|
+
buf = buf.slice(idx + 1);
|
|
103
|
+
if (!line)
|
|
104
|
+
continue;
|
|
105
|
+
try {
|
|
106
|
+
const msg = JSON.parse(line);
|
|
107
|
+
if (msg.t === "cmd")
|
|
108
|
+
handleCmd(msg);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// ignore malformed daemon lines
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
const onGone = () => {
|
|
116
|
+
connected = false;
|
|
117
|
+
socket = null;
|
|
118
|
+
setTimeout(connect, backoff);
|
|
119
|
+
backoff = Math.min(backoff * 2, 5000);
|
|
120
|
+
};
|
|
121
|
+
sock.on("error", onGone);
|
|
122
|
+
sock.on("close", () => {
|
|
123
|
+
if (socket === sock)
|
|
124
|
+
onGone();
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
/* The in-place branch target of the editor-injection flow. */
|
|
128
|
+
pi.registerCommand(NAV_COMMAND, {
|
|
129
|
+
description: "pines: navigate the session tree to an entry (internal)",
|
|
130
|
+
handler: async (args, ctx) => {
|
|
131
|
+
const targetId = args.trim();
|
|
132
|
+
// Restore whatever the user had typed before the injection.
|
|
133
|
+
if (savedDraft !== null && ctx.mode === "tui") {
|
|
134
|
+
ctx.ui.setEditorText(savedDraft);
|
|
135
|
+
savedDraft = null;
|
|
136
|
+
}
|
|
137
|
+
if (!targetId)
|
|
138
|
+
return;
|
|
139
|
+
await ctx.navigateTree(targetId, { summarize: false });
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
pi.on("session_start", (_event, ctx) => {
|
|
143
|
+
// Fires on startup AND after new/resume/fork (fresh runtime → re-hello).
|
|
144
|
+
lastCtx = ctx;
|
|
145
|
+
stamped = false;
|
|
146
|
+
connect();
|
|
147
|
+
if (connected)
|
|
148
|
+
hello(ctx);
|
|
149
|
+
});
|
|
150
|
+
pi.on("agent_start", (_event, ctx) => {
|
|
151
|
+
lastCtx = ctx;
|
|
152
|
+
if (!stamped) {
|
|
153
|
+
stamped = true;
|
|
154
|
+
const hasStamp = ctx.sessionManager
|
|
155
|
+
.getEntries()
|
|
156
|
+
.some((e) => e.type === "custom" && e.customType === "pines");
|
|
157
|
+
if (!hasStamp && treeId)
|
|
158
|
+
pi.appendEntry("pines", { treeId, v: 1 });
|
|
159
|
+
}
|
|
160
|
+
send({ t: "ev", type: "agent_start" });
|
|
161
|
+
});
|
|
162
|
+
pi.on("agent_end", (_event, ctx) => {
|
|
163
|
+
lastCtx = ctx;
|
|
164
|
+
send({ t: "ev", type: "agent_end" });
|
|
165
|
+
});
|
|
166
|
+
pi.on("agent_settled", (_event, ctx) => {
|
|
167
|
+
lastCtx = ctx;
|
|
168
|
+
send({
|
|
169
|
+
t: "ev",
|
|
170
|
+
type: "agent_settled",
|
|
171
|
+
newLeafId: ctx.sessionManager.getLeafId(),
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
pi.on("session_tree", (event, ctx) => {
|
|
175
|
+
lastCtx = ctx;
|
|
176
|
+
send({
|
|
177
|
+
t: "ev",
|
|
178
|
+
type: "session_tree",
|
|
179
|
+
newLeafId: event.newLeafId,
|
|
180
|
+
oldLeafId: event.oldLeafId,
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
pi.on("session_info_changed", (event, ctx) => {
|
|
184
|
+
lastCtx = ctx;
|
|
185
|
+
send({ t: "ev", type: "session_name", name: event.name ?? "" });
|
|
186
|
+
});
|
|
187
|
+
pi.on("session_shutdown", (event, _ctx) => {
|
|
188
|
+
send({ t: "ev", type: "session_shutdown", sessionPath: event.targetSessionFile });
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=pines-extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pines-extension.js","sourceRoot":"","sources":["../../src/extension/pines-extension.ts"],"names":[],"mappings":"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"}
|