@aaronsb/google-workspace-mcp 4.0.0 → 4.2.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.
@@ -7,7 +7,8 @@
7
7
  * `get` is here for a different reason: see extractText below.
8
8
  */
9
9
  import { call } from '../../google/client.js';
10
- import { requireString } from '../../server/handlers/validate.js';
10
+ import { optionalString, requireString } from '../../server/handlers/validate.js';
11
+ import { estimateTokens } from '../../server/formatting/markdown.js';
11
12
  /**
12
13
  * Pull the readable text out of a Docs document.
13
14
  *
@@ -43,34 +44,315 @@ function extractText(node) {
43
44
  }
44
45
  return out;
45
46
  }
47
+ /** Collapse runs of blank lines; a Doc is full of them and they carry no meaning here. */
48
+ function tidy(text) {
49
+ return text.replace(/\n{3,}/g, '\n\n').trim();
50
+ }
51
+ /** Lines in a tab's text — counted one way, so every number here means the same thing. */
52
+ function countLines(text) {
53
+ return text ? text.split('\n').length : 0;
54
+ }
55
+ /**
56
+ * Flatten a document's tabs, depth-first, into the order a reader sees them.
57
+ *
58
+ * Tabs are a TREE, not a list: each carries its own body at `documentTab.body` and may
59
+ * nest further tabs under `childTabs`. A walk that reads only the top level silently
60
+ * drops every nested tab, which is the same failure this function exists to fix, one
61
+ * level down.
62
+ *
63
+ * Google populates none of this unless documents.get is asked for it — see `get`.
64
+ *
65
+ * Array order is Google's order, which is reading order; `tabProperties.index` carries
66
+ * the same thing and is not consulted.
67
+ */
68
+ function flattenTabs(tabs, depth = 0) {
69
+ if (!Array.isArray(tabs))
70
+ return [];
71
+ const out = [];
72
+ for (const tab of tabs) {
73
+ if (!tab || typeof tab !== 'object')
74
+ continue;
75
+ const t = tab;
76
+ const props = t.tabProperties;
77
+ const documentTab = t.documentTab;
78
+ out.push({
79
+ id: typeof props?.tabId === 'string' && props.tabId ? props.tabId : null,
80
+ title: typeof props?.title === 'string' && props.title ? props.title : '(untitled tab)',
81
+ // No documentTab at all is a failed read, not an empty tab. Keep them distinct.
82
+ text: documentTab ? tidy(extractText(documentTab.body)) : null,
83
+ depth,
84
+ });
85
+ // Nested tabs belong directly after their parent, not in a separate pass.
86
+ out.push(...flattenTabs(t.childTabs, depth + 1));
87
+ }
88
+ return out;
89
+ }
90
+ /**
91
+ * Render one tab as a titled section, headed by the id that addresses it.
92
+ *
93
+ * The id goes in the TEXT, not just in `refs`. Only `result.text` is returned to the
94
+ * model — `refs` is internal, read by queue_operations for chaining — so a tab id that
95
+ * lives only in refs cannot be used by the agent reading this. Telling a reader to "pass
96
+ * the tabId" while keeping every tabId out of the response is #158's original complaint
97
+ * with a new hiding place.
98
+ *
99
+ * The heading level tracks nesting depth so a subtab reads as subordinate to its parent.
100
+ * Depth is clamped at `######` because markdown has no seventh level: tabs nested more
101
+ * than three deep flatten to the same visual level. That is deliberate and currently
102
+ * unreachable — the Docs UI allows a single level of subtabs — so the clamp is a
103
+ * guard against a shape Google's API permits and its editor does not produce.
104
+ */
105
+ function renderTab({ id, title, text, depth }) {
106
+ const heading = '#'.repeat(Math.min(3 + depth, 6));
107
+ const handle = id ? ` — \`${id}\`` : ' — _(no tab id; not individually addressable)_';
108
+ const body = text === null
109
+ ? '_(no content returned for this tab — it was not read, which is not the same as empty)_'
110
+ : text || '_(this tab is empty)_';
111
+ return `${heading} ${title}${handle}\n\n${body}\n`;
112
+ }
113
+ /**
114
+ * Size at which a whole-document read turns into an index of its tabs.
115
+ *
116
+ * Matches `MAX_BODY_TOKENS` in server/formatting/markdown.ts, and carries the same rule:
117
+ * a cap that does not say it capped recreates #152 with a different cause.
118
+ *
119
+ * The number is set by the MCP CLIENT's tool-result ceiling, not by taste. Measured live
120
+ * against a real 2-tab meeting archive: 79,944 characters — 19,986 tokens by the estimate
121
+ * below — sailed under a 25,000 threshold, and the client rejected the response anyway,
122
+ * handing the agent a file path instead of the tab index this cap exists to produce. A cap
123
+ * above the client's ceiling never fires where it matters.
124
+ *
125
+ * That measurement also says `estimateTokens` runs OPTIMISTIC on dense prose: 4 chars per
126
+ * token, where the real tokenizer wanted closer to 3.2. So the threshold sits well under
127
+ * the ceiling rather than at it, and that document now becomes an index as intended.
128
+ */
129
+ const MAX_DOC_TOKENS = 12_000;
130
+ /**
131
+ * Render the tab index a caller gets instead of an over-sized document.
132
+ *
133
+ * This is a cap with an escape hatch rather than a truncation: every tab is listed with
134
+ * the id that fetches it, so no text becomes unreachable — it becomes reachable one tab
135
+ * at a time. Truncating the concatenation instead would drop the tail of the document
136
+ * with no way to ask for it, which is what #152 was.
137
+ *
138
+ * A tab Google gave no id can only be read as part of the whole document, so say that in
139
+ * its row rather than printing an id that does not exist.
140
+ */
141
+ function renderTabIndex(tabs, tokens) {
142
+ const rows = tabs.map((t) => {
143
+ const indent = ' '.repeat(t.depth);
144
+ const size = t.text === null
145
+ ? 'not read'
146
+ : `${t.text.length} chars, ${countLines(t.text)} line(s)`;
147
+ const handle = t.id ? `\`${t.id}\`` : '_(no tab id — not individually addressable)_';
148
+ return `${indent}- ${handle} — ${t.title} (${size})`;
149
+ });
150
+ return `> **This document is ~${tokens.toLocaleString()} tokens across ${tabs.length} tab(s).** ` +
151
+ `Showing the tab index instead of the text. Re-read with \`tabId\` set to one of the ids below.\n\n` +
152
+ rows.join('\n') + '\n';
153
+ }
46
154
  export const docsPatch = {
47
155
  customHandlers: {
48
156
  /**
49
- * Read a document: its metadata AND — the point of the operation — its text.
157
+ * Read a document: its metadata AND — the point of the operation — ALL of its text.
158
+ *
159
+ * `includeTabsContent` is not an enhancement, it is the difference between reading
160
+ * the document and reading part of it. Google's `body` field is legacy: without the
161
+ * flag it holds THE FIRST TAB ONLY, and the response carries no hint that other tabs
162
+ * exist. A doc holding one meeting transcript per tab returned 142 of its 780 lines
163
+ * and presented them as the whole file (issue #152).
164
+ *
165
+ * That is this codebase's recurring defect shape — a read that under-reports with no
166
+ * error, indistinguishable from a document that really is short. The same instinct
167
+ * as the rate-limit retry in google/client.ts: never let "I could not see all of it"
168
+ * render as "this is all there is".
169
+ *
170
+ * With the flag, content moves to `tabs[].documentTab.body` and `body` is GONE — not
171
+ * empty, absent from the response, along with `headers`, `lists`, `inlineObjects` and
172
+ * `namedStyles`. Measured live against three real documents: without the flag,
173
+ * `body` held 10,388 characters and `tabs` was absent; with it, `body` was absent and
174
+ * the three tabs held 10,388 + 3,832 + 698. So reading `tabs` first is load-bearing,
175
+ * not a preference — read `body` first and a tabbed document comes back EMPTY. The
176
+ * `body` fallback covers only the flagless shape, which nothing here now requests.
177
+ *
178
+ * Google's reference says `body` is "left as empty" rather than dropped; measurement
179
+ * says dropped. The code assumes neither: it treats an empty `tabs[0]` and an absent
180
+ * `body` the same way round, so both shapes read correctly.
181
+ *
182
+ * Single-tab documents report one tab titled "Tab 1" — a default, not something a
183
+ * user typed, so one tab renders with no tab scaffolding at all.
184
+ *
185
+ * `tabId` narrows the read to one tab (#158). It is the same handle the write
186
+ * operations take, so "read this tab, then write to it" is one coordinate system
187
+ * rather than two that happen to agree on single-tab documents.
50
188
  */
51
189
  get: async (params, account) => {
52
190
  const documentId = requireString(params, 'documentId');
53
- const doc = await call('docs', 'documents.get', { documentId }, { account });
191
+ const wantTabId = optionalString(params, 'tabId');
192
+ const doc = await call('docs', 'documents.get', { documentId, includeTabsContent: true }, { account });
54
193
  const title = typeof doc.title === 'string' ? doc.title : '(untitled)';
55
- const text = extractText(doc.body).replace(/\n{3,}/g, '\n\n').trim();
56
- const lines = text ? text.split('\n').length : 0;
194
+ const allTabs = flattenTabs(doc.tabs);
195
+ // A tabId that matches nothing must fail loudly. Falling back to the whole document
196
+ // would hand back text the caller did not ask for and let them believe it was the
197
+ // one tab they named — a wrong-scope read that reports success, which is the shape
198
+ // of defect this file exists to stop.
199
+ if (wantTabId && !allTabs.some((t) => t.id === wantTabId)) {
200
+ const known = allTabs.map((t) => t.id).filter(Boolean);
201
+ throw new Error(`No tab with id "${wantTabId}" in document ${documentId}. ` +
202
+ (known.length
203
+ ? `Available tab ids: ${known.join(', ')}.`
204
+ : 'This document reported no addressable tab ids; read it without `tabId`.'));
205
+ }
206
+ const tabs = wantTabId ? allTabs.filter((t) => t.id === wantTabId) : allTabs;
207
+ // Scaffolding marks a read that spans tabs. A single-tab read is scoped by
208
+ // construction, so it renders bare even when the document has forty tabs.
209
+ const multiTab = tabs.length > 1;
210
+ // One tab is the ordinary case and reads best with no tab scaffolding at all, so it
211
+ // renders exactly as a single-body document does. `||` not `??`: a single tab that
212
+ // reported NO content must still fall back to `body`, and '' is not nullish — with
213
+ // `??` a populated `body` was discarded and the document reported as empty.
214
+ //
215
+ // A tabId-scoped read takes NO body fallback. `body` is the legacy first tab, so
216
+ // serving it for an empty tab three tabs along would answer a question about one tab
217
+ // with the text of another — and the caller, having named a tab, has no reason to
218
+ // suspect it.
219
+ const singleText = tabs.length === 1 && !wantTabId
220
+ ? (tabs[0].text || tidy(extractText(doc.body)))
221
+ : tabs.length === 1
222
+ ? (tabs[0].text ?? '')
223
+ : tidy(extractText(doc.body));
224
+ // A scoped read of a tab Google did not return must say THAT, not "empty". Falling
225
+ // through to the empty-document string below would print "the document is empty"
226
+ // for a tab we simply could not read — the substitution this file exists to stop,
227
+ // reached by the one path that bypasses renderTab.
228
+ const unreadScope = tabs.length === 1 && tabs[0].text === null;
229
+ const fullBody = multiTab
230
+ ? tabs.map(renderTab).join('\n').trimEnd()
231
+ : unreadScope
232
+ ? '_(no content returned for this tab — it was not read, which is not the same as empty)_'
233
+ : singleText;
234
+ // Over the cap, a multi-tab read becomes an index of tabs to read individually.
235
+ // A single tab has nothing narrower to offer, so it comes back whole however large
236
+ // it is: capping there would remove text with no way to ask for it again.
237
+ //
238
+ // A tab Google gave no id is reachable ONLY through the whole-document read, so
239
+ // capping a document that contains one would put its text beyond every call —
240
+ // truncation wearing an index's clothes. Leave those documents whole.
241
+ const tokens = estimateTokens(fullBody);
242
+ const capped = multiTab
243
+ && tokens > MAX_DOC_TOKENS
244
+ && tabs.every((t) => t.id !== null);
245
+ const body = capped ? renderTabIndex(tabs, tokens) : fullBody;
246
+ // Both numbers describe DOCUMENT TEXT, never the scaffolding rendered around it.
247
+ // They used to disagree: characters summed the tabs while lines counted the
248
+ // rendered output, headings and placeholders included, so a document of four
249
+ // one-line tabs reported "71 characters, 15 line(s)" and a wholly unread one
250
+ // managed "0 characters, 11 line(s)".
251
+ const characters = multiTab
252
+ ? tabs.reduce((sum, t) => sum + (t.text?.length ?? 0), 0)
253
+ : singleText.length;
254
+ const lines = multiTab
255
+ ? tabs.reduce((sum, t) => sum + countLines(t.text), 0)
256
+ : countLines(singleText);
257
+ const nested = tabs.filter((t) => t.depth > 0).length;
258
+ const unread = tabs.filter((t) => t.text === null).length;
259
+ // Anything that makes this response narrower than the document says so HERE, in the
260
+ // response, rather than leaving the reader to infer it from a number.
261
+ const caveats = [];
262
+ if (tabs.length === 0) {
263
+ // Asked for tab content and got none. Measured live, every document returns at
264
+ // least one tab when the flag is set, so this is an anomaly and `body` may well be
265
+ // the first tab of several.
266
+ caveats.push('Google returned no tab data, so this may be the first tab only.');
267
+ }
268
+ if (unread > 0) {
269
+ caveats.push(`${unread} tab(s) returned no content and could not be read.`);
270
+ }
271
+ if (multiTab && !capped) {
272
+ // The read spans tabs and character indices do not. An index computed from this
273
+ // concatenation means nothing to `insertText` unless the same tab is named on
274
+ // both sides, so say which handle makes them agree (#157).
275
+ //
276
+ // A capped response carries no text to measure an index in, and its own notice
277
+ // already says what to do next — two instructions there would compete.
278
+ caveats.push('Indices in this response are per-tab. Pass the `tabId` beside each heading below to `get`, `insertText`, `write` or `replaceText` — without one they act on the FIRST tab.');
279
+ }
280
+ if (!capped && !multiTab && tokens > MAX_DOC_TOKENS) {
281
+ // Whole, and large. Nothing here was withheld — the number is so the caller can
282
+ // decide what to do with the rest of its context, not a warning of missing text.
283
+ caveats.push(`This tab is ~${tokens.toLocaleString()} tokens and is shown in full — there is no narrower read available.`);
284
+ }
285
+ if (!capped && multiTab && tokens > MAX_DOC_TOKENS) {
286
+ // Big enough to cap, held back because at least one tab has no id and a tab index
287
+ // would strand it. Say why, or the reader sees only an inconsistent threshold.
288
+ caveats.push(`This document is ~${tokens.toLocaleString()} tokens and is shown in full: some tabs have no id, so a tab index would leave their text unreachable.`);
289
+ }
290
+ const scoped = wantTabId ? tabs[0] : undefined;
291
+ // A child tab is its own addressable tab, so scoping to a parent deliberately omits
292
+ // it. The `1 of N` line exists to say what was left out; without this the reader has
293
+ // no way to learn that the tab they asked for has text hanging beneath it.
294
+ if (scoped) {
295
+ const children = allTabs.filter((t) => t.depth === scoped.depth + 1
296
+ && allTabs.indexOf(t) > allTabs.indexOf(scoped)
297
+ && allTabs.slice(allTabs.indexOf(scoped) + 1, allTabs.indexOf(t)).every((b) => b.depth > scoped.depth));
298
+ if (children.length > 0) {
299
+ caveats.push(`This tab has ${children.length} child tab(s), read separately: ${children.map((c) => (c.id ? `\`${c.id}\`` : c.title)).join(', ')}.`);
300
+ }
301
+ }
57
302
  return {
58
303
  text: `## ${title}\n\n` +
59
304
  `**Document ID:** ${documentId}\n` +
60
305
  `**Revision:** ${String(doc.revisionId ?? '—')}\n` +
61
- `**Length:** ${text.length} characters, ${lines} line(s)\n\n` +
62
- (text ? `---\n\n${text}\n` : '_(the document is empty)_\n'),
63
- refs: { documentId, title, characters: text.length, lines },
306
+ // A scoped read says which tab it read AND how many it did not, so the number
307
+ // beside "Length" is never mistaken for the whole document.
308
+ (scoped
309
+ ? `**Tab:** ${scoped.title} (\`${scoped.id}\`) — 1 of ${allTabs.length}\n`
310
+ : '') +
311
+ // The count includes nested tabs, which the Docs tab strip does not show — so
312
+ // say which is which rather than hand back a number that contradicts the UI.
313
+ (multiTab
314
+ ? `**Tabs:** ${tabs.length}${nested ? ` (${tabs.length - nested} top-level, ${nested} nested)` : ''}\n`
315
+ : '') +
316
+ `**Length:** ${characters} characters, ${lines} line(s)\n` +
317
+ caveats.map((c) => `\n> ${c}\n`).join('') +
318
+ '\n' +
319
+ (body ? `---\n\n${body}\n` : '_(the document is empty)_\n'),
320
+ refs: {
321
+ documentId,
322
+ title,
323
+ characters,
324
+ lines,
325
+ tabs: tabs.length,
326
+ // The index rides along even for a single tab, whose heading is suppressed: its
327
+ // title is usually Google's default "Tab 1", but when a user has renamed a
328
+ // one-tab document's tab that name is content, and its id is the only way to
329
+ // address a write. Both belong in the response whether or not it renders them.
330
+ tabIndex: tabs.map((t) => ({
331
+ tabId: t.id,
332
+ title: t.title,
333
+ depth: t.depth,
334
+ characters: t.text?.length ?? null,
335
+ })),
336
+ ...(scoped ? { tabId: scoped.id, tabsInDocument: allTabs.length } : {}),
337
+ ...(capped ? { capped: true, tokens } : {}),
338
+ ...(unread > 0 ? { unreadTabs: unread } : {}),
339
+ },
64
340
  };
65
341
  },
66
342
  /**
67
343
  * Append text to the end of the body: one documents.batchUpdate carrying a
68
344
  * single insertText at `endOfSegmentLocation`. Append-only — no index
69
345
  * targeting, no formatting.
346
+ *
347
+ * `tabId` picks the tab; omitted, Google appends to the FIRST tab. That default is
348
+ * its documented behaviour for every Location and EndOfSegmentLocation, and it is
349
+ * why an unqualified append to a tabbed document lands somewhere the caller did not
350
+ * choose (#157). Read the document first — `get` returns each tab's id.
70
351
  */
71
352
  write: async (params, account) => {
72
353
  const documentId = requireString(params, 'documentId');
73
354
  const text = requireString(params, 'text');
355
+ const tabId = optionalString(params, 'tabId');
74
356
  await call('docs', 'documents.batchUpdate', {
75
357
  documentId,
76
358
  requests: [{
@@ -78,18 +360,20 @@ export const docsPatch = {
78
360
  text,
79
361
  // An empty segmentId means the document BODY (as opposed to a header
80
362
  // or footer), and endOfSegmentLocation means "append".
81
- endOfSegmentLocation: { segmentId: '' },
363
+ endOfSegmentLocation: { segmentId: '', ...(tabId ? { tabId } : {}) },
82
364
  },
83
365
  }],
84
366
  }, { account });
85
367
  return {
86
- text: `Appended ${text.length} character(s) to the document.\n\n**Document ID:** ${documentId}`,
87
- refs: { documentId, appended: text.length },
368
+ text: `Appended ${text.length} character(s) to ${tabId ? `tab \`${tabId}\` of ` : ''}the document.\n\n**Document ID:** ${documentId}` +
369
+ (tabId ? '' : '\n\n> No `tabId` given — this appended to the FIRST tab. On a multi-tab document, pass the `tabId` from `get`.'),
370
+ refs: { documentId, appended: text.length, ...(tabId ? { tabId } : {}) },
88
371
  };
89
372
  },
90
373
  insertText: async (params, account) => {
91
374
  const documentId = requireString(params, 'documentId');
92
375
  const text = requireString(params, 'text');
376
+ const tabId = optionalString(params, 'tabId');
93
377
  const index = Number(params.index);
94
378
  if (!Number.isInteger(index) || index < 1) {
95
379
  throw new Error('index must be a positive integer (1 = start of document body)');
@@ -99,19 +383,31 @@ export const docsPatch = {
99
383
  requests: [{
100
384
  insertText: {
101
385
  text,
102
- location: { index },
386
+ // Character indices are per-tab. Without a tabId this index is read against
387
+ // the first tab, whatever tab the caller measured it in.
388
+ location: { index, ...(tabId ? { tabId } : {}) },
103
389
  },
104
390
  }],
105
391
  }, { account });
106
392
  return {
107
- text: `Text inserted at index ${index}.\n\n**Document:** ${documentId}\n**Inserted:** ${text.length} characters`,
108
- refs: { documentId, index, length: text.length },
393
+ text: `Text inserted at index ${index}${tabId ? ` of tab \`${tabId}\`` : ''}.\n\n**Document:** ${documentId}\n**Inserted:** ${text.length} characters` +
394
+ (tabId ? '' : '\n\n> No `tabId` given — index ' + index + ' was resolved against the FIRST tab. On a multi-tab document, pass the `tabId` the index came from.'),
395
+ refs: { documentId, index, length: text.length, ...(tabId ? { tabId } : {}) },
109
396
  };
110
397
  },
398
+ /**
399
+ * Find and replace across the document, or within one tab.
400
+ *
401
+ * This is the one write that was never confined to the first tab: Google applies
402
+ * ReplaceAllTextRequest to every tab when `tabsCriteria` is omitted. `tabId` narrows
403
+ * it, so the default stays "the whole document" and nothing changes for callers who
404
+ * do not pass one.
405
+ */
111
406
  replaceText: async (params, account) => {
112
407
  const documentId = requireString(params, 'documentId');
113
408
  const findText = requireString(params, 'findText');
114
409
  const replaceWith = requireString(params, 'replaceWith');
410
+ const tabId = optionalString(params, 'tabId');
115
411
  const matchCase = params.matchCase !== false;
116
412
  const data = await call('docs', 'documents.batchUpdate', {
117
413
  documentId,
@@ -122,6 +418,7 @@ export const docsPatch = {
122
418
  matchCase,
123
419
  },
124
420
  replaceText: replaceWith,
421
+ ...(tabId ? { tabsCriteria: { tabIds: [tabId] } } : {}),
125
422
  },
126
423
  }],
127
424
  }, { account });
@@ -129,9 +426,17 @@ export const docsPatch = {
129
426
  const replies = data.replies || [];
130
427
  const replaceReply = replies[0]?.replaceAllText;
131
428
  const occurrences = replaceReply?.occurrencesChanged || 0;
429
+ // "Text replaced … Occurrences: 0" reads as success for a replacement that changed
430
+ // nothing. A `tabId` gives that outcome a second cause — right string, wrong tab —
431
+ // and the two are indistinguishable unless the response leads with the miss.
432
+ const scope = tabId ? `tab \`${tabId}\`` : 'all tabs';
433
+ const headline = occurrences === 0
434
+ ? `Nothing matched "${findText}" in ${scope} — the document is unchanged.` +
435
+ (tabId ? '\n\n> Scoped to one tab. If the text lives in another, re-run with that `tabId` or omit it to span the document.' : '')
436
+ : 'Text replaced.';
132
437
  return {
133
- text: `Text replaced.\n\n**Document:** ${documentId}\n**Found:** "${findText}"\n**Replaced with:** "${replaceWith}"\n**Occurrences:** ${occurrences}`,
134
- refs: { documentId, occurrences },
438
+ text: `${headline}\n\n**Document:** ${documentId}\n**Scope:** ${scope}\n**Found:** "${findText}"\n**Replaced with:** "${replaceWith}"\n**Occurrences:** ${occurrences}`,
439
+ refs: { documentId, occurrences, ...(tabId ? { tabId } : {}) },
135
440
  };
136
441
  },
137
442
  },
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/services/docs/patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/services/docs/patch.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,8 @@
7
7
  * - Custom handlers: send/reply use specific response formatting
