agent-messenger 2.7.0 → 2.9.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 (553) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.github/workflows/ci.yml +6 -0
  3. package/.oxfmtrc.json +13 -1
  4. package/.oxlintrc.json +10 -1
  5. package/README.md +1 -12
  6. package/dist/package.json +59 -58
  7. package/dist/src/platforms/channeltalk/client.d.ts.map +1 -1
  8. package/dist/src/platforms/channeltalk/client.js +2 -2
  9. package/dist/src/platforms/channeltalk/client.js.map +1 -1
  10. package/dist/src/platforms/channeltalk/commands/auth.d.ts.map +1 -1
  11. package/dist/src/platforms/channeltalk/commands/auth.js.map +1 -1
  12. package/dist/src/platforms/channeltalk/commands/message.d.ts.map +1 -1
  13. package/dist/src/platforms/channeltalk/commands/message.js.map +1 -1
  14. package/dist/src/platforms/channeltalk/commands/snapshot.d.ts +4 -2
  15. package/dist/src/platforms/channeltalk/commands/snapshot.d.ts.map +1 -1
  16. package/dist/src/platforms/channeltalk/commands/snapshot.js +86 -31
  17. package/dist/src/platforms/channeltalk/commands/snapshot.js.map +1 -1
  18. package/dist/src/platforms/channeltalk/ensure-auth.d.ts.map +1 -1
  19. package/dist/src/platforms/channeltalk/ensure-auth.js.map +1 -1
  20. package/dist/src/platforms/channeltalk/token-extractor.d.ts +9 -23
  21. package/dist/src/platforms/channeltalk/token-extractor.d.ts.map +1 -1
  22. package/dist/src/platforms/channeltalk/token-extractor.js +109 -341
  23. package/dist/src/platforms/channeltalk/token-extractor.js.map +1 -1
  24. package/dist/src/platforms/channeltalkbot/client.d.ts +1 -1
  25. package/dist/src/platforms/channeltalkbot/client.d.ts.map +1 -1
  26. package/dist/src/platforms/channeltalkbot/client.js +4 -4
  27. package/dist/src/platforms/channeltalkbot/client.js.map +1 -1
  28. package/dist/src/platforms/channeltalkbot/commands/auth.d.ts.map +1 -1
  29. package/dist/src/platforms/channeltalkbot/commands/auth.js +4 -1
  30. package/dist/src/platforms/channeltalkbot/commands/auth.js.map +1 -1
  31. package/dist/src/platforms/channeltalkbot/commands/shared.d.ts.map +1 -1
  32. package/dist/src/platforms/channeltalkbot/commands/shared.js.map +1 -1
  33. package/dist/src/platforms/channeltalkbot/commands/snapshot.d.ts +3 -1
  34. package/dist/src/platforms/channeltalkbot/commands/snapshot.d.ts.map +1 -1
  35. package/dist/src/platforms/channeltalkbot/commands/snapshot.js +110 -60
  36. package/dist/src/platforms/channeltalkbot/commands/snapshot.js.map +1 -1
  37. package/dist/src/platforms/discord/commands/auth.js.map +1 -1
  38. package/dist/src/platforms/discord/commands/snapshot.d.ts +1 -0
  39. package/dist/src/platforms/discord/commands/snapshot.d.ts.map +1 -1
  40. package/dist/src/platforms/discord/commands/snapshot.js +48 -34
  41. package/dist/src/platforms/discord/commands/snapshot.js.map +1 -1
  42. package/dist/src/platforms/discord/commands/whoami.d.ts.map +1 -1
  43. package/dist/src/platforms/discord/commands/whoami.js.map +1 -1
  44. package/dist/src/platforms/discord/token-extractor.d.ts +2 -10
  45. package/dist/src/platforms/discord/token-extractor.d.ts.map +1 -1
  46. package/dist/src/platforms/discord/token-extractor.js +38 -172
  47. package/dist/src/platforms/discord/token-extractor.js.map +1 -1
  48. package/dist/src/platforms/discordbot/client.d.ts.map +1 -1
  49. package/dist/src/platforms/discordbot/client.js.map +1 -1
  50. package/dist/src/platforms/discordbot/commands/snapshot.d.ts +2 -0
  51. package/dist/src/platforms/discordbot/commands/snapshot.d.ts.map +1 -1
  52. package/dist/src/platforms/discordbot/commands/snapshot.js +46 -34
  53. package/dist/src/platforms/discordbot/commands/snapshot.js.map +1 -1
  54. package/dist/src/platforms/instagram/cli.d.ts.map +1 -1
  55. package/dist/src/platforms/instagram/cli.js +1 -4
  56. package/dist/src/platforms/instagram/cli.js.map +1 -1
  57. package/dist/src/platforms/instagram/client.d.ts.map +1 -1
  58. package/dist/src/platforms/instagram/client.js +8 -7
  59. package/dist/src/platforms/instagram/client.js.map +1 -1
  60. package/dist/src/platforms/instagram/commands/auth.d.ts.map +1 -1
  61. package/dist/src/platforms/instagram/commands/auth.js.map +1 -1
  62. package/dist/src/platforms/instagram/commands/chat.d.ts.map +1 -1
  63. package/dist/src/platforms/instagram/commands/chat.js.map +1 -1
  64. package/dist/src/platforms/instagram/commands/message.d.ts.map +1 -1
  65. package/dist/src/platforms/instagram/commands/message.js.map +1 -1
  66. package/dist/src/platforms/instagram/commands/shared.d.ts.map +1 -1
  67. package/dist/src/platforms/instagram/commands/shared.js.map +1 -1
  68. package/dist/src/platforms/instagram/credential-manager.d.ts.map +1 -1
  69. package/dist/src/platforms/instagram/credential-manager.js +1 -1
  70. package/dist/src/platforms/instagram/credential-manager.js.map +1 -1
  71. package/dist/src/platforms/instagram/ensure-auth.d.ts.map +1 -1
  72. package/dist/src/platforms/instagram/ensure-auth.js.map +1 -1
  73. package/dist/src/platforms/instagram/token-extractor.d.ts +7 -19
  74. package/dist/src/platforms/instagram/token-extractor.d.ts.map +1 -1
  75. package/dist/src/platforms/instagram/token-extractor.js +44 -270
  76. package/dist/src/platforms/instagram/token-extractor.js.map +1 -1
  77. package/dist/src/platforms/instagram/types.d.ts.map +1 -1
  78. package/dist/src/platforms/instagram/types.js +4 -2
  79. package/dist/src/platforms/instagram/types.js.map +1 -1
  80. package/dist/src/platforms/kakaotalk/auth/kakao-login.d.ts.map +1 -1
  81. package/dist/src/platforms/kakaotalk/auth/kakao-login.js +18 -4
  82. package/dist/src/platforms/kakaotalk/auth/kakao-login.js.map +1 -1
  83. package/dist/src/platforms/kakaotalk/client.d.ts.map +1 -1
  84. package/dist/src/platforms/kakaotalk/client.js +3 -3
  85. package/dist/src/platforms/kakaotalk/client.js.map +1 -1
  86. package/dist/src/platforms/kakaotalk/commands/auth.d.ts.map +1 -1
  87. package/dist/src/platforms/kakaotalk/commands/auth.js +15 -9
  88. package/dist/src/platforms/kakaotalk/commands/auth.js.map +1 -1
  89. package/dist/src/platforms/kakaotalk/commands/shared.d.ts.map +1 -1
  90. package/dist/src/platforms/kakaotalk/commands/shared.js.map +1 -1
  91. package/dist/src/platforms/kakaotalk/protocol/connection.d.ts.map +1 -1
  92. package/dist/src/platforms/kakaotalk/protocol/connection.js.map +1 -1
  93. package/dist/src/platforms/kakaotalk/protocol/crypto.js +1 -1
  94. package/dist/src/platforms/kakaotalk/protocol/crypto.js.map +1 -1
  95. package/dist/src/platforms/kakaotalk/protocol/session.d.ts.map +1 -1
  96. package/dist/src/platforms/kakaotalk/protocol/session.js +1 -3
  97. package/dist/src/platforms/kakaotalk/protocol/session.js.map +1 -1
  98. package/dist/src/platforms/kakaotalk/token-extractor.js +5 -2
  99. package/dist/src/platforms/kakaotalk/token-extractor.js.map +1 -1
  100. package/dist/src/platforms/kakaotalk/types.d.ts.map +1 -1
  101. package/dist/src/platforms/kakaotalk/types.js +4 -2
  102. package/dist/src/platforms/kakaotalk/types.js.map +1 -1
  103. package/dist/src/platforms/line/cli.d.ts.map +1 -1
  104. package/dist/src/platforms/line/cli.js +1 -4
  105. package/dist/src/platforms/line/cli.js.map +1 -1
  106. package/dist/src/platforms/line/client.d.ts.map +1 -1
  107. package/dist/src/platforms/line/client.js +5 -13
  108. package/dist/src/platforms/line/client.js.map +1 -1
  109. package/dist/src/platforms/line/commands/chat.d.ts.map +1 -1
  110. package/dist/src/platforms/line/commands/chat.js.map +1 -1
  111. package/dist/src/platforms/line/commands/message.d.ts.map +1 -1
  112. package/dist/src/platforms/line/commands/message.js.map +1 -1
  113. package/dist/src/platforms/line/listener.js +1 -1
  114. package/dist/src/platforms/line/listener.js.map +1 -1
  115. package/dist/src/platforms/slack/cli.d.ts.map +1 -1
  116. package/dist/src/platforms/slack/cli.js.map +1 -1
  117. package/dist/src/platforms/slack/client-mappers.d.ts +14 -0
  118. package/dist/src/platforms/slack/client-mappers.d.ts.map +1 -0
  119. package/dist/src/platforms/slack/client-mappers.js +245 -0
  120. package/dist/src/platforms/slack/client-mappers.js.map +1 -0
  121. package/dist/src/platforms/slack/client.d.ts +0 -1
  122. package/dist/src/platforms/slack/client.d.ts.map +1 -1
  123. package/dist/src/platforms/slack/client.js +41 -455
  124. package/dist/src/platforms/slack/client.js.map +1 -1
  125. package/dist/src/platforms/slack/commands/channel.d.ts.map +1 -1
  126. package/dist/src/platforms/slack/commands/channel.js.map +1 -1
  127. package/dist/src/platforms/slack/commands/emoji.d.ts.map +1 -1
  128. package/dist/src/platforms/slack/commands/emoji.js +1 -3
  129. package/dist/src/platforms/slack/commands/emoji.js.map +1 -1
  130. package/dist/src/platforms/slack/commands/message.d.ts.map +1 -1
  131. package/dist/src/platforms/slack/commands/message.js.map +1 -1
  132. package/dist/src/platforms/slack/commands/reminder.d.ts.map +1 -1
  133. package/dist/src/platforms/slack/commands/reminder.js.map +1 -1
  134. package/dist/src/platforms/slack/commands/snapshot.d.ts.map +1 -1
  135. package/dist/src/platforms/slack/commands/snapshot.js +75 -55
  136. package/dist/src/platforms/slack/commands/snapshot.js.map +1 -1
  137. package/dist/src/platforms/slack/commands/user.d.ts.map +1 -1
  138. package/dist/src/platforms/slack/commands/user.js.map +1 -1
  139. package/dist/src/platforms/slack/commands/usergroup.d.ts.map +1 -1
  140. package/dist/src/platforms/slack/commands/usergroup.js.map +1 -1
  141. package/dist/src/platforms/slack/commands/whoami.d.ts.map +1 -1
  142. package/dist/src/platforms/slack/commands/whoami.js.map +1 -1
  143. package/dist/src/platforms/slack/token-extractor.d.ts +2 -6
  144. package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -1
  145. package/dist/src/platforms/slack/token-extractor.js +35 -229
  146. package/dist/src/platforms/slack/token-extractor.js.map +1 -1
  147. package/dist/src/platforms/slackbot/cli.d.ts.map +1 -1
  148. package/dist/src/platforms/slackbot/cli.js +1 -1
  149. package/dist/src/platforms/slackbot/cli.js.map +1 -1
  150. package/dist/src/platforms/teams/client.d.ts.map +1 -1
  151. package/dist/src/platforms/teams/client.js +1 -1
  152. package/dist/src/platforms/teams/client.js.map +1 -1
  153. package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
  154. package/dist/src/platforms/teams/commands/auth.js +4 -1
  155. package/dist/src/platforms/teams/commands/auth.js.map +1 -1
  156. package/dist/src/platforms/teams/commands/snapshot.d.ts +1 -0
  157. package/dist/src/platforms/teams/commands/snapshot.d.ts.map +1 -1
  158. package/dist/src/platforms/teams/commands/snapshot.js +44 -31
  159. package/dist/src/platforms/teams/commands/snapshot.js.map +1 -1
  160. package/dist/src/platforms/teams/commands/whoami.d.ts.map +1 -1
  161. package/dist/src/platforms/teams/commands/whoami.js.map +1 -1
  162. package/dist/src/platforms/teams/token-extractor.d.ts +6 -18
  163. package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
  164. package/dist/src/platforms/teams/token-extractor.js +71 -324
  165. package/dist/src/platforms/teams/token-extractor.js.map +1 -1
  166. package/dist/src/platforms/telegram/cli.d.ts.map +1 -1
  167. package/dist/src/platforms/telegram/cli.js +1 -4
  168. package/dist/src/platforms/telegram/cli.js.map +1 -1
  169. package/dist/src/platforms/telegram/client.d.ts.map +1 -1
  170. package/dist/src/platforms/telegram/client.js.map +1 -1
  171. package/dist/src/platforms/telegram/commands/auth.d.ts.map +1 -1
  172. package/dist/src/platforms/telegram/commands/auth.js +1 -1
  173. package/dist/src/platforms/telegram/commands/auth.js.map +1 -1
  174. package/dist/src/platforms/telegram/commands/chat.d.ts.map +1 -1
  175. package/dist/src/platforms/telegram/commands/chat.js.map +1 -1
  176. package/dist/src/platforms/telegram/commands/message.d.ts.map +1 -1
  177. package/dist/src/platforms/telegram/commands/message.js.map +1 -1
  178. package/dist/src/platforms/telegram/commands/whoami.js +1 -1
  179. package/dist/src/platforms/telegram/commands/whoami.js.map +1 -1
  180. package/dist/src/platforms/telegram/credential-manager.d.ts.map +1 -1
  181. package/dist/src/platforms/telegram/credential-manager.js +6 -2
  182. package/dist/src/platforms/telegram/credential-manager.js.map +1 -1
  183. package/dist/src/platforms/telegram/my-telegram-org.js.map +1 -1
  184. package/dist/src/platforms/webex/cli.d.ts.map +1 -1
  185. package/dist/src/platforms/webex/cli.js +1 -4
  186. package/dist/src/platforms/webex/cli.js.map +1 -1
  187. package/dist/src/platforms/webex/client.d.ts.map +1 -1
  188. package/dist/src/platforms/webex/client.js +3 -7
  189. package/dist/src/platforms/webex/client.js.map +1 -1
  190. package/dist/src/platforms/webex/commands/auth.d.ts.map +1 -1
  191. package/dist/src/platforms/webex/commands/auth.js +1 -3
  192. package/dist/src/platforms/webex/commands/auth.js.map +1 -1
  193. package/dist/src/platforms/webex/commands/member.d.ts.map +1 -1
  194. package/dist/src/platforms/webex/commands/member.js +1 -3
  195. package/dist/src/platforms/webex/commands/member.js.map +1 -1
  196. package/dist/src/platforms/webex/commands/message.d.ts.map +1 -1
  197. package/dist/src/platforms/webex/commands/message.js.map +1 -1
  198. package/dist/src/platforms/webex/commands/snapshot.d.ts +1 -0
  199. package/dist/src/platforms/webex/commands/snapshot.d.ts.map +1 -1
  200. package/dist/src/platforms/webex/commands/snapshot.js +14 -7
  201. package/dist/src/platforms/webex/commands/snapshot.js.map +1 -1
  202. package/dist/src/platforms/webex/commands/space.d.ts.map +1 -1
  203. package/dist/src/platforms/webex/commands/space.js.map +1 -1
  204. package/dist/src/platforms/webex/commands/whoami.d.ts.map +1 -1
  205. package/dist/src/platforms/webex/commands/whoami.js.map +1 -1
  206. package/dist/src/platforms/webex/credential-manager.d.ts.map +1 -1
  207. package/dist/src/platforms/webex/credential-manager.js.map +1 -1
  208. package/dist/src/platforms/webex/ensure-auth.d.ts.map +1 -1
  209. package/dist/src/platforms/webex/ensure-auth.js +1 -3
  210. package/dist/src/platforms/webex/ensure-auth.js.map +1 -1
  211. package/dist/src/platforms/webex/index.d.ts +1 -1
  212. package/dist/src/platforms/webex/index.d.ts.map +1 -1
  213. package/dist/src/platforms/webex/index.js.map +1 -1
  214. package/dist/src/platforms/webex/markdown-to-html.js.map +1 -1
  215. package/dist/src/platforms/webex/token-extractor.d.ts.map +1 -1
  216. package/dist/src/platforms/webex/token-extractor.js +5 -14
  217. package/dist/src/platforms/webex/token-extractor.js.map +1 -1
  218. package/dist/src/platforms/wechatbot/client.d.ts.map +1 -1
  219. package/dist/src/platforms/wechatbot/client.js.map +1 -1
  220. package/dist/src/platforms/wechatbot/commands/message.d.ts.map +1 -1
  221. package/dist/src/platforms/wechatbot/commands/message.js.map +1 -1
  222. package/dist/src/platforms/whatsapp/cli.d.ts.map +1 -1
  223. package/dist/src/platforms/whatsapp/cli.js +1 -4
  224. package/dist/src/platforms/whatsapp/cli.js.map +1 -1
  225. package/dist/src/platforms/whatsapp/commands/chat.d.ts.map +1 -1
  226. package/dist/src/platforms/whatsapp/commands/chat.js.map +1 -1
  227. package/dist/src/platforms/whatsapp/commands/message.d.ts.map +1 -1
  228. package/dist/src/platforms/whatsapp/commands/message.js.map +1 -1
  229. package/dist/src/platforms/whatsapp/commands/shared.d.ts.map +1 -1
  230. package/dist/src/platforms/whatsapp/commands/shared.js.map +1 -1
  231. package/dist/src/platforms/whatsapp/credential-manager.d.ts.map +1 -1
  232. package/dist/src/platforms/whatsapp/credential-manager.js +1 -1
  233. package/dist/src/platforms/whatsapp/credential-manager.js.map +1 -1
  234. package/dist/src/platforms/whatsapp/ensure-auth.d.ts.map +1 -1
  235. package/dist/src/platforms/whatsapp/ensure-auth.js.map +1 -1
  236. package/dist/src/platforms/whatsappbot/client.d.ts.map +1 -1
  237. package/dist/src/platforms/whatsappbot/client.js +2 -2
  238. package/dist/src/platforms/whatsappbot/client.js.map +1 -1
  239. package/dist/src/platforms/whatsappbot/commands/auth.d.ts.map +1 -1
  240. package/dist/src/platforms/whatsappbot/commands/auth.js +4 -1
  241. package/dist/src/platforms/whatsappbot/commands/auth.js.map +1 -1
  242. package/dist/src/platforms/whatsappbot/commands/message.d.ts.map +1 -1
  243. package/dist/src/platforms/whatsappbot/commands/message.js.map +1 -1
  244. package/dist/src/platforms/whatsappbot/commands/shared.d.ts.map +1 -1
  245. package/dist/src/platforms/whatsappbot/commands/shared.js.map +1 -1
  246. package/dist/src/shared/chromium/browsers.d.ts +7 -0
  247. package/dist/src/shared/chromium/browsers.d.ts.map +1 -0
  248. package/dist/src/shared/chromium/browsers.js +89 -0
  249. package/dist/src/shared/chromium/browsers.js.map +1 -0
  250. package/dist/src/shared/chromium/cookie-reader.d.ts +20 -0
  251. package/dist/src/shared/chromium/cookie-reader.d.ts.map +1 -0
  252. package/dist/src/shared/chromium/cookie-reader.js +99 -0
  253. package/dist/src/shared/chromium/cookie-reader.js.map +1 -0
  254. package/dist/src/shared/chromium/decryptor.d.ts +42 -0
  255. package/dist/src/shared/chromium/decryptor.d.ts.map +1 -0
  256. package/dist/src/shared/chromium/decryptor.js +205 -0
  257. package/dist/src/shared/chromium/decryptor.js.map +1 -0
  258. package/dist/src/shared/chromium/index.d.ts +6 -0
  259. package/dist/src/shared/chromium/index.d.ts.map +1 -0
  260. package/dist/src/shared/chromium/index.js +4 -0
  261. package/dist/src/shared/chromium/index.js.map +1 -0
  262. package/dist/src/shared/chromium/types.d.ts +11 -0
  263. package/dist/src/shared/chromium/types.d.ts.map +1 -0
  264. package/dist/src/shared/chromium/types.js +2 -0
  265. package/dist/src/shared/chromium/types.js.map +1 -0
  266. package/dist/src/shared/utils/derived-key-cache.d.ts +1 -1
  267. package/dist/src/shared/utils/derived-key-cache.d.ts.map +1 -1
  268. package/dist/src/shared/utils/linux-keyring.js +4 -1
  269. package/dist/src/shared/utils/linux-keyring.js.map +1 -1
  270. package/dist/src/tui/adapters/kakaotalk-adapter.d.ts.map +1 -1
  271. package/dist/src/tui/adapters/kakaotalk-adapter.js +6 -1
  272. package/dist/src/tui/adapters/kakaotalk-adapter.js.map +1 -1
  273. package/dist/src/tui/adapters/telegram-adapter.js +1 -1
  274. package/dist/src/tui/adapters/telegram-adapter.js.map +1 -1
  275. package/dist/src/tui/adapters/webex-adapter.js +1 -1
  276. package/dist/src/tui/adapters/webex-adapter.js.map +1 -1
  277. package/dist/src/tui/app.d.ts.map +1 -1
  278. package/dist/src/tui/app.js +112 -23
  279. package/dist/src/tui/app.js.map +1 -1
  280. package/dist/src/tui/utils.d.ts.map +1 -1
  281. package/dist/src/tui/utils.js +11 -13
  282. package/dist/src/tui/utils.js.map +1 -1
  283. package/dist/src/tui/views/channel-picker.d.ts.map +1 -1
  284. package/dist/src/tui/views/channel-picker.js.map +1 -1
  285. package/dist/src/tui/views/workspace-picker.d.ts.map +1 -1
  286. package/dist/src/tui/views/workspace-picker.js.map +1 -1
  287. package/docs/content/docs/agent-skills.mdx +0 -10
  288. package/docs/content/docs/cli/channeltalk.mdx +42 -30
  289. package/docs/content/docs/cli/channeltalkbot.mdx +23 -13
  290. package/docs/content/docs/cli/discord.mdx +23 -7
  291. package/docs/content/docs/cli/discordbot.mdx +23 -7
  292. package/docs/content/docs/cli/instagram.mdx +4 -4
  293. package/docs/content/docs/cli/kakaotalk.mdx +9 -8
  294. package/docs/content/docs/cli/line.mdx +14 -14
  295. package/docs/content/docs/cli/slack.mdx +24 -7
  296. package/docs/content/docs/cli/teams.mdx +24 -8
  297. package/docs/content/docs/cli/webex.mdx +34 -21
  298. package/docs/content/docs/cli/wechatbot.mdx +12 -11
  299. package/docs/content/docs/cli/whatsapp.mdx +5 -4
  300. package/docs/content/docs/cli/whatsappbot.mdx +11 -11
  301. package/docs/content/docs/index.mdx +7 -7
  302. package/docs/content/docs/meta.json +1 -9
  303. package/docs/content/docs/sdk/channeltalk.mdx +5 -6
  304. package/docs/content/docs/sdk/channeltalkbot.mdx +6 -12
  305. package/docs/content/docs/sdk/discord.mdx +36 -43
  306. package/docs/content/docs/sdk/instagram.mdx +18 -18
  307. package/docs/content/docs/sdk/kakaotalk.mdx +27 -18
  308. package/docs/content/docs/sdk/line.mdx +8 -13
  309. package/docs/content/docs/sdk/meta.json +14 -1
  310. package/docs/content/docs/sdk/slack.mdx +36 -42
  311. package/docs/content/docs/sdk/teams.mdx +2 -8
  312. package/docs/content/docs/sdk/webex.mdx +2 -12
  313. package/docs/content/docs/sdk/wechatbot.mdx +1 -5
  314. package/docs/content/docs/sdk/whatsapp.mdx +10 -19
  315. package/docs/content/docs/sdk/whatsappbot.mdx +2 -10
  316. package/docs/content/docs/tui.mdx +23 -23
  317. package/docs/src/app/page.tsx +353 -108
  318. package/e2e/channeltalkbot.e2e.test.ts +1 -5
  319. package/e2e/config.ts +6 -2
  320. package/package.json +59 -58
  321. package/scripts/prepublish.ts +1 -3
  322. package/skills/agent-channeltalk/SKILL.md +19 -9
  323. package/skills/agent-channeltalk/references/common-patterns.md +10 -9
  324. package/skills/agent-channeltalkbot/SKILL.md +19 -9
  325. package/skills/agent-channeltalkbot/references/common-patterns.md +10 -9
  326. package/skills/agent-discord/SKILL.md +18 -9
  327. package/skills/agent-discord/references/common-patterns.md +8 -7
  328. package/skills/agent-discordbot/SKILL.md +18 -9
  329. package/skills/agent-instagram/SKILL.md +1 -1
  330. package/skills/agent-kakaotalk/SKILL.md +1 -1
  331. package/skills/agent-line/SKILL.md +1 -1
  332. package/skills/agent-slack/SKILL.md +19 -10
  333. package/skills/agent-slack/references/common-patterns.md +4 -7
  334. package/skills/agent-slackbot/SKILL.md +1 -1
  335. package/skills/agent-teams/SKILL.md +18 -9
  336. package/skills/agent-teams/references/common-patterns.md +9 -7
  337. package/skills/agent-telegram/SKILL.md +1 -1
  338. package/skills/agent-webex/SKILL.md +13 -4
  339. package/skills/agent-webex/references/common-patterns.md +8 -2
  340. package/skills/agent-wechatbot/SKILL.md +1 -1
  341. package/skills/agent-whatsapp/SKILL.md +1 -1
  342. package/skills/agent-whatsappbot/SKILL.md +1 -1
  343. package/src/platforms/channeltalk/client.test.ts +116 -29
  344. package/src/platforms/channeltalk/client.ts +26 -6
  345. package/src/platforms/channeltalk/commands/auth.test.ts +5 -5
  346. package/src/platforms/channeltalk/commands/auth.ts +19 -5
  347. package/src/platforms/channeltalk/commands/message.test.ts +2 -6
  348. package/src/platforms/channeltalk/commands/message.ts +5 -1
  349. package/src/platforms/channeltalk/commands/snapshot.test.ts +77 -30
  350. package/src/platforms/channeltalk/commands/snapshot.ts +112 -34
  351. package/src/platforms/channeltalk/ensure-auth.test.ts +20 -17
  352. package/src/platforms/channeltalk/ensure-auth.ts +6 -7
  353. package/src/platforms/channeltalk/index.ts +0 -1
  354. package/src/platforms/channeltalk/token-extractor.test.ts +33 -25
  355. package/src/platforms/channeltalk/token-extractor.ts +120 -372
  356. package/src/platforms/channeltalkbot/client.test.ts +1 -3
  357. package/src/platforms/channeltalkbot/client.ts +39 -13
  358. package/src/platforms/channeltalkbot/commands/auth.test.ts +3 -1
  359. package/src/platforms/channeltalkbot/commands/auth.ts +4 -1
  360. package/src/platforms/channeltalkbot/commands/bot.test.ts +13 -5
  361. package/src/platforms/channeltalkbot/commands/message.test.ts +12 -6
  362. package/src/platforms/channeltalkbot/commands/shared.ts +6 -2
  363. package/src/platforms/channeltalkbot/commands/snapshot.test.ts +43 -13
  364. package/src/platforms/channeltalkbot/commands/snapshot.ts +131 -64
  365. package/src/platforms/channeltalkbot/credential-manager.test.ts +1 -1
  366. package/src/platforms/channeltalkbot/index.test.ts +0 -2
  367. package/src/platforms/channeltalkbot/index.ts +0 -1
  368. package/src/platforms/discord/commands/auth.test.ts +6 -4
  369. package/src/platforms/discord/commands/auth.ts +14 -14
  370. package/src/platforms/discord/commands/snapshot.test.ts +1 -1
  371. package/src/platforms/discord/commands/snapshot.ts +58 -42
  372. package/src/platforms/discord/commands/whoami.test.ts +2 -4
  373. package/src/platforms/discord/commands/whoami.ts +2 -0
  374. package/src/platforms/discord/ensure-auth.test.ts +5 -3
  375. package/src/platforms/discord/index.ts +0 -1
  376. package/src/platforms/discord/listener.test.ts +7 -1
  377. package/src/platforms/discord/token-extractor.test.ts +18 -12
  378. package/src/platforms/discord/token-extractor.ts +46 -190
  379. package/src/platforms/discordbot/client.ts +1 -4
  380. package/src/platforms/discordbot/commands/auth.test.ts +3 -1
  381. package/src/platforms/discordbot/commands/channel.test.ts +3 -1
  382. package/src/platforms/discordbot/commands/message.test.ts +3 -1
  383. package/src/platforms/discordbot/commands/server.test.ts +3 -1
  384. package/src/platforms/discordbot/commands/snapshot.test.ts +43 -19
  385. package/src/platforms/discordbot/commands/snapshot.ts +54 -37
  386. package/src/platforms/discordbot/commands/thread.test.ts +3 -1
  387. package/src/platforms/discordbot/commands/user.test.ts +3 -1
  388. package/src/platforms/instagram/cli.ts +1 -4
  389. package/src/platforms/instagram/client.test.ts +3 -8
  390. package/src/platforms/instagram/client.ts +39 -34
  391. package/src/platforms/instagram/commands/auth.test.ts +13 -12
  392. package/src/platforms/instagram/commands/auth.ts +136 -71
  393. package/src/platforms/instagram/commands/chat.test.ts +21 -24
  394. package/src/platforms/instagram/commands/chat.ts +2 -0
  395. package/src/platforms/instagram/commands/message.test.ts +29 -24
  396. package/src/platforms/instagram/commands/message.ts +3 -4
  397. package/src/platforms/instagram/commands/shared.ts +2 -5
  398. package/src/platforms/instagram/commands/whoami.test.ts +4 -6
  399. package/src/platforms/instagram/credential-manager.ts +2 -6
  400. package/src/platforms/instagram/ensure-auth.test.ts +1 -4
  401. package/src/platforms/instagram/ensure-auth.ts +6 -3
  402. package/src/platforms/instagram/listener.test.ts +7 -3
  403. package/src/platforms/instagram/token-extractor.test.ts +4 -16
  404. package/src/platforms/instagram/token-extractor.ts +55 -309
  405. package/src/platforms/instagram/types.test.ts +2 -6
  406. package/src/platforms/instagram/types.ts +4 -2
  407. package/src/platforms/kakaotalk/auth/kakao-login.ts +30 -8
  408. package/src/platforms/kakaotalk/client.test.ts +37 -25
  409. package/src/platforms/kakaotalk/client.ts +23 -12
  410. package/src/platforms/kakaotalk/commands/auth.test.ts +6 -18
  411. package/src/platforms/kakaotalk/commands/auth.ts +101 -47
  412. package/src/platforms/kakaotalk/commands/chat.test.ts +8 -11
  413. package/src/platforms/kakaotalk/commands/message.test.ts +15 -24
  414. package/src/platforms/kakaotalk/commands/shared.ts +1 -0
  415. package/src/platforms/kakaotalk/commands/whoami.test.ts +6 -10
  416. package/src/platforms/kakaotalk/credential-manager.test.ts +1 -4
  417. package/src/platforms/kakaotalk/index.test.ts +1 -0
  418. package/src/platforms/kakaotalk/index.ts +0 -2
  419. package/src/platforms/kakaotalk/listener.test.ts +7 -1
  420. package/src/platforms/kakaotalk/protocol/connection.ts +4 -1
  421. package/src/platforms/kakaotalk/protocol/crypto.ts +1 -1
  422. package/src/platforms/kakaotalk/protocol/session.ts +12 -6
  423. package/src/platforms/kakaotalk/token-extractor.ts +5 -5
  424. package/src/platforms/kakaotalk/types.ts +8 -7
  425. package/src/platforms/line/cli.ts +1 -4
  426. package/src/platforms/line/client.ts +12 -20
  427. package/src/platforms/line/commands/auth.test.ts +2 -1
  428. package/src/platforms/line/commands/chat.test.ts +2 -1
  429. package/src/platforms/line/commands/chat.ts +1 -4
  430. package/src/platforms/line/commands/friend.test.ts +2 -1
  431. package/src/platforms/line/commands/message.test.ts +2 -1
  432. package/src/platforms/line/commands/message.ts +2 -9
  433. package/src/platforms/line/commands/whoami.test.ts +2 -1
  434. package/src/platforms/line/credential-manager.test.ts +1 -2
  435. package/src/platforms/line/index.test.ts +1 -0
  436. package/src/platforms/line/listener.ts +1 -1
  437. package/src/platforms/line/types.test.ts +1 -0
  438. package/src/platforms/slack/cli.ts +3 -1
  439. package/src/platforms/slack/client-mappers.ts +297 -0
  440. package/src/platforms/slack/client.test.ts +532 -17
  441. package/src/platforms/slack/client.ts +69 -458
  442. package/src/platforms/slack/commands/channel.ts +1 -4
  443. package/src/platforms/slack/commands/emoji.test.ts +6 -4
  444. package/src/platforms/slack/commands/emoji.ts +20 -22
  445. package/src/platforms/slack/commands/message.ts +6 -1
  446. package/src/platforms/slack/commands/pin.test.ts +14 -12
  447. package/src/platforms/slack/commands/reminder.ts +7 -6
  448. package/src/platforms/slack/commands/snapshot.test.ts +63 -8
  449. package/src/platforms/slack/commands/snapshot.ts +98 -66
  450. package/src/platforms/slack/commands/user.ts +6 -1
  451. package/src/platforms/slack/commands/usergroup.test.ts +3 -3
  452. package/src/platforms/slack/commands/usergroup.ts +10 -7
  453. package/src/platforms/slack/commands/whoami.test.ts +1 -1
  454. package/src/platforms/slack/commands/whoami.ts +2 -0
  455. package/src/platforms/slack/index.ts +0 -2
  456. package/src/platforms/slack/listener.test.ts +1 -0
  457. package/src/platforms/slack/token-extractor.test.ts +7 -12
  458. package/src/platforms/slack/token-extractor.ts +47 -255
  459. package/src/platforms/slackbot/cli.ts +8 -1
  460. package/src/platforms/slackbot/commands/auth.test.ts +3 -1
  461. package/src/platforms/teams/client.ts +1 -1
  462. package/src/platforms/teams/commands/auth.test.ts +1 -1
  463. package/src/platforms/teams/commands/auth.ts +4 -1
  464. package/src/platforms/teams/commands/snapshot.test.ts +1 -1
  465. package/src/platforms/teams/commands/snapshot.ts +53 -38
  466. package/src/platforms/teams/commands/whoami.test.ts +2 -4
  467. package/src/platforms/teams/commands/whoami.ts +2 -0
  468. package/src/platforms/teams/index.ts +0 -1
  469. package/src/platforms/teams/token-extractor.ts +82 -350
  470. package/src/platforms/telegram/app-config.test.ts +1 -0
  471. package/src/platforms/telegram/chat-utils.test.ts +5 -1
  472. package/src/platforms/telegram/cli.ts +2 -4
  473. package/src/platforms/telegram/client.test.ts +16 -3
  474. package/src/platforms/telegram/client.ts +14 -4
  475. package/src/platforms/telegram/commands/auth.test.ts +1 -0
  476. package/src/platforms/telegram/commands/auth.ts +3 -4
  477. package/src/platforms/telegram/commands/chat.test.ts +2 -5
  478. package/src/platforms/telegram/commands/chat.ts +1 -0
  479. package/src/platforms/telegram/commands/message.test.ts +2 -5
  480. package/src/platforms/telegram/commands/message.ts +1 -0
  481. package/src/platforms/telegram/commands/shared.test.ts +1 -0
  482. package/src/platforms/telegram/commands/whoami.test.ts +5 -7
  483. package/src/platforms/telegram/commands/whoami.ts +1 -1
  484. package/src/platforms/telegram/credential-manager.test.ts +1 -0
  485. package/src/platforms/telegram/credential-manager.ts +11 -2
  486. package/src/platforms/telegram/my-telegram-org.ts +6 -2
  487. package/src/platforms/telegram/types.test.ts +1 -0
  488. package/src/platforms/webex/app-config.test.ts +1 -0
  489. package/src/platforms/webex/cli.ts +1 -4
  490. package/src/platforms/webex/client.test.ts +4 -12
  491. package/src/platforms/webex/client.ts +14 -52
  492. package/src/platforms/webex/commands/auth.test.ts +7 -1
  493. package/src/platforms/webex/commands/auth.ts +12 -15
  494. package/src/platforms/webex/commands/member.test.ts +1 -3
  495. package/src/platforms/webex/commands/member.ts +14 -19
  496. package/src/platforms/webex/commands/message.ts +4 -15
  497. package/src/platforms/webex/commands/snapshot.test.ts +42 -4
  498. package/src/platforms/webex/commands/snapshot.ts +19 -11
  499. package/src/platforms/webex/commands/space.test.ts +3 -3
  500. package/src/platforms/webex/commands/space.ts +2 -9
  501. package/src/platforms/webex/commands/whoami.test.ts +12 -5
  502. package/src/platforms/webex/commands/whoami.ts +2 -0
  503. package/src/platforms/webex/credential-manager.ts +11 -2
  504. package/src/platforms/webex/ensure-auth.ts +1 -3
  505. package/src/platforms/webex/index.ts +1 -7
  506. package/src/platforms/webex/markdown-to-html.test.ts +6 -18
  507. package/src/platforms/webex/markdown-to-html.ts +8 -8
  508. package/src/platforms/webex/token-extractor.ts +6 -29
  509. package/src/platforms/wechatbot/client.test.ts +6 -2
  510. package/src/platforms/wechatbot/client.ts +6 -1
  511. package/src/platforms/wechatbot/commands/auth.test.ts +3 -7
  512. package/src/platforms/wechatbot/commands/message.test.ts +1 -4
  513. package/src/platforms/wechatbot/commands/message.ts +5 -1
  514. package/src/platforms/wechatbot/commands/template.test.ts +1 -4
  515. package/src/platforms/wechatbot/commands/user.test.ts +2 -7
  516. package/src/platforms/whatsapp/cli.ts +1 -4
  517. package/src/platforms/whatsapp/commands/auth.test.ts +19 -22
  518. package/src/platforms/whatsapp/commands/chat.test.ts +21 -24
  519. package/src/platforms/whatsapp/commands/chat.ts +2 -0
  520. package/src/platforms/whatsapp/commands/message.test.ts +22 -24
  521. package/src/platforms/whatsapp/commands/message.ts +3 -5
  522. package/src/platforms/whatsapp/commands/shared.ts +2 -5
  523. package/src/platforms/whatsapp/commands/whoami.test.ts +2 -2
  524. package/src/platforms/whatsapp/credential-manager.ts +2 -6
  525. package/src/platforms/whatsapp/ensure-auth.test.ts +1 -4
  526. package/src/platforms/whatsapp/ensure-auth.ts +14 -6
  527. package/src/platforms/whatsapp/index.ts +0 -2
  528. package/src/platforms/whatsappbot/client.test.ts +13 -7
  529. package/src/platforms/whatsappbot/client.ts +18 -4
  530. package/src/platforms/whatsappbot/commands/auth.ts +4 -1
  531. package/src/platforms/whatsappbot/commands/message.test.ts +12 -2
  532. package/src/platforms/whatsappbot/commands/message.ts +16 -3
  533. package/src/platforms/whatsappbot/commands/shared.ts +3 -1
  534. package/src/platforms/whatsappbot/commands/whoami.test.ts +1 -3
  535. package/src/platforms/whatsappbot/index.ts +0 -2
  536. package/src/shared/chromium/browsers.test.ts +274 -0
  537. package/src/shared/chromium/browsers.ts +86 -0
  538. package/src/shared/chromium/cookie-reader.test.ts +274 -0
  539. package/src/shared/chromium/cookie-reader.ts +111 -0
  540. package/src/shared/chromium/decryptor.test.ts +449 -0
  541. package/src/shared/chromium/decryptor.ts +227 -0
  542. package/src/shared/chromium/index.ts +11 -0
  543. package/src/shared/chromium/types.ts +11 -0
  544. package/src/shared/utils/derived-key-cache.ts +1 -1
  545. package/src/shared/utils/linux-keyring.ts +4 -4
  546. package/src/tui/adapters/kakaotalk-adapter.ts +6 -1
  547. package/src/tui/adapters/telegram-adapter.ts +1 -1
  548. package/src/tui/adapters/webex-adapter.ts +1 -1
  549. package/src/tui/app.ts +149 -59
  550. package/src/tui/utils.test.ts +144 -145
  551. package/src/tui/utils.ts +27 -29
  552. package/src/tui/views/channel-picker.ts +1 -1
  553. package/src/tui/views/workspace-picker.ts +1 -1
