export declare const MCP_SERVER: { readonly command: "npx"; readonly args: readonly ["-y", "rdk-docs-mcp@latest"]; }; /** Home-level DSH patch so every profile picks up the MCP client bridge. */ export declare const DSH_MCP_PATCH = "- insert:\n - id: mcp-rdk-docs\n name: '@deepseek-ai/dsh-mcp-client'\n config:\n serverName: rdk-docs\n transport: stdio\n command: npx\n args: ['-y', 'rdk-docs-mcp@latest']\n"; export type InstallResult = { mcp: string[]; skills: string[]; warnings: string[]; }; export type InstallOptions = { home?: string; /** Legacy single-skill injection (tests): one body string for the default skill. */ skillSource?: string; /** Multi-skill injection: explicit set of {name, body} to install instead of the bundle. */ skillsSource?: BundledSkill[]; }; export type BundledSkill = { name: string; body: string; }; export declare function bundledSkillsDir(): string; export declare function bundledSkillPath(): string; export declare function loadBundledSkill(): string; /** All skills bundled in the package: one entry per skills//SKILL.md. */ export declare function loadBundledSkills(): BundledSkill[]; export declare function skillInstallPaths(home: string, skillName?: string): string[]; export declare function ensureDshMcpPatch(path: string): boolean; /** Codex keeps MCP servers as TOML tables in ~/.codex/config.toml. */ export declare const CODEX_MCP_BLOCK = "\n[mcp_servers.rdk-docs]\ncommand = \"npx\"\nargs = [\"-y\", \"rdk-docs-mcp@latest\"]\n"; export type CodexMcpEnsureResult = { registered: boolean; /** Human-readable outcome; the reason whenever `registered` is false. */ detail: string; }; /** * Register the rdk-docs MCP server in Codex's config.toml with real TOML * semantics (quoted keys, dotted keys, inline tables, multi-line strings are * all handled by the parser, not by header guessing): * * - a usable existing entry (command or url) is left byte-for-byte untouched; * - a missing entry is appended; an entry that exists without launch keys is * completed only when appending at end-of-file provably lands the keys in * that table (verified by re-parsing the candidate content first); * - the file is only ever appended to — never rewritten — and an invalid or * unfixable original is reported and left untouched; * - writes are atomic and read back + re-parsed before success is claimed. */ export declare function ensureCodexMcpServer(path: string): CodexMcpEnsureResult; /** * Overwrite installed copies of every bundled skill on disk. A skill only lands * where it already exists (refresh updates, never installs fresh on startup). */ export declare function refreshInstalledSkills(options?: InstallOptions): string[]; export declare function refreshInstalledSkillsOnStart(): void; export declare function installRdkDocs(options?: InstallOptions): InstallResult; export declare function formatInstallReport(result: InstallResult): string;