@withbuddi/buddi 0.1.0-pre.20 → 0.1.0-pre.21

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 (400) hide show
  1. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  2. package/node_modules/@buddi/cli/dist/args.d.ts +6 -0
  3. package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
  4. package/node_modules/@buddi/cli/dist/args.js +15 -0
  5. package/node_modules/@buddi/cli/dist/args.js.map +1 -1
  6. package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
  7. package/node_modules/@buddi/cli/dist/commands.js +17 -0
  8. package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
  9. package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
  10. package/node_modules/@buddi/cli/dist/main.js +7 -0
  11. package/node_modules/@buddi/cli/dist/main.js.map +1 -1
  12. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  13. package/node_modules/@buddi/core/dist/host/build.d.ts.map +1 -1
  14. package/node_modules/@buddi/core/dist/host/build.js +33 -16
  15. package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
  16. package/node_modules/@buddi/core/dist/host/types.d.ts +17 -0
  17. package/node_modules/@buddi/core/dist/host/types.d.ts.map +1 -1
  18. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.d.ts.map +1 -1
  19. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.js +1 -0
  20. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.js.map +1 -1
  21. package/node_modules/@buddi/core/dist/pages.d.ts +74 -0
  22. package/node_modules/@buddi/core/dist/pages.d.ts.map +1 -1
  23. package/node_modules/@buddi/core/dist/pages.js +27 -1
  24. package/node_modules/@buddi/core/dist/pages.js.map +1 -1
  25. package/node_modules/@buddi/core/dist/plugin/index.d.ts +2 -2
  26. package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
  27. package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
  28. package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
  29. package/node_modules/@buddi/core/dist/provider-accounts.d.ts +8 -0
  30. package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
  31. package/node_modules/@buddi/core/dist/provider-accounts.js +8 -0
  32. package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
  33. package/node_modules/@buddi/core/dist/surfaces.d.ts +11 -0
  34. package/node_modules/@buddi/core/dist/surfaces.d.ts.map +1 -1
  35. package/node_modules/@buddi/core/dist/surfaces.js +4 -0
  36. package/node_modules/@buddi/core/dist/surfaces.js.map +1 -1
  37. package/node_modules/@buddi/core/migrations/048_surface_chat_voice.sql +13 -0
  38. package/node_modules/@buddi/core/migrations/049_surface_chat_voice_form.sql +8 -0
  39. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  40. package/node_modules/@buddi/gateway/dist/agents-cli.d.ts +2 -0
  41. package/node_modules/@buddi/gateway/dist/agents-cli.d.ts.map +1 -1
  42. package/node_modules/@buddi/gateway/dist/agents-cli.js +5 -3
  43. package/node_modules/@buddi/gateway/dist/agents-cli.js.map +1 -1
  44. package/node_modules/@buddi/gateway/dist/chat/session.d.ts.map +1 -1
  45. package/node_modules/@buddi/gateway/dist/chat/session.js +2 -2
  46. package/node_modules/@buddi/gateway/dist/chat/session.js.map +1 -1
  47. package/node_modules/@buddi/gateway/dist/chat/usage.d.ts +16 -0
  48. package/node_modules/@buddi/gateway/dist/chat/usage.d.ts.map +1 -1
  49. package/node_modules/@buddi/gateway/dist/chat/usage.js +53 -11
  50. package/node_modules/@buddi/gateway/dist/chat/usage.js.map +1 -1
  51. package/node_modules/@buddi/gateway/dist/index.d.ts +1 -0
  52. package/node_modules/@buddi/gateway/dist/index.d.ts.map +1 -1
  53. package/node_modules/@buddi/gateway/dist/index.js +1 -0
  54. package/node_modules/@buddi/gateway/dist/index.js.map +1 -1
  55. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts +4 -0
  56. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
  57. package/node_modules/@buddi/gateway/dist/provider-accounts.js +3 -1
  58. package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
  59. package/node_modules/@buddi/gateway/dist/speech-cli.d.ts +43 -0
  60. package/node_modules/@buddi/gateway/dist/speech-cli.d.ts.map +1 -0
  61. package/node_modules/@buddi/gateway/dist/speech-cli.js +105 -0
  62. package/node_modules/@buddi/gateway/dist/speech-cli.js.map +1 -0
  63. package/node_modules/@buddi/gateway/dist/telegram/api.d.ts +10 -0
  64. package/node_modules/@buddi/gateway/dist/telegram/api.d.ts.map +1 -1
  65. package/node_modules/@buddi/gateway/dist/telegram/api.js +12 -0
  66. package/node_modules/@buddi/gateway/dist/telegram/api.js.map +1 -1
  67. package/node_modules/@buddi/gateway/dist/telegram/browser-view.d.ts +2 -1
  68. package/node_modules/@buddi/gateway/dist/telegram/browser-view.d.ts.map +1 -1
  69. package/node_modules/@buddi/gateway/dist/telegram/browser-view.js +4 -2
  70. package/node_modules/@buddi/gateway/dist/telegram/browser-view.js.map +1 -1
  71. package/node_modules/@buddi/gateway/dist/telegram/main.d.ts.map +1 -1
  72. package/node_modules/@buddi/gateway/dist/telegram/main.js +10 -2
  73. package/node_modules/@buddi/gateway/dist/telegram/main.js.map +1 -1
  74. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts +25 -0
  75. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts.map +1 -1
  76. package/node_modules/@buddi/gateway/dist/telegram/surface.js +212 -10
  77. package/node_modules/@buddi/gateway/dist/telegram/surface.js.map +1 -1
  78. package/node_modules/@buddi/gateway/dist/telegram/voice.d.ts +112 -0
  79. package/node_modules/@buddi/gateway/dist/telegram/voice.d.ts.map +1 -0
  80. package/node_modules/@buddi/gateway/dist/telegram/voice.js +220 -0
  81. package/node_modules/@buddi/gateway/dist/telegram/voice.js.map +1 -0
  82. package/node_modules/@buddi/gateway/dist/web/chat.d.ts +31 -8
  83. package/node_modules/@buddi/gateway/dist/web/chat.d.ts.map +1 -1
  84. package/node_modules/@buddi/gateway/dist/web/chat.js +3 -2
  85. package/node_modules/@buddi/gateway/dist/web/chat.js.map +1 -1
  86. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts +13 -2
  87. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts.map +1 -1
  88. package/node_modules/@buddi/gateway/dist/web/onboarding.js +24 -3
  89. package/node_modules/@buddi/gateway/dist/web/onboarding.js.map +1 -1
  90. package/node_modules/@buddi/gateway/dist/web/read.d.ts +15 -12
  91. package/node_modules/@buddi/gateway/dist/web/read.d.ts.map +1 -1
  92. package/node_modules/@buddi/gateway/dist/web/read.js +9 -10
  93. package/node_modules/@buddi/gateway/dist/web/read.js.map +1 -1
  94. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  95. package/node_modules/@buddi/gateway/dist/web/server.js +13 -0
  96. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  97. package/node_modules/@buddi/gateway/dist/web/speech.d.ts +47 -0
  98. package/node_modules/@buddi/gateway/dist/web/speech.d.ts.map +1 -0
  99. package/node_modules/@buddi/gateway/dist/web/speech.js +83 -0
  100. package/node_modules/@buddi/gateway/dist/web/speech.js.map +1 -0
  101. package/node_modules/@buddi/gateway/dist/web/stream.d.ts +0 -24
  102. package/node_modules/@buddi/gateway/dist/web/stream.d.ts.map +1 -1
  103. package/node_modules/@buddi/gateway/dist/web/stream.js +26 -2
  104. package/node_modules/@buddi/gateway/dist/web/stream.js.map +1 -1
  105. package/node_modules/@buddi/gateway/dist/web/usage-view.d.ts +15 -0
  106. package/node_modules/@buddi/gateway/dist/web/usage-view.d.ts.map +1 -0
  107. package/node_modules/@buddi/gateway/dist/web/usage-view.js +20 -0
  108. package/node_modules/@buddi/gateway/dist/web/usage-view.js.map +1 -0
  109. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  110. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  111. package/node_modules/@buddi/runtime/dist/anthropic.d.ts +18 -0
  112. package/node_modules/@buddi/runtime/dist/anthropic.d.ts.map +1 -1
  113. package/node_modules/@buddi/runtime/dist/anthropic.js +65 -13
  114. package/node_modules/@buddi/runtime/dist/anthropic.js.map +1 -1
  115. package/node_modules/@buddi/runtime/dist/codex-direct.d.ts.map +1 -1
  116. package/node_modules/@buddi/runtime/dist/codex-direct.js +11 -3
  117. package/node_modules/@buddi/runtime/dist/codex-direct.js.map +1 -1
  118. package/node_modules/@buddi/runtime/dist/context-window.d.ts.map +1 -1
  119. package/node_modules/@buddi/runtime/dist/context-window.js +13 -4
  120. package/node_modules/@buddi/runtime/dist/context-window.js.map +1 -1
  121. package/node_modules/@buddi/runtime/dist/loop.d.ts.map +1 -1
  122. package/node_modules/@buddi/runtime/dist/loop.js +6 -0
  123. package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
  124. package/node_modules/@buddi/runtime/dist/openai.d.ts +16 -4
  125. package/node_modules/@buddi/runtime/dist/openai.d.ts.map +1 -1
  126. package/node_modules/@buddi/runtime/dist/openai.js +23 -4
  127. package/node_modules/@buddi/runtime/dist/openai.js.map +1 -1
  128. package/node_modules/@buddi/runtime/dist/provider-models.d.ts.map +1 -1
  129. package/node_modules/@buddi/runtime/dist/provider-models.js +5 -1
  130. package/node_modules/@buddi/runtime/dist/provider-models.js.map +1 -1
  131. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  132. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  133. package/node_modules/@buddi/tool-browser/dist/computer.d.ts +53 -1
  134. package/node_modules/@buddi/tool-browser/dist/computer.d.ts.map +1 -1
  135. package/node_modules/@buddi/tool-browser/dist/computer.js +154 -5
  136. package/node_modules/@buddi/tool-browser/dist/computer.js.map +1 -1
  137. package/node_modules/@buddi/tool-browser/dist/controller.d.ts +20 -3
  138. package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
  139. package/node_modules/@buddi/tool-browser/dist/controller.js +170 -5
  140. package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
  141. package/node_modules/@buddi/tool-browser/dist/index.d.ts.map +1 -1
  142. package/node_modules/@buddi/tool-browser/dist/index.js +9 -1
  143. package/node_modules/@buddi/tool-browser/dist/index.js.map +1 -1
  144. package/node_modules/@buddi/tool-browser/dist/service.d.ts +14 -1
  145. package/node_modules/@buddi/tool-browser/dist/service.d.ts.map +1 -1
  146. package/node_modules/@buddi/tool-browser/dist/service.js +28 -5
  147. package/node_modules/@buddi/tool-browser/dist/service.js.map +1 -1
  148. package/node_modules/@buddi/tool-browser/dist/types.d.ts +11 -0
  149. package/node_modules/@buddi/tool-browser/dist/types.d.ts.map +1 -1
  150. package/node_modules/@buddi/tool-browser/dist/types.js +16 -3
  151. package/node_modules/@buddi/tool-browser/dist/types.js.map +1 -1
  152. package/node_modules/@buddi/tool-browser/package.json +1 -1
  153. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  154. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  155. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  156. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  157. package/node_modules/imapflow/CHANGELOG.md +29 -0
  158. package/node_modules/imapflow/dist/cjs/commands/append.js +12 -12
  159. package/node_modules/imapflow/dist/cjs/commands/authenticate.d.ts +3 -8
  160. package/node_modules/imapflow/dist/cjs/commands/close.js +2 -1
  161. package/node_modules/imapflow/dist/cjs/commands/copy.js +4 -4
  162. package/node_modules/imapflow/dist/cjs/commands/create.js +2 -3
  163. package/node_modules/imapflow/dist/cjs/commands/delete.js +4 -4
  164. package/node_modules/imapflow/dist/cjs/commands/expunge.js +8 -5
  165. package/node_modules/imapflow/dist/cjs/commands/fetch.js +12 -10
  166. package/node_modules/imapflow/dist/cjs/commands/idle.js +6 -2
  167. package/node_modules/imapflow/dist/cjs/commands/list.js +22 -18
  168. package/node_modules/imapflow/dist/cjs/commands/move.js +11 -6
  169. package/node_modules/imapflow/dist/cjs/commands/namespace.js +1 -1
  170. package/node_modules/imapflow/dist/cjs/commands/quota.js +10 -9
  171. package/node_modules/imapflow/dist/cjs/commands/rename.js +4 -4
  172. package/node_modules/imapflow/dist/cjs/commands/search.js +7 -8
  173. package/node_modules/imapflow/dist/cjs/commands/select.js +12 -9
  174. package/node_modules/imapflow/dist/cjs/commands/status.js +11 -11
  175. package/node_modules/imapflow/dist/cjs/commands/store.js +5 -5
  176. package/node_modules/imapflow/dist/cjs/commands/subscribe.js +2 -17
  177. package/node_modules/imapflow/dist/cjs/commands/subscription.d.ts +10 -0
  178. package/node_modules/imapflow/dist/cjs/commands/subscription.js +29 -0
  179. package/node_modules/imapflow/dist/cjs/commands/unsubscribe.js +2 -17
  180. package/node_modules/imapflow/dist/cjs/download.d.ts +22 -0
  181. package/node_modules/imapflow/dist/cjs/download.js +588 -0
  182. package/node_modules/imapflow/dist/cjs/errors.d.ts +50 -1
  183. package/node_modules/imapflow/dist/cjs/errors.js +53 -1
  184. package/node_modules/imapflow/dist/cjs/handler/imap-compiler.js +1 -1
  185. package/node_modules/imapflow/dist/cjs/handler/imap-stream.d.ts +13 -2
  186. package/node_modules/imapflow/dist/cjs/handler/imap-stream.js +51 -30
  187. package/node_modules/imapflow/dist/cjs/handler/parser-instance.js +2 -2
  188. package/node_modules/imapflow/dist/cjs/handler/token-parser.js +15 -9
  189. package/node_modules/imapflow/dist/cjs/imap-flow.d.ts +30 -84
  190. package/node_modules/imapflow/dist/cjs/imap-flow.js +282 -734
  191. package/node_modules/imapflow/dist/cjs/jp-decoder.js +1 -1
  192. package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
  193. package/node_modules/imapflow/dist/cjs/package-info.js +3 -3
  194. package/node_modules/imapflow/dist/cjs/search-compiler.js +5 -12
  195. package/node_modules/imapflow/dist/cjs/tools.d.ts +52 -11
  196. package/node_modules/imapflow/dist/cjs/tools.js +86 -23
  197. package/node_modules/imapflow/dist/cjs/types.d.ts +30 -16
  198. package/node_modules/imapflow/dist/esm/commands/append.js +13 -13
  199. package/node_modules/imapflow/dist/esm/commands/authenticate.d.ts +3 -8
  200. package/node_modules/imapflow/dist/esm/commands/close.js +2 -1
  201. package/node_modules/imapflow/dist/esm/commands/copy.js +5 -5
  202. package/node_modules/imapflow/dist/esm/commands/create.js +3 -4
  203. package/node_modules/imapflow/dist/esm/commands/delete.js +5 -5
  204. package/node_modules/imapflow/dist/esm/commands/expunge.js +9 -6
  205. package/node_modules/imapflow/dist/esm/commands/fetch.js +13 -11
  206. package/node_modules/imapflow/dist/esm/commands/idle.js +7 -3
  207. package/node_modules/imapflow/dist/esm/commands/list.js +22 -18
  208. package/node_modules/imapflow/dist/esm/commands/move.js +12 -7
  209. package/node_modules/imapflow/dist/esm/commands/namespace.js +2 -2
  210. package/node_modules/imapflow/dist/esm/commands/quota.js +11 -10
  211. package/node_modules/imapflow/dist/esm/commands/rename.js +5 -5
  212. package/node_modules/imapflow/dist/esm/commands/search.js +8 -9
  213. package/node_modules/imapflow/dist/esm/commands/select.js +13 -10
  214. package/node_modules/imapflow/dist/esm/commands/status.js +12 -12
  215. package/node_modules/imapflow/dist/esm/commands/store.js +6 -6
  216. package/node_modules/imapflow/dist/esm/commands/subscribe.js +2 -17
  217. package/node_modules/imapflow/dist/esm/commands/subscription.d.ts +10 -0
  218. package/node_modules/imapflow/dist/esm/commands/subscription.js +26 -0
  219. package/node_modules/imapflow/dist/esm/commands/unsubscribe.js +2 -17
  220. package/node_modules/imapflow/dist/esm/download.d.ts +22 -0
  221. package/node_modules/imapflow/dist/esm/download.js +581 -0
  222. package/node_modules/imapflow/dist/esm/errors.d.ts +50 -1
  223. package/node_modules/imapflow/dist/esm/errors.js +52 -0
  224. package/node_modules/imapflow/dist/esm/handler/imap-compiler.js +1 -1
  225. package/node_modules/imapflow/dist/esm/handler/imap-stream.d.ts +13 -2
  226. package/node_modules/imapflow/dist/esm/handler/imap-stream.js +51 -30
  227. package/node_modules/imapflow/dist/esm/handler/parser-instance.js +2 -2
  228. package/node_modules/imapflow/dist/esm/handler/token-parser.js +15 -9
  229. package/node_modules/imapflow/dist/esm/imap-flow.d.ts +30 -84
  230. package/node_modules/imapflow/dist/esm/imap-flow.js +282 -735
  231. package/node_modules/imapflow/dist/esm/jp-decoder.js +1 -1
  232. package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
  233. package/node_modules/imapflow/dist/esm/package-info.js +3 -3
  234. package/node_modules/imapflow/dist/esm/search-compiler.js +5 -12
  235. package/node_modules/imapflow/dist/esm/tools.d.ts +52 -11
  236. package/node_modules/imapflow/dist/esm/tools.js +79 -21
  237. package/node_modules/imapflow/dist/esm/types.d.ts +30 -16
  238. package/node_modules/imapflow/package.json +4 -4
  239. package/package.json +2 -2
  240. package/packages/cli/dist/.tsbuildinfo +1 -1
  241. package/packages/cli/dist/args.d.ts +6 -0
  242. package/packages/cli/dist/args.d.ts.map +1 -1
  243. package/packages/cli/dist/args.js +15 -0
  244. package/packages/cli/dist/args.js.map +1 -1
  245. package/packages/cli/dist/commands.d.ts.map +1 -1
  246. package/packages/cli/dist/commands.js +17 -0
  247. package/packages/cli/dist/commands.js.map +1 -1
  248. package/packages/cli/dist/main.d.ts.map +1 -1
  249. package/packages/cli/dist/main.js +7 -0
  250. package/packages/cli/dist/main.js.map +1 -1
  251. package/packages/core/dist/.tsbuildinfo +1 -1
  252. package/packages/core/dist/host/build.d.ts.map +1 -1
  253. package/packages/core/dist/host/build.js +33 -16
  254. package/packages/core/dist/host/build.js.map +1 -1
  255. package/packages/core/dist/host/types.d.ts +17 -0
  256. package/packages/core/dist/host/types.d.ts.map +1 -1
  257. package/packages/core/dist/pages/__fixtures__/demo.d.ts.map +1 -1
  258. package/packages/core/dist/pages/__fixtures__/demo.js +1 -0
  259. package/packages/core/dist/pages/__fixtures__/demo.js.map +1 -1
  260. package/packages/core/dist/pages.d.ts +74 -0
  261. package/packages/core/dist/pages.d.ts.map +1 -1
  262. package/packages/core/dist/pages.js +27 -1
  263. package/packages/core/dist/pages.js.map +1 -1
  264. package/packages/core/dist/plugin/index.d.ts +2 -2
  265. package/packages/core/dist/plugin/index.d.ts.map +1 -1
  266. package/packages/core/dist/plugin/version.d.ts +1 -1
  267. package/packages/core/dist/plugin/version.js +1 -1
  268. package/packages/core/dist/provider-accounts.d.ts +8 -0
  269. package/packages/core/dist/provider-accounts.d.ts.map +1 -1
  270. package/packages/core/dist/provider-accounts.js +8 -0
  271. package/packages/core/dist/provider-accounts.js.map +1 -1
  272. package/packages/core/dist/surfaces.d.ts +11 -0
  273. package/packages/core/dist/surfaces.d.ts.map +1 -1
  274. package/packages/core/dist/surfaces.js +4 -0
  275. package/packages/core/dist/surfaces.js.map +1 -1
  276. package/packages/core/migrations/048_surface_chat_voice.sql +13 -0
  277. package/packages/core/migrations/049_surface_chat_voice_form.sql +8 -0
  278. package/packages/gateway/dist/.tsbuildinfo +1 -1
  279. package/packages/gateway/dist/agents-cli.d.ts +2 -0
  280. package/packages/gateway/dist/agents-cli.d.ts.map +1 -1
  281. package/packages/gateway/dist/agents-cli.js +5 -3
  282. package/packages/gateway/dist/agents-cli.js.map +1 -1
  283. package/packages/gateway/dist/chat/session.d.ts.map +1 -1
  284. package/packages/gateway/dist/chat/session.js +2 -2
  285. package/packages/gateway/dist/chat/session.js.map +1 -1
  286. package/packages/gateway/dist/chat/usage.d.ts +16 -0
  287. package/packages/gateway/dist/chat/usage.d.ts.map +1 -1
  288. package/packages/gateway/dist/chat/usage.js +53 -11
  289. package/packages/gateway/dist/chat/usage.js.map +1 -1
  290. package/packages/gateway/dist/index.d.ts +1 -0
  291. package/packages/gateway/dist/index.d.ts.map +1 -1
  292. package/packages/gateway/dist/index.js +1 -0
  293. package/packages/gateway/dist/index.js.map +1 -1
  294. package/packages/gateway/dist/provider-accounts.d.ts +4 -0
  295. package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
  296. package/packages/gateway/dist/provider-accounts.js +3 -1
  297. package/packages/gateway/dist/provider-accounts.js.map +1 -1
  298. package/packages/gateway/dist/speech-cli.d.ts +43 -0
  299. package/packages/gateway/dist/speech-cli.d.ts.map +1 -0
  300. package/packages/gateway/dist/speech-cli.js +105 -0
  301. package/packages/gateway/dist/speech-cli.js.map +1 -0
  302. package/packages/gateway/dist/telegram/api.d.ts +10 -0
  303. package/packages/gateway/dist/telegram/api.d.ts.map +1 -1
  304. package/packages/gateway/dist/telegram/api.js +12 -0
  305. package/packages/gateway/dist/telegram/api.js.map +1 -1
  306. package/packages/gateway/dist/telegram/browser-view.d.ts +2 -1
  307. package/packages/gateway/dist/telegram/browser-view.d.ts.map +1 -1
  308. package/packages/gateway/dist/telegram/browser-view.js +4 -2
  309. package/packages/gateway/dist/telegram/browser-view.js.map +1 -1
  310. package/packages/gateway/dist/telegram/main.d.ts.map +1 -1
  311. package/packages/gateway/dist/telegram/main.js +10 -2
  312. package/packages/gateway/dist/telegram/main.js.map +1 -1
  313. package/packages/gateway/dist/telegram/surface.d.ts +25 -0
  314. package/packages/gateway/dist/telegram/surface.d.ts.map +1 -1
  315. package/packages/gateway/dist/telegram/surface.js +212 -10
  316. package/packages/gateway/dist/telegram/surface.js.map +1 -1
  317. package/packages/gateway/dist/telegram/voice.d.ts +112 -0
  318. package/packages/gateway/dist/telegram/voice.d.ts.map +1 -0
  319. package/packages/gateway/dist/telegram/voice.js +220 -0
  320. package/packages/gateway/dist/telegram/voice.js.map +1 -0
  321. package/packages/gateway/dist/web/chat.d.ts +31 -8
  322. package/packages/gateway/dist/web/chat.d.ts.map +1 -1
  323. package/packages/gateway/dist/web/chat.js +3 -2
  324. package/packages/gateway/dist/web/chat.js.map +1 -1
  325. package/packages/gateway/dist/web/onboarding.d.ts +13 -2
  326. package/packages/gateway/dist/web/onboarding.d.ts.map +1 -1
  327. package/packages/gateway/dist/web/onboarding.js +24 -3
  328. package/packages/gateway/dist/web/onboarding.js.map +1 -1
  329. package/packages/gateway/dist/web/read.d.ts +15 -12
  330. package/packages/gateway/dist/web/read.d.ts.map +1 -1
  331. package/packages/gateway/dist/web/read.js +9 -10
  332. package/packages/gateway/dist/web/read.js.map +1 -1
  333. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  334. package/packages/gateway/dist/web/server.js +13 -0
  335. package/packages/gateway/dist/web/server.js.map +1 -1
  336. package/packages/gateway/dist/web/speech.d.ts +47 -0
  337. package/packages/gateway/dist/web/speech.d.ts.map +1 -0
  338. package/packages/gateway/dist/web/speech.js +83 -0
  339. package/packages/gateway/dist/web/speech.js.map +1 -0
  340. package/packages/gateway/dist/web/stream.d.ts +0 -24
  341. package/packages/gateway/dist/web/stream.d.ts.map +1 -1
  342. package/packages/gateway/dist/web/stream.js +26 -2
  343. package/packages/gateway/dist/web/stream.js.map +1 -1
  344. package/packages/gateway/dist/web/usage-view.d.ts +15 -0
  345. package/packages/gateway/dist/web/usage-view.d.ts.map +1 -0
  346. package/packages/gateway/dist/web/usage-view.js +20 -0
  347. package/packages/gateway/dist/web/usage-view.js.map +1 -0
  348. package/packages/install/dist/.tsbuildinfo +1 -1
  349. package/packages/runtime/dist/.tsbuildinfo +1 -1
  350. package/packages/runtime/dist/anthropic.d.ts +18 -0
  351. package/packages/runtime/dist/anthropic.d.ts.map +1 -1
  352. package/packages/runtime/dist/anthropic.js +65 -13
  353. package/packages/runtime/dist/anthropic.js.map +1 -1
  354. package/packages/runtime/dist/codex-direct.d.ts.map +1 -1
  355. package/packages/runtime/dist/codex-direct.js +11 -3
  356. package/packages/runtime/dist/codex-direct.js.map +1 -1
  357. package/packages/runtime/dist/context-window.d.ts.map +1 -1
  358. package/packages/runtime/dist/context-window.js +13 -4
  359. package/packages/runtime/dist/context-window.js.map +1 -1
  360. package/packages/runtime/dist/loop.d.ts.map +1 -1
  361. package/packages/runtime/dist/loop.js +6 -0
  362. package/packages/runtime/dist/loop.js.map +1 -1
  363. package/packages/runtime/dist/openai.d.ts +16 -4
  364. package/packages/runtime/dist/openai.d.ts.map +1 -1
  365. package/packages/runtime/dist/openai.js +23 -4
  366. package/packages/runtime/dist/openai.js.map +1 -1
  367. package/packages/runtime/dist/provider-models.d.ts.map +1 -1
  368. package/packages/runtime/dist/provider-models.js +5 -1
  369. package/packages/runtime/dist/provider-models.js.map +1 -1
  370. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  371. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  372. package/packages/tools/browser/dist/computer.d.ts +53 -1
  373. package/packages/tools/browser/dist/computer.d.ts.map +1 -1
  374. package/packages/tools/browser/dist/computer.js +154 -5
  375. package/packages/tools/browser/dist/computer.js.map +1 -1
  376. package/packages/tools/browser/dist/controller.d.ts +20 -3
  377. package/packages/tools/browser/dist/controller.d.ts.map +1 -1
  378. package/packages/tools/browser/dist/controller.js +170 -5
  379. package/packages/tools/browser/dist/controller.js.map +1 -1
  380. package/packages/tools/browser/dist/index.d.ts.map +1 -1
  381. package/packages/tools/browser/dist/index.js +9 -1
  382. package/packages/tools/browser/dist/index.js.map +1 -1
  383. package/packages/tools/browser/dist/service.d.ts +14 -1
  384. package/packages/tools/browser/dist/service.d.ts.map +1 -1
  385. package/packages/tools/browser/dist/service.js +28 -5
  386. package/packages/tools/browser/dist/service.js.map +1 -1
  387. package/packages/tools/browser/dist/types.d.ts +11 -0
  388. package/packages/tools/browser/dist/types.d.ts.map +1 -1
  389. package/packages/tools/browser/dist/types.js +16 -3
  390. package/packages/tools/browser/dist/types.js.map +1 -1
  391. package/packages/tools/browser/package.json +1 -1
  392. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  393. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  394. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  395. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  396. package/packages/web/dist/assets/index-D5cRFcgm.css +1 -0
  397. package/packages/web/dist/assets/index-GCFB1vBV.js +125 -0
  398. package/packages/web/dist/index.html +2 -2
  399. package/packages/web/dist/assets/index-BRc5auXm.js +0 -123
  400. package/packages/web/dist/assets/index-DwUpotTR.css +0 -1
