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
@@ -1,5 +1,19 @@
1
1
  import { WebClient } from '@slack/web-api'
2
2
 
3
+ import {
4
+ mapBookmark,
5
+ mapChannel,
6
+ mapDM,
7
+ mapFile,
8
+ mapMessage,
9
+ mapPin,
10
+ mapReminder,
11
+ mapSavedItem,
12
+ mapScheduledMessage,
13
+ mapUser,
14
+ mapUserProfile,
15
+ mapUsergroup,
16
+ } from './client-mappers'
3
17
  import type {
4
18
  SlackActivityItem,
5
19
  SlackBookmark,
@@ -132,28 +146,7 @@ export class SlackClient {
132
146
 
133
147
  if (response.channels) {
134
148
  for (const ch of response.channels) {
135
- channels.push({
136
- id: ch.id!,
137
- name: ch.name!,
138
- is_private: ch.is_private || false,
139
- is_archived: ch.is_archived || false,
140
- created: ch.created || 0,
141
- creator: ch.creator || '',
142
- topic: ch.topic
143
- ? {
144
- value: ch.topic.value || '',
145
- creator: ch.topic.creator || '',
146
- last_set: ch.topic.last_set || 0,
147
- }
148
- : undefined,
149
- purpose: ch.purpose
150
- ? {
151
- value: ch.purpose.value || '',
152
- creator: ch.purpose.creator || '',
153
- last_set: ch.purpose.last_set || 0,
154
- }
155
- : undefined,
156
- })
149
+ channels.push(mapChannel(ch))
157
150
  }
158
151
  }
159
152
 
@@ -180,11 +173,7 @@ export class SlackClient {
180
173
 
181
174
  if (response.channels) {
182
175
  for (const ch of response.channels) {
183
- dms.push({
184
- id: ch.id!,
185
- user: ch.user || ch.name || '',
186
- is_mpim: ch.is_mpim || false,
187
- })
176
+ dms.push(mapDM(ch))
188
177
  }
189
178
  }
190
179
 
@@ -200,29 +189,7 @@ export class SlackClient {
200
189
  const response = await this.ensureAuth().conversations.info({ channel: id })
201
190
  this.checkResponse(response)
202
191
 
203
- const ch = response.channel!
204
- return {
205
- id: ch.id!,
206
- name: ch.name!,
207
- is_private: ch.is_private || false,
208
- is_archived: ch.is_archived || false,
209
- created: ch.created || 0,
210
- creator: ch.creator || '',
211
- topic: ch.topic
212
- ? {
213
- value: ch.topic.value || '',
214
- creator: ch.topic.creator || '',
215
- last_set: ch.topic.last_set || 0,
216
- }
217
- : undefined,
218
- purpose: ch.purpose
219
- ? {
220
- value: ch.purpose.value || '',
221
- creator: ch.purpose.creator || '',
222
- last_set: ch.purpose.last_set || 0,
223
- }
224
- : undefined,
225
- }
192
+ return mapChannel(response.channel)
226
193
  })
227
194
  }
228
195
 
@@ -257,14 +224,7 @@ export class SlackClient {
257
224
  })
258
225
  this.checkResponse(response)
259
226
 
260
- const msg = response.message!
261
- return {
262
- ts: response.ts!,
263
- text: msg.text || text,
264
- type: msg.type || 'message',
265
- user: msg.user,
266
- thread_ts: msg.thread_ts,
267
- }
227
+ return mapMessage(response.message, { ts: response.ts!, text, type: 'message' })
268
228
  })
269
229
  }
270
230
 
@@ -284,34 +244,7 @@ export class SlackClient {
284
244
  })
285
245
  this.checkResponse(response)
286
246
 
