@diskd-ai/email-client-mcp 0.1.5 → 0.1.8

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.
@@ -3,10 +3,10 @@
3
3
  * read tools (`get_email`, `get_emails`, `list_emails`). All helpers are
4
4
  * BODY.PEEK by default so reads do not silently flip `\\Seen`.
5
5
  *
6
- * Body decoding strategy: we ask imapflow for `bodyParts` (the small
7
- * `text/plain` and `text/html` pieces) instead of full source -- this
8
- * keeps payloads bounded without requiring a separate MIME parser. The
9
- * mapper truncates body byte-size on top.
6
+ * Body decoding strategy: first fetch `BODYSTRUCTURE`, then request the
7
+ * concrete MIME part ids for `text/plain` and `text/html`. Never pass semantic
8
+ * names such as `html` to imapflow: some IMAP servers (OVH) reject
9
+ * `BODY.PEEK[HTML]` with `BAD Command Argument Error. 11`.
10
10
  */
11
11
  import type { ImapFlow } from "imapflow";
12
12
  import type { FetchedMessageLike } from "./mapper.js";
@@ -15,6 +15,15 @@ export type FolderStatusSnapshot = {
15
15
  readonly uidNext: number;
16
16
  readonly messages: number;
17
17
  };
18
+ type BodyPartCandidate = {
19
+ readonly textPartId: string | null;
20
+ readonly htmlPartId: string | null;
21
+ };
22
+ /**
23
+ * Find concrete IMAP body part ids for display bodies.
24
+ * Attachments are skipped.
25
+ */
26
+ export declare const findDisplayBodyPartIds: (bodyStructure: unknown) => BodyPartCandidate;
18
27
  /**
19
28
  * Run a callback under a per-folder IMAP lock. imapflow requires this
20
29
  * for any FETCH/STORE/MOVE operation. The lock is released even if the
@@ -29,7 +38,7 @@ export type FetchedEnvelopeBundle = {
29
38
  };
30
39
  /**
31
40
  * UID-range fetch for the watcher. Yields envelope + flags + bodyStructure
32
- * + bodyParts(text/html) without setting `\\Seen`.
41
+ * plus display body parts without setting `\\Seen`.
33
42
  */
34
43
  export declare function fetchUidRange(client: ImapFlow, fromUid: number, toUid: number): AsyncIterable<FetchedEnvelopeBundle>;
35
44
  /**
@@ -42,3 +51,4 @@ export declare const fetchOneByUid: (client: ImapFlow, uid: number) => Promise<F
42
51
  * watcher's flag-reconciliation pass (no body, no bodyStructure).
43
52
  */
44
53
  export declare function fetchEnvelopesUidRange(client: ImapFlow, fromUid: number, toUid: number): AsyncIterable<FetchedMessageLike>;
54
+ export {};
@@ -3,12 +3,51 @@
3
3
  * read tools (`get_email`, `get_emails`, `list_emails`). All helpers are
4
4
  * BODY.PEEK by default so reads do not silently flip `\\Seen`.
5
5
  *
6
- * Body decoding strategy: we ask imapflow for `bodyParts` (the small
7
- * `text/plain` and `text/html` pieces) instead of full source -- this
8
- * keeps payloads bounded without requiring a separate MIME parser. The
9
- * mapper truncates body byte-size on top.
6
+ * Body decoding strategy: first fetch `BODYSTRUCTURE`, then request the
7
+ * concrete MIME part ids for `text/plain` and `text/html`. Never pass semantic
8
+ * names such as `html` to imapflow: some IMAP servers (OVH) reject
9
+ * `BODY.PEEK[HTML]` with `BAD Command Argument Error. 11`.
10
10
  */
