📄 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()
}