287
- return (response.messages || []).map((msg) => ({
288
- ts: msg.ts!,
289
- text: msg.text || '',
290
- type: msg.type || 'message',
291
- user: msg.user,
292
- username: msg.username,
293
- thread_ts: msg.thread_ts,
294
- reply_count: msg.reply_count,
295
- replies: (msg as any).replies,
296
- reactions: (msg as any).reactions,
297
- edited: msg.edited
298
- ? {
299
- user: msg.edited.user || '',
300
- ts: msg.edited.ts || '',
301
- }
302
- : undefined,
303
- files: (msg as any).files?.map((f: any) => ({
304
- id: f.id!,
305
- name: f.name!,
306
- title: f.title || f.name || '',
307
- mimetype: f.mimetype || 'application/octet-stream',
308
- size: f.size || 0,
309
- url_private: f.url_private || '',
310
- created: f.created || 0,
311
- user: f.user || '',
312
- channels: f.channels,
313
- })),
314
- }))
247
+ return (response.messages || []).map((msg) => mapMessage(msg))
315
248
  })
316
249
  }
317
250
 
@@ -330,34 +263,7 @@ export class SlackClient {
330
263
  return null
331
264
  }
332
265
 
333
- return {
334
- ts: msg.ts!,
335
- text: msg.text || '',
336
- type: msg.type || 'message',
337
- user: msg.user,
338
- username: msg.username,
339
- thread_ts: msg.thread_ts,
340
- reply_count: msg.reply_count,
341
- replies: (msg as any).replies,
342
- reactions: (msg as any).reactions,
343
- edited: msg.edited
344
- ? {
345
- user: msg.edited.user || '',
346
- ts: msg.edited.ts || '',
347
- }
348
- : undefined,
349
- files: (msg as any).files?.map((f: any) => ({
350
- id: f.id!,
351
- name: f.name!,
352
- title: f.title || f.name || '',
353
- mimetype: f.mimetype || 'application/octet-stream',
354
- size: f.size || 0,
355
- url_private: f.url_private || '',
356
- created: f.created || 0,
357
- user: f.user || '',
358
- channels: f.channels,
359
- })),
360
- }
266
+ return mapMessage(msg)
361
267
  })
362
268
  }
363
269
 
@@ -370,13 +276,7 @@ export class SlackClient {
370
276
  })
371
277
  this.checkResponse(response)
372
278
 
373
- const msg = response.message!
374
- return {
375
- ts: response.ts!,
376
- text: msg.text || text,
377
- type: 'message',
378
- user: msg.user,
379
- }
279
+ return mapMessage(response.message, { ts: response.ts!, text, type: 'message' })
380
280
  })
381
281
  }
382
282
 
@@ -426,23 +326,7 @@ export class SlackClient {
426
326
 
427
327
  if (response.members) {
428
328
  for (const member of response.members) {
429
- users.push({
430
- id: member.id!,
431
- name: member.name!,
432
- real_name: member.real_name || member.name || '',
433
- is_admin: member.is_admin || false,
434
- is_owner: member.is_owner || false,
435
- is_bot: member.is_bot || false,
436
- is_app_user: member.is_app_user || false,
437
- profile: member.profile
438
- ? {
439
- email: member.profile.email,
440
- phone: member.profile.phone,
441
- title: member.profile.title,
442
- status_text: member.profile.status_text,
443
- }
444
- : undefined,
445
- })
329
+ users.push(mapUser(member))
446
330
  }
447
331
  }
448
332
 
@@ -482,24 +366,7 @@ export class SlackClient {
482
366
  const response = await this.ensureAuth().users.info({ user: id })
483
367
  this.checkResponse(response)
484
368
 
485
- const member = response.user!
486
- return {
487
- id: member.id!,
488
- name: member.name!,
489
- real_name: member.real_name || member.name || '',
490
- is_admin: member.is_admin || false,
491
- is_owner: member.is_owner || false,
492
- is_bot: member.is_bot || false,
493
- is_app_user: member.is_app_user || false,
494
- profile: member.profile
495
- ? {
496
- email: member.profile.email,
497
- phone: member.profile.phone,
498
- title: member.profile.title,
499
- status_text: member.profile.status_text,
500
- }
501
- : undefined,
502
- }
369
+ return mapUser(response.user)
503
370
  })
504
371
  }
505
372
 
