@openmixer/plugin-qualify 0.8.0 → 0.10.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.
Files changed (63) hide show
  1. package/README.md +58 -4
  2. package/bin/plugin-qualify.mjs +60 -25
  3. package/dist/clap-loader.d.ts +25 -1
  4. package/dist/clap-loader.js +88 -7
  5. package/dist/clap-loader.js.map +1 -1
  6. package/dist/clap-qualify.d.ts +29 -6
  7. package/dist/clap-qualify.js +77 -13
  8. package/dist/clap-qualify.js.map +1 -1
  9. package/dist/host-profiles.d.ts +14 -0
  10. package/dist/host-profiles.js +27 -1
  11. package/dist/host-profiles.js.map +1 -1
  12. package/dist/hosting-codes.d.ts +5 -2
  13. package/dist/hosting-codes.js +8 -4
  14. package/dist/hosting-codes.js.map +1 -1
  15. package/dist/hosting-suitability.d.ts +32 -3
  16. package/dist/hosting-suitability.js +35 -6
  17. package/dist/hosting-suitability.js.map +1 -1
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/lv2-loader.d.ts +5 -0
  22. package/dist/lv2-loader.js +30 -2
  23. package/dist/lv2-loader.js.map +1 -1
  24. package/dist/measure-host.js +2 -2
  25. package/dist/measurement/cli.d.ts +13 -0
  26. package/dist/measurement/cli.js +68 -2
  27. package/dist/measurement/cli.js.map +1 -1
  28. package/dist/measurement/format.d.ts +1 -1
  29. package/dist/measurement/vocabulary.d.ts +1 -1
  30. package/dist/measurement/vocabulary.js +1 -1
  31. package/dist/measurement/vocabulary.js.map +1 -1
  32. package/dist/pins-file.d.ts +76 -0
  33. package/dist/pins-file.js +165 -0
  34. package/dist/pins-file.js.map +1 -0
  35. package/dist/qualify-cli.d.ts +2 -0
  36. package/dist/qualify-cli.js +7 -1
  37. package/dist/qualify-cli.js.map +1 -1
  38. package/dist/qualify-declarations.d.ts +23 -4
  39. package/dist/qualify-declarations.js +19 -3
  40. package/dist/qualify-declarations.js.map +1 -1
  41. package/dist/qualify-options.js +6 -1
  42. package/dist/qualify-options.js.map +1 -1
  43. package/package.json +3 -2
  44. package/src/clap-loader.ts +99 -7
  45. package/src/clap-qualify.ts +89 -12
  46. package/src/host-profiles.ts +29 -1
  47. package/src/hosting-codes.ts +8 -4
  48. package/src/hosting-suitability.ts +61 -8
  49. package/src/index.ts +1 -0
  50. package/src/lv2-loader.ts +28 -2
  51. package/src/measure-host.ts +2 -2
  52. package/src/measurement/cli.ts +77 -2
  53. package/src/measurement/format.ts +1 -1
  54. package/src/measurement/vocabulary.ts +1 -1
  55. package/src/pins-file.ts +200 -0
  56. package/src/qualify-cli.ts +8 -1
  57. package/src/qualify-declarations.ts +21 -4
  58. package/src/qualify-options.ts +7 -1
  59. package/tools/ai-trace-commit-check.sh +114 -0
  60. package/tools/ai-trace-patterns.json +33 -0
  61. package/tools/benchmark.py +1 -1
  62. package/tools/lv2-measure.mjs +16 -0
  63. package/tools/private-refs-check.sh +90 -0
@@ -13,8 +13,8 @@
13
13
  import { spawnSync } from "node:child_process";
14
14
  import { existsSync } from "node:fs";
15
15
  import { CLAP_QUALIFY_TIMEOUT_S, CLAP_QUALIFY_TOOL_NAME, CLAP_SWEEP_BLOCKS, CLAP_SWEEP_FRAMES, RT_INTERPOSE_NAME, } from "./qualify-declarations.js";
16
- import { HOSTING_CODE, clapRtReasons, contributedHostingRating, rtSafetyReasons, } from "./hosting-suitability.js";
17
- import { OPENMIXER_CONSOLE_PROFILE } from "./host-profiles.js";
16
+ import { HOSTING_CODE, clapRtReasons, contributedHostingRating, noteSweepReasons, rtSafetyReasons, } from "./hosting-suitability.js";
17
+ import { OMX_CLAP_HOST_CONFIGURED_EXTENSIONS, OMX_CLAP_HOST_EXTENSIONS, OPENMIXER_CONSOLE_PROFILE, } from "./host-profiles.js";
18
18
  import { RATING_SEVERITY, worstRating } from "./rating.js";
19
19
  import { halfPopulatedRefusal, locateNativeTools } from "./tool-paths.js";
20
20
  import { readIntegrity } from "./measurement/format.js";
@@ -92,6 +92,34 @@ function readRtSafety(v) {
92
92
  events: strings(v, "events", "rtSafety"),
93
93
  };
94
94
  }
