agent-messenger 2.10.1 → 2.11.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 (536) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.env.template +4 -1
  3. package/README.md +77 -27
  4. package/bun.lock +26 -0
  5. package/dist/package.json +14 -1
  6. package/dist/src/platforms/channeltalk/commands/auth.d.ts +2 -1
  7. package/dist/src/platforms/channeltalk/commands/auth.d.ts.map +1 -1
  8. package/dist/src/platforms/channeltalk/commands/auth.js +5 -3
  9. package/dist/src/platforms/channeltalk/commands/auth.js.map +1 -1
  10. package/dist/src/platforms/channeltalk/token-extractor.d.ts +2 -1
  11. package/dist/src/platforms/channeltalk/token-extractor.d.ts.map +1 -1
  12. package/dist/src/platforms/channeltalk/token-extractor.js +22 -6
  13. package/dist/src/platforms/channeltalk/token-extractor.js.map +1 -1
  14. package/dist/src/platforms/channeltalkbot/cli.d.ts.map +1 -1
  15. package/dist/src/platforms/channeltalkbot/cli.js +11 -1
  16. package/dist/src/platforms/channeltalkbot/cli.js.map +1 -1
  17. package/dist/src/platforms/channeltalkbot/commands/auth.d.ts.map +1 -1
  18. package/dist/src/platforms/channeltalkbot/commands/auth.js +1 -5
  19. package/dist/src/platforms/channeltalkbot/commands/auth.js.map +1 -1
  20. package/dist/src/platforms/channeltalkbot/commands/bot.d.ts.map +1 -1
  21. package/dist/src/platforms/channeltalkbot/commands/bot.js +1 -6
  22. package/dist/src/platforms/channeltalkbot/commands/bot.js.map +1 -1
  23. package/dist/src/platforms/channeltalkbot/commands/chat.d.ts.map +1 -1
  24. package/dist/src/platforms/channeltalkbot/commands/chat.js +1 -6
  25. package/dist/src/platforms/channeltalkbot/commands/chat.js.map +1 -1
  26. package/dist/src/platforms/channeltalkbot/commands/group.d.ts.map +1 -1
  27. package/dist/src/platforms/channeltalkbot/commands/group.js +1 -6
  28. package/dist/src/platforms/channeltalkbot/commands/group.js.map +1 -1
  29. package/dist/src/platforms/channeltalkbot/commands/manager.d.ts.map +1 -1
  30. package/dist/src/platforms/channeltalkbot/commands/manager.js +1 -6
  31. package/dist/src/platforms/channeltalkbot/commands/manager.js.map +1 -1
  32. package/dist/src/platforms/channeltalkbot/commands/message.d.ts.map +1 -1
  33. package/dist/src/platforms/channeltalkbot/commands/message.js +1 -6
  34. package/dist/src/platforms/channeltalkbot/commands/message.js.map +1 -1
  35. package/dist/src/platforms/channeltalkbot/commands/whoami.d.ts.map +1 -1
  36. package/dist/src/platforms/channeltalkbot/commands/whoami.js +1 -6
  37. package/dist/src/platforms/channeltalkbot/commands/whoami.js.map +1 -1
  38. package/dist/src/platforms/channeltalkbot/credential-manager.d.ts +5 -0
  39. package/dist/src/platforms/channeltalkbot/credential-manager.d.ts.map +1 -1
  40. package/dist/src/platforms/channeltalkbot/credential-manager.js +34 -4
  41. package/dist/src/platforms/channeltalkbot/credential-manager.js.map +1 -1
  42. package/dist/src/platforms/discord/commands/auth.d.ts +1 -0
  43. package/dist/src/platforms/discord/commands/auth.d.ts.map +1 -1
  44. package/dist/src/platforms/discord/commands/auth.js +3 -1
  45. package/dist/src/platforms/discord/commands/auth.js.map +1 -1
  46. package/dist/src/platforms/discord/listener.d.ts +2 -0
  47. package/dist/src/platforms/discord/listener.d.ts.map +1 -1
  48. package/dist/src/platforms/discord/listener.js +51 -21
  49. package/dist/src/platforms/discord/listener.js.map +1 -1
  50. package/dist/src/platforms/discord/token-extractor.d.ts +2 -1
  51. package/dist/src/platforms/discord/token-extractor.d.ts.map +1 -1
  52. package/dist/src/platforms/discord/token-extractor.js +21 -6
  53. package/dist/src/platforms/discord/token-extractor.js.map +1 -1
  54. package/dist/src/platforms/discordbot/cli.d.ts.map +1 -1
  55. package/dist/src/platforms/discordbot/cli.js +12 -1
  56. package/dist/src/platforms/discordbot/cli.js.map +1 -1
  57. package/dist/src/platforms/discordbot/client.d.ts +3 -0
  58. package/dist/src/platforms/discordbot/client.d.ts.map +1 -1
  59. package/dist/src/platforms/discordbot/client.js +3 -0
  60. package/dist/src/platforms/discordbot/client.js.map +1 -1
  61. package/dist/src/platforms/discordbot/commands/auth.d.ts.map +1 -1
  62. package/dist/src/platforms/discordbot/commands/auth.js +1 -5
  63. package/dist/src/platforms/discordbot/commands/auth.js.map +1 -1
  64. package/dist/src/platforms/discordbot/commands/message.d.ts.map +1 -1
  65. package/dist/src/platforms/discordbot/commands/message.js +1 -6
  66. package/dist/src/platforms/discordbot/commands/message.js.map +1 -1
  67. package/dist/src/platforms/discordbot/commands/server.d.ts.map +1 -1
  68. package/dist/src/platforms/discordbot/commands/server.js +1 -4
  69. package/dist/src/platforms/discordbot/commands/server.js.map +1 -1
  70. package/dist/src/platforms/discordbot/commands/whoami.d.ts.map +1 -1
  71. package/dist/src/platforms/discordbot/commands/whoami.js +1 -6
  72. package/dist/src/platforms/discordbot/commands/whoami.js.map +1 -1
  73. package/dist/src/platforms/discordbot/index.d.ts +3 -1
  74. package/dist/src/platforms/discordbot/index.d.ts.map +1 -1
  75. package/dist/src/platforms/discordbot/index.js +2 -1
  76. package/dist/src/platforms/discordbot/index.js.map +1 -1
  77. package/dist/src/platforms/discordbot/listener.d.ts +43 -0
  78. package/dist/src/platforms/discordbot/listener.d.ts.map +1 -0
  79. package/dist/src/platforms/discordbot/listener.js +292 -0
  80. package/dist/src/platforms/discordbot/listener.js.map +1 -0
  81. package/dist/src/platforms/discordbot/types.d.ts +161 -0
  82. package/dist/src/platforms/discordbot/types.d.ts.map +1 -1
  83. package/dist/src/platforms/discordbot/types.js +34 -0
  84. package/dist/src/platforms/discordbot/types.js.map +1 -1
  85. package/dist/src/platforms/instagram/commands/auth.d.ts.map +1 -1
  86. package/dist/src/platforms/instagram/commands/auth.js +3 -1
  87. package/dist/src/platforms/instagram/commands/auth.js.map +1 -1
  88. package/dist/src/platforms/instagram/token-extractor.d.ts +2 -1
  89. package/dist/src/platforms/instagram/token-extractor.d.ts.map +1 -1
  90. package/dist/src/platforms/instagram/token-extractor.js +11 -2
  91. package/dist/src/platforms/instagram/token-extractor.js.map +1 -1
  92. package/dist/src/platforms/slack/commands/auth.d.ts.map +1 -1
  93. package/dist/src/platforms/slack/commands/auth.js +4 -2
  94. package/dist/src/platforms/slack/commands/auth.js.map +1 -1
  95. package/dist/src/platforms/slack/token-extractor.d.ts +4 -1
  96. package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -1
  97. package/dist/src/platforms/slack/token-extractor.js +64 -15
  98. package/dist/src/platforms/slack/token-extractor.js.map +1 -1
  99. package/dist/src/platforms/slackbot/cli.d.ts.map +1 -1
  100. package/dist/src/platforms/slackbot/cli.js +15 -3
  101. package/dist/src/platforms/slackbot/cli.js.map +1 -1
  102. package/dist/src/platforms/slackbot/client.d.ts +22 -1
  103. package/dist/src/platforms/slackbot/client.d.ts.map +1 -1
  104. package/dist/src/platforms/slackbot/client.js +104 -1
  105. package/dist/src/platforms/slackbot/client.js.map +1 -1
  106. package/dist/src/platforms/slackbot/commands/auth.d.ts.map +1 -1
  107. package/dist/src/platforms/slackbot/commands/auth.js +1 -5
  108. package/dist/src/platforms/slackbot/commands/auth.js.map +1 -1
  109. package/dist/src/platforms/slackbot/commands/file.d.ts +3 -0
  110. package/dist/src/platforms/slackbot/commands/file.d.ts.map +1 -0
  111. package/dist/src/platforms/slackbot/commands/file.js +164 -0
  112. package/dist/src/platforms/slackbot/commands/file.js.map +1 -0
  113. package/dist/src/platforms/slackbot/commands/index.d.ts +1 -0
  114. package/dist/src/platforms/slackbot/commands/index.d.ts.map +1 -1
  115. package/dist/src/platforms/slackbot/commands/index.js +1 -0
  116. package/dist/src/platforms/slackbot/commands/index.js.map +1 -1
  117. package/dist/src/platforms/slackbot/commands/message.d.ts.map +1 -1
  118. package/dist/src/platforms/slackbot/commands/message.js +19 -0
  119. package/dist/src/platforms/slackbot/commands/message.js.map +1 -1
  120. package/dist/src/platforms/slackbot/commands/whoami.d.ts.map +1 -1
  121. package/dist/src/platforms/slackbot/commands/whoami.js +1 -6
  122. package/dist/src/platforms/slackbot/commands/whoami.js.map +1 -1
  123. package/dist/src/platforms/slackbot/credential-manager.d.ts +1 -0
  124. package/dist/src/platforms/slackbot/credential-manager.d.ts.map +1 -1
  125. package/dist/src/platforms/slackbot/credential-manager.js +30 -2
  126. package/dist/src/platforms/slackbot/credential-manager.js.map +1 -1
  127. package/dist/src/platforms/slackbot/index.d.ts +4 -1
  128. package/dist/src/platforms/slackbot/index.d.ts.map +1 -1
  129. package/dist/src/platforms/slackbot/index.js +1 -0
  130. package/dist/src/platforms/slackbot/index.js.map +1 -1
  131. package/dist/src/platforms/slackbot/listener.d.ts +44 -0
  132. package/dist/src/platforms/slackbot/listener.d.ts.map +1 -0
  133. package/dist/src/platforms/slackbot/listener.js +313 -0
  134. package/dist/src/platforms/slackbot/listener.js.map +1 -0
  135. package/dist/src/platforms/slackbot/types.d.ts +196 -1
  136. package/dist/src/platforms/slackbot/types.d.ts.map +1 -1
  137. package/dist/src/platforms/slackbot/types.js +4 -1
  138. package/dist/src/platforms/slackbot/types.js.map +1 -1
  139. package/dist/src/platforms/teams/commands/auth.d.ts +1 -0
  140. package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
  141. package/dist/src/platforms/teams/commands/auth.js +37 -6
  142. package/dist/src/platforms/teams/commands/auth.js.map +1 -1
  143. package/dist/src/platforms/teams/ensure-auth.js +31 -9
  144. package/dist/src/platforms/teams/ensure-auth.js.map +1 -1
  145. package/dist/src/platforms/teams/token-extractor.d.ts +4 -1
  146. package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
  147. package/dist/src/platforms/teams/token-extractor.js +80 -31
  148. package/dist/src/platforms/teams/token-extractor.js.map +1 -1
  149. package/dist/src/platforms/webex/commands/auth.d.ts +1 -0
  150. package/dist/src/platforms/webex/commands/auth.d.ts.map +1 -1
  151. package/dist/src/platforms/webex/commands/auth.js +3 -1
  152. package/dist/src/platforms/webex/commands/auth.js.map +1 -1
  153. package/dist/src/platforms/webex/token-extractor.d.ts +3 -1
  154. package/dist/src/platforms/webex/token-extractor.d.ts.map +1 -1
  155. package/dist/src/platforms/webex/token-extractor.js +16 -2
  156. package/dist/src/platforms/webex/token-extractor.js.map +1 -1
  157. package/dist/src/platforms/wechatbot/cli.d.ts.map +1 -1
  158. package/dist/src/platforms/wechatbot/cli.js +11 -1
  159. package/dist/src/platforms/wechatbot/cli.js.map +1 -1
  160. package/dist/src/platforms/wechatbot/commands/auth.d.ts.map +1 -1
  161. package/dist/src/platforms/wechatbot/commands/auth.js +1 -5
  162. package/dist/src/platforms/wechatbot/commands/auth.js.map +1 -1
  163. package/dist/src/platforms/wechatbot/commands/message.d.ts.map +1 -1
  164. package/dist/src/platforms/wechatbot/commands/message.js +1 -6
  165. package/dist/src/platforms/wechatbot/commands/message.js.map +1 -1
  166. package/dist/src/platforms/wechatbot/commands/template.d.ts.map +1 -1
  167. package/dist/src/platforms/wechatbot/commands/template.js +1 -6
  168. package/dist/src/platforms/wechatbot/commands/template.js.map +1 -1
  169. package/dist/src/platforms/wechatbot/commands/user.d.ts.map +1 -1
  170. package/dist/src/platforms/wechatbot/commands/user.js +1 -6
  171. package/dist/src/platforms/wechatbot/commands/user.js.map +1 -1
  172. package/dist/src/platforms/wechatbot/commands/whoami.d.ts.map +1 -1
  173. package/dist/src/platforms/wechatbot/commands/whoami.js +1 -6
  174. package/dist/src/platforms/wechatbot/commands/whoami.js.map +1 -1
  175. package/dist/src/platforms/whatsappbot/cli.d.ts.map +1 -1
  176. package/dist/src/platforms/whatsappbot/cli.js +11 -1
  177. package/dist/src/platforms/whatsappbot/cli.js.map +1 -1
  178. package/dist/src/platforms/whatsappbot/commands/auth.d.ts.map +1 -1
  179. package/dist/src/platforms/whatsappbot/commands/auth.js +1 -5
  180. package/dist/src/platforms/whatsappbot/commands/auth.js.map +1 -1
  181. package/dist/src/platforms/whatsappbot/commands/message.d.ts.map +1 -1
  182. package/dist/src/platforms/whatsappbot/commands/message.js +1 -6
  183. package/dist/src/platforms/whatsappbot/commands/message.js.map +1 -1
  184. package/dist/src/platforms/whatsappbot/commands/template.d.ts.map +1 -1
  185. package/dist/src/platforms/whatsappbot/commands/template.js +1 -6
  186. package/dist/src/platforms/whatsappbot/commands/template.js.map +1 -1
  187. package/dist/src/platforms/whatsappbot/commands/whoami.d.ts.map +1 -1
  188. package/dist/src/platforms/whatsappbot/commands/whoami.js +1 -6
  189. package/dist/src/platforms/whatsappbot/commands/whoami.js.map +1 -1
  190. package/dist/src/shared/chromium/browsers.d.ts +8 -0
  191. package/dist/src/shared/chromium/browsers.d.ts.map +1 -1
  192. package/dist/src/shared/chromium/browsers.js +58 -3
  193. package/dist/src/shared/chromium/browsers.js.map +1 -1
  194. package/dist/src/shared/chromium/cli-options.d.ts +5 -0
  195. package/dist/src/shared/chromium/cli-options.d.ts.map +1 -0
  196. package/dist/src/shared/chromium/cli-options.js +8 -0
  197. package/dist/src/shared/chromium/cli-options.js.map +1 -0
  198. package/dist/src/shared/chromium/decryptor.d.ts +6 -0
  199. package/dist/src/shared/chromium/decryptor.d.ts.map +1 -1
  200. package/dist/src/shared/chromium/decryptor.js +26 -6
  201. package/dist/src/shared/chromium/decryptor.js.map +1 -1
  202. package/dist/src/shared/chromium/index.d.ts +3 -1
  203. package/dist/src/shared/chromium/index.d.ts.map +1 -1
  204. package/dist/src/shared/chromium/index.js +2 -1
  205. package/dist/src/shared/chromium/index.js.map +1 -1
  206. package/dist/src/shared/utils/cli-output.d.ts +7 -0
  207. package/dist/src/shared/utils/cli-output.d.ts.map +1 -0
  208. package/dist/src/shared/utils/cli-output.js +7 -0
  209. package/dist/src/shared/utils/cli-output.js.map +1 -0
  210. package/dist/src/tui/app.d.ts.map +1 -1
  211. package/dist/src/tui/app.js +73 -20
  212. package/dist/src/tui/app.js.map +1 -1
  213. package/docs/content/docs/cli/channeltalk.mdx +4 -0
  214. package/docs/content/docs/cli/discord.mdx +5 -0
  215. package/docs/content/docs/cli/instagram.mdx +3 -0
  216. package/docs/content/docs/cli/slack.mdx +5 -0
  217. package/docs/content/docs/cli/slackbot.mdx +60 -22
  218. package/docs/content/docs/cli/teams.mdx +5 -0
  219. package/docs/content/docs/cli/webex.mdx +3 -0
  220. package/docs/content/docs/sdk/channeltalkbot.mdx +38 -1
  221. package/docs/content/docs/sdk/discordbot.mdx +501 -0
  222. package/docs/content/docs/sdk/meta.json +2 -0
  223. package/docs/content/docs/sdk/slackbot.mdx +576 -0
  224. package/e2e/README.md +1 -1
  225. package/e2e/channeltalk.e2e.test.ts +13 -13
  226. package/e2e/channeltalkbot.e2e.test.ts +13 -13
  227. package/e2e/config.ts +9 -4
  228. package/e2e/discord.e2e.test.ts +24 -24
  229. package/e2e/discordbot.e2e.test.ts +16 -16
  230. package/e2e/instagram.e2e.test.ts +10 -10
  231. package/e2e/kakaotalk.e2e.test.ts +7 -7
  232. package/e2e/line.e2e.test.ts +8 -8
  233. package/e2e/slack.e2e.test.ts +34 -34
  234. package/e2e/slackbot.e2e.test.ts +14 -14
  235. package/e2e/teams.e2e.test.ts +23 -23
  236. package/e2e/telegram.e2e.test.ts +8 -8
  237. package/e2e/webex.e2e.test.ts +14 -14
  238. package/e2e/whatsapp.e2e.test.ts +8 -8
  239. package/e2e/whatsappbot.e2e.test.ts +6 -6
  240. package/examples/discordbot-listen.ts +65 -0
  241. package/examples/slackbot-listen.ts +65 -0
  242. package/package.json +14 -1
  243. package/skills/agent-channeltalk/SKILL.md +5 -1
  244. package/skills/agent-channeltalk/references/authentication.md +5 -1
  245. package/skills/agent-channeltalkbot/SKILL.md +17 -3
  246. package/skills/agent-channeltalkbot/references/authentication.md +7 -5
  247. package/skills/agent-discord/SKILL.md +5 -1
  248. package/skills/agent-discord/references/authentication.md +7 -1
  249. package/skills/agent-discordbot/SKILL.md +13 -2
  250. package/skills/agent-discordbot/references/common-patterns.md +1 -1
  251. package/skills/agent-instagram/SKILL.md +7 -1
  252. package/skills/agent-instagram/references/authentication.md +6 -0
  253. package/skills/agent-kakaotalk/SKILL.md +1 -1
  254. package/skills/agent-line/SKILL.md +1 -1
  255. package/skills/agent-slack/SKILL.md +5 -1
  256. package/skills/agent-slack/references/authentication.md +7 -1
  257. package/skills/agent-slackbot/SKILL.md +56 -4
  258. package/skills/agent-slackbot/references/authentication.md +4 -0
  259. package/skills/agent-teams/SKILL.md +5 -1
  260. package/skills/agent-teams/references/authentication.md +7 -1
  261. package/skills/agent-telegram/SKILL.md +1 -1
  262. package/skills/agent-webex/SKILL.md +7 -1
  263. package/skills/agent-webex/references/authentication.md +6 -0
  264. package/skills/agent-wechatbot/SKILL.md +16 -1
  265. package/skills/agent-wechatbot/references/authentication.md +219 -0
  266. package/skills/agent-wechatbot/references/common-patterns.md +358 -0
  267. package/skills/agent-wechatbot/templates/account-summary.sh +122 -0
  268. package/skills/agent-wechatbot/templates/post-message.sh +122 -0
  269. package/skills/agent-wechatbot/templates/send-template.sh +152 -0
  270. package/skills/agent-whatsapp/SKILL.md +1 -1
  271. package/skills/agent-whatsappbot/SKILL.md +30 -1
  272. package/src/platforms/channeltalk/client.test.ts +26 -26
  273. package/src/platforms/channeltalk/commands/auth.test.ts +31 -19
  274. package/src/platforms/channeltalk/commands/auth.ts +15 -5
  275. package/src/platforms/channeltalk/commands/bot.test.ts +2 -2
  276. package/src/platforms/channeltalk/commands/chat.test.ts +3 -3
  277. package/src/platforms/channeltalk/commands/group.test.ts +4 -4
  278. package/src/platforms/channeltalk/commands/manager.test.ts +2 -2
  279. package/src/platforms/channeltalk/commands/message.test.ts +17 -17
  280. package/src/platforms/channeltalk/commands/snapshot.test.ts +7 -7
  281. package/src/platforms/channeltalk/commands/whoami.test.ts +3 -3
  282. package/src/platforms/channeltalk/credential-manager.test.ts +18 -18
  283. package/src/platforms/channeltalk/ensure-auth.test.ts +5 -5
  284. package/src/platforms/channeltalk/index.test.ts +23 -23
  285. package/src/platforms/channeltalk/token-extractor.test.ts +21 -21
  286. package/src/platforms/channeltalk/token-extractor.ts +24 -5
  287. package/src/platforms/channeltalk/types.test.ts +12 -12
  288. package/src/platforms/channeltalkbot/cli.ts +9 -0
  289. package/src/platforms/channeltalkbot/client.test.ts +14 -14
  290. package/src/platforms/channeltalkbot/commands/auth.test.ts +16 -16
  291. package/src/platforms/channeltalkbot/commands/auth.ts +1 -5
  292. package/src/platforms/channeltalkbot/commands/bot.test.ts +6 -6
  293. package/src/platforms/channeltalkbot/commands/bot.ts +1 -6
  294. package/src/platforms/channeltalkbot/commands/chat.test.ts +9 -9
  295. package/src/platforms/channeltalkbot/commands/chat.ts +1 -6
  296. package/src/platforms/channeltalkbot/commands/group.test.ts +6 -6
  297. package/src/platforms/channeltalkbot/commands/group.ts +1 -6
  298. package/src/platforms/channeltalkbot/commands/manager.test.ts +3 -3
  299. package/src/platforms/channeltalkbot/commands/manager.ts +1 -6
  300. package/src/platforms/channeltalkbot/commands/message.test.ts +10 -10
  301. package/src/platforms/channeltalkbot/commands/message.ts +1 -6
  302. package/src/platforms/channeltalkbot/commands/snapshot.test.ts +7 -7
  303. package/src/platforms/channeltalkbot/commands/whoami.test.ts +6 -4
  304. package/src/platforms/channeltalkbot/commands/whoami.ts +1 -6
  305. package/src/platforms/channeltalkbot/credential-manager.test.ts +123 -29
  306. package/src/platforms/channeltalkbot/credential-manager.ts +37 -4
  307. package/src/platforms/channeltalkbot/index.test.ts +15 -15
  308. package/src/platforms/discord/client.test.ts +28 -28
  309. package/src/platforms/discord/commands/auth.test.ts +7 -7
  310. package/src/platforms/discord/commands/auth.ts +13 -2
  311. package/src/platforms/discord/commands/channel.test.ts +7 -7
  312. package/src/platforms/discord/commands/dm.test.ts +4 -4
  313. package/src/platforms/discord/commands/file.test.ts +4 -4
  314. package/src/platforms/discord/commands/friend.test.ts +6 -6
  315. package/src/platforms/discord/commands/member.test.ts +5 -5
  316. package/src/platforms/discord/commands/mention.test.ts +5 -5
  317. package/src/platforms/discord/commands/message.test.ts +9 -9
  318. package/src/platforms/discord/commands/note.test.ts +6 -6
  319. package/src/platforms/discord/commands/profile.test.ts +4 -4
  320. package/src/platforms/discord/commands/reaction.test.ts +5 -5
  321. package/src/platforms/discord/commands/server.test.ts +7 -7
  322. package/src/platforms/discord/commands/snapshot.test.ts +6 -6
  323. package/src/platforms/discord/commands/thread.test.ts +6 -6
  324. package/src/platforms/discord/commands/user.test.ts +5 -5
  325. package/src/platforms/discord/commands/whoami.test.ts +6 -6
  326. package/src/platforms/discord/credential-manager.test.ts +16 -16
  327. package/src/platforms/discord/ensure-auth.test.ts +8 -8
  328. package/src/platforms/discord/index.test.ts +17 -17
  329. package/src/platforms/discord/listener.test.ts +92 -34
  330. package/src/platforms/discord/listener.ts +43 -19
  331. package/src/platforms/discord/token-extractor.test.ts +53 -53
  332. package/src/platforms/discord/token-extractor.ts +30 -6
  333. package/src/platforms/discord/types.test.ts +26 -26
  334. package/src/platforms/discordbot/cli.ts +10 -0
  335. package/src/platforms/discordbot/client.test.ts +31 -31
  336. package/src/platforms/discordbot/client.ts +4 -0
  337. package/src/platforms/discordbot/commands/auth.test.ts +18 -18
  338. package/src/platforms/discordbot/commands/auth.ts +1 -5
  339. package/src/platforms/discordbot/commands/channel.test.ts +11 -11
  340. package/src/platforms/discordbot/commands/file.test.ts +7 -7
  341. package/src/platforms/discordbot/commands/message.test.ts +25 -25
  342. package/src/platforms/discordbot/commands/message.ts +1 -6
  343. package/src/platforms/discordbot/commands/reaction.test.ts +6 -6
  344. package/src/platforms/discordbot/commands/server.test.ts +12 -12
  345. package/src/platforms/discordbot/commands/server.ts +1 -5
  346. package/src/platforms/discordbot/commands/snapshot.test.ts +13 -13
  347. package/src/platforms/discordbot/commands/thread.test.ts +10 -10
  348. package/src/platforms/discordbot/commands/user.test.ts +9 -9
  349. package/src/platforms/discordbot/commands/whoami.test.ts +4 -4
  350. package/src/platforms/discordbot/commands/whoami.ts +1 -6
  351. package/src/platforms/discordbot/credential-manager.test.ts +28 -28
  352. package/src/platforms/discordbot/index.test.ts +82 -0
  353. package/src/platforms/discordbot/index.ts +27 -9
  354. package/src/platforms/discordbot/listener.test.ts +1002 -0
  355. package/src/platforms/discordbot/listener.ts +321 -0
  356. package/src/platforms/discordbot/types.ts +163 -0
  357. package/src/platforms/instagram/client.test.ts +18 -18
  358. package/src/platforms/instagram/commands/auth.test.ts +11 -11
  359. package/src/platforms/instagram/commands/auth.ts +9 -1
  360. package/src/platforms/instagram/commands/chat.test.ts +6 -6
  361. package/src/platforms/instagram/commands/message.test.ts +11 -11
  362. package/src/platforms/instagram/commands/shared.test.ts +12 -12
  363. package/src/platforms/instagram/commands/whoami.test.ts +3 -3
  364. package/src/platforms/instagram/credential-manager.test.ts +21 -21
  365. package/src/platforms/instagram/ensure-auth.test.ts +4 -4
  366. package/src/platforms/instagram/index.test.ts +9 -9
  367. package/src/platforms/instagram/listener.test.ts +8 -8
  368. package/src/platforms/instagram/token-extractor.test.ts +35 -35
  369. package/src/platforms/instagram/token-extractor.ts +13 -1
  370. package/src/platforms/kakaotalk/client.test.ts +33 -33
  371. package/src/platforms/kakaotalk/commands/auth.test.ts +11 -11
  372. package/src/platforms/kakaotalk/commands/chat.test.ts +6 -6
  373. package/src/platforms/kakaotalk/commands/message.test.ts +7 -7
  374. package/src/platforms/kakaotalk/commands/whoami.test.ts +5 -5
  375. package/src/platforms/kakaotalk/credential-manager.test.ts +15 -15
  376. package/src/platforms/kakaotalk/index.test.ts +15 -15
  377. package/src/platforms/kakaotalk/listener.test.ts +17 -17
  378. package/src/platforms/line/client.test.ts +17 -17
  379. package/src/platforms/line/commands/auth.test.ts +8 -8
  380. package/src/platforms/line/commands/chat.test.ts +7 -7
  381. package/src/platforms/line/commands/friend.test.ts +6 -6
  382. package/src/platforms/line/commands/message.test.ts +7 -7
  383. package/src/platforms/line/commands/whoami.test.ts +6 -6
  384. package/src/platforms/line/credential-manager.test.ts +17 -17
  385. package/src/platforms/line/index.test.ts +10 -10
  386. package/src/platforms/line/listener.test.ts +15 -15
  387. package/src/platforms/line/types.test.ts +14 -14
  388. package/src/platforms/slack/cli.test.ts +8 -8
  389. package/src/platforms/slack/client.test.ts +151 -151
  390. package/src/platforms/slack/commands/activity.test.ts +13 -13
  391. package/src/platforms/slack/commands/auth.test.ts +34 -34
  392. package/src/platforms/slack/commands/auth.ts +11 -2
  393. package/src/platforms/slack/commands/bookmark.test.ts +9 -9
  394. package/src/platforms/slack/commands/channel.test.ts +17 -17
  395. package/src/platforms/slack/commands/drafts.test.ts +7 -7
  396. package/src/platforms/slack/commands/emoji.test.ts +3 -3
  397. package/src/platforms/slack/commands/file.test.ts +12 -12
  398. package/src/platforms/slack/commands/message.test.ts +19 -19
  399. package/src/platforms/slack/commands/pin.test.ts +7 -7
  400. package/src/platforms/slack/commands/reaction.test.ts +10 -10
  401. package/src/platforms/slack/commands/reminder.test.ts +9 -9
  402. package/src/platforms/slack/commands/saved.test.ts +7 -7
  403. package/src/platforms/slack/commands/sections.test.ts +5 -5
  404. package/src/platforms/slack/commands/snapshot.test.ts +13 -13
  405. package/src/platforms/slack/commands/unread.test.ts +6 -6
  406. package/src/platforms/slack/commands/user.test.ts +10 -10
  407. package/src/platforms/slack/commands/usergroup.test.ts +15 -15
  408. package/src/platforms/slack/commands/whoami.test.ts +6 -6
  409. package/src/platforms/slack/commands/workspace.test.ts +26 -26
  410. package/src/platforms/slack/credential-manager.test.ts +14 -14
  411. package/src/platforms/slack/ensure-auth.test.ts +21 -21
  412. package/src/platforms/slack/index.test.ts +12 -12
  413. package/src/platforms/slack/listener.test.ts +17 -17
  414. package/src/platforms/slack/token-extractor-node.test.ts +2 -2
  415. package/src/platforms/slack/token-extractor.test.ts +133 -37
  416. package/src/platforms/slack/token-extractor.ts +76 -13
  417. package/src/platforms/slack/types.test.ts +21 -21
  418. package/src/platforms/slackbot/cli.ts +13 -1
  419. package/src/platforms/slackbot/client.test.ts +296 -22
  420. package/src/platforms/slackbot/client.ts +130 -2
  421. package/src/platforms/slackbot/commands/auth.test.ts +14 -14
  422. package/src/platforms/slackbot/commands/auth.ts +1 -5
  423. package/src/platforms/slackbot/commands/channel.test.ts +7 -7
  424. package/src/platforms/slackbot/commands/file.test.ts +201 -0
  425. package/src/platforms/slackbot/commands/file.ts +212 -0
  426. package/src/platforms/slackbot/commands/index.ts +1 -0
  427. package/src/platforms/slackbot/commands/message.test.ts +13 -13
  428. package/src/platforms/slackbot/commands/message.ts +22 -0
  429. package/src/platforms/slackbot/commands/reaction.test.ts +6 -6
  430. package/src/platforms/slackbot/commands/user.test.ts +7 -7
  431. package/src/platforms/slackbot/commands/whoami.test.ts +4 -4
  432. package/src/platforms/slackbot/commands/whoami.ts +1 -6
  433. package/src/platforms/slackbot/credential-manager.test.ts +83 -23
  434. package/src/platforms/slackbot/credential-manager.ts +32 -2
  435. package/src/platforms/slackbot/index.test.ts +59 -0
  436. package/src/platforms/slackbot/index.ts +31 -7
  437. package/src/platforms/slackbot/listener.test.ts +1012 -0
  438. package/src/platforms/slackbot/listener.ts +362 -0
  439. package/src/platforms/slackbot/types.test.ts +7 -7
  440. package/src/platforms/slackbot/types.ts +224 -1
  441. package/src/platforms/teams/client.test.ts +30 -30
  442. package/src/platforms/teams/commands/auth.test.ts +9 -9
  443. package/src/platforms/teams/commands/auth.ts +66 -7
  444. package/src/platforms/teams/commands/channel.test.ts +7 -7
  445. package/src/platforms/teams/commands/file.test.ts +4 -4
  446. package/src/platforms/teams/commands/message.test.ts +5 -5
  447. package/src/platforms/teams/commands/reaction.test.ts +4 -4
  448. package/src/platforms/teams/commands/snapshot.test.ts +7 -7
  449. package/src/platforms/teams/commands/team.test.ts +8 -8
  450. package/src/platforms/teams/commands/user.test.ts +4 -4
  451. package/src/platforms/teams/commands/whoami.test.ts +6 -6
  452. package/src/platforms/teams/credential-manager.test.ts +17 -17
  453. package/src/platforms/teams/ensure-auth.test.ts +69 -18
  454. package/src/platforms/teams/ensure-auth.ts +39 -11
  455. package/src/platforms/teams/index.test.ts +15 -15
  456. package/src/platforms/teams/token-extractor.test.ts +251 -69
  457. package/src/platforms/teams/token-extractor.ts +94 -31
  458. package/src/platforms/teams/types.test.ts +26 -26
  459. package/src/platforms/telegram/app-config.test.ts +4 -4
  460. package/src/platforms/telegram/chat-utils.test.ts +12 -12
  461. package/src/platforms/telegram/client.test.ts +4 -4
  462. package/src/platforms/telegram/commands/auth.test.ts +16 -16
  463. package/src/platforms/telegram/commands/chat.test.ts +9 -9
  464. package/src/platforms/telegram/commands/message.test.ts +6 -6
  465. package/src/platforms/telegram/commands/shared.test.ts +3 -3
  466. package/src/platforms/telegram/commands/whoami.test.ts +3 -3
  467. package/src/platforms/telegram/credential-manager.test.ts +10 -10
  468. package/src/platforms/telegram/types.test.ts +6 -6
  469. package/src/platforms/webex/app-config.test.ts +8 -8
  470. package/src/platforms/webex/cli.test.ts +5 -5
  471. package/src/platforms/webex/client.test.ts +65 -65
  472. package/src/platforms/webex/commands/auth.test.ts +18 -18
  473. package/src/platforms/webex/commands/auth.ts +13 -2
  474. package/src/platforms/webex/commands/member.test.ts +5 -5
  475. package/src/platforms/webex/commands/message.test.ts +12 -12
  476. package/src/platforms/webex/commands/snapshot.test.ts +5 -5
  477. package/src/platforms/webex/commands/space.test.ts +10 -10
  478. package/src/platforms/webex/commands/whoami.test.ts +6 -6
  479. package/src/platforms/webex/credential-manager.test.ts +22 -22
  480. package/src/platforms/webex/encryption.test.ts +4 -4
  481. package/src/platforms/webex/ensure-auth.test.ts +5 -5
  482. package/src/platforms/webex/index.test.ts +5 -5
  483. package/src/platforms/webex/markdown-to-html.test.ts +33 -33
  484. package/src/platforms/webex/token-extractor.test.ts +23 -23
  485. package/src/platforms/webex/token-extractor.ts +25 -3
  486. package/src/platforms/webex/types.test.ts +27 -27
  487. package/src/platforms/wechatbot/cli.ts +9 -0
  488. package/src/platforms/wechatbot/client.test.ts +27 -27
  489. package/src/platforms/wechatbot/commands/auth.test.ts +15 -15
  490. package/src/platforms/wechatbot/commands/auth.ts +1 -5
  491. package/src/platforms/wechatbot/commands/message.test.ts +8 -8
  492. package/src/platforms/wechatbot/commands/message.ts +1 -6
  493. package/src/platforms/wechatbot/commands/template.test.ts +9 -9
  494. package/src/platforms/wechatbot/commands/template.ts +1 -6
  495. package/src/platforms/wechatbot/commands/user.test.ts +7 -7
  496. package/src/platforms/wechatbot/commands/user.ts +1 -6
  497. package/src/platforms/wechatbot/commands/whoami.test.ts +5 -5
  498. package/src/platforms/wechatbot/commands/whoami.ts +1 -6
  499. package/src/platforms/wechatbot/credential-manager.test.ts +18 -18
  500. package/src/platforms/wechatbot/index.test.ts +10 -10
  501. package/src/platforms/wechatbot/types.test.ts +25 -25
  502. package/src/platforms/whatsapp/commands/auth.test.ts +13 -13
  503. package/src/platforms/whatsapp/commands/chat.test.ts +8 -8
  504. package/src/platforms/whatsapp/commands/message.test.ts +10 -10
  505. package/src/platforms/whatsapp/commands/whoami.test.ts +3 -3
  506. package/src/platforms/whatsapp/credential-manager.test.ts +23 -23
  507. package/src/platforms/whatsapp/ensure-auth.test.ts +4 -4
  508. package/src/platforms/whatsapp/index.test.ts +8 -8
  509. package/src/platforms/whatsapp/types.test.ts +42 -42
  510. package/src/platforms/whatsappbot/cli.ts +9 -0
  511. package/src/platforms/whatsappbot/client.test.ts +27 -27
  512. package/src/platforms/whatsappbot/commands/auth.test.ts +14 -14
  513. package/src/platforms/whatsappbot/commands/auth.ts +1 -5
  514. package/src/platforms/whatsappbot/commands/message.test.ts +16 -16
  515. package/src/platforms/whatsappbot/commands/message.ts +1 -6
  516. package/src/platforms/whatsappbot/commands/template.test.ts +9 -9
  517. package/src/platforms/whatsappbot/commands/template.ts +1 -6
  518. package/src/platforms/whatsappbot/commands/whoami.test.ts +5 -5
  519. package/src/platforms/whatsappbot/commands/whoami.ts +1 -6
  520. package/src/platforms/whatsappbot/credential-manager.test.ts +18 -18
  521. package/src/platforms/whatsappbot/index.test.ts +7 -7
  522. package/src/platforms/whatsappbot/types.test.ts +18 -18
  523. package/src/shared/chromium/browsers.test.ts +102 -22
  524. package/src/shared/chromium/browsers.ts +72 -3
  525. package/src/shared/chromium/cli-options.test.ts +22 -0
  526. package/src/shared/chromium/cli-options.ts +12 -0
  527. package/src/shared/chromium/cookie-reader.test.ts +13 -13
  528. package/src/shared/chromium/decryptor.test.ts +97 -32
  529. package/src/shared/chromium/decryptor.ts +27 -6
  530. package/src/shared/chromium/index.ts +3 -0
  531. package/src/shared/utils/cli-output.test.ts +57 -0
  532. package/src/shared/utils/cli-output.ts +8 -0
  533. package/src/shared/utils/concurrency.test.ts +6 -6
  534. package/src/shared/utils/derived-key-cache.test.ts +11 -11
  535. package/src/tui/app.ts +129 -20
  536. package/src/tui/utils.test.ts +31 -31