@@ -517,17 +384,7 @@ export class SlackClient {
517
384
  if (!f) {
518
385
  throw new SlackError('No file returned in upload response', 'file_not_found')
519
386
  }
520
- return {
521
- id: f.id!,
522
- name: f.name!,
523
- title: f.title || f.name || '',
524
- mimetype: f.mimetype || 'application/octet-stream',
525
- size: f.size || 0,
526
- url_private: f.url_private || '',
527
- created: f.created || 0,
528
- user: f.user || '',
529
- channels: f.channels,
530
- }
387
+ return mapFile(f)
531
388
  })
532
389
  }
533
390
 
@@ -538,17 +395,7 @@ export class SlackClient {
538
395
  })
539
396
  this.checkResponse(response)
540
397
 
541
- return (response.files || []).map((f) => ({
542
- id: f.id!,
543
- name: f.name!,
544
- title: f.title || f.name || '',
545
- mimetype: f.mimetype || 'application/octet-stream',
546
- size: f.size || 0,
547
- url_private: f.url_private || '',
548
- created: f.created || 0,
549
- user: f.user || '',
550
- channels: f.channels,
551
- }))
398
+ return (response.files || []).map((f) => mapFile(f))
552
399
  })
553
400
  }
554
401
 
@@ -557,18 +404,7 @@ export class SlackClient {
557
404
  const response = await this.ensureAuth().files.info({ file: fileId })
558
405
  this.checkResponse(response)
559
406
 
560
- const f = response.file!
561
- return {
562
- id: f.id!,
563
- name: f.name!,
564
- title: f.title || f.name || '',
565
- mimetype: f.mimetype || 'application/octet-stream',
566
- size: f.size || 0,
567
- url_private: f.url_private || '',
568
- created: f.created || 0,
569
- user: f.user || '',
570
- channels: f.channels,
571
- }
407
+ return mapFile(response.file)
572
408
  })
573
409
  }
574
410
 
@@ -642,33 +478,7 @@ export class SlackClient {
642
478
  })
643
479
  this.checkResponse(response)
644
480
 
645
- const messages = (response.messages || []).map((msg: any) => ({
646
- ts: msg.ts!,
647
- text: msg.text || '',
648
- type: msg.type || 'message',
649
- user: msg.user,
650
- username: msg.username,
651
- thread_ts: msg.thread_ts,
652
- reply_count: msg.reply_count,
653
- edited: msg.edited
654
- ? {
655
- user: msg.edited.user || '',
656
- ts: msg.edited.ts || '',
657
- }
658
- : undefined,
659
- reactions: msg.reactions,
660
- files: msg.files?.map((f: any) => ({
661
- id: f.id!,
662
- name: f.name!,
663
- title: f.title || f.name || '',
664
- mimetype: f.mimetype || 'application/octet-stream',
665
- size: f.size || 0,
666
- url_private: f.url_private || '',
667
- created: f.created || 0,
668
- user: f.user || '',
669
- channels: f.channels,
670
- })),
671
- }))
481
+ const messages = (response.messages || []).map((msg: unknown) => mapMessage(msg))
672
482
 
673
483
  return {
674
484
  messages,
@@ -762,30 +572,7 @@ export class SlackClient {
762
572
  })
763
573
  this.checkResponse(response)
764
574
 
765
- const items = (response.items || []).map((item: any) => ({
766
- type: item.type || 'message',
767
- message: {
768
- ts: item.message?.ts || '',
769
- text: item.message?.text || '',
770
- user: item.message?.user,
771
- username: item.message?.username,
772
- type: item.message?.type || 'message',
773
- thread_ts: item.message?.thread_ts,
774
- reply_count: item.message?.reply_count,
775
- replies: item.message?.replies,
776
- edited: item.message?.edited
777
- ? {
778
- user: item.message.edited.user || '',
779
- ts: item.message.edited.ts || '',
780
- }
781
- : undefined,
782
- },
783
- channel: {
784
- id: item.channel?.id || '',
785
- name: item.channel?.name || '',
786
- },
787
- date_created: item.date_created || 0,
788
- }))
575
+ const items = (response.items || []).map((item: unknown) => mapSavedItem(item))
789
576
 