@@ -241,20 +241,37 @@ agent-slack file delete <file-id>
241
241
 
242
242
  ### Snapshot Command
243
243
 
244
- Get comprehensive workspace state for AI agents:
244
+ Get workspace overview for AI agents (brief by default):
245
245
 
246
246
  ```bash
247
- # Full snapshot
247
+ # Brief snapshot (default) — fast, minimal API calls
248
248
  agent-slack snapshot
249
249
 
250
- # Filtered snapshots
251
- agent-slack snapshot --channels-only
252
- agent-slack snapshot --users-only
250
+ # Full snapshot — includes messages, users, user groups (slow, large output)
251
+ agent-slack snapshot --full
253
252
 
254
- # Limit messages per channel
255
- agent-slack snapshot --limit 10
253
+ # Filtered full snapshots
254
+ agent-slack snapshot --full --channels-only
255
+ agent-slack snapshot --full --users-only
256
+
257
+ # Limit messages per channel (only with --full)
258
+ agent-slack snapshot --full --limit 10
256
259
  ```
257
260
 
261
+ Default returns brief JSON with:
262
+
263
+ - Workspace metadata
264
+ - Channels (id, name) — non-archived only
265
+ - Hint for next commands
266
+
267
+ With `--full`, returns comprehensive JSON with:
268
+
269
+ - Workspace metadata
270
+ - Channels (id, name, topic, purpose, is_private, is_archived)
271
+ - Recent messages (ts, text, user, channel)
272
+ - Users (id, name, profile)
273
+ - User groups (id, name, handle, description, user_count, users)
274
+
258
275
  ### Activity Commands
