@framers/agentos-ext-gmail-source 0.5.1 → 0.6.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.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This library provides read-only Gmail authorization on the AgentOS redirect grant and sealed-token contracts, text helpers that sanitize and trim mail before it is stored (see Text ingestion below), a bounded mapper that turns one thread response into a sanitized source document (see Thread documents below), a capped read-only API client that sends every call through the host's quota and grant services (see Read-only API below), and a connector that binds them to durable account-source synchronization (see Connector and durable synchronization below). It requests the sole Gmail read-only scope, offline access and incremental consent. It exports no send, reply, label-modification or attachment-download tool.
4
4
 
5
- Install it next to `@framers/agentos` 0.13.146 or later, whose HTML loader strips tags in linear time, and `@framers/agentos-ext-account-sources` 0.7.0 or later. Both are peer dependencies with a floor and no upper bound. Node.js 20.19 or later is required.
5
+ Install it next to `@framers/agentos` 0.13.146 or later, whose HTML loader strips tags in linear time, and `@framers/agentos-ext-account-sources` at or above the floor this package's `peerDependencies` names; `npm view @framers/agentos-ext-gmail-source peerDependencies` prints the latest release's. Both are peer dependencies with a floor and no upper bound. Node.js 20.19 or later is required.
6
6
 
7
7
  ```ts
8
8
  import { GmailOAuthFlow } from '@framers/agentos-ext-gmail-source';
@@ -52,9 +52,9 @@ const filename = sanitizeMailMetadata(decodedFilename, { ...policy, maxOutputCha
52
52
  // body.text is sanitized and trimmed; body.trimmedQuote, body.trimmedSignature and body.truncated report omissions.
53
53
  ```
54
54
 
55
- `sanitizeMailText(input, policy)` removes address tokens and credential-shaped content without a network call. `sanitizeMailMetadata` applies the same rules and folds whitespace for filenames, label names and display fields. `sanitizeMailHeaders` retains only Subject, Date, From, To and Cc; its Subject output is capped at 200 characters. MIME header decoding and structural validation must happen before these functions receive strings. Bcc is never returned.
55
+ `sanitizeMailText(input, policy)` removes address tokens and credential-shaped content without a network call. `sanitizeMailMetadata` applies the same rules and folds whitespace for filenames, label names and display fields. `sanitizeMailHeaders` retains only Subject, Date, From, To and Cc; its Subject output is capped at 200 characters. MIME header decoding and structural validation must happen before these functions receive header values and filenames; a label name is JSON text from the labels response and is passed as it is, never decoded. Bcc is never returned.
56
56
 
57
- `policy` supplies `maxInputCharacters`, `maxLineCharacters` and `maxOutputCharacters` as positive UTF-16 code-unit counts. The input ceiling is 2,097,152 and the line ceiling is 65,536. The output cap cannot exceed the input cap. Oversized input throws `GmailTextFault` with a fixed reason; an overlong line is suppressed. Processing never scans only a truncated prefix for credentials. Repeated percent and common entity decoding is bounded, and unresolved encoded-byte lines are removed. Output truncation avoids splitting a surrogate pair and is marked in the result.
57
+ `policy` supplies `maxInputCharacters`, `maxLineCharacters` and `maxOutputCharacters` as positive UTF-16 code-unit counts. The input ceiling is 2,097,152 and the line ceiling is 65,536. The output cap cannot exceed the input cap. Oversized input throws `GmailTextFault` with a fixed reason; an overlong line is suppressed. Processing never scans only a truncated prefix for credentials. Percent and character-reference decoding repeats at most four times, every named reference of the HTML standard and numeric references among them; a line that still holds an encoded byte or a known reference after those passes is removed. Padding, a run of spaces and invisible characters that holds anything other than ASCII spaces and tabs, such as the no-break spaces, zero-width non-joiners, combining grapheme joiners and braille blanks mail templates repeat after a preheader, becomes one space, or nothing when it holds no space at all, so zero-width characters between letters join them. Padding that holds an invisible character and ends a line leaves no space there; a run of no-break spaces alone keeps one, so a signature separator written with one still reads `-- `. Runs of ASCII spaces and tabs stay as written. Output truncation avoids splitting a surrogate pair and is marked in the result.
58
58
 
59
59
  `messageText(input, policy)` sanitizes first, trims recognized reply history and short signatures, then applies the output cap. Explicit forwarded content and ambiguous prose are retained. Its `trimmedQuote`, `trimmedSignature` and `truncated` flags describe omissions. Quote spans must refer to its returned string, without inserted summaries or an ellipsis presented as source text. A host should disclose that attachments are listed and their contents are not read when its mapper implements that boundary.
