lazy-mcp 2.5.0 → 2.6.6

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.
@@ -34,15 +34,17 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.DEFAULT_CALLBACK_ADDRESS = exports.OAuthManager = void 0;
37
+ exports.computeStorageKey = computeStorageKey;
37
38
  exports.releaseCallbackLock = releaseCallbackLock;
39
+ const crypto = __importStar(require("crypto"));
38
40
  const fs = __importStar(require("fs"));
39
41
  const http = __importStar(require("http"));
40
- const os = __importStar(require("os"));
41
42
  const path = __importStar(require("path"));
42
43
  const url = __importStar(require("url"));
43
44
  const auth_js_1 = require("@modelcontextprotocol/sdk/client/auth.js");
44
45
  const types_1 = require("./types");
45
46
  const pid_lock_1 = require("./pid-lock");
47
+ const paths_1 = require("./paths");
46
48
  // ─── Constants ────────────────────────────────────────────────────────────────
47
49
  // Port 0 tells the OS to pick an ephemeral port. This prevents port conflicts
48
50
  // between multiple lazy-mcp instances (e.g. from previous crashed sessions).
@@ -50,11 +52,13 @@ const pid_lock_1 = require("./pid-lock");
50
52
  // that read it — the host is still 127.0.0.1 but the port is now 0.
51
53
  const DEFAULT_CALLBACK_ADDRESS = '127.0.0.1:0';
52
54
  exports.DEFAULT_CALLBACK_ADDRESS = DEFAULT_CALLBACK_ADDRESS;
