@aaronsb/google-workspace-mcp 4.7.0 → 4.8.0

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.
@@ -24,13 +24,23 @@ function buildCoveredPaths(manifest) {
24
24
  // (ADR-308). Counting only `resource` reported the five batch methods the server
25
25
  // genuinely calls as gaps — and left this file disagreeing with docs/api-surface.md,
26
26
  // which is generated from the same manifest.
27
+ //
28
+ // Several operations can share one method (search, triage and previewModifyMatching
29
+ // all call users.messages.list). A parameter any of them maps is covered, so the
30
+ // sets are merged; keeping only the last operation's reported its gaps as the method's.
27
31
  for (const path of [opDef.resource, opDef.batch?.resource]) {
28
32
  if (!path)
29
33
  continue;
34
+ const existing = covered.get(path);
35
+ if (existing) {
36
+ for (const name of paramNames)
37
+ existing.params.add(name);
38
+ continue;
39
+ }
30
40
  covered.set(path, {
31
41
  service: serviceDef.google_service,
32
42
  opName,
33
- params: paramNames,
43
+ params: new Set(paramNames),
34
44
  });
35
45
  }
36
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/coverage/compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/coverage/compare.ts"],"names":[],"mappings":"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"}
@@ -311,10 +311,56 @@ operations:
311
311
  maps_to: id
312
312
  addLabelIds:
313
313
  type: string
314
- description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123). On modify, to this message; on the filter operations, to each matching message as it arrives."
314
+ description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123). On modify, to this message; on the filter operations, to each matching message as it arrives; on the *ModifyMatching operations, to every message the preview counted."
315
315
  removeLabelIds:
316
316
  type: string
317
- description: "Comma-separated label IDs to remove (e.g. UNREAD to mark read, INBOX to archive). On modify, from this message; on the filter operations, from each matching message as it arrives."
317
+ description: "Comma-separated label IDs to remove (e.g. UNREAD to mark read, INBOX to archive). On modify, from this message; on the filter operations, from each matching message as it arrives; on the *ModifyMatching operations, from every message the preview counted."
318
+ defaults:
319
+ userId: me
320
+
321
+ # --- Label changes over a whole query (ADR-310) ---
322
+
323
+ # The server resolves the query at preview and holds the ids, so they never pass through
324
+ # the conversation; the apply changes exactly that set. Handlers in gmail/modify-matching.ts.
325
+
326
+ previewModifyMatching:
327
+ type: list
328
+ description: "evaluate a label change over everything a query matches, without making it: the exact count (up to 10,000), a sample, and what the change does to each message. Holds the matched set and returns the previewToken modifyMatching needs. No ids are returned beyond the sample."
329
+ resource: users.messages.list
330
+ params:
331
+ query:
332
+ type: string
333
+ description: 'Gmail search query (e.g. "from:alice subject:meeting has:attachment")'
334
+ required: true
335
+ maps_to: q
336
+ addLabelIds:
337
+ type: string
338
+ description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123). On modify, to this message; on the filter operations, to each matching message as it arrives; on the *ModifyMatching operations, to every message the preview counted."
339
+ removeLabelIds:
340
+ type: string
341
+ description: "Comma-separated label IDs to remove (e.g. UNREAD to mark read, INBOX to archive). On modify, from this message; on the filter operations, from each matching message as it arrives; on the *ModifyMatching operations, from every message the preview counted."
342
+ defaults:
343
+ userId: me
344
+
345
+ modifyMatching:
346
+ type: action
347
+ description: "apply a previewed label change (archive, mark read, label, trash) to exactly the messages previewModifyMatching counted, and report how many changed. Requires its previewToken from an earlier call, within 30 minutes; each preview applies once."
348
+ resource: users.messages.batchModify
349
+ params:
350
+ query:
351
+ type: string
352
+ description: 'Gmail search query (e.g. "from:alice subject:meeting has:attachment")'
353
+ required: true
354
+ maps_to: q
355
+ addLabelIds:
356
+ type: string
357
+ description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123). On modify, to this message; on the filter operations, to each matching message as it arrives; on the *ModifyMatching operations, to every message the preview counted."
358
+ removeLabelIds:
359
+ type: string
360
+ description: "Comma-separated label IDs to remove (e.g. UNREAD to mark read, INBOX to archive). On modify, from this message; on the filter operations, from each matching message as it arrives; on the *ModifyMatching operations, from every message the preview counted."
361
+ previewToken:
362
+ type: string
363
+ description: "The token the preview returned for this exact change: previewFilter for createFilter and updateFilter, previewModifyMatching for modifyMatching. Required: the write runs only after its preview has been seen."
318
364
  defaults:
319
365
  userId: me
320
366
 
@@ -413,10 +459,10 @@ operations:
413
459
  enum: [larger, smaller]
414
460
  addLabelIds:
415
461
  type: string
416
- description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123). On modify, to this message; on the filter operations, to each matching message as it arrives."
462
+ description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123). On modify, to this message; on the filter operations, to each matching message as it arrives; on the *ModifyMatching operations, to every message the preview counted."
417
463
  removeLabelIds:
418
464
  type: string
419
- description: "Comma-separated label IDs to remove (e.g. UNREAD to mark read, INBOX to archive). On modify, from this message; on the filter operations, from each matching message as it arrives."
465
+ description: "Comma-separated label IDs to remove (e.g. UNREAD to mark read, INBOX to archive). On modify, from this message; on the filter operations, from each matching message as it arrives; on the *ModifyMatching operations, from every message the preview counted."
420
466
  forwardTo:
421
467
  type: string
422
468
  description: "Filter action: forward each match to this address. It must already be a verified forwarding address in Gmail settings."
@@ -458,16 +504,16 @@ operations:
458
504
  enum: [larger, smaller]
459
505
  addLabelIds:
460
506
  type: string
461
- description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123). On modify, to this message; on the filter operations, to each matching message as it arrives."
507
+ description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123). On modify, to this message; on the filter operations, to each matching message as it arrives; on the *ModifyMatching operations, to every message the preview counted."
462
508
  removeLabelIds:
463
509
  type: string
