pi-forge 1.2.4 → 1.3.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.
Files changed (86) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/{CodeMirrorEditor-M7HIAKX2.js → CodeMirrorEditor-BuLFJjB1.js} +13 -13
  3. package/dist/client/assets/CodeMirrorEditor-BuLFJjB1.js.map +1 -0
  4. package/dist/client/assets/index-CEqSkIuy.css +1 -0
  5. package/dist/client/assets/index-GubcPYw6.js +375 -0
  6. package/dist/client/assets/index-GubcPYw6.js.map +1 -0
  7. package/dist/client/assets/{workbox-window.prod.es5-Cch4wiA5.js → workbox-window.prod.es5-Bd17z0YL.js} +2 -2
  8. package/dist/client/assets/{workbox-window.prod.es5-Cch4wiA5.js.map → workbox-window.prod.es5-Bd17z0YL.js.map} +1 -1
  9. package/dist/client/index.html +2 -2
  10. package/dist/client/sw.js +1 -1
  11. package/dist/client/sw.js.map +1 -1
  12. package/dist/server/agent-extensions/compaction-continuation.js +65 -0
  13. package/dist/server/agent-extensions/compaction-continuation.js.map +1 -0
  14. package/dist/server/agent-resource-loader.js +10 -0
  15. package/dist/server/agent-resource-loader.js.map +1 -1
  16. package/dist/server/git-clone.js +364 -0
  17. package/dist/server/git-clone.js.map +1 -0
  18. package/dist/server/index.js +26 -1
  19. package/dist/server/index.js.map +1 -1
  20. package/dist/server/mcp/tool-bridge.js +14 -8
  21. package/dist/server/mcp/tool-bridge.js.map +1 -1
  22. package/dist/server/orchestration/config.js +61 -0
  23. package/dist/server/orchestration/config.js.map +1 -0
  24. package/dist/server/orchestration/event-bridge.js +93 -0
  25. package/dist/server/orchestration/event-bridge.js.map +1 -0
  26. package/dist/server/orchestration/inbox.js +199 -0
  27. package/dist/server/orchestration/inbox.js.map +1 -0
  28. package/dist/server/orchestration/init.js +39 -0
  29. package/dist/server/orchestration/init.js.map +1 -0
  30. package/dist/server/orchestration/store.js +352 -0
  31. package/dist/server/orchestration/store.js.map +1 -0
  32. package/dist/server/orchestration/tools.js +769 -0
  33. package/dist/server/orchestration/tools.js.map +1 -0
  34. package/dist/server/orchestration/types.js +57 -0
  35. package/dist/server/orchestration/types.js.map +1 -0
  36. package/dist/server/processes/envelope.js +60 -0
  37. package/dist/server/processes/envelope.js.map +1 -0
  38. package/dist/server/processes/log-store.js +132 -0
  39. package/dist/server/processes/log-store.js.map +1 -0
  40. package/dist/server/processes/manager.js +370 -0
  41. package/dist/server/processes/manager.js.map +1 -0
  42. package/dist/server/processes/prompt-strings.js +43 -0
  43. package/dist/server/processes/prompt-strings.js.map +1 -0
  44. package/dist/server/processes/tool.js +273 -0
  45. package/dist/server/processes/tool.js.map +1 -0
  46. package/dist/server/processes/types.js +21 -0
  47. package/dist/server/processes/types.js.map +1 -0
  48. package/dist/server/processes/watches.js +59 -0
  49. package/dist/server/processes/watches.js.map +1 -0
  50. package/dist/server/project-manager.js +46 -32
  51. package/dist/server/project-manager.js.map +1 -1
  52. package/dist/server/routes/config.js +5 -0
  53. package/dist/server/routes/config.js.map +1 -1
  54. package/dist/server/routes/control.js +9 -0
  55. package/dist/server/routes/control.js.map +1 -1
  56. package/dist/server/routes/health.js +14 -1
  57. package/dist/server/routes/health.js.map +1 -1
  58. package/dist/server/routes/orchestration.js +464 -0
  59. package/dist/server/routes/orchestration.js.map +1 -0
  60. package/dist/server/routes/processes.js +228 -0
  61. package/dist/server/routes/processes.js.map +1 -0
  62. package/dist/server/routes/projects.js +239 -14
  63. package/dist/server/routes/projects.js.map +1 -1
  64. package/dist/server/routes/sessions.js +53 -34
  65. package/dist/server/routes/sessions.js.map +1 -1
  66. package/dist/server/routes/webhooks.js +362 -0
  67. package/dist/server/routes/webhooks.js.map +1 -0
  68. package/dist/server/session-registry.js +246 -3
  69. package/dist/server/session-registry.js.map +1 -1
  70. package/dist/server/sse-bridge.js +226 -18
  71. package/dist/server/sse-bridge.js.map +1 -1
  72. package/dist/server/webhooks/dispatcher.js +254 -0
  73. package/dist/server/webhooks/dispatcher.js.map +1 -0
  74. package/dist/server/webhooks/event-bridge.js +185 -0
  75. package/dist/server/webhooks/event-bridge.js.map +1 -0
  76. package/dist/server/webhooks/init.js +55 -0
  77. package/dist/server/webhooks/init.js.map +1 -0
  78. package/dist/server/webhooks/store.js +394 -0
  79. package/dist/server/webhooks/store.js.map +1 -0
  80. package/dist/server/webhooks/types.js +32 -0
  81. package/dist/server/webhooks/types.js.map +1 -0
  82. package/package.json +4 -4
  83. package/dist/client/assets/CodeMirrorEditor-M7HIAKX2.js.map +0 -1
  84. package/dist/client/assets/index-DFDpaYie.css +0 -1
  85. package/dist/client/assets/index-DjYKKZRm.js +0 -363
  86. package/dist/client/assets/index-DjYKKZRm.js.map +0 -1
