agent-messenger 1.14.0 → 2.0.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 (931) hide show
  1. package/.claude-plugin/README.md +94 -13
  2. package/.claude-plugin/marketplace.json +51 -12
  3. package/.claude-plugin/plugin.json +14 -3
  4. package/CONTRIBUTING.md +49 -3
  5. package/README.md +211 -54
  6. package/bun.lock +350 -2
  7. package/cubic.yaml +69 -0
  8. package/dist/package.json +118 -9
  9. package/dist/src/cli.d.ts.map +1 -1
  10. package/dist/src/cli.js +27 -6
  11. package/dist/src/cli.js.map +1 -1
  12. package/dist/src/platforms/channeltalk/client.d.ts +5 -1
  13. package/dist/src/platforms/channeltalk/client.d.ts.map +1 -1
  14. package/dist/src/platforms/channeltalk/client.js +23 -6
  15. package/dist/src/platforms/channeltalk/client.js.map +1 -1
  16. package/dist/src/platforms/channeltalk/commands/auth.d.ts +1 -1
  17. package/dist/src/platforms/channeltalk/commands/auth.d.ts.map +1 -1
  18. package/dist/src/platforms/channeltalk/commands/auth.js +4 -4
  19. package/dist/src/platforms/channeltalk/commands/auth.js.map +1 -1
  20. package/dist/src/platforms/channeltalk/commands/shared.js +1 -1
  21. package/dist/src/platforms/channeltalk/commands/shared.js.map +1 -1
  22. package/dist/src/platforms/channeltalk/ensure-auth.d.ts +2 -2
  23. package/dist/src/platforms/channeltalk/ensure-auth.d.ts.map +1 -1
  24. package/dist/src/platforms/channeltalk/ensure-auth.js +4 -4
  25. package/dist/src/platforms/channeltalk/ensure-auth.js.map +1 -1
  26. package/dist/src/platforms/channeltalk/index.d.ts +2 -2
  27. package/dist/src/platforms/channeltalk/index.d.ts.map +1 -1
  28. package/dist/src/platforms/channeltalk/index.js +1 -2
  29. package/dist/src/platforms/channeltalk/index.js.map +1 -1
  30. package/dist/src/platforms/channeltalk/token-extractor.d.ts +8 -0
  31. package/dist/src/platforms/channeltalk/token-extractor.d.ts.map +1 -1
  32. package/dist/src/platforms/channeltalk/token-extractor.js +127 -13
  33. package/dist/src/platforms/channeltalk/token-extractor.js.map +1 -1
  34. package/dist/src/platforms/channeltalk/types.d.ts +52 -949
  35. package/dist/src/platforms/channeltalk/types.d.ts.map +1 -1
  36. package/dist/src/platforms/channeltalk/types.js +1 -1
  37. package/dist/src/platforms/channeltalk/types.js.map +1 -1
  38. package/dist/src/platforms/channeltalkbot/client.d.ts +5 -1
  39. package/dist/src/platforms/channeltalkbot/client.d.ts.map +1 -1
  40. package/dist/src/platforms/channeltalkbot/client.js +24 -9
  41. package/dist/src/platforms/channeltalkbot/client.js.map +1 -1
  42. package/dist/src/platforms/channeltalkbot/commands/auth.js +2 -2
  43. package/dist/src/platforms/channeltalkbot/commands/auth.js.map +1 -1
  44. package/dist/src/platforms/channeltalkbot/commands/shared.js +1 -1
  45. package/dist/src/platforms/channeltalkbot/commands/shared.js.map +1 -1
  46. package/dist/src/platforms/channeltalkbot/index.d.ts +2 -1
  47. package/dist/src/platforms/channeltalkbot/index.d.ts.map +1 -1
  48. package/dist/src/platforms/channeltalkbot/index.js.map +1 -1
  49. package/dist/src/platforms/channeltalkbot/types.d.ts +24 -186
  50. package/dist/src/platforms/channeltalkbot/types.d.ts.map +1 -1
  51. package/dist/src/platforms/discord/client.d.ts +7 -1
  52. package/dist/src/platforms/discord/client.d.ts.map +1 -1
  53. package/dist/src/platforms/discord/client.js +27 -6
  54. package/dist/src/platforms/discord/client.js.map +1 -1
  55. package/dist/src/platforms/discord/commands/auth.js +2 -2
  56. package/dist/src/platforms/discord/commands/auth.js.map +1 -1
  57. package/dist/src/platforms/discord/commands/channel.js +3 -3
  58. package/dist/src/platforms/discord/commands/channel.js.map +1 -1
  59. package/dist/src/platforms/discord/commands/dm.js +2 -2
  60. package/dist/src/platforms/discord/commands/dm.js.map +1 -1
  61. package/dist/src/platforms/discord/commands/file.js +3 -3
  62. package/dist/src/platforms/discord/commands/file.js.map +1 -1
  63. package/dist/src/platforms/discord/commands/friend.js +1 -1
  64. package/dist/src/platforms/discord/commands/friend.js.map +1 -1
  65. package/dist/src/platforms/discord/commands/member.js +1 -1
  66. package/dist/src/platforms/discord/commands/member.js.map +1 -1
  67. package/dist/src/platforms/discord/commands/mention.js +1 -1
  68. package/dist/src/platforms/discord/commands/mention.js.map +1 -1
  69. package/dist/src/platforms/discord/commands/message.js +6 -6
  70. package/dist/src/platforms/discord/commands/message.js.map +1 -1
  71. package/dist/src/platforms/discord/commands/note.js +2 -2
  72. package/dist/src/platforms/discord/commands/note.js.map +1 -1
  73. package/dist/src/platforms/discord/commands/profile.js +1 -1
  74. package/dist/src/platforms/discord/commands/profile.js.map +1 -1
  75. package/dist/src/platforms/discord/commands/reaction.js +3 -3
  76. package/dist/src/platforms/discord/commands/reaction.js.map +1 -1
  77. package/dist/src/platforms/discord/commands/server.js +1 -1
  78. package/dist/src/platforms/discord/commands/server.js.map +1 -1
  79. package/dist/src/platforms/discord/commands/snapshot.js +1 -1
  80. package/dist/src/platforms/discord/commands/snapshot.js.map +1 -1
  81. package/dist/src/platforms/discord/commands/thread.js +2 -2
  82. package/dist/src/platforms/discord/commands/thread.js.map +1 -1
  83. package/dist/src/platforms/discord/commands/user.js +3 -3
  84. package/dist/src/platforms/discord/commands/user.js.map +1 -1
  85. package/dist/src/platforms/discord/ensure-auth.js +1 -1
  86. package/dist/src/platforms/discord/ensure-auth.js.map +1 -1
  87. package/dist/src/platforms/discord/index.d.ts +6 -0
  88. package/dist/src/platforms/discord/index.d.ts.map +1 -0
  89. package/dist/src/platforms/discord/index.js +5 -0
  90. package/dist/src/platforms/discord/index.js.map +1 -0
  91. package/dist/src/platforms/discord/listener.d.ts +41 -0
  92. package/dist/src/platforms/discord/listener.d.ts.map +1 -0
  93. package/dist/src/platforms/discord/listener.js +262 -0
  94. package/dist/src/platforms/discord/listener.js.map +1 -0
  95. package/dist/src/platforms/discord/types.d.ts +150 -352
  96. package/dist/src/platforms/discord/types.d.ts.map +1 -1
  97. package/dist/src/platforms/discord/types.js +28 -0
  98. package/dist/src/platforms/discord/types.js.map +1 -1
  99. package/dist/src/platforms/discordbot/client.d.ts +4 -1
  100. package/dist/src/platforms/discordbot/client.d.ts.map +1 -1
  101. package/dist/src/platforms/discordbot/client.js +23 -7
  102. package/dist/src/platforms/discordbot/client.js.map +1 -1
  103. package/dist/src/platforms/discordbot/commands/auth.js +2 -2
  104. package/dist/src/platforms/discordbot/commands/auth.js.map +1 -1
  105. package/dist/src/platforms/discordbot/commands/shared.js +1 -1
  106. package/dist/src/platforms/discordbot/commands/shared.js.map +1 -1
  107. package/dist/src/platforms/discordbot/types.d.ts +15 -203
  108. package/dist/src/platforms/discordbot/types.d.ts.map +1 -1
  109. package/dist/src/platforms/instagram/cli.d.ts +5 -0
  110. package/dist/src/platforms/instagram/cli.d.ts.map +1 -0
  111. package/dist/src/platforms/instagram/cli.js +30 -0
  112. package/dist/src/platforms/instagram/cli.js.map +1 -0
  113. package/dist/src/platforms/instagram/client.d.ts +65 -0
  114. package/dist/src/platforms/instagram/client.d.ts.map +1 -0
  115. package/dist/src/platforms/instagram/client.js +524 -0
  116. package/dist/src/platforms/instagram/client.js.map +1 -0
  117. package/dist/src/platforms/instagram/commands/auth.d.ts +3 -0
  118. package/dist/src/platforms/instagram/commands/auth.d.ts.map +1 -0
  119. package/dist/src/platforms/instagram/commands/auth.js +330 -0
  120. package/dist/src/platforms/instagram/commands/auth.js.map +1 -0
  121. package/dist/src/platforms/instagram/commands/chat.d.ts +3 -0
  122. package/dist/src/platforms/instagram/commands/chat.d.ts.map +1 -0
  123. package/dist/src/platforms/instagram/commands/chat.js +42 -0
  124. package/dist/src/platforms/instagram/commands/chat.js.map +1 -0
  125. package/dist/src/platforms/instagram/commands/index.d.ts +4 -0
  126. package/dist/src/platforms/instagram/commands/index.d.ts.map +1 -0
  127. package/dist/src/platforms/instagram/commands/index.js +4 -0
  128. package/dist/src/platforms/instagram/commands/index.js.map +1 -0
  129. package/dist/src/platforms/instagram/commands/message.d.ts +3 -0
  130. package/dist/src/platforms/instagram/commands/message.d.ts.map +1 -0
  131. package/dist/src/platforms/instagram/commands/message.js +102 -0
  132. package/dist/src/platforms/instagram/commands/message.js.map +1 -0
  133. package/dist/src/platforms/instagram/commands/shared.d.ts +8 -0
  134. package/dist/src/platforms/instagram/commands/shared.d.ts.map +1 -0
  135. package/dist/src/platforms/instagram/commands/shared.js +31 -0
  136. package/dist/src/platforms/instagram/commands/shared.js.map +1 -0
  137. package/dist/src/platforms/instagram/credential-manager.d.ts +20 -0
  138. package/dist/src/platforms/instagram/credential-manager.d.ts.map +1 -0
  139. package/dist/src/platforms/instagram/credential-manager.js +104 -0
  140. package/dist/src/platforms/instagram/credential-manager.js.map +1 -0
  141. package/dist/src/platforms/instagram/ensure-auth.d.ts +2 -0
  142. package/dist/src/platforms/instagram/ensure-auth.d.ts.map +1 -0
  143. package/dist/src/platforms/instagram/ensure-auth.js +21 -0
  144. package/dist/src/platforms/instagram/ensure-auth.js.map +1 -0
  145. package/dist/src/platforms/instagram/index.d.ts +5 -0
  146. package/dist/src/platforms/instagram/index.d.ts.map +1 -0
  147. package/dist/src/platforms/instagram/index.js +5 -0
  148. package/dist/src/platforms/instagram/index.js.map +1 -0
  149. package/dist/src/platforms/instagram/listener.d.ts +32 -0
  150. package/dist/src/platforms/instagram/listener.d.ts.map +1 -0
  151. package/dist/src/platforms/instagram/listener.js +87 -0
  152. package/dist/src/platforms/instagram/listener.js.map +1 -0
  153. package/dist/src/platforms/instagram/types.d.ts +61 -0
  154. package/dist/src/platforms/instagram/types.d.ts.map +1 -0
  155. package/dist/src/platforms/instagram/types.js +89 -0
  156. package/dist/src/platforms/instagram/types.js.map +1 -0
  157. package/dist/src/platforms/kakaotalk/auth/kakao-login.d.ts +27 -0
  158. package/dist/src/platforms/kakaotalk/auth/kakao-login.d.ts.map +1 -0
  159. package/dist/src/platforms/kakaotalk/auth/kakao-login.js +213 -0
  160. package/dist/src/platforms/kakaotalk/auth/kakao-login.js.map +1 -0
  161. package/dist/src/platforms/kakaotalk/cli.d.ts +5 -0
  162. package/dist/src/platforms/kakaotalk/cli.d.ts.map +1 -0
  163. package/dist/src/platforms/kakaotalk/cli.js +30 -0
  164. package/dist/src/platforms/kakaotalk/cli.js.map +1 -0
  165. package/dist/src/platforms/kakaotalk/client.d.ts +40 -0
  166. package/dist/src/platforms/kakaotalk/client.d.ts.map +1 -0
  167. package/dist/src/platforms/kakaotalk/client.js +290 -0
  168. package/dist/src/platforms/kakaotalk/client.js.map +1 -0
  169. package/dist/src/platforms/kakaotalk/commands/auth.d.ts +3 -0
  170. package/dist/src/platforms/kakaotalk/commands/auth.d.ts.map +1 -0
  171. package/dist/src/platforms/kakaotalk/commands/auth.js +515 -0
  172. package/dist/src/platforms/kakaotalk/commands/auth.js.map +1 -0
  173. package/dist/src/platforms/kakaotalk/commands/chat.d.ts +3 -0
  174. package/dist/src/platforms/kakaotalk/commands/chat.d.ts.map +1 -0
  175. package/dist/src/platforms/kakaotalk/commands/chat.js +23 -0
  176. package/dist/src/platforms/kakaotalk/commands/chat.js.map +1 -0
  177. package/dist/src/platforms/kakaotalk/commands/index.d.ts +4 -0
  178. package/dist/src/platforms/kakaotalk/commands/index.d.ts.map +1 -0
  179. package/dist/src/platforms/kakaotalk/commands/index.js +4 -0
  180. package/dist/src/platforms/kakaotalk/commands/index.js.map +1 -0
  181. package/dist/src/platforms/kakaotalk/commands/message.d.ts +3 -0
  182. package/dist/src/platforms/kakaotalk/commands/message.d.ts.map +1 -0
  183. package/dist/src/platforms/kakaotalk/commands/message.js +41 -0
  184. package/dist/src/platforms/kakaotalk/commands/message.js.map +1 -0
  185. package/dist/src/platforms/kakaotalk/commands/shared.d.ts +7 -0
  186. package/dist/src/platforms/kakaotalk/commands/shared.d.ts.map +1 -0
  187. package/dist/src/platforms/kakaotalk/commands/shared.js +24 -0
  188. package/dist/src/platforms/kakaotalk/commands/shared.js.map +1 -0
  189. package/dist/src/platforms/kakaotalk/credential-manager.d.ts +27 -0
  190. package/dist/src/platforms/kakaotalk/credential-manager.d.ts.map +1 -0
  191. package/dist/src/platforms/kakaotalk/credential-manager.js +82 -0
  192. package/dist/src/platforms/kakaotalk/credential-manager.js.map +1 -0
  193. package/dist/src/platforms/kakaotalk/ensure-auth.d.ts +3 -0
  194. package/dist/src/platforms/kakaotalk/ensure-auth.d.ts.map +1 -0
  195. package/dist/src/platforms/kakaotalk/ensure-auth.js +11 -0
  196. package/dist/src/platforms/kakaotalk/ensure-auth.js.map +1 -0
  197. package/dist/src/platforms/kakaotalk/index.d.ts +7 -0
  198. package/dist/src/platforms/kakaotalk/index.d.ts.map +1 -0
  199. package/dist/src/platforms/kakaotalk/index.js +5 -0
  200. package/dist/src/platforms/kakaotalk/index.js.map +1 -0
  201. package/dist/src/platforms/kakaotalk/listener.d.ts +24 -0
  202. package/dist/src/platforms/kakaotalk/listener.d.ts.map +1 -0
  203. package/dist/src/platforms/kakaotalk/listener.js +171 -0
  204. package/dist/src/platforms/kakaotalk/listener.js.map +1 -0
  205. package/dist/src/platforms/kakaotalk/protocol/config.d.ts +14 -0
  206. package/dist/src/platforms/kakaotalk/protocol/config.d.ts.map +1 -0
  207. package/dist/src/platforms/kakaotalk/protocol/config.js +23 -0
  208. package/dist/src/platforms/kakaotalk/protocol/config.js.map +1 -0
  209. package/dist/src/platforms/kakaotalk/protocol/connection.d.ts +25 -0
  210. package/dist/src/platforms/kakaotalk/protocol/connection.d.ts.map +1 -0
  211. package/dist/src/platforms/kakaotalk/protocol/connection.js +144 -0
  212. package/dist/src/platforms/kakaotalk/protocol/connection.js.map +1 -0
  213. package/dist/src/platforms/kakaotalk/protocol/crypto.d.ts +8 -0
  214. package/dist/src/platforms/kakaotalk/protocol/crypto.d.ts.map +1 -0
  215. package/dist/src/platforms/kakaotalk/protocol/crypto.js +51 -0
  216. package/dist/src/platforms/kakaotalk/protocol/crypto.js.map +1 -0
  217. package/dist/src/platforms/kakaotalk/protocol/packet.d.ts +7 -0
  218. package/dist/src/platforms/kakaotalk/protocol/packet.d.ts.map +1 -0
  219. package/dist/src/platforms/kakaotalk/protocol/packet.js +38 -0
  220. package/dist/src/platforms/kakaotalk/protocol/packet.js.map +1 -0
  221. package/dist/src/platforms/kakaotalk/protocol/session.d.ts +18 -0
  222. package/dist/src/platforms/kakaotalk/protocol/session.d.ts.map +1 -0
  223. package/dist/src/platforms/kakaotalk/protocol/session.js +127 -0
  224. package/dist/src/platforms/kakaotalk/protocol/session.js.map +1 -0
  225. package/dist/src/platforms/kakaotalk/protocol/types.d.ts +41 -0
  226. package/dist/src/platforms/kakaotalk/protocol/types.d.ts.map +1 -0
  227. package/dist/src/platforms/kakaotalk/protocol/types.js +8 -0
  228. package/dist/src/platforms/kakaotalk/protocol/types.js.map +1 -0
  229. package/dist/src/platforms/kakaotalk/token-extractor.d.ts +17 -0
  230. package/dist/src/platforms/kakaotalk/token-extractor.d.ts.map +1 -0
  231. package/dist/src/platforms/kakaotalk/token-extractor.js +273 -0
  232. package/dist/src/platforms/kakaotalk/token-extractor.js.map +1 -0
  233. package/dist/src/platforms/kakaotalk/types.d.ts +198 -0
  234. package/dist/src/platforms/kakaotalk/types.d.ts.map +1 -0
  235. package/dist/src/platforms/kakaotalk/types.js +74 -0
  236. package/dist/src/platforms/kakaotalk/types.js.map +1 -0
  237. package/dist/src/platforms/line/cli.d.ts +5 -0
  238. package/dist/src/platforms/line/cli.d.ts.map +1 -0
  239. package/dist/src/platforms/line/cli.js +32 -0
  240. package/dist/src/platforms/line/cli.js.map +1 -0
  241. package/dist/src/platforms/line/client.d.ts +31 -0
  242. package/dist/src/platforms/line/client.d.ts.map +1 -0
  243. package/dist/src/platforms/line/client.js +296 -0
  244. package/dist/src/platforms/line/client.js.map +1 -0
  245. package/dist/src/platforms/line/commands/auth.d.ts +3 -0
  246. package/dist/src/platforms/line/commands/auth.d.ts.map +1 -0
  247. package/dist/src/platforms/line/commands/auth.js +199 -0
  248. package/dist/src/platforms/line/commands/auth.js.map +1 -0
  249. package/dist/src/platforms/line/commands/chat.d.ts +3 -0
  250. package/dist/src/platforms/line/commands/chat.d.ts.map +1 -0
  251. package/dist/src/platforms/line/commands/chat.js +28 -0
  252. package/dist/src/platforms/line/commands/chat.js.map +1 -0
  253. package/dist/src/platforms/line/commands/friend.d.ts +3 -0
  254. package/dist/src/platforms/line/commands/friend.d.ts.map +1 -0
  255. package/dist/src/platforms/line/commands/friend.js +25 -0
  256. package/dist/src/platforms/line/commands/friend.js.map +1 -0
  257. package/dist/src/platforms/line/commands/index.d.ts +6 -0
  258. package/dist/src/platforms/line/commands/index.d.ts.map +1 -0
  259. package/dist/src/platforms/line/commands/index.js +6 -0
  260. package/dist/src/platforms/line/commands/index.js.map +1 -0
  261. package/dist/src/platforms/line/commands/message.d.ts +3 -0
  262. package/dist/src/platforms/line/commands/message.d.ts.map +1 -0
  263. package/dist/src/platforms/line/commands/message.js +48 -0
  264. package/dist/src/platforms/line/commands/message.js.map +1 -0
  265. package/dist/src/platforms/line/commands/profile.d.ts +3 -0
  266. package/dist/src/platforms/line/commands/profile.d.ts.map +1 -0
  267. package/dist/src/platforms/line/commands/profile.js +23 -0
  268. package/dist/src/platforms/line/commands/profile.js.map +1 -0
  269. package/dist/src/platforms/line/credential-manager.d.ts +22 -0
  270. package/dist/src/platforms/line/credential-manager.d.ts.map +1 -0
  271. package/dist/src/platforms/line/credential-manager.js +71 -0
  272. package/dist/src/platforms/line/credential-manager.js.map +1 -0
  273. package/dist/src/platforms/line/ensure-auth.d.ts +3 -0
  274. package/dist/src/platforms/line/ensure-auth.d.ts.map +1 -0
  275. package/dist/src/platforms/line/ensure-auth.js +10 -0
  276. package/dist/src/platforms/line/ensure-auth.js.map +1 -0
  277. package/dist/src/platforms/line/index.d.ts +7 -0
  278. package/dist/src/platforms/line/index.d.ts.map +1 -0
  279. package/dist/src/platforms/line/index.js +6 -0
  280. package/dist/src/platforms/line/index.js.map +1 -0
  281. package/dist/src/platforms/line/listener.d.ts +22 -0
  282. package/dist/src/platforms/line/listener.d.ts.map +1 -0
  283. package/dist/src/platforms/line/listener.js +121 -0
  284. package/dist/src/platforms/line/listener.js.map +1 -0
  285. package/dist/src/platforms/line/types.d.ts +165 -0
  286. package/dist/src/platforms/line/types.d.ts.map +1 -0
  287. package/dist/src/platforms/line/types.js +79 -0
  288. package/dist/src/platforms/line/types.js.map +1 -0
  289. package/dist/src/platforms/slack/cli.d.ts.map +1 -1
  290. package/dist/src/platforms/slack/cli.js +6 -1
  291. package/dist/src/platforms/slack/cli.js.map +1 -1
  292. package/dist/src/platforms/slack/client.d.ts +85 -3
  293. package/dist/src/platforms/slack/client.d.ts.map +1 -1
  294. package/dist/src/platforms/slack/client.js +577 -40
  295. package/dist/src/platforms/slack/client.js.map +1 -1
  296. package/dist/src/platforms/slack/commands/activity.js +1 -1
  297. package/dist/src/platforms/slack/commands/activity.js.map +1 -1
  298. package/dist/src/platforms/slack/commands/auth.js +2 -2
  299. package/dist/src/platforms/slack/commands/auth.js.map +1 -1
  300. package/dist/src/platforms/slack/commands/bookmark.d.ts +3 -0
  301. package/dist/src/platforms/slack/commands/bookmark.d.ts.map +1 -0
  302. package/dist/src/platforms/slack/commands/bookmark.js +116 -0
  303. package/dist/src/platforms/slack/commands/bookmark.js.map +1 -0
  304. package/dist/src/platforms/slack/commands/channel.d.ts.map +1 -1
  305. package/dist/src/platforms/slack/commands/channel.js +198 -5
  306. package/dist/src/platforms/slack/commands/channel.js.map +1 -1
  307. package/dist/src/platforms/slack/commands/drafts.js +1 -1
  308. package/dist/src/platforms/slack/commands/drafts.js.map +1 -1
  309. package/dist/src/platforms/slack/commands/emoji.d.ts +3 -0
  310. package/dist/src/platforms/slack/commands/emoji.d.ts.map +1 -0
  311. package/dist/src/platforms/slack/commands/emoji.js +27 -0
  312. package/dist/src/platforms/slack/commands/emoji.js.map +1 -0
  313. package/dist/src/platforms/slack/commands/file.d.ts.map +1 -1
  314. package/dist/src/platforms/slack/commands/file.js +26 -5
  315. package/dist/src/platforms/slack/commands/file.js.map +1 -1
  316. package/dist/src/platforms/slack/commands/index.d.ts +5 -0
  317. package/dist/src/platforms/slack/commands/index.d.ts.map +1 -1
  318. package/dist/src/platforms/slack/commands/index.js +5 -0
  319. package/dist/src/platforms/slack/commands/index.js.map +1 -1
  320. package/dist/src/platforms/slack/commands/message.d.ts.map +1 -1
  321. package/dist/src/platforms/slack/commands/message.js +134 -8
  322. package/dist/src/platforms/slack/commands/message.js.map +1 -1
  323. package/dist/src/platforms/slack/commands/pin.d.ts +3 -0
  324. package/dist/src/platforms/slack/commands/pin.d.ts.map +1 -0
  325. package/dist/src/platforms/slack/commands/pin.js +76 -0
  326. package/dist/src/platforms/slack/commands/pin.js.map +1 -0
  327. package/dist/src/platforms/slack/commands/reaction.js +3 -3
  328. package/dist/src/platforms/slack/commands/reaction.js.map +1 -1
  329. package/dist/src/platforms/slack/commands/reminder.d.ts +3 -0
  330. package/dist/src/platforms/slack/commands/reminder.d.ts.map +1 -0
  331. package/dist/src/platforms/slack/commands/reminder.js +98 -0
  332. package/dist/src/platforms/slack/commands/reminder.js.map +1 -0
  333. package/dist/src/platforms/slack/commands/saved.js +1 -1
  334. package/dist/src/platforms/slack/commands/saved.js.map +1 -1
  335. package/dist/src/platforms/slack/commands/sections.js +1 -1
  336. package/dist/src/platforms/slack/commands/sections.js.map +1 -1
  337. package/dist/src/platforms/slack/commands/snapshot.d.ts.map +1 -1
  338. package/dist/src/platforms/slack/commands/snapshot.js +12 -1
  339. package/dist/src/platforms/slack/commands/snapshot.js.map +1 -1
  340. package/dist/src/platforms/slack/commands/unread.js +3 -3
  341. package/dist/src/platforms/slack/commands/unread.js.map +1 -1
  342. package/dist/src/platforms/slack/commands/user.d.ts.map +1 -1
  343. package/dist/src/platforms/slack/commands/user.js +78 -1
  344. package/dist/src/platforms/slack/commands/user.js.map +1 -1
  345. package/dist/src/platforms/slack/commands/usergroup.d.ts +3 -0
  346. package/dist/src/platforms/slack/commands/usergroup.d.ts.map +1 -0
  347. package/dist/src/platforms/slack/commands/usergroup.js +190 -0
  348. package/dist/src/platforms/slack/commands/usergroup.js.map +1 -0
  349. package/dist/src/platforms/slack/credential-manager.d.ts +2 -1
  350. package/dist/src/platforms/slack/credential-manager.d.ts.map +1 -1
  351. package/dist/src/platforms/slack/credential-manager.js +2 -1
  352. package/dist/src/platforms/slack/credential-manager.js.map +1 -1
  353. package/dist/src/platforms/slack/ensure-auth.js +4 -4
  354. package/dist/src/platforms/slack/ensure-auth.js.map +1 -1
  355. package/dist/src/platforms/slack/index.d.ts +4 -1
  356. package/dist/src/platforms/slack/index.d.ts.map +1 -1
  357. package/dist/src/platforms/slack/index.js +3 -1
  358. package/dist/src/platforms/slack/index.js.map +1 -1
  359. package/dist/src/platforms/slack/listener.d.ts +30 -0
  360. package/dist/src/platforms/slack/listener.d.ts.map +1 -0
  361. package/dist/src/platforms/slack/listener.js +157 -0
  362. package/dist/src/platforms/slack/listener.js.map +1 -0
  363. package/dist/src/platforms/slack/types.d.ts +198 -275
  364. package/dist/src/platforms/slack/types.d.ts.map +1 -1
  365. package/dist/src/platforms/slack/types.js +22 -0
  366. package/dist/src/platforms/slack/types.js.map +1 -1
  367. package/dist/src/platforms/slackbot/client.d.ts +4 -1
  368. package/dist/src/platforms/slackbot/client.d.ts.map +1 -1
  369. package/dist/src/platforms/slackbot/client.js +40 -21
  370. package/dist/src/platforms/slackbot/client.js.map +1 -1
  371. package/dist/src/platforms/slackbot/commands/auth.js +2 -2
  372. package/dist/src/platforms/slackbot/commands/auth.js.map +1 -1
  373. package/dist/src/platforms/slackbot/commands/shared.js +1 -1
  374. package/dist/src/platforms/slackbot/commands/shared.js.map +1 -1
  375. package/dist/src/platforms/slackbot/types.d.ts +20 -282
  376. package/dist/src/platforms/slackbot/types.d.ts.map +1 -1
  377. package/dist/src/platforms/teams/client.d.ts +5 -1
  378. package/dist/src/platforms/teams/client.d.ts.map +1 -1
  379. package/dist/src/platforms/teams/client.js +27 -9
  380. package/dist/src/platforms/teams/client.js.map +1 -1
  381. package/dist/src/platforms/teams/commands/auth.js +3 -3
  382. package/dist/src/platforms/teams/commands/auth.js.map +1 -1
  383. package/dist/src/platforms/teams/commands/channel.js +3 -3
  384. package/dist/src/platforms/teams/commands/channel.js.map +1 -1
  385. package/dist/src/platforms/teams/commands/file.js +3 -3
  386. package/dist/src/platforms/teams/commands/file.js.map +1 -1
  387. package/dist/src/platforms/teams/commands/message.js +4 -4
  388. package/dist/src/platforms/teams/commands/message.js.map +1 -1
  389. package/dist/src/platforms/teams/commands/reaction.js +2 -2
  390. package/dist/src/platforms/teams/commands/reaction.js.map +1 -1
  391. package/dist/src/platforms/teams/commands/snapshot.js +1 -1
  392. package/dist/src/platforms/teams/commands/snapshot.js.map +1 -1
  393. package/dist/src/platforms/teams/commands/team.js +1 -1
  394. package/dist/src/platforms/teams/commands/team.js.map +1 -1
  395. package/dist/src/platforms/teams/commands/user.js +3 -3
  396. package/dist/src/platforms/teams/commands/user.js.map +1 -1
  397. package/dist/src/platforms/teams/ensure-auth.js +1 -1
  398. package/dist/src/platforms/teams/ensure-auth.js.map +1 -1
  399. package/dist/src/platforms/teams/index.d.ts +6 -0
  400. package/dist/src/platforms/teams/index.d.ts.map +1 -0
  401. package/dist/src/platforms/teams/index.js +5 -0
  402. package/dist/src/platforms/teams/index.js.map +1 -0
  403. package/dist/src/platforms/teams/types.d.ts +26 -193
  404. package/dist/src/platforms/teams/types.d.ts.map +1 -1
  405. package/dist/src/platforms/telegram/app-config.d.ts +7 -0
  406. package/dist/src/platforms/telegram/app-config.d.ts.map +1 -0
  407. package/dist/src/platforms/telegram/app-config.js +39 -0
  408. package/dist/src/platforms/telegram/app-config.js.map +1 -0
  409. package/dist/src/platforms/telegram/chat-utils.d.ts +5 -0
  410. package/dist/src/platforms/telegram/chat-utils.d.ts.map +1 -0
  411. package/dist/src/platforms/telegram/chat-utils.js +33 -0
  412. package/dist/src/platforms/telegram/chat-utils.js.map +1 -0
  413. package/dist/src/platforms/telegram/cli.d.ts +5 -0
  414. package/dist/src/platforms/telegram/cli.d.ts.map +1 -0
  415. package/dist/src/platforms/telegram/cli.js +15 -0
  416. package/dist/src/platforms/telegram/cli.js.map +1 -0
  417. package/dist/src/platforms/telegram/client.d.ts +47 -0
  418. package/dist/src/platforms/telegram/client.d.ts.map +1 -0
  419. package/dist/src/platforms/telegram/client.js +481 -0
  420. package/dist/src/platforms/telegram/client.js.map +1 -0
  421. package/dist/src/platforms/telegram/commands/auth.d.ts +44 -0
  422. package/dist/src/platforms/telegram/commands/auth.d.ts.map +1 -0
  423. package/dist/src/platforms/telegram/commands/auth.js +522 -0
  424. package/dist/src/platforms/telegram/commands/auth.js.map +1 -0
  425. package/dist/src/platforms/telegram/commands/chat.d.ts +3 -0
  426. package/dist/src/platforms/telegram/commands/chat.d.ts.map +1 -0
  427. package/dist/src/platforms/telegram/commands/chat.js +55 -0
  428. package/dist/src/platforms/telegram/commands/chat.js.map +1 -0
  429. package/dist/src/platforms/telegram/commands/index.d.ts +4 -0
  430. package/dist/src/platforms/telegram/commands/index.d.ts.map +1 -0
  431. package/dist/src/platforms/telegram/commands/index.js +4 -0
  432. package/dist/src/platforms/telegram/commands/index.js.map +1 -0
  433. package/dist/src/platforms/telegram/commands/message.d.ts +3 -0
  434. package/dist/src/platforms/telegram/commands/message.d.ts.map +1 -0
  435. package/dist/src/platforms/telegram/commands/message.js +40 -0
  436. package/dist/src/platforms/telegram/commands/message.js.map +1 -0
  437. package/dist/src/platforms/telegram/commands/shared.d.ts +10 -0
  438. package/dist/src/platforms/telegram/commands/shared.d.ts.map +1 -0
  439. package/dist/src/platforms/telegram/commands/shared.js +32 -0
  440. package/dist/src/platforms/telegram/commands/shared.js.map +1 -0
  441. package/dist/src/platforms/telegram/credential-manager.d.ts +25 -0
  442. package/dist/src/platforms/telegram/credential-manager.d.ts.map +1 -0
  443. package/dist/src/platforms/telegram/credential-manager.js +159 -0
  444. package/dist/src/platforms/telegram/credential-manager.js.map +1 -0
  445. package/dist/src/platforms/telegram/my-telegram-org.d.ts +14 -0
  446. package/dist/src/platforms/telegram/my-telegram-org.d.ts.map +1 -0
  447. package/dist/src/platforms/telegram/my-telegram-org.js +164 -0
  448. package/dist/src/platforms/telegram/my-telegram-org.js.map +1 -0
  449. package/dist/src/platforms/telegram/tdlib.d.ts +11 -0
  450. package/dist/src/platforms/telegram/tdlib.d.ts.map +1 -0
  451. package/dist/src/platforms/telegram/tdlib.js +113 -0
  452. package/dist/src/platforms/telegram/tdlib.js.map +1 -0
  453. package/dist/src/platforms/telegram/types.d.ts +192 -0
  454. package/dist/src/platforms/telegram/types.d.ts.map +1 -0
  455. package/dist/src/platforms/telegram/types.js +183 -0
  456. package/dist/src/platforms/telegram/types.js.map +1 -0
  457. package/dist/src/platforms/whatsapp/cli.d.ts +6 -0
  458. package/dist/src/platforms/whatsapp/cli.d.ts.map +1 -0
  459. package/dist/src/platforms/whatsapp/cli.js +31 -0
  460. package/dist/src/platforms/whatsapp/cli.js.map +1 -0
  461. package/dist/src/platforms/whatsapp/client.d.ts +39 -0
  462. package/dist/src/platforms/whatsapp/client.d.ts.map +1 -0
  463. package/dist/src/platforms/whatsapp/client.js +436 -0
  464. package/dist/src/platforms/whatsapp/client.js.map +1 -0
  465. package/dist/src/platforms/whatsapp/commands/auth.d.ts +3 -0
  466. package/dist/src/platforms/whatsapp/commands/auth.d.ts.map +1 -0
  467. package/dist/src/platforms/whatsapp/commands/auth.js +170 -0
  468. package/dist/src/platforms/whatsapp/commands/auth.js.map +1 -0
  469. package/dist/src/platforms/whatsapp/commands/chat.d.ts +3 -0
  470. package/dist/src/platforms/whatsapp/commands/chat.d.ts.map +1 -0
  471. package/dist/src/platforms/whatsapp/commands/chat.js +42 -0
  472. package/dist/src/platforms/whatsapp/commands/chat.js.map +1 -0
  473. package/dist/src/platforms/whatsapp/commands/index.d.ts +4 -0
  474. package/dist/src/platforms/whatsapp/commands/index.d.ts.map +1 -0
  475. package/dist/src/platforms/whatsapp/commands/index.js +4 -0
  476. package/dist/src/platforms/whatsapp/commands/index.js.map +1 -0
  477. package/dist/src/platforms/whatsapp/commands/message.d.ts +3 -0
  478. package/dist/src/platforms/whatsapp/commands/message.d.ts.map +1 -0
  479. package/dist/src/platforms/whatsapp/commands/message.js +61 -0
  480. package/dist/src/platforms/whatsapp/commands/message.js.map +1 -0
  481. package/dist/src/platforms/whatsapp/commands/shared.d.ts +8 -0
  482. package/dist/src/platforms/whatsapp/commands/shared.d.ts.map +1 -0
  483. package/dist/src/platforms/whatsapp/commands/shared.js +37 -0
  484. package/dist/src/platforms/whatsapp/commands/shared.js.map +1 -0
  485. package/dist/src/platforms/whatsapp/credential-manager.d.ts +20 -0
  486. package/dist/src/platforms/whatsapp/credential-manager.d.ts.map +1 -0
  487. package/dist/src/platforms/whatsapp/credential-manager.js +104 -0
  488. package/dist/src/platforms/whatsapp/credential-manager.js.map +1 -0
  489. package/dist/src/platforms/whatsapp/ensure-auth.d.ts +2 -0
  490. package/dist/src/platforms/whatsapp/ensure-auth.d.ts.map +1 -0
  491. package/dist/src/platforms/whatsapp/ensure-auth.js +23 -0
  492. package/dist/src/platforms/whatsapp/ensure-auth.js.map +1 -0
  493. package/dist/src/platforms/whatsapp/index.d.ts +4 -0
  494. package/dist/src/platforms/whatsapp/index.d.ts.map +1 -0
  495. package/dist/src/platforms/whatsapp/index.js +4 -0
  496. package/dist/src/platforms/whatsapp/index.js.map +1 -0
  497. package/dist/src/platforms/whatsapp/suppress-ws-warnings.d.ts +11 -0
  498. package/dist/src/platforms/whatsapp/suppress-ws-warnings.d.ts.map +1 -0
  499. package/dist/src/platforms/whatsapp/suppress-ws-warnings.js +24 -0
  500. package/dist/src/platforms/whatsapp/suppress-ws-warnings.js.map +1 -0
  501. package/dist/src/platforms/whatsapp/types.d.ts +42 -0
  502. package/dist/src/platforms/whatsapp/types.d.ts.map +1 -0
  503. package/dist/src/platforms/whatsapp/types.js +75 -0
  504. package/dist/src/platforms/whatsapp/types.js.map +1 -0
  505. package/dist/src/platforms/whatsappbot/cli.d.ts +5 -0
  506. package/dist/src/platforms/whatsappbot/cli.d.ts.map +1 -0
  507. package/dist/src/platforms/whatsappbot/cli.js +17 -0
  508. package/dist/src/platforms/whatsappbot/cli.js.map +1 -0
  509. package/dist/src/platforms/whatsappbot/client.d.ts +31 -0
  510. package/dist/src/platforms/whatsappbot/client.d.ts.map +1 -0
  511. package/dist/src/platforms/whatsappbot/client.js +202 -0
  512. package/dist/src/platforms/whatsappbot/client.js.map +1 -0
  513. package/dist/src/platforms/whatsappbot/commands/auth.d.ts +28 -0
  514. package/dist/src/platforms/whatsappbot/commands/auth.d.ts.map +1 -0
  515. package/dist/src/platforms/whatsappbot/commands/auth.js +163 -0
  516. package/dist/src/platforms/whatsappbot/commands/auth.js.map +1 -0
  517. package/dist/src/platforms/whatsappbot/commands/index.d.ts +4 -0
  518. package/dist/src/platforms/whatsappbot/commands/index.d.ts.map +1 -0
  519. package/dist/src/platforms/whatsappbot/commands/index.js +4 -0
  520. package/dist/src/platforms/whatsappbot/commands/index.js.map +1 -0
  521. package/dist/src/platforms/whatsappbot/commands/message.d.ts +27 -0
  522. package/dist/src/platforms/whatsappbot/commands/message.d.ts.map +1 -0
  523. package/dist/src/platforms/whatsappbot/commands/message.js +122 -0
  524. package/dist/src/platforms/whatsappbot/commands/message.js.map +1 -0
  525. package/dist/src/platforms/whatsappbot/commands/shared.d.ts +9 -0
  526. package/dist/src/platforms/whatsappbot/commands/shared.d.ts.map +1 -0
  527. package/dist/src/platforms/whatsappbot/commands/shared.js +13 -0
  528. package/dist/src/platforms/whatsappbot/commands/shared.js.map +1 -0
  529. package/dist/src/platforms/whatsappbot/commands/template.d.ts +16 -0
  530. package/dist/src/platforms/whatsappbot/commands/template.d.ts.map +1 -0
  531. package/dist/src/platforms/whatsappbot/commands/template.js +51 -0
  532. package/dist/src/platforms/whatsappbot/commands/template.js.map +1 -0
  533. package/dist/src/platforms/whatsappbot/credential-manager.d.ts +17 -0
  534. package/dist/src/platforms/whatsappbot/credential-manager.d.ts.map +1 -0
  535. package/dist/src/platforms/whatsappbot/credential-manager.js +121 -0
  536. package/dist/src/platforms/whatsappbot/credential-manager.js.map +1 -0
  537. package/dist/src/platforms/whatsappbot/index.d.ts +5 -0
  538. package/dist/src/platforms/whatsappbot/index.d.ts.map +1 -0
  539. package/dist/src/platforms/whatsappbot/index.js +4 -0
  540. package/dist/src/platforms/whatsappbot/index.js.map +1 -0
  541. package/dist/src/platforms/whatsappbot/types.d.ts +66 -0
  542. package/dist/src/platforms/whatsappbot/types.d.ts.map +1 -0
  543. package/dist/src/platforms/whatsappbot/types.js +28 -0
  544. package/dist/src/platforms/whatsappbot/types.js.map +1 -0
  545. package/dist/src/tui/adapters/channeltalk-adapter.d.ts +19 -0
  546. package/dist/src/tui/adapters/channeltalk-adapter.d.ts.map +1 -0
  547. package/dist/src/tui/adapters/channeltalk-adapter.js +88 -0
  548. package/dist/src/tui/adapters/channeltalk-adapter.js.map +1 -0
  549. package/dist/src/tui/adapters/discord-adapter.d.ts +22 -0
  550. package/dist/src/tui/adapters/discord-adapter.d.ts.map +1 -0
  551. package/dist/src/tui/adapters/discord-adapter.js +100 -0
  552. package/dist/src/tui/adapters/discord-adapter.js.map +1 -0
  553. package/dist/src/tui/adapters/instagram-adapter.d.ts +18 -0
  554. package/dist/src/tui/adapters/instagram-adapter.d.ts.map +1 -0
  555. package/dist/src/tui/adapters/instagram-adapter.js +115 -0
  556. package/dist/src/tui/adapters/instagram-adapter.js.map +1 -0
  557. package/dist/src/tui/adapters/kakaotalk-adapter.d.ts +18 -0
  558. package/dist/src/tui/adapters/kakaotalk-adapter.d.ts.map +1 -0
  559. package/dist/src/tui/adapters/kakaotalk-adapter.js +146 -0
  560. package/dist/src/tui/adapters/kakaotalk-adapter.js.map +1 -0
  561. package/dist/src/tui/adapters/line-adapter.d.ts +18 -0
  562. package/dist/src/tui/adapters/line-adapter.d.ts.map +1 -0
  563. package/dist/src/tui/adapters/line-adapter.js +92 -0
  564. package/dist/src/tui/adapters/line-adapter.js.map +1 -0
  565. package/dist/src/tui/adapters/slack-adapter.d.ts +23 -0
  566. package/dist/src/tui/adapters/slack-adapter.d.ts.map +1 -0
  567. package/dist/src/tui/adapters/slack-adapter.js +111 -0
  568. package/dist/src/tui/adapters/slack-adapter.js.map +1 -0
  569. package/dist/src/tui/adapters/teams-adapter.d.ts +20 -0
  570. package/dist/src/tui/adapters/teams-adapter.d.ts.map +1 -0
  571. package/dist/src/tui/adapters/teams-adapter.js +85 -0
  572. package/dist/src/tui/adapters/teams-adapter.js.map +1 -0
  573. package/dist/src/tui/adapters/telegram-adapter.d.ts +18 -0
  574. package/dist/src/tui/adapters/telegram-adapter.d.ts.map +1 -0
  575. package/dist/src/tui/adapters/telegram-adapter.js +183 -0
  576. package/dist/src/tui/adapters/telegram-adapter.js.map +1 -0
  577. package/dist/src/tui/adapters/types.d.ts +41 -0
  578. package/dist/src/tui/adapters/types.d.ts.map +1 -0
  579. package/dist/src/tui/adapters/types.js +2 -0
  580. package/dist/src/tui/adapters/types.js.map +1 -0
  581. package/dist/src/tui/adapters/whatsapp-adapter.d.ts +18 -0
  582. package/dist/src/tui/adapters/whatsapp-adapter.d.ts.map +1 -0
  583. package/dist/src/tui/adapters/whatsapp-adapter.js +120 -0
  584. package/dist/src/tui/adapters/whatsapp-adapter.js.map +1 -0
  585. package/dist/src/tui/app.d.ts +2 -0
  586. package/dist/src/tui/app.d.ts.map +1 -0
  587. package/dist/src/tui/app.js +652 -0
  588. package/dist/src/tui/app.js.map +1 -0
  589. package/dist/src/tui/cli.d.ts +3 -0
  590. package/dist/src/tui/cli.d.ts.map +1 -0
  591. package/dist/src/tui/cli.js +14 -0
  592. package/dist/src/tui/cli.js.map +1 -0
  593. package/dist/src/tui/utils.d.ts +5 -0
  594. package/dist/src/tui/utils.d.ts.map +1 -0
  595. package/dist/src/tui/utils.js +54 -0
  596. package/dist/src/tui/utils.js.map +1 -0
  597. package/dist/src/tui/views/channel-picker.d.ts +18 -0
  598. package/dist/src/tui/views/channel-picker.d.ts.map +1 -0
  599. package/dist/src/tui/views/channel-picker.js +131 -0
  600. package/dist/src/tui/views/channel-picker.js.map +1 -0
  601. package/dist/src/tui/views/workspace-picker.d.ts +18 -0
  602. package/dist/src/tui/views/workspace-picker.d.ts.map +1 -0
  603. package/dist/src/tui/views/workspace-picker.js +131 -0
  604. package/dist/src/tui/views/workspace-picker.js.map +1 -0
  605. package/docs/bun.lock +2 -666
  606. package/docs/content/docs/agent-skills.mdx +1 -1
  607. package/docs/content/docs/cli/channeltalk.mdx +264 -0
  608. package/docs/content/docs/cli/channeltalkbot.mdx +261 -0
  609. package/docs/content/docs/cli/instagram.mdx +211 -0
  610. package/docs/content/docs/cli/kakaotalk.mdx +286 -0
  611. package/docs/content/docs/cli/line.mdx +306 -0
  612. package/docs/content/docs/cli/meta.json +18 -0
  613. package/docs/content/docs/cli/slack.mdx +395 -0
  614. package/docs/content/docs/{integrations → cli}/slackbot.mdx +1 -1
  615. package/docs/content/docs/{integrations → cli}/teams.mdx +2 -2
  616. package/docs/content/docs/cli/telegram.mdx +107 -0
  617. package/docs/content/docs/cli/whatsapp.mdx +163 -0
  618. package/docs/content/docs/cli/whatsappbot.mdx +169 -0
  619. package/docs/content/docs/index.mdx +21 -13
  620. package/docs/content/docs/meta.json +9 -1
  621. package/docs/content/docs/quick-start.mdx +29 -6
  622. package/docs/content/docs/sdk/channeltalk.mdx +384 -0
  623. package/docs/content/docs/sdk/channeltalkbot.mdx +395 -0
  624. package/docs/content/docs/sdk/discord.mdx +535 -0
  625. package/docs/content/docs/sdk/instagram.mdx +367 -0
  626. package/docs/content/docs/sdk/kakaotalk.mdx +290 -0
  627. package/docs/content/docs/sdk/line.mdx +347 -0
  628. package/docs/content/docs/sdk/meta.json +4 -0
  629. package/docs/content/docs/sdk/slack.mdx +671 -0
  630. package/docs/content/docs/sdk/teams.mdx +350 -0
  631. package/docs/content/docs/sdk/whatsapp.mdx +293 -0
  632. package/docs/content/docs/sdk/whatsappbot.mdx +266 -0
  633. package/docs/content/docs/tui.mdx +137 -0
  634. package/docs/public/tui.png +0 -0
  635. package/docs/src/app/page.tsx +885 -308
  636. package/e2e/discordbot.e2e.test.ts +1 -1
  637. package/examples/discord-listen.ts +56 -0
  638. package/examples/kakaotalk-listen.ts +49 -0
  639. package/examples/slack-listen.ts +60 -0
  640. package/package.json +118 -9
  641. package/scripts/postbuild.ts +1 -0
  642. package/scripts/prepublish.ts +21 -1
  643. package/skills/agent-channeltalk/SKILL.md +18 -6
  644. package/skills/agent-channeltalkbot/SKILL.md +1 -1
  645. package/skills/agent-discord/SKILL.md +77 -2
  646. package/skills/agent-discord/references/common-patterns.md +1 -1
  647. package/skills/agent-discordbot/SKILL.md +1 -1
  648. package/skills/agent-instagram/SKILL.md +383 -0
  649. package/skills/agent-instagram/references/authentication.md +256 -0
  650. package/skills/agent-instagram/references/common-patterns.md +362 -0
  651. package/skills/agent-instagram/templates/chat-summary.sh +124 -0
  652. package/skills/agent-instagram/templates/monitor-chat.sh +143 -0
  653. package/skills/agent-instagram/templates/post-message.sh +130 -0
  654. package/skills/agent-kakaotalk/SKILL.md +587 -0
  655. package/skills/agent-kakaotalk/references/authentication.md +343 -0
  656. package/skills/agent-kakaotalk/references/common-patterns.md +403 -0
  657. package/skills/agent-kakaotalk/templates/chat-summary.sh +121 -0
  658. package/skills/agent-kakaotalk/templates/monitor-chat.sh +160 -0
  659. package/skills/agent-kakaotalk/templates/post-message.sh +123 -0
  660. package/skills/agent-line/SKILL.md +490 -0
  661. package/skills/agent-line/references/authentication.md +297 -0
  662. package/skills/agent-line/references/common-patterns.md +355 -0
  663. package/skills/agent-line/templates/chat-summary.sh +63 -0
  664. package/skills/agent-line/templates/monitor-chat.sh +76 -0
  665. package/skills/agent-line/templates/post-message.sh +123 -0
  666. package/skills/agent-slack/SKILL.md +266 -7
  667. package/skills/agent-slack/references/common-patterns.md +105 -39
  668. package/skills/agent-slackbot/SKILL.md +1 -1
  669. package/skills/agent-slackbot/references/common-patterns.md +52 -0
  670. package/skills/agent-teams/SKILL.md +49 -1
  671. package/skills/agent-telegram/SKILL.md +123 -0
  672. package/skills/agent-whatsapp/SKILL.md +382 -0
  673. package/skills/agent-whatsapp/references/authentication.md +191 -0
  674. package/skills/agent-whatsapp/references/common-patterns.md +336 -0
  675. package/skills/agent-whatsapp/templates/chat-summary.sh +122 -0
  676. package/skills/agent-whatsapp/templates/monitor-chat.sh +157 -0
  677. package/skills/agent-whatsapp/templates/post-message.sh +120 -0
  678. package/skills/agent-whatsappbot/SKILL.md +371 -0
  679. package/skills/agent-whatsappbot/references/authentication.md +216 -0
  680. package/skills/agent-whatsappbot/references/common-patterns.md +331 -0
  681. package/skills/agent-whatsappbot/templates/account-summary.sh +127 -0
  682. package/skills/agent-whatsappbot/templates/post-message.sh +120 -0
  683. package/skills/agent-whatsappbot/templates/send-template.sh +153 -0
  684. package/src/cli.ts +34 -6
  685. package/src/platforms/channeltalk/client.test.ts +30 -28
  686. package/src/platforms/channeltalk/client.ts +29 -8
  687. package/src/platforms/channeltalk/commands/auth.ts +9 -7
  688. package/src/platforms/channeltalk/commands/shared.ts +1 -1
  689. package/src/platforms/channeltalk/ensure-auth.ts +10 -8
  690. package/src/platforms/channeltalk/index.test.ts +114 -0
  691. package/src/platforms/channeltalk/index.ts +27 -14
  692. package/src/platforms/channeltalk/token-extractor.test.ts +227 -65
  693. package/src/platforms/channeltalk/token-extractor.ts +146 -25
  694. package/src/platforms/channeltalk/types.ts +3 -1
  695. package/src/platforms/channeltalkbot/client.test.ts +12 -12
  696. package/src/platforms/channeltalkbot/client.ts +31 -11
  697. package/src/platforms/channeltalkbot/commands/auth.test.ts +1 -5
  698. package/src/platforms/channeltalkbot/commands/auth.ts +2 -2
  699. package/src/platforms/channeltalkbot/commands/shared.ts +1 -1
  700. package/src/platforms/channeltalkbot/index.test.ts +76 -0
  701. package/src/platforms/channeltalkbot/index.ts +14 -11
  702. package/src/platforms/discord/client.test.ts +30 -30
  703. package/src/platforms/discord/client.ts +33 -6
  704. package/src/platforms/discord/commands/auth.test.ts +2 -2
  705. package/src/platforms/discord/commands/auth.ts +2 -2
  706. package/src/platforms/discord/commands/channel.test.ts +6 -6
  707. package/src/platforms/discord/commands/channel.ts +3 -3
  708. package/src/platforms/discord/commands/dm.ts +2 -2
  709. package/src/platforms/discord/commands/file.ts +3 -3
  710. package/src/platforms/discord/commands/friend.test.ts +5 -5
  711. package/src/platforms/discord/commands/friend.ts +1 -1
  712. package/src/platforms/discord/commands/member.test.ts +4 -4
  713. package/src/platforms/discord/commands/member.ts +1 -1
  714. package/src/platforms/discord/commands/mention.test.ts +4 -4
  715. package/src/platforms/discord/commands/mention.ts +1 -1
  716. package/src/platforms/discord/commands/message.ts +6 -6
  717. package/src/platforms/discord/commands/note.ts +2 -2
  718. package/src/platforms/discord/commands/profile.ts +1 -1
  719. package/src/platforms/discord/commands/reaction.ts +3 -3
  720. package/src/platforms/discord/commands/server.test.ts +2 -2
  721. package/src/platforms/discord/commands/server.ts +1 -1
  722. package/src/platforms/discord/commands/snapshot.ts +1 -1
  723. package/src/platforms/discord/commands/thread.test.ts +5 -5
  724. package/src/platforms/discord/commands/thread.ts +2 -2
  725. package/src/platforms/discord/commands/user.ts +3 -3
  726. package/src/platforms/discord/ensure-auth.ts +1 -1
  727. package/src/platforms/discord/index.test.ts +84 -0
  728. package/src/platforms/discord/index.ts +51 -0
  729. package/src/platforms/discord/listener.test.ts +782 -0
  730. package/src/platforms/discord/listener.ts +297 -0
  731. package/src/platforms/discord/types.ts +133 -0
  732. package/src/platforms/discordbot/client.test.ts +33 -33
  733. package/src/platforms/discordbot/client.ts +28 -7
  734. package/src/platforms/discordbot/commands/auth.test.ts +1 -5
  735. package/src/platforms/discordbot/commands/auth.ts +2 -2
  736. package/src/platforms/discordbot/commands/channel.test.ts +1 -5
  737. package/src/platforms/discordbot/commands/message.test.ts +1 -3
  738. package/src/platforms/discordbot/commands/server.test.ts +1 -5
  739. package/src/platforms/discordbot/commands/shared.ts +1 -1
  740. package/src/platforms/discordbot/commands/snapshot.test.ts +1 -3
  741. package/src/platforms/discordbot/commands/thread.test.ts +1 -3
  742. package/src/platforms/discordbot/commands/user.test.ts +1 -5
  743. package/src/platforms/instagram/cli.ts +37 -0
  744. package/src/platforms/instagram/client.test.ts +396 -0
  745. package/src/platforms/instagram/client.ts +655 -0
  746. package/src/platforms/instagram/commands/auth.ts +401 -0
  747. package/src/platforms/instagram/commands/chat.ts +49 -0
  748. package/src/platforms/instagram/commands/index.ts +3 -0
  749. package/src/platforms/instagram/commands/message.ts +134 -0
  750. package/src/platforms/instagram/commands/shared.test.ts +51 -0
  751. package/src/platforms/instagram/commands/shared.ts +55 -0
  752. package/src/platforms/instagram/credential-manager.test.ts +277 -0
  753. package/src/platforms/instagram/credential-manager.ts +134 -0
  754. package/src/platforms/instagram/ensure-auth.test.ts +84 -0
  755. package/src/platforms/instagram/ensure-auth.ts +24 -0
  756. package/src/platforms/instagram/index.test.ts +44 -0
  757. package/src/platforms/instagram/index.ts +16 -0
  758. package/src/platforms/instagram/listener.test.ts +130 -0
  759. package/src/platforms/instagram/listener.ts +106 -0
  760. package/src/platforms/instagram/types.test.ts +228 -0
  761. package/src/platforms/instagram/types.ts +153 -0
  762. package/src/platforms/kakaotalk/auth/kakao-login.ts +296 -0
  763. package/src/platforms/kakaotalk/cli.ts +37 -0
  764. package/src/platforms/kakaotalk/client.test.ts +490 -0
  765. package/src/platforms/kakaotalk/client.ts +328 -0
  766. package/src/platforms/kakaotalk/commands/auth.ts +569 -0
  767. package/src/platforms/kakaotalk/commands/chat.ts +34 -0
  768. package/src/platforms/kakaotalk/commands/index.ts +3 -0
  769. package/src/platforms/kakaotalk/commands/message.ts +56 -0
  770. package/src/platforms/kakaotalk/commands/shared.ts +38 -0
  771. package/src/platforms/kakaotalk/credential-manager.test.ts +231 -0
  772. package/src/platforms/kakaotalk/credential-manager.ts +110 -0
  773. package/src/platforms/kakaotalk/ensure-auth.ts +16 -0
  774. package/src/platforms/kakaotalk/index.test.ts +68 -0
  775. package/src/platforms/kakaotalk/index.ts +30 -0
  776. package/src/platforms/kakaotalk/listener.test.ts +370 -0
  777. package/src/platforms/kakaotalk/listener.ts +203 -0
  778. package/src/platforms/kakaotalk/protocol/NOTICE.md +51 -0
  779. package/src/platforms/kakaotalk/protocol/config.ts +28 -0
  780. package/src/platforms/kakaotalk/protocol/connection.ts +159 -0
  781. package/src/platforms/kakaotalk/protocol/crypto.ts +71 -0
  782. package/src/platforms/kakaotalk/protocol/packet.ts +47 -0
  783. package/src/platforms/kakaotalk/protocol/session.ts +156 -0
  784. package/src/platforms/kakaotalk/protocol/types.ts +42 -0
  785. package/src/platforms/kakaotalk/token-extractor.ts +320 -0
  786. package/src/platforms/kakaotalk/types.ts +212 -0
  787. package/src/platforms/line/cli.ts +39 -0
  788. package/src/platforms/line/client.test.ts +162 -0
  789. package/src/platforms/line/client.ts +352 -0
  790. package/src/platforms/line/commands/auth.ts +219 -0
  791. package/src/platforms/line/commands/chat.ts +34 -0
  792. package/src/platforms/line/commands/friend.ts +28 -0
  793. package/src/platforms/line/commands/index.ts +5 -0
  794. package/src/platforms/line/commands/message.ts +59 -0
  795. package/src/platforms/line/commands/profile.ts +24 -0
  796. package/src/platforms/line/credential-manager.test.ts +163 -0
  797. package/src/platforms/line/credential-manager.ts +99 -0
  798. package/src/platforms/line/ensure-auth.ts +13 -0
  799. package/src/platforms/line/index.test.ts +48 -0
  800. package/src/platforms/line/index.ts +27 -0
  801. package/src/platforms/line/listener.test.ts +341 -0
  802. package/src/platforms/line/listener.ts +138 -0
  803. package/src/platforms/line/types.test.ts +157 -0
  804. package/src/platforms/line/types.ts +181 -0
  805. package/src/platforms/slack/cli.ts +10 -0
  806. package/src/platforms/slack/client.test.ts +703 -69
  807. package/src/platforms/slack/client.ts +664 -43
  808. package/src/platforms/slack/commands/activity.ts +1 -1
  809. package/src/platforms/slack/commands/auth.ts +2 -2
  810. package/src/platforms/slack/commands/bookmark.test.ts +91 -0
  811. package/src/platforms/slack/commands/bookmark.ts +148 -0
  812. package/src/platforms/slack/commands/channel.test.ts +47 -1
  813. package/src/platforms/slack/commands/channel.ts +255 -4
  814. package/src/platforms/slack/commands/drafts.ts +1 -1
  815. package/src/platforms/slack/commands/emoji.test.ts +32 -0
  816. package/src/platforms/slack/commands/emoji.ts +33 -0
  817. package/src/platforms/slack/commands/file.ts +30 -4
  818. package/src/platforms/slack/commands/index.ts +5 -0
  819. package/src/platforms/slack/commands/message.ts +173 -7
  820. package/src/platforms/slack/commands/pin.test.ts +72 -0
  821. package/src/platforms/slack/commands/pin.ts +93 -0
  822. package/src/platforms/slack/commands/reaction.ts +3 -3
  823. package/src/platforms/slack/commands/reminder.test.ts +86 -0
  824. package/src/platforms/slack/commands/reminder.ts +125 -0
  825. package/src/platforms/slack/commands/saved.ts +1 -1
  826. package/src/platforms/slack/commands/sections.ts +1 -1
  827. package/src/platforms/slack/commands/snapshot.test.ts +4 -4
  828. package/src/platforms/slack/commands/snapshot.ts +14 -1
  829. package/src/platforms/slack/commands/unread.test.ts +3 -3
  830. package/src/platforms/slack/commands/unread.ts +3 -3
  831. package/src/platforms/slack/commands/user.ts +90 -1
  832. package/src/platforms/slack/commands/usergroup.test.ts +157 -0
  833. package/src/platforms/slack/commands/usergroup.ts +242 -0
  834. package/src/platforms/slack/credential-manager.ts +3 -1
  835. package/src/platforms/slack/ensure-auth.ts +4 -4
  836. package/src/platforms/slack/index.test.ts +59 -0
  837. package/src/platforms/slack/index.ts +46 -1
  838. package/src/platforms/slack/listener.test.ts +370 -0
  839. package/src/platforms/slack/listener.ts +181 -0
  840. package/src/platforms/slack/types.ts +187 -0
  841. package/src/platforms/slackbot/client.test.ts +26 -26
  842. package/src/platforms/slackbot/client.ts +40 -22
  843. package/src/platforms/slackbot/commands/auth.test.ts +1 -5
  844. package/src/platforms/slackbot/commands/auth.ts +2 -2
  845. package/src/platforms/slackbot/commands/shared.ts +1 -1
  846. package/src/platforms/teams/client.test.ts +34 -34
  847. package/src/platforms/teams/client.ts +32 -9
  848. package/src/platforms/teams/commands/auth.test.ts +2 -2
  849. package/src/platforms/teams/commands/auth.ts +3 -3
  850. package/src/platforms/teams/commands/channel.test.ts +6 -6
  851. package/src/platforms/teams/commands/channel.ts +3 -3
  852. package/src/platforms/teams/commands/file.ts +3 -3
  853. package/src/platforms/teams/commands/message.ts +4 -4
  854. package/src/platforms/teams/commands/reaction.ts +2 -2
  855. package/src/platforms/teams/commands/snapshot.ts +1 -1
  856. package/src/platforms/teams/commands/team.test.ts +2 -2
  857. package/src/platforms/teams/commands/team.ts +1 -1
  858. package/src/platforms/teams/commands/user.ts +3 -3
  859. package/src/platforms/teams/ensure-auth.ts +1 -1
  860. package/src/platforms/teams/index.test.ts +74 -0
  861. package/src/platforms/teams/index.ts +30 -0
  862. package/src/platforms/telegram/app-config.test.ts +44 -0
  863. package/src/platforms/telegram/app-config.ts +53 -0
  864. package/src/platforms/telegram/chat-utils.test.ts +71 -0
  865. package/src/platforms/telegram/chat-utils.ts +39 -0
  866. package/src/platforms/telegram/cli.ts +20 -0
  867. package/src/platforms/telegram/client.test.ts +90 -0
  868. package/src/platforms/telegram/client.ts +623 -0
  869. package/src/platforms/telegram/commands/auth.test.ts +113 -0
  870. package/src/platforms/telegram/commands/auth.ts +662 -0
  871. package/src/platforms/telegram/commands/chat.ts +65 -0
  872. package/src/platforms/telegram/commands/index.ts +3 -0
  873. package/src/platforms/telegram/commands/message.ts +51 -0
  874. package/src/platforms/telegram/commands/shared.test.ts +15 -0
  875. package/src/platforms/telegram/commands/shared.ts +50 -0
  876. package/src/platforms/telegram/credential-manager.test.ts +152 -0
  877. package/src/platforms/telegram/credential-manager.ts +203 -0
  878. package/src/platforms/telegram/my-telegram-org.ts +206 -0
  879. package/src/platforms/telegram/tdlib.ts +159 -0
  880. package/src/platforms/telegram/types.test.ts +74 -0
  881. package/src/platforms/telegram/types.ts +417 -0
  882. package/src/platforms/whatsapp/cli.ts +38 -0
  883. package/src/platforms/whatsapp/client.ts +526 -0
  884. package/src/platforms/whatsapp/commands/auth.ts +205 -0
  885. package/src/platforms/whatsapp/commands/chat.ts +49 -0
  886. package/src/platforms/whatsapp/commands/index.ts +3 -0
  887. package/src/platforms/whatsapp/commands/message.ts +79 -0
  888. package/src/platforms/whatsapp/commands/shared.ts +61 -0
  889. package/src/platforms/whatsapp/credential-manager.test.ts +278 -0
  890. package/src/platforms/whatsapp/credential-manager.ts +134 -0
  891. package/src/platforms/whatsapp/ensure-auth.test.ts +85 -0
  892. package/src/platforms/whatsapp/ensure-auth.ts +26 -0
  893. package/src/platforms/whatsapp/index.test.ts +39 -0
  894. package/src/platforms/whatsapp/index.ts +16 -0
  895. package/src/platforms/whatsapp/suppress-ws-warnings.ts +21 -0
  896. package/src/platforms/whatsapp/types.test.ts +190 -0
  897. package/src/platforms/whatsapp/types.ts +95 -0
  898. package/src/platforms/whatsappbot/cli.ts +23 -0
  899. package/src/platforms/whatsappbot/client.test.ts +411 -0
  900. package/src/platforms/whatsappbot/client.ts +256 -0
  901. package/src/platforms/whatsappbot/commands/auth.ts +206 -0
  902. package/src/platforms/whatsappbot/commands/index.ts +3 -0
  903. package/src/platforms/whatsappbot/commands/message.ts +148 -0
  904. package/src/platforms/whatsappbot/commands/shared.ts +22 -0
  905. package/src/platforms/whatsappbot/commands/template.ts +69 -0
  906. package/src/platforms/whatsappbot/credential-manager.test.ts +303 -0
  907. package/src/platforms/whatsappbot/credential-manager.ts +148 -0
  908. package/src/platforms/whatsappbot/index.test.ts +34 -0
  909. package/src/platforms/whatsappbot/index.ts +18 -0
  910. package/src/platforms/whatsappbot/types.test.ts +141 -0
  911. package/src/platforms/whatsappbot/types.ts +71 -0
  912. package/src/tui/adapters/channeltalk-adapter.ts +102 -0
  913. package/src/tui/adapters/discord-adapter.ts +112 -0
  914. package/src/tui/adapters/instagram-adapter.ts +132 -0
  915. package/src/tui/adapters/kakaotalk-adapter.ts +163 -0
  916. package/src/tui/adapters/line-adapter.ts +109 -0
  917. package/src/tui/adapters/slack-adapter.ts +128 -0
  918. package/src/tui/adapters/teams-adapter.ts +95 -0
  919. package/src/tui/adapters/telegram-adapter.ts +203 -0
  920. package/src/tui/adapters/types.ts +43 -0
  921. package/src/tui/adapters/whatsapp-adapter.ts +138 -0
  922. package/src/tui/app.ts +689 -0
  923. package/src/tui/cli.ts +18 -0
  924. package/src/tui/utils.test.ts +149 -0
  925. package/src/tui/utils.ts +58 -0
  926. package/src/tui/views/channel-picker.ts +146 -0
  927. package/src/tui/views/workspace-picker.ts +146 -0
  928. package/docs/content/docs/integrations/meta.json +0 -5
  929. package/docs/content/docs/integrations/slack.mdx +0 -218
  930. package/docs/content/docs/{integrations → cli}/discord.mdx +19 -19
  931. package/docs/content/docs/{integrations → cli}/discordbot.mdx +8 -8
