/** * profiler.ts — Core execution profiling logic for pi.dev extension tools. * * Runs a tool multiple times, collects timing + memory metrics, * and detects statistical outliers via IQR. */ export interface ProfileResult { toolName: string; iterations: number; warmup: boolean; duration_ms: number; avg_duration_ms: number; min_duration_ms: number; max_duration_ms: number; p50_duration_ms: number; p95_duration_ms: number; p99_duration_ms: number; memory_delta_mb: number; cpu_usage_percent: number; outliers: OutlierInfo[]; raw_durations_ms: number[]; } export interface OutlierInfo { iteration: number; duration_ms: number; threshold_ms: number; } export interface ProfileOptions { toolName: string; args?: Record; iterations?: number; warmup?: boolean; /** Override for test injection */ executor?: (toolName: string, args?: Record) => Promise; } /** * Profile a pi.dev extension tool's execution. * * Runs warmup iterations (discarded) followed by measured iterations, * then computes statistics including percentiles and outlier detection. */ export declare function profileTool(options: ProfileOptions): Promise;