259
276
 
260
277
  ```bash
@@ -209,20 +209,36 @@ agent-teams file download <file-id> <output-path>
209
209
 
210
210
  ### Snapshot Command
211
211
 
212
- Get comprehensive team state for AI agents:
212
+ Get team overview for AI agents (brief by default):
213
213
 
214
214
  ```bash
215
- # Full snapshot (channels, members, recent messages)
215
+ # Brief snapshot (default) — fast, minimal API calls
216
216
  agent-teams snapshot
217
217
 
218
- # Filtered snapshots
219
- agent-teams snapshot --channels-only
220
- agent-teams snapshot --users-only
218
+ # Full snapshot — includes messages and members (slow, large output)
219
+ agent-teams snapshot --full
221
220
 
222
- # Limit messages per channel
223
- agent-teams snapshot --limit 10
221
+ # Filtered full snapshots
222
+ agent-teams snapshot --full --channels-only
223
+ agent-teams snapshot --full --users-only
224
+
225
+ # Limit messages per channel (only with --full)
226
+ agent-teams snapshot --full --limit 10
224
227
  ```
225
228
 
229
+ Default returns brief JSON with:
230
+
231
+ - Team metadata (id, name)
232
+ - Channels (id, name)
233
+ - Hint for next commands
234
+
235
+ With `--full`, returns comprehensive JSON with:
236
+
237
+ - Team metadata (id, name)
238
+ - Channels (id, name, type, description)
239
+ - Recent messages (id, content, author, timestamp)
240
+ - Members (id, displayName, email)
241
+
226
242
  ## Global Options
227
243
 
228
244
  All commands support these options:
@@ -321,7 +337,7 @@ if ! agent-teams auth status | grep -q "valid"; then
321
337
  fi
322
338
 
323
339
  # 2. Get team context
324
- agent-teams snapshot --limit 5 > /tmp/teams-context.json
340
+ agent-teams snapshot > /tmp/teams-context.json
325
341
 
326
342
  # 3. Send standup reminder
327
343
  agent-teams message send $STANDUP_CHANNEL "Good morning! Time for standup."
@@ -65,12 +65,12 @@ This command:
65
65
 
66
66
  ### Token Types
67
67
 
68
- | Type | Lifetime | Best For |
69
- | --- | --- | --- |
70
- | Browser Extraction (recommended) | Session-based (re-extract when expired) | Interactive use, sending as yourself |
71
- | OAuth Device Grant | 14-day access, 90-day refresh (auto-refresh) | Fallback when no browser session |
72
- | Bot Token | Never expires | CI/CD, long-running automation |
73
- | Personal Access Token (PAT) | 12 hours | Quick testing |
68
+ | Type | Lifetime | Best For |
69
+ | -------------------------------- | -------------------------------------------- | ------------------------------------ |
70
+ | Browser Extraction (recommended) | Session-based (re-extract when expired) | Interactive use, sending as yourself |
71
+ | OAuth Device Grant | 14-day access, 90-day refresh (auto-refresh) | Fallback when no browser session |
72
+ | Bot Token | Never expires | CI/CD, long-running automation |
73
+ | Personal Access Token (PAT) | 12 hours | Quick testing |
74
74
 
75
75
  ### Authentication Commands
76
76
 
@@ -101,9 +101,9 @@ agent-webex auth logout
101
101
 
102
102
  Override the built-in Integration credentials with your own:
103
103
 
104
- | Variable | Description |
105
- | --- | --- |
106
- | `AGENT_WEBEX_CLIENT_ID` | Webex Integration client ID |
104
+ | Variable | Description |
105
+ | --------------------------- | ------------------------------- |
106
+ | `AGENT_WEBEX_CLIENT_ID` | Webex Integration client ID |
107
107
  | `AGENT_WEBEX_CLIENT_SECRET` | Webex Integration client secret |
108
108
 
109
109
  Both must be set together. When set, `auth login` (without `--token`) uses these instead of the built-in credentials.
@@ -176,13 +176,26 @@ agent-webex member list abc123 --limit 100
176
176
 
177
177
  ### Snapshot Command
178
178
 
179
- Get workspace spaces overview for AI agents:
179
+ Get workspace overview for AI agents (brief by default):
180
180
 
181
181
  ```bash
