@mthines/reaper-mcp 0.1.2 → 0.1.3

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 (2) hide show
  1. package/main.js +11 -5
  2. package/package.json +1 -1
package/main.js CHANGED
@@ -541,6 +541,11 @@ import { copyFileSync, existsSync, mkdirSync, readdirSync, statSync } from "node
541
541
  import { join as join2, dirname } from "node:path";
542
542
  import { fileURLToPath } from "node:url";
543
543
  var __dirname = dirname(fileURLToPath(import.meta.url));
544
+ function resolveAssetDir(name) {
545
+ const sibling = join2(__dirname, name);
546
+ if (existsSync(sibling)) return sibling;
547
+ return join2(__dirname, "..", name);
548
+ }
544
549
  function copyDirSync(src, dest) {
545
550
  if (!existsSync(src)) return 0;
546
551
  mkdirSync(dest, { recursive: true });
@@ -573,7 +578,8 @@ async function setup() {
573
578
  `);
574
579
  const scriptsDir = getReaperScriptsPath();
575
580
  mkdirSync(scriptsDir, { recursive: true });
576
- const luaSrc = join2(__dirname, "..", "reaper", "mcp_bridge.lua");
581
+ const reaperDir = resolveAssetDir("reaper");
582
+ const luaSrc = join2(reaperDir, "mcp_bridge.lua");
577
583
  const luaDest = join2(scriptsDir, "mcp_bridge.lua");
578
584
  console.log("Installing Lua bridge...");
579
585
  installFile(luaSrc, luaDest, "mcp_bridge.lua");
@@ -587,7 +593,7 @@ async function setup() {
587
593
  ];
588
594
  console.log("\nInstalling JSFX analyzers...");
589
595
  for (const jsfx of jsfxFiles) {
590
- const src = join2(__dirname, "..", "reaper", jsfx);
596
+ const src = join2(reaperDir, jsfx);
591
597
  const dest = join2(effectsDir, jsfx);
592
598
  installFile(src, dest, jsfx);
593
599
  }
@@ -602,7 +608,7 @@ async function setup() {
602
608
  async function installSkills() {
603
609
  console.log("REAPER MCP \u2014 Install AI Mix Engineer Skills\n");
604
610
  const targetDir = process.cwd();
605
- const knowledgeSrc = join2(__dirname, "..", "knowledge");
611
+ const knowledgeSrc = resolveAssetDir("knowledge");
606
612
  const knowledgeDest = join2(targetDir, "knowledge");
607
613
  if (existsSync(knowledgeSrc)) {
608
614
  const count = copyDirSync(knowledgeSrc, knowledgeDest);
@@ -610,7 +616,7 @@ async function installSkills() {
610
616
  } else {
611
617
  console.log("Knowledge base not found in package. Skipping.");
612
618
  }
613
- const rulesSrc = join2(__dirname, "..", "claude-rules");
619
+ const rulesSrc = resolveAssetDir("claude-rules");
614
620
  const rulesDir = join2(targetDir, ".claude", "rules");
615
621
  if (existsSync(rulesSrc)) {
616
622
  const count = copyDirSync(rulesSrc, rulesDir);
@@ -618,7 +624,7 @@ async function installSkills() {
618
624
  } else {
619
625
  console.log("Claude rules not found in package. Skipping.");
620
626
  }
621
- const skillsSrc = join2(__dirname, "..", "claude-skills");
627
+ const skillsSrc = resolveAssetDir("claude-skills");
622
628
  const skillsDir = join2(targetDir, ".claude", "skills");
623
629
  if (existsSync(skillsSrc)) {
624
630
  const count = copyDirSync(skillsSrc, skillsDir);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mthines/reaper-mcp",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "description": "MCP server for controlling REAPER DAW — real-time mixing, FX control, and frequency analysis for AI agents",
6
6
  "license": "MIT",