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
@@ -0,0 +1,404 @@
1
+ "use strict";
2
+ /**
3
+ * ModestBench Baseline Command
4
+ *
5
+ * Manage performance baselines for regression testing and budget comparison.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.handleAnalyzeCommand = exports.handleDeleteCommand = exports.handleShowCommand = exports.handleListCommand = exports.handleSetCommand = void 0;
9
+ const node_path_1 = require("node:path");
10
+ const baseline_storage_js_1 = require("../../services/baseline-storage.cjs");
11
+ const index_js_1 = require("../../types/index.cjs");
12
+ /**
13
+ * Format duration in human-readable format
14
+ */
15
+ const formatDuration = (nanoseconds) => {
16
+ if (nanoseconds < 1000) {
17
+ return `${nanoseconds.toFixed(2)}ns`;
18
+ }
19
+ if (nanoseconds < 1000000) {
20
+ return `${(nanoseconds / 1000).toFixed(2)}μs`;
21
+ }
22
+ if (nanoseconds < 1000000000) {
23
+ return `${(nanoseconds / 1000000).toFixed(2)}ms`;
24
+ }
25
+ return `${(nanoseconds / 1000000000).toFixed(2)}s`;
26
+ };
27
+ /**
28
+ * Format operations per second
29
+ */
30
+ const formatOpsPerSec = (ops) => {
31
+ if (ops < 1000) {
32
+ return `${ops.toFixed(2)} ops/sec`;
33
+ }
34
+ if (ops < 1000000) {
35
+ return `${(ops / 1000).toFixed(2)}K ops/sec`;
36
+ }
37
+ if (ops < 1000000000) {
38
+ return `${(ops / 1000000).toFixed(2)}M ops/sec`;
39
+ }
40
+ return `${(ops / 1000000000).toFixed(2)}B ops/sec`;
41
+ };
42
+ /**
43
+ * Format date in readable format
44
+ */
45
+ const formatDate = (date) => {
46
+ return date.toISOString().replace('T', ' ').substring(0, 19);
47
+ };
48
+ /**
49
+ * Calculate mean of an array of numbers
50
+ */
51
+ const calculateMean = (values) => {
52
+ if (values.length === 0) {
53
+ return 0;
54
+ }
55
+ return values.reduce((sum, val) => sum + val, 0) / values.length;
56
+ };
57
+ /**
58
+ * Calculate standard deviation
59
+ */
60
+ const calculateStdDev = (values) => {
61
+ if (values.length === 0) {
62
+ return 0;
63
+ }
64
+ const mean = calculateMean(values);
65
+ const squaredDiffs = values.map((val) => Math.pow(val - mean, 2));
66
+ const variance = calculateMean(squaredDiffs);
67
+ return Math.sqrt(variance);
68
+ };
69
+ /**
70
+ * Get z-score for confidence level
71
+ */
72
+ const getZScore = (confidence) => {
73
+ // Common confidence levels
74
+ if (confidence >= 0.99) {
75
+ return 2.576;
76
+ } // 99%
77
+ if (confidence >= 0.98) {
78
+ return 2.326;
79
+ } // 98%
80
+ if (confidence >= 0.95) {
81
+ return 1.96;
82
+ } // 95%
83
+ if (confidence >= 0.9) {
84
+ return 1.645;
85
+ } // 90%
86
+ if (confidence >= 0.85) {
87
+ return 1.44;
88
+ } // 85%
89
+ if (confidence >= 0.8) {
90
+ return 1.282;
91
+ } // 80%
92
+ return 1.96; // Default to 95%
93
+ };
94
+ /**
95
+ * Handle the set subcommand
96
+ */
97
+ const handleSetCommand = async (context, options) => {
98
+ try {
99
+ const storage = new baseline_storage_js_1.BaselineStorageService(options.cwd);
100
+ // Get the benchmark run
101
+ let run = null;
102
+ if (options.runId) {
103
+ // Load specific run by ID
104
+ run = await context.historyStorage.loadRun(options.runId);
105
+ if (!run) {
106
+ console.error(`Error: Run with ID "${options.runId}" not found`);
107
+ return 1;
108
+ }
109
+ }
110
+ else {
111
+ // Get most recent run
112
+ const runs = await context.historyStorage.queryRuns({ limit: 1 });
113
+ if (runs.length === 0) {
114
+ console.error('Error: No benchmark runs found. Run benchmarks first with "modestbench run"');
115
+ return 1;
116
+ }
117
+ run = runs[0];
118
+ }
119
+ // Save baseline
120
+ await storage.saveBaseline(options.name, run, {
121
+ branch: options.branch,
122
+ commit: options.commit,
123
+ });
124
+ // Set as default if requested
125
+ if (options.default) {
126
+ await storage.setDefault(options.name);
127
+ }
128
+ if (!options.quiet) {
129
+ console.log(`✓ Baseline "${options.name}" saved successfully`);
130
+ console.log(` Run ID: ${run.id}`);
131
+ if (options.commit) {
132
+ console.log(` Commit: ${options.commit}`);
133
+ }
134
+ if (options.branch) {
135
+ console.log(` Branch: ${options.branch}`);
136
+ }
137
+ if (options.default) {
138
+ console.log(` Set as default baseline`);
139
+ }
140
+ }
141
+ return 0;
142
+ }
143
+ catch (error) {
144
+ console.error('Failed to save baseline:', error instanceof Error ? error.message : String(error));
145
+ return 5;
146
+ }
147
+ };
148
+ exports.handleSetCommand = handleSetCommand;
149
+ /**
150
+ * Handle the list subcommand
151
+ */
152
+ const handleListCommand = async (context, options) => {
153
+ try {
154
+ const storage = new baseline_storage_js_1.BaselineStorageService(options.cwd);
155
+ const baselines = await storage.listBaselines();
156
+ const defaultBaseline = await storage.getDefault();
157
+ if (baselines.length === 0) {
158
+ if (!options.quiet) {
159
+ console.log('No baselines found');
160
+ }
161
+ return 0;
162
+ }
163
+ if (options.format === 'json') {
164
+ console.log(JSON.stringify({
165
+ baselines: baselines.map((b) => ({
166
+ ...b,
167
+ date: b.date.toISOString(),
168
+ isDefault: b.name === defaultBaseline,
169
+ })),
170
+ default: defaultBaseline,
171
+ }, null, 2));
172
+ }
173
+ else {
174
+ // Human-readable format
175
+ if (!options.quiet) {
176
+ console.log(`\nBaselines (${baselines.length}):\n`);
177
+ }
178
+ for (const baseline of baselines) {
179
+ const isDefault = baseline.name === defaultBaseline;
180
+ const defaultMarker = isDefault ? ' (default)' : '';
181
+ console.log(` ${baseline.name}${defaultMarker}`);
182
+ console.log(` Date: ${formatDate(baseline.date)}`);
183
+ console.log(` Run ID: ${baseline.runId}`);
184
+ if (baseline.commit) {
185
+ console.log(` Commit: ${baseline.commit.substring(0, 8)}`);
186
+ }
187
+ if (baseline.branch) {
188
+ console.log(` Branch: ${baseline.branch}`);
189
+ }
190
+ console.log(` Tasks: ${Object.keys(baseline.summary).length}`);
191
+ console.log();
192
+ }
193
+ }
194
+ return 0;
195
+ }
196
+ catch (error) {
197
+ console.error('Failed to list baselines:', error instanceof Error ? error.message : String(error));
198
+ return 5;
199
+ }
200
+ };
201
+ exports.handleListCommand = handleListCommand;
202
+ /**
203
+ * Handle the show subcommand
204
+ */
205
+ const handleShowCommand = async (context, options) => {
206
+ try {
207
+ const storage = new baseline_storage_js_1.BaselineStorageService(options.cwd);
208
+ const baseline = await storage.getBaseline(options.name);
209
+ if (!baseline) {
210
+ console.error(`Error: Baseline "${options.name}" not found`);
211
+ return 1;
212
+ }
213
+ const defaultBaseline = await storage.getDefault();
214
+ const isDefault = baseline.name === defaultBaseline;
215
+ if (options.format === 'json') {
216
+ console.log(JSON.stringify({
217
+ ...baseline,
218
+ date: baseline.date.toISOString(),
219
+ isDefault,
220
+ }, null, 2));
221
+ }
222
+ else {
223
+ // Human-readable format
224
+ console.log(`\nBaseline: ${baseline.name}${isDefault ? ' (default)' : ''}\n`);
225
+ console.log(` Date: ${formatDate(baseline.date)}`);
226
+ console.log(` Run ID: ${baseline.runId}`);
227
+ if (baseline.commit) {
228
+ console.log(` Commit: ${baseline.commit}`);
229
+ }
230
+ if (baseline.branch) {
231
+ console.log(` Branch: ${baseline.branch}`);
232
+ }
233
+ console.log();
234
+ // Show task summary
235
+ const tasks = Object.entries(baseline.summary);
236
+ if (tasks.length > 0) {
237
+ console.log(` Tasks (${tasks.length}):\n`);
238
+ for (const [taskId, data] of tasks) {
239
+ console.log(` ${taskId}`);
240
+ console.log(` Mean: ${formatDuration(data.mean)}`);
241
+ console.log(` Ops/sec: ${formatOpsPerSec(data.opsPerSecond)}`);
242
+ if (data.p99) {
243
+ console.log(` P99: ${formatDuration(data.p99)}`);
244
+ }
245
+ console.log();
246
+ }
247
+ }
248
+ }
249
+ return 0;
250
+ }
251
+ catch (error) {
252
+ console.error('Failed to show baseline:', error instanceof Error ? error.message : String(error));
253
+ return 5;
254
+ }
255
+ };
256
+ exports.handleShowCommand = handleShowCommand;
257
+ /**
258
+ * Handle the delete subcommand
259
+ */
260
+ const handleDeleteCommand = async (context, options) => {
261
+ try {
262
+ const storage = new baseline_storage_js_1.BaselineStorageService(options.cwd);
263
+ // Check if baseline exists
264
+ const baseline = await storage.getBaseline(options.name);
265
+ if (!baseline) {
266
+ console.error(`Error: Baseline "${options.name}" not found`);
267
+ return 1;
268
+ }
269
+ // Delete it
270
+ await storage.deleteBaseline(options.name);
271
+ if (!options.quiet) {
272
+ console.log(`✓ Baseline "${options.name}" deleted successfully`);
273
+ }
274
+ return 0;
275
+ }
276
+ catch (error) {
277
+ console.error('Failed to delete baseline:', error instanceof Error ? error.message : String(error));
278
+ return 5;
279
+ }
280
+ };
281
+ exports.handleDeleteCommand = handleDeleteCommand;
282
+ /**
283
+ * Handle the analyze subcommand
284
+ */
285
+ const handleAnalyzeCommand = async (context, options) => {
286
+ try {
287
+ const runLimit = options.runs || 10;
288
+ const confidence = options.confidence || 0.95;
289
+ // Validate confidence
290
+ if (confidence < 0.5 || confidence > 0.999) {
291
+ console.error('Error: Confidence must be between 0.5 and 0.999');
292
+ return 1;
293
+ }
294
+ // Query recent runs
295
+ const runs = await context.historyStorage.queryRuns({ limit: runLimit });
296
+ if (runs.length < 2) {
297
+ console.error(`Error: Insufficient history. Found ${runs.length} run(s), need at least 2 to analyze trends.`);
298
+ return 1;
299
+ }
300
+ // Collect metrics per task
301
+ const taskMetrics = new Map();
302
+ for (const run of runs) {
303
+ for (const file of run.files) {
304
+ for (const suite of file.suites) {
305
+ for (const task of suite.tasks) {
306
+ // Normalize file path to be relative to cwd for consistency with budgets
307
+ const relativePath = (0, node_path_1.relative)(options.cwd || process.cwd(), file.filePath);
308
+ const taskId = (0, index_js_1.createTaskId)(relativePath, suite.name, task.name);
309
+ if (!taskMetrics.has(taskId)) {
310
+ taskMetrics.set(taskId, { means: [], opsPerSec: [], p99s: [] });
311
+ }
312
+ const metrics = taskMetrics.get(taskId);
313
+ metrics.means.push(task.mean);
314
+ metrics.opsPerSec.push(task.opsPerSecond);
315
+ if (task.p99) {
316
+ metrics.p99s.push(task.p99);
317
+ }
318
+ }
319
+ }
320
+ }
321
+ }
322
+ // Calculate suggested budgets (flat format first)
323
+ const zScore = getZScore(confidence);
324
+ const flatBudgets = {};
325
+ for (const [taskId, metrics] of taskMetrics.entries()) {
326
+ const avgMean = calculateMean(metrics.means);
327
+ const stdDevMean = calculateStdDev(metrics.means);
328
+ const suggestedMaxTime = Math.ceil(avgMean + zScore * stdDevMean);
329
+ const avgOps = calculateMean(metrics.opsPerSec);
330
+ const stdDevOps = calculateStdDev(metrics.opsPerSec);
331
+ const suggestedMinOps = Math.floor(Math.max(0, avgOps - zScore * stdDevOps));
332
+ flatBudgets[taskId] = {
333
+ absolute: {
334
+ maxTime: suggestedMaxTime,
335
+ ...(suggestedMinOps > 0 && { minOpsPerSec: suggestedMinOps }),
336
+ },
337
+ };
338
+ // Add p99 if available
339
+ if (metrics.p99s.length > 0) {
340
+ const avgP99 = calculateMean(metrics.p99s);
341
+ const stdDevP99 = calculateStdDev(metrics.p99s);
342
+ const suggestedMaxP99 = Math.ceil(avgP99 + zScore * stdDevP99);
343
+ flatBudgets[taskId].absolute.maxP99 = suggestedMaxP99;
344
+ }
345
+ }
346
+ // Convert flat budgets to nested format for user config
347
+ const nestedBudgets = {};
348
+ for (const [taskId, budget] of Object.entries(flatBudgets)) {
349
+ // Parse taskId format: "file/suite/task"
350
+ const lastSlash = taskId.lastIndexOf('/');
351
+ const secondLastSlash = taskId.lastIndexOf('/', lastSlash - 1);
352
+ const file = taskId.substring(0, secondLastSlash);
353
+ const suite = taskId.substring(secondLastSlash + 1, lastSlash);
354
+ const task = taskId.substring(lastSlash + 1);
355
+ if (!nestedBudgets[file]) {
356
+ nestedBudgets[file] = {};
357
+ }
358
+ if (!nestedBudgets[file][suite]) {
359
+ nestedBudgets[file][suite] = {};
360
+ }
361
+ nestedBudgets[file][suite][task] = budget;
362
+ }
363
+ // Output results
364
+ if (!options.quiet) {
365
+ console.log(`\nAnalyzed ${runs.length} run(s) with ${confidence * 100}% confidence\n`);
366
+ console.log('Suggested budget configuration:\n');
367
+ }
368
+ const config = {
369
+ budgetMode: 'fail',
370
+ budgets: nestedBudgets,
371
+ };
372
+ console.log(JSON.stringify(config, null, 2));
373
+ if (!options.quiet) {
374
+ const confidencePercent = confidence * 100;
375
+ console.log('\n' + '='.repeat(70));
376
+ console.log('How these budget values were calculated:');
377
+ console.log('='.repeat(70));
378
+ console.log();
379
+ console.log(`Using ${confidencePercent}% confidence level with ${runs.length} historical runs:`);
380
+ console.log();
381
+ console.log(` • maxTime = mean + (${confidencePercent}% z-score × std deviation)`);
382
+ console.log(` • minOpsPerSec = mean - (${confidencePercent}% z-score × std deviation)`);
383
+ console.log(` • maxP99 = mean + (${confidencePercent}% z-score × std deviation)`);
384
+ console.log();
385
+ console.log(`This means each budget is statistically expected to pass ${confidencePercent}% of`);
386
+ console.log('the time based on your historical benchmark data. The higher the');
387
+ console.log('confidence level, the more lenient the budgets (less likely to fail).');
388
+ console.log();
389
+ console.log('To adjust strictness:');
390
+ console.log(' • Lower confidence (e.g., 0.90) = stricter budgets, catch smaller regressions');
391
+ console.log(' • Higher confidence (e.g., 0.99) = looser budgets, reduce false positives');
392
+ console.log();
393
+ console.log('Copy the above configuration into your modestbench.config.json file.');
394
+ console.log('You may adjust the values based on your performance requirements.');
395
+ }
396
+ return 0;
397
+ }
398
+ catch (error) {
399
+ console.error('Failed to analyze history:', error instanceof Error ? error.message : String(error));
400
+ return 5;
401
+ }
402
+ };
403
+ exports.handleAnalyzeCommand = handleAnalyzeCommand;
404
+ //# sourceMappingURL=baseline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../../src/cli/commands/baseline.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,yCAAqC;AAKrC,6EAA4E;AAC5E,oDAAoD;AAoDpD;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,WAAmB,EAAU,EAAE;IACrD,IAAI,WAAW,GAAG,IAAI,EAAE,CAAC;QACvB,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IACD,IAAI,WAAW,GAAG,OAAO,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IACD,IAAI,WAAW,GAAG,UAAU,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IACD,OAAO,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACrD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,GAAW,EAAU,EAAE;IAC9C,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;QACf,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;IACrC,CAAC;IACD,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/C,CAAC;IACD,IAAI,GAAG,GAAG,UAAU,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;AACrD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,IAAU,EAAU,EAAE;IACxC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC,MAAgB,EAAU,EAAE;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AACnE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,MAAgB,EAAU,EAAE;IACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,SAAS,GAAG,CAAC,UAAkB,EAAU,EAAE;IAC/C,2BAA2B;IAC3B,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,MAAM;IACR,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,MAAM;IACR,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,MAAM;IACR,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,MAAM;IACR,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,MAAM;IACR,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,MAAM;IACR,OAAO,IAAI,CAAC,CAAC,iBAAiB;AAChC,CAAC,CAAC;AAEF;;GAEG;AACI,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAmB,EACnB,OAA2B,EACV,EAAE;IACnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,4CAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAExD,wBAAwB;QACxB,IAAI,GAAG,GAAwB,IAAI,CAAC;QAEpC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,0BAA0B;YAC1B,GAAG,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,CAAC,KAAK,aAAa,CAAC,CAAC;gBACjE,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAClE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CACX,6EAA6E,CAC9E,CAAC;gBACF,OAAO,CAAC,CAAC;YACX,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACjB,CAAC;QAED,gBAAgB;QAChB,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;YAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,8BAA8B;QAC9B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,IAAI,sBAAsB,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,0BAA0B,EAC1B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC,CAAC;AA9DW,QAAA,gBAAgB,oBA8D3B;AAEF;;GAEG;AACI,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAAmB,EACnB,OAA4B,EACX,EAAE;IACnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,4CAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QAChD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAEnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;gBACE,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/B,GAAG,CAAC;oBACJ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;oBAC1B,SAAS,EAAE,CAAC,CAAC,IAAI,KAAK,eAAe;iBACtC,CAAC,CAAC;gBACH,OAAO,EAAE,eAAe;aACzB,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,wBAAwB;YACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC;YACtD,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC9C,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjD,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,2BAA2B,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC,CAAC;AA9DW,QAAA,iBAAiB,qBA8D5B;AAEF;;GAEG;AACI,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAAmB,EACnB,OAA4B,EACX,EAAE;IACnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,4CAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;YAC7D,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC;QAEpD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;gBACE,GAAG,QAAQ;gBACX,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;gBACjC,SAAS;aACV,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,wBAAwB;YACxB,OAAO,CAAC,GAAG,CACT,eAAe,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CACjE,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5C,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,oBAAoB;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC;gBAC5C,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC3D,OAAO,CAAC,GAAG,CAAC,kBAAkB,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;oBACpE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;wBACb,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC5D,CAAC;oBACD,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,0BAA0B,EAC1B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC,CAAC;AAnEW,QAAA,iBAAiB,qBAmE5B;AAEF;;GAEG;AACI,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAAmB,EACnB,OAA8B,EACb,EAAE;IACnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,4CAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAExD,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;YAC7D,OAAO,CAAC,CAAC;QACX,CAAC;QAED,YAAY;QACZ,MAAM,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,IAAI,wBAAwB,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,4BAA4B,EAC5B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC,CAAC;AA7BW,QAAA,mBAAmB,uBA6B9B;AAEF;;GAEG;AACI,MAAM,oBAAoB,GAAG,KAAK,EACvC,OAAmB,EACnB,OAA+B,EACd,EAAE;IACnB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QAE9C,sBAAsB;QACtB,IAAI,UAAU,GAAG,GAAG,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,oBAAoB;QACpB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEzE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CACX,sCAAsC,IAAI,CAAC,MAAM,6CAA6C,CAC/F,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,2BAA2B;QAC3B,MAAM,WAAW,GAAG,IAAI,GAAG,EAGxB,CAAC;QAEJ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBAC/B,yEAAyE;wBACzE,MAAM,YAAY,GAAG,IAAA,oBAAQ,EAC3B,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAC5B,IAAI,CAAC,QAAQ,CACd,CAAC;wBACF,MAAM,MAAM,GAAG,IAAA,uBAAY,EAAC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAEjE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC7B,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;wBAClE,CAAC;wBAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;wBACzC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC9B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC1C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,kDAAkD;QAClD,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,WAAW,GACf,EAAE,CAAC;QAEL,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;YAElE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CACzC,CAAC;YAEF,WAAW,CAAC,MAAM,CAAC,GAAG;gBACpB,QAAQ,EAAE;oBACR,OAAO,EAAE,gBAAgB;oBACzB,GAAG,CAAC,eAAe,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;iBAC9D;aACF,CAAC;YAEF,uBAAuB;YACvB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;gBAC/D,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC;YACxD,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,MAAM,aAAa,GAGf,EAAE,CAAC;QAEP,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3D,yCAAyC;YACzC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;YAE/D,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAE7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAClC,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QAC5C,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CACT,cAAc,IAAI,CAAC,MAAM,gBAAgB,UAAU,GAAG,GAAG,gBAAgB,CAC1E,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,MAAM,GAAG;YACb,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,aAAa;SACvB,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,iBAAiB,GAAG,UAAU,GAAG,GAAG,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,SAAS,iBAAiB,2BAA2B,IAAI,CAAC,MAAM,mBAAmB,CACpF,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,8BAA8B,iBAAiB,4BAA4B,CAC5E,CAAC;YACF,OAAO,CAAC,GAAG,CACT,8BAA8B,iBAAiB,4BAA4B,CAC5E,CAAC;YACF,OAAO,CAAC,GAAG,CACT,8BAA8B,iBAAiB,4BAA4B,CAC5E,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,4DAA4D,iBAAiB,MAAM,CACpF,CAAC;YACF,OAAO,CAAC,GAAG,CACT,kEAAkE,CACnE,CAAC;YACF,OAAO,CAAC,GAAG,CACT,uEAAuE,CACxE,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CACT,iFAAiF,CAClF,CAAC;YACF,OAAO,CAAC,GAAG,CACT,6EAA6E,CAC9E,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,sEAAsE,CACvE,CAAC;YACF,OAAO,CAAC,GAAG,CACT,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,4BAA4B,EAC5B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC,CAAC;AArLW,QAAA,oBAAoB,wBAqL/B"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * ModestBench Baseline Command
3
+ *
4
+ * Manage performance baselines for regression testing and budget comparison.
5
+ */
6
+ import type { CliContext } from "../index.cjs";
7
+ /**
8
+ * Options for baseline analyze command
9
+ */
10
+ interface BaselineAnalyzeOptions extends BaselineBaseOptions {
11
+ confidence?: number | undefined;
12
+ runs?: number | undefined;
13
+ }
14
+ /**
15
+ * Base options shared by all baseline subcommands
16
+ */
17
+ interface BaselineBaseOptions {
18
+ cwd?: string;
19
+ quiet?: boolean | undefined;
20
+ verbose?: boolean | undefined;
21
+ }
22
+ /**
23
+ * Options for baseline delete command
24
+ */
25
+ interface BaselineDeleteOptions extends BaselineBaseOptions {
26
+ name: string;
27
+ }
28
+ /**
29
+ * Options for baseline list command
30
+ */
31
+ interface BaselineListOptions extends BaselineBaseOptions {
32
+ format?: 'human' | 'json' | undefined;
33
+ }
34
+ /**
35
+ * Options for baseline set command
36
+ */
37
+ interface BaselineSetOptions extends BaselineBaseOptions {
38
+ branch?: string | undefined;
39
+ commit?: string | undefined;
40
+ default?: boolean | undefined;
41
+ name: string;
42
+ runId?: string | undefined;
43
+ }
44
+ /**
45
+ * Options for baseline show command
46
+ */
47
+ interface BaselineShowOptions extends BaselineBaseOptions {
48
+ format?: 'human' | 'json' | undefined;
49
+ name: string;
50
+ }
51
+ /**
52
+ * Handle the set subcommand
53
+ */
54
+ export declare const handleSetCommand: (context: CliContext, options: BaselineSetOptions) => Promise<number>;
55
+ /**
56
+ * Handle the list subcommand
57
+ */
58
+ export declare const handleListCommand: (context: CliContext, options: BaselineListOptions) => Promise<number>;
59
+ /**
60
+ * Handle the show subcommand
61
+ */
62
+ export declare const handleShowCommand: (context: CliContext, options: BaselineShowOptions) => Promise<number>;
63
+ /**
64
+ * Handle the delete subcommand
65
+ */
66
+ export declare const handleDeleteCommand: (context: CliContext, options: BaselineDeleteOptions) => Promise<number>;
67
+ /**
68
+ * Handle the analyze subcommand
69
+ */
70
+ export declare const handleAnalyzeCommand: (context: CliContext, options: BaselineAnalyzeOptions) => Promise<number>;
71
+ export {};
72
+ //# sourceMappingURL=baseline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/baseline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAoB;AAK9C;;GAEG;AACH,UAAU,sBAAuB,SAAQ,mBAAmB;IAC1D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,UAAU,qBAAsB,SAAQ,mBAAmB;IACzD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,UAAU,mBAAoB,SAAQ,mBAAmB;IACvD,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,UAAU,kBAAmB,SAAQ,mBAAmB;IACtD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,UAAU,mBAAoB,SAAQ,mBAAmB;IACvD,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AA0FD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,UAAU,EACnB,SAAS,kBAAkB,KAC1B,OAAO,CAAC,MAAM,CA2DhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,UAAU,EACnB,SAAS,mBAAmB,KAC3B,OAAO,CAAC,MAAM,CA2DhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,UAAU,EACnB,SAAS,mBAAmB,KAC3B,OAAO,CAAC,MAAM,CAgEhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,UAAU,EACnB,SAAS,qBAAqB,KAC7B,OAAO,CAAC,MAAM,CA0BhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,UAAU,EACnB,SAAS,sBAAsB,KAC9B,OAAO,CAAC,MAAM,CAkLhB,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * ModestBench Baseline Command
3
+ *
4
+ * Manage performance baselines for regression testing and budget comparison.
5
+ */
6
+ import type { CliContext } from "../index.js";
7
+ /**
8
+ * Options for baseline analyze command
9
+ */
10
+ interface BaselineAnalyzeOptions extends BaselineBaseOptions {
11
+ confidence?: number | undefined;
12
+ runs?: number | undefined;
13
+ }
14
+ /**
15
+ * Base options shared by all baseline subcommands
16
+ */
17
+ interface BaselineBaseOptions {
18
+ cwd?: string;
19
+ quiet?: boolean | undefined;
20
+ verbose?: boolean | undefined;
21
+ }
22
+ /**
23
+ * Options for baseline delete command
24
+ */
25
+ interface BaselineDeleteOptions extends BaselineBaseOptions {
26
+ name: string;
27
+ }
28
+ /**
29
+ * Options for baseline list command
30
+ */
31
+ interface BaselineListOptions extends BaselineBaseOptions {
32
+ format?: 'human' | 'json' | undefined;
33
+ }
34
+ /**
35
+ * Options for baseline set command
36
+ */
37
+ interface BaselineSetOptions extends BaselineBaseOptions {
38
+ branch?: string | undefined;
39
+ commit?: string | undefined;
40
+ default?: boolean | undefined;
41
+ name: string;
42
+ runId?: string | undefined;
43
+ }
44
+ /**
45
+ * Options for baseline show command
46
+ */
47
+ interface BaselineShowOptions extends BaselineBaseOptions {
48
+ format?: 'human' | 'json' | undefined;
49
+ name: string;
50
+ }
51
+ /**
52
+ * Handle the set subcommand
53
+ */
54
+ export declare const handleSetCommand: (context: CliContext, options: BaselineSetOptions) => Promise<number>;
55
+ /**
56
+ * Handle the list subcommand
57
+ */
58
+ export declare const handleListCommand: (context: CliContext, options: BaselineListOptions) => Promise<number>;
59
+ /**
60
+ * Handle the show subcommand
61
+ */
62
+ export declare const handleShowCommand: (context: CliContext, options: BaselineShowOptions) => Promise<number>;
63
+ /**
64
+ * Handle the delete subcommand
65
+ */
66
+ export declare const handleDeleteCommand: (context: CliContext, options: BaselineDeleteOptions) => Promise<number>;
67
+ /**
68
+ * Handle the analyze subcommand
69
+ */
70
+ export declare const handleAnalyzeCommand: (context: CliContext, options: BaselineAnalyzeOptions) => Promise<number>;
71
+ export {};
72
+ //# sourceMappingURL=baseline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/baseline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB;AAK9C;;GAEG;AACH,UAAU,sBAAuB,SAAQ,mBAAmB;IAC1D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,UAAU,qBAAsB,SAAQ,mBAAmB;IACzD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,UAAU,mBAAoB,SAAQ,mBAAmB;IACvD,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,UAAU,kBAAmB,SAAQ,mBAAmB;IACtD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,UAAU,mBAAoB,SAAQ,mBAAmB;IACvD,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AA0FD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,UAAU,EACnB,SAAS,kBAAkB,KAC1B,OAAO,CAAC,MAAM,CA2DhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,UAAU,EACnB,SAAS,mBAAmB,KAC3B,OAAO,CAAC,MAAM,CA2DhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,UAAU,EACnB,SAAS,mBAAmB,KAC3B,OAAO,CAAC,MAAM,CAgEhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,UAAU,EACnB,SAAS,qBAAqB,KAC7B,OAAO,CAAC,MAAM,CA0BhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,UAAU,EACnB,SAAS,sBAAsB,KAC9B,OAAO,CAAC,MAAM,CAkLhB,CAAC"}