/** * Pydantic AI Adapter * * Integrates Pydantic AI (type-safe Python agent framework) with the * SwarmOrchestrator via user-supplied runner functions. * * Pydantic AI provides structured, validated agent responses with * dependency injection, streaming, and multi-step tool use. Since * it's Python-native, this adapter wraps either: * - A JS-compatible runner interface (for interop bridges) * - An HTTP endpoint that fronts a Pydantic AI agent * * Usage: * const adapter = new PydanticAIAdapter(); * adapter.registerAgent('data-analyst', { * runner: myPydanticRunner, * resultSchema: { type: 'object', properties: { answer: { type: 'string' } } }, * }); * * @module PydanticAIAdapter * @version 1.0.0 */ import { BaseAdapter } from './base-adapter'; import type { AdapterCapabilities, AgentPayload, AgentContext, AgentResult } from '../types/agent-adapter'; /** Pydantic AI run result */ export interface PydanticAIRunResult { /** Structured data output (validated against resultSchema) */ data: unknown; /** Raw text output if available */ text?: string; /** Tool calls made during execution */ toolCalls?: Array<{ tool: string; args: Record; result: unknown; }>; /** Message history */ messages?: Array<{ role: string; content: string; }>; /** Token usage */ usage?: { requestTokens: number; responseTokens: number; totalTokens: number; }; /** Whether validation succeeded */ validated: boolean; } /** * Runner interface for a Pydantic AI agent. * Wraps `agent.run()` or an HTTP call to a Pydantic AI server. */ export interface PydanticAIRunner { run(prompt: string, deps?: Record): Promise; } /** * HTTP-based runner configuration. * Sends POST requests to a Pydantic AI HTTP endpoint. */ export interface PydanticAIHttpConfig { /** Base URL of the Pydantic AI server */ baseUrl: string; /** Auth header value (e.g. 'Bearer xxx') */ authorization?: string; /** Additional headers */ headers?: Record; } /** Configuration for a registered Pydantic AI agent */ export interface PydanticAIAgentConfig { /** Direct runner instance */ runner?: PydanticAIRunner; /** HTTP configuration (alternative to runner) */ http?: PydanticAIHttpConfig; /** JSON schema for expected result structure */ resultSchema?: Record; /** Model name (for metadata) */ model?: string; /** Dependencies to inject into each run */ defaultDeps?: Record; /** Per-invocation timeout in ms (default: 60000) */ timeoutMs?: number; } /** * Adapter for Pydantic AI structured agent framework. * * Supports both direct runners (for JS/Python bridges) and * HTTP endpoints (for remote Pydantic AI servers). */ export declare class PydanticAIAdapter extends BaseAdapter { readonly name = "pydantic-ai"; readonly version = "1.0.0"; private agents; get capabilities(): AdapterCapabilities; /** * Register a Pydantic AI agent (runner or HTTP-backed). */ registerPydanticAgent(agentId: string, config: PydanticAIAgentConfig): void; executeAgent(agentId: string, payload: AgentPayload, _context: AgentContext): Promise; private executeHttp; shutdown(): Promise; } //# sourceMappingURL=pydantic-ai-adapter.d.ts.map