@rubytech/create-sitedesk-code 0.1.519 → 0.1.521

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 (317) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/docs/superpowers/plans/2026-07-28-task-2097-email-signature-set.md +65 -0
  3. package/payload/platform/docs/superpowers/specs/2026-07-28-task-2097-email-signature-set-design.md +155 -0
  4. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +4 -2
  5. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +12 -0
  6. package/payload/platform/plugins/cloudflare/bin/portal-assemble.mjs +187 -0
  7. package/payload/platform/plugins/cloudflare/bin/portal-enrol.mjs +46 -5
  8. package/payload/platform/plugins/cloudflare/mcp/__tests__/auth-route.test.ts +19 -7
  9. package/payload/platform/plugins/cloudflare/mcp/__tests__/authorize.test.ts +154 -38
  10. package/payload/platform/plugins/cloudflare/mcp/__tests__/file-routes.test.ts +100 -29
  11. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-assemble.test.ts +143 -0
  12. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-delete-withdraw.test.ts +12 -5
  13. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-directory-listing.test.ts +15 -3
  14. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-enrol.test.ts +105 -11
  15. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-indexed-download.test.ts +15 -2
  16. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-moved-download.test.ts +9 -5
  17. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-schema-shape.test.ts +47 -5
  18. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-session-grant.test.ts +26 -2
  19. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-target.test.ts +12 -4
  20. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-upload-multipart.test.ts +23 -15
  21. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-upload-target.test.ts +23 -15
  22. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-uploads-listing.test.ts +8 -0
  23. package/payload/platform/plugins/cloudflare/mcp/__tests__/skill-contract.test.ts +23 -6
  24. package/payload/platform/plugins/cloudflare/mcp/__tests__/upload-route.test.ts +36 -20
  25. package/payload/platform/plugins/cloudflare/skills/data-portal/SKILL.md +85 -22
  26. package/payload/platform/plugins/cloudflare/skills/data-portal/schema.sql +47 -7
  27. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/_lib/authorize.ts +27 -18
  28. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/_lib/ratelimit.ts +10 -3
  29. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/_lib/session.ts +27 -11
  30. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/_lib/target.ts +18 -9
  31. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/_lib/types.ts +16 -0
  32. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/auth.ts +16 -4
  33. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/delete.ts +26 -11
  34. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/download.ts +14 -10
  35. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/files.ts +13 -9
  36. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/upload.ts +42 -22
  37. package/payload/platform/plugins/cloudflare/skills/data-portal/template/wrangler.toml +17 -4
  38. package/payload/platform/plugins/docs/references/admin-ui.md +1 -1
  39. package/payload/platform/plugins/email/.claude-plugin/plugin.json +1 -1
  40. package/payload/platform/plugins/email/PLUGIN.md +20 -1
  41. package/payload/platform/plugins/email/mcp/dist/__tests__/attachment-metadata-calendar.test.js +46 -1
  42. package/payload/platform/plugins/email/mcp/dist/__tests__/attachment-metadata-calendar.test.js.map +1 -1
  43. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-list-tool.test.d.ts +2 -0
  44. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-list-tool.test.d.ts.map +1 -0
  45. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-list-tool.test.js +142 -0
  46. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-list-tool.test.js.map +1 -0
  47. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-list.test.d.ts +2 -0
  48. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-list.test.d.ts.map +1 -0
  49. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-list.test.js +153 -0
  50. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-list.test.js.map +1 -0
  51. package/payload/platform/plugins/email/mcp/dist/__tests__/email-signature-set.test.d.ts +2 -0
  52. package/payload/platform/plugins/email/mcp/dist/__tests__/email-signature-set.test.d.ts.map +1 -0
  53. package/payload/platform/plugins/email/mcp/dist/__tests__/email-signature-set.test.js +203 -0
  54. package/payload/platform/plugins/email/mcp/dist/__tests__/email-signature-set.test.js.map +1 -0
  55. package/payload/platform/plugins/email/mcp/dist/index.js +69 -0
  56. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
  57. package/payload/platform/plugins/email/mcp/dist/lib/compose.d.ts.map +1 -1
  58. package/payload/platform/plugins/email/mcp/dist/lib/compose.js +5 -7
  59. package/payload/platform/plugins/email/mcp/dist/lib/compose.js.map +1 -1
  60. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +56 -0
  61. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
  62. package/payload/platform/plugins/email/mcp/dist/lib/imap.js +111 -4
  63. package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
  64. package/payload/platform/plugins/email/mcp/dist/lib/signature.d.ts +38 -0
  65. package/payload/platform/plugins/email/mcp/dist/lib/signature.d.ts.map +1 -1
  66. package/payload/platform/plugins/email/mcp/dist/lib/signature.js +67 -2
  67. package/payload/platform/plugins/email/mcp/dist/lib/signature.js.map +1 -1
  68. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-list.d.ts +10 -0
  69. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-list.d.ts.map +1 -0
  70. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-list.js +73 -0
  71. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-list.js.map +1 -0
  72. package/payload/platform/plugins/email/mcp/dist/tools/email-signature-set.d.ts +18 -0
  73. package/payload/platform/plugins/email/mcp/dist/tools/email-signature-set.d.ts.map +1 -0
  74. package/payload/platform/plugins/email/mcp/dist/tools/email-signature-set.js +38 -0
  75. package/payload/platform/plugins/email/mcp/dist/tools/email-signature-set.js.map +1 -0
  76. package/payload/platform/plugins/email/references/email-reference.md +15 -3
  77. package/payload/platform/plugins/email/skills/email-composition/SKILL.md +10 -0
  78. package/payload/platform/plugins/email/skills/email-signature/SKILL.md +61 -0
  79. package/payload/platform/plugins/scheduling/PLUGIN.md +8 -0
  80. package/payload/platform/plugins/scheduling/mcp/dist/index.js +26 -15
  81. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  82. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/schedule-audit.test.d.ts +2 -0
  83. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/schedule-audit.test.d.ts.map +1 -0
  84. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/schedule-audit.test.js +48 -0
  85. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/schedule-audit.test.js.map +1 -0
  86. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.d.ts +24 -0
  87. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.d.ts.map +1 -0
  88. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.js +33 -0
  89. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.js.map +1 -0
  90. package/payload/platform/plugins/scheduling/mcp/dist/scripts/reconcile-bookings.js +22 -1
  91. package/payload/platform/plugins/scheduling/mcp/dist/scripts/reconcile-bookings.js.map +1 -1
  92. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-cancel-meeting.test.d.ts +2 -0
  93. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-cancel-meeting.test.d.ts.map +1 -0
  94. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-cancel-meeting.test.js +30 -0
  95. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-cancel-meeting.test.js.map +1 -0
  96. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-get-meeting.test.d.ts +2 -0
  97. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-get-meeting.test.d.ts.map +1 -0
  98. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-get-meeting.test.js +43 -0
  99. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-get-meeting.test.js.map +1 -0
  100. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list.test.d.ts +2 -0
  101. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list.test.d.ts.map +1 -0
  102. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list.test.js +87 -0
  103. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list.test.js.map +1 -0
  104. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-meeting.test.d.ts +2 -0
  105. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-meeting.test.d.ts.map +1 -0
  106. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-meeting.test.js +48 -0
  107. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-meeting.test.js.map +1 -0
  108. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.d.ts.map +1 -1
  109. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.js +14 -1
  110. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.js.map +1 -1
  111. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.d.ts +4 -1
  112. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.d.ts.map +1 -1
  113. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.js +39 -2
  114. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.js.map +1 -1
  115. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts +4 -1
  116. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts.map +1 -1
  117. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js +50 -1
  118. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js.map +1 -1
  119. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts.map +1 -1
  120. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js +43 -1
  121. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js.map +1 -1
  122. package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +3 -1
  123. package/payload/platform/scripts/check-architecture-skill-no-drift.mjs +20 -6
  124. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  125. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +2 -0
  126. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  127. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +17 -5
  128. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  129. package/payload/platform/services/whatsapp-channel/dist/notification.js +30 -6
  130. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  131. package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
  132. package/payload/platform/services/whatsapp-channel/dist/server.js +53 -21
  133. package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
  134. package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts +16 -0
  135. package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts.map +1 -1
  136. package/payload/platform/services/whatsapp-channel/dist/turn-follow.js +41 -2
  137. package/payload/platform/services/whatsapp-channel/dist/turn-follow.js.map +1 -1
  138. package/payload/platform/templates/specialists/agents/personal-assistant.md +1 -1
  139. package/payload/server/{chunk-TIIWMF5G.js → chunk-AZLT4LVO.js} +40 -7
  140. package/payload/server/{manager-B6OFOXSW.js → manager-CQBSUJXR.js} +1 -1
  141. package/payload/server/public/activity.html +5 -5
  142. package/payload/server/public/agents.html +4 -4
  143. package/payload/server/public/assets/AdminLoginScreens-Dar_MMJm.js +1 -0
  144. package/payload/server/public/assets/AdminLoginScreens-Dar_MMJm.js.br +0 -0
  145. package/payload/server/public/assets/AdminLoginScreens-Dar_MMJm.js.gz +0 -0
  146. package/payload/server/public/assets/AdminShell-CpaI2F_p.js +2 -0
  147. package/payload/server/public/assets/AdminShell-CpaI2F_p.js.br +0 -0
  148. package/payload/server/public/assets/AdminShell-CpaI2F_p.js.gz +0 -0
  149. package/payload/server/public/assets/{activity-DOsfKzT3.js → activity-B1rt4GIy.js} +1 -1
  150. package/payload/server/public/assets/activity-B1rt4GIy.js.br +0 -0
  151. package/payload/server/public/assets/activity-B1rt4GIy.js.gz +0 -0
  152. package/payload/server/public/assets/admin-DE3lLNje.js +1 -0
  153. package/payload/server/public/assets/admin-DE3lLNje.js.br +0 -0
  154. package/payload/server/public/assets/admin-DE3lLNje.js.gz +0 -0
  155. package/payload/server/public/assets/{agents-DqDnZTH_.js → agents-BXq8woVf.js} +1 -1
  156. package/payload/server/public/assets/agents-BXq8woVf.js.br +0 -0
  157. package/payload/server/public/assets/agents-BXq8woVf.js.gz +0 -0
  158. package/payload/server/public/assets/{browser-FL17Dfp0.js → browser-1QSCPl3X.js} +1 -1
  159. package/payload/server/public/assets/browser-1QSCPl3X.js.br +0 -0
  160. package/payload/server/public/assets/browser-1QSCPl3X.js.gz +0 -0
  161. package/payload/server/public/assets/{calendar-CLfLvsnV.js → calendar-D009qWVV.js} +1 -1
  162. package/payload/server/public/assets/calendar-D009qWVV.js.br +0 -0
  163. package/payload/server/public/assets/calendar-D009qWVV.js.gz +0 -0
  164. package/payload/server/public/assets/chat-CUg1fTqJ.js +1 -0
  165. package/payload/server/public/assets/chat-CUg1fTqJ.js.br +1 -0
  166. package/payload/server/public/assets/chat-CUg1fTqJ.js.gz +0 -0
  167. package/payload/server/public/assets/chevron-left-C2JEy7uU.js +1 -0
  168. package/payload/server/public/assets/chevron-left-C2JEy7uU.js.br +0 -0
  169. package/payload/server/public/assets/chevron-right-DWa047Ys.js +1 -0
  170. package/payload/server/public/assets/chevron-right-DWa047Ys.js.br +0 -0
  171. package/payload/server/public/assets/clock-C3OqfCnn.js +1 -0
  172. package/payload/server/public/assets/clock-C3OqfCnn.js.br +0 -0
  173. package/payload/server/public/assets/clock-C3OqfCnn.js.gz +0 -0
  174. package/payload/server/public/assets/data-Bu_yCScC.js +1 -0
  175. package/payload/server/public/assets/data-Bu_yCScC.js.br +0 -0
  176. package/payload/server/public/assets/data-Bu_yCScC.js.gz +0 -0
  177. package/payload/server/public/assets/{file-text-DNm0AzUz.js → file-text-DwGAfCsd.js} +1 -1
  178. package/payload/server/public/assets/file-text-DwGAfCsd.js.br +0 -0
  179. package/payload/server/public/assets/file-text-DwGAfCsd.js.gz +0 -0
  180. package/payload/server/public/assets/{graph-fAvmlVzh.js → graph-D-DGlfhW.js} +2 -2
  181. package/payload/server/public/assets/graph-D-DGlfhW.js.br +0 -0
  182. package/payload/server/public/assets/graph-D-DGlfhW.js.gz +0 -0
  183. package/payload/server/public/assets/{graph-labels-CwdkCxfs.js → graph-labels-BbX3fXzl.js} +1 -1
  184. package/payload/server/public/assets/graph-labels-BbX3fXzl.js.br +0 -0
  185. package/payload/server/public/assets/graph-labels-BbX3fXzl.js.gz +0 -0
  186. package/payload/server/public/assets/{maximize-2-B6tAPhC2.js → maximize-2-C_-KapxH.js} +1 -1
  187. package/payload/server/public/assets/maximize-2-C_-KapxH.js.br +0 -0
  188. package/payload/server/public/assets/maximize-2-C_-KapxH.js.gz +0 -0
  189. package/payload/server/public/assets/{operator-CTKvBVjk.js → operator-CFrZVcv6.js} +1 -1
  190. package/payload/server/public/assets/operator-CFrZVcv6.js.br +0 -0
  191. package/payload/server/public/assets/operator-CFrZVcv6.js.gz +0 -0
  192. package/payload/server/public/assets/{page-O5HkHQw4.js → page-CHt62f1_.js} +1 -1
  193. package/payload/server/public/assets/page-CHt62f1_.js.br +0 -0
  194. package/payload/server/public/assets/page-CHt62f1_.js.gz +0 -0
  195. package/payload/server/public/assets/page-E74MYB18.js +32 -0
  196. package/payload/server/public/assets/page-E74MYB18.js.br +0 -0
  197. package/payload/server/public/assets/page-E74MYB18.js.gz +0 -0
  198. package/payload/server/public/assets/{public-BF1rnVPa.js → public-CI6K1sNW.js} +1 -1
  199. package/payload/server/public/assets/public-CI6K1sNW.js.br +0 -0
  200. package/payload/server/public/assets/public-CI6K1sNW.js.gz +0 -0
  201. package/payload/server/public/assets/{rotate-ccw-B8TqfCy4.js → rotate-ccw-PWu_QGrD.js} +1 -1
  202. package/payload/server/public/assets/rotate-ccw-PWu_QGrD.js.br +0 -0
  203. package/payload/server/public/assets/rotate-ccw-PWu_QGrD.js.gz +0 -0
  204. package/payload/server/public/assets/routines-Cp3_XS7S.js +1 -0
  205. package/payload/server/public/assets/routines-Cp3_XS7S.js.br +0 -0
  206. package/payload/server/public/assets/routines-Cp3_XS7S.js.gz +0 -0
  207. package/payload/server/public/assets/skills-g8HvunPA.js +1 -0
  208. package/payload/server/public/assets/skills-g8HvunPA.js.br +0 -0
  209. package/payload/server/public/assets/skills-g8HvunPA.js.gz +0 -0
  210. package/payload/server/public/assets/{tasks-DePyOrRk.js → tasks-CMC_jDVm.js} +1 -1
  211. package/payload/server/public/assets/tasks-CMC_jDVm.js.br +0 -0
  212. package/payload/server/public/assets/tasks-CMC_jDVm.js.gz +0 -0
  213. package/payload/server/public/assets/{time-entry-format-D9gtnG01.js → time-entry-format-BXWuQ6Sw.js} +1 -1
  214. package/payload/server/public/assets/time-entry-format-BXWuQ6Sw.js.br +2 -0
  215. package/payload/server/public/assets/time-entry-format-BXWuQ6Sw.js.gz +0 -0
  216. package/payload/server/public/assets/{triangle-alert-DAtm2mLL.js → triangle-alert-BNshRC13.js} +1 -1
  217. package/payload/server/public/assets/triangle-alert-BNshRC13.js.br +0 -0
  218. package/payload/server/public/assets/triangle-alert-BNshRC13.js.gz +0 -0
  219. package/payload/server/public/assets/{useCopyFeedback-uMJT-p6i.js → useCopyFeedback-CwTZ9DqH.js} +1 -1
  220. package/payload/server/public/assets/useCopyFeedback-CwTZ9DqH.js.br +0 -0
  221. package/payload/server/public/assets/useCopyFeedback-CwTZ9DqH.js.gz +0 -0
  222. package/payload/server/public/assets/useSubAccountSwitcher-BuUYMDWl.js +14 -0
  223. package/payload/server/public/assets/useSubAccountSwitcher-BuUYMDWl.js.br +0 -0
  224. package/payload/server/public/assets/useSubAccountSwitcher-BuUYMDWl.js.gz +0 -0
  225. package/payload/server/public/assets/useSubAccountSwitcher-dzDnmWq9.css +1 -0
  226. package/payload/server/public/assets/useSubAccountSwitcher-dzDnmWq9.css.br +0 -0
  227. package/payload/server/public/assets/useSubAccountSwitcher-dzDnmWq9.css.gz +0 -0
  228. package/payload/server/public/assets/{useVoiceRecorder-BFrPC-s7.js → useVoiceRecorder-BGqV5R6u.js} +1 -1
  229. package/payload/server/public/assets/useVoiceRecorder-BGqV5R6u.js.br +0 -0
  230. package/payload/server/public/assets/useVoiceRecorder-BGqV5R6u.js.gz +0 -0
  231. package/payload/server/public/assets/{wrench-CYgaN7K9.js → wrench-DQ045Pyk.js} +1 -1
  232. package/payload/server/public/assets/wrench-DQ045Pyk.js.br +0 -0
  233. package/payload/server/public/assets/wrench-DQ045Pyk.js.gz +0 -0
  234. package/payload/server/public/browser.html +4 -4
  235. package/payload/server/public/calendar.html +7 -7
  236. package/payload/server/public/chat.html +13 -13
  237. package/payload/server/public/data.html +11 -11
  238. package/payload/server/public/graph.html +9 -9
  239. package/payload/server/public/index.html +14 -14
  240. package/payload/server/public/operator.html +14 -14
  241. package/payload/server/public/public.html +13 -13
  242. package/payload/server/public/routines.html +6 -6
  243. package/payload/server/public/skills.html +5 -5
  244. package/payload/server/public/tasks.html +6 -6
  245. package/payload/server/server.js +687 -400
  246. package/payload/server/public/assets/AdminLoginScreens-BZPbCk8g.js +0 -1
  247. package/payload/server/public/assets/AdminLoginScreens-BZPbCk8g.js.br +0 -0
  248. package/payload/server/public/assets/AdminLoginScreens-BZPbCk8g.js.gz +0 -0
  249. package/payload/server/public/assets/AdminShell-Bpo_wgxm.js +0 -2
  250. package/payload/server/public/assets/AdminShell-Bpo_wgxm.js.br +0 -0
  251. package/payload/server/public/assets/AdminShell-Bpo_wgxm.js.gz +0 -0
  252. package/payload/server/public/assets/activity-DOsfKzT3.js.br +0 -0
  253. package/payload/server/public/assets/activity-DOsfKzT3.js.gz +0 -0
  254. package/payload/server/public/assets/admin-COgD1z5a.js +0 -1
  255. package/payload/server/public/assets/admin-COgD1z5a.js.br +0 -0
  256. package/payload/server/public/assets/admin-COgD1z5a.js.gz +0 -0
  257. package/payload/server/public/assets/agents-DqDnZTH_.js.br +0 -0
  258. package/payload/server/public/assets/agents-DqDnZTH_.js.gz +0 -0
  259. package/payload/server/public/assets/browser-FL17Dfp0.js.br +0 -0
  260. package/payload/server/public/assets/browser-FL17Dfp0.js.gz +0 -0
  261. package/payload/server/public/assets/calendar-CLfLvsnV.js.br +0 -0
  262. package/payload/server/public/assets/calendar-CLfLvsnV.js.gz +0 -0
  263. package/payload/server/public/assets/chat-DYq4FxMG.js +0 -1
  264. package/payload/server/public/assets/chat-DYq4FxMG.js.br +0 -0
  265. package/payload/server/public/assets/chat-DYq4FxMG.js.gz +0 -0
  266. package/payload/server/public/assets/chevron-left-DWt5cdUo.js +0 -1
  267. package/payload/server/public/assets/chevron-right-B9suVrYy.js +0 -1
  268. package/payload/server/public/assets/chevron-right-B9suVrYy.js.br +0 -0
  269. package/payload/server/public/assets/clock-DW6qVXtv.js +0 -1
  270. package/payload/server/public/assets/clock-DW6qVXtv.js.br +0 -0
  271. package/payload/server/public/assets/clock-DW6qVXtv.js.gz +0 -0
  272. package/payload/server/public/assets/data-C8rbOgds.js +0 -1
  273. package/payload/server/public/assets/data-C8rbOgds.js.br +0 -0
  274. package/payload/server/public/assets/data-C8rbOgds.js.gz +0 -0
  275. package/payload/server/public/assets/file-text-DNm0AzUz.js.br +0 -0
  276. package/payload/server/public/assets/file-text-DNm0AzUz.js.gz +0 -0
  277. package/payload/server/public/assets/graph-fAvmlVzh.js.br +0 -0
  278. package/payload/server/public/assets/graph-fAvmlVzh.js.gz +0 -0
  279. package/payload/server/public/assets/graph-labels-CwdkCxfs.js.br +0 -0
  280. package/payload/server/public/assets/graph-labels-CwdkCxfs.js.gz +0 -0
  281. package/payload/server/public/assets/maximize-2-B6tAPhC2.js.br +0 -0
  282. package/payload/server/public/assets/maximize-2-B6tAPhC2.js.gz +0 -0
  283. package/payload/server/public/assets/operator-CTKvBVjk.js.br +0 -0
  284. package/payload/server/public/assets/operator-CTKvBVjk.js.gz +0 -0
  285. package/payload/server/public/assets/page-BWoNW3sa.js +0 -32
  286. package/payload/server/public/assets/page-BWoNW3sa.js.br +0 -0
  287. package/payload/server/public/assets/page-BWoNW3sa.js.gz +0 -0
  288. package/payload/server/public/assets/page-O5HkHQw4.js.br +0 -0
  289. package/payload/server/public/assets/page-O5HkHQw4.js.gz +0 -0
  290. package/payload/server/public/assets/public-BF1rnVPa.js.br +0 -0
  291. package/payload/server/public/assets/public-BF1rnVPa.js.gz +0 -0
  292. package/payload/server/public/assets/rotate-ccw-B8TqfCy4.js.br +0 -0
  293. package/payload/server/public/assets/rotate-ccw-B8TqfCy4.js.gz +0 -0
  294. package/payload/server/public/assets/routines-4R7BLZyH.js +0 -1
  295. package/payload/server/public/assets/routines-4R7BLZyH.js.br +0 -0
  296. package/payload/server/public/assets/routines-4R7BLZyH.js.gz +0 -0
  297. package/payload/server/public/assets/skills-CQ9Qs2tg.js +0 -1
  298. package/payload/server/public/assets/skills-CQ9Qs2tg.js.br +0 -0
  299. package/payload/server/public/assets/skills-CQ9Qs2tg.js.gz +0 -0
  300. package/payload/server/public/assets/tasks-DePyOrRk.js.br +0 -0
  301. package/payload/server/public/assets/tasks-DePyOrRk.js.gz +0 -0
  302. package/payload/server/public/assets/time-entry-format-D9gtnG01.js.br +0 -0
  303. package/payload/server/public/assets/time-entry-format-D9gtnG01.js.gz +0 -0
  304. package/payload/server/public/assets/triangle-alert-DAtm2mLL.js.br +0 -0
  305. package/payload/server/public/assets/triangle-alert-DAtm2mLL.js.gz +0 -0
  306. package/payload/server/public/assets/useCopyFeedback-uMJT-p6i.js.br +0 -0
  307. package/payload/server/public/assets/useCopyFeedback-uMJT-p6i.js.gz +0 -0
  308. package/payload/server/public/assets/useSubAccountSwitcher-BufCPDDH.js +0 -14
  309. package/payload/server/public/assets/useSubAccountSwitcher-BufCPDDH.js.br +0 -0
  310. package/payload/server/public/assets/useSubAccountSwitcher-BufCPDDH.js.gz +0 -0
  311. package/payload/server/public/assets/useSubAccountSwitcher-iCzsV96x.css +0 -1
  312. package/payload/server/public/assets/useSubAccountSwitcher-iCzsV96x.css.br +0 -0
  313. package/payload/server/public/assets/useSubAccountSwitcher-iCzsV96x.css.gz +0 -0
  314. package/payload/server/public/assets/useVoiceRecorder-BFrPC-s7.js.br +0 -0
  315. package/payload/server/public/assets/useVoiceRecorder-BFrPC-s7.js.gz +0 -0
  316. package/payload/server/public/assets/wrench-CYgaN7K9.js.br +0 -1
  317. package/payload/server/public/assets/wrench-CYgaN7K9.js.gz +0 -0
