/** * Which MCP tool surface is actually wired in this repository * (change: align-generated-guidance-with-installed-preset). * * Generated agent guidance used to prescribe workflows unconditionally — "call * `record_decision` before writing the code" — while the wired default surface * did not expose that tool. The agent then spent a session unable to perform a * task its own instructions demanded. Guidance must therefore be written against * the surface the repository actually has. * * The preset is read from the MCP registration `openlore install` wrote, so the * guidance and the server agree by construction rather than by convention. When * no registration is found the answer is the documented default, never a guess. */ /** * MCP registration files the install adapters write, in resolution order. The * first one that registers an OpenLore server decides — a repository wired for * several agents is wired with one preset. */ export declare const WIRED_PRESET_SOURCES: readonly [".mcp.json", ".cursor/mcp.json", ".vscode/mcp.json"]; export interface WiredPreset { /** Canonical preset name (`substrate`, `full`, …). */ preset: string; /** Where it was read from: a repo-relative file path, or `default` when unwired. */ source: string; } /** * The tool surface wired in `rootDir`. Falls back to the documented default * (`LEAN_DEFAULT_PRESET`) with source `default` — the same surface a bare * `openlore mcp` serves, so unwired repositories get guidance that still matches * what an agent would actually see. */ export declare function resolveWiredPreset(rootDir: string): Promise; /** * The tool names a preset exposes, or `null` for the full surface (the registry * itself — every tool is available, so membership needs no set). * * Derived from the live `TOOL_PRESETS` registry via dynamic import: one source of * truth for what a preset contains, and the heavy MCP module stays off the * analyzer's common path. An unknown preset name yields an empty set rather than * a silent "everything" — guidance must not over-claim a surface we cannot verify. */ export declare function presetToolNames(preset: string): Promise | null>; /** * The exact command that makes `tool` callable without LOSING anything already * wired. Guidance cites this instead of prescribing an uncallable tool. * * The narrowest preset containing the tool is not automatically the right advice: * `record_decision` lives in `minimal`, so a repo on `substrate` told to install * `minimal` would gain decisions and lose ten navigation tools. So the candidate * must be a SUPERSET of what is wired today; when none is, the answer is the full * surface. Deterministic, and derived from the live registry. */ export declare function enablingCommandFor(tool: string, currentPreset?: string): Promise; //# sourceMappingURL=wired-preset.d.ts.map