@rubytech/create-maxy-code 0.1.296 → 0.1.297

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 (197) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/.claude-plugin/plugin.json +5 -1
  3. package/payload/platform/plugins/admin/lib/mcp-spawn-tee/index.js +159 -0
  4. package/payload/platform/plugins/admin/lib/mcp-spawn-tee/package.json +3 -0
  5. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +3 -13
  6. package/payload/platform/plugins/aeo/.claude-plugin/plugin.json +5 -1
  7. package/payload/platform/plugins/aeo/lib/mcp-spawn-tee/index.js +159 -0
  8. package/payload/platform/plugins/aeo/lib/mcp-spawn-tee/package.json +3 -0
  9. package/payload/platform/plugins/browser/.claude-plugin/plugin.json +5 -1
  10. package/payload/platform/plugins/browser/lib/mcp-spawn-tee/index.js +159 -0
  11. package/payload/platform/plugins/browser/lib/mcp-spawn-tee/package.json +3 -0
  12. package/payload/platform/plugins/contacts/.claude-plugin/plugin.json +5 -1
  13. package/payload/platform/plugins/contacts/lib/mcp-spawn-tee/index.js +159 -0
  14. package/payload/platform/plugins/contacts/lib/mcp-spawn-tee/package.json +3 -0
  15. package/payload/platform/plugins/docs/references/getting-started.md +1 -1
  16. package/payload/platform/plugins/docs/references/platform.md +1 -11
  17. package/payload/platform/plugins/email/.claude-plugin/plugin.json +6 -2
  18. package/payload/platform/plugins/email/PLUGIN.md +6 -2
  19. package/payload/platform/plugins/email/lib/mcp-spawn-tee/index.js +159 -0
  20. package/payload/platform/plugins/email/lib/mcp-spawn-tee/package.json +3 -0
  21. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft.test.d.ts +2 -0
  22. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft.test.d.ts.map +1 -0
  23. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft.test.js +75 -0
  24. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft.test.js.map +1 -0
  25. package/payload/platform/plugins/email/mcp/dist/__tests__/email-setup.test.js +58 -0
  26. package/payload/platform/plugins/email/mcp/dist/__tests__/email-setup.test.js.map +1 -1
  27. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.d.ts +2 -0
  28. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.d.ts.map +1 -0
  29. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js +74 -0
  30. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js.map +1 -0
  31. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-probe.test.d.ts +2 -0
  32. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-probe.test.d.ts.map +1 -0
  33. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-probe.test.js +69 -0
  34. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-probe.test.js.map +1 -0
  35. package/payload/platform/plugins/email/mcp/dist/__tests__/mail-options.test.d.ts +2 -0
  36. package/payload/platform/plugins/email/mcp/dist/__tests__/mail-options.test.d.ts.map +1 -0
  37. package/payload/platform/plugins/email/mcp/dist/__tests__/mail-options.test.js +46 -0
  38. package/payload/platform/plugins/email/mcp/dist/__tests__/mail-options.test.js.map +1 -0
  39. package/payload/platform/plugins/email/mcp/dist/__tests__/setup-probe.test.d.ts +2 -0
  40. package/payload/platform/plugins/email/mcp/dist/__tests__/setup-probe.test.d.ts.map +1 -0
  41. package/payload/platform/plugins/email/mcp/dist/__tests__/setup-probe.test.js +56 -0
  42. package/payload/platform/plugins/email/mcp/dist/__tests__/setup-probe.test.js.map +1 -0
  43. package/payload/platform/plugins/email/mcp/dist/__tests__/smtp-probe.test.d.ts +2 -0
  44. package/payload/platform/plugins/email/mcp/dist/__tests__/smtp-probe.test.d.ts.map +1 -0
  45. package/payload/platform/plugins/email/mcp/dist/__tests__/smtp-probe.test.js +46 -0
  46. package/payload/platform/plugins/email/mcp/dist/__tests__/smtp-probe.test.js.map +1 -0
  47. package/payload/platform/plugins/email/mcp/dist/index.js +44 -0
  48. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
  49. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +16 -3
  50. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
  51. package/payload/platform/plugins/email/mcp/dist/lib/imap.js +62 -5
  52. package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
  53. package/payload/platform/plugins/email/mcp/dist/lib/setup-probe.d.ts +42 -0
  54. package/payload/platform/plugins/email/mcp/dist/lib/setup-probe.d.ts.map +1 -0
  55. package/payload/platform/plugins/email/mcp/dist/lib/setup-probe.js +72 -0
  56. package/payload/platform/plugins/email/mcp/dist/lib/setup-probe.js.map +1 -0
  57. package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts +16 -6
  58. package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts.map +1 -1
  59. package/payload/platform/plugins/email/mcp/dist/lib/smtp.js +37 -20
  60. package/payload/platform/plugins/email/mcp/dist/lib/smtp.js.map +1 -1
  61. package/payload/platform/plugins/email/mcp/dist/scripts/send-transactional.js +1 -2
  62. package/payload/platform/plugins/email/mcp/dist/scripts/send-transactional.js.map +1 -1
  63. package/payload/platform/plugins/email/mcp/dist/tools/email-draft.d.ts +13 -0
  64. package/payload/platform/plugins/email/mcp/dist/tools/email-draft.d.ts.map +1 -0
  65. package/payload/platform/plugins/email/mcp/dist/tools/email-draft.js +45 -0
  66. package/payload/platform/plugins/email/mcp/dist/tools/email-draft.js.map +1 -0
  67. package/payload/platform/plugins/email/mcp/dist/tools/email-send.d.ts.map +1 -1
  68. package/payload/platform/plugins/email/mcp/dist/tools/email-send.js +2 -8
  69. package/payload/platform/plugins/email/mcp/dist/tools/email-send.js.map +1 -1
  70. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.d.ts.map +1 -1
  71. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js +25 -3
  72. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js.map +1 -1
  73. package/payload/platform/plugins/email/references/email-reference.md +15 -0
  74. package/payload/platform/plugins/email/skills/email-composition/SKILL.md +15 -4
  75. package/payload/platform/plugins/memory/.claude-plugin/plugin.json +5 -1
  76. package/payload/platform/plugins/memory/lib/mcp-spawn-tee/index.js +159 -0
  77. package/payload/platform/plugins/memory/lib/mcp-spawn-tee/package.json +3 -0
  78. package/payload/platform/plugins/outlook/.claude-plugin/plugin.json +5 -1
  79. package/payload/platform/plugins/outlook/lib/mcp-spawn-tee/index.js +159 -0
  80. package/payload/platform/plugins/outlook/lib/mcp-spawn-tee/package.json +3 -0
  81. package/payload/platform/plugins/replicate/.claude-plugin/plugin.json +5 -1
  82. package/payload/platform/plugins/replicate/lib/mcp-spawn-tee/index.js +159 -0
  83. package/payload/platform/plugins/replicate/lib/mcp-spawn-tee/package.json +3 -0
  84. package/payload/platform/plugins/scheduling/.claude-plugin/plugin.json +5 -1
  85. package/payload/platform/plugins/scheduling/lib/mcp-spawn-tee/index.js +159 -0
  86. package/payload/platform/plugins/scheduling/lib/mcp-spawn-tee/package.json +3 -0
  87. package/payload/platform/plugins/telegram/.claude-plugin/plugin.json +5 -1
  88. package/payload/platform/plugins/telegram/lib/mcp-spawn-tee/index.js +159 -0
  89. package/payload/platform/plugins/telegram/lib/mcp-spawn-tee/package.json +3 -0
  90. package/payload/platform/plugins/url-get/.claude-plugin/plugin.json +5 -1
  91. package/payload/platform/plugins/url-get/lib/mcp-spawn-tee/index.js +159 -0
  92. package/payload/platform/plugins/url-get/lib/mcp-spawn-tee/package.json +3 -0
  93. package/payload/platform/plugins/whatsapp/.claude-plugin/plugin.json +5 -1
  94. package/payload/platform/plugins/whatsapp/lib/mcp-spawn-tee/index.js +159 -0
  95. package/payload/platform/plugins/whatsapp/lib/mcp-spawn-tee/package.json +3 -0
  96. package/payload/platform/plugins/work/.claude-plugin/plugin.json +5 -1
  97. package/payload/platform/plugins/work/lib/mcp-spawn-tee/index.js +159 -0
  98. package/payload/platform/plugins/work/lib/mcp-spawn-tee/package.json +3 -0
  99. package/payload/platform/plugins/workflows/.claude-plugin/plugin.json +5 -1
  100. package/payload/platform/plugins/workflows/lib/mcp-spawn-tee/index.js +159 -0
  101. package/payload/platform/plugins/workflows/lib/mcp-spawn-tee/package.json +3 -0
  102. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  103. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +1 -0
  104. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  105. package/payload/platform/services/whatsapp-channel/dist/jsonl-watch.d.ts +10 -0
  106. package/payload/platform/services/whatsapp-channel/dist/jsonl-watch.d.ts.map +1 -0
  107. package/payload/platform/services/whatsapp-channel/dist/jsonl-watch.js +70 -0
  108. package/payload/platform/services/whatsapp-channel/dist/jsonl-watch.js.map +1 -0
  109. package/payload/platform/services/whatsapp-channel/dist/server.d.ts +6 -1
  110. package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
  111. package/payload/platform/services/whatsapp-channel/dist/server.js +38 -1
  112. package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
  113. package/payload/platform/templates/specialists/agents/personal-assistant.md +1 -1
  114. package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +5 -1
  115. package/payload/premium-plugins/writer-craft/lib/mcp-spawn-tee/index.js +159 -0
  116. package/payload/premium-plugins/writer-craft/lib/mcp-spawn-tee/package.json +3 -0
  117. package/payload/server/public/assets/AdminShell-DpjiG4KO.js +1 -0
  118. package/payload/server/public/assets/{Checkbox-DTrIyIFP.js → Checkbox-o5EbM1Sd.js} +1 -1
  119. package/payload/server/public/assets/{Transcript-C3aDVJ-n.js → Transcript-B-roO2vK.js} +1 -1
  120. package/payload/server/public/assets/{admin-DVdyV-Q6.js → admin-DmBG61gA.js} +1 -1
  121. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-DR9W0q1P.js → architectureDiagram-Q4EWVU46-DCLfcVZf.js} +1 -1
  122. package/payload/server/public/assets/{audio-attachment-mime-DGEfApkA.js → audio-attachment-mime-D_YMUIBb.js} +1 -1
  123. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-C3uwaI7p.js → blockDiagram-DXYQGD6D-DtTb6oGR.js} +1 -1
  124. package/payload/server/public/assets/{browser-DrJReVEG.js → browser-DPqQnY8B.js} +1 -1
  125. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-C8hmUDdd.js → c4Diagram-AHTNJAMY-DHMgkbse.js} +1 -1
  126. package/payload/server/public/assets/channel-BGB5Q-QM.js +1 -0
  127. package/payload/server/public/assets/chat-BpceL2qA.js +1 -0
  128. package/payload/server/public/assets/{chunk-336JU56O-BRCubMCb.js → chunk-336JU56O-DQja-fc4.js} +2 -2
  129. package/payload/server/public/assets/{chunk-426QAEUC-BNINkVsL.js → chunk-426QAEUC-uBZXKz4Z.js} +1 -1
  130. package/payload/server/public/assets/{chunk-4TB4RGXK-DSMj_AZh.js → chunk-4TB4RGXK-DViPFnGL.js} +1 -1
  131. package/payload/server/public/assets/{chunk-5FUZZQ4R-6DNGaUkf.js → chunk-5FUZZQ4R-CdKJ7vdW.js} +1 -1
  132. package/payload/server/public/assets/{chunk-5PVQY5BW-DPhkkS4p.js → chunk-5PVQY5BW-BIJiayBe.js} +1 -1
  133. package/payload/server/public/assets/{chunk-EDXVE4YY-BjWSqn7_.js → chunk-EDXVE4YY-CDDqx-TB.js} +1 -1
  134. package/payload/server/public/assets/{chunk-ENJZ2VHE-BX1ZnU4A.js → chunk-ENJZ2VHE-BVNFvue5.js} +1 -1
  135. package/payload/server/public/assets/{chunk-ICPOFSXX-DvYSWH7x.js → chunk-ICPOFSXX-DEZQolUW.js} +1 -1
  136. package/payload/server/public/assets/{chunk-OYMX7WX6-7_m3mEOK.js → chunk-OYMX7WX6-Dn0reHna.js} +1 -1
  137. package/payload/server/public/assets/{chunk-U2HBQHQK-Bl1a895I.js → chunk-U2HBQHQK-sqMpBHaS.js} +1 -1
  138. package/payload/server/public/assets/{chunk-X2U36JSP-WkSpBPYx.js → chunk-X2U36JSP-ByhTOa14.js} +1 -1
  139. package/payload/server/public/assets/{chunk-YZCP3GAM-DpWRmPUo.js → chunk-YZCP3GAM-CGo_et0d.js} +1 -1
  140. package/payload/server/public/assets/{chunk-ZZ45TVLE-D9Dgmeso.js → chunk-ZZ45TVLE-B9aPwq_o.js} +1 -1
  141. package/payload/server/public/assets/classDiagram-6PBFFD2Q-DdUR3hKH.js +1 -0
  142. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-B0ZE2WR0.js +1 -0
  143. package/payload/server/public/assets/clone-B5aO4uPo.js +1 -0
  144. package/payload/server/public/assets/{dagre-PrVfCcSt.js → dagre-DE88U4Vk.js} +1 -1
  145. package/payload/server/public/assets/{dagre-KV5264BT-DPq3dcLH.js → dagre-KV5264BT-oeoQWi1f.js} +1 -1
  146. package/payload/server/public/assets/data-6mvcS2_6.js +1 -0
  147. package/payload/server/public/assets/{diagram-5BDNPKRD-DoszElKb.js → diagram-5BDNPKRD-HmWmPhlY.js} +1 -1
  148. package/payload/server/public/assets/{diagram-G4DWMVQ6-BRuqosix.js → diagram-G4DWMVQ6-Bkao4d6n.js} +1 -1
  149. package/payload/server/public/assets/{diagram-MMDJMWI5-CpigG1d_.js → diagram-MMDJMWI5-Eh2fnSb-.js} +1 -1
  150. package/payload/server/public/assets/{diagram-TYMM5635-BS0eYiq9.js → diagram-TYMM5635-C8705_ZE.js} +1 -1
  151. package/payload/server/public/assets/{erDiagram-SMLLAGMA-VEQyXCFl.js → erDiagram-SMLLAGMA-Bkhe0ZPv.js} +1 -1
  152. package/payload/server/public/assets/{file-download-C3pBZjt9.js → file-download-DVUMxBgB.js} +1 -1
  153. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-2NYMfqHX.js → flowDiagram-DWJPFMVM-rQKH0HF0.js} +1 -1
  154. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-AAAa2sqE.js → ganttDiagram-T4ZO3ILL-C3oSBbAe.js} +1 -1
  155. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-d8NUAIz5.js → gitGraphDiagram-UUTBAWPF-28GEOzIR.js} +1 -1
  156. package/payload/server/public/assets/{graph-Bx9_2qbJ.js → graph-B5R9qDya.js} +1 -1
  157. package/payload/server/public/assets/{graph-labels-Cc1nU1_f.js → graph-labels-Bcq_R9X9.js} +1 -1
  158. package/payload/server/public/assets/{graphlib-DUlqr2mr.js → graphlib-DhAwTSya.js} +1 -1
  159. package/payload/server/public/assets/{infoDiagram-42DDH7IO-D4dh4-0g.js → infoDiagram-42DDH7IO-DnSzN29F.js} +1 -1
  160. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-DPTmm2IE.js → ishikawaDiagram-UXIWVN3A-B0mYhBS0.js} +1 -1
  161. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-B85vjqkE.js → journeyDiagram-VCZTEJTY-CIcZskca.js} +1 -1
  162. package/payload/server/public/assets/{jsx-runtime-D3PZpOAF.css → jsx-runtime-DqAwfhuD.css} +1 -1
  163. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-C2Lfb5Xh.js → kanban-definition-6JOO6SKY-DWEpWX0D.js} +1 -1
  164. package/payload/server/public/assets/{line-CODKFpwO.js → line-D6evlE4c.js} +1 -1
  165. package/payload/server/public/assets/{mermaid-parser.core-DYdFZnXH.js → mermaid-parser.core-DyRhDebz.js} +1 -1
  166. package/payload/server/public/assets/{mermaid.core-Bamjzahu.js → mermaid.core-DaD391Xr.js} +3 -3
  167. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CLK90bKJ.js → mindmap-definition-QFDTVHPH-D7IMib-k.js} +1 -1
  168. package/payload/server/public/assets/{pieDiagram-DEJITSTG-DEsnxhqP.js → pieDiagram-DEJITSTG-CyOSJozN.js} +1 -1
  169. package/payload/server/public/assets/{public-BFMu-jux.js → public-Cj7vjoG1.js} +5 -5
  170. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-uIP9V2jZ.js → quadrantDiagram-34T5L4WZ-CHWWRW-7.js} +1 -1
  171. package/payload/server/public/assets/{requirementDiagram-MS252O5E-CVS6t5tv.js → requirementDiagram-MS252O5E-x4-mHKrQ.js} +1 -1
  172. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-BIsmtyZA.js → sankeyDiagram-XADWPNL6-DvKrAe78.js} +1 -1
  173. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-Cu8TfQiW.js → sequenceDiagram-FGHM5R23-DW778VnP.js} +1 -1
  174. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-ax4vYGft.js → stateDiagram-FHFEXIEX-DVnPPuE8.js} +1 -1
  175. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-B3nWH_hq.js +1 -0
  176. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-3l7ojkMA.js → timeline-definition-GMOUNBTQ-CO4Sp85K.js} +1 -1
  177. package/payload/server/public/assets/{useSelectionMode-C_EBRd2k.js → useSelectionMode-BK4pznA6.js} +1 -1
  178. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-C_sv0qMD.js → vennDiagram-DHZGUBPP-OCcztoT8.js} +1 -1
  179. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-C7u4IHMB.js → wardleyDiagram-NUSXRM2D-C_1o3jux.js} +1 -1
  180. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-A-uLXr1a.js → xychartDiagram-5P7HB3ND-BPJxl9U1.js} +1 -1
  181. package/payload/server/public/browser.html +6 -6
  182. package/payload/server/public/chat.html +8 -8
  183. package/payload/server/public/data.html +5 -5
  184. package/payload/server/public/graph.html +8 -8
  185. package/payload/server/public/index.html +8 -8
  186. package/payload/server/public/public.html +6 -6
  187. package/payload/server/public/whatsapp-wallpaper.webp +0 -0
  188. package/payload/server/server.js +6 -2
  189. package/payload/server/public/assets/AdminShell-DDieHnzi.js +0 -1
  190. package/payload/server/public/assets/channel-drVqp11B.js +0 -1
  191. package/payload/server/public/assets/chat-rJYaCD6C.js +0 -1
  192. package/payload/server/public/assets/classDiagram-6PBFFD2Q-Dplkw_pj.js +0 -1
  193. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-sJXv1Ihp.js +0 -1
  194. package/payload/server/public/assets/clone-Q_B6oO0c.js +0 -1
  195. package/payload/server/public/assets/data-CYyR2m_B.js +0 -1
  196. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BRv1By5g.js +0 -1
  197. /package/payload/server/public/assets/{jsx-runtime-5auA0FEj.js → jsx-runtime-CynkhuPm.js} +0 -0
