@sonoma-security/mcp-gateway 0.1.11 → 0.1.13

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 (63) hide show
  1. package/dist/__tests__/plugin-discovery.test.d.ts +12 -0
  2. package/dist/__tests__/plugin-discovery.test.d.ts.map +1 -0
  3. package/dist/__tests__/plugin-discovery.test.js +367 -0
  4. package/dist/__tests__/plugin-discovery.test.js.map +1 -0
  5. package/dist/__tests__/tool-blocking.test.d.ts +2 -0
  6. package/dist/__tests__/tool-blocking.test.d.ts.map +1 -0
  7. package/dist/__tests__/tool-blocking.test.js +256 -0
  8. package/dist/__tests__/tool-blocking.test.js.map +1 -0
  9. package/dist/auth/client.d.ts.map +1 -1
  10. package/dist/auth/client.js +49 -6
  11. package/dist/auth/client.js.map +1 -1
  12. package/dist/auth/keychain.d.ts +34 -0
  13. package/dist/auth/keychain.d.ts.map +1 -0
  14. package/dist/auth/keychain.js +305 -0
  15. package/dist/auth/keychain.js.map +1 -0
  16. package/dist/auth/server.d.ts +15 -3
  17. package/dist/auth/server.d.ts.map +1 -1
  18. package/dist/auth/server.js +110 -23
  19. package/dist/auth/server.js.map +1 -1
  20. package/dist/auth/storage.d.ts +5 -6
  21. package/dist/auth/storage.d.ts.map +1 -1
  22. package/dist/auth/storage.js +72 -21
  23. package/dist/auth/storage.js.map +1 -1
  24. package/dist/auth/upstream-oauth.d.ts +2 -0
  25. package/dist/auth/upstream-oauth.d.ts.map +1 -1
  26. package/dist/auth/upstream-oauth.js +58 -8
  27. package/dist/auth/upstream-oauth.js.map +1 -1
  28. package/dist/auth/upstream-token-store.d.ts +18 -6
  29. package/dist/auth/upstream-token-store.d.ts.map +1 -1
  30. package/dist/auth/upstream-token-store.js +127 -35
  31. package/dist/auth/upstream-token-store.js.map +1 -1
  32. package/dist/cli.js +16 -0
  33. package/dist/cli.js.map +1 -1
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +17 -7
  36. package/dist/config.js.map +1 -1
  37. package/dist/gateway.d.ts +17 -0
  38. package/dist/gateway.d.ts.map +1 -1
  39. package/dist/gateway.js +302 -66
  40. package/dist/gateway.js.map +1 -1
  41. package/dist/http-proxy.d.ts +76 -0
  42. package/dist/http-proxy.d.ts.map +1 -0
  43. package/dist/http-proxy.js +316 -0
  44. package/dist/http-proxy.js.map +1 -0
  45. package/dist/index.d.ts +3 -0
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +2 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/pattern-matcher.d.ts +25 -0
  50. package/dist/pattern-matcher.d.ts.map +1 -1
  51. package/dist/pattern-matcher.js +65 -0
  52. package/dist/pattern-matcher.js.map +1 -1
  53. package/dist/prompt-guard.d.ts +24 -0
  54. package/dist/prompt-guard.d.ts.map +1 -0
  55. package/dist/prompt-guard.js +161 -0
  56. package/dist/prompt-guard.js.map +1 -0
  57. package/dist/sonoma-client.d.ts +28 -1
  58. package/dist/sonoma-client.d.ts.map +1 -1
  59. package/dist/sonoma-client.js +67 -43
  60. package/dist/sonoma-client.js.map +1 -1
  61. package/dist/types.d.ts +6 -0
  62. package/dist/types.d.ts.map +1 -1
  63. package/package.json +1 -1