@@ -1,6 +1,58 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthenticationFailure = void 0;
3
+ exports.AuthenticationFailure = exports.ImapFlowErrorCode = void 0;
4
+ /**
5
+ * The `code` values ImapFlow sets on the errors it raises, so they can be matched without
6
+ * string literals: `if (err.code === ImapFlowErrorCode.NoConnection)`.
7
+ *
8
+ * Parser failures use `ParserError` followed by a number (`ParserError11`) and are not listed
9
+ * one by one, test them with `err.code?.startsWith('ParserError')`. Errors from the socket, TLS
10
+ * or DNS layer pass through with Node's own code (`ECONNREFUSED`, `ENOTFOUND`, ...).
11
+ */
12
+ exports.ImapFlowErrorCode = {
13
+ // the connection is gone, the command was not (or can no longer be) completed
14
+ NoConnection: 'NoConnection',
15
+ EConnectionClosed: 'EConnectionClosed',
16
+ StateLogout: 'StateLogout',
17
+ ClosedAfterConnectText: 'ClosedAfterConnectText',
18
+ ClosedAfterConnectTLS: 'ClosedAfterConnectTLS',
19
+ // timeouts
20
+ CONNECT_TIMEOUT: 'CONNECT_TIMEOUT',
21
+ GREETING_TIMEOUT: 'GREETING_TIMEOUT',
22
+ UPGRADE_TIMEOUT: 'UPGRADE_TIMEOUT',
23
+ ETIMEOUT: 'ETIMEOUT',
24
+ LockTimeout: 'LockTimeout',
25
+ // the server
26
+ ETHROTTLE: 'ETHROTTLE',
27
+ UnexpectedTag: 'UnexpectedTag',
28
+ InvalidResponse: 'InvalidResponse',
29
+ ResponseProcessingFailed: 'ResponseProcessingFailed',
30
+ STARTTLS_INJECTION: 'STARTTLS_INJECTION',
31
+ COMPRESS_TRAILING_DATA: 'COMPRESS_TRAILING_DATA',
32
+ PollFailed: 'PollFailed',
33
+ NotFound: 'NotFound',
34
+ MissingServerExtension: 'MissingServerExtension',
35
+ // response parsing and size limits
36
+ ParserError: 'ParserError',
37
+ ParserErrorExchange: 'ParserErrorExchange',
38
+ MAX_IMAP_NESTING_REACHED: 'MAX_IMAP_NESTING_REACHED',
39
+ LineTooLarge: 'LineTooLarge',
40
+ LiteralTooLarge: 'LiteralTooLarge',
41
+ ResponseTooLarge: 'ResponseTooLarge',
42
+ // invalid values in a command
43
+ InvalidStringValue: 'InvalidStringValue',
44
+ InvalidTokenValue: 'InvalidTokenValue',
45
+ InvalidTextValue: 'InvalidTextValue',
46
+ InvalidSequenceSet: 'InvalidSequenceSet',
47
+ // download()
48
+ DownloadOverflow: 'DownloadOverflow',
49
+ DownloadIncomplete: 'DownloadIncomplete',
50
+ // proxy connections
51
+ ProxyError: 'ProxyError',
52
+ EPROXY: 'EPROXY',
53
+ UnsupportedProxyAddress: 'UnsupportedProxyAddress',
54
+ ERR_INVALID_URL: 'ERR_INVALID_URL'
55
+ };
4
56
  /**
5
57
  * Error subclass thrown when IMAP authentication fails.
6
58
  */