@@ -4,7 +4,7 @@ import MailComposer from "nodemailer/lib/mail-composer/index.js";
4
4
  import { buildMailOptions, replySubject } from "./smtp.js";
5
5
  import { fetchEnvelopeByMessageId } from "./imap.js";
6
6
  import { resolveOutboundAttachments, accountDirFor } from "./attachment-resolve.js";
7
- import { loadSignature, applySignature } from "./signature.js";
7
+ import { loadSignature, applySignature, signatureDirFor, SIGNATURE_BASENAME, } from "./signature.js";
8
8
  /**
9
9
  * Compile the shared mail options into raw RFC822 bytes via nodemailer's own composer.
10
10
  *
@@ -68,14 +68,12 @@ export async function composeDraft(config, password, accountId, params) {
68
68
  const draftMessageId = `<${randomUUID()}@${host}>`;
69
69
  // Apply the account's saved signature deterministically, before the MIME is
70
70
  // built, so every draft carries it without the model adding signature text.
71
- // Resolve the account dir the same way the attachment path does: the param
72
- // accountId (the sending account) is authoritative, ACCOUNT_DIR is the
73
- // fallback, so the signature reads from the same account root the attachments
74
- // are validated against.
75
- const sigDir = accountDirFor(accountId) || process.env.ACCOUNT_DIR;
71
+ // signatureDirFor is the shared resolver: email-signature-set writes through
72
+ // the same function, so the setter cannot land somewhere this read would miss.
73
+ const sigDir = signatureDirFor(accountId);
76
74
  const sig = loadSignature(sigDir);
77
75
  const signed = applySignature({ body: params.body, html: params.html }, sig);
78
- const assetNote = sigDir ? join(sigDir, "email-signature") : "none";
76
+ const assetNote = sigDir ? join(sigDir, SIGNATURE_BASENAME) : "none";
79
77
  console.error(`[email-draft] op=signature accountId=${accountId.slice(0, 8)} applied=${signed.applied} asset=${assetNote}`);
80
78
  const sendOptions = {
81
79
  to: params.to,
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/lib/compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/lib/compose.ts"],"names":[],"mappings":"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"}
@@ -120,6 +120,11 @@ interface BodyStructureNode {
120
120
  *
121
121
  * Inline parts without a filename (e.g. the message body) are excluded.
122
122
  *
123
+ * A message whose whole Content-Type is text/calendar has no MIME part number
124
+ * of its own — ImapFlow only numbers a node when its walk path is non-empty —
125
+ * and is reported as part "1", the RFC 3501 number for a non-multipart
126
+ * message's text (Task 2068). No other flat root is admitted this way.
127
+ *
123
128
  * A single-part message embedded in a message/rfc822 part reuses the wrapper's
124
129
  * part number rather than getting its own (ImapFlow tools.js `walk(node, path)`
125
130
  * for message/rfc822, deliberately, per RFC 3501 part numbering). Fetching that
@@ -136,6 +141,15 @@ export declare function walkAttachmentMetadata(structure: BodyStructureNode | un
136
141
  * ambiguity that hid Task 2066's dropped calendar part.
137
142
  */
