@rndmjoker/proton-mcp 0.4.13 → 0.5.1

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 (95) hide show
  1. package/README.md +138 -21
  2. package/dist/browser/channel.d.ts +76 -0
  3. package/dist/browser/channel.js +162 -0
  4. package/dist/browser/channel.js.map +1 -0
  5. package/dist/browser/client.d.ts +50 -0
  6. package/dist/browser/client.js +284 -0
  7. package/dist/browser/client.js.map +1 -0
  8. package/dist/browser/connector.d.ts +15 -0
  9. package/dist/browser/connector.js +26 -0
  10. package/dist/browser/connector.js.map +1 -0
  11. package/dist/browser/host.d.ts +50 -0
  12. package/dist/browser/host.js +258 -0
  13. package/dist/browser/host.js.map +1 -0
  14. package/dist/browser/messages.d.ts +163 -0
  15. package/dist/browser/messages.js +338 -0
  16. package/dist/browser/messages.js.map +1 -0
  17. package/dist/browser/paths.d.ts +51 -0
  18. package/dist/browser/paths.js +92 -0
  19. package/dist/browser/paths.js.map +1 -0
  20. package/dist/browser/setup.d.ts +42 -0
  21. package/dist/browser/setup.js +170 -0
  22. package/dist/browser/setup.js.map +1 -0
  23. package/dist/filters/order.d.ts +66 -0
  24. package/dist/filters/order.js +108 -0
  25. package/dist/filters/order.js.map +1 -0
  26. package/dist/filters/sieve.d.ts +184 -0
  27. package/dist/filters/sieve.js +1312 -0
  28. package/dist/filters/sieve.js.map +1 -0
  29. package/dist/instances.d.ts +58 -0
  30. package/dist/instances.js +145 -0
  31. package/dist/instances.js.map +1 -0
  32. package/dist/mail/compose.d.ts +10 -0
  33. package/dist/mail/compose.js.map +1 -1
  34. package/dist/mail/record.d.ts +36 -0
  35. package/dist/mail/record.js +74 -0
  36. package/dist/mail/record.js.map +1 -0
  37. package/dist/permissions.d.ts +139 -0
  38. package/dist/permissions.js +355 -0
  39. package/dist/permissions.js.map +1 -0
  40. package/dist/server.js +330 -16
  41. package/dist/server.js.map +1 -1
  42. package/dist/session.d.ts +12 -0
  43. package/dist/session.js +23 -0
  44. package/dist/session.js.map +1 -1
  45. package/dist/settings.d.ts +81 -11
  46. package/dist/settings.js +160 -25
  47. package/dist/settings.js.map +1 -1
  48. package/dist/tools/confirm.d.ts +4 -2
  49. package/dist/tools/confirm.js +12 -3
  50. package/dist/tools/confirm.js.map +1 -1
  51. package/dist/tools/failures.d.ts +6 -8
  52. package/dist/tools/failures.js +36 -17
  53. package/dist/tools/failures.js.map +1 -1
  54. package/dist/tools/filter-tools.d.ts +82 -0
  55. package/dist/tools/filter-tools.js +729 -0
  56. package/dist/tools/filter-tools.js.map +1 -0
  57. package/dist/tools/filters.d.ts +8 -1
  58. package/dist/tools/filters.js +24 -12
  59. package/dist/tools/filters.js.map +1 -1
  60. package/dist/tools/format.d.ts +15 -0
  61. package/dist/tools/format.js +4 -3
  62. package/dist/tools/format.js.map +1 -1
  63. package/dist/tools/guidance.js +12 -7
  64. package/dist/tools/guidance.js.map +1 -1
  65. package/dist/tools/interface.d.ts +20 -6
  66. package/dist/tools/interface.js +40 -16
  67. package/dist/tools/interface.js.map +1 -1
  68. package/dist/tools/send.d.ts +9 -0
  69. package/dist/tools/send.js +51 -9
  70. package/dist/tools/send.js.map +1 -1
  71. package/dist/tools/sign-in-required.d.ts +15 -2
  72. package/dist/tools/sign-in-required.js +30 -2
  73. package/dist/tools/sign-in-required.js.map +1 -1
  74. package/dist/web/layout.d.ts +12 -5
  75. package/dist/web/layout.js +32 -9
  76. package/dist/web/layout.js.map +1 -1
  77. package/dist/web/pages.d.ts +4 -2
  78. package/dist/web/pages.js +10 -9
  79. package/dist/web/pages.js.map +1 -1
  80. package/dist/web/pending.d.ts +9 -6
  81. package/dist/web/pending.js +9 -7
  82. package/dist/web/pending.js.map +1 -1
  83. package/dist/web/preview-server.d.ts +33 -0
  84. package/dist/web/preview-server.js +102 -0
  85. package/dist/web/preview-server.js.map +1 -0
  86. package/dist/web/sections.d.ts +86 -1
  87. package/dist/web/sections.js +290 -7
  88. package/dist/web/sections.js.map +1 -1
  89. package/dist/web/security.d.ts +48 -13
  90. package/dist/web/security.js +68 -16
  91. package/dist/web/security.js.map +1 -1
  92. package/dist/web/server.d.ts +81 -24
  93. package/dist/web/server.js +478 -117
  94. package/dist/web/server.js.map +1 -1
  95. package/package.json +1 -1