182
+ # Brief snapshot (default) — fast, minimal output
182
183
  agent-webex snapshot
184
+
185
+ # Full snapshot — includes type and lastActivity
186
+ agent-webex snapshot --full
183
187
  ```
184
188
 
185
- Returns only the spaces you're a member of, with id, title, type, and lastActivity. Use `message list <space-id>` or `member list <space-id>` for details.
189
+ Default returns brief JSON with:
190
+
191
+ - Spaces (id, title) — only spaces you're a member of
192
+ - Hint for next commands
193
+
194
+ With `--full`, returns:
195
+
196
+ - Spaces (id, title, type, lastActivity)
197
+
198
+ For messages or members, use `message list <space-id>` or `member list <space-id>`.
186
199
 
187
200
  ## Global Options
188
201
 
@@ -194,16 +207,16 @@ All commands support these options:
194
207
 
195
208
  ## Key Differences: Webex vs Slack vs Discord vs Teams
196
209
 
197
- | Concept | Slack | Discord | Teams | Webex |
198
- | --- | --- | --- | --- | --- |
199
- | Server/Workspace | Workspace | Guild | Team | Organization |
200
- | Channel | Channel | Channel | Channel | Space |
201
- | Channel ID format | Alphanumeric (C01234567) | Numeric snowflake | UUID | Base64-encoded opaque ID |
202
- | Message ID format | Timestamp (1234567890.123456) | Numeric snowflake | UUID | Base64-encoded opaque ID |
203
- | Token lifetime | Long-lived | Long-lived | 60-90 minutes | 14 days (auto-refresh) |
204
- | API | Slack Web API | Discord API | Teams Messaging API | Webex REST API |
205
- | Auth method | Desktop app extraction | Desktop app extraction | Desktop app extraction | OAuth Device Grant |
206
- | Rate limits | Moderate | Moderate | Strict | ~600 req/min |
210
+ | Concept | Slack | Discord | Teams | Webex |
211
+ | ----------------- | ----------------------------- | ---------------------- | ---------------------- | ------------------------ |
212
+ | Server/Workspace | Workspace | Guild | Team | Organization |
213
+ | Channel | Channel | Channel | Channel | Space |
214
+ | Channel ID format | Alphanumeric (C01234567) | Numeric snowflake | UUID | Base64-encoded opaque ID |
215
+ | Message ID format | Timestamp (1234567890.123456) | Numeric snowflake | UUID | Base64-encoded opaque ID |
216
+ | Token lifetime | Long-lived | Long-lived | 60-90 minutes | 14 days (auto-refresh) |
217
+ | API | Slack Web API | Discord API | Teams Messaging API | Webex REST API |
218
+ | Auth method | Desktop app extraction | Desktop app extraction | Desktop app extraction | OAuth Device Grant |
219
+ | Rate limits | Moderate | Moderate | Strict | ~600 req/min |
207
220
 
208
221
  ## Troubleshooting
209
222
 
@@ -25,14 +25,14 @@ agent-wechatbot message send oXXXXXXXXXXXXXXX "Hello from the CLI!"
25
25
 
26
26
  WeChat Official Account API works differently from typical messaging APIs:
27
27
 
28
- | Concept | Description |
29
- | ------------------------ | -------------------------------------------------------------------------------- |
30
- | **Send-only** | Cannot list or read received messages. Inbound messages require webhooks. |
31
- | **Customer service messages** | Free-form text, image, and news messages within 48h of user's last interaction. |
32
- | **Template messages** | Pre-approved templates can be sent at any time. Created in the WeChat admin panel. |
33
- | **App ID + App Secret** | Credentials from WeChat Official Account admin panel under Development settings. |
34
- | **OpenID** | Each follower has a unique OpenID scoped to your Official Account. |
35
- | **IP Whitelist** | Your server IP must be added to the account's whitelist or API calls fail (40164). |
28
+ | Concept | Description |
29
+ | ----------------------------- | ---------------------------------------------------------------------------------- |
30
+ | **Send-only** | Cannot list or read received messages. Inbound messages require webhooks. |
31
+ | **Customer service messages** | Free-form text, image, and news messages within 48h of user's last interaction. |
32
+ | **Template messages** | Pre-approved templates can be sent at any time. Created in the WeChat admin panel. |
33
+ | **App ID + App Secret** | Credentials from WeChat Official Account admin panel under Development settings. |
34
+ | **OpenID** | Each follower has a unique OpenID scoped to your Official Account. |
35
+ | **IP Whitelist** | Your server IP must be added to the account's whitelist or API calls fail (40164). |
36
36
 
37
37
  ## Authentication
38
38
 
@@ -130,9 +130,9 @@ agent-wechatbot user get oABCD1234 --lang en
130
130
 
131
131
  ## Global Options
132
132
 
133
- | Option | Description |
134
- | ---------------- | -------------------------------------- |
135
- | `--pretty` | Human-readable output instead of JSON |
133
+ | Option | Description |
134
+ | ---------------- | --------------------------------------- |
135
+ | `--pretty` | Human-readable output instead of JSON |
136
136
  | `--account <id>` | Use a specific account for this command |
137
137
 
138
138
  ## Storage
@@ -173,6 +173,7 @@ If you get error `40164`, your server's IP is not in the Official Account's whit
173
173
  ### Token errors (40001, 42001)
174
174
 
175
175
  These indicate an expired or invalid access token. The CLI handles automatic token refresh, but if you see persistent errors:
176
+
176
177
  - Verify your App Secret hasn't been reset in the admin panel
177
178
  - Re-run `agent-wechatbot auth set <app-id> <app-secret>` with the current credentials
178
179
 
@@ -114,6 +114,7 @@ agent-whatsapp message react +1234567890 ABC123DEF456 "👍" --from-me
114
114
  ```
