@map-audio/pam-mcp-server 1.21.0 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -7
  3. package/dist/audioAnalysis.d.ts +35 -0
  4. package/dist/audioAnalysis.js +277 -0
  5. package/dist/audioAnalysis.js.map +1 -0
  6. package/dist/bridge.d.ts +6 -0
  7. package/dist/bridge.js +151 -168
  8. package/dist/bridge.js.map +1 -1
  9. package/dist/corpusFingerprints.d.ts +17 -0
  10. package/dist/corpusFingerprints.js +10 -0
  11. package/dist/corpusFingerprints.js.map +1 -0
  12. package/dist/corpusRanges.d.ts +28 -0
  13. package/dist/corpusRanges.js +1029 -0
  14. package/dist/corpusRanges.js.map +1 -0
  15. package/dist/drumSynthEngines.json +376 -0
  16. package/dist/fingerprint.d.ts +70 -0
  17. package/dist/fingerprint.js +240 -0
  18. package/dist/fingerprint.js.map +1 -0
  19. package/dist/generated/variationSnapshot.d.ts +8 -4
  20. package/dist/generated/variationSnapshot.js +6 -4
  21. package/dist/generated/variationSnapshot.js.map +1 -1
  22. package/dist/generativePlayerPresets.json +70 -0
  23. package/dist/generativePlayers.json +134 -0
  24. package/dist/manifest-cell1.json +4972 -249
  25. package/dist/manifest-mfx.json +11571 -1800
  26. package/dist/manifest.d.ts +15 -3
  27. package/dist/manifest.js +24 -15
  28. package/dist/manifest.js.map +1 -1
  29. package/dist/manifest.json +25034 -499
  30. package/dist/mfxCombos.d.ts +45 -0
  31. package/dist/mfxCombos.js +499 -0
  32. package/dist/mfxCombos.js.map +1 -0
  33. package/dist/midiFile.d.ts +21 -0
  34. package/dist/midiFile.js +108 -0
  35. package/dist/midiFile.js.map +1 -0
  36. package/dist/mixAssist.d.ts +6 -0
  37. package/dist/mixAssist.js +96 -11
  38. package/dist/mixAssist.js.map +1 -1
  39. package/dist/players.d.ts +89 -0
  40. package/dist/players.js +235 -0
  41. package/dist/players.js.map +1 -0
  42. package/dist/presetSave.d.ts +5 -0
  43. package/dist/presetSave.js +22 -0
  44. package/dist/presetSave.js.map +1 -1
  45. package/dist/productProfile.d.ts +9 -0
  46. package/dist/productProfile.js +20 -0
  47. package/dist/productProfile.js.map +1 -0
  48. package/dist/sampleSlicing.d.ts +12 -0
  49. package/dist/sampleSlicing.js +78 -0
  50. package/dist/sampleSlicing.js.map +1 -0
  51. package/dist/server.js +2536 -483
  52. package/dist/server.js.map +1 -1
  53. package/dist/variationSessionKeys.json +34 -1
  54. package/package.json +11 -5
package/dist/bridge.js CHANGED
@@ -2,120 +2,9 @@ import { readFile } from "node:fs/promises";
2
2
  import { resolve } from "node:path";
3
3
  import { createConnection } from "node:net";
4
4
  import { homedir } from "node:os";
5
+ import { mcpProductProfile } from "./productProfile.js";
5
6
  const DISCOVERY_FILE = resolve(homedir(), ".pam-mcp-bridge.json");