@@ -0,0 +1,74 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ // Mock the imapflow module so appendDraft's internal createClient() yields our spy client.
3
+ const mockClient = {
4
+ connect: vi.fn(async () => { }),
5
+ list: vi.fn(async () => []),
6
+ append: vi.fn(async () => ({ destination: "[Gmail]/Drafts", uid: 27675 })),
7
+ logout: vi.fn(async () => { }),
8
+ close: vi.fn(() => { }),
9
+ };
10
+ vi.mock("imapflow", () => ({
11
+ // A constructible function — `new ImapFlow(...)` returns the spy client.
12
+ ImapFlow: function ImapFlow() {
13
+ return mockClient;
14
+ },
15
+ }));
16
+ import { appendDraft, resolveFolderName } from "../lib/imap.js";
17
+ const config = {
18
+ email: "agent@example.com",
19
+ imapHost: "imap.example.com",
20
+ imapPort: 993,
21
+ imapSecurity: "tls",
22
+ };
23
+ describe("Task 815 — resolveFolderName drafts branch", () => {
24
+ it("returns the \\Drafts special-use path when advertised", async () => {
25
+ const client = {
26
+ list: async () => [
27
+ { path: "INBOX" },
28
+ { path: "[Gmail]/Sent Mail", specialUse: "\\Sent" },
29
+ { path: "[Gmail]/Drafts", specialUse: "\\Drafts" },
30
+ ],
31
+ };
32
+ await expect(resolveFolderName(client, "drafts")).resolves.toBe("[Gmail]/Drafts");
33
+ });
34
+ it("throws a named error when no \\Drafts special-use folder is advertised", async () => {
35
+ const client = { list: async () => [{ path: "INBOX" }] };
36
+ await expect(resolveFolderName(client, "drafts")).rejects.toThrow(/\\Drafts special-use folder/);
37
+ });
38
+ });
39
+ describe("Task 815 — appendDraft", () => {
40
+ beforeEach(() => {
41
+ vi.clearAllMocks();
42
+ });
43
+ it("appends raw bytes to the resolved Drafts folder with the \\Draft flag and returns folder+uid", async () => {
44
+ mockClient.list.mockResolvedValueOnce([
45
+ { path: "Drafts", specialUse: "\\Drafts" },
46
+ ]);
47
+ const raw = Buffer.from("From: a@b.c\r\n\r\nbody");
48
+ const result = await appendDraft(config, "pw", raw);
49
+ expect(mockClient.append).toHaveBeenCalledTimes(1);
50
+ expect(mockClient.append).toHaveBeenCalledWith("Drafts", raw, ["\\Draft"]);
51
+ expect(result).toEqual({ folder: "Drafts", uid: 27675 });
52
+ expect(mockClient.logout).toHaveBeenCalled();
53
+ });
54
+ it("returns uid null when the server reports no APPENDUID (no UIDPLUS)", async () => {
55
+ mockClient.list.mockResolvedValueOnce([
56
+ { path: "Drafts", specialUse: "\\Drafts" },
57
+ ]);
58
+ mockClient.append.mockResolvedValueOnce({ destination: "Drafts" });
59
+ const result = await appendDraft(config, "pw", Buffer.from("x"));
60
+ expect(result).toEqual({ folder: "Drafts", uid: null });
61
+ });
62
+ it("does not re-brand an unrelated list() failure as a missing-Drafts error", async () => {
63
+ mockClient.list.mockRejectedValueOnce(new Error("connection reset by peer"));
64
+ await expect(appendDraft(config, "pw", Buffer.from("x"))).rejects.toThrow(/connection reset by peer/);
65
+ expect(mockClient.append).not.toHaveBeenCalled();
66
+ });
67
+ it("names the mailbox in the no-Drafts error and still logs out", async () => {
68
+ mockClient.list.mockResolvedValueOnce([{ path: "INBOX" }]);
69
+ await expect(appendDraft(config, "pw", Buffer.from("x"))).rejects.toThrow(/agent@example\.com/);
70
+ expect(mockClient.append).not.toHaveBeenCalled();
71
+ expect(mockClient.logout).toHaveBeenCalled();
72
+ });
73
+ });
74
+ //# sourceMappingURL=imap-drafts.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-drafts.test.js","sourceRoot":"","sources":["../../src/__tests__/imap-drafts.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=imap-probe.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-probe.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/imap-probe.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ import { EventEmitter } from "node:events";
3
+ // Fake ImapFlow: an EventEmitter with controllable connect/logout/close.
4
+ // Each test arms the mock (mockImplementationOnce) BEFORE invoking the
5
+ // function under test, then drives the late-socket-event simulation by
6
+ // emitting 'error' on the captured client after the probe has resolved.
7
+ const state = vi.hoisted(() => ({ clients: [] }));
8
+ vi.mock("imapflow", () => ({ ImapFlow: vi.fn() }));
9
+ const { ImapFlow } = await import("imapflow");
10
+ const { testConnection, getInboxCount } = await import("../lib/imap.js");
11
+ function fakeClient(overrides = {}) {
12
+ const client = Object.assign(new EventEmitter(), {
13
+ connect: vi.fn().mockResolvedValue(undefined),
14
+ logout: vi.fn().mockResolvedValue(undefined),
15
+ close: vi.fn(),
16
+ mailboxOpen: vi.fn().mockResolvedValue({ exists: 42 }),
17
+ ...overrides,
18
+ });
19
+ state.clients.push(client);
20
+ return client;
21
+ }
22
+ // new ImapFlow(...) requires a constructable mock — a regular function whose
23
+ // returned object overrides `this`.
24
+ function armImapFlow(overrides = {}) {
25
+ ImapFlow.mockImplementationOnce(function () {
26
+ return fakeClient(overrides);
27
+ });
28
+ }
29
+ const config = {
30
+ email: "a@b.test", agentAddress: "a@b.test",
31
+ imapHost: "imap.b.test", imapPort: 993, imapSecurity: "tls",
32
+ smtpHost: "smtp.b.test", smtpPort: 587, smtpSecurity: "starttls",
33
+ };
34
+ beforeEach(() => {
35
+ state.clients.length = 0;
36
+ vi.spyOn(process.stderr, "write").mockReturnValue(true);
37
+ });
38
+ describe("imap.testConnection", () => {
39
+ it("failure path: returns a message, closes the client, contains late errors", async () => {
40
+ armImapFlow({ connect: vi.fn().mockRejectedValue(new Error("Command failed")) });
41
+ const msg = await testConnection(config, "bad-password");
42
+ expect(msg).toMatch(/IMAP connection failed/);
43
+ const client = state.clients[0];
44
+ expect(client.close).toHaveBeenCalled();
45
+ expect(() => client.emit("error", new Error("late reset"))).not.toThrow();
46
+ });
47
+ it("failure path: error classification is unchanged", async () => {
48
+ armImapFlow({ connect: vi.fn().mockRejectedValue(new Error("AUTHENTICATIONFAILED bad creds")) });
49
+ const msg = await testConnection(config, "bad-password");
50
+ expect(msg).toMatch(/IMAP authentication failed for a@b\.test/);
51
+ });
52
+ it("success path: logs out, and a late 'error' after resolve is contained", async () => {
53
+ armImapFlow();
54
+ const msg = await testConnection(config, "good-password");
55
+ expect(msg).toBeNull();
56
+ const client = state.clients[0];
57
+ expect(client.logout).toHaveBeenCalled();
58
+ expect(() => client.emit("error", new Error("late FIN"))).not.toThrow();
59
+ });
60
+ });
61
+ describe("imap.getInboxCount", () => {
62
+ it("returns the count and contains a late 'error' emit", async () => {
63
+ armImapFlow();
64
+ const count = await getInboxCount(config, "good-password");
65
+ expect(count).toBe(42);
66
+ expect(() => state.clients[0].emit("error", new Error("late"))).not.toThrow();
67
+ });
68
+ });
69
+ //# sourceMappingURL=imap-probe.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-probe.test.js","sourceRoot":"","sources":["../../src/__tests__/imap-probe.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mail-options.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-options.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/mail-options.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { buildMailOptions } from "../lib/smtp.js";
3
+ const config = {
4
+ email: "login@example.com",
5
+ agentAddress: "agent@example.com",
6
+ };
7
+ const base = {
8
+ to: "joel@example.com",
9
+ subject: "Quote",
10
+ body: "Plain body",
11
+ };
12
+ describe("Task 815 — buildMailOptions shared composer input", () => {
13
+ it("maps the full send shape (from=agentAddress, text=body, passthroughs)", () => {
14
+ const opts = buildMailOptions(config, {
15
+ ...base,
16
+ html: "<p>hi</p>",
17
+ inReplyTo: "<parent@id>",
18
+ references: "<parent@id>",
19
+ headers: { "X-Custom": "1" },
20
+ attachments: [{ filename: "doc.pdf", path: "/tmp/doc.pdf" }],
21
+ });
22
+ expect(opts).toEqual({
23
+ from: "agent@example.com",
24
+ to: "joel@example.com",
25
+ subject: "Quote",
26
+ text: "Plain body",
27
+ html: "<p>hi</p>",
28
+ inReplyTo: "<parent@id>",
29
+ references: "<parent@id>",
30
+ headers: { "X-Custom": "1" },
31
+ attachments: [{ filename: "doc.pdf", path: "/tmp/doc.pdf" }],
32
+ });
33
+ });
34
+ it("omits cc/bcc keys entirely when absent or empty (no-copy path byte-identity)", () => {
35
+ expect("cc" in buildMailOptions(config, base)).toBe(false);
36
+ expect("bcc" in buildMailOptions(config, base)).toBe(false);
37
+ expect("cc" in buildMailOptions(config, { ...base, cc: [], bcc: [] })).toBe(false);
38
+ expect("bcc" in buildMailOptions(config, { ...base, cc: [], bcc: [] })).toBe(false);
39
+ });
40
+ it("sets cc/bcc when non-empty", () => {
41
+ const opts = buildMailOptions(config, { ...base, cc: ["c@x.y"], bcc: ["b@x.y"] });
42
+ expect(opts.cc).toEqual(["c@x.y"]);
43
+ expect(opts.bcc).toEqual(["b@x.y"]);
44
+ });
45
+ });
46
+ //# sourceMappingURL=mail-options.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-options.test.js","sourceRoot":"","sources":["../../src/__tests__/mail-options.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AAGpE,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,mBAAmB;IAC1B,YAAY,EAAE,mBAAmB;CACnB,CAAC;AAEjB,MAAM,IAAI,GAAgB;IACxB,EAAE,EAAE,kBAAkB;IACtB,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,YAAY;CACnB,CAAC;AAEF,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;IACjE,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE;YACpC,GAAG,IAAI;YACP,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,aAAa;YACxB,UAAU,EAAE,aAAa;YACzB,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;YAC5B,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;SAC7D,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,mBAAmB;YACzB,EAAE,EAAE,kBAAkB;YACtB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,aAAa;YACxB,UAAU,EAAE,aAAa;YACzB,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;YAC5B,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,CAAC,IAAI,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,IAAI,gBAAgB,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnF,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=setup-probe.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-probe.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/setup-probe.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
2
+ import { EventEmitter } from "node:events";
3
+ import { newProbeToken, trackProbe, releaseProbe, activeProbeCount, handleEscapedError, } from "../lib/setup-probe.js";
4
+ let stderrSpy;
5
+ beforeEach(() => {
6
+ stderrSpy = vi.spyOn(process.stderr, "write").mockReturnValue(true);
7
+ });
8
+ afterEach(() => { stderrSpy.mockRestore(); });
9
+ const lines = () => stderrSpy.mock.calls.map((c) => String(c[0]));
10
+ describe("setup-probe census", () => {
11
+ it("acquired/released lines carry source, token, and a count returning to baseline", () => {
12
+ const base = activeProbeCount();
13
+ const token = newProbeToken();
14
+ trackProbe("imap", new EventEmitter(), token);
15
+ expect(activeProbeCount()).toBe(base + 1);
16
+ expect(lines().some((l) => l.includes("[email] setup-probe op=acquired source=imap") && l.includes(`token=${token}`))).toBe(true);
17
+ releaseProbe("imap", token);
18
+ expect(activeProbeCount()).toBe(base);
19
+ expect(lines().some((l) => l.includes("op=released source=imap") && l.includes(`token=${token}`))).toBe(true);
20
+ });
21
+ });
22
+ describe("late-event containment", () => {
23
+ it("a late 'error' emit on a tracked emitter does not throw and logs contained=true", () => {
24
+ const emitter = new EventEmitter();
25
+ const token = newProbeToken();
26
+ trackProbe("imap", emitter, token);
27
+ releaseProbe("imap", token);
28
+ // Unlistened 'error' would throw synchronously — containment means it doesn't.
29
+ expect(() => emitter.emit("error", new Error("late TLS reset"))).not.toThrow();
30
+ expect(lines().some((l) => l.includes("op=late-event source=imap") && l.includes("err=late TLS reset") && l.includes("contained=true"))).toBe(true);
31
+ });
32
+ });
33
+ describe("process-level guard (handleEscapedError)", () => {
34
+ it("contains an error whose stack references imapflow", () => {
35
+ const err = new Error("socket hang up");
36
+ err.stack = `Error: socket hang up\n at TLSSocket (/x/node_modules/imapflow/lib/imap-flow.js:1:1)`;
37
+ expect(handleEscapedError(err, "uncaughtException")).toBe(true);
38
+ expect(lines().some((l) => l.includes("op=late-event source=process") && l.includes("contained=true"))).toBe(true);
39
+ });
40
+ it("contains an error whose stack references nodemailer", () => {
41
+ const err = new Error("read ECONNRESET");
42
+ err.stack = `Error: read ECONNRESET\n at SMTPConnection (/x/node_modules/nodemailer/lib/smtp-connection/index.js:1:1)`;
43
+ expect(handleEscapedError(err, "unhandledRejection")).toBe(true);
44
+ });
45
+ it("contains a foreign error while a probe is still unreleased", () => {
46
+ const token = newProbeToken();
47
+ trackProbe("smtp", new EventEmitter(), token);
48
+ expect(handleEscapedError(new Error("anything"), "uncaughtException")).toBe(true);
49
+ releaseProbe("smtp", token);
50
+ });
51
+ it("does NOT contain a foreign error with no active probe", () => {
52
+ expect(handleEscapedError(new Error("unrelated bug"), "uncaughtException")).toBe(false);
53
+ expect(lines().some((l) => l.includes("contained=false"))).toBe(true);
54
+ });
55
+ });
56
+ //# sourceMappingURL=setup-probe.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-probe.test.js","sourceRoot":"","sources":["../../src/__tests__/setup-probe.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=smtp-probe.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp-probe.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/smtp-probe.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ import { EventEmitter } from "node:events";
3
+ const state = vi.hoisted(() => ({ transports: [] }));
4
+ vi.mock("nodemailer", () => ({ createTransport: vi.fn() }));
5
+ const { createTransport } = await import("nodemailer");
6
+ const { testConnection } = await import("../lib/smtp.js");
7
+ function armTransport(overrides = {}) {
8
+ createTransport.mockImplementationOnce(() => {
9
+ const t = Object.assign(new EventEmitter(), {
10
+ verify: vi.fn().mockResolvedValue(true),
11
+ close: vi.fn(),
12
+ sendMail: vi.fn(),
13
+ ...overrides,
14
+ });
15
+ state.transports.push(t);
16
+ return t;
17
+ });
18
+ }
19
+ const config = {
20
+ email: "a@b.test", agentAddress: "a@b.test",
21
+ imapHost: "imap.b.test", imapPort: 993, imapSecurity: "tls",
22
+ smtpHost: "smtp.b.test", smtpPort: 587, smtpSecurity: "starttls",
23
+ };
24
+ beforeEach(() => {
25
+ state.transports.length = 0;
26
+ vi.spyOn(process.stderr, "write").mockReturnValue(true);
27
+ });
28
+ describe("smtp.testConnection", () => {
29
+ it("success path: closes transport; a late 'error' emit is contained", async () => {
30
+ armTransport();
31
+ const msg = await testConnection(config, "good");
32
+ expect(msg).toBeNull();
33
+ const t = state.transports[0];
34
+ expect(t.close).toHaveBeenCalled();
35
+ expect(() => t.emit("error", new Error("late 421"))).not.toThrow();
36
+ });
37
+ it("failure path: classification unchanged, transport closed, late error contained", async () => {
38
+ armTransport({ verify: vi.fn().mockRejectedValue(new Error("535 Authentication failed")) });
39
+ const msg = await testConnection(config, "bad");
40
+ expect(msg).toMatch(/SMTP authentication failed/);
41
+ const t = state.transports[0];
42
+ expect(t.close).toHaveBeenCalled();
43
+ expect(() => t.emit("error", new Error("late"))).not.toThrow();
44
+ });
45
+ });
46
+ //# sourceMappingURL=smtp-probe.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp-probe.test.js","sourceRoot":"","sources":["../../src/__tests__/smtp-probe.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  import { initStderrTee } from "../../../../lib/mcp-stderr-tee/dist/index.js";
2
2
  initStderrTee("email");