115
115
 
116
116
  The `<chat>` argument accepts:
117
+
117
118
  - Phone number: `+1234567890` (auto-resolved to JID)
118
119
  - Individual JID: `1234567890@s.whatsapp.net`
119
120
  - Group JID: `123456789-123345@g.us`
@@ -122,10 +123,10 @@ The `--from-me` flag on `message react` indicates the target message was sent by
122
123
 
123
124
  ## Global Options
124
125
 
125
- | Option | Description |
126
- | ---------------- | ------------------------------------------ |
127
- | `--pretty` | Human-readable output instead of JSON |
128
- | `--account <id>` | Use a specific account for this command |
126
+ | Option | Description |
127
+ | ---------------- | --------------------------------------- |
128
+ | `--pretty` | Human-readable output instead of JSON |
129
+ | `--account <id>` | Use a specific account for this command |
129
130
 
130
131
  ## Storage
131
132
 
@@ -25,13 +25,13 @@ agent-whatsappbot message send 15551234567 "Hello from the CLI!"
25
25
 
26
26
  WhatsApp Business Cloud API works differently from the user-mode WhatsApp integration:
27
27
 
28
- | Concept | Description |
29
- | -------------------- | --------------------------------------------------------------------------- |
30
- | **Send-only** | Cannot list or read received messages. Inbound messages require webhooks. |
31
- | **Template messages** | Required outside the 24-hour customer service window. Must be pre-approved. |
32
- | **Phone Number ID** | Your WhatsApp Business phone number's unique identifier (not the number). |
33
- | **Access Token** | Token from Meta Business Manager with `whatsapp_business_messaging` permission. |
34
- | **Rate limits** | Tier 0-3: 80 msg/s. Tier 4: 1,000 msg/s. Based on business verification. |
28
+ | Concept | Description |
29
+ | --------------------- | ------------------------------------------------------------------------------- |
30
+ | **Send-only** | Cannot list or read received messages. Inbound messages require webhooks. |
31
+ | **Template messages** | Required outside the 24-hour customer service window. Must be pre-approved. |
32
+ | **Phone Number ID** | Your WhatsApp Business phone number's unique identifier (not the number). |
33
+ | **Access Token** | Token from Meta Business Manager with `whatsapp_business_messaging` permission. |
34
+ | **Rate limits** | Tier 0-3: 80 msg/s. Tier 4: 1,000 msg/s. Based on business verification. |
35
35
 
