import type { McpSdkServerConfigWithInstance } from "@anthropic-ai/claude-agent-sdk"; import { OptimaAgent } from "../agent.js"; import type { ConversationState } from "./headless-types.js"; import type { HooksConfig } from "../types.js"; type ExtraMcpServersFactory = (conversationId: string) => Record; /** * 管理多个 conversation,每个 conversation 对应一个 OptimaAgent 实例 */ export declare class ConversationManager { private conversations; private cwd?; private model?; private canUseTool?; private hooks?; private buildExtraMcpServers?; constructor(options?: { cwd?: string; model?: string; canUseTool?: (toolName: string, input: any, conversationId: string) => Promise; hooks?: HooksConfig; /** Per-conversation MCP server factory(IO closure-captured to this conversation) */ buildExtraMcpServers?: ExtraMcpServersFactory; }); /** * 获取或创建 conversation */ getOrCreate(conversationId: string): { state: ConversationState; agent: OptimaAgent; abortController: AbortController | null; }; /** * 删除 conversation */ delete(conversationId: string): boolean; /** * 重置 conversation */ reset(conversationId: string): void; /** * 重置 conversation 的 session ID(用于处理 session 过期/损坏的情况) * 这会创建一个新的 Agent 实例,不再尝试恢复旧的会话 */ resetSessionId(conversationId: string): void; /** * 检查 conversation 是否有 session ID(用于判断是否是恢复的会话) */ hasSessionId(conversationId: string): boolean; /** * 设置 abort controller */ setAbortController(conversationId: string, controller: AbortController | null): void; /** * 中止 conversation */ abort(conversationId: string): void; /** * 更新 claude_sdk_session_id (从 SDK 获取) */ updateClaudeSdkSessionId(conversationId: string, claudeSdkSessionId: string): void; /** * 增加消息计数 */ incrementMessageCount(conversationId: string): void; /** * 从数据库恢复 conversations * Session Gateway 在容器启动时调用,恢复用户的对话历史 */ restore(conversations: Array<{ conversation_id: string; claude_sdk_session_id: string; created_at: string; last_message_at: string; }>): void; } export {}; //# sourceMappingURL=conversation-manager.d.ts.map