import { z } from '@frontmcp/lazy-zod'; import { type AuthInfo } from '@frontmcp/protocol'; import { AgentContext, AgentEntry, FlowBase, type FlowRunOptions } from '../../common'; declare const inputSchema: import("@frontmcp/lazy-zod").ZodObject<{ request: import("@frontmcp/lazy-zod").ZodObject<{ method: import("@frontmcp/lazy-zod").ZodLiteral<"tools/call">; params: import("@frontmcp/lazy-zod").ZodObject<{ _meta: import("@frontmcp/lazy-zod").ZodOptional>; "io.modelcontextprotocol/related-task": import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$loose>>; task: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; name: import("@frontmcp/lazy-zod").ZodString; arguments: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>; }, import("zod/v4/core").$strip>; ctx: import("@frontmcp/lazy-zod").ZodAny; }, import("zod/v4/core").$strip>; declare const outputSchema: import("@frontmcp/lazy-zod").ZodObject<{ _meta: import("@frontmcp/lazy-zod").ZodOptional>; "io.modelcontextprotocol/related-task": import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$loose>>; content: import("@frontmcp/lazy-zod").ZodDefault; text: import("@frontmcp/lazy-zod").ZodString; annotations: import("@frontmcp/lazy-zod").ZodOptional>>; priority: import("@frontmcp/lazy-zod").ZodOptional; lastModified: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>, import("@frontmcp/lazy-zod").ZodObject<{ type: import("@frontmcp/lazy-zod").ZodLiteral<"image">; data: import("@frontmcp/lazy-zod").ZodString; mimeType: import("@frontmcp/lazy-zod").ZodString; annotations: import("@frontmcp/lazy-zod").ZodOptional>>; priority: import("@frontmcp/lazy-zod").ZodOptional; lastModified: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>, import("@frontmcp/lazy-zod").ZodObject<{ type: import("@frontmcp/lazy-zod").ZodLiteral<"audio">; data: import("@frontmcp/lazy-zod").ZodString; mimeType: import("@frontmcp/lazy-zod").ZodString; annotations: import("@frontmcp/lazy-zod").ZodOptional>>; priority: import("@frontmcp/lazy-zod").ZodOptional; lastModified: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>, import("@frontmcp/lazy-zod").ZodObject<{ uri: import("@frontmcp/lazy-zod").ZodString; description: import("@frontmcp/lazy-zod").ZodOptional; mimeType: import("@frontmcp/lazy-zod").ZodOptional; size: import("@frontmcp/lazy-zod").ZodOptional; annotations: import("@frontmcp/lazy-zod").ZodOptional>>; priority: import("@frontmcp/lazy-zod").ZodOptional; lastModified: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; icons: import("@frontmcp/lazy-zod").ZodOptional; sizes: import("@frontmcp/lazy-zod").ZodOptional>; theme: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>>>; name: import("@frontmcp/lazy-zod").ZodString; title: import("@frontmcp/lazy-zod").ZodOptional; type: import("@frontmcp/lazy-zod").ZodLiteral<"resource_link">; }, import("zod/v4/core").$strip>, import("@frontmcp/lazy-zod").ZodObject<{ type: import("@frontmcp/lazy-zod").ZodLiteral<"resource">; resource: import("@frontmcp/lazy-zod").ZodUnion; _meta: import("@frontmcp/lazy-zod").ZodOptional>; text: import("@frontmcp/lazy-zod").ZodString; }, import("zod/v4/core").$strip>, import("@frontmcp/lazy-zod").ZodObject<{ uri: import("@frontmcp/lazy-zod").ZodString; mimeType: import("@frontmcp/lazy-zod").ZodOptional; _meta: import("@frontmcp/lazy-zod").ZodOptional>; blob: import("@frontmcp/lazy-zod").ZodString; }, import("zod/v4/core").$strip>]>; annotations: import("@frontmcp/lazy-zod").ZodOptional>>; priority: import("@frontmcp/lazy-zod").ZodOptional; lastModified: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>]>>>; structuredContent: import("@frontmcp/lazy-zod").ZodOptional>; isError: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$loose>; declare const stateSchema: import("@frontmcp/lazy-zod").ZodObject<{ input: import("@frontmcp/lazy-zod").ZodObject<{ name: import("@frontmcp/lazy-zod").ZodString; arguments: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$loose>; authInfo: z.ZodType; agent: import("zod").ZodCustom>; }>, import("../../common").ToolOutputType, unknown, unknown>, AgentEntry>; }>, import("../../common").ToolOutputType, unknown, unknown>>; agentContext: import("zod").ZodCustom>; }>, import("../../common").ToolOutputType, unknown, unknown>, AgentContext>; }>, import("../../common").ToolOutputType, unknown, unknown>>; rawOutput: import("@frontmcp/lazy-zod").ZodOptional; output: import("@frontmcp/lazy-zod").ZodObject<{ _meta: import("@frontmcp/lazy-zod").ZodOptional>; "io.modelcontextprotocol/related-task": import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$loose>>; content: import("@frontmcp/lazy-zod").ZodDefault; text: import("@frontmcp/lazy-zod").ZodString; annotations: import("@frontmcp/lazy-zod").ZodOptional>>; priority: import("@frontmcp/lazy-zod").ZodOptional; lastModified: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>, import("@frontmcp/lazy-zod").ZodObject<{ type: import("@frontmcp/lazy-zod").ZodLiteral<"image">; data: import("@frontmcp/lazy-zod").ZodString; mimeType: import("@frontmcp/lazy-zod").ZodString; annotations: import("@frontmcp/lazy-zod").ZodOptional>>; priority: import("@frontmcp/lazy-zod").ZodOptional; lastModified: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>, import("@frontmcp/lazy-zod").ZodObject<{ type: import("@frontmcp/lazy-zod").ZodLiteral<"audio">; data: import("@frontmcp/lazy-zod").ZodString; mimeType: import("@frontmcp/lazy-zod").ZodString; annotations: import("@frontmcp/lazy-zod").ZodOptional>>; priority: import("@frontmcp/lazy-zod").ZodOptional; lastModified: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>, import("@frontmcp/lazy-zod").ZodObject<{ uri: import("@frontmcp/lazy-zod").ZodString; description: import("@frontmcp/lazy-zod").ZodOptional; mimeType: import("@frontmcp/lazy-zod").ZodOptional; size: import("@frontmcp/lazy-zod").ZodOptional; annotations: import("@frontmcp/lazy-zod").ZodOptional>>; priority: import("@frontmcp/lazy-zod").ZodOptional; lastModified: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; icons: import("@frontmcp/lazy-zod").ZodOptional; sizes: import("@frontmcp/lazy-zod").ZodOptional>; theme: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>>>; name: import("@frontmcp/lazy-zod").ZodString; title: import("@frontmcp/lazy-zod").ZodOptional; type: import("@frontmcp/lazy-zod").ZodLiteral<"resource_link">; }, import("zod/v4/core").$strip>, import("@frontmcp/lazy-zod").ZodObject<{ type: import("@frontmcp/lazy-zod").ZodLiteral<"resource">; resource: import("@frontmcp/lazy-zod").ZodUnion; _meta: import("@frontmcp/lazy-zod").ZodOptional>; text: import("@frontmcp/lazy-zod").ZodString; }, import("zod/v4/core").$strip>, import("@frontmcp/lazy-zod").ZodObject<{ uri: import("@frontmcp/lazy-zod").ZodString; mimeType: import("@frontmcp/lazy-zod").ZodOptional; _meta: import("@frontmcp/lazy-zod").ZodOptional>; blob: import("@frontmcp/lazy-zod").ZodString; }, import("zod/v4/core").$strip>]>; annotations: import("@frontmcp/lazy-zod").ZodOptional>>; priority: import("@frontmcp/lazy-zod").ZodOptional; lastModified: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>]>>>; structuredContent: import("@frontmcp/lazy-zod").ZodOptional>; isError: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$loose>; _agentOwnerId: import("@frontmcp/lazy-zod").ZodOptional; progressToken: import("@frontmcp/lazy-zod").ZodOptional>; jsonRpcRequestId: import("@frontmcp/lazy-zod").ZodOptional>; executionMeta: import("@frontmcp/lazy-zod").ZodOptional; durationMs: import("@frontmcp/lazy-zod").ZodOptional; usage: import("@frontmcp/lazy-zod").ZodOptional; completionTokens: import("@frontmcp/lazy-zod").ZodOptional; totalTokens: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>>; semaphoreTicket: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>; declare const plan: { readonly pre: ["parseInput", "findAgent", "checkEntryAuthorities", "checkAgentAuthorization", "createAgentContext", "acquireQuota", "acquireSemaphore"]; readonly execute: ["validateInput", "execute", "validateOutput"]; readonly finalize: ["releaseSemaphore", "releaseQuota", "finalize"]; }; declare global { interface ExtendFlows { 'agents:call-agent': FlowRunOptions; } } declare const name: "agents:call-agent"; export default class CallAgentFlow extends FlowBase { logger: import("../../common").FrontMcpLogger; /** * Parse and validate the incoming request. */ parseInput(): Promise; /** * Find the agent in the registry. */ findAgent(): Promise; /** * Check entry-level authorities (RBAC/ABAC/ReBAC) declared in agent metadata. * Hookable: developers can use Will/Did/Around on 'checkEntryAuthorities'. * Skips silently if no authorities engine is configured or no authorities on the agent. */ checkEntryAuthorities(): Promise; /** * Check if the agent's parent app is authorized. */ checkAgentAuthorization(): Promise; /** * Create the agent execution context. */ createAgentContext(): Promise; /** * Acquire quota for rate limiting. */ acquireQuota(): Promise; /** * Acquire semaphore for concurrency control. */ acquireSemaphore(): Promise; /** * Validate the agent input against its schema. */ validateInput(): Promise; /** * Execute the agent. */ execute(): Promise; /** * Validate the agent output. */ validateOutput(): Promise; /** * Release the semaphore. */ releaseSemaphore(): Promise; /** * Release the quota. */ releaseQuota(): Promise; /** * Finalize the agent response. * * Validates output and sends the response. * * Note: This stage runs even when execute fails (as part of cleanup). * If rawOutput is undefined, it means an error occurred during execution * and the error will be propagated by the flow framework - we should not * throw a new error here. */ finalize(): Promise; } export {}; //# sourceMappingURL=call-agent.flow.d.ts.map