📄 session.ts • 1124 bytes
/**
* CmdCode V0.5 - 会话持久化(明文存储)
* 会话历史保存到 ~/.cmdcode/sessions/*.json,无需加密,方便调取查看修改
*/
import {
saveSessionPlaintext,
loadSessionPlaintext,
listPlaintextSessions,
getLatestSessionId as getLatestPlaintextSessionId,
} from './apikeys.js'
import type { Message } from './chat.js'
// 重导出 SessionIndex 类型
export type SessionIndex = {
id: string
createdAt: string
updatedAt: string
messageCount: number
preview: string
}
/** 保存会话(明文存储) */
export function saveSession(messages: Message[], sessionId?: string): string {
const id = sessionId || `session-${Date.now()}`
saveSessionPlaintext(id, messages)
return id
}
/** 加载会话(明文读取) */
export function loadSession(sessionId: string): Message[] | null {
return loadSessionPlaintext<Message[]>(sessionId)
}
/** 获取最新会话ID */
export function getLatestSessionId(): string | null {
return getLatestPlaintextSessionId()
}
/** 列出所有会话 */
export function listSessions(): SessionIndex[] {
return listPlaintextSessions()
}