/** * Trace Module for PraisonAI TypeScript SDK * * Python parity with praisonaiagents/trace module * * Provides: * - Context event types and interfaces * - Trace sink protocols * - Context trace emitter */ /** * Context event types. * Python parity: praisonaiagents/trace */ export declare enum ContextEventType { AGENT_START = "agent_start", AGENT_END = "agent_end", TOOL_START = "tool_start", TOOL_END = "tool_end", LLM_START = "llm_start", LLM_END = "llm_end", ERROR = "error", MESSAGE = "message", HANDOFF = "handoff", MEMORY_READ = "memory_read", MEMORY_WRITE = "memory_write" } /** * General event types. * Python parity: praisonaiagents/trace */ export declare enum EventType { START = "start", END = "end", ERROR = "error", INFO = "info", DEBUG = "debug", TRACE = "trace" } /** * Message types. * Python parity: praisonaiagents/trace */ export declare enum MessageType { USER = "user", ASSISTANT = "assistant", SYSTEM = "system", TOOL = "tool", FUNCTION = "function" } /** * Context event. * Python parity: praisonaiagents/trace */ export interface ContextEvent { type: ContextEventType; timestamp: Date; agentName?: string; toolName?: string; data?: Record; metadata?: Record; traceId?: string; spanId?: string; parentSpanId?: string; } /** * Create a context event. */ export declare function createContextEvent(type: ContextEventType, data?: Record): ContextEvent; /** * Trace sink protocol. * Python parity: praisonaiagents/trace */ export interface TraceSinkProtocol { emit(event: ContextEvent): void | Promise; flush?(): void | Promise; close?(): void | Promise; } /** * Context trace sink protocol. * Python parity: praisonaiagents/trace */ export interface ContextTraceSinkProtocol extends TraceSinkProtocol { onAgentStart?(agentName: string, input: string): void | Promise; onAgentEnd?(agentName: string, output: string): void | Promise; onToolStart?(toolName: string, args: any): void | Promise; onToolEnd?(toolName: string, result: any): void | Promise; onError?(error: Error, context?: any): void | Promise; } /** * Base trace sink. * Python parity: praisonaiagents/trace */ export declare class TraceSink implements TraceSinkProtocol { protected events: ContextEvent[]; emit(event: ContextEvent): void; flush(): void; close(): void; getEvents(): ContextEvent[]; clear(): void; } /** * Context trace sink with lifecycle hooks. * Python parity: praisonaiagents/trace */ export declare class ContextTraceSink extends TraceSink implements ContextTraceSinkProtocol { onAgentStart(agentName: string, input: string): void; onAgentEnd(agentName: string, output: string): void; onToolStart(toolName: string, args: any): void; onToolEnd(toolName: string, result: any): void; onError(error: Error, context?: any): void; } /** * List-based context sink for collecting events. * Python parity: praisonaiagents/trace */ export declare class ContextListSink extends ContextTraceSink { getEventsByType(type: ContextEventType): ContextEvent[]; getEventsByAgent(agentName: string): ContextEvent[]; getEventsByTool(toolName: string): ContextEvent[]; } /** * No-op context sink (discards all events). * Python parity: praisonaiagents/trace */ export declare class ContextNoOpSink implements ContextTraceSinkProtocol { emit(_event: ContextEvent): void; onAgentStart(_agentName: string, _input: string): void; onAgentEnd(_agentName: string, _output: string): void; onToolStart(_toolName: string, _args: any): void; onToolEnd(_toolName: string, _result: any): void; onError(_error: Error, _context?: any): void; } /** * Context trace emitter for broadcasting events to multiple sinks. * Python parity: praisonaiagents/trace */ export declare class ContextTraceEmitter { private sinks; /** * Add a sink. */ addSink(sink: TraceSinkProtocol): void; /** * Remove a sink. */ removeSink(sink: TraceSinkProtocol): boolean; /** * Emit an event to all sinks. */ emit(event: ContextEvent): Promise; /** * Emit agent start event. */ emitAgentStart(agentName: string, input: string): Promise; /** * Emit agent end event. */ emitAgentEnd(agentName: string, output: string): Promise; /** * Emit tool start event. */ emitToolStart(toolName: string, args: any): Promise; /** * Emit tool end event. */ emitToolEnd(toolName: string, result: any): Promise; /** * Emit error event. */ emitError(error: Error, context?: any): Promise; /** * Flush all sinks. */ flush(): Promise; /** * Close all sinks. */ close(): Promise; /** * Get sink count. */ get sinkCount(): number; } /** * Trace context for managing trace state. * Python parity: praisonaiagents/trace */ export interface TraceContext { traceId: string; spanId: string; parentSpanId?: string; startTime: Date; metadata?: Record; } /** * Create a new trace context. * Python parity: praisonaiagents/trace */ export declare function traceContext(metadata?: Record): TraceContext; /** * Track workflow execution. * Python parity: praisonaiagents/trace */ export declare function trackWorkflow(workflowName: string, emitter: ContextTraceEmitter): { start: () => Promise; end: (result?: any) => Promise; error: (error: Error) => Promise; };