modestbench 0.2.0 → 0.3.0

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.
Files changed (332) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +131 -34
  3. package/dist/cli/commands/analyze.cjs +60 -0
  4. package/dist/cli/commands/analyze.cjs.map +1 -0
  5. package/dist/cli/commands/analyze.d.cts +35 -0
  6. package/dist/cli/commands/analyze.d.cts.map +1 -0
  7. package/dist/cli/commands/analyze.d.ts +35 -0
  8. package/dist/cli/commands/analyze.d.ts.map +1 -0
  9. package/dist/cli/commands/analyze.js +56 -0
  10. package/dist/cli/commands/analyze.js.map +1 -0
  11. package/dist/cli/commands/baseline.cjs +404 -0
  12. package/dist/cli/commands/baseline.cjs.map +1 -0
  13. package/dist/cli/commands/baseline.d.cts +72 -0
  14. package/dist/cli/commands/baseline.d.cts.map +1 -0
  15. package/dist/cli/commands/baseline.d.ts +72 -0
  16. package/dist/cli/commands/baseline.d.ts.map +1 -0
  17. package/dist/cli/commands/baseline.js +396 -0
  18. package/dist/cli/commands/baseline.js.map +1 -0
  19. package/dist/cli/commands/history.d.cts +1 -1
  20. package/dist/cli/commands/history.d.cts.map +1 -1
  21. package/dist/cli/commands/history.d.ts +1 -1
  22. package/dist/cli/commands/history.d.ts.map +1 -1
  23. package/dist/cli/commands/init.cjs +88 -155
  24. package/dist/cli/commands/init.cjs.map +1 -1
  25. package/dist/cli/commands/init.d.cts +4 -4
  26. package/dist/cli/commands/init.d.cts.map +1 -1
  27. package/dist/cli/commands/init.d.ts +4 -4
  28. package/dist/cli/commands/init.d.ts.map +1 -1
  29. package/dist/cli/commands/init.js +88 -155
  30. package/dist/cli/commands/init.js.map +1 -1
  31. package/dist/cli/commands/run.cjs +132 -114
  32. package/dist/cli/commands/run.cjs.map +1 -1
  33. package/dist/cli/commands/run.d.cts +16 -3
  34. package/dist/cli/commands/run.d.cts.map +1 -1
  35. package/dist/cli/commands/run.d.ts +16 -3
  36. package/dist/cli/commands/run.d.ts.map +1 -1
  37. package/dist/cli/commands/run.js +131 -80
  38. package/dist/cli/commands/run.js.map +1 -1
  39. package/dist/cli/index.cjs +583 -394
  40. package/dist/cli/index.cjs.map +1 -1
  41. package/dist/cli/index.d.cts +4 -16
  42. package/dist/cli/index.d.cts.map +1 -1
  43. package/dist/cli/index.d.ts +4 -16
  44. package/dist/cli/index.d.ts.map +1 -1
  45. package/dist/cli/index.js +575 -386
  46. package/dist/cli/index.js.map +1 -1
  47. package/dist/config/budget-schema.cjs +172 -0
  48. package/dist/config/budget-schema.cjs.map +1 -0
  49. package/dist/config/budget-schema.d.cts +59 -0
  50. package/dist/config/budget-schema.d.cts.map +1 -0
  51. package/dist/config/budget-schema.d.ts +59 -0
  52. package/dist/config/budget-schema.d.ts.map +1 -0
  53. package/dist/config/budget-schema.js +166 -0
  54. package/dist/config/budget-schema.js.map +1 -0
  55. package/dist/config/schema.cjs +182 -2
  56. package/dist/config/schema.cjs.map +1 -1
  57. package/dist/config/schema.d.cts +122 -3
  58. package/dist/config/schema.d.cts.map +1 -1
  59. package/dist/config/schema.d.ts +122 -3
  60. package/dist/config/schema.d.ts.map +1 -1
  61. package/dist/config/schema.js +180 -1
  62. package/dist/config/schema.js.map +1 -1
  63. package/dist/constants.cjs +45 -2
  64. package/dist/constants.cjs.map +1 -1
  65. package/dist/constants.d.cts +41 -0
  66. package/dist/constants.d.cts.map +1 -1
  67. package/dist/constants.d.ts +41 -0
  68. package/dist/constants.d.ts.map +1 -1
  69. package/dist/constants.js +44 -1
  70. package/dist/constants.js.map +1 -1
  71. package/dist/core/engine.cjs +103 -21
  72. package/dist/core/engine.cjs.map +1 -1
  73. package/dist/core/engine.d.cts +7 -7
  74. package/dist/core/engine.d.cts.map +1 -1
  75. package/dist/core/engine.d.ts +7 -7
  76. package/dist/core/engine.d.ts.map +1 -1
  77. package/dist/core/engine.js +104 -22
  78. package/dist/core/engine.js.map +1 -1
  79. package/dist/core/output-path-resolver.cjs +8 -1
  80. package/dist/core/output-path-resolver.cjs.map +1 -1
  81. package/dist/core/output-path-resolver.d.cts.map +1 -1
  82. package/dist/core/output-path-resolver.d.ts.map +1 -1
  83. package/dist/core/output-path-resolver.js +9 -2
  84. package/dist/core/output-path-resolver.js.map +1 -1
  85. package/dist/errors/base.cjs +12 -3
  86. package/dist/errors/base.cjs.map +1 -1
  87. package/dist/errors/base.d.cts +7 -0
  88. package/dist/errors/base.d.cts.map +1 -1
  89. package/dist/errors/base.d.ts +7 -0
  90. package/dist/errors/base.d.ts.map +1 -1
  91. package/dist/errors/base.js +10 -2
  92. package/dist/errors/base.js.map +1 -1
  93. package/dist/errors/budget.cjs +37 -0
  94. package/dist/errors/budget.cjs.map +1 -0
  95. package/dist/errors/budget.d.cts +31 -0
  96. package/dist/errors/budget.d.cts.map +1 -0
  97. package/dist/errors/budget.d.ts +31 -0
  98. package/dist/errors/budget.d.ts.map +1 -0
  99. package/dist/errors/budget.js +33 -0
  100. package/dist/errors/budget.js.map +1 -0
  101. package/dist/errors/index.cjs +4 -1
  102. package/dist/errors/index.cjs.map +1 -1
  103. package/dist/errors/index.d.cts +1 -0
  104. package/dist/errors/index.d.cts.map +1 -1
  105. package/dist/errors/index.d.ts +1 -0
  106. package/dist/errors/index.d.ts.map +1 -1
  107. package/dist/errors/index.js +2 -0
  108. package/dist/errors/index.js.map +1 -1
  109. package/dist/index.cjs +13 -1
  110. package/dist/index.cjs.map +1 -1
  111. package/dist/index.d.cts +5 -0
  112. package/dist/index.d.cts.map +1 -1
  113. package/dist/index.d.ts +5 -0
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +7 -0
  116. package/dist/index.js.map +1 -1
  117. package/dist/reporters/csv.cjs +37 -17
  118. package/dist/reporters/csv.cjs.map +1 -1
  119. package/dist/reporters/csv.d.cts +3 -6
  120. package/dist/reporters/csv.d.cts.map +1 -1
  121. package/dist/reporters/csv.d.ts +3 -6
  122. package/dist/reporters/csv.d.ts.map +1 -1
  123. package/dist/reporters/csv.js +37 -17
  124. package/dist/reporters/csv.js.map +1 -1
  125. package/dist/reporters/human.cjs +66 -40
  126. package/dist/reporters/human.cjs.map +1 -1
  127. package/dist/reporters/human.d.cts +14 -13
  128. package/dist/reporters/human.d.cts.map +1 -1
  129. package/dist/reporters/human.d.ts +14 -13
  130. package/dist/reporters/human.d.ts.map +1 -1
  131. package/dist/reporters/human.js +66 -40
  132. package/dist/reporters/human.js.map +1 -1
  133. package/dist/reporters/json.cjs +23 -48
  134. package/dist/reporters/json.cjs.map +1 -1
  135. package/dist/reporters/json.d.cts +2 -28
  136. package/dist/reporters/json.d.cts.map +1 -1
  137. package/dist/reporters/json.d.ts +2 -28
  138. package/dist/reporters/json.d.ts.map +1 -1
  139. package/dist/reporters/json.js +25 -50
  140. package/dist/reporters/json.js.map +1 -1
  141. package/dist/reporters/profile-human.cjs +149 -0
  142. package/dist/reporters/profile-human.cjs.map +1 -0
  143. package/dist/reporters/profile-human.d.cts +44 -0
  144. package/dist/reporters/profile-human.d.cts.map +1 -0
  145. package/dist/reporters/profile-human.d.ts +44 -0
  146. package/dist/reporters/profile-human.d.ts.map +1 -0
  147. package/dist/reporters/profile-human.js +142 -0
  148. package/dist/reporters/profile-human.js.map +1 -0
  149. package/dist/reporters/simple.cjs +64 -44
  150. package/dist/reporters/simple.cjs.map +1 -1
  151. package/dist/reporters/simple.d.cts +14 -14
  152. package/dist/reporters/simple.d.cts.map +1 -1
  153. package/dist/reporters/simple.d.ts +14 -14
  154. package/dist/reporters/simple.d.ts.map +1 -1
  155. package/dist/reporters/simple.js +64 -44
  156. package/dist/reporters/simple.js.map +1 -1
  157. package/dist/schema/modestbench-config.schema.json +153 -0
  158. package/dist/services/baseline-storage.cjs +151 -0
  159. package/dist/services/baseline-storage.cjs.map +1 -0
  160. package/dist/services/baseline-storage.d.cts +55 -0
  161. package/dist/services/baseline-storage.d.cts.map +1 -0
  162. package/dist/services/baseline-storage.d.ts +55 -0
  163. package/dist/services/baseline-storage.d.ts.map +1 -0
  164. package/dist/services/baseline-storage.js +147 -0
  165. package/dist/services/baseline-storage.js.map +1 -0
  166. package/dist/services/budget-evaluator.cjs +146 -0
  167. package/dist/services/budget-evaluator.cjs.map +1 -0
  168. package/dist/services/budget-evaluator.d.cts +29 -0
  169. package/dist/services/budget-evaluator.d.cts.map +1 -0
  170. package/dist/services/budget-evaluator.d.ts +29 -0
  171. package/dist/services/budget-evaluator.d.ts.map +1 -0
  172. package/dist/services/budget-evaluator.js +142 -0
  173. package/dist/services/budget-evaluator.js.map +1 -0
  174. package/dist/services/config-manager.cjs +23 -9
  175. package/dist/services/config-manager.cjs.map +1 -1
  176. package/dist/services/config-manager.d.cts +6 -1
  177. package/dist/services/config-manager.d.cts.map +1 -1
  178. package/dist/services/config-manager.d.ts +6 -1
  179. package/dist/services/config-manager.d.ts.map +1 -1
  180. package/dist/services/config-manager.js +23 -9
  181. package/dist/services/config-manager.js.map +1 -1
  182. package/dist/services/file-loader.cjs +3 -6
  183. package/dist/services/file-loader.cjs.map +1 -1
  184. package/dist/services/file-loader.d.cts.map +1 -1
  185. package/dist/services/file-loader.d.ts.map +1 -1
  186. package/dist/services/file-loader.js +3 -6
  187. package/dist/services/file-loader.js.map +1 -1
  188. package/dist/services/profiler/profile-filter.cjs +113 -0
  189. package/dist/services/profiler/profile-filter.cjs.map +1 -0
  190. package/dist/services/profiler/profile-filter.d.cts +20 -0
  191. package/dist/services/profiler/profile-filter.d.cts.map +1 -0
  192. package/dist/services/profiler/profile-filter.d.ts +20 -0
  193. package/dist/services/profiler/profile-filter.d.ts.map +1 -0
  194. package/dist/services/profiler/profile-filter.js +109 -0
  195. package/dist/services/profiler/profile-filter.js.map +1 -0
  196. package/dist/services/profiler/profile-parser.cjs +139 -0
  197. package/dist/services/profiler/profile-parser.cjs.map +1 -0
  198. package/dist/services/profiler/profile-parser.d.cts +18 -0
  199. package/dist/services/profiler/profile-parser.d.cts.map +1 -0
  200. package/dist/services/profiler/profile-parser.d.ts +18 -0
  201. package/dist/services/profiler/profile-parser.d.ts.map +1 -0
  202. package/dist/services/profiler/profile-parser.js +132 -0
  203. package/dist/services/profiler/profile-parser.js.map +1 -0
  204. package/dist/services/profiler/profile-runner.cjs +90 -0
  205. package/dist/services/profiler/profile-runner.cjs.map +1 -0
  206. package/dist/services/profiler/profile-runner.d.cts +29 -0
  207. package/dist/services/profiler/profile-runner.d.cts.map +1 -0
  208. package/dist/services/profiler/profile-runner.d.ts +29 -0
  209. package/dist/services/profiler/profile-runner.d.ts.map +1 -0
  210. package/dist/services/profiler/profile-runner.js +86 -0
  211. package/dist/services/profiler/profile-runner.js.map +1 -0
  212. package/dist/services/reporter-registry.cjs +18 -24
  213. package/dist/services/reporter-registry.cjs.map +1 -1
  214. package/dist/services/reporter-registry.d.cts +18 -40
  215. package/dist/services/reporter-registry.d.cts.map +1 -1
  216. package/dist/services/reporter-registry.d.ts +18 -40
  217. package/dist/services/reporter-registry.d.ts.map +1 -1
  218. package/dist/services/reporter-registry.js +18 -24
  219. package/dist/services/reporter-registry.js.map +1 -1
  220. package/dist/types/budgets.cjs +8 -0
  221. package/dist/types/budgets.cjs.map +1 -0
  222. package/dist/types/budgets.d.cts +149 -0
  223. package/dist/types/budgets.d.cts.map +1 -0
  224. package/dist/types/budgets.d.ts +149 -0
  225. package/dist/types/budgets.d.ts.map +1 -0
  226. package/dist/types/budgets.js +7 -0
  227. package/dist/types/budgets.js.map +1 -0
  228. package/dist/types/cli.cjs +2 -11
  229. package/dist/types/cli.cjs.map +1 -1
  230. package/dist/types/cli.d.cts +3 -227
  231. package/dist/types/cli.d.cts.map +1 -1
  232. package/dist/types/cli.d.ts +3 -227
  233. package/dist/types/cli.d.ts.map +1 -1
  234. package/dist/types/cli.js +2 -11
  235. package/dist/types/cli.js.map +1 -1
  236. package/dist/types/core.cjs +6 -1
  237. package/dist/types/core.cjs.map +1 -1
  238. package/dist/types/core.d.cts +13 -2
  239. package/dist/types/core.d.cts.map +1 -1
  240. package/dist/types/core.d.ts +13 -2
  241. package/dist/types/core.d.ts.map +1 -1
  242. package/dist/types/core.js +2 -1
  243. package/dist/types/core.js.map +1 -1
  244. package/dist/types/index.cjs +5 -0
  245. package/dist/types/index.cjs.map +1 -1
  246. package/dist/types/index.d.cts +2 -0
  247. package/dist/types/index.d.cts.map +1 -1
  248. package/dist/types/index.d.ts +2 -0
  249. package/dist/types/index.d.ts.map +1 -1
  250. package/dist/types/index.js +2 -0
  251. package/dist/types/index.js.map +1 -1
  252. package/dist/types/interfaces.d.cts +15 -8
  253. package/dist/types/interfaces.d.cts.map +1 -1
  254. package/dist/types/interfaces.d.ts +15 -8
  255. package/dist/types/interfaces.d.ts.map +1 -1
  256. package/dist/types/profiler.cjs +11 -0
  257. package/dist/types/profiler.cjs.map +1 -0
  258. package/dist/types/profiler.d.cts +100 -0
  259. package/dist/types/profiler.d.cts.map +1 -0
  260. package/dist/types/profiler.d.ts +100 -0
  261. package/dist/types/profiler.d.ts.map +1 -0
  262. package/dist/types/profiler.js +10 -0
  263. package/dist/types/profiler.js.map +1 -0
  264. package/dist/types/utility.cjs.map +1 -1
  265. package/dist/types/utility.d.cts +0 -8
  266. package/dist/types/utility.d.cts.map +1 -1
  267. package/dist/types/utility.d.ts +0 -8
  268. package/dist/types/utility.d.ts.map +1 -1
  269. package/dist/types/utility.js.map +1 -1
  270. package/dist/utils/identifiers.cjs +32 -0
  271. package/dist/utils/identifiers.cjs.map +1 -0
  272. package/dist/utils/identifiers.d.cts +32 -0
  273. package/dist/utils/identifiers.d.cts.map +1 -0
  274. package/dist/utils/identifiers.d.ts +32 -0
  275. package/dist/utils/identifiers.d.ts.map +1 -0
  276. package/dist/utils/identifiers.js +27 -0
  277. package/dist/utils/identifiers.js.map +1 -0
  278. package/dist/utils/package.cjs +40 -0
  279. package/dist/utils/package.cjs.map +1 -0
  280. package/dist/utils/package.d.cts +15 -0
  281. package/dist/utils/package.d.cts.map +1 -0
  282. package/dist/utils/package.d.ts +15 -0
  283. package/dist/utils/package.d.ts.map +1 -0
  284. package/dist/utils/package.js +33 -0
  285. package/dist/utils/package.js.map +1 -0
  286. package/dist/utils/type-guards.cjs +48 -0
  287. package/dist/utils/type-guards.cjs.map +1 -0
  288. package/dist/utils/type-guards.d.cts +22 -0
  289. package/dist/utils/type-guards.d.cts.map +1 -0
  290. package/dist/utils/type-guards.d.ts +22 -0
  291. package/dist/utils/type-guards.d.ts.map +1 -0
  292. package/dist/utils/type-guards.js +43 -0
  293. package/dist/utils/type-guards.js.map +1 -0
  294. package/package.json +10 -10
  295. package/src/cli/commands/analyze.ts +101 -0
  296. package/src/cli/commands/baseline.ts +577 -0
  297. package/src/cli/commands/history.ts +1 -1
  298. package/src/cli/commands/init.ts +105 -183
  299. package/src/cli/commands/run.ts +167 -98
  300. package/src/cli/index.ts +425 -183
  301. package/src/config/budget-schema.ts +189 -0
  302. package/src/config/schema.ts +260 -1
  303. package/src/constants.ts +53 -1
  304. package/src/core/engine.ts +151 -20
  305. package/src/core/output-path-resolver.ts +10 -2
  306. package/src/errors/base.ts +11 -2
  307. package/src/errors/budget.ts +38 -0
  308. package/src/errors/index.ts +3 -0
  309. package/src/index.ts +9 -0
  310. package/src/reporters/csv.ts +54 -25
  311. package/src/reporters/human.ts +88 -47
  312. package/src/reporters/json.ts +26 -71
  313. package/src/reporters/profile-human.ts +204 -0
  314. package/src/reporters/simple.ts +84 -53
  315. package/src/services/baseline-storage.ts +199 -0
  316. package/src/services/budget-evaluator.ts +182 -0
  317. package/src/services/config-manager.ts +23 -8
  318. package/src/services/file-loader.ts +3 -6
  319. package/src/services/profiler/profile-filter.ts +143 -0
  320. package/src/services/profiler/profile-parser.ts +194 -0
  321. package/src/services/profiler/profile-runner.ts +121 -0
  322. package/src/services/reporter-registry.ts +46 -81
  323. package/src/types/budgets.ts +180 -0
  324. package/src/types/cli.ts +5 -238
  325. package/src/types/core.ts +50 -10
  326. package/src/types/index.ts +5 -0
  327. package/src/types/interfaces.ts +16 -6
  328. package/src/types/profiler.ts +132 -0
  329. package/src/types/utility.ts +0 -10
  330. package/src/utils/identifiers.ts +58 -0
  331. package/src/utils/package.ts +35 -0
  332. package/src/utils/type-guards.ts +51 -0
