modestbench 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/LICENSE.md +55 -0
- package/README.md +699 -0
- package/dist/bootstrap.cjs +37 -0
- package/dist/bootstrap.cjs.map +1 -0
- package/dist/bootstrap.d.cts +17 -0
- package/dist/bootstrap.d.cts.map +1 -0
- package/dist/bootstrap.d.ts +17 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +33 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/cli/commands/history.cjs +459 -0
- package/dist/cli/commands/history.cjs.map +1 -0
- package/dist/cli/commands/history.d.cts +34 -0
- package/dist/cli/commands/history.d.cts.map +1 -0
- package/dist/cli/commands/history.d.ts +34 -0
- package/dist/cli/commands/history.d.ts.map +1 -0
- package/dist/cli/commands/history.js +422 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/init.cjs +566 -0
- package/dist/cli/commands/init.cjs.map +1 -0
- package/dist/cli/commands/init.d.cts +26 -0
- package/dist/cli/commands/init.d.cts.map +1 -0
- package/dist/cli/commands/init.d.ts +26 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +562 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/run.cjs +285 -0
- package/dist/cli/commands/run.cjs.map +1 -0
- package/dist/cli/commands/run.d.cts +37 -0
- package/dist/cli/commands/run.d.cts.map +1 -0
- package/dist/cli/commands/run.d.ts +37 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +248 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/index.cjs +523 -0
- package/dist/cli/index.cjs.map +1 -0
- package/dist/cli/index.d.cts +58 -0
- package/dist/cli/index.d.cts.map +1 -0
- package/dist/cli/index.d.ts +58 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +515 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config/manager.cjs +370 -0
- package/dist/config/manager.cjs.map +1 -0
- package/dist/config/manager.d.cts +46 -0
- package/dist/config/manager.d.cts.map +1 -0
- package/dist/config/manager.d.ts +46 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +333 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/config/schema.cjs +182 -0
- package/dist/config/schema.cjs.map +1 -0
- package/dist/config/schema.d.cts +51 -0
- package/dist/config/schema.d.cts.map +1 -0
- package/dist/config/schema.d.ts +51 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +145 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/constants.cjs +22 -0
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.cts +10 -0
- package/dist/constants.d.cts.map +1 -0
- package/dist/constants.d.ts +10 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +19 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/benchmark-schema.cjs +135 -0
- package/dist/core/benchmark-schema.cjs.map +1 -0
- package/dist/core/benchmark-schema.d.cts +139 -0
- package/dist/core/benchmark-schema.d.cts.map +1 -0
- package/dist/core/benchmark-schema.d.ts +139 -0
- package/dist/core/benchmark-schema.d.ts.map +1 -0
- package/dist/core/benchmark-schema.js +132 -0
- package/dist/core/benchmark-schema.js.map +1 -0
- package/dist/core/engine.cjs +669 -0
- package/dist/core/engine.cjs.map +1 -0
- package/dist/core/engine.d.cts +128 -0
- package/dist/core/engine.d.cts.map +1 -0
- package/dist/core/engine.d.ts +128 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +632 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/engines/accurate-engine.cjs +292 -0
- package/dist/core/engines/accurate-engine.cjs.map +1 -0
- package/dist/core/engines/accurate-engine.d.cts +63 -0
- package/dist/core/engines/accurate-engine.d.cts.map +1 -0
- package/dist/core/engines/accurate-engine.d.ts +63 -0
- package/dist/core/engines/accurate-engine.d.ts.map +1 -0
- package/dist/core/engines/accurate-engine.js +288 -0
- package/dist/core/engines/accurate-engine.js.map +1 -0
- package/dist/core/engines/index.cjs +21 -0
- package/dist/core/engines/index.cjs.map +1 -0
- package/dist/core/engines/index.d.cts +16 -0
- package/dist/core/engines/index.d.cts.map +1 -0
- package/dist/core/engines/index.d.ts +16 -0
- package/dist/core/engines/index.d.ts.map +1 -0
- package/dist/core/engines/index.js +16 -0
- package/dist/core/engines/index.js.map +1 -0
- package/dist/core/engines/tinybench-engine.cjs +286 -0
- package/dist/core/engines/tinybench-engine.cjs.map +1 -0
- package/dist/core/engines/tinybench-engine.d.cts +18 -0
- package/dist/core/engines/tinybench-engine.d.cts.map +1 -0
- package/dist/core/engines/tinybench-engine.d.ts +18 -0
- package/dist/core/engines/tinybench-engine.d.ts.map +1 -0
- package/dist/core/engines/tinybench-engine.js +282 -0
- package/dist/core/engines/tinybench-engine.js.map +1 -0
- package/dist/core/error-manager.cjs +303 -0
- package/dist/core/error-manager.cjs.map +1 -0
- package/dist/core/error-manager.d.cts +77 -0
- package/dist/core/error-manager.d.cts.map +1 -0
- package/dist/core/error-manager.d.ts +77 -0
- package/dist/core/error-manager.d.ts.map +1 -0
- package/dist/core/error-manager.js +299 -0
- package/dist/core/error-manager.js.map +1 -0
- package/dist/core/loader.cjs +287 -0
- package/dist/core/loader.cjs.map +1 -0
- package/dist/core/loader.d.cts +55 -0
- package/dist/core/loader.d.cts.map +1 -0
- package/dist/core/loader.d.ts +55 -0
- package/dist/core/loader.d.ts.map +1 -0
- package/dist/core/loader.js +250 -0
- package/dist/core/loader.js.map +1 -0
- package/dist/core/stats-utils.cjs +99 -0
- package/dist/core/stats-utils.cjs.map +1 -0
- package/dist/core/stats-utils.d.cts +50 -0
- package/dist/core/stats-utils.d.cts.map +1 -0
- package/dist/core/stats-utils.d.ts +50 -0
- package/dist/core/stats-utils.d.ts.map +1 -0
- package/dist/core/stats-utils.js +94 -0
- package/dist/core/stats-utils.js.map +1 -0
- package/dist/index.cjs +64 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +22 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/progress/manager.cjs +325 -0
- package/dist/progress/manager.cjs.map +1 -0
- package/dist/progress/manager.d.cts +125 -0
- package/dist/progress/manager.d.cts.map +1 -0
- package/dist/progress/manager.d.ts +125 -0
- package/dist/progress/manager.d.ts.map +1 -0
- package/dist/progress/manager.js +321 -0
- package/dist/progress/manager.js.map +1 -0
- package/dist/reporters/csv.cjs +250 -0
- package/dist/reporters/csv.cjs.map +1 -0
- package/dist/reporters/csv.d.cts +92 -0
- package/dist/reporters/csv.d.cts.map +1 -0
- package/dist/reporters/csv.d.ts +92 -0
- package/dist/reporters/csv.d.ts.map +1 -0
- package/dist/reporters/csv.js +246 -0
- package/dist/reporters/csv.js.map +1 -0
- package/dist/reporters/human.cjs +516 -0
- package/dist/reporters/human.cjs.map +1 -0
- package/dist/reporters/human.d.cts +86 -0
- package/dist/reporters/human.d.cts.map +1 -0
- package/dist/reporters/human.d.ts +86 -0
- package/dist/reporters/human.d.ts.map +1 -0
- package/dist/reporters/human.js +509 -0
- package/dist/reporters/human.js.map +1 -0
- package/dist/reporters/index.cjs +17 -0
- package/dist/reporters/index.cjs.map +1 -0
- package/dist/reporters/index.d.cts +10 -0
- package/dist/reporters/index.d.cts.map +1 -0
- package/dist/reporters/index.d.ts +10 -0
- package/dist/reporters/index.d.ts.map +1 -0
- package/dist/reporters/index.js +10 -0
- package/dist/reporters/index.js.map +1 -0
- package/dist/reporters/json.cjs +215 -0
- package/dist/reporters/json.cjs.map +1 -0
- package/dist/reporters/json.d.cts +79 -0
- package/dist/reporters/json.d.cts.map +1 -0
- package/dist/reporters/json.d.ts +79 -0
- package/dist/reporters/json.d.ts.map +1 -0
- package/dist/reporters/json.js +211 -0
- package/dist/reporters/json.js.map +1 -0
- package/dist/reporters/registry.cjs +255 -0
- package/dist/reporters/registry.cjs.map +1 -0
- package/dist/reporters/registry.d.cts +155 -0
- package/dist/reporters/registry.d.cts.map +1 -0
- package/dist/reporters/registry.d.ts +155 -0
- package/dist/reporters/registry.d.ts.map +1 -0
- package/dist/reporters/registry.js +249 -0
- package/dist/reporters/registry.js.map +1 -0
- package/dist/reporters/simple.cjs +328 -0
- package/dist/reporters/simple.cjs.map +1 -0
- package/dist/reporters/simple.d.cts +51 -0
- package/dist/reporters/simple.d.cts.map +1 -0
- package/dist/reporters/simple.d.ts +51 -0
- package/dist/reporters/simple.d.ts.map +1 -0
- package/dist/reporters/simple.js +321 -0
- package/dist/reporters/simple.js.map +1 -0
- package/dist/schema/modestbench-config.schema.json +162 -0
- package/dist/storage/history.cjs +456 -0
- package/dist/storage/history.cjs.map +1 -0
- package/dist/storage/history.d.cts +99 -0
- package/dist/storage/history.d.cts.map +1 -0
- package/dist/storage/history.d.ts +99 -0
- package/dist/storage/history.d.ts.map +1 -0
- package/dist/storage/history.js +452 -0
- package/dist/storage/history.js.map +1 -0
- package/dist/types/cli.cjs +21 -0
- package/dist/types/cli.cjs.map +1 -0
- package/dist/types/cli.d.cts +296 -0
- package/dist/types/cli.d.cts.map +1 -0
- package/dist/types/cli.d.ts +296 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +18 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/core.cjs +14 -0
- package/dist/types/core.cjs.map +1 -0
- package/dist/types/core.d.cts +380 -0
- package/dist/types/core.d.cts.map +1 -0
- package/dist/types/core.d.ts +380 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +13 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/index.cjs +27 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.cts +11 -0
- package/dist/types/index.d.cts.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/interfaces.cjs +10 -0
- package/dist/types/interfaces.cjs.map +1 -0
- package/dist/types/interfaces.d.cts +381 -0
- package/dist/types/interfaces.d.cts.map +1 -0
- package/dist/types/interfaces.d.ts +381 -0
- package/dist/types/interfaces.d.ts.map +1 -0
- package/dist/types/interfaces.js +9 -0
- package/dist/types/interfaces.js.map +1 -0
- package/dist/types/utility.cjs +92 -0
- package/dist/types/utility.cjs.map +1 -0
- package/dist/types/utility.d.cts +330 -0
- package/dist/types/utility.d.cts.map +1 -0
- package/dist/types/utility.d.ts +330 -0
- package/dist/types/utility.d.ts.map +1 -0
- package/dist/types/utility.js +78 -0
- package/dist/types/utility.js.map +1 -0
- package/package.json +211 -0
- package/src/bootstrap.ts +35 -0
- package/src/cli/commands/history.ts +569 -0
- package/src/cli/commands/init.ts +658 -0
- package/src/cli/commands/run.ts +346 -0
- package/src/cli/index.ts +642 -0
- package/src/config/manager.ts +387 -0
- package/src/config/schema.ts +188 -0
- package/src/constants.ts +21 -0
- package/src/core/benchmark-schema.ts +185 -0
- package/src/core/engine.ts +888 -0
- package/src/core/engines/accurate-engine.ts +408 -0
- package/src/core/engines/index.ts +16 -0
- package/src/core/engines/tinybench-engine.ts +335 -0
- package/src/core/error-manager.ts +372 -0
- package/src/core/loader.ts +324 -0
- package/src/core/stats-utils.ts +135 -0
- package/src/index.ts +46 -0
- package/src/progress/manager.ts +415 -0
- package/src/reporters/csv.ts +368 -0
- package/src/reporters/human.ts +707 -0
- package/src/reporters/index.ts +10 -0
- package/src/reporters/json.ts +302 -0
- package/src/reporters/registry.ts +349 -0
- package/src/reporters/simple.ts +459 -0
- package/src/storage/history.ts +600 -0
- package/src/types/cli.ts +312 -0
- package/src/types/core.ts +414 -0
- package/src/types/index.ts +18 -0
- package/src/types/interfaces.ts +451 -0
- package/src/types/utility.ts +446 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModestBench Interface Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract interfaces for all major components in the ModestBench
|
|
5
|
+
* system. These interfaces establish the public APIs that implementations must
|
|
6
|
+
* satisfy.
|
|
7
|
+
*/
|
|
8
|
+
import type { BenchmarkFile, BenchmarkRun, ErrorContext, ErrorStats, ExecutionError, FileResult, ModestBenchConfig, SuiteResult, TaskResult } from "./core.js";
|
|
9
|
+
/**
|
|
10
|
+
* Main benchmark engine interface
|
|
11
|
+
*/
|
|
12
|
+
export interface BenchmarkEngine {
|
|
13
|
+
/**
|
|
14
|
+
* Discover benchmark files matching patterns
|
|
15
|
+
*/
|
|
16
|
+
discover(pattern: string | string[], exclude?: string[]): Promise<string[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Execute benchmarks with the given configuration
|
|
19
|
+
*/
|
|
20
|
+
execute(config: RunConfiguration, reporters?: Reporter[], signal?: AbortSignal): Promise<BenchmarkRun>;
|
|
21
|
+
/**
|
|
22
|
+
* Get all registered reporters
|
|
23
|
+
*/
|
|
24
|
+
getReporters(): Record<string, Reporter>;
|
|
25
|
+
/**
|
|
26
|
+
* Register a reporter for benchmark output
|
|
27
|
+
*/
|
|
28
|
+
registerReporter(name: string, reporter: Reporter): void;
|
|
29
|
+
/**
|
|
30
|
+
* Validate benchmark files
|
|
31
|
+
*/
|
|
32
|
+
validate(files: string[]): Promise<ValidationResult>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Result of a cleanup operation
|
|
36
|
+
*/
|
|
37
|
+
export interface CleanupResult {
|
|
38
|
+
/** Amount of disk space freed in bytes */
|
|
39
|
+
readonly freedBytes: number;
|
|
40
|
+
/** Files that were removed */
|
|
41
|
+
readonly removedFiles: string[];
|
|
42
|
+
/** Number of runs removed */
|
|
43
|
+
readonly removedRuns: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Configuration management interface
|
|
47
|
+
*/
|
|
48
|
+
export interface ConfigurationManager {
|
|
49
|
+
/**
|
|
50
|
+
* Get default configuration values
|
|
51
|
+
*/
|
|
52
|
+
getDefaults(): ModestBenchConfig;
|
|
53
|
+
/**
|
|
54
|
+
* Load configuration from various sources
|
|
55
|
+
*/
|
|
56
|
+
load(configPath?: string, cliArgs?: Record<string, unknown>): Promise<ModestBenchConfig>;
|
|
57
|
+
/**
|
|
58
|
+
* Merge multiple configuration objects with precedence
|
|
59
|
+
*/
|
|
60
|
+
merge(...configs: Partial<ModestBenchConfig>[]): ModestBenchConfig;
|
|
61
|
+
/**
|
|
62
|
+
* Validate a configuration object
|
|
63
|
+
*/
|
|
64
|
+
validate(config: Partial<ModestBenchConfig>): ValidationResult;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* CSV output reporter interface
|
|
68
|
+
*/
|
|
69
|
+
export interface CsvReporter extends Reporter {
|
|
70
|
+
/** CSV delimiter character */
|
|
71
|
+
readonly delimiter: string;
|
|
72
|
+
/** Include CSV headers */
|
|
73
|
+
readonly includeHeaders: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Error management interface for handling execution errors
|
|
77
|
+
*/
|
|
78
|
+
export interface ErrorManager {
|
|
79
|
+
/**
|
|
80
|
+
* Clear error history
|
|
81
|
+
*/
|
|
82
|
+
clearStats(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Format error for display
|
|
85
|
+
*/
|
|
86
|
+
formatError(error: ExecutionError): string;
|
|
87
|
+
/**
|
|
88
|
+
* Get error code for a given error
|
|
89
|
+
*/
|
|
90
|
+
getErrorCode(error: Error, context: ErrorContext): string;
|
|
91
|
+
/**
|
|
92
|
+
* Get error statistics
|
|
93
|
+
*/
|
|
94
|
+
getStats(): ErrorStats;
|
|
95
|
+
/**
|
|
96
|
+
* Handle an execution error
|
|
97
|
+
*/
|
|
98
|
+
handleError(error: Error, context: ErrorContext): ExecutionError;
|
|
99
|
+
/**
|
|
100
|
+
* Check if an error is recoverable
|
|
101
|
+
*/
|
|
102
|
+
isRecoverable(error: ExecutionError): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Register error handler callback
|
|
105
|
+
*/
|
|
106
|
+
onError(handler: (error: ExecutionError) => void): void;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* File loader interface for benchmark discovery and loading
|
|
110
|
+
*/
|
|
111
|
+
export interface FileLoader {
|
|
112
|
+
/**
|
|
113
|
+
* Discover benchmark files matching patterns
|
|
114
|
+
*/
|
|
115
|
+
discover(pattern: string | string[], exclude?: string[]): Promise<string[]>;
|
|
116
|
+
/**
|
|
117
|
+
* Load a benchmark file
|
|
118
|
+
*/
|
|
119
|
+
load(filePath: string): Promise<BenchmarkFile>;
|
|
120
|
+
/**
|
|
121
|
+
* Validate a benchmark file
|
|
122
|
+
*/
|
|
123
|
+
validate(filePath: string): Promise<ValidationResult>;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Query interface for historical benchmark data
|
|
127
|
+
*/
|
|
128
|
+
export interface HistoryQuery {
|
|
129
|
+
/** Maximum number of results */
|
|
130
|
+
readonly limit?: number;
|
|
131
|
+
/** Results offset for pagination */
|
|
132
|
+
readonly offset?: number;
|
|
133
|
+
/** Pattern to match benchmark names */
|
|
134
|
+
readonly pattern?: string;
|
|
135
|
+
/** Start date for filtering */
|
|
136
|
+
readonly since?: Date;
|
|
137
|
+
/** Sort order */
|
|
138
|
+
readonly sort?: 'asc' | 'desc';
|
|
139
|
+
/** Field to sort by */
|
|
140
|
+
readonly sortBy?: 'date' | 'duration' | 'name';
|
|
141
|
+
/** Tags to filter by */
|
|
142
|
+
readonly tags?: string[];
|
|
143
|
+
/** End date for filtering */
|
|
144
|
+
readonly until?: Date;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Historical data storage interface
|
|
148
|
+
*/
|
|
149
|
+
export interface HistoryStorage {
|
|
150
|
+
/**
|
|
151
|
+
* Clean up old data according to retention policy
|
|
152
|
+
*/
|
|
153
|
+
cleanup(policy: RetentionPolicy): Promise<CleanupResult>;
|
|
154
|
+
/**
|
|
155
|
+
* Export historical data
|
|
156
|
+
*/
|
|
157
|
+
export(format: 'csv' | 'json', query?: HistoryQuery): Promise<string>;
|
|
158
|
+
/**
|
|
159
|
+
* Get index of all stored runs
|
|
160
|
+
*/
|
|
161
|
+
getIndex(): Promise<Array<{
|
|
162
|
+
date: Date;
|
|
163
|
+
id: string;
|
|
164
|
+
summary: string;
|
|
165
|
+
}>>;
|
|
166
|
+
/**
|
|
167
|
+
* Load a specific benchmark run
|
|
168
|
+
*/
|
|
169
|
+
loadRun(id: string): Promise<BenchmarkRun | null>;
|
|
170
|
+
/**
|
|
171
|
+
* Query historical runs
|
|
172
|
+
*/
|
|
173
|
+
queryRuns(query: HistoryQuery): Promise<BenchmarkRun[]>;
|
|
174
|
+
/**
|
|
175
|
+
* Save a benchmark run to storage
|
|
176
|
+
*/
|
|
177
|
+
saveRun(run: BenchmarkRun): Promise<void>;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Human-readable reporter interface
|
|
181
|
+
*/
|
|
182
|
+
export interface HumanReporter extends Reporter {
|
|
183
|
+
/** Displays progress bars */
|
|
184
|
+
readonly showProgress: boolean;
|
|
185
|
+
/** Uses colors and formatting for terminal output */
|
|
186
|
+
readonly supportsColor: boolean;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* JSON output reporter interface
|
|
190
|
+
*/
|
|
191
|
+
export interface JsonReporter extends Reporter {
|
|
192
|
+
/** Pretty-print JSON output */
|
|
193
|
+
readonly prettyPrint: boolean;
|
|
194
|
+
/** Supports streaming output */
|
|
195
|
+
readonly streaming: boolean;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Progress management interface
|
|
199
|
+
*/
|
|
200
|
+
export interface ProgressManager {
|
|
201
|
+
/**
|
|
202
|
+
* Clean up progress tracking resources
|
|
203
|
+
*/
|
|
204
|
+
cleanup(): void;
|
|
205
|
+
/**
|
|
206
|
+
* Estimate completion time
|
|
207
|
+
*/
|
|
208
|
+
estimateCompletion(): Date | null;
|
|
209
|
+
/**
|
|
210
|
+
* Force an immediate progress update (bypassing throttling)
|
|
211
|
+
*/
|
|
212
|
+
forceUpdate(): void;
|
|
213
|
+
/**
|
|
214
|
+
* Get current progress state
|
|
215
|
+
*/
|
|
216
|
+
getState(): ProgressState;
|
|
217
|
+
/**
|
|
218
|
+
* Initialize progress tracking for a benchmark run
|
|
219
|
+
*/
|
|
220
|
+
initialize(run: BenchmarkRun): void;
|
|
221
|
+
/**
|
|
222
|
+
* Register a callback for progress updates
|
|
223
|
+
*/
|
|
224
|
+
onProgress(callback: (state: ProgressState) => void): void;
|
|
225
|
+
/**
|
|
226
|
+
* Update progress state
|
|
227
|
+
*/
|
|
228
|
+
update(state: Partial<ProgressState>): void;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Progress tracking state
|
|
232
|
+
*/
|
|
233
|
+
export interface ProgressState {
|
|
234
|
+
/** Current file being processed */
|
|
235
|
+
readonly currentFile?: string;
|
|
236
|
+
/** Current suite being processed */
|
|
237
|
+
readonly currentSuite?: string;
|
|
238
|
+
/** Current task being processed */
|
|
239
|
+
readonly currentTask?: string;
|
|
240
|
+
/** Elapsed time in milliseconds */
|
|
241
|
+
readonly elapsed: number;
|
|
242
|
+
/** Number of files completed */
|
|
243
|
+
readonly filesCompleted: number;
|
|
244
|
+
/** Progress percentage (0-100) */
|
|
245
|
+
readonly percentage: number;
|
|
246
|
+
/** Number of suites completed */
|
|
247
|
+
readonly suitesCompleted: number;
|
|
248
|
+
/** Number of tasks completed */
|
|
249
|
+
readonly tasksCompleted: number;
|
|
250
|
+
/** Total number of files */
|
|
251
|
+
readonly totalFiles: number;
|
|
252
|
+
/** Total number of suites */
|
|
253
|
+
readonly totalSuites: number;
|
|
254
|
+
/** Total number of tasks */
|
|
255
|
+
readonly totalTasks: number;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Base reporter interface for benchmark output
|
|
259
|
+
*/
|
|
260
|
+
export interface Reporter {
|
|
261
|
+
/**
|
|
262
|
+
* Called when benchmark run completes
|
|
263
|
+
*/
|
|
264
|
+
onEnd(run: BenchmarkRun): Promise<void> | void;
|
|
265
|
+
/**
|
|
266
|
+
* Called when an error occurs
|
|
267
|
+
*/
|
|
268
|
+
onError(error: Error): Promise<void> | void;
|
|
269
|
+
/**
|
|
270
|
+
* Called when a file completes
|
|
271
|
+
*/
|
|
272
|
+
onFileEnd(result: FileResult): Promise<void> | void;
|
|
273
|
+
/**
|
|
274
|
+
* Called when a file starts execution
|
|
275
|
+
*/
|
|
276
|
+
onFileStart(file: string): Promise<void> | void;
|
|
277
|
+
/**
|
|
278
|
+
* Called for progress updates
|
|
279
|
+
*/
|
|
280
|
+
onProgress(state: ProgressState): Promise<void> | void;
|
|
281
|
+
/**
|
|
282
|
+
* Called when benchmark run starts
|
|
283
|
+
*/
|
|
284
|
+
onStart(run: BenchmarkRun): Promise<void> | void;
|
|
285
|
+
/**
|
|
286
|
+
* Called when a suite completes
|
|
287
|
+
*/
|
|
288
|
+
onSuiteEnd(result: SuiteResult): Promise<void> | void;
|
|
289
|
+
/**
|
|
290
|
+
* Called when a suite starts execution
|
|
291
|
+
*/
|
|
292
|
+
onSuiteStart(suite: string): Promise<void> | void;
|
|
293
|
+
/**
|
|
294
|
+
* Called when a task completes
|
|
295
|
+
*/
|
|
296
|
+
onTaskResult(result: TaskResult): Promise<void> | void;
|
|
297
|
+
/**
|
|
298
|
+
* Called when a task starts execution
|
|
299
|
+
*/
|
|
300
|
+
onTaskStart(task: string): Promise<void> | void;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Reporter registry interface
|
|
304
|
+
*/
|
|
305
|
+
export interface ReporterRegistry {
|
|
306
|
+
/**
|
|
307
|
+
* Get a reporter by name
|
|
308
|
+
*/
|
|
309
|
+
get(name: string): Reporter | undefined;
|
|
310
|
+
/**
|
|
311
|
+
* Get all registered reporters
|
|
312
|
+
*/
|
|
313
|
+
getAll(): Record<string, Reporter>;
|
|
314
|
+
/**
|
|
315
|
+
* Get reporters by multiple names
|
|
316
|
+
*/
|
|
317
|
+
getByNames(names: string[]): Reporter[];
|
|
318
|
+
/**
|
|
319
|
+
* Register a reporter
|
|
320
|
+
*/
|
|
321
|
+
register(name: string, reporter: Reporter): void;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Retention policy for historical data
|
|
325
|
+
*/
|
|
326
|
+
export interface RetentionPolicy {
|
|
327
|
+
/** Maximum age of data to keep */
|
|
328
|
+
readonly maxAge?: number;
|
|
329
|
+
/** Maximum number of runs to keep */
|
|
330
|
+
readonly maxRuns?: number;
|
|
331
|
+
/** Maximum size of history data in bytes */
|
|
332
|
+
readonly maxSize?: number;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Configuration for a benchmark run execution
|
|
336
|
+
*/
|
|
337
|
+
export interface RunConfiguration extends Partial<ModestBenchConfig> {
|
|
338
|
+
/** Working directory for execution */
|
|
339
|
+
readonly cwd?: string;
|
|
340
|
+
/** Environment variables to set */
|
|
341
|
+
readonly env?: Record<string, string>;
|
|
342
|
+
/** Files to execute (overrides pattern discovery) */
|
|
343
|
+
readonly files?: string[];
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* A validation error
|
|
347
|
+
*/
|
|
348
|
+
export interface ValidationError {
|
|
349
|
+
/** Error code for programmatic handling */
|
|
350
|
+
readonly code: string;
|
|
351
|
+
/** Column number where error occurred */
|
|
352
|
+
readonly column?: number;
|
|
353
|
+
/** File where error occurred */
|
|
354
|
+
readonly file: string;
|
|
355
|
+
/** Line number where error occurred */
|
|
356
|
+
readonly line?: number;
|
|
357
|
+
/** Error message */
|
|
358
|
+
readonly message: string;
|
|
359
|
+
/** Severity level */
|
|
360
|
+
readonly severity: 'error' | 'warning';
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Result of a validation operation
|
|
364
|
+
*/
|
|
365
|
+
export interface ValidationResult {
|
|
366
|
+
/** Validation errors found */
|
|
367
|
+
readonly errors: ValidationError[];
|
|
368
|
+
/** Files that were validated */
|
|
369
|
+
readonly files: string[];
|
|
370
|
+
/** Whether validation passed */
|
|
371
|
+
readonly valid: boolean;
|
|
372
|
+
/** Validation warnings */
|
|
373
|
+
readonly warnings: ValidationWarning[];
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* A validation warning
|
|
377
|
+
*/
|
|
378
|
+
export interface ValidationWarning extends ValidationError {
|
|
379
|
+
readonly severity: 'warning';
|
|
380
|
+
}
|
|
381
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModestBench Interface Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract interfaces for all major components in the ModestBench
|
|
5
|
+
* system. These interfaces establish the public APIs that implementations must
|
|
6
|
+
* satisfy.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ModestBench Utility Types
|
|
4
|
+
*
|
|
5
|
+
* Defines utility types, helper functions, and common type transformations used
|
|
6
|
+
* throughout the ModestBench system.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.unbrand = exports.brand = exports.assertDefined = exports.failure = exports.success = exports.isNonEmptyArray = exports.isInteger = exports.isNonNegativeNumber = exports.isPositiveNumber = exports.isNonEmptyString = exports.isDefined = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Type predicate for checking if value is not null or undefined
|
|
12
|
+
*/
|
|
13
|
+
const isDefined = (value) => {
|
|
14
|
+
return value !== null && value !== undefined;
|
|
15
|
+
};
|
|
16
|
+
exports.isDefined = isDefined;
|
|
17
|
+
/**
|
|
18
|
+
* Type predicate for checking if value is a non-empty string
|
|
19
|
+
*/
|
|
20
|
+
const isNonEmptyString = (value) => {
|
|
21
|
+
return typeof value === 'string' && value.length > 0;
|
|
22
|
+
};
|
|
23
|
+
exports.isNonEmptyString = isNonEmptyString;
|
|
24
|
+
/**
|
|
25
|
+
* Type predicate for checking if value is a positive number
|
|
26
|
+
*/
|
|
27
|
+
const isPositiveNumber = (value) => {
|
|
28
|
+
return typeof value === 'number' && value > 0 && !Number.isNaN(value);
|
|
29
|
+
};
|
|
30
|
+
exports.isPositiveNumber = isPositiveNumber;
|
|
31
|
+
/**
|
|
32
|
+
* Type predicate for checking if value is a non-negative number
|
|
33
|
+
*/
|
|
34
|
+
const isNonNegativeNumber = (value) => {
|
|
35
|
+
return typeof value === 'number' && value >= 0 && !Number.isNaN(value);
|
|
36
|
+
};
|
|
37
|
+
exports.isNonNegativeNumber = isNonNegativeNumber;
|
|
38
|
+
/**
|
|
39
|
+
* Type predicate for checking if value is an integer
|
|
40
|
+
*/
|
|
41
|
+
const isInteger = (value) => {
|
|
42
|
+
return typeof value === 'number' && Number.isInteger(value);
|
|
43
|
+
};
|
|
44
|
+
exports.isInteger = isInteger;
|
|
45
|
+
/**
|
|
46
|
+
* Type predicate for checking if array is non-empty
|
|
47
|
+
*/
|
|
48
|
+
const isNonEmptyArray = (value) => {
|
|
49
|
+
return value.length > 0;
|
|
50
|
+
};
|
|
51
|
+
exports.isNonEmptyArray = isNonEmptyArray;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a Result success value
|
|
54
|
+
*/
|
|
55
|
+
const success = (data) => ({
|
|
56
|
+
data,
|
|
57
|
+
success: true,
|
|
58
|
+
});
|
|
59
|
+
exports.success = success;
|
|
60
|
+
/**
|
|
61
|
+
* Creates a Result error value
|
|
62
|
+
*/
|
|
63
|
+
const failure = (error) => ({
|
|
64
|
+
error,
|
|
65
|
+
success: false,
|
|
66
|
+
});
|
|
67
|
+
exports.failure = failure;
|
|
68
|
+
/**
|
|
69
|
+
* Type assertion that a value is defined (throws if not)
|
|
70
|
+
*/
|
|
71
|
+
const assertDefined = (value, message) => {
|
|
72
|
+
if (!(0, exports.isDefined)(value)) {
|
|
73
|
+
throw new Error(message ?? 'Value is null or undefined');
|
|
74
|
+
}
|
|
75
|
+
return value;
|
|
76
|
+
};
|
|
77
|
+
exports.assertDefined = assertDefined;
|
|
78
|
+
/**
|
|
79
|
+
* Creates a branded type value
|
|
80
|
+
*/
|
|
81
|
+
const brand = (value) => {
|
|
82
|
+
return value;
|
|
83
|
+
};
|
|
84
|
+
exports.brand = brand;
|
|
85
|
+
/**
|
|
86
|
+
* Removes brand from a branded type
|
|
87
|
+
*/
|
|
88
|
+
const unbrand = (value) => {
|
|
89
|
+
return value;
|
|
90
|
+
};
|
|
91
|
+
exports.unbrand = unbrand;
|
|
92
|
+
//# sourceMappingURL=utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utility.js","sourceRoot":"","sources":["../../src/types/utility.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAiWH;;GAEG;AACI,MAAM,SAAS,GAAG,CAAI,KAA2B,EAAc,EAAE;IACtE,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEF;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAA2B,EAAE;IAC1E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEF;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAA2B,EAAE;IAC1E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEF;;GAEG;AACI,MAAM,mBAAmB,GAAG,CACjC,KAAc,EACc,EAAE;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEF;;GAEG;AACI,MAAM,SAAS,GAAG,CAAC,KAAc,EAAoB,EAAE;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEF;;GAEG;AACI,MAAM,eAAe,GAAG,CAAI,KAAU,EAA6B,EAAE;IAC1E,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEF;;GAEG;AACI,MAAM,OAAO,GAAG,CAAI,IAAO,EAAoB,EAAE,CAAC,CAAC;IACxD,IAAI;IACJ,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAHU,QAAA,OAAO,WAGjB;AAEH;;GAEG;AACI,MAAM,OAAO,GAAG,CAAI,KAAQ,EAAoB,EAAE,CAAC,CAAC;IACzD,KAAK;IACL,OAAO,EAAE,KAAK;CACf,CAAC,CAAC;AAHU,QAAA,OAAO,WAGjB;AAEH;;GAEG;AACI,MAAM,aAAa,GAAG,CAC3B,KAA2B,EAC3B,OAAgB,EACb,EAAE;IACL,IAAI,CAAC,IAAA,iBAAS,EAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,4BAA4B,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AARW,QAAA,aAAa,iBAQxB;AAEF;;GAEG;AACI,MAAM,KAAK,GAAG,CAA2B,KAAQ,EAAoB,EAAE;IAC5E,OAAO,KAAyB,CAAC;AACnC,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB;AAEF;;GAEG;AACI,MAAM,OAAO,GAAG,CACrB,KAAuB,EACpB,EAAE;IACL,OAAO,KAAU,CAAC;AACpB,CAAC,CAAC;AAJW,QAAA,OAAO,WAIlB"}
|