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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateBaselineStorage = exports.baselineStorageSchema = exports.budgetSchema = exports.parsePercentageString = exports.parseTimeString = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * Zod schema for budget configuration
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ /**
11
+ * Parse time string to nanoseconds Supports: "10ms", "5s", "100us", "50ns"
12
+ */
13
+ const parseTimeString = (value) => {
14
+ const match = value.match(/^(\d+(?:\.\d+)?)(ns|us|ms|s)$/i);
15
+ if (!match) {
16
+ throw new Error(`Invalid time format: "${value}". Expected format like "10ms", "5s", "100us", "50ns"`);
17
+ }
18
+ const num = parseFloat(match[1]);
19
+ const unit = match[2].toLowerCase();
20
+ const multipliers = {
21
+ ms: 1_000_000,
22
+ ns: 1,
23
+ s: 1_000_000_000,
24
+ us: 1_000,
25
+ };
26
+ return num * multipliers[unit];
27
+ };
28
+ exports.parseTimeString = parseTimeString;
29
+ /**
30
+ * Parse percentage string to decimal Supports: "10%", "5.5%"
31
+ *
32
+ * Note: Does not round result - preserves full precision from input
33
+ */
34
+ const parsePercentageString = (value) => {
35
+ const match = value.match(/^(\d+(?:\.\d+)?)%$/);
36
+ if (!match) {
37
+ throw new Error(`Invalid percentage format: "${value}". Expected format like "10%", "5.5%"`);
38
+ }
39
+ return parseFloat(match[1]) / 100;
40
+ };
41
+ exports.parsePercentageString = parsePercentageString;
42
+ /**
43
+ * Time or nanoseconds
44
+ */
45
+ const timeSchema = zod_1.z
46
+ .union([
47
+ zod_1.z.number().int().nonnegative().describe('Time in nanoseconds'),
48
+ zod_1.z
49
+ .string()
50
+ .transform(exports.parseTimeString)
51
+ .describe('Time string (e.g., "10ms")'),
52
+ ])
53
+ .describe('Time value as nanoseconds or time string');
54
+ /**
55
+ * Percentage or decimal
56
+ */
57
+ const percentageSchema = zod_1.z
58
+ .union([
59
+ zod_1.z
60
+ .number()
61
+ .min(0)
62
+ .max(1)
63
+ .describe('Percentage as decimal (e.g., 0.1 for 10%)'),
64
+ zod_1.z
65
+ .string()
66
+ .transform(exports.parsePercentageString)
67
+ .describe('Percentage string (e.g., "10%")'),
68
+ ])
69
+ .describe('Percentage value as decimal or percentage string');
70
+ /**
71
+ * Absolute budget schema
72
+ */
73
+ const absoluteBudgetSchema = zod_1.z
74
+ .object({
75
+ maxP99: timeSchema
76
+ .optional()
77
+ .describe('Maximum 99th percentile execution time'),
78
+ maxTime: timeSchema.optional().describe('Maximum mean execution time'),
79
+ minOpsPerSec: zod_1.z
80
+ .number()
81
+ .positive()
82
+ .optional()
83
+ .describe('Minimum operations per second'),
84
+ })
85
+ .describe('Absolute performance budget thresholds');
86
+ /**
87
+ * Relative budget schema
88
+ */
89
+ const relativeBudgetSchema = zod_1.z
90
+ .object({
91
+ baseline: zod_1.z
92
+ .string()
93
+ .optional()
94
+ .describe('Name of baseline to compare against'),
95
+ maxRegression: percentageSchema
96
+ .optional()
97
+ .describe('Maximum allowed performance regression'),
98
+ })
99
+ .describe('Relative performance budget thresholds compared to baseline');
100
+ /**
101
+ * Complete budget schema
102
+ */
103
+ exports.budgetSchema = zod_1.z
104
+ .object({
105
+ absolute: absoluteBudgetSchema
106
+ .optional()
107
+ .describe('Absolute performance thresholds'),
108
+ relative: relativeBudgetSchema
109
+ .optional()
110
+ .describe('Relative performance thresholds'),
111
+ })
112
+ .describe('Performance budget configuration');
113
+ /**
114
+ * Baseline reference schema
115
+ *
116
+ * Note: This validates and transforms to branded types (RunId, TaskId). The
117
+ * transforms are safe as they only add compile-time type information.
118
+ */
119
+ const baselineReferenceSchema = zod_1.z
120
+ .object({
121
+ branch: zod_1.z.string().optional().describe('Git branch name'),
122
+ commit: zod_1.z
123
+ .string()
124
+ .length(40)
125
+ .regex(/^[0-9a-f]{40}$/)
126
+ .optional()
127
+ .describe('Full Git commit hash (40 hex characters)'),
128
+ date: zod_1.z.coerce.date().describe('Date baseline was created'),
129
+ name: zod_1.z.string().describe('Baseline name identifier'),
130
+ runId: zod_1.z
131
+ .string()
132
+ .length(7)
133
+ .regex(/^[0-9a-z]{7}$/)
134
+ .describe('Benchmark run ID (7 lowercase alphanumeric characters)'),
135
+ summary: zod_1.z
136
+ .record(zod_1.z.string(), zod_1.z.object({
137
+ mean: zod_1.z.number().describe('Mean execution time in nanoseconds'),
138
+ opsPerSecond: zod_1.z.number().describe('Operations per second'),
139
+ p99: zod_1.z
140
+ .number()
141
+ .optional()
142
+ .describe('99th percentile execution time in nanoseconds'),
143
+ }))
144
+ .describe('Summary of benchmark results for each task'),
145
+ })
146
+ .describe('Named baseline reference with benchmark results summary');
147
+ /**
148
+ * Baseline storage schema
149
+ */
150
+ exports.baselineStorageSchema = zod_1.z
151
+ .object({
152
+ baselines: zod_1.z
153
+ .record(zod_1.z.string(), baselineReferenceSchema)
154
+ .describe('Map of baseline names to baseline references'),
155
+ default: zod_1.z.string().optional().describe('Default baseline name'),
156
+ version: zod_1.z.string().describe('Schema version'),
157
+ })
158
+ .describe('Baseline storage file format');
159
+ /**
160
+ * Validate baseline storage
161
+ *
162
+ * Note: The parsed data contains plain strings that are cast to branded types
163
+ * (RunId, TaskId). This is safe because branded types are compile-time only
164
+ * constructs.
165
+ */
166
+ const validateBaselineStorage = (storage) => {
167
+ const parsed = exports.baselineStorageSchema.parse(storage);
168
+ // Cast is safe: branded types are erased at runtime
169
+ return parsed;
170
+ };
171
+ exports.validateBaselineStorage = validateBaselineStorage;
172
+ //# sourceMappingURL=budget-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-schema.js","sourceRoot":"","sources":["../../src/config/budget-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { z } from 'zod';
2
+ import type { BaselineStorage } from "../types/budgets.cjs";
3
+ /**
4
+ * Zod schema for budget configuration
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ /**
9
+ * Parse time string to nanoseconds Supports: "10ms", "5s", "100us", "50ns"
10
+ */
11
+ export declare const parseTimeString: (value: string) => number;
12
+ /**
13
+ * Parse percentage string to decimal Supports: "10%", "5.5%"
14
+ *
15
+ * Note: Does not round result - preserves full precision from input
16
+ */
17
+ export declare const parsePercentageString: (value: string) => number;
18
+ /**
19
+ * Complete budget schema
20
+ */
21
+ export declare const budgetSchema: z.ZodObject<{
22
+ absolute: z.ZodOptional<z.ZodObject<{
23
+ maxP99: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>>;
24
+ maxTime: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>>;
25
+ minOpsPerSec: z.ZodOptional<z.ZodNumber>;
26
+ }, z.core.$strip>>;
27
+ relative: z.ZodOptional<z.ZodObject<{
28
+ baseline: z.ZodOptional<z.ZodString>;
29
+ maxRegression: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>>;
30
+ }, z.core.$strip>>;
31
+ }, z.core.$strip>;
32
+ /**
33
+ * Baseline storage schema
34
+ */
35
+ export declare const baselineStorageSchema: z.ZodObject<{
36
+ baselines: z.ZodRecord<z.ZodString, z.ZodObject<{
37
+ branch: z.ZodOptional<z.ZodString>;
38
+ commit: z.ZodOptional<z.ZodString>;
39
+ date: z.ZodCoercedDate<unknown>;
40
+ name: z.ZodString;
41
+ runId: z.ZodString;
42
+ summary: z.ZodRecord<z.ZodString, z.ZodObject<{
43
+ mean: z.ZodNumber;
44
+ opsPerSecond: z.ZodNumber;
45
+ p99: z.ZodOptional<z.ZodNumber>;
46
+ }, z.core.$strip>>;
47
+ }, z.core.$strip>>;
48
+ default: z.ZodOptional<z.ZodString>;
49
+ version: z.ZodString;
50
+ }, z.core.$strip>;
51
+ /**
52
+ * Validate baseline storage
53
+ *
54
+ * Note: The parsed data contains plain strings that are cast to branded types
55
+ * (RunId, TaskId). This is safe because branded types are compile-time only
56
+ * constructs.
57
+ */
58
+ export declare const validateBaselineStorage: (storage: unknown) => BaselineStorage;
59
+ //# sourceMappingURL=budget-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-schema.d.ts","sourceRoot":"","sources":["../../src/config/budget-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,eAAe,EAAE,6BAA4B;AAE3D;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAmB/C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,MASrD,CAAC;AAgEF;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;iBASsB,CAAC;AAwChD;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;iBAQS,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,OAAO,KAAG,eAI1D,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { z } from 'zod';
2
+ import type { BaselineStorage } from "../types/budgets.js";
3
+ /**
4
+ * Zod schema for budget configuration
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ /**
9
+ * Parse time string to nanoseconds Supports: "10ms", "5s", "100us", "50ns"
10
+ */
11
+ export declare const parseTimeString: (value: string) => number;
12
+ /**
13
+ * Parse percentage string to decimal Supports: "10%", "5.5%"
14
+ *
15
+ * Note: Does not round result - preserves full precision from input
16
+ */
17
+ export declare const parsePercentageString: (value: string) => number;
18
+ /**
19
+ * Complete budget schema
20
+ */
21
+ export declare const budgetSchema: z.ZodObject<{
22
+ absolute: z.ZodOptional<z.ZodObject<{
23
+ maxP99: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>>;
24
+ maxTime: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>>;
25
+ minOpsPerSec: z.ZodOptional<z.ZodNumber>;
26
+ }, z.core.$strip>>;
27
+ relative: z.ZodOptional<z.ZodObject<{
28
+ baseline: z.ZodOptional<z.ZodString>;
29
+ maxRegression: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>>;
30
+ }, z.core.$strip>>;
31
+ }, z.core.$strip>;
32
+ /**
33
+ * Baseline storage schema
34
+ */
35
+ export declare const baselineStorageSchema: z.ZodObject<{
36
+ baselines: z.ZodRecord<z.ZodString, z.ZodObject<{
37
+ branch: z.ZodOptional<z.ZodString>;
38
+ commit: z.ZodOptional<z.ZodString>;
39
+ date: z.ZodCoercedDate<unknown>;
40
+ name: z.ZodString;
41
+ runId: z.ZodString;
42
+ summary: z.ZodRecord<z.ZodString, z.ZodObject<{
43
+ mean: z.ZodNumber;
44
+ opsPerSecond: z.ZodNumber;
45
+ p99: z.ZodOptional<z.ZodNumber>;
46
+ }, z.core.$strip>>;
47
+ }, z.core.$strip>>;
48
+ default: z.ZodOptional<z.ZodString>;
49
+ version: z.ZodString;
50
+ }, z.core.$strip>;
51
+ /**
52
+ * Validate baseline storage
53
+ *
54
+ * Note: The parsed data contains plain strings that are cast to branded types
55
+ * (RunId, TaskId). This is safe because branded types are compile-time only
56
+ * constructs.
57
+ */
58
+ export declare const validateBaselineStorage: (storage: unknown) => BaselineStorage;
59
+ //# sourceMappingURL=budget-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-schema.d.ts","sourceRoot":"","sources":["../../src/config/budget-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,eAAe,EAAE,4BAA4B;AAE3D;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAmB/C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,MASrD,CAAC;AAgEF;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;iBASsB,CAAC;AAwChD;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;iBAQS,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,OAAO,KAAG,eAI1D,CAAC"}
@@ -0,0 +1,166 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema for budget configuration
4
+ *
5
+ * @packageDocumentation
6
+ */
7
+ /**
8
+ * Parse time string to nanoseconds Supports: "10ms", "5s", "100us", "50ns"
9
+ */
10
+ export const parseTimeString = (value) => {
11
+ const match = value.match(/^(\d+(?:\.\d+)?)(ns|us|ms|s)$/i);
12
+ if (!match) {
13
+ throw new Error(`Invalid time format: "${value}". Expected format like "10ms", "5s", "100us", "50ns"`);
14
+ }
15
+ const num = parseFloat(match[1]);
16
+ const unit = match[2].toLowerCase();
17
+ const multipliers = {
18
+ ms: 1_000_000,
19
+ ns: 1,
20
+ s: 1_000_000_000,
21
+ us: 1_000,
22
+ };
23
+ return num * multipliers[unit];
24
+ };
25
+ /**
26
+ * Parse percentage string to decimal Supports: "10%", "5.5%"
27
+ *
28
+ * Note: Does not round result - preserves full precision from input
29
+ */
30
+ export const parsePercentageString = (value) => {
31
+ const match = value.match(/^(\d+(?:\.\d+)?)%$/);
32
+ if (!match) {
33
+ throw new Error(`Invalid percentage format: "${value}". Expected format like "10%", "5.5%"`);
34
+ }
35
+ return parseFloat(match[1]) / 100;
36
+ };
37
+ /**
38
+ * Time or nanoseconds
39
+ */
40
+ const timeSchema = z
41
+ .union([
42
+ z.number().int().nonnegative().describe('Time in nanoseconds'),
43
+ z
44
+ .string()
45
+ .transform(parseTimeString)
46
+ .describe('Time string (e.g., "10ms")'),
47
+ ])
48
+ .describe('Time value as nanoseconds or time string');
49
+ /**
50
+ * Percentage or decimal
51
+ */
52
+ const percentageSchema = z
53
+ .union([
54
+ z
55
+ .number()
56
+ .min(0)
57
+ .max(1)
58
+ .describe('Percentage as decimal (e.g., 0.1 for 10%)'),
59
+ z
60
+ .string()
61
+ .transform(parsePercentageString)
62
+ .describe('Percentage string (e.g., "10%")'),
63
+ ])
64
+ .describe('Percentage value as decimal or percentage string');
65
+ /**
66
+ * Absolute budget schema
67
+ */
68
+ const absoluteBudgetSchema = z
69
+ .object({
70
+ maxP99: timeSchema
71
+ .optional()
72
+ .describe('Maximum 99th percentile execution time'),
73
+ maxTime: timeSchema.optional().describe('Maximum mean execution time'),
74
+ minOpsPerSec: z
75
+ .number()
76
+ .positive()
77
+ .optional()
78
+ .describe('Minimum operations per second'),
79
+ })
80
+ .describe('Absolute performance budget thresholds');
81
+ /**
82
+ * Relative budget schema
83
+ */
84
+ const relativeBudgetSchema = z
85
+ .object({
86
+ baseline: z
87
+ .string()
88
+ .optional()
89
+ .describe('Name of baseline to compare against'),
90
+ maxRegression: percentageSchema
91
+ .optional()
92
+ .describe('Maximum allowed performance regression'),
93
+ })
94
+ .describe('Relative performance budget thresholds compared to baseline');
95
+ /**
96
+ * Complete budget schema
97
+ */
98
+ export const budgetSchema = z
99
+ .object({
100
+ absolute: absoluteBudgetSchema
101
+ .optional()
102
+ .describe('Absolute performance thresholds'),
103
+ relative: relativeBudgetSchema
104
+ .optional()
105
+ .describe('Relative performance thresholds'),
106
+ })
107
+ .describe('Performance budget configuration');
108
+ /**
109
+ * Baseline reference schema
110
+ *
111
+ * Note: This validates and transforms to branded types (RunId, TaskId). The
112
+ * transforms are safe as they only add compile-time type information.
113
+ */
114
+ const baselineReferenceSchema = z
115
+ .object({
116
+ branch: z.string().optional().describe('Git branch name'),
117
+ commit: z
118
+ .string()
119
+ .length(40)
120
+ .regex(/^[0-9a-f]{40}$/)
121
+ .optional()
122
+ .describe('Full Git commit hash (40 hex characters)'),
123
+ date: z.coerce.date().describe('Date baseline was created'),
124
+ name: z.string().describe('Baseline name identifier'),
125
+ runId: z
126
+ .string()
127
+ .length(7)
128
+ .regex(/^[0-9a-z]{7}$/)
129
+ .describe('Benchmark run ID (7 lowercase alphanumeric characters)'),
130
+ summary: z
131
+ .record(z.string(), z.object({
132
+ mean: z.number().describe('Mean execution time in nanoseconds'),
133
+ opsPerSecond: z.number().describe('Operations per second'),
134
+ p99: z
135
+ .number()
136
+ .optional()
137
+ .describe('99th percentile execution time in nanoseconds'),
138
+ }))
139
+ .describe('Summary of benchmark results for each task'),
140
+ })
141
+ .describe('Named baseline reference with benchmark results summary');
142
+ /**
143
+ * Baseline storage schema
144
+ */
145
+ export const baselineStorageSchema = z
146
+ .object({
147
+ baselines: z
148
+ .record(z.string(), baselineReferenceSchema)
149
+ .describe('Map of baseline names to baseline references'),
150
+ default: z.string().optional().describe('Default baseline name'),
151
+ version: z.string().describe('Schema version'),
152
+ })
153
+ .describe('Baseline storage file format');
154
+ /**
155
+ * Validate baseline storage
156
+ *
157
+ * Note: The parsed data contains plain strings that are cast to branded types
158
+ * (RunId, TaskId). This is safe because branded types are compile-time only
159
+ * constructs.
160
+ */
161
+ export const validateBaselineStorage = (storage) => {
162
+ const parsed = baselineStorageSchema.parse(storage);
163
+ // Cast is safe: branded types are erased at runtime
164
+ return parsed;
165
+ };
166
+ //# sourceMappingURL=budget-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-schema.js","sourceRoot":"","sources":["../../src/config/budget-schema.ts"],"names":[],"mappings":"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"}