36
36
  ## Authentication
37
37
 
@@ -124,10 +124,10 @@ agent-whatsappbot template get order_confirmation
124
124
 
125
125
  ## Global Options
126
126
 
127
- | Option | Description |
128
- | ---------------- | ------------------------------------------ |
129
- | `--pretty` | Human-readable output instead of JSON |
130
- | `--account <id>` | Use a specific account for this command |
127
+ | Option | Description |
128
+ | ---------------- | --------------------------------------- |
129
+ | `--pretty` | Human-readable output instead of JSON |
130
+ | `--account <id>` | Use a specific account for this command |
131
131
 
132
132
  ## Storage
133
133
 
@@ -33,13 +33,13 @@ No app creation. No admin approval. No waiting.
33
33
 
34
34
  ## Key Features
35
35
 
36
- | Feature | Description |
37
- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
38
- | **Auto-extraction** | Pulls tokens from desktop apps automatically |
39
- | **Multi-platform** | Slack, Discord, Microsoft Teams, Telegram, WhatsApp, LINE, Instagram, KakaoTalk, and Channel Talk (beta) |
40
- | **Multi-workspace** | Switch between workspaces/servers easily |
41
- | **JSON output** | Machine-readable by default, `--pretty` for humans |
42
- | **Comprehensive** | Messages, channels, users, reactions, files |
36
+ | Feature | Description |
37
+ | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
38
+ | **Auto-extraction** | Pulls tokens from desktop apps automatically |
39
+ | **Multi-platform** | Slack, Discord, Microsoft Teams, Telegram, WhatsApp, LINE, Instagram, KakaoTalk, and Channel Talk (beta) |
40
+ | **Multi-workspace** | Switch between workspaces/servers easily |
41
+ | **JSON output** | Machine-readable by default, `--pretty` for humans |
42
+ | **Comprehensive** | Messages, channels, users, reactions, files |
43
43
  | **Bot support** | [`agent-slackbot`](/docs/cli/slackbot), [`agent-discordbot`](/docs/cli/discordbot), and [`agent-channeltalkbot`](/docs/cli/channeltalkbot) for server-side and CI/CD |