3
+ // After the tee (so guard lines are captured), before everything else (so no
4
+ // window exists where a probe error can escape). Never throws at module init.
5
+ import { installSetupProbeGuard } from "./lib/setup-probe.js";
6
+ installSetupProbeGuard();
3
7
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
8
  import { eagerTool } from "../../../../lib/mcp-eager/dist/index.js";
5
9
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -7,6 +11,7 @@ import { z } from "zod";
7
11
  import { emailSetup } from "./tools/email-setup.js";
8
12
  import { emailRead } from "./tools/email-read.js";
9
13
  import { emailSend } from "./tools/email-send.js";
14
+ import { emailDraft } from "./tools/email-draft.js";
10
15
  import { emailSearch } from "./tools/email-search.js";
11
16
  import { emailOtpExtract } from "./tools/email-otp-extract.js";
12
17
  import { emailStatus } from "./tools/email-status.js";
@@ -191,6 +196,45 @@ eagerTool(server, "email-send", "Send an email from the agent's email account vi
191
196
  }
192
197
  });
193
198
  // ===================================================================
199
+ // email-draft — compose an email into the mailbox Drafts folder (no send)
200
+ // ===================================================================
201
+ eagerTool(server, "email-draft", "Compose an email and save it unsent to the mailbox's Drafts folder for the operator to review and send by hand. Same inputs as email-send; nothing is dispatched. Use when the operator says 'draft it', 'leave it in drafts', 'don't send yet', or 'let me review before sending'.", {
202
+ to: z.string().email().describe("Recipient email address"),
203
+ subject: z.string().describe("Email subject line"),
204
+ body: z.string().describe("Plain text email body"),
205
+ html: z.string().optional().describe("Optional HTML email body"),
206
+ cc: z
207
+ .array(z.string().email())
208
+ .optional()
209
+ .describe("Optional CC recipients (visible in the message header). One or more email addresses."),
210
+ bcc: z
211
+ .array(z.string().email())
212
+ .optional()
213
+ .describe("Optional BCC recipients. Hidden — they receive the message but do not appear in any header."),
214
+ attachments: z
215
+ .array(z.string())
216
+ .optional()
217
+ .describe("Absolute local file paths to attach. Each must be a regular file inside the account directory and ≤25 MB. Omit for a text-only message."),
218
+ }, async (params) => {
219
+ if (!accountId)
220
+ return refuseNoAccount("email-draft");
221
+ try {
222
+ const text = await emailDraft({ ...params, accountId });
223
+ return { content: [{ type: "text", text }] };
224
+ }
225
+ catch (err) {
226
+ return {
227
+ content: [
228
+ {
229
+ type: "text",
230
+ text: `Failed to save email draft: ${err instanceof Error ? err.message : String(err)}`,
231
+ },
232
+ ],
233
+ isError: true,
234
+ };
235
+ }
236
+ });
237
+ // ===================================================================
194
238
  // email-search — search inbox by criteria