8
8
  */
9
9
  import { call } from '../../google/client.js';
10
- import { formatEmailList, formatEmailDetail, extractBodyFromPayload } from '../../server/formatting/markdown.js';
10
+ import { GoogleApiError } from '../../google/errors.js';
11
+ import { formatEmailList, formatEmailDetail, extractBodyFromPayload, decodeSnippet } from '../../server/formatting/markdown.js';
11
12
  import { requireString } from '../../server/handlers/validate.js';
12
13
  import { handleGetAttachment, handleViewAttachment } from './attachments.js';
13
14
  import { sendMail, replyMail, forwardMail } from './mail.js';
@@ -16,7 +17,11 @@ import { sendMail, replyMail, forwardMail } from './mail.js';
16
17
  * Reused from the original email handler.
17
18
  */
18
19
  async function hydrateMessages(messageIds, account) {
19
- return Promise.all(messageIds.map(async (msg) => {
20
+ // Google throttles per USER, not per process, so this burst competes with every
21
+ // other client signed in to the same account. Firing all 50 at once is the surest
22
+ // way to be told no. A modest window is barely slower — the calls still overlap —
23
+ // and it is far less likely to be throttled in the first place.
24
+ return mapLimited(messageIds, HYDRATE_CONCURRENCY, async (msg) => {
20
25
  try {
21
26
  const data = await call('gmail', 'users.messages.get', {
22
27
  userId: 'me',
@@ -35,10 +40,38 @@ async function hydrateMessages(messageIds, account) {
35
40
  snippet: data.snippet,
36
41
  };
37
42
  }
38
- catch {
39
- return { id: msg.id };
43
+ catch (err) {
44
+ // A message we could not READ must never look like a message with NOTHING IN IT.
45
+ //
46
+ // This used to `catch { return { id: msg.id } }` — every failure became a row
47
+ // with no sender, no subject and no date, indistinguishable from a genuinely
48
+ // empty message. Under rate limiting the tail of an inbox silently rendered as
49
+ // blank lines, and the tool reported success while showing the user nothing.
50
+ //
51
+ // The client retries a 429 now, so reaching here means it did not recover. Say
52
+ // so, in the row, where the person reading the list will actually see it.
53
+ return {
54
+ id: msg.id,
55
+ error: err instanceof GoogleApiError
56
+ ? `could not load (${err.status}${err.reason ? ' ' + err.reason : ''})`
57
+ : `could not load (${err instanceof Error ? err.message : String(err)})`,
58
+ };
40
59
  }
41
- }));
60
+ });
61
+ }
62
+ /** Concurrent, but bounded. */
63
+ const HYDRATE_CONCURRENCY = 8;
64
+ async function mapLimited(items, limit, fn) {
65
+ const results = new Array(items.length);
66
+ let next = 0;
67
+ const workers = Array.from({ length: Math.min(limit, items.length) }, async () => {
68
+ while (next < items.length) {
69
+ const i = next++;
70
+ results[i] = await fn(items[i]); // fn never rejects — it catches internally
71
+ }
72
+ });
73
+ await Promise.all(workers);
74
+ return results;
42
75
  }
43
76
  /** Format labels list — name, type, unread count. */
44
77
  function formatLabelList(data) {
@@ -82,7 +115,7 @@ function formatThreadList(data) {
82
115
  }
83
116
  const lines = threads.map(t => {
84
117
  const id = String(t.id ?? '');
85
- const snippet = String(t.snippet ?? '').slice(0, 80);
118
+ const snippet = decodeSnippet(String(t.snippet ?? '')).slice(0, 80);
86
119
  return `${id} | ${snippet}`;
87
120
  });
88
121
  return {
@@ -111,7 +144,7 @@ function formatThreadDetail(data) {
111
144
  const date = getHeader('date');
112
145
  const subject = getHeader('subject');
113
146
  const bodyText = extractBodyFromPayload(payload);
114
- const snippet = String(msg.snippet ?? '');
147
+ const snippet = decodeSnippet(String(msg.snippet ?? ''));
115
148
  // getThread uses format:metadata so body data is usually absent;
116
149
  // fall back to snippet when extraction yields nothing
117
150
  const displayBody = bodyText || snippet;
@@ -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.0.0";
1
+ export declare const VERSION = "4.2.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.0.0';
2
+ export const VERSION = '4.2.0';
3
3
  //# sourceMappingURL=version.js.map