464
- description: "Comma-separated label IDs to remove (e.g. UNREAD to mark read, INBOX to archive). On modify, from this message; on the filter operations, from each matching message as it arrives."
510
+ description: "Comma-separated label IDs to remove (e.g. UNREAD to mark read, INBOX to archive). On modify, from this message; on the filter operations, from each matching message as it arrives; on the *ModifyMatching operations, from every message the preview counted."
465
511
  forwardTo:
466
512
  type: string
467
513
  description: "Filter action: forward each match to this address. It must already be a verified forwarding address in Gmail settings."
468
514
  previewToken:
469
515
  type: string
470
- description: "The token previewFilter returned for this exact change. Required: the write runs only after its preview has been seen."
516
+ description: "The token the preview returned for this exact change: previewFilter for createFilter and updateFilter, previewModifyMatching for modifyMatching. Required: the write runs only after its preview has been seen."
471
517
  defaults:
472
518
  userId: me
473
519
 
@@ -510,16 +556,16 @@ operations:
510
556
  enum: [larger, smaller]
511
557
  addLabelIds:
512
558
  type: string
513
- description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123). On modify, to this message; on the filter operations, to each matching message as it arrives."
559
+ description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123). On modify, to this message; on the filter operations, to each matching message as it arrives; on the *ModifyMatching operations, to every message the preview counted."
514
560
  removeLabelIds:
515
561
  type: string
516
- description: "Comma-separated label IDs to remove (e.g. UNREAD to mark read, INBOX to archive). On modify, from this message; on the filter operations, from each matching message as it arrives."
562
+ description: "Comma-separated label IDs to remove (e.g. UNREAD to mark read, INBOX to archive). On modify, from this message; on the filter operations, from each matching message as it arrives; on the *ModifyMatching operations, from every message the preview counted."
517
563
  forwardTo:
518
564
  type: string
519
565
  description: "Filter action: forward each match to this address. It must already be a verified forwarding address in Gmail settings."
520
566
  previewToken:
521
567
  type: string
522
- description: "The token previewFilter returned for this exact change. Required: the write runs only after its preview has been seen."
568
+ description: "The token the preview returned for this exact change: previewFilter for createFilter and updateFilter, previewModifyMatching for modifyMatching. Required: the write runs only after its preview has been seen."
523
569
  defaults:
524
570
  userId: me
525
571
 
@@ -111,7 +111,7 @@ function isReadOperation(operation) {
111
111
  if (op.startsWith('get') || op.startsWith('list') || op.startsWith('search'))
112
112
  return true;
113
113
  // Exact read-only names
114
- const readOps = ['read', 'triage', 'labels', 'threads', 'agenda', 'calendars', 'freebusy', 'tree', 'filters', 'previewfilter'];
114
+ const readOps = ['read', 'triage', 'labels', 'threads', 'agenda', 'calendars', 'freebusy', 'tree', 'filters', 'previewfilter', 'previewmodifymatching'];
115
115
  return readOps.includes(op);
116
116
  }
