apple-mail-mcp 2.15.0 → 2.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/build/index.js +29 -3
  2. package/package.json +1 -1
package/build/index.js CHANGED
@@ -79170,6 +79170,26 @@ var COUNT_PARTIAL_NOTE = `Mail's count moved by less than this operation account
79170
79170
  function snapshotKey(entry) {
79171
79171
  return `${entry.id}\0${entry.messageId}`;
79172
79172
  }
79173
+ function crossCheckRenumbered(disappeared, appeared) {
79174
+ const index = (entries) => {
79175
+ const m = /* @__PURE__ */ new Map();
79176
+ for (const e of entries) {
79177
+ if (!e.messageId) continue;
79178
+ m.set(e.messageId, m.has(e.messageId) ? null : e);
79179
+ }
79180
+ return m;
79181
+ };
79182
+ const gone = index(disappeared);
79183
+ const came = index(appeared);
79184
+ const out = [];
79185
+ for (const [mid, before] of gone) {
79186
+ const after = came.get(mid);
79187
+ if (!before || !after) continue;
79188
+ if (before.id === after.id) continue;
79189
+ out.push({ messageId: mid, before: before.id, after: after.id });
79190
+ }
79191
+ return out;
79192
+ }
79173
79193
  function buildAppLevelScript(command) {
79174
79194
  return `
79175
79195
  tell application "Mail"
@@ -79845,8 +79865,12 @@ ${indent}end try${this.sanitizeFragment("_uacct", indent)}${this.sanitizeFragmen
79845
79865
  const afterEntries = this.parseSnapshot(a.payload);
79846
79866
  const afterKeys = new Set(afterEntries.map((e) => snapshotKey(e)));
79847
79867
  const beforeKeys = new Set(beforeEntries.map((e) => snapshotKey(e)));
79848
- const disappeared = beforeEntries.filter((e) => !afterKeys.has(snapshotKey(e)));
79849
- const appeared = afterEntries.filter((e) => !beforeKeys.has(snapshotKey(e)));
79868
+ const rawDisappeared = beforeEntries.filter((e) => !afterKeys.has(snapshotKey(e)));
79869
+ const rawAppeared = afterEntries.filter((e) => !beforeKeys.has(snapshotKey(e)));
79870
+ const renumbered = crossCheckRenumbered(rawDisappeared, rawAppeared);
79871
+ const renumberedMids = new Set(renumbered.map((r) => r.messageId));
79872
+ const disappeared = rawDisappeared.filter((e) => !renumberedMids.has(e.messageId));
79873
+ const appeared = rawAppeared.filter((e) => !renumberedMids.has(e.messageId));
79850
79874
  const unrequested = disappeared.filter(
79851
79875
  (e) => !requestedNumericIds.has(canonicalNumericId(e.id))
79852
79876
  );
@@ -79860,7 +79884,8 @@ ${indent}end try${this.sanitizeFragment("_uacct", indent)}${this.sanitizeFragmen
79860
79884
  disappeared,
79861
79885
  unrequested,
79862
79886
  appeared,
79863
- ...countStale.length ? { countStale } : {}
79887
+ ...countStale.length ? { countStale } : {},
79888
+ ...renumbered.length ? { renumbered } : {}
79864
79889
  });
79865
79890
  continue;
79866
79891
  }
@@ -79873,6 +79898,7 @@ ${indent}end try${this.sanitizeFragment("_uacct", indent)}${this.sanitizeFragmen
79873
79898
  mailbox: g.mailbox,
79874
79899
  snapshot: "partial",
79875
79900
  ...countStale.length ? { countStale } : {},
79901
+ ...renumbered.length ? { renumbered } : {},
79876
79902
  skipReason: `Mail would not read ${holes.map((h) => `${h.ranges} (${h.phase})`).join(", ")} of this mailbox, so the snapshot has a hole in it. ` + (derivable.length > 0 ? `Still derivable and reported: ${derivable.join(" and ")}. ` : `Neither half of the diff is derivable from it. `) + `Anything the unread range could refute is omitted rather than guessed \u2014 an absent field here means "not computable", not "empty".`,
79877
79903
  unobserved: holes,
79878
79904
  ...a.miss === "" ? { disappeared, unrequested } : {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apple-mail-mcp",
3
- "version": "2.15.0",
3
+ "version": "2.15.1",
4
4
  "description": "MCP server for Apple Mail - read, search, send, and manage emails via Claude and other AI assistants",
5
5
  "type": "module",
6
6
  "main": "build/index.js",