@@ -0,0 +1,256 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { isToolBlockedByPolicy, matchesToolPattern, getPatternSpecificity, } from "../pattern-matcher.js";
3
+ // ---------------------------------------------------------------------------
4
+ // matchesToolPattern
5
+ // ---------------------------------------------------------------------------
6
+ describe("matchesToolPattern", () => {
7
+ it("matches exact tool name", () => {
8
+ expect(matchesToolPattern("read_file", "read_file")).toBe(true);
9
+ });
10
+ it("rejects non-matching exact name", () => {
11
+ expect(matchesToolPattern("write_file", "read_file")).toBe(false);
12
+ });
13
+ it("matches prefix wildcard", () => {
14
+ expect(matchesToolPattern("read_file", "read_*")).toBe(true);
15
+ expect(matchesToolPattern("read_directory", "read_*")).toBe(true);
16
+ });
17
+ it("rejects non-matching prefix wildcard", () => {
18
+ expect(matchesToolPattern("write_file", "read_*")).toBe(false);
19
+ });
20
+ it("matches suffix wildcard", () => {
21
+ expect(matchesToolPattern("user_delete", "*_delete")).toBe(true);
22
+ expect(matchesToolPattern("file_delete", "*_delete")).toBe(true);
23
+ });
24
+ it("matches infix wildcard", () => {
25
+ expect(matchesToolPattern("get_user_info", "get_*_info")).toBe(true);
26
+ expect(matchesToolPattern("get_file_info", "get_*_info")).toBe(true);
27
+ });
28
+ it("matches universal wildcard", () => {
29
+ expect(matchesToolPattern("anything", "*")).toBe(true);
30
+ });
31
+ });
32
+ // ---------------------------------------------------------------------------
33
+ // getPatternSpecificity
34
+ // ---------------------------------------------------------------------------
35
+ describe("getPatternSpecificity", () => {
36
+ it("returns 0 for server-level (null)", () => {
37
+ expect(getPatternSpecificity(null)).toBe(0);
38
+ });
39
+ it("returns 1 for universal wildcard", () => {
40
+ expect(getPatternSpecificity("*")).toBe(1);
41
+ });
42
+ it("returns 100 for exact name", () => {
43
+ expect(getPatternSpecificity("read_file")).toBe(100);
44
+ });
45
+ it("orders wildcard patterns by non-wildcard character count", () => {
46
+ // "r*" has 1 non-wildcard char, "read_*" has 5
47
+ expect(getPatternSpecificity("r*")).toBeLessThan(getPatternSpecificity("read_*"));
48
+ });
49
+ });
50
+ // ---------------------------------------------------------------------------
51
+ // isToolBlockedByPolicy
52
+ // ---------------------------------------------------------------------------
53
+ describe("isToolBlockedByPolicy", () => {
54
+ // -----------------------------------------------------------------------
55
+ // Basics
56
+ // -----------------------------------------------------------------------
57
+ it("returns false when policy list is empty", () => {
58
+ expect(isToolBlockedByPolicy([], "slack", "search", null)).toBe(false);
59
+ });
60
+ it("returns false when no rules match the server", () => {
61
+ const rules = [
62
+ { identifier: "github", status: "blocked", toolPattern: null, priority: 0 },
63
+ ];
64
+ expect(isToolBlockedByPolicy(rules, "slack", "search", null)).toBe(false);
65
+ });
66
+ // -----------------------------------------------------------------------
67
+ // Server-level blocking
68
+ // -----------------------------------------------------------------------
69
+ it("blocks all tools when server-level rule is blocked", () => {
70
+ const rules = [
71
+ { identifier: "slack", status: "blocked", toolPattern: null, priority: 0 },
72
+ ];
73
+ expect(isToolBlockedByPolicy(rules, "slack", "search", null)).toBe(true);
74
+ expect(isToolBlockedByPolicy(rules, "slack", "send_message", null)).toBe(true);
75
+ });
76
+ it("allows all tools when server-level rule is allowed", () => {
77
+ const rules = [
78
+ { identifier: "slack", status: "allowed", toolPattern: null, priority: 0 },
79
+ ];
80
+ expect(isToolBlockedByPolicy(rules, "slack", "search", null)).toBe(false);
81
+ });
82
+ // -----------------------------------------------------------------------
83
+ // Tool-level blocking (exact name)
84
+ // -----------------------------------------------------------------------
85
+ it("blocks a specific tool by exact name", () => {
86
+ const rules = [
87
+ { identifier: "slack", status: "blocked", toolPattern: "slack_search_public_and_private", priority: 20 },
88
+ ];
89
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public_and_private", null)).toBe(true);
90
+ });
91
+ it("does not block other tools when only one tool is blocked", () => {
92
+ const rules = [
93
+ { identifier: "slack", status: "blocked", toolPattern: "slack_search_public_and_private", priority: 20 },
94
+ ];
95
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_send_message", null)).toBe(false);
96
+ });
97
+ // -----------------------------------------------------------------------
98
+ // Tool-level blocking (wildcard patterns)
99
+ // -----------------------------------------------------------------------
100
+ it("blocks tools matching a wildcard pattern", () => {
101
+ const rules = [
102
+ { identifier: "slack", status: "blocked", toolPattern: "slack_search_*", priority: 10 },
103
+ ];
104
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public", null)).toBe(true);
105
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public_and_private", null)).toBe(true);
106
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_send_message", null)).toBe(false);
107
+ });
108
+ // -----------------------------------------------------------------------
109
+ // Package name matching
110
+ // -----------------------------------------------------------------------
111
+ it("matches rules by packageName when provided", () => {
112
+ const rules = [
113
+ { identifier: "@anthropic/slack-mcp", status: "blocked", toolPattern: "slack_search_*", priority: 10 },
114
+ ];
115
+ // Server name doesn't match, but packageName does
116
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public", "@anthropic/slack-mcp")).toBe(true);
117
+ });
118
+ it("falls back to server name when packageName doesn't match", () => {
119
+ const rules = [
120
+ { identifier: "slack", status: "blocked", toolPattern: null, priority: 0 },
121
+ ];
122
+ expect(isToolBlockedByPolicy(rules, "slack", "search", "@some/other-package")).toBe(true);
123
+ });
124
+ // -----------------------------------------------------------------------
125
+ // Global wildcard identifier
126
+ // -----------------------------------------------------------------------
127
+ it("blocks tools from any server when identifier is *", () => {
128
+ const rules = [
129
+ { identifier: "*", status: "blocked", toolPattern: "dangerous_*", priority: 10 },
130
+ ];
131
+ expect(isToolBlockedByPolicy(rules, "slack", "dangerous_delete", null)).toBe(true);
132
+ expect(isToolBlockedByPolicy(rules, "github", "dangerous_reset", null)).toBe(true);
133
+ expect(isToolBlockedByPolicy(rules, "slack", "safe_read", null)).toBe(false);
134
+ });
135
+ // -----------------------------------------------------------------------
136
+ // Priority resolution
137
+ // -----------------------------------------------------------------------
138
+ it("higher priority rule wins over lower priority", () => {
139
+ const rules = [
140
+ // Server-level: allowed at priority 0
141
+ { identifier: "slack", status: "allowed", toolPattern: null, priority: 0 },
142
+ // Tool-level: blocked at priority 20 (higher, wins)
143
+ { identifier: "slack", status: "blocked", toolPattern: "slack_search_public_and_private", priority: 20 },
144
+ ];
145
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public_and_private", null)).toBe(true);
146
+ // Other tools still allowed
147
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_send_message", null)).toBe(false);
148
+ });
149
+ it("tool-level allow overrides server-level block at higher priority", () => {
150
+ const rules = [
151
+ // Server-level: blocked at priority 0
152
+ { identifier: "slack", status: "blocked", toolPattern: null, priority: 0 },
153
+ // Tool-level: allowed at priority 20 (higher, wins)
154
+ { identifier: "slack", status: "allowed", toolPattern: "slack_send_message", priority: 20 },
155
+ ];
156
+ // The allowed tool is not blocked
157
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_send_message", null)).toBe(false);
158
+ // Other tools still blocked by server-level rule
159
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public", null)).toBe(true);
160
+ });
161
+ // -----------------------------------------------------------------------
162
+ // Deny wins at same priority
163
+ // -----------------------------------------------------------------------
164
+ it("deny wins when two rules have the same priority and specificity", () => {
165
+ const rules = [
166
+ { identifier: "slack", status: "allowed", toolPattern: "slack_search_public", priority: 20 },
167
+ { identifier: "slack", status: "blocked", toolPattern: "slack_search_public", priority: 20 },
168
+ ];
169
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public", null)).toBe(true);
170
+ });
171
+ // -----------------------------------------------------------------------
172
+ // Specificity resolution
173
+ // -----------------------------------------------------------------------
174
+ it("more specific pattern wins at same priority", () => {
175
+ const rules = [
176
+ // Wildcard pattern: block all search tools (less specific)
177
+ { identifier: "slack", status: "blocked", toolPattern: "slack_search_*", priority: 10 },
178
+ // Exact name: allow this specific search tool (more specific)
179
+ { identifier: "slack", status: "allowed", toolPattern: "slack_search_public", priority: 10 },
180
+ ];
181
+ // Exact name (specificity 100) wins over wildcard (specificity ~22)
182
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public", null)).toBe(false);
183
+ // Other search tools still blocked
184
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_private", null)).toBe(true);
185
+ });
186
+ // -----------------------------------------------------------------------
187
+ // Multiple tool blocks on same server
188
+ // -----------------------------------------------------------------------
189
+ it("blocks multiple specific tools on the same server", () => {
190
+ const rules = [
191
+ { identifier: "slack", status: "blocked", toolPattern: "slack_search_public_and_private", priority: 20 },
192
+ { identifier: "slack", status: "blocked", toolPattern: "slack_send_message", priority: 20 },
193
+ ];
194
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public_and_private", null)).toBe(true);
195
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_send_message", null)).toBe(true);
196
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_read_channel", null)).toBe(false);
197
+ });
198
+ // -----------------------------------------------------------------------
199
+ // URL-based identifier matching
200
+ // -----------------------------------------------------------------------
201
+ it("matches rules by URL when server name and packageName don't match", () => {
202
+ const rules = [
203
+ { identifier: "https://mcp.slack.com/mcp", status: "blocked", toolPattern: "slack_search_*", priority: 10 },
204
+ ];
205
+ // Server name "slack" and packageName don't match, but URL does
206
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public", null, "https://mcp.slack.com/mcp")).toBe(true);
207
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_send_message", null, "https://mcp.slack.com/mcp")).toBe(false);
208
+ });
209
+ // -----------------------------------------------------------------------
210
+ // Real-world Slack scenario: policy uses packageName, gateway has URL
211
+ // -----------------------------------------------------------------------
212
+ it("blocks Slack tools matching the real-world policy shape", () => {
213
+ // Mirrors the actual policy returned by the Sonoma API
214
+ const rules = [
215
+ { identifier: "https://mcp.slack.com/mcp", status: "gateway", toolPattern: null, priority: 0 },
216
+ { identifier: "slack-mcp-server", status: "blocked", toolPattern: "slack_search_public_and_private", priority: 20 },
217
+ { identifier: "slack-mcp-server", status: "blocked", toolPattern: "slack_send_message", priority: 20 },
218
+ ];
219
+ // Gateway config: server name "slack", no packageName, URL "https://mcp.slack.com/mcp"
220
+ // The tool-level rules use "slack-mcp-server" which doesn't match server name or URL,
221
+ // but if packageName is resolved to "slack-mcp-server" it will match
222
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public_and_private", "slack-mcp-server", "https://mcp.slack.com/mcp")).toBe(true);
223
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_send_message", "slack-mcp-server", "https://mcp.slack.com/mcp")).toBe(true);
224
+ // Unblocked tools are still allowed
225
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_read_channel", "slack-mcp-server", "https://mcp.slack.com/mcp")).toBe(false);
226
+ });
227
+ // -----------------------------------------------------------------------
228
+ // Extra identifiers (alias resolution from policy)
229
+ // -----------------------------------------------------------------------
230
+ it("matches rules via extraIdentifiers (alias resolution)", () => {
231
+ // Tool-level rules use the canonical package name
232
+ const rules = [
233
+ { identifier: "slack-mcp-server", status: "blocked", toolPattern: "slack_search_public_and_private", priority: 20 },
234
+ ];
235
+ // Gateway only knows server name "slack" and URL, but aliases resolve
236
+ // "slack-mcp-server" from the identifierAliases map
237
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public_and_private", null, "https://mcp.slack.com/mcp", ["slack-mcp-server"])).toBe(true);
238
+ // Non-blocked tools still allowed
239
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_read_channel", null, "https://mcp.slack.com/mcp", ["slack-mcp-server"])).toBe(false);
240
+ });
241
+ it("matches the exact real-world scenario: gateway has URL, policy has packageName", () => {
242
+ // Real policy from the Sonoma API
243
+ const rules = [
244
+ { identifier: "https://mcp.slack.com/mcp", status: "gateway", toolPattern: null, priority: 0 },
245
+ { identifier: "slack-mcp-server", status: "blocked", toolPattern: "slack_search_public_and_private", priority: 20 },
246
+ { identifier: "slack-mcp-server", status: "blocked", toolPattern: "slack_send_message", priority: 20 },
247
+ ];
248
+ // Gateway: name="slack", no packageName, url="https://mcp.slack.com/mcp"
249
+ // identifierAliases from policy: {"https://mcp.slack.com/mcp": ["slack-mcp-server"]}
250
+ const aliases = ["slack-mcp-server"];
251
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_search_public_and_private", null, "https://mcp.slack.com/mcp", aliases)).toBe(true);
252
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_send_message", null, "https://mcp.slack.com/mcp", aliases)).toBe(true);
253
+ expect(isToolBlockedByPolicy(rules, "slack", "slack_read_channel", null, "https://mcp.slack.com/mcp", aliases)).toBe(false);
254
+ });
255
+ });
256
+ //# sourceMappingURL=tool-blocking.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-blocking.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-blocking.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyBH,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsBD,0BAA0B;AAC1B,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5D;AA0FD;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkErE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiChF;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,IAAI,CAG7B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG;IACtD,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAqCA;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAgDnF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyBH,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsBD,0BAA0B;AAC1B,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5D;AA0HD;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmFrE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiChF;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,IAAI,CAG7B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG;IACtD,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAqCA;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAgDnF"}
@@ -46,6 +46,30 @@ export async function openBrowser(url) {
46
46
  spawn("xdg-open", [url], { stdio: "ignore" });
47
47
  }
