/** * claude-code adapter — appends the OpenLore instruction block to CLAUDE.md * (creating it if absent), registers the OpenLore MCP server in `.mcp.json` * (the project-scope file Claude Code actually reads for MCP), and adds a * SessionStart hook to `.claude/settings.json`. * * NB: Claude Code loads MCP servers only from `.mcp.json` (project), * `~/.claude.json`, or `claude mcp add` — never from `.claude/settings.json`. * Earlier versions wrote `mcpServers.openlore` to `settings.json`, so the * server never loaded; `apply` now migrates that stale entry away. */ import type { Adapter, ApplyContext } from './types.js'; /** * Test seam for the compare-and-swap contract. * * The race it guards — a running Claude Code rewriting `~/.claude.json` between our * read and our write — cannot be scheduled deterministically from outside, and a * test that races the real scheduler asserts nothing. This exposes the exact * question instead: given the bytes we observed, does a publication whose target * has since changed refuse, and leave the change intact? */ export declare function _publishManagedFileForTesting(ctx: ApplyContext, path: string, data: string, observedRaw: string | null): Promise<{ ok: true; } | { ok: false; reason: string; }>; export declare const claudeCodeAdapter: Adapter; //# sourceMappingURL=claude-code.d.ts.map