@@ -8,7 +8,25 @@ import { resolve } from 'node:path';
8
8
  import { ErrorCodes } from "../../constants.js";
9
9
  import { resolveOutputPath } from "../../core/output-path-resolver.js";
10
10
  import { InvalidArgumentError, UnknownReporterError, } from "../../errors/index.js";
11
+ import { CsvReporter } from "../../reporters/csv.js";
12
+ import { HumanReporter } from "../../reporters/human.js";
13
+ import { JsonReporter } from "../../reporters/json.js";
14
+ import { SimpleReporter } from "../../reporters/simple.js";
11
15
  import { ExitCodes } from "../../types/cli.js";
16
+ import { hasErrorCode, isError } from "../../utils/type-guards.js";
17
+ /**
18
+ * Default values for the run command
19
+ *
20
+ * These are the command-level defaults used when neither config file nor CLI
21
+ * arguments provide values. They represent sensible defaults for running
22
+ * benchmarks.
23
+ */
24
+ export const RUN_COMMAND_DEFAULTS = {
25
+ bail: false,
26
+ quiet: false,
27
+ reporters: ['human'],
28
+ verbose: false,
29
+ };
12
30
  /**
13
31
  * Handle run command
14
32
  */
@@ -38,7 +56,7 @@ export const handleRunCommand = async (context, options) => {
38
56
  if (showCliMessages) {
39
57
  console.error('Setting up reporters...');
40
58
  }
41
- const reporters = await setupReporters(context, config, shouldBeQuiet, verbose, showCliMessages, options.quiet ?? false, options.outputDir, options.outputFile, options.progress);
59
+ const reporters = setupReporters(context, config, verbose, showCliMessages, options.quiet ?? false, options.outputDir, options.outputFile, options.progress);
42
60
  // Step 3: Discovery phase
43
61
  if (showCliMessages) {
44
62
  console.error('Discovering benchmark files...');
@@ -78,7 +96,7 @@ export const handleRunCommand = async (context, options) => {
78
96
  console.error(` ${error.code}: ${error.message}`);
79
97
  }
80
98
  }
81
- return ExitCodes.ValidationError;
99
+ return ExitCodes.VALIDATION_ERROR;
82
100
  }
