mcpal 1.3.1 → 1.3.2

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/dist/index.js CHANGED
@@ -5,6 +5,7 @@ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
5
5
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
6
  const zod_1 = require("zod");
7
7
  const notify_js_1 = require("./notify.js");
8
+ const setup_notifier_js_1 = require("./scripts/setup-notifier.js");
8
9
  const server = new mcp_js_1.McpServer({
9
10
  name: "mcpal",
10
11
  version: "1.0.0",
@@ -99,6 +100,8 @@ server.registerTool("send_notification", {
99
100
  }
100
101
  });
101
102
  async function main() {
103
+ // Ensure MCPal.app is set up (handles npx installs where postinstall doesn't run)
104
+ await (0, setup_notifier_js_1.ensureMcpalAppSetup)();
102
105
  const transport = new stdio_js_1.StdioServerTransport();
103
106
  await server.connect(transport);
104
107
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ /**
3
+ * Ensure MCPal.app is set up correctly for macOS notifications.
4
+ * This function can be called at runtime (not just postinstall).
5
+ */
6
+ export declare function ensureMcpalAppSetup(): Promise<void>;
3
7
  //# sourceMappingURL=setup-notifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-notifier.d.ts","sourceRoot":"","sources":["../../src/scripts/setup-notifier.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"setup-notifier.d.ts","sourceRoot":"","sources":["../../src/scripts/setup-notifier.ts"],"names":[],"mappings":";AAoLA;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoEzD"}
@@ -4,40 +4,112 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ensureMcpalAppSetup = ensureMcpalAppSetup;
7
8
  const fs_1 = __importDefault(require("fs"));
9
+ const os_1 = __importDefault(require("os"));
8
10
  const path_1 = __importDefault(require("path"));
9
- // Only run on macOS
10
- if (process.platform !== "darwin") {
11
- console.log("Skipping macOS-specific notification icon setup");
12
- process.exit(0);
13
- }
14
- const projectRoot = path_1.default.resolve(__dirname, "..", "..");
15
- const icnsSource = path_1.default.join(projectRoot, "src", "assets", "mcpal.icns");
16
- function findPnpmPaths() {
17
- const pnpmDir = path_1.default.join(projectRoot, "node_modules", ".pnpm");
18
- if (!fs_1.default.existsSync(pnpmDir)) {
19
- return [];
11
+ // Get the package root (where src/assets lives)
12
+ const packageRoot = path_1.default.resolve(__dirname, "..", "..");
13
+ /**
14
+ * Find all potential locations where node-notifier's terminal-notifier.app might be located.
15
+ * Searches both local node_modules and npx cache directories.
16
+ */
17
+ function findAllTerminalNotifierPaths() {
18
+ const paths = [];
19
+ // 1. Local node_modules (npm/yarn)
20
+ paths.push(path_1.default.join(packageRoot, "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app"));
21
+ // 2. Local node_modules (pnpm)
22
+ const localPnpmDir = path_1.default.join(packageRoot, "node_modules", ".pnpm");
23
+ if (fs_1.default.existsSync(localPnpmDir)) {
24
+ try {
25
+ const entries = fs_1.default.readdirSync(localPnpmDir);
26
+ const nodeNotifierDir = entries.find((e) => e.startsWith("node-notifier@"));
27
+ if (nodeNotifierDir) {
28
+ paths.push(path_1.default.join(localPnpmDir, nodeNotifierDir, "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app"));
29
+ }
30
+ }
31
+ catch {
32
+ // Ignore errors
33
+ }
20
34
  }
21
- try {
22
- const entries = fs_1.default.readdirSync(pnpmDir);
23
- const nodeNotifierDir = entries.find((e) => e.startsWith("node-notifier@"));
24
- if (nodeNotifierDir) {
25
- return [
26
- path_1.default.join(pnpmDir, nodeNotifierDir, "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app"),
27
- ];
35
+ // 3. npx cache locations
36
+ const npxCacheDirs = [
37
+ // npm npx cache
38
+ path_1.default.join(os_1.default.homedir(), ".npm", "_npx"),
39
+ // pnpm dlx cache
40
+ path_1.default.join(os_1.default.homedir(), "Library", "Caches", "pnpm", "dlx"),
41
+ ];
42
+ for (const cacheDir of npxCacheDirs) {
43
+ if (!fs_1.default.existsSync(cacheDir)) {
44
+ continue;
45
+ }
46
+ try {
47
+ // Search recursively for node-notifier in cache
48
+ const cacheEntries = fs_1.default.readdirSync(cacheDir);
49
+ for (const entry of cacheEntries) {
50
+ const entryPath = path_1.default.join(cacheDir, entry);
51
+ // Check for node-notifier in standard npm structure
52
+ const npmPath = path_1.default.join(entryPath, "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app");
53
+ if (fs_1.default.existsSync(npmPath)) {
54
+ paths.push(npmPath);
55
+ }
56
+ // Check for node-notifier in mcpal's node_modules (npx installs mcpal which has node-notifier as dep)
57
+ const mcpalPath = path_1.default.join(entryPath, "node_modules", "mcpal", "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app");
58
+ if (fs_1.default.existsSync(mcpalPath)) {
59
+ paths.push(mcpalPath);
60
+ }
61
+ // Check pnpm structure in cache
62
+ const pnpmDir = path_1.default.join(entryPath, "node_modules", ".pnpm");
63
+ if (fs_1.default.existsSync(pnpmDir)) {
64
+ try {
65
+ const pnpmEntries = fs_1.default.readdirSync(pnpmDir);
66
+ const nodeNotifierDir = pnpmEntries.find((e) => e.startsWith("node-notifier@"));
67
+ if (nodeNotifierDir) {
68
+ paths.push(path_1.default.join(pnpmDir, nodeNotifierDir, "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app"));
69
+ }
70
+ }
71
+ catch {
72
+ // Ignore errors
73
+ }
74
+ }
75
+ }
76
+ }
77
+ catch {
78
+ // Ignore errors reading cache directories
28
79
  }
29
80
  }
30
- catch {
31
- // Ignore errors
81
+ return paths;
82
+ }
83
+ /**
84
+ * Find the first existing terminal-notifier.app or MCPal.app
85
+ */
86
+ function findNotifierApp() {
87
+ const searchPaths = findAllTerminalNotifierPaths();
88
+ for (const appPath of searchPaths) {
89
+ // Check if already renamed to MCPal.app
90
+ const mcpalPath = path_1.default.join(path_1.default.dirname(appPath), "MCPal.app");
91
+ if (fs_1.default.existsSync(mcpalPath)) {
92
+ return { path: mcpalPath, isRenamed: true };
93
+ }
94
+ // Check if terminal-notifier.app exists
95
+ if (fs_1.default.existsSync(appPath)) {
96
+ return { path: appPath, isRenamed: false };
97
+ }
32
98
  }
33
- return [];
99
+ return null;
34
100
  }
35
- function findTerminalNotifier() {
101
+ /**
102
+ * Find the icon source file. Checks multiple locations since the package
103
+ * structure differs between development and installed contexts.
104
+ */
105
+ function findIconSource() {
36
106
  const possiblePaths = [
37
- // npm/yarn
38
- path_1.default.join(projectRoot, "node_modules", "node-notifier", "vendor", "mac.noindex", "terminal-notifier.app"),
39
- // pnpm (search in .pnpm)
40
- ...findPnpmPaths(),
107
+ // Development: src/assets/mcpal.icns
108
+ path_1.default.join(packageRoot, "src", "assets", "mcpal.icns"),
109
+ // Built/installed: dist/assets/mcpal.icns
110
+ path_1.default.join(packageRoot, "dist", "assets", "mcpal.icns"),
111
+ // Relative to this script in dist
112
+ path_1.default.join(__dirname, "..", "assets", "mcpal.icns"),
41
113
  ];
42
114
  for (const p of possiblePaths) {
43
115
  if (fs_1.default.existsSync(p)) {
@@ -46,46 +118,62 @@ function findTerminalNotifier() {
46
118
  }
47
119
  return null;
48
120
  }
49
- const terminalNotifierApp = findTerminalNotifier();
50
- if (!terminalNotifierApp) {
51
- console.log("terminal-notifier.app not found, skipping icon setup");
52
- process.exit(0);
53
- }
54
- // Rename to MCPal.app for proper macOS registration
55
- const parentDir = path_1.default.dirname(terminalNotifierApp);
56
- const mcpalApp = path_1.default.join(parentDir, "MCPal.app");
57
- if (!fs_1.default.existsSync(mcpalApp)) {
58
- fs_1.default.renameSync(terminalNotifierApp, mcpalApp);
59
- console.log("Renamed app bundle to MCPal.app");
60
- }
61
- const resourcesDir = path_1.default.join(mcpalApp, "Contents", "Resources");
62
- const infoPlist = path_1.default.join(mcpalApp, "Contents", "Info.plist");
63
- // Check if source icon exists
64
- if (!fs_1.default.existsSync(icnsSource)) {
65
- console.log("Icon file not found:", icnsSource);
66
- process.exit(0);
67
- }
68
- try {
69
- // Copy the new icon
70
- const icnsDest = path_1.default.join(resourcesDir, "mcpal.icns");
71
- fs_1.default.copyFileSync(icnsSource, icnsDest);
72
- console.log("Copied icon to:", icnsDest);
73
- // Update Info.plist to use the new icon
74
- let plistContent = fs_1.default.readFileSync(infoPlist, "utf8");
75
- // Replace icon reference (Terminal.icns -> mcpal.icns)
76
- plistContent = plistContent.replace(/<key>CFBundleIconFile<\/key>\s*<string>[^<]+<\/string>/, "<key>CFBundleIconFile</key>\n\t<string>mcpal</string>");
77
- // Optionally update bundle identifier to avoid conflicts
78
- plistContent = plistContent.replace(/<key>CFBundleIdentifier<\/key>\s*<string>[^<]+<\/string>/, "<key>CFBundleIdentifier</key>\n\t<string>com.mcpal</string>");
79
- // Update bundle name (shown in System Preferences > Notifications)
80
- plistContent = plistContent.replace(/<key>CFBundleName<\/key>\s*<string>[^<]+<\/string>/, "<key>CFBundleName</key>\n\t<string>MCPal</string>");
81
- fs_1.default.writeFileSync(infoPlist, plistContent);
82
- console.log("Updated Info.plist");
83
- console.log("macOS notification icon setup complete!");
121
+ /**
122
+ * Ensure MCPal.app is set up correctly for macOS notifications.
123
+ * This function can be called at runtime (not just postinstall).
124
+ */
125
+ async function ensureMcpalAppSetup() {
126
+ // Only run on macOS
127
+ if (process.platform !== "darwin") {
128
+ return;
129
+ }
130
+ const notifierApp = findNotifierApp();
131
+ if (!notifierApp) {
132
+ console.error("[MCPal] terminal-notifier.app not found, skipping setup");
133
+ return;
134
+ }
135
+ // If already renamed and configured, we're done
136
+ if (notifierApp.isRenamed) {
137
+ return;
138
+ }
139
+ const icnsSource = findIconSource();
140
+ if (!icnsSource) {
141
+ console.error("[MCPal] Icon file not found, skipping setup");
142
+ return;
143
+ }
144
+ try {
145
+ const terminalNotifierApp = notifierApp.path;
146
+ const parentDir = path_1.default.dirname(terminalNotifierApp);
147
+ const mcpalApp = path_1.default.join(parentDir, "MCPal.app");
148
+ // Rename to MCPal.app
149
+ fs_1.default.renameSync(terminalNotifierApp, mcpalApp);
150
+ console.error("[MCPal] Renamed app bundle to MCPal.app");
151
+ const resourcesDir = path_1.default.join(mcpalApp, "Contents", "Resources");
152
+ const infoPlist = path_1.default.join(mcpalApp, "Contents", "Info.plist");
153
+ // Copy the new icon
154
+ const icnsDest = path_1.default.join(resourcesDir, "mcpal.icns");
155
+ fs_1.default.copyFileSync(icnsSource, icnsDest);
156
+ // Update Info.plist
157
+ let plistContent = fs_1.default.readFileSync(infoPlist, "utf8");
158
+ // Replace icon reference
159
+ plistContent = plistContent.replace(/<key>CFBundleIconFile<\/key>\s*<string>[^<]+<\/string>/, "<key>CFBundleIconFile</key>\n\t<string>mcpal</string>");
160
+ // Update bundle identifier
161
+ plistContent = plistContent.replace(/<key>CFBundleIdentifier<\/key>\s*<string>[^<]+<\/string>/, "<key>CFBundleIdentifier</key>\n\t<string>com.mcpal</string>");
162
+ // Update bundle name (shown in System Preferences > Notifications)
163
+ plistContent = plistContent.replace(/<key>CFBundleName<\/key>\s*<string>[^<]+<\/string>/, "<key>CFBundleName</key>\n\t<string>MCPal</string>");
164
+ fs_1.default.writeFileSync(infoPlist, plistContent);
165
+ console.error("[MCPal] macOS notification setup complete!");
166
+ }
167
+ catch (err) {
168
+ const message = err instanceof Error ? err.message : String(err);
169
+ console.error("[MCPal] Failed to setup notification icon:", message);
170
+ // Don't throw - notification will still work, just with default branding
171
+ }
84
172
  }
85
- catch (err) {
86
- const message = err instanceof Error ? err.message : String(err);
87
- console.error("Failed to setup notification icon:", message);
88
- // Don't fail the install
89
- process.exit(0);
173
+ // Run directly if called as a script (postinstall)
174
+ if (require.main === module) {
175
+ ensureMcpalAppSetup()
176
+ .then(() => process.exit(0))
177
+ .catch(() => process.exit(0)); // Don't fail install
90
178
  }
91
179
  //# sourceMappingURL=setup-notifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-notifier.js","sourceRoot":"","sources":["../../src/scripts/setup-notifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-notifier.js","sourceRoot":"","sources":["../../src/scripts/setup-notifier.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcpal",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "MCP server that sends native notifications with LLM-aware icons",
5
5
  "main": "dist/index.js",
6
6
  "bin": {