package/dist/server.js CHANGED
@@ -13,13 +13,18 @@
13
13
  import { createRequire } from 'node:module';
14
14
  import { randomBytes } from 'node:crypto';
15
15
  import { McpServer, createRequestStateCodec } from '@modelcontextprotocol/server';
16
+ import { Permissions, PermissionsError, CONTROLLED, GROUPS, defaultLevel, levelsFor, } from './permissions.js';
16
17
  import { serveStdio } from '@modelcontextprotocol/server/stdio';
17
18
  import { loadConfig, credentialsFromEnvironment, portsSetExplicitly, ConfigError, } from './config.js';
18
19
  import { Connection } from './bridge/connection.js';
19
20
  import { loadPinned, pinPath } from './bridge/certificate.js';
20
21
  import { Session } from './session.js';
21
22
  import { encryptedFilePath } from './credentials/encrypted-file.js';
22
- import { loadSettings, saveSettings } from './settings.js';
23
+ import { loadSettings, updateSettings, watchSettings } from './settings.js';
24
+ import { registerInstance, listInstances, signedInOnlyElsewhere } from './instances.js';
25
+ import { STORE_DESCRIPTIONS } from './credentials/store.js';
26
+ import { PreviewServer } from './web/preview-server.js';
27
+ import { recordFromEnvironment, recordProblem, RecordError } from './mail/record.js';
23
28
  import * as activity from './activity.js';
24
29
  import { WebInterface } from './web/server.js';
25
30
  import { registerListFolders } from './tools/list-folders.js';
@@ -31,12 +36,13 @@ import { registerDraftTools } from './tools/drafts.js';
31
36
  import { registerSendTools } from './tools/send.js';
32
37
  import { registerSavedAttachmentTools } from './tools/saved.js';
33
38
  import { SavedAttachments } from './mail/saved-attachments.js';
34
- import { setSignInHint, setLockedCheck } from './tools/failures.js';
39
+ import { setSignInHint, setLockedCheck, setElsewhereCheck, setPreviewBase } from './tools/failures.js';
35
40
  import { pendingView } from './tools/pending-view.js';
36
41
  import { setHandshakeCapabilities } from './tools/capabilities.js';
37
42
  import { registerGuidance, INSTRUCTIONS } from './tools/guidance.js';
38
43
  import { registerUpdateTool } from './tools/updates.js';
39
44
  import { registerFilterTool } from './tools/filters.js';
45
+ import { registerBrowserFilterTools } from './tools/filter-tools.js';
40
46
  import { waitForIdle } from './in-flight.js';
41
47
  // The version number lives in package.json only.
42
48
  // Writing it here a second time would mean forgetting it here. From
