/** * Protocols Module for PraisonAI TypeScript SDK * * Python parity with praisonaiagents protocols * * Provides: * - A2A (Agent-to-Agent) protocol types * - AGUI (Agent GUI) protocol types * - AutoRagAgent configuration * - Tools class * - Global singletons (config, memory, obs, workflows) * - Guardrail policy resolver */ /** * A2A Task state. * Python parity: praisonaiagents/ui/a2a/types.py */ export declare enum A2ATaskState { PENDING = "pending", RUNNING = "running", COMPLETED = "completed", FAILED = "failed", CANCELED = "canceled" } /** * A2A Role. * Python parity: praisonaiagents/ui/a2a/types.py */ export declare enum A2ARole { USER = "user", AGENT = "agent" } /** * A2A Text part. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2ATextPart { type: 'text'; text: string; } /** * A2A File part. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2AFilePart { type: 'file'; file: { name: string; mimeType: string; bytes?: string; uri?: string; }; } /** * A2A Data part. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2ADataPart { type: 'data'; data: Record; } export type A2APart = A2ATextPart | A2AFilePart | A2ADataPart; /** * A2A Message. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2AMessage { role: A2ARole; parts: A2APart[]; metadata?: Record; } /** * A2A Task status. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2ATaskStatus { state: A2ATaskState; message?: A2AMessage; timestamp?: string; } /** * A2A Task. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2ATask { id: string; sessionId?: string; status: A2ATaskStatus; artifacts?: A2AArtifact[]; history?: A2AMessage[]; metadata?: Record; } /** * A2A Artifact. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2AArtifact { name: string; description?: string; parts: A2APart[]; index?: number; append?: boolean; lastChunk?: boolean; metadata?: Record; } /** * A2A Agent skill. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2AAgentSkill { id: string; name: string; description?: string; tags?: string[]; examples?: string[]; inputModes?: string[]; outputModes?: string[]; } /** * A2A Agent capabilities. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2AAgentCapabilities { streaming?: boolean; pushNotifications?: boolean; stateTransitionHistory?: boolean; } /** * A2A Agent card. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2AAgentCard { name: string; description?: string; url: string; provider?: { organization: string; url?: string; }; version: string; documentationUrl?: string; capabilities?: A2AAgentCapabilities; authentication?: { schemes: string[]; credentials?: string; }; defaultInputModes?: string[]; defaultOutputModes?: string[]; skills?: A2AAgentSkill[]; } /** * A2A Send message request. * Python parity: praisonaiagents/ui/a2a/types.py */ export interface A2ASendMessageRequest { id: string; jsonrpc: '2.0'; method: 'message/send'; params: { id: string; sessionId?: string; message: A2AMessage; acceptedOutputModes?: string[]; pushNotificationConfig?: { url: string; token?: string; }; metadata?: Record; }; } /** * A2A class placeholder. * Python parity: praisonaiagents/ui/a2a/a2a.py */ export declare class A2A { private agentCard; constructor(config: { name: string; description?: string; url?: string; version?: string; skills?: A2AAgentSkill[]; }); getAgentCard(): A2AAgentCard; } /** * AGUI class placeholder. * Python parity: praisonaiagents/ui/agui/agui.py */ export declare class AGUI { private config; constructor(config: { name: string; description?: string; }); getName(): string; } /** * Retrieval policy for AutoRagAgent. * Python parity: praisonaiagents/agents/auto_rag_agent.py */ export declare enum RetrievalPolicy { AUTO = "auto", ALWAYS = "always", NEVER = "never" } /** * AutoRagAgent configuration. * Python parity: praisonaiagents/agents/auto_rag_agent.py */ export interface AutoRagAgentConfig { retrievalPolicy?: RetrievalPolicy; topK?: number; hybrid?: boolean; rerank?: boolean; includeCitations?: boolean; citationsMode?: 'append' | 'hidden' | 'none'; maxContextTokens?: number; autoKeywords?: Set; autoMinLength?: number; } /** * Default auto keywords for RAG retrieval. */ export declare const DEFAULT_AUTO_KEYWORDS: Set; /** * AutoRagAgent class. * Python parity: praisonaiagents/agents/auto_rag_agent.py */ export declare class AutoRagAgent { private config; constructor(config?: AutoRagAgentConfig); /** * Check if query should trigger retrieval. */ shouldRetrieve(query: string): boolean; getConfig(): AutoRagAgentConfig; } /** * Tool definition. */ export interface ToolDefinition { name: string; description: string; parameters?: Record; execute: (...args: any[]) => any | Promise; } /** * Tools registry class. * Python parity: praisonaiagents/tools */ export declare class Tools { private _tools; /** * Register a tool. */ register(tool: ToolDefinition): void; /** * Get a tool by name. */ get(name: string): ToolDefinition | undefined; /** * Check if tool exists. */ has(name: string): boolean; /** * List all tools. */ list(): ToolDefinition[]; /** * Remove a tool. */ remove(name: string): boolean; /** * Clear all tools. */ clear(): void; /** * Get tool count. */ get count(): number; } export declare const config: { get(key: string, defaultValue?: T): T | undefined; set(key: string, value: any): void; getAll(): Record; clear(): void; }; export declare const memory: { get(key: string): T | undefined; set(key: string, value: any): void; has(key: string): boolean; delete(key: string): boolean; clear(): void; keys(): string[]; size(): number; }; export declare const obs: { enable(provider?: any): void; disable(): void; isEnabled(): boolean; getProvider(): any; trace(name: string, data?: Record): void; span(name: string): { end: () => void; }; }; export declare const workflows: { register(name: string, workflow: any): void; get(name: string): any | undefined; has(name: string): boolean; list(): string[]; remove(name: string): boolean; clear(): void; }; /** * Guardrail policy. */ export interface GuardrailPolicy { name: string; action: 'block' | 'warn' | 'log' | 'allow'; conditions?: Record; message?: string; } /** * Resolve guardrail policies. * Python parity: praisonaiagents/config/resolvers.py */ export declare function resolveGuardrailPolicies(policies: (string | GuardrailPolicy)[]): GuardrailPolicy[]; /** * Guardrail policy presets. */ export declare const GUARDRAIL_POLICY_PRESETS: Record; /** * AgentManager is an alias for AgentTeam. * Python parity: praisonaiagents/agents/agents.py * * Note: This is exported from the main index.ts as an alias. * The actual AgentTeam class is in the agents module. */ export type AgentManager = any;