import { type A2AAgentCard } from './agent-card.js'; /** * Host-owned planner semantics for a registered capability identifier. * Remote registration metadata may select an identifier, but never supplies * these planner-visible strings directly. */ export interface PlannerCapabilityDefinition { readonly id: string; readonly functionality: string; readonly inputSpecification: string; readonly outputSpecification: string; readonly usageConstraints: readonly string[]; } export interface PlannerDescriptorPolicy { /** Resolve only identifiers the host has explicitly approved for planning. */ readonly resolveCapability: (canonicalSkillId: string) => PlannerCapabilityDefinition | undefined; readonly maximumCapabilities?: number; } export interface PlannerSafeAgentDescriptor { readonly schema: 'ruflo/planner-safe-agent-descriptor/v1'; readonly source: 'a2a-agent-card'; readonly capabilities: readonly PlannerCapabilityDefinition[]; readonly authority: 'none'; } export interface PlannerDescriptorProjection { readonly descriptor: PlannerSafeAgentDescriptor; readonly rejectedSkillCount: number; readonly duplicateSkillCount: number; } /** * Project a third-party A2A Agent Card into planner-visible metadata. * * Security boundary: card descriptions, skill descriptions, examples, tags, * provider text, documentation URLs, extension parameters, and all other * remote prose are deliberately absent from the return type. Only a bounded * canonical skill identifier may cross the registration boundary, and its * planner semantics come from a host-controlled resolver. */ export declare function projectPlannerSafeAgentCard(card: A2AAgentCard, policy: PlannerDescriptorPolicy): PlannerDescriptorProjection; //# sourceMappingURL=planner-descriptor.d.ts.map