53
- const CONFIG_DIR = path.join(os.homedir(), '.config', 'lazy-mcp');
54
- const TOKENS_FILE = path.join(CONFIG_DIR, 'tokens.json');
55
- const CLIENT_INFO_FILE = path.join(CONFIG_DIR, 'client-info.json');
56
- const CODE_VERIFIER_FILE = path.join(CONFIG_DIR, 'code-verifier.json');
57
- const PENDING_FLOW_FILE = path.join(CONFIG_DIR, 'pending-oauth-flows.json');
55
+ // Storage paths are resolved lazily so that `XDG_CONFIG_HOME` (and the home
56
+ // directory) can be overridden at runtime — useful for tests and for users
57
+ // who want per-project token isolation via direnv/mise.
58
+ const tokensFile = () => path.join((0, paths_1.getConfigDir)(), 'tokens.json');
59
+ const clientInfoFile = () => path.join((0, paths_1.getConfigDir)(), 'client-info.json');
60
+ const codeVerifierFile = () => path.join((0, paths_1.getConfigDir)(), 'code-verifier.json');
61
+ const pendingFlowFile = () => path.join((0, paths_1.getConfigDir)(), 'pending-oauth-flows.json');
58
62
  class OAuthCallbackServer {
59
63
  constructor() {
60
64
  this.server = null;
@@ -152,7 +156,7 @@ class OAuthCallbackServer {
152
156
  const state = query.state ?? '';
153
157
  const handler = this.handlers.get(state);
154
158
  if (!handler) {
155
- const pendingFlows = readJsonFile(PENDING_FLOW_FILE) ?? {};
159
+ const pendingFlows = readJsonFile(pendingFlowFile()) ?? {};
156
160
  const pendingFlow = pendingFlows[state];
157
161
  if (!pendingFlow) {
158
162
  res.writeHead(400, { 'Content-Type': 'text/html' });
@@ -244,6 +248,23 @@ function writeJsonFile(filePath, data) {
244
248
  }
245
249
  fs.writeFileSync(filePath, JSON.stringify(data, null, 2), { mode: 0o600 });
246
250
  }
251
+ // ─── Storage key helper ───────────────────────────────────────────────────────
252
+ /**
253
+ * Computes a stable storage key from the server identity (name + URL).
254
+ *
255
+ * Used to key OAuth tokens, client info, and code verifiers so that two MCP
256
+ * servers configured with the same name but different URLs don't collide.
257
+ * The key is the first 32 hex characters of sha256(name + '\0' + url) —
258
+ * short enough to keep storage files readable, long enough (128 bits) to
259
+ * make birthday-bound collisions astronomically unlikely.
260
+ */
261
+ function computeStorageKey(serverName, serverUrl) {
262
+ return crypto
263
+ .createHash('sha256')
264
+ .update(`${serverName}\0${serverUrl}`)
265
+ .digest('hex')
266
+ .slice(0, 32);
267
+ }
247
268
  // ─── OAuthManager ─────────────────────────────────────────────────────────────
248
269
  /**
249
270
  * Implements OAuthClientProvider from the MCP SDK.
@@ -257,10 +278,20 @@ function writeJsonFile(filePath, data) {
257
278
  * SDK's `auth()` / lower-level functions. OAuth server endpoints are discovered
258
279
  * automatically via RFC 8414 (/.well-known/oauth-authorization-server).
259
280
  *
260
- * Storage layout in ~/.config/lazy-mcp/:
261
- * tokens.json — { [serverName]: OAuthTokens }
262
- * client-info.json — { [serverName]: OAuthClientInformationFull }
263
- * (code verifiers are kept in-memory only; they live for one callback round-trip)
281
+ * Storage layout in $XDG_CONFIG_HOME/lazy-mcp/ (defaults to ~/.config/lazy-mcp/):
282
+ * tokens.json — { [storageKey]: OAuthTokens }
283
+ * client-info.json — { [storageKey]: OAuthClientInformationFull }
284
+ * code-verifier.json — { [storageKey]: string } (PKCE verifier for the
285
+ * current in-flight flow; cleared after callback)
286
+ *
287
+ * The `storageKey` is a stable hash of `serverName + serverUrl` so that two
288
+ * MCP servers configured with the same name but different URLs (e.g. two
289
+ * projects each defining a `"gitlab"` server pointing at different instances)
290
+ * get distinct token slots and don't clobber each other.
291
+ *
292
+ * For backward compatibility with installations that stored credentials under
293
+ * the plain server name, reads fall back to the legacy key and migrate the
294
+ * entry to the hashed key on the next write.
264
295
  */
265
296
  class OAuthManager {
266
297
  constructor(serverName, serverUrl, config) {
@@ -284,6 +315,29 @@ class OAuthManager {
284
315
  this.serverName = serverName;
285
316
  this.serverUrl = serverUrl;
286
317
  this.config = config;
318
+ this.storageKey = computeStorageKey(serverName, serverUrl);
319
+ }
320
+ /**
321
+ * Reads an entry from a keyed JSON store. Prefers the hashed `storageKey`.
322
+ * Falls back to the legacy plain-name key for backward compatibility with
323
+ * tokens written before the hashed-key migration. Callers that subsequently
324
+ * write the entry use the hashed key, so the next save effectively migrates
325
+ * the entry without the user having to re-authenticate.
326
+ */
327
+ readKeyed(store) {
328
+ if (store[this.storageKey] !== undefined) {
329
+ return store[this.storageKey];
330
+ }
331
+ return store[this.serverName];
332
+ }
333
+ /**
334
+ * Deletes an entry from a keyed JSON store. Removes both the hashed key and
335
+ * the legacy plain-name key so stale legacy entries don't linger after an
336
+ * invalidation.
337
+ */
338
+ deleteKeyed(store) {
339
+ delete store[this.storageKey];
340
+ delete store[this.serverName];
287
341
  }
288
342
  // ─── Public API ─────────────────────────────────────────────────────────────
289
343
  /** Parsed host and port from callbackAddress (or legacy callbackPort fallback). */
@@ -353,6 +407,7 @@ class OAuthManager {
353
407
  const done = new Promise((resolve, reject) => {
354
408
  this._waiters.push({ resolve, reject });
355
409
  });
410
+ done.catch(() => undefined);
356
411
  return { authUrl: this._pendingAuthUrl.toString(), done };
357
412
  }
358
413
  // Registration with the callback server happens inside redirectToAuthorization(),
@@ -360,6 +415,7 @@ class OAuthManager {
360
415
  const done = new Promise((resolve, reject) => {
361
416
  this._waiters.push({ resolve, reject });
362
417
  });
418
+ done.catch(() => undefined);
363
419
  // Run the SDK auth flow asynchronously — it will call redirectToAuthorization()
364
420
  // which registers the callback handler, sets _pendingAuthUrl, and throws AUTH_REQUIRED.
365
421
  this._runAuthFlow().catch((err) => {
@@ -432,6 +488,7 @@ class OAuthManager {
432
488
  const done = new Promise((resolve, reject) => {
433
489
  this._waiters.push({ resolve, reject });
434
490
  });
491
+ done.catch(() => undefined);
435
492
  // If a flow is already starting or running, reuse it
436
493
  if (this._startingFlow) {
437
494
  const authUrl = await this._startingFlow;
@@ -463,15 +520,16 @@ class OAuthManager {
463
520
  /** Cancel any in-flight flow and shut down the callback server. */
464
521
  cancelFlow() {
465
522
  this._startingFlow = null;
523
+ this.invalidateCredentials('verifier');
466
524
  this._rejectAll(new Error('OAuth flow cancelled'));
467
525
  this._closeCallbackServer();
468
526
  this._pendingAuthUrl = null;
469
527
  }
470
528
  /** Delete stored tokens for this server (e.g. after a confirmed 401). */
471
529
  deleteTokens() {
472
- const store = readJsonFile(TOKENS_FILE) ?? {};
473
- delete store[this.serverName];
474
- writeJsonFile(TOKENS_FILE, store);
530
+ const store = readJsonFile(tokensFile()) ?? {};
531
+ this.deleteKeyed(store);
532
+ writeJsonFile(tokensFile(), store);
475
533
  }
476
534
  // ─── OAuthClientProvider implementation ─────────────────────────────────────
477
535
  get redirectUrl() {
@@ -499,8 +557,8 @@ class OAuthManager {
499
557
  };
500
558
  }
501
559
  clientInformation() {
502
- const store = readJsonFile(CLIENT_INFO_FILE) ?? {};
503
- const info = store[this.serverName];
560
+ const store = readJsonFile(clientInfoFile()) ?? {};
561
+ const info = this.readKeyed(store);
504
562
  // If a clientId is explicitly configured, always use that (skip dynamic registration)
505
563
  if (!info && this.config.clientId) {
506
564
  return {
@@ -512,17 +570,23 @@ class OAuthManager {
512
570
  return info;
513
571
  }
514
572
  saveClientInformation(info) {
515
- const store = readJsonFile(CLIENT_INFO_FILE) ?? {};
516
- store[this.serverName] = info;
517
- writeJsonFile(CLIENT_INFO_FILE, store);
573
+ const store = readJsonFile(clientInfoFile()) ?? {};
574
+ // Migrate any legacy plain-name entry by removing it before writing the
575
+ // hashed key. This keeps the file clean and avoids two parallel entries.
576
+ delete store[this.serverName];
577
+ store[this.storageKey] = info;
578
+ writeJsonFile(clientInfoFile(), store);
518
579
  }
519
580
  tokens() {
520
581
  return this.loadTokens() ?? undefined;
521
582
  }
522
583
  saveTokens(tokens) {
523
- const store = readJsonFile(TOKENS_FILE) ?? {};
524
- store[this.serverName] = tokens;
525
- writeJsonFile(TOKENS_FILE, store);
584
+ const store = readJsonFile(tokensFile()) ?? {};
585
+ // Migrate any legacy plain-name entry by removing it before writing the
586
+ // hashed key. This keeps the file clean and avoids two parallel entries.
587
+ delete store[this.serverName];
588
+ store[this.storageKey] = tokens;
589
+ writeJsonFile(tokensFile(), store);
526
590
  }
527
591
  /**
528
592
  * Called by the SDK instead of opening a browser.
@@ -530,18 +594,31 @@ class OAuthManager {
530
594
  * the URL for dispatch), captures the URL, and throws AUTH_REQUIRED.
531
595
  */
532
596
  redirectToAuthorization(authorizationUrl) {
597
+ // Some authorization servers (e.g. incident.io) require the `state`
598
+ // parameter and reject the request with a 422 if it's missing. The MCP SDK
599
+ // only includes `state` when it's explicitly provided, so inject a random
600
+ // one here when absent. Using a real value (instead of the previous empty
601
+ // string) also makes the callback dispatch keyed correctly per-flow.
602
+ //
603
+ // CSRF protection: this 128-bit random `state` doubles as the callback
604
+ // dispatch key (see `handlers.get(query.state)` below). A forged or unknown
605
+ // `state` on the callback matches no pending handler and is rejected, so
606
+ // dispatch-by-random-state *is* the CSRF guarantee for this flow.
607
+ if (!authorizationUrl.searchParams.get('state')) {
608
+ authorizationUrl.searchParams.set('state', crypto.randomBytes(16).toString('hex'));
609
+ }
533
610
  this._pendingAuthUrl = authorizationUrl;
534
611
  // Register this manager's handler with the singleton callback server,
535
612
  // keyed by the state param so callbacks are dispatched correctly.
536
613
  const state = authorizationUrl.searchParams.get('state') ?? '';
537
614
  this._pendingState = state;
538
- const pendingFlows = readJsonFile(PENDING_FLOW_FILE) ?? {};
615
+ const pendingFlows = readJsonFile(pendingFlowFile()) ?? {};
539
616
  pendingFlows[state] = {
540
617
  serverName: this.serverName,
541
618
  serverUrl: this.serverUrl,
542
619
  state,
543
620
  };
544
- writeJsonFile(PENDING_FLOW_FILE, pendingFlows);
621
+ writeJsonFile(pendingFlowFile(), pendingFlows);
545
622
  const { host, port } = this.callbackAddressParts;
546
623
  globalCallbackServer.setAddress(host, port);
547
624
  this._unregisterCallback = globalCallbackServer.register(state, {
@@ -560,38 +637,39 @@ class OAuthManager {
560
637
  // verifier with a new one, causing a PKCE mismatch at the token endpoint.
561
638
  if (!this._codeVerifier) {
562
639
  this._codeVerifier = codeVerifier;
563
- const store = readJsonFile(CODE_VERIFIER_FILE) ?? {};
564
- store[this.serverName] = codeVerifier;
565
- writeJsonFile(CODE_VERIFIER_FILE, store);
640
+ const store = readJsonFile(codeVerifierFile()) ?? {};
641
+ delete store[this.serverName];
642
+ store[this.storageKey] = codeVerifier;
643
+ writeJsonFile(codeVerifierFile(), store);
566
644
  }
567
645
  }
568
646
  codeVerifier() {
569
647
  if (this._codeVerifier) {
570
648
  return this._codeVerifier;
571
649
  }
572
- const store = readJsonFile(CODE_VERIFIER_FILE) ?? {};
573
- return store[this.serverName] ?? '';
650
+ const store = readJsonFile(codeVerifierFile()) ?? {};
651
+ return this.readKeyed(store) ?? '';
574
652
  }
575
653
  invalidateCredentials(scope) {
576
654
  if (scope === 'all' || scope === 'tokens') {
577
655
  this.deleteTokens();
578
656
  }
579
657
  if (scope === 'all' || scope === 'client') {
580
- const store = readJsonFile(CLIENT_INFO_FILE) ?? {};
581
- delete store[this.serverName];
582
- writeJsonFile(CLIENT_INFO_FILE, store);
658
+ const store = readJsonFile(clientInfoFile()) ?? {};
659
+ this.deleteKeyed(store);
660
+ writeJsonFile(clientInfoFile(), store);
583
661
  }
584
662
  if (scope === 'all' || scope === 'verifier') {
585
663
  this._codeVerifier = '';
586
- const store = readJsonFile(CODE_VERIFIER_FILE) ?? {};
587
- delete store[this.serverName];
588
- writeJsonFile(CODE_VERIFIER_FILE, store);
664
+ const store = readJsonFile(codeVerifierFile()) ?? {};
665
+ this.deleteKeyed(store);
666
+ writeJsonFile(codeVerifierFile(), store);
589
667
  }
590
668
  }
591
669
  // ─── Private helpers ────────────────────────────────────────────────────────
592
670
  loadTokens() {
593
- const store = readJsonFile(TOKENS_FILE) ?? {};
594
- return store[this.serverName] ?? null;
671
+ const store = readJsonFile(tokensFile()) ?? {};
672
+ return this.readKeyed(store) ?? null;
595
673
  }
596
674
  isExpired(tokens) {
597
675
  if (!tokens.expires_in)
@@ -625,14 +703,18 @@ class OAuthManager {
625
703
  const msg = `OAuth error: ${error}${error_description ? ` — ${error_description}` : ''}`;
626
704
  res.writeHead(400, { 'Content-Type': 'text/html' });
627
705
  res.end(htmlPage('Authorization Failed', `<p>${msg}</p>`));
706
+ this.invalidateCredentials('verifier');
628
707
  this._closeCallbackServer();
708
+ this._pendingAuthUrl = null;
629
709
  this._rejectAll(new Error(msg));
630
710
  return;
631
711
  }
632
712
  if (!code) {
633
713
  res.writeHead(400, { 'Content-Type': 'text/html' });
634
714
  res.end(htmlPage('Authorization Failed', '<p>No authorization code received.</p>'));
715
+ this.invalidateCredentials('verifier');
635
716
  this._closeCallbackServer();
717
+ this._pendingAuthUrl = null;
636
718
  this._rejectAll(new Error('No authorization code in callback'));
637
719
  return;
638
720
  }
@@ -659,7 +741,9 @@ class OAuthManager {
659
741
  else {
660
742
  res.writeHead(400, { 'Content-Type': 'text/html' });
661
743
  res.end(htmlPage('Authorization Failed', '<p>Unexpected auth result. Please retry.</p>'));
744
+ this.invalidateCredentials('verifier');
662
745
  this._closeCallbackServer();
746
+ this._pendingAuthUrl = null;
663
747
  this._rejectAll(new Error('Unexpected auth result after code exchange'));
664
748
  }
665
749
  }
@@ -667,7 +751,9 @@ class OAuthManager {
667
751
  const msg = err instanceof Error ? err.message : String(err);
668
752
  res.writeHead(500, { 'Content-Type': 'text/html' });
669
753
  res.end(htmlPage('Token Exchange Failed', `<p>${msg}</p>`));
754
+ this.invalidateCredentials('verifier');
670
755
  this._closeCallbackServer();
756
+ this._pendingAuthUrl = null;
671
757
  this._rejectAll(err instanceof Error ? err : new Error(msg));
672
758
  }
673
759
  }
@@ -677,9 +763,9 @@ class OAuthManager {
677
763
  deletePendingFlow(state) {
678
764
  if (!state)
679
765
  return;
680
- const pendingFlows = readJsonFile(PENDING_FLOW_FILE) ?? {};
766
+ const pendingFlows = readJsonFile(pendingFlowFile()) ?? {};
681
767
  delete pendingFlows[state];
682
- writeJsonFile(PENDING_FLOW_FILE, pendingFlows);
768
+ writeJsonFile(pendingFlowFile(), pendingFlows);
683
769
  }
684
770
  _closeCallbackServer() {
685
771
  this._startingFlow = null;
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-manager.js","sourceRoot":"","sources":["../src/oauth-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-manager.js","sourceRoot":"","sources":["../src/oauth-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Helpers for resolving lazy-mcp's config/data directory.
3
+ *
4
+ * Honours the XDG Base Directory Specification: `$XDG_CONFIG_HOME` is used as
5
+ * the base config directory when set (and non-empty), otherwise we fall back
6
+ * to `~/.config`. The lazy-mcp directory is always `<base>/lazy-mcp`.
7
+ *
8
+ * This is resolved at call time (not module load) so tests can mutate
9
+ * `process.env.XDG_CONFIG_HOME` or `os.homedir()` and see the change reflected.
10
+ *
11
+ * See: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
12
+ */
13
+ /**
14
+ * Returns the base config directory: `$XDG_CONFIG_HOME` if set (and non-empty),
15
+ * otherwise `~/.config`.
16
+ */
17
+ export declare function getXdgConfigHome(): string;
18
+ /**
19
+ * Returns the lazy-mcp config directory: `<xdgConfigHome>/lazy-mcp`.
20
+ */
21
+ export declare function getConfigDir(): string;
22
+ /**
23
+ * Returns the default path for `servers.json` (the multi-server config file).
24
+ */
25
+ export declare function getDefaultConfigPath(): string;
26
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
package/dist/paths.js ADDED
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ /**
3
+ * Helpers for resolving lazy-mcp's config/data directory.
4
+ *
5
+ * Honours the XDG Base Directory Specification: `$XDG_CONFIG_HOME` is used as
6
+ * the base config directory when set (and non-empty), otherwise we fall back
7
+ * to `~/.config`. The lazy-mcp directory is always `<base>/lazy-mcp`.
8
+ *
9
+ * This is resolved at call time (not module load) so tests can mutate
10
+ * `process.env.XDG_CONFIG_HOME` or `os.homedir()` and see the change reflected.
11
+ *
12
+ * See: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
13
+ */
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
27
+ }) : function(o, v) {
28
+ o["default"] = v;
29
+ });
30
+ var __importStar = (this && this.__importStar) || (function () {
31
+ var ownKeys = function(o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ })();
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.getXdgConfigHome = getXdgConfigHome;
49
+ exports.getConfigDir = getConfigDir;
50
+ exports.getDefaultConfigPath = getDefaultConfigPath;
51
+ const os = __importStar(require("os"));
52
+ const path = __importStar(require("path"));
53
+ /**
54
+ * Returns the base config directory: `$XDG_CONFIG_HOME` if set (and non-empty),
55
+ * otherwise `~/.config`.
56
+ */
57
+ function getXdgConfigHome() {
58
+ const xdg = process.env.XDG_CONFIG_HOME;
59
+ if (xdg && xdg.length > 0) {
60
+ return xdg;
61
+ }
62
+ return path.join(os.homedir(), '.config');
63
+ }
64
+ /**
65
+ * Returns the lazy-mcp config directory: `<xdgConfigHome>/lazy-mcp`.
66
+ */
67
+ function getConfigDir() {
68
+ return path.join(getXdgConfigHome(), 'lazy-mcp');
69
+ }
70
+ /**
71
+ * Returns the default path for `servers.json` (the multi-server config file).
72
+ */
73
+ function getDefaultConfigPath() {
74
+ return path.join(getConfigDir(), 'servers.json');
75
+ }
76
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASH,4CAMC;AAKD,oCAEC;AAKD,oDAEC;AA3BD,uCAAyB;AACzB,2CAA6B;AAE7B;;;GAGG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,cAAc,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { GlobalPermissions, PermissionAction, ServerPermissions } from './types';
2
+ /**
3
+ * Outcome of evaluating permission rules for a `invoke_command` call.
4
+ *
5
+ * **Experimental.** The permissions feature is experimental and may change in
6
+ * future releases.
7
+ */
8
+ export interface PermissionDecision {
9
+ action: PermissionAction;
10
+ message?: string;
11
+ /**
12
+ * Which level of the resolution algorithm produced this decision. Not part
13
+ * of the user-visible API — it's intended for debug logging and future
14
+ * telemetry (e.g. graphing how often each rule level fires). Stable enough
15
+ * that tests can assert on it.
16
+ */
17
+ source: 'server-rule' | 'global-rule' | 'server-default' | 'global-default' | 'implicit-default';
18
+ }
19
+ /**
20
+ * Convert a tiny glob pattern to a case-insensitive RegExp.
21
+ *
22
+ * Supported tokens:
23
+ * - `*` — zero or more characters
24
+ * - `?` — exactly one character
25
+ * - Any other character — literal
26
+ *
27
+ * No regex, alternation, or negation. Predictable and easy to validate.
28
+ *
29
+ * Adjacent `*`s are collapsed first (`**`, `***`, … → `*`). This is the only
30
+ * realistic shape that produces catastrophic backtracking when expanded to
31
+ * `.*.*…` against a long non-matching input — collapsing it to a single `.*`
32
+ * defuses the ReDoS foot-gun without changing match semantics.
33
+ */
34
+ export declare function globToRegExp(pattern: string): RegExp;
35
+ /** Test whether `value` matches the glob `pattern` (case-insensitive). */
36
+ export declare function matchesGlob(pattern: string, value: string): boolean;
37
+ /**
38
+ * Resolve the permission action for a `invoke_command` call.
39
+ *
40
+ * Resolution order (first non-empty wins; within each level the last matching
41
+ * rule wins):
42
+ * 1. Per-server rules
43
+ * 2. Global rules (with optional `server` glob)
44
+ * 3. Per-server default
45
+ * 4. Global default
46
+ * 5. Implicit `"allow"`
47
+ */
48
+ export declare function resolveAction(serverName: string, commandName: string, perServer?: ServerPermissions, global?: GlobalPermissions): PermissionDecision;
49
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,MAAM,EACF,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,iBAAiB,EAC7B,MAAM,CAAC,EAAE,iBAAiB,GACzB,kBAAkB,CA2CpB"}