790
577
  return {
791
578
  items,
@@ -879,20 +666,7 @@ export class SlackClient {
879
666
 
880
667
  return ((response as any).items || [])
881
668
  .filter((item: any) => item.message)
882
- .map((item: any) => ({
883
- channel,
884
- message: {
885
- ts: item.message.ts || '',
886
- text: item.message.text || '',
887
- user: item.message.user,
888
- username: item.message.username,
889
- type: item.message.type || 'message',
890
- thread_ts: item.message.thread_ts,
891
- reply_count: item.message.reply_count,
892
- },
893
- date_created: item.created || 0,
894
- created_by: item.created_by || '',
895
- }))
669
+ .map((item: unknown) => mapPin(item, channel))
896
670
  })
897
671
  }
898
672
 
@@ -912,19 +686,12 @@ export class SlackClient {
912
686
  })
913
687
  this.checkResponse(response)
914
688
 
915
- const b = (response as any).bookmark
916
- return {
917
- id: b.id || '',
918
- channel_id: b.channel_id || channel,
919
- title: b.title || title,
920
- link: b.link || link,
921
- emoji: b.emoji,
922
- icon_url: b.icon_url,
923
- type: b.type || 'link',
924
- date_created: b.date_created || 0,
925
- date_updated: b.date_updated || 0,
926
- created_by: b.created_by || '',
927
- }
689
+ return mapBookmark((response as any).bookmark, {
690
+ channel_id: channel,
691
+ title,
692
+ link,
693
+ type: options?.type || 'link',
694
+ })
928
695
  })
929
696
  }
930
697
 
@@ -941,19 +708,7 @@ export class SlackClient {
941
708
  })
942
709
  this.checkResponse(response)
943
710
 
944
- const b = (response as any).bookmark
945
- return {
946
- id: b.id || bookmarkId,
947
- channel_id: b.channel_id || channel,
948
- title: b.title || '',
949
- link: b.link || '',
950
- emoji: b.emoji,
951
- icon_url: b.icon_url,
952
- type: b.type || 'link',
953
- date_created: b.date_created || 0,
954
- date_updated: b.date_updated || 0,
955
- created_by: b.created_by || '',
956
- }
711
+ return mapBookmark((response as any).bookmark, { id: bookmarkId, channel_id: channel, type: 'link' })
957
712
  })
958
713
  }
959
714
 
@@ -972,22 +727,18 @@ export class SlackClient {
972
727
  const response = await this.ensureAuth().apiCall('bookmarks.list', { channel_id: channel })
973
728
  this.checkResponse(response)
974
729
 
975
- return ((response as any).bookmarks || []).map((b: any) => ({
976
- id: b.id || '',
977
- channel_id: b.channel_id || channel,
978
- title: b.title || '',
979
- link: b.link || '',
980
- emoji: b.emoji,
981
- icon_url: b.icon_url,
982
- type: b.type || 'link',
983
- date_created: b.date_created || 0,
984
- date_updated: b.date_updated || 0,
985
- created_by: b.created_by || '',
986
- }))
730
+ return ((response as any).bookmarks || []).map((bookmark: unknown) =>
731
+ mapBookmark(bookmark, { channel_id: channel, type: 'link' }),
732
+ )
987
733
  })
988
734
  }
989
735
 
