/** * Parity Module for PraisonAI TypeScript SDK * * Implements all remaining P0-P3 gaps for full Python SDK parity. * * IMPORTANT: Export names MUST match Python SDK exactly for parity tracker detection. * The parity tracker extracts export names from index.ts and compares them to Python SDK. * * Categories: * - P0: Specialized Agents & Configs (21 items) * - P1: Workflow Patterns (8 items) * - P2: Context & Telemetry (19 items) * - P3: Advanced Features (49 items) */ /** * AudioConfig - Configuration for audio processing. * Python parity: praisonaiagents/agent/audio_agent.py */ export interface AudioConfig { voice?: string; speed?: number; format?: 'mp3' | 'wav' | 'ogg' | 'flac'; sampleRate?: number; timeout?: number; apiBase?: string; apiKey?: string; } /** * CodeConfig - Configuration for code execution. * Python parity: praisonaiagents/agent/code_agent.py */ export interface CodeConfig { sandbox?: boolean; timeout?: number; allowedLanguages?: string[]; maxOutputLength?: number; workingDirectory?: string; environment?: Record; } /** * OCRConfig - Configuration for OCR processing. * Python parity: praisonaiagents/agent/ocr_agent.py */ export interface OCRConfig { includeImageBase64?: boolean; pages?: number[]; imageLimit?: number; timeout?: number; apiBase?: string; apiKey?: string; } /** * VisionConfig - Configuration for vision processing. * Python parity: praisonaiagents/agent/vision_agent.py */ export interface VisionConfig { detail?: 'low' | 'high' | 'auto'; maxTokens?: number; timeout?: number; apiBase?: string; apiKey?: string; } /** * VideoConfig - Configuration for video processing. * Python parity: praisonaiagents/agent/video_agent.py */ export interface VideoConfig { frameRate?: number; maxFrames?: number; resolution?: string; timeout?: number; apiBase?: string; apiKey?: string; } /** * RealtimeConfig - Configuration for realtime agents. * Python parity: praisonaiagents/agent/realtime_agent.py */ export interface RealtimeConfig { voice?: string; turnDetection?: 'server_vad' | 'none'; inputAudioFormat?: string; outputAudioFormat?: string; temperature?: number; maxResponseTokens?: number; } /** * CodeAgent - Agent for code generation and execution. * Python parity: praisonaiagents/agent/code_agent.py */ export declare class CodeAgent { name: string; llm: string; instructions?: string; verbose: boolean; private _codeConfig; constructor(config?: { name?: string; llm?: string; code?: boolean | CodeConfig; instructions?: string; verbose?: boolean; }); generate(prompt: string): Promise; execute(code: string): Promise; review(code: string): Promise; } /** * CodeExecutionStep - Result of code execution. * Python parity: praisonaiagents/agent/code_agent.py */ export interface CodeExecutionStep { code: string; output: string; success: boolean; language: string; error?: string; duration?: number; } /** * OCRAgent - Agent for OCR processing. * Python parity: praisonaiagents/agent/ocr_agent.py */ export declare class OCRAgent { name: string; llm: string; instructions?: string; verbose: boolean; private _ocrConfig; constructor(config?: { name?: string; llm?: string; ocr?: boolean | OCRConfig; instructions?: string; verbose?: boolean; }); extract(source: string): Promise<{ text: string; pages: any[]; }>; } /** * VisionAgent - Agent for image analysis. * Python parity: praisonaiagents/agent/vision_agent.py */ export declare class VisionAgent { name: string; llm: string; instructions?: string; verbose: boolean; private _visionConfig; constructor(config?: { name?: string; llm?: string; vision?: boolean | VisionConfig; instructions?: string; verbose?: boolean; }); describe(imageUrl: string): Promise; analyze(imageUrl: string, prompt?: string): Promise; compare(images: string[]): Promise; extractText(imageUrl: string): Promise; } /** * VideoAgent - Agent for video processing. * Python parity: praisonaiagents/agent/video_agent.py */ export declare class VideoAgent { name: string; llm: string; instructions?: string; verbose: boolean; private _videoConfig; constructor(config?: { name?: string; llm?: string; video?: boolean | VideoConfig; instructions?: string; verbose?: boolean; }); analyze(videoUrl: string, prompt?: string): Promise; summarize(videoUrl: string): Promise; } /** * RealtimeAgent - Agent for realtime voice interactions. * Python parity: praisonaiagents/agent/realtime_agent.py */ export declare class RealtimeAgent { name: string; llm: string; instructions?: string; verbose: boolean; private _realtimeConfig; constructor(config?: { name?: string; llm?: string; realtime?: boolean | RealtimeConfig; instructions?: string; verbose?: boolean; }); connect(): Promise; disconnect(): Promise; } /** * EmbeddingAgent - Agent for generating embeddings. * Python parity: praisonaiagents/agent/embedding_agent.py */ export declare class EmbeddingAgent { name: string; llm: string; instructions?: string; verbose: boolean; constructor(config?: { name?: string; llm?: string; instructions?: string; verbose?: boolean; }); embed(text: string): Promise; embedBatch(texts: string[]): Promise; } /** * MCPCall - MCP tool call result. * Python parity: praisonaiagents/agent/agent.py */ export interface MCPCall { id: string; name: string; arguments: Record; result?: any; error?: string; } /** * WebSearchCall - Web search call result. * Python parity: praisonaiagents/agent/agent.py */ export interface WebSearchCall { id: string; query: string; results: Array<{ title: string; url: string; snippet: string; }>; } /** * FileSearchCall - File search call result. * Python parity: praisonaiagents/agent/agent.py */ export interface FileSearchCall { id: string; query: string; files: Array<{ path: string; content: string; score: number; }>; } /** * DeepResearchResponse - Deep research response. * Python parity: praisonaiagents/agent/deep_research.py */ export interface DeepResearchResponse { query: string; summary: string; sources: Array<{ title: string; url: string; relevance: number; }>; sections: Array<{ title: string; content: string; }>; } /** * Provider - LLM provider type. * Python parity: praisonaiagents/llm */ export type Provider = 'openai' | 'anthropic' | 'google' | 'mistral' | 'groq' | 'together' | 'ollama' | 'azure' | 'bedrock' | 'custom'; /** * Create a context agent for handoff. * Python parity: praisonaiagents/agent/handoff.py */ export declare function createContextAgent(config: { name: string; instructions?: string; tools?: any[]; handoffs?: any[]; }): any; /** * Handoff filters for agent handoff. * Python parity: praisonaiagents/agent/handoff.py */ export declare const handoffFilters: { /** * Filter to remove tool calls from handoff. */ removeToolCalls: (messages: any[]) => any[]; /** * Filter to keep only last N messages. */ keepLastN: (n: number) => (messages: any[]) => any[]; /** * Filter to remove system messages. */ removeSystemMessages: (messages: any[]) => any[]; }; /** * Generate prompt with handoff instructions. * Python parity: praisonaiagents/agent/handoff.py */ export declare function promptWithHandoffInstructions(basePrompt: string, handoffs: Array<{ name: string; description?: string; }>): string; /** * Loop workflow pattern. * Python parity: praisonaiagents/workflows/workflows.py */ export declare class Loop { private agents; private maxIterations; private condition?; constructor(config: { agents: any[]; maxIterations?: number; condition?: (result: any, iteration: number) => boolean; }); run(input: string): Promise; } /** * Parallel workflow pattern. * Python parity: praisonaiagents/workflows/workflows.py */ export declare class Parallel { private agents; constructor(config: { agents: any[]; }); run(input: string): Promise; } /** * Route workflow pattern. * Python parity: praisonaiagents/workflows/workflows.py */ export declare class Route { private routes; private defaultAgent?; private router; constructor(config: { routes: Record; default?: any; router: (input: string) => string; }); run(input: string): Promise; } /** * If workflow pattern (conditional). * Python parity: praisonaiagents/workflows/workflows.py */ export declare class If { private condition; private thenAgent; private elseAgent?; constructor(config: { condition: (input: any) => boolean; then: any; else?: any; }); run(input: string): Promise; } /** * When helper for conditional workflows. * Python parity: praisonaiagents/workflows/workflows.py */ export declare function when(condition: (input: any) => boolean, thenAgent: any, elseAgent?: any): If; /** * Chunking class for text splitting. * Python parity: praisonaiagents/knowledge/chunking.py */ export declare class Chunking { private chunkSize; private chunkOverlap; private separator; constructor(config?: { chunkSize?: number; chunkOverlap?: number; separator?: string; }); split(text: string): string[]; } /** * Knowledge class for knowledge base management. * Python parity: praisonaiagents/knowledge/knowledge.py */ export declare class Knowledge { private sources; private chunking; constructor(config?: { sources?: string[]; chunkSize?: number; chunkOverlap?: number; }); add(source: string): Promise; search(query: string, topK?: number): Promise; } /** * Session class for session management. * Python parity: praisonaiagents/session/session.py */ export declare class Session { id: string; private messages; private metadata; constructor(config?: { id?: string; metadata?: Record; }); addMessage(message: any): void; getMessages(): any[]; clear(): void; setMetadata(key: string, value: any): void; getMetadata(key: string): any; } /** * ContextConfig - Configuration for context management. * Python parity: praisonaiagents/context/fast.py */ export interface ContextConfig { maxTokens?: number; strategy?: 'truncate' | 'summarize' | 'sliding'; preserveSystemPrompt?: boolean; } /** * ContextManager - Manages conversation context. * Python parity: praisonaiagents/context/fast.py */ export declare class ContextManager { private config; private messages; constructor(config?: ContextConfig); add(message: any): void; getOptimized(): any[]; clear(): void; } /** * ContextPack - Packed context for RAG. * Python parity: praisonaiagents/rag/rag.py */ export interface ContextPack { query: string; context: string; sources: Array<{ content: string; metadata: Record; score: number; }>; } /** * FastContext - Fast context retrieval. * Python parity: praisonaiagents/context/fast.py */ export declare class FastContext { private directory; private extensions; constructor(config: { directory: string; extensions?: string[]; }); search(query: string): Promise; } /** * LineRange - Range of lines in a file. * Python parity: praisonaiagents/context/fast.py */ export interface LineRange { file: string; startLine: number; endLine: number; content: string; score: number; } /** * GuardrailResult - Result of guardrail check. * Python parity: praisonaiagents/guardrails/guardrails.py */ export interface GuardrailResult { passed: boolean; action: 'allow' | 'block' | 'warn' | 'modify'; message?: string; modifiedContent?: string; } /** * MCP - Model Context Protocol client. * Python parity: praisonaiagents/mcp/mcp.py */ export declare class MCP { private servers; constructor(); connect(name: string, config: any): Promise; disconnect(name: string): Promise; callTool(server: string, tool: string, args: any): Promise; listServers(): string[]; } /** * ManagerConfig - Configuration for agent manager. * Python parity: praisonaiagents/agents/agents.py */ export interface ManagerConfig { verbose?: boolean; process?: 'sequential' | 'parallel' | 'hierarchical'; managerLlm?: string; maxIterations?: number; } /** * MinimalTelemetry - Minimal telemetry collector. * Python parity: praisonaiagents/telemetry/telemetry.py */ export declare class MinimalTelemetry { private enabled; private events; constructor(enabled?: boolean); track(event: string, data?: Record): void; getEvents(): any[]; clear(): void; } /** * OptimizerStrategy - Strategy for context optimization. * Python parity: praisonaiagents/context/fast.py */ export type OptimizerStrategy = 'truncate' | 'summarize' | 'sliding' | 'semantic'; /** * Plan - Execution plan. * Python parity: praisonaiagents/planning/planning.py */ export declare class Plan { id: string; steps: PlanStep[]; status: 'pending' | 'running' | 'completed' | 'failed'; constructor(config?: { id?: string; steps?: PlanStep[]; }); addStep(step: PlanStep): void; execute(): Promise; } /** * PlanStep - Step in an execution plan. * Python parity: praisonaiagents/planning/planning.py */ export interface PlanStep { id: string; description: string; status: 'pending' | 'running' | 'completed' | 'failed'; result?: any; dependencies?: string[]; } /** * SkillLoader - Loads skills from files. * Python parity: praisonaiagents/skills/loader.py */ export declare class SkillLoader { private directories; constructor(directories?: string[]); load(name: string): Promise; loadAll(): Promise; addDirectory(dir: string): void; } /** * ApprovalCallback - Callback for approval requests. * Python parity: praisonaiagents/planning/planning.py */ export type ApprovalCallback = (request: { action: string; description: string; data?: any; }) => Promise; /** * Enable telemetry collection. * Python parity: praisonaiagents/telemetry */ export declare function enableTelemetry(): void; /** * Disable telemetry collection. * Python parity: praisonaiagents/telemetry */ export declare function disableTelemetry(): void; /** * Get telemetry collector. * Python parity: praisonaiagents/telemetry */ export declare function getTelemetry(): MinimalTelemetry | null; /** * Enable performance mode. * Python parity: praisonaiagents/telemetry */ export declare function enablePerformanceMode(): void; /** * Disable performance mode. * Python parity: praisonaiagents/telemetry */ export declare function disablePerformanceMode(): void; /** * Cleanup telemetry resources. * Python parity: praisonaiagents/telemetry */ export declare function cleanupTelemetryResources(): void; type DisplayCallback = (data: any) => void | Promise; /** * Register a display callback. * Python parity: praisonaiagents/main.py */ export declare function registerDisplayCallback(callback: DisplayCallback, async_?: boolean): void; /** * Get sync display callbacks. * Python parity: praisonaiagents/main.py */ export declare function syncDisplayCallbacks(): DisplayCallback[]; /** * Get async display callbacks. * Python parity: praisonaiagents/main.py */ export declare function asyncDisplayCallbacks(): DisplayCallback[]; /** * Display error message. * Python parity: praisonaiagents/main.py */ export declare function displayError(message: string): void; /** * Display generating message. * Python parity: praisonaiagents/main.py */ export declare function displayGenerating(agentName: string): void; /** * Display instruction message. * Python parity: praisonaiagents/main.py */ export declare function displayInstruction(instruction: string): void; /** * Display interaction message. * Python parity: praisonaiagents/main.py */ export declare function displayInteraction(from: string, to: string, message: string): void; /** * Display self reflection message. * Python parity: praisonaiagents/main.py */ export declare function displaySelfReflection(agentName: string, reflection: string): void; /** * Display tool call message. * Python parity: praisonaiagents/main.py */ export declare function displayToolCall(toolName: string, args: any): void; /** * Get error logs. * Python parity: praisonaiagents/main.py */ export declare function errorLogs(): string[]; /** * Plugin class. * Python parity: praisonaiagents/plugins */ export declare class Plugin { name: string; version: string; description?: string; hooks: PluginHook[]; constructor(config: { name: string; version?: string; description?: string; hooks?: PluginHook[]; }); } /** * PluginHook - Hook for plugin. * Python parity: praisonaiagents/plugins */ export interface PluginHook { event: string; handler: (...args: any[]) => any; priority?: number; } /** * PluginMetadata - Metadata for plugin. * Python parity: praisonaiagents/plugins */ export interface PluginMetadata { name: string; version: string; author?: string; description?: string; dependencies?: string[]; } /** * Get plugin manager. * Python parity: praisonaiagents/plugins */ export declare function getPluginManager(): any; /** * Get default plugin directories. * Python parity: praisonaiagents/plugins */ export declare function getDefaultPluginDirs(): string[]; /** * Ensure plugin directory exists. * Python parity: praisonaiagents/plugins */ export declare function ensurePluginDir(dir: string): void; /** * Get plugin template. * Python parity: praisonaiagents/plugins */ export declare function getPluginTemplate(): string; /** * Load plugin from file. * Python parity: praisonaiagents/plugins */ export declare function loadPlugin(path: string): Promise; /** * Parse plugin header. * Python parity: praisonaiagents/plugins */ export declare function parsePluginHeader(content: string): PluginMetadata | null; /** * Parse plugin header from file. * Python parity: praisonaiagents/plugins */ export declare function parsePluginHeaderFromFile(path: string): Promise; /** * Discover plugins in directories. * Python parity: praisonaiagents/plugins */ export declare function discoverPlugins(dirs?: string[]): Promise; /** * Discover and load plugins. * Python parity: praisonaiagents/plugins */ export declare function discoverAndLoadPlugins(dirs?: string[]): Promise; /** * TraceSink - Sink for trace events. * Python parity: praisonaiagents/trace */ export declare class TraceSink { private events; constructor(); emit(event: any): void; getEvents(): any[]; clear(): void; } /** * ContextEvent - Context event type. * Python parity: praisonaiagents/trace */ export interface ContextEvent { type: ContextEventType; timestamp: number; agentName?: string; data?: Record; } /** * ContextEventType - Types of context events. * Python parity: praisonaiagents/trace */ export declare enum ContextEventType { AGENT_START = "agent_start", AGENT_END = "agent_end", TOOL_CALL = "tool_call", TOOL_RESULT = "tool_result", LLM_REQUEST = "llm_request", LLM_RESPONSE = "llm_response", ERROR = "error", HANDOFF = "handoff" } /** * ConditionProtocol - Protocol for conditions. * Python parity: praisonaiagents/conditions */ export interface ConditionProtocol { evaluate(context: any): boolean; } /** * DictCondition - Dictionary-based condition. * Python parity: praisonaiagents/conditions */ export declare class DictCondition implements ConditionProtocol { private conditions; constructor(conditions: Record); evaluate(context: any): boolean; } /** * Evaluate a condition. * Python parity: praisonaiagents/conditions */ export declare function evaluateCondition(condition: ConditionProtocol | Record | ((ctx: any) => boolean), context: any): boolean; /** * EmbeddingResult - Result of embedding operation. * Python parity: praisonaiagents/embedding */ export interface EmbeddingResult { embedding: number[]; model: string; usage?: { promptTokens: number; totalTokens: number; }; } /** * Get embedding dimensions. * Python parity: praisonaiagents/embedding */ export declare function getDimensions(model: string): number; /** * Embed text. * Python parity: praisonaiagents/embedding */ export declare function embed(text: string, model?: string): Promise; /** * FlowDisplay - Display for workflow execution. * Python parity: praisonaiagents/flow_display */ export declare class FlowDisplay { private steps; constructor(); addStep(step: any): void; render(): string; } /** * Track workflow execution. * Python parity: praisonaiagents/flow_display */ export declare function trackWorkflow(name: string): FlowDisplay; /** * FailoverManager - Manages LLM failover. * Python parity: praisonaiagents/llm/failover.py */ export declare class FailoverManager { private providers; private currentIndex; constructor(providers: string[]); getCurrentProvider(): string; failover(): string | null; reset(): void; } /** * ProviderStatus - Status of an LLM provider. * Python parity: praisonaiagents/llm/failover.py */ export interface ProviderStatus { name: string; available: boolean; latency?: number; errorCount: number; lastError?: string; } /** * SandboxStatus - Status of sandbox execution. * Python parity: praisonaiagents/sandbox */ export declare enum SandboxStatus { IDLE = "idle", RUNNING = "running", COMPLETED = "completed", FAILED = "failed", TIMEOUT = "timeout" } /** * Task - Task for workflow execution. * Python parity: praisonaiagents/task/task.py */ export declare class Task { name: string; description: string; expectedOutput?: string; agent?: any; dependencies?: Task[]; constructor(config: { name: string; description: string; expectedOutput?: string; agent?: any; dependencies?: Task[]; }); } /** * GatewayConfig - Configuration for gateway. * Python parity: praisonaiagents/gateway */ export interface GatewayConfig { url: string; apiKey?: string; timeout?: number; retries?: number; } /** * BotConfig - Configuration for bot. * Python parity: praisonaiagents/bots */ export interface BotConfig { name: string; token?: string; prefix?: string; channels?: string[]; } /** * MEMORY_PRESETS - Memory configuration presets. * Python parity: praisonaiagents/config/presets.py */ export declare const MEMORY_PRESETS: Record; /** * MemoryBackend - Backend for memory storage. * Python parity: praisonaiagents/memory */ export declare enum MemoryBackend { IN_MEMORY = "in_memory", FILE = "file", SQLITE = "sqlite", REDIS = "redis", CHROMA = "chroma" } /** * ConfigValidationError - Error for config validation. * Python parity: praisonaiagents/config */ export declare class ConfigValidationError extends Error { field: string; value: any; constructor(field: string, value: any, message: string); } /** * Detect URL scheme. * Python parity: praisonaiagents/config */ export declare function detectUrlScheme(url: string): string; /** * Resolve configuration. * Python parity: praisonaiagents/config/param_resolver.py */ export declare function resolve(value: T | string | boolean | undefined, presets: Record, defaultValue: T): T; /** * Resolve guardrail policies. * Python parity: praisonaiagents/config/resolvers.py */ export declare function resolveGuardrailPolicies(policies: (string | any)[]): any[]; /** * Trace context. * Python parity: praisonaiagents/trace */ export declare function traceContext(name: string): TraceSink; /** * AGUI - Agent GUI protocol. * Python parity: praisonaiagents/ui/agui */ export declare class AGUI { private config; constructor(config: { name: string; description?: string; }); getName(): string; getRouter(): any; } /** * AgentManager - Alias for AgentTeam. * Python parity: praisonaiagents/agents/agents.py */ export type AgentManager = any; /** * Register a display callback. * Python parity: praisonaiagents/main.py */ export declare function register_display_callback(callback: (data: any) => void): void; /** * Sync display callbacks. * Python parity: praisonaiagents/main.py */ export declare function sync_display_callbacks(): ((data: any) => void)[]; /** * Async display callbacks. * Python parity: praisonaiagents/main.py */ export declare function async_display_callbacks(): ((data: any) => void | Promise)[]; /** * Display error. * Python parity: praisonaiagents/main.py */ export declare function display_error(error: string | Error): void; /** * Display generating. * Python parity: praisonaiagents/main.py */ export declare function display_generating(agent: string, task?: string): void; /** * Display instruction. * Python parity: praisonaiagents/main.py */ export declare function display_instruction(instruction: string): void; /** * Display interaction. * Python parity: praisonaiagents/main.py */ export declare function display_interaction(from: string, to: string, message: string): void; /** * Display self reflection. * Python parity: praisonaiagents/main.py */ export declare function display_self_reflection(agent: string, reflection: string): void; /** * Display tool call. * Python parity: praisonaiagents/main.py */ export declare function display_tool_call(tool: string, args: any, result?: any): void; /** * Error logs. * Python parity: praisonaiagents/main.py */ export declare function error_logs(): string[]; /** * Get plugin manager. * Python parity: praisonaiagents/plugins */ export declare function get_plugin_manager(): { plugins: Map; dirs: string[]; }; /** * Get default plugin dirs. * Python parity: praisonaiagents/plugins */ export declare function get_default_plugin_dirs(): string[]; /** * Ensure plugin dir exists. * Python parity: praisonaiagents/plugins */ export declare function ensure_plugin_dir(dir: string): boolean; /** * Get plugin template. * Python parity: praisonaiagents/plugins */ export declare function get_plugin_template(name: string): string; /** * Load plugin. * Python parity: praisonaiagents/plugins */ export declare function load_plugin(path: string): Promise; /** * Parse plugin header. * Python parity: praisonaiagents/plugins */ export declare function parse_plugin_header(content: string): { name?: string; version?: string; description?: string; }; /** * Parse plugin header from file. * Python parity: praisonaiagents/plugins */ export declare function parse_plugin_header_from_file(path: string): Promise<{ name?: string; version?: string; description?: string; }>; /** * Discover plugins. * Python parity: praisonaiagents/plugins */ export declare function discover_plugins(dirs?: string[]): Promise; /** * Discover and load plugins. * Python parity: praisonaiagents/plugins */ export declare function discover_and_load_plugins(dirs?: string[]): Promise; /** * Evaluate condition. * Python parity: praisonaiagents/conditions/evaluator.py */ export declare function evaluate_condition(condition: any, context: Record): boolean; /** * Get dimensions for embeddings. * Python parity: praisonaiagents/embedding/dimensions.py */ export declare function get_dimensions(model: string): number; /** * Track workflow execution. * Python parity: praisonaiagents/flow_display.py */ export declare function track_workflow(name: string, steps: string[]): { name: string; steps: string[]; startTime: number; }; /** * Resolve guardrail policies. * Python parity: praisonaiagents/config/resolvers.py */ export declare function resolve_guardrail_policies(policies: (string | any)[]): any[]; /** * Trace context manager. * Python parity: praisonaiagents/trace */ export declare function trace_context(name: string): TraceSink; export {};