138
143
  export declare function countBodyStructureLeaves(structure: BodyStructureNode | undefined): number;
144
+ /**
145
+ * True when a message's whole content type is `text/calendar` — a non-multipart
146
+ * root node, which ImapFlow leaves without a part key. Reported in the
147
+ * attachments diag so this shape stays greppable now that it is handled: with
148
+ * one leaf, Task 2066's `attachments=0 leaves>1` signal cannot distinguish it
149
+ * from a body-only message, so the next case of this class would otherwise be
150
+ * undetectable in the log (Task 2068).
151
+ */
152
+ export declare function isFlatCalendarRoot(structure: BodyStructureNode | undefined): boolean;
139
153
  export declare function formatBytes(n: number): string;
140
154
  /**
141
155
  * Format an AttachmentMeta[] as a single-line operator-readable footer.
@@ -482,6 +496,48 @@ export declare function fetchDraftSource(config: EmailConfig, password: string,
482
496
  bccAddresses: string[];
483
497
  messageId: string | null;
484
498
  } | null>;
499
+ /** One row of a Drafts-folder listing. Metadata only; no body is fetched. */
500
+ export interface DraftRow {
501
+ uid: number;
502
+ subject: string | null;
503
+ to: string[];
504
+ messageId: string | null;
505
+ date: Date | null;
506
+ }
507
+ /**
508
+ * The result of reading the Drafts folder.
509
+ *
510
+ * `total` is always the number of messages in the resolved folder, whatever
511
+ * `rows` holds. That separation is the point: a narrowing miss returns
512
+ * `resolved:false` with the census in `rows`, so "that handle is not here" can
513
+ * never be rendered as "no draft is here".
514
+ */
515
+ export interface DraftsListing {
516
+ folder: string;
517
+ mode: "census" | "uid" | "message-id";
518
+ resolved: boolean;
519
+ rows: DraftRow[];
520
+ total: number;
521
+ }
522
+ /**
523
+ * Read the mailbox's Drafts folder.
524
+ *
525
+ * Every message in the resolved folder counts, flag-agnostic — that is what the
526
+ * operator's own mail client shows, and a `draftsFolder` override may point at a
527
+ * folder this plugin did not write.
528
+ *
529
+ * The folder census is computed on every call, including narrowed ones, because
530
+ * neither handle for a draft is stable: Gmail renumbers the UID when a draft is
531
+ * touched, and composeDraft mints a fresh Message-ID for every revision. A
532
+ * verify keyed on a stale handle must therefore still be able to report what IS
533
+ * in the folder, or it recreates the "I can't see it" / "it isn't there"
534
+ * confusion this reader exists to remove.
535
+ */
536
+ export declare function listDrafts(config: EmailConfig, password: string, options: {
537
+ limit: number;
538
+ uid?: number;
539
+ draftMessageId?: string;
540
+ }): Promise<DraftsListing>;
485
541
  /** Which identity located the live draft during a replace. */