990
- async scheduleMessage(channel: string, text: string, postAt: number, threadTs?: string): Promise<SlackScheduledMessage> {
736
+ async scheduleMessage(
737
+ channel: string,
738
+ text: string,
739
+ postAt: number,
740
+ threadTs?: string,
741
+ ): Promise<SlackScheduledMessage> {
991
742
  return this.withRetry(async () => {
992
743
  const response = await this.ensureAuth().chat.scheduleMessage({
993
744
  channel,
@@ -997,13 +748,12 @@ export class SlackClient {
997
748
  })
998
749
  this.checkResponse(response)
999
750
 
1000
- return {
1001
- id: (response as any).scheduled_message_id || '',
751
+ return mapScheduledMessage(response, {
1002
752
  channel_id: channel,
1003
753
  post_at: postAt,
1004
754
  date_created: Math.floor(Date.now() / 1000),
1005
755
  text,
1006
- }
756
+ })
1007
757
  })
1008
758
  }
1009
759
 
@@ -1019,13 +769,9 @@ export class SlackClient {
1019
769
  })
1020
770
  this.checkResponse(response)
1021
771
 
1022
- const messages = ((response as any).scheduled_messages || []).map((msg: any) => ({
1023
- id: msg.id || msg.scheduled_message_id || '',
1024
- channel_id: msg.channel_id || '',
1025
- post_at: msg.post_at || 0,
1026
- date_created: msg.date_created || 0,
1027
- text: msg.text || '',
1028
- }))
772
+ const messages = ((response as any).scheduled_messages || []).map((message: unknown) =>
773
+ mapScheduledMessage(message),
774
+ )
1029
775
  allMessages.push(...messages)
1030
776
  cursor = (response as any).response_metadata?.next_cursor
1031
777
  } while (cursor)
@@ -1049,29 +795,7 @@ export class SlackClient {
1049
795
  const response = await this.ensureAuth().conversations.create({ name, is_private: isPrivate })
1050
796
  this.checkResponse(response)
1051
797
 
1052
- const ch = response.channel!
1053
- return {
1054
- id: ch.id!,
1055
- name: ch.name!,
1056
- is_private: ch.is_private || false,
1057
- is_archived: ch.is_archived || false,
1058
- created: ch.created || 0,
1059
- creator: ch.creator || '',
1060
- topic: ch.topic
1061
- ? {
1062
- value: ch.topic.value || '',
1063
- creator: ch.topic.creator || '',
1064
- last_set: ch.topic.last_set || 0,
1065
- }
1066
- : undefined,
1067
- purpose: ch.purpose
1068
- ? {
1069
- value: ch.purpose.value || '',
1070
- creator: ch.purpose.creator || '',
1071
- last_set: ch.purpose.last_set || 0,
1072
- }
1073
- : undefined,
1074
- }
798
+ return mapChannel(response.channel, { name })
1075
799
  })
1076
800
  }
1077
801
 
@@ -1103,15 +827,7 @@ export class SlackClient {
1103
827
  const response = await this.ensureAuth().conversations.invite({ channel, users })
1104
828
  this.checkResponse(response)
1105
829
 
1106
- const ch = response.channel!
1107
- return {
1108
- id: ch.id!,
1109
- name: ch.name!,
1110
- is_private: ch.is_private || false,
1111
- is_archived: ch.is_archived || false,
1112
- created: ch.created || 0,
1113
- creator: ch.creator || '',
1114
- }
830
+ return mapChannel(response.channel)
1115
831
  })
1116
832
  }
1117
833
 
@@ -1120,15 +836,7 @@ export class SlackClient {
1120
836
  const response = await this.ensureAuth().conversations.join({ channel })
1121
837
  this.checkResponse(response)
1122
838
 
1123
- const ch = response.channel!
1124
- return {
1125
- id: ch.id!,
1126
- name: ch.name!,
1127
- is_private: ch.is_private || false,
1128
- is_archived: ch.is_archived || false,
1129
- created: ch.created || 0,
1130
- creator: ch.creator || '',
1131
- }
839
+ return mapChannel(response.channel)
1132
840
  })
1133
841
  }
1134
842
 
@@ -1144,24 +852,7 @@ export class SlackClient {
1144
852
  const response = await this.ensureAuth().users.lookupByEmail({ email })
1145
853
  this.checkResponse(response)
1146
854
 
1147
- const member = response.user!
1148
- return {
1149
- id: member.id!,
1150
- name: member.name!,
1151
- real_name: member.real_name || member.name || '',
1152
- is_admin: member.is_admin || false,
1153
- is_owner: member.is_owner || false,
1154
- is_bot: member.is_bot || false,
1155
- is_app_user: member.is_app_user || false,
1156
- profile: member.profile
1157
- ? {
1158
- email: member.profile.email,
1159
- phone: member.profile.phone,
1160
- title: member.profile.title,
1161
- status_text: member.profile.status_text,
1162
- }
1163
- : undefined,
1164
- }
855
+ return mapUser(response.user)
1165
856
  })
