@electron-stagewright/plugin-budget 0.1.0 → 0.2.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.
package/dist/cli.js CHANGED
@@ -14,9 +14,9 @@ import { pathToFileURL } from 'node:url';
14
14
  import { BudgetFileError, PHASES, loadBudget } from './budget.js';
15
15
  import { measureBundle } from './bundle.js';
16
16
  import { checkRun } from './check.js';
17
- import { DEFAULT_ROUNDS, measureApp } from './measure.js';
17
+ import { DEFAULT_ROUNDS, measureApp, } from './measure.js';
18
18
  import { compareRuns, renderCheckReport, renderComparison } from './render.js';
19
- import { RunFileError, createRun, loadRun } from './run.js';
19
+ import { RunFileError, createRun, loadRun, mergeRuns } from './run.js';
20
20
  export const BUDGET_EXIT_CODES = { SUCCESS: 0, OVER_BUDGET: 1, USAGE: 2 };
21
21
  const PROCESS_IO = {
22
22
  stdout: (text) => process.stdout.write(text),
@@ -31,25 +31,35 @@ export function formatBudgetCliHelp() {
31
31
  ' [--env K=V]... [--budget <file>] [--rounds 3]',
32
32
  ' [--phases cold,warm] [--settle-ms 3000] [--window-ms 2000]',
33
33
  ' [--workload <script.mjs> [--workload-timeout-ms 120000]]',
34
+ ' [--before-round <script.mjs>] [--skip-failed-rounds]',
35
+ ' [--memory-sample-ms 1000]',
34
36
  ' [--label <text>] [--out <run.json>] [--json]',
35
- ' [--check [--strict] [--require-measurement] [--phase cold|warm]]',
36
- ' electron-stagewright-budget check <run.json> --budget <file> [--strict]',
37
- ' [--require-measurement] [--phase cold|warm|live] [--json]',
37
+ ' [--check [--no-tolerance] [--require-measurement]',
38
+ ' [--phase cold|warm] [--min-samples N]]',
39
+ ' electron-stagewright-budget check <run.json>... --budget <file> [--no-tolerance]',
40
+ ' [--require-measurement] [--phase cold|warm|live]',
41
+ ' [--min-samples N] [--json]',
38
42
  ' electron-stagewright-budget compare <before.json> <after.json> [--json]',
39
43
  ' electron-stagewright-budget bundle --budget <file> [--root <dir>] [--out <run.json>]',
40
- ' [--strict] [--json]',
44
+ ' [--no-tolerance] [--json]',
41
45
  '',
42
46
  'measure Launch the app on a throwaway profile and measure cold and warm rounds.',
43
47
  ' --workload is an ES module whose default export, async ({ dispatch, sessionId,',
44
48
  ' phase }), drives the app inside the measurement window. Without --out or',
45
49
  ' --check the run document goes to stdout. --phase reads every metric from',
46
50
  ' that phase; a metric whose phase was not measured is unmeasured.',
47
- 'check Compare a measured run to a budget file.',
51
+ ' --before-round is an ES module whose default export, async ({ round, profile }),',
52
+ ' prepares each round and may return { env, args } for its launches.',
53
+ ' --memory-sample-ms samples memory during the window for a peak; a budget whose',
54
+ ' memory aggregate is peak turns it on.',
55
+ 'check Compare measured runs to a budget file; several runs are merged first.',
48
56
  'compare Print a before/after table of two runs.',
49
57
  'bundle Measure the bundle entries of a budget and gate them; needs no Electron.',
50
58
  '',
51
- '--strict Ignore thresholdPercent; the limit itself gates.',
59
+ '--no-tolerance Ignore thresholdPercent; the limit itself gates.',
60
+ ' (--strict is a deprecated alias.)',
52
61
  '--require-measurement Fail when a budgeted metric was not measured.',
62
+ '--min-samples N A runtime metric needs N measured rounds, or it is unmeasured.',
53
63
  '',
54
64
  'Exit codes: 0 within budget, 1 over budget or nothing measured,',
55
65
  ' 2 usage, unreadable input, or any other error.',
@@ -77,11 +87,21 @@ function parseMeasureArgs(rest) {
77
87
  '--window-ms',
78
88
  '--workload',
79
89
  '--workload-timeout-ms',
90
+ '--before-round',
91
+ '--memory-sample-ms',
92
+ '--min-samples',
80
93
  '--phase',
81
94
  '--label',
82
95
  '--out',
83
96
  ];
84
- const booleanFlags = ['--check', '--strict', '--require-measurement', '--json'];
97
+ const booleanFlags = [
98
+ '--check',
99
+ '--no-tolerance',
100
+ '--strict',
101
+ '--require-measurement',
102
+ '--skip-failed-rounds',
103
+ '--json',
104
+ ];
85
105
  for (let index = 0; index < rest.length; index += 1) {
86
106
  const token = rest[index];
87
107
  // Scanned here, not over all of argv, so `--arg --help` is forwarded to the app.
@@ -135,14 +155,21 @@ function parseMeasureArgs(rest) {
135
155
  const budgetPath = single.get('--budget');
136
156
  if (check && budgetPath === undefined)
137
157
  throw new UsageError('--check requires --budget <file>');
138
- if (!check && (flags.has('--strict') || flags.has('--require-measurement') || phase)) {
139
- throw new UsageError('--strict, --require-measurement, and --phase apply only with --check');
158
+ const noTolerance = flags.has('--no-tolerance') || flags.has('--strict');
159
+ if (!check &&
160
+ (noTolerance || flags.has('--require-measurement') || phase || single.has('--min-samples'))) {
161
+ throw new UsageError('--no-tolerance, --require-measurement, --min-samples, and --phase apply only with --check');
140
162
  }
141
163
  const optional = (key, value) => value === undefined ? {} : { [key]: value };
142
164
  const number = (flag, min) => {
143
165
  const value = single.get(flag);
144
166
  return value === undefined ? undefined : positiveInt(flag, value, min);
145
167
  };
168
+ const rounds = number('--rounds', 1) ?? DEFAULT_ROUNDS;
169
+ const minSamples = number('--min-samples', 1);
170
+ if (minSamples !== undefined && minSamples > rounds) {
171
+ throw new UsageError(`--min-samples ${minSamples} can never be met by --rounds ${rounds}`);
172
+ }
146
173
  return {
147
174
  command: 'measure',
148
175
  ...optional('main', main === undefined ? undefined : path.resolve(main)),
@@ -150,19 +177,24 @@ function parseMeasureArgs(rest) {
150
177
  args,
151
178
  env,
152
179
  ...optional('budgetPath', budgetPath),
153
- rounds: number('--rounds', 1) ?? DEFAULT_ROUNDS,
180
+ rounds,
154
181
  phases: phases,
155
182
  ...optional('settleMs', number('--settle-ms', 0)),
156
183
  ...optional('windowMs', number('--window-ms', 250)),
157
184
  ...optional('workloadPath', single.get('--workload')),
158
185
  ...optional('workloadTimeoutMs', number('--workload-timeout-ms', 1000)),
186
+ ...optional('beforeRoundPath', single.get('--before-round')),
187
+ ...optional('memorySampleMs', number('--memory-sample-ms', 100)),
188
+ skipFailedRounds: flags.has('--skip-failed-rounds'),
189
+ ...optional('minSamples', minSamples),
159
190
  ...optional('phase', phase),
160
191
  ...optional('label', single.get('--label')),
161
192
  ...optional('outPath', single.get('--out')),
162
193
  check,
163
- strict: flags.has('--strict'),
194
+ noTolerance,
164
195
  requireMeasurement: flags.has('--require-measurement'),
165
196
  json: flags.has('--json'),
197
+ ...(flags.has('--strict') ? { deprecatedStrict: true } : {}),
166
198
  };
167
199
  }
168
200
  /** Strict parser: an unknown flag or a missing value is a usage error. */
@@ -181,14 +213,14 @@ export function parseBudgetCliArgs(argv) {
181
213
  if (rest.includes('--help') || rest.includes('-h'))
182
214
  return { command: 'help' };
183
215
  const valueFlags = {
184
- check: ['--budget', '--phase'],
216
+ check: ['--budget', '--phase', '--min-samples'],
185
217
  compare: [],
186
218
  bundle: ['--budget', '--root', '--out'],
187
219
  };
188
220
  const booleanFlags = {
189
- check: ['--strict', '--require-measurement', '--json'],
221
+ check: ['--no-tolerance', '--strict', '--require-measurement', '--json'],
190
222
  compare: ['--json'],
191
- bundle: ['--strict', '--json'],
223
+ bundle: ['--no-tolerance', '--strict', '--json'],
192
224
  };
193
225
  const values = new Map();
194
226
  const flags = new Set();
@@ -220,6 +252,8 @@ export function parseBudgetCliArgs(argv) {
220
252
  return budgetPath;
221
253
  };
222
254
  const json = flags.has('--json');
255
+ const noTolerance = flags.has('--no-tolerance') || flags.has('--strict');
256
+ const deprecatedStrict = flags.has('--strict') ? { deprecatedStrict: true } : {};
223
257
  if (command === 'compare') {
224
258
  const [beforePath, afterPath, extra] = positional;
225
259
  if (beforePath === undefined || afterPath === undefined || extra !== undefined) {
@@ -237,26 +271,31 @@ export function parseBudgetCliArgs(argv) {
237
271
  budgetPath: requireBudget(),
238
272
  ...(root === undefined ? {} : { root }),
239
273
  ...(outPath === undefined ? {} : { outPath }),
240
- strict: flags.has('--strict'),
274
+ noTolerance,
241
275
  json,
276
+ ...deprecatedStrict,
242
277
  };
243
278
  }
244
- const [runPath, extra] = positional;
245
- if (runPath === undefined || extra !== undefined) {
246
- throw new UsageError('check expects exactly one run file');
279
+ if (positional.length === 0)
280
+ throw new UsageError('check expects at least one run file');
281
+ if (new Set(positional.map((file) => path.resolve(file))).size !== positional.length) {
282
+ throw new UsageError('check lists the same run file twice');
247
283
  }
284
+ const minSamples = values.get('--min-samples');
248
285
  const phase = values.get('--phase');
249
286
  if (phase !== undefined && !PHASES.includes(phase)) {
250
287
  throw new UsageError(`--phase expects one of ${PHASES.join(', ')}`);
251
288
  }
252
289
  return {
253
290
  command,
254
- runPath,
291
+ runPaths: positional,
255
292
  budgetPath: requireBudget(),
256
- strict: flags.has('--strict'),
293
+ ...(minSamples === undefined ? {} : { minSamples: positiveInt('--min-samples', minSamples) }),
294
+ noTolerance,
257
295
  requireMeasurement: flags.has('--require-measurement'),
258
296
  ...(phase === undefined ? {} : { phase: phase }),
259
297
  json,
298
+ ...deprecatedStrict,
260
299
  };
261
300
  }
262
301
  function emitReport(report, json, io) {
@@ -267,22 +306,27 @@ async function writeRun(outPath, run) {
267
306
  await mkdir(path.dirname(path.resolve(outPath)), { recursive: true });
268
307
  await writeFile(outPath, `${JSON.stringify(run, null, 2)}\n`);
269
308
  }
270
- async function loadWorkload(workloadPath) {
309
+ async function loadScript(what, scriptPath) {
271
310
  let module;
272
311
  try {
273
- module = (await import(pathToFileURL(path.resolve(workloadPath)).href));
312
+ module = (await import(pathToFileURL(path.resolve(scriptPath)).href));
274
313
  }
275
314
  catch (error) {
276
- throw new UsageError(`Cannot load workload ${workloadPath}: ${error instanceof Error ? error.message : String(error)}`);
315
+ throw new UsageError(`Cannot load ${what} ${scriptPath}: ${error instanceof Error ? error.message : String(error)}`);
277
316
  }
278
317
  if (typeof module.default !== 'function') {
279
- throw new UsageError(`Workload ${workloadPath} must default-export an async function`);
318
+ throw new UsageError(`${what} ${scriptPath} must default-export an async function`);
280
319
  }
281
320
  return module.default;
282
321
  }
283
322
  async function runMeasure(options, io, deps) {
284
323
  const budget = options.budgetPath === undefined ? undefined : await loadBudget(options.budgetPath);
285
- const workload = options.workloadPath === undefined ? undefined : await loadWorkload(options.workloadPath);
324
+ const workload = options.workloadPath === undefined
325
+ ? undefined
326
+ : await loadScript('workload', options.workloadPath);
327
+ const beforeRound = options.beforeRoundPath === undefined
328
+ ? undefined
329
+ : await loadScript('before-round script', options.beforeRoundPath);
286
330
  let run = await deps.measureApp({
287
331
  launch: {
288
332
  ...(options.main === undefined ? {} : { main: options.main }),
@@ -300,6 +344,9 @@ async function runMeasure(options, io, deps) {
300
344
  ? {}
301
345
  : { workloadTimeoutMs: options.workloadTimeoutMs }),
302
346
  ...(options.label === undefined ? {} : { label: options.label }),
347
+ ...(beforeRound === undefined ? {} : { beforeRound }),
348
+ ...(options.memorySampleMs === undefined ? {} : { memorySampleMs: options.memorySampleMs }),
349
+ ...(options.skipFailedRounds ? { failedRounds: 'skip' } : {}),
303
350
  onProgress: (message) => io.stderr(`${message}\n`),
304
351
  });
305
352
  // A run with no round would later read as "nothing over budget"; never write one.
@@ -315,9 +362,10 @@ async function runMeasure(options, io, deps) {
315
362
  await writeRun(options.outPath, run);
316
363
  if (options.check && budget !== undefined) {
317
364
  const report = checkRun(run, budget, {
318
- strict: options.strict,
365
+ ignoreThreshold: options.noTolerance,
319
366
  requireMeasurement: options.requireMeasurement,
320
367
  ...(options.phase === undefined ? {} : { phase: options.phase }),
368
+ ...(options.minSamples === undefined ? {} : { minSamples: options.minSamples }),
321
369
  });
322
370
  return emitReport(report, options.json, io);
323
371
  }
@@ -333,6 +381,9 @@ export async function runBudgetCli(options, io = PROCESS_IO, deps = { measureApp
333
381
  io.stdout(`${formatBudgetCliHelp()}\n`);
334
382
  return BUDGET_EXIT_CODES.SUCCESS;
335
383
  }
384
+ if ('deprecatedStrict' in options && options.deprecatedStrict) {
385
+ io.stderr('--strict is deprecated: it drops thresholdPercent and never meant "fail instead of warn". Use --no-tolerance.\n');
386
+ }
336
387
  if (options.command === 'measure')
337
388
  return runMeasure(options, io, deps);
338
389
  if (options.command === 'compare') {
@@ -346,10 +397,19 @@ export async function runBudgetCli(options, io = PROCESS_IO, deps = { measureApp
346
397
  }
347
398
  const budget = await loadBudget(options.budgetPath);
348
399
  if (options.command === 'check') {
349
- const report = checkRun(await loadRun(options.runPath), budget, {
350
- strict: options.strict,
400
+ const runs = await Promise.all(options.runPaths.map((runPath) => loadRun(runPath)));
401
+ let run;
402
+ try {
403
+ run = mergeRuns(runs);
404
+ }
405
+ catch (error) {
406
+ throw new UsageError(error instanceof Error ? error.message : String(error));
407
+ }
408
+ const report = checkRun(run, budget, {
409
+ ignoreThreshold: options.noTolerance,
351
410
  requireMeasurement: options.requireMeasurement,
352
411
  ...(options.phase === undefined ? {} : { phase: options.phase }),
412
+ ...(options.minSamples === undefined ? {} : { minSamples: options.minSamples }),
353
413
  });
354
414
  return emitReport(report, options.json, io);
355
415
  }
@@ -365,7 +425,10 @@ export async function runBudgetCli(options, io = PROCESS_IO, deps = { measureApp
365
425
  bundle: budget.bundle,
366
426
  };
367
427
  // Every entry was asked for by name here, so one that matched nothing fails the command.
368
- const report = checkRun(run, bundleOnly, { strict: options.strict, requireMeasurement: true });
428
+ const report = checkRun(run, bundleOnly, {
429
+ ignoreThreshold: options.noTolerance,
430
+ requireMeasurement: true,
431
+ });
369
432
  return emitReport(report, options.json, io);
370
433
  }
371
434
  /** Parse and execute; never throws. */
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,12 +13,12 @@ export { checkRun } from './check.js';
13
13
  export type { CheckOptions, CheckReport, CheckResult, CheckStatus } from './check.js';
14
14
  export { compareRuns, renderCheckReport, renderComparison } from './render.js';
15
15
  export type { ComparisonRow } from './render.js';
16
- export { RUN_FORMAT, RUN_SCHEMA_VERSION, RunFileError, createRun, loadRun, memoryByType, runSchema, summarizeLatencies, summarizeRun, } from './run.js';
16
+ export { RUN_FORMAT, RUN_SCHEMA_VERSION, RunFileError, createRun, loadRun, memoryByType, mergeRuns, runSchema, summarizeLatencies, summarizeRun, } from './run.js';
17
17
  export type { BudgetRun, BundleEntryMeasurement, LatencySummary, Measurement, MemoryMeasurement, ProcessMemory, StallSummary, SummaryRow, } from './run.js';
18
18
  export { classifyProcess, measureMemory, platformMetric } from './memory.js';
19
19
  export type { AppProcessMetric, OsMemoryReader } from './memory.js';
20
20
  export { measureSession, startWindow } from './session.js';
21
21
  export type { EvaluatingSession, IpcProbe, MeasureOptions, SessionMeasurement } from './session.js';
22
22
  export { measureApp } from './measure.js';
23
- export type { LaunchPhase, MeasureAppOptions, Workload, WorkloadContext } from './measure.js';
23
+ export type { BeforeRound, LaunchPhase, MeasureAppOptions, RoundSetup, Workload, WorkloadContext, } from './measure.js';
24
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAe,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,MAAM,EACN,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9E,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,OAAO,EACP,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAA;AACjB,YAAY,EACV,SAAS,EACT,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5E,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1D,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAe,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,MAAM,EACN,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9E,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,OAAO,EACP,YAAY,EACZ,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAA;AACjB,YAAY,EACV,SAAS,EACT,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5E,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1D,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,eAAe,GAChB,MAAM,cAAc,CAAA"}
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ export { BUDGET_PLATFORMS, BudgetFileError, MEMORY_METRICS, PHASES, PROCESS_TYPE
10
10
  export { measureBundle } from './bundle.js';
11
11
  export { checkRun } from './check.js';
12
12
  export { compareRuns, renderCheckReport, renderComparison } from './render.js';
13
- export { RUN_FORMAT, RUN_SCHEMA_VERSION, RunFileError, createRun, loadRun, memoryByType, runSchema, summarizeLatencies, summarizeRun, } from './run.js';
13
+ export { RUN_FORMAT, RUN_SCHEMA_VERSION, RunFileError, createRun, loadRun, memoryByType, mergeRuns, runSchema, summarizeLatencies, summarizeRun, } from './run.js';
14
14
  export { classifyProcess, measureMemory, platformMetric } from './memory.js';
15
15
  export { measureSession, startWindow } from './session.js';
16
16
  export { measureApp } from './measure.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAe,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,MAAM,EACN,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AAUpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9E,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,OAAO,EACP,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAA;AAWjB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAe,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,MAAM,EACN,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AAUpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9E,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,OAAO,EACP,YAAY,EACZ,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAA;AAWjB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
package/dist/measure.d.ts CHANGED
@@ -4,7 +4,8 @@
4
4
  * @module
5
5
  */
6
6
  import type { Budget } from './budget.js';
7
- import { type BudgetRun } from './run.js';
7
+ import { type BudgetRun, type MemoryMeasurement } from './run.js';
8
+ import { sampleMemory, type MemorySource } from './session.js';
8
9
  export type LaunchPhase = 'cold' | 'warm';
9
10
  /** What a workload script receives: the tool dispatcher of the server driving the app. */
10
11
  export interface WorkloadContext {
@@ -13,6 +14,19 @@ export interface WorkloadContext {
13
14
  dispatch(tool: string, args?: Record<string, unknown>): Promise<Record<string, unknown>>;
14
15
  }
15
16
  export type Workload = (context: WorkloadContext) => Promise<void>;
17
+ /** What `beforeRound` may add to the launches of one round. */
18
+ export interface RoundSetup {
19
+ readonly env?: Readonly<Record<string, string>>;
20
+ readonly args?: readonly string[];
21
+ }
22
+ /**
23
+ * Runs before each round's first launch, to hand it fresh state (a database copy, a seeded
24
+ * fixture). `profile` is the round's empty user-data directory.
25
+ */
26
+ export type BeforeRound = (context: {
27
+ readonly round: number;
28
+ readonly profile: string;
29
+ }) => RoundSetup | void | Promise<RoundSetup | void>;
16
30
  export interface MeasureAppOptions {
17
31
  /** `electron_launch` arguments: `main` and/or `executablePath`, plus `args`, `env`, `cwd`. */
18
32
  readonly launch: {
@@ -35,10 +49,30 @@ export interface MeasureAppOptions {
35
49
  readonly workloadTimeoutMs?: number;
36
50
  readonly label?: string;
37
51
  readonly onProgress?: (message: string) => void;
52
+ readonly beforeRound?: BeforeRound;
53
+ /**
54
+ * Sample memory this often during the window and record the highest sample outside the GPU as
55
+ * `memoryPeak`. Defaults to 1000 when the budget's memory block for this platform reads `peak`.
56
+ */
57
+ readonly memorySampleMs?: number;
58
+ /**
59
+ * `skip` reports a round whose launch or measurement failed and goes on to the next one; pair
60
+ * it with `checkRun`'s `minSamples`. Default `throw`.
61
+ */
62
+ readonly failedRounds?: 'throw' | 'skip';
38
63
  }
39
64
  export declare const DEFAULT_ROUNDS = 3;
40
65
  export declare const DEFAULT_SETTLE_MS = 3000;
41
66
  export declare const DEFAULT_WORKLOAD_TIMEOUT_MS = 120000;
67
+ export declare const DEFAULT_MEMORY_SAMPLE_MS = 1000;
68
+ /**
69
+ * Samples memory until stopped; `peak` keeps the heaviest sample outside the GPU, or returns
70
+ * undefined when no sample during the window succeeded.
71
+ */
72
+ export declare function startSampler(session: Parameters<typeof sampleMemory>[0], source: MemorySource, intervalMs: number | undefined): {
73
+ stop(): Promise<void>;
74
+ peak(end: MemoryMeasurement | undefined): MemoryMeasurement | undefined;
75
+ };
42
76
  /**
43
77
  * Measure `rounds` rounds. Each round gets an empty profile: the first launch on it is `cold`,
44
78
  * the relaunch `warm`. Asking only for `warm` still does the cold launch, unmeasured.
@@ -1 +1 @@
1
- {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,UAAU,CAAA;AAGpD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAA;AAEzC,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACzF;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAElE,MAAM,WAAW,iBAAiB;IAChC,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QAC/C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAChD;AAED,eAAO,MAAM,cAAc,IAAI,CAAA;AAC/B,eAAO,MAAM,iBAAiB,OAAQ,CAAA;AACtC,eAAO,MAAM,2BAA2B,SAAU,CAAA;AAuGlD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAgC/E"}
1
+ {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"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"}