Files
gemini-cli/perf-tests/debug_session.ts
T

64 lines
1.7 KiB
TypeScript

/**
* @license
* Copyright 2026 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { Storage } from '../packages/core/src/config/storage';
import { SessionSelector } from '../packages/cli/src/utils/sessionUtils';
import { join } from 'node:path';
import { mkdirSync, writeFileSync } from 'node:fs';
async function main() {
const testDir = '/private/tmp/perf-scroll-up-true-true';
mkdirSync(testDir, { recursive: true });
const storage = new Storage(testDir);
await storage.initialize();
console.log('Project Temp Dir:', storage.getProjectTempDir());
const chatsDir = join(storage.getProjectTempDir(), 'chats');
mkdirSync(chatsDir, { recursive: true });
const sessionFile = join(chatsDir, 'session-2026-04-10T00-00-test.jsonl');
const metadata = {
sessionId: 'test-session-id',
projectHash: 'test-project-hash',
startTime: new Date().toISOString(),
lastUpdated: new Date().toISOString(),
kind: 'main',
hasUserOrAssistantMessage: true,
messageCount: 1,
summary: 'Test Session',
};
const msg = {
id: 'msg-0',
timestamp: new Date().toISOString(),
type: 'user',
content: 'Message content 0',
};
writeFileSync(
sessionFile,
JSON.stringify(metadata) + '\n' + JSON.stringify(msg) + '\n',
);
console.log('Created file:', sessionFile);
const selector = new SessionSelector(storage);
const sessions = await selector.listSessions();
console.log(
'Sessions found:',
sessions.map((s) => s.id),
);
try {
const resolved = await selector.resolveSession('test-session-id');
console.log('Resolved session:', resolved.sessionData.sessionId);
} catch (e) {
console.error('Failed to resolve:', e);
}
}
main();