1166
857
  }
1167
858
 
@@ -1170,28 +861,7 @@ export class SlackClient {
1170
861
  const response = await this.ensureAuth().users.profile.get({ user: userId })
1171
862
  this.checkResponse(response)
1172
863
 
1173
- const p = (response as any).profile || {}
1174
- return {
1175
- title: p.title,
1176
- phone: p.phone,
1177
- skype: p.skype,
1178
- real_name: p.real_name,
1179
- real_name_normalized: p.real_name_normalized,
1180
- display_name: p.display_name,
1181
- display_name_normalized: p.display_name_normalized,
1182
- status_text: p.status_text,
1183
- status_emoji: p.status_emoji,
1184
- status_expiration: p.status_expiration,
1185
- email: p.email,
1186
- first_name: p.first_name,
1187
- last_name: p.last_name,
1188
- image_24: p.image_24,
1189
- image_32: p.image_32,
1190
- image_48: p.image_48,
1191
- image_72: p.image_72,
1192
- image_192: p.image_192,
1193
- image_512: p.image_512,
1194
- }
864
+ return mapUserProfile((response as any).profile)
1195
865
  })
1196
866
  }
1197
867
 
@@ -1200,28 +870,7 @@ export class SlackClient {
1200
870
  const response = await this.ensureAuth().users.profile.set({ profile: profile as any })
1201
871
  this.checkResponse(response)
1202
872
 
1203
- const p = (response as any).profile || {}
1204
- return {
1205
- title: p.title,
1206
- phone: p.phone,
1207
- skype: p.skype,
1208
- real_name: p.real_name,
1209
- real_name_normalized: p.real_name_normalized,
1210
- display_name: p.display_name,
1211
- display_name_normalized: p.display_name_normalized,
1212
- status_text: p.status_text,
1213
- status_emoji: p.status_emoji,
1214
- status_expiration: p.status_expiration,
1215
- email: p.email,
1216
- first_name: p.first_name,
1217
- last_name: p.last_name,
1218
- image_24: p.image_24,
1219
- image_32: p.image_32,
1220
- image_48: p.image_48,
1221
- image_72: p.image_72,
1222
- image_192: p.image_192,
1223
- image_512: p.image_512,
1224
- }
873
+ return mapUserProfile((response as any).profile)
1225
874
  })
1226
875
  }
1227
876
 
@@ -1246,16 +895,7 @@ export class SlackClient {
1246
895
  const response = await this.ensureAuth().reminders.add({ text, time: time as any, user: options?.user })
1247
896
  this.checkResponse(response)
1248
897
 
1249
- const r = (response as any).reminder || {}
1250
- return {
1251
- id: r.id || '',
1252
- creator: r.creator || '',
1253
- text: r.text || text,
1254
- user: r.user || '',
1255
- recurring: r.recurring || false,
1256
- time: r.time || time,
1257
- complete_ts: r.complete_ts || 0,
1258
- }
898
+ return mapReminder((response as any).reminder, { text, time })
1259
899
  })
1260
900
  }
1261
901
 
@@ -1264,15 +904,7 @@ export class SlackClient {
1264
904
  const response = await this.ensureAuth().reminders.list({})
1265
905
  this.checkResponse(response)
1266
906
 
1267
- return ((response as any).reminders || []).map((r: any) => ({
1268
- id: r.id || '',
1269
- creator: r.creator || '',
1270
- text: r.text || '',
1271
- user: r.user || '',
1272
- recurring: r.recurring || false,
1273
- time: r.time || 0,
1274
- complete_ts: r.complete_ts || 0,
1275
- }))
907
+ return ((response as any).reminders || []).map((reminder: unknown) => mapReminder(reminder))
1276
908
  })