83
101
  // Step 5: Execution phase
84
102
  if (showCliMessages) {
@@ -102,30 +120,55 @@ export const handleRunCommand = async (context, options) => {
102
120
  return handleResults(executionResult, options, shouldBeQuiet);
103
121
  }
104
122
  catch (error) {
123
+ // Check if error has a code property before accessing it
124
+ const errorCode = hasErrorCode(error) ? error.code : undefined;
125
+ // Handle budget exceeded error
126
+ if (errorCode === ErrorCodes.BUDGET_EXCEEDED) {
127
+ if (!shouldBeQuiet) {
128
+ const budgetError = error;
129
+ console.error(`\n❌ ${budgetError.message}`);
130
+ if (budgetError.budgetSummary &&
131
+ budgetError.budgetSummary.results.length > 0) {
132
+ console.error('\nFailed budgets:');
133
+ for (const result of budgetError.budgetSummary.results) {
134
+ if (!result.passed) {
135
+ console.error(` • ${result.taskId}`);
136
+ for (const violation of result.violations) {
137
+ console.error(` ${violation.message}`);
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ return ExitCodes.BENCHMARK_FAILURES;
144
+ }
105
145
  // Re-throw CLI errors so yargs fail handler can show help
106
- if (error.code === ErrorCodes.FILE_DISCOVERY_FAILED) {
146
+ if (errorCode === ErrorCodes.FILE_DISCOVERY_FAILED) {
107
147
  throw error;
108
148
  }
109
- if (error.code === ErrorCodes.CLI_INVALID_ARGUMENT) {
149
+ if (errorCode === ErrorCodes.CLI_INVALID_ARGUMENT) {
110
150
  throw error;
111
151
  }
112
152
  if (!shouldBeQuiet) {
113
- console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
114
- }
115
- // Return appropriate exit code based on error type
116
- if (error instanceof Error) {
117
- if (error.message.includes('Configuration error') ||
118
- error.message.includes('Config file not found') ||
119
- error.message.includes('Failed to load config')) {
120
- return ExitCodes.ConfigurationError;
121
- }
122
- if (error.message.includes('No files found') ||
123
- error.message.includes('No benchmark files found') ||
124
- error.message.includes('File discovery')) {
125
- return ExitCodes.FileDiscoveryError;
153
+ console.error(`Error: ${isError(error) ? error.message : String(error)}`);
154
+ }
155
+ // Return appropriate exit code based on error code
156
+ if (errorCode === ErrorCodes.CONFIG_LOAD_FAILED ||
157
+ errorCode === ErrorCodes.CONFIG_NOT_FOUND ||
158
+ errorCode === ErrorCodes.CONFIG_VALIDATION_FAILED ||
159
+ errorCode === ErrorCodes.CONFIG_UNSUPPORTED_FORMAT) {
160
+ return ExitCodes.CONFIG_ERROR;
161
+ }
162
+ if (errorCode === ErrorCodes.FILE_DISCOVERY_FAILED) {
163
+ return ExitCodes.DISCOVERY_ERROR;
164
+ }
165
+ // Fallback: check error message for cases where proper error types aren't thrown yet
166
+ if (isError(error)) {
167
+ if (error.message.includes('No benchmark files found')) {
168
+ return ExitCodes.DISCOVERY_ERROR;
126
169
  }
127
170
  }
128
- return ExitCodes.GeneralError;
171
+ return ExitCodes.BENCHMARK_FAILURES;
129
172
  }
130
173
  };
131
174
  /**
@@ -140,10 +183,10 @@ const handleResults = (executionResult, _options, _shouldBeQuiet) => {
140
183
  if (executionResult && executionResult.summary) {
141
184
  // Return error if there are failed tasks OR file-level errors
142
185
  return executionResult.summary.failedTasks > 0 || hasFileErrors
143
- ? ExitCodes.GeneralError
144
- : ExitCodes.Success;
186
+ ? ExitCodes.BENCHMARK_FAILURES
187
+ : ExitCodes.SUCCESS;
145
188
  }
146
- return ExitCodes.Success;
189
+ return ExitCodes.SUCCESS;
147
190
  };
148
191
  /**
149
192
  * Load and merge configuration from various sources
@@ -153,17 +196,17 @@ const loadConfiguration = async (context, options) => {
153
196
  // Create CLI arguments object for configuration merger
154
197
  const cliArgs = {};
155
198
  // Map CLI arguments to config properties
156
- // Pass pattern as-is, even if empty (loader will provide defaults)
157
- if (options.pattern !== undefined) {
158
- // If pattern is provided, use it; if empty array, pass it (for defaults)
199
+ // Only pass pattern if explicitly provided (non-empty)
200
+ // Empty array means no CLI pattern, so config file or defaults should be used
201
+ if (options.pattern !== undefined && options.pattern.length > 0) {
159
202
  cliArgs.pattern =
160
203
  options.pattern.length === 1 ? options.pattern[0] : options.pattern;
161
204
  }
162
- if (options.reporters) {
205
+ if (options.reporters && options.reporters.length > 0) {
163
206
  cliArgs.reporters = options.reporters;
164
207
  }
165
208
  if (options.outputDir) {
166
- cliArgs.outputDir = resolve(options.cwd, options.outputDir);
209
+ cliArgs.outputDir = resolve(options.cwd ?? process.cwd(), options.outputDir);
167
210
  }
168
211
  if (options.iterations) {
169
212
  cliArgs.iterations = options.iterations;
@@ -177,7 +220,7 @@ const loadConfiguration = async (context, options) => {
177
220
  if (options.bail !== undefined) {
178
221
  cliArgs.bail = options.bail;
179
222
  }
180
- if (options.exclude) {
223
+ if (options.exclude && options.exclude.length > 0) {
181
224
  cliArgs.exclude = options.exclude;
182
225
  }
183
226
  if (options.timeout) {
@@ -189,84 +232,91 @@ const loadConfiguration = async (context, options) => {
189
232
  if (options.verbose !== undefined) {
190
233
  cliArgs.verbose = options.verbose;
191
234
  }
192
- if (options.tags) {
235
+ if (options.tags && options.tags.length > 0) {
193
236
  cliArgs.tags = options.tags;
194
237
  }
195
- if (options.excludeTags) {
238
+ if (options.excludeTags && options.excludeTags.length > 0) {
196
239
  cliArgs.excludeTags = options.excludeTags;
197
240
  }
198
241
  // Load configuration with CLI argument precedence
199
- const config = await context.configManager.load(options.config, cliArgs);
242
+ // Pass command defaults as the base layer
243
+ const config = await context.configManager.load(options.config, cliArgs, RUN_COMMAND_DEFAULTS);
200
244
  return config;
201
245
  }
202
246
  catch (error) {
203
247
  // Re-throw our custom errors
204
- if (error.code === ErrorCodes.CONFIG_LOAD_FAILED) {
248
+ const errorCode = hasErrorCode(error) ? error.code : undefined;
249
+ if (errorCode === ErrorCodes.CONFIG_LOAD_FAILED) {
205
250
  throw error;
206
251
  }
207
- throw new InvalidArgumentError(`Configuration error: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
252
+ throw new InvalidArgumentError(`Configuration error: ${isError(error) ? error.message : String(error)}`, { cause: error });
208
253
  }
209
254
  };
210
255
  /**
211
256
  * Setup and configure reporters based on configuration
212
257
  */
213
- const setupReporters = async (context, config, shouldBeQuiet, isVerbose, showCliMessages, explicitQuiet, explicitOutputDir, explicitOutputFile, progressOption) => {
258
+ const setupReporters = (context, config, isVerbose, showCliMessages, explicitQuiet, explicitOutputDir, explicitOutputFile, progressOption) => {
214
259
  try {
215
260
  const reporters = [];
216
- const requestedReporters = config.reporters || ['human'];
217
- // Dynamically import reporters for proper configuration
218
- const { HumanReporter } = await import("../../reporters/human.js");
219
- const { JsonReporter } = await import("../../reporters/json.js");
220
- const { CsvReporter } = await import("../../reporters/csv.js");
221
- const { SimpleReporter } = await import("../../reporters/simple.js");
261
+ // Dedupe requested reporters
262
+ const requestedReporters = [...new Set(config.reporters || ['human'])];
222
263
  // Only use file output if --output was explicitly provided
223
264
  // Use the explicit output dir if provided, otherwise check config
224
265
  const outputDir = explicitOutputDir
225
266
  ? resolve(explicitOutputDir)
226
267
  : undefined;
268
+ // Built-in reporter names for error messages
269
+ const builtInReporters = ['human', 'json', 'csv', 'simple'];
227
270
  for (const reporterName of requestedReporters) {
228
271
  let reporter;
229
272
  // Create reporter instances with output path configuration
230
- if (reporterName === 'human') {
231
- reporter = new HumanReporter({
232
- color: true,
233
- progress: progressOption ?? true,
234
- quiet: explicitQuiet, // Only applies explicit --quiet flag; JSON reporter forcing quiet mode does not affect HumanReporter progress output
235
- verbose: isVerbose,
236
- });
237
- }
238
- else if (reporterName === 'json') {
239
- const outputPath = resolveOutputPath(outputDir, explicitOutputFile, 'results.json');
240
- reporter = new JsonReporter({
241
- ...(outputPath ? { outputPath } : {}),
242
- prettyPrint: true,
243
- quiet: shouldBeQuiet, // JSON uses shouldBeQuiet to avoid polluting stdout
244
- verbose: isVerbose,
245
- });
246
- }
247
- else if (reporterName === 'csv') {
248
- const outputPath = resolveOutputPath(outputDir, explicitOutputFile, 'results.csv');
249
- reporter = new CsvReporter({
250
- includeHeaders: true,
251
- includeMetadata: true,
252
- ...(outputPath ? { outputPath } : {}),
253
- quiet: explicitQuiet, // Only applies explicit --quiet flag; CSV output can coexist with progress messages on different streams
254
- verbose: isVerbose,
255
- });
256
- }
257
- else if (reporterName === 'simple') {
258
- reporter = new SimpleReporter({
259
- quiet: explicitQuiet,
260
- verbose: isVerbose,
261
- });
262
- }
263
- else {
264
- // Fall back to registry for custom reporters
265
- reporter = context.reporterRegistry.get(reporterName);
266
- if (!reporter) {
267
- const availableReporters = ['human', 'json', 'csv', 'simple'];
268
- throw new UnknownReporterError(`Unknown reporter: ${reporterName}. Available: ${availableReporters.join(', ')}`);
273
+ switch (reporterName) {
274
+ case 'csv': {
275
+ const outputPath = resolveOutputPath(outputDir, explicitOutputFile, 'results.csv');
276
+ reporter = new CsvReporter({
277
+ includeHeaders: true,
278
+ includeMetadata: true,
279
+ ...(outputPath ? { outputPath } : {}),
280
+ quiet: explicitQuiet, // Only applies explicit --quiet flag; CSV output can coexist with progress messages on different streams
281
+ verbose: isVerbose,
282
+ });
283
+ break;
284
+ }
285
+ case 'human':
286
+ reporter = new HumanReporter({
287
+ color: true,
288
+ progress: progressOption ?? true,
289
+ quiet: explicitQuiet, // Only applies explicit --quiet flag; JSON reporter forcing quiet mode does not affect HumanReporter progress output
290
+ verbose: isVerbose,
291
+ });
292
+ break;
293
+ case 'json': {
294
+ const outputPath = resolveOutputPath(outputDir, explicitOutputFile, 'results.json');
295
+ reporter = new JsonReporter({
296
+ ...(outputPath ? { outputPath } : {}),
297
+ prettyPrint: true,
298
+ });
299
+ break;
269
300
  }
301
+ case 'simple':
302
+ reporter = new SimpleReporter({
303
+ quiet: explicitQuiet,
304
+ verbose: isVerbose,
305
+ });
306
+ break;
307
+ default:
308
+ // Fall back to registry for custom reporters
309
+ reporter = context.reporterRegistry.get(reporterName);
310
+ if (!reporter) {
311
+ // Combine built-in reporters with registered custom reporters
312
+ const registeredReporters = Object.keys(context.reporterRegistry.getAll());
313
+ const availableReporters = [
314
+ ...builtInReporters,
315
+ ...registeredReporters,
316
+ ];
317
+ throw new UnknownReporterError(`Unknown reporter: ${reporterName}. Available: ${availableReporters.join(', ')}`);
318
+ }
319
+ break;
270
320
  }
271
321
  reporters.push(reporter);
272
322
  }
@@ -277,10 +327,11 @@ const setupReporters = async (context, config, shouldBeQuiet, isVerbose, showCli
277
327
  }
278
328
  catch (error) {
279
329
  // Re-throw our custom errors
280
- if (error.code === ErrorCodes.REPORTER_UNKNOWN) {
330
+ const errorCode = hasErrorCode(error) ? error.code : undefined;
331
+ if (errorCode === ErrorCodes.REPORTER_UNKNOWN) {
281
332
  throw error;
282
333
  }
283
- throw new InvalidArgumentError(`Reporter setup error: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
334
+ throw new InvalidArgumentError(`Reporter setup error: ${isError(error) ? error.message : String(error)}`, { cause: error });
284
335
  }
285
336
  };
286
337
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}