@kenkaiiii/ggcoder 5.20.1 → 5.20.2

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 (43) hide show
  1. package/dist/app-sidecar-sessions.test.js +15 -0
  2. package/dist/app-sidecar-sessions.test.js.map +1 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +19 -20
  5. package/dist/cli.js.map +1 -1
  6. package/dist/core/agent-session.d.ts +1 -0
  7. package/dist/core/agent-session.d.ts.map +1 -1
  8. package/dist/core/agent-session.js +43 -5
  9. package/dist/core/agent-session.js.map +1 -1
  10. package/dist/core/project-discovery.d.ts +1 -1
  11. package/dist/core/project-discovery.d.ts.map +1 -1
  12. package/dist/core/project-discovery.js +105 -53
  13. package/dist/core/project-discovery.js.map +1 -1
  14. package/dist/core/project-discovery.test.js +29 -0
  15. package/dist/core/project-discovery.test.js.map +1 -1
  16. package/dist/core/session-manager.d.ts +27 -7
  17. package/dist/core/session-manager.d.ts.map +1 -1
  18. package/dist/core/session-manager.js +257 -124
  19. package/dist/core/session-manager.js.map +1 -1
  20. package/dist/core/session-storage.d.ts +57 -0
  21. package/dist/core/session-storage.d.ts.map +1 -0
  22. package/dist/core/session-storage.js +568 -0
  23. package/dist/core/session-storage.js.map +1 -0
  24. package/dist/core/session-storage.test.d.ts +2 -0
  25. package/dist/core/session-storage.test.d.ts.map +1 -0
  26. package/dist/core/session-storage.test.js +269 -0
  27. package/dist/core/session-storage.test.js.map +1 -0
  28. package/dist/session.d.ts +4 -4
  29. package/dist/session.d.ts.map +1 -1
  30. package/dist/session.js +38 -101
  31. package/dist/session.js.map +1 -1
  32. package/dist/session.test.d.ts +2 -0
  33. package/dist/session.test.d.ts.map +1 -0
  34. package/dist/session.test.js +35 -0
  35. package/dist/session.test.js.map +1 -0
  36. package/dist/ui/App.d.ts.map +1 -1
  37. package/dist/ui/App.js +0 -2
  38. package/dist/ui/App.js.map +1 -1
  39. package/dist/ui/hooks/useTranscriptHistory.d.ts +8 -5
  40. package/dist/ui/hooks/useTranscriptHistory.d.ts.map +1 -1
  41. package/dist/ui/hooks/useTranscriptHistory.js +2 -30
  42. package/dist/ui/hooks/useTranscriptHistory.js.map +1 -1
  43. package/package.json +4 -4
@@ -1,11 +1,11 @@
1
1
  import fs from "node:fs/promises";
2
- import { createReadStream } from "node:fs";
3
2
  import { createInterface } from "node:readline";
4
3
  import path from "node:path";
5
4
  import crypto from "node:crypto";
6
5
  import { environmentSecrets, redactValue, } from "@kenkaiiii/gg-ai";
7
6
  import { log } from "./logger.js";
8
7
  import { encodeCwd } from "./encode-cwd.js";
8
+ import { archiveColdSession, archiveSessionPath, cleanupOldSessionTemps, COLD_SESSION_AGE_DAYS, emptyStorageNormalizationMetrics, hydrateSessionEntry, isSessionPath, normalizeSessionEntryForStorage, openSessionReadStream, plainSessionPath, resolveSessionPath, sessionAssetDir, thawSessionArchive, } from "./session-storage.js";
9
9
  export const DISPLAY_ITEM_CUSTOM_KIND = "display_item";
10
10
  export const TURN_METRIC_CUSTOM_KIND = "turn_metric";