1277
909
  }
1278
910
 
@@ -1305,32 +937,11 @@ export class SlackClient {
1305
937
  })
1306
938
  }
1307
939
 
1308
- private mapUsergroup(ug: any): SlackUsergroup {
1309
- return {
1310
- id: ug.id || '',
1311
- team_id: ug.team_id || '',
1312
- name: ug.name || '',
1313
- handle: ug.handle || '',
1314
- description: ug.description || '',
1315
- is_external: ug.is_external ?? false,
1316
- is_usergroup: ug.is_usergroup ?? true,
1317
- date_create: ug.date_create ?? 0,
1318
- date_update: ug.date_update ?? 0,
1319
- date_delete: ug.date_delete ?? 0,
1320
- auto_type: ug.auto_type ?? null,
1321
- created_by: ug.created_by || '',
1322
- updated_by: ug.updated_by || '',
1323
- deleted_by: ug.deleted_by ?? null,
1324
- prefs: {
1325
- channels: ug.prefs?.channels || [],
1326
- groups: ug.prefs?.groups || [],
1327
- },
1328
- users: ug.users || [],
1329
- user_count: ug.user_count ?? 0,
1330
- }
1331
- }
1332
-
1333
- async listUsergroups(options?: { includeDisabled?: boolean; includeUsers?: boolean; includeCount?: boolean }): Promise<SlackUsergroup[]> {
940
+ async listUsergroups(options?: {
941
+ includeDisabled?: boolean
942
+ includeUsers?: boolean
943
+ includeCount?: boolean
944
+ }): Promise<SlackUsergroup[]> {
1334
945
  return this.withRetry(async () => {
1335
946
  const response = await this.ensureAuth().apiCall('usergroups.list', {
1336
947
  include_disabled: options?.includeDisabled,
@@ -1338,7 +949,7 @@ export class SlackClient {
1338
949
  include_count: options?.includeCount,
1339
950
  })
1340
951
  this.checkResponse(response)
1341
- return ((response as any).usergroups || []).map((ug: any) => this.mapUsergroup(ug))
952
+ return ((response as any).usergroups || []).map((usergroup: unknown) => mapUsergroup(usergroup))
1342
953
  })
1343
954
  }
1344
955
 
@@ -1354,7 +965,7 @@ export class SlackClient {
1354
965
  channels: options?.channels?.join(','),
1355
966
  })
1356
967
  this.checkResponse(response)
1357
- return this.mapUsergroup((response as any).usergroup)
968
+ return mapUsergroup((response as any).usergroup)
1358
969
  })
1359
970
  }
1360
971
 
@@ -1371,7 +982,7 @@ export class SlackClient {
1371
982
  channels: options.channels?.join(','),
1372
983
  })
1373
984
  this.checkResponse(response)
1374
- return this.mapUsergroup((response as any).usergroup)
985
+ return mapUsergroup((response as any).usergroup)
1375
986
  })
1376
987
  }
1377
988
 
@@ -1381,7 +992,7 @@ export class SlackClient {
1381
992
  usergroup: usergroupId,
1382
993
  })
1383
994
  this.checkResponse(response)
1384
- return this.mapUsergroup((response as any).usergroup)
995
+ return mapUsergroup((response as any).usergroup)
1385
996
  })
1386
997
  }
1387
998
 
@@ -1391,7 +1002,7 @@ export class SlackClient {
1391
1002
  usergroup: usergroupId,
1392
1003
  })
1393
1004
  this.checkResponse(response)
1394
- return this.mapUsergroup((response as any).usergroup)
1005
+ return mapUsergroup((response as any).usergroup)
1395
1006
  })
1396
1007
  }
1397
1008
 
@@ -1413,7 +1024,7 @@ export class SlackClient {
1413
1024
  users: users.join(','),
1414
1025
  })
1415
1026
  this.checkResponse(response)
1416
- return this.mapUsergroup((response as any).usergroup)
1027
+ return mapUsergroup((response as any).usergroup)
1417
1028
  })
1418
1029
  }
1419
1030
  }