@openmixer/plugin-qualify 0.0.0-stage → 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 (114) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +203 -2
  3. package/bin/plugin-qualify.mjs +77 -0
  4. package/dist/clap-loader.d.ts +147 -0
  5. package/dist/clap-loader.js +252 -0
  6. package/dist/clap-loader.js.map +1 -0
  7. package/dist/clap-qualify.d.ts +126 -0
  8. package/dist/clap-qualify.js +272 -0
  9. package/dist/clap-qualify.js.map +1 -0
  10. package/dist/host-profiles.d.ts +42 -0
  11. package/dist/host-profiles.js +106 -0
  12. package/dist/host-profiles.js.map +1 -0
  13. package/dist/hosting-codes.d.ts +62 -0
  14. package/dist/hosting-codes.js +72 -0
  15. package/dist/hosting-codes.js.map +1 -0
  16. package/dist/hosting-suitability.d.ts +354 -0
  17. package/dist/hosting-suitability.js +654 -0
  18. package/dist/hosting-suitability.js.map +1 -0
  19. package/dist/index.d.ts +17 -0
  20. package/dist/index.js +20 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/loader.d.ts +26 -0
  23. package/dist/loader.js +9 -0
  24. package/dist/loader.js.map +1 -0
  25. package/dist/lv2-loader.d.ts +7 -0
  26. package/dist/lv2-loader.js +50 -0
  27. package/dist/lv2-loader.js.map +1 -0
  28. package/dist/measurement/cli.d.ts +168 -0
  29. package/dist/measurement/cli.js +353 -0
  30. package/dist/measurement/cli.js.map +1 -0
  31. package/dist/measurement/fixtures.d.ts +23 -0
  32. package/dist/measurement/fixtures.js +129 -0
  33. package/dist/measurement/fixtures.js.map +1 -0
  34. package/dist/measurement/format.d.ts +483 -0
  35. package/dist/measurement/format.js +627 -0
  36. package/dist/measurement/format.js.map +1 -0
  37. package/dist/measurement/guards.d.ts +33 -0
  38. package/dist/measurement/guards.js +61 -0
  39. package/dist/measurement/guards.js.map +1 -0
  40. package/dist/measurement/index.d.ts +36 -0
  41. package/dist/measurement/index.js +39 -0
  42. package/dist/measurement/index.js.map +1 -0
  43. package/dist/measurement/merge.d.ts +143 -0
  44. package/dist/measurement/merge.js +315 -0
  45. package/dist/measurement/merge.js.map +1 -0
  46. package/dist/measurement/plan.d.ts +127 -0
  47. package/dist/measurement/plan.js +141 -0
  48. package/dist/measurement/plan.js.map +1 -0
  49. package/dist/measurement/probe-json.d.ts +61 -0
  50. package/dist/measurement/probe-json.js +253 -0
  51. package/dist/measurement/probe-json.js.map +1 -0
  52. package/dist/measurement/provenance.d.ts +91 -0
  53. package/dist/measurement/provenance.js +173 -0
  54. package/dist/measurement/provenance.js.map +1 -0
  55. package/dist/measurement/sweep-jsonl.d.ts +40 -0
  56. package/dist/measurement/sweep-jsonl.js +154 -0
  57. package/dist/measurement/sweep-jsonl.js.map +1 -0
  58. package/dist/measurement/vocabulary.d.ts +125 -0
  59. package/dist/measurement/vocabulary.js +217 -0
  60. package/dist/measurement/vocabulary.js.map +1 -0
  61. package/dist/qualify-cli.d.ts +83 -0
  62. package/dist/qualify-cli.js +224 -0
  63. package/dist/qualify-cli.js.map +1 -0
  64. package/dist/qualify-declarations.d.ts +98 -0
  65. package/dist/qualify-declarations.js +76 -0
  66. package/dist/qualify-declarations.js.map +1 -0
  67. package/dist/qualify-options.d.ts +22 -0
  68. package/dist/qualify-options.js +36 -0
  69. package/dist/qualify-options.js.map +1 -0
  70. package/dist/rating.d.ts +32 -0
  71. package/dist/rating.js +30 -0
  72. package/dist/rating.js.map +1 -0
  73. package/dist/tool-paths.d.ts +12 -0
  74. package/dist/tool-paths.js +29 -0
  75. package/dist/tool-paths.js.map +1 -0
  76. package/fixtures/clap-scan/controls.json +8 -0
  77. package/fixtures/clap-scan/fake.json +16 -0
  78. package/fixtures/clap-scan/mixed.json +18 -0
  79. package/fixtures/zero-path.lv2/manifest.ttl +3 -0
  80. package/fixtures/zero-path.lv2/zero-path.c +85 -0
  81. package/fixtures/zero-path.lv2/zero-path.ttl +21 -0
  82. package/package.json +91 -3
  83. package/src/clap-loader.ts +393 -0
  84. package/src/clap-qualify.ts +387 -0
  85. package/src/host-profiles.ts +122 -0
  86. package/src/hosting-codes.ts +71 -0
  87. package/src/hosting-suitability.ts +982 -0
  88. package/src/index.ts +19 -0
  89. package/src/loader.ts +30 -0
  90. package/src/lv2-loader.ts +50 -0
  91. package/src/measurement/cli.ts +458 -0
  92. package/src/measurement/fixtures.ts +141 -0
  93. package/src/measurement/format.ts +1064 -0
  94. package/src/measurement/guards.ts +64 -0
  95. package/src/measurement/index.ts +39 -0
  96. package/src/measurement/merge.ts +434 -0
  97. package/src/measurement/plan.ts +219 -0
  98. package/src/measurement/probe-json.ts +271 -0
  99. package/src/measurement/provenance.ts +220 -0
  100. package/src/measurement/sweep-jsonl.ts +173 -0
  101. package/src/measurement/vocabulary.ts +298 -0
  102. package/src/qualify-cli.ts +277 -0
  103. package/src/qualify-declarations.ts +117 -0
  104. package/src/qualify-options.ts +49 -0
  105. package/src/rating.ts +53 -0
  106. package/src/tool-paths.ts +32 -0
  107. package/tools/_declarations.py +21 -0
  108. package/tools/benchmark.py +2462 -0
  109. package/tools/gen-python-declarations.d.mts +4 -0
  110. package/tools/gen-python-declarations.mjs +92 -0
  111. package/tools/hosting-sweep.mjs +51 -0
  112. package/tools/lv2-measure.mjs +204 -0
  113. package/tools/lv2_presets.py +132 -0
  114. package/tools/scan.py +432 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosting-suitability.js","sourceRoot":"","sources":["../src/hosting-suitability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * plugin-qualify — scan, offline measurement, hosting sweep and the fail-closed rating of audio