44
44
 
45
45
  ## Why Not MCP?
@@ -1,11 +1,3 @@
1
1
  {
2
- "pages": [
3
- "index",
4
- "quick-start",
5
- "agent-skills",
6
- "tui",
7
- "---",
8
- "cli",
9
- "sdk"
10
- ]
2
+ "pages": ["index", "quick-start", "agent-skills", "tui", "---", "cli", "sdk"]
11
3
  }
@@ -10,11 +10,7 @@ npm install agent-messenger
10
10
  ```
11
11
 
12
12
  ```typescript
13
- import {
14
- ChannelClient,
15
- ChannelCredentialManager,
16
- ChannelError,
17
- } from 'agent-messenger/channeltalk'
13
+ import { ChannelClient, ChannelCredentialManager, ChannelError } from 'agent-messenger/channeltalk'
18
14
  ```
19
15
 
20
16
  ## ChannelClient
@@ -299,7 +295,10 @@ const manager = new ChannelCredentialManager()
299
295
  const creds = await manager.getCredentials()
300
296
  if (!creds) throw new Error('No credentials')
301
297
 
302
- const client = await new ChannelClient().login({ accountCookie: creds.account_cookie, sessionCookie: creds.session_cookie })
298
+ const client = await new ChannelClient().login({
299
+ accountCookie: creds.account_cookie,
300
+ sessionCookie: creds.session_cookie,
301
+ })
303
302
  const account = await client.getAccount()
304
303
  console.log(`Logged in as ${account.name} (${account.email})`)
305
304
 
@@ -10,11 +10,7 @@ npm install agent-messenger
10
10
  ```
11
11
 
12
12
  ```typescript
13
- import {
14
- ChannelBotClient,
15
- ChannelBotCredentialManager,
16
- ChannelBotError,
17
- } from 'agent-messenger/channeltalkbot'
13
+ import { ChannelBotClient, ChannelBotCredentialManager, ChannelBotError } from 'agent-messenger/channeltalkbot'
18
14
  ```
19
15
 
20
16
  ## ChannelBotClient
@@ -123,8 +119,8 @@ const file = await client.getGroupFileUrl(groupId, fileKey)
123
119
  // → { url: string }
124
120
 
125
121
  // Resolve a group by ID or @name (auto-detects format)
126
- const resolved = await client.resolveGroup('@engineering') // by name
127
- const byId = await client.resolveGroup('abc123') // by ID
122
+ const resolved = await client.resolveGroup('@engineering') // by name
123
+ const byId = await client.resolveGroup('abc123') // by ID
128
124
  // → ChannelBotGroup
129
125
  ```
130
126
 
@@ -296,7 +292,7 @@ for (const chat of chats) {
296
292
 
297
293
  if (lastMsg?.plainText?.includes('hours')) {
298
294
  const reply = ChannelBotClient.wrapTextInBlocks(
299
- 'Our support hours are Mon–Fri 9am–6pm KST. We\'ll get back to you shortly!'
295
+ "Our support hours are Mon–Fri 9am–6pm KST. We'll get back to you shortly!",
300
296
  )
301
297
  await client.sendUserChatMessage(chat.id, reply, 'Support Bot')
302
298
  await client.closeUserChat(chat.id, 'Support Bot')
@@ -317,9 +313,7 @@ const client = await new ChannelBotClient().login({ accessKey, accessSecret })
317
313
  const group = await client.resolveGroup('@engineering')
318
314
 
319
315
  // Send deployment notification
320
- const blocks = ChannelBotClient.wrapTextInBlocks(
321
- 'Deployment v2.1.0 complete — all services healthy'
322
- )
316
+ const blocks = ChannelBotClient.wrapTextInBlocks('Deployment v2.1.0 complete — all services healthy')
323
317
  await client.sendGroupMessage(group.id, blocks, 'Deploy Bot')
324
318
 
325
319
  // Verify delivery
@@ -388,7 +382,7 @@ for (const chat of openChats.slice(0, 5)) {
388
382
 
389
383
  // Send acknowledgment
390
384
  const reply = ChannelBotClient.wrapTextInBlocks(
391
- 'Your request has been received. A team member will follow up shortly.'
385
+ 'Your request has been received. A team member will follow up shortly.',
392
386
  )
393
387
  await client.sendUserChatMessage(chat.id, reply, 'Support Bot')
394
388
  }
@@ -10,12 +10,7 @@ npm install agent-messenger
10
10
  ```
11
11
 
12
12
  ```typescript
13
- import {
14
- DiscordClient,
15
- DiscordCredentialManager,
16
- DiscordError,
17
- DiscordListener,
18
- } from 'agent-messenger/discord'
13
+ import { DiscordClient, DiscordCredentialManager, DiscordError, DiscordListener } from 'agent-messenger/discord'
19
14
  ```
20
15
 
21
16
  ## DiscordClient
@@ -183,12 +178,12 @@ const limited = await client.searchMembers(serverId, 'alice', 5)
183
178
  // Search messages in a server
184
179
  const results = await client.searchMessages(serverId, 'deployment failed')
185
180
  const filtered = await client.searchMessages(serverId, 'API design', {
186
- channelId: '123456789', // limit to a specific channel
187
- authorId: '987654321', // limit to a specific author
188
- has: 'file', // 'file' | 'image' | 'video' | 'embed' | 'link' | 'sticker'
189
- sortBy: 'timestamp', // 'timestamp' | 'relevance'
190
- sortOrder: 'desc', // 'asc' | 'desc'
191
- limit: 10, // max 25
181
+ channelId: '123456789', // limit to a specific channel
182
+ authorId: '987654321', // limit to a specific author
183
+ has: 'file', // 'file' | 'image' | 'video' | 'embed' | 'link' | 'sticker'
184
+ sortBy: 'timestamp', // 'timestamp' | 'relevance'
185
+ sortOrder: 'desc', // 'asc' | 'desc'
186
+ limit: 10, // max 25
192
187
  offset: 0,
193
188
  })