@@ -243,7 +243,7 @@ async function compiler(response, options) {
243
243
  // Strip a leading backslash before checking (system flags like \Seen start with '\').
244
244
  // If any character fails verification, fall back to an IMAP quoted string
245
245
  // (JSON.stringify is used only for log output, where values are display-escaped).
246
- if (node.value === '' || imap_formal_syntax_js_1.default.verify(val.charAt(0) === '\\' ? val.substr(1) : val, imap_formal_syntax_js_1.default['ATOM-CHAR']()) >= 0) {
246
+ if (node.value === '' || imap_formal_syntax_js_1.default.verify(val.charAt(0) === '\\' ? val.slice(1) : val, imap_formal_syntax_js_1.default['ATOM-CHAR']()) >= 0) {
247
247
  val = isLogging ? JSON.stringify(val) : quoteString(val);
248
248
  }
249
249
  resp.push(emitEntry(val));
@@ -145,13 +145,24 @@ export declare class ImapStream extends Transform {
145
145
  * pushed downstream as a readable object.
146
146
  *
147
147
  * @param chunk - The raw data chunk to process.
148
- * @param startPos - The byte offset within the chunk to start processing from.
149
148
  */
150
- processInputChunk(chunk: Buffer, startPos?: number | undefined): Promise<void>;
149
+ processInputChunk(chunk: Buffer): Promise<void>;
150
+ /**
151
+ * Processes the chunk from `startPos` until the parser state changes or the chunk ends.
152
+ *
153
+ * @returns The offset to continue from after a state switch, or `null` when done with the chunk.
154
+ */
155
+ processChunkSegment(chunk: Buffer, startPos: number): Promise<number | null>;
151
156
  /**
152
157
  * Drains the input queue by processing each queued chunk sequentially.
153
158
  * Yields to the event loop every 10 chunks to prevent CPU blocking on
154
159
  * large bursts of incoming data.
160
+ *
161
+ * The `processingInput` guard is cleared in the same synchronous step that finds the queue
162
+ * empty. Clearing it later (in a promise handler) leaves a gap of a few microtasks where a
163
+ * chunk delivered by the writable side is queued but no loop is started for it, so its
164
+ * transform callback is never called and the socket is never read again. Workers deliver
165
+ * the next chunk inside that gap.
155
166
  */
156
167
  processInput(): Promise<void>;
157
168
  /**
@@ -223,12 +223,23 @@ class ImapStream extends node_stream_1.Transform {
223
223
  * pushed downstream as a readable object.
224
224
  *
225
225
  * @param chunk - The raw data chunk to process.
226
- * @param startPos - The byte offset within the chunk to start processing from.
227
226
  */
228
- async processInputChunk(chunk, startPos) {
229
- startPos = startPos || 0;
227
+ async processInputChunk(chunk) {
228
+ // Every state switch hands back the offset to resume from instead of recursing, so a
229
+ // chunk packed with thousands of small literals can not exhaust the call stack
230
+ let nextPos = 0;
231
+ while (nextPos !== null) {
232
+ nextPos = await this.processChunkSegment(chunk, nextPos);
233
+ }
234
+ }
235
+ /**
236
+ * Processes the chunk from `startPos` until the parser state changes or the chunk ends.
237
+ *
238
+ * @returns The offset to continue from after a state switch, or `null` when done with the chunk.
239
+ */
240
+ async processChunkSegment(chunk, startPos) {
230
241
  if (this.destroyed || startPos >= chunk.length) {
231
- return;
242
+ return null;
232
243
  }
233
244
  switch (this.state) {
234
245
  case LINE: {
@@ -238,9 +249,9 @@ class ImapStream extends node_stream_1.Transform {
238
249
  // line end found. Measure the completed line (terminator included) before
239
250
  // concatenating or emitting anything, so the cap does not depend on where
240
251
  // TCP chunk boundaries happen to fall.
241
- let segment = chunk.slice(lineStart, i + 1);
252
+ let segment = chunk.subarray(lineStart, i + 1);
242
253
  if (!this.checkLineLength(this.lineBytes + segment.length)) {
243
- return;
254
+ return null;
244
255
  }
245
256
  this.lineBuffer.push(segment);
246
257
  lineStart = i + 1;
@@ -252,18 +263,18 @@ class ImapStream extends node_stream_1.Transform {
252
263
  // would otherwise be emitted as part of the rejected command.
253
264
  let isLiteralMarker = this.checkLiteralMarker(line);
254
265
  if (this.destroyed) {
255
- return;
266
+ return null;
256
267
  }
257
268
  // Count the line itself and, for a literal marker, the declared
258
269
  // literal bytes against the cumulative per-response budget, so a
259
270
  // response assembled from many tokens stays bounded as a whole
260
271
  if (!this.checkResponseSize(line.length + (isLiteralMarker ? this.literalWaiting : 0))) {
261
- return;
272
+ return null;
262
273
  }
263
274
  this.inputBuffer.push(line);
264
275
  if (isLiteralMarker) {
265
276
  // switch into literal mode and start over
266
- return await this.processInputChunk(chunk, lineStart);
277
+ return lineStart;
267
278
  }
268
279
  // reached end of command input, emit it
269
280
  let payload = this.inputBuffer.length === 1 ? this.inputBuffer[0] : Buffer.concat(this.inputBuffer);
@@ -278,7 +289,7 @@ class ImapStream extends node_stream_1.Transform {
278
289
  if (end > 0 && payload[end - 1] === CR) {
279
290
  end--;
280
291
  }
281
- payload = payload.slice(0, end);
292
+ payload = payload.subarray(0, end);
282
293
  }
283
294
  if (payload.length) {
284
295
  // Whether more buffered input already followed this command on the
@@ -297,7 +308,7 @@ class ImapStream extends node_stream_1.Transform {
297
308
  });
298
309
  this.pendingPush = null;
299
310
  if (this.destroyed) {
300
- return;
311
+ return null;
301
312
  }
302
313
  }
303
314
  }
@@ -306,14 +317,14 @@ class ImapStream extends node_stream_1.Transform {
306
317
  if (lineStart < chunk.length) {
307
318
  // No line terminator was found in the remaining bytes; carry the tail over to
308
319
  // the next chunk after measuring the line it belongs to.
309
- let tail = chunk.slice(lineStart);
320
+ let tail = chunk.subarray(lineStart);
310
321
  // The response counter is only committed when a line completes, so an
311
322
  // in-progress line is measured against the remaining budget separately.
312
323
  // Without this a response cap lowered to bound parser memory buys nothing
313
324
  // while a server streams a line that never terminates - only the much
314
325
  // larger line cap would hold it back.
315
326
  if (!this.checkLineLength(this.lineBytes + tail.length) || !this.checkResponseSize(this.lineBytes + tail.length, true)) {
316
- return;
327
+ return null;
317
328
  }
318
329
  this.lineBytes += tail.length;
319
330
  this.lineBuffer.push(tail);
@@ -323,7 +334,7 @@ class ImapStream extends node_stream_1.Transform {
323
334
  case LITERAL: {
324
335
  const remainingInChunk = chunk.length - startPos;
325
336
  const bytesToRead = Math.min(remainingInChunk, this.literalWaiting);
326
- const partial = startPos === 0 && bytesToRead === chunk.length ? chunk : chunk.slice(startPos, startPos + bytesToRead);
337
+ const partial = startPos === 0 && bytesToRead === chunk.length ? chunk : chunk.subarray(startPos, startPos + bytesToRead);
327
338
  this.literalBuffer.push(partial);
328
339
  this.literalWaiting -= bytesToRead;
329
340
  if (this.literalWaiting === 0) {
@@ -331,33 +342,45 @@ class ImapStream extends node_stream_1.Transform {
331
342
  this.literalBuffer = [];
332
343
  this.state = LINE;
333
344
  if (remainingInChunk > bytesToRead) {
334
- return await this.processInputChunk(chunk, startPos + bytesToRead);
345
+ return startPos + bytesToRead;
335
346
  }
336
347
  }
337
348
  break;
338
349
  }
339
350
  }
351
+ return null;
340
352
  }
341
353
  /**
342
354
  * Drains the input queue by processing each queued chunk sequentially.
343
355
  * Yields to the event loop every 10 chunks to prevent CPU blocking on
344
356
  * large bursts of incoming data.
357
+ *
358
+ * The `processingInput` guard is cleared in the same synchronous step that finds the queue
359
+ * empty. Clearing it later (in a promise handler) leaves a gap of a few microtasks where a
360
+ * chunk delivered by the writable side is queued but no loop is started for it, so its
361
+ * transform callback is never called and the socket is never read again. Workers deliver
362
+ * the next chunk inside that gap.
345
363
  */
346
364
  async processInput() {
347
- let data;
348
- let processedCount = 0;
349
- while (!this.destroyed && (data = this.inputQueue.shift())) {
350
- this.activeInput = data;
351
- await this.processInputChunk(data.chunk);
352
- this.activeInput = null;
353
- // mark chunk as processed
354
- this.releaseInput(data);
355
- // Yield to event loop every 10 chunks to prevent CPU blocking
356
- processedCount++;
357
- if (processedCount % 10 === 0) {
358
- await new Promise(resolve => setImmediate(resolve));
365
+ try {
366
+ let data;
367
+ let processedCount = 0;
368
+ while (!this.destroyed && (data = this.inputQueue.shift())) {
369
+ this.activeInput = data;
370
+ await this.processInputChunk(data.chunk);
371
+ this.activeInput = null;
372
+ // mark chunk as processed
373
+ this.releaseInput(data);
374
+ // Yield to event loop every 10 chunks to prevent CPU blocking
375
+ processedCount++;
376
+ if (processedCount % 10 === 0) {
377
+ await new Promise(resolve => setImmediate(resolve));
378
+ }
359
379
  }
360
380
  }
381
+ finally {
382
+ this.processingInput = false;
383
+ }
361
384
  }
362
385
  /**
363
386
  * Transform stream implementation. Receives raw data chunks from the writable side,
@@ -397,9 +420,7 @@ class ImapStream extends node_stream_1.Transform {
397
420
  this.inputQueue.push({ chunk, next });
398
421
  if (!this.processingInput) {
399
422
  this.processingInput = true;
400
- this.processInput()
401
- .catch(err => this.failStream(err))
402
- .finally(() => (this.processingInput = false));
423
+ this.processInput().catch(err => this.failStream(err));
403
424
  }
404
425
  }
405
426
  /**
@@ -166,7 +166,7 @@ class ParserInstance {
166
166
  throw error;
167
167
  }
168
168
  this.pos += match[0].length;
169
- this.remainder = this.remainder.substr(match[0].length);
169
+ this.remainder = this.remainder.slice(match[0].length);
170
170
  return element;
171
171
  }
172
172
  /**
@@ -193,7 +193,7 @@ class ParserInstance {
193
193
  throw error;
194
194
  }
195
195
  this.pos++;
196
- this.remainder = this.remainder.substr(1);
196
+ this.remainder = this.remainder.slice(1);
197
197
  }
198
198
  /**
199
199
  * Parses the remaining input as IMAP attributes using the TokenParser.
@@ -316,7 +316,7 @@ class TokenParser {
316
316
  // IMAP URL (e.g., imap://user@host/mailbox) which contains characters
317
317
  // that would break normal ATOM parsing (colons, slashes, etc.).
318
318
  // We handle this by consuming everything up to ']' as a single ATOM value.
319
- if (this.str.substr(i + 1, 9).toUpperCase() === 'REFERRAL ') {
319
+ if (this.str.substring(i + 1, i + 10).toUpperCase() === 'REFERRAL ') {
320
320
  // create the REFERRAL atom
321
321
  this.currentNode = this.createNode(this.currentNode, this.pos + i + 1);
322
322
  this.currentNode.type = 'ATOM';
@@ -327,15 +327,21 @@ class TokenParser {
327
327
  this.currentNode = this.createNode(this.currentNode, this.pos + i + 10);
328
328
  // just call this an ATOM, even though IMAPURL might be more correct
329
329
  this.currentNode.type = 'ATOM';
330
- // jump i to the ']'
331
- i = this.str.indexOf(']', i + 10);
332
- if (i < 0) {
333
- // Malformed REFERRAL with no closing ']'. Consume the rest
334
- // of the string (there is no ']' to exclude) instead of
335
- // computing a negative-index substring, which would yield
336
- // garbage.
337
- i = this.str.length;
330
+ // jump i to the ']' that closes the section. The URL itself can
331
+ // hold a bracketed IPv6 host (imap://[::1]/INBOX), so brackets
332
+ // opened inside the URL are matched before the closing one.
333
+ let depth = 0;
334
+ for (i = i + 10; i < this.str.length; i++) {
335
+ let urlChr = this.str.charAt(i);
336
+ if (urlChr === '[') {
337
+ depth++;
338
+ }
339
+ else if (urlChr === ']' && depth-- === 0) {
340
+ break;
341
+ }
338
342
  }
343
+ // A malformed REFERRAL with no closing ']' leaves i at the end of
344
+ // the string, so the URL takes the rest of it.
339
345
  this.currentNode.endPos = this.pos + i - 1;
340
346
  this.currentNode.value = this.str.substring(this.currentNode.startPos - this.pos, this.currentNode.endPos - this.pos + 1);
341
347
  this.currentNode = this.currentNode.parentNode;
@@ -6,10 +6,10 @@ import net from 'node:net';
6
6
  import { EventEmitter } from 'node:events';
7
7
  import { PassThrough, type Readable } from 'node:stream';
8
8
  import { AuthenticationFailure } from './errors.js';
9
- import type { AppendResponseObject, CopyResponseObject, DownloadManyOptions, DownloadManyResult, DownloadObject, DownloadOptions, ESearchResult, FetchMessageObject, FetchOptions, FetchQueryObject, IdInfoObject, ImapFlowEvents, ImapFlowOptions, InternalLogger, ListOptions, ListResponse, ListTreeResponse, MailboxCreateResponse, MailboxDeleteResponse, MailboxLockObject, MailboxLockOptions, MailboxObject, MailboxOpenOptions, MailboxRenameResponse, MessageRange, MessageRangeOptions, NamespaceObject, NamespacesObject, QuotaResponse, SearchObject, SearchOptions, SearchReturnOption, SequenceString, StatusObject, StatusQuery, StoreOptions, TlsInfo } from './types.js';
9
+ import type { AppendResponseObject, CopyResponseObject, DownloadManyOptions, DownloadManyResult, DownloadObject, DownloadNotFound, DownloadOptions, ESearchResult, FetchMessageObject, FetchOptions, FetchQueryObject, IdInfoObject, ImapFlowEvents, ImapFlowOptions, InternalLogger, ListOptions, ListResponse, ListTreeResponse, MailboxCreateResponse, MailboxDeleteResponse, MailboxLockObject, MailboxLockOptions, MailboxObject, MailboxOpenOptions, MailboxRenameResponse, MessageRange, MessageRangeOptions, NamespaceObject, NamespacesObject, QuotaResponse, SearchObject, SearchOptions, SearchReturnOption, SequenceString, StatusObject, StatusQuery, StoreOptions, TlsInfo } from './types.js';
10
10
  export type * from './types.js';
11
11
  export type { ImapFlowError } from './errors.js';
12
- export { AuthenticationFailure } from './errors.js';
12
+ export { AuthenticationFailure, ImapFlowErrorCode } from './errors.js';
13
13
  export type { ImapAttribute, ImapAttributeList, ImapAttributeNode, ImapResponse } from './handler/types.js';
14
14
  declare const stateValues: {
15
15
  readonly NOT_AUTHENTICATED: 1;
@@ -61,6 +61,17 @@ export interface ImapFlow {
61
61
  prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
62
62
  emit<K extends keyof ImapFlowEvents>(event: K, ...args: ImapFlowEvents[K]): boolean;
63
63
  emit(event: string | symbol, ...args: any[]): boolean;
64
+ /**
65
+ * Logs out and closes the connection when the scope of an `await using` declaration ends.
66
+ * Never throws, the connection is closed whether LOGOUT succeeds or not. Only present on
67
+ * runtimes that define `Symbol.asyncDispose` (Node.js 20.4 and newer).
68
+ *
69
+ * @example
70
+ * await using client = new ImapFlow({...});
71
+ * await client.connect();
72
+ * // client.logout() runs automatically when the scope exits, even on a throw
73
+ */
74
+ [Symbol.asyncDispose](): Promise<void>;
64
75
  }
65
76
  /**
66
77
  * IMAP client class for accessing IMAP mailboxes
@@ -135,6 +146,9 @@ export declare class ImapFlow extends EventEmitter {
135
146
  byeReason: string | undefined;
136
147
  /** Negotiated TLS session details, `false` for a cleartext connection */
137
148
  tls: TlsInfo | false | undefined;
149
+ /**
150
+ * Creates a client for one IMAP connection. Nothing is sent before `connect()` is called
151
+ */
138
152
  constructor(options?: ImapFlowOptions | undefined);
139
153
  /**
140
154
  * Returns byte counters for the current connection.
@@ -315,20 +329,20 @@ export declare class ImapFlow extends EventEmitter {
315
329
  *
316
330
  * @param path mailbox path to check for (unicode string). If value is an array then it is joined using current delimiter symbols. Namespace prefix is added automatically if required.
317
331
  * @param query defines requested status items
318
- * @returns status of the indicated mailbox
332
+ * @returns status of the indicated mailbox, or `false` if the server rejected the request
319
333
  *
320
334
  * @example
321
335
  * let status = await client.status('INBOX', {unseen: true});
322
336
  * console.log(status.unseen);
323
337
  * // 123
324
338
  */
325
- status(path: string | string[], query: StatusQuery): Promise<StatusObject>;
339
+ status(path: string | string[], query: StatusQuery): Promise<StatusObject | false>;
326
340
  /**
327
341
  * Starts listening for new or deleted messages from the currently opened mailbox. Only required if `disableAutoIdle` is set to `true`
328
342
  * otherwise IDLE is started by default on connection inactivity. NB! If `idle()` is called manually then it does not
329
343
  * return until IDLE is finished which means you would have to call some other command out of scope.
330
344
  *
331
- * @returns Did the operation succeed or not
345
+ * @returns `false` if IDLE failed, `undefined` otherwise
332
346
  *
333
347
  * @example
334
348
  * let mailbox = await client.mailboxOpen('INBOX');
@@ -470,6 +484,10 @@ export declare class ImapFlow extends EventEmitter {
470
484
  * ]});
471
485
  */
472
486
  search(query: SearchObject, options?: MessageRangeOptions | undefined): Promise<number[] | false | undefined>;
487
+ /**
488
+ * Search with `returnOptions` set: an ESEARCH result object from a server that supports
489
+ * ESEARCH, the plain list of numbers otherwise
490
+ */
473
491
  search(query: SearchObject, options: SearchOptions & {
474
492
  returnOptions: SearchReturnOption[];
475
493
  }): Promise<ESearchResult | number[] | false | undefined>;
@@ -540,10 +558,12 @@ export declare class ImapFlow extends EventEmitter {
540
558
  * @example
541
559
  * let mailbox = await client.mailboxOpen('INBOX');
542
560
  * // download body part nr '1.2' from latest message
543
- * let {meta, content} = await client.download('*', '1.2');
544
- * content.pipe(fs.createWriteStream(meta.filename));
561
+ * let download = await client.download('*', '1.2');
562
+ * if (download.content) {
563
+ * download.content.pipe(fs.createWriteStream(download.meta.filename));
564
+ * }
545
565
  */
546
- download(range: SequenceString, part?: string | undefined, options?: DownloadOptions | undefined): Promise<DownloadObject>;
566
+ download(range: SequenceString, part?: string | undefined, options?: DownloadOptions | undefined): Promise<DownloadObject | DownloadNotFound>;
547
567
  /**
548
568
  * Fetch multiple attachments as Buffer values
549
569
  *
@@ -583,7 +603,8 @@ export declare class ImapFlow extends EventEmitter {
583
603
  getMailboxLock(path: string | string[], options?: MailboxLockOptions | undefined): Promise<MailboxLockObject>;
584
604
  /**
585
605
  * Detaches sockets from the IMAP pipeline. Useful for upgrading the connection
586
- * (e.g., STARTTLS) or transferring socket ownership.
606
+ * (e.g., STARTTLS) or transferring socket ownership. Call it while the connection is not
607
+ * idling: an IDLE in progress is not broken first, so the server still expects `DONE`.
587
608
  *
588
609
  * @returns Socket objects: `readSocket` is the read socket (inflated socket if compression is enabled, raw socket otherwise),
589
610
  * `writeSocket` the write socket and `socket` the raw underlying socket (same as readSocket/writeSocket when compression is disabled)
@@ -594,81 +615,6 @@ export declare class ImapFlow extends EventEmitter {
594
615
  socket: ImapSocket;
595
616
  };
596
617
  }
597
- /**
598
- * Connection close event. **NB!** ImapFlow does not handle reconnects automatically.
599
- * So whenever a 'close' event occurs you must create a new connection yourself.
600
- *
601
- * @event ImapFlow#close
602
- */
603
- /**
604
- * Error event. In most cases getting an error event also means that connection is closed
605
- * and pending operations should return with a failure.
606
- *
607
- * @event ImapFlow#error
608
- * @example
609
- * client.on('error', err=>{
610
- * console.log(`Error occurred: ${err.message}`);
611
- * });
612
- */
613
- /**
614
- * Message count in currently opened mailbox changed
615
- *
616
- * @event ImapFlow#exists
617
- * @example
618
- * client.on('exists', data=>{
619
- * console.log(`Message count in "${data.path}" is ${data.count}`);
620
- * });
621
- */
622
- /**
623
- * Deleted message sequence number in currently opened mailbox. One event is fired for every deleted email.
624
- *
625
- * @event ImapFlow#expunge
626
- * @example
627
- * client.on('expunge', data=>{
628
- * console.log(`Message #${data.seq} was deleted from "${data.path}"`);
629
- * });
630
- */
631
- /**
632
- * Flags were updated for a message. Not all servers fire this event.
633
- *
634
- * @event ImapFlow#flags
635
- * @example
636
- * client.on('flags', data=>{
637
- * console.log(`Flag set for #${data.seq} is now "${Array.from(data.flags).join(', ')}"`);
638
- * });
639
- */
640
- /**
641
- * Mailbox was opened
642
- *
643
- * @event ImapFlow#mailboxOpen
644
- * @example
645
- * client.on('mailboxOpen', mailbox => {
646
- * console.log(`Mailbox ${mailbox.path} was opened`);
647
- * });
648
- */
649
- /**
650
- * Mailbox was closed
651
- *
652
- * Emitted both when a selected mailbox is closed explicitly, by `mailboxClose()` or by
653
- * selecting a different mailbox, and when the connection itself goes away while a mailbox
654
- * was still selected, whether through a clean logout or a lost transport. The transition is
655
- * reported once per selected mailbox, before the `close` event.
656
- *
657
- * @event ImapFlow#mailboxClose
658
- * @example
659
- * client.on('mailboxClose', mailbox => {
660
- * console.log(`Mailbox ${mailbox.path} was closed`);
661
- * });
662
- */
663
- /**
664
- * Log event if `emitLogs=true`
665
- *
666
- * @event ImapFlow#log
667
- * @example
668
- * client.on('log', entry => {
669
- * console.log(`${entry.cid} ${entry.msg}`);
670
- * });
671
- */
672
618
  declare const imapflow: {
673
619
  ImapFlow: typeof ImapFlow;
674
620
  AuthenticationFailure: typeof AuthenticationFailure;