48
48
  }
49
+ /**
50
+ * Wait for another gateway process to complete login by polling credentials.
51
+ * Returns true if credentials appeared, false if timed out.
52
+ */
53
+ async function waitForExternalLogin(sonomaEndpoint, debug, timeoutMs = 5 * 60 * 1000) {
54
+ log(debug, "Another gateway is already doing login, waiting for it to complete...");
55
+ console.error("\nAnother login is already in progress. Waiting for it to complete...");
56
+ const start = Date.now();
57
+ const pollInterval = 2000;
58
+ while (Date.now() - start < timeoutMs) {
59
+ await new Promise((r) => setTimeout(r, pollInterval));
60
+ const creds = loadCredentials();
61
+ if (creds?.accessToken && creds.sonomaEndpoint === sonomaEndpoint) {
62
+ // Check token is fresh (set within the last few minutes)
63
+ const isRecent = creds.lastRefreshed && Date.now() - creds.lastRefreshed < 10 * 60 * 1000;
64
+ if (isRecent) {
65
+ log(debug, "Login completed by another process");
66
+ console.error("Login completed by another process.");
67
+ return true;
68
+ }
69
+ }
70
+ }
71
+ return false;
72
+ }
49
73
  /** Register client via DCR */
50
74
  async function registerClient(metadata, debug) {
51
75
  if (!metadata.registration_endpoint) {
@@ -142,21 +166,40 @@ export async function login(options) {
142
166
  authUrl.searchParams.set("code_challenge_method", "S256");
143
167
  authUrl.searchParams.set("state", state);
144
168
  authUrl.searchParams.set("scope", "openid profile email");
145
- // 5. Start callback server and open browser
169
+ // 5. Try to start callback server (acquires the port atomically)
170
+ let handle;
171
+ try {
172
+ handle = await startCallbackServer({ port: CALLBACK_PORT, debug });
173
+ }
174
+ catch (err) {
175
+ // Port taken: another gateway is already doing login, wait for it
176
+ if (err instanceof Error && err.message.includes("already in use")) {
177
+ const completed = await waitForExternalLogin(sonomaEndpoint, debug);
178
+ if (completed)
179
+ return;
180
+ // Other process timed out or failed, try again
181
+ log(debug, "External login did not complete, retrying...");
182
+ handle = await startCallbackServer({ port: CALLBACK_PORT, debug });
183
+ }
184
+ else {
185
+ throw err;
186
+ }
187
+ }
188
+ // 6. Port acquired: now safe to open browser (no duplicate tabs possible)
189
+ handle.setAuthUrl(authUrl.toString());
146
190
  console.error("\nOpening browser for authentication...");
147
191
  console.error(`If browser doesn't open, visit:\n${authUrl.toString()}\n`);
148
- const callbackPromise = startCallbackServer({ port: CALLBACK_PORT, debug });
149
192
  await openBrowser(authUrl.toString());
150
- // 6. Wait for callback
151
- const result = await callbackPromise;
193
+ // 7. Wait for callback
194
+ const result = await handle.waitForCallback();
152
195
  if (result.state !== state) {
153
196
  throw new Error("State mismatch - possible CSRF attack");
154
197
  }
155
198
  log(debug, "Received authorization code");
156
- // 7. Exchange code for tokens
199
+ // 8. Exchange code for tokens
157
200
  const tokens = await exchangeCode(metadata, result.code, pkce.verifier, creds.clientId ?? "");
158
201
  log(debug, "Got tokens, expires_in:", tokens.expires_in);
159
- // 8. Save tokens
202
+ // 9. Save tokens
160
203
  saveCredentials({
161
204
  ...creds,
162
205
  accessToken: tokens.access_token,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * OS Keychain abstraction for secure credential storage.
3
+ *
4
+ * Uses native OS credential stores via CLI tools (no native modules needed):
5
+ * - macOS: Keychain Access via `security` CLI
6
+ * - Windows: Credential Manager via PowerShell
7
+ * - Linux/other: Falls back to encrypted file storage (existing behavior)
8
+ *
9
+ * All credentials are stored as JSON strings, keyed by (service, account).
10
+ */
11
+ /**
12
+ * Store a credential in the OS keychain.
13
+ * @param account - Unique key within the service (e.g., "sonoma-auth", "upstream:https://mcp.slack.com")
14
+ * @param data - Credential data (will be JSON-stringified)
15
+ */
16
+ export declare function keychainSet(account: string, data: unknown): void;
17
+ /**
18
+ * Retrieve a credential from the OS keychain.
19
+ * @returns Parsed JSON data, or null if not found
20
+ */
21
+ export declare function keychainGet<T = unknown>(account: string): T | null;
22
+ /**
23
+ * Delete a credential from the OS keychain.
24
+ */
25
+ export declare function keychainDelete(account: string): void;
26
+ /**
27
+ * Delete all credentials for the service from the OS keychain.
28
+ */
29
+ export declare function keychainDeleteAll(): void;
30
+ /**
31
+ * Check whether OS keychain is available on this platform.
32
+ */
33
+ export declare function keychainAvailable(): boolean;
34
+ //# sourceMappingURL=keychain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../src/auth/keychain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAWhE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAmBlE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAUpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAUxC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAM3C"}