@openmixer/plugin-qualify 0.10.1 → 0.11.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/README.md +46 -10
- package/bin/plugin-qualify.mjs +61 -28
- package/dist/clap-loader.d.ts +1 -1
- package/dist/clap-loader.js +3 -3
- package/dist/clap-loader.js.map +1 -1
- package/dist/clap-qualify.d.ts +0 -47
- package/dist/clap-qualify.js +2 -88
- package/dist/clap-qualify.js.map +1 -1
- package/dist/cost-fields.d.ts +26 -0
- package/dist/cost-fields.js +30 -0
- package/dist/cost-fields.js.map +1 -1
- package/dist/hosting-codes.d.ts +1 -0
- package/dist/hosting-codes.js +1 -0
- package/dist/hosting-codes.js.map +1 -1
- package/dist/hosting-suitability.d.ts +11 -1
- package/dist/hosting-suitability.js +11 -2
- package/dist/hosting-suitability.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/judge-cli.d.ts +41 -0
- package/dist/judge-cli.js +114 -0
- package/dist/judge-cli.js.map +1 -0
- package/dist/measurement/probe-json.js +1 -0
- package/dist/measurement/probe-json.js.map +1 -1
- package/dist/measurement/vocabulary.js +6 -0
- package/dist/measurement/vocabulary.js.map +1 -1
- package/dist/probe-judge.d.ts +60 -0
- package/dist/probe-judge.js +213 -0
- package/dist/probe-judge.js.map +1 -0
- package/dist/probe-output-fixtures.d.ts +25 -0
- package/dist/probe-output-fixtures.js +134 -0
- package/dist/probe-output-fixtures.js.map +1 -0
- package/dist/probe-output.d.ts +150 -0
- package/dist/probe-output.js +369 -0
- package/dist/probe-output.js.map +1 -0
- package/dist/probe-runner.d.ts +79 -0
- package/dist/probe-runner.js +191 -0
- package/dist/probe-runner.js.map +1 -0
- package/dist/qualification-record.d.ts +80 -0
- package/dist/qualification-record.js +85 -0
- package/dist/qualification-record.js.map +1 -0
- package/dist/qualify-cli.js +1 -1
- package/dist/qualify-cli.js.map +1 -1
- package/dist/qualify-declarations.d.ts +11 -2
- package/dist/qualify-declarations.js +14 -4
- package/dist/qualify-declarations.js.map +1 -1
- package/fixtures/clap-scan/fake.json +30 -6
- package/fixtures/probe-output/memory-limit-refused.json +190 -0
- package/fixtures/probe-output/plugin-crash.json +236 -0
- package/fixtures/probe-output/success-msi.json +363 -0
- package/package.json +5 -1
- package/src/clap-loader.ts +3 -2
- package/src/clap-qualify.ts +2 -133
- package/src/cost-fields.ts +39 -0
- package/src/hosting-codes.ts +1 -0
- package/src/hosting-suitability.ts +21 -3
- package/src/index.ts +5 -0
- package/src/judge-cli.ts +133 -0
- package/src/measurement/probe-json.ts +1 -0
- package/src/measurement/vocabulary.ts +7 -0
- package/src/probe-judge.ts +264 -0
- package/src/probe-output-fixtures.ts +146 -0
- package/src/probe-output.ts +505 -0
- package/src/probe-runner.ts +244 -0
- package/src/qualification-record.ts +142 -0
- package/src/qualify-cli.ts +1 -1
- package/src/qualify-declarations.ts +16 -4
- package/tools/benchmark.py +12 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
// Copyright (C) 2026 Pau Aliagas <linuxnow@gmail.com>
|
|
3
|
+
/**
|
|
4
|
+
* Measuring through plugin-hostd's probe runner (`plugin-hostd-probe run`). The runner starts the
|
|
5
|
+
* prober under limits (a wall clock that kills the whole process tree, CPU time, memory, files),
|
|
6
|
+
* and writes the probe output; plugin-qualify waits for the runner and reads the document. No
|
|
7
|
+
* timeout of ours sits around it: the runner owns the deadline, and a node timer that signalled only
|
|
8
|
+
* the direct child is exactly what the runner replaces.
|
|
9
|
+
*
|
|
10
|
+
* The runner's exit says whether there is a document: 0 and 1 write one (1 is a run whose steps did
|
|
11
|
+
* not all end well, which the document records), 2 is no document (usage, a required limit
|
|
12
|
+
* unavailable, an output that could not be written), 3 is no such plugin.
|
|
13
|
+
*/
|
|
14
|
+
import { spawnSync } from "node:child_process";
|
|
15
|
+
import { existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs";
|
|
16
|
+
import { tmpdir } from "node:os";
|
|
17
|
+
import { join } from "node:path";
|
|
18
|
+
import { ClapQualifyError, clapQualifyTools, proberOffer } from "./clap-qualify.js";
|
|
19
|
+
import { OPENMIXER_CONSOLE_PROFILE } from "./host-profiles.js";
|
|
20
|
+
import { judgeProbeOutput, judgmentVerdicts } from "./probe-judge.js";
|
|
21
|
+
import { readProbeOutput } from "./probe-output.js";
|
|
22
|
+
import { CLAP_QUALIFY_TIMEOUT_S, CLAP_SWEEP_BLOCKS, CLAP_SWEEP_FRAMES, LV2_HOSTING_BLOCK_FRAMES, LV2_HOSTING_TIMEOUT_S, PROBE_RUNNER_DEFAULT, PROBE_RUNNER_ENV, } from "./qualify-declarations.js";
|
|
23
|
+
export class ProbeRunnerError extends Error {
|
|
24
|
+
constructor(message) {
|
|
25
|
+
super(message);
|
|
26
|
+
this.name = "ProbeRunnerError";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** The runner: the declared setting when set, else the declared default (on `PATH`). */
|
|
30
|
+
export function probeRunnerTool(env) {
|
|
31
|
+
const named = env[PROBE_RUNNER_ENV];
|
|
32
|
+
return named === undefined || named === "" ? PROBE_RUNNER_DEFAULT : named;
|
|
33
|
+
}
|
|
34
|
+
const spawnRunner = (tool, args, env) => {
|
|
35
|
+
const r = spawnSync(tool, [...args], { encoding: "utf8", env: { ...env }, maxBuffer: 64 << 20 });
|
|
36
|
+
return { status: r.status, signal: r.signal, stderr: r.stderr ?? "", ...(r.error === undefined ? {} : { error: r.error }) };
|
|
37
|
+
};
|
|
38
|
+
/** The runner's arguments for a CLAP file; `child` is the prober the runner starts. */
|
|
39
|
+
export function clapRunnerArgs(options, binaryPath, id) {
|
|
40
|
+
return [
|
|
41
|
+
"run",
|
|
42
|
+
"--child",
|
|
43
|
+
options.child,
|
|
44
|
+
"--rates",
|
|
45
|
+
options.rates.join(","),
|
|
46
|
+
"--quantum",
|
|
47
|
+
String(CLAP_SWEEP_FRAMES),
|
|
48
|
+
"--blocks",
|
|
49
|
+
String(CLAP_SWEEP_BLOCKS),
|
|
50
|
+
...(options.offer === undefined || options.offer.length === 0 ? [] : ["--offer", options.offer.join(",")]),
|
|
51
|
+
"--wall-s",
|
|
52
|
+
String(CLAP_QUALIFY_TIMEOUT_S),
|
|
53
|
+
"--out",
|
|
54
|
+
options.out,
|
|
55
|
+
"--log",
|
|
56
|
+
options.log,
|
|
57
|
+
binaryPath,
|
|
58
|
+
...(id === undefined ? [] : [id]),
|
|
59
|
+
];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The runner's arguments for an LV2 plugin, named as `lv2:<uri>` and measured by the runner's own LV2
|
|
63
|
+
* child. The runner of plugin-hostd 0.4.0 starts a CLAP prober only (the LV2 child, plugin-hostd#76, is in no release yet), so
|
|
64
|
+
* against it this run ends with the runner's own refusal, which {@link runOne} reports.
|
|
65
|
+
*/
|
|
66
|
+
export function lv2RunnerArgs(options, uri) {
|
|
67
|
+
return [
|
|
68
|
+
"run",
|
|
69
|
+
"--rates",
|
|
70
|
+
options.rates.join(","),
|
|
71
|
+
"--quantum",
|
|
72
|
+
String(LV2_HOSTING_BLOCK_FRAMES),
|
|
73
|
+
"--wall-s",
|
|
74
|
+
String(LV2_HOSTING_TIMEOUT_S),
|
|
75
|
+
"--out",
|
|
76
|
+
options.out,
|
|
77
|
+
"--log",
|
|
78
|
+
options.log,
|
|
79
|
+
`lv2:${uri}`,
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
function runOne(target, options) {
|
|
83
|
+
const env = options.env ?? process.env;
|
|
84
|
+
const tool = probeRunnerTool(env);
|
|
85
|
+
const work = mkdtempSync(join(tmpdir(), "plugin-qualify-probe-"));
|
|
86
|
+
const out = join(work, "probe.json");
|
|
87
|
+
const log = join(work, "child.stderr.log");
|
|
88
|
+
try {
|
|
89
|
+
let args;
|
|
90
|
+
let runEnv = { ...env };
|
|
91
|
+
let expectedId;
|
|
92
|
+
if (target.format === "clap") {
|
|
93
|
+
if (target.binaryPath === undefined)
|
|
94
|
+
throw new ProbeRunnerError(`${target.uri}: no .clap to load; name the file or a directory holding it`);
|
|
95
|
+
expectedId = target.uri.startsWith("urn:clap:") ? target.uri.slice("urn:clap:".length) : target.uri;
|
|
96
|
+
const { tool: child, interposer } = clapQualifyTools(env, options.exists ?? existsSync);
|
|
97
|
+
args = clapRunnerArgs({ rates: options.rates, ...(options.offer === undefined ? {} : { offer: options.offer }), out, log, child }, target.binaryPath, expectedId);
|
|
98
|
+
runEnv = { ...env, LD_PRELOAD: interposer };
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
expectedId = target.uri;
|
|
102
|
+
args = lv2RunnerArgs({ rates: options.rates, out, log }, target.uri);
|
|
103
|
+
}
|
|
104
|
+
const r = (options.run ?? spawnRunner)(tool, args, runEnv);
|
|
105
|
+
if (r.error !== undefined) {
|
|
106
|
+
throw new ProbeRunnerError(`cannot run the probe runner "${tool}" (${r.error.message}): install plugin-hostd or set ${PROBE_RUNNER_ENV} to plugin-hostd-probe`);
|
|
107
|
+
}
|
|
108
|
+
if (r.signal)
|
|
109
|
+
throw new ProbeRunnerError(`${tool} was killed (${r.signal}) measuring ${target.uri}`);
|
|
110
|
+
const said = (r.stderr ?? "").trim();
|
|
111
|
+
if (r.status === 3)
|
|
112
|
+
throw new ProbeRunnerError(`${tool}: no such plugin ${target.uri}${said === "" ? "" : `: ${said}`}`);
|
|
113
|
+
if (r.status !== 0 && r.status !== 1) {
|
|
114
|
+
throw new ProbeRunnerError(`${tool} exited ${String(r.status)} measuring ${target.uri}, and wrote no document${said === "" ? "" : `: ${said}`}`);
|
|
115
|
+
}
|
|
116
|
+
let bytes;
|
|
117
|
+
try {
|
|
118
|
+
bytes = readFileSync(out);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
throw new ProbeRunnerError(`${tool} exited ${String(r.status)} but wrote no document at the path it was given`);
|
|
122
|
+
}
|
|
123
|
+
const read = readProbeOutput(bytes.toString("utf8"));
|
|
124
|
+
if (!read.ok)
|
|
125
|
+
throw new ProbeRunnerError(`${tool} wrote a document that is refused (${read.code}): ${read.problem}`);
|
|
126
|
+
if (read.output.plugin.id !== expectedId) {
|
|
127
|
+
throw new ProbeRunnerError(`${tool} measured ${read.output.plugin.id} when asked for ${expectedId}: not judged as the plugin asked for`);
|
|
128
|
+
}
|
|
129
|
+
return { bytes, output: read.output };
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
rmSync(work, { recursive: true, force: true });
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/** The probe output of one target, through the runner. Throws {@link ProbeRunnerError} when there is none to judge. */
|
|
136
|
+
export function probeTarget(target, options) {
|
|
137
|
+
return runOne(target, options);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Measure every target through the runner, one run per target and set of offered extensions (a crash
|
|
141
|
+
* takes only that plugin), and judge each probe output under the profiles whose offer it was taken
|
|
142
|
+
* with. A CLAP profile the prober cannot stand in for is judged from the run with no offer and reads
|
|
143
|
+
* `unknown` there, as before. An LV2 plugin has one run for every profile.
|
|
144
|
+
*/
|
|
145
|
+
export function qualifyTargets(targets, options) {
|
|
146
|
+
const profiles = options.profiles ?? [OPENMIXER_CONSOLE_PROFILE];
|
|
147
|
+
const runs = [];
|
|
148
|
+
const verdicts = [];
|
|
149
|
+
const documents = [];
|
|
150
|
+
const failures = [];
|
|
151
|
+
for (const target of targets) {
|
|
152
|
+
const byOffer = new Map();
|
|
153
|
+
for (const profile of profiles) {
|
|
154
|
+
const offer = target.format === "clap" ? (proberOffer(profile) ?? []) : [];
|
|
155
|
+
const key = offer.join(",");
|
|
156
|
+
const entry = byOffer.get(key) ?? { offer, profiles: [] };
|
|
157
|
+
entry.profiles.push(profile);
|
|
158
|
+
byOffer.set(key, entry);
|
|
159
|
+
}
|
|
160
|
+
const judged = new Map();
|
|
161
|
+
// a target's runs and documents count only when every one of its runs gave a probe output: one that
|
|
162
|
+
// failed leaves the target not measured, and then nothing of it is recorded or pinned
|
|
163
|
+
const targetRuns = [];
|
|
164
|
+
try {
|
|
165
|
+
for (const { offer, profiles: forOffer } of byOffer.values()) {
|
|
166
|
+
const probed = probeTarget(target, { ...options, offer });
|
|
167
|
+
const judgment = judgeProbeOutput(probed.output, forOffer);
|
|
168
|
+
targetRuns.push({ bytes: probed.bytes, judgment });
|
|
169
|
+
for (const v of judgmentVerdicts(judgment))
|
|
170
|
+
judged.set(v.host, v);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch (e) {
|
|
174
|
+
if (!(e instanceof ProbeRunnerError) && !(e instanceof ClapQualifyError))
|
|
175
|
+
throw e;
|
|
176
|
+
failures.push({ uri: target.uri, problem: e.message });
|
|
177
|
+
for (const profile of profiles) {
|
|
178
|
+
verdicts.push({ uri: target.uri, host: profile.id, measured: false, rating: "unknown", qualified: false, deciding: "not-measured" });
|
|
179
|
+
}
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
for (const r of targetRuns) {
|
|
183
|
+
runs.push(r);
|
|
184
|
+
documents.push(...r.judgment.documents);
|
|
185
|
+
}
|
|
186
|
+
for (const profile of profiles)
|
|
187
|
+
verdicts.push(judged.get(profile.id));
|
|
188
|
+
}
|
|
189
|
+
return { runs, verdicts, documents, failures };
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=probe-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-runner.js","sourceRoot":"","sources":["../src/probe-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { Judgment, RecordReason } from "./probe-judge.js";
|
|
2
|
+
import { type ProbeGridPoint, type ProbeOutput } from "./probe-output.js";
|
|
3
|
+
export declare const QUALIFICATION_RECORD_SCHEMA = "plugin-qualify.qualification-record/1";
|
|
4
|
+
/** One host's verdict in the record. */
|
|
5
|
+
export interface RecordVerdict {
|
|
6
|
+
readonly host: string;
|
|
7
|
+
/** False when the run did not finish: the rating is `unknown` and the reason is the run's outcome. */
|
|
8
|
+
readonly measured: boolean;
|
|
9
|
+
readonly rating: string;
|
|
10
|
+
readonly qualified: boolean;
|
|
11
|
+
readonly hosting: "in-process" | "isolated";
|
|
12
|
+
/** The code that decided it; absent for `suitable`. */
|
|
13
|
+
readonly deciding?: string;
|
|
14
|
+
readonly reasons: readonly RecordReason[];
|
|
15
|
+
}
|
|
16
|
+
export interface QualificationRecord {
|
|
17
|
+
readonly schema: typeof QUALIFICATION_RECORD_SCHEMA;
|
|
18
|
+
readonly plugin: {
|
|
19
|
+
readonly format: string;
|
|
20
|
+
readonly id: string;
|
|
21
|
+
readonly name?: string;
|
|
22
|
+
};
|
|
23
|
+
/** The plugin's version when it was tested; a newer installed one is shown as "tested on X, installed Y". */
|
|
24
|
+
readonly testedVersion?: string;
|
|
25
|
+
readonly binary: ProbeOutput["binary"];
|
|
26
|
+
readonly verdicts: readonly RecordVerdict[];
|
|
27
|
+
/** The cost reasons at each host's rate and quantum, beside the verdicts. */
|
|
28
|
+
readonly cost: readonly {
|
|
29
|
+
readonly host: string;
|
|
30
|
+
readonly rate: number;
|
|
31
|
+
readonly quantum: number;
|
|
32
|
+
readonly reasons: readonly RecordReason[];
|
|
33
|
+
}[];
|
|
34
|
+
/** The figures as measured, per rate and quantum. */
|
|
35
|
+
readonly measurements: {
|
|
36
|
+
readonly grid: readonly ProbeGridPoint[];
|
|
37
|
+
readonly behaviour?: Readonly<Record<string, unknown>>;
|
|
38
|
+
};
|
|
39
|
+
/** Who measured and when. */
|
|
40
|
+
readonly tool: Readonly<Record<string, string>>;
|
|
41
|
+
readonly measuredAt: string;
|
|
42
|
+
/** The probe output this record judged. */
|
|
43
|
+
readonly probe: {
|
|
44
|
+
readonly file: string;
|
|
45
|
+
readonly sha256: string;
|
|
46
|
+
readonly bytes: number;
|
|
47
|
+
readonly protocol: {
|
|
48
|
+
readonly name: string;
|
|
49
|
+
readonly version: number;
|
|
50
|
+
};
|
|
51
|
+
readonly reason?: string;
|
|
52
|
+
readonly outcome: string;
|
|
53
|
+
readonly complete: boolean;
|
|
54
|
+
readonly machineClass: Readonly<Record<string, string | boolean>>;
|
|
55
|
+
/** Whether the machine met the protocol's optimised profile: a figure that did not is not a reference figure. */
|
|
56
|
+
readonly meetsProtocol: boolean;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** `<id>@<version>-<sha256 first 12>.<offer>`: one binary and one offer, whatever the run. */
|
|
60
|
+
export declare function qualificationBaseName(output: ProbeOutput): string;
|
|
61
|
+
export declare const recordFileName: (output: ProbeOutput) => string;
|
|
62
|
+
export declare const probeCopyFileName: (output: ProbeOutput) => string;
|
|
63
|
+
export declare function buildQualificationRecord(judgment: Judgment, copy: {
|
|
64
|
+
file: string;
|
|
65
|
+
sha256: string;
|
|
66
|
+
bytes: number;
|
|
67
|
+
}): QualificationRecord;
|
|
68
|
+
/** The record of a judgment, with the copy fields taken from the bytes that were judged. */
|
|
69
|
+
export declare function qualificationRecordOf(probeBytes: Uint8Array, judgment: Judgment): QualificationRecord;
|
|
70
|
+
export interface WrittenQualification {
|
|
71
|
+
readonly recordPath: string;
|
|
72
|
+
readonly probePath: string;
|
|
73
|
+
readonly record: QualificationRecord;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Write the byte copy of the probe output, then the record that names it. The copy goes first, and the
|
|
77
|
+
* record names the SHA-256 of the copy as it is on disk, read back, so a record never names bytes that
|
|
78
|
+
* are not there. A rescan of the same binary and offer replaces both.
|
|
79
|
+
*/
|
|
80
|
+
export declare function writeQualification(dir: string, probeBytes: Uint8Array, judgment: Judgment): WrittenQualification;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
// Copyright (C) 2026 Pau Aliagas <linuxnow@gmail.com>
|
|
3
|
+
/**
|
|
4
|
+
* The qualification record: what plugin-qualify wrote down about one plugin binary and one offer
|
|
5
|
+
* after judging its probe output, kept in `qualification_dir`. Evidence, not a constraint: no
|
|
6
|
+
* reader refuses a descriptor because of it.
|
|
7
|
+
*
|
|
8
|
+
* Two files, always together. The record is the judgment; beside it is a byte copy of the probe
|
|
9
|
+
* output it judged, because the probe directory is runtime and may be wiped. The record names the
|
|
10
|
+
* copy and the SHA-256 of the copy's bytes, so the facts outlive the run without hostd keeping a
|
|
11
|
+
* second store, and a reader can tell that the figures it holds are the ones the verdict came from.
|
|
12
|
+
*
|
|
13
|
+
* Not yet in the record: the fingerprint of the descriptor's controls, since the descriptor is
|
|
14
|
+
* written by the scan (stage 5) and plugin-qualify does not read one yet.
|
|
15
|
+
*/
|
|
16
|
+
import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
17
|
+
import { join } from "node:path";
|
|
18
|
+
import { sha256Hex } from "./probe-output.js";
|
|
19
|
+
export const QUALIFICATION_RECORD_SCHEMA = "plugin-qualify.qualification-record/1";
|
|
20
|
+
const safe = (text) => text.replace(/[^A-Za-z0-9._-]/g, "_");
|
|
21
|
+
/** `<id>@<version>-<sha256 first 12>.<offer>`: one binary and one offer, whatever the run. */
|
|
22
|
+
export function qualificationBaseName(output) {
|
|
23
|
+
return `${safe(output.plugin.id)}@${safe(output.plugin.version ?? "unversioned")}-${output.binary.sha256.slice(0, 12)}.${safe(output.offer.id)}`;
|
|
24
|
+
}
|
|
25
|
+
export const recordFileName = (output) => `${qualificationBaseName(output)}.qualification.json`;
|
|
26
|
+
export const probeCopyFileName = (output) => `${qualificationBaseName(output)}.probe.json`;
|
|
27
|
+
export function buildQualificationRecord(judgment, copy) {
|
|
28
|
+
const o = judgment.output;
|
|
29
|
+
return {
|
|
30
|
+
schema: QUALIFICATION_RECORD_SCHEMA,
|
|
31
|
+
plugin: { format: o.plugin.format, id: o.plugin.id, ...(o.plugin.name === undefined ? {} : { name: o.plugin.name }) },
|
|
32
|
+
...(o.plugin.version === undefined ? {} : { testedVersion: o.plugin.version }),
|
|
33
|
+
binary: o.binary,
|
|
34
|
+
verdicts: judgment.hosts.map((h) => ({
|
|
35
|
+
host: h.verdict.host,
|
|
36
|
+
measured: h.verdict.measured,
|
|
37
|
+
rating: h.verdict.rating,
|
|
38
|
+
qualified: h.verdict.qualified,
|
|
39
|
+
hosting: h.hosting,
|
|
40
|
+
...(h.verdict.deciding === undefined ? {} : { deciding: h.verdict.deciding }),
|
|
41
|
+
reasons: h.reasons,
|
|
42
|
+
})),
|
|
43
|
+
cost: judgment.hosts.map((h) => ({ host: h.verdict.host, ...h.cost })),
|
|
44
|
+
measurements: { grid: o.grid, ...(o.behaviour === undefined ? {} : { behaviour: o.behaviour }) },
|
|
45
|
+
tool: o.run.tools,
|
|
46
|
+
measuredAt: o.run.startedAt,
|
|
47
|
+
probe: {
|
|
48
|
+
file: copy.file,
|
|
49
|
+
sha256: copy.sha256,
|
|
50
|
+
bytes: copy.bytes,
|
|
51
|
+
protocol: o.run.protocol,
|
|
52
|
+
...(o.run.reason === undefined ? {} : { reason: o.run.reason }),
|
|
53
|
+
outcome: o.run.outcome,
|
|
54
|
+
complete: o.run.complete,
|
|
55
|
+
machineClass: o.machine.class,
|
|
56
|
+
meetsProtocol: o.machine.profile.meetsProtocol,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** The record of a judgment, with the copy fields taken from the bytes that were judged. */
|
|
61
|
+
export function qualificationRecordOf(probeBytes, judgment) {
|
|
62
|
+
return buildQualificationRecord(judgment, { file: probeCopyFileName(judgment.output), sha256: sha256Hex(probeBytes), bytes: probeBytes.length });
|
|
63
|
+
}
|
|
64
|
+
/** A file whole or not at all: written beside its name and renamed over it. */
|
|
65
|
+
function writeWhole(path, bytes) {
|
|
66
|
+
const pending = `${path}.new`;
|
|
67
|
+
writeFileSync(pending, bytes);
|
|
68
|
+
renameSync(pending, path);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Write the byte copy of the probe output, then the record that names it. The copy goes first, and the
|
|
72
|
+
* record names the SHA-256 of the copy as it is on disk, read back, so a record never names bytes that
|
|
73
|
+
* are not there. A rescan of the same binary and offer replaces both.
|
|
74
|
+
*/
|
|
75
|
+
export function writeQualification(dir, probeBytes, judgment) {
|
|
76
|
+
mkdirSync(dir, { recursive: true });
|
|
77
|
+
const probePath = join(dir, probeCopyFileName(judgment.output));
|
|
78
|
+
writeWhole(probePath, probeBytes);
|
|
79
|
+
const copy = readFileSync(probePath);
|
|
80
|
+
const record = buildQualificationRecord(judgment, { file: probeCopyFileName(judgment.output), sha256: sha256Hex(copy), bytes: copy.length });
|
|
81
|
+
const recordPath = join(dir, recordFileName(judgment.output));
|
|
82
|
+
writeWhole(recordPath, `${JSON.stringify(record, null, 2)}\n`);
|
|
83
|
+
return { recordPath, probePath, record };
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=qualification-record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qualification-record.js","sourceRoot":"","sources":["../src/qualification-record.ts"],"names":[],"mappings":"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"}
|
package/dist/qualify-cli.js
CHANGED
|
@@ -100,7 +100,7 @@ export function helpText() {
|
|
|
100
100
|
" plugin-qualify <uri|bundle-path>... exactly the named plugins; a .lv2 bundle = every plugin in it",
|
|
101
101
|
" plugin-qualify --all every CLAP plugin on CLAP_PATH, then ~/.clap, then /usr/lib/clap;",
|
|
102
102
|
" refuses (exit 2) when LV2 bundles are on the LV2 path (LV2_PATH),",
|
|
103
|
-
"
|
|
103
|
+
" whose plugins --all does not enumerate: name them instead",
|
|
104
104
|
"",
|
|
105
105
|
...rows,
|
|
106
106
|
"",
|
package/dist/qualify-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qualify-cli.js","sourceRoot":"","sources":["../src/qualify-cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qualify-cli.js","sourceRoot":"","sources":["../src/qualify-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,9 +19,9 @@ export declare const MEASURE_BASE_RATE = 48000;
|
|
|
19
19
|
* `nonconforming` (`lv2-measurement-interchange.md` §1a).
|
|
20
20
|
*/
|
|
21
21
|
export declare const OPERATIONAL_RATE_FLOOR = 48000;
|
|
22
|
-
/** The rates a run measures when `--rates` is not given — recorded in `run.rates
|
|
22
|
+
/** The rates a run measures when `--rates` is not given — recorded in `run.rates`: omx-contract's ORACLE_FLOOR_RATES. */
|
|
23
23
|
export declare const QUALIFY_RATES: readonly number[];
|
|
24
|
-
/** The quanta (frames) a run rates cost at when `--quanta` is not given. */
|
|
24
|
+
/** The quanta (frames) a run rates cost at when `--quanta` is not given: the contract's hard-target quantum, then 256, 512 and the reference. */
|
|
25
25
|
export declare const QUALIFY_QUANTA: readonly number[];
|
|
26
26
|
/** Seconds one plugin's offline pass may take before its worker is killed and it reads as a timeout. */
|
|
27
27
|
export declare const PLUGIN_TIMEOUT_S = 15;
|
|
@@ -61,6 +61,15 @@ export declare const CLAP_SCAN_TOOL_DEFAULT = "omx-clap-scan";
|
|
|
61
61
|
export declare const CLAP_PATH_ENV = "CLAP_PATH";
|
|
62
62
|
export declare const CLAP_USER_DIR = ".clap";
|
|
63
63
|
export declare const CLAP_SYSTEM_DIR = "/usr/lib/clap";
|
|
64
|
+
/** Names a directory to read in place of `CLAP_SYSTEM_DIR`: a package root, or a test that must not see what the host installed there. */
|
|
65
|
+
export declare const CLAP_SYSTEM_DIR_ENV = "OMX_CLAP_SYSTEM_DIR";
|
|
66
|
+
/**
|
|
67
|
+
* The ONE setting that locates plugin-hostd's probe runner: the environment variable that names the
|
|
68
|
+
* `plugin-hostd-probe` binary, and what is run when it is unset (looked up on `PATH`). The runner is
|
|
69
|
+
* plugin-hostd's, not a tool of this package, so it is not one of `NATIVE_TOOLS`.
|
|
70
|
+
*/
|
|
71
|
+
export declare const PROBE_RUNNER_ENV = "OMX_PROBE_RUNNER";
|
|
72
|
+
export declare const PROBE_RUNNER_DEFAULT = "plugin-hostd-probe";
|
|
64
73
|
/** Seconds one run of the CLAP scanner may take over everything it was pointed at. */
|
|
65
74
|
export declare const CLAP_SCAN_TIMEOUT_S = 300;
|
|
66
75
|
/**
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
// Copyright (C) 2026 Pau Aliagas <linuxnow@gmail.com>
|
|
3
|
+
import { ORACLE_FLOOR_RATES, RT_HARD_TARGET } from "@openmixer/omx-contract";
|
|
3
4
|
/**
|
|
4
5
|
* EVERY NUMBER plugin-qualify uses, declared once. The CLI's defaults and `--help`, the rating, and the Python tools (through the generated
|
|
5
6
|
* `tools/_declarations.py`) all READ these; a consumer holding its own copy is what the package's
|
|
@@ -21,10 +22,10 @@ export const MEASURE_BASE_RATE = 48000;
|
|
|
21
22
|
* `nonconforming` (`lv2-measurement-interchange.md` §1a).
|
|
22
23
|
*/
|
|
23
24
|
export const OPERATIONAL_RATE_FLOOR = 48000;
|
|
24
|
-
/** The rates a run measures when `--rates` is not given — recorded in `run.rates
|
|
25
|
-
export const QUALIFY_RATES =
|
|
26
|
-
/** The quanta (frames) a run rates cost at when `--quanta` is not given. */
|
|
27
|
-
export const QUALIFY_QUANTA = [
|
|
25
|
+
/** The rates a run measures when `--rates` is not given — recorded in `run.rates`: omx-contract's ORACLE_FLOOR_RATES. */
|
|
26
|
+
export const QUALIFY_RATES = ORACLE_FLOOR_RATES;
|
|
27
|
+
/** The quanta (frames) a run rates cost at when `--quanta` is not given: the contract's hard-target quantum, then 256, 512 and the reference. */
|
|
28
|
+
export const QUALIFY_QUANTA = [RT_HARD_TARGET.quantum, 256, 512, QUANTUM_FRAMES];
|
|
28
29
|
/** Seconds one plugin's offline pass may take before its worker is killed and it reads as a timeout. */
|
|
29
30
|
export const PLUGIN_TIMEOUT_S = 15;
|
|
30
31
|
/** Seconds the offline worker may take to start (lilv world load on a large LV2_PATH). */
|
|
@@ -63,6 +64,15 @@ export const CLAP_SCAN_TOOL_DEFAULT = "omx-clap-scan";
|
|
|
63
64
|
export const CLAP_PATH_ENV = "CLAP_PATH";
|
|
64
65
|
export const CLAP_USER_DIR = ".clap";
|
|
65
66
|
export const CLAP_SYSTEM_DIR = "/usr/lib/clap";
|
|
67
|
+
/** Names a directory to read in place of `CLAP_SYSTEM_DIR`: a package root, or a test that must not see what the host installed there. */
|
|
68
|
+
export const CLAP_SYSTEM_DIR_ENV = "OMX_CLAP_SYSTEM_DIR";
|
|
69
|
+
/**
|
|
70
|
+
* The ONE setting that locates plugin-hostd's probe runner: the environment variable that names the
|
|
71
|
+
* `plugin-hostd-probe` binary, and what is run when it is unset (looked up on `PATH`). The runner is
|
|
72
|
+
* plugin-hostd's, not a tool of this package, so it is not one of `NATIVE_TOOLS`.
|
|
73
|
+
*/
|
|
74
|
+
export const PROBE_RUNNER_ENV = "OMX_PROBE_RUNNER";
|
|
75
|
+
export const PROBE_RUNNER_DEFAULT = "plugin-hostd-probe";
|
|
66
76
|
/** Seconds one run of the CLAP scanner may take over everything it was pointed at. */
|
|
67
77
|
export const CLAP_SCAN_TIMEOUT_S = 300;
|
|
68
78
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qualify-declarations.js","sourceRoot":"","sources":["../src/qualify-declarations.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAEnC,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAE5C,
|
|
1
|
+
{"version":3,"file":"qualify-declarations.js","sourceRoot":"","sources":["../src/qualify-declarations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,40 @@
|
|
|
1
|
-
{"scanner":"omx-clap-scan","version":"0.
|
|
1
|
+
{"scanner":"omx-clap-scan","version":"0.10.0","files":[
|
|
2
2
|
{"path":"fake.clap","plugins":[
|
|
3
3
|
{"id":"org.omx-clap-host.test.wide","name":"wide","vendor":"omx-clap-host","version":"0","description":"wide","url":"","features":["audio-effect"],"params":[
|
|
4
|
-
{"id":0,"name":"latency","module":"","min":0,"max":4096,"default":64,"flags":["stepped"]}
|
|
4
|
+
{"id":0,"name":"latency","module":"","min":0,"max":4096,"default":64,"flags":["stepped"]},
|
|
5
|
+
{"id":1,"name":"activations","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
6
|
+
{"id":2,"name":"process calls","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
7
|
+
{"id":3,"name":"host preset-load","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]}
|
|
5
8
|
],"audio_ports":{"inputs":[{"id":0,"name":"in 0","role":"main","channels":4}],"outputs":[{"id":0,"name":"out 0","role":"main","channels":4}]},"note_ports":{"inputs":0,"outputs":0},"latency":64},
|
|
6
9
|
{"id":"org.omx-clap-host.test.sidechain","name":"sidechain","vendor":"omx-clap-host","version":"0","description":"sidechain","url":"","features":["audio-effect"],"params":[
|
|
7
|
-
{"id":0,"name":"latency","module":"","min":0,"max":4096,"default":64,"flags":["stepped"]}
|
|
10
|
+
{"id":0,"name":"latency","module":"","min":0,"max":4096,"default":64,"flags":["stepped"]},
|
|
11
|
+
{"id":1,"name":"activations","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
12
|
+
{"id":2,"name":"process calls","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
13
|
+
{"id":3,"name":"host preset-load","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]}
|
|
8
14
|
],"audio_ports":{"inputs":[{"id":0,"name":"in 0","role":"main","channels":2},{"id":1,"name":"in 1","role":"aux","channels":1}],"outputs":[{"id":0,"name":"out 0","role":"main","channels":2}]},"note_ports":{"inputs":0,"outputs":0},"latency":64},
|
|
9
15
|
{"id":"org.omx-clap-host.test.notes","name":"notes","vendor":"omx-clap-host","version":"0","description":"notes","url":"","features":["audio-effect"],"params":[
|
|
10
|
-
{"id":0,"name":"latency","module":"","min":0,"max":4096,"default":64,"flags":["stepped"]}
|
|
16
|
+
{"id":0,"name":"latency","module":"","min":0,"max":4096,"default":64,"flags":["stepped"]},
|
|
17
|
+
{"id":1,"name":"activations","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
18
|
+
{"id":2,"name":"process calls","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
19
|
+
{"id":3,"name":"host preset-load","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]}
|
|
11
20
|
],"audio_ports":{"inputs":[{"id":0,"name":"in 0","role":"main","channels":2}],"outputs":[{"id":0,"name":"out 0","role":"main","channels":2}]},"note_ports":{"inputs":1,"outputs":0},"latency":64},
|
|
12
21
|
{"id":"org.omx-clap-host.test.passthrough","name":"passthrough","vendor":"omx-clap-host","version":"0","description":"passthrough","url":"","features":["audio-effect"],"params":[
|
|
13
|
-
{"id":0,"name":"latency","module":"","min":0,"max":4096,"default":64,"flags":["stepped"]}
|
|
14
|
-
|
|
22
|
+
{"id":0,"name":"latency","module":"","min":0,"max":4096,"default":64,"flags":["stepped"]},
|
|
23
|
+
{"id":1,"name":"activations","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
24
|
+
{"id":2,"name":"process calls","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
25
|
+
{"id":3,"name":"host preset-load","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]}
|
|
26
|
+
],"audio_ports":{"inputs":[{"id":0,"name":"in 0","role":"main","channels":2}],"outputs":[{"id":0,"name":"out 0","role":"main","channels":2}]},"note_ports":{"inputs":0,"outputs":0},"latency":64},
|
|
27
|
+
{"id":"org.omx-clap-host.test.widen","name":"widen","vendor":"omx-clap-host","version":"0","description":"widen","url":"","features":["audio-effect"],"params":[
|
|
28
|
+
{"id":0,"name":"latency","module":"","min":0,"max":4096,"default":64,"flags":["stepped"]},
|
|
29
|
+
{"id":1,"name":"activations","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
30
|
+
{"id":2,"name":"process calls","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
31
|
+
{"id":3,"name":"host preset-load","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]}
|
|
32
|
+
],"audio_ports":{"inputs":[{"id":0,"name":"in 0","role":"main","channels":1}],"outputs":[{"id":0,"name":"out 0","role":"main","channels":2}]},"note_ports":{"inputs":0,"outputs":0},"latency":64},
|
|
33
|
+
{"id":"org.omx-clap-host.test.auxout","name":"auxout","vendor":"omx-clap-host","version":"0","description":"auxout","url":"","features":["audio-effect"],"params":[
|
|
34
|
+
{"id":0,"name":"latency","module":"","min":0,"max":4096,"default":64,"flags":["stepped"]},
|
|
35
|
+
{"id":1,"name":"activations","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
36
|
+
{"id":2,"name":"process calls","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]},
|
|
37
|
+
{"id":3,"name":"host preset-load","module":"","min":0,"max":1000000000,"default":0,"flags":["stepped","readonly"]}
|
|
38
|
+
],"audio_ports":{"inputs":[{"id":0,"name":"in 0","role":"main","channels":2}],"outputs":[{"id":0,"name":"out 0","role":"main","channels":2},{"id":1,"name":"out 1","role":"aux","channels":2}]},"note_ports":{"inputs":0,"outputs":0},"latency":64}
|
|
15
39
|
]}
|
|
16
40
|
]}
|