95
+ function readNoteSweep(v) {
96
+ if (!isRecord(v))
97
+ return bad("no noteSweep");
98
+ if (!bool(v, "applicable", "noteSweep"))
99
+ return { applicable: false };
100
+ const dialect = str(v, "dialect", "noteSweep");
101
+ if (dialect !== "clap" && dialect !== "midi")
102
+ return bad(`noteSweep dialect ${dialect}`);
103
+ const played = {
104
+ applicable: true,
105
+ dialect,
106
+ blocks: count(v, "blocks", "noteSweep"),
107
+ blockFrames: count(v, "blockFrames", "noteSweep"),
108
+ noteEvents: count(v, "noteEvents", "noteSweep"),
109
+ processErrors: count(v, "processErrors", "noteSweep"),
110
+ nonFinite: bool(v, "nonFinite", "noteSweep"),
111
+ };
112
+ if (!bool(v, "interposer", "noteSweep"))
113
+ return { ...played, interposer: false };
114
+ return {
115
+ ...played,
116
+ interposer: true,
117
+ allocationsInRun: count(v, "allocationsInRun", "noteSweep"),
118
+ locksInRun: count(v, "locksInRun", "noteSweep"),
119
+ syscallsInRun: count(v, "syscallsInRun", "noteSweep"),
120
+ events: strings(v, "events", "noteSweep"),
121
+ };
122
+ }
95
123
  /** One line of the prober's stdout, or a {@link ClapQualifyError} saying how it differs. */
96
124
  export function parseClapQualifyLine(text) {
97
125
  let v;
@@ -122,6 +150,7 @@ export function parseClapQualifyLine(text) {
122
150
  hostExtensions: strings(v, "hostExtensions", "the line"),
123
151
  clap: readClap(v["clap"]),
124
152
  rtSafety: readRtSafety(v["rtSafety"]),
153
+ noteSweep: readNoteSweep(v["noteSweep"]),
125
154
  integrity: readIntegrity(v["integrity"]) ?? bad("no integrity"),
126
155
  };
127
156
  }
@@ -130,8 +159,13 @@ export function parseClapQualifyOutput(stdout) {
130
159
  return stdout.split("\n").filter((l) => l.trim() !== "").map(parseClapQualifyLine);
131
160
  }
132
161
  // --- the verdict document ------------------------------------------------------------------------
133
- /** The document's schema name; a reader refuses any other. */
134
- export const RT_SAFETY_DOCUMENT_SCHEMA = "plugin-qualify.rt-safety/1";
162
+ /**
163
+ * The document's schema name; a reader refuses any other it does not know. `/2` is `/1` with
164
+ * `measured.noteSweep` added and the note sweep's reasons folded into `verdict` (a plugin with no
165
+ * note input gets none, so its `/2` verdict is its `/1` verdict); every `/1` field is unchanged, so
166
+ * a `/1` reader of `verdict.rating` and `verdict.rtSafe` reads a `/2` document right.
167
+ */
168
+ export const RT_SAFETY_DOCUMENT_SCHEMA = "plugin-qualify.rt-safety/2";
135
169
  /**
136
170
  * The verdict document for one prober line under one host profile. The interposer's counts and the
137
171
  * two violations only a CLAP commits decide it. The line is judged against the profile's own CLAP
@@ -144,7 +178,7 @@ export function rtSafetyDocument(line, profile = OPENMIXER_CONSOLE_PROFILE) {
144
178
  const reasons = offered === null
145
179
  ? [{ dimension: "rtSafety", kind: "objective", rating: "unknown", code: HOSTING_CODE.clapFormatNotHosted, params: {} }]
146
180
  : offeredAsProfile
147
- ? [...rtSafetyReasons(line.rtSafety), ...clapRtReasons(line.clap)]
181
+ ? [...rtSafetyReasons(line.rtSafety), ...clapRtReasons(line.clap), ...noteSweepReasons(line.noteSweep, line.clap.noteInputs)]
148
182
  : [
149
183
  {
150
184
  dimension: "rtSafety",
@@ -163,7 +197,13 @@ export function rtSafetyDocument(line, profile = OPENMIXER_CONSOLE_PROFILE) {
163
197
  plugin: { uri: line.uri, format: "clap", binary: line.binary },
164
198
  console: profile.id,
165
199
  verdict: { rating, rtSafe: rating === "suitable", ...(rating === "suitable" || deciding === undefined ? {} : { deciding }), reasons },
166
- measured: { hostExtensions: line.hostExtensions, clap: line.clap, rtSafety: line.rtSafety, integrity: line.integrity },
200
+ measured: {
201
+ hostExtensions: line.hostExtensions,
202
+ clap: line.clap,
203
+ rtSafety: line.rtSafety,
204
+ noteSweep: line.noteSweep,
205
+ integrity: line.integrity,
206
+ },
167
207
  };
168
208
  }
169
209
  /** The document as the CLI's verdict row. */