6
- // Minimum PAM build that ships the bridge handlers added in this server version.
7
- // Tools registered against actions introduced after this version will return
8
- // "unknown action 'X'" from older PAM builds — the wrapper below translates
9
- // that into an actionable error for the agent.
10
- const MIN_PAM_VERSION_FOR_NEW_ACTIONS = "1.5.0";
11
- const NEW_ACTIONS_ADDED_IN_1_5_0 = new Set([
12
- "aiGenerate",
13
- "aiGenerateKit",
14
- ]);
15
- const NEW_ACTIONS_ADDED_IN_1_1_0 = new Set([
16
- "startLooperRecord",
17
- "stopLooperRecord",
18
- "captureLooperNow",
19
- "loadAudioToLooperTrack",
20
- "requestLooperWarp",
21
- "setLooperAlwaysListen",
22
- "setLooperLatencyCompAuto",
23
- "setLooperLatencyCompOffsetMs",
24
- "setLooperLatencyCompApplyToCells",
25
- "saveLooperVariation",
26
- "clearLooperVariation",
27
- "applyLooperVariationImmediate",
28
- "queueLooperVariationOnBars",
29
- "cancelQueuedLooperVariation",
30
- "setLooperVariationBarSyncEnabled",
31
- "setLooperVariationBarSyncIntervalBars",
32
- "setCurrentLooperVariationIndex",
33
- "queueVariationOnBars",
34
- "cancelQueuedVariation",
35
- "updateVariations",
36
- "midiCC",
37
- "midiProgramChange",
38
- "startMidiRecording",
39
- "stopMidiRecording",
40
- "setMidiRecordingOverdub",
41
- "removeRecordedNote",
42
- "applyEnvelopeUpdate",
43
- "applyLfoUpdate",
44
- "applyVaryUpdate",
45
- "applyMacroUpdate",
46
- "applyParamSeqUpdate",
47
- "applyParamSeqSequenceUpdate",
48
- "setSongModeSequence",
49
- "clearSongModeSequence",
50
- "toggleSongMode",
51
- "setSongModeLoopPoints",
52
- "toggleSongModeLoop",
53
- "setSongModeCrossfadeMs",
54
- "setSongModePlayhead",
55
- "setVariationHoldEnabled",
56
- "variationHoldAllNotesOff",
57
- "syncVariationHoldBindings",
58
- "setMetronomeEnabled",
59
- "analyzeSampleTempo",
60
- "requestSamplePeaks",
61
- "previewSlice",
62
- "resampleSampleToBPM",
63
- "restoreOriginalSample",
64
- "buildSampleChain",
65
- "exportSliceForCell",
66
- "resampleGraphToCell",
67
- "stopLiveResample",
68
- ]);
69
- // Actions added in MCP server 1.7.0 — settings, transport config, MIDI device +
70
- // action-mapping config, preset management (delete / factory-status / sample-usage /
71
- // sample-path repair), and native sample preview. Require a PAM build of the same
72
- // vintage; older builds return "unknown action 'X'".
73
- const NEW_ACTIONS_ADDED_IN_1_7_0 = new Set([
74
- "applySettingsUpdate",
75
- "updateTransportTimeSig",
76
- "setHostSyncEnabled",
77
- "releaseHostSyncForManualTransport",
78
- "setExternalClockSync",
79
- "setMuteAudioOutput",
80
- "getAudioDeviceSetup",
81
- "setMidiInputDevices",
82
- "setMidiOutputDevice",
83
- "setMidiOutputEnabled",
84
- "setMidiMapping",
85
- "removePreset",
86
- "togglePresetFactoryStatus",
87
- "getPresetSampleUsage",
88
- "getPresetsUsingSample",
89
- "fixPresetSamplePaths",
90
- "rescanMissingSamples",
91
- "previewSampleNative",
92
- "stopPreviewNative",
93
- ]);
94
- // Actions added in MCP server 1.8.0 — VX video subsystem control (layers, FX chains,
95
- // audio-reactive bindings, output FX, mod routes, model overlay, render/sync settings)
96
- // plus the full-scene read channel. Require a PAM build with the mcpVideoBridge wiring.
97
- const NEW_ACTIONS_ADDED_IN_1_8_0 = new Set([
98
- "videoCommand",
99
- "getVideoState",
100
- ]);
101
- // Actions added in MCP server 1.13.0 — drum-synth control routed through the WebView
102
- // (the engine-aware randomizer + the drawable-wave LUT). Require a PAM build whose
103
- // MCPBridge forwards them via postToUI; older builds return "unknown action 'X'".
104
- const NEW_ACTIONS_ADDED_IN_1_13_0 = new Set([
105
- "randomizeDrumSynth",
106
- "setDrumSynthWaveCurve",
107
- ]);
108
- // Actions added in MCP server 1.15.0 — the assistant-surface UI forwards
109
- // (set_view navigation + the lfos/mods modulation randomizer), routed through
110
- // the WebView like randomizeDrumSynth. Older builds return "unknown action 'X'".
111
- const NEW_ACTIONS_ADDED_IN_1_15_0 = new Set([
112
- "setView",
113
- "randomizeModulations",
114
- ]);
115
- const NEW_ACTIONS_ADDED_IN_1_17_0 = new Set([
116
- "analyzeMix",
117
- "getMixAnalysis",
118
- ]);
7
+ const BRIDGE_PRODUCT = mcpProductProfile();
119
8
  // Plugin-host actions ship on builds with PAM_PLUGIN_HOST=1. Older builds or