11
- const BODY_PARTS = ["text", "html"];
11
+ const isAttachmentNode = (node) => node.disposition === "attachment" ||
12
+ (node.disposition === "inline" &&
13
+ Boolean(node.dispositionParameters?.filename ?? node.parameters?.name));
14
+ const fallbackSinglePartId = (type) => {
15
+ if (type === "text/plain" || type === "text/html")
16
+ return "1";
17
+ return null;
18
+ };
19
+ /**
20
+ * Find concrete IMAP body part ids for display bodies.
21
+ * Attachments are skipped.
22
+ */
23
+ export const findDisplayBodyPartIds = (bodyStructure) => {
24
+ const result = {
25
+ textPartId: null,
26
+ htmlPartId: null,
27
+ };
28
+ const visit = (raw) => {
29
+ if (result.textPartId && result.htmlPartId)
30
+ return;
31
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw))
32
+ return;
33
+ const node = raw;
34
+ if (isAttachmentNode(node))
35
+ return;
36
+ const type = node.type?.toLowerCase();
37
+ const partId = node.part ?? fallbackSinglePartId(type);
38
+ if (type === "text/plain" && partId && !result.textPartId) {
39
+ result.textPartId = partId;
40
+ }
41
+ else if (type === "text/html" && partId && !result.htmlPartId) {
42
+ result.htmlPartId = partId;
43
+ }
44
+ for (const child of node.childNodes ?? []) {
45
+ visit(child);
46
+ }
47
+ };
48
+ visit(bodyStructure);
49
+ return result;
50
+ };
12
51
  /**
13
52
  * Run a callback under a per-folder IMAP lock. imapflow requires this
14
53
  * for any FETCH/STORE/MOVE operation. The lock is released even if the
@@ -42,13 +81,21 @@ const decodeBuffer = (b) => {
42
81
  return null;
43
82
  return b.toString("utf8");
44
83
  };
45
- const extractText = (msg) => {
46
- const candidate = msg.bodyParts?.get("text") ?? msg.bodyParts?.get("1");
47
- return decodeBuffer(candidate);
48
- };
49
- const extractHtml = (msg) => {
50
- const candidate = msg.bodyParts?.get("html") ?? msg.bodyParts?.get("1.2");
51
- return decodeBuffer(candidate);
84
+ const fetchDisplayBodies = async (client, uid, bodyStructure) => {
85
+ const { textPartId, htmlPartId } = findDisplayBodyPartIds(bodyStructure);
86
+ const partIds = [...new Set([textPartId, htmlPartId].filter((id) => id !== null))];
87
+ if (partIds.length === 0) {
88
+ return { bodyText: null, bodyHtml: null };
89
+ }
90
+ const bodyMsg = await client.fetchOne(String(uid), {
91
+ uid: true,
92
+ bodyParts: partIds,
93
+ }, { uid: true });
94
+ const bodyParts = bodyMsg === false ? undefined : bodyMsg.bodyParts;
95
+ return {
96
+ bodyText: textPartId ? decodeBuffer(bodyParts?.get(textPartId)) : null,
97
+ bodyHtml: htmlPartId ? decodeBuffer(bodyParts?.get(htmlPartId)) : null,
98
+ };
52
99
  };
53
100
  const toInternalDate = (raw) => {
54
101
  if (raw instanceof Date)
@@ -68,22 +115,26 @@ const toLike = (msg) => ({
68
115
  });
69
116
  /**
70
117
  * UID-range fetch for the watcher. Yields envelope + flags + bodyStructure
71
- * + bodyParts(text/html) without setting `\\Seen`.
118
+ * plus display body parts without setting `\\Seen`.
72
119
  */
73
120
  export async function* fetchUidRange(client, fromUid, toUid) {
74
121
  const range = `${fromUid}:${toUid}`;
122
+ const messages = [];
75
123
  for await (const msg of client.fetch(range, {
76
124
  uid: true,
77
125
  flags: true,
78
126
  envelope: true,
79
127
  bodyStructure: true,
80
- bodyParts: BODY_PARTS,
81
128
  internalDate: true,
82
129
  }, { uid: true })) {
130
+ messages.push(msg);
131
+ }
132
+ for (const msg of messages) {
133
+ const bodies = await fetchDisplayBodies(client, msg.uid, msg.bodyStructure);
83
134
  yield {
84
135
  imapMessage: toLike(msg),
85
- bodyText: extractText(msg),
86
- bodyHtml: extractHtml(msg),
136
+ bodyText: bodies.bodyText,
137
+ bodyHtml: bodies.bodyHtml,
87
138
  };
88
139
  }
89
140
  }