@@ -77,13 +83,65 @@ async function main() {
77
83
  // Stored ports fill in only where the environment said nothing. An explicit
78
84
  // BRIDGE_IMAP_PORT has to keep meaning what it says.
79
85
  const explicitPorts = portsSetExplicitly();
80
- // Held rather than read once: every write goes through the whole object, so
81
- // that saving one setting cannot drop another. saveSettings replaces the file.
82
- const settings = await loadSettings();
86
+ // The settings shared by every running server. Held here and replaced
87
+ // whenever the file changes, whichever server changed it. Writes go through
88
+ // updateSettings, which reads the file first, so that a change made here
89
+ // cannot undo one made by another server a moment earlier.
90
+ let settings = await loadSettings();
83
91
  if (!explicitPorts.imapPort && settings.imapPort !== undefined)
84
92
  config.imapPort = settings.imapPort;
85
93
  if (!explicitPorts.smtpPort && settings.smtpPort !== undefined)
86
94
  config.smtpPort = settings.smtpPort;
95
+ /**
96
+ * The sign-in counter as this server last knew it. A higher number in the
97
+ * file means somebody signed in or out through the interface, possibly in
98
+ * another server, and the stored credentials have to be read again.
99
+ */
100
+ let knownGeneration = settings.credentialsGeneration ?? 0;
101
+ // What the assistant may do, tool by tool. A mistake in the environment stops
102
+ // the start: running with permissions nobody chose would be worse.
103
+ let permissions;
104
+ try {
105
+ permissions = new Permissions({ settings: () => settings, readOnly: config.readOnly });
106
+ }
107
+ catch (error) {
108
+ if (error instanceof PermissionsError) {
109
+ process.stderr.write(`${NAME}: ${error.message}\n`);
110
+ process.exit(1);
111
+ }
112
+ throw error;
113
+ }
114
+ // The recipient added to every message sent (#18). From the environment it is
115
+ // fixed; otherwise the interface sets it, guarded by the PIN when one is set.
116
+ let recordFromEnv;
117
+ try {
118
+ recordFromEnv = recordFromEnvironment();
119
+ }
120
+ catch (error) {
121
+ if (error instanceof RecordError) {
122
+ process.stderr.write(`${NAME}: ${error.message}\n`);
123
+ process.exit(1);
124
+ }
125
+ throw error;
126
+ }
127
+ const recordInForce = () => recordFromEnv ?? settings.record;
128
+ const startRecord = recordInForce();
129
+ if (startRecord) {
130
+ notify(`every message sent also goes to ${startRecord.address} (${startRecord.mode})`);
131
+ }
132
+ const departures = permissions.departures();
133
+ if (departures.length > 0) {
134
+ notify(`assistant permissions that differ from the default: ` +
135
+ departures.map((d) => `${d.tool} ${d.level} (${d.source})`).join(', '));
136
+ }
137
+ /**
138
+ * Shows or hides the tools after a change of levels. Set once the MCP server
139
+ * exists; the settings watcher calls it whenever the file changes.
140
+ */
141
+ let applyLevels = () => undefined;
142
+ /** The tools this server registered, so the permissions page lists only real ones. */
143
+ const registeredNames = new Set();
144
+ const groupOf = (tool) => Object.keys(GROUPS).find((group) => GROUPS[group].includes(tool)) ?? '';
87
145
  const environmentCredentials = credentialsFromEnvironment();
88
146
  const session = new Session({
89
147
  ...(environmentCredentials ? { fromEnvironment: environmentCredentials } : {}),
@@ -120,8 +178,176 @@ async function main() {
120
178
  await probe.close();
121
179
  }
122
180
  };
181
+ // This server's entry in the list of running servers the interface shows.
182
+ // Nothing in it is secret: who is signed in is on the overview page anyway.
183
+ const instance = registerInstance({
184
+ pid: process.pid,
185
+ version: VERSION,
186
+ startedAt,
187
+ signedIn: session.signedIn,
188
+ servesInterface: false,
189
+ ...(session.address ? { address: session.address } : {}),
190
+ ...(session.storeKind ? { storeKind: session.storeKind } : {}),
191
+ });
192
+ const refreshInstance = () => {
193
+ instance.update({
194
+ signedIn: session.signedIn,
195
+ address: session.address,
196
+ storeKind: session.storeKind,
197
+ });
198
+ };
199
+ // The session restores credentials lazily, on the first tool call, so the
200
+ // entry is brought up to date now and then rather than only on sign-in.
201
+ setInterval(refreshInstance, 15_000).unref();
202
+ process.on('exit', () => instance.remove());
203
+ /**
204
+ * Tells every other running server that the stored credentials changed.
205
+ *
206
+ * The counter is raised in the shared settings, and each server rereads the
207
+ * stores when it sees that. This server raises its own idea of the number
208
+ * first, so it does not throw away the sign-in it just made.
209
+ */
210
+ const announceCredentials = async () => {
211
+ try {
212
+ settings = await updateSettings((current) => {
213
+ knownGeneration = (current.credentialsGeneration ?? 0) + 1;
214
+ return { ...current, credentialsGeneration: knownGeneration };
215
+ });
216
+ }
217
+ catch (error) {
218
+ notify(`other running servers could not be told about the sign-in: ${error.message}`);
219
+ }
220
+ };
123
221
  const web = new WebInterface({
124
222
  port: config.webPort,
223
+ getPin: () => settings.pin,
224
+ onPinChange: async (next) => {
225
+ try {
226
+ settings = await updateSettings((current) => {
227
+ const { pin: _old, ...rest } = current;
228
+ return next ? { ...rest, pin: next } : rest;
229
+ });
230
+ }
231
+ catch (error) {
232
+ return `The PIN could not be saved: ${error.message}`;
233
+ }
234
+ notify(next ? 'a PIN now guards changes in the web interface' : 'the PIN of the web interface was removed');
235
+ return undefined;
236
+ },
237
+ getServers: () => listInstances().map((entry) => ({
238
+ pid: entry.pid,
239
+ version: entry.version,
240
+ startedAt: entry.startedAt,
241
+ signedIn: entry.signedIn,
242
+ servesInterface: entry.servesInterface,
243
+ ...(entry.address ? { address: entry.address } : {}),
244
+ ...(entry.storeKind ? { storeTitle: STORE_DESCRIPTIONS[entry.storeKind].title } : {}),
245
+ })),
246
+ onServingChange: (serving) => instance.update({ servesInterface: serving }),
247
+ getPermissions: () => {
248
+ const fixed = permissions.limitsFixed();
249
+ const limits = permissions.limits();
250
+ return {
251
+ tools: CONTROLLED.filter((tool) => registeredNames.has(tool)).map((tool) => {
252
+ const source = permissions.source(tool);
253
+ return {
254
+ tool,
255
+ group: groupOf(tool),
256
+ level: permissions.level(tool),
257
+ options: levelsFor(tool),
258
+ fixed: source === 'environment' || source === 'read-only',
259
+ source: permissions.where(tool),
260
+ departs: permissions.level(tool) !== defaultLevel(tool),
261
+ };
262
+ }),
263
+ limits: {
264
+ allowed: limits.allowed ?? [],
265
+ ...(limits.maxPerHour !== undefined ? { maxPerHour: limits.maxPerHour } : {}),
266
+ ...(limits.until ? { until: limits.until } : {}),
267
+ fixed,
268
+ },
269
+ };
270
+ },
271
+ onLevels: async (chosen) => {
272
+ try {
273
+ settings = await updateSettings((current) => {
274
+ const levels = { ...(current.levels ?? {}) };
275
+ for (const [tool, level] of Object.entries(chosen)) {
276
+ // Only departures are stored, so a default that changes in a later
277
+ // version reaches everyone who never chose otherwise.
278
+ if (level === defaultLevel(tool))
279
+ delete levels[tool];
280
+ else
281
+ levels[tool] = level;
282
+ }
283
+ const { levels: _old, ...rest } = current;
284
+ return Object.keys(levels).length > 0 ? { ...rest, levels } : rest;
285
+ });
286
+ }
287
+ catch (error) {
288
+ return `The levels could not be saved: ${error.message}`;
289
+ }
290
+ applyLevels();
291
+ const now = permissions.departures();
292
+ notify(now.length > 0
293
+ ? `assistant permissions changed: ${now.map((d) => `${d.tool} ${d.level}`).join(', ')}`
294
+ : 'assistant permissions are back to the default');
295
+ return undefined;
296
+ },
297
+ getRecord: () => {
298
+ const record = recordInForce();
299
+ return {
300
+ fixed: recordFromEnv !== undefined,
301
+ ...(record ? { address: record.address, mode: record.mode } : {}),
302
+ };
303
+ },
304
+ onRecord: async (record) => {
305
+ if (record) {
306
+ const problem = recordProblem(record.address);
307
+ if (problem)
308
+ return problem;
309
+ }
310
+ try {
311
+ settings = await updateSettings((current) => {
312
+ const { record: _old, ...rest } = current;
313
+ return record ? { ...rest, record: { address: record.address.trim(), mode: record.mode } } : rest;
314
+ });
315
+ }
316
+ catch (error) {
317
+ return `The copy recipient could not be saved: ${error.message}`;
318
+ }
319
+ notify(record ? `every message sent now also goes to ${record.address} (${record.mode})` : 'no copy is added to messages any more');
320
+ return undefined;
321
+ },
322
+ getFilterActions: () => ({ allowed: [...permissions.unlocks()], fixed: permissions.unlocksFixed() }),
323
+ onFilterActions: async (actions) => {
324
+ try {
325
+ settings = await updateSettings((current) => {
326
+ const { filterActions: _old, ...rest } = current;
327
+ return actions.length > 0 ? { ...rest, filterActions: actions } : rest;
328
+ });
329
+ }
330
+ catch (error) {
331
+ return `What filters may do could not be saved: ${error.message}`;
332
+ }
333
+ notify(actions.length > 0
334
+ ? `filters from an assistant may now also: ${actions.join(', ')}`
335
+ : 'filters from an assistant may only file and flag again');
336
+ return undefined;
337
+ },
338
+ onLimits: async (limits) => {
339
+ try {
340
+ settings = await updateSettings((current) => {
341
+ const { limits: _old, ...rest } = current;
342
+ return Object.keys(limits).length > 0 ? { ...rest, limits } : rest;
343
+ });
344
+ }
345
+ catch (error) {
346
+ return `The bounds could not be saved: ${error.message}`;
347
+ }
348
+ notify('the bounds on sending without asking changed');
349
+ return undefined;
350
+ },
125
351
  onSignIn: async (credentials, storeKind, masterPassword) => {
126
352
  const failure = await verify(credentials);
127
353
  if (failure)
@@ -135,6 +361,8 @@ async function main() {
135
361
  }
136
362
  // Drop the old connection so the next call uses the new credentials.
137
363
  await connection.close();
364
+ refreshInstance();
365
+ await announceCredentials();
138
366
  if (left.length === 0)
139
367
  return undefined;
140
368
  return {
@@ -146,6 +374,8 @@ async function main() {
146
374
  onSignOut: async () => {
147
375
  const left = await session.signOut();
148
376
  await connection.close();
377
+ refreshInstance();
378
+ await announceCredentials();
149
379
  if (left.length === 0)
150
380
  return undefined;
151
381
  return (`Signed out here, but not everywhere. ${left.join(' ')} Until that is done, the next start ` +
@@ -229,13 +459,11 @@ async function main() {
229
459
  : {
230
460
  onPorts: async (ports) => {
231
461
  try {
232
- await saveSettings({ ...settings, ...ports });
462
+ settings = await updateSettings((current) => ({ ...current, ...ports }));
233
463
  }
234
464
  catch (error) {
235
465
  return `The ports could not be saved: ${error.message}`;
236
466
  }
237
- settings.imapPort = ports.imapPort;
238
- settings.smtpPort = ports.smtpPort;
239
467
  // The Connection reads this object on every reconnect, so closing
240
468
  // the current one is all that is needed for the change to take.
241
469
  config.imapPort = ports.imapPort;
@@ -245,14 +473,11 @@ async function main() {
245
473
  return undefined;
246
474
  },
247
475
  }),
248
- // The message behind an open confirmation, for the page that shows it.
249
- // Held in memory by preview.ts and dropped as soon as the answer arrives.
250
- getPending: (digest) => pendingView(digest),
251
476
  noticeDismissed: () => settings.noticeDismissed === true,
252
477
  onDismissNotice: async () => {
253
- settings.noticeDismissed = true;
478
+ settings = { ...settings, noticeDismissed: true };
254
479
  try {
255
- await saveSettings(settings);
480
+ settings = await updateSettings((current) => ({ ...current, noticeDismissed: true }));
256
481
  }
257
482
  catch (error) {
258
483
  // Worth a line, not worth failing over: the notice is hidden for this
@@ -291,16 +516,59 @@ async function main() {
291
516
  },
292
517
  notify,
293
518
  });
519
+ // Follows the shared settings file, whichever server wrote it. Ports set in
520
+ // the environment stay as they are; a raised sign-in counter means the
521
+ // credentials changed through the interface, possibly in another server.
522
+ const stopWatching = watchSettings((next) => {
523
+ settings = next;
524
+ let reconnect = false;
525
+ if (!explicitPorts.imapPort && next.imapPort !== undefined && next.imapPort !== config.imapPort) {
526
+ config.imapPort = next.imapPort;
527
+ reconnect = true;
528
+ }
529
+ if (!explicitPorts.smtpPort && next.smtpPort !== undefined && next.smtpPort !== config.smtpPort) {
530
+ config.smtpPort = next.smtpPort;
531
+ reconnect = true;
532
+ }
533
+ const generation = next.credentialsGeneration ?? 0;
534
+ if (generation !== knownGeneration) {
535
+ knownGeneration = generation;
536
+ session.reloadShared();
537
+ reconnect = true;
538
+ }
539
+ if (reconnect)
540
+ void connection.close();
541
+ refreshInstance();
542
+ applyLevels();
543
+ });
544
+ // Messages waiting for confirmation are shown by this server itself, on a
545
+ // port of its own: they are held in its memory and nowhere else.
546
+ const preview = new PreviewServer({ getPending: (digest) => pendingView(digest), notify });
547
+ try {
548
+ await preview.start();
549
+ }
550
+ catch (error) {
551
+ notify(`messages waiting for confirmation cannot be previewed: ${error.message}`);
552
+ }
553
+ setPreviewBase((digest) => preview.urlFor(digest));
294
554
  // Every tool answer about a missing sign-in names this address, so the model
295
555
  // sends the user there instead of asking for the password in the chat.
296
- setSignInHint(() => (web.running ? web.url : undefined));
556
+ setSignInHint(() => (web.reachable ? web.url : undefined));
297
557
  // So that a tool called while an encrypted file is still closed says what is
298
558
  // actually missing: the master password, not the Bridge password.
299
559
  setLockedCheck(() => session.locked());
560
+ // And so that a server which does not show the page says why it is not signed
561
+ // in while the one that does is: that sign-in stays with the other server.
562
+ // Read from the list of running servers at the moment of asking.
563
+ const signedInElsewhere = () => !web.running && signedInOnlyElsewhere(listInstances(), process.pid);
564
+ setElsewhereCheck(signedInElsewhere);
300
565
  let webUrl;
301
566
  try {
302
567
  webUrl = await web.start();
303
- notify(`web interface at ${webUrl}`);
568
+ if (web.running)
569
+ notify(`web interface at ${webUrl}`);
570
+ else if (web.reachable)
571
+ notify(`web interface at ${webUrl}, served by another running proton-mcp`);
304
572
  if (!session.signedIn && !environmentCredentials) {
305
573
  // Asking the session restores from a store, which is what makes this
306
574
  // message true. Without it the answer is always "nothing stored": the
@@ -353,11 +621,28 @@ async function main() {
353
621
  // reason to look anything up; the detail lives in the resources.
354
622
  instructions: INSTRUCTIONS,
355
623
  });
624
+ // Every tool is recorded as it is registered, so its level can show or hide
625
+ // it later. The SDK tells the client whenever that changes the list, and
626
+ // refuses a call to a tool that is switched off.
627
+ const tools = new Map();
628
+ const register = server.registerTool.bind(server);
629
+ server.registerTool = (...args) => {
630
+ const tool = register(...args);
631
+ tools.set(String(args[0]), tool);
632
+ registeredNames.add(String(args[0]));
633
+ return tool;
634
+ };
356
635
  registerGuidance(server);
357
636
  registerUpdateTool(server, VERSION);
358
637
  // Handed nothing but the server: it answers filter requests without
359
638
  // touching the Bridge, so there is no connection it could use.
360
639
  registerFilterTool(server);
640
+ // Through the browser extension (#59). The account is the one signed in
641
+ // here, so the extension can refuse a Proton page of another account.
642
+ registerBrowserFilterTools(server, {
643
+ getCredentials: () => session.credentials(),
644
+ permissions,
645
+ });
361
646
  registerListFolders(server, connection);
362
647
  registerMessageTools(server, connection);
363
648
  registerSavedAttachmentTools(server, connection, saved);
@@ -378,15 +663,32 @@ async function main() {
378
663
  readOnly: () => config.readOnly,
379
664
  from: () => session.address,
380
665
  codec: sendCodec,
666
+ permissions,
667
+ record: recordInForce,
381
668
  });
382
669
  registerInterfaceTool(server, {
383
670
  url: () => web.url,
384
671
  running: () => web.running,
672
+ reachable: () => web.reachable,
673
+ occupant: () => web.occupant,
674
+ pinSet: () => settings.pin !== undefined,
385
675
  signedIn: () => session.signedIn,
676
+ signedInElsewhere,
386
677
  address: () => session.address,
387
678
  storeKind: () => session.storeKind,
388
679
  locked: () => session.locked(),
389
680
  });
681
+ applyLevels = () => {
682
+ for (const [name, tool] of tools) {
683
+ const off = permissions.level(name) === 'off';
684
+ const enabled = tool.enabled !== false;
685
+ if (off && enabled)
686
+ tool.disable();
687
+ else if (!off && !enabled)
688
+ tool.enable();
689
+ }
690
+ };
691
+ applyLevels();
390
692
  return server;
391
693
  });
392
694
  // Clean shutdown. stdin matters most: when the client dies the stream ends
@@ -411,7 +713,10 @@ async function main() {
411
713
  notify('shutdown forced, a call was still running.');
412
714
  try {
413
715
  saved.stop();
716
+ stopWatching();
717
+ instance.remove();
414
718
  await web.stop();
719
+ await preview.stop();
415
720
  await connection.close();
416
721
  await handle.close();
417
722
  }
@@ -424,5 +729,14 @@ async function main() {
424
729
  process.on('SIGINT', () => void shutdown());
425
730
  process.on('SIGTERM', () => void shutdown());
426
731
  }
427
- void main();
732
+ // One more thing the same command does, so that nobody has to install a second
733
+ // package: setting up the helper Chrome starts for the browser extension (#59).
734
+ // Everything else is the server.
735
+ if (process.argv[2] === 'setup-browser') {
736
+ const { setupBrowser } = await import('./browser/setup.js');
737
+ process.exit(setupBrowser({ remove: process.argv.includes('--remove') }));
738
+ }
739
+ else {
740
+ void main();
741
+ }
428
742
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/session.d.ts CHANGED
@@ -93,6 +93,18 @@ export declare class Session {
93
93
  * swallowed and looked like a clean sign-out (#52).
94
94
  */
95
95
  signOut(): Promise<string[]>;
96
+ /**
97
+ * Forgets credentials restored from a shared store, so the next use reads it again.
98
+ *
99
+ * Called when another running server signed in or out through the interface
100
+ * they all share. What the store holds may have changed, and the copy in this
101
+ * process would otherwise outlive a sign-out made somewhere else.
102
+ *
103
+ * Credentials from the environment are kept, because nothing in the interface
104
+ * overrules them. So are those held only in this process, for this session or
105
+ * from an encrypted file opened here: no other server can have changed them.
106
+ */
107
+ reloadShared(): void;
96
108
  /** Replaces a store. Used by tests and by the startup wiring. */
97
109
  setStore(kind: StoreKind, store: CredentialStore): void;
98
110
  }
package/dist/session.js CHANGED
@@ -42,8 +42,11 @@ export class Session {
42
42
  #notify;
43
43
  /** Set once startup has looked for stored credentials. */
44
44
  #restored = false;
45
+ /** True when the credentials came from the environment, which nothing here overrules. */
46
+ #fromEnvironment;
45
47
  constructor(options = {}) {
46
48
  this.#notify = options.notify ?? ((m) => process.stderr.write(`proton-mcp: ${m}\n`));
49
+ this.#fromEnvironment = options.fromEnvironment !== undefined;
47
50
  // Taken up right away rather than on first use. Reading the environment
48
51
  // costs nothing and cannot block, and leaving it for later made the status
49
52
  // claim "not signed in" while the very next tool call worked.
@@ -224,6 +227,26 @@ export class Session {
224
227
  this.#restored = true;
225
228
  return left;
226
229
  }
230
+ /**
231
+ * Forgets credentials restored from a shared store, so the next use reads it again.
232
+ *
233
+ * Called when another running server signed in or out through the interface
234
+ * they all share. What the store holds may have changed, and the copy in this
235
+ * process would otherwise outlive a sign-out made somewhere else.
236
+ *
237
+ * Credentials from the environment are kept, because nothing in the interface
238
+ * overrules them. So are those held only in this process, for this session or
239
+ * from an encrypted file opened here: no other server can have changed them.
240
+ */
241
+ reloadShared() {
242
+ if (this.#fromEnvironment)
243
+ return;
244
+ if (this.#storeKind === 'session' || this.#storeKind === 'encrypted-file')
245
+ return;
246
+ this.#credentials = undefined;
247
+ this.#storeKind = undefined;
248
+ this.#restored = false;
249
+ }
227
250
  /** Empties every store but the one named, and says which could not be emptied. */
228
251
  async #clearAll(except) {
229
252
  const left = [];
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}