117
117
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/factory/safety.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/factory/safety.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,9 @@ export declare function checkPreviewToken(token: unknown, kind: string, account:
30
30
  *
31
31
  * @param write The operation refused, e.g. `createFilter`.
32
32
  * @param preview The operation that mints its token, e.g. `previewFilter`.
33
+ * @param why What makes the write need a preview, in a clause, e.g. "It changes what
34
+ * happens to mail that has not arrived yet". Shown when the token is missing.
33
35
  */
34
36
  export declare function describeTokenFailure(check: Extract<TokenCheck, {
35
37
  ok: false;
36
- }>, write: string, preview: string): string;
38
+ }>, write: string, preview: string, why: string): string;
@@ -80,13 +80,15 @@ export function checkPreviewToken(token, kind, account, payload, now = Date.now(
80
80
  *
81
81
  * @param write The operation refused, e.g. `createFilter`.
82
82
  * @param preview The operation that mints its token, e.g. `previewFilter`.
83
+ * @param why What makes the write need a preview, in a clause, e.g. "It changes what
84
+ * happens to mail that has not arrived yet". Shown when the token is missing.
83
85
  */
84
- export function describeTokenFailure(check, write, preview) {
86
+ export function describeTokenFailure(check, write, preview, why) {
85
87
  const again = `Call \`${preview}\` with these exact parameters and pass the previewToken it returns.`;
86
88
  switch (check.failure) {
87
89
  case 'missing':
88
- return `\`${write}\` needs a previewToken. It changes what happens to mail that has not arrived yet, ` +
89
- `so it runs only after a preview of this exact change has been returned. ${again}`;
90
+ return `\`${write}\` needs a previewToken. ${why}, so it runs only after a preview of this exact change ` +
91
+ `has been returned. ${again}`;
90
92
  case 'malformed':
91
93
  return `The previewToken is not one this server issued. ${again}`;
92
94
  case 'wrong-kind':
@@ -1 +1 @@
1
- {"version":3,"file":"preview-gate.js","sourceRoot":"","sources":["../../src/server/preview-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AAE5B,uFAAuF;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,CAAC;AAE1C,4EAA4E;AAC5E,MAAM,OAAO,GAAG,MAAM,CAAC;AAiBvB,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3E,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;aAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;aAClC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9F,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,GAAG,CAAC,UAAkB,EAAE,OAAe,EAAE,OAAgB;IAChE,OAAO,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;SAC7B,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAC1C,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC9B,MAAM,EAAE,CAAC;AACd,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAe,EAAE,OAAgB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAChG,MAAM,MAAM,GAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC;IACpE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC7E,OAAO,GAAG,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,iBAAiB,CAC/B,KAAc,EACd,IAAY,EACZ,OAAe,EACf,OAAgB,EAChB,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAEhB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAE/F,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAE/F,IAAI,MAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAgB,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,MAAM,EAAE,CAAC,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAClG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAC7C,CAAC;IAED,yFAAyF;IACzF,wFAAwF;IACxF,uFAAuF;IACvF,iDAAiD;IACjD,IAAI,MAAM,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrF,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACxD,IAAI,MAAM,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,cAAc;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC1G,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,aAAa,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAC/F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAyC,EAAE,KAAa,EAAE,OAAe;IAC5G,MAAM,KAAK,GAAG,UAAU,OAAO,sEAAsE,CAAC;IACtG,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,KAAK,KAAK,qFAAqF;gBACpG,2EAA2E,KAAK,EAAE,CAAC;QACvF,KAAK,WAAW;YACd,OAAO,mDAAmD,KAAK,EAAE,CAAC;QACpE,KAAK,YAAY;YACf,OAAO,6CAA6C,KAAK,CAAC,SAAS,IAAI,mBAAmB,WAAW,KAAK,OAAO,KAAK,EAAE,CAAC;QAC3H,KAAK,UAAU;YACb,OAAO,iGAAiG;gBACtG,8EAA8E,KAAK,EAAE,CAAC;QAC1F,KAAK,SAAS;YACZ,OAAO,wDAAwD,cAAc,GAAG,MAAM,mBAAmB;gBACvG,4CAA4C,KAAK,EAAE,CAAC;QACxD,KAAK,WAAW;YACd,OAAO,iGAAiG;gBACtG,YAAY,KAAK,iEAAiE,KAAK,KAAK,CAAC;IACnG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"preview-gate.js","sourceRoot":"","sources":["../../src/server/preview-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Sets resolved at preview and held for the write that applies them (ADR-310).
3
+ *
4
+ * A query-scoped bulk write resolves its query once, at preview, so the apply changes
5
+ * exactly what the preview counted. The set is kept here, keyed by the preview token,
6
+ * and the token covers a digest of it, so a set that went missing or changed cannot be
7
+ * applied. Memory is bounded three ways: ids per set, a set's age, and sets per process.
8
+ * A restart drops every set, as it already invalidates every token.
9
+ */
10
+ /** Most ids one preview may hold. A larger result is narrowed by the caller instead. */
11
+ export declare const MAX_SET_SIZE = 10000;
12
+ /** Most previews held at once; the oldest goes first. */
13
+ export declare const MAX_PENDING_SETS = 20;
14
+ /** A digest of the set, independent of order, for the token to cover. */
15
+ export declare function setDigest(ids: readonly string[]): string;
16
+ /** Hold a set under its preview token. */
17
+ export declare function holdSet(token: string, account: string, ids: readonly string[], now?: number): void;
18
+ /** The set held under this token for this account, if it is still held. Does not remove it. */
19
+ export declare function heldSet(token: string, account: string, now?: number): string[] | undefined;
20
+ /** Remove a set; an applied preview is used once. */
21
+ export declare function releaseSet(token: string): void;
22
+ /** How many sets are held. For tests and diagnostics. */
23
+ export declare function heldSetCount(now?: number): number;
24
+ /** Drop every held set. For tests. */
25
+ export declare function clearHeldSets(): void;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Sets resolved at preview and held for the write that applies them (ADR-310).
3
+ *
4
+ * A query-scoped bulk write resolves its query once, at preview, so the apply changes
5
+ * exactly what the preview counted. The set is kept here, keyed by the preview token,
6
+ * and the token covers a digest of it, so a set that went missing or changed cannot be
7
+ * applied. Memory is bounded three ways: ids per set, a set's age, and sets per process.
8
+ * A restart drops every set, as it already invalidates every token.
9
+ */
10
+ import { createHash } from 'node:crypto';
11
+ import { PREVIEW_TTL_MS } from './preview-gate.js';
12
+ /** Most ids one preview may hold. A larger result is narrowed by the caller instead. */
13
+ export const MAX_SET_SIZE = 10_000;
14
+ /** Most previews held at once; the oldest goes first. */
15
+ export const MAX_PENDING_SETS = 20;
16
+ const held = new Map();
17
+ /** A digest of the set, independent of order, for the token to cover. */
18
+ export function setDigest(ids) {
19
+ return createHash('sha256').update([...ids].sort().join('\n')).digest('base64url');
20
+ }
21
+ function dropExpired(now) {
22
+ for (const [key, set] of held) {
23
+ if (now - set.heldAt > PREVIEW_TTL_MS)
24
+ held.delete(key);
25
+ }
26
+ }
27
+ /** Hold a set under its preview token. */
28
+ export function holdSet(token, account, ids, now = Date.now()) {
29
+ if (ids.length > MAX_SET_SIZE)
30
+ throw new Error(`A previewed set holds at most ${MAX_SET_SIZE} ids, not ${ids.length}.`);
31
+ dropExpired(now);
32
+ held.delete(token);
33
+ while (held.size >= MAX_PENDING_SETS) {
34
+ // Map iterates in insertion order, so the first key is the oldest preview.
35
+ held.delete(held.keys().next().value);
36
+ }
37
+ held.set(token, { account: account.toLowerCase(), ids: [...ids], heldAt: now });
38
+ }
39
+ /** The set held under this token for this account, if it is still held. Does not remove it. */
40
+ export function heldSet(token, account, now = Date.now()) {
41
+ dropExpired(now);
42
+ const set = held.get(token);
43
+ return set && set.account === account.toLowerCase() ? [...set.ids] : undefined;
44
+ }
45
+ /** Remove a set; an applied preview is used once. */
46
+ export function releaseSet(token) {
47
+ held.delete(token);
48
+ }
49
+ /** How many sets are held. For tests and diagnostics. */
50
+ export function heldSetCount(now = Date.now()) {
51
+ dropExpired(now);
52
+ return held.size;
53
+ }
54
+ /** Drop every held set. For tests. */
55
+ export function clearHeldSets() {
56
+ held.clear();
57
+ }
58
+ //# sourceMappingURL=preview-sets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-sets.js","sourceRoot":"","sources":["../../src/server/preview-sets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,wFAAwF;AACxF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AAEnC,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAQnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAC;AAExC,yEAAyE;AACzE,MAAM,UAAU,SAAS,CAAC,GAAsB;IAC9C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,cAAc;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,OAAe,EAAE,GAAsB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC9F,IAAI,GAAG,CAAC,MAAM,GAAG,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,aAAa,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACxH,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACrC,2EAA2E;QAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,OAAe,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACtE,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC3C,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC"}
@@ -14,6 +14,7 @@
14
14
  * actions are `addLabelIds`, `removeLabelIds` and `forwardTo`.
15
15
  */
16
16
  import { type HandlerResponse } from '../../server/formatting/markdown.js';
17
+ import { type Effect } from './labels.js';
17
18
  export interface FilterCriteria {
18
19
  from?: string;
19
20
  to?: string;
@@ -52,15 +53,7 @@ export declare function buildFilterSpec(params: Record<string, unknown>): Filter
52
53
  export declare function criteriaToQuery(c: FilterCriteria): string;
53
54
  /** The tool params that describe this filter, for recreating or editing it. */
54
55
  export declare function specToParams(spec: FilterSpec): Record<string, string | number | boolean>;
55
- interface Effect {
56
- /** What happens, in a clause: "skips the inbox". */
57
- text: string;
58
- /** Why it is worth a second look, shown in full previews only. */
59
- detail?: string;
60
- /** A consequence worth a second look before approving: disposal, or mail leaving the account. */
61
- warn?: boolean;
62
- }
63
- export declare function describeActions(action: FilterAction, labelNames: Map<string, string>): Effect[];
56
+ export declare function describeActions(action: FilterAction, names: Map<string, string>): Effect[];
64
57
  /** `filters` — every filter on the account, one line each. */
65
58
  export declare function handleListFilters(_params: Record<string, unknown>, account: string): Promise<HandlerResponse>;
66
59
  /** `getFilter` — one filter, in words, with the parameters that recreate or edit it. */
@@ -19,9 +19,12 @@ import { formatShortDate, truncate } from '../../server/formatting/markdown.js';
19
19
  import { requireString } from '../../server/handlers/validate.js';
20
20
  import { PREVIEW_TTL_MS, canonicalJson, checkPreviewToken, describeTokenFailure, mintPreviewToken, } from '../../server/preview-gate.js';
21
21
  import { hydrateMessages } from './hydrate.js';
22
+ import { describeLabelChanges, effectLine, labelIdErrors, labelNames, parseLabelIds } from './labels.js';
22
23
  // Named for the operation a token authorizes, so a token offered to its sibling says which it is for.
23
24
  const CREATE_KIND = 'manage_email.createFilter';
24
25
  const UPDATE_KIND = 'manage_email.updateFilter';
26
+ /** Why a filter write is gated, for the refusal when no token is given. */
27
+ const GATED_BECAUSE = 'It changes what happens to mail that has not arrived yet';
25
28
  /** Gmail's per-user limit. */
26
29
  const FILTER_LIMIT = 1000;
27
30
  /** Gmail stores a filter's size criterion as an int32. */
@@ -57,11 +60,6 @@ function paramBool(value, name) {
57
60
  return true;
58
61
  throw new Error(`${name} must be true or false, not '${String(value)}'.`);
59
62
  }
60
- function labelList(value) {
61
- const items = Array.isArray(value) ? value.map(String) : String(value ?? '').split(',');
62
- const ids = [...new Set(items.map((s) => s.trim()).filter(Boolean))].sort();
63
- return ids.length ? ids : undefined;
64
- }
65
63
  /**
66
64
  * Reduce any filter, from our params or from Google, to one canonical spec, so two
67
65
  * filters that do the same thing compare equal and a token minted over one matches the
@@ -87,8 +85,8 @@ export function normalizeSpec(raw) {
87
85
  criteria.sizeComparison = comparison;
88
86
  }
89
87
  const action = {};
90
- const add = labelList(a.addLabelIds);
91
- const remove = labelList(a.removeLabelIds);
88
+ const add = parseLabelIds(a.addLabelIds);
89
+ const remove = parseLabelIds(a.removeLabelIds);
92
90
  const forward = str(a.forward)?.toLowerCase();
93
91
  if (add)
94
92
  action.addLabelIds = add;
@@ -179,44 +177,9 @@ export function specToParams(spec) {
179
177
  out.forwardTo = spec.action.forward;
180
178
  return out;
181
179
  }
182
- const SYSTEM_LABEL_EFFECTS = {
183
- INBOX: { add: { text: 'kept in the inbox' }, remove: { text: 'skips the inbox: archived on arrival' } },
184
- UNREAD: { add: { text: 'marked unread' }, remove: { text: 'marked read on arrival' } },
185
- STARRED: { add: { text: 'starred' }, remove: { text: 'never starred' } },
186
- IMPORTANT: { add: { text: 'marked important' }, remove: { text: 'never marked important' } },
187
- TRASH: {
188
- add: {
189
- text: 'moved to trash on arrival',
190
- detail: 'Gmail deletes trash permanently after 30 days, so matching mail nobody looks at is gone after that',
191
- warn: true,
192
- },
193
- },
194
- SPAM: {
195
- add: { text: 'sent to spam on arrival', warn: true },
196
- remove: { text: 'never sent to spam' },
197
- },
198
- };
199
- export function describeActions(action, labelNames) {
200
- const effects = [];
201
- const name = (id) => labelNames.get(id) ?? id;
202
- for (const id of action.addLabelIds ?? []) {
203
- const system = SYSTEM_LABEL_EFFECTS[id]?.add;
204
- if (system)
205
- effects.push(system);
206
- else if (id.startsWith('CATEGORY_'))
207
- effects.push({ text: `sorted into the ${id.slice(9).toLowerCase()} category` });
208
- else
209
- effects.push({ text: `labeled "${name(id)}"` });
210
- }
211
- for (const id of action.removeLabelIds ?? []) {
212
- const system = SYSTEM_LABEL_EFFECTS[id]?.remove;
213
- if (system)
214
- effects.push(system);
215
- else if (id.startsWith('CATEGORY_'))
216
- effects.push({ text: `kept out of the ${id.slice(9).toLowerCase()} category` });
217
- else
218
- effects.push({ text: `"${name(id)}" label removed` });
219
- }
180
+ // --- What a filter does, in words ---
181
+ export function describeActions(action, names) {
182
+ const effects = describeLabelChanges(action, names, 'arrival');
220
183
  if (action.forward) {
221
184
  effects.push({
222
185
  text: `forwarded in full to ${action.forward}`,
@@ -227,7 +190,7 @@ export function describeActions(action, labelNames) {
227
190
  return effects;
228
191
  }
229
192
  function effectLines(action, labelNames) {
230
- return describeActions(action, labelNames).map((e) => `- ${e.warn ? '⚠ ' : ''}${e.text}${e.detail ? `. ${e.detail}` : ''}`);
193
+ return describeActions(action, labelNames).map(effectLine);
231
194
  }
232
195
  function summarize(spec, labelNames) {
233
196
  return describeActions(spec.action, labelNames).map((e) => e.text).join('; ');
@@ -252,11 +215,6 @@ async function getStoredFilter(account, id) {
252
215
  throw err;
253
216
  }
254
217
  }
255
- async function labelNames(account) {
256
- const raw = await call('gmail', 'users.labels.list', { userId: 'me' }, { account });
257
- const labels = (raw?.labels ?? []);
258
- return new Map(labels.filter((l) => l.id).map((l) => [String(l.id), String(l.name ?? l.id)]));
259
- }
260
218
  async function forwardingAddresses(account) {
261
219
  const raw = await call('gmail', 'users.settings.forwardingAddresses.list', { userId: 'me' }, { account });
262
220
  return (raw?.forwardingAddresses ?? []);
@@ -337,15 +295,7 @@ export async function handlePreviewFilter(params, account) {
337
295
  errors.push(`No filter ${replacingId} exists on this account. List them with \`filters\`.`);
338
296
  if (replacing && same(asSpec(replacing), spec))
339
297
  errors.push(`Filter ${replacingId} already has exactly these criteria and actions; there is nothing to change.`);
340
- const byName = new Map([...names].map(([id, n]) => [n.toLowerCase(), id]));
341
- for (const id of [...(spec.action.addLabelIds ?? []), ...(spec.action.removeLabelIds ?? [])]) {
342
- if (names.has(id))
343
- continue;
344
- const hint = byName.get(id.toLowerCase());
345
- errors.push(hint
346
- ? `'${id}' is a label name; filters take its id, ${hint}.`
347
- : `No label with id '${id}' on this account. Create it with \`createLabel\`, or see ids with \`labels\`.`);
348
- }
298
+ errors.push(...labelIdErrors(spec.action, names));
349
299
  if (spec.action.forward) {
350
300
  const address = forwarding.find((a) => a.forwardingEmail.toLowerCase() === spec.action.forward);
351
301
  if (!address) {
@@ -403,8 +353,11 @@ export async function handlePreviewFilter(params, account) {
403
353
  }
404
354
  }
405
355
  if (matches.count > 0) {
406
- lines.push('', `A filter acts only on mail that arrives after it exists; the messages counted above stay as they are (spam and trash were not counted). ` +
407
- `To give them the same treatment, collect their ids with \`search\` (query \`${query}\`, idsOnly: true) and pass them to bulk_operations batch \`modify\`.`);
356
+ const relabel = spec.action.addLabelIds || spec.action.removeLabelIds;
357
+ lines.push('', 'A filter acts only on mail that arrives after it exists; the messages counted above stay as they are (spam and trash were not counted).' +
358
+ (relabel
359
+ ? ` To give them the same label changes, call \`previewModifyMatching\` with query \`${query}\` and the same addLabelIds and removeLabelIds, then \`modifyMatching\` with its token.`
360
+ : ''));
408
361
  }
409
362
  if (notes.length)
410
363
  lines.push('', ...notes);
@@ -432,7 +385,7 @@ export async function handleCreateFilter(params, account) {
432
385
  const spec = buildFilterSpec(params);
433
386
  const check = checkPreviewToken(params.previewToken, CREATE_KIND, account, { spec });
434
387
  if (!check.ok)
435
- return refused(`**Not created.** ${describeTokenFailure(check, 'createFilter', 'previewFilter')}`);
388
+ return refused(`**Not created.** ${describeTokenFailure(check, 'createFilter', 'previewFilter', GATED_BECAUSE)}`);
436
389
  const [filters, names] = await Promise.all([listFilters(account), labelNames(account)]);
437
390
  const duplicate = filters.find((f) => same(asSpec(f), spec));
438
391
  if (duplicate)
@@ -460,7 +413,7 @@ export async function handleUpdateFilter(params, account) {
460
413
  }
461
414
  const check = checkPreviewToken(params.previewToken, UPDATE_KIND, account, { filterId, before: asSpec(current), spec });
462
415
  if (!check.ok)
463
- return refused(`**Not changed.** ${describeTokenFailure(check, 'updateFilter', 'previewFilter (with filterId)')}`, { filterId });
416
+ return refused(`**Not changed.** ${describeTokenFailure(check, 'updateFilter', 'previewFilter (with filterId)', GATED_BECAUSE)}`, { filterId });
464
417
  const duplicate = filters.find((f) => f.id !== filterId && same(asSpec(f), spec));
465
418
  if (duplicate)
466
419
  return refused(`**Not changed.** Filter ${duplicate.id} already does exactly this.`, { filterId });
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/services/gmail/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/services/gmail/filters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Label changes, in words. Shared by the two previews that describe a label change before
3
+ * it happens: a filter's (on each message as it arrives) and a query-scoped bulk change's
4
+ * (on every message the preview counted). ADR-309, ADR-310.
5
+ */
6
+ export interface Effect {
7
+ /** What happens, in a clause: "skips the inbox". */
8
+ text: string;
9
+ /** Why it is worth a second look, shown in full previews only. */
10
+ detail?: string;
11
+ /** A consequence worth a second look before approving: disposal, or mail leaving the account. */
12
+ warn?: boolean;
13
+ }
14
+ export interface LabelChange {
15
+ addLabelIds?: string[];
16
+ removeLabelIds?: string[];
17
+ }
18
+ /** When the change lands: as each future match arrives, or now on the set already there. */
19
+ export type Timing = 'arrival' | 'now';
20
+ /** Comma-separated (or array) label ids, trimmed, deduplicated and sorted; undefined when none. */
21
+ export declare function parseLabelIds(value: unknown): string[] | undefined;
22
+ /** Label id → name, for every label on the account, system labels included. */
23
+ export declare function labelNames(account: string): Promise<Map<string, string>>;
24
+ /**
25
+ * One error per label id the account does not have. A label NAME passed where an id
26
+ * belongs is the common mistake, so it is answered with the id.
27
+ */
28
+ export declare function labelIdErrors(change: LabelChange, names: Map<string, string>): string[];
29
+ export declare function describeLabelChanges(change: LabelChange, names: Map<string, string>, timing: Timing): Effect[];
30
+ /** A bullet for a preview: the warning mark, the effect, and its detail. */
31
+ export declare function effectLine(e: Effect): string;
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Label changes, in words. Shared by the two previews that describe a label change before
3
+ * it happens: a filter's (on each message as it arrives) and a query-scoped bulk change's
4
+ * (on every message the preview counted). ADR-309, ADR-310.
5
+ */
6
+ import { call } from '../../google/client.js';
7
+ const TRASH_DETAIL = 'Gmail deletes trash permanently after 30 days';
8
+ const SPAM_DETAIL = 'Gmail deletes spam permanently after 30 days';
9
+ /** System labels a label change cannot add or remove; Gmail refuses them. */
10
+ const UNCHANGEABLE = new Set(['SENT', 'DRAFT', 'CHAT']);
11
+ const SYSTEM_LABEL_EFFECTS = {
12
+ INBOX: {
13
+ add: { arrival: { text: 'kept in the inbox' }, now: { text: 'put in the inbox' } },
14
+ remove: { arrival: { text: 'skips the inbox: archived on arrival' }, now: { text: 'archived: removed from the inbox' } },
15
+ },
16
+ UNREAD: {
17
+ add: { arrival: { text: 'marked unread' }, now: { text: 'marked unread' } },
18
+ remove: { arrival: { text: 'marked read on arrival' }, now: { text: 'marked read' } },
19
+ },
20
+ STARRED: {
21
+ add: { arrival: { text: 'starred' }, now: { text: 'starred' } },
22
+ remove: { arrival: { text: 'never starred' }, now: { text: 'unstarred' } },
23
+ },
24
+ IMPORTANT: {
25
+ add: { arrival: { text: 'marked important' }, now: { text: 'marked important' } },
26
+ remove: { arrival: { text: 'never marked important' }, now: { text: 'marked not important' } },
27
+ },
28
+ TRASH: {
29
+ add: {
30
+ arrival: { text: 'moved to trash on arrival', detail: `${TRASH_DETAIL}, so matching mail nobody looks at is gone after that`, warn: true },
31
+ now: {
32
+ text: 'moved to trash',
33
+ detail: `This is a bulk trash. ${TRASH_DETAIL}; until then, preview the same query with \`in:trash\` added and removeLabelIds TRASH to restore them`,
34
+ warn: true,
35
+ },
36
+ },
37
+ remove: { arrival: { text: 'kept out of trash' }, now: { text: 'restored from trash' } },
38
+ },
39
+ SPAM: {
40
+ add: {
41
+ arrival: { text: 'sent to spam on arrival', detail: SPAM_DETAIL, warn: true },
42
+ now: { text: 'moved to spam', detail: SPAM_DETAIL, warn: true },
43
+ },
44
+ remove: { arrival: { text: 'never sent to spam' }, now: { text: 'taken out of spam' } },
45
+ },
46
+ };
47
+ /** Comma-separated (or array) label ids, trimmed, deduplicated and sorted; undefined when none. */
48
+ export function parseLabelIds(value) {
49
+ const items = Array.isArray(value) ? value.map(String) : String(value ?? '').split(',');
50
+ const ids = [...new Set(items.map((s) => s.trim()).filter(Boolean))].sort();
51
+ return ids.length ? ids : undefined;
52
+ }
53
+ /** Label id → name, for every label on the account, system labels included. */
54
+ export async function labelNames(account) {
55
+ const raw = await call('gmail', 'users.labels.list', { userId: 'me' }, { account });
56
+ const labels = (raw?.labels ?? []);
57
+ return new Map(labels.filter((l) => l.id).map((l) => [String(l.id), String(l.name ?? l.id)]));
58
+ }
59
+ /**
60
+ * One error per label id the account does not have. A label NAME passed where an id
61
+ * belongs is the common mistake, so it is answered with the id.
62
+ */
63
+ export function labelIdErrors(change, names) {
64
+ const byName = new Map([...names].map(([id, n]) => [n.toLowerCase(), id]));
65
+ const errors = [];
66
+ for (const id of [...(change.addLabelIds ?? []), ...(change.removeLabelIds ?? [])]) {
67
+ if (UNCHANGEABLE.has(id)) {
68
+ errors.push(`${id} is set by Gmail itself; a label change cannot add or remove it.`);
69
+ continue;
70
+ }
71
+ if (names.has(id))
72
+ continue;
73
+ const hint = byName.get(id.toLowerCase());
74
+ errors.push(hint
75
+ ? `'${id}' is a label name; this takes its id, ${hint}.`
76
+ : `No label with id '${id}' on this account. Create it with \`createLabel\`, or see ids with \`labels\`.`);
77
+ }
78
+ return errors;
79
+ }
80
+ export function describeLabelChanges(change, names, timing) {
81
+ const effects = [];
82
+ const name = (id) => names.get(id) ?? id;
83
+ const category = (id) => id.slice('CATEGORY_'.length).toLowerCase();
84
+ for (const id of change.addLabelIds ?? []) {
85
+ const system = SYSTEM_LABEL_EFFECTS[id]?.add?.[timing];
86
+ if (system)
87
+ effects.push(system);
88
+ else if (id.startsWith('CATEGORY_'))
89
+ effects.push({ text: `sorted into the ${category(id)} category` });
90
+ else
91
+ effects.push({ text: `labeled "${name(id)}"` });
92
+ }
93
+ for (const id of change.removeLabelIds ?? []) {
94
+ const system = SYSTEM_LABEL_EFFECTS[id]?.remove?.[timing];
95
+ if (system)
96
+ effects.push(system);
97
+ else if (id.startsWith('CATEGORY_'))
98
+ effects.push({ text: `${timing === 'arrival' ? 'kept out of' : 'taken out of'} the ${category(id)} category` });
99
+ else
100
+ effects.push({ text: `"${name(id)}" label removed` });
101
+ }
102
+ return effects;
103
+ }
104
+ /** A bullet for a preview: the warning mark, the effect, and its detail. */
105
+ export function effectLine(e) {
106
+ return `- ${e.warn ? '⚠ ' : ''}${e.text}${e.detail ? `. ${e.detail}` : ''}`;
107
+ }
108
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/services/gmail/labels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Label changes over everything a query matches, with no ids in the conversation (ADR-310, #206).
3
+ *
4
+ * `previewModifyMatching` resolves the query to the full set of message ids, holds it
5
+ * server-side under the preview token, and returns the exact count, a sample, and what the
6
+ * change does to each message. `modifyMatching` applies the change to exactly that set, in
7
+ * `batchModify` chunks, and reports how many it changed. The set is used once.
8
+ *
9
+ * Mail that starts matching after the preview is untouched: routing future mail is a
10
+ * filter's job (filters.ts).
11
+ */
12
+ import { type HandlerResponse } from '../../server/formatting/markdown.js';
13
+ /** `previewModifyMatching` — count, sample and describe the change, and hold the set. */
14
+ export declare function handlePreviewModifyMatching(params: Record<string, unknown>, account: string): Promise<HandlerResponse>;
15
+ /** `modifyMatching` — apply the previewed change to exactly the previewed set. */
16
+ export declare function handleModifyMatching(params: Record<string, unknown>, account: string): Promise<HandlerResponse>;
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Label changes over everything a query matches, with no ids in the conversation (ADR-310, #206).
3
+ *
4
+ * `previewModifyMatching` resolves the query to the full set of message ids, holds it
5
+ * server-side under the preview token, and returns the exact count, a sample, and what the
6
+ * change does to each message. `modifyMatching` applies the change to exactly that set, in
7
+ * `batchModify` chunks, and reports how many it changed. The set is used once.
8
+ *
9
+ * Mail that starts matching after the preview is untouched: routing future mail is a
10
+ * filter's job (filters.ts).
11
+ */
12
+ import { call } from '../../google/client.js';
13
+ import { formatShortDate, truncate } from '../../server/formatting/markdown.js';
14
+ import { requireString } from '../../server/handlers/validate.js';
15
+ import { PREVIEW_TTL_MS, checkPreviewToken, describeTokenFailure, mintPreviewToken, } from '../../server/preview-gate.js';
16
+ import { MAX_SET_SIZE, heldSet, holdSet, releaseSet, setDigest } from '../../server/preview-sets.js';
17
+ import { hydrateMessages } from './hydrate.js';
18
+ import { describeLabelChanges, effectLine, labelIdErrors, labelNames, parseLabelIds } from './labels.js';
19
+ const KIND = 'manage_email.modifyMatching';
20
+ /** Why the write is gated, for the refusal when no token is given. */
21
+ const GATED_BECAUSE = 'It changes every message a query matched, a set the caller never sees row by row';
22
+ /** `users.messages.batchModify` takes at most this many ids per call. */
23
+ const BATCH_LIMIT = 1000;
24
+ const PAGE_SIZE = 500;
25
+ const SAMPLE_SIZE = 5;
26
+ /** The query and the change a call describes. Throws a sentence naming what is wrong. */
27
+ function buildRequest(params) {
28
+ const query = requireString(params, 'query').trim();
29
+ const change = {};
30
+ const add = parseLabelIds(params.addLabelIds);
31
+ const remove = parseLabelIds(params.removeLabelIds);
32
+ if (add)
33
+ change.addLabelIds = add;
34
+ if (remove)
35
+ change.removeLabelIds = remove;
36
+ if (!add && !remove) {
37
+ throw new Error('Give at least one change: addLabelIds, or removeLabelIds (e.g. INBOX to archive, UNREAD to mark read).');
38
+ }
39
+ const both = (add ?? []).filter((id) => remove?.includes(id));
40
+ if (both.length)
41
+ throw new Error(`A label cannot be both added and removed: ${both.join(', ')}.`);
42
+ return { query, change };
43
+ }
44
+ /** Every id the query matches, or the first MAX_SET_SIZE + 1 when there are more. */
45
+ async function resolveQuery(account, q) {
46
+ const ids = [];
47
+ let pageToken;
48
+ do {
49
+ const page = await call('gmail', 'users.messages.list', {
50
+ userId: 'me', q, maxResults: PAGE_SIZE, ...(pageToken ? { pageToken } : {}),
51
+ }, { account });
52
+ ids.push(...(page?.messages ?? []).map((m) => m.id));
53
+ pageToken = typeof page?.nextPageToken === 'string' && page.nextPageToken ? page.nextPageToken : undefined;
54
+ } while (pageToken && ids.length <= MAX_SET_SIZE);
55
+ return ids.length > MAX_SET_SIZE ? { ids: [], over: true } : { ids, over: false };
56
+ }
57
+ const plural = (n) => `${n.toLocaleString('en-US')} message${n === 1 ? '' : 's'}`;
58
+ function refused(text, refs = {}) {
59
+ return { text, refs: { ...refs, blocked: true } };
60
+ }
61
+ /** `previewModifyMatching` — count, sample and describe the change, and hold the set. */
62
+ export async function handlePreviewModifyMatching(params, account) {
63
+ const { query, change } = buildRequest(params);
64
+ const [names, resolved] = await Promise.all([labelNames(account), resolveQuery(account, query)]);
65
+ const { ids } = resolved;
66
+ const errors = labelIdErrors(change, names);
67
+ if (resolved.over) {
68
+ errors.push(`More than ${MAX_SET_SIZE.toLocaleString('en-US')} messages match, more than one preview holds. ` +
69
+ 'Narrow the query, for example with after: and before: dates, and preview each part.');
70
+ }
71
+ const sample = ids.length ? await hydrateMessages(ids.slice(0, SAMPLE_SIZE).map((id) => ({ id })), account) : [];
72
+ const lines = [`## Preview: change every message matching \`${query}\``, ''];
73
+ lines.push(resolved.over
74
+ ? `**Matches:** more than ${plural(MAX_SET_SIZE)}.`
75
+ : `**Matches:** ${ids.length === 0 ? 'none' : plural(ids.length)}.`);
76
+ lines.push('**Each is:**', ...describeLabelChanges(change, names, 'now').map(effectLine));
77
+ if (sample.length) {
78
+ lines.push('', 'Most recent matches:');
79
+ for (const m of sample) {
80
+ lines.push(m.error
81
+ ? `${String(m.id)} | ⚠ ${String(m.error)}`
82
+ : `${String(m.id)} | ${truncate(String(m.from ?? ''), 30)} | ${truncate(String(m.subject ?? '(no subject)'), 50)} | ${formatShortDate(m.date)}`);
83
+ }
84
+ }
85
+ // Gmail leaves spam and trash out of a search unless the query names them.
86
+ const namesSpamOrTrash = /\bin:(trash|spam|anywhere)\b/i.test(query);
87
+ lines.push('', (namesSpamOrTrash ? '' : 'Spam and trash are not included. ') +
88
+ 'Mail that starts matching after this preview is not changed; to route it as it arrives, preview a filter with `previewFilter`.');
89
+ const refs = { query, matchCount: resolved.over ? undefined : ids.length };
90
+ if (!errors.length && ids.length === 0) {
91
+ lines.push('', 'Nothing matches, so there is nothing to change and no previewToken.');
92
+ return { text: lines.join('\n'), refs };
93
+ }
94
+ if (errors.length) {
95
+ lines.push('', '### Cannot apply this change', ...errors.map((e) => `- ${e}`), '', 'No previewToken issued. Fix the parameters and preview again.');
96
+ return { text: lines.join('\n'), refs: { ...refs, errors } };
97
+ }
98
+ const token = mintPreviewToken(KIND, account, { query, change, digest: setDigest(ids) });
99
+ holdSet(token, account, ids);
100
+ lines.push('', 'To apply it, call `modifyMatching` with the same parameters and previewToken:', `\`${token}\``, `Good for ${PREVIEW_TTL_MS / 60_000} minutes and once. It changes exactly the ${plural(ids.length)} counted here.`);
101
+ return { text: lines.join('\n'), refs: { ...refs, previewToken: token } };
102
+ }
103
+ /** `modifyMatching` — apply the previewed change to exactly the previewed set. */
104
+ export async function handleModifyMatching(params, account) {
105
+ const { query, change } = buildRequest(params);
106
+ const token = params.previewToken;
107
+ const ids = typeof token === 'string' ? heldSet(token.trim(), account) : undefined;
108
+ if (!ids) {
109
+ // No set to check against. A token that is absent, not ours, or for another operation
110
+ // says so; anything else was a real preview whose set is gone.
111
+ const check = checkPreviewToken(token, KIND, account, { query, change, digest: '' });
112
+ if (!check.ok && (check.failure === 'missing' || check.failure === 'malformed' || check.failure === 'wrong-kind')) {
113
+ return refused(`**Nothing changed.** ${describeTokenFailure(check, 'modifyMatching', 'previewModifyMatching', GATED_BECAUSE)}`);
114
+ }
115
+ return refused('**Nothing changed.** This preview is no longer held: it was applied already, expired after ' +
116
+ `${PREVIEW_TTL_MS / 60_000} minutes, was displaced by newer previews, or the server restarted. ` +
117
+ 'Call `previewModifyMatching` with these parameters and pass the previewToken it returns.');
118
+ }
119
+ const check = checkPreviewToken(token, KIND, account, { query, change, digest: setDigest(ids) });
120
+ if (!check.ok) {
121
+ return refused(`**Nothing changed.** ${describeTokenFailure(check, 'modifyMatching', 'previewModifyMatching', GATED_BECAUSE)}`);
122
+ }
123
+ // Fetched before the set is released, so a failure here leaves the preview usable and
124
+ // nothing changed, rather than a completed write reported as a failure.
125
+ const names = await labelNames(account);
126
+ // Used once, whatever happens next: a retry resolves the query again.
127
+ releaseSet(token.trim());
128
+ let changed = 0;
129
+ for (let i = 0; i < ids.length; i += BATCH_LIMIT) {
130
+ const chunk = ids.slice(i, i + BATCH_LIMIT);
131
+ try {
132
+ await call('gmail', 'users.messages.batchModify', { userId: 'me', ids: chunk, ...change }, { account });
133
+ }
134
+ catch (err) {
135
+ // Thrown, so a queue with onError 'bail' stops here.
136
+ const why = err instanceof Error ? err.message : String(err);
137
+ throw new Error(`modifyMatching stopped part way: changed ${changed} of ${ids.length} messages, then the batch starting at ` +
138
+ `message ${i + 1} failed (${why}). The preview is used up. Preview again to finish; the query now resolves ` +
139
+ 'against the mailbox as it is, without any message deleted since.');
140
+ }
141
+ changed += chunk.length;
142
+ }
143
+ return {
144
+ text: [`Changed ${plural(changed)} matching \`${query}\`. Each was:`,
145
+ ...describeLabelChanges(change, names, 'now').map((e) => `- ${e.text}`)].join('\n'),
146
+ refs: { query, changed },
147
+ };
148
+ }
149
+ //# sourceMappingURL=modify-matching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modify-matching.js","sourceRoot":"","sources":["../../../src/services/gmail/modify-matching.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import { ensureWorkspaceDir, resolveWorkspacePath, verifyPathSafety } from '../.
15
15
  import { handleGetAttachment, handleViewAttachment } from './attachments.js';
16
16
  import { hydrateMessages, hydrateDrafts } from './hydrate.js';
17
17
  import { handleListFilters, handleGetFilter, handlePreviewFilter, handleCreateFilter, handleUpdateFilter, handleDeleteFilter, } from './filters.js';
18
+ import { handlePreviewModifyMatching, handleModifyMatching } from './modify-matching.js';
18
19
  import { sendMail, replyMail, forwardMail } from './mail.js';
19
20
  /** "Tue, 19 Aug 2026 ..." -> "2026-08-19"; '' when the header is not parseable. */
20
21
  const MONTH_TO_MM = {
@@ -448,6 +449,9 @@ export const gmailPatch = {
448
449
  createFilter: handleCreateFilter,
449
450
  updateFilter: handleUpdateFilter,
450
451
  deleteFilter: handleDeleteFilter,
452
+ // Label changes over a whole query, ids held server-side (ADR-310).
453
+ previewModifyMatching: handlePreviewModifyMatching,
454
+ modifyMatching: handleModifyMatching,
451
455
  /**
452
456
  * Delete a draft — permanently discard an unsent message.
453
457
  *
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/services/gmail/patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/services/gmail/patch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const VERSION = "4.7.0";
1
+ export declare const VERSION = "4.8.0";
package/build/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by `npm run version-stamp`. Do not edit manually.
2
- export const VERSION = '4.7.0';
2
+ export const VERSION = '4.8.0';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aaronsb/google-workspace-mcp",
3
- "version": "4.7.0",
3
+ "version": "4.8.0",
4
4
  "license": "Apache-2.0",
5
5
  "mcpName": "io.github.aaronsb/google-workspace",
6
6
  "description": "MCP server for Google Workspace with progressive context disclosure and multi-account orchestration",