import type { AgentAdapter } from "../types/agent.js"; export declare function createClaudeCodeAdapter(): AgentAdapter; /** * Copy `~/.claude.json` into an isolated config dir with all MCP server * config stripped out. * * `claude login` writes the `oauthAccount` anchor into this file, so `prepare()` * copies it to propagate the operator's OAuth session into CLAUDE_CONFIG_DIR. * But the same file also carries the operator's PERSONAL MCP servers — both * top-level `mcpServers` and per-project `projects[].mcpServers`. Copying * those verbatim leaks the operator's personal MCP tools (notion, bluesky, * internal-apps, …) into every scenario run, breaking hermeticity. We delete * them from a parsed copy so scenarios get only the servers they declare via * ScenarioInput. * * The knowledge of Claude's config shape (which file, which keys are MCP, which * anchor to preserve) lives here in the adapter, not in the generic * local-session helpers. The operator's real `~/.claude.json` is never mutated * — we read it, strip an in-memory copy, and write the sanitized result to * `destDir`. No-op if the source is missing; skips (rather than copying * verbatim) if it isn't a JSON object — unparseable, or valid-but-non-object * JSON like `null`, an array, or a primitive — since we can't sanitize what * isn't an object, and such a `.claude.json` wouldn't authenticate anyway. * * Exported for unit testing; not part of the package's public API. */ export declare function copyClaudeConfigWithoutMcp(destDir: string): void; //# sourceMappingURL=claude-code.d.ts.map