@@ -10,21 +10,39 @@ export class SlackError extends Error {
10
10
  const MAX_RETRIES = 3;
11
11
  const RATE_LIMIT_ERROR_CODE = 'slack_webapi_rate_limited_error';
12
12
  export class SlackClient {
13
- client;
14
- token;
15
- cookie;
16
- constructor(token, cookie) {
17
- if (!token) {
18
- throw new SlackError('Token is required', 'missing_token');
13
+ client = null;
14
+ token = null;
15
+ cookie = null;
16
+ async login(credentials) {
17
+ if (credentials) {
18
+ if (!credentials.token) {
19
+ throw new SlackError('Token is required', 'missing_token');
20
+ }
21
+ if (!credentials.cookie) {
22
+ throw new SlackError('Cookie is required', 'missing_cookie');
23
+ }
24
+ this.token = credentials.token;
25
+ this.cookie = credentials.cookie;
26
+ this.client = new WebClient(credentials.token, {
27
+ headers: { Cookie: `d=${credentials.cookie}` },
28
+ });
29
+ return this;
19
30
  }
20
- if (!cookie) {
21
- throw new SlackError('Cookie is required', 'missing_cookie');
31
+ const { ensureSlackAuth } = await import('./ensure-auth.js');
32
+ await ensureSlackAuth();
33
+ const { SlackCredentialManager } = await import('./credential-manager.js');
34
+ const credManager = new SlackCredentialManager();
35
+ const workspace = await credManager.getWorkspace();
36
+ if (!workspace) {
37
+ throw new SlackError('No workspace credentials found. Make sure Slack desktop app is installed and logged in.', 'no_credentials');
22
38
  }
23
- this.token = token;
24
- this.cookie = cookie;
25
- this.client = new WebClient(token, {
26
- headers: { Cookie: `d=${cookie}` },
27
- });
39
+ return this.login({ token: workspace.token, cookie: workspace.cookie });
40
+ }
41
+ ensureAuth() {
42
+ if (!this.client) {
43
+ throw new SlackError('Not authenticated. Call .login() first.', 'not_authenticated');
44
+ }
45
+ return this.client;
28
46
  }
29
47
  async withRetry(operation) {
30
48
  let lastError;
@@ -54,7 +72,7 @@ export class SlackClient {
54
72
  }
55
73
  async testAuth() {
56
74
  return this.withRetry(async () => {
57
- const response = await this.client.auth.test();
75
+ const response = await this.ensureAuth().auth.test();
58
76
  this.checkResponse(response);
59
77
  return {
60
78
  user_id: response.user_id,
@@ -69,7 +87,7 @@ export class SlackClient {
69
87
  const channels = [];
70
88
  let cursor;
71
89
  do {
72
- const response = await this.client.conversations.list({
90
+ const response = await this.ensureAuth().conversations.list({
73
91
  cursor,
74
92
  limit: 200,
75
93
  types: 'public_channel,private_channel',
@@ -111,7 +129,7 @@ export class SlackClient {
111
129
  const dms = [];
112
130
  let cursor;
113
131
  do {
114
- const response = await this.client.conversations.list({
132
+ const response = await this.ensureAuth().conversations.list({
115
133
  cursor,
116
134
  limit: 200,
117
135
  types: 'im,mpim',
@@ -134,7 +152,7 @@ export class SlackClient {
134
152
  }
135
153
  async getChannel(id) {
136
154
  return this.withRetry(async () => {
137
- const response = await this.client.conversations.info({ channel: id });
155
+ const response = await this.ensureAuth().conversations.info({ channel: id });
138
156
  this.checkResponse(response);
139
157
  const ch = response.channel;
140
158
  return {
@@ -176,7 +194,7 @@ export class SlackClient {
176
194
  }
177
195
  async sendMessage(channel, text, threadTs) {
178
196
  return this.withRetry(async () => {
179
- const response = await this.client.chat.postMessage({
197
+ const response = await this.ensureAuth().chat.postMessage({
180
198
  channel,
181
199
  text,
182
200
  thread_ts: threadTs,
@@ -192,11 +210,15 @@ export class SlackClient {
192
210
  };
193
211
  });
194
212
  }
195
- async getMessages(channel, limit = 20) {
213
+ async getMessages(channel, limitOrOptions) {
214
+ const options = typeof limitOrOptions === 'number' ? { limit: limitOrOptions } : (limitOrOptions ?? {});
215
+ const { limit = 20, oldest, latest } = options;
196
216
  return this.withRetry(async () => {
197
- const response = await this.client.conversations.history({
217
+ const response = await this.ensureAuth().conversations.history({
198
218
  channel,
199
219
  limit,
220
+ oldest,
221
+ latest,
200
222
  });
201
223
  this.checkResponse(response);
202
224
  return (response.messages || []).map((msg) => ({
@@ -231,7 +253,7 @@ export class SlackClient {
231
253
  }
232
254
  async getMessage(channel, ts) {
233
255
  return this.withRetry(async () => {
234
- const response = await this.client.conversations.history({
256
+ const response = await this.ensureAuth().conversations.history({
235
257
  channel,
236
258
  oldest: ts,
237
259
  inclusive: true,
@@ -274,7 +296,7 @@ export class SlackClient {
274
296
  }
275
297
  async updateMessage(channel, ts, text) {
276
298
  return this.withRetry(async () => {
277
- const response = await this.client.chat.update({
299
+ const response = await this.ensureAuth().chat.update({
278
300
  channel,
279
301
  ts,
280
302
  text,
@@ -291,7 +313,7 @@ export class SlackClient {
291
313
  }
292
314
  async deleteMessage(channel, ts) {
293
315
  return this.withRetry(async () => {
294
- const response = await this.client.chat.delete({
316
+ const response = await this.ensureAuth().chat.delete({
295
317
  channel,
296
318
  ts,
297
319
  });
@@ -300,7 +322,7 @@ export class SlackClient {
300
322
  }
301
323
  async addReaction(channel, ts, emoji) {
302
324
  return this.withRetry(async () => {
303
- const response = await this.client.reactions.add({
325
+ const response = await this.ensureAuth().reactions.add({
304
326
  channel,
305
327
  timestamp: ts,
306
328
  name: emoji,
@@ -310,7 +332,7 @@ export class SlackClient {
310
332
  }
311
333
  async removeReaction(channel, ts, emoji) {
312
334
  return this.withRetry(async () => {
313
- const response = await this.client.reactions.remove({
335
+ const response = await this.ensureAuth().reactions.remove({
314
336
  channel,
315
337
  timestamp: ts,
316
338
  name: emoji,
@@ -323,7 +345,7 @@ export class SlackClient {
323
345
  const users = [];
324
346
  let cursor;
325
347
  do {
326
- const response = await this.client.users.list({
348
+ const response = await this.ensureAuth().users.list({
327
349
  cursor,
328
350
  limit: 200,
329
351
  });
@@ -359,7 +381,7 @@ export class SlackClient {
359
381
  const members = [];
360
382
  let cursor;
361
383
  do {
362
- const response = await this.client.conversations.members({
384
+ const response = await this.ensureAuth().conversations.members({
363
385
  channel,
364
386
  cursor,
365
387
  limit: 200,
@@ -375,7 +397,7 @@ export class SlackClient {
375
397
  }
376
398
  async getUser(id) {
377
399
  return this.withRetry(async () => {
378
- const response = await this.client.users.info({ user: id });
400
+ const response = await this.ensureAuth().users.info({ user: id });
379
401
  this.checkResponse(response);
380
402
  const member = response.user;
381
403
  return {
@@ -399,7 +421,7 @@ export class SlackClient {
399
421
  }
400
422
  async uploadFile(channels, file, filename) {
401
423
  return this.withRetry(async () => {
402
- const response = await this.client.files.uploadV2({
424
+ const response = await this.ensureAuth().files.uploadV2({
403
425
  channel_id: channels[0],
404
426
  file,
405
427
  filename,
@@ -425,7 +447,7 @@ export class SlackClient {
425
447
  }
426
448
  async listFiles(channel) {
427
449
  return this.withRetry(async () => {
428
- const response = await this.client.files.list({
450
+ const response = await this.ensureAuth().files.list({
429
451
  channel,
430
452
  });
431
453
  this.checkResponse(response);
@@ -444,7 +466,7 @@ export class SlackClient {
444
466
  }
445
467
  async getFileInfo(fileId) {
446
468
  return this.withRetry(async () => {
447
- const response = await this.client.files.info({ file: fileId });
469
+ const response = await this.ensureAuth().files.info({ file: fileId });
448
470
  this.checkResponse(response);
449
471
  const f = response.file;
450
472
  return {
@@ -465,6 +487,7 @@ export class SlackClient {
465
487
  if (!file.url_private) {
466
488
  throw new SlackError('File has no download URL', 'no_download_url');
467
489
  }
490
+ this.ensureAuth();
468
491
  const response = await fetch(file.url_private, {
469
492
  headers: {
470
493
  Authorization: `Bearer ${this.token}`,
@@ -482,7 +505,7 @@ export class SlackClient {
482
505
  }
483
506
  async searchMessages(query, options = {}) {
484
507
  return this.withRetry(async () => {
485
- const response = await this.client.search.messages({
508
+ const response = await this.ensureAuth().search.messages({
486
509
  query,
487
510
  sort: options.sort || 'timestamp',
488
511
  sort_dir: options.sortDir || 'desc',
@@ -505,7 +528,7 @@ export class SlackClient {
505
528
  }
506
529
  async getThreadReplies(channel, threadTs, options = {}) {
507
530
  return this.withRetry(async () => {
508
- const response = await this.client.conversations.replies({
531
+ const response = await this.ensureAuth().conversations.replies({
509
532
  channel,
510
533
  ts: threadTs,
511
534
  limit: options.limit || 100,
@@ -550,7 +573,7 @@ export class SlackClient {
550
573
  }
551
574
  async getUnreadCounts() {
552
575
  return this.withRetry(async () => {
553
- const response = await this.client.apiCall('client.counts');
576
+ const response = await this.ensureAuth().apiCall('client.counts');
554
577
  this.checkResponse(response);
555
578
  const channels = (response.channels || []).map((ch) => ({
556
579
  id: ch.id || '',
@@ -567,7 +590,7 @@ export class SlackClient {
567
590
  }
568
591
  async getThreadView(channelId, ts) {
569
592
  return this.withRetry(async () => {
570
- const response = await this.client.subscriptions.thread.getView({
593
+ const response = await this.ensureAuth().subscriptions.thread.getView({
571
594
  channel: channelId,
572
595
  thread_ts: ts,
573
596
  });
@@ -584,7 +607,7 @@ export class SlackClient {
584
607
  }
585
608
  async markRead(channelId, ts) {
586
609
  return this.withRetry(async () => {
587
- const response = await this.client.conversations.mark({
610
+ const response = await this.ensureAuth().conversations.mark({
588
611
  channel: channelId,
589
612
  ts,
590
613
  });
@@ -593,7 +616,7 @@ export class SlackClient {
593
616
  }
594
617
  async getActivityFeed(options) {
595
618
  return this.withRetry(async () => {
596
- const response = await this.client.apiCall('activity.feed', {
619
+ const response = await this.ensureAuth().apiCall('activity.feed', {
597
620
  types: options?.types || 'thread_reply,message_reaction,at_user,at_channel,keyword',
598
621
  mode: options?.mode || 'chrono_reads_and_unreads',
599
622
  limit: options?.limit || 20,
@@ -613,7 +636,7 @@ export class SlackClient {
613
636
  }
614
637
  async getSavedItems(cursor) {
615
638
  return this.withRetry(async () => {
616
- const response = await this.client.apiCall('saved.list', {
639
+ const response = await this.ensureAuth().apiCall('saved.list', {
617
640
  cursor,
618
641
  limit: 50,
619
642
  });
@@ -651,7 +674,7 @@ export class SlackClient {
651
674
  }
652
675
  async getChannelSections() {
653
676
  return this.withRetry(async () => {
654
- const response = await this.client.apiCall('users.channelSections.list');
677
+ const response = await this.ensureAuth().apiCall('users.channelSections.list');
655
678
  this.checkResponse(response);
656
679
  const sections = response.channel_sections || [];
657
680
  return sections.map((section) => ({
@@ -663,9 +686,19 @@ export class SlackClient {
663
686
  }));
664
687
  });
665
688
  }
689
+ async openConversation(users) {
690
+ return this.withRetry(async () => {
691
+ const response = await this.ensureAuth().conversations.open({ users });
692
+ this.checkResponse(response);
693
+ return {
694
+ channel_id: response.channel.id,
695
+ already_open: response.already_open || false,
696
+ };
697
+ });
698
+ }
666
699
  async getDrafts(cursor) {
667
700
  return this.withRetry(async () => {
668
- const response = await this.client.apiCall('drafts.list', {
701
+ const response = await this.ensureAuth().apiCall('drafts.list', {
669
702
  cursor,
670
703
  });
671
704
  this.checkResponse(response);
@@ -682,5 +715,509 @@ export class SlackClient {
682
715
  };
683
716
  });
684
717
  }
718
+ async rtmConnect() {
719
+ return this.withRetry(async () => {
720
+ const response = await this.ensureAuth().apiCall('rtm.connect');
721
+ this.checkResponse(response);
722
+ return {
723
+ url: response.url,
724
+ cookie: this.cookie,
725
+ self: { id: response.self.id },
726
+ team: { id: response.team.id },
727
+ };
728
+ });
729
+ }
730
+ async pinMessage(channel, ts) {
731
+ return this.withRetry(async () => {
732
+ const response = await this.ensureAuth().pins.add({ channel, timestamp: ts });
733
+ this.checkResponse(response);
734
+ });
735
+ }
736
+ async unpinMessage(channel, ts) {
737
+ return this.withRetry(async () => {
738
+ const response = await this.ensureAuth().pins.remove({ channel, timestamp: ts });
739
+ this.checkResponse(response);
740
+ });
741
+ }
742
+ async listPins(channel) {
743
+ return this.withRetry(async () => {
744
+ const response = await this.ensureAuth().pins.list({ channel });
745
+ this.checkResponse(response);
746
+ return (response.items || [])
747
+ .filter((item) => item.message)
748
+ .map((item) => ({
749
+ channel,
750
+ message: {
751
+ ts: item.message.ts || '',
752
+ text: item.message.text || '',
753
+ user: item.message.user,
754
+ username: item.message.username,
755
+ type: item.message.type || 'message',
756
+ thread_ts: item.message.thread_ts,
757
+ reply_count: item.message.reply_count,
758
+ },
759
+ date_created: item.created || 0,
760
+ created_by: item.created_by || '',
761
+ }));
762
+ });
763
+ }
764
+ async addBookmark(channel, title, link, options) {
765
+ return this.withRetry(async () => {
766
+ const response = await this.ensureAuth().apiCall('bookmarks.add', {
767
+ channel_id: channel,
768
+ title,
769
+ link,
770
+ type: options?.type || 'link',
771
+ emoji: options?.emoji,
772
+ });
773
+ this.checkResponse(response);
774
+ const b = response.bookmark;
775
+ return {
776
+ id: b.id || '',
777
+ channel_id: b.channel_id || channel,
778
+ title: b.title || title,
779
+ link: b.link || link,
780
+ emoji: b.emoji,
781
+ icon_url: b.icon_url,
782
+ type: b.type || 'link',
783
+ date_created: b.date_created || 0,
784
+ date_updated: b.date_updated || 0,
785
+ created_by: b.created_by || '',
786
+ };
787
+ });
788
+ }
789
+ async editBookmark(channel, bookmarkId, options) {
790
+ return this.withRetry(async () => {
791
+ const response = await this.ensureAuth().apiCall('bookmarks.edit', {
792
+ channel_id: channel,
793
+ bookmark_id: bookmarkId,
794
+ ...options,
795
+ });
796
+ this.checkResponse(response);
797
+ const b = response.bookmark;
798
+ return {
799
+ id: b.id || bookmarkId,
800
+ channel_id: b.channel_id || channel,
801
+ title: b.title || '',
802
+ link: b.link || '',
803
+ emoji: b.emoji,
804
+ icon_url: b.icon_url,
805
+ type: b.type || 'link',
806
+ date_created: b.date_created || 0,
807
+ date_updated: b.date_updated || 0,
808
+ created_by: b.created_by || '',
809
+ };
810
+ });
811
+ }
812
+ async removeBookmark(channel, bookmarkId) {
813
+ return this.withRetry(async () => {
814
+ const response = await this.ensureAuth().apiCall('bookmarks.remove', {
815
+ channel_id: channel,
816
+ bookmark_id: bookmarkId,
817
+ });
818
+ this.checkResponse(response);
819
+ });
820
+ }
821
+ async listBookmarks(channel) {
822
+ return this.withRetry(async () => {
823
+ const response = await this.ensureAuth().apiCall('bookmarks.list', { channel_id: channel });
824
+ this.checkResponse(response);
825
+ return (response.bookmarks || []).map((b) => ({
826
+ id: b.id || '',
827
+ channel_id: b.channel_id || channel,
828
+ title: b.title || '',
829
+ link: b.link || '',
830
+ emoji: b.emoji,
831
+ icon_url: b.icon_url,
832
+ type: b.type || 'link',
833
+ date_created: b.date_created || 0,
834
+ date_updated: b.date_updated || 0,
835
+ created_by: b.created_by || '',
836
+ }));
837
+ });
838
+ }
839
+ async scheduleMessage(channel, text, postAt, threadTs) {
840
+ return this.withRetry(async () => {
841
+ const response = await this.ensureAuth().chat.scheduleMessage({
842
+ channel,
843
+ text,
844
+ post_at: postAt,
845
+ thread_ts: threadTs,
846
+ });
847
+ this.checkResponse(response);
848
+ return {
849
+ id: response.scheduled_message_id || '',
850
+ channel_id: channel,
851
+ post_at: postAt,
852
+ date_created: Math.floor(Date.now() / 1000),
853
+ text,
854
+ };
855
+ });
856
+ }
857
+ async listScheduledMessages(channel) {
858
+ return this.withRetry(async () => {
859
+ const allMessages = [];
860
+ let cursor;
861
+ do {
862
+ const response = await this.ensureAuth().chat.scheduledMessages.list({
863
+ ...(channel ? { channel } : {}),
864
+ ...(cursor ? { cursor } : {}),
865
+ });
866
+ this.checkResponse(response);
867
+ const messages = (response.scheduled_messages || []).map((msg) => ({
868
+ id: msg.id || msg.scheduled_message_id || '',
869
+ channel_id: msg.channel_id || '',
870
+ post_at: msg.post_at || 0,
871
+ date_created: msg.date_created || 0,
872
+ text: msg.text || '',
873
+ }));
874
+ allMessages.push(...messages);
875
+ cursor = response.response_metadata?.next_cursor;
876
+ } while (cursor);
877
+ return allMessages;
878
+ });
879
+ }
880
+ async deleteScheduledMessage(channel, scheduledMessageId) {
881
+ return this.withRetry(async () => {
882
+ const response = await this.ensureAuth().chat.deleteScheduledMessage({
883
+ channel,
884
+ scheduled_message_id: scheduledMessageId,
885
+ });
886
+ this.checkResponse(response);
887
+ });
888
+ }
889
+ async createChannel(name, isPrivate) {
890
+ return this.withRetry(async () => {
891
+ const response = await this.ensureAuth().conversations.create({ name, is_private: isPrivate });
892
+ this.checkResponse(response);
893
+ const ch = response.channel;
894
+ return {
895
+ id: ch.id,
896
+ name: ch.name,
897
+ is_private: ch.is_private || false,
898
+ is_archived: ch.is_archived || false,
899
+ created: ch.created || 0,
900
+ creator: ch.creator || '',
901
+ topic: ch.topic
902
+ ? {
903
+ value: ch.topic.value || '',
904
+ creator: ch.topic.creator || '',
905
+ last_set: ch.topic.last_set || 0,
906
+ }
907
+ : undefined,
908
+ purpose: ch.purpose
909
+ ? {
910
+ value: ch.purpose.value || '',
911
+ creator: ch.purpose.creator || '',
912
+ last_set: ch.purpose.last_set || 0,
913
+ }
914
+ : undefined,
915
+ };
916
+ });
917
+ }
918
+ async archiveChannel(channel) {
919
+ return this.withRetry(async () => {
920
+ const response = await this.ensureAuth().conversations.archive({ channel });
921
+ this.checkResponse(response);
922
+ });
923
+ }
924
+ async setChannelTopic(channel, topic) {
925
+ return this.withRetry(async () => {
926
+ const response = await this.ensureAuth().conversations.setTopic({ channel, topic });
927
+ this.checkResponse(response);
928
+ return { topic: response.topic || topic };
929
+ });
930
+ }
931
+ async setChannelPurpose(channel, purpose) {
932
+ return this.withRetry(async () => {
933
+ const response = await this.ensureAuth().conversations.setPurpose({ channel, purpose });
934
+ this.checkResponse(response);
935
+ return { purpose: response.purpose || purpose };
936
+ });
937
+ }
938
+ async inviteToChannel(channel, users) {
939
+ return this.withRetry(async () => {
940
+ const response = await this.ensureAuth().conversations.invite({ channel, users });
941
+ this.checkResponse(response);
942
+ const ch = response.channel;
943
+ return {
944
+ id: ch.id,
945
+ name: ch.name,
946
+ is_private: ch.is_private || false,
947
+ is_archived: ch.is_archived || false,
948
+ created: ch.created || 0,
949
+ creator: ch.creator || '',
950
+ };
951
+ });
952
+ }
953
+ async joinChannel(channel) {
954
+ return this.withRetry(async () => {
955
+ const response = await this.ensureAuth().conversations.join({ channel });
956
+ this.checkResponse(response);
957
+ const ch = response.channel;
958
+ return {
959
+ id: ch.id,
960
+ name: ch.name,
961
+ is_private: ch.is_private || false,
962
+ is_archived: ch.is_archived || false,
963
+ created: ch.created || 0,
964
+ creator: ch.creator || '',
965
+ };
966
+ });
967
+ }
968
+ async leaveChannel(channel) {
969
+ return this.withRetry(async () => {
970
+ const response = await this.ensureAuth().conversations.leave({ channel });
971
+ this.checkResponse(response);
972
+ });
973
+ }
974
+ async lookupUserByEmail(email) {
975
+ return this.withRetry(async () => {
976
+ const response = await this.ensureAuth().users.lookupByEmail({ email });
977
+ this.checkResponse(response);
978
+ const member = response.user;
979
+ return {
980
+ id: member.id,
981
+ name: member.name,
982
+ real_name: member.real_name || member.name || '',
983
+ is_admin: member.is_admin || false,
984
+ is_owner: member.is_owner || false,
985
+ is_bot: member.is_bot || false,
986
+ is_app_user: member.is_app_user || false,
987
+ profile: member.profile
988
+ ? {
989
+ email: member.profile.email,
990
+ phone: member.profile.phone,
991
+ title: member.profile.title,
992
+ status_text: member.profile.status_text,
993
+ }
994
+ : undefined,
995
+ };
996
+ });
997
+ }
998
+ async getUserProfile(userId) {
999
+ return this.withRetry(async () => {
1000
+ const response = await this.ensureAuth().users.profile.get({ user: userId });
1001
+ this.checkResponse(response);
1002
+ const p = response.profile || {};
1003
+ return {
1004
+ title: p.title,
1005
+ phone: p.phone,
1006
+ skype: p.skype,
1007
+ real_name: p.real_name,
1008
+ real_name_normalized: p.real_name_normalized,
1009
+ display_name: p.display_name,
1010
+ display_name_normalized: p.display_name_normalized,
1011
+ status_text: p.status_text,
1012
+ status_emoji: p.status_emoji,
1013
+ status_expiration: p.status_expiration,
1014
+ email: p.email,
1015
+ first_name: p.first_name,
1016
+ last_name: p.last_name,
1017
+ image_24: p.image_24,
1018
+ image_32: p.image_32,
1019
+ image_48: p.image_48,
1020
+ image_72: p.image_72,
1021
+ image_192: p.image_192,
1022
+ image_512: p.image_512,
1023
+ };
1024
+ });
1025
+ }
1026
+ async setUserProfile(profile) {
1027
+ return this.withRetry(async () => {
1028
+ const response = await this.ensureAuth().users.profile.set({ profile: profile });
1029
+ this.checkResponse(response);
1030
+ const p = response.profile || {};
1031
+ return {
1032
+ title: p.title,
1033
+ phone: p.phone,
1034
+ skype: p.skype,
1035
+ real_name: p.real_name,
1036
+ real_name_normalized: p.real_name_normalized,
1037
+ display_name: p.display_name,
1038
+ display_name_normalized: p.display_name_normalized,
1039
+ status_text: p.status_text,
1040
+ status_emoji: p.status_emoji,
1041
+ status_expiration: p.status_expiration,
1042
+ email: p.email,
1043
+ first_name: p.first_name,
1044
+ last_name: p.last_name,
1045
+ image_24: p.image_24,
1046
+ image_32: p.image_32,
1047
+ image_48: p.image_48,
1048
+ image_72: p.image_72,
1049
+ image_192: p.image_192,
1050
+ image_512: p.image_512,
1051
+ };
1052
+ });
1053
+ }
1054
+ async postEphemeral(channel, user, text) {
1055
+ return this.withRetry(async () => {
1056
+ const response = await this.ensureAuth().chat.postEphemeral({ channel, user, text });
1057
+ this.checkResponse(response);
1058
+ return response.message_ts || '';
1059
+ });
1060
+ }
1061
+ async getPermalink(channel, ts) {
1062
+ return this.withRetry(async () => {
1063
+ const response = await this.ensureAuth().chat.getPermalink({ channel, message_ts: ts });
1064
+ this.checkResponse(response);
1065
+ return response.permalink || '';
1066
+ });
1067
+ }
1068
+ async addReminder(text, time, options) {
1069
+ return this.withRetry(async () => {
1070
+ const response = await this.ensureAuth().reminders.add({ text, time: time, user: options?.user });
1071
+ this.checkResponse(response);
1072
+ const r = response.reminder || {};
1073
+ return {
1074
+ id: r.id || '',
1075
+ creator: r.creator || '',
1076
+ text: r.text || text,
1077
+ user: r.user || '',
1078
+ recurring: r.recurring || false,
1079
+ time: r.time || time,
1080
+ complete_ts: r.complete_ts || 0,
1081
+ };
1082
+ });
1083
+ }
1084
+ async listReminders() {
1085
+ return this.withRetry(async () => {
1086
+ const response = await this.ensureAuth().reminders.list({});
1087
+ this.checkResponse(response);
1088
+ return (response.reminders || []).map((r) => ({
1089
+ id: r.id || '',
1090
+ creator: r.creator || '',
1091
+ text: r.text || '',
1092
+ user: r.user || '',
1093
+ recurring: r.recurring || false,
1094
+ time: r.time || 0,
1095
+ complete_ts: r.complete_ts || 0,
1096
+ }));
1097
+ });
1098
+ }
1099
+ async completeReminder(reminderId) {
1100
+ return this.withRetry(async () => {
1101
+ const response = await this.ensureAuth().reminders.complete({ reminder: reminderId });
1102
+ this.checkResponse(response);
1103
+ });
1104
+ }
1105
+ async deleteReminder(reminderId) {
1106
+ return this.withRetry(async () => {
1107
+ const response = await this.ensureAuth().reminders.delete({ reminder: reminderId });
1108
+ this.checkResponse(response);
1109
+ });
1110
+ }
1111
+ async deleteFile(fileId) {
1112
+ return this.withRetry(async () => {
1113
+ const response = await this.ensureAuth().files.delete({ file: fileId });
1114
+ this.checkResponse(response);
1115
+ });
1116
+ }
1117
+ async listEmoji() {
1118
+ return this.withRetry(async () => {
1119
+ const response = await this.ensureAuth().emoji.list({});
1120
+ this.checkResponse(response);
1121
+ return (response.emoji || {});
1122
+ });
1123
+ }
1124
+ mapUsergroup(ug) {
1125
+ return {
1126
+ id: ug.id || '',
1127
+ team_id: ug.team_id || '',
1128
+ name: ug.name || '',
1129
+ handle: ug.handle || '',
1130
+ description: ug.description || '',
1131
+ is_external: ug.is_external ?? false,
1132
+ is_usergroup: ug.is_usergroup ?? true,
1133
+ date_create: ug.date_create ?? 0,
1134
+ date_update: ug.date_update ?? 0,
1135
+ date_delete: ug.date_delete ?? 0,
1136
+ auto_type: ug.auto_type ?? null,
1137
+ created_by: ug.created_by || '',
1138
+ updated_by: ug.updated_by || '',
1139
+ deleted_by: ug.deleted_by ?? null,
1140
+ prefs: {
1141
+ channels: ug.prefs?.channels || [],
1142
+ groups: ug.prefs?.groups || [],
1143
+ },
1144
+ users: ug.users || [],
1145
+ user_count: ug.user_count ?? 0,
1146
+ };
1147
+ }
1148
+ async listUsergroups(options) {
1149
+ return this.withRetry(async () => {
1150
+ const response = await this.ensureAuth().apiCall('usergroups.list', {
1151
+ include_disabled: options?.includeDisabled,
1152
+ include_users: options?.includeUsers,
1153
+ include_count: options?.includeCount,
1154
+ });
1155
+ this.checkResponse(response);
1156
+ return (response.usergroups || []).map((ug) => this.mapUsergroup(ug));
1157
+ });
1158
+ }
1159
+ async createUsergroup(name, options) {
1160
+ return this.withRetry(async () => {
1161
+ const response = await this.ensureAuth().apiCall('usergroups.create', {
1162
+ name,
1163
+ handle: options?.handle,
1164
+ description: options?.description,
1165
+ channels: options?.channels?.join(','),
1166
+ });
1167
+ this.checkResponse(response);
1168
+ return this.mapUsergroup(response.usergroup);
1169
+ });
1170
+ }
1171
+ async updateUsergroup(usergroupId, options) {
1172
+ return this.withRetry(async () => {
1173
+ const response = await this.ensureAuth().apiCall('usergroups.update', {
1174
+ usergroup: usergroupId,
1175
+ name: options.name,
1176
+ handle: options.handle,
1177
+ description: options.description,
1178
+ channels: options.channels?.join(','),
1179
+ });
1180
+ this.checkResponse(response);
1181
+ return this.mapUsergroup(response.usergroup);
1182
+ });
1183
+ }
1184
+ async disableUsergroup(usergroupId) {
1185
+ return this.withRetry(async () => {
1186
+ const response = await this.ensureAuth().apiCall('usergroups.disable', {
1187
+ usergroup: usergroupId,
1188
+ });
1189
+ this.checkResponse(response);
1190
+ return this.mapUsergroup(response.usergroup);
1191
+ });
1192
+ }
1193
+ async enableUsergroup(usergroupId) {
1194
+ return this.withRetry(async () => {
1195
+ const response = await this.ensureAuth().apiCall('usergroups.enable', {
1196
+ usergroup: usergroupId,
1197
+ });
1198
+ this.checkResponse(response);
1199
+ return this.mapUsergroup(response.usergroup);
1200
+ });
1201
+ }
1202
+ async listUsergroupMembers(usergroupId, options) {
1203
+ return this.withRetry(async () => {
1204
+ const response = await this.ensureAuth().apiCall('usergroups.users.list', {
1205
+ usergroup: usergroupId,
1206
+ include_disabled: options?.includeDisabled,
1207
+ });
1208
+ this.checkResponse(response);
1209
+ return response.users || [];
1210
+ });
1211
+ }
1212
+ async updateUsergroupMembers(usergroupId, users) {
1213
+ return this.withRetry(async () => {
1214
+ const response = await this.ensureAuth().apiCall('usergroups.users.update', {
1215
+ usergroup: usergroupId,
1216
+ users: users.join(','),
1217
+ });
1218
+ this.checkResponse(response);
1219
+ return this.mapUsergroup(response.usergroup);
1220
+ });
1221
+ }
685
1222
  }
686
1223
  //# sourceMappingURL=client.js.map