| 94 | } |
| 95 | |
| 96 | interface ExperimentState { |
| 97 | results: ExperimentResult[]; |
| 98 | /** Baseline primary metric (from first experiment in current segment) */ |
| 99 | bestMetric: number | null; |
| 100 | bestDirection: "lower" | "higher"; |
| 101 | metricName: string; |
| 102 | metricUnit: string; |
| 103 | /** Definitions for secondary metrics (order preserved) */ |
| 104 | secondaryMetrics: MetricDef[]; |
| 105 | name: string | null; |
| 106 | /** Current segment index (incremented on each init_experiment) */ |
| 107 | currentSegment: number; |
| 108 | /** Maximum number of experiments before auto-stopping. null = unlimited. */ |
| 109 | maxExperiments: number | null; |
| 110 | /** Current session confidence score (best improvement / noise floor). null if insufficient data. */ |
| 111 | confidence: number | null; |
| 112 | } |
| 113 | |
| 114 | interface RunDetails { |
| 115 | command: string; |
nothing calls this directly
no outgoing calls
no test coverage detected