195
239
  // ===================================================================
196
240
  eagerTool(server, "email-search", "Search messages by sender, subject, body, or date range. Returns message list (from, subject, date — no body content). Supports pagination via before_uid cursor and folder selection (inbox or sent). Max 50 messages per request.", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -22,10 +22,11 @@ export declare const MAX_LIMIT = 50;
22
22
  * Resolve an IMAP folder name from a logical folder key.
23
23
  * - "inbox" → "INBOX"
24
24
  * - "sent" → discovered via \Sent special-use flag (RFC 6154)
25
+ * - "drafts" → discovered via \Drafts special-use flag (RFC 6154)
25
26
  *
26
27
  * Throws if the requested folder cannot be found on this server.
27
28
  */
28
- export declare function resolveFolderName(client: ImapFlow, folder: "inbox" | "sent"): Promise<string>;
29
+ export declare function resolveFolderName(client: ImapFlow, folder: "inbox" | "sent" | "drafts"): Promise<string>;
29
30
  /**
30
31
  * Strip HTML tags and decode common entities.
31
32
  * Used for extracting readable text from HTML-only email bodies.
@@ -130,7 +131,7 @@ export declare function extractBodyFromFetch(msg: {
130
131
  * Test IMAP connectivity and authentication.
131
132
  * Returns null on success, error message on failure.
132
133
  */
133
- export declare function testConnection(config: EmailConfig, password: string): Promise<string | null>;
134
+ export declare function testConnection(config: EmailConfig, password: string, token?: string): Promise<string | null>;
134
135
  /**
135
136
  * Check whether an IMAP envelope's TO or Cc field contains any of the target
136
137
  * addresses. Case-insensitive comparison. Strict: if the server returned
@@ -297,6 +298,18 @@ export declare function fetchEnvelopeByMessageId(config: EmailConfig, password:
297
298
  /**
298
299
  * Get the inbox message count.
299
300
  */
300
- export declare function getInboxCount(config: EmailConfig, password: string): Promise<number>;
301
+ export declare function getInboxCount(config: EmailConfig, password: string, token?: string): Promise<number>;
302
+ /**
303
+ * APPEND a composed RFC822 message to the mailbox's \Drafts special-use folder
304
+ * with the \Draft flag set — the message is stored unsent for operator review.
305
+ *
306
+ * Resolution is strict: when the server advertises no \Drafts special-use
307
+ * folder the call fails naming the mailbox; no fallback folder is ever picked.
308
+ * `uid` is the APPENDUID when the server supports UIDPLUS, else null.
309
+ */
310
+ export declare function appendDraft(config: EmailConfig, password: string, raw: Buffer): Promise<{
311
+ folder: string;
312
+ uid: number | null;
313
+ }>;
301
314
  export {};
302
315
  //# sourceMappingURL=imap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imap.d.ts","sourceRoot":"","sources":["../../src/lib/imap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imap.d.ts","sourceRoot":"","sources":["../../src/lib/imap.ts"],"names":[],"mappings":"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"}