@jmfederico/pi-web 1.202607.2 → 1.202608.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 (103) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/{CodeViewer-B4M13447.js → CodeViewer-D91Sp61M.js} +1 -1
  3. package/dist/client/assets/{TerminalPanel-Bmvj-Ecn.js → TerminalPanel-fYrKc3jh.js} +2 -2
  4. package/dist/client/assets/{UnifiedDiffViewer-C0hygwRo.js → UnifiedDiffViewer-BafLWGtF.js} +1 -1
  5. package/dist/client/assets/index-CA8q9_o7.js +4025 -0
  6. package/dist/client/index.html +1 -1
  7. package/dist/config.js +39 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/pi-web-plugins/info/infoInternals.js +208 -0
  10. package/dist/pi-web-plugins/info/pi-web-plugin.js +12 -15
  11. package/dist/pi-web-plugins/relays/markdownDocument.js +81 -0
  12. package/dist/pi-web-plugins/relays/package.json +9 -0
  13. package/dist/pi-web-plugins/relays/pi-web-plugin.js +44 -0
  14. package/dist/pi-web-plugins/relays/relayDiscovery.js +228 -0
  15. package/dist/pi-web-plugins/relays/relaysPanelElement.js +550 -0
  16. package/dist/pi-web-plugins/relays/vendor/README.md +24 -0
  17. package/dist/pi-web-plugins/relays/vendor/marked.esm.js +76 -0
  18. package/dist/plugin-api.d.ts +7 -1
  19. package/dist/server/app.js +0 -22
  20. package/dist/server/app.js.map +1 -1
  21. package/dist/server/browserMessageProjection.js +0 -2
  22. package/dist/server/browserMessageProjection.js.map +1 -1
  23. package/dist/server/configRoutes.js +13 -11
  24. package/dist/server/configRoutes.js.map +1 -1
  25. package/dist/server/machines/machineProxyRoutes.js +2 -13
  26. package/dist/server/machines/machineProxyRoutes.js.map +1 -1
  27. package/dist/server/piWebStatus.js +12 -38
  28. package/dist/server/piWebStatus.js.map +1 -1
  29. package/dist/server/sessiond/agentHttpDispatcher.js +108 -0
  30. package/dist/server/sessiond/agentHttpDispatcher.js.map +1 -0
  31. package/dist/server/sessiond/agentProcessEnvironment.js +62 -0
  32. package/dist/server/sessiond/agentProcessEnvironment.js.map +1 -0
  33. package/dist/server/sessiond/sessionServiceDependencies.js +33 -0
  34. package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -0
  35. package/dist/server/sessiond.js +145 -116
  36. package/dist/server/sessiond.js.map +1 -1
  37. package/dist/server/sessions/askUserTool.js +102 -0
  38. package/dist/server/sessions/askUserTool.js.map +1 -0
  39. package/dist/server/sessions/authRoutes.js +0 -10
  40. package/dist/server/sessions/authRoutes.js.map +1 -1
  41. package/dist/server/sessions/authService.js +0 -24
  42. package/dist/server/sessions/authService.js.map +1 -1
  43. package/dist/server/sessions/extensionDialogWaiters.js +76 -0
  44. package/dist/server/sessions/extensionDialogWaiters.js.map +1 -0
  45. package/dist/server/sessions/globalProviderPolicy.js +79 -10
  46. package/dist/server/sessions/globalProviderPolicy.js.map +1 -1
  47. package/dist/server/sessions/messagePaging.js +2 -2
  48. package/dist/server/sessions/messagePaging.js.map +1 -1
  49. package/dist/server/sessions/modelCatalogRefresher.js +8 -0
  50. package/dist/server/sessions/modelCatalogRefresher.js.map +1 -1
  51. package/dist/server/sessions/oauthLoginFlowService.js +2 -5
  52. package/dist/server/sessions/oauthLoginFlowService.js.map +1 -1
  53. package/dist/server/sessions/parentSessionLocator.js +75 -0
  54. package/dist/server/sessions/parentSessionLocator.js.map +1 -0
  55. package/dist/server/sessions/pendingAskStore.js +275 -0
  56. package/dist/server/sessions/pendingAskStore.js.map +1 -0
  57. package/dist/server/sessions/pendingExtensionDialogStore.js +196 -0
  58. package/dist/server/sessions/pendingExtensionDialogStore.js.map +1 -0
  59. package/dist/server/sessions/piSessionManagerGateway.js +182 -2
  60. package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
  61. package/dist/server/sessions/piSessionService.js +721 -203
  62. package/dist/server/sessions/piSessionService.js.map +1 -1
  63. package/dist/server/sessions/sessionFileHeader.js +117 -0
  64. package/dist/server/sessions/sessionFileHeader.js.map +1 -0
  65. package/dist/server/sessions/sessionRoutes.js +169 -54
  66. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  67. package/dist/server/sessions/sessionSummaryScanner.js +619 -0
  68. package/dist/server/sessions/sessionSummaryScanner.js.map +1 -0
  69. package/dist/server/sessions/spawnSessionTool.js +8 -1
  70. package/dist/server/sessions/spawnSessionTool.js.map +1 -1
  71. package/dist/server/sessions/spawnSubsessionTool.js +7 -1
  72. package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
  73. package/dist/server/sessions/spawnTargetResolver.js +3 -16
  74. package/dist/server/sessions/spawnTargetResolver.js.map +1 -1
  75. package/dist/server/workspaces/effectivePathAccess.js +0 -19
  76. package/dist/server/workspaces/effectivePathAccess.js.map +1 -1
  77. package/dist/server/workspaces/gitWorktreeDiscovery.js +9 -0
  78. package/dist/server/workspaces/gitWorktreeDiscovery.js.map +1 -1
  79. package/dist/server/workspaces/projectWorkspaceCwds.js +22 -0
  80. package/dist/server/workspaces/projectWorkspaceCwds.js.map +1 -0
  81. package/dist/server/workspaces/workspaceDeletionRoutes.js +30 -4
  82. package/dist/server/workspaces/workspaceDeletionRoutes.js.map +1 -1
  83. package/dist/server/workspaces/workspaceService.js +15 -2
  84. package/dist/server/workspaces/workspaceService.js.map +1 -1
  85. package/dist/sessiond/config.js +2 -2
  86. package/dist/sessiond/config.js.map +1 -1
  87. package/dist/shared/activity.js +9 -1
  88. package/dist/shared/activity.js.map +1 -1
  89. package/dist/shared/apiTypes.d.ts +300 -24
  90. package/dist/shared/apiTypes.js +30 -15
  91. package/dist/shared/apiTypes.js.map +1 -1
  92. package/dist/shared/capabilities.js +10 -41
  93. package/dist/shared/capabilities.js.map +1 -1
  94. package/dist/shared/federatedRoutes.js +4 -3
  95. package/dist/shared/federatedRoutes.js.map +1 -1
  96. package/docs/config.md +115 -11
  97. package/docs/plugins.md +82 -14
  98. package/package.json +11 -9
  99. package/dist/client/assets/index-TvPsRyS1.js +0 -3545
  100. package/dist/server/sessiond/sessionDaemonStartup.js +0 -49
  101. package/dist/server/sessiond/sessionDaemonStartup.js.map +0 -1
  102. package/dist/server/sessions/sessionArchiveMigration.js +0 -590
  103. package/dist/server/sessions/sessionArchiveMigration.js.map +0 -1
