@rubytech/create-maxy-code 0.1.280 → 0.1.281
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/package.json +1 -1
- package/payload/platform/lib/mcp-spawn-tee/dist/index.d.ts +31 -43
- package/payload/platform/lib/mcp-spawn-tee/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/mcp-spawn-tee/dist/index.js +112 -85
- package/payload/platform/lib/mcp-spawn-tee/dist/index.js.map +1 -1
- package/payload/platform/lib/mcp-spawn-tee/src/__tests__/spawn-tee.test.ts +111 -0
- package/payload/platform/lib/mcp-spawn-tee/src/index.ts +113 -84
- package/payload/platform/lib/mcp-spawn-tee/tsconfig.json +2 -1
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +3 -1
- package/payload/platform/plugins/docs/references/platform.md +2 -0
- package/payload/platform/plugins/email/PLUGIN.md +1 -1
- package/payload/platform/plugins/email/mcp/dist/__tests__/attachment-resolve.test.d.ts +2 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/attachment-resolve.test.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/attachment-resolve.test.js +68 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/attachment-resolve.test.js.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/email-setup.test.d.ts +2 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/email-setup.test.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/email-setup.test.js +55 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/email-setup.test.js.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/providers.test.d.ts +2 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/providers.test.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/providers.test.js +110 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/providers.test.js.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/recipient-filter.test.d.ts +2 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/recipient-filter.test.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/recipient-filter.test.js +57 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/recipient-filter.test.js.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/index.js +8 -1
- package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.d.ts +5 -0
- package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.js +35 -5
- package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +13 -8
- package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/imap.js +26 -15
- package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/ingest-batch.d.ts +8 -0
- package/payload/platform/plugins/email/mcp/dist/lib/ingest-batch.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/ingest-batch.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts +16 -5
- package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/providers.js +120 -13
- package/payload/platform/plugins/email/mcp/dist/lib/providers.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-fetch.js +3 -3
- package/payload/platform/plugins/email/mcp/dist/tools/email-fetch.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-reply.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-reply.js +5 -3
- package/payload/platform/plugins/email/mcp/dist/tools/email-reply.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-send.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-send.js +6 -3
- package/payload/platform/plugins/email/mcp/dist/tools/email-send.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-setup.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js +22 -4
- package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js.map +1 -1
- package/payload/platform/plugins/email/mcp/package.json +4 -2
- package/payload/platform/plugins/email/mcp/vitest.config.ts +9 -0
- package/payload/platform/plugins/email/references/email-reference.md +22 -5
- package/payload/platform/plugins/email/skills/email-composition/SKILL.md +1 -1
- package/payload/platform/plugins/graph/PLUGIN.md +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/kd-classify-account-dir.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/kd-classify-account-dir.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/kd-classify-account-dir.test.js +31 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/kd-classify-account-dir.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.d.ts +5 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.js +21 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.js.map +1 -1
- package/payload/platform/plugins/url-get/mcp/dist/tools/url-get.js +5 -5
- package/payload/platform/plugins/url-get/mcp/dist/tools/url-get.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +7 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/server/public/assets/AdminShell-FO766lOW.js +1 -0
- package/payload/server/public/assets/{Checkbox-2reCESkb.js → Checkbox-syHoU9nY.js} +1 -1
- package/payload/server/public/assets/{admin-BpnsTEa3.js → admin-0_VxffD5.js} +1 -1
- package/payload/server/public/assets/{arc-BgelqC_3.js → arc-BW1WhwmV.js} +1 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-xHbVjatf.js +1 -0
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-BabnAZJm.js → architectureDiagram-Q4EWVU46-DsionCio.js} +1 -1
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-BJzZqNsy.js → blockDiagram-DXYQGD6D-NOG5yVZk.js} +1 -1
- package/payload/server/public/assets/{browser-fgBRZ5gK.js → browser-Cxjkhtsk.js} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-By-xuh9F.js → c4Diagram-AHTNJAMY-DwFV1k9I.js} +1 -1
- package/payload/server/public/assets/channel-D8Go_zJk.js +1 -0
- package/payload/server/public/assets/{chunk-2KRD3SAO-Gj2dSpBl.js → chunk-2KRD3SAO-CKn-bEkI.js} +1 -1
- package/payload/server/public/assets/{chunk-336JU56O-2PXVPCUA.js → chunk-336JU56O-iJ4ISPCi.js} +2 -2
- package/payload/server/public/assets/chunk-426QAEUC-sWe0Iexz.js +1 -0
- package/payload/server/public/assets/{chunk-4BX2VUAB-9XIBlnC2.js → chunk-4BX2VUAB-B2mSmC97.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-Cr3mXPnI.js → chunk-4TB4RGXK-kKNYi2_i.js} +1 -1
- package/payload/server/public/assets/{chunk-55IACEB6-Ccg46J3A.js → chunk-55IACEB6-JLT9m7Hd.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-Cz9MvPKc.js → chunk-5FUZZQ4R-Car3r0he.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-BleOdlgO.js → chunk-5PVQY5BW-DR9EfLvj.js} +1 -1
- package/payload/server/public/assets/{chunk-67CJDMHE-CyCYCQWy.js → chunk-67CJDMHE-CCdP3Pdx.js} +1 -1
- package/payload/server/public/assets/{chunk-7N4EOEYR-KpT3uHzH.js → chunk-7N4EOEYR-bXgVzdM9.js} +1 -1
- package/payload/server/public/assets/{chunk-AA7GKIK3-BfOzbuxq.js → chunk-AA7GKIK3-CYeDvY8B.js} +1 -1
- package/payload/server/public/assets/{chunk-BSJP7CBP-Bq0M3wlv.js → chunk-BSJP7CBP-U0Fi-Ers.js} +1 -1
- package/payload/server/public/assets/{chunk-CIAEETIT-CR-2dNaL.js → chunk-CIAEETIT-C8QrV6Gg.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-egUGMTOS.js → chunk-EDXVE4YY-DLUWVRZV.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-CQohBEFw.js → chunk-ENJZ2VHE-B4bNJo6C.js} +1 -1
- package/payload/server/public/assets/{chunk-FMBD7UC4-DIxBUbLP.js → chunk-FMBD7UC4-DxAQS3UB.js} +1 -1
- package/payload/server/public/assets/{chunk-FOC6F5B3-C2694Zoq.js → chunk-FOC6F5B3-CyIK3zeY.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-DpXZKHyn.js → chunk-ICPOFSXX-Qzl8Ki0l.js} +2 -2
- package/payload/server/public/assets/{chunk-K5T4RW27-CUicG0Rp.js → chunk-K5T4RW27-7GcDzjyJ.js} +1 -1
- package/payload/server/public/assets/{chunk-KGLVRYIC-B5mPJhOr.js → chunk-KGLVRYIC-B7pAr9hf.js} +1 -1
- package/payload/server/public/assets/{chunk-LIHQZDEY-q81QhuMs.js → chunk-LIHQZDEY-DEoU2jrz.js} +1 -1
- package/payload/server/public/assets/{chunk-ORNJ4GCN-DgurdFZs.js → chunk-ORNJ4GCN-BwMFuN24.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-CxqMRu2d.js → chunk-OYMX7WX6-BenBO6O_.js} +1 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-CHE_iZO7.js +1 -0
- package/payload/server/public/assets/{chunk-U2HBQHQK-BSLctJC9.js → chunk-U2HBQHQK-DewM8R0D.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP--0AUeeFl.js → chunk-X2U36JSP-C22Q6Ea4.js} +1 -1
- package/payload/server/public/assets/{chunk-XPW4576I-D-hf9Bcn.js → chunk-XPW4576I-BA0a8Ygs.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-PvOhSwI9.js → chunk-YZCP3GAM-DfUUNTnA.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-1zPUlNWz.js → chunk-ZZ45TVLE-CUT6zma2.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BLb1mzrT.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-Ctj5qYTS.js +1 -0
- package/payload/server/public/assets/clone-DGZ2vydA.js +1 -0
- package/payload/server/public/assets/{cose-bilkent-S5V4N54A-Cvo-gkBd.js → cose-bilkent-S5V4N54A-Df_JmB8E.js} +1 -1
- package/payload/server/public/assets/{dagre-CMHsNfjP.js → dagre-CYXRIdv0.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-CM1DSx4E.js → dagre-KV5264BT-D4EGb60h.js} +1 -1
- package/payload/server/public/assets/{data-Cuynp6Y6.js → data-BOgwOWnw.js} +1 -1
- package/payload/server/public/assets/{diagram-5BDNPKRD-VDHiHwEI.js → diagram-5BDNPKRD-BzieCEfT.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-OKdufoeW.js → diagram-G4DWMVQ6-DDbO71XD.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-Yg6QdCA1.js → diagram-MMDJMWI5-DqQ_UXDA.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-CpEMZQDu.js → diagram-TYMM5635-CFyxA1aZ.js} +1 -1
- package/payload/server/public/assets/{dist-811BIK0R.js → dist-BmvZ8OaX.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-Dw5gAkFM.js → erDiagram-SMLLAGMA-BMaEBbOK.js} +1 -1
- package/payload/server/public/assets/{flatten-BsWEYbBB.js → flatten-Bo6YRmWl.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-Cy_R1XHz.js → flowDiagram-DWJPFMVM-De5ChZQP.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-BYARP_eH.js → ganttDiagram-T4ZO3ILL-CXEMPVaK.js} +1 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-CmHdoS27.js +1 -0
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-BGOe0unY.js → gitGraphDiagram-UUTBAWPF-OZedr_6y.js} +1 -1
- package/payload/server/public/assets/{graph-Ddg24bjy.js → graph-BqD2GjQd.js} +2 -2
- package/payload/server/public/assets/{graph-labels-eOrWYy0R.js → graph-labels-DSDTSBfM.js} +1 -1
- package/payload/server/public/assets/{graphlib-DaefxCga.js → graphlib-CN4nhD2U.js} +1 -1
- package/payload/server/public/assets/info-OMHHGYJF-DTA9msO-.js +1 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-CSqg4nRL.js +2 -0
- package/payload/server/public/assets/{isEmpty-BWl67LAZ.js → isEmpty-D6Kr-M1M.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-YrGuzpiI.js → ishikawaDiagram-UXIWVN3A-ChlzrZyx.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-EIykOcqg.js → journeyDiagram-VCZTEJTY-DsrK55ZO.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-BR0TC6Je.js → kanban-definition-6JOO6SKY-DYF-_Rym.js} +1 -1
- package/payload/server/public/assets/{line-DPGcT5IM.js → line-3zmwI8XK.js} +1 -1
- package/payload/server/public/assets/{linear-CPN03uSh.js → linear-COm19-p7.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-D7Iu4c9M.js → mermaid-parser.core-BrcX8-cl.js} +2 -2
- package/payload/server/public/assets/{mermaid.core-krXRpXn9.js → mermaid.core-CBdz3b1N.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-HwiCtPzN.js → mindmap-definition-QFDTVHPH-BqCqlYZb.js} +1 -1
- package/payload/server/public/assets/{ordinal-krseTxxN.js → ordinal-BDi6f4xk.js} +1 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-6GjqIKgu.js +1 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-T72DJ5JR.js +1 -0
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-xodxyWLe.js → pieDiagram-DEJITSTG-D5LiILuM.js} +1 -1
- package/payload/server/public/assets/{public-xVaPcg6i.js → public-udi_Z7la.js} +3 -3
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DuYYY4ZZ.js → quadrantDiagram-34T5L4WZ-C3iuI5l_.js} +1 -1
- package/payload/server/public/assets/radar-PYXPWWZC-x-6xW1dE.js +1 -0
- package/payload/server/public/assets/{reduce-tk-xY6Fv.js → reduce-CGi9ik8i.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-D0ta3kru.js → requirementDiagram-MS252O5E-CTPOw5qQ.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-KdHdlzvT.js → sankeyDiagram-XADWPNL6-D_5aVlYp.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-DoSFUTQZ.js → sequenceDiagram-FGHM5R23-D7h5vocM.js} +1 -1
- package/payload/server/public/assets/{src-Cpl1JzME.js → src-DLEIsjER.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-BLW0KiSA.js → stateDiagram-FHFEXIEX-DyZjuwPj.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BiW9pGXy.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-8QAzhYz1.js → timeline-definition-GMOUNBTQ-BqpVYJz_.js} +1 -1
- package/payload/server/public/assets/treeView-SZITEDCU-5-6wEryJ.js +1 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-DF48Cc86.js +1 -0
- package/payload/server/public/assets/{useSelectionMode-DlJsX-_X.js → useSelectionMode-BPzPjKP_.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-BKvfScOi.js → vennDiagram-DHZGUBPP-Czflml0e.js} +1 -1
- package/payload/server/public/assets/wardley-RL74JXVD-duKIa6Hq.js +1 -0
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-DaMfDpJ3.js → wardleyDiagram-NUSXRM2D-Cqz3pSTK.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-BIkNQlLa.js → xychartDiagram-5P7HB3ND-CS5dEuUO.js} +1 -1
- package/payload/server/public/browser.html +4 -4
- package/payload/server/public/data.html +5 -5
- package/payload/server/public/graph.html +6 -6
- package/payload/server/public/index.html +5 -5
- package/payload/server/public/public.html +4 -4
- package/payload/server/server.js +19 -39
- package/payload/server/public/assets/AdminShell-C6_5h1cC.js +0 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-YM-TtgPY.js +0 -1
- package/payload/server/public/assets/channel-BRPH0atd.js +0 -1
- package/payload/server/public/assets/chunk-426QAEUC-QhauxjvK.js +0 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-BDAQvtxz.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BJv89PB6.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DNUszH5M.js +0 -1
- package/payload/server/public/assets/clone-CREg9jLM.js +0 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-CtOPqykB.js +0 -1
- package/payload/server/public/assets/info-OMHHGYJF-Jba5enA8.js +0 -1
- package/payload/server/public/assets/infoDiagram-42DDH7IO-Df9BlkPA.js +0 -2
- package/payload/server/public/assets/packet-4T2RLAQJ-D_eWzeAP.js +0 -1
- package/payload/server/public/assets/pie-ZZUOXDRM-BDiy1Ob2.js +0 -1
- package/payload/server/public/assets/radar-PYXPWWZC-C5mlfmtg.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C5zlCV4X.js +0 -1
- package/payload/server/public/assets/treeView-SZITEDCU-CM-9m-cS.js +0 -1
- package/payload/server/public/assets/treemap-W4RFUUIX-DDHPB-Xh.js +0 -1
- package/payload/server/public/assets/wardley-RL74JXVD-CUb3Br4q.js +0 -1
- package/payload/server/public/assets/whatsapp-BE79pNh8.js +0 -1
- package/payload/server/public/whatsapp.html +0 -18
- /package/payload/server/public/assets/{_baseFor-BHtDrjIo.js → _baseFor-Cam2PbSt.js} +0 -0
- /package/payload/server/public/assets/{array-DetWRiSa.js → array-DYRGGQae.js} +0 -0
- /package/payload/server/public/assets/{chunk-CWOGyPgy.js → chunk-CnGqDkHZ.js} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-C9yNhe1u.js → cytoscape.esm-nWsJMTNI.js} +0 -0
- /package/payload/server/public/assets/{defaultLocale-_WRwicXn.js → defaultLocale-Du1XY3Dp.js} +0 -0
- /package/payload/server/public/assets/{init-sTEcj9YX.js → init-B5BXBRcm.js} +0 -0
- /package/payload/server/public/assets/{katex-s61Rgv6l.js → katex-HOUACuRw.js} +0 -0
- /package/payload/server/public/assets/{path-B0Ik7Tu9.js → path-CNO468J-.js} +0 -0
- /package/payload/server/public/assets/{rough.esm-DKRO8IF-.js → rough.esm-DRO6hWPh.js} +0 -0
|
@@ -20,20 +20,25 @@ export interface ProviderDefaults {
|
|
|
20
20
|
notes?: string;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* Look up provider defaults from an email address domain.
|
|
24
|
-
*
|
|
23
|
+
* Look up provider defaults from an email address domain. Static map first,
|
|
24
|
+
* then a Google-MX fallback for custom domains. Returns null for unknown
|
|
25
|
+
* domains and for Microsoft addresses (no usable IMAP defaults — they route to
|
|
26
|
+
* the outlook Graph plugin); the agent must ask the user for hosts only in the
|
|
27
|
+
* genuinely-unknown case.
|
|
25
28
|
*/
|
|
26
|
-
export declare function inferProvider(email: string): ProviderDefaults | null
|
|
29
|
+
export declare function inferProvider(email: string): Promise<ProviderDefaults | null>;
|
|
27
30
|
/**
|
|
28
31
|
* Get provider-specific setup notes for an email domain.
|
|
29
32
|
* Returns null for unknown domains or providers without notes.
|
|
30
33
|
*/
|
|
31
|
-
export declare function getProviderNotes(email: string): string | null
|
|
34
|
+
export declare function getProviderNotes(email: string): Promise<string | null>;
|
|
32
35
|
/**
|
|
33
36
|
* Result of classifying an email address before any password is requested.
|
|
34
37
|
*
|
|
35
38
|
* known → hosts inferred; `notes` carries the app-password / IMAP-enable
|
|
36
39
|
* requirement to relay first (may be undefined for hosts with no gotcha).
|
|
40
|
+
* redirect → a Microsoft address; the email-plugin IMAP path is dead, so
|
|
41
|
+
* connect via the `outlook` Graph plugin's `registerTool`.
|
|
37
42
|
* unsupported → the provider blocks IMAP/SMTP entirely; `reason` explains why.
|
|
38
43
|
* unknown → no host mapping; the operator must supply hosts explicitly.
|
|
39
44
|
*/
|
|
@@ -42,6 +47,12 @@ export type ProviderInfo = {
|
|
|
42
47
|
domain: string;
|
|
43
48
|
defaults: ProviderDefaults;
|
|
44
49
|
notes?: string;
|
|
50
|
+
} | {
|
|
51
|
+
status: "redirect";
|
|
52
|
+
domain: string;
|
|
53
|
+
plugin: string;
|
|
54
|
+
registerTool: string;
|
|
55
|
+
reason: string;
|
|
45
56
|
} | {
|
|
46
57
|
status: "unsupported";
|
|
47
58
|
domain: string;
|
|
@@ -56,5 +67,5 @@ export type ProviderInfo = {
|
|
|
56
67
|
* app-password / trusted-application requirement from the provider map, never
|
|
57
68
|
* from the model's training memory of each provider.
|
|
58
69
|
*/
|
|
59
|
-
export declare function describeProvider(email: string): ProviderInfo
|
|
70
|
+
export declare function describeProvider(email: string): Promise<ProviderInfo>;
|
|
60
71
|
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/lib/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/lib/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,KAAK,GAAG,UAAU,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,KAAK,GAAG,UAAU,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA4zBD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAKnF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG5E;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/E;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5F;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEjD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAoB3E"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* 465 → "tls" (SMTP implicit TLS / legacy SSL)
|
|
11
11
|
* 587 → "starttls" (SMTP submission with STARTTLS)
|
|
12
12
|
*/
|
|
13
|
+
import { resolveMx } from "node:dns/promises";
|
|
13
14
|
// ---------- Shared provider definitions ----------
|
|
14
15
|
// Alias domains reference the same object so updates stay in sync.
|
|
15
16
|
const gmail = {
|
|
@@ -19,8 +20,19 @@ const gmail = {
|
|
|
19
20
|
smtpHost: "smtp.gmail.com",
|
|
20
21
|
smtpPort: 587,
|
|
21
22
|
smtpSecurity: "starttls",
|
|
22
|
-
notes: "Requires an app-specific password (Google Account → Security → 2-Step Verification → App passwords
|
|
23
|
-
};
|
|
23
|
+
notes: "Requires an app-specific password — Google retired regular-password (basic auth) sign-in in May 2025, so the normal account password will not work. Turn on 2-Step Verification, then create the password at Google Account → Security → 2-Step Verification → App passwords → Mail. For a Google Workspace custom domain the Workspace admin must also allow app passwords (Admin console → Security → Less secure apps / app passwords); if it is disabled the account needs OAuth instead. Google Workspace custom domains use the same imap.gmail.com / smtp.gmail.com hosts.",
|
|
24
|
+
};
|
|
25
|
+
// Microsoft (consumer Outlook.com + Microsoft 365) no longer has a usable
|
|
26
|
+
// email-plugin IMAP path: Basic auth for Exchange Online is retired and M365
|
|
27
|
+
// app passwords stopped working on 1 March 2026. describeProvider and
|
|
28
|
+
// email-setup redirect Microsoft addresses to the outlook Graph plugin. This
|
|
29
|
+
// one constant is both the in-source note on the (now-intercepted) outlook
|
|
30
|
+
// entry and the redirect reason surfaced to the operator.
|
|
31
|
+
const MS_REDIRECT_REASON = "Microsoft retired Basic authentication for Exchange Online IMAP/POP, and Microsoft 365 app passwords stopped working on 1 March 2026. This is not a supported email-plugin IMAP path — connect Microsoft mail through the outlook Graph plugin (run outlook-account-register) instead.";
|
|
32
|
+
// Retained so its domains form the Microsoft static-redirect set (detected by
|
|
33
|
+
// `=== outlook` reference equality in resolveProvider) and to document, in
|
|
34
|
+
// source, why the IMAP path is dead. The IMAP/SMTP hosts are never surfaced —
|
|
35
|
+
// every Microsoft address redirects before reaching them.
|
|
24
36
|
const outlook = {
|
|
25
37
|
imapHost: "outlook.office365.com",
|
|
26
38
|
imapPort: 993,
|
|
@@ -28,7 +40,7 @@ const outlook = {
|
|
|
28
40
|
smtpHost: "smtp.office365.com",
|
|
29
41
|
smtpPort: 587,
|
|
30
42
|
smtpSecurity: "starttls",
|
|
31
|
-
notes:
|
|
43
|
+
notes: MS_REDIRECT_REASON,
|
|
32
44
|
};
|
|
33
45
|
const icloud = {
|
|
34
46
|
imapHost: "imap.mail.me.com",
|
|
@@ -636,22 +648,108 @@ const unsupportedProviders = {
|
|
|
636
648
|
"tutamail.com": "Tuta (formerly Tutanota) encrypts mailboxes end-to-end and offers no IMAP or SMTP access — it can only be used through Tuta's own apps or desktop client. This email account cannot be connected here.",
|
|
637
649
|
"keemail.me": "Tuta (formerly Tutanota) encrypts mailboxes end-to-end and offers no IMAP or SMTP access — it can only be used through Tuta's own apps or desktop client. This email account cannot be connected here.",
|
|
638
650
|
};
|
|
651
|
+
// ---------- MX-lookup fallback (shared resolution core) ----------
|
|
652
|
+
// Custom domains absent from the static map may still be Google-hosted
|
|
653
|
+
// (Google Workspace) or Microsoft 365. One MX lookup classifies both: Google
|
|
654
|
+
// MX → the gmail entry; Microsoft 365 MX → a redirect to the outlook Graph
|
|
655
|
+
// plugin (the email-plugin IMAP path for Microsoft is dead). Any other MX and
|
|
656
|
+
// resolution failure → unknown (unchanged behaviour).
|
|
657
|
+
/** Short, stable provider label for the observability line. */
|
|
658
|
+
function providerLabel(defaults) {
|
|
659
|
+
return defaults === gmail ? "gmail" : defaults.imapHost;
|
|
660
|
+
}
|
|
661
|
+
/** True when any MX exchange is a Google mail host. */
|
|
662
|
+
function isGoogleMx(exchanges) {
|
|
663
|
+
return exchanges.some((raw) => {
|
|
664
|
+
const ex = raw.toLowerCase().replace(/\.$/, "");
|
|
665
|
+
return (ex === "google.com" ||
|
|
666
|
+
ex === "googlemail.com" ||
|
|
667
|
+
ex.endsWith(".google.com") ||
|
|
668
|
+
ex.endsWith(".googlemail.com"));
|
|
669
|
+
});
|
|
670
|
+
}
|
|
671
|
+
/** True when any MX exchange is a Microsoft 365 mail host. */
|
|
672
|
+
function isMicrosoftMx(exchanges) {
|
|
673
|
+
return exchanges.some((raw) => {
|
|
674
|
+
const ex = raw.toLowerCase().replace(/\.$/, "");
|
|
675
|
+
return ex === "outlook.com" || ex.endsWith(".mail.protection.outlook.com");
|
|
676
|
+
});
|
|
677
|
+
}
|
|
678
|
+
/**
|
|
679
|
+
* Resolve a domain's MX records and classify them once. Emits one
|
|
680
|
+
* `[email] mx-lookup` line on every call (match, no-match, or error) so a
|
|
681
|
+
* detection miss is never silent. Returns "none" on an unrecognised MX set
|
|
682
|
+
* and on any resolution error.
|
|
683
|
+
*/
|
|
684
|
+
async function resolveByMx(domain) {
|
|
685
|
+
const start = Date.now();
|
|
686
|
+
try {
|
|
687
|
+
const records = await resolveMx(domain);
|
|
688
|
+
const exchanges = records.map((r) => r.exchange);
|
|
689
|
+
const matched = isGoogleMx(exchanges)
|
|
690
|
+
? "gmail"
|
|
691
|
+
: isMicrosoftMx(exchanges)
|
|
692
|
+
? "microsoft"
|
|
693
|
+
: "none";
|
|
694
|
+
const ms = Date.now() - start;
|
|
695
|
+
process.stderr.write(`[email] mx-lookup domain=${domain} records=${records.length} matched=${matched} ms=${ms}\n`);
|
|
696
|
+
return matched;
|
|
697
|
+
}
|
|
698
|
+
catch (err) {
|
|
699
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
700
|
+
process.stderr.write(`[email] mx-lookup domain=${domain} outcome=error err=${msg}\n`);
|
|
701
|
+
return "none";
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* Shared provider resolution: static map first, then the MX fallback. Emits
|
|
706
|
+
* `[email] provider-resolve` so the source (static|mx|unknown) and outcome of
|
|
707
|
+
* every lookup is greppable; Microsoft is logged as `status=redirect
|
|
708
|
+
* plugin=outlook`. Does NOT consult unsupportedProviders; callers that
|
|
709
|
+
* distinguish unsupported (describeProvider) check it first.
|
|
710
|
+
*/
|
|
711
|
+
async function resolveProvider(domain) {
|
|
712
|
+
const staticHit = providers[domain];
|
|
713
|
+
if (staticHit) {
|
|
714
|
+
if (staticHit === outlook) {
|
|
715
|
+
process.stderr.write(`[email] provider-resolve domain=${domain} source=static status=redirect plugin=outlook\n`);
|
|
716
|
+
return { kind: "microsoft" };
|
|
717
|
+
}
|
|
718
|
+
process.stderr.write(`[email] provider-resolve domain=${domain} source=static provider=${providerLabel(staticHit)}\n`);
|
|
719
|
+
return { kind: "known", defaults: staticHit };
|
|
720
|
+
}
|
|
721
|
+
const mx = await resolveByMx(domain);
|
|
722
|
+
if (mx === "gmail") {
|
|
723
|
+
process.stderr.write(`[email] provider-resolve domain=${domain} source=mx provider=${providerLabel(gmail)}\n`);
|
|
724
|
+
return { kind: "known", defaults: gmail };
|
|
725
|
+
}
|
|
726
|
+
if (mx === "microsoft") {
|
|
727
|
+
process.stderr.write(`[email] provider-resolve domain=${domain} source=mx status=redirect plugin=outlook\n`);
|
|
728
|
+
return { kind: "microsoft" };
|
|
729
|
+
}
|
|
730
|
+
process.stderr.write(`[email] provider-resolve domain=${domain} source=unknown provider=none\n`);
|
|
731
|
+
return { kind: "unknown" };
|
|
732
|
+
}
|
|
639
733
|
/**
|
|
640
|
-
* Look up provider defaults from an email address domain.
|
|
641
|
-
*
|
|
734
|
+
* Look up provider defaults from an email address domain. Static map first,
|
|
735
|
+
* then a Google-MX fallback for custom domains. Returns null for unknown
|
|
736
|
+
* domains and for Microsoft addresses (no usable IMAP defaults — they route to
|
|
737
|
+
* the outlook Graph plugin); the agent must ask the user for hosts only in the
|
|
738
|
+
* genuinely-unknown case.
|
|
642
739
|
*/
|
|
643
|
-
export function inferProvider(email) {
|
|
740
|
+
export async function inferProvider(email) {
|
|
644
741
|
const domain = email.split("@")[1]?.toLowerCase();
|
|
645
742
|
if (!domain)
|
|
646
743
|
return null;
|
|
647
|
-
|
|
744
|
+
const r = await resolveProvider(domain);
|
|
745
|
+
return r.kind === "known" ? r.defaults : null;
|
|
648
746
|
}
|
|
649
747
|
/**
|
|
650
748
|
* Get provider-specific setup notes for an email domain.
|
|
651
749
|
* Returns null for unknown domains or providers without notes.
|
|
652
750
|
*/
|
|
653
|
-
export function getProviderNotes(email) {
|
|
654
|
-
const defaults = inferProvider(email);
|
|
751
|
+
export async function getProviderNotes(email) {
|
|
752
|
+
const defaults = await inferProvider(email);
|
|
655
753
|
return defaults?.notes ?? null;
|
|
656
754
|
}
|
|
657
755
|
/**
|
|
@@ -660,16 +758,25 @@ export function getProviderNotes(email) {
|
|
|
660
758
|
* app-password / trusted-application requirement from the provider map, never
|
|
661
759
|
* from the model's training memory of each provider.
|
|
662
760
|
*/
|
|
663
|
-
export function describeProvider(email) {
|
|
761
|
+
export async function describeProvider(email) {
|
|
664
762
|
const domain = email.split("@")[1]?.toLowerCase() ?? null;
|
|
665
763
|
if (!domain)
|
|
666
764
|
return { status: "unknown", domain: null };
|
|
667
765
|
const unsupported = unsupportedProviders[domain];
|
|
668
766
|
if (unsupported)
|
|
669
767
|
return { status: "unsupported", domain, reason: unsupported };
|
|
670
|
-
const
|
|
671
|
-
if (
|
|
672
|
-
return {
|
|
768
|
+
const r = await resolveProvider(domain);
|
|
769
|
+
if (r.kind === "microsoft") {
|
|
770
|
+
return {
|
|
771
|
+
status: "redirect",
|
|
772
|
+
domain,
|
|
773
|
+
plugin: "outlook",
|
|
774
|
+
registerTool: "outlook-account-register",
|
|
775
|
+
reason: MS_REDIRECT_REASON,
|
|
776
|
+
};
|
|
777
|
+
}
|
|
778
|
+
if (r.kind === "known")
|
|
779
|
+
return { status: "known", domain, defaults: r.defaults, notes: r.defaults.notes };
|
|
673
780
|
return { status: "unknown", domain };
|
|
674
781
|
}
|
|
675
782
|
//# sourceMappingURL=providers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/lib/providers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/lib/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { loadCredentials, readPollState } from "../lib/credentials.js";
|
|
2
|
-
import { fetchSinceUid } from "../lib/imap.js";
|
|
2
|
+
import { fetchSinceUid, resolveDefaultRecipients } from "../lib/imap.js";
|
|
3
3
|
import { putBatch } from "../lib/ingest-batch.js";
|
|
4
4
|
/**
|
|
5
5
|
* List new inbox messages since a UID high-water mark, without writing to
|
|
@@ -16,7 +16,7 @@ export async function emailFetch(params) {
|
|
|
16
16
|
const { config, password } = credResult.credentials;
|
|
17
17
|
const pollState = await readPollState(params.accountId);
|
|
18
18
|
const sinceUid = params.since_uid ?? pollState?.lastFetchedUid ?? 0;
|
|
19
|
-
const { uidValidity, emails, maxUid } = await fetchSinceUid(config, password, sinceUid, config
|
|
19
|
+
const { uidValidity, emails, maxUid } = await fetchSinceUid(config, password, sinceUid, resolveDefaultRecipients(config));
|
|
20
20
|
console.error(`[email-fetch] tag=email-fetch listed=${emails.length} sinceUid=${sinceUid}`);
|
|
21
21
|
if (emails.length === 0) {
|
|
22
22
|
return `No new messages since UID ${sinceUid}.`;
|
|
@@ -25,7 +25,7 @@ export async function emailFetch(params) {
|
|
|
25
25
|
putBatch(params.accountId, {
|
|
26
26
|
uidValidity,
|
|
27
27
|
maxUid,
|
|
28
|
-
recipientAddress: config.
|
|
28
|
+
recipientAddress: config.email,
|
|
29
29
|
messages: emails,
|
|
30
30
|
});
|
|
31
31
|
const lines = emails.map((m) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-fetch.js","sourceRoot":"","sources":["../../src/tools/email-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"email-fetch.js","sourceRoot":"","sources":["../../src/tools/email-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-reply.d.ts","sourceRoot":"","sources":["../../src/tools/email-reply.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAUD,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"email-reply.d.ts","sourceRoot":"","sources":["../../src/tools/email-reply.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAUD,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA2ErE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { loadCredentials } from "../lib/credentials.js";
|
|
2
2
|
import { sendEmail, formatCopyNote } from "../lib/smtp.js";
|
|
3
3
|
import { fetchEnvelopeByMessageId } from "../lib/imap.js";
|
|
4
|
-
import { resolveOutboundAttachments, formatAttachNote } from "../lib/attachment-resolve.js";
|
|
4
|
+
import { resolveOutboundAttachments, formatAttachNote, accountDirFor } from "../lib/attachment-resolve.js";
|
|
5
5
|
/**
|
|
6
6
|
* Strip duplicate Re:/RE:/re: prefixes and prepend a single Re:.
|
|
7
7
|
*/
|
|
@@ -15,8 +15,10 @@ export async function emailReply(params) {
|
|
|
15
15
|
throw new Error(result.error);
|
|
16
16
|
const { config, password } = result.credentials;
|
|
17
17
|
// Validate attachment paths before any IMAP work so a bad path fails fast
|
|
18
|
-
// with a clean error and no envelope lookup or send is attempted.
|
|
19
|
-
|
|
18
|
+
// with a clean error and no envelope lookup or send is attempted. Task 714 —
|
|
19
|
+
// validate against the sending account's dir (params.accountId is
|
|
20
|
+
// authoritative), not an ambient ACCOUNT_DIR.
|
|
21
|
+
const attachments = resolveOutboundAttachments(accountDirFor(params.accountId), params.attachments);
|
|
20
22
|
// Resolve the original message via IMAP (the graph no longer stores
|
|
21
23
|
// per-message envelopes — see Task 445).
|
|
22
24
|
const envelope = await fetchEnvelopeByMessageId(config, password, params.messageId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-reply.js","sourceRoot":"","sources":["../../src/tools/email-reply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"email-reply.js","sourceRoot":"","sources":["../../src/tools/email-reply.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-send.d.ts","sourceRoot":"","sources":["../../src/tools/email-send.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"email-send.d.ts","sourceRoot":"","sources":["../../src/tools/email-send.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAyCnE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadCredentials } from "../lib/credentials.js";
|
|
2
2
|
import { sendEmail, formatCopyNote } from "../lib/smtp.js";
|
|
3
|
-
import { resolveOutboundAttachments, formatAttachNote } from "../lib/attachment-resolve.js";
|
|
3
|
+
import { resolveOutboundAttachments, formatAttachNote, accountDirFor } from "../lib/attachment-resolve.js";
|
|
4
4
|
export async function emailSend(params) {
|
|
5
5
|
const result = await loadCredentials(params.accountId);
|
|
6
6
|
if ("error" in result)
|
|
@@ -8,8 +8,11 @@ export async function emailSend(params) {
|
|
|
8
8
|
const { config, password } = result.credentials;
|
|
9
9
|
// Validate attachment paths before the SMTP try so a bad path surfaces as a
|
|
10
10
|
// clean validation error (no email sent) rather than picking up the alias
|
|
11
|
-
// diagnostic below.
|
|
12
|
-
|
|
11
|
+
// diagnostic below. Task 714 — validate against the sending account's dir
|
|
12
|
+
// (params.accountId is authoritative — it is the account whose credentials
|
|
13
|
+
// just loaded), not an ambient ACCOUNT_DIR. Falls back to the resolver's env
|
|
14
|
+
// path when undefined.
|
|
15
|
+
const attachments = resolveOutboundAttachments(accountDirFor(params.accountId), params.attachments);
|
|
13
16
|
try {
|
|
14
17
|
// Append AI provenance disclosure (EU AI Act Code of Practice)
|
|
15
18
|
const bodyWithDisclosure = params.body + "\n\n---\nThis message was generated by AI.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-send.js","sourceRoot":"","sources":["../../src/tools/email-send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"email-send.js","sourceRoot":"","sources":["../../src/tools/email-send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAa3G,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAkB;IAChD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,OAAO,IAAI,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;IAEhD,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,6EAA6E;IAC7E,uBAAuB;IACvB,MAAM,WAAW,GAAG,0BAA0B,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEpG,IAAI,CAAC;QACH,+DAA+D;QAC/D,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,GAAG,4CAA4C,CAAC;QACtF,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI;YACpC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,sJAAsJ;YACtK,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE;YACtD,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,kBAAkB;YACxB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE;YACrC,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,iBAAiB,MAAM,CAAC,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,WAAW,CAAC,iBAAiB,SAAS,GAAG,CAAC;IACzI,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,GAAG,GAAG,uBAAuB,MAAM,CAAC,YAAY,sBAAsB,MAAM,CAAC,KAAK,iGAAiG,CACpL,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-setup.d.ts","sourceRoot":"","sources":["../../src/tools/email-setup.ts"],"names":[],"mappings":"AA0CA,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC,
|
|
1
|
+
{"version":3,"file":"email-setup.d.ts","sourceRoot":"","sources":["../../src/tools/email-setup.ts"],"names":[],"mappings":"AA0CA,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC,CAuJD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
2
|
import { writeConfig, writePassword, removeConfig, checkAddressBinding, writeBindingConfig, } from "../lib/credentials.js";
|
|
3
|
-
import {
|
|
3
|
+
import { describeProvider } from "../lib/providers.js";
|
|
4
4
|
import * as imap from "../lib/imap.js";
|
|
5
5
|
import * as smtp from "../lib/smtp.js";
|
|
6
6
|
/**
|
|
@@ -37,9 +37,27 @@ function stripStaleEmailFetchCron() {
|
|
|
37
37
|
}
|
|
38
38
|
export async function emailSetup(params) {
|
|
39
39
|
const { email, password, accountId } = params;
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
// Resolve the provider once (static map → MX fallback). This runs regardless
|
|
41
|
+
// of supplied hosts, because a Microsoft address must be refused even when the
|
|
42
|
+
// operator hand-enters office365 hosts: the email-plugin IMAP path is dead
|
|
43
|
+
// (Basic auth retired; M365 app passwords ended 1 March 2026). Microsoft mail
|
|
44
|
+
// connects through the outlook Graph plugin, not email-setup.
|
|
45
|
+
const info = await describeProvider(email);
|
|
46
|
+
if (info.status === "redirect") {
|
|
47
|
+
process.stderr.write(`[email] setup-redirect domain=${info.domain} target=${info.plugin} reason=ms-basic-auth-retired\n`);
|
|
48
|
+
return {
|
|
49
|
+
success: false,
|
|
50
|
+
message: `${email} is a Microsoft (Outlook.com / Microsoft 365) address. ${info.reason} Do not retry email-setup for this address — run ${info.registerTool} on the ${info.plugin} plugin to connect it.`,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
// Use inferred host defaults only when a host is actually missing. When the
|
|
54
|
+
// operator supplies both hosts, the inferred fields are discarded below by the
|
|
55
|
+
// `??` chain and the domain-derived note could describe a different provider
|
|
56
|
+
// than the hosts in use, so both are skipped. The describeProvider call above
|
|
57
|
+
// is the single resolution; notes come from the same result.
|
|
58
|
+
const needsInference = !params.imapHost || !params.smtpHost;
|
|
59
|
+
const provider = needsInference && info.status === "known" ? info.defaults : null;
|
|
60
|
+
const providerNotes = needsInference && info.status === "known" ? info.notes : undefined;
|
|
43
61
|
const agentAddress = params.agentAddress?.trim() || email;
|
|
44
62
|
const config = {
|
|
45
63
|
email,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-setup.js","sourceRoot":"","sources":["../../src/tools/email-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EACL,WAAW,EAAE,aAAa,EAAE,YAAY,EACxC,mBAAmB,EAAE,kBAAkB,GACxC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"email-setup.js","sourceRoot":"","sources":["../../src/tools/email-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc",
|
|
9
|
-
"start": "node dist/index.js"
|
|
9
|
+
"start": "node dist/index.js",
|
|
10
|
+
"test": "vitest run"
|
|
10
11
|
},
|
|
11
12
|
"dependencies": {
|
|
12
13
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
"devDependencies": {
|
|
18
19
|
"@types/node": "^22.0.0",
|
|
19
20
|
"@types/nodemailer": "^6.4.17",
|
|
20
|
-
"typescript": "^5.7.0"
|
|
21
|
+
"typescript": "^5.7.0",
|
|
22
|
+
"vitest": "^4.1.7"
|
|
21
23
|
}
|
|
22
24
|
}
|
|
@@ -6,9 +6,10 @@ Full reference for the email plugin. Load with `plugin-read` when detailed confi
|
|
|
6
6
|
|
|
7
7
|
Setup is two steps in plain chat, in this order. **Do the provider lookup before asking for any password** — most providers reject the normal login password and require a credential the operator has to mint in the provider's own settings, so asking for "the password" first sends them down a path that cannot work.
|
|
8
8
|
|
|
9
|
-
**Step 1 — look up the provider.** As soon as you have the email address, call `email-provider-info` with it. The tool returns one of
|
|
9
|
+
**Step 1 — look up the provider.** As soon as you have the email address, call `email-provider-info` with it. The tool returns one of four outcomes:
|
|
10
10
|
|
|
11
11
|
- **Known provider** — it gives the IMAP/SMTP hosts (already inferred, no need to ask) and the provider's specific requirement: an app-specific password, a trusted-device/IMAP toggle, enabling IMAP on a paid plan, etc. Relay that requirement to the operator and wait for them to create the credential in their provider's settings. Name the provider and the step it needs — that is the whole point of this tool.
|
|
12
|
+
- **Microsoft (redirect)** — an Outlook.com / Hotmail / Live / Microsoft 365 address (consumer domains, or a custom domain whose MX is Microsoft). The email plugin's IMAP path for Microsoft is dead — Microsoft retired Basic auth for Exchange Online and M365 app passwords stopped working on 1 March 2026 — so the tool does **not** return hosts. Do not call `email-setup`. Connect the account through the `outlook` Graph plugin instead: run `outlook-account-register`. See § Microsoft / Microsoft 365 below.
|
|
12
13
|
- **Unsupported provider** — some providers (e.g. Tuta/Tutanota) deliberately offer no IMAP/SMTP at all. The tool says so; tell the operator this account cannot be connected here, and stop.
|
|
13
14
|
- **Unknown provider** — no host mapping. Ask the operator for the IMAP host/port and SMTP host/port (their provider's "mail client" / "IMAP/SMTP" help page lists these) along with the password.
|
|
14
15
|
|
|
@@ -28,6 +29,22 @@ On success, confirm "credentials stored" and the inbox count. On failure, relay
|
|
|
28
29
|
|
|
29
30
|
The agent never displays stored passwords.
|
|
30
31
|
|
|
32
|
+
### Google / Google Workspace
|
|
33
|
+
|
|
34
|
+
`email-provider-info` returns the gmail hosts for a Google address by either path: the `gmail.com` / `googlemail.com` static entry, or — for a Google Workspace custom domain (e.g. `name@company.co.uk` whose mail is hosted by Google) — MX detection. A Workspace custom domain is no longer `unknown`: the tool resolves its MX records, sees Google as the mail host, and returns `imap.gmail.com` / `smtp.gmail.com`. There is no host guessing.
|
|
35
|
+
|
|
36
|
+
For any Google address, **require an app password — never the regular account password.** Google retired regular-password (basic auth) sign-in in May 2025, so the login password cannot work for IMAP/SMTP. Walk the operator through generating one: Google Account → Security → turn on 2-Step Verification (required first) → App passwords → Mail → generate. Paste that 16-character value as `password` to `email-setup`. Do not ask for the normal password at any point.
|
|
37
|
+
|
|
38
|
+
For a Workspace custom domain there is one extra dependency: the Workspace admin must allow app passwords (Admin console → Security). If the app password is rejected at `email-setup` — an authentication failure with an app password supplied — the tenant has app passwords disabled, and the account needs OAuth instead (Task 708, not yet shipped). Relay that to the operator rather than retrying the password.
|
|
39
|
+
|
|
40
|
+
### Microsoft / Microsoft 365
|
|
41
|
+
|
|
42
|
+
Microsoft mail does not go through the email plugin. Microsoft retired Basic authentication for Exchange Online IMAP/POP, and Microsoft 365 app passwords stopped working on 1 March 2026, so there is no IMAP path left — for consumer Outlook.com / Hotmail / Live / MSN addresses or for a custom domain whose mail is hosted by Microsoft 365 (MX records ending in `mail.protection.outlook.com`).
|
|
43
|
+
|
|
44
|
+
`email-provider-info` recognises both — the static consumer domains, and a custom M365 domain via MX detection — and returns the **redirect** outcome rather than IMAP hosts. `email-setup` likewise refuses a Microsoft address (even if you hand it `outlook.office365.com` hosts) and points back here; it never attempts a connection.
|
|
45
|
+
|
|
46
|
+
Connect the account through the **`outlook` Graph plugin** instead: run `outlook-account-register`. That plugin authorises over OAuth — it opens a Microsoft sign-in for the operator (in the headless browser) and stores the token; there is no password or app password to ask for. After registration, Microsoft mail is read with the `outlook-mail-list` / `outlook-mail-search` tools, not `email-read` / `email-search`.
|
|
47
|
+
|
|
31
48
|
## Reading and Searching
|
|
32
49
|
|
|
33
50
|
`email-read` and `email-search` return message metadata only: UID, sender, subject, and date. Body content is not included — present results as a message list without commenting on missing bodies.
|
|
@@ -76,11 +93,11 @@ Both `email-send` and `email-reply` accept an optional `attachments` array of ab
|
|
|
76
93
|
When `agentAddress` is set and differs from the auth email:
|
|
77
94
|
|
|
78
95
|
- **Sending:** emails are sent with the agent address as the From header. SMTP authentication still uses the auth email.
|
|
79
|
-
- **Reading/searching:**
|
|
80
|
-
- **OTP extraction:**
|
|
96
|
+
- **Reading/searching/fetching:** emails whose **To or Cc** header contains **either the login (auth email) or the agent address** are returned. `email-read`, `email-search`, and `email-fetch` apply the same `{login, alias}` recipient set, inspecting both To and Cc, so a reply that arrives at the login or Cc's the alias is not hidden. Pass an explicit `to=` (read/search) to narrow to one address.
|
|
97
|
+
- **OTP extraction:** OTPs addressed (To or Cc) to the login or the agent address are found.
|
|
81
98
|
- **Status:** reports both the agent address and the auth email.
|
|
82
99
|
|
|
83
|
-
When `agentAddress` is not set or matches the auth email, all tools behave as before — no
|
|
100
|
+
When `agentAddress` is not set or matches the auth email, all tools behave as before — no recipient filter, From header uses the auth email.
|
|
84
101
|
|
|
85
102
|
## Email Persistence
|
|
86
103
|
|
|
@@ -95,7 +112,7 @@ Properties of the persistence layer:
|
|
|
95
112
|
|
|
96
113
|
- **Operator-initiated only.** No `setInterval`, cron, or systemd timer ever invokes `email-fetch`. The operator drives every cycle.
|
|
97
114
|
- **Deduplication:** Each archive is keyed by `conversationIdentity` (sha256 over `accountId + sortedParticipantElementIds`). Re-ingesting the same thread delta-appends new sections rather than duplicating.
|
|
98
|
-
- **Alias filtering:**
|
|
115
|
+
- **Alias filtering:** Emails whose To or Cc carries the agent's `agentAddress` **or** the login (auth email) are listed by `email-fetch` and ingested. The fetch path uses the same `{login, alias}` recipient set, inspecting To and Cc, as `email-read`/`email-search`; when no distinct alias is configured no recipient filter is applied and every message in the UID window is listed.
|
|
99
116
|
- **Semantic search:** Sections are vector-indexed via `section_embedding`, enabling natural-language search via `email-graph-query` that ranks parent archives by their best-matching section.
|
|
100
117
|
- **Isolation:** Each agent sees only archives whose participants resolve to its own account scope, even when sharing a catchall mailbox.
|
|
101
118
|
|