@@ -224,6 +264,7 @@ export function qualifyClap(binaryPath, id, options) {
224
264
  String(CLAP_SWEEP_FRAMES),
225
265
  "--blocks",
226
266
  String(CLAP_SWEEP_BLOCKS),
267
+ ...(options.offer === undefined || options.offer.length === 0 ? [] : ["--offer", options.offer.join(",")]),
227
268
  binaryPath,
228
269
  ...(id === undefined ? [] : [id]),
229
270
  ];
@@ -240,9 +281,25 @@ export function qualifyClap(binaryPath, id, options) {
240
281
  return lines;
241
282
  }
242
283
  /**
243
- * Qualify every CLAP target, one prober run per target (a crash takes only that plugin), and judge
244
- * each line under every host profile. A target without a binary path (a bare `urn:clap:` id) has
245
- * nothing to load and is a failure, never a pass.
284
+ * What the prober must offer beyond the console's extensions to measure for `profile`: the extra
285
+ * extensions of its list, when the prober can offer each and the list holds the console's; `undefined`
286
+ * for a profile the prober cannot stand in for (no CLAP path, or an extension it cannot offer), which
287
+ * is judged from the console's run and reads `unknown` there.
288
+ */
289
+ export function proberOffer(profile) {
290
+ const wanted = profile.clapExtensions;
291
+ if (wanted === null || !OMX_CLAP_HOST_EXTENSIONS.every((e) => wanted.includes(e)))
292
+ return undefined;
293
+ const extra = wanted.filter((e) => !OMX_CLAP_HOST_EXTENSIONS.includes(e));
294
+ if (!extra.every((e) => OMX_CLAP_HOST_CONFIGURED_EXTENSIONS.includes(e)))
295
+ return undefined;
296
+ return OMX_CLAP_HOST_CONFIGURED_EXTENSIONS.filter((e) => extra.includes(e));
297
+ }
298
+ /**
299
+ * Qualify every CLAP target, one prober run per target and set of offered extensions (a crash takes
300
+ * only that plugin), and judge each line under every host profile, from the run that offered that
301
+ * profile's extensions. A target without a binary path (a bare `urn:clap:` id) has nothing to load
302
+ * and is a failure, never a pass.
246
303
  */
