@wirecat/mail-cli 0.5.0 → 0.7.0

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 (296) hide show
  1. package/CHANGELOG.md +149 -0
  2. package/README.md +48 -13
  3. package/dist/bin/mail.js +2 -2
  4. package/dist/bundle/{all-profiles-GR5JXYEQ.js → all-profiles-SI67TKZM.js} +9 -9
  5. package/dist/bundle/{anthropic-REBXE65F.js → anthropic-DALMLC3Y.js} +6 -6
  6. package/dist/bundle/{app-server-QJ7ICQXZ.js → app-server-XOH327Z2.js} +46 -46
  7. package/dist/bundle/{bun-WAX4QHW5.js → bun-ORL67CJ6.js} +2 -2
  8. package/dist/bundle/{bun-sqlite-5S7TQ4SG.js → bun-sqlite-DGXFNFHI.js} +5 -5
  9. package/dist/bundle/{chunk-ZD3WUGR2.js → chunk-23IEVVL2.js} +4 -4
  10. package/dist/bundle/{chunk-B5WSIWY5.js → chunk-2M4K7HYR.js} +17 -17
  11. package/dist/bundle/{chunk-IWDOGGMY.js → chunk-35KD2CI2.js} +501 -301
  12. package/dist/bundle/{chunk-7A7BHABA.js → chunk-3GZK5GTU.js} +1 -1
  13. package/dist/bundle/{chunk-JJBQPA7D.js → chunk-3TYEJRMZ.js} +4 -4
  14. package/dist/bundle/{chunk-M6BDHZON.js → chunk-45KA5667.js} +26 -13
  15. package/dist/bundle/{chunk-LOA4X6JW.js → chunk-4NYWHINR.js} +6 -6
  16. package/dist/bundle/{dist-KJOAJ6NF.js → chunk-4ULY3GDL.js} +16 -116
  17. package/dist/bundle/{chunk-2FXVBCA3.js → chunk-5BSEGMNE.js} +4 -4
  18. package/dist/bundle/{chunk-HCMUGUAG.js → chunk-5JEYIHS6.js} +3 -3
  19. package/dist/bundle/{chunk-QXOSGGKS.js → chunk-6LK7KTWB.js} +1 -1
  20. package/dist/bundle/{chunk-ESNNQA7D.js → chunk-6RMMAUUW.js} +28 -28
  21. package/dist/bundle/{chunk-VXAZZGXE.js → chunk-6XNPXAJU.js} +33 -27
  22. package/dist/bundle/{chunk-5INWLYBD.js → chunk-73OJJGZE.js} +14 -3
  23. package/dist/bundle/{chunk-4XJ4AM3K.js → chunk-7K6KJWTO.js} +12 -12
  24. package/dist/bundle/{chunk-KIDF77MA.js → chunk-AP7V256W.js} +1 -1
  25. package/dist/bundle/{chunk-4BMNP2FT.js → chunk-BEMLGWY4.js} +1 -1
  26. package/dist/bundle/{chunk-BFJV4FWJ.js → chunk-BGUMGCUY.js} +2 -2
  27. package/dist/bundle/{chunk-5BVIWP3S.js → chunk-BM445GYF.js} +2 -2
  28. package/dist/bundle/{chunk-F3NYA4KN.js → chunk-CAKBG5FC.js} +6 -6
  29. package/dist/bundle/{chunk-EB3R2PV3.js → chunk-DKQWTQVY.js} +23 -23
  30. package/dist/bundle/{chunk-6TY3DGCC.js → chunk-DXGMPMFP.js} +4 -4
  31. package/dist/bundle/{chunk-LFRHIXCF.js → chunk-E3DRM6YP.js} +3 -3
  32. package/dist/bundle/{chunk-FSUNGHRI.js → chunk-EYT33MM3.js} +47 -46
  33. package/dist/bundle/{chunk-DXDQOZ2P.js → chunk-FPOGVDLS.js} +2 -2
  34. package/dist/bundle/{chunk-S677WGOQ.js → chunk-FTFNWGIR.js} +8 -8
  35. package/dist/bundle/{chunk-TI6VBZKJ.js → chunk-FUB3X25H.js} +4 -4
  36. package/dist/bundle/{chunk-7JCRQX56.js → chunk-GJUUTUK4.js} +8 -8
  37. package/dist/bundle/{chunk-BLS5YG77.js → chunk-HFJNEXU7.js} +2 -2
  38. package/dist/bundle/{chunk-YKPBC3NL.js → chunk-HV3EIYX4.js} +1 -1
  39. package/dist/bundle/{chunk-EL554DV2.js → chunk-IYZHM3ZN.js} +3 -3
  40. package/dist/bundle/{chunk-6EO7GVYJ.js → chunk-JFMUI4H6.js} +1 -1
  41. package/dist/bundle/{chunk-2YQNBIDQ.js → chunk-LZ5J3UXD.js} +4 -4
  42. package/dist/bundle/{chunk-WNCCYHRV.js → chunk-M2JCUVCJ.js} +116 -95
  43. package/dist/bundle/{chunk-7F3NDIYL.js → chunk-MCJ7LKYR.js} +6 -6
  44. package/dist/bundle/{chunk-VDAIJM5L.js → chunk-MHQKHWCJ.js} +88 -34
  45. package/dist/bundle/{chunk-SQ7KOBRA.js → chunk-MMXMVGA6.js} +10 -8
  46. package/dist/bundle/{chunk-AFCGOZR7.js → chunk-NNIXREJH.js} +7 -7
  47. package/dist/bundle/{chunk-LQ37ALDJ.js → chunk-NXJLC2WK.js} +8 -8
  48. package/dist/bundle/{chunk-6GE3EADU.js → chunk-OHTR4WFO.js} +2 -2
  49. package/dist/bundle/{chunk-PJCTWPJB.js → chunk-PDL4UREY.js} +8 -8
  50. package/dist/bundle/{chunk-J3QXTBD2.js → chunk-Q2C3VMSU.js} +20 -18
  51. package/dist/bundle/{chunk-SWJAG5IE.js → chunk-Q44AYEOB.js} +2 -2
  52. package/dist/bundle/{chunk-P7P5MNAU.js → chunk-QZBT6BOU.js} +1 -1
  53. package/dist/bundle/{chunk-IBYTYIYO.js → chunk-R5MML3FC.js} +61 -54
  54. package/dist/bundle/{chunk-CEAANMJ2.js → chunk-RQVWZBW3.js} +3 -3
  55. package/dist/bundle/{chunk-5CXAH4Y6.js → chunk-S4YUR4S3.js} +656 -572
  56. package/dist/bundle/{chunk-QX7RCLRS.js → chunk-SQLCCKEL.js} +1 -1
  57. package/dist/bundle/chunk-U6UJ3HRS.js +58 -0
  58. package/dist/bundle/{chunk-YRGBZZUW.js → chunk-V4TDG4KF.js} +14 -14
  59. package/dist/bundle/{chunk-5FK6RD4M.js → chunk-VBOMKZ4E.js} +73 -57
  60. package/dist/bundle/{chunk-MQUJEQTU.js → chunk-VKPWP3AK.js} +2 -2
  61. package/dist/bundle/{chunk-7XNPSIWD.js → chunk-VNJMO5F6.js} +2 -2
  62. package/dist/bundle/{chunk-MMDCL42A.js → chunk-VSHJWTX5.js} +12 -6
  63. package/dist/bundle/{chunk-2MRECWJZ.js → chunk-XQJWMBDY.js} +6 -6
  64. package/dist/bundle/{chunk-2U4IANVV.js → chunk-ZKCNMW7G.js} +2 -2
  65. package/dist/bundle/{chunk-LNS27BTB.js → chunk-ZKZABB4K.js} +3 -3
  66. package/dist/bundle/{chunk-WNI5BZFB.js → chunk-ZNGQ3NZ4.js} +9 -9
  67. package/dist/bundle/command-contract-CB5BII3S.js +34 -0
  68. package/dist/bundle/{decode-D7BDVIVB.js → decode-KOBURZIQ.js} +5 -5
  69. package/dist/bundle/{dispatch-EUKKT3PD.js → dispatch-GDAH4JHS.js} +8 -8
  70. package/dist/bundle/dist-T7HMT675.js +134 -0
  71. package/dist/bundle/{echarts-IVRX7XHP.js → echarts-LEWTQO6H.js} +2 -2
  72. package/dist/bundle/{embed-X527RBTG.js → embed-PUFE4BSQ.js} +6 -6
  73. package/dist/bundle/{embedder-F4PSJS6S.js → embedder-3G4BQQ6X.js} +9 -9
  74. package/dist/bundle/{failure-OAIC5VAP.js → failure-6COJAO7T.js} +2 -2
  75. package/dist/bundle/{first-run-M5CIX6NA.js → first-run-FLXOC53U.js} +11 -11
  76. package/dist/bundle/first-screen-VUZEDSQW.js +32 -0
  77. package/dist/bundle/{instructions-UX36BT5F.js → instructions-HGSXDCBT.js} +1 -1
  78. package/dist/bundle/mail.js +12 -11
  79. package/dist/bundle/{mcp-L7SRVDRN.js → mcp-GAPDLFWA.js} +2 -2
  80. package/dist/bundle/{node-OXT7WE2T.js → node-5Z7PS4F5.js} +2 -2
  81. package/dist/bundle/{node-sqlite-X2PSEHA4.js → node-sqlite-OAW7APIX.js} +5 -5
  82. package/dist/bundle/{oauth-MYK4BSYN.js → oauth-ZFZWPAJN.js} +7 -7
  83. package/dist/bundle/{open-GONIP2DH.js → open-ZQMBZVH4.js} +4 -4
  84. package/dist/bundle/{openai-YJFNUOQT.js → openai-XT2RIXAK.js} +14 -14
  85. package/dist/bundle/{process-7IEUUSRK.js → process-VVEQIHPE.js} +1 -1
  86. package/dist/bundle/{program-Q73TTG3E.js → program-RD3BBDNY.js} +21470 -7075
  87. package/dist/bundle/{prompt-SKQ72KN7.js → prompt-PU7GE4Z4.js} +5 -5
  88. package/dist/bundle/{recognize-GC7CU2DB.js → recognize-AG4A3KUK.js} +4 -4
  89. package/dist/bundle/{remote-UEXFZP2I.js → remote-D6TQ6T7F.js} +7 -7
  90. package/dist/bundle/{rerank-2U2NDEZP.js → rerank-GO24HJPF.js} +7 -7
  91. package/dist/bundle/{serve-OOGKFEWL.js → serve-WCHJAH6G.js} +9 -9
  92. package/dist/bundle/server-5KJJ3D6P.js +63 -0
  93. package/dist/bundle/{server-FZ3LFQTF.js → server-CAVNBG3P.js} +38 -38
  94. package/dist/bundle/{sqlite-runtime-GIQSW6LJ.js → sqlite-runtime-ANXC4AW2.js} +5 -5
  95. package/dist/bundle/{state-EMFXPQVZ.js → state-EGJ66A62.js} +6 -6
  96. package/dist/bundle/{store-BDU4UPNK.js → store-OON7FCMQ.js} +15 -15
  97. package/dist/bundle/{store-LDI62AUG.js → store-SBFA444C.js} +13 -13
  98. package/dist/bundle/store-maintenance-command-UEOJLYMJ.js +52 -0
  99. package/dist/commands/attachments.d.ts +3 -0
  100. package/dist/commands/attachments.d.ts.map +1 -0
  101. package/dist/commands/attachments.js +97 -0
  102. package/dist/commands/attachments.js.map +1 -0
  103. package/dist/commands/context.d.ts +21 -6
  104. package/dist/commands/context.d.ts.map +1 -1
  105. package/dist/commands/context.js +58 -7
  106. package/dist/commands/context.js.map +1 -1
  107. package/dist/commands/drafts-send.d.ts +7 -0
  108. package/dist/commands/drafts-send.d.ts.map +1 -0
  109. package/dist/commands/drafts-send.js +58 -0
  110. package/dist/commands/drafts-send.js.map +1 -0
  111. package/dist/commands/drafts.d.ts +3 -0
  112. package/dist/commands/drafts.d.ts.map +1 -0
  113. package/dist/commands/drafts.js +243 -0
  114. package/dist/commands/drafts.js.map +1 -0
  115. package/dist/commands/export.d.ts +3 -0
  116. package/dist/commands/export.d.ts.map +1 -0
  117. package/dist/commands/export.js +278 -0
  118. package/dist/commands/export.js.map +1 -0
  119. package/dist/commands/folders.d.ts.map +1 -1
  120. package/dist/commands/folders.js +120 -2
  121. package/dist/commands/folders.js.map +1 -1
  122. package/dist/commands/messages.d.ts +25 -0
  123. package/dist/commands/messages.d.ts.map +1 -0
  124. package/dist/commands/messages.js +506 -0
  125. package/dist/commands/messages.js.map +1 -0
  126. package/dist/commands/read.d.ts +4 -1
  127. package/dist/commands/read.d.ts.map +1 -1
  128. package/dist/commands/read.js +14 -3
  129. package/dist/commands/read.js.map +1 -1
  130. package/dist/commands/rules.d.ts +3 -0
  131. package/dist/commands/rules.d.ts.map +1 -0
  132. package/dist/commands/rules.js +292 -0
  133. package/dist/commands/rules.js.map +1 -0
  134. package/dist/commands/send.d.ts +39 -0
  135. package/dist/commands/send.d.ts.map +1 -0
  136. package/dist/commands/send.js +309 -0
  137. package/dist/commands/send.js.map +1 -0
  138. package/dist/commands/server-search.d.ts +8 -0
  139. package/dist/commands/server-search.d.ts.map +1 -0
  140. package/dist/commands/server-search.js +38 -0
  141. package/dist/commands/server-search.js.map +1 -0
  142. package/dist/commands/session-start.d.ts.map +1 -1
  143. package/dist/commands/session-start.js +107 -10
  144. package/dist/commands/session-start.js.map +1 -1
  145. package/dist/commands/session.d.ts.map +1 -1
  146. package/dist/commands/session.js +72 -9
  147. package/dist/commands/session.js.map +1 -1
  148. package/dist/commands/stats.d.ts +3 -0
  149. package/dist/commands/stats.d.ts.map +1 -0
  150. package/dist/commands/stats.js +89 -0
  151. package/dist/commands/stats.js.map +1 -0
  152. package/dist/commands/status.js +2 -2
  153. package/dist/commands/status.js.map +1 -1
  154. package/dist/commands/sync.d.ts +6 -0
  155. package/dist/commands/sync.d.ts.map +1 -1
  156. package/dist/commands/sync.js +28 -20
  157. package/dist/commands/sync.js.map +1 -1
  158. package/dist/commands/tags.d.ts +3 -0
  159. package/dist/commands/tags.d.ts.map +1 -0
  160. package/dist/commands/tags.js +144 -0
  161. package/dist/commands/tags.js.map +1 -0
  162. package/dist/config.d.ts +15 -0
  163. package/dist/config.d.ts.map +1 -1
  164. package/dist/config.js +52 -1
  165. package/dist/config.js.map +1 -1
  166. package/dist/export/format.d.ts +19 -0
  167. package/dist/export/format.d.ts.map +1 -0
  168. package/dist/export/format.js +40 -0
  169. package/dist/export/format.js.map +1 -0
  170. package/dist/export/journal.d.ts +32 -0
  171. package/dist/export/journal.d.ts.map +1 -0
  172. package/dist/export/journal.js +84 -0
  173. package/dist/export/journal.js.map +1 -0
  174. package/dist/export/write.d.ts +14 -0
  175. package/dist/export/write.d.ts.map +1 -0
  176. package/dist/export/write.js +42 -0
  177. package/dist/export/write.js.map +1 -0
  178. package/dist/identity.d.ts.map +1 -1
  179. package/dist/identity.js +3 -0
  180. package/dist/identity.js.map +1 -1
  181. package/dist/mail/backend.d.ts +104 -2
  182. package/dist/mail/backend.d.ts.map +1 -1
  183. package/dist/mail/backend.js +4 -1
  184. package/dist/mail/backend.js.map +1 -1
  185. package/dist/mail/changes.d.ts +91 -0
  186. package/dist/mail/changes.d.ts.map +1 -0
  187. package/dist/mail/changes.js +198 -0
  188. package/dist/mail/changes.js.map +1 -0
  189. package/dist/mail/cleanup.d.ts +41 -0
  190. package/dist/mail/cleanup.d.ts.map +1 -0
  191. package/dist/mail/cleanup.js +119 -0
  192. package/dist/mail/cleanup.js.map +1 -0
  193. package/dist/mail/compose.d.ts +73 -0
  194. package/dist/mail/compose.d.ts.map +1 -0
  195. package/dist/mail/compose.js +110 -0
  196. package/dist/mail/compose.js.map +1 -0
  197. package/dist/mail/doctor.d.ts +67 -0
  198. package/dist/mail/doctor.d.ts.map +1 -0
  199. package/dist/mail/doctor.js +115 -0
  200. package/dist/mail/doctor.js.map +1 -0
  201. package/dist/mail/drafts.d.ts +54 -0
  202. package/dist/mail/drafts.d.ts.map +1 -0
  203. package/dist/mail/drafts.js +104 -0
  204. package/dist/mail/drafts.js.map +1 -0
  205. package/dist/mail/imap/connection.d.ts +13 -3
  206. package/dist/mail/imap/connection.d.ts.map +1 -1
  207. package/dist/mail/imap/connection.js +87 -18
  208. package/dist/mail/imap/connection.js.map +1 -1
  209. package/dist/mail/imap/index.d.ts +3 -3
  210. package/dist/mail/imap/index.d.ts.map +1 -1
  211. package/dist/mail/imap/index.js +14 -4
  212. package/dist/mail/imap/index.js.map +1 -1
  213. package/dist/mail/imap/messages.d.ts +5 -6
  214. package/dist/mail/imap/messages.d.ts.map +1 -1
  215. package/dist/mail/imap/messages.js +14 -28
  216. package/dist/mail/imap/messages.js.map +1 -1
  217. package/dist/mail/imap/read.d.ts.map +1 -1
  218. package/dist/mail/imap/read.js +27 -13
  219. package/dist/mail/imap/read.js.map +1 -1
  220. package/dist/mail/imap/search.d.ts +14 -0
  221. package/dist/mail/imap/search.d.ts.map +1 -0
  222. package/dist/mail/imap/search.js +55 -0
  223. package/dist/mail/imap/search.js.map +1 -0
  224. package/dist/mail/imap/write.d.ts +5 -0
  225. package/dist/mail/imap/write.d.ts.map +1 -0
  226. package/dist/mail/imap/write.js +93 -0
  227. package/dist/mail/imap/write.js.map +1 -0
  228. package/dist/mail/organise.d.ts +116 -0
  229. package/dist/mail/organise.d.ts.map +1 -0
  230. package/dist/mail/organise.js +531 -0
  231. package/dist/mail/organise.js.map +1 -0
  232. package/dist/mail/rethread.d.ts +1 -2
  233. package/dist/mail/rethread.d.ts.map +1 -1
  234. package/dist/mail/rethread.js +8 -3
  235. package/dist/mail/rethread.js.map +1 -1
  236. package/dist/mail/rules/apply.d.ts +40 -0
  237. package/dist/mail/rules/apply.d.ts.map +1 -0
  238. package/dist/mail/rules/apply.js +114 -0
  239. package/dist/mail/rules/apply.js.map +1 -0
  240. package/dist/mail/rules/file.d.ts +9 -0
  241. package/dist/mail/rules/file.d.ts.map +1 -0
  242. package/dist/mail/rules/file.js +51 -0
  243. package/dist/mail/rules/file.js.map +1 -0
  244. package/dist/mail/rules/filters.d.ts +11 -0
  245. package/dist/mail/rules/filters.d.ts.map +1 -0
  246. package/dist/mail/rules/filters.js +150 -0
  247. package/dist/mail/rules/filters.js.map +1 -0
  248. package/dist/mail/rules/folders.d.ts +11 -0
  249. package/dist/mail/rules/folders.d.ts.map +1 -0
  250. package/dist/mail/rules/folders.js +17 -0
  251. package/dist/mail/rules/folders.js.map +1 -0
  252. package/dist/mail/rules/query.d.ts +15 -0
  253. package/dist/mail/rules/query.d.ts.map +1 -0
  254. package/dist/mail/rules/query.js +103 -0
  255. package/dist/mail/rules/query.js.map +1 -0
  256. package/dist/mail/rules/store.d.ts +9 -0
  257. package/dist/mail/rules/store.d.ts.map +1 -0
  258. package/dist/mail/rules/store.js +17 -0
  259. package/dist/mail/rules/store.js.map +1 -0
  260. package/dist/mail/save.d.ts +9 -0
  261. package/dist/mail/save.d.ts.map +1 -0
  262. package/dist/mail/save.js +50 -0
  263. package/dist/mail/save.js.map +1 -0
  264. package/dist/mail/send.d.ts +67 -0
  265. package/dist/mail/send.d.ts.map +1 -0
  266. package/dist/mail/send.js +173 -0
  267. package/dist/mail/send.js.map +1 -0
  268. package/dist/mail/smtp.d.ts +4 -0
  269. package/dist/mail/smtp.d.ts.map +1 -0
  270. package/dist/mail/smtp.js +133 -0
  271. package/dist/mail/smtp.js.map +1 -0
  272. package/dist/oauth.d.ts +74 -0
  273. package/dist/oauth.d.ts.map +1 -0
  274. package/dist/oauth.js +230 -0
  275. package/dist/oauth.js.map +1 -0
  276. package/dist/program.d.ts.map +1 -1
  277. package/dist/program.js +26 -4
  278. package/dist/program.js.map +1 -1
  279. package/dist/providers.d.ts +96 -9
  280. package/dist/providers.d.ts.map +1 -1
  281. package/dist/providers.js +69 -16
  282. package/dist/providers.js.map +1 -1
  283. package/dist/reasons.d.ts +9 -0
  284. package/dist/reasons.d.ts.map +1 -0
  285. package/dist/reasons.js +27 -0
  286. package/dist/reasons.js.map +1 -0
  287. package/dist/version.d.ts +1 -1
  288. package/dist/version.js +1 -1
  289. package/package.json +7 -5
  290. package/skills/mail-cli/SKILL.md +30 -3
  291. package/dist/bundle/chunk-YD5WV757.js +0 -27
  292. package/dist/bundle/command-contract-GPUED3GT.js +0 -34
  293. package/dist/bundle/first-screen-M7MT776O.js +0 -32
  294. package/dist/bundle/server-4JMHDHZ7.js +0 -63
  295. package/dist/bundle/store-maintenance-command-OFRPORN2.js +0 -52
  296. /package/dist/bundle/{chunk-NPGVOZVK.js → chunk-WJWLHLQ7.js} +0 -0