11
11
  function finiteNumber(value) {
@@ -79,12 +79,14 @@ function isCompletedItemLike(value) {
79
79
  }
80
80
  // ── Session Manager ────────────────────────────────────────
81
81
  export class SessionManager {
82
+ static activePathsByRoot = new Map();
83
+ static maintenanceByRoot = new Map();
82
84
  sessionsDir;
83
85
  warnedPersistCodes = new Set();
84
86
  /** Called once per error code when session persistence fails (e.g. ENOSPC). */
85
87
  onPersistError;
86
88
  constructor(sessionsDir) {
87
- this.sessionsDir = sessionsDir;
89
+ this.sessionsDir = path.resolve(sessionsDir);
88
90
  }
89
91
  /**
90
92
  * Session persistence must never crash a live session. Disk-full (ENOSPC),
@@ -132,16 +134,40 @@ export class SessionManager {
132
134
  await fs.appendFile(filePath, JSON.stringify(header) + "\n", "utf-8");
133
135
  return { id, path: filePath, header };
134
136
  }
137
+ registerActivePath(sessionPath) {
138
+ const root = this.sessionsDir;
139
+ const active = SessionManager.activePathsByRoot.get(root) ?? new Map();
140
+ const basePath = path.resolve(plainSessionPath(sessionPath));
141
+ active.set(basePath, (active.get(basePath) ?? 0) + 1);
142
+ SessionManager.activePathsByRoot.set(root, active);
143
+ }
144
+ unregisterActivePath(sessionPath) {
145
+ const active = SessionManager.activePathsByRoot.get(this.sessionsDir);
146
+ if (!active)
147
+ return;
148
+ const basePath = path.resolve(plainSessionPath(sessionPath));
149
+ const registrations = active.get(basePath) ?? 0;
150
+ if (registrations <= 1)
151
+ active.delete(basePath);
152
+ else
153
+ active.set(basePath, registrations - 1);
154
+ if (active.size === 0)
155
+ SessionManager.activePathsByRoot.delete(this.sessionsDir);
156
+ }
157
+ protectedSessionBases(keepPaths = []) {
158
+ return new Set([
159
+ ...(SessionManager.activePathsByRoot.get(this.sessionsDir)?.keys() ?? []),
160
+ ...keepPaths.map((sessionPath) => path.resolve(plainSessionPath(sessionPath))),
161
+ ]);
162
+ }
135
163
  async load(sessionPath) {
136
- // Stream the JSONL file line-by-line instead of loading the entire
137
- // file into memory. For large sessions (100MB+) this avoids holding
138
- // the raw string, the split array, and the parsed objects all at once.
164
+ // Resuming is a write operation, so transparently thaw a gzip archive and
165
+ // return the effective plain path every future append must use.
166
+ const effectivePath = await thawSessionArchive(sessionPath);
167
+ const { stream } = await openSessionReadStream(effectivePath);
139
168
  let header = null;
140
169
  const entries = [];
141
- const rl = createInterface({
142
- input: createReadStream(sessionPath, { encoding: "utf-8" }),
143
- crlfDelay: Infinity,
144
- });
170
+ const rl = createInterface({ input: stream, crlfDelay: Infinity });
145
171
  for await (const line of rl) {
146
172
  if (!line)
147
173
  continue;
@@ -152,12 +178,12 @@ export class SessionManager {
152
178
  header = parsed;
153
179
  }
154
180
  else {
155
- // Upgrade v1 to v2
156
181
  const v1 = parsed;
157
182
  header = {
158
183
  type: "session",
159
184
  version: 2,
160
185
  id: v1.id,
186
+ conversationId: v1.id,
161
187
  timestamp: v1.timestamp,
162
188
  cwd: v1.cwd,
163
189
  provider: v1.provider,
@@ -165,164 +191,270 @@ export class SessionManager {
165
191
  leafId: null,
166
192
  };
167
193
  }
194
+ continue;
168
195
  }
169
- else if (parsed.type === "message") {
170
- // v1 compat: entries without id/parentId
171
- const entry = parsed;
172
- if (!entry.id) {
173
- entry.id = crypto.randomUUID();
174
- entry.parentId = null;
175
- }
176
- entries.push(entry);
177
- }
178
- else {
179
- entries.push(parsed);
196
+ const entry = parsed;
197
+ if (entry.type === "message" && !entry.id) {
198
+ entry.id = crypto.randomUUID();
199
+ entry.parentId = null;
180
200
  }
201
+ entries.push(await hydrateSessionEntry(entry, effectivePath));
181
202
  }
182
203
  catch {
183
- // Skip malformed JSON lines — a corrupt line shouldn't crash the session
204
+ // Skip malformed JSON lines — cold migration preserves their raw bytes
205
+ // so a future recovery tool still has a chance to repair them.
184
206
  }
185
207
  }
186
208
  if (!header) {
187
209
  throw new Error(`Invalid session file: no header found in ${sessionPath}`);
188
210
  }
189
- return { header, entries };
211
+ return { header, entries, path: effectivePath };
190
212
  }
191
- async list(cwd) {
192
- const dir = this.dirForCwd(cwd);
213
+ async readSessionInfo(candidatePath) {
214
+ try {
215
+ const resolvedPath = await resolveSessionPath(candidatePath);
216
+ const { stream } = await openSessionReadStream(resolvedPath);
217
+ const rl = createInterface({ input: stream, crlfDelay: Infinity });
218
+ let first = null;
219
+ let messageCount = 0;
220
+ let lastActivity = null;
221
+ for await (const line of rl) {
222
+ if (!line)
223
+ continue;
224
+ try {
225
+ const parsed = JSON.parse(line);
226
+ if (!first) {
227
+ if (parsed.type !== "session")
228
+ break;
229
+ first = parsed;
230
+ }
231
+ else if (parsed.type === "message") {
232
+ messageCount += 1;
233
+ if (parsed.timestamp)
234
+ lastActivity = parsed.timestamp;
235
+ }
236
+ }
237
+ catch {
238
+ // Skip malformed lines while retaining readable entries around them.
239
+ }
240
+ }
241
+ if (!first || first.type !== "session")
242
+ return null;
243
+ return {
244
+ id: first.id,
245
+ conversationId: first.version === 2
246
+ ? (first.conversationId ?? first.id)
247
+ : first.id,
248
+ path: resolvedPath,
249
+ timestamp: first.timestamp,
250
+ lastActivity: lastActivity ?? first.timestamp,
251
+ cwd: first.cwd,
252
+ messageCount,
253
+ };
254
+ }
255
+ catch {
256
+ return null;
257
+ }
258
+ }
259
+ async sessionCandidates(directory) {
193
260
  let files;
194
261
  try {
195
- files = await fs.readdir(dir);
262
+ files = await fs.readdir(directory);
196
263
  }
197
264
  catch {
198
265
  return [];
199
266
  }
200
- const sessions = [];
201
- for (const file of files) {
202
- if (!file.endsWith(".jsonl"))
267
+ return files.filter(isSessionPath).map((file) => path.join(directory, file));
268
+ }
269
+ async list(cwd) {
270
+ const candidates = await this.sessionCandidates(this.dirForCwd(cwd));
271
+ const summaries = await Promise.all(candidates.map((file) => this.readSessionInfo(file)));
272
+ const byConversation = new Map();
273
+ const seenResolvedPaths = new Set();
274
+ for (const summary of summaries) {
275
+ if (!summary || seenResolvedPaths.has(summary.path))
203
276
  continue;
204
- const filePath = path.join(dir, file);
205
- try {
206
- // Stream line-by-line to avoid loading entire file for listing
207
- const rl = createInterface({
208
- input: createReadStream(filePath, { encoding: "utf-8" }),
209
- crlfDelay: Infinity,
210
- });
211
- let first = null;
212
- let messageCount = 0;
213
- let lastActivity = null;
214
- for await (const line of rl) {
215
- if (!line)
216
- continue;
217
- try {
218
- const parsed = JSON.parse(line);
219
- if (!first) {
220
- if (parsed.type !== "session")
221
- break;
222
- first = parsed;
223
- }
224
- else if (parsed.type === "message") {
225
- messageCount++;
226
- if (parsed.timestamp)
227
- lastActivity = parsed.timestamp;
228
- }
229
- }
230
- catch {
231
- // Skip malformed lines
232
- }
233
- }
234
- if (!first || first.type !== "session")
235
- continue;
236
- sessions.push({
237
- id: first.id,
238
- path: filePath,
239
- timestamp: first.timestamp,
240
- lastActivity: lastActivity ?? first.timestamp,
241
- cwd: first.cwd,
242
- messageCount,
243
- });
244
- }
245
- catch {
246
- // Skip corrupt files
277
+ seenResolvedPaths.add(summary.path);
278
+ const current = byConversation.get(summary.conversationId);
279
+ if (!current || summary.lastActivity > current.lastActivity) {
280
+ const { conversationId: _conversationId, ...info } = summary;
281
+ byConversation.set(summary.conversationId, info);
247
282
  }
248
283
  }
249
- // Sort by last activity descending (the session most recently spoken in first)
250
- sessions.sort((a, b) => b.lastActivity.localeCompare(a.lastActivity));
251
- return sessions;
284
+ return [...byConversation.values()].sort((a, b) => b.lastActivity.localeCompare(a.lastActivity));
252
285
  }
253
286
  async getMostRecent(cwd) {
254
287
  const sessions = await this.list(cwd);
255
- const withMessages = sessions.find((s) => s.messageCount > 0);
256
- return withMessages?.path ?? null;
288
+ return sessions.find((session) => session.messageCount > 0)?.path ?? null;
257
289
  }
258
290
  async findById(cwd, sessionId) {
259
- const sessions = await this.list(cwd);
260
- return sessions.find((session) => session.id === sessionId)?.path ?? null;
291
+ const candidates = await this.sessionCandidates(this.dirForCwd(cwd));
292
+ for (const candidate of candidates) {
293
+ const summary = await this.readSessionInfo(candidate);
294
+ if (summary?.id === sessionId || summary?.conversationId === sessionId)
295
+ return summary.path;
296
+ }
297
+ return null;
261
298
  }
262
- /**
263
- * Delete session files older than `maxAgeDays` across ALL project dirs.
264
- * Age is judged by file mtime, so a session that's still being appended to
265
- * is never considered old. Best-effort: per-file errors are skipped so a
266
- * locked or vanished file can't break startup. Empty project dirs left
267
- * behind are removed. Returns what was freed for logging.
268
- */
269
- async pruneOldSessions(options) {
270
- const result = { deletedFiles: 0, freedBytes: 0 };
271
- if (options.maxAgeDays <= 0)
272
- return result;
273
- const cutoffMs = Date.now() - options.maxAgeDays * 86_400_000;
274
- const keep = new Set((options.keepPaths ?? []).map((p) => path.resolve(p)));
275
- let cwdDirs;
299
+ async storageDirectories() {
300
+ let entries;
276
301
  try {
277
- cwdDirs = await fs.readdir(this.sessionsDir);
302
+ entries = await fs.readdir(this.sessionsDir, { withFileTypes: true });
278
303
  }
279
304
  catch {
280
- return result;
305
+ return [];
281
306
  }
282
- for (const dirName of cwdDirs) {
283
- const dir = path.join(this.sessionsDir, dirName);
284
- let files;
285
- try {
286
- const stat = await fs.stat(dir);
287
- if (!stat.isDirectory())
288
- continue;
289
- files = await fs.readdir(dir);
307
+ return entries
308
+ .filter((entry) => entry.isDirectory())
309
+ .map((entry) => path.join(this.sessionsDir, entry.name));
310
+ }
311
+ async logicalSessionBases(directory) {
312
+ let entries;
313
+ try {
314
+ entries = await fs.readdir(directory, { withFileTypes: true });
315
+ }
316
+ catch {
317
+ return [];
318
+ }
319
+ const bases = new Set();
320
+ for (const entry of entries) {
321
+ const entryPath = path.join(directory, entry.name);
322
+ if (entry.isFile() && isSessionPath(entry.name)) {
323
+ bases.add(path.resolve(plainSessionPath(entryPath)));
290
324
  }
291
- catch {
292
- continue;
325
+ else if (entry.isDirectory() && entry.name.endsWith(".jsonl.assets")) {
326
+ bases.add(path.resolve(entryPath.slice(0, -".assets".length)));
293
327
  }
294
- let remaining = files.length;
295
- for (const file of files) {
296
- if (!file.endsWith(".jsonl"))
297
- continue;
298
- const filePath = path.join(dir, file);
299
- if (keep.has(path.resolve(filePath)))
328
+ }
329
+ return [...bases];
330
+ }
331
+ async removeStoragePath(targetPath) {
332
+ let stat;
333
+ try {
334
+ stat = await fs.lstat(targetPath);
335
+ }
336
+ catch {
337
+ return { deletedFiles: 0, deletedBytes: 0 };
338
+ }
339
+ if (stat.isDirectory()) {
340
+ const result = { deletedFiles: 0, deletedBytes: 0 };
341
+ for (const name of await fs.readdir(targetPath)) {
342
+ const removed = await this.removeStoragePath(path.join(targetPath, name));
343
+ result.deletedFiles += removed.deletedFiles;
344
+ result.deletedBytes += removed.deletedBytes;
345
+ }
346
+ await fs.rmdir(targetPath).catch(() => { });
347
+ return result;
348
+ }
349
+ await fs.unlink(targetPath);
350
+ return { deletedFiles: 1, deletedBytes: stat.size };
351
+ }
352
+ async pruneOldSessions(options) {
353
+ const result = { deletedFiles: 0, freedBytes: 0 };
354
+ if (options.maxAgeDays <= 0)
355
+ return result;
356
+ const cutoffMs = Date.now() - options.maxAgeDays * 86_400_000;
357
+ for (const directory of await this.storageDirectories()) {
358
+ for (const basePath of await this.logicalSessionBases(directory)) {
359
+ if (this.protectedSessionBases(options.keepPaths).has(basePath))
300
360
  continue;
301
361
  try {
302
- const stat = await fs.stat(filePath);
362
+ const resolved = await resolveSessionPath(basePath);
363
+ const stat = await fs.stat(resolved);
303
364
  if (stat.mtimeMs >= cutoffMs)
304
365
  continue;
305
- await fs.unlink(filePath);
306
- result.deletedFiles += 1;
307
- result.freedBytes += stat.size;
308
- remaining -= 1;
366
+ for (const target of [
367
+ basePath,
368
+ archiveSessionPath(basePath),
369
+ sessionAssetDir(basePath),
370
+ ]) {
371
+ const removed = await this.removeStoragePath(target);
372
+ result.deletedFiles += removed.deletedFiles;
373
+ result.freedBytes += removed.deletedBytes;
374
+ }
309
375
  }
310
376
  catch {
311
- // Skip files we can't stat/delete pruning is best-effort
377
+ // A raced, corrupt, or inaccessible logical group is skipped safely.
312
378
  }
313
379
  }
314
- if (remaining === 0) {
315
- await fs.rmdir(dir).catch(() => { });
316
- }
380
+ await fs.rmdir(directory).catch(() => { });
317
381
  }
318
382
  return result;
319
383
  }
384
+ async runMaintenance(options) {
385
+ const existing = SessionManager.maintenanceByRoot.get(this.sessionsDir);
386
+ if (existing)
387
+ return existing;
388
+ const maintenance = this.runMaintenanceUnsafe(options).finally(() => {
389
+ SessionManager.maintenanceByRoot.delete(this.sessionsDir);
390
+ });
391
+ SessionManager.maintenanceByRoot.set(this.sessionsDir, maintenance);
392
+ return maintenance;
393
+ }
394
+ async runMaintenanceUnsafe(options) {
395
+ const metrics = {
396
+ deletedFiles: 0,
397
+ deletedBytes: 0,
398
+ archivedFiles: 0,
399
+ archivedSourceBytes: 0,
400
+ archivedBytes: 0,
401
+ bytesSaved: 0,
402
+ failures: 0,
403
+ ...emptyStorageNormalizationMetrics(),
404
+ };
405
+ const pruned = await this.pruneOldSessions({
406
+ maxAgeDays: options.retentionDays,
407
+ keepPaths: options.keepPaths,
408
+ });
409
+ metrics.deletedFiles = pruned.deletedFiles;
410
+ metrics.deletedBytes = pruned.freedBytes;
411
+ const now = options.now ?? Date.now();
412
+ const coldCutoff = now - COLD_SESSION_AGE_DAYS * 86_400_000;
413
+ for (const directory of await this.storageDirectories()) {
414
+ const tempCleanup = await cleanupOldSessionTemps(directory, now - 86_400_000);
415
+ metrics.deletedFiles += tempCleanup.deletedFiles;
416
+ metrics.deletedBytes += tempCleanup.freedBytes;
417
+ for (const basePath of await this.logicalSessionBases(directory)) {
418
+ if (this.protectedSessionBases(options.keepPaths).has(basePath))
419
+ continue;
420
+ try {
421
+ const resolved = await resolveSessionPath(basePath);
422
+ const stat = await fs.stat(resolved);
423
+ if (stat.mtimeMs >= coldCutoff || resolved.endsWith(".jsonl.gz"))
424
+ continue;
425
+ const archived = await archiveColdSession(resolved);
426
+ if (!archived.archived)
427
+ continue;
428
+ metrics.archivedFiles += 1;
429
+ metrics.archivedSourceBytes += archived.sourceBytes;
430
+ metrics.archivedBytes += archived.archiveBytes;
431
+ metrics.bytesSaved += archived.bytesSaved;
432
+ metrics.truncatedToolTexts += archived.truncatedToolTexts;
433
+ metrics.externalizedMedia += archived.externalizedMedia;
434
+ metrics.omittedPathMedia += archived.omittedPathMedia;
435
+ metrics.removedDisplayItems += archived.removedDisplayItems;
436
+ }
437
+ catch (error) {
438
+ metrics.failures += 1;
439
+ log("WARN", "session", "Cold session maintenance failed", {
440
+ path: basePath,
441
+ message: error instanceof Error ? error.message : String(error),
442
+ });
443
+ }
444
+ }
445
+ }
446
+ return metrics;
447
+ }
320
448
  async appendEntry(sessionPath, entry) {
321
449
  try {
322
- // Persist a sanitized clone. The live conversation remains untouched so
323
- // credentials can still be used by the current in-memory run.
450
+ // Persist a sanitized, bounded clone. The live conversation remains
451
+ // untouched so the current turn keeps full tool output and media.
324
452
  const safeEntry = redactValue(entry, { secrets: environmentSecrets(process.env) });
325
- await fs.appendFile(sessionPath, JSON.stringify(safeEntry) + "\n", "utf-8");
453
+ const writablePath = await thawSessionArchive(sessionPath);
454
+ const normalized = await normalizeSessionEntryForStorage(safeEntry, writablePath);
455
+ if (normalized === null)
456
+ return;
457
+ await fs.appendFile(writablePath, `${JSON.stringify(normalized)}\n`, "utf-8");
326
458
  }
327
459
  catch (error) {
328
460
  this.handlePersistError(error, "appendEntry");
@@ -341,7 +473,8 @@ export class SessionManager {
341
473
  }
342
474
  async updateLeaf(sessionPath, leafId) {
343
475
  try {
344
- await this.updateLeafUnsafe(sessionPath, leafId);
476
+ const writablePath = await thawSessionArchive(sessionPath);
477
+ await this.updateLeafUnsafe(writablePath, leafId);
345
478
  }
346
479
  catch (error) {
347
480
  this.handlePersistError(error, "updateLeaf");
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/core/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/core/session-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { Readable } from "node:stream";
2
+ export declare const MAX_PERSISTED_TOOL_TEXT_CHARS = 40000;
3
+ export declare const COLD_SESSION_AGE_DAYS = 7;
4
+ export declare const SESSION_GZIP_VERSION = 1;
5
+ export declare const SESSION_REDIRECT_VERSION = 1;
6
+ export declare const SESSION_MEDIA_MARKER_VERSION = 1;
7
+ export declare const SESSION_PLAIN_SUFFIX = ".jsonl";
8
+ export declare const SESSION_ARCHIVE_SUFFIX = ".jsonl.gz";
9
+ export declare const SESSION_ASSET_SUFFIX = ".jsonl.assets";
10
+ export declare const SESSION_TEMP_MARKER = ".gg-session-tmp-";
11
+ declare const REDIRECT_TYPE = "gg_session_redirect";
12
+ export interface SessionRedirect {
13
+ type: typeof REDIRECT_TYPE;
14
+ version: typeof SESSION_REDIRECT_VERSION;
15
+ target: string;
16
+ }
17
+ export interface StorageNormalizationMetrics {
18
+ truncatedToolTexts: number;
19
+ externalizedMedia: number;
20
+ omittedPathMedia: number;
21
+ removedDisplayItems: number;
22
+ }
23
+ export interface ArchiveSessionResult extends StorageNormalizationMetrics {
24
+ archived: boolean;
25
+ sourceBytes: number;
26
+ archiveBytes: number;
27
+ bytesSaved: number;
28
+ path: string;
29
+ }
30
+ export declare function emptyStorageNormalizationMetrics(): StorageNormalizationMetrics;
31
+ export declare function isSessionPath(filePath: string): boolean;
32
+ export declare function isSessionTempPath(filePath: string): boolean;
33
+ export declare function plainSessionPath(filePath: string): string;
34
+ export declare function archiveSessionPath(filePath: string): string;
35
+ export declare function sessionAssetDir(filePath: string): string;
36
+ export declare function sessionGroupPaths(filePath: string): {
37
+ plainPath: string;
38
+ archivePath: string;
39
+ assetsPath: string;
40
+ };
41
+ export declare function temporarySiblingPath(filePath: string): string;
42
+ export declare function resolveSessionPath(filePath: string): Promise<string>;
43
+ export declare function isGzipSessionPath(filePath: string): Promise<boolean>;
44
+ export declare function openSessionReadStream(filePath: string): Promise<{
45
+ path: string;
46
+ stream: Readable;
47
+ }>;
48
+ export declare function thawSessionArchive(filePath: string): Promise<string>;
49
+ export declare function normalizeSessionEntryForStorage<T>(entry: T, sessionPath: string, metrics?: StorageNormalizationMetrics): Promise<T | null>;
50
+ export declare function hydrateSessionEntry<T>(entry: T, sessionPath: string): Promise<T>;
51
+ export declare function archiveColdSession(sessionPath: string): Promise<ArchiveSessionResult>;
52
+ export declare function cleanupOldSessionTemps(directory: string, olderThanMs: number): Promise<{
53
+ deletedFiles: number;
54
+ freedBytes: number;
55
+ }>;
56
+ export {};
57
+ //# sourceMappingURL=session-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-storage.d.ts","sourceRoot":"","sources":["../../src/core/session-storage.ts"],"names":[],"mappings":"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"}