export interface RunMeta { agent?: string; task?: string; projectRoot?: string; mode?: string; runId?: string; source?: string; contextTokenCount?: number; relevanceFeedback?: "hit" | "partial" | "miss"; firstPassSuccess?: boolean; retryCount?: number; workflowName?: string; pluginName?: string; } export interface StepTrace { stepId?: string; name: string; startTime: number; endTime: number; duration: number; input: Record; output: Record; status: "pending" | "running" | "success" | "failed"; metadata?: { tokensUsed?: number; compressionRatio?: number; cacheHit?: boolean; toolName?: string; }; } export interface RunResult { status: "success" | "failed" | "canceled"; tokenUsed?: number; error?: string; } export interface FlattenedTrace { runId: string; steps: StepTrace[]; } export interface TimelineEvent { runId: string; stepName: string; startTime: number; endTime: number; duration: number; status: string; tokenUsed?: number; } export interface RunDetail { id?: string; workflow?: string; status?: string; meta: RunMeta; steps: StepTrace[]; totalDuration: number; tokenUsed: number; replay: FlattenedTrace; } export interface RunFilter { agent?: string; status?: string; since?: number; limit?: number; } export type EventKind = "llm_call" | "tool_use" | "memory_read" | "memory_write" | "file_read" | "file_write" | "bash_command" | "mcp_tool_call" | "error" | "user_input" | "step_start" | "step_end"; export interface TelemetryEvent { id: string; runId: string; stepId: string; kind: EventKind; timestamp: number; duration?: number; data: { model?: string; prompt?: string; response?: string; inputTokens?: number; outputTokens?: number; toolName?: string; toolInput?: unknown; toolOutput?: unknown; filePath?: string; lineRange?: { start: number; end: number; }; command?: string; exitCode?: number; stdout?: string; stderr?: string; mcpToolName?: string; mcpToolInput?: unknown; mcpToolOutput?: unknown; memoryKey?: string; memoryValue?: string; errorMessage?: string; errorStack?: string; userMessage?: string; }; metadata?: { source?: "claude-code" | "cursor" | "manual"; truncated?: boolean; }; sessionId?: string; toolUseId?: string; } export interface ToolCallTelemetryIdentity { sessionId: string; executionId: string; toolUseId?: string; } export type FailureCategory = "context_insufficient" | "knowledge_missing" | "workflow_design_issue" | "tool_error" | "agent_override" | "unknown"; export interface RoiSummary { period: { from: string; to: string; }; overview: { totalRuns: number; completedRuns: number; failedRuns: number; avgDuration: number; avgTokens: number; firstPassSuccessRate: number; feedbackHitRate: number; }; efficiency: { totalTokensSaved: number; avgTimePerTask: number; avgRetryCount: number; }; failures: { total: number; breakdown: Record; }; workflows: Array<{ name: string; runs: number; successRate: number; avgDuration: number; }>; plugins: Array<{ name: string; runs: number; successRate: number; }>; byDay: Array<{ date: string; runs: number; tokens: number; failures: number; }>; } export interface RunStats { totalEvents: number; llmCalls: number; totalTokens: number; toolUses: number; fileReads: number; fileWrites: number; bashCommands: number; errors: number; totalDuration: number; } export interface TelemetryStep { stepId: string; status: "pending" | "running" | "done" | "failed" | "skipped"; startedAt?: number; finishedAt?: number; output?: string; duration?: number; error?: string; } export interface TelemetryRun { id: string; source: string; tool?: string; workflow?: string; input: Record; status: "running" | "completed" | "failed" | "canceled"; startedAt: number; finishedAt: number | null; steps: TelemetryStep[]; metadata: Record; } //# sourceMappingURL=telemetry.d.ts.map