@@ -0,0 +1,309 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { annotate } from "@wirecat/cli-base/commands";
3
+ import { answerEntity, baseContext, bufferedInput, environmentOf, itemOf, outputFor, ownerOnlyOption, REMOTE_WRITE, renderAnswer, } from "@wirecat/cli-core/cli";
4
+ import { levelFor, newOperationId, readUpload } from "@wirecat/cli-core/sends";
5
+ import { Command } from "commander";
6
+ import * as v from "valibot";
7
+ import { configuration, SEND_OTHERS_KEY } from "../config.js";
8
+ import { IDENTITY } from "../identity.js";
9
+ import { forgotAttachment, forwardSubject, messageIdFor, originalOf, peopleOf, quoted, referencesOf, replyCopies, replyPeople, replySubject, } from "../mail/compose.js";
10
+ import { everyone, fetchOriginal, othersOf, sendOut } from "../mail/send.js";
11
+ import { DEFAULT_SYNC, providerFor } from "../providers.js";
12
+ import { contextOf, repeatable } from "./context.js";
13
+ import { organising } from "./messages.js";
14
+ import { foldersFor } from "./sync.js";
15
+ const OPERATION_ID = /^-?[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/;
16
+ export const mailSend = v.looseObject({
17
+ sent: v.boolean(),
18
+ already_sent: v.optional(v.boolean()),
19
+ operation_id: v.string(),
20
+ message_id: v.string(),
21
+ from: v.string(),
22
+ to: v.array(v.string()),
23
+ cc: v.array(v.string()),
24
+ bcc: v.array(v.string()),
25
+ subject: v.string(),
26
+ attachments: v.array(v.strictObject({ name: v.string(), bytes: v.number() })),
27
+ text_chars: v.number(),
28
+ accepted: v.optional(v.number()),
29
+ rejected: v.optional(v.number()),
30
+ sent_copy: v.optional(v.nullable(v.string())),
31
+ stored: v.optional(v.boolean()),
32
+ marked_original: v.optional(v.nullable(v.boolean())),
33
+ hint: v.optional(v.string()),
34
+ });
35
+ export const operationIdOf = (given) => {
36
+ if (given === undefined)
37
+ return newOperationId();
38
+ if (!OPERATION_ID.test(given))
39
+ throw new CliError("validation_error", "--operation-id is the operation_id an outcome_unknown answer named", {
40
+ param: "operation-id",
41
+ });
42
+ return given;
43
+ };
44
+ /** The owner's own addresses: the profile's address and a login that is an address too. */
45
+ export const ownerOf = (opened, command) => {
46
+ const { mailbox } = contextOf(command).settings;
47
+ return new Set([mailbox.address, mailbox.login]
48
+ .filter((one) => typeof one === "string" && one.includes("@"))
49
+ .map((one) => one.toLowerCase())
50
+ .concat(opened.mailbox.key.account));
51
+ };
52
+ const sendingOf = (opened, command) => {
53
+ const { settings } = contextOf(command);
54
+ const address = opened.mailbox.key.account;
55
+ const provider = providerFor(address, settings.mailbox.host);
56
+ return {
57
+ mailbox: opened.mailbox,
58
+ backend: opened.backend,
59
+ guard: opened.guard,
60
+ profile: opened.profile,
61
+ env: opened.env,
62
+ owner: ownerOf(opened, command),
63
+ savesSent: provider?.smtp.savesSent === true,
64
+ syncFolders: async () => {
65
+ const defaults = provider?.sync ?? DEFAULT_SYNC;
66
+ const folders = await foldersFor(undefined, settings.mailbox.folders, defaults, () => opened.mailbox.folders());
67
+ return { folders, mode: defaults.mode ?? "imap" };
68
+ },
69
+ warn: (message) => outputFor(command).renderer.warn(message),
70
+ agentWithoutOthers: environmentOf(command).agent !== undefined && !othersSetInConfig(command),
71
+ };
72
+ };
73
+ /** Only the config file opens mail to others for an agent: an `mcp serve --permission` level arrives as a flag. */
74
+ const othersSetInConfig = (command) => {
75
+ const { settings } = baseContext(command, configuration.resolveSettings);
76
+ const { key } = levelFor(settings.permissions, SEND_OTHERS_KEY, configuration.permissions?.defaults ?? {});
77
+ const from = key ? settings.permissionSources[key] : undefined;
78
+ return key !== undefined && key !== null && key.startsWith(SEND_OTHERS_KEY) && from !== undefined && from !== "flag";
79
+ };
80
+ export const filesOf = async (command, paths, anyFile) => {
81
+ const { env } = contextOf(command);
82
+ const files = [];
83
+ for (const path of paths) {
84
+ const upload = await readUpload("file", path, { app: IDENTITY, env, anyFile });
85
+ if (upload.source.kind !== "file")
86
+ continue;
87
+ files.push({ name: upload.name, path: upload.source.path, bytes: upload.source.size });
88
+ }
89
+ return files;
90
+ };
91
+ const shownPerson = ({ address, name }) => (name ? `${name} <${address}>` : address);
92
+ const summaryOf = (draft) => ({
93
+ from: shownPerson(draft.from),
94
+ to: draft.to.map(shownPerson),
95
+ cc: draft.cc.map(shownPerson),
96
+ bcc: draft.bcc.map(shownPerson),
97
+ subject: draft.subject,
98
+ attachments: [
99
+ ...draft.files.map(({ name, bytes }) => ({ name, bytes })),
100
+ ...(draft.message ? [{ name: draft.message.name, bytes: draft.message.raw.byteLength }] : []),
101
+ ],
102
+ text_chars: draft.text.length,
103
+ });
104
+ /** What the y/N question shows: everything that leaves, and the start of the text, so a yes is a yes to this mail. */
105
+ const summaryText = (draft) => {
106
+ const summary = summaryOf(draft);
107
+ const lines = draft.text.split("\n").slice(0, 6);
108
+ return [
109
+ "About to send:",
110
+ ` From: ${summary.from}`,
111
+ ` To: ${summary.to.join(", ") || "-"}`,
112
+ ...(summary.cc.length ? [` Cc: ${summary.cc.join(", ")}`] : []),
113
+ ...(summary.bcc.length ? [` Bcc: ${summary.bcc.join(", ")}`] : []),
114
+ ` Subject: ${summary.subject}`,
115
+ ...summary.attachments.map(({ name, bytes }) => ` Attach: ${name} (${bytes} bytes)`),
116
+ " ----",
117
+ ...lines.map((line) => ` ${line}`),
118
+ ...(draft.text.split("\n").length > lines.length ? [" …"] : []),
119
+ "",
120
+ ].join("\n");
121
+ };
122
+ /** The summary before the terminal's question, only when there is one; an agent's or a `--yes` run asks nothing. */
123
+ const showBeforeAsking = (command, draft, key, owner) => {
124
+ const given = command.optsWithGlobals();
125
+ if (environmentOf(command).agent || given.yes || given.json || given.jsonl)
126
+ return;
127
+ const settings = configuration.resolveSettings(command.optsWithGlobals(), { env: contextOf(command).env });
128
+ const defaults = configuration.permissions?.defaults ?? {};
129
+ const asks = [key, ...(othersOf(draft, owner).length ? [SEND_OTHERS_KEY] : [])].some((one) => levelFor(settings.permissions, one, defaults).level === "ask");
130
+ if (asks)
131
+ outputFor(command).streams.diagnostic(summaryText(draft));
132
+ };
133
+ const answer = (command, draft, outcome) => renderAnswer(command, outputFor(command), itemOf({ ...outcome, message_id: draft.messageId, ...summaryOf(draft) }), () => outcome.sent
134
+ ? `sent to ${everyone(draft).length} ${everyone(draft).length === 1 ? "recipient" : "recipients"}: ${draft.subject}\n`
135
+ : `${String(outcome.hint ?? "not sent")}\n`);
136
+ /** Checks, previews or sends, and answers; the outcome of a send that left, for what the caller does after. */
137
+ export const go = async (command, opened, outgoing, dryRun) => {
138
+ const { draft } = outgoing;
139
+ if (everyone(draft).length === 0)
140
+ throw new CliError("validation_error", "the message has nobody to go to; give --to", { param: "to" });
141
+ if (forgotAttachment(draft.text, draft.files.length > 0 || draft.message !== undefined))
142
+ outputFor(command).renderer.warn("the text speaks of an attachment, and nothing is attached (--file)");
143
+ if (dryRun) {
144
+ answer(command, draft, {
145
+ sent: false,
146
+ operation_id: outgoing.operationId,
147
+ hint: "a preview: nothing was sent; the same command without --dry-run sends it",
148
+ });
149
+ return undefined;
150
+ }
151
+ const sending = sendingOf(opened, command);
152
+ showBeforeAsking(command, draft, outgoing.key, sending.owner);
153
+ const sent = await sendOut(sending, outgoing);
154
+ answer(command, draft, {
155
+ sent: !sent.alreadySent,
156
+ already_sent: sent.alreadySent,
157
+ operation_id: sent.operationId,
158
+ accepted: sent.accepted,
159
+ rejected: sent.rejected,
160
+ sent_copy: sent.sentCopy,
161
+ stored: sent.stored,
162
+ marked_original: sent.markedOriginal,
163
+ ...(sent.alreadySent
164
+ ? { hint: "Sent already holds this message: it went the first time, and nothing was sent again" }
165
+ : {}),
166
+ });
167
+ return sent;
168
+ };
169
+ const sendAction = async function (text, flags) {
170
+ if (flags.replyAll && flags.replyTo === undefined)
171
+ throw new CliError("validation_error", "--reply-all answers the message --reply-to names", { param: "reply-all" });
172
+ if (flags.replyTo === undefined && flags.subject === undefined)
173
+ throw new CliError("validation_error", "a new message needs --subject", { param: "subject" });
174
+ const operationId = operationIdOf(flags.operationId);
175
+ const body = text ?? (await readText(this));
176
+ if (!body.trim() && !flags.file?.length)
177
+ throw new CliError("validation_error", "the message has no text: give it, or pipe it on stdin", { param: "text" });
178
+ const files = await filesOf(this, flags.file ?? [], flags.allowAnyFile === true);
179
+ await organising(this, async (opened) => {
180
+ const from = { address: opened.mailbox.key.account };
181
+ const owner = ownerOf(opened, this);
182
+ const given = {
183
+ to: peopleOf(flags.to ?? [], "--to"),
184
+ cc: peopleOf(flags.cc ?? [], "--cc"),
185
+ bcc: peopleOf(flags.bcc ?? [], "--bcc"),
186
+ };
187
+ let draft;
188
+ let original;
189
+ if (flags.replyTo !== undefined) {
190
+ const fetched = await fetchOriginal(opened.mailbox, opened.backend, flags.replyTo, opened.profile);
191
+ const parent = await originalOf(fetched.raw);
192
+ const to = given.to.length ? given.to : replyPeople(parent, owner, false);
193
+ draft = {
194
+ from,
195
+ to,
196
+ cc: [...(flags.replyAll ? replyCopies(parent, owner, to) : []), ...given.cc],
197
+ bcc: given.bcc,
198
+ subject: flags.subject ?? replySubject(parent.subject),
199
+ text: quoted(body, parent),
200
+ messageId: messageIdFor(operationId, from.address),
201
+ date: new Date(),
202
+ ...(parent.messageId ? { inReplyTo: parent.messageId } : {}),
203
+ references: referencesOf(parent),
204
+ files,
205
+ };
206
+ original = { folder: fetched.folder, validity: fetched.validity, uid: fetched.uid, flag: "\\Answered" };
207
+ }
208
+ else {
209
+ draft = {
210
+ from,
211
+ ...given,
212
+ subject: flags.subject ?? "",
213
+ text: body,
214
+ messageId: messageIdFor(operationId, from.address),
215
+ date: new Date(),
216
+ files,
217
+ };
218
+ }
219
+ await go(this, opened, {
220
+ draft,
221
+ kind: "message",
222
+ key: "messages.send",
223
+ operationId,
224
+ retry: flags.operationId !== undefined,
225
+ ...(original ? { original } : {}),
226
+ }, flags.dryRun === true);
227
+ });
228
+ };
229
+ const readText = async (command) => {
230
+ const input = environmentOf(command).stdin ?? process.stdin;
231
+ if (input.isTTY)
232
+ return "";
233
+ return (await bufferedInput(input)).toString("utf8");
234
+ };
235
+ const recipients = (command) => command
236
+ .addOption(repeatable("--to <address>", "who it goes to: an address, or several split by commas; repeat it for more (a reply: instead of its sender)"))
237
+ .addOption(repeatable("--cc <address>", "a copy to this address; repeat it for more"))
238
+ .addOption(repeatable("--bcc <address>", "a hidden copy to this address; repeat it for more"));
239
+ const sending = (command) => command
240
+ .addOption(repeatable("--file <file>", "attach this file, as named, never a pattern; repeat it for more"))
241
+ .addOption(ownerOnlyOption("--allow-any-file", "attach a file even from credential folders or this CLI's own folders"))
242
+ .option("--operation-id <id>", "repeat a send whose outcome was unknown; Sent is checked first, so it goes once")
243
+ .option("--yes", "answer the question before sending to anyone but you")
244
+ .option("--dry-run", "build the message and show what would go; send nothing");
245
+ export const sendCommand = () => answerEntity(sending(recipients(annotate(new Command("send"), {
246
+ effects: REMOTE_WRITE,
247
+ examples: [
248
+ `${IDENTITY.command} ya messages send --to ann@example.com --subject "Lunch" "See you at noon."`,
249
+ `${IDENTITY.command} ya messages send --reply-to 'msg:email/me%40example.com/thread-1/1001' "Thanks, done."`,
250
+ `${IDENTITY.command} ya messages send --to ann@example.com --subject Report --file ./report.pdf "The report."`,
251
+ ],
252
+ }))), "mail_send", mailSend)
253
+ .summary("send an email, or reply to one, over SMTP")
254
+ .description("send an email from this profile's address over its SMTP server, with the same app password; without [text] " +
255
+ "the text is read from stdin. Mail to anyone but you asks first (permissions.messages.send.others). " +
256
+ "Sent gets a copy where the provider does not file one itself")
257
+ .argument("[text]", "the text of the message; read from stdin when left out")
258
+ .option("--subject <text>", "the subject; a reply takes the original's with Re:")
259
+ .option("--reply-to <message>", "answer this msg:email/… reference: In-Reply-To, References, Re: and the quote")
260
+ .option("--reply-all", "with --reply-to, also to everyone the original went to, except you")
261
+ .action(sendAction);
262
+ const forwardAction = async function (reference, text, flags) {
263
+ const files = await filesOf(this, flags.file ?? [], flags.allowAnyFile === true);
264
+ await organising(this, async (opened) => {
265
+ const operationId = operationIdOf(flags.operationId);
266
+ const fetched = await fetchOriginal(opened.mailbox, opened.backend, reference, opened.profile);
267
+ const parent = await originalOf(fetched.raw);
268
+ const from = { address: opened.mailbox.key.account };
269
+ const subject = flags.subject ?? forwardSubject(parent.subject);
270
+ const draft = {
271
+ from,
272
+ to: peopleOf(flags.to ?? [], "--to"),
273
+ cc: peopleOf(flags.cc ?? [], "--cc"),
274
+ bcc: peopleOf(flags.bcc ?? [], "--bcc"),
275
+ subject,
276
+ text: text ?? "",
277
+ messageId: messageIdFor(operationId, from.address),
278
+ date: new Date(),
279
+ files,
280
+ message: {
281
+ name: `${(parent.subject || "message").replace(/[\\/:*?"<>|\0]/g, "_").slice(0, 80)}.eml`,
282
+ raw: fetched.raw,
283
+ },
284
+ };
285
+ await go(this, opened, {
286
+ draft,
287
+ kind: "forward",
288
+ key: "messages.forward",
289
+ operationId,
290
+ retry: flags.operationId !== undefined,
291
+ original: { folder: fetched.folder, validity: fetched.validity, uid: fetched.uid, flag: "$Forwarded" },
292
+ }, flags.dryRun === true);
293
+ });
294
+ };
295
+ export const forwardCommand = () => answerEntity(sending(recipients(annotate(new Command("forward"), {
296
+ effects: REMOTE_WRITE,
297
+ examples: [
298
+ `${IDENTITY.command} ya messages forward 'msg:email/me%40example.com/thread-1/1001' --to bob@example.com`,
299
+ `${IDENTITY.command} ya messages forward 'msg:email/me%40example.com/thread-1/1001' --to bob@example.com "FYI"`,
300
+ ],
301
+ }))), "mail_send", mailSend)
302
+ .summary("forward an email, attached whole, over SMTP")
303
+ .description("forward a stored email to other people: the original goes as an attached message with its own attachments, " +
304
+ "Fwd: before its subject. Mail to anyone but you asks first (permissions.messages.send.others)")
305
+ .argument("<message>", "the msg:email/… reference search messages shows")
306
+ .argument("[text]", "a few words above the forwarded message")
307
+ .option("--subject <text>", "the subject instead of the original's with Fwd:")
308
+ .action(forwardAction);
309
+ //# sourceMappingURL=send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { MailServerAccess } from "@wirecat/cli-core/mail";
2
+ import type { Command } from "commander";
3
+ /**
4
+ * What `search messages --backend` may do with this profile's mailbox: the provider registry picks Gmail's X-GM-RAW
5
+ * or plain UID SEARCH and the folders, unless the profile names its own.
6
+ */
7
+ export declare const serverAccess: (command: Command) => MailServerAccess;
8
+ //# sourceMappingURL=server-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-search.d.ts","sourceRoot":"","sources":["../../src/commands/server-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC;;;GAGG;AACH,eAAO,MAAM,YAAY,YAAa,OAAO,KAAG,gBA4B/C,CAAA"}
@@ -0,0 +1,38 @@
1
+ import { DEFAULT_SEARCH, providerFor } from "../providers.js";
2
+ import { contextOf, openMail } from "./context.js";
3
+ import { foldersFor } from "./sync.js";
4
+ /**
5
+ * What `search messages --backend` may do with this profile's mailbox: the provider registry picks Gmail's X-GM-RAW
6
+ * or plain UID SEARCH and the folders, unless the profile names its own.
7
+ */
8
+ export const serverAccess = (command) => {
9
+ const context = contextOf(command);
10
+ const { settings } = context;
11
+ return {
12
+ offline: context.flags.offline === true,
13
+ permissions: settings.permissions,
14
+ readOnly: settings.readOnlyLock !== undefined,
15
+ open: async () => {
16
+ const { backend } = await openMail(context);
17
+ const { address, host, folders: configured } = settings.mailbox;
18
+ const search = providerFor(address ?? "", host)?.search ?? DEFAULT_SEARCH;
19
+ const serverQuery = backend.serverQuery;
20
+ try {
21
+ const folders = await foldersFor(undefined, configured, search, () => backend.folderList());
22
+ return {
23
+ source: {
24
+ ...backend,
25
+ ...(serverQuery ? { query: (criteria, folder) => serverQuery(criteria, folder, search.syntax) } : {}),
26
+ },
27
+ folders,
28
+ close: backend.close,
29
+ };
30
+ }
31
+ catch (error) {
32
+ await backend.close();
33
+ throw error;
34
+ }
35
+ },
36
+ };
37
+ };
38
+ //# sourceMappingURL=server-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-search.js","sourceRoot":"","sources":["../../src/commands/server-search.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAoB,EAAE;IACjE,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAC5B,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI;QACvC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,QAAQ,CAAC,YAAY,KAAK,SAAS;QAC7C,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC3C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAA;YAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,IAAI,cAAc,CAAA;YACzE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;YACvC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;gBAC3F,OAAO;oBACL,MAAM,EAAE;wBACN,GAAG,OAAO;wBACV,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACtG;oBACD,OAAO;oBACP,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;gBACrB,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA8BnC,eAAO,MAAM,mBAAmB,eA6H1B,CAAA"}
1
+ {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiJnC,eAAO,MAAM,mBAAmB,eAmK1B,CAAA"}
@@ -5,9 +5,11 @@ import { Command } from "commander";
5
5
  import { configuration } from "../config.js";
6
6
  import { PROVIDER_NAMES } from "../discovery.js";
7
7
  import { IDENTITY } from "../identity.js";
8
+ import { passwordCredential } from "../mail/backend.js";
9
+ import { googleAddress, googleClient, microsoftClient, OAUTH_NAMES, oauthKeeper, recordSignIn, SCOPE_WORDS, scopesOf, sendScopeOf, systemBrowser, tokenCredential, } from "../oauth.js";
8
10
  import { profileOf, writeProfile } from "../profile.js";
9
11
  import { GENERIC_PREPARE, PROVIDERS_URL, prepareText, providerFor } from "../providers.js";
10
- import { collect, contextOf, endpointOf, openMail, passwordsOf, refuseOffline, } from "./context.js";
12
+ import { contextOf, endpointOf, openMail, passwordsOf, refuseOffline, repeatable, } from "./context.js";
11
13
  import { checkLogin } from "./login.js";
12
14
  import { chosen, securityOf } from "./mailbox.js";
13
15
  const answer = (command, item) => renderAnswer(command, outputFor(command), itemOf(item));
@@ -17,25 +19,100 @@ const mayAsk = (command, environment, env) => (environment.tty ?? process.stdout
17
19
  command.optsWithGlobals().input !== false &&
18
20
  outputFor(command).format === "pretty" &&
19
21
  !env.CI;
22
+ /**
23
+ * The browser sign-in of cli-core's keeper. `accept` logs in to IMAP with the new token before anything is saved
24
+ * (WC-SECR-5): a refused login saves neither the sign-in nor the profile.
25
+ */
26
+ const signInWithOAuth = async (command, context, given) => {
27
+ const { env, environment } = context;
28
+ const output = outputFor(command);
29
+ const name = OAUTH_NAMES[given.kind];
30
+ const { client, source } = given.kind === "google"
31
+ ? { client: googleClient(env, given.clientFile), source: "own" }
32
+ : microsoftClient(context.settings.mailbox);
33
+ const scopesAsked = scopesOf(given.kind);
34
+ const { endpoint } = given;
35
+ output.renderer.note(`Server: ${endpoint.host}:${endpoint.port} (${endpoint.security}), login ${endpoint.login}`);
36
+ output.renderer.note(prepareText(given.provider, given.prepare));
37
+ output.renderer.note([
38
+ `${name} will ask you to let ${IDENTITY.command} (app ${source === "own" ? "of your own" : "of WireCat"}):`,
39
+ ...scopesAsked.map((scope) => ` - ${SCOPE_WORDS[scope] ?? scope}`),
40
+ ].join("\n"));
41
+ const keeper = oauthKeeper({
42
+ env,
43
+ profile: context.profile,
44
+ kind: given.kind,
45
+ client,
46
+ address: given.address,
47
+ keyring: environment.keyring,
48
+ storage: given.storage,
49
+ fetch: environment.fetch,
50
+ signal: environment.signal,
51
+ });
52
+ let folders;
53
+ let config;
54
+ const { scopes } = await baseContext(command, configuration.resolveSettings).run(() => keeper.signIn({
55
+ scopes: scopesAsked,
56
+ openBrowser: given.browser ? (environment.openBrowser ?? systemBrowser) : async () => { },
57
+ showUrl: (url) => output.streams.diagnostic(`Open ${name} sign-in: ${url}\n`),
58
+ accept: async (tokens) => {
59
+ if (!tokens.accessToken)
60
+ throw new CliError("authentication_error", `${name} returned no access token`);
61
+ if (given.kind === "google") {
62
+ const signedIn = await googleAddress(tokens.accessToken, environment.fetch ?? globalThis.fetch, environment.signal);
63
+ if (signedIn !== given.address.toLowerCase())
64
+ throw new CliError("authentication_error", `Google signed in ${signedIn}, not ${given.address}; sign in again and choose ${given.address}`, { reason: "profile.wrong-account" });
65
+ }
66
+ const { backend } = await openMail(context, {
67
+ endpoint: given.endpoint,
68
+ credential: tokenCredential(tokens.accessToken, given.kind),
69
+ });
70
+ folders = (await checkLogin(backend, given.prepare)).folders;
71
+ config = given.created?.();
72
+ return undefined;
73
+ },
74
+ }));
75
+ await recordSignIn(env, context.profile, {
76
+ provider: given.kind,
77
+ client: source,
78
+ signed_in_at: new Date().toISOString(),
79
+ scopes,
80
+ });
81
+ if (!scopes.includes(sendScopeOf(given.kind)))
82
+ output.renderer.note(`${name} did not grant sending, so \`messages send\` will be refused`);
83
+ answer(command, {
84
+ profile: context.profile,
85
+ signed_in: true,
86
+ login: given.endpoint.login,
87
+ auth: "oauth",
88
+ provider: given.kind,
89
+ client: source,
90
+ scopes,
91
+ folders,
92
+ ...(config ? { created: true, config } : {}),
93
+ });
94
+ };
20
95
  export const sessionStartCommand = () => logsInOrOut(annotate(new Command("start"), {
21
96
  effects: FETCH,
22
97
  lifetime: "interactive",
23
98
  mcp: false,
24
99
  examples: [
25
100
  `${IDENTITY.command} ya session start --address me@example.com`,
26
- `${IDENTITY.command} ya session start`,
27
- `${IDENTITY.command} me session start --address me@example.com --host imap.example.com --security tls`,
101
+ `${IDENTITY.command} work session start --address me@outlook.com`,
102
+ `${IDENTITY.command} gm session start --address me@gmail.com --client-file ~/client.json`,
28
103
  ],
29
104
  }))
30
105
  .summary("sign in; a new profile is created first")
31
- .description(`sign this profile in. A new profile needs its mailbox: --address, or it is asked at a terminal; the server is found (built-in providers, the MX record, ISPDB, the domain's autoconfig; all providers: ${PROVIDERS_URL}); for a domain the built-in table does not know, the domain, never the address, goes to the DNS resolver, autoconfig.thunderbird.net and autoconfig.<domain>, and --provider or --host skips those lookups; the steps to prepare the mailbox are shown, the app password is asked (hidden) or read from ${IDENTITY.envPrefix}_PASSWORD, checked against the server, and only then the profile and the keyring entry are saved. An existing profile only asks for the password again. Without a terminal nothing is asked: a missing --address or password is a validation error`)
106
+ .description(`sign this profile in. A new profile needs its mailbox: --address, or it is asked at a terminal; the server is found (built-in providers, the MX record, ISPDB, the domain's autoconfig; all providers: ${PROVIDERS_URL}); for a domain the built-in table does not know, the domain, never the address, goes to the DNS resolver, autoconfig.thunderbird.net and autoconfig.<domain>, and --provider or --host skips those lookups; the steps to prepare the mailbox are shown, the app password is asked (hidden) or read from ${IDENTITY.envPrefix}_PASSWORD, checked against the server, and only then the profile and the keyring entry are saved. Outlook.com and Microsoft 365 sign in with OAuth instead, and Gmail with your own Google app (--client-file): the browser opens the provider's page, and the token is checked against the server before it is kept. An existing profile only asks for the password, or signs in, again. Without a terminal nothing is asked: a missing --address or password is a validation error`)
32
107
  .option("--address <email>", "the full mail address of a new profile, also the login for most providers")
33
108
  .option("--provider <provider>", `skip discovery and use a built-in provider: ${PROVIDER_NAMES.join(", ")}`)
34
109
  .option("--host <host>", "skip discovery and use this IMAP host")
35
110
  .option("--port <port>", "IMAP port (default 993)")
36
111
  .option("--security <mode>", "tls or starttls (default tls)", securityOf)
37
112
  .option("--login <login>", "the login name, when it is not the full address")
38
- .option("--folder <folder>", "sync only this folder; repeat it for more", collect)
113
+ .addOption(repeatable("--folder <folder>", "sync only this folder; repeat it for more"))
114
+ .option("--no-browser", "OAuth: print the sign-in link instead of opening the browser")
115
+ .option("--client-file <file>", "Gmail over OAuth: your own Google Desktop app client JSON (chmod 600)")
39
116
  .option("--credential-storage <storage>", "where the password is kept: keyring (the default, which falls back to a private file by itself when no " +
40
117
  "keyring works), or file, not recommended", "keyring")
41
118
  .action(async function (flags) {
@@ -60,10 +137,12 @@ export const sessionStartCommand = () => logsInOrOut(annotate(new Command("start
60
137
  let address;
61
138
  let provider;
62
139
  let prepare;
140
+ let auth;
63
141
  let created;
64
142
  if (known) {
65
143
  const same = flags.address?.trim().toLowerCase() === context.settings.mailbox.address?.toLowerCase();
66
- const given = SERVER_FLAGS.filter((flag) => flags[flag] !== undefined && !(flag === "address" && same));
144
+ const given = SERVER_FLAGS.filter((flag) => (Array.isArray(flags[flag]) ? flags[flag].length > 0 : flags[flag] !== undefined) &&
145
+ !(flag === "address" && same));
67
146
  if (given.length)
68
147
  throw new CliError("validation_error", `profile ${context.profile} already exists, so --${given[0]} cannot change it; edit it with \`${IDENTITY.command} ${context.profile} config set\` or use a new profile name`, { param: given[0] });
69
148
  endpoint = endpointOf(context.settings);
@@ -71,6 +150,9 @@ export const sessionStartCommand = () => logsInOrOut(annotate(new Command("start
71
150
  const hosting = providerFor(address, endpoint.host);
72
151
  provider = hosting?.name ?? address.split("@")[1] ?? "this";
73
152
  prepare = hosting?.prepare ?? GENERIC_PREPARE;
153
+ auth = context.settings.mailbox.auth;
154
+ if (flags.clientFile && auth !== "oauth")
155
+ throw new CliError("validation_error", `profile ${context.profile} signs in with an app password; switch it first: \`${IDENTITY.command} ${context.profile} config set auth oauth\``, { param: "client-file" });
74
156
  }
75
157
  else {
76
158
  const typedAddress = flags.address ?? (asking ? (await ask("Mail address: ", { echo: true })).trim() : "");
@@ -84,12 +166,27 @@ export const sessionStartCommand = () => logsInOrOut(annotate(new Command("start
84
166
  }
85
167
  : undefined;
86
168
  const found = await chosen(address, flags, environment, pick);
87
- if (found.auth === "oauth")
88
- throw new CliError("validation_error", `${found.provider} accepts only OAuth for IMAP, which this version cannot do yet`, { param: "address" });
169
+ auth = flags.clientFile ? "oauth" : found.auth;
89
170
  endpoint = { ...found.imap, login: found.login };
90
171
  provider = found.provider;
91
172
  prepare = found.prepare;
92
- created = () => writeProfile(env, context.profile, profileOf(found, flags.folder), false).path;
173
+ created = () => writeProfile(env, context.profile, { ...profileOf(found, flags.folder), auth }, false).path;
174
+ }
175
+ if (auth === "oauth") {
176
+ const kind = providerFor(address, endpoint.host)?.oauth;
177
+ if (!kind)
178
+ throw new CliError("validation_error", `${provider} has no OAuth sign-in in ${IDENTITY.command}; it works for Outlook, Microsoft 365 and Gmail`, { param: flags.clientFile ? "client-file" : "address" });
179
+ return signInWithOAuth(this, context, {
180
+ provider,
181
+ endpoint,
182
+ address,
183
+ kind,
184
+ prepare,
185
+ storage,
186
+ browser: flags.browser,
187
+ clientFile: flags.clientFile,
188
+ created,
189
+ });
93
190
  }
94
191
  output.renderer.note(`Server: ${endpoint.host}:${endpoint.port} (${endpoint.security}), login ${endpoint.login}`);
95
192
  output.renderer.note(prepareText(provider, prepare));
@@ -100,7 +197,7 @@ export const sessionStartCommand = () => logsInOrOut(annotate(new Command("start
100
197
  throw new CliError("validation_error", asking
101
198
  ? "no password was given; nothing was stored"
102
199
  : `there is no terminal to ask for the app password; set ${passwordVariable}`, { param: passwordVariable });
103
- const { backend } = await openMail(context, { endpoint, password: typed });
200
+ const { backend } = await openMail(context, { endpoint, credential: passwordCredential(typed) });
104
201
  const result = await baseContext(this, configuration.resolveSettings).run(() => checkLogin(backend, prepare));
105
202
  // Stored only after the server accepted it (WC-SECR-5), the profile with it.
106
203
  const config = created?.();
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2HnC,eAAO,MAAM,cAAc,QAAO,OAMJ,CAAA"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA0MnC,eAAO,MAAM,cAAc,QAAO,OAMJ,CAAA"}