@openmixer/plugin-qualify 0.17.5 → 0.18.1
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 +127 -13
- package/bin/plugin-qualify-sync.mjs +3 -1
- package/dist/clap-qualify.d.ts +3 -1
- package/dist/clap-qualify.js +7 -1
- package/dist/clap-qualify.js.map +1 -1
- package/dist/direct-limit.d.ts +27 -0
- package/dist/direct-limit.js +52 -0
- package/dist/direct-limit.js.map +1 -0
- package/dist/distributed-records.d.ts +4 -2
- package/dist/distributed-records.js +1 -1
- package/dist/distributed-records.js.map +1 -1
- package/dist/host-admission.d.ts +12 -2
- package/dist/host-admission.js +24 -4
- package/dist/host-admission.js.map +1 -1
- package/dist/host-profiles.d.ts +8 -0
- package/dist/host-profiles.js +16 -1
- package/dist/host-profiles.js.map +1 -1
- package/dist/hosting-codes.generated.d.ts +10 -0
- package/dist/hosting-codes.generated.js +10 -0
- package/dist/hosting-codes.generated.js.map +1 -1
- package/dist/hosting-suitability.d.ts +34 -8
- package/dist/hosting-suitability.js +92 -7
- package/dist/hosting-suitability.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/measurement/format.d.ts +54 -8
- package/dist/measurement/format.js +54 -3
- package/dist/measurement/format.js.map +1 -1
- package/dist/measurement/plan.d.ts +3 -3
- package/dist/measurement/plan.js +1 -1
- package/dist/measurement-grid.d.ts +8 -0
- package/dist/measurement-grid.js +4 -0
- package/dist/measurement-grid.js.map +1 -1
- package/dist/memory-bound.d.ts +6 -0
- package/dist/memory-bound.js +8 -0
- package/dist/memory-bound.js.map +1 -1
- package/dist/memory-budget.d.ts +39 -0
- package/dist/memory-budget.js +32 -0
- package/dist/memory-budget.js.map +1 -0
- package/dist/probe-judge.d.ts +11 -0
- package/dist/probe-judge.js +26 -10
- package/dist/probe-judge.js.map +1 -1
- package/dist/probe-merge.js +6 -5
- package/dist/probe-merge.js.map +1 -1
- package/dist/probe-output-fixtures.d.ts +6 -0
- package/dist/probe-output-fixtures.js +8 -0
- package/dist/probe-output-fixtures.js.map +1 -1
- package/dist/probe-output.d.ts +4 -2
- package/dist/probe-output.js +2 -1
- package/dist/probe-output.js.map +1 -1
- package/dist/probe-runner.js +7 -3
- package/dist/probe-runner.js.map +1 -1
- package/dist/qualification-record.d.ts +116 -10
- package/dist/qualification-record.js +34 -30
- package/dist/qualification-record.js.map +1 -1
- package/dist/qualify-adapter-pass.d.ts +67 -0
- package/dist/qualify-adapter-pass.js +255 -0
- package/dist/qualify-adapter-pass.js.map +1 -0
- package/dist/qualify-declarations.d.ts +53 -9
- package/dist/qualify-declarations.js +54 -2
- package/dist/qualify-declarations.js.map +1 -1
- package/dist/qualify-rejudge.d.ts +81 -0
- package/dist/qualify-rejudge.js +421 -0
- package/dist/qualify-rejudge.js.map +1 -0
- package/dist/qualify-sync.d.ts +72 -1
- package/dist/qualify-sync.js +194 -21
- package/dist/qualify-sync.js.map +1 -1
- package/fixtures/records-0.16.1/http___example.org_raffo@unversioned-2060c09ff626.default.probe.json +46 -0
- package/fixtures/records-0.16.1/http___example.org_raffo@unversioned-2060c09ff626.default.qualification.json +185 -0
- package/fixtures/records-0.16.1/http___lv2plug.in_plugins_eg-amp@unversioned-f046a60efd45.default.probe.json +51 -0
- package/fixtures/records-0.16.1/http___lv2plug.in_plugins_eg-amp@unversioned-f046a60efd45.default.qualification.json +232 -0
- package/fixtures/records-0.16.1/https___github.com_lucianodato_noise-repellent@unversioned-c3b5e21dd9a7.default.probe.json +51 -0
- package/fixtures/records-0.16.1/https___github.com_lucianodato_noise-repellent@unversioned-c3b5e21dd9a7.default.qualification.json +245 -0
- package/fixtures/records-0.16.1/in.lsp-plug.impulse_responses_mono@unversioned-d5235d2f5f53.custom.probe.json +52 -0
- package/fixtures/records-0.16.1/in.lsp-plug.impulse_responses_mono@unversioned-d5235d2f5f53.custom.qualification.json +145 -0
- package/fixtures/records-0.16.1/in.lsp-plug.trigger_midi_mono@unversioned-d5235d2f5f53.custom.probe.json +52 -0
- package/fixtures/records-0.16.1/in.lsp-plug.trigger_midi_mono@unversioned-d5235d2f5f53.custom.qualification.json +155 -0
- package/package.json +1 -1
- package/src/clap-qualify.ts +8 -1
- package/src/direct-limit.ts +68 -0
- package/src/distributed-records.ts +1 -1
- package/src/host-admission.ts +27 -4
- package/src/host-profiles.ts +17 -1
- package/src/hosting-codes.generated.ts +10 -0
- package/src/hosting-suitability.ts +105 -11
- package/src/index.ts +3 -0
- package/src/measurement/format.ts +97 -3
- package/src/measurement/plan.ts +3 -3
- package/src/measurement-grid.ts +5 -0
- package/src/memory-bound.ts +10 -0
- package/src/memory-budget.ts +55 -0
- package/src/probe-judge.ts +29 -9
- package/src/probe-merge.ts +6 -5
- package/src/probe-output-fixtures.ts +10 -1
- package/src/probe-output.ts +5 -2
- package/src/probe-runner.ts +5 -3
- package/src/qualification-record.ts +121 -18
- package/src/qualify-adapter-pass.ts +278 -0
- package/src/qualify-declarations.ts +67 -3
- package/src/qualify-rejudge.ts +452 -0
- package/src/qualify-sync.ts +210 -20
- package/tools/_declarations.py +1 -0
- package/tools/benchmark.py +25 -2
- package/tools/gen-python-declarations.mjs +1 -0
- package/tools/lv2-measure.mjs +7 -4
- package/tools/lv2_presets.py +1 -1
- package/tools/lv2_resolve.py +49 -0
- package/tools/mod-host-admit.mjs +23 -6
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The qualification record: what plugin-qualify wrote down about one plugin binary and one offer
|
|
3
|
+
* after judging its probe output, kept in `qualification_dir`. Evidence, not a constraint: no
|
|
4
|
+
* reader refuses a descriptor because of it.
|
|
5
|
+
*
|
|
6
|
+
* Two files, always together. The record is the judgment; beside it is a byte copy of the probe
|
|
7
|
+
* output it judged, because the probe directory is runtime and may be wiped. The record names the
|
|
8
|
+
* copy and the SHA-256 of the copy's bytes, so the facts outlive the run without hostd keeping a
|
|
9
|
+
* second store, and a reader can tell that the figures it holds are the ones the verdict came from.
|
|
10
|
+
*
|
|
11
|
+
* Not yet in the record: the fingerprint of the descriptor's controls, since the descriptor is
|
|
12
|
+
* written by the scan (stage 5) and plugin-qualify does not read one yet.
|
|
13
|
+
*/
|
|
14
|
+
import type { MemoryFootprint } from "./measurement/format.js";
|
|
1
15
|
import type { Adjustment } from "./history-adjust.js";
|
|
2
16
|
import type { Judgment, RecordReason } from "./probe-judge.js";
|
|
3
17
|
import { type ProbeGridPoint, type ProbeOutput } from "./probe-output.js";
|
|
@@ -17,6 +31,27 @@ export interface RecordVerdict {
|
|
|
17
31
|
readonly deciding?: string;
|
|
18
32
|
readonly reasons: readonly RecordReason[];
|
|
19
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* An LV2 plugin's run under the adapter. The top is what the judge reads. `--adapter-only` adds the versions of the hosts
|
|
36
|
+
* it ran under, when, and how each cell went.
|
|
37
|
+
*/
|
|
38
|
+
export interface AdapterBlock {
|
|
39
|
+
readonly host: string;
|
|
40
|
+
readonly measured: boolean;
|
|
41
|
+
readonly admitted: boolean;
|
|
42
|
+
readonly code?: string;
|
|
43
|
+
readonly params: Readonly<Record<string, string | number>>;
|
|
44
|
+
readonly versions?: Readonly<Record<string, string>>;
|
|
45
|
+
readonly measuredAt?: string;
|
|
46
|
+
readonly cells?: readonly {
|
|
47
|
+
readonly rate: number;
|
|
48
|
+
readonly quantum: number;
|
|
49
|
+
readonly measured: boolean;
|
|
50
|
+
readonly admitted: boolean;
|
|
51
|
+
readonly code?: string;
|
|
52
|
+
readonly params: Readonly<Record<string, string | number>>;
|
|
53
|
+
}[];
|
|
54
|
+
}
|
|
20
55
|
/** One tier of the console as a verdict: the host it is judged under and whether the plugin qualified there. */
|
|
21
56
|
export interface TierVerdict {
|
|
22
57
|
readonly host: string;
|
|
@@ -24,8 +59,14 @@ export interface TierVerdict {
|
|
|
24
59
|
readonly qualified: boolean;
|
|
25
60
|
readonly rating: string;
|
|
26
61
|
readonly deciding?: string;
|
|
62
|
+
/** The isolated tier of a `conditional` plugin: it is offered, and runs alone in a worker of its own, never grouped. */
|
|
63
|
+
readonly runsAlone?: true;
|
|
27
64
|
}
|
|
28
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* The console's two tiers (what the console's roster offers): in-process where its verdict qualified; isolated where its
|
|
67
|
+
* verdict qualified or is `conditional`, which pins `isolated` and runs alone (`runsAlone`); dimmed with the reason when
|
|
68
|
+
* neither. `qualified` stays `rating === "suitable"`, as the interchange's reader holds it.
|
|
69
|
+
*/
|
|
29
70
|
export interface RecordTiers {
|
|
30
71
|
readonly inProcess?: TierVerdict;
|
|
31
72
|
readonly isolated?: TierVerdict;
|
|
@@ -33,7 +74,10 @@ export interface RecordTiers {
|
|
|
33
74
|
/** Why the plugin is offered on neither tier: the deciding codes, in-process first. */
|
|
34
75
|
readonly dimmed?: string;
|
|
35
76
|
}
|
|
36
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* The profile each format's isolated tier is judged under: omx-clap-host for both, an LV2 plugin through plugin-hostd's
|
|
79
|
+
* LV2 adapter, whose run decides that verdict (`host-admission.ts`). mod-host is judged only when a run asks for it.
|
|
80
|
+
*/
|
|
37
81
|
export declare const ISOLATED_TIER_HOST: Readonly<Record<string, string>>;
|
|
38
82
|
export declare const IN_PROCESS_TIER_HOST = "openmixer-console";
|
|
39
83
|
/** A latency or cost figure the run could not take: which one, at what rate and quantum, and the code that says why. */
|
|
@@ -60,11 +104,22 @@ export interface UnmeasuredLatency {
|
|
|
60
104
|
readonly code: string;
|
|
61
105
|
}
|
|
62
106
|
/** A grid point as the record writes it: every cell carries `latency`, the figures or why there are none (#201). */
|
|
63
|
-
export type RecordGridPoint = Omit<ProbeGridPoint, "latency"> & {
|
|
107
|
+
export type RecordGridPoint = Omit<ProbeGridPoint, "latency" | "memory"> & {
|
|
108
|
+
/** The footprint as measured, with what it comes to: what a client adding the plugin reads (`memory-budget.ts`). */
|
|
109
|
+
readonly memory?: MemoryFootprint & {
|
|
110
|
+
readonly firstInstanceKb?: number;
|
|
111
|
+
readonly perInstanceKb?: number;
|
|
112
|
+
};
|
|
64
113
|
readonly latency: (Omit<NonNullable<ProbeGridPoint["latency"]>, "measuredFrames"> & {
|
|
65
114
|
readonly measuredFrames: number;
|
|
66
115
|
}) | UnmeasuredLatency;
|
|
67
116
|
};
|
|
117
|
+
/** The same, for the test. */
|
|
118
|
+
export declare const memoryOfCellForTest: (p: ProbeGridPoint) => Pick<RecordGridPoint, "memory">;
|
|
119
|
+
/** The contract's word for a cell whose run ended with this outcome, `probe-error` for one it has no word of. */
|
|
120
|
+
export declare const unmeasuredWordOf: (outcome: string) => string;
|
|
121
|
+
/** A cell's footprint with what it comes to; only a footprint with no reason beside it comes to anything a client may add up. */
|
|
122
|
+
export declare function memoryOfCell(p: ProbeGridPoint): Pick<RecordGridPoint, "memory">;
|
|
68
123
|
/**
|
|
69
124
|
* Why a cell has no latency figure. A cell whose run failed: its outcome's word. A latency step at the cell that did not
|
|
70
125
|
* end well: the child's own reason, which the runner writes first in the step's detail, when it is a contract word,
|
|
@@ -108,6 +163,57 @@ export interface HistoryBlock {
|
|
|
108
163
|
readonly host: string;
|
|
109
164
|
} & Adjustment)[];
|
|
110
165
|
}
|
|
166
|
+
/** One measurement a record lacks, and what it keeps from being decided. */
|
|
167
|
+
export interface OwedMeasurement {
|
|
168
|
+
/** `adapter-run`: the plugin under omx-clap-host's LV2 adapter. `host-run`: under the host named. `qualification`: the whole of it. */
|
|
169
|
+
readonly measurement: "adapter-run" | "host-run" | "qualification";
|
|
170
|
+
readonly host?: string;
|
|
171
|
+
readonly code: string;
|
|
172
|
+
readonly detail?: string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The verdicts are not the ones of the run that took the figures: `plugin-qualify-sync --rejudge` derived them later, from
|
|
176
|
+
* those figures, under the rules of `by`. `figures` says who took the figures and when; the verdicts claim nothing more.
|
|
177
|
+
*/
|
|
178
|
+
export interface RejudgedBlock {
|
|
179
|
+
/** The UTC time the verdicts last changed. */
|
|
180
|
+
readonly at: string;
|
|
181
|
+
/** The plugin-qualify whose rules judged them. */
|
|
182
|
+
readonly by: string;
|
|
183
|
+
readonly figures: {
|
|
184
|
+
readonly tool: Readonly<Record<string, string>>;
|
|
185
|
+
readonly measuredAt: string;
|
|
186
|
+
readonly runId: string;
|
|
187
|
+
/** The footprints, when a memory-only pass took them later than the rest. */
|
|
188
|
+
readonly memory?: {
|
|
189
|
+
readonly tool: Readonly<Record<string, string>>;
|
|
190
|
+
readonly measuredAt: string;
|
|
191
|
+
};
|
|
192
|
+
/** The adapter run, when an adapter-only pass took it later than the rest. */
|
|
193
|
+
readonly adapter?: {
|
|
194
|
+
readonly versions: Readonly<Record<string, string>>;
|
|
195
|
+
readonly measuredAt: string;
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
/** What these verdicts could not decide and left `unknown`; absent when nothing is owed. */
|
|
199
|
+
readonly owes?: readonly OwedMeasurement[];
|
|
200
|
+
}
|
|
201
|
+
/** The memory-only pass that took this record's footprints: every other figure is older and comes from `tool`. */
|
|
202
|
+
export interface MemoryRunBlock {
|
|
203
|
+
readonly tool: Readonly<Record<string, string>>;
|
|
204
|
+
readonly measuredAt: string;
|
|
205
|
+
readonly runId: string;
|
|
206
|
+
readonly cells: readonly {
|
|
207
|
+
readonly rate: number;
|
|
208
|
+
readonly quantum: number;
|
|
209
|
+
/** How the cell's run ended; its figures are in the grid's point of that cell. */
|
|
210
|
+
readonly outcome: string;
|
|
211
|
+
readonly memoryLimit?: {
|
|
212
|
+
readonly bytes: number;
|
|
213
|
+
readonly mechanism: string;
|
|
214
|
+
};
|
|
215
|
+
}[];
|
|
216
|
+
}
|
|
111
217
|
export interface QualificationRecord {
|
|
112
218
|
readonly schema: typeof QUALIFICATION_RECORD_SCHEMA;
|
|
113
219
|
readonly plugin: {
|
|
@@ -123,13 +229,7 @@ export interface QualificationRecord {
|
|
|
123
229
|
* An LV2 plugin run under plugin-hostd's LV2 adapter (omx-clap-host), as under mod-host: admitted, or refused with
|
|
124
230
|
* its code, or `measured: false` when it was not tried. Beside the verdicts, which it does not change (#223).
|
|
125
231
|
*/
|
|
126
|
-
readonly adapter?:
|
|
127
|
-
readonly host: string;
|
|
128
|
-
readonly measured: boolean;
|
|
129
|
-
readonly admitted: boolean;
|
|
130
|
-
readonly code?: string;
|
|
131
|
-
readonly params: Readonly<Record<string, string | number>>;
|
|
132
|
-
};
|
|
232
|
+
readonly adapter?: AdapterBlock;
|
|
133
233
|
readonly tiers: RecordTiers;
|
|
134
234
|
/** The cost reasons at each host's rate and quantum, beside the verdicts; an instrument's with the notes it held. */
|
|
135
235
|
readonly cost: readonly {
|
|
@@ -160,6 +260,10 @@ export interface QualificationRecord {
|
|
|
160
260
|
readonly history?: readonly HistoryBlock[];
|
|
161
261
|
/** Where the record came from when it was not measured on this device: the distributed set's provenance, as the set's package wrote it. */
|
|
162
262
|
readonly provenance?: Readonly<Record<string, unknown>>;
|
|
263
|
+
/** Present when the verdicts were derived later from the figures below, measuring nothing. */
|
|
264
|
+
readonly rejudged?: RejudgedBlock;
|
|
265
|
+
/** Present when a memory-only pass merged footprints into the grid. */
|
|
266
|
+
readonly memoryRun?: MemoryRunBlock;
|
|
163
267
|
/** The probe output this record judged. */
|
|
164
268
|
readonly probe: {
|
|
165
269
|
readonly file: string;
|
|
@@ -188,6 +292,8 @@ export declare const recordFileName: (output: ProbeOutput) => string;
|
|
|
188
292
|
export declare const probeCopyFileName: (output: ProbeOutput) => string;
|
|
189
293
|
/** The console's two tiers from the verdicts the judgment holds. A tier no profile judged is absent, and is not offered. */
|
|
190
294
|
export declare function tiersOf(judgment: Judgment): RecordTiers;
|
|
295
|
+
/** A judgment's verdicts as the record writes them. */
|
|
296
|
+
export declare const verdictRows: (judgment: Judgment) => RecordVerdict[];
|
|
191
297
|
export declare function buildQualificationRecord(judgment: Judgment, copy: {
|
|
192
298
|
file: string;
|
|
193
299
|
sha256: string;
|
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
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
|
-
*/
|
|
1
|
+
import { firstInstanceKb, perInstanceKb } from "./memory-budget.js";
|
|
16
2
|
import { mkdirSync, readFileSync } from "node:fs";
|
|
17
3
|
import { join } from "node:path";
|
|
18
4
|
import { sha256Hex, PROBE_OK } from "./probe-output.js";
|
|
@@ -20,8 +6,11 @@ import { writeFileWhole } from "./whole-file.js";
|
|
|
20
6
|
import { HOSTING_CODE } from "./hosting-codes.js";
|
|
21
7
|
import { MEASUREMENT_UNMEASURED_REASONS } from "@openmixer/omx-contract";
|
|
22
8
|
export const QUALIFICATION_RECORD_SCHEMA = "plugin-qualify.qualification-record/1";
|
|
23
|
-
/**
|
|
24
|
-
|
|
9
|
+
/**
|
|
10
|
+
* The profile each format's isolated tier is judged under: omx-clap-host for both, an LV2 plugin through plugin-hostd's
|
|
11
|
+
* LV2 adapter, whose run decides that verdict (`host-admission.ts`). mod-host is judged only when a run asks for it.
|
|
12
|
+
*/
|
|
13
|
+
export const ISOLATED_TIER_HOST = { lv2: "omx-clap-host", clap: "omx-clap-host" };
|
|
25
14
|
export const IN_PROCESS_TIER_HOST = "openmixer-console";
|
|
26
15
|
/**
|
|
27
16
|
* The figures the run could not take, from the steps that say so. A latency or cost step that did not end `probe.ok`
|
|
@@ -41,6 +30,18 @@ export function unmeasuredFigures(output) {
|
|
|
41
30
|
}
|
|
42
31
|
const UNMEASURED_WORDS = new Set(Object.values(MEASUREMENT_UNMEASURED_REASONS).map((r) => r.word));
|
|
43
32
|
const word = (key) => MEASUREMENT_UNMEASURED_REASONS[key].word;
|
|
33
|
+
/** The same, for the test. */
|
|
34
|
+
export const memoryOfCellForTest = (p) => memoryOfCell(p);
|
|
35
|
+
/** The contract's word for a cell whose run ended with this outcome, `probe-error` for one it has no word of. */
|
|
36
|
+
export const unmeasuredWordOf = (outcome) => OUTCOME_WORD[outcome] ?? word("probeError");
|
|
37
|
+
/** A cell's footprint with what it comes to; only a footprint with no reason beside it comes to anything a client may add up. */
|
|
38
|
+
export function memoryOfCell(p) {
|
|
39
|
+
if (p.memory === undefined)
|
|
40
|
+
return {};
|
|
41
|
+
const first = p.memory.unmeasuredReason === undefined ? firstInstanceKb(p.memory) : undefined;
|
|
42
|
+
const per = p.memory.unmeasuredReason === undefined ? perInstanceKb(p.memory) : undefined;
|
|
43
|
+
return { memory: { ...p.memory, ...(first === undefined ? {} : { firstInstanceKb: first }), ...(per === undefined ? {} : { perInstanceKb: per }) } };
|
|
44
|
+
}
|
|
44
45
|
/** The unmeasured word of a cell whose run did not end well, by its outcome code. */
|
|
45
46
|
const OUTCOME_WORD = {
|
|
46
47
|
"probe.crashed": word("probeCrashed"),
|
|
@@ -88,19 +89,31 @@ function tierOf(judgment, host) {
|
|
|
88
89
|
export function tiersOf(judgment) {
|
|
89
90
|
const inProcess = tierOf(judgment, IN_PROCESS_TIER_HOST);
|
|
90
91
|
const isolated = tierOf(judgment, ISOLATED_TIER_HOST[judgment.output.plugin.format]);
|
|
92
|
+
const runsAlone = isolated?.measured === true && isolated.rating === "conditional";
|
|
91
93
|
const offeredOn = [];
|
|
92
94
|
if (inProcess?.qualified === true)
|
|
93
95
|
offeredOn.push("in-process");
|
|
94
|
-
if (isolated?.qualified === true)
|
|
96
|
+
if (isolated?.qualified === true || runsAlone)
|
|
95
97
|
offeredOn.push("isolated");
|
|
96
98
|
const why = [inProcess, isolated].flatMap((t) => (t === undefined ? [] : [`${t.host}: ${t.deciding ?? t.rating}`]));
|
|
97
99
|
return {
|
|
98
100
|
...(inProcess === undefined ? {} : { inProcess }),
|
|
99
|
-
...(isolated === undefined ? {} : { isolated }),
|
|
101
|
+
...(isolated === undefined ? {} : { isolated: { ...isolated, ...(runsAlone ? { runsAlone: true } : {}) } }),
|
|
100
102
|
offeredOn,
|
|
101
103
|
...(offeredOn.length === 0 ? { dimmed: why.length === 0 ? "no tier was judged" : why.join("; ") } : {}),
|
|
102
104
|
};
|
|
103
105
|
}
|
|
106
|
+
/** A judgment's verdicts as the record writes them. */
|
|
107
|
+
export const verdictRows = (judgment) => judgment.hosts.map((h) => ({
|
|
108
|
+
host: h.verdict.host,
|
|
109
|
+
measured: h.verdict.measured,
|
|
110
|
+
rating: h.verdict.rating,
|
|
111
|
+
qualified: h.verdict.qualified,
|
|
112
|
+
hosting: h.hosting,
|
|
113
|
+
arm: h.arm,
|
|
114
|
+
...(h.verdict.deciding === undefined ? {} : { deciding: h.verdict.deciding }),
|
|
115
|
+
reasons: h.reasons,
|
|
116
|
+
}));
|
|
104
117
|
export function buildQualificationRecord(judgment, copy, notMeasured = []) {
|
|
105
118
|
const o = judgment.output;
|
|
106
119
|
return {
|
|
@@ -108,21 +121,12 @@ export function buildQualificationRecord(judgment, copy, notMeasured = []) {
|
|
|
108
121
|
plugin: { format: o.plugin.format, id: o.plugin.id, ...(o.plugin.name === undefined ? {} : { name: o.plugin.name }) },
|
|
109
122
|
...(o.plugin.version === undefined ? {} : { testedVersion: o.plugin.version }),
|
|
110
123
|
binary: o.binary,
|
|
111
|
-
verdicts: judgment
|
|
112
|
-
host: h.verdict.host,
|
|
113
|
-
measured: h.verdict.measured,
|
|
114
|
-
rating: h.verdict.rating,
|
|
115
|
-
qualified: h.verdict.qualified,
|
|
116
|
-
hosting: h.hosting,
|
|
117
|
-
arm: h.arm,
|
|
118
|
-
...(h.verdict.deciding === undefined ? {} : { deciding: h.verdict.deciding }),
|
|
119
|
-
reasons: h.reasons,
|
|
120
|
-
})),
|
|
124
|
+
verdicts: verdictRows(judgment),
|
|
121
125
|
...(judgment.adapter === undefined ? {} : { adapter: judgment.adapter }),
|
|
122
126
|
tiers: tiersOf(judgment),
|
|
123
127
|
cost: judgment.hosts.map((h) => ({ host: h.verdict.host, ...h.cost })),
|
|
124
128
|
measurements: {
|
|
125
|
-
grid: o.grid.map((p) => ({ ...p, latency: latencyOfCell(o, p) })),
|
|
129
|
+
grid: o.grid.map((p) => ({ ...p, ...memoryOfCell(p), latency: latencyOfCell(o, p) })),
|
|
126
130
|
...(o.behaviour === undefined ? {} : { behaviour: o.behaviour }),
|
|
127
131
|
...(unmeasuredFigures(o).length === 0 ? {} : { unmeasured: unmeasuredFigures(o) }),
|
|
128
132
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qualification-record.js","sourceRoot":"","sources":["../src/qualification-record.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qualification-record.js","sourceRoot":"","sources":["../src/qualification-record.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type AdmissionRuns, type HostAdmission } from "./host-admission.js";
|
|
2
|
+
import { type GridCell } from "./measurement-grid.js";
|
|
3
|
+
import { type AdapterBlock, type QualificationRecord } from "./qualification-record.js";
|
|
4
|
+
import { type SyncContext, type SyncState } from "./qualify-sync.js";
|
|
5
|
+
/** The cells the pass runs at: the ones a Pi runs. */
|
|
6
|
+
export declare const ADAPTER_PASS_CELLS: readonly GridCell[];
|
|
7
|
+
/** The code of a cell no private server could be had for: the run did not happen. */
|
|
8
|
+
export declare const NO_PRIVATE_SERVER = "omx-clap-host.no-private-server";
|
|
9
|
+
/** What a program answers to `--version`: its last word on the line that says `version`. */
|
|
10
|
+
export declare function parseVersion(text: string): string | undefined;
|
|
11
|
+
export type VersionRun = (tool: string) => {
|
|
12
|
+
readonly status: number | null;
|
|
13
|
+
readonly stdout: string;
|
|
14
|
+
};
|
|
15
|
+
/** The versions of the hosts as installed now, or which of them could not say. */
|
|
16
|
+
export declare function hostVersions(env: Readonly<Record<string, string | undefined>>, run?: VersionRun): {
|
|
17
|
+
ok: true;
|
|
18
|
+
versions: Readonly<Record<string, string>>;
|
|
19
|
+
} | {
|
|
20
|
+
ok: false;
|
|
21
|
+
error: string;
|
|
22
|
+
};
|
|
23
|
+
/** A private JACK server for one cell, for as long as a pass needs it. */
|
|
24
|
+
export interface PrivateJack {
|
|
25
|
+
readonly name: string;
|
|
26
|
+
alive(): boolean;
|
|
27
|
+
stop(): void;
|
|
28
|
+
}
|
|
29
|
+
export type JackStarter = (cell: GridCell) => PrivateJack | undefined;
|
|
30
|
+
/** `jackd` on a name of its own and the dummy driver, at the cell's rate and quantum; `undefined` when none came up. */
|
|
31
|
+
export declare const startPrivateJack: JackStarter;
|
|
32
|
+
/**
|
|
33
|
+
* The runs of every cell as one block. Its top is what the judge reads: a refusal or a crash at any cell decides, with the
|
|
34
|
+
* cell it happened at, whatever the others say; then a cell where the host could not be run leaves it not measured, so
|
|
35
|
+
* still owed; only every cell admitted is admitted. Pure.
|
|
36
|
+
*/
|
|
37
|
+
export declare function adapterBlockOf(runs: readonly {
|
|
38
|
+
readonly cell: GridCell;
|
|
39
|
+
readonly run: HostAdmission;
|
|
40
|
+
}[], versions: Readonly<Record<string, string>>, measuredAt: string): AdapterBlock;
|
|
41
|
+
/** The record with the block, and every other byte of it as it was. Pure. */
|
|
42
|
+
export declare const mergeAdapterRun: (record: QualificationRecord, block: AdapterBlock) => QualificationRecord;
|
|
43
|
+
/** Whether a record's adapter run is done: at these host versions, measured, at every cell. */
|
|
44
|
+
export declare function adapterFinished(record: QualificationRecord, versions: Readonly<Record<string, string>>, cells?: readonly GridCell[]): boolean;
|
|
45
|
+
export interface AdapterPassOptions {
|
|
46
|
+
readonly force?: boolean;
|
|
47
|
+
readonly runs?: AdmissionRuns;
|
|
48
|
+
readonly jack?: JackStarter;
|
|
49
|
+
readonly versions?: VersionRun;
|
|
50
|
+
/** The test's stand-in for jackd says it is there; the real pass looks. */
|
|
51
|
+
readonly jackdPresent?: boolean;
|
|
52
|
+
readonly now?: () => string;
|
|
53
|
+
}
|
|
54
|
+
export interface AdapterPassResult {
|
|
55
|
+
readonly measured: number;
|
|
56
|
+
readonly already: number;
|
|
57
|
+
readonly failed: number;
|
|
58
|
+
readonly versions: Readonly<Record<string, string>>;
|
|
59
|
+
}
|
|
60
|
+
/** The pass could not start: nothing was run and nothing written. */
|
|
61
|
+
export declare class AdapterPassRefused extends Error {
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The run of each LV2 plugin of the state whose probe ended well (one that did not has no verdict a run could decide), at
|
|
65
|
+
* each cell. Each record is written whole as its plugin ends.
|
|
66
|
+
*/
|
|
67
|
+
export declare function adapterPass(ctx: SyncContext, state: SyncState, options?: AdapterPassOptions): AdapterPassResult;
|