60
60
 
@@ -85,14 +85,18 @@ const result = await mapper.map(response, {
85
85
  Construct `GmailThreadMapper(bounds)` with explicit response, decoded-byte, MIME depth/part, retained-message, message/thread text, metadata, sanitizer and cache ceilings. `map(thread, options)` returns the account-source `SourceSyncReadResult` union. The input is the parsed response from a transport that already enforced its byte cap before JSON decoding. The mapper separately checks recognized MIME data and the entire part tree before decoding any selected body. A parsed object alone cannot establish its original wire size.
86
86
 
87
87
  Supply a fixed selection cutoff, message window, original read start and completion times, actual response cache headers, independently established cache permission and a host-generated relative detail path. The path must resolve authentication and current source generation in the host. It is never a Gmail deep link or a request-derived external URL. A successful OAuth grant does not establish cache or model-processing permission.
88
- Pass `labelCache` as the separate labels response’s cache decision. Missing, refused or expired label permission keeps ids without names. Permitted names shorten the entire document’s expiry when their allowed lifetime ends first.
88
+ Pass `labelCache` as the separate labels response’s cache decision. Missing, refused or expired label permission keeps ids without names. Permitted names shorten the entire document’s expiry when their allowed lifetime ends first. A label name is the labels response's JSON text, not a MIME header value: the mapper sanitizes it as written and never decodes it as RFC 2047 words, so a name such as `Research =? backlog` stays as written and the messages that carry it are kept. A run of encoded words in a name is decoded only to look inside: one whose text holds an address or a credential is replaced by what the sanitizer leaves of it, so nothing a reader could decode back is stored, and a word that does not decode stays as written.
89
89
 
90
- Each message is filtered by its internal timestamp and excluded labels. Retained messages are selected newest first with stable id ties, within the explicit cap, and rendered chronologically. Plain text wins within a MIME alternative. Other multipart containers retain their non-attachment text children in MIME order. HTML uses the public AgentOS `HtmlLoader` with an in-memory Buffer. No browser or remote resource is loaded. The resulting text, structured headers, filenames, media types and label names all pass the text sanitizer.
90
+ Each message is filtered by its internal timestamp, the excluded labels (spam, trash and drafts) and the `excludedCategories` option: a message carrying an excluded category's label (`CATEGORY_PROMOTIONS` for `promotions`, and so on) is left out and counted under `excluded_category`; none is excluded by default. Retained messages are selected newest first with stable id ties, within the explicit cap, and rendered chronologically. Plain text wins within a MIME alternative. Other multipart containers retain their non-attachment text children in MIME order. HTML uses the public AgentOS `HtmlLoader` with an in-memory Buffer; every character reference the loader leaves is then decoded, padding collapses and whitespace collapses again, with at most one blank line between paragraphs. No browser or remote resource is loaded. The resulting text, structured headers, filenames, media types and label names all pass the text sanitizer.
91
+
92
+ Within a MIME alternative, a plain branch that holds text wins over HTML. A branch whose text is blank, nothing but whitespace, padding and the percent and character references that decode to them, as in the empty plain part some mailers send beside their HTML, yields to the next branch, so the HTML is read. A later branch whose bytes or charset cannot be read is passed over, and when every branch is blank, the preferred one stands. Each retained message keeps its own cut, its header prefix and body within `maxMessageCharacters` (or `maxThreadCharacters` when that is smaller), whatever else the thread holds. `maxThreadCharacters` is spent newest first: the first message that does not fit whole in what is left, and every older one, is omitted and counted under `thread_limit`, and no message is cut shorter to fit. A reply near the cap therefore leaves the text of every message a stored copy holds as it was, which the account-source store needs to charge only what changed: it charges a held message nothing only when the message's text hash, cut and length are unchanged.
91
93
 
92
94
  Attachments are listed; their contents are not read. An external body or attachment contributes only sanitized filename, media type and size. Inline attachment bytes and attachment ids are discarded. Bcc, raw payloads, snippets and unknown fields are not returned. The mapper never calls any Gmail endpoint. Unsupported charset, invalid bytes and omitted content have fixed counted reasons. Invalid protocol shape is a failure rather than an empty successful source.
93
95
 
94
96
  A returned document has matching item/ref versions, a normalized-content hash, message ids and body spans, earliest allowed expiry and explicit omission/truncation metadata. Spans count UTF-16 code units in the returned text and exclude the header prefix. Quote trimming preserves normalized source text; no generated summary or ellipsis is inserted into a quote. Header-only messages can have an empty body span. Render structured metadata as escaped text and treat all mail as untrusted data.
95
97
 
98
+ The version is the thread's history id and `contentHash`, the SHA-256 of the normalized text, metadata and message spans, so the hash is the field that carries a change to how text is normalized. A release that normalizes text differently changes the hash of exactly the threads whose normalized text, metadata or spans it changes. At the next read of such a thread, when history names it or a reconcile scan lists it, the account-source store finds a new version and writes the copy again. A thread whose history id, normalized text, metadata and message spans (each message's window end among them, so a changed `windowMs` changes the version too) are unchanged keeps its version, and the store, given a host's `refresh` binding, keeps that copy in place without embedding it again. No separate normalizer version is kept.
99
+
96
100
  A history-only change does not extend cache life or change the normalized hash. Storage still requires the account-source transactional fence, fresh expiry checks and host allowances. Derived results retain the whole source's personal-use, expiry and deletion restrictions. Never persist the transient MIME types or bypass the account-source store with a mapper result.
97
101
 
98
102
  ## Read-only API
@@ -125,6 +129,8 @@ const changes = await api.history(profile.historyId, 100, null, signal); // { ki
125
129
 
126
130
  `profile(signal?)` returns a server-memory address and history id for private account binding. Never store its address in a source or log it. `list(cutoff, windowMs, pageSize, pageToken, signal?)` returns a bounded scan page. The query uses epoch seconds and excludes spam, trash and drafts; exact message eligibility remains the mapper's responsibility. `history(fromCursor, pageSize, pageToken, signal?)` returns deduplicated changed thread ids and the string response cursor. The host must persist pending work and commit a terminal cursor only after all work has completed. Neither method claims mailbox-wide completeness.
127
131
 
132
+ `excludedCategories` names the inbox tabs to leave out, by their `category:` search names (`promotions`, `social`, `updates`, `forums`; none by default): the scan query carries `-category:<name>` for each; a history record that adds a message whose labels carry the category (`CATEGORY_PROMOTIONS` and so on), or that changes a message's labels while it stays inside the excluded tabs before and after the change (a move between two excluded tabs in one record, a star on a message in one), names no thread to read for that event, a generic `messages` entry Gmail lists beside it being decided by it, while a deletion, a label change that takes a message into or out of the excluded tabs, and the addition half of a move Gmail splits into two records still name the thread (that read finds the copy unchanged and is charged nothing); and the mapper leaves such messages out of the copy under `excluded_category`. A thread read after an excluded message was added to it keeps its text and catches up its omission count and its version, charged nothing. A copy of a thread the exclusion would have left out, stored before the option was set, stays until its expiry or the host's reset of the connection, since a bounded scan's silence about a thread is never its deletion. A host that keeps the Primary tab alone passes `GMAIL_CATEGORIES`, the four names. The names and labels are Google's: the search operators at https://support.google.com/mail/answer/7190 and the system labels at https://developers.google.com/workspace/gmail/api/guides/labels.
133
+
128
134
  `labels(permission, signal?)` returns sanitized names and the cache decision from that labels response. A refused decision contains no names. `readThread(sourceId, options)` accepts cutoff/window, a trusted private detail path, cache permission, the independent label snapshot and optional signal. It passes the actual thread response headers and times to the mapper and returns only the account-source read-result union. It never returns raw MIME. A labels response cannot borrow a thread response's longer cache lifetime.
129
135
 
130
136
  One provider operation makes one attempt, with one fresh-token retry permitted after 401. Every HTTP dispatch is separately metered. Token refreshes also use the one-unit profile reservation as conservative local accounting; this does not assert a Gmail quota cost for the OAuth endpoint. The durable account-source coordinator owns retry episodes, exponential backoff and exhaustion. The client persists provider waits through the quota service and never sleeps or buys capacity. A quota deferral, or a start that missed the quota's send window, sends nothing and throws `rate_limited` with the time to try again; only a reused attempt id is `invalid_response`. A retry time the client hands back is always after its own clock, even when the quota's database clock lags it; give the client the clock the host's sync store reads (`Date.now` for both unless given). Unknown errors become fixed failures without retaining their messages or causes.
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @fileoverview One pass of character-reference decoding and the collapse of padding runs, shared by the HTML reader
3
+ * and the text sanitizer. A named reference is read from the HTML standard's table, and a numeric one when it names a
4
+ * Unicode scalar value. Padding is what mail templates repeat after a preheader so that a client's preview shows
5
+ * nothing more of the body: no-break spaces, zero-width non-joiners, combining grapheme joiners and braille blanks.
6
+ * Nothing here logs or fetches.
7
+ * @module agentos-ext-gmail-source/characters
8
+ */
9
+ /**
10
+ * Decodes each character reference in `text` once, in one left-to-right pass: a named reference the HTML standard's
11
+ * table holds, and a decimal or hexadecimal one that names a Unicode scalar value. Any other reference stays as
12
+ * written, `&constructor;` and a number past U+10FFFF or naming a surrogate among them. Decoding never lengthens the
13
+ * text.
14
+ *
15
+ * @param text Any text: an HTML body after its tags are removed, a plain body or a header value.
16
+ * @returns The text with its known references replaced by the characters they stand for.
17
+ */
18
+ export declare function decodeCharacterReferences(text: string): string;
19
+ /**
20
+ * Whether `text` still holds a named reference the table decodes, as text nested deeper than the decoding passes
21
+ * does. One scan, each name looked up once.
22
+ *
23
+ * @param text One line of decoded text.
24
+ */
25
+ export declare function holdsNamedReference(text: string): boolean;
26
+ /**
27
+ * Collapses each run of spaces and invisible characters that holds anything other than ASCII spaces and tabs: to one
28
+ * space when the run holds a character with the width of a space (a no-break or other Unicode space, a tab or a
29
+ * braille blank), and to nothing when it holds only invisible characters, so zero-width characters between letters
30
+ * join them. A run that holds an invisible character and ends a line or the text also becomes nothing, so a
31
+ * preheader's padding leaves no space at the end of its line; a run of no-break spaces alone keeps its one space
32
+ * there, so a signature separator written with one still reads `-- `. A run of ASCII spaces and tabs alone stays as
33
+ * written, so a plain body keeps its indentation and alignment.
34
+ *
35
+ * @param text Text whose character references are already decoded.
36
+ * @returns The text with each padding run collapsed.
37
+ */
38
+ export declare function collapsePadding(text: string): string;
39
+ //# sourceMappingURL=characters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"characters.d.ts","sourceRoot":"","sources":["../src/characters.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwBH;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ9D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOpD"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @fileoverview One pass of character-reference decoding and the collapse of padding runs, shared by the HTML reader
3
+ * and the text sanitizer. A named reference is read from the HTML standard's table, and a numeric one when it names a
4
+ * Unicode scalar value. Padding is what mail templates repeat after a preheader so that a client's preview shows
5
+ * nothing more of the body: no-break spaces, zero-width non-joiners, combining grapheme joiners and braille blanks.
6
+ * Nothing here logs or fetches.
7
+ * @module agentos-ext-gmail-source/characters
8
+ */
9
+ import { HTML_NAMED_REFERENCES } from './htmlNamedReferences.js';
10
+ // The standard's names, with `&hyphen;` read as the ASCII hyphen-minus, as this sanitizer has read it since its first
11
+ // release, so a credential prefix spelled with it is still recognized. A Map, so no name reads an object's prototype.
12
+ const names = new Map([...Object.entries(HTML_NAMED_REFERENCES), ['hyphen', '-']]);
13
+ // A hexadecimal, decimal or named reference that ends with a semicolon.
14
+ const reference = /&(#x[0-9a-f]+|#[0-9]+|[a-z][a-z0-9]+);/gi;
15
+ // A named reference that ends with a semicolon.
16
+ const namedReference = /&([a-z][a-z0-9]+);/gi;
17
+ // A run of horizontal spaces and invisible characters: tabs, every space separator (the no-break spaces among them),
18
+ // the braille blank, every format character (the zero-width space, the joiners, the word joiner, the byte order mark,
19
+ // the soft hyphen and the direction marks among them) and the combining grapheme joiner.
20
+ const paddingRun = /[\t\p{Zs}\u2800\p{Cf}\u034f]+/gu;
21
+ // A character of such a run that takes up the width of a space.
22
+ const spacing = /[\t\p{Zs}\u2800]/u;
23
+ // A character of such a run with no width of its own.
24
+ const invisible = /[\p{Cf}\u034f]/u;
25
+ // A line break, which ends a line.
26
+ const lineBreak = /[\n\r\u2028\u2029]/;
27
+ // A run of ASCII spaces and tabs alone.
28
+ const asciiSpacing = /^[ \t]+$/;
29
+ /**
30
+ * Decodes each character reference in `text` once, in one left-to-right pass: a named reference the HTML standard's
31
+ * table holds, and a decimal or hexadecimal one that names a Unicode scalar value. Any other reference stays as
32
+ * written, `&constructor;` and a number past U+10FFFF or naming a surrogate among them. Decoding never lengthens the
33
+ * text.
34
+ *
35
+ * @param text Any text: an HTML body after its tags are removed, a plain body or a header value.
36
+ * @returns The text with its known references replaced by the characters they stand for.
37
+ */
38
+ export function decodeCharacterReferences(text) {
39
+ return text.replace(reference, (whole, entity) => {
40
+ if (!entity.startsWith('#'))
41
+ return names.get(entity) ?? whole;
42
+ const hex = entity[1]?.toLowerCase() === 'x';
43
+ const point = Number.parseInt(entity.slice(hex ? 2 : 1), hex ? 16 : 10);
44
+ return Number.isSafeInteger(point) && point >= 0 && point <= 0x10ffff && !(point >= 0xd800 && point <= 0xdfff)
45
+ ? String.fromCodePoint(point) : whole;
46
+ });
47
+ }
48
+ /**
49
+ * Whether `text` still holds a named reference the table decodes, as text nested deeper than the decoding passes
50
+ * does. One scan, each name looked up once.
51
+ *
52
+ * @param text One line of decoded text.
53
+ */
54
+ export function holdsNamedReference(text) {
55
+ for (const match of text.matchAll(namedReference)) {
56
+ if (names.has(match[1] ?? ''))
57
+ return true;
58
+ }
59
+ return false;
60
+ }
61
+ /**
62
+ * Collapses each run of spaces and invisible characters that holds anything other than ASCII spaces and tabs: to one
63
+ * space when the run holds a character with the width of a space (a no-break or other Unicode space, a tab or a
64
+ * braille blank), and to nothing when it holds only invisible characters, so zero-width characters between letters
65
+ * join them. A run that holds an invisible character and ends a line or the text also becomes nothing, so a
66
+ * preheader's padding leaves no space at the end of its line; a run of no-break spaces alone keeps its one space
67
+ * there, so a signature separator written with one still reads `-- `. A run of ASCII spaces and tabs alone stays as
68
+ * written, so a plain body keeps its indentation and alignment.
69
+ *
70
+ * @param text Text whose character references are already decoded.
71
+ * @returns The text with each padding run collapsed.
72
+ */
73
+ export function collapsePadding(text) {
74
+ return text.replace(paddingRun, (run, offset) => {
75
+ if (asciiSpacing.test(run))
76
+ return run;
77
+ if (!spacing.test(run))
78
+ return '';
79
+ const end = offset + run.length;
80
+ return invisible.test(run) && (end === text.length || lineBreak.test(text.charAt(end))) ? '' : ' ';
81
+ });
82
+ }
83
+ //# sourceMappingURL=characters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"characters.js","sourceRoot":"","sources":["../src/characters.ts"],"names":[],"mappings":"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"}
package/dist/gmail.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { type SourceQuota, type SourceRevocations, type SourceSyncHandle, type SourceSyncScanPage, type SourceSyncHistoryPage, type SourceSyncReadResult, type SourceCachePermission, type SourceCacheDecision } from '@framers/agentos-ext-account-sources';
2
2
  import type { GmailOAuthClient, GmailOAuthEndpoints } from './types.js';
3
+ import { type GmailCategory } from './mapThread.js';
3
4
  import { type GmailMappingBounds } from './mime.js';
4
5
  /**
5
6
  * The client's defensive transport limits, each a positive safe integer no greater than the value in brackets. They
@@ -38,6 +39,14 @@ export interface GmailApiOptions<Prepared = unknown> {
38
39
  readonly bounds: GmailMappingBounds;
39
40
  /** The transport and control-page limits. */
40
41
  readonly limits: GmailApiLimits;
42
+ /**
43
+ * The inbox tabs left out of the mailbox's copy, by their `category:` names (`promotions`, `social`, `updates`,
44
+ * `forums`); none by default. The scan query carries `-category:<name>` for each, a history record that adds a
45
+ * message carrying the category's label (`CATEGORY_PROMOTIONS` and so on) names no thread to read for that addition
46
+ * (a deletion or a label change still does), and the mapper leaves such messages out of the copy under
47
+ * `excluded_category`.
48
+ */
49
+ readonly excludedCategories?: readonly GmailCategory[];
41
50
  /** The fetch every token and API call goes through; the global fetch by default. */
42
51
  readonly fetchImpl?: typeof fetch;
43
52
  /**
@@ -124,6 +133,8 @@ export declare class GmailApi<Prepared = unknown> {
124
133
  private readonly bounds;
125
134
  private readonly limits;
126
135
  private readonly mapper;
136
+ private readonly categories;
137
+ private readonly excludedLabels;
127
138
  /**
128
139
  * @param options The client, the host's grant and quota services, the quota keys, the bounds and limits, and the
129
140
  * optional fetch, clock and CI-only endpoints.
@@ -163,9 +174,9 @@ export declare class GmailApi<Prepared = unknown> {
163
174
  */
164
175
  labels(permission: SourceCachePermission | null, signal?: AbortSignal): Promise<GmailLabels>;
165
176
  /**
166
- * One page of candidate thread ids between `cutoff - windowMs` and `cutoff`, outside spam, trash and drafts. The
167
- * query's whole-second bounds are widened by a second each way; the mapper enforces the exact window. Snippets and
168
- * estimates are dropped, and no mailbox-wide completeness is claimed.
177
+ * One page of candidate thread ids between `cutoff - windowMs` and `cutoff`, outside spam, trash, drafts and the
178
+ * excluded categories. The query's whole-second bounds are widened by a second each way; the mapper enforces the
179
+ * exact window. Snippets and estimates are dropped, and no mailbox-wide completeness is claimed.
169
180
  *
170
181
  * @param cutoff The selection cutoff in epoch milliseconds.
171
182
  * @param windowMs The window, from 1 millisecond to 90 days.
@@ -178,8 +189,11 @@ export declare class GmailApi<Prepared = unknown> {
178
189
  list(cutoff: number, windowMs: number, pageSize: number, pageToken: string | null, signal?: AbortSignal): Promise<SourceSyncScanPage>;
179
190
  /**
180
191
  * One page of history after `fromCursor`: the thread ids of every message addition, deletion and label change, and
181
- * of generic message entries, deduplicated and sorted, with the page's decimal-string cursor. The host persists the
182
- * pending work and commits a terminal cursor only once every item is terminal.
192
+ * of generic message entries, deduplicated and sorted, with the page's decimal-string cursor. With a category excluded,
193
+ * an addition of a message whose labels carry an excluded category, and a label change that keeps a message inside the
194
+ * excluded tabs before and after it, name no thread: the copy's text would not change (its omission count and version
195
+ * catch up at the thread's next read, charged nothing); a generic entry Gmail lists beside such an event is decided by
196
+ * it. The host persists the pending work and commits a terminal cursor only once every item is terminal.
183
197
  *
184
198
  * @param fromCursor The committed history id, a decimal string.
185
199
  * @param pageSize Records per page, from 1 to 100.
@@ -1 +1 @@
1
- {"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../src/gmail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../src/gmail.ts"],"names":[],"mappings":"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"}
package/dist/gmail.js CHANGED
@@ -10,7 +10,7 @@
10
10
  import { randomUUID } from 'node:crypto';
11
11
  import { readCapped, ReadCapExceeded, decideSourceCache, sourceRetryAt, SourceSyncFault, SOURCE_GRANT_KEY, } from '@framers/agentos-ext-account-sources';
12
12
  import { GmailOAuthFlow } from './GmailOAuthFlow.js';
13
- import { GmailThreadMapper } from './mapThread.js';
13
+ import { GmailThreadMapper, gmailCategories, categoryLabels } from './mapThread.js';
14
14
  import { mappingBounds, gmailId } from './mime.js';
15
15
  import { sanitizeMailMetadata } from './mailSanitize.js';
16
16
  import { classifyGmailHttp, gmailOAuthFault } from './retry.js';
@@ -181,6 +181,8 @@ export class GmailApi {
181
181
  bounds;
182
182
  limits;
183
183
  mapper;
184
+ categories;
185
+ excludedLabels;
184
186
  /**
185
187
  * @param options The client, the host's grant and quota services, the quota keys, the bounds and limits, and the
186
188
  * optional fetch, clock and CI-only endpoints.
@@ -205,6 +207,11 @@ export class GmailApi {
205
207
  if (typeof key !== 'string' || !/^[A-Za-z0-9:_-]{1,512}$/.test(key))
206
208
  throw new GmailApiFault('configuration');
207
209
  }
210
+ const categories = gmailCategories(options.excludedCategories);
211
+ if (categories === null)
212
+ throw new GmailApiFault('configuration');
213
+ this.categories = categories;
214
+ this.excludedLabels = categoryLabels(categories);
208
215
  }
209
216
  now() {
210
217
  const value = this.options.clock?.() ?? Date.now();
@@ -471,9 +478,9 @@ export class GmailApi {
471
478
  return { names: Object.freeze(names), cache };
472
479
  }
473
480
  /**
474
- * One page of candidate thread ids between `cutoff - windowMs` and `cutoff`, outside spam, trash and drafts. The
475
- * query's whole-second bounds are widened by a second each way; the mapper enforces the exact window. Snippets and
476
- * estimates are dropped, and no mailbox-wide completeness is claimed.
481
+ * One page of candidate thread ids between `cutoff - windowMs` and `cutoff`, outside spam, trash, drafts and the
482
+ * excluded categories. The query's whole-second bounds are widened by a second each way; the mapper enforces the
483
+ * exact window. Snippets and estimates are dropped, and no mailbox-wide completeness is claimed.
477
484
  *
478
485
  * @param cutoff The selection cutoff in epoch milliseconds.
479
486
  * @param windowMs The window, from 1 millisecond to 90 days.
@@ -491,7 +498,7 @@ export class GmailApi {
491
498
  const after = Math.max(0, Math.floor((cutoff - windowMs) / 1000) - 1);
492
499
  const before = Math.floor(cutoff / 1000) + 1;
493
500
  const response = await this.control('list', 'threads', { maxResults: String(pageSize), includeSpamTrash: 'false',
494
- q: `after:${after} before:${before} -in:spam -in:trash -in:drafts`,
501
+ q: `after:${after} before:${before} -in:spam -in:trash -in:drafts${this.categories.map((c) => ' -category:' + c).join('')}`,
495
502
  ...(token === null ? {} : { pageToken: token }),
496
503
  }, signal);
497
504
  const body = object(response.body);
@@ -505,8 +512,11 @@ export class GmailApi {
505
512
  }
506
513
  /**
507
514
  * One page of history after `fromCursor`: the thread ids of every message addition, deletion and label change, and
508
- * of generic message entries, deduplicated and sorted, with the page's decimal-string cursor. The host persists the
509
- * pending work and commits a terminal cursor only once every item is terminal.
515
+ * of generic message entries, deduplicated and sorted, with the page's decimal-string cursor. With a category excluded,
516
+ * an addition of a message whose labels carry an excluded category, and a label change that keeps a message inside the
517
+ * excluded tabs before and after it, name no thread: the copy's text would not change (its omission count and version
518
+ * catch up at the thread's next read, charged nothing); a generic entry Gmail lists beside such an event is decided by
519
+ * it. The host persists the pending work and commits a terminal cursor only once every item is terminal.
510
520
  *
511
521
  * @param fromCursor The committed history id, a decimal string.
512
522
  * @param pageSize Records per page, from 1 to 100.
@@ -530,24 +540,76 @@ export class GmailApi {
530
540
  const ids = new Set();
531
541
  let references = 0;
532
542
  let previous = fromCursor;
533
- const changed = (value) => {
543
+ // One message reference, counted against the page's bound and checked for shape.
544
+ const reference = (value) => {
534
545
  if (++references > this.limits.maxHistoryReferences)
535
546
  return invalid();
536
547
  const message = object(value);
537
548
  if (!gmailId(message.id) || !gmailId(message.threadId))
538
549
  return invalid();
539
- ids.add(message.threadId);
550
+ return { id: message.id, threadId: message.threadId, labelIds: message.labelIds };
540
551
  };
552
+ // A label list read only while a category is excluded, as the mapper reads a message's: a malformed label refuses the page.
553
+ const labels = (value) => array(value === undefined ? [] : value, this.limits.maxLabels)
554
+ .map((label) => { if (!labelId(label))
555
+ return invalid(); return label; });
556
+ const excluded = (list) => list.some((label) => this.excludedLabels.has(label));
541
557
  for (const value of records) {
542
558
  const entry = object(value);
543
559
  if (!historyId(entry.id) || compareHistory(entry.id, fromCursor) <= 0
544
560
  || compareHistory(entry.id, previous) < 0 || compareHistory(entry.id, body.historyId) > 0)
545
561
  return invalid();
546
562
  previous = entry.id;
547
- for (const field of ['messages', 'messagesAdded', 'messagesDeleted', 'labelsAdded', 'labelsRemoved']) {
563
+ // The typed events decide first; a generic `messages` entry Gmail lists beside one of them is decided by it, and a
564
+ // generic entry no typed event names still names its thread. With no category excluded every event names its thread.
565
+ const decided = new Set();
566
+ // Per message of this record: its thread, its current labels, the labels the record added and removed, and whether
567
+ // the record added or deleted it. A move between tabs is one record with an addition and a removal of the same
568
+ // message, so the labels before the change are the current ones without the added and with the removed.
569
+ const changes = new Map();
570
+ for (const field of ['messagesAdded', 'messagesDeleted', 'labelsAdded', 'labelsRemoved']) {
548
571
  const events = array(entry[field] === undefined ? [] : entry[field], this.limits.maxHistoryReferences - references);
549
- for (const event of events)
550
- changed(field === 'messages' ? event : object(event).message);
572
+ for (const event of events) {
573
+ const e = object(event);
574
+ const message = reference(e.message);
575
+ decided.add(message.id);
576
+ if (this.excludedLabels.size === 0) {
577
+ ids.add(message.threadId);
578
+ continue;
579
+ }
580
+ const change = changes.get(message.id)
581
+ ?? { threadId: message.threadId, current: labels(message.labelIds), added: [], removed: [], arrived: false, deleted: false };
582
+ if (field === 'messagesAdded')
583
+ change.arrived = true;
584
+ else if (field === 'messagesDeleted')
585
+ change.deleted = true;
586
+ else if (field === 'labelsAdded')
587
+ change.added.push(...labels(e.labelIds));
588
+ else
589
+ change.removed.push(...labels(e.labelIds));
590
+ changes.set(message.id, change);
591
+ }
592
+ }
593
+ for (const change of changes.values()) {
594
+ if (change.deleted) {
595
+ ids.add(change.threadId);
596
+ continue;
597
+ }
598
+ if (change.arrived) {
599
+ if (!excluded(change.current))
600
+ ids.add(change.threadId);
601
+ continue;
602
+ }
603
+ // A label change that keeps the message inside the excluded tabs, before and after, changes nothing of the copy.
604
+ const before = [...change.current.filter((label) => !change.added.includes(label)), ...change.removed];
605
+ if (!(excluded(before) && excluded(change.current)))
606
+ ids.add(change.threadId);
607
+ }
608
+ const generic = array(entry.messages === undefined ? [] : entry.messages, this.limits.maxHistoryReferences - references);
609
+ for (const event of generic) {
610
+ const message = reference(event);
611
+ if (!decided.has(message.id))
612
+ ids.add(message.threadId);
551
613
  }
552
614
  }
553
615
  const nextPageToken = this.pageToken(body.nextPageToken);
@@ -585,6 +647,7 @@ export class GmailApi {
585
647
  readStartedAt: response.readStartedAt, receivedAt: response.receivedAt,
586
648
  permission: options.permission, cacheHeaders: response.cacheHeaders,
587
649
  labelNames: options.labels?.names ?? {}, labelCache: options.labels?.cache ?? null, signal: options.signal,
650
+ excludedCategories: this.categories,
588
651
  });
589
652
  }
590
653
  }
package/dist/gmail.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gmail.js","sourceRoot":"","sources":["../src/gmail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmail.js","sourceRoot":"","sources":["../src/gmail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @fileoverview Every named character reference the HTML standard decodes when it ends with a semicolon, 2,125
3
+ * names, each with the characters it stands for. Generated from https://html.spec.whatwg.org/entities.json, read 18
4
+ * October 2026 (SHA-256 d741d877ac77c4194c4ad526b5b4a19aef8dfe411ab840a466891cdbb9f362e6), and identical to the map
5
+ * of the `entities` npm package 2.2.0. The standard says the list "is static and will not be expanded or changed in the
6
+ * future" (https://html.spec.whatwg.org/multipage/named-characters.html). The names a browser also reads without the
7
+ * semicolon are read here only with it. Characters outside printable ASCII are written as escapes, so no invisible
8
+ * character sits in the source.
9
+ * @module agentos-ext-gmail-source/htmlNamedReferences
10
+ */
11
+ /** The characters each named reference stands for, by its name without the `&` and the `;`. */
12
+ export declare const HTML_NAMED_REFERENCES: Readonly<Record<string, string>>;
13
+ //# sourceMappingURL=htmlNamedReferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlNamedReferences.d.ts","sourceRoot":"","sources":["../src/htmlNamedReferences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,+FAA+F;AAC/F,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwXjE,CAAC"}