/** * Which writer handles which client. * * This lives beside the writers rather than inside `../registration-writer.ts` * for one structural reason: every writer imports the shared ownership-safe * machinery from that module, so a dispatch table there would import them right * back. The cycle worked — nothing was evaluated at module top level, so ESM * resolved it — but "works because of evaluation order" is a property that holds * until somebody adds a top-level constant, and `npm run lint:deps` was reporting * it seven times over. * * The dependency direction is now one-way and obvious: * * registration-writer.ts (shared machinery: ownership, stale detection, * ▲ atomic rename, no-static-credential) * │ * writers/*.ts (per-client entry shape + path) * ▲ * │ * writers/registry.ts (which writer, for which client) * * Adding a client is adding a row here plus its writer module — the same shape * as adding a capability-registry row, and still never a `switch`. */ import type { ClientId } from '@zhixuan92/multi-model-agent-core'; import { type ClientRegistrationResult, type WriteClientRegistrationInput } from '../registration-writer.js'; type ClientRegistrationFn = (input: WriteClientRegistrationInput) => Promise; /** * Install `capability`'s recognised home-level MMA MCP entry by dispatching to its * registered writer — the registry above, not a target switch, selects which one * runs. A client with no writer returns `failed` rather than throwing. Two are * writer-less today, both because no verified path exists: VS Code, whose vendor * does not publish a user-level path, and Antigravity, whose vendor retired the * path this repo had verified. Both carry `mcpConfigPaths: []`. */ export declare function writeClientRegistration(input: WriteClientRegistrationInput): Promise; /** * The registered writer function for `clientId`, or `undefined` when none exists * yet — the checkable signal the evidence gate relies on. A client stays * writer-less until its profile in `docs/verification/ * mcp-client-registration-profiles.md` is VERIFIED; `vscode` and `antigravity` * remain undefined here because their profiles are BLOCKED (see the capability * registry's `mcpConfigPaths: []` for the same signal from the other direction). */ export declare function writerForClient(clientId: ClientId): ClientRegistrationFn | undefined; /** Remove the capability-selected registration when that writer supports removal. */ export declare function removeClientRegistration(input: WriteClientRegistrationInput): Promise; export {}; //# sourceMappingURL=registry.d.ts.map