@@ -1,8 +1,9 @@
1
1
  import { readdir } from "node:fs/promises";
2
2
  import { homedir } from "node:os";
3
- import { dirname, isAbsolute, join, resolve } from "node:path";
3
+ import { basename, dirname, isAbsolute, join, resolve } from "node:path";
4
4
  import { SessionManager, SettingsManager } from "@earendil-works/pi-coding-agent";
5
5
  import { canonicalizeStoredCwd, cwdPathsEqual } from "../workingDirectory.js";
6
+ import { SessionSummaryScanner } from "./sessionSummaryScanner.js";
6
7
  export class SessionDirResolver {
7
8
  constructor(options) {
8
9
  this.agentDir = options.agentDir;
@@ -32,16 +33,53 @@ export class SessionDirResolver {
32
33
  return { source: "pi-default", sessionDir: defaultPiSessionDir(cwd, this.agentDir), usesConfiguredSessionDir: false };
33
34
  }
34
35
  }
36
+ /**
37
+ * Same bound as the summary scanner's: concurrent header opens are capped so
38
+ * a directory with many sessions cannot exhaust file descriptors. Exhaustion
39
+ * (EMFILE) would surface as "unreadable" headers and silently drop children
40
+ * from the sibling counts.
41
+ */
42
+ const MAX_CONCURRENT_HEADER_READS = 10;
35
43
  export function createPiSessionManagerGateway(options) {
36
44
  return new SettingsAwarePiSessionManagerGateway(new SessionDirResolver(options));
37
45
  }
38
46
  class SettingsAwarePiSessionManagerGateway {
39
47
  constructor(resolver) {
40
48
  this.resolver = resolver;
49
+ /**
50
+ * One memoized scanner per gateway: its per-file summary memo lives as long
51
+ * as the daemon, so repeated listings only stat unchanged files and parse
52
+ * the appended tails of grown ones. Invalidation is automatic (file
53
+ * identity + size; see SessionSummaryScanner), with `invalidateSessionFile`
54
+ * for in-place rewrites and a `clear()` escape hatch.
55
+ */
56
+ this.summaryScanner = new SessionSummaryScanner();
41
57
  }
42
58
  async list(cwd) {
43
59
  const resolution = this.resolver.resolve(cwd);
44
- return filterSessionsForCwd(await listSessionsInDir(resolution.sessionDir), cwd);
60
+ // Lightweight streaming summaries instead of the SDK's full-transcript
61
+ // listing: same fields, but message bodies are never parsed once the first
62
+ // user message is found. The cross-project cleanup listing (listAll) keeps
63
+ // the SDK path.
64
+ const sessions = (await this.summaryScanner.scanSessionSummariesInDir(resolution.sessionDir)).map((session) => ({
65
+ ...session,
66
+ cwd: canonicalizeStoredCwd(session.cwd),
67
+ }));
68
+ return filterSessionsForCwd(sessions, cwd);
69
+ }
70
+ async listParentSessionPaths(cwd, readHeader) {
71
+ const resolution = this.resolver.resolve(cwd);
72
+ return listParentSessionPathsInDir(resolution.sessionDir, cwd, readHeader);
73
+ }
74
+ async resolveSessionFile(cwd, sessionId, readHeader) {
75
+ const resolution = this.resolver.resolve(cwd);
76
+ return resolveSessionFileInDir(resolution.sessionDir, cwd, sessionId, readHeader);
77
+ }
78
+ invalidateSessionFile(sessionFile) {
79
+ // Detach is the only flow that rewrites a session file in place (keeping
80
+ // the inode), and the summary memo cannot detect such rewrites from
81
+ // identity + size alone. Drop the entry so the next listing re-reads it.
82
+ this.summaryScanner.invalidate(sessionFile);
45
83
  }
46
84
  create(cwd, options) {
47
85
  const resolution = this.resolver.resolve(cwd);
@@ -85,6 +123,148 @@ export function filterSessionsForCwd(sessions, cwd) {
85
123
  // resolve to this process's cwd and produce false matches.
86
124
  return sessions.filter((session) => session.cwd !== "" && cwdPathsEqual(session.cwd, cwd));
87
125
  }
126
+ /**
127
+ * Collect the `parentSessionPath` values recorded in a session directory's
128
+ * files, reading only each file's single-line JSON header — never the
129
+ * transcripts. The header is the only place a child records its parent, so
130
+ * this yields exactly what a full listing would report for the relationship.
131
+ *
132
+ * Unreadable headers contribute nothing (matching how a listing skips invalid
133
+ * files), and headers whose cwd does not belong to `cwd` are excluded exactly
134
+ * like `filterSessionsForCwd` would exclude them from a listing.
135
+ */
136
+ export async function listParentSessionPathsInDir(sessionDir, cwd, readHeader) {
137
+ const sessionFiles = await listSessionFiles(sessionDir);
138
+ const headers = await readSessionHeadersWithBoundedConcurrency(sessionFiles, readHeader);
139
+ const parentSessionPaths = [];
140
+ for (const header of headers) {
141
+ // A header without a cwd (very old session files) would also be dropped by
142
+ // filterSessionsForCwd, so it contributes no parent here either.
143
+ if (header?.parentSession === undefined || header.cwd === undefined || !cwdPathsEqual(header.cwd, cwd))
144
+ continue;
145
+ parentSessionPaths.push(header.parentSession);
146
+ }
147
+ return parentSessionPaths;
148
+ }
149
+ /**
150
+ * Read every header with bounded concurrency (see MAX_CONCURRENT_HEADER_READS),
151
+ * preserving input order. Every file is read even when earlier reads fail.
152
+ */
153
+ async function readSessionHeadersWithBoundedConcurrency(sessionFiles, readHeader) {
154
+ const headers = Array.from({ length: sessionFiles.length }, () => undefined);
155
+ let nextIndex = 0;
156
+ const workerCount = Math.min(MAX_CONCURRENT_HEADER_READS, sessionFiles.length);
157
+ const workers = Array.from({ length: workerCount }, async () => {
158
+ for (;;) {
159
+ const index = nextIndex++;
160
+ const sessionFile = sessionFiles[index];
161
+ if (sessionFile === undefined)
162
+ return;
163
+ headers[index] = await readHeader(sessionFile);
164
+ }
165
+ });
166
+ await Promise.all(workers);
167
+ return headers;
168
+ }
169
+ /**
170
+ * Locate a session file by id without parsing transcripts.
171
+ *
172
+ * Session filenames embed the session id (`<timestamp>_<sessionId>.jsonl`), so
173
+ * exact and prefix matches are normally found from the directory names alone
174
+ * and confirmed by one header read. Filename candidates that fail header
175
+ * verification (a copy whose header holds a different session) do not end the
176
+ * search: the remaining files are checked too, so sessions in renamed or
177
+ * hand-named files still resolve, keeping the outcome identical to picking the
178
+ * session out of a full listing. Headers decide: a file whose header id or cwd
179
+ * does not match is not the session.
180
+ *
181
+ * Among matches, an exact header id wins over a prefix match wherever it
182
+ * appears; ambiguous prefix matches resolve deterministically by creation-time
183
+ * order (see `byNewestEmbeddedTimestamp`).
184
+ *
185
+ * The header's cwd is returned canonicalized, matching what `list` reports.
186
+ */
187
+ export async function resolveSessionFileInDir(sessionDir, cwd, sessionId, readHeader) {
188
+ const sessionFiles = await listSessionFiles(sessionDir);
189
+ const fileNameMatches = [];
190
+ const remainingFiles = [];
191
+ for (const sessionFile of sessionFiles) {
192
+ (fileNameMatchesSessionId(basename(sessionFile), sessionId) ? fileNameMatches : remainingFiles).push(sessionFile);
193
+ }
194
+ fileNameMatches.sort(byNewestEmbeddedTimestamp);
195
+ remainingFiles.sort(byNewestEmbeddedTimestamp);
196
+ // A prefix match is only provisional: an exact header id wins over it
197
+ // wherever it appears, so the search continues after one is found.
198
+ let prefixMatch;
199
+ // Filename matches first; the remaining files follow so a renamed file still
200
+ // resolves when every filename candidate fails header verification.
201
+ for (const sessionFile of [...fileNameMatches, ...remainingFiles]) {
202
+ const header = await readHeader(sessionFile);
203
+ if (header?.cwd === undefined)
204
+ continue;
205
+ if (!cwdPathsEqual(header.cwd, cwd))
206
+ continue;
207
+ if (header.id === sessionId) {
208
+ return { id: header.id, cwd: canonicalizeStoredCwd(header.cwd), path: sessionFile };
209
+ }
210
+ if (prefixMatch === undefined && header.id.startsWith(sessionId)) {
211
+ prefixMatch = { id: header.id, cwd: canonicalizeStoredCwd(header.cwd), path: sessionFile };
212
+ }
213
+ }
214
+ return prefixMatch;
215
+ }
216
+ /**
217
+ * Order session files newest-first by the timestamp embedded in SDK-style names
218
+ * (`<timestamp>_<sessionId>.jsonl`; the SDK stamps the session's creation time
219
+ * into the name, so this is creation-time order). Files sharing a timestamp,
220
+ * or without one, fall back to a plain code-unit path comparison — never
221
+ * `localeCompare`, whose result varies by locale — so the order is
222
+ * deterministic everywhere.
223
+ *
224
+ * This deliberately drifts from the listing, which orders by modified time:
225
+ * the resolver verifies headers only and never stats files, so ambiguous
226
+ * prefix matches resolve by creation-time order instead.
227
+ */
228
+ function byNewestEmbeddedTimestamp(a, b) {
229
+ const timestampA = embeddedFileNameTimestamp(basename(a));
230
+ const timestampB = embeddedFileNameTimestamp(basename(b));
231
+ if (timestampA !== timestampB)
232
+ return timestampA < timestampB ? 1 : -1;
233
+ return a < b ? 1 : a > b ? -1 : 0;
234
+ }
235
+ /** The creation timestamp embedded in an SDK-style session file name ("" when absent). */
236
+ function embeddedFileNameTimestamp(fileName) {
237
+ const stem = fileName.slice(0, -".jsonl".length);
238
+ const separatorIndex = stem.indexOf("_");
239
+ return separatorIndex === -1 ? "" : stem.slice(0, separatorIndex);
240
+ }
241
+ /** Whether a `.jsonl` file name embeds `sessionId` (exactly or as a prefix). */
242
+ function fileNameMatchesSessionId(fileName, sessionId) {
243
+ const embeddedId = embeddedFileNameSessionId(fileName);
244
+ return embeddedId !== undefined && (embeddedId === sessionId || embeddedId.startsWith(sessionId));
245
+ }
246
+ /**
247
+ * The session id embedded in an SDK-style session file name
248
+ * (`<timestamp>_<sessionId>.jsonl`). The timestamp never contains `_`, so the
249
+ * id is everything after the first separator; files without one fall back to
250
+ * the whole stem, and header verification discards false guesses.
251
+ */
252
+ function embeddedFileNameSessionId(fileName) {
253
+ const stem = fileName.slice(0, -".jsonl".length);
254
+ const separatorIndex = stem.indexOf("_");
255
+ const candidate = separatorIndex === -1 ? stem : stem.slice(separatorIndex + 1);
256
+ return candidate === "" ? undefined : candidate;
257
+ }
258
+ async function listSessionFiles(sessionDir) {
259
+ try {
260
+ const names = await readdir(sessionDir);
261
+ return names.filter((name) => name.endsWith(".jsonl")).map((name) => join(sessionDir, name));
262
+ }
263
+ catch {
264
+ // Matches the SDK listing behavior: an unreadable directory lists nothing.
265
+ return [];
266
+ }
267
+ }
88
268
  function uniqueSessionsByPath(sessions) {
89
269
  const byPath = new Map();
90
270
  for (const session of sessions)
@@ -1 +1 @@
1
- {"version":3,"file":"piSessionManagerGateway.js","sourceRoot":"","sources":["../../../src/server/sessions/piSessionManagerGateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"piSessionManagerGateway.js","sourceRoot":"","sources":["../../../src/server/sessions/piSessionManagerGateway.ts"],"names":[],"mappings":"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"}