import type { ExecResult, ExecutorInput } from '../types/index.js'; export { normalizeClaudeSdkMeasurements } from './claude-protocol.js'; /** * Map ExecutorInput.allowedSkills to SDK query options for skill isolation. * undefined → {} (SDK default: full ~/.claude/skills/ discovery) * [] → { skills: [], disallowedTools: ['Skill'] } (main session + subagent 双堵) * [...] → throw(非空 skill 白名单不再支持:它从不能真隔离 —— 主会话 skill 发现虽被 * `skills:[...]` 收窄,但子代理 Skill 工具与 cwd 文件系统两条 channel 封不住, * 会产出看着干净、实则被白名单外 skill 污染的报告。隔离只留两档:undefined * (不隔离)与 [](全封死),与 claude-cli / codex-cli 一致;多 skill 组合实验 * 请控制评测环境而非靠白名单。) * * Exported for unit tests to lock the option-shape contract. */ export declare function buildSdkIsolationOptions(allowedSkills: string[] | undefined): { skills?: string[]; disallowedTools?: string[]; }; export declare function claudeSdkExecutor({ model, system, prompt, cwd, skillDir, timeoutMs, verbose, allowedSkills, mocks, mocksBaseDir, mocksStrict, lean, effort }: ExecutorInput): Promise;