@@ -97,15 +148,15 @@ export const fetchOneByUid = async (client, uid) => {
97
148
  flags: true,
98
149
  envelope: true,
99
150
  bodyStructure: true,
100
- bodyParts: BODY_PARTS,
101
151
  internalDate: true,
102
152
  }, { uid: true });
103
153
  if (!msg)
104
154
  return null;
155
+ const bodies = await fetchDisplayBodies(client, msg.uid, msg.bodyStructure);
105
156
  return {
106
157
  imapMessage: toLike(msg),
107
- bodyText: extractText(msg),
108
- bodyHtml: extractHtml(msg),
158
+ bodyText: bodies.bodyText,
159
+ bodyHtml: bodies.bodyHtml,
109
160
  };
110
161
  };
111
162
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/imap/fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/imap/fetch.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ export type DriveStore = {
31
31
  inserted: number;
32
32
  updated: number;
33
33
  }>>;
34
+ readonly getMessage: (mailboxId: string, folderId: string, externalId: string) => Promise<Result<DriveError, StoredEmailPayload | null>>;
34
35
  };
35
36
  export declare const buildDriveStore: (store: MessagesStore) => DriveStore;
36
37
  export {};
@@ -91,5 +91,18 @@ export const buildDriveStore = (store) => ({
91
91
  return r;
92
92
  return Ok({ inserted: r.value.inserted, updated: r.value.updated });
93
93
  },
94
+ async getMessage(mailboxId, folderId, externalId) {
95
+ try {
96
+ const message = await folderScoped(store, mailboxId, folderId).getMessage({ externalId });
97
+ return Ok(message.payload);
98
+ }
99
+ catch (cause) {
100
+ const msg = cause?.message ?? String(cause);
101
+ if (/not found|MESSAGE_NOT_FOUND|404/i.test(msg)) {
102
+ return Ok(null);
103
+ }
104
+ return Err(driveError(`folder.getMessage failed: ${msg}`, cause));
105
+ }
106
+ },
94
107
  });
95
108
  //# sourceMappingURL=driveStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"driveStore.js","sourceRoot":"","sources":["../../src/store/driveStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driveStore.js","sourceRoot":"","sources":["../../src/store/driveStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAmB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AA4CpD,MAAM,IAAI,GAAG,KAAK,EAAK,IAAY,EAAE,EAAoB,EAAkC,EAAE;IAC3F,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,YAAa,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IACjG,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAoB,EAAE,SAAiB,EAAE,QAAgB,EAAgB,EAAE,CAC/F,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAoB,EAAc,EAAE,CAAC,CAAC;IACpE,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW;QACxC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,UAAU,CAAC,cAAc,SAAS,uBAAuB,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAC9C,KAAK,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAChD,CAAC;YACF,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK;gBAAE,OAAO,MAAM,CAAC;QAC1C,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,KAAK,CAAC,aAAa;QACjB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;QAC3D,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CACxC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC;YACxC,QAAQ;YACR,WAAW;YACX,QAAQ,EAAE,QAAwD;SACnE,CAAC,CACH,CAAC;QACF,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ;QACjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;YACrE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAI,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,iCAAiC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChD,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,GAAG,CAAC,UAAU,CAAC,sBAAsB,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,SAAS;QACzB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ;QACpC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW;QAC7D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAW;YACpC,OAAO,EAAE,CAAiD;SAC3D,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAC9C,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CACnF,CAAC;QACF,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU;QAC9C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1F,OAAO,EAAE,CAAC,OAAO,CAAC,OAAwC,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAI,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjD,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,GAAG,CAAC,UAAU,CAAC,6BAA6B,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -40,6 +40,7 @@ export type SyncDeps = {
40
40
  inserted: number;
41
41
  updated: number;
42
42
  }>>;
43
+ readonly getMessage: (mailboxId: string, folderId: string, externalId: string) => Promise<Result<AppError, StoredEmailPayload | null>>;
43
44
  };