@@ -1,4 +1,4 @@
1
- import { afterEach, beforeAll, describe, expect, test } from 'bun:test'
1
+ import { afterEach, beforeAll, describe, expect, it } from 'bun:test'
2
2
 
3
3
  import { INSTAGRAM_TEST_THREAD_ID, INSTAGRAM_TEST_USERNAME, validateInstagramEnvironment } from './config'
4
4
  import { generateTestId, parseJSON, runCLI, waitForRateLimit } from './helpers'
@@ -15,14 +15,14 @@ describe('Instagram E2E Tests', () => {
15
15
  })
16
16
 
17
17
  describe('auth', () => {
18
- test('auth status returns exit code 0', async () => {
18
+ it('auth status returns exit code 0', async () => {
19
19
  if (!instagramAvailable) return
20
20
 
21
21
  const result = await runCLI('instagram', ['auth', 'status'])
22
22
  expect(result.exitCode).toBe(0)
23
23
  })
24
24
 
25
- test('auth list returns accounts array', async () => {
25
+ it('auth list returns accounts array', async () => {
26
26
  if (!instagramAvailable) return
27
27
 
28
28
  const result = await runCLI('instagram', ['auth', 'list'])
@@ -34,7 +34,7 @@ describe('Instagram E2E Tests', () => {
34
34
  })
35
35
 
36
36
  describe('chat', () => {
37
- test('chat list returns chats', async () => {
37
+ it('chat list returns chats', async () => {
38
38
  if (!instagramAvailable) return
39
39
 
40
40
  const result = await runCLI('instagram', ['chat', 'list', '--limit', '5'])
@@ -44,7 +44,7 @@ describe('Instagram E2E Tests', () => {
44
44
  expect(data).toBeDefined()
45
45
  })
46
46
 
47
- test('chat search returns results', async () => {
47
+ it('chat search returns results', async () => {
48
48
  if (!instagramAvailable) return
49
49
 
50
50
  const result = await runCLI('instagram', ['chat', 'search', 'test', '--limit', '5'])
@@ -53,7 +53,7 @@ describe('Instagram E2E Tests', () => {
53
53
  })
54
54
 
55
55
  describe('message', () => {
56
- test('message send sends a message to thread', async () => {
56
+ it('message send sends a message to thread', async () => {
57
57
  if (!instagramAvailable) return
58
58
 
59
59
  const testId = generateTestId()
@@ -61,7 +61,7 @@ describe('Instagram E2E Tests', () => {
61
61
  expect(result.exitCode).toBe(0)
62
62
  })
63
63
 
64
- test('message list returns messages from thread', async () => {
64
+ it('message list returns messages from thread', async () => {
65
65
  if (!instagramAvailable) return
66
66
 
67
67
  const result = await runCLI('instagram', ['message', 'list', INSTAGRAM_TEST_THREAD_ID, '--limit', '5'])
@@ -71,7 +71,7 @@ describe('Instagram E2E Tests', () => {
71
71
  expect(data).toBeDefined()
72
72
  })
73
73
 
74
- test('message send-to sends a message to username', async () => {
74
+ it('message send-to sends a message to username', async () => {
75
75
  if (!instagramAvailable) return
76
76
  if (!INSTAGRAM_TEST_USERNAME) return
77
77
 
@@ -80,14 +80,14 @@ describe('Instagram E2E Tests', () => {
80
80
  expect(result.exitCode).toBe(0)
81
81
  })
82
82
 
83
- test('message search returns results', async () => {
83
+ it('message search returns results', async () => {
84
84
  if (!instagramAvailable) return
85
85
 
86
86
  const result = await runCLI('instagram', ['message', 'search', 'test', '--limit', '5'])
87
87
  expect(result.exitCode).toBe(0)
88
88
  })
89
89
 
90
- test('message search-users returns results', async () => {
90
+ it('message search-users returns results', async () => {
91
91
  if (!instagramAvailable) return
92
92
 
93
93
  const result = await runCLI('instagram', ['message', 'search-users', 'test'])
@@ -1,4 +1,4 @@
1
- import { afterEach, beforeAll, describe, expect, test } from 'bun:test'
1
+ import { afterEach, beforeAll, describe, expect, it } from 'bun:test'
2
2
 
3
3
  import { KAKAOTALK_TEST_CHAT_ID, validateKakaoTalkEnvironment } from './config'
4
4
  import { generateTestId, parseJSON, runCLI, waitForRateLimit } from './helpers'
@@ -15,14 +15,14 @@ describe('KakaoTalk E2E Tests', () => {
15
15
  })
16
16
 
17
17
  describe('auth', () => {
18
- test('auth status returns valid auth info', async () => {
18
+ it('auth status returns valid auth info', async () => {
19
19
  if (!kakaotalkAvailable) return
20
20
 
21
21
  const result = await runCLI('kakaotalk', ['auth', 'status'])
22
22
  expect(result.exitCode).toBe(0)
23
23
  })
24
24
 
25
- test('auth list returns accounts array', async () => {
25
+ it('auth list returns accounts array', async () => {
26
26
  if (!kakaotalkAvailable) return
27
27
 
28
28
  const result = await runCLI('kakaotalk', ['auth', 'list'])
@@ -34,7 +34,7 @@ describe('KakaoTalk E2E Tests', () => {
34
34
  })
35
35
 
36
36
  describe('chat', () => {
37
- test('chat list returns chats', async () => {
37
+ it('chat list returns chats', async () => {
38
38
  if (!kakaotalkAvailable) return
39
39
 
40
40
  const result = await runCLI('kakaotalk', ['chat', 'list'])
@@ -44,7 +44,7 @@ describe('KakaoTalk E2E Tests', () => {
44
44
  expect(data).toBeDefined()
45
45
  })
46
46
 
47
- test('chat list with search filter returns chats', async () => {
47
+ it('chat list with search filter returns chats', async () => {
48
48
  if (!kakaotalkAvailable) return
49
49
 
50
50
  const result = await runCLI('kakaotalk', ['chat', 'list', '--search', 'test'])
@@ -53,7 +53,7 @@ describe('KakaoTalk E2E Tests', () => {
53
53
  })
54
54
 
55
55
  describe('message', () => {
56
- test('message send sends a message to the test chat', async () => {
56
+ it('message send sends a message to the test chat', async () => {
57
57
  if (!kakaotalkAvailable) return
58
58
 
59
59
  const testId = generateTestId()
@@ -61,7 +61,7 @@ describe('KakaoTalk E2E Tests', () => {
61
61
  expect(result.exitCode).toBe(0)
62
62
  })
63
63
 
64
- test('message list returns messages from the test chat', async () => {
64
+ it('message list returns messages from the test chat', async () => {
65
65
  if (!kakaotalkAvailable) return
66
66
 
67
67
  const result = await runCLI('kakaotalk', ['message', 'list', KAKAOTALK_TEST_CHAT_ID, '-n', '5'])
@@ -1,4 +1,4 @@
1
- import { afterEach, beforeAll, describe, expect, test } from 'bun:test'
1
+ import { afterEach, beforeAll, describe, expect, it } from 'bun:test'
2
2
 
3
3
  import { LINE_TEST_CHAT_ID, validateLineEnvironment } from './config'
4
4
  import { generateTestId, parseJSON, runCLI, waitForRateLimit } from './helpers'
@@ -15,14 +15,14 @@ describe('LINE E2E Tests', () => {
15
15
  })
16
16
 
17
17
  describe('auth', () => {
18
- test('auth status returns valid auth info', async () => {
18
+ it('auth status returns valid auth info', async () => {
19
19
  if (!lineAvailable) return
20
20
 
21
21
  const result = await runCLI('line', ['auth', 'status'])
22
22
  expect(result.exitCode).toBe(0)
23
23
  })
24
24
 
25
- test('auth list returns accounts array', async () => {
25
+ it('auth list returns accounts array', async () => {
26
26
  if (!lineAvailable) return
27
27
 
28
28
  const result = await runCLI('line', ['auth', 'list'])
@@ -34,7 +34,7 @@ describe('LINE E2E Tests', () => {
34
34
  })
35
35
 
36
36
  describe('chat', () => {
37
- test('chat list returns chats', async () => {
37
+ it('chat list returns chats', async () => {
38
38
  if (!lineAvailable) return
39
39
 
40
40
  const result = await runCLI('line', ['chat', 'list', '--limit', '5'])
@@ -46,7 +46,7 @@ describe('LINE E2E Tests', () => {
46
46
  })
47
47
 
48
48
  describe('friend', () => {
49
- test('friend list returns friends', async () => {
49
+ it('friend list returns friends', async () => {
50
50
  if (!lineAvailable) return
51
51
 
52
52
  const result = await runCLI('line', ['friend', 'list'])
@@ -58,7 +58,7 @@ describe('LINE E2E Tests', () => {
58
58
  })
59
59
 
60
60
  describe('message', () => {
61
- test('message send sends a message to the test chat', async () => {
61
+ it('message send sends a message to the test chat', async () => {
62
62
  if (!lineAvailable) return
63
63
 
64
64
  const testId = generateTestId()
@@ -66,7 +66,7 @@ describe('LINE E2E Tests', () => {
66
66
  expect(result.exitCode).toBe(0)
67
67
  })
68
68
 
69
- test('message list returns messages from the test chat', async () => {
69
+ it('message list returns messages from the test chat', async () => {
70
70
  if (!lineAvailable) return
71
71
 
72
72
  const result = await runCLI('line', ['message', 'list', LINE_TEST_CHAT_ID, '-n', '5'])
@@ -78,7 +78,7 @@ describe('LINE E2E Tests', () => {
78
78
  })
79
79
 
80
80
  describe('profile', () => {
81
- test('profile returns current user profile', async () => {
81
+ it('profile returns current user profile', async () => {
82
82
  if (!lineAvailable) return
83
83
 
84
84
  const result = await runCLI('line', ['profile'])
@@ -1,4 +1,4 @@
1
- import { describe, test, expect, beforeAll, afterEach } from 'bun:test'
1
+ import { describe, it, expect, beforeAll, afterEach } from 'bun:test'
2
2
 
3
3
  import { WebClient } from '@slack/web-api'
4
4
 
@@ -32,7 +32,7 @@ describe('Slack E2E Tests', () => {
32
32
  })
33
33
 
34
34
  describe('auth', () => {
35
- test('auth status returns authenticated workspace info', async () => {
35
+ it('auth status returns authenticated workspace info', async () => {
36
36
  const result = await runCLI('slack', ['auth', 'status'])
37
37
  expect(result.exitCode).toBe(0)
38
38
 
@@ -44,7 +44,7 @@ describe('Slack E2E Tests', () => {
44
44
  })
45
45
 
46
46
  describe('workspace', () => {
47
- test('workspace list returns array', async () => {
47
+ it('workspace list returns array', async () => {
48
48
  const result = await runCLI('slack', ['workspace', 'list'])
49
49
  expect(result.exitCode).toBe(0)
50
50
 
@@ -52,7 +52,7 @@ describe('Slack E2E Tests', () => {
52
52
  expect(Array.isArray(data)).toBe(true)
53
53
  })
54
54
 
55
- test('workspace current returns current workspace', async () => {
55
+ it('workspace current returns current workspace', async () => {
56
56
  const result = await runCLI('slack', ['workspace', 'current'])
57
57
  expect(result.exitCode).toBe(0)
58
58
 
@@ -62,7 +62,7 @@ describe('Slack E2E Tests', () => {
62
62
  })
63
63
 
64
64
  describe('message', () => {
65
- test('message send creates message and returns ts', async () => {
65
+ it('message send creates message and returns ts', async () => {
66
66
  const testId = generateTestId()
67
67
  const result = await runCLI('slack', ['message', 'send', SLACK_TEST_CHANNEL_ID, `Test message ${testId}`])
68
68
  expect(result.exitCode).toBe(0)
@@ -73,7 +73,7 @@ describe('Slack E2E Tests', () => {
73
73
  if (data?.ts) testMessages.push(data.ts)
74
74
  })
75
75
 
76
- test('message list returns messages array', async () => {
76
+ it('message list returns messages array', async () => {
77
77
  const result = await runCLI('slack', ['message', 'list', SLACK_TEST_CHANNEL_ID, '--limit', '5'])
78
78
  expect(result.exitCode).toBe(0)
79
79
 
@@ -81,7 +81,7 @@ describe('Slack E2E Tests', () => {
81
81
  expect(Array.isArray(data)).toBe(true)
82
82
  })
83
83
 
84
- test('message get retrieves specific message', async () => {
84
+ it('message get retrieves specific message', async () => {
85
85
  const testId = generateTestId()
86
86
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Get test ${testId}`)
87
87
  testMessages.push(ts)
@@ -95,7 +95,7 @@ describe('Slack E2E Tests', () => {
95
95
  expect(data?.text).toContain(testId)
96
96
  })
97
97
 
98
- test('message update modifies message', async () => {
98
+ it('message update modifies message', async () => {
99
99
  const testId = generateTestId()
100
100
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Original ${testId}`)
101
101
  testMessages.push(ts)
@@ -111,7 +111,7 @@ describe('Slack E2E Tests', () => {
111
111
  expect(data?.text).toContain('Updated')
112
112
  })
113
113
 
114
- test('message search finds messages', async () => {
114
+ it('message search finds messages', async () => {
115
115
  const result = await runCLI('slack', ['message', 'search', 'test', '--limit', '5'])
116
116
  expect(result.exitCode).toBe(0)
117
117
 
@@ -119,7 +119,7 @@ describe('Slack E2E Tests', () => {
119
119
  expect(Array.isArray(data)).toBe(true)
120
120
  })
121
121
 
122
- test('message send with thread creates reply', async () => {
122
+ it('message send with thread creates reply', async () => {
123
123
  const testId = generateTestId()
124
124
  const { id: parentTs } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Parent ${testId}`)
125
125
  testMessages.push(parentTs)
@@ -142,7 +142,7 @@ describe('Slack E2E Tests', () => {
142
142
  if (data?.ts) testMessages.push(data.ts)
143
143
  }, 30000)
144
144
 
145
- test('message replies gets thread replies', async () => {
145
+ it('message replies gets thread replies', async () => {
146
146
  const testId = generateTestId()
147
147
  const { id: parentTs } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Thread parent ${testId}`)
148
148
  testMessages.push(parentTs)
@@ -161,7 +161,7 @@ describe('Slack E2E Tests', () => {
161
161
  expect(data?.length).toBeGreaterThanOrEqual(1)
162
162
  })
163
163
 
164
- test('message delete removes message', async () => {
164
+ it('message delete removes message', async () => {
165
165
  const testId = generateTestId()
166
166
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Delete me ${testId}`)
167
167
 
@@ -173,7 +173,7 @@ describe('Slack E2E Tests', () => {
173
173
  })
174
174
 
175
175
  describe('message files', () => {
176
- test('message get includes files when message has file attachment', async () => {
176
+ it('message get includes files when message has file attachment', async () => {
177
177
  // Upload file directly via Slack WebClient (bypasses CLI file upload mapping issue)
178
178
  const credManager = new CredentialManager()
179
179
  const workspace = await credManager.getWorkspace()
@@ -222,7 +222,7 @@ describe('Slack E2E Tests', () => {
222
222
  expect(getMessage?.files![0].id).toBe(file.id)
223
223
  }, 30000)
224
224
 
225
- test('message get omits files for plain text message', async () => {
225
+ it('message get omits files for plain text message', async () => {
226
226
  const testId = generateTestId()
227
227
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `No files ${testId}`)
228
228
  testMessages.push(ts)
@@ -239,7 +239,7 @@ describe('Slack E2E Tests', () => {
239
239
  })
240
240
 
241
241
  describe('channel', () => {
242
- test('channel list returns channels array', async () => {
242
+ it('channel list returns channels array', async () => {
243
243
  const result = await runCLI('slack', ['channel', 'list'])
244
244
  expect(result.exitCode).toBe(0)
245
245
 
@@ -248,7 +248,7 @@ describe('Slack E2E Tests', () => {
248
248
  expect(data?.length).toBeGreaterThan(0)
249
249
  })
250
250
 
251
- test('channel list --type public filters channels', async () => {
251
+ it('channel list --type public filters channels', async () => {
252
252
  const result = await runCLI('slack', ['channel', 'list', '--type', 'public'])
253
253
  expect(result.exitCode).toBe(0)
254
254
 
@@ -256,7 +256,7 @@ describe('Slack E2E Tests', () => {
256
256
  expect(Array.isArray(data)).toBe(true)
257
257
  })
258
258
 
259
- test('channel info returns channel details', async () => {
259
+ it('channel info returns channel details', async () => {
260
260
  const result = await runCLI('slack', ['channel', 'info', SLACK_TEST_CHANNEL_ID])
261
261
  expect(result.exitCode).toBe(0)
262
262
 
@@ -267,7 +267,7 @@ describe('Slack E2E Tests', () => {
267
267
  })
268
268
 
269
269
  describe('user', () => {
270
- test('user list returns users array', async () => {
270
+ it('user list returns users array', async () => {
271
271
  const result = await runCLI('slack', ['user', 'list'])
272
272
  expect(result.exitCode).toBe(0)
273
273
 
@@ -275,7 +275,7 @@ describe('Slack E2E Tests', () => {
275
275
  expect(Array.isArray(data)).toBe(true)
276
276
  })
277
277
 
278
- test('user me returns current user', async () => {
278
+ it('user me returns current user', async () => {
279
279
  const result = await runCLI('slack', ['user', 'me'])
280
280
  expect(result.exitCode).toBe(0)
281
281
 
@@ -284,7 +284,7 @@ describe('Slack E2E Tests', () => {
284
284
  expect(data?.name).toBeTruthy()
285
285
  })
286
286
 
287
- test('user info returns user details', async () => {
287
+ it('user info returns user details', async () => {
288
288
  // First get current user ID
289
289
  const meResult = await runCLI('slack', ['user', 'me'])
290
290
  const me = parseJSON<{ id: string }>(meResult.stdout)
@@ -302,7 +302,7 @@ describe('Slack E2E Tests', () => {
302
302
  })
303
303
 
304
304
  describe('reaction', () => {
305
- test('reaction add/list/remove lifecycle', async () => {
305
+ it('reaction add/list/remove lifecycle', async () => {
306
306
  const testId = generateTestId()
307
307
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Reaction test ${testId}`)
308
308
  testMessages.push(ts)
@@ -328,7 +328,7 @@ describe('Slack E2E Tests', () => {
328
328
  })
329
329
 
330
330
  describe('file', () => {
331
- test('file list returns files array', async () => {
331
+ it('file list returns files array', async () => {
332
332
  const result = await runCLI('slack', ['file', 'list'])
333
333
  expect(result.exitCode).toBe(0)
334
334
 
@@ -336,7 +336,7 @@ describe('Slack E2E Tests', () => {
336
336
  expect(Array.isArray(data)).toBe(true)
337
337
  })
338
338
 
339
- test.skip('file upload uploads file', async () => {
339
+ it.skip('file upload uploads file', async () => {
340
340
  const testId = generateTestId()
341
341
  const testFilePath = `/tmp/slack-e2e-${testId}.txt`
342
342
  await Bun.write(testFilePath, `E2E test file content ${testId}`)
@@ -358,7 +358,7 @@ describe('Slack E2E Tests', () => {
358
358
  }
359
359
  })
360
360
 
361
- test('file download downloads a file', async () => {
361
+ it('file download downloads a file', async () => {
362
362
  const testId = generateTestId()
363
363
  const testContent = `E2E download test ${testId}`
364
364
  const testFilePath = `/tmp/slack-e2e-upload-${testId}.txt`
@@ -408,7 +408,7 @@ describe('Slack E2E Tests', () => {
408
408
  })
409
409
 
410
410
  describe('channel history', () => {
411
- test('channel history returns messages', async () => {
411
+ it('channel history returns messages', async () => {
412
412
  const result = await runCLI('slack', ['channel', 'history', SLACK_TEST_CHANNEL_ID, '--limit', '5'])
413
413
  expect(result.exitCode).toBe(0)
414
414
 
@@ -418,7 +418,7 @@ describe('Slack E2E Tests', () => {
418
418
  })
419
419
 
420
420
  describe('unread', () => {
421
- test('unread counts returns unread summary', async () => {
421
+ it('unread counts returns unread summary', async () => {
422
422
  const result = await runCLI('slack', ['unread', 'counts'])
423
423
  expect(result.exitCode).toBe(0)
424
424
 
@@ -427,7 +427,7 @@ describe('Slack E2E Tests', () => {
427
427
  expect(Array.isArray(data?.channels)).toBe(true)
428
428
  })
429
429
 
430
- test('unread mark marks channel as read', async () => {
430
+ it('unread mark marks channel as read', async () => {
431
431
  const testId = generateTestId()
432
432
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Unread mark test ${testId}`)
433
433
  testMessages.push(ts)
@@ -443,7 +443,7 @@ describe('Slack E2E Tests', () => {
443
443
  })
444
444
 
445
445
  describe('activity', () => {
446
- test('activity list returns activity items', async () => {
446
+ it('activity list returns activity items', async () => {
447
447
  const result = await runCLI('slack', ['activity', 'list', '--limit', '5'])
448
448
  expect(result.exitCode).toBe(0)
449
449
 
@@ -454,7 +454,7 @@ describe('Slack E2E Tests', () => {
454
454
  })
455
455
 
456
456
  describe('saved', () => {
457
- test('saved list returns saved items', async () => {
457
+ it('saved list returns saved items', async () => {
458
458
  const result = await runCLI('slack', ['saved', 'list'])
459
459
  expect(result.exitCode).toBe(0)
460
460
 
@@ -465,7 +465,7 @@ describe('Slack E2E Tests', () => {
465
465
  })
466
466
 
467
467
  describe('drafts', () => {
468
- test('drafts list returns drafts', async () => {
468
+ it('drafts list returns drafts', async () => {
469
469
  const result = await runCLI('slack', ['drafts', 'list'])
470
470
  expect(result.exitCode).toBe(0)
471
471
 
@@ -475,7 +475,7 @@ describe('Slack E2E Tests', () => {
475
475
  })
476
476
 
477
477
  describe('sections', () => {
478
- test('sections list returns channel sections', async () => {
478
+ it('sections list returns channel sections', async () => {
479
479
  const result = await runCLI('slack', ['sections', 'list'])
480
480
  expect(result.exitCode).toBe(0)
481
481
 
@@ -485,7 +485,7 @@ describe('Slack E2E Tests', () => {
485
485
  })
486
486
 
487
487
  describe('snapshot', () => {
488
- test('snapshot returns full workspace data', async () => {
488
+ it('snapshot returns full workspace data', async () => {
489
489
  const result = await runCLI('slack', ['snapshot', '--limit', '2'])
490
490
  expect(result.exitCode).toBe(0)
491
491
 
@@ -494,7 +494,7 @@ describe('Slack E2E Tests', () => {
494
494
  expect(data?.users).toBeDefined()
495
495
  })
496
496
 
497
- test('snapshot --channels-only returns only channels', async () => {
497
+ it('snapshot --channels-only returns only channels', async () => {
498
498
  const result = await runCLI('slack', ['snapshot', '--channels-only'])
499
499
  expect(result.exitCode).toBe(0)
500
500
 
@@ -502,7 +502,7 @@ describe('Slack E2E Tests', () => {
502
502
  expect(data?.channels).toBeDefined()
503
503
  })
504
504
 
505
- test('snapshot --users-only returns only users', async () => {
505
+ it('snapshot --users-only returns only users', async () => {
506
506
  const result = await runCLI('slack', ['snapshot', '--users-only'])
507
507
  expect(result.exitCode).toBe(0)
508
508
 
@@ -1,4 +1,4 @@
1
- import { describe, test, expect, beforeAll, afterEach } from 'bun:test'
1
+ import { describe, it, expect, beforeAll, afterEach } from 'bun:test'
2
2
 
3
3
  import { SlackBotClient } from '../src/platforms/slackbot/client'
4
4
  import { SlackBotCredentialManager } from '../src/platforms/slackbot/credential-manager'
@@ -48,7 +48,7 @@ describe('SlackBot E2E Tests', () => {
48
48
  })
49
49
 
50
50
  describe('auth', () => {
51
- test('auth status returns valid bot info', async () => {
51
+ it('auth status returns valid bot info', async () => {
52
52
  const result = await runCLI('slackbot', ['auth', 'status'])
53
53
  expect(result.exitCode).toBe(0)
54
54
 
@@ -67,7 +67,7 @@ describe('SlackBot E2E Tests', () => {
67
67
  })
68
68
 
69
69
  describe('message', () => {
70
- test('message send creates message and returns ts', async () => {
70
+ it('message send creates message and returns ts', async () => {
71
71
  const testId = generateTestId()
72
72
  const result = await runCLI('slackbot', ['message', 'send', SLACKBOT_TEST_CHANNEL_ID, `Bot test ${testId}`])
73
73
  expect(result.exitCode).toBe(0)
@@ -79,7 +79,7 @@ describe('SlackBot E2E Tests', () => {
79
79
  if (data?.ts) testMessages.push(data.ts)
80
80
  })
81
81
 
82
- test('message list returns messages array', async () => {
82
+ it('message list returns messages array', async () => {
83
83
  const result = await runCLI('slackbot', ['message', 'list', SLACKBOT_TEST_CHANNEL_ID, '--limit', '5'])
84
84
  expect(result.exitCode).toBe(0)
85
85
 
@@ -87,7 +87,7 @@ describe('SlackBot E2E Tests', () => {
87
87
  expect(Array.isArray(data)).toBe(true)
88
88
  })
89
89
 
90
- test('message get retrieves specific message', async () => {
90
+ it('message get retrieves specific message', async () => {
91
91
  const testId = generateTestId()
92
92
  const sendResult = await runCLI('slackbot', ['message', 'send', SLACKBOT_TEST_CHANNEL_ID, `Get test ${testId}`])
93
93
  const sent = parseJSON<{ ts: string }>(sendResult.stdout)
@@ -104,7 +104,7 @@ describe('SlackBot E2E Tests', () => {
104
104
  expect(data?.ts).toBe(sent!.ts)
105
105
  })
106
106
 
107
- test('message update modifies message', async () => {
107
+ it('message update modifies message', async () => {
108
108
  const testId = generateTestId()
109
109
  const sendResult = await runCLI('slackbot', ['message', 'send', SLACKBOT_TEST_CHANNEL_ID, `Original ${testId}`])
110
110
  const sent = parseJSON<{ ts: string }>(sendResult.stdout)
@@ -129,7 +129,7 @@ describe('SlackBot E2E Tests', () => {
129
129
  expect(data?.text).toContain('Updated')
130
130
  })
131
131
 
132
- test('message delete removes message', async () => {
132
+ it('message delete removes message', async () => {
133
133
  const testId = generateTestId()
134
134
  const sendResult = await runCLI('slackbot', ['message', 'send', SLACKBOT_TEST_CHANNEL_ID, `Delete me ${testId}`])
135
135
  const sent = parseJSON<{ ts: string }>(sendResult.stdout)
@@ -144,7 +144,7 @@ describe('SlackBot E2E Tests', () => {
144
144
  expect(data?.deleted).toBe(sent!.ts)
145
145
  })
146
146
 
147
- test('message send with --thread creates reply', async () => {
147
+ it('message send with --thread creates reply', async () => {
148
148
  const testId = generateTestId()
149
149
  const sendResult = await runCLI('slackbot', ['message', 'send', SLACKBOT_TEST_CHANNEL_ID, `Parent ${testId}`])
150
150
  const parent = parseJSON<{ ts: string }>(sendResult.stdout)
@@ -169,7 +169,7 @@ describe('SlackBot E2E Tests', () => {
169
169
  if (reply?.ts) testMessages.push(reply.ts)
170
170
  }, 30000)
171
171
 
172
- test('message replies gets thread replies', async () => {
172
+ it('message replies gets thread replies', async () => {
173
173
  const testId = generateTestId()
174
174
  const sendResult = await runCLI('slackbot', [
175
175
  'message',
@@ -207,7 +207,7 @@ describe('SlackBot E2E Tests', () => {
207
207
  })
208
208
 
209
209
  describe('channel', () => {
210
- test('channel list returns channels array', async () => {
210
+ it('channel list returns channels array', async () => {
211
211
  const result = await runCLI('slackbot', ['channel', 'list', '--limit', '10'])
212
212
  expect(result.exitCode).toBe(0)
213
213
 
@@ -216,7 +216,7 @@ describe('SlackBot E2E Tests', () => {
216
216
  expect(data!.length).toBeGreaterThan(0)
217
217
  })
218
218
 
219
- test('channel info returns channel details', async () => {
219
+ it('channel info returns channel details', async () => {
220
220
  const result = await runCLI('slackbot', ['channel', 'info', SLACKBOT_TEST_CHANNEL_ID])
221
221
  expect(result.exitCode).toBe(0)
222
222
 
@@ -227,7 +227,7 @@ describe('SlackBot E2E Tests', () => {
227
227
  })
228
228
 
229
229
  describe('user', () => {
230
- test('user list returns users array', async () => {
230
+ it('user list returns users array', async () => {
231
231
  const result = await runCLI('slackbot', ['user', 'list', '--limit', '10'])
232
232
  expect(result.exitCode).toBe(0)
233
233
 
@@ -236,7 +236,7 @@ describe('SlackBot E2E Tests', () => {
236
236
  expect(data!.length).toBeGreaterThan(0)
237
237
  })
238
238
 
239
- test('user info returns user details', async () => {
239
+ it('user info returns user details', async () => {
240
240
  // given: get the bot's own user_id via auth status
241
241
  const statusResult = await runCLI('slackbot', ['auth', 'status'])
242
242
  const status = parseJSON<{ bot_id: string; user: string }>(statusResult.stdout)
@@ -262,7 +262,7 @@ describe('SlackBot E2E Tests', () => {
262
262
  })
263
263
 
264
264
  describe('reaction', () => {
265
- test('reaction add and remove lifecycle', async () => {
265
+ it('reaction add and remove lifecycle', async () => {
266
266
  // given: a message to react to
267
267
  const testId = generateTestId()
268
268
  const sendResult = await runCLI('slackbot', [