feat(session-manager): added optional sessionDir with multi-root migration support
- Made sessionDir parameter optional in SessionManager.create(), forkFrom(), continueRecent(), and list() methods with automatic default computation. - Updated SessionManager.getDefaultSessionDir() to accept optional agentDir parameter for custom sessions root configuration. - Changed SessionManager.list() signature to require cwd parameter as first argument with sessionDir now optional. - Implemented multi-root session migration support by replacing global migration state with per-root tracking and extracting session directory encoding logic. - Added resolveManagedSessionRoot() function to determine if session directory is managed and extract its root.
This commit is contained in:
@@ -13,19 +13,19 @@ console.log("In-memory session:", inMemory.sessionFile ?? "(none)");
|
||||
|
||||
// New persistent session
|
||||
const { session: newSession } = await createAgentSession({
|
||||
sessionManager: SessionManager.create(process.cwd(), SessionManager.getDefaultSessionDir(process.cwd())),
|
||||
sessionManager: SessionManager.create(process.cwd()),
|
||||
});
|
||||
console.log("New session file:", newSession.sessionFile);
|
||||
|
||||
// Continue most recent session (or create new if none)
|
||||
const { session: continued, modelFallbackMessage } = await createAgentSession({
|
||||
sessionManager: await SessionManager.continueRecent(process.cwd(), SessionManager.getDefaultSessionDir(process.cwd())),
|
||||
sessionManager: await SessionManager.continueRecent(process.cwd()),
|
||||
});
|
||||
if (modelFallbackMessage) console.log("Note:", modelFallbackMessage);
|
||||
console.log("Continued session:", continued.sessionFile);
|
||||
|
||||
// List and open specific session
|
||||
const sessions = await SessionManager.list(SessionManager.getDefaultSessionDir(process.cwd()));
|
||||
const sessions = await SessionManager.list(process.cwd());
|
||||
console.log(`\nFound ${sessions.length} sessions:`);
|
||||
for (const info of sessions.slice(0, 3)) {
|
||||
console.log(` ${info.id.slice(0, 8)}… - "${info.firstMessage.slice(0, 30)}…"`);
|
||||
|
||||
Reference in New Issue
Block a user