@chainingintention/pi-web-cn 1.202606.11 → 1.202606.12

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 (71) hide show
  1. package/README.md +12 -5
  2. package/dist/cli.js +14 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client/assets/{CodeViewer-DzeGsHZ5.js → CodeViewer-BKljKDuK.js} +1 -1
  5. package/dist/client/assets/{TerminalPanel-BghODb4T.js → TerminalPanel-DeDTQWls.js} +1 -1
  6. package/dist/client/assets/index-BuVYTYo8.js +2315 -0
  7. package/dist/client/index.html +1 -1
  8. package/dist/config.js +28 -3
  9. package/dist/config.js.map +1 -1
  10. package/dist/pi-web-plugins/updates/package.json +1 -1
  11. package/dist/pi-web-plugins/updates/pi-web-plugin.js +61 -71
  12. package/dist/pi-web-plugins/updates/updatesLogic.js +65 -0
  13. package/dist/server/app.js +14 -6
  14. package/dist/server/app.js.map +1 -1
  15. package/dist/server/index.js +2 -2
  16. package/dist/server/index.js.map +1 -1
  17. package/dist/server/machines/machinePluginProxyRoutes.js +8 -0
  18. package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -1
  19. package/dist/server/machines/machineRoutes.js +6 -0
  20. package/dist/server/machines/machineRoutes.js.map +1 -1
  21. package/dist/server/machines/machineService.js +97 -5
  22. package/dist/server/machines/machineService.js.map +1 -1
  23. package/dist/server/piWebPluginService.js +24 -4
  24. package/dist/server/piWebPluginService.js.map +1 -1
  25. package/dist/server/piWebStatus.js +149 -45
  26. package/dist/server/piWebStatus.js.map +1 -1
  27. package/dist/server/piWebStatusCache.js +32 -0
  28. package/dist/server/piWebStatusCache.js.map +1 -0
  29. package/dist/server/sessiond/sessionProxyRoutes.js +15 -1
  30. package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
  31. package/dist/server/sessiond.js +20 -8
  32. package/dist/server/sessiond.js.map +1 -1
  33. package/dist/server/sessions/attachmentService.js +61 -0
  34. package/dist/server/sessions/attachmentService.js.map +1 -0
  35. package/dist/server/sessions/oauthLoginFlowService.js +7 -0
  36. package/dist/server/sessions/oauthLoginFlowService.js.map +1 -1
  37. package/dist/server/sessions/piSessionManagerGateway.js +96 -0
  38. package/dist/server/sessions/piSessionManagerGateway.js.map +1 -0
  39. package/dist/server/sessions/piSessionService.js +208 -428
  40. package/dist/server/sessions/piSessionService.js.map +1 -1
  41. package/dist/server/sessions/sessionArchiveStore.js +16 -2
  42. package/dist/server/sessions/sessionArchiveStore.js.map +1 -1
  43. package/dist/server/sessions/sessionRoutes.js +157 -47
  44. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  45. package/dist/server/terminals/terminalRoutes.js +10 -4
  46. package/dist/server/terminals/terminalRoutes.js.map +1 -1
  47. package/dist/server/workingDirectory.js +44 -0
  48. package/dist/server/workingDirectory.js.map +1 -0
  49. package/dist/server/workspaces/fileSuggestions.js +96 -16
  50. package/dist/server/workspaces/fileSuggestions.js.map +1 -1
  51. package/dist/shared/apiTypes.d.ts +70 -4
  52. package/dist/shared/apiTypes.js +5 -1
  53. package/dist/shared/apiTypes.js.map +1 -1
  54. package/dist/shared/capabilities.js +27 -0
  55. package/dist/shared/capabilities.js.map +1 -0
  56. package/dist/shared/federatedRoutes.js +3 -0
  57. package/dist/shared/federatedRoutes.js.map +1 -1
  58. package/dist/shared/piWebStatusParsing.js +28 -0
  59. package/dist/shared/piWebStatusParsing.js.map +1 -1
  60. package/dist/shared/promptAttachments.js +73 -0
  61. package/dist/shared/promptAttachments.js.map +1 -0
  62. package/dist/shared/thinkingLevels.d.ts +27 -0
  63. package/dist/shared/thinkingLevels.js +31 -0
  64. package/dist/shared/thinkingLevels.js.map +1 -0
  65. package/dist/shared/workspaceDeletion.js +1 -1
  66. package/dist/shared/workspaceDeletion.js.map +1 -1
  67. package/docs/plugins.md +14 -7
  68. package/package.json +23 -13
  69. package/dist/client/assets/index-DATsMV4H.js +0 -2203
  70. package/dist/server/sessions/managementPermissionSystem.js +0 -94
  71. package/dist/server/sessions/managementPermissionSystem.js.map +0 -1