3
+ * plugins.
4
+ */
5
+ export * from "./qualify-declarations.js";
6
+ export * from "./measurement/index.js";
7
+ export * from "./tool-paths.js";
8
+ export * from "./rating.js";
9
+ export * from "./host-profiles.js";
10
+ export * from "./hosting-suitability.js";
11
+ export * from "./hosting-codes.js";
12
+ export * from "./loader.js";
13
+ export * from "./lv2-loader.js";
14
+ export * from "./clap-loader.js";
15
+ export * from "./clap-qualify.js";
16
+ export * from "./qualify-options.js";
17
+ export * from "./qualify-cli.js";
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ // Copyright (C) 2026 Pau Aliagas <linuxnow@gmail.com>
3
+ /**
4
+ * plugin-qualify — scan, offline measurement, hosting sweep and the fail-closed rating of audio
5
+ * plugins.
6
+ */
7
+ export * from "./qualify-declarations.js";
8
+ export * from "./measurement/index.js";
9
+ export * from "./tool-paths.js";
10
+ export * from "./rating.js";
11
+ export * from "./host-profiles.js";
12
+ export * from "./hosting-suitability.js";
13
+ export * from "./hosting-codes.js";
14
+ export * from "./loader.js";
15
+ export * from "./lv2-loader.js";
16
+ export * from "./clap-loader.js";
17
+ export * from "./clap-qualify.js";
18
+ export * from "./qualify-options.js";
19
+ export * from "./qualify-cli.js";
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;GAGG;AACH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * The ONE plugin-discovery seam. A format
3
+ * loader turns a command-line target into the plugins it names. `lv2Loader` and `clapLoader` are
4
+ * its implementations.
5
+ */
6
+ /** One plugin a target resolved to. */
7
+ export interface PluginTarget {
8
+ readonly format: string;
9
+ /** The plugin's identity in its format (an LV2 URI). */
10
+ readonly uri: string;
11
+ /** The bundle directory it was found in, when resolved from a path. */
12
+ readonly bundle?: string;
13
+ /** Basename of the plugin's own binary, when known — the crash attribution reads it. */
14
+ readonly binary?: string;
15
+ /** The shared object's full path, when the format's loader reads it off the scan (a CLAP). */
16
+ readonly binaryPath?: string;
17
+ }
18
+ export interface PluginLoader {
19
+ readonly format: string;
20
+ /**
21
+ * The plugins `target` names, or `undefined` when the target is not this format's at all.
22
+ * An empty array is a target that IS this format's and names no plugin — a refusal, never
23
+ * silently nothing.
24
+ */
25
+ resolve(target: string): readonly PluginTarget[] | undefined;
26
+ }
package/dist/loader.js ADDED
@@ -0,0 +1,9 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ // Copyright (C) 2026 Pau Aliagas <linuxnow@gmail.com>
3
+ /**
4
+ * The ONE plugin-discovery seam. A format
5
+ * loader turns a command-line target into the plugins it names. `lv2Loader` and `clapLoader` are
6
+ * its implementations.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;;GAIG"}
@@ -0,0 +1,7 @@
1
+ import type { PluginLoader } from "./loader.js";
2
+ /** The plugins a bundle manifest declares: one statement per subject, `;`-separated predicates. */
3
+ export declare function pluginsInManifest(ttl: string): {
4
+ uri: string;
5
+ binary?: string;
6
+ }[];
7
+ export declare const lv2Loader: PluginLoader;
@@ -0,0 +1,50 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ // Copyright (C) 2026 Pau Aliagas <linuxnow@gmail.com>
3
+ /**
4
+ * The LV2 implementation of the one discovery seam (`loader.ts`, spec §7). A target that names an
5
+ * existing directory is a bundle: every subject its `manifest.ttl` declares `a lv2:Plugin` is a
6
+ * plugin, with its `lv2:binary` basename. Anything else shaped like a URI (`scheme:rest`) is one
7
+ * plugin. A path that does not exist is not this loader's — the CLI refuses it by name.
8
+ *
9
+ * The manifest read is the subset every LV2 bundle's manifest uses (subject, `a lv2:Plugin`,
10
+ * `lv2:binary <x.so>`), not a Turtle parser; `--all` goes through lilv itself.
11
+ */
12
+ import { existsSync, readFileSync, statSync } from "node:fs";
13
+ import { basename, join } from "node:path";
14
+ const URI_SHAPE = /^[A-Za-z][A-Za-z0-9+.-]*:\S+$/;
15
+ /** The plugins a bundle manifest declares: one statement per subject, `;`-separated predicates. */
16
+ export function pluginsInManifest(ttl) {
17
+ const body = ttl.replace(/#[^\n>]*$/gm, "");
18
+ const out = [];
19
+ const statement = /<([^>]+)>\s+((?:[^.<"]|<[^>]*>|"[^"]*")*)\./g;
20
+ for (let m = statement.exec(body); m !== null; m = statement.exec(body)) {
21
+ const [, subject, predicates] = m;
22
+ if (subject === undefined || predicates === undefined)
23
+ continue;
24
+ if (!/(^|;)\s*a\s+lv2:Plugin\b/.test(predicates))
25
+ continue;
26
+ const bin = /lv2:binary\s+<([^>]+)>/.exec(predicates)?.[1];
27
+ out.push(bin === undefined ? { uri: subject } : { uri: subject, binary: basename(bin) });
28
+ }
29
+ return out;
30
+ }
31
+ export const lv2Loader = {
32
+ format: "lv2",
33
+ resolve(target) {
34
+ if (existsSync(target) && statSync(target).isDirectory()) {
35
+ const manifest = join(target, "manifest.ttl");
36
+ if (!existsSync(manifest))
37
+ return [];
38
+ return pluginsInManifest(readFileSync(manifest, "utf8")).map((p) => ({
39
+ format: "lv2",
40
+ uri: p.uri,
41
+ bundle: target,
42
+ ...(p.binary === undefined ? {} : { binary: p.binary }),
43
+ }));
44
+ }
45
+ if (target.includes("/") || target.endsWith(".lv2"))
46
+ return undefined; // a path that is not there
47
+ return URI_SHAPE.test(target) ? [{ format: "lv2", uri: target }] : undefined;
48
+ },
49
+ };
50
+ //# sourceMappingURL=lv2-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lv2-loader.js","sourceRoot":"","sources":["../src/lv2-loader.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAI3C,MAAM,SAAS,GAAG,+BAA+B,CAAC;AAElD,mGAAmG;AACnG,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAuC,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,8CAA8C,CAAC;IACjE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;YAAE,SAAS;QAChE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,SAAS;QAC3D,MAAM,GAAG,GAAG,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAiB;IACrC,MAAM,EAAE,KAAK;IACb,OAAO,CAAC,MAAc;QACpB,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,EAAE,CAAC;YACrC,OAAO,iBAAiB,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,MAAM,EAAE,MAAM;gBACd,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aACxD,CAAC,CAAC,CAAC;QACN,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC,CAAC,2BAA2B;QAClG,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,CAAC;CACF,CAAC"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * `lv2-measure` — the standalone utility's logic, with the subprocess spawning left out.
3
+ *
4
+ * Everything that decides WHAT to run lives here and is pure: argument parsing, the probe
5
+ * pipeline, the progress heuristic, the assembly of the finished document. `tools/lv2-measure.mjs`
6
+ * is the shell that runs the steps and touches the filesystem. Split that way because the
7
+ * interesting failures — a rate silently dropped, a pass run in the wrong order, a partial
8
+ * run written as if complete — are all decisions, and decisions can be tested without a
9
+ * 15-minute sweep and 958 real plugins.
10
+ *
11
+ * ## The pass order is load-bearing
12
+ *
13
+ * `CATALOG_PROVENANCE.md` says it and it is easy to get wrong: the declared-latency pass
14
+ * must run before the measured one, because the measured pass sizes its capture window from
15
+ * the declared figure and computes `declaredMismatch` against it. {@link buildPipeline}
16
+ * encodes that order so no operator has to remember it.
17
+ *
18
+ * ## Nothing probes without an explicit go-ahead
19
+ *
20
+ * The pipeline instantiates and runs every LV2 plugin on the machine. That is a CPU-heavy,
21
+ * mildly hazardous thing to start by accident — a plugin can and does crash its host — so it
22
+ * is gated behind `--run` (or `LV2_MEASURE_RUN=1`), exactly as `benchmark.py` gates itself.
23
+ * `--dry-run` prints the plan and probes nothing.
24
+ */
25
+ import type { MeasurementDocument } from "./format.js";
26
+ import type { MeasurementHost, LatencyMethod } from "./format.js";
27
+ import { type MeasurementDimension } from "./vocabulary.js";
28
+ /** Name and version this tool stamps into every document it writes. */
29
+ export declare const TOOL_NAME = "lv2-measure";
30
+ /**
31
+ * The tool's own version, independent of {@link ../format.MEASUREMENT_FORMAT_VERSION}: the
32
+ * prober can improve without the schema moving, and a consumer comparing two documents
33
+ * needs to know which of the two it was.
34
+ */
35
+ export declare const TOOL_VERSION = "0.1.0";
36
+ /** A fully resolved invocation. */
37
+ export interface MeasureOptions {
38
+ /** Where the document goes. Absent = stdout. */
39
+ readonly outPath?: string;
40
+ readonly rates: readonly number[];
41
+ readonly dimensions: readonly MeasurementDimension[];
42
+ /** An existing prober scan to reuse instead of scanning. */
43
+ readonly scanPath?: string;
44
+ /** Where intermediates are written. */
45
+ readonly workDir: string;
46
+ /** Also sweep latency-bearing controls to find parameter-dependent latency. */
47
+ readonly sweep: boolean;
48
+ /** Core to pin the cost pass to. Absent = let the prober choose. */
49
+ readonly costCpu?: number;
50
+ readonly label?: string;
51
+ /** Directory holding `scan.py` and `benchmark.py`. */
52
+ readonly toolDir: string;
53
+ /** The Python interpreter to run them with. */
54
+ readonly python: string;
55
+ /** The explicit go-ahead to instantiate and run real plugins. */
56
+ readonly run: boolean;
57
+ /** Print the plan and probe nothing. */
58
+ readonly dryRun: boolean;
59
+ }
60
+ /** One subprocess the pipeline runs, and what it leaves behind. */
61
+ export interface PipelineStep {
62
+ /** Stable id: `scan` / `latency-declared` / `latency-measured` / `cost`. */
63
+ readonly id: string;
64
+ readonly command: string;
65
+ readonly args: readonly string[];
66
+ /** The catalog JSON this step writes — the next step's input. */
67
+ readonly produces: string;
68
+ /** The dimension this step measures, when it measures one. */
69
+ readonly dimension?: MeasurementDimension;
70
+ }
71
+ /** The full plan: the steps, and where the run's artefacts land. */
72
+ export interface Pipeline {
73
+ readonly steps: readonly PipelineStep[];
74
+ /** The catalog JSON carrying every annotation once the last step has run. */
75
+ readonly finalCatalog: string;
76
+ /** Where the cost pass writes its machine provenance, when cost is measured. */
77
+ readonly costProvenance?: string;
78
+ }
79
+ /**
80
+ * The probe passes an invocation needs, in the only order that produces correct data.
81
+ *
82
+ * A reused `--scan` skips the scan step; everything else follows from the dimensions asked
83
+ * for. The cost pass reads whatever the latency passes produced, so a run measuring both
84
+ * ends with one file carrying both — which is also why `finalCatalog` is a property of the
85
+ * pipeline rather than a fixed name.
86
+ */
87
+ export declare function buildPipeline(options: MeasureOptions): Pipeline;
88
+ /** A parsed command line, or the reason it could not be parsed. */
89
+ export type ArgParseResult = {
90
+ readonly ok: true;
91
+ readonly options: MeasureOptions;
92
+ } | {
93
+ readonly ok: false;
94
+ readonly error: string;
95
+ };
96
+ /**
97
+ * Parse `lv2-measure`'s command line.
98
+ *
99
+ * There is no default rate list and there never will be. A tool that measures 48 kHz because
100
+ * the operator forgot to say produces a document whose figures are about a rate nobody asked
101
+ * for, and the whole point of a per-rate format is that such a document is a lie by omission.
102
+ */
103
+ export declare function parseMeasureArgs(argv: readonly string[], env: Readonly<Record<string, string | undefined>> | undefined, defaults: {
104
+ readonly toolDir: string;
105
+ readonly workDir: string;
106
+ }): ArgParseResult;
107
+ /** One thing the prober's stderr said, as far as a progress bar is concerned. */
108
+ export type ProbeProgress = {
109
+ readonly kind: "phase";
110
+ readonly plugins: number;
111
+ readonly rate: number;
112
+ } | {
113
+ readonly kind: "plugin";
114
+ };
115
+ /**
116
+ * Interpret one line of the prober's stderr.
117
+ *
118
+ * A HEURISTIC over a human-readable log, and worth being honest about: it recognises the
119
+ * phase banner (`== measuring N plugin(s) at R Hz`) and counts the indented one-line-per-
120
+ * plugin results that follow, successes and failures alike. It does not parse the figures —
121
+ * those come from the JSON, which is authoritative. A line it does not recognise advances
122
+ * nothing, so an unparsed log stalls the progress bar rather than corrupting the data.
123
+ */
124
+ export declare function parseProbeProgress(line: string): ProbeProgress | undefined;
125
+ /** How far through the current phase the prober is. */
126
+ export interface ProgressState {
127
+ /** The rate the current phase is measuring at. 0 before the first banner. */
128
+ readonly rate: number;
129
+ readonly done: number;
130
+ readonly total: number;
131
+ }
132
+ /** Nothing has been reported yet. */
133
+ export declare const INITIAL_PROGRESS: ProgressState;
134
+ /**
135
+ * Fold one parsed progress event into the running state.
136
+ *
137
+ * The clamp is the point. Each phase ends with its own indented summary lines, which look
138
+ * exactly like plugin results to a line-shape heuristic — so a naive counter reports 10 of 6
139
+ * plugins done, and a progress bar that overshoots teaches an operator to distrust it. Once
140
+ * the phase's own stated total is reached, further plugin lines advance nothing.
141
+ */
142
+ export declare function advanceProgress(state: ProgressState, event: ProbeProgress): ProgressState;
143
+ /** Everything {@link assembleDocument} needs beyond the probe output. */
144
+ export interface AssemblyInput {
145
+ readonly options: MeasureOptions;
146
+ /** The final catalog JSON, already parsed. */
147
+ readonly catalog: unknown;
148
+ /** The cost pass's provenance JSON, already parsed. Absent on a latency-only run. */
149
+ readonly costProvenance?: unknown;
150
+ /** Host facts, for a run whose provenance the cost pass did not write. */
151
+ readonly host: MeasurementHost;
152
+ readonly runId: string;
153
+ readonly measuredAt: string;
154
+ readonly elapsedSeconds?: number;
155
+ }
156
+ /** The latency method a `--measure` pass at this block size represents. */
157
+ export declare function latencyMethodFor(options: MeasureOptions, blockFrames: number): LatencyMethod;
158
+ /** The block size the latency pass uses when nothing overrides it — `benchmark.py`'s own. */
159
+ export declare const DEFAULT_LATENCY_BLOCK_FRAMES = 512;
160
+ /**
161
+ * Fold a finished run into a document.
162
+ *
163
+ * The cost pass's own provenance wins for the host block when it exists: it was written by
164
+ * the process that did the timing, pinned to the core it timed on, and it knows things a
165
+ * post-hoc reader cannot (which core, at what governor, at that moment). Only when there is
166
+ * no cost pass do the caller's collected facts stand in.
167
+ */
168
+ export declare function assembleDocument(input: AssemblyInput): MeasurementDocument;