486
542
  export type DraftAddressing = "uid-hit" | "message-id-relocate" | "created-fresh";
487
543
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"imap.d.ts","sourceRoot":"","sources":["../../src/lib/imap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAuFpD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uFAAuF;IACvF,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC;AAGD,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,OAAO,GAAG,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,CASjB;AAYD,2DAA2D;AAC3D,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAYD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAqBD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa9C;AAKD,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,GAAG,MAAM,GACtB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAO7C;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;0EAC0E;AAC1E,eAAO,MAAM,oBAAoB,QAAmB,CAAC;AAErD,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C;4EACwE;IACxE,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAClE,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,iBAAiB,GAAG,SAAS,GACvC,cAAc,EAAE,CAyClB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAgBzF;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,MAAM,CAM7E;AAWD,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/F;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,cAAc,EAAE,EAC7B,GAAG,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,cAAc,CAmBhB;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CA8B5D;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,IAAI,CAAC;CACnE;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GAC/F,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA6ElC;AAED,iDAAiD;AACjD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAW/F;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAwB/D;AAoBD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,MAAM,GAChB,MAAM,CAIR;AAOD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAwB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4BnI;AAWD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE;IACR,EAAE,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,EAAE,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,EACD,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GACxB,OAAO,CAQT;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,MAAM,EAAE,GAAG,SAAS,CAKtB;AAED,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,oBAAoB,GAAG,SAAS,GACtC,MAAM,GAAG,IAAI,CAGf;AAED,kFAAkF;AAClF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,sBAAsB,GAAG,SAAS,GACxC,MAAM,GAAG,IAAI,CAGf;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,oBAAoB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB,CAkBA;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACxB,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,oBAAoB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC5C,CA2BA;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,iBAAiB,CAAC,CAsL5B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,iBAAiB,CAAC,CA8J5B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,GAC/B,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAyG1E;AAsDD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,IAAI,CAAC,CAqCR;AAED,kEAAkE;AAClE,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACzE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA0D1B;AAcD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAa1E;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,EAAE,MAAgB,EAAE,IAAS,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC9E,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA+B9D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAY3H;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAmCjD;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,IAAI,CAAC,CAmCR;AAED,8DAA8D;AAC9D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,qBAAqB,GAAG,eAAe,CAAC;AAElF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC,CAID;AAwED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAE/C;AAmCD,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACzE;IACE,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,gBAAgB,GAAG,cAAc,GAAG,kBAAkB,GAAG,uBAAuB,CAAC;IACzF,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAI3B;AAED;4EAC4E;AAC5E,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AA2HD,MAAM,MAAM,cAAc,GACtB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GAC1C;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,cAAc,CAAC,CAiDzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAoBhD"}
1
+ {"version":3,"file":"imap.d.ts","sourceRoot":"","sources":["../../src/lib/imap.ts"],"names":[],"mappings":"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"}
@@ -238,6 +238,11 @@ export const MAX_ATTACHMENT_BYTES = 25 * 1024 * 1024;
238
238
  *
