import type { ToolRegistry } from "../tools/registry"; import type { ConfirmFn } from "../permissions/permission-manager"; import { PermissionManager } from "../permissions/permission-manager"; import type { MainAgent, AgentResult, AgentStep } from "../agents/main-agent"; import type { Scheduler } from "../agents/scheduler"; import type { ContextManager } from "../context/context-manager"; import type { SessionData } from "./session-data"; import type { AgentEvent, ConfirmPlanFn } from "../agents/agent-events"; import { type BackgroundOptions, type BackgroundTaskSnapshot } from "../agents/background-manager"; export type { BackgroundOptions, BackgroundTaskSnapshot }; /** 运行选项:流式事件回调与 Plan 门控确认回调,全部可选(旧调用零改动)。 */ export interface RunOptions { /** 实时事件回调(思考/Plan/工具执行/最终答案等)。 */ onEvent?: (event: AgentEvent) => void; /** 多步骤 Plan 执行前的确认回调;返回 false 取消。 */ confirmPlan?: ConfirmPlanFn; /** 中断信号;触发后 mainAgent.run 与工具执行立即抛 AbortError。 */ signal?: AbortSignal; } export interface SessionCreateInit { id: string; title?: string; toolRegistry: ToolRegistry; confirmFn: ConfirmFn; maxSteps?: number; } export declare class Session { readonly id: string; title: string; readonly createdAt: number; updatedAt: number; private mainAgent; private scheduler; private contextManager; private permissionManager; private toolRegistry; private steps; private constructor(); /** 新建空会话:独立 PermissionManager + createAgentSystem。 */ static create(init: SessionCreateInit): Session; /** 从持久化数据重建:预置 approved → 建 agent 图 → 恢复消息 → 重注册动态 agent → 恢复 steps。 */ static fromData(data: SessionData, toolRegistry: ToolRegistry, confirmFn: ConfirmFn): Session; /** 执行任务:首次自动派生 title,累积 steps,更新 updatedAt。可选流式事件与 Plan 门控。 */ run(task: string, options?: RunOptions): Promise; /** * 后台执行任务,立即返回 taskId。任务在 Promise 中推进,可通过 * getBackgroundStatus / cli 的 /bg /status 查看进度,/kill 取消。 * 完成/崩溃/取消都会更新任务状态,结果存 BackgroundManager 供轮询。 */ runBackground(task: string, options?: RunOptions & BackgroundOptions): string; /** 查询指定后台任务状态(本会话的);若 taskId 属于别的会话也能拿到(通用视图)。 */ getBackgroundStatus(taskId: string): BackgroundTaskSnapshot | null; /** 序列化为可持久化结构(messages 去 timestamp/tokenCount)。 */ toData(): SessionData; /** 从任务文本派生标题(前 30 字,超长加省略号)。 */ deriveTitle(task: string): string; getMainAgent(): MainAgent; getScheduler(): Scheduler; getContextManager(): ContextManager; getPermissionManager(): PermissionManager; getSteps(): AgentStep[]; setTitle(title: string): void; /** 清运行态:context + 权限记忆(不清 steps 历史,与既有 /clear 语义一致)。 */ clearRuntime(): void; } //# sourceMappingURL=session.d.ts.map