import type { PermissionMode, McpSdkServerConfigWithInstance } from "@anthropic-ai/claude-agent-sdk"; /** * canUseTool 回调函数类型 * 当 Claude 调用工具时,SDK 会触发此回调来获取权限决策 */ export type CanUseTool = (toolName: string, input: Record) => Promise; /** * canUseTool 回调的返回结果 */ export type CanUseToolResult = { /** 允许执行工具 */ behavior: "allow"; /** 更新后的输入参数(可以修改工具输入) */ updatedInput: Record; } | { /** 拒绝执行工具 */ behavior: "deny"; /** 拒绝原因,会发送给 Claude */ message: string; }; export interface AgentOptions { /** 模型 ID */ model?: string; /** 权限模式 */ permissionMode?: PermissionMode; /** 最大对话轮次 */ maxTurns?: number; /** 追加到 system prompt */ systemPromptAppend?: string; /** 工作目录(用户的实际工作目录) */ cwd?: string; /** * Skills 目录(SDK 的工作目录) * - 如果指定,SDK 会从 skillsDir/.claude/skills/ 加载 skills * - Lambda 模式:设为用户目录,提前将 skills 符号链接进去 * - 本地模式:不指定,使用包内置的 skills */ skillsDir?: string; /** Hooks 配置 */ hooks?: HooksConfig; /** 恢复会话 ID(用于 headless 模式的 restore) */ resumeSessionId?: string; /** * canUseTool 回调 * 用于处理 AskUserQuestion 等需要权限确认的工具 */ canUseTool?: CanUseTool; /** * 额外注入的 MCP servers(除 optima-memory 之外的,例如 optima-questions) * 由调用方按 conversation 构造,便于把 IO(sendOutput / waitForAnswer / 终端 * 渲染器)closure-captured 到具体的 server handler 里。 */ extraMcpServers?: Record; } export interface HooksConfig { PreToolUse?: HookCallback[]; PostToolUse?: HookCallback[]; SessionStart?: HookCallback[]; SessionEnd?: HookCallback[]; } export interface HookCallback { matcher?: string; hooks: Array<(input: unknown) => Promise>; } export interface HookResult { continue?: boolean; decision?: "approve" | "block"; systemMessage?: string; } export interface ChatOptions { /** 覆盖模型 */ model?: string; /** 覆盖最大轮次 */ maxTurns?: number; /** 取消信号 */ signal?: AbortSignal; /** 流式格式:delta (字符级流式) 或 content (完整块),默认 content */ streamFormat?: "delta" | "content"; } //# sourceMappingURL=types.d.ts.map