194
189
  // → { results: DiscordSearchResult[], total: number }
@@ -200,8 +195,8 @@ const filtered = await client.searchMessages(serverId, 'API design', {
200
195
  // Create a thread in a channel
201
196
  const thread = await client.createThread(channelId, 'Bug Report: Login Issue')
202
197
  const configured = await client.createThread(channelId, 'Design Review', {
203
- auto_archive_duration: 1440, // minutes: 60, 1440, 4320, or 10080
204
- rate_limit_per_user: 5, // seconds between messages (slow mode)
198
+ auto_archive_duration: 1440, // minutes: 60, 1440, 4320, or 10080
199
+ rate_limit_per_user: 5, // seconds between messages (slow mode)
205
200
  })
206
201
  // → DiscordChannel (with thread_metadata)
207
202
 
@@ -236,7 +231,7 @@ listener.on('discord_event', (event) => {
236
231
 
237
232
  listener.on('error', (err) => console.error(err))
238
233
 
239
- await listener.start() // connects via Gateway WebSocket
234
+ await listener.start() // connects via Gateway WebSocket
240
235
  // listener.stop() // clean shutdown
241
236
  ```
242
237
 
@@ -252,21 +247,22 @@ const listener = new DiscordListener(client, {
252
247
 
253
248
  ### Available Events
254
249
 
255
- | Event | Description |
256
- |-------|-------------|
257
- | `message_create` | New message in a channel or DM |
258
- | `message_update` | Message content edited |
259
- | `message_delete` | Message deleted |
260
- | `message_reaction_add` / `message_reaction_remove` | Reaction changes |
261
- | `guild_member_add` / `guild_member_remove` | Member joins/leaves server |
262
- | `typing_start` | Typing indicator |
263
- | `presence_update` | User online/idle/dnd/offline status |
264
- | `channel_create` / `channel_update` / `channel_delete` | Channel lifecycle |
265
- | `discord_event` | Catch-all for every Gateway dispatch event |
266
- | `connected` / `disconnected` | Connection lifecycle |
267
- | `error` | Connection or protocol error |
250
+ | Event | Description |
251
+ | ------------------------------------------------------ | ------------------------------------------ |
252
+ | `message_create` | New message in a channel or DM |
253
+ | `message_update` | Message content edited |
254
+ | `message_delete` | Message deleted |
255
+ | `message_reaction_add` / `message_reaction_remove` | Reaction changes |
256
+ | `guild_member_add` / `guild_member_remove` | Member joins/leaves server |
257
+ | `typing_start` | Typing indicator |
258
+ | `presence_update` | User online/idle/dnd/offline status |
259
+ | `channel_create` / `channel_update` / `channel_delete` | Channel lifecycle |
260
+ | `discord_event` | Catch-all for every Gateway dispatch event |
261
+ | `connected` / `disconnected` | Connection lifecycle |
262
+ | `error` | Connection or protocol error |
268
263
 
269
264
  Features:
265
+
270
266
  - Gateway intents configurable (non-privileged defaults — `MessageContent`, `GuildMembers`, `GuildPresences` require opt-in)
271
267
  - Auto-reconnect with exponential backoff
272
268
  - Heartbeat keepalive with zombie connection detection
@@ -422,21 +418,21 @@ const thread = await client.createThread(channelId, 'Project Alpha — Kickoff',
422
418
  })
423
419
 
424
420
  // Post welcome message in the thread
425
- await client.sendMessage(thread.id, [
426
- '👋 Welcome to **Project Alpha**!',
427
- '',
428
- '📋 **Resources** links and docs will be pinned here',
429
- '🧵 **Discussions** — use threads to keep things organized',
430
- '🚀 **Goal** — ship the MVP by end of Q1',
431
- ].join('\n'))
421
+ await client.sendMessage(
422
+ thread.id,
423
+ [
424
+ '👋 Welcome to **Project Alpha**!',
425
+ '',
426
+ '📋 **Resources** — links and docs will be pinned here',
427
+ '🧵 **Discussions** — use threads to keep things organized',
428
+ '🚀 **Goal** — ship the MVP by end of Q1',
429
+ ].join('\n'),
430
+ )
432
431
 
433
432
  // Look up team members and notify them
434
433
  const members = await client.searchMembers(serverId, 'alice')
435
434
  for (const member of members.slice(0, 3)) {
436
- await client.sendMessage(
437
- thread.id,
438
- `Hey <@${member.user.id}>, you're on the Alpha team — see you here!`,
439
- )
435
+ await client.sendMessage(thread.id, `Hey <@${member.user.id}>, you're on the Alpha team — see you here!`)
440
436
  }
441
437
  ```
442
438
 
@@ -457,10 +453,7 @@ for (const mention of mentions) {
457
453
  await client.addReaction(mention.channel_id, mention.id, '👀')
458
454
 
459
455
  // Reply with acknowledgment
460
- await client.sendMessage(
461
- mention.channel_id,
462
- `Thanks for the ping <@${mention.author.id}> — on it!`,
463
- )
456
+ await client.sendMessage(mention.channel_id, `Thanks for the ping <@${mention.author.id}> — on it!`)
464
457
 
465
458
  // Set a note on the user for context
466
459
  const existing = await client.getUserNote(mention.author.id)
@@ -147,12 +147,12 @@ await listener.start()
147
147
 
148
148
  ### Events
149
149
 
150
- | Event | Payload | Description |
151
- |-------|---------|-------------|
152
- | `message` | `InstagramMessageSummary` | New message received |
153
- | `connected` | `{ userId: string }` | Initial poll completed, listener active |
154
- | `disconnected` | — | Listener stopped |
155
- | `error` | `Error` | Network or API error |
150
+ | Event | Payload | Description |
151
+ | -------------- | ------------------------- | --------------------------------------- |
152
+ | `message` | `InstagramMessageSummary` | New message received |
153
+ | `connected` | `{ userId: string }` | Initial poll completed, listener active |
154
+ | `disconnected` | — | Listener stopped |
155
+ | `error` | `Error` | Network or API error |
156
156
 
157
157
  The listener seeds its seen-message set on startup, so it only emits `message` events for messages that arrive after `start()`.
158
158
 
@@ -227,8 +227,8 @@ import type {
227
227
 
228
228
  ```typescript
229
229
  interface InstagramChatSummary {
230
- id: string // Thread ID
231
- name: string // Thread title or participant names
230
+ id: string // Thread ID
231
+ name: string // Thread title or participant names
232
232
  type: 'private' | 'group'
233
233
  is_group: boolean
234
234
  participant_count: number
@@ -237,13 +237,13 @@ interface InstagramChatSummary {
237
237
  }
238
238
 
239
239
  interface InstagramMessageSummary {
240
- id: string // Message item ID
240
+ id: string // Message item ID
241
241
  thread_id: string
242
- from: string // User pk (numeric ID)
242
+ from: string // User pk (numeric ID)
243
243
  from_name?: string
244
- timestamp: string // ISO 8601
244
+ timestamp: string // ISO 8601
245
245
  is_outgoing: boolean
246
- type: string // 'text', 'media', 'reel_share', 'link', 'like', etc.
246
+ type: string // 'text', 'media', 'reel_share', 'link', 'like', etc.
247
247
  text?: string
248
248
  media_url?: string
249
249
  }
@@ -253,10 +253,10 @@ interface InstagramMessageSummary {
253
253
 
254
254
  ```typescript
255
255
  import {
256
- createAccountId, // Normalize a username to an account ID
257
- getMessageType, // Extract message type from API item
258
- extractMessageText, // Extract text from any message type
259
- extractMediaUrl, // Extract media URL from any message type
256
+ createAccountId, // Normalize a username to an account ID
257
+ getMessageType, // Extract message type from API item
258
+ extractMessageText, // Extract text from any message type
259
+ extractMediaUrl, // Extract media URL from any message type
260
260
  } from 'agent-messenger/instagram'
261
261
  ```
262
262
 
@@ -272,7 +272,7 @@ import { InstagramClient } from 'agent-messenger/instagram'
272
272
  const client = await new InstagramClient().login()
273
273
 
274
274
  const chats = await client.listChats(50)
275
- const unread = chats.filter(c => c.unread_count > 0)
275
+ const unread = chats.filter((c) => c.unread_count > 0)
276
276
 
277
277
  console.log(`${unread.length} threads with unread messages:`)
278
278
  for (const chat of unread) {
@@ -294,7 +294,7 @@ const client = await new InstagramClient().login()
294
294
 
295
295
  // Find the user
296
296
  const users = await client.searchUsers('alice_smith')
297
- const alice = users.find(u => u.username === 'alice_smith')
297
+ const alice = users.find((u) => u.username === 'alice_smith')
298
298
 
299
299
  if (alice) {
300
300
  const msg = await client.sendMessageToUser(alice.pk, 'Hey! Wanted to follow up on our chat.')