@@ -1,172 +1,232 @@
1
+ import { normalizeRequestCwd } from "../workingDirectory.js";
1
2
  import { decodeManagementContext, MANAGEMENT_EMBED_CONTEXT_HEADER } from "../managementEmbed.js";
2
- const MAX_PROMPT_IMAGES = 4;
3
- const MAX_PROMPT_IMAGE_RAW_BYTES = 10 * 1024 * 1024;
4
- const PROMPT_BODY_LIMIT_BYTES = Math.ceil(MAX_PROMPT_IMAGES * MAX_PROMPT_IMAGE_RAW_BYTES * 4 / 3) + 1024 * 1024;
5
3
  export function registerSessionRoutes(app, sessions, eventHub, prefix = "") {
6
4
  app.get(`${prefix}/sessions`, async (request, reply) => {
7
5
  if (request.query.cwd === undefined || request.query.cwd === "")
8
6
  return reply.code(400).send({ error: "cwd query parameter is required" });
9
- return sessions.list(request.query.cwd);
7
+ try {
8
+ return await sessions.list(normalizeRequestCwd(request.query.cwd));
9
+ }
10
+ catch (error) {
11
+ return reply.code(400).send({ error: errorMessage(error) });
12
+ }
10
13
  });
11
14
  app.post(`${prefix}/sessions`, async (request, reply) => {
12
15
  try {
13
- return await sessions.start(request.body.cwd, managementContextFromHeaders(request.headers));
16
+ const body = requireRecord(request.body);
17
+ return await sessions.start(normalizeRequestCwd(requireString(body, "cwd")), managementContextFromHeaders(request.headers));
14
18
  }
15
19
  catch (error) {
16
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
20
+ return reply.code(400).send({ error: errorMessage(error) });
17
21
  }
18
22
  });
19
23
  app.get(`${prefix}/sessions/:sessionId/messages`, async (request, reply) => {
20
24
  try {
21
25
  const page = { ...optionalField("before", optionalNumber(request.query.before)), ...optionalField("limit", optionalNumber(request.query.limit)) };
22
- return await sessions.messages(request.params.sessionId, page);
26
+ return await sessions.messages(sessionLookupFromQuery(request.params.sessionId, request.query), page);
23
27
  }
24
28
  catch (error) {
25
- return reply.code(404).send({ error: error instanceof Error ? error.message : String(error) });
29
+ return reply.code(404).send({ error: errorMessage(error) });
26
30
  }
27
31
  });
28
32
  app.get(`${prefix}/sessions/:sessionId/status`, async (request, reply) => {
29
33
  try {
30
- return await sessions.status(request.params.sessionId);
34
+ return await sessions.status(sessionLookupFromQuery(request.params.sessionId, request.query));
31
35
  }
32
36
  catch (error) {
33
- return reply.code(404).send({ error: error instanceof Error ? error.message : String(error) });
37
+ return reply.code(404).send({ error: errorMessage(error) });
34
38
  }
35
39
  });
36
40
  app.get(`${prefix}/sessions/:sessionId/models`, async (request, reply) => {
37
41
  try {
38
- return { models: await sessions.availableModels(request.params.sessionId) };
42
+ return { models: await sessions.availableModels(sessionLookupFromQuery(request.params.sessionId, request.query)) };
39
43
  }
40
44
  catch (error) {
41
- return reply.code(404).send({ error: error instanceof Error ? error.message : String(error) });
45
+ return reply.code(404).send({ error: errorMessage(error) });
42
46
  }
43
47
  });
44
48
  app.post(`${prefix}/sessions/:sessionId/model`, async (request, reply) => {
45
49
  try {
46
- return await sessions.setModel(request.params.sessionId, request.body.provider, request.body.modelId);
50
+ const body = optionalRecord(request.body);
51
+ return await sessions.setModel(sessionLookupFromBody(request.params.sessionId, body), requireString(body, "provider"), requireString(body, "modelId"));
47
52
  }
48
53
  catch (error) {
49
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
54
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
50
55
  }
51
56
  });
52
57
  app.post(`${prefix}/sessions/:sessionId/model/cycle`, async (request, reply) => {
53
58
  try {
54
- return await sessions.cycleModel(request.params.sessionId, request.body.direction ?? "forward");
59
+ const body = optionalRecord(request.body);
60
+ const direction = body["direction"];
61
+ if (direction !== undefined && direction !== "forward" && direction !== "backward")
62
+ throw new Error("direction must be forward or backward");
63
+ return await sessions.cycleModel(sessionLookupFromBody(request.params.sessionId, body), direction ?? "forward");
55
64
  }
56
65
  catch (error) {
57
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
66
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
58
67
  }
59
68
  });
60
69
  app.get(`${prefix}/sessions/:sessionId/thinking-levels`, async (request, reply) => {
61
70
  try {
62
- return { levels: await sessions.availableThinkingLevels(request.params.sessionId) };
71
+ return { levels: await sessions.availableThinkingLevels(sessionLookupFromQuery(request.params.sessionId, request.query)) };
63
72
  }
64
73
  catch (error) {
65
- return reply.code(404).send({ error: error instanceof Error ? error.message : String(error) });
74
+ return reply.code(404).send({ error: errorMessage(error) });
66
75
  }
67
76
  });
68
77
  app.post(`${prefix}/sessions/:sessionId/thinking-level`, async (request, reply) => {
69
78
  try {
70
- return await sessions.setThinkingLevel(request.params.sessionId, request.body.level);
79
+ const body = optionalRecord(request.body);
80
+ // The level string is validated against the session's live available levels
81
+ // in the service, so it stays correct if pi changes the set.
82
+ return await sessions.setThinkingLevel(sessionLookupFromBody(request.params.sessionId, body), requireThinkingLevel(body["level"]));
71
83
  }
72
84
  catch (error) {
73
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
85
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
74
86
  }
75
87
  });
76
88
  app.post(`${prefix}/sessions/:sessionId/thinking-level/cycle`, async (request, reply) => {
77
89
  try {
78
- return await sessions.cycleThinkingLevel(request.params.sessionId);
90
+ const body = optionalRecord(request.body);
91
+ return await sessions.cycleThinkingLevel(sessionLookupFromBody(request.params.sessionId, body));
79
92
  }
80
93
  catch (error) {
81
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
94
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
82
95
  }
83
96
  });
84
97
  app.get(`${prefix}/sessions/:sessionId/commands`, async (request, reply) => {
85
98
  try {
86
- return await sessions.commands(request.params.sessionId);
99
+ return await sessions.commands(sessionLookupFromQuery(request.params.sessionId, request.query));
87
100
  }
88
101
  catch (error) {
89
- return reply.code(404).send({ error: error instanceof Error ? error.message : String(error) });
102
+ return reply.code(404).send({ error: errorMessage(error) });
90
103
  }
91
104
  });
92
- app.post(`${prefix}/sessions/:sessionId/prompt`, { bodyLimit: PROMPT_BODY_LIMIT_BYTES }, async (request, reply) => {
105
+ app.post(`${prefix}/sessions/:sessionId/prompt`, async (request, reply) => {
93
106
  try {
94
- await sessions.prompt(request.params.sessionId, request.body?.text, request.body?.streamingBehavior, request.body?.images, managementContextFromHeaders(request.headers));
107
+ const body = optionalRecord(request.body);
108
+ await sessions.prompt(sessionLookupFromBody(request.params.sessionId, body), body["text"], body["streamingBehavior"], body["attachments"], managementContextFromHeaders(request.headers));
95
109
  return { accepted: true };
96
110
  }
97
111
  catch (error) {
98
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
112
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
113
+ }
114
+ });
115
+ app.post(`${prefix}/sessions/:sessionId/attachments`, async (request, reply) => {
116
+ try {
117
+ const body = optionalRecord(request.body);
118
+ const folder = body["folder"];
119
+ if (folder !== undefined && typeof folder !== "string")
120
+ throw new Error("folder field must be a string");
121
+ const attachments = await sessions.saveAttachments(sessionLookupFromBody(request.params.sessionId, body), body["attachments"], folder);
122
+ return { attachments };
123
+ }
124
+ catch (error) {
125
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
99
126
  }
100
127
  });
101
128
  app.post(`${prefix}/sessions/:sessionId/shell`, async (request, reply) => {
102
129
  try {
103
- await sessions.shell(request.params.sessionId, request.body.text, managementContextFromHeaders(request.headers));
130
+ const body = optionalRecord(request.body);
131
+ await sessions.shell(sessionLookupFromBody(request.params.sessionId, body), requireString(body, "text"), managementContextFromHeaders(request.headers));
104
132
  return { accepted: true };
105
133
  }
106
134
  catch (error) {
107
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
135
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
108
136
  }
109
137
  });
110
138
  app.post(`${prefix}/sessions/:sessionId/commands/run`, async (request, reply) => {
111
139
  try {
112
- return await sessions.runCommand(request.params.sessionId, request.body.text, managementContextFromHeaders(request.headers));
140
+ const body = optionalRecord(request.body);
141
+ return await sessions.runCommand(sessionLookupFromBody(request.params.sessionId, body), requireString(body, "text"), managementContextFromHeaders(request.headers));
113
142
  }
114
143
  catch (error) {
115
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
144
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
116
145
  }
117
146
  });
118
147
  app.post(`${prefix}/sessions/:sessionId/commands/respond`, async (request, reply) => {
119
148
  try {
120
- return await sessions.respondToCommand(request.params.sessionId, request.body.requestId, request.body.value);
149
+ const body = optionalRecord(request.body);
150
+ return await sessions.respondToCommand(sessionLookupFromBody(request.params.sessionId, body), requireString(body, "requestId"), requireString(body, "value"));
121
151
  }
122
152
  catch (error) {
123
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
153
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
124
154
  }
125
155
  });
126
- app.post(`${prefix}/sessions/:sessionId/abort`, async (request) => {
127
- await sessions.abort(request.params.sessionId);
128
- return { aborted: true };
156
+ app.post(`${prefix}/sessions/:sessionId/abort`, async (request, reply) => {
157
+ try {
158
+ await sessions.abort(sessionLookupFromBody(request.params.sessionId, optionalRecord(request.body)));
159
+ return { aborted: true };
160
+ }
161
+ catch (error) {
162
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
163
+ }
129
164
  });
130
- app.post(`${prefix}/sessions/:sessionId/stop`, (request) => {
131
- sessions.stop(request.params.sessionId);
132
- return { stopped: true };
165
+ app.post(`${prefix}/sessions/:sessionId/stop`, (request, reply) => {
166
+ try {
167
+ sessions.stop(sessionLookupFromBody(request.params.sessionId, optionalRecord(request.body)));
168
+ return { stopped: true };
169
+ }
170
+ catch (error) {
171
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
172
+ }
133
173
  });
134
174
  app.post(`${prefix}/sessions/:sessionId/archive`, async (request, reply) => {
135
175
  try {
136
- await sessions.archive(request.params.sessionId);
176
+ await sessions.archive(sessionLookupFromBody(request.params.sessionId, optionalRecord(request.body)));
137
177
  return { archived: true };
138
178
  }
139
179
  catch (error) {
140
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
180
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
141
181
  }
142
182
  });
143
183
  app.post(`${prefix}/sessions/:sessionId/archive-tree`, async (request, reply) => {
144
184
  try {
145
- return await sessions.archiveTree(request.params.sessionId);
185
+ return await sessions.archiveTree(sessionLookupFromBody(request.params.sessionId, optionalRecord(request.body)));
146
186
  }
147
187
  catch (error) {
148
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
188
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
149
189
  }
150
190
  });
151
191
  app.post(`${prefix}/sessions/:sessionId/restore`, async (request, reply) => {
152
192
  try {
153
- await sessions.restore(request.params.sessionId);
193
+ await sessions.restore(sessionLookupFromBody(request.params.sessionId, optionalRecord(request.body)));
154
194
  return { restored: true };
155
195
  }
156
196
  catch (error) {
157
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
197
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
198
+ }
199
+ });
200
+ app.delete(`${prefix}/sessions/:sessionId`, async (request, reply) => {
201
+ try {
202
+ await sessions.deleteArchived(sessionLookupFromQuery(request.params.sessionId, request.query));
203
+ return { deleted: true };
204
+ }
205
+ catch (error) {
206
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
207
+ }
208
+ });
209
+ app.post(`${prefix}/sessions/:sessionId/reload`, async (request, reply) => {
210
+ try {
211
+ await sessions.reload(sessionLookupFromBody(request.params.sessionId, optionalRecord(request.body)));
212
+ return { reloaded: true };
213
+ }
214
+ catch (error) {
215
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
158
216
  }
159
217
  });
160
218
  app.post(`${prefix}/sessions/:sessionId/detach-parent`, async (request, reply) => {
161
219
  try {
162
- await sessions.detachParent(request.params.sessionId);
220
+ await sessions.detachParent(sessionLookupFromBody(request.params.sessionId, optionalRecord(request.body)));
163
221
  return { detached: true };
164
222
  }
165
223
  catch (error) {
166
- return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
224
+ return reply.code(mutationErrorStatus(error)).send({ error: errorMessage(error) });
167
225
  }
168
226
  });
169
227
  app.get(`${prefix}/sessions/:sessionId/events`, { websocket: true }, (socket, request) => {
228
+ // Only the id matters for event subscription; cwd is intentionally ignored
229
+ // so a malformed value cannot throw inside the websocket handler.
170
230
  eventHub.add(request.params.sessionId, socket);
171
231
  });
172
232
  app.get(`${prefix}/sessions/events`, { websocket: true }, (socket) => {
@@ -176,10 +236,47 @@ export function registerSessionRoutes(app, sessions, eventHub, prefix = "") {
176
236
  eventHub.addGlobal(socket);
177
237
  });
178
238
  }
239
+ function sessionLookupFromQuery(id, query) {
240
+ return sessionLookupFromCwd(id, query.cwd);
241
+ }
179
242
  function managementContextFromHeaders(headers) {
180
243
  const raw = headers[MANAGEMENT_EMBED_CONTEXT_HEADER];
181
244
  return decodeManagementContext(Array.isArray(raw) ? raw[0] : raw);
182
245
  }
246
+ function sessionLookupFromBody(id, body) {
247
+ const cwd = body["cwd"];
248
+ if (cwd === undefined || cwd === "")
249
+ return id;
250
+ if (typeof cwd !== "string")
251
+ throw new Error("cwd field must be a string");
252
+ return { id, cwd: normalizeRequestCwd(cwd) };
253
+ }
254
+ function sessionLookupFromCwd(id, cwd) {
255
+ // Legacy id-only lookups (no cwd) remain supported; a supplied cwd is
256
+ // normalized here so everything past the route layer sees canonical paths.
257
+ return cwd === undefined || cwd === "" ? id : { id, cwd: normalizeRequestCwd(cwd) };
258
+ }
259
+ function optionalRecord(value) {
260
+ if (value === undefined || value === null)
261
+ return {};
262
+ return requireRecord(value);
263
+ }
264
+ function requireRecord(value) {
265
+ if (!isRecord(value))
266
+ throw new Error("request body must be an object");
267
+ return value;
268
+ }
269
+ function requireString(record, field) {
270
+ const value = record[field];
271
+ if (typeof value !== "string")
272
+ throw new Error(`${field} field must be a string`);
273
+ return value;
274
+ }
275
+ function requireThinkingLevel(value) {
276
+ if (typeof value !== "string" || value === "")
277
+ throw new Error("level field is invalid");
278
+ return value;
279
+ }
183
280
  function optionalField(key, value) {
184
281
  return value === undefined ? {} : { [key]: value };
185
282
  }
@@ -189,4 +286,17 @@ function optionalNumber(value) {
189
286
  const parsed = Number(value);
190
287
  return Number.isFinite(parsed) ? parsed : undefined;
191
288
  }
289
+ function errorMessage(error) {
290
+ return error instanceof Error ? error.message : String(error);
291
+ }
292
+ function mutationErrorStatus(error) {
293
+ return isSessionNotFoundError(error) ? 404 : 400;
294
+ }
295
+ function isSessionNotFoundError(error) {
296
+ const message = errorMessage(error);
297
+ return message === "Session not found" || message === "Archived session not found";
298
+ }
299
+ function isRecord(value) {
300
+ return typeof value === "object" && value !== null && !Array.isArray(value);
301
+ }
192
302
  //# sourceMappingURL=sessionRoutes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionRoutes.js","sourceRoot":"","sources":["../../../src/server/sessions/sessionRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionRoutes.js","sourceRoot":"","sources":["../../../src/server/sessions/sessionRoutes.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,21 @@
1
+ import { normalizeRequestCwd } from "../workingDirectory.js";
1
2
  import { parseTerminalSize } from "./terminalSize.js";
2
3
  import { decodeManagementContext, MANAGEMENT_EMBED_CONTEXT_HEADER } from "../managementEmbed.js";
3
4
  export function registerTerminalRoutes(app, terminals, prefix = "") {
4
5
  app.get(`${prefix}/terminals`, (request, reply) => {
5
6
  if (request.query.cwd === undefined || request.query.cwd === "")
6
7
  return reply.code(400).send({ error: "cwd query parameter is required" });
7
- return terminals.list(request.query.cwd);
8
+ try {
9
+ return terminals.list(normalizeRequestCwd(request.query.cwd));
10
+ }
11
+ catch (error) {
12
+ return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
13
+ }
8
14
  });
9
15
  app.post(`${prefix}/terminals`, (request, reply) => {
10
16
  try {
11
17
  const managementContext = managementContextFromHeaders(request.headers);
12
- return terminals.create({ ...request.body, ...(managementContext === undefined ? {} : { managementContext }) });
18
+ return terminals.create({ ...request.body, cwd: normalizeRequestCwd(request.body.cwd), ...(managementContext === undefined ? {} : { managementContext }) });
13
19
  }
14
20
  catch (error) {
15
21
  return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
@@ -19,7 +25,7 @@ export function registerTerminalRoutes(app, terminals, prefix = "") {
19
25
  if (request.query.cwd === undefined || request.query.cwd === "")
20
26
  return reply.code(400).send({ error: "cwd query parameter is required" });
21
27
  try {
22
- terminals.closeForCwd(request.query.cwd);
28
+ terminals.closeForCwd(normalizeRequestCwd(request.query.cwd));
23
29
  return { closed: true };
24
30
  }
25
31
  catch (error) {
@@ -29,7 +35,7 @@ export function registerTerminalRoutes(app, terminals, prefix = "") {
29
35
  app.post(`${prefix}/terminal-command-runs`, (request, reply) => {
30
36
  try {
31
37
  const managementContext = managementContextFromHeaders(request.headers);
32
- return terminals.runCommand({ ...request.body, ...(managementContext === undefined ? {} : { managementContext }) });
38
+ return terminals.runCommand({ ...request.body, cwd: normalizeRequestCwd(request.body.cwd), ...(managementContext === undefined ? {} : { managementContext }) });
33
39
  }
34
40
  catch (error) {
35
41
  return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
@@ -1 +1 @@
1
- {"version":3,"file":"terminalRoutes.js","sourceRoot":"","sources":["../../../src/server/terminals/terminalRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminalRoutes.js","sourceRoot":"","sources":["../../../src/server/terminals/terminalRoutes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { isAbsolute, resolve } from "node:path";
2
+ /**
3
+ * Working-directory normalization boundaries.
4
+ *
5
+ * Cwd strings reach the server from three kinds of sources with different trust:
6
+ *
7
+ * 1. HTTP requests (web UI, federation proxies): normalize strictly with
8
+ * `normalizeRequestCwd` at route parsing. Relative paths are rejected instead
9
+ * of being silently resolved against the daemon's own working directory.
10
+ * 2. Data pi-web writes itself (archive store records): canonicalized on write
11
+ * and on load with `canonicalizeStoredCwd`, so internal `===` comparisons are
12
+ * safe by construction.
13
+ * 3. Data other writers own (Pi session file headers via the SDK): canonicalized
14
+ * on read at the gateway, and compared tolerantly with `cwdPathsEqual` where a
15
+ * raw value can still appear (e.g. runtime cwd of sessions opened from files).
16
+ *
17
+ * Inside these boundaries, plain string equality on cwd values is safe.
18
+ */
19
+ /**
20
+ * Strictly normalize a client-supplied working directory at an HTTP boundary.
21
+ * Throws for non-string, empty, or relative input; returns the resolved
22
+ * (separator- and trailing-slash-normalized) absolute path otherwise.
23
+ */
24
+ export function normalizeRequestCwd(cwd) {
25
+ if (typeof cwd !== "string" || cwd === "")
26
+ throw new Error("cwd is required");
27
+ if (!isAbsolute(cwd))
28
+ throw new Error("cwd must be an absolute path");
29
+ return resolve(cwd);
30
+ }
31
+ /**
32
+ * Leniently canonicalize a working directory loaded from stored data.
33
+ * Absolute paths are resolved to canonical form; anything else (legacy empty or
34
+ * relative values) is preserved as-is so a single bad record cannot fail a whole
35
+ * load, and never silently resolves against this process's working directory.
36
+ */
37
+ export function canonicalizeStoredCwd(cwd) {
38
+ return isAbsolute(cwd) ? resolve(cwd) : cwd;
39
+ }
40
+ /** Compare two working-directory paths, tolerating separator and normalization differences (e.g. Windows backslash vs forward slash). */
41
+ export function cwdPathsEqual(a, b) {
42
+ return resolve(a) === resolve(b);
43
+ }
44
+ //# sourceMappingURL=workingDirectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workingDirectory.js","sourceRoot":"","sources":["../../src/server/workingDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED,yIAAyI;AACzI,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,CAAS;IAChD,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"}