120
9
  // non-host SKUs like Cell1 won't recognize them and will return
121
10
  // "unknown action 'X'". MFX can compile FX-side hosting, but these shared MCP
@@ -147,6 +36,16 @@ const MODEL_ACTIONS = new Set([
147
36
  "modelDelete",
148
37
  "modelList",
149
38
  ]);
39
+ /**
40
+ * net.createConnection() THROWS synchronously on a port outside [0, 65535] (or
41
+ * a non-number). Inside connect()'s Promise executor that surfaces as a
42
+ * rejection, and the startup `bridge.connect()` call has no catch — so one
43
+ * garbled discovery entry used to take the whole stdio server down with
44
+ * "Connection closed" and no diagnostic. Every port is screened through here.
45
+ */
46
+ function isUsablePort(port) {
47
+ return typeof port === "number" && Number.isInteger(port) && port > 0 && port < 65536;
48
+ }
150
49
  export class PluginBridge {
151
50
  socket = null;
152
51
  buffer = "";
@@ -154,6 +53,9 @@ export class PluginBridge {
154
53
  pending = new Map();
155
54
  connected = false;
156
55
  connectedInstance = null;
56
+ selectedTarget;
57
+ connecting = null;
58
+ connectionGeneration = 0;
157
59
  async discover() {
158
60
  try {
159
61
  const raw = await readFile(DISCOVERY_FILE, "utf-8");
@@ -166,6 +68,11 @@ export class PluginBridge {
166
68
  return entries.filter((e) => {
167
69
  if (!e || typeof e.pid !== "number" || e.pid <= 0)
168
70
  return false;
71
+ // A torn/garbled discovery write can carry a port that createConnection
72
+ // rejects synchronously (ERR_SOCKET_BAD_PORT). Drop it here so it can
73
+ // never reach connect().
74
+ if (!isUsablePort(e.port))
75
+ return false;
169
76
  try {
170
77
  process.kill(e.pid, 0);
171
78
  return true;
@@ -189,20 +96,33 @@ export class PluginBridge {
189
96
  return false;
190
97
  return true;
191
98
  }
192
- async connect(target) {
193
- // Default target: the PAM_BRIDGE_PRODUCT env pin, if set. The pin is hard —
194
- // silently connecting to a different product would mutate the wrong plugin.
195
- if (!target && process.env.PAM_BRIDGE_PRODUCT) {
196
- target = { product: process.env.PAM_BRIDGE_PRODUCT };
197
- }
198
- if (this.connected) {
199
- if (!target || (this.connectedInstance && PluginBridge.matchesTarget(this.connectedInstance, target)))
200
- return true;
201
- this.disconnect();
202
- }
99
+ connect(target) {
100
+ target ??= this.selectedTarget ?? (process.env.PAM_BRIDGE_PRODUCT
101
+ ? { product: process.env.PAM_BRIDGE_PRODUCT } : undefined);
102
+ const sameTarget = target?.port === this.selectedTarget?.port
103
+ && target?.instanceId === this.selectedTarget?.instanceId
104
+ && target?.product?.toLowerCase() === this.selectedTarget?.product?.toLowerCase();
105
+ if (this.connecting && sameTarget)
106
+ return this.connecting;
107
+ if (this.connected && (sameTarget || (this.connectedInstance
108
+ && (!target || PluginBridge.matchesTarget(this.connectedInstance, target)))))
109
+ return Promise.resolve(true);
110
+ this.disconnect();
111
+ this.selectedTarget = target ? { ...target } : undefined;
112
+ const generation = this.connectionGeneration;
113
+ const attempt = this.connectTo(target, generation).catch(() => false).finally(() => {
114
+ if (generation === this.connectionGeneration)
115
+ this.connecting = null;
116
+ });
117
+ this.connecting = attempt;
118
+ return attempt;
119
+ }
120
+ async connectTo(target, generation) {
203
121
  let port = target?.port;
204
122
  let instance = null;
205
123
  const instances = await this.discover();
124
+ if (generation !== this.connectionGeneration)
125
+ return false;
206
126
  if (target && (target.product !== undefined || target.instanceId !== undefined)) {
207
127
  instance = instances.find((i) => PluginBridge.matchesTarget(i, target)) ?? null;
208
128
  if (!instance)
@@ -218,31 +138,66 @@ export class PluginBridge {
218
138
  else {
219
139
  instance = instances.find((i) => i.port === port) ?? null;
220
140
  }
141
+ // A caller-supplied port (select_instance) never passed through discover()'s
142
+ // screen, so validate before handing it to createConnection.
143
+ if (!isUsablePort(port))
144
+ return false;
221
145
  return new Promise((resolve) => {
222
- const timer = setTimeout(() => {
223
- if (!this.connected) {
224
- this.socket?.destroy();
225
- resolve(false);
226
- }
227
- }, 2000);
228
- this.socket = createConnection({ host: "127.0.0.1", port }, () => {
146
+ // connect() must never reject: the startup call site fires it
147
+ // unawaited, and an unhandled rejection kills the stdio server.
148
+ let timer;
149
+ const settle = (ok) => {
229
150
  clearTimeout(timer);
230
- this.connected = true;
231
- this.connectedInstance = instance;
232
- resolve(true);
233
- });
234
- this.socket.setEncoding("utf-8");
235
- this.socket.on("data", (chunk) => {
151
+ resolve(ok);
152
+ };
153
+ timer = setTimeout(() => {
154
+ socket?.destroy();
155
+ settle(false);
156
+ }, 2000);
157
+ let socket;
158
+ try {
159
+ socket = createConnection({ host: "127.0.0.1", port }, () => {
160
+ if (generation !== this.connectionGeneration || this.socket !== socket) {
161
+ socket.destroy();
162
+ settle(false);
163
+ return;
164
+ }
165
+ this.connected = true;
166
+ this.connectedInstance = instance;
167
+ this.selectedTarget = instance
168
+ ? { instanceId: instance.instanceId, product: instance.product }
169
+ : { port };
170
+ settle(true);
171
+ });
172
+ }
173
+ catch {
174
+ settle(false);
175
+ return;
176
+ }
177
+ this.socket = socket;
178
+ socket.setEncoding("utf-8");
179
+ socket.on("data", (chunk) => {
180
+ // Late data from a socket we've already replaced would interleave into
181
+ // the current connection's frame buffer.
182
+ if (this.socket !== socket)
183
+ return;
236
184
  this.buffer += chunk;
237
185
  this.processBuffer();
238
186
  });
239
- this.socket.on("error", () => {
240
- clearTimeout(timer);
241
- this.connected = false;
242
- resolve(false);
187
+ socket.on("error", () => {
188
+ if (this.socket === socket)
189
+ this.connected = false;
190
+ settle(false);
243
191
  });
244
- this.socket.on("close", () => {
192
+ socket.on("close", () => {
193
+ settle(false);
194
+ if (this.socket !== socket)
195
+ return;
245
196
  this.connected = false;
197
+ this.connectedInstance = null;
198
+ // A drop mid-frame leaves a partial line behind; carrying it over would
199
+ // corrupt (and silently swallow) the next connection's first response.
200
+ this.buffer = "";
246
201
  // Reject all pending requests
247
202
  for (const [, req] of this.pending) {
248
203
  req.reject(new Error("Connection closed"));
@@ -252,10 +207,16 @@ export class PluginBridge {
252
207
  });
253
208
  }
254
209
  disconnect() {
210
+ this.connectionGeneration++;
211
+ this.connecting = null;
255
212
  this.socket?.destroy();
256
213
  this.socket = null;
257
214
  this.connected = false;
258
215
  this.connectedInstance = null;
216
+ this.buffer = "";
217
+ for (const [, req] of this.pending)
218
+ req.reject(new Error("Connection closed"));
219
+ this.pending.clear();
259
220
  }
260
221
  isConnected() {
261
222
  return this.connected;
@@ -278,6 +239,11 @@ export class PluginBridge {
278
239
  "listDirectory",
279
240
  "importVisualFolder",
280
241
  "loadPlugin",
242
+ // Enumerating audio hardware runs currentDeviceType->scanForDevices()
243
+ // (StandaloneAudioDevice.cpp) on the message thread — a blocking CoreAudio
244
+ // rescan that routinely outruns the default 10 s budget.
245
+ "getAudioDeviceSetup",
246
+ "setAudioDevice",
281
247
  // Model lifecycle: trigger is fast, but load/unload/delete can join a
282
248
  // manager bootstrap thread for seconds (non-interruptible ORT/MLX loads).
283
249
  "modelDownload",
@@ -291,17 +257,44 @@ export class PluginBridge {
291
257
  // waits up to 180 s on the sidecar (pipeline rebuild + sequential inpaints),
292
258
  // so the TCP timeout must outlast it.
293
259
  static VERY_SLOW_ACTIONS = new Set(["workbenchRender"]);
260
+ // Per-action budgets that must outlast a bound the C++ handler enforces
261
+ // itself. Undershooting these is worse than a slow call: the tool reports a
262
+ // timeout while the plugin carries on, and an agent that retries queues a
263
+ // SECOND render (the duplicate-export trap in rules/mcp.md).
264
+ static ACTION_TIMEOUTS_MS = {
265
+ // handleAIGenerate blocks the message thread on the generation future for
266
+ // up to 60 s; the kit handler repeats that per request, up to 8 of them.
267
+ aiGenerate: 70_000,
268
+ aiGenerateKit: 500_000,
269
+ // These return immediately, but they kick off (or are polled during) an
270
+ // offline render that saturates the message thread — and the bridge only
271
+ // replies while drainQueue runs on the 30 Hz timer.
272
+ exportAudio: 120_000,
273
+ getExportStatus: 120_000,
274
+ analyzeMix: 120_000,
275
+ getMixAnalysis: 120_000,
276
+ resampleSampleToBPM: 60_000,
277
+ buildSampleChain: 60_000,
278
+ exportSliceForCell: 60_000,
279
+ requestLooperWarp: 60_000,
280
+ };
281
+ static timeoutFor(action) {
282
+ const explicit = PluginBridge.ACTION_TIMEOUTS_MS[action];
283
+ if (explicit !== undefined)
284
+ return explicit;
285
+ if (PluginBridge.VERY_SLOW_ACTIONS.has(action))
286
+ return 190_000;
287
+ if (PluginBridge.SLOW_ACTIONS.has(action))
288
+ return 30_000;
289
+ return 10_000;
290
+ }
294
291
  async send(action, ...args) {
295
292
  if (!this.connected || !this.socket) {
296
- throw new Error("Not connected to PAM plugin. Start PAM and ensure the MCP bridge is enabled.");
293
+ throw new Error(`Not connected to ${BRIDGE_PRODUCT.name}. Start ${BRIDGE_PRODUCT.name} and ensure the MCP bridge is enabled.`);
297
294
  }
298
295
  const id = this.nextId++;
299
296
  const msg = { id, action, args };
300
- const timeoutMs = PluginBridge.VERY_SLOW_ACTIONS.has(action)
301
- ? 190000
302
- : PluginBridge.SLOW_ACTIONS.has(action)
303
- ? 30000
304
- : 10000;
297
+ const timeoutMs = PluginBridge.timeoutFor(action);
305
298
  return new Promise((resolve, reject) => {
306
299
  const timer = setTimeout(() => {
307
300
  if (this.pending.has(id)) {
@@ -321,34 +314,24 @@ export class PluginBridge {
321
314
  // C++ MCPBridge::handleCommand emits this exact prefix for unrecognized actions.
322
315
  if (message.startsWith("unknown action '")) {
323
316
  if (PLUGIN_HOST_ACTIONS.has(action)) {
317
+ if (BRIDGE_PRODUCT.id === "mfx") {
318
+ return "MFX hosted-FX slots are not yet controllable over MCP.";
319
+ }
324
320
  return (`PAM build does not include the plugin host ('${action}' not recognized). ` +
325
321
  `Plugin-host tools require a build with PAM_PLUGIN_HOST=1. ` +
326
322
  `Cell1 does not host third-party plugins; MFX only exposes FX-side hosting and needs product-aware FX-host MCP support.`);
327
323
  }
328
324
  if (MODEL_ACTIONS.has(action)) {
325
+ if (BRIDGE_PRODUCT.id === "mfx") {
326
+ return "AI model managers are not available in MFX.";
327
+ }
329
328
  return (`PAM build does not include the AI model managers ('${action}' not recognized). ` +
330
- `Model-management tools require PAM ≥ 1.9.0 with the AIGen/Magenta/Notochord managers; ` +
329
+ `Model-management tools require a PAM build with the AIGen/Magenta/Notochord managers; ` +
331
330
  `they are not available on standalone MFX builds.`);
332
331
  }
333
- const requiredVersion = NEW_ACTIONS_ADDED_IN_1_17_0.has(action)
334
- ? "1.17.0"
335
- : NEW_ACTIONS_ADDED_IN_1_15_0.has(action)
336
- ? "1.15.0"
337
- : NEW_ACTIONS_ADDED_IN_1_13_0.has(action)
338
- ? "1.13.0"
339
- : NEW_ACTIONS_ADDED_IN_1_8_0.has(action)
340
- ? "1.8.0"
341
- : NEW_ACTIONS_ADDED_IN_1_7_0.has(action)
342
- ? "1.7.0"
343
- : NEW_ACTIONS_ADDED_IN_1_1_0.has(action) || NEW_ACTIONS_ADDED_IN_1_5_0.has(action)
344
- ? MIN_PAM_VERSION_FOR_NEW_ACTIONS
345
- : null;
346
- if (requiredVersion) {
347
- return (`PAM build does not support '${action}'. ` +
348
- `This action requires PAM ≥ ${requiredVersion} ` +
349
- `(npm @map-audio/pam-mcp-server ≥ ${requiredVersion}). ` +
350
- `Update PAM to the latest build, or use a tool that doesn't depend on this action.`);
351
- }
332
+ return (`${BRIDGE_PRODUCT.name} build does not support '${action}'. ` +
333
+ `Update ${BRIDGE_PRODUCT.name} to a plugin build with this bridge action. ` +
334
+ `Updating the MCP package alone cannot add native plugin capabilities.`);
352
335
  }
353
336
  return message;
354
337
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Fingerprint, NoveltyBaseline } from './fingerprint.js';
2
+ /** Leave-one-out novelty of the corpus against itself — the scale every
3
+ * candidate score is read against. `floor` is the closest pair that shipped. */
4
+ export declare const CORPUS_NOVELTY_BASELINE: NoveltyBaseline;
5
+ /** Pairwise similarity between sibling variation slots across the corpus.
6
+ * Sibling variations share samples and an FX chain by construction, so they
7
+ * sit far higher than two different presets — this is the ruler
8
+ * variation_distinctness reads against. */
9
+ export declare const CORPUS_VARIATION_BASELINE: {
10
+ pairs: number;
11
+ p25: number;
12
+ p50: number;
13
+ p75: number;
14
+ p90: number;
15
+ nearIdenticalShare: number;
16
+ };
17
+ export declare const CORPUS_FINGERPRINTS: Fingerprint[];