local-mcp 3.0.100 → 3.0.102
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/download.js +31 -7
- package/package.json +1 -1
package/download.js
CHANGED
|
@@ -151,12 +151,26 @@ async function ensureBinary() {
|
|
|
151
151
|
// Asegurar que sea ejecutable
|
|
152
152
|
fs.chmodSync(binPath, 0o755)
|
|
153
153
|
|
|
154
|
-
//
|
|
155
|
-
//
|
|
156
|
-
|
|
154
|
+
// Clear quarantine separately — Node.js https downloads don't set it, but tar extraction
|
|
155
|
+
// on some macOS versions can inherit it from the archive. Non-critical.
|
|
156
|
+
try { execFileSync('xattr', ['-d', 'com.apple.quarantine', binPath], { stdio: 'pipe' }) } catch { /* no quarantine, fine */ }
|
|
157
|
+
|
|
158
|
+
// Preserve the Developer ID signature from the build pipeline.
|
|
159
|
+
// On macOS 26+ ad-hoc signatures (--sign -) don't create a stable TCC identity:
|
|
160
|
+
// each new CDHash is treated as a new app, triggering "node would like to access
|
|
161
|
+
// data from other apps" on every JXA call. Only fall back to ad-hoc if the binary
|
|
162
|
+
// has no valid signature at all (e.g. a dev build that was never properly signed).
|
|
163
|
+
// See: FB-74E468, FB-017B8E — permission prompt loop on macOS 26 beta.
|
|
164
|
+
let hasSig = false
|
|
157
165
|
try {
|
|
158
|
-
execFileSync('codesign', ['--
|
|
159
|
-
|
|
166
|
+
execFileSync('codesign', ['--verify', binPath], { stdio: 'pipe' })
|
|
167
|
+
hasSig = true
|
|
168
|
+
} catch { /* no valid signature — apply ad-hoc fallback */ }
|
|
169
|
+
if (!hasSig) {
|
|
170
|
+
try {
|
|
171
|
+
execFileSync('codesign', ['--force', '--sign', '-', '--identifier', 'com.local-mcp.server', binPath], { stdio: 'pipe' })
|
|
172
|
+
} catch { /* non-critical */ }
|
|
173
|
+
}
|
|
160
174
|
|
|
161
175
|
process.stderr.write(` Listo en ${versionDir}\n`)
|
|
162
176
|
return { binPath, versionDir, version }
|
|
@@ -201,7 +215,12 @@ async function ensureTeamsProxy() {
|
|
|
201
215
|
|
|
202
216
|
if (!fs.existsSync(binPath)) throw new Error('teams-proxy no encontrado tras extraer')
|
|
203
217
|
fs.chmodSync(binPath, 0o755)
|
|
204
|
-
try { execFileSync('
|
|
218
|
+
try { execFileSync('xattr', ['-d', 'com.apple.quarantine', binPath], { stdio: 'pipe' }) } catch {}
|
|
219
|
+
let tpHasSig = false
|
|
220
|
+
try { execFileSync('codesign', ['--verify', binPath], { stdio: 'pipe' }); tpHasSig = true } catch {}
|
|
221
|
+
if (!tpHasSig) {
|
|
222
|
+
try { execFileSync('codesign', ['--force', '--sign', '-', '--identifier', 'com.local-mcp.teams-proxy', binPath], { stdio: 'pipe' }) } catch { /* no crítico */ }
|
|
223
|
+
}
|
|
205
224
|
|
|
206
225
|
fs.writeFileSync(verFile, version, 'utf8')
|
|
207
226
|
process.stderr.write(` teams-proxy instalado en ${binPath}\n`)
|
|
@@ -356,7 +375,12 @@ async function ensureSlackProxy() {
|
|
|
356
375
|
|
|
357
376
|
if (!fs.existsSync(binPath)) throw new Error('slack-proxy not found after extraction')
|
|
358
377
|
fs.chmodSync(binPath, 0o755)
|
|
359
|
-
try { execFileSync('
|
|
378
|
+
try { execFileSync('xattr', ['-d', 'com.apple.quarantine', binPath], { stdio: 'pipe' }) } catch {}
|
|
379
|
+
let spHasSig = false
|
|
380
|
+
try { execFileSync('codesign', ['--verify', binPath], { stdio: 'pipe' }); spHasSig = true } catch {}
|
|
381
|
+
if (!spHasSig) {
|
|
382
|
+
try { execFileSync('codesign', ['--force', '--sign', '-', '--identifier', 'com.local-mcp.slack-proxy', binPath], { stdio: 'pipe' }) } catch { /* non-critical */ }
|
|
383
|
+
}
|
|
360
384
|
|
|
361
385
|
fs.writeFileSync(verFile, version, 'utf8')
|
|
362
386
|
process.stderr.write(` slack-proxy installed at ${binPath}\n`)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "local-mcp",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.102",
|
|
4
4
|
"description": "LMCP — connect Claude Desktop, Cursor, Windsurf to Mail, Calendar, Contacts, Teams, OneDrive on macOS. Privacy-first: all data stays on your Mac.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|