239
239
  * Inline parts without a filename (e.g. the message body) are excluded.
240
240
  *
241
+ * A message whose whole Content-Type is text/calendar has no MIME part number
242
+ * of its own — ImapFlow only numbers a node when its walk path is non-empty —
243
+ * and is reported as part "1", the RFC 3501 number for a non-multipart
244
+ * message's text (Task 2068). No other flat root is admitted this way.
245
+ *
241
246
  * A single-part message embedded in a message/rfc822 part reuses the wrapper's
242
247
  * part number rather than getting its own (ImapFlow tools.js `walk(node, path)`
243
248
  * for message/rfc822, deliberately, per RFC 3501 part numbering). Fetching that
@@ -273,11 +278,19 @@ export function walkAttachmentMetadata(structure) {
273
278
  return;
274
279
  if (!isAttachmentDisposition && !isCalendar && !filename)
275
280
  return;
276
- if (!node.part)
281
+ // ImapFlow sets `part` only when the walk path is non-empty (tools.js
282
+ // `if (path.length)`), so a missing part key means this is the root node of
283
+ // a non-multipart message. RFC 3501 numbers that message's text as part 1,
284
+ // and measurement against mail.privateemail.com on 2026-07-28 confirmed
285
+ // BODY[1] returns the decoded calendar bytes (Task 2068). Only text/calendar
286
+ // is admitted this way; any other flat root stays dropped rather than being
287
+ // given a guessed part key.
288
+ const partKey = node.part ?? (isCalendar ? "1" : undefined);
289
+ if (!partKey)
277
290
  return; // can't fetch bytes without a part key
278
291
  out.push({
279
- partKey: node.part,
280
- filename: filename || (isCalendar ? `invite-${node.part}.ics` : `unnamed-${node.part}`),
292
+ partKey,
293
+ filename: filename || (isCalendar ? `invite-${partKey}.ics` : `unnamed-${partKey}`),
281
294
  mimeType: (node.type ?? "application/octet-stream").toLowerCase(),
282
295
  sizeBytes: typeof node.size === "number" ? node.size : 0,
283
296
  encoding: node.encoding ?? null,
@@ -309,6 +322,23 @@ export function countBodyStructureLeaves(structure) {
309
322
  visit(structure);
310
323
  return leaves;
311
324
  }
325
+ /**
326
+ * True when a message's whole content type is `text/calendar` — a non-multipart
327
+ * root node, which ImapFlow leaves without a part key. Reported in the
328
+ * attachments diag so this shape stays greppable now that it is handled: with
329
+ * one leaf, Task 2066's `attachments=0 leaves>1` signal cannot distinguish it
330
+ * from a body-only message, so the next case of this class would otherwise be
331
+ * undetectable in the log (Task 2068).
332
+ */
333
+ export function isFlatCalendarRoot(structure) {
334
+ if (!structure)
335
+ return false;
336
+ if (structure.part)
337
+ return false;
338
+ if (structure.childNodes && structure.childNodes.length > 0)
339
+ return false;
340
+ return typeof structure.type === "string" && structure.type.toLowerCase() === "text/calendar";
341
+ }
312
342
  export function formatBytes(n) {
313
343
  if (n < 1024)
314
344
  return `${n} B`;
@@ -389,7 +419,8 @@ export async function fetchMessageAttachments(config, password, uid) {
389
419
  }
390
420
  const structure = msg.bodyStructure;
391
421
  const attachments = walkAttachmentMetadata(structure);
392
- diag("fetchMessageAttachments", "done", `uid=${uid} attachments=${attachments.length} leaves=${countBodyStructureLeaves(structure)} in ${Date.now() - t0}ms`);
422
+ const flatCalendar = isFlatCalendarRoot(structure) ? " flatCalendar=1" : "";
423
+ diag("fetchMessageAttachments", "done", `uid=${uid} attachments=${attachments.length} leaves=${countBodyStructureLeaves(structure)}${flatCalendar} in ${Date.now() - t0}ms`);
393
424
  return { found: true, attachments };
394
425
  }
395
426
  finally {
@@ -1457,6 +1488,82 @@ export async function fetchDraftSource(config, password, uid) {
1457
1488
  await safeLogout(client);
1458
1489
  }
1459
1490
  }
1491
+ /** Fetch envelope rows for an explicit UID set. An empty set fetches nothing. */
1492
+ async function fetchDraftRows(client, uids) {
1493
+ if (uids.length === 0)
1494
+ return [];
1495
+ const rows = [];
1496
+ for await (const msg of client.fetch(uids.map(String).join(","), { envelope: true, uid: true }, { uid: true })) {
1497
+ rows.push({
1498
+ uid: msg.uid,
1499
+ subject: msg.envelope?.subject ?? null,
1500
+ to: (msg.envelope?.to ?? []).map((a) => a.address).filter((a) => !!a),
1501
+ messageId: msg.envelope?.messageId ?? null,
1502
+ date: msg.envelope?.date ?? null,
1503
+ });
1504
+ }
1505
+ return rows;
1506
+ }
1507
+ /**
1508
+ * Read the mailbox's Drafts folder.
1509
+ *
1510
+ * Every message in the resolved folder counts, flag-agnostic — that is what the
1511
+ * operator's own mail client shows, and a `draftsFolder` override may point at a
1512
+ * folder this plugin did not write.
1513
+ *
1514
+ * The folder census is computed on every call, including narrowed ones, because
1515
+ * neither handle for a draft is stable: Gmail renumbers the UID when a draft is
1516
+ * touched, and composeDraft mints a fresh Message-ID for every revision. A
1517
+ * verify keyed on a stale handle must therefore still be able to report what IS
1518
+ * in the folder, or it recreates the "I can't see it" / "it isn't there"
1519
+ * confusion this reader exists to remove.
1520
+ */
1521
+ export async function listDrafts(config, password, options) {
1522
+ const client = createClient(config, password);
1523
+ const t0 = Date.now();
1524
+ const mode = options.uid !== undefined ? "uid" : options.draftMessageId ? "message-id" : "census";
1525
+ diag("listDrafts", "start", `mode=${mode} limit=${options.limit}`);
1526
+ try {
1527
+ await client.connect();
1528
+ const folder = await resolveDraftsFolder(client, config.email, config.draftsFolder);
1529
+ const lock = await client.getMailboxLock(folder);
1530
+ try {
1531
+ const all = (await client.search({ all: true }, { uid: true })) || [];
1532
+ const total = all.length;
1533
+ // null means no narrowing was asked for; [] means it was asked for and missed.
1534
+ let matches = null;
1535
+ if (options.uid !== undefined) {
1536
+ matches = all.includes(options.uid) ? [options.uid] : [];
1537
+ }
1538
+ // The UID is a fast-path hint and the draft id is the relocate, the same
1539
+ // resolution order replaceDraft uses — so a caller holding a UID from
1540
+ // before an edit still finds the draft Gmail has since renumbered. Only
1541
+ // searched when the UID missed, so a UID hit costs no extra round trip.
1542
+ if ((matches === null || matches.length === 0) && options.draftMessageId) {
1543
+ const needle = `<${options.draftMessageId.replace(/^<|>$/g, "")}>`;
1544
+ matches = (await client.search({ header: { "message-id": needle } }, { uid: true })) || [];
1545
+ }
1546
+ const resolved = matches === null || matches.length > 0;
1547
+ const wanted = resolved && matches !== null ? matches : all.slice(-options.limit);
1548
+ const rows = await fetchDraftRows(client, wanted);
1549
+ // Census windows read newest-first; an explicit match set keeps server order.
1550
+ if (matches === null || !resolved)
1551
+ rows.reverse();
1552
+ diag("listDrafts", resolved ? "found" : "not-found", `mode=${mode} folder=${folder} total=${total} rows=${rows.length} in ${Date.now() - t0}ms`);
1553
+ return { folder, mode, resolved, rows, total };
1554
+ }
1555
+ finally {
1556
+ lock.release();
1557
+ }
1558
+ }
1559
+ catch (err) {
1560
+ diag("listDrafts", "FAILED", imapFailureDetail(config, err, Date.now() - t0));
1561
+ throw err;
1562
+ }
1563
+ finally {
1564
+ await safeLogout(client);
1565
+ }
1566
+ }
1460
1567
  /**
1461
1568
  * Read-modify-replace cycle for an existing draft. The recorded Drafts UID is a
1462
1569
  * fast-path hint; the draft's own `Message-ID` is the stable identity, because