/** * Public capability truth for the full Frihet MCP surfaces. * * Registration proves only that a tool name and handler exist. It does not * prove that the backing API family is deployed, enabled for a workspace, or * authorized for the caller. This profile adds a conservative, machine-readable * fact to tools/list and corrects action annotations on the non-OpenAI surface. * * The OpenAI review profile reuses the same annotation corrections so every * public surface reports side effects consistently. */ import type { ToolAnnotations } from "@modelcontextprotocol/sdk/types.js"; export declare const CAPABILITY_META_KEY = "io.frihet/capability"; export type CapabilityCallability = "api_dependent" | "runtime_checked" | "deferred" | "unavailable" | "local"; export type ExternalSideEffect = "email_or_invitation" | "webhook_delivery_or_configuration" | "fiscal_or_einvoice_submission" | "external_provider_read" | "external_provider_configuration" | "money_movement" | "channel_sync"; export interface PublicCapabilityTruth { readonly registered: true; readonly callability: CapabilityCallability; readonly canonicalOperation: string; readonly writesFrihet: boolean; readonly externalInteraction: boolean; readonly externalSideEffects: readonly ExternalSideEffect[]; } export declare function correctToolAnnotations(name: string, annotations: ToolAnnotations | undefined): ToolAnnotations; export declare function buildPublicCapabilityTruth(name: string, annotations: ToolAnnotations | undefined): PublicCapabilityTruth; export declare function buildLocalDiscoveryCapability(name: string): PublicCapabilityTruth; /** Must run after grouped exposure (when grouped) and before registration. */ export declare function applyPublicCapabilityTruth(server: any): void; //# sourceMappingURL=capability-truth.d.ts.map