UNPKG

meld

Version:

Meld: A template language for LLM prompts

126 lines (113 loc) 3.4 kB
/** * @package * Interface for state debugging service. * * @remarks * Provides debugging capabilities by integrating state tracking, * history, and visualization services. Supports automated diagnostics * for failing tests and CLI-based state analysis. */ import { VisualizationConfig } from '../StateVisualizationService/IStateVisualizationService'; import { StateOperation } from '../StateHistoryService/IStateHistoryService'; import { StateMetadata } from '../StateTrackingService/IStateTrackingService'; /** * Configuration for state capture points */ export interface StateCaptureConfig { capturePoints: Array<'pre-transform' | 'post-transform' | 'pre-merge' | 'error'>; includeFields: Array<'nodes' | 'transformedNodes' | 'variables'>; format: 'full' | 'summary'; } /** * Diagnostic result from state analysis */ export interface StateDiagnostic { stateId: string; timestamp: number; type: 'error' | 'warning' | 'info'; message: string; context?: { operation?: StateOperation; metadata?: StateMetadata; location?: string; }; } /** * Debug session configuration */ export interface DebugSessionConfig { captureConfig: StateCaptureConfig; visualization?: VisualizationConfig; traceOperations?: boolean; collectMetrics?: boolean; } /** * Debug session result */ export interface DebugSessionResult { sessionId: string; startTime: number; endTime: number; diagnostics: StateDiagnostic[]; snapshots: Map<string, any>; metrics?: Record<string, number>; visualization?: string; } /** * Core state debugging service interface */ export interface IStateDebuggerService { /** * Start a new debug session * @param config - Debug session configuration * @returns Session ID */ startSession(config: DebugSessionConfig): string; /** * End the current debug session and get results * @param sessionId - The session to end * @returns Debug session results */ endSession(sessionId: string): Promise<DebugSessionResult>; /** * Analyze a state for potential issues * @param stateId - The state to analyze * @returns Array of diagnostics */ analyzeState(stateId: string): Promise<StateDiagnostic[]>; /** * Trace a state operation and capture debug info * @param stateId - The state being operated on * @param operation - Function performing the operation * @returns Operation result and debug info */ traceOperation<T>( stateId: string, operation: () => Promise<T> ): Promise<{ result: T; diagnostics: StateDiagnostic[] }>; /** * Get a snapshot of state at a specific point * @param stateId - The state to snapshot * @param format - Snapshot format ('full' | 'summary') * @returns State snapshot */ getStateSnapshot(stateId: string, format: 'full' | 'summary'): Promise<any>; /** * Generate a CLI-friendly debug report * @param sessionId - Debug session to report on * @returns Formatted debug report */ generateDebugReport(sessionId: string): Promise<string>; /** * Register a custom diagnostic analyzer * @param analyzer - Function to analyze state and return diagnostics */ registerAnalyzer( analyzer: (stateId: string) => Promise<StateDiagnostic[]> ): void; /** * Clear all debug data for a session * @param sessionId - Session to clear */ clearSession(sessionId: string): void; }