247
304
  export function qualifyClapTargets(targets, options) {
248
305
  const profiles = options.profiles ?? [OPENMIXER_CONSOLE_PROFILE];
@@ -251,11 +308,18 @@ export function qualifyClapTargets(targets, options) {
251
308
  const failures = [];
252
309
  for (const target of targets) {
253
310
  const id = target.uri.startsWith("urn:clap:") ? target.uri.slice("urn:clap:".length) : undefined;
254
- let lines;
311
+ // one run per distinct offer, the console's (none) for a profile the prober cannot stand in for
312
+ const offers = new Map();
313
+ for (const profile of profiles) {
314
+ const offer = proberOffer(profile) ?? [];
315
+ offers.set(offer.join(","), offer);
316
+ }
317
+ const runs = new Map();
255
318
  try {
256
319
  if (target.binaryPath === undefined)
257
320
  throw new ClapQualifyError(`${target.uri}: no .clap to load; name the file or a directory holding it`);
258
- lines = qualifyClap(target.binaryPath, id, options);
321
+ for (const [key, offer] of offers)
322
+ runs.set(key, qualifyClap(target.binaryPath, id, { ...options, offer }));
259
323
  }
260
324
  catch (e) {
261
325
  if (!(e instanceof ClapQualifyError))
@@ -266,8 +330,8 @@ export function qualifyClapTargets(targets, options) {
266
330
  }
267
331
  continue;
268
332
  }
269
- for (const line of lines) {
270
- for (const profile of profiles) {
333
+ for (const profile of profiles) {
334
+ for (const line of runs.get((proberOffer(profile) ?? []).join(","))) {
271
335
  const doc = rtSafetyDocument(line, profile);
272
336
  documents.push(doc);
273
337
  verdicts.push(rtSafetyVerdict(doc));
@@ -1 +1 @@
1
- {"version":3,"file":"clap-qualify.js","sourceRoot":"","sources":["../src/clap-qualify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clap-qualify.js","sourceRoot":"","sources":["../src/clap-qualify.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,12 @@ export declare const OMX_INPROCESS_FEATURES: readonly string[];
20
20
  * `posix-fd-support`, no `thread-pool`.
21
21
  */
22
22
  export declare const OMX_CLAP_HOST_EXTENSIONS: readonly string[];
23
+ /**
24
+ * The three host extensions omx-clap-host turns on beyond the library's own (omx-clap-core
25
+ * `src/effects.c` `configure_core`: `preset_load`, `track_info`, `remote_controls`), by the ids
26
+ * its host object answers (`src/clap_host.c`); the prober offers them with `--offer`.
27
+ */
28
+ export declare const OMX_CLAP_HOST_CONFIGURED_EXTENSIONS: readonly string[];
23
29
  /**
24
30
  * jalv 1.6.8 `src/jalv.c` 123–127 + 1316–1325: the list passed to `lilv_plugin_instantiate`
25
31
  * (the zynthian fork, 1.6.9, `src/jalv.c` 1371–1380, passes the identical list).
@@ -36,6 +42,14 @@ export declare const OPENMIXER_CONSOLE_PROFILE: HostProfile;
36
42
  export declare const JALV_PROFILE: HostProfile;
37
43
  /** MOD's host: every plugin of a pedalboard in one shared mod-host process. */
38
44
  export declare const MOD_HOST_PROFILE: HostProfile;
45
+ /**
46
+ * omx-clap-host, alone or as plugin-hostd's CLAP worker: one JACK client per plugin in a host
47
+ * process that several plugins may share (a plugin-hostd pool), instruments fed through each
48
+ * client's `midi_in`, latency published on the JACK ports. Its CLAP host object is the library's
49
+ * plus the three it configures; its LV2 plugins run through the same feature provider as the
50
+ * console's in-process stage.
51
+ */
52
+ export declare const OMX_CLAP_HOST_PROFILE: HostProfile;
39
53
  /** Every profile the tool ships, by id. */
40
54
  export declare const HOST_PROFILES: readonly HostProfile[];
41
55
  /** A shipped profile by id, or `undefined`. */
@@ -44,6 +44,16 @@ export const OMX_CLAP_HOST_EXTENSIONS = [
44
44
  "clap.audio-ports",
45
45
  "clap.state",
46
46
  ];
47
+ /**
48
+ * The three host extensions omx-clap-host turns on beyond the library's own (omx-clap-core
49
+ * `src/effects.c` `configure_core`: `preset_load`, `track_info`, `remote_controls`), by the ids
50
+ * its host object answers (`src/clap_host.c`); the prober offers them with `--offer`.
51
+ */
52
+ export const OMX_CLAP_HOST_CONFIGURED_EXTENSIONS = [
53
+ "clap.preset-load/2",
54
+ "clap.track-info/1",
55
+ "clap.remote-controls/2",
56
+ ];
47
57
  /** The LV2 extension namespace the jalv and mod-host lists are spelled in. */
48
58
  const LV2_EXT = "http://lv2plug.in/ns/ext/";
49
59
  const BUF_SIZE_ALL = ["powerOf2BlockLength", "fixedBlockLength", "boundedBlockLength"].map((f) => `${LV2_EXT}buf-size#${f}`);
@@ -97,8 +107,24 @@ export const MOD_HOST_PROFILE = {
97
107
  latency: "uncompensated",
98
108
  isolation: "shared-process",
99
109
  };
110
+ /**
111
+ * omx-clap-host, alone or as plugin-hostd's CLAP worker: one JACK client per plugin in a host
112
+ * process that several plugins may share (a plugin-hostd pool), instruments fed through each
113
+ * client's `midi_in`, latency published on the JACK ports. Its CLAP host object is the library's
114
+ * plus the three it configures; its LV2 plugins run through the same feature provider as the
115
+ * console's in-process stage.
116
+ */
117
+ export const OMX_CLAP_HOST_PROFILE = {
118
+ id: "omx-clap-host",
119
+ lv2Features: OMX_INPROCESS_FEATURES,
120
+ clapExtensions: [...OMX_CLAP_HOST_EXTENSIONS, ...OMX_CLAP_HOST_CONFIGURED_EXTENSIONS],
121
+ instruments: true,
122
+ cost: HOST_BUDGETS["omx-clap-host"],
123
+ latency: "uncompensated",
124
+ isolation: "shared-process",
125
+ };
100
126
  /** Every profile the tool ships, by id. */
101
- export const HOST_PROFILES = [OPENMIXER_CONSOLE_PROFILE, JALV_PROFILE, MOD_HOST_PROFILE];
127
+ export const HOST_PROFILES = [OPENMIXER_CONSOLE_PROFILE, JALV_PROFILE, MOD_HOST_PROFILE, OMX_CLAP_HOST_PROFILE];
102
128
  /** A shipped profile by id, or `undefined`. */
103
129
  export function shippedHostProfile(id) {
104
130
  return HOST_PROFILES.find((p) => p.id === id);
@@ -1 +1 @@
1
- {"version":3,"file":"host-profiles.js","sourceRoot":"","sources":["../src/host-profiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-profiles.js","sourceRoot":"","sources":["../src/host-profiles.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * The hosting verdict's message codes (2026-09-04-lv2-hosting-path.md). Codes, never prose: the
2
+ * The hosting verdict's message codes. Codes, never prose: the
3
3
  * surface renders the operator's locale.
4
4
  *
5
- * A UNION list file (2026-09-15-no-stored-derivations.md §9): `.gitattributes` marks it
5
+ * A UNION list file: `.gitattributes` marks it
6
6
  * `merge=union`, so two lanes that each add a code merge with both kept. Only the table lives
7
7
  * here, one `key: 'code',` per line, with keys and codes unique; the registry-hotspots gate
8
8
  * refuses anything else.
@@ -22,6 +22,9 @@ export declare const HOSTING_CODE: {
22
22
  readonly rtSafetyViolations: "hosting.rt-safety.violations-in-run";
23
23
  readonly rtSafetyUnmeasured: "hosting.rt-safety.unmeasured";
24
24
  readonly rtSafetyNotReproducible: "hosting.rt-safety.not-reproducible";
25
+ readonly rtSafetyNotesClean: "hosting.rt-safety.clean-under-notes";
26
+ readonly rtSafetyNotesViolations: "hosting.rt-safety.violations-under-notes";
27
+ readonly rtSafetyNotesUnmeasured: "hosting.rt-safety.notes-unmeasured";
25
28
  readonly featuresProvided: "hosting.features.all-provided";
26
29
  readonly featuresMissing: "hosting.features.required-not-provided";
27
30
  readonly featuresDisqualifying: "hosting.features.host-not-provided";
@@ -1,10 +1,10 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  // Copyright (C) 2026 Pau Aliagas <linuxnow@gmail.com>
3
3
  /**
4
- * The hosting verdict's message codes (2026-09-04-lv2-hosting-path.md). Codes, never prose: the
4
+ * The hosting verdict's message codes. Codes, never prose: the
5
5
  * surface renders the operator's locale.
6
6
  *
7
- * A UNION list file (2026-09-15-no-stored-derivations.md §9): `.gitattributes` marks it
7
+ * A UNION list file: `.gitattributes` marks it
8
8
  * `merge=union`, so two lanes that each add a code merge with both kept. Only the table lives
9
9
  * here, one `key: 'code',` per line, with keys and codes unique; the registry-hotspots gate
10
10
  * refuses anything else.
@@ -24,6 +24,10 @@ export const HOSTING_CODE = {
24
24
  rtSafetyViolations: 'hosting.rt-safety.violations-in-run',
25
25
  rtSafetyUnmeasured: 'hosting.rt-safety.unmeasured',
26
26
  rtSafetyNotReproducible: 'hosting.rt-safety.not-reproducible',
27
+ // The note sweep: an instrument played under the interposer, a count of its own.
28
+ rtSafetyNotesClean: 'hosting.rt-safety.clean-under-notes',
29
+ rtSafetyNotesViolations: 'hosting.rt-safety.violations-under-notes',
30
+ rtSafetyNotesUnmeasured: 'hosting.rt-safety.notes-unmeasured',
27
31
  featuresProvided: 'hosting.features.all-provided',
28
32
  featuresMissing: 'hosting.features.required-not-provided',
29
33
  featuresDisqualifying: 'hosting.features.host-not-provided',
@@ -44,7 +48,7 @@ export const HOSTING_CODE = {
44
48
  topologyNoAudioOutput: 'hosting.topology.no-audio-output',
45
49
  topologyExtraInputs: 'hosting.topology.extra-inputs-fed-silence',
46
50
  topologyInstrument: 'hosting.topology.instrument',
47
- // The CLAP arm (2026-09-26-clap-hosting-path.md §3): the SAME dimensions fed from CLAP facts,
51
+ // The CLAP arm: the SAME dimensions fed from CLAP facts,
48
52
  // minted here where the LV2 table has no code for the fact.
49
53
  topologyWiderThanStrip: 'hosting.topology.wider-than-strip',
50
54
  clapLatencyMismatch: 'hosting.clap.latency-mismatch',
@@ -72,7 +76,7 @@ export const HOSTING_CODE = {
72
76
  noRealisation: 'hosting.no-realisation',
73
77
  realisedInProcess: 'hosting.realised.in-process',
74
78
  // A plugin LINKED into the engine (the static-link registry) runs in-process without a
75
- // verdict: the library's oracles are its proof (`2026-09-26-clap-hosting-path.md` §7).
79
+ // verdict: the library's oracles are its proof.
76
80
  linked: 'hosting.linked',
77
81
  };
78
82
  //# sourceMappingURL=hosting-codes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hosting-codes.js","sourceRoot":"","sources":["../src/hosting-codes.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,0BAA0B;IAC3C,0BAA0B,EAAE,6CAA6C;IACzE,oBAAoB,EAAE,4CAA4C;IAClE,mBAAmB,EAAE,sCAAsC;IAC3D,iBAAiB,EAAE,4BAA4B;IAC/C,yBAAyB,EAAE,uCAAuC;IAClE,mBAAmB,EAAE,8BAA8B;IACnD,0BAA0B,EAAE,sCAAsC;IAClE,sBAAsB,EAAE,kCAAkC;IAC1D,wBAAwB,EAAE,qCAAqC;IAC/D,aAAa,EAAE,qCAAqC;IACpD,kBAAkB,EAAE,qCAAqC;IACzD,kBAAkB,EAAE,8BAA8B;IAClD,uBAAuB,EAAE,oCAAoC;IAC7D,gBAAgB,EAAE,+BAA+B;IACjD,eAAe,EAAE,wCAAwC;IACzD,qBAAqB,EAAE,oCAAoC;IAC3D,UAAU,EAAE,2BAA2B;IACvC,cAAc,EAAE,oCAAoC;IACpD,iBAAiB,EAAE,sCAAsC;IACzD,iBAAiB,EAAE,6BAA6B;IAChD,gBAAgB,EAAE,4BAA4B;IAC9C,SAAS,EAAE,yBAAyB;IACpC,cAAc,EAAE,6CAA6C;IAC7D,iBAAiB,EAAE,6BAA6B;IAChD,eAAe,EAAE,0BAA0B;IAC3C,iBAAiB,EAAE,4BAA4B;IAC/C,oBAAoB,EAAE,+BAA+B;IACrD,yBAAyB,EAAE,qCAAqC;IAChE,eAAe,EAAE,0BAA0B;IAC3C,oBAAoB,EAAE,iCAAiC;IACvD,qBAAqB,EAAE,kCAAkC;IACzD,mBAAmB,EAAE,2CAA2C;IAChE,kBAAkB,EAAE,6BAA6B;IACjD,8FAA8F;IAC9F,4DAA4D;IAC5D,sBAAsB,EAAE,mCAAmC;IAC3D,mBAAmB,EAAE,+BAA+B;IACpD,kBAAkB,EAAE,+BAA+B;IACnD,kBAAkB,EAAE,8BAA8B;IAClD,aAAa,EAAE,yBAAyB;IACxC,mBAAmB,EAAE,+BAA+B;IACpD,gBAAgB,EAAE,4BAA4B;IAC9C,eAAe,EAAE,0BAA0B;IAC3C,mBAAmB,EAAE,gCAAgC;IACrD,wBAAwB,EAAE,qCAAqC;IAC/D,eAAe,EAAE,2BAA2B;IAC5C,yFAAyF;IACzF,iBAAiB,EAAE,4BAA4B;IAC/C,uBAAuB,EAAE,mCAAmC;IAC5D,uBAAuB,EAAE,mCAAmC;IAC5D,gBAAgB,EAAE,mCAAmC;IACrD,qBAAqB,EAAE,iCAAiC;IACxD,sBAAsB,EAAE,+CAA+C;IACvE,yFAAyF;IACzF,uFAAuF;IACvF,sDAAsD;IACtD,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,aAAa,EAAE,wBAAwB;IACvC,iBAAiB,EAAE,6BAA6B;IAChD,uFAAuF;IACvF,uFAAuF;IACvF,MAAM,EAAE,gBAAgB;CAChB,CAAC"}
1
+ {"version":3,"file":"hosting-codes.js","sourceRoot":"","sources":["../src/hosting-codes.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,0BAA0B;IAC3C,0BAA0B,EAAE,6CAA6C;IACzE,oBAAoB,EAAE,4CAA4C;IAClE,mBAAmB,EAAE,sCAAsC;IAC3D,iBAAiB,EAAE,4BAA4B;IAC/C,yBAAyB,EAAE,uCAAuC;IAClE,mBAAmB,EAAE,8BAA8B;IACnD,0BAA0B,EAAE,sCAAsC;IAClE,sBAAsB,EAAE,kCAAkC;IAC1D,wBAAwB,EAAE,qCAAqC;IAC/D,aAAa,EAAE,qCAAqC;IACpD,kBAAkB,EAAE,qCAAqC;IACzD,kBAAkB,EAAE,8BAA8B;IAClD,uBAAuB,EAAE,oCAAoC;IAC7D,iFAAiF;IACjF,kBAAkB,EAAE,qCAAqC;IACzD,uBAAuB,EAAE,0CAA0C;IACnE,uBAAuB,EAAE,oCAAoC;IAC7D,gBAAgB,EAAE,+BAA+B;IACjD,eAAe,EAAE,wCAAwC;IACzD,qBAAqB,EAAE,oCAAoC;IAC3D,UAAU,EAAE,2BAA2B;IACvC,cAAc,EAAE,oCAAoC;IACpD,iBAAiB,EAAE,sCAAsC;IACzD,iBAAiB,EAAE,6BAA6B;IAChD,gBAAgB,EAAE,4BAA4B;IAC9C,SAAS,EAAE,yBAAyB;IACpC,cAAc,EAAE,6CAA6C;IAC7D,iBAAiB,EAAE,6BAA6B;IAChD,eAAe,EAAE,0BAA0B;IAC3C,iBAAiB,EAAE,4BAA4B;IAC/C,oBAAoB,EAAE,+BAA+B;IACrD,yBAAyB,EAAE,qCAAqC;IAChE,eAAe,EAAE,0BAA0B;IAC3C,oBAAoB,EAAE,iCAAiC;IACvD,qBAAqB,EAAE,kCAAkC;IACzD,mBAAmB,EAAE,2CAA2C;IAChE,kBAAkB,EAAE,6BAA6B;IACjD,yDAAyD;IACzD,4DAA4D;IAC5D,sBAAsB,EAAE,mCAAmC;IAC3D,mBAAmB,EAAE,+BAA+B;IACpD,kBAAkB,EAAE,+BAA+B;IACnD,kBAAkB,EAAE,8BAA8B;IAClD,aAAa,EAAE,yBAAyB;IACxC,mBAAmB,EAAE,+BAA+B;IACpD,gBAAgB,EAAE,4BAA4B;IAC9C,eAAe,EAAE,0BAA0B;IAC3C,mBAAmB,EAAE,gCAAgC;IACrD,wBAAwB,EAAE,qCAAqC;IAC/D,eAAe,EAAE,2BAA2B;IAC5C,yFAAyF;IACzF,iBAAiB,EAAE,4BAA4B;IAC/C,uBAAuB,EAAE,mCAAmC;IAC5D,uBAAuB,EAAE,mCAAmC;IAC5D,gBAAgB,EAAE,mCAAmC;IACrD,qBAAqB,EAAE,iCAAiC;IACxD,sBAAsB,EAAE,+CAA+C;IACvE,yFAAyF;IACzF,uFAAuF;IACvF,sDAAsD;IACtD,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,aAAa,EAAE,wBAAwB;IACvC,iBAAiB,EAAE,6BAA6B;IAChD,uFAAuF;IACvF,gDAAgD;IAChD,MAAM,EAAE,gBAAgB;CAChB,CAAC"}
@@ -127,11 +127,11 @@ export interface CrashSignature {
127
127
  /** The top plugin-owned stack frame, or a host frame that exonerates the plugin. */
128
128
  readonly topFrame: string;
129
129
  readonly signal?: "SIGSEGV" | "SIGABRT" | "SIGBUS";
130
- /** The note that recorded this cluster. Provenance, so a row is never folklore. */
130
+ /** What was found about this cluster. Provenance, so a row is never folklore. */
131
131
  readonly note: string;
132
132
  }
133
133
  /**
134
- * Seeded from the crash notes of 2026-09-03/04. A raw crash matching NO row is
134
+ * Seeded from the crashes investigated on 2026-09-03/04. A raw crash matching NO row is
135
135
  * `unknown` — the table blames a plugin only where a named investigation did.
136
136
  */
137
137
  export declare const CRASH_SIGNATURES: readonly CrashSignature[];
@@ -209,6 +209,27 @@ export interface PluginClapMeasurement {
209
209
  /** `process()` calls the sweep made after its warm-up; a sweep of 0 measured nothing. */
210
210
  readonly processCalls: number;
211
211
  }
212
+ /**
213
+ * The note sweep of a CLAP plugin with a note input (plugin-qualify's prober): the plugin played at
214
+ * every rate — a chord, bend and a controller, pressure, the chord let go, a burst of note ons and
215
+ * their offs, all notes off — in the dialect its first note input reads, counted under the
216
+ * interposer apart from the parameter sweep. `applicable: false` is a plugin the prober could not
217
+ * play: no note input, or none in a dialect it speaks.
218
+ */
219
+ export interface PluginNoteSweepMeasurement {
220
+ readonly applicable: boolean;
221
+ readonly dialect?: "clap" | "midi";
222
+ readonly blocks?: number;
223
+ readonly blockFrames?: number;
224
+ /** Note, expression and MIDI events the sweep sent. */
225
+ readonly noteEvents?: number;
226
+ readonly processErrors?: number;
227
+ readonly nonFinite?: boolean;
228
+ readonly interposer?: boolean;
229
+ readonly allocationsInRun?: number;
230
+ readonly locksInRun?: number;
231
+ readonly syscallsInRun?: number;
232
+ }
212
233
  /** What the classifier is told about the console asking. */
213
234
  export interface HostingClassifyOptions {
214
235
  /** The LIVE rate. Cost is read here and nowhere else — never projected. */
@@ -327,6 +348,14 @@ export declare function clapFeatureReasons(clap: PluginClapMeasurement | undefin
327
348
  * that made no `process()` call measured nothing.
328
349
  */
329
350
  export declare function clapRtReasons(clap: PluginClapMeasurement | undefined): readonly HostingReason[];
351
+ /**
352
+ * The rtSafety reasons of the note sweep, for a plugin with `noteInputs` note inputs: none for a
353
+ * plugin that takes no notes; `unknown` when it takes notes and was not played under the
354
+ * interposer (an instrument is cheap and clean at rest, so the parameter sweep alone says nothing
355
+ * about a voice); `unsuitable` on any allocation, lock or syscall while it was played, or a process
356
+ * error; `suitable` on a clean count.
357
+ */
358
+ export declare function noteSweepReasons(sweep: PluginNoteSweepMeasurement | undefined, noteInputs: number): readonly HostingReason[];
330
359
  /**
331
360
  * The verdict. Worst-wins across every dimension, exactly as `classifyForRole` folds — with
332
361
  * three gates that can poison the whole result before the fold is even read: a curator
@@ -349,7 +378,7 @@ export interface HostingRealisation {
349
378
  readonly inProcessAvailable: boolean;
350
379
  /**
351
380
  * Whether the plugin is LINKED into the engine (its static-link registry): it needs no verdict
352
- * to run in-process (`2026-09-26-clap-hosting-path.md` §7). Absent reads as not linked.
381
+ * to run in-process. Absent reads as not linked.
353
382
  */
354
383
  readonly linked?: boolean;
355
384
  }
@@ -105,7 +105,7 @@ export function contributedHostingRating(reason) {
105
105
  return reason.rating;
106
106
  }
107
107
  /**
108
- * Seeded from the crash notes of 2026-09-03/04. A raw crash matching NO row is
108
+ * Seeded from the crashes investigated on 2026-09-03/04. A raw crash matching NO row is
109
109
  * `unknown` — the table blames a plugin only where a named investigation did.
110
110
  */
111
111
  export const CRASH_SIGNATURES = [
@@ -114,26 +114,26 @@ export const CRASH_SIGNATURES = [
114
114
  attribution: "host",
115
115
  topFrame: "pw_memmap_free",
116
116
  signal: "SIGSEGV",
117
- note: "2026-09-04-pipewire-jack-client-close-double-free.md",
117
+ note: "closing a PipeWire JACK client frees a memory map twice; the host crashes, not the plugin",
118
118
  },
119
119
  {
120
120
  id: "pipewire-jack-close-double-free-abort",
121
121
  attribution: "host",
122
122
  topFrame: "tcache_double_free_verify",
123
123
  signal: "SIGABRT",
124
- note: "2026-09-04-pipewire-jack-client-close-double-free.md",
124
+ note: "the same double free in PipeWire's JACK client close, caught by glibc's tcache check as an abort",
125
125
  },
126
126
  {
127
127
  id: "mod-host-effects-remove",
128
128
  attribution: "host",
129
129
  topFrame: "effects_remove",
130
- note: "2026-09-03-mod-host-crash-cluster2-3-investigation.md",
130
+ note: "mod-host crashes in effects_remove while removing an effect; the host is at fault",
131
131
  },
132
132
  {
133
133
  id: "plugin-instantiate-layout",
134
134
  attribution: "plugin",
135
135
  topFrame: "lilv_instance_instantiate",
136
- note: "2026-09-03-mod-host-crash-cluster2-3-investigation.md",
136
+ note: "the plugin crashes while lilv instantiates it, on a port layout it cannot host",
137
137
  },
138
138
  ];
139
139
  /**
@@ -587,6 +587,35 @@ export function clapRtReasons(clap) {
587
587
  }
588
588
  return out;
589
589
  }
590
+ /**
591
+ * The rtSafety reasons of the note sweep, for a plugin with `noteInputs` note inputs: none for a
592
+ * plugin that takes no notes; `unknown` when it takes notes and was not played under the
593
+ * interposer (an instrument is cheap and clean at rest, so the parameter sweep alone says nothing
594
+ * about a voice); `unsuitable` on any allocation, lock or syscall while it was played, or a process
595
+ * error; `suitable` on a clean count.
596
+ */
597
+ export function noteSweepReasons(sweep, noteInputs) {
598
+ if (noteInputs === 0)
599
+ return [];
600
+ if (sweep === undefined || !sweep.applicable || sweep.interposer !== true || !sweep.blocks ||
601
+ sweep.allocationsInRun === undefined || sweep.locksInRun === undefined || sweep.syscallsInRun === undefined) {
602
+ return [reason("rtSafety", "objective", "unknown", HOSTING_CODE.rtSafetyNotesUnmeasured)];
603
+ }
604
+ const out = [];
605
+ if (sweep.allocationsInRun + sweep.locksInRun + sweep.syscallsInRun > 0) {
606
+ out.push(reason("rtSafety", "objective", "unsuitable", HOSTING_CODE.rtSafetyNotesViolations, {
607
+ allocations: sweep.allocationsInRun,
608
+ syscalls: sweep.syscallsInRun,
609
+ locks: sweep.locksInRun,
610
+ }));
611
+ }
612
+ if ((sweep.processErrors ?? 0) > 0) {
613
+ out.push(reason("rtSafety", "objective", "unsuitable", HOSTING_CODE.clapProcessError, { errors: sweep.processErrors ?? 0 }));
614
+ }
615
+ return out.length > 0
616
+ ? out
617
+ : [reason("rtSafety", "objective", "suitable", HOSTING_CODE.rtSafetyNotesClean, { blocks: sweep.blocks, events: sweep.noteEvents ?? 0 })];
618
+ }
590
619
  /**
591
620
  * The verdict. Worst-wins across every dimension, exactly as `classifyForRole` folds — with
592
621
  * three gates that can poison the whole result before the fold is even read: a curator
@@ -601,7 +630,7 @@ export function classifyPluginHosting(descriptor, options) {
601
630
  // interchange's one door (`measurement-catalog.ts`), whose per-dimension precedence is the
602
631
  // only precedence there is. A second "passed measurements win" seam here was how an offline
603
632
  // report could agree with itself while every served descriptor read unknown.
604
- // The CLAP arm (2026-09-26-clap-hosting-path.md §3): the SAME six dimensions, fed from the
633
+ // The CLAP arm: the SAME six dimensions, fed from the
605
634
  // qualifier's CLAP facts where the LV2 scan's facts do not exist for the format. Stability,
606
635
  // the interposer's counts and the cost are format-blind and read unchanged.
607
636
  const reasons = descriptor.format === "clap"