@@ -0,0 +1,273 @@
1
+ import { Type } from "typebox";
2
+ import { config } from "../config.js";
3
+ import { buildListMessage, buildStartMessage, err, ok } from "./envelope.js";
4
+ import { processManager } from "./manager.js";
5
+ import { PROMPT_GUIDELINES, PROMPT_SNIPPET, TOOL_DESCRIPTION } from "./prompt-strings.js";
6
+ import { TOOL_LABEL, TOOL_NAME, } from "./types.js";
7
+ /**
8
+ * JSON Schema for `process` tool params. Mirrors `@aliou/pi-processes`'s
9
+ * TypeBox schema field-for-field so an agent prompt authored
10
+ * against the plugin sees the same input surface.
11
+ */
12
+ const inputSchema = {
13
+ type: "object",
14
+ required: ["action"],
15
+ properties: {
16
+ action: {
17
+ type: "string",
18
+ enum: ["start", "list", "output", "logs", "kill", "clear", "write"],
19
+ },
20
+ command: { type: "string", description: "Command to run (required for start)" },
21
+ name: {
22
+ type: "string",
23
+ description: "Friendly name for the process (required for start, e.g. 'backend-dev', 'test-runner')",
24
+ },
25
+ id: {
26
+ type: "string",
27
+ description: "Process ID, returned by start and list actions (required for output/kill/logs/write)",
28
+ },
29
+ input: {
30
+ type: "string",
31
+ description: "Data to write to process stdin (required for write action)",
32
+ },
33
+ end: {
34
+ type: "boolean",
35
+ description: "Close stdin after writing (optional for write action, use for programs reading until EOF)",
36
+ },
37
+ alertOnSuccess: {
38
+ type: "boolean",
39
+ description: "Get a turn to react when process completes successfully (default: false). Use for builds/tests where you need confirmation.",
40
+ },
41
+ alertOnFailure: {
42
+ type: "boolean",
43
+ description: "Get a turn to react when process fails/crashes (default: true). Use to be alerted of unexpected failures.",
44
+ },
45
+ alertOnKill: {
46
+ type: "boolean",
47
+ description: "Get a turn to react when process is killed by external signal (default: false). Note: killing via tool never triggers a turn.",
48
+ },
49
+ logWatches: {
50
+ type: "array",
51
+ items: {
52
+ type: "object",
53
+ required: ["pattern"],
54
+ additionalProperties: false,
55
+ properties: {
56
+ pattern: {
57
+ type: "string",
58
+ description: "Regular expression pattern to match against process output lines",
59
+ },
60
+ stream: {
61
+ type: "string",
62
+ enum: ["stdout", "stderr", "both"],
63
+ description: "Which stream to watch (default: both). Use stdout/stderr to reduce noise.",
64
+ },
65
+ repeat: {
66
+ type: "boolean",
67
+ description: "Trigger every time this pattern matches (default: false, one-time)",
68
+ },
69
+ },
70
+ },
71
+ },
72
+ },
73
+ };
74
+ function validateLogWatches(watches) {
75
+ if (watches === undefined)
76
+ return null;
77
+ if (!Array.isArray(watches))
78
+ return "Invalid parameter: logWatches must be an array";
79
+ for (const [i, w] of watches.entries()) {
80
+ if (typeof w.pattern !== "string" || w.pattern.trim().length === 0) {
81
+ return `Invalid logWatches[${i}].pattern: expected non-empty string`;
82
+ }
83
+ try {
84
+ new RegExp(w.pattern);
85
+ }
86
+ catch (e) {
87
+ return `Invalid logWatches[${i}].pattern: ${e instanceof Error ? e.message : "invalid regex"}`;
88
+ }
89
+ if (w.stream !== undefined && !["stdout", "stderr", "both"].includes(w.stream)) {
90
+ return `Invalid logWatches[${i}].stream: expected stdout, stderr, or both`;
91
+ }
92
+ if (w.repeat !== undefined && typeof w.repeat !== "boolean") {
93
+ return `Invalid logWatches[${i}].repeat: expected boolean`;
94
+ }
95
+ }
96
+ return null;
97
+ }
98
+ /**
99
+ * Build the `process` tool for one session. Bound to the
100
+ * sessionId + workspace path so `start` knows the right cwd and
101
+ * the manager keys state correctly.
102
+ *
103
+ * Contract-compatible with `@aliou/pi-processes`. Implementation
104
+ * is independent; see `manager.ts` for the spawn/lifecycle code
105
+ * and `docs/processes.md` for the cross-reference.
106
+ */
107
+ export function createProcessTool(sessionId, workspacePath) {
108
+ return {
109
+ name: TOOL_NAME,
110
+ label: TOOL_LABEL,
111
+ description: TOOL_DESCRIPTION,
112
+ promptSnippet: PROMPT_SNIPPET,
113
+ promptGuidelines: PROMPT_GUIDELINES,
114
+ parameters: Type.Unsafe(inputSchema),
115
+ async execute(_toolCallId, params) {
116
+ const p = params;
117
+ switch (p.action) {
118
+ case "start":
119
+ return executeStart(sessionId, workspacePath, p);
120
+ case "list":
121
+ return executeList(sessionId);
122
+ case "output":
123
+ return executeOutput(sessionId, p);
124
+ case "logs":
125
+ return executeLogs(sessionId, p);
126
+ case "kill":
127
+ return executeKill(sessionId, p);
128
+ case "clear":
129
+ return executeClear(sessionId);
130
+ case "write":
131
+ return executeWrite(sessionId, p);
132
+ default:
133
+ return err(p.action, `Unknown action: ${String(p.action)}`);
134
+ }
135
+ },
136
+ };
137
+ }
138
+ function executeStart(sessionId, workspacePath, p) {
139
+ // Defense in depth — the client also hides the tool under
140
+ // MINIMAL_UI, but a stale tab or scripted caller could still
141
+ // invoke it. Refuse at the tool boundary.
142
+ if (config.minimalUi) {
143
+ return err("start", "process.start is disabled under MINIMAL_UI");
144
+ }
145
+ if (p.name === undefined || p.name.length === 0) {
146
+ return err("start", "Missing required parameter: name");
147
+ }
148
+ if (p.command === undefined || p.command.length === 0) {
149
+ return err("start", "Missing required parameter: command");
150
+ }
151
+ const watchErr = validateLogWatches(p.logWatches);
152
+ if (watchErr !== null)
153
+ return err("start", watchErr);
154
+ let info;
155
+ try {
156
+ const startOpts = {};
157
+ if (p.alertOnSuccess !== undefined)
158
+ startOpts.alertOnSuccess = p.alertOnSuccess;
159
+ if (p.alertOnFailure !== undefined)
160
+ startOpts.alertOnFailure = p.alertOnFailure;
161
+ if (p.alertOnKill !== undefined)
162
+ startOpts.alertOnKill = p.alertOnKill;
163
+ if (p.logWatches !== undefined)
164
+ startOpts.logWatches = p.logWatches;
165
+ info = processManager.start(sessionId, p.name, p.command, workspacePath, startOpts);
166
+ }
167
+ catch (e) {
168
+ return err("start", `Failed to start: ${e instanceof Error ? e.message : String(e)}`);
169
+ }
170
+ return ok({
171
+ action: "start",
172
+ success: true,
173
+ message: buildStartMessage(info),
174
+ process: info,
175
+ });
176
+ }
177
+ function executeList(sessionId) {
178
+ const processes = processManager.list(sessionId);
179
+ return ok({
180
+ action: "list",
181
+ success: true,
182
+ message: buildListMessage(processes),
183
+ processes,
184
+ });
185
+ }
186
+ function executeOutput(sessionId, p) {
187
+ if (p.id === undefined || p.id.length === 0) {
188
+ return err("output", "Missing required parameter: id");
189
+ }
190
+ const out = processManager.output(sessionId, p.id);
191
+ if (out === undefined)
192
+ return err("output", `Process not found: ${p.id}`);
193
+ const stdoutTail = out.stdout.slice(Math.max(0, out.stdout.length - 50)).join("\n");
194
+ const stderrTail = out.stderr.slice(Math.max(0, out.stderr.length - 50)).join("\n");
195
+ const parts = [`Status: ${out.status}`];
196
+ if (stdoutTail.length > 0)
197
+ parts.push("--- stdout ---", stdoutTail);
198
+ if (stderrTail.length > 0)
199
+ parts.push("--- stderr ---", stderrTail);
200
+ return ok({
201
+ action: "output",
202
+ success: true,
203
+ message: parts.join("\n"),
204
+ output: out,
205
+ });
206
+ }
207
+ function executeLogs(sessionId, p) {
208
+ if (p.id === undefined || p.id.length === 0) {
209
+ return err("logs", "Missing required parameter: id");
210
+ }
211
+ const files = processManager.logFiles(sessionId, p.id);
212
+ if (files === undefined)
213
+ return err("logs", `Process not found: ${p.id}`);
214
+ return ok({
215
+ action: "logs",
216
+ success: true,
217
+ message: `Log files for ${p.id}:\n stdout: ${files.stdoutFile}\n stderr: ${files.stderrFile}\n\nUse the read tool to inspect them.`,
218
+ logFiles: files,
219
+ });
220
+ }
221
+ async function executeKill(sessionId, p) {
222
+ if (p.id === undefined || p.id.length === 0) {
223
+ return err("kill", "Missing required parameter: id");
224
+ }
225
+ const result = await processManager.kill(sessionId, p.id);
226
+ if (!result.ok) {
227
+ if (result.reason === "not_found") {
228
+ return err("kill", `Process not found: ${p.id}`);
229
+ }
230
+ return err("kill", `Failed to kill ${p.id}: ${result.reason}`);
231
+ }
232
+ return ok({
233
+ action: "kill",
234
+ success: true,
235
+ message: `Killed "${result.info.name}" (${result.info.id})`,
236
+ process: result.info,
237
+ });
238
+ }
239
+ function executeClear(sessionId) {
240
+ const cleared = processManager.clear(sessionId);
241
+ return ok({
242
+ action: "clear",
243
+ success: true,
244
+ message: `Cleared ${cleared} finished process(es)`,
245
+ cleared,
246
+ });
247
+ }
248
+ async function executeWrite(sessionId, p) {
249
+ if (p.id === undefined || p.id.length === 0) {
250
+ return err("write", "Missing required parameter: id");
251
+ }
252
+ if (p.input === undefined) {
253
+ return err("write", "Missing required parameter: input");
254
+ }
255
+ const result = await processManager.write(sessionId, p.id, p.input, p.end === true);
256
+ if (!result.ok) {
257
+ const reason = result.reason;
258
+ const message = reason === "not_found"
259
+ ? `Process not found: ${p.id}`
260
+ : reason === "process_exited"
261
+ ? `Process ${p.id} has already exited`
262
+ : reason === "stdin_closed"
263
+ ? `stdin for ${p.id} is already closed`
264
+ : `Failed to write to ${p.id}`;
265
+ return err("write", message);
266
+ }
267
+ return ok({
268
+ action: "write",
269
+ success: true,
270
+ message: p.end === true ? `Wrote to ${p.id} and closed stdin` : `Wrote to ${p.id}`,
271
+ });
272
+ }
273
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/processes/tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Shape definitions for the `process` tool. The wire contract —
3
+ * tool name (`process`), action enum (`start | list | output |
4
+ * logs | kill | clear | write`), per-process `ProcessInfo`
5
+ * fields, status state machine, log-watch shape, and
6
+ * `ProcessesDetails` envelope — is contract-compatible with
7
+ * `@aliou/pi-processes`. An agent prompt authored against the
8
+ * plugin works against this implementation unchanged.
9
+ *
10
+ * Implementation is independent; types and validation rules were
11
+ * derived from the plugin's published schema and tests. See
12
+ * `docs/processes.md` for the cross-reference.
13
+ */
14
+ export const TOOL_NAME = "process";
15
+ export const TOOL_LABEL = "Process";
16
+ export const LIVE_STATUSES = new Set([
17
+ "running",
18
+ "terminating",
19
+ "terminate_timeout",
20
+ ]);
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/processes/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AAYpC,MAAM,CAAC,MAAM,aAAa,GAA+B,IAAI,GAAG,CAAC;IAC/D,SAAS;IACT,aAAa;IACb,mBAAmB;CACpB,CAAC,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Compile the agent-supplied watches. Validation lives at the
3
+ * tool boundary (see tool.ts); this function trusts shape +
4
+ * regex validity and just normalises defaults.
5
+ */
6
+ export function compileWatches(input) {
7
+ if (input === undefined)
8
+ return [];
9
+ return input.map((w, i) => ({
10
+ index: i,
11
+ pattern: w.pattern,
12
+ stream: w.stream ?? "both",
13
+ repeat: w.repeat === true,
14
+ regex: new RegExp(w.pattern),
15
+ fired: false,
16
+ }));
17
+ }
18
+ /**
19
+ * Run a freshly-emitted line against the compiled set. Returns
20
+ * the watches that matched AND are eligible to fire (skipping
21
+ * single-fire watches that already fired). Mutates `fired` for
22
+ * matched single-fire watches so the same line stream of repeats
23
+ * doesn't keep alerting.
24
+ */
25
+ export function evaluateWatches(watches, source, line) {
26
+ const hits = [];
27
+ for (const w of watches) {
28
+ if (w.stream !== "both" && w.stream !== source)
29
+ continue;
30
+ if (!w.repeat && w.fired)
31
+ continue;
32
+ if (!w.regex.test(line))
33
+ continue;
34
+ if (!w.repeat)
35
+ w.fired = true;
36
+ hits.push(w);
37
+ }
38
+ return hits;
39
+ }
40
+ /**
41
+ * Build the wire shape for a single match. Used by the manager
42
+ * when it fans out a `process_watch_matched` event.
43
+ */
44
+ export function buildMatchEvent(watch, processId, processName, processCommand, source, line) {
45
+ return {
46
+ processId,
47
+ processName,
48
+ processCommand,
49
+ source,
50
+ line,
51
+ watch: {
52
+ index: watch.index,
53
+ pattern: watch.pattern,
54
+ stream: watch.stream,
55
+ repeat: watch.repeat,
56
+ },
57
+ };
58
+ }
59
+ //# sourceMappingURL=watches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watches.js","sourceRoot":"","sources":["../../src/processes/watches.ts"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAsC;IACnE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1B,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM;QAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI;QACzB,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE,KAAK;KACb,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAwB,EACxB,MAA2B,EAC3B,IAAY;IAEZ,MAAM,IAAI,GAAoB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;YAAE,SAAS;QACzD,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK;YAAE,SAAS;QACnC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAoB,EACpB,SAAiB,EACjB,WAAmB,EACnB,cAAsB,EACtB,MAA2B,EAC3B,IAAY;IAEZ,OAAO;QACL,SAAS;QACT,WAAW;QACX,cAAc;QACd,MAAM;QACN,IAAI;QACJ,KAAK,EAAE;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB;KACF,CAAC;AACJ,CAAC"}
@@ -230,38 +230,52 @@ export async function deleteProject(id, opts = {}) {
230
230
  await clearProjectStdioTrust(id).catch((err) => {
231
231
  warn({ err, id }, "mcp-stdio-trust cleanup failed");
232
232
  });
233
- if (opts.cascadeSessionDir === true) {
234
- // Wipe the project's session directory. Best-effort a missing
235
- // dir (no sessions ever recorded) is not an error.
236
- //
237
- // SAFETY: validate the id is UUID-shaped (the only shape
238
- // `createProject()` ever produces) BEFORE building the path.
239
- // `rm({ recursive: true, force: true })` is destructive enough
240
- // that any path-traversal in `id` would be catastrophic — a
241
- // hypothetical `id === ".."` would resolve to the parent of
242
- // `${SESSION_DIR}` and wipe it. Today the only id source is
243
- // `randomUUID()`, but the validator codifies that invariant
244
- // against any future code path that imports/restores ids from
245
- // the wire or a manually-edited projects.json.
246
- if (!UUID_RE.test(id)) {
247
- // Should be unreachable — the project record we just deleted
248
- // had this id, so it passed creation-time validation. Log and
249
- // skip the cascade rather than rm something dangerous.
250
- warn({ id }, "refusing cascade rm for non-UUID id");
251
- return { cascaded };
252
- }
253
- const dir = join(config.sessionDir, id);
254
- try {
255
- await rm(dir, { recursive: true, force: true });
256
- cascaded = true;
257
- }
258
- catch (err) {
259
- // Don't fail the delete itself if cascade cleanup fails — the
260
- // project record is gone, the session files are just orphaned
261
- // (the same state that exists when cascade isn't requested).
262
- // But DO log so a permissions issue isn't silently invisible.
263
- warn({ err, dir }, "cascade rm failed");
264
- }
233
+ // Always wipe the project's session directory in full — JSONLs
234
+ // and the dir itself. Earlier versions made this opt-in via
235
+ // `cascadeSessionDir: true` and a UI checkbox, but the default-off
236
+ // behavior left a `<projectId>/` directory on disk that the UI had
237
+ // no way to reach ever again. Even when individual sessions were
238
+ // deleted before the project, the empty parent dir survived
239
+ // (deleteColdSession only unlinks the JSONL, not the parent).
240
+ //
241
+ // v1.3.0 makes "project delete means gone" the contract: project
242
+ // record + all session metadata + the parent dir are removed in
243
+ // one shot. The user-facing confirmation about deleting N session
244
+ // files happens at the UI layer (a required checkbox in the
245
+ // delete dialog when sessions are present) — but the server-side
246
+ // behavior is unconditional. Programmatic clients calling DELETE
247
+ // /api/v1/projects/:id get the same atomic delete.
248
+ //
249
+ // The project's workspace folder (`${WORKSPACE_PATH}/<projectName>/`)
250
+ // is still left alone that's almost always real work the user
251
+ // wants to keep.
252
+ //
253
+ // SAFETY: validate the id is UUID-shaped (the only shape
254
+ // `createProject()` ever produces) BEFORE building the path.
255
+ // `rm({ recursive: true, force: true })` is destructive enough
256
+ // that any path-traversal in `id` would be catastrophic — a
257
+ // hypothetical `id === ".."` would resolve to the parent of
258
+ // `${SESSION_DIR}` and wipe it. Today the only id source is
259
+ // `randomUUID()`, but the validator codifies that invariant
260
+ // against any future code path that imports/restores ids from
261
+ // the wire or a manually-edited projects.json.
262
+ if (!UUID_RE.test(id)) {
263
+ // Should be unreachable the project record we just deleted
264
+ // had this id, so it passed creation-time validation. Log and
265
+ // skip the cleanup rather than rm something dangerous.
266
+ warn({ id }, "refusing cascade rm for non-UUID id");
267
+ return { cascaded };
268
+ }
269
+ const dir = join(config.sessionDir, id);
270
+ try {
271
+ await rm(dir, { recursive: true, force: true });
272
+ cascaded = true;
273
+ }
274
+ catch (err) {
275
+ // Don't fail the delete itself if cleanup fails — the project
276
+ // record is gone, the session files are just orphaned. But DO
277
+ // log so a permissions issue isn't silently invisible.
278
+ warn({ err, dir }, "session-dir rm failed");
265
279
  }
266
280
  return { cascaded };
267
281
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-manager.js","sourceRoot":"","sources":["../src/project-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-manager.js","sourceRoot":"","sources":["../src/project-manager.ts"],"names":[],"mappings":"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"}
@@ -1415,5 +1415,10 @@ const BUILTIN_TOOL_DESCRIPTIONS = {
1415
1415
  "/ deleted), descriptions, and blockedBy dependencies. State survives reload and " +
1416
1416
  "compaction via branch replay. Implemented in pi-forge (contract-compatible with " +
1417
1417
  "@juicesharp/rpiv-todo).",
1418
+ process: "Manage background processes the agent spawns (dev servers, watchers, builds). " +
1419
+ "Separate from bash: lifecycle tracked, stdout/stderr captured to log files, " +
1420
+ "regex log-watches and exit-alert flags trigger agent notifications. State is " +
1421
+ "in-memory per session; killed on session dispose. Implemented in pi-forge " +
1422
+ "(contract-compatible with @aliou/pi-processes).",
1418
1423
  };
1419
1424
  //# sourceMappingURL=config.js.map