import { type MCPResponse } from "../handlers/shared/responseTrimmer"; /** * An argument that shows the call is on the previous contract. * `present`: the current schema does not accept this path. * `string`: the input stayed, and a string is the previous contract (it is a list now). */ export interface ContractTrigger { path: string; when: "present" | "string"; } /** A breaking change to a tool that kept its name (ADR 0011). */ export interface ContractChange { /** The last release that had the previous contract. */ lastRelease: string; triggers: readonly ContractTrigger[]; /** What the caller reads: how the old inputs map, and what the result no longer contains. */ message: string; } /** * A tool that kept its name. A call that matches a trigger gets `message` and does not run. * Retiring the tool deletes its entry. */ export declare const CONTRACT_CHANGES: ReadonlyMap; export interface ContractMatch { lastRelease: string; inputs: readonly string[]; result: MCPResponse; } /** The error for a call on a tool's previous contract, or nothing when the call is on the current one. */ export declare function contractChangeFor(name: string, args: unknown): ContractMatch | undefined; //# sourceMappingURL=contractChanges.d.ts.map