44
45
  readonly imap: {
45
46
  readonly listFolders: (accountId: string) => Promise<Result<ImapError, readonly {
package/dist/sync/sync.js CHANGED
@@ -48,14 +48,15 @@ const range = (lo, hi) => {
48
48
  }
49
49
  return out;
50
50
  };
51
- const flagsAreEqual = (a, b) => {
52
- if (a.length !== b.length)
53
- return false;
54
- const sa = new Set(a);
55
- for (const x of b)
56
- if (!sa.has(x))
57
- return false;
58
- return true;
51
+ const mergeReconciledFlags = (existing, incoming) => {
52
+ if (existing === null)
53
+ return incoming;
54
+ return {
55
+ ...existing,
56
+ flags: incoming.flags,
57
+ labels: incoming.labels,
58
+ fetchedAt: incoming.fetchedAt,
59
+ };
59
60
  };
60
61
  /**
61
62
  * Sync one folder. Returns the per-folder report; never throws.
@@ -268,18 +269,19 @@ const syncFolder = async (deps, account, mailboxId, folderPath, flagWindow) => {
268
269
  bodyHtml: null,
269
270
  truncated: false,
270
271
  });
271
- // Always upsert -- the store is opaque, but flagsAreEqual would
272
- // require a read-back. Bounded set keeps cost predictable.
273
- // We keep the shape stable; bodyText/Html stay null in this mode
274
- // but flags/labels reflect the latest IMAP state.
275
- if (!flagsAreEqual(incoming.flags, [])) {
276
- updated.push(incoming);
277
- updatedIds.push(externalIdFor(status.uidValidity, env.uid));
278
- }
279
- else {
280
- updated.push(incoming);
281
- updatedIds.push(externalIdFor(status.uidValidity, env.uid));
272
+ const externalId = externalIdFor(status.uidValidity, env.uid);
273
+ const existingPayload = await deps.drive.getMessage(mailboxId, folderId, externalId);
274
+ if (existingPayload.tag === "Err") {
275
+ return {
276
+ folderId,
277
+ newMessages,
278
+ reconciledFlags: 0,
279
+ uidValidityRolled,
280
+ error: errorMessage(existingPayload.error),
281
+ };
282
282
  }
283
+ updated.push(mergeReconciledFlags(existingPayload.value, incoming));
284
+ updatedIds.push(externalId);
283
285
  }
284
286
  if (updated.length > 0) {
285
287
  const ups = await deps.drive.upsertMessages(mailboxId, folderId, updated, updatedIds);
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"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"}
@@ -21,14 +21,14 @@ export declare const getEmailInput: z.ZodObject<{
21
21
  uid: number;
22
22
  mailbox: string;
23
23
  account: string;
24
- format: "text" | "raw" | "stripped";
24
+ format: "raw" | "text" | "stripped";
25
25
  markRead: boolean;
26
26
  maxLength?: number | undefined;
27
27
  }, {
28
28
  uid: number;
29
29
  mailbox: string;
30
30
  account: string;
31
- format?: "text" | "raw" | "stripped" | undefined;
31
+ format?: "raw" | "text" | "stripped" | undefined;
32
32
  maxLength?: number | undefined;
33
33
  markRead?: boolean | undefined;
34
34
  }>;
@@ -17,13 +17,13 @@ export declare const getEmailsInput: z.ZodObject<{
17
17
  mailbox: string;
18
18
  account: string;
19
19
  uids: number[];
20
- format: "text" | "raw" | "stripped";
20
+ format: "raw" | "text" | "stripped";
21
21
  maxLength?: number | undefined;
22
22
  }, {
23
23
  mailbox: string;
24
24
  account: string;
25
25
  uids: number[];
26
- format?: "text" | "raw" | "stripped" | undefined;
26
+ format?: "raw" | "text" | "stripped" | undefined;
27
27
  maxLength?: number | undefined;
28
28
  }>;
29
29
  export type GetEmailsInput = z.infer<typeof getEmailsInput>;
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "@diskd-ai/email-client-mcp",
3
- "version": "0.1.5",
3
+ "version": "0.1.8",
4
4
  "description": "Drive-backed multi-account email MCP with reliable IMAP-to-mailboxes sync.",
5
5
  "license": "LGPL-3.0-or-later",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/diskd-ai/email-client-mcp"
9
+ },
6
10
  "type": "module",
7
11
  "bin": {
8
12
  "email-client-mcp": "dist/server.js"