agent-messenger 1.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 (394) hide show
  1. package/.claude/commands/release.md +92 -0
  2. package/.claude-plugin/README.md +144 -0
  3. package/.claude-plugin/marketplace.json +37 -0
  4. package/.claude-plugin/plugin.json +17 -0
  5. package/.github/workflows/ci.yml +30 -0
  6. package/CLAUDE.md +106 -0
  7. package/CONTRIBUTING.md +131 -0
  8. package/README.md +140 -0
  9. package/biome.json +34 -0
  10. package/bun.lock +252 -0
  11. package/dist/cli.d.ts +5 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +21 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/commands/auth.d.ts +3 -0
  16. package/dist/commands/auth.d.ts.map +1 -0
  17. package/dist/commands/auth.js +140 -0
  18. package/dist/commands/auth.js.map +1 -0
  19. package/dist/commands/channel.d.ts +3 -0
  20. package/dist/commands/channel.d.ts.map +1 -0
  21. package/dist/commands/channel.js +118 -0
  22. package/dist/commands/channel.js.map +1 -0
  23. package/dist/commands/file.d.ts +3 -0
  24. package/dist/commands/file.d.ts.map +1 -0
  25. package/dist/commands/file.js +113 -0
  26. package/dist/commands/file.js.map +1 -0
  27. package/dist/commands/index.d.ts +9 -0
  28. package/dist/commands/index.d.ts.map +1 -0
  29. package/dist/commands/index.js +9 -0
  30. package/dist/commands/index.js.map +1 -0
  31. package/dist/commands/message.d.ts +3 -0
  32. package/dist/commands/message.d.ts.map +1 -0
  33. package/dist/commands/message.js +214 -0
  34. package/dist/commands/message.js.map +1 -0
  35. package/dist/commands/reaction.d.ts +3 -0
  36. package/dist/commands/reaction.d.ts.map +1 -0
  37. package/dist/commands/reaction.js +100 -0
  38. package/dist/commands/reaction.js.map +1 -0
  39. package/dist/commands/snapshot.d.ts +3 -0
  40. package/dist/commands/snapshot.d.ts.map +1 -0
  41. package/dist/commands/snapshot.js +88 -0
  42. package/dist/commands/snapshot.js.map +1 -0
  43. package/dist/commands/user.d.ts +3 -0
  44. package/dist/commands/user.d.ts.map +1 -0
  45. package/dist/commands/user.js +96 -0
  46. package/dist/commands/user.js.map +1 -0
  47. package/dist/commands/workspace.d.ts +3 -0
  48. package/dist/commands/workspace.d.ts.map +1 -0
  49. package/dist/commands/workspace.js +89 -0
  50. package/dist/commands/workspace.js.map +1 -0
  51. package/dist/lib/credential-manager.d.ts +13 -0
  52. package/dist/lib/credential-manager.d.ts.map +1 -0
  53. package/dist/lib/credential-manager.js +58 -0
  54. package/dist/lib/credential-manager.js.map +1 -0
  55. package/dist/lib/index.d.ts +3 -0
  56. package/dist/lib/index.d.ts.map +1 -0
  57. package/dist/lib/index.js +3 -0
  58. package/dist/lib/index.js.map +1 -0
  59. package/dist/lib/ref-manager.d.ts +26 -0
  60. package/dist/lib/ref-manager.d.ts.map +1 -0
  61. package/dist/lib/ref-manager.js +92 -0
  62. package/dist/lib/ref-manager.js.map +1 -0
  63. package/dist/lib/slack-client.d.ts +37 -0
  64. package/dist/lib/slack-client.d.ts.map +1 -0
  65. package/dist/lib/slack-client.js +379 -0
  66. package/dist/lib/slack-client.js.map +1 -0
  67. package/dist/lib/token-extractor.d.ts +28 -0
  68. package/dist/lib/token-extractor.d.ts.map +1 -0
  69. package/dist/lib/token-extractor.js +401 -0
  70. package/dist/lib/token-extractor.js.map +1 -0
  71. package/dist/package.json +37 -0
  72. package/dist/src/cli.d.ts +5 -0
  73. package/dist/src/cli.d.ts.map +1 -0
  74. package/dist/src/cli.js +22 -0
  75. package/dist/src/cli.js.map +1 -0
  76. package/dist/src/platforms/discord/cli.d.ts +5 -0
  77. package/dist/src/platforms/discord/cli.d.ts.map +1 -0
  78. package/dist/src/platforms/discord/cli.js +22 -0
  79. package/dist/src/platforms/discord/cli.js.map +1 -0
  80. package/dist/src/platforms/discord/client.d.ts +34 -0
  81. package/dist/src/platforms/discord/client.d.ts.map +1 -0
  82. package/dist/src/platforms/discord/client.js +187 -0
  83. package/dist/src/platforms/discord/client.js.map +1 -0
  84. package/dist/src/platforms/discord/client.test.d.ts +2 -0
  85. package/dist/src/platforms/discord/client.test.d.ts.map +1 -0
  86. package/dist/src/platforms/discord/client.test.js +367 -0
  87. package/dist/src/platforms/discord/client.test.js.map +1 -0
  88. package/dist/src/platforms/discord/commands/auth.d.ts +13 -0
  89. package/dist/src/platforms/discord/commands/auth.d.ts.map +1 -0
  90. package/dist/src/platforms/discord/commands/auth.js +155 -0
  91. package/dist/src/platforms/discord/commands/auth.js.map +1 -0
  92. package/dist/src/platforms/discord/commands/auth.test.d.ts +2 -0
  93. package/dist/src/platforms/discord/commands/auth.test.d.ts.map +1 -0
  94. package/dist/src/platforms/discord/commands/auth.test.js +65 -0
  95. package/dist/src/platforms/discord/commands/auth.test.js.map +1 -0
  96. package/dist/src/platforms/discord/commands/channel.d.ts +13 -0
  97. package/dist/src/platforms/discord/commands/channel.d.ts.map +1 -0
  98. package/dist/src/platforms/discord/commands/channel.js +99 -0
  99. package/dist/src/platforms/discord/commands/channel.js.map +1 -0
  100. package/dist/src/platforms/discord/commands/channel.test.d.ts +2 -0
  101. package/dist/src/platforms/discord/commands/channel.test.d.ts.map +1 -0
  102. package/dist/src/platforms/discord/commands/channel.test.js +136 -0
  103. package/dist/src/platforms/discord/commands/channel.test.js.map +1 -0
  104. package/dist/src/platforms/discord/commands/file.d.ts +13 -0
  105. package/dist/src/platforms/discord/commands/file.d.ts.map +1 -0
  106. package/dist/src/platforms/discord/commands/file.js +99 -0
  107. package/dist/src/platforms/discord/commands/file.js.map +1 -0
  108. package/dist/src/platforms/discord/commands/file.test.d.ts +2 -0
  109. package/dist/src/platforms/discord/commands/file.test.d.ts.map +1 -0
  110. package/dist/src/platforms/discord/commands/file.test.js +83 -0
  111. package/dist/src/platforms/discord/commands/file.test.js.map +1 -0
  112. package/dist/src/platforms/discord/commands/guild.d.ts +15 -0
  113. package/dist/src/platforms/discord/commands/guild.d.ts.map +1 -0
  114. package/dist/src/platforms/discord/commands/guild.js +102 -0
  115. package/dist/src/platforms/discord/commands/guild.js.map +1 -0
  116. package/dist/src/platforms/discord/commands/guild.test.d.ts +2 -0
  117. package/dist/src/platforms/discord/commands/guild.test.d.ts.map +1 -0
  118. package/dist/src/platforms/discord/commands/guild.test.js +100 -0
  119. package/dist/src/platforms/discord/commands/guild.test.js.map +1 -0
  120. package/dist/src/platforms/discord/commands/index.d.ts +9 -0
  121. package/dist/src/platforms/discord/commands/index.d.ts.map +1 -0
  122. package/dist/src/platforms/discord/commands/index.js +9 -0
  123. package/dist/src/platforms/discord/commands/index.js.map +1 -0
  124. package/dist/src/platforms/discord/commands/message.d.ts +17 -0
  125. package/dist/src/platforms/discord/commands/message.d.ts.map +1 -0
  126. package/dist/src/platforms/discord/commands/message.js +131 -0
  127. package/dist/src/platforms/discord/commands/message.js.map +1 -0
  128. package/dist/src/platforms/discord/commands/message.test.d.ts +2 -0
  129. package/dist/src/platforms/discord/commands/message.test.d.ts.map +1 -0
  130. package/dist/src/platforms/discord/commands/message.test.js +91 -0
  131. package/dist/src/platforms/discord/commands/message.test.js.map +1 -0
  132. package/dist/src/platforms/discord/commands/reaction.d.ts +12 -0
  133. package/dist/src/platforms/discord/commands/reaction.d.ts.map +1 -0
  134. package/dist/src/platforms/discord/commands/reaction.js +99 -0
  135. package/dist/src/platforms/discord/commands/reaction.js.map +1 -0
  136. package/dist/src/platforms/discord/commands/reaction.test.d.ts +2 -0
  137. package/dist/src/platforms/discord/commands/reaction.test.d.ts.map +1 -0
  138. package/dist/src/platforms/discord/commands/reaction.test.js +115 -0
  139. package/dist/src/platforms/discord/commands/reaction.test.js.map +1 -0
  140. package/dist/src/platforms/discord/commands/snapshot.d.ts +9 -0
  141. package/dist/src/platforms/discord/commands/snapshot.d.ts.map +1 -0
  142. package/dist/src/platforms/discord/commands/snapshot.js +80 -0
  143. package/dist/src/platforms/discord/commands/snapshot.js.map +1 -0
  144. package/dist/src/platforms/discord/commands/snapshot.test.d.ts +2 -0
  145. package/dist/src/platforms/discord/commands/snapshot.test.d.ts.map +1 -0
  146. package/dist/src/platforms/discord/commands/snapshot.test.js +25 -0
  147. package/dist/src/platforms/discord/commands/snapshot.test.js.map +1 -0
  148. package/dist/src/platforms/discord/commands/user.d.ts +3 -0
  149. package/dist/src/platforms/discord/commands/user.d.ts.map +1 -0
  150. package/dist/src/platforms/discord/commands/user.js +94 -0
  151. package/dist/src/platforms/discord/commands/user.js.map +1 -0
  152. package/dist/src/platforms/discord/commands/user.test.d.ts +2 -0
  153. package/dist/src/platforms/discord/commands/user.test.d.ts.map +1 -0
  154. package/dist/src/platforms/discord/commands/user.test.js +103 -0
  155. package/dist/src/platforms/discord/commands/user.test.js.map +1 -0
  156. package/dist/src/platforms/discord/credential-manager.d.ts +33 -0
  157. package/dist/src/platforms/discord/credential-manager.d.ts.map +1 -0
  158. package/dist/src/platforms/discord/credential-manager.js +73 -0
  159. package/dist/src/platforms/discord/credential-manager.js.map +1 -0
  160. package/dist/src/platforms/discord/credential-manager.test.d.ts +2 -0
  161. package/dist/src/platforms/discord/credential-manager.test.d.ts.map +1 -0
  162. package/dist/src/platforms/discord/credential-manager.test.js +136 -0
  163. package/dist/src/platforms/discord/credential-manager.test.js.map +1 -0
  164. package/dist/src/platforms/discord/token-extractor.d.ts +55 -0
  165. package/dist/src/platforms/discord/token-extractor.d.ts.map +1 -0
  166. package/dist/src/platforms/discord/token-extractor.js +462 -0
  167. package/dist/src/platforms/discord/token-extractor.js.map +1 -0
  168. package/dist/src/platforms/discord/token-extractor.test.d.ts +2 -0
  169. package/dist/src/platforms/discord/token-extractor.test.d.ts.map +1 -0
  170. package/dist/src/platforms/discord/token-extractor.test.js +789 -0
  171. package/dist/src/platforms/discord/token-extractor.test.js.map +1 -0
  172. package/dist/src/platforms/discord/types.d.ts +251 -0
  173. package/dist/src/platforms/discord/types.d.ts.map +1 -0
  174. package/dist/src/platforms/discord/types.js +74 -0
  175. package/dist/src/platforms/discord/types.js.map +1 -0
  176. package/dist/src/platforms/discord/types.test.d.ts +2 -0
  177. package/dist/src/platforms/discord/types.test.d.ts.map +1 -0
  178. package/dist/src/platforms/discord/types.test.js +211 -0
  179. package/dist/src/platforms/discord/types.test.js.map +1 -0
  180. package/dist/src/platforms/slack/cli.d.ts +5 -0
  181. package/dist/src/platforms/slack/cli.d.ts.map +1 -0
  182. package/dist/src/platforms/slack/cli.js +22 -0
  183. package/dist/src/platforms/slack/cli.js.map +1 -0
  184. package/dist/src/platforms/slack/client.d.ts +47 -0
  185. package/dist/src/platforms/slack/client.d.ts.map +1 -0
  186. package/dist/src/platforms/slack/client.js +412 -0
  187. package/dist/src/platforms/slack/client.js.map +1 -0
  188. package/dist/src/platforms/slack/commands/auth.d.ts +3 -0
  189. package/dist/src/platforms/slack/commands/auth.d.ts.map +1 -0
  190. package/dist/src/platforms/slack/commands/auth.js +156 -0
  191. package/dist/src/platforms/slack/commands/auth.js.map +1 -0
  192. package/dist/src/platforms/slack/commands/channel.d.ts +3 -0
  193. package/dist/src/platforms/slack/commands/channel.d.ts.map +1 -0
  194. package/dist/src/platforms/slack/commands/channel.js +118 -0
  195. package/dist/src/platforms/slack/commands/channel.js.map +1 -0
  196. package/dist/src/platforms/slack/commands/file.d.ts +3 -0
  197. package/dist/src/platforms/slack/commands/file.d.ts.map +1 -0
  198. package/dist/src/platforms/slack/commands/file.js +113 -0
  199. package/dist/src/platforms/slack/commands/file.js.map +1 -0
  200. package/dist/src/platforms/slack/commands/index.d.ts +9 -0
  201. package/dist/src/platforms/slack/commands/index.d.ts.map +1 -0
  202. package/dist/src/platforms/slack/commands/index.js +9 -0
  203. package/dist/src/platforms/slack/commands/index.js.map +1 -0
  204. package/dist/src/platforms/slack/commands/message.d.ts +3 -0
  205. package/dist/src/platforms/slack/commands/message.d.ts.map +1 -0
  206. package/dist/src/platforms/slack/commands/message.js +263 -0
  207. package/dist/src/platforms/slack/commands/message.js.map +1 -0
  208. package/dist/src/platforms/slack/commands/reaction.d.ts +3 -0
  209. package/dist/src/platforms/slack/commands/reaction.d.ts.map +1 -0
  210. package/dist/src/platforms/slack/commands/reaction.js +100 -0
  211. package/dist/src/platforms/slack/commands/reaction.js.map +1 -0
  212. package/dist/src/platforms/slack/commands/snapshot.d.ts +3 -0
  213. package/dist/src/platforms/slack/commands/snapshot.d.ts.map +1 -0
  214. package/dist/src/platforms/slack/commands/snapshot.js +87 -0
  215. package/dist/src/platforms/slack/commands/snapshot.js.map +1 -0
  216. package/dist/src/platforms/slack/commands/user.d.ts +3 -0
  217. package/dist/src/platforms/slack/commands/user.d.ts.map +1 -0
  218. package/dist/src/platforms/slack/commands/user.js +96 -0
  219. package/dist/src/platforms/slack/commands/user.js.map +1 -0
  220. package/dist/src/platforms/slack/commands/workspace.d.ts +3 -0
  221. package/dist/src/platforms/slack/commands/workspace.d.ts.map +1 -0
  222. package/dist/src/platforms/slack/commands/workspace.js +89 -0
  223. package/dist/src/platforms/slack/commands/workspace.js.map +1 -0
  224. package/dist/src/platforms/slack/credential-manager.d.ts +13 -0
  225. package/dist/src/platforms/slack/credential-manager.d.ts.map +1 -0
  226. package/dist/src/platforms/slack/credential-manager.js +58 -0
  227. package/dist/src/platforms/slack/credential-manager.js.map +1 -0
  228. package/dist/src/platforms/slack/index.d.ts +3 -0
  229. package/dist/src/platforms/slack/index.d.ts.map +1 -0
  230. package/dist/src/platforms/slack/index.js +3 -0
  231. package/dist/src/platforms/slack/index.js.map +1 -0
  232. package/dist/src/platforms/slack/token-extractor.d.ts +28 -0
  233. package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -0
  234. package/dist/src/platforms/slack/token-extractor.js +401 -0
  235. package/dist/src/platforms/slack/token-extractor.js.map +1 -0
  236. package/dist/src/platforms/slack/types.d.ts +369 -0
  237. package/dist/src/platforms/slack/types.d.ts.map +1 -0
  238. package/dist/src/platforms/slack/types.js +92 -0
  239. package/dist/src/platforms/slack/types.js.map +1 -0
  240. package/dist/src/shared/utils/concurrency.d.ts +2 -0
  241. package/dist/src/shared/utils/concurrency.d.ts.map +1 -0
  242. package/dist/src/shared/utils/concurrency.js +14 -0
  243. package/dist/src/shared/utils/concurrency.js.map +1 -0
  244. package/dist/src/shared/utils/concurrency.test.d.ts +2 -0
  245. package/dist/src/shared/utils/concurrency.test.d.ts.map +1 -0
  246. package/dist/src/shared/utils/concurrency.test.js +39 -0
  247. package/dist/src/shared/utils/concurrency.test.js.map +1 -0
  248. package/dist/src/shared/utils/error-handler.d.ts +2 -0
  249. package/dist/src/shared/utils/error-handler.d.ts.map +1 -0
  250. package/dist/src/shared/utils/error-handler.js +5 -0
  251. package/dist/src/shared/utils/error-handler.js.map +1 -0
  252. package/dist/src/shared/utils/output.d.ts +2 -0
  253. package/dist/src/shared/utils/output.d.ts.map +1 -0
  254. package/dist/src/shared/utils/output.js +4 -0
  255. package/dist/src/shared/utils/output.js.map +1 -0
  256. package/dist/tests/cli.test.d.ts +2 -0
  257. package/dist/tests/cli.test.d.ts.map +1 -0
  258. package/dist/tests/cli.test.js +83 -0
  259. package/dist/tests/cli.test.js.map +1 -0
  260. package/dist/tests/commands/.test-slack-data/Local Storage/leveldb/CURRENT +1 -0
  261. package/dist/tests/commands/.test-slack-data/Local Storage/leveldb/LOCK +0 -0
  262. package/dist/tests/commands/.test-slack-data/Local Storage/leveldb/LOG +3 -0
  263. package/dist/tests/commands/.test-slack-data/Local Storage/leveldb/LOG.old +1 -0
  264. package/dist/tests/commands/.test-slack-data/Local Storage/leveldb/MANIFEST-000004 +0 -0
  265. package/dist/tests/commands/auth.test.d.ts +2 -0
  266. package/dist/tests/commands/auth.test.d.ts.map +1 -0
  267. package/dist/tests/commands/auth.test.js +304 -0
  268. package/dist/tests/commands/auth.test.js.map +1 -0
  269. package/dist/tests/commands/channel.test.d.ts +2 -0
  270. package/dist/tests/commands/channel.test.d.ts.map +1 -0
  271. package/dist/tests/commands/channel.test.js +166 -0
  272. package/dist/tests/commands/channel.test.js.map +1 -0
  273. package/dist/tests/commands/file.test.d.ts +2 -0
  274. package/dist/tests/commands/file.test.d.ts.map +1 -0
  275. package/dist/tests/commands/file.test.js +175 -0
  276. package/dist/tests/commands/file.test.js.map +1 -0
  277. package/dist/tests/commands/message.test.d.ts +2 -0
  278. package/dist/tests/commands/message.test.d.ts.map +1 -0
  279. package/dist/tests/commands/message.test.js +293 -0
  280. package/dist/tests/commands/message.test.js.map +1 -0
  281. package/dist/tests/commands/reaction.test.d.ts +2 -0
  282. package/dist/tests/commands/reaction.test.d.ts.map +1 -0
  283. package/dist/tests/commands/reaction.test.js +84 -0
  284. package/dist/tests/commands/reaction.test.js.map +1 -0
  285. package/dist/tests/commands/snapshot.test.d.ts +2 -0
  286. package/dist/tests/commands/snapshot.test.d.ts.map +1 -0
  287. package/dist/tests/commands/snapshot.test.js +280 -0
  288. package/dist/tests/commands/snapshot.test.js.map +1 -0
  289. package/dist/tests/commands/user.test.d.ts +2 -0
  290. package/dist/tests/commands/user.test.d.ts.map +1 -0
  291. package/dist/tests/commands/user.test.js +117 -0
  292. package/dist/tests/commands/user.test.js.map +1 -0
  293. package/dist/tests/commands/workspace.test.d.ts +2 -0
  294. package/dist/tests/commands/workspace.test.d.ts.map +1 -0
  295. package/dist/tests/commands/workspace.test.js +453 -0
  296. package/dist/tests/commands/workspace.test.js.map +1 -0
  297. package/dist/tests/credential-manager.test.d.ts +2 -0
  298. package/dist/tests/credential-manager.test.d.ts.map +1 -0
  299. package/dist/tests/credential-manager.test.js +199 -0
  300. package/dist/tests/credential-manager.test.js.map +1 -0
  301. package/dist/tests/slack-client.test.d.ts +2 -0
  302. package/dist/tests/slack-client.test.d.ts.map +1 -0
  303. package/dist/tests/slack-client.test.js +741 -0
  304. package/dist/tests/slack-client.test.js.map +1 -0
  305. package/dist/tests/types.test.d.ts +2 -0
  306. package/dist/tests/types.test.d.ts.map +1 -0
  307. package/dist/tests/types.test.js +215 -0
  308. package/dist/tests/types.test.js.map +1 -0
  309. package/dist/types/index.d.ts +369 -0
  310. package/dist/types/index.d.ts.map +1 -0
  311. package/dist/types/index.js +92 -0
  312. package/dist/types/index.js.map +1 -0
  313. package/dist/utils/error-handler.d.ts +2 -0
  314. package/dist/utils/error-handler.d.ts.map +1 -0
  315. package/dist/utils/error-handler.js +5 -0
  316. package/dist/utils/error-handler.js.map +1 -0
  317. package/dist/utils/output.d.ts +2 -0
  318. package/dist/utils/output.d.ts.map +1 -0
  319. package/dist/utils/output.js +4 -0
  320. package/dist/utils/output.js.map +1 -0
  321. package/docs/discord.md +182 -0
  322. package/docs/slack.md +160 -0
  323. package/package.json +37 -0
  324. package/skills/agent-discord/SKILL.md +273 -0
  325. package/skills/agent-discord/references/authentication.md +294 -0
  326. package/skills/agent-discord/references/common-patterns.md +455 -0
  327. package/skills/agent-discord/templates/guild-summary.sh +167 -0
  328. package/skills/agent-discord/templates/monitor-channel.sh +180 -0
  329. package/skills/agent-discord/templates/post-message.sh +173 -0
  330. package/skills/agent-slack/SKILL.md +268 -0
  331. package/skills/agent-slack/references/authentication.md +332 -0
  332. package/skills/agent-slack/references/common-patterns.md +527 -0
  333. package/skills/agent-slack/templates/monitor-channel.sh +186 -0
  334. package/skills/agent-slack/templates/post-message.sh +130 -0
  335. package/skills/agent-slack/templates/workspace-summary.sh +149 -0
  336. package/src/cli.ts +29 -0
  337. package/src/platforms/discord/cli.ts +36 -0
  338. package/src/platforms/discord/client.test.ts +456 -0
  339. package/src/platforms/discord/client.ts +281 -0
  340. package/src/platforms/discord/commands/auth.test.ts +72 -0
  341. package/src/platforms/discord/commands/auth.ts +206 -0
  342. package/src/platforms/discord/commands/channel.test.ts +153 -0
  343. package/src/platforms/discord/commands/channel.ts +127 -0
  344. package/src/platforms/discord/commands/file.test.ts +98 -0
  345. package/src/platforms/discord/commands/file.ts +134 -0
  346. package/src/platforms/discord/commands/guild.test.ts +117 -0
  347. package/src/platforms/discord/commands/guild.ts +129 -0
  348. package/src/platforms/discord/commands/index.ts +8 -0
  349. package/src/platforms/discord/commands/message.test.ts +107 -0
  350. package/src/platforms/discord/commands/message.ts +182 -0
  351. package/src/platforms/discord/commands/reaction.test.ts +123 -0
  352. package/src/platforms/discord/commands/reaction.ts +156 -0
  353. package/src/platforms/discord/commands/snapshot.test.ts +29 -0
  354. package/src/platforms/discord/commands/snapshot.ts +104 -0
  355. package/src/platforms/discord/commands/user.test.ts +115 -0
  356. package/src/platforms/discord/commands/user.ts +124 -0
  357. package/src/platforms/discord/credential-manager.test.ts +173 -0
  358. package/src/platforms/discord/credential-manager.ts +95 -0
  359. package/src/platforms/discord/token-extractor.test.ts +918 -0
  360. package/src/platforms/discord/token-extractor.ts +549 -0
  361. package/src/platforms/discord/types.test.ts +245 -0
  362. package/src/platforms/discord/types.ts +158 -0
  363. package/src/platforms/slack/cli.ts +36 -0
  364. package/src/platforms/slack/client.ts +466 -0
  365. package/src/platforms/slack/commands/auth.ts +211 -0
  366. package/src/platforms/slack/commands/channel.ts +158 -0
  367. package/src/platforms/slack/commands/file.ts +153 -0
  368. package/src/platforms/slack/commands/index.ts +8 -0
  369. package/src/platforms/slack/commands/message.ts +369 -0
  370. package/src/platforms/slack/commands/reaction.ts +166 -0
  371. package/src/platforms/slack/commands/snapshot.ts +114 -0
  372. package/src/platforms/slack/commands/user.ts +110 -0
  373. package/src/platforms/slack/commands/workspace.ts +111 -0
  374. package/src/platforms/slack/credential-manager.ts +74 -0
  375. package/src/platforms/slack/index.ts +2 -0
  376. package/src/platforms/slack/token-extractor.ts +496 -0
  377. package/src/platforms/slack/types.ts +193 -0
  378. package/src/shared/utils/concurrency.test.ts +53 -0
  379. package/src/shared/utils/concurrency.ts +20 -0
  380. package/src/shared/utils/error-handler.ts +4 -0
  381. package/src/shared/utils/output.ts +3 -0
  382. package/tests/cli.test.ts +94 -0
  383. package/tests/commands/auth.test.ts +383 -0
  384. package/tests/commands/channel.test.ts +185 -0
  385. package/tests/commands/file.test.ts +204 -0
  386. package/tests/commands/message.test.ts +344 -0
  387. package/tests/commands/reaction.test.ts +101 -0
  388. package/tests/commands/snapshot.test.ts +308 -0
  389. package/tests/commands/user.test.ts +138 -0
  390. package/tests/commands/workspace.test.ts +528 -0
  391. package/tests/credential-manager.test.ts +241 -0
  392. package/tests/slack-client.test.ts +916 -0
  393. package/tests/types.test.ts +241 -0
  394. package/tsconfig.json +36 -0
@@ -0,0 +1,453 @@
1
+ import { afterAll, beforeEach, describe, expect, test } from 'bun:test';
2
+ import { rmSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { CredentialManager } from '../../src/platforms/slack/credential-manager';
5
+ const testConfigDir = join(import.meta.dir, '.test-workspace-config');
6
+ describe('Workspace Commands', () => {
7
+ let credManager;
8
+ beforeEach(() => {
9
+ rmSync(testConfigDir, { recursive: true, force: true });
10
+ credManager = new CredentialManager(testConfigDir);
11
+ });
12
+ afterAll(() => {
13
+ rmSync(testConfigDir, { recursive: true, force: true });
14
+ });
15
+ describe('workspace list', () => {
16
+ test('returns empty list when no workspaces exist', async () => {
17
+ // Given: No workspaces configured
18
+ // When: Loading config
19
+ const config = await credManager.load();
20
+ // Then: Should have empty workspaces
21
+ expect(Object.keys(config.workspaces)).toHaveLength(0);
22
+ });
23
+ test('lists all workspaces with current marker', async () => {
24
+ // Given: Multiple workspaces with one as current
25
+ const ws1 = {
26
+ workspace_id: 'T123',
27
+ workspace_name: 'acme-corp',
28
+ token: 'xoxc-123',
29
+ cookie: 'xoxd-123',
30
+ };
31
+ const ws2 = {
32
+ workspace_id: 'T456',
33
+ workspace_name: 'side-project',
34
+ token: 'xoxc-456',
35
+ cookie: 'xoxd-456',
36
+ };
37
+ await credManager.setWorkspace(ws1);
38
+ await credManager.setWorkspace(ws2);
39
+ await credManager.setCurrentWorkspace('T123');
40
+ // When: Loading config
41
+ const config = await credManager.load();
42
+ const workspaces = Object.values(config.workspaces);
43
+ // Then: Should list all workspaces
44
+ expect(workspaces).toHaveLength(2);
45
+ expect(workspaces.map((w) => w.workspace_id)).toContain('T123');
46
+ expect(workspaces.map((w) => w.workspace_id)).toContain('T456');
47
+ expect(config.current_workspace).toBe('T123');
48
+ });
49
+ test('shows current marker for active workspace', async () => {
50
+ // Given: Workspace set as current
51
+ const ws = {
52
+ workspace_id: 'T789',
53
+ workspace_name: 'current-ws',
54
+ token: 'xoxc-789',
55
+ cookie: 'xoxd-789',
56
+ };
57
+ await credManager.setWorkspace(ws);
58
+ await credManager.setCurrentWorkspace('T789');
59
+ // When: Loading config
60
+ const config = await credManager.load();
61
+ // Then: Current workspace should match
62
+ expect(config.current_workspace).toBe('T789');
63
+ expect(config.workspaces.T789).toBeDefined();
64
+ });
65
+ test('handles list with no current workspace', async () => {
66
+ // Given: Workspaces exist but none is current
67
+ const ws = {
68
+ workspace_id: 'T999',
69
+ workspace_name: 'no-current',
70
+ token: 'xoxc-999',
71
+ cookie: 'xoxd-999',
72
+ };
73
+ await credManager.setWorkspace(ws);
74
+ // When: Loading config
75
+ const config = await credManager.load();
76
+ // Then: current_workspace should be null
77
+ expect(config.current_workspace).toBeNull();
78
+ expect(config.workspaces.T999).toBeDefined();
79
+ });
80
+ });
81
+ describe('workspace switch', () => {
82
+ test('switches to existing workspace', async () => {
83
+ // Given: Multiple workspaces exist
84
+ const ws1 = {
85
+ workspace_id: 'T111',
86
+ workspace_name: 'first',
87
+ token: 'xoxc-111',
88
+ cookie: 'xoxd-111',
89
+ };
90
+ const ws2 = {
91
+ workspace_id: 'T222',
92
+ workspace_name: 'second',
93
+ token: 'xoxc-222',
94
+ cookie: 'xoxd-222',
95
+ };
96
+ await credManager.setWorkspace(ws1);
97
+ await credManager.setWorkspace(ws2);
98
+ await credManager.setCurrentWorkspace('T111');
99
+ // When: Switching to second workspace
100
+ await credManager.setCurrentWorkspace('T222');
101
+ // Then: Current should be updated
102
+ const config = await credManager.load();
103
+ expect(config.current_workspace).toBe('T222');
104
+ });
105
+ test('fails when workspace does not exist', async () => {
106
+ // Given: Workspace does not exist
107
+ // When: Trying to get non-existent workspace
108
+ const ws = await credManager.getWorkspace('nonexistent');
109
+ // Then: Should return null
110
+ expect(ws).toBeNull();
111
+ });
112
+ test('validates workspace exists before switching', async () => {
113
+ // Given: Only one workspace exists
114
+ const ws = {
115
+ workspace_id: 'T333',
116
+ workspace_name: 'only-one',
117
+ token: 'xoxc-333',
118
+ cookie: 'xoxd-333',
119
+ };
120
+ await credManager.setWorkspace(ws);
121
+ await credManager.setCurrentWorkspace('T333');
122
+ // When: Trying to switch to non-existent workspace
123
+ const config = await credManager.load();
124
+ const targetExists = 'T999' in config.workspaces;
125
+ // Then: Should not exist
126
+ expect(targetExists).toBe(false);
127
+ });
128
+ test('preserves workspace credentials when switching', async () => {
129
+ // Given: Multiple workspaces with different credentials
130
+ const ws1 = {
131
+ workspace_id: 'T444',
132
+ workspace_name: 'first',
133
+ token: 'token-444',
134
+ cookie: 'cookie-444',
135
+ };
136
+ const ws2 = {
137
+ workspace_id: 'T555',
138
+ workspace_name: 'second',
139
+ token: 'token-555',
140
+ cookie: 'cookie-555',
141
+ };
142
+ await credManager.setWorkspace(ws1);
143
+ await credManager.setWorkspace(ws2);
144
+ // When: Switching between workspaces
145
+ await credManager.setCurrentWorkspace('T444');
146
+ let config = await credManager.load();
147
+ expect(config.current_workspace).toBe('T444');
148
+ await credManager.setCurrentWorkspace('T555');
149
+ config = await credManager.load();
150
+ // Then: Both workspaces should still have their credentials
151
+ expect(config.workspaces.T444.token).toBe('token-444');
152
+ expect(config.workspaces.T555.token).toBe('token-555');
153
+ expect(config.current_workspace).toBe('T555');
154
+ });
155
+ });
156
+ describe('workspace current', () => {
157
+ test('returns current workspace details', async () => {
158
+ // Given: A current workspace is set
159
+ const ws = {
160
+ workspace_id: 'T666',
161
+ workspace_name: 'current-workspace',
162
+ token: 'xoxc-666',
163
+ cookie: 'xoxd-666',
164
+ };
165
+ await credManager.setWorkspace(ws);
166
+ await credManager.setCurrentWorkspace('T666');
167
+ // When: Getting current workspace
168
+ const current = await credManager.getWorkspace();
169
+ // Then: Should return workspace details
170
+ expect(current).not.toBeNull();
171
+ expect(current?.workspace_id).toBe('T666');
172
+ expect(current?.workspace_name).toBe('current-workspace');
173
+ expect(current?.token).toBe('xoxc-666');
174
+ expect(current?.cookie).toBe('xoxd-666');
175
+ });
176
+ test('returns null when no current workspace set', async () => {
177
+ // Given: No current workspace
178
+ // When: Getting current workspace
179
+ const current = await credManager.getWorkspace();
180
+ // Then: Should return null
181
+ expect(current).toBeNull();
182
+ });
183
+ test('returns null when current workspace is deleted', async () => {
184
+ // Given: Current workspace is set
185
+ const ws = {
186
+ workspace_id: 'T777',
187
+ workspace_name: 'to-delete',
188
+ token: 'xoxc-777',
189
+ cookie: 'xoxd-777',
190
+ };
191
+ await credManager.setWorkspace(ws);
192
+ await credManager.setCurrentWorkspace('T777');
193
+ // When: Workspace is removed
194
+ await credManager.removeWorkspace('T777');
195
+ // Then: Current should be null
196
+ const current = await credManager.getWorkspace();
197
+ expect(current).toBeNull();
198
+ });
199
+ test('shows correct workspace after switching', async () => {
200
+ // Given: Multiple workspaces with one as current
201
+ const ws1 = {
202
+ workspace_id: 'T888',
203
+ workspace_name: 'first',
204
+ token: 'token-888',
205
+ cookie: 'cookie-888',
206
+ };
207
+ const ws2 = {
208
+ workspace_id: 'T999',
209
+ workspace_name: 'second',
210
+ token: 'token-999',
211
+ cookie: 'cookie-999',
212
+ };
213
+ await credManager.setWorkspace(ws1);
214
+ await credManager.setWorkspace(ws2);
215
+ await credManager.setCurrentWorkspace('T888');
216
+ // When: Switching to second workspace
217
+ await credManager.setCurrentWorkspace('T999');
218
+ const current = await credManager.getWorkspace();
219
+ // Then: Should return second workspace
220
+ expect(current?.workspace_id).toBe('T999');
221
+ expect(current?.workspace_name).toBe('second');
222
+ });
223
+ });
224
+ describe('workspace remove', () => {
225
+ test('removes workspace by id', async () => {
226
+ // Given: A workspace exists
227
+ const ws = {
228
+ workspace_id: 'T-remove',
229
+ workspace_name: 'to-remove',
230
+ token: 'xoxc-remove',
231
+ cookie: 'xoxd-remove',
232
+ };
233
+ await credManager.setWorkspace(ws);
234
+ // When: Workspace is removed
235
+ await credManager.removeWorkspace('T-remove');
236
+ // Then: Workspace should not exist
237
+ const retrieved = await credManager.getWorkspace('T-remove');
238
+ expect(retrieved).toBeNull();
239
+ });
240
+ test('removes current workspace and clears current', async () => {
241
+ // Given: Current workspace is set
242
+ const ws = {
243
+ workspace_id: 'T-current-remove',
244
+ workspace_name: 'current-to-remove',
245
+ token: 'xoxc-current-remove',
246
+ cookie: 'xoxd-current-remove',
247
+ };
248
+ await credManager.setWorkspace(ws);
249
+ await credManager.setCurrentWorkspace('T-current-remove');
250
+ // When: Current workspace is removed
251
+ await credManager.removeWorkspace('T-current-remove');
252
+ // Then: Current should be null
253
+ const config = await credManager.load();
254
+ expect(config.current_workspace).toBeNull();
255
+ });
256
+ test('removes workspace without affecting others', async () => {
257
+ // Given: Multiple workspaces exist
258
+ const ws1 = {
259
+ workspace_id: 'T-keep',
260
+ workspace_name: 'keep',
261
+ token: 'token-keep',
262
+ cookie: 'cookie-keep',
263
+ };
264
+ const ws2 = {
265
+ workspace_id: 'T-remove-one',
266
+ workspace_name: 'remove-one',
267
+ token: 'token-remove',
268
+ cookie: 'cookie-remove',
269
+ };
270
+ await credManager.setWorkspace(ws1);
271
+ await credManager.setWorkspace(ws2);
272
+ await credManager.setCurrentWorkspace('T-keep');
273
+ // When: One workspace is removed
274
+ await credManager.removeWorkspace('T-remove-one');
275
+ // Then: Other workspace should remain
276
+ const config = await credManager.load();
277
+ expect(config.workspaces['T-keep']).toBeDefined();
278
+ expect(config.workspaces['T-remove-one']).toBeUndefined();
279
+ expect(config.current_workspace).toBe('T-keep');
280
+ });
281
+ test('handles removing non-existent workspace gracefully', async () => {
282
+ // Given: Workspace does not exist
283
+ // When: Trying to remove non-existent workspace
284
+ await credManager.removeWorkspace('nonexistent');
285
+ // Then: Should not throw error
286
+ const config = await credManager.load();
287
+ expect(config.workspaces).toEqual({});
288
+ });
289
+ test('clears current only if removed workspace was current', async () => {
290
+ // Given: Multiple workspaces with one as current
291
+ const ws1 = {
292
+ workspace_id: 'T-current-1',
293
+ workspace_name: 'current-1',
294
+ token: 'token-1',
295
+ cookie: 'cookie-1',
296
+ };
297
+ const ws2 = {
298
+ workspace_id: 'T-other',
299
+ workspace_name: 'other',
300
+ token: 'token-other',
301
+ cookie: 'cookie-other',
302
+ };
303
+ await credManager.setWorkspace(ws1);
304
+ await credManager.setWorkspace(ws2);
305
+ await credManager.setCurrentWorkspace('T-current-1');
306
+ // When: Non-current workspace is removed
307
+ await credManager.removeWorkspace('T-other');
308
+ // Then: Current should remain unchanged
309
+ const config = await credManager.load();
310
+ expect(config.current_workspace).toBe('T-current-1');
311
+ });
312
+ });
313
+ describe('Output Formatting', () => {
314
+ test('formats list output correctly', async () => {
315
+ // Given: Multiple workspaces
316
+ const ws1 = {
317
+ workspace_id: 'T-format-1',
318
+ workspace_name: 'format-1',
319
+ token: 'token-1',
320
+ cookie: 'cookie-1',
321
+ };
322
+ const ws2 = {
323
+ workspace_id: 'T-format-2',
324
+ workspace_name: 'format-2',
325
+ token: 'token-2',
326
+ cookie: 'cookie-2',
327
+ };
328
+ await credManager.setWorkspace(ws1);
329
+ await credManager.setWorkspace(ws2);
330
+ await credManager.setCurrentWorkspace('T-format-1');
331
+ // When: Creating list output
332
+ const config = await credManager.load();
333
+ const output = Object.values(config.workspaces).map((ws) => ({
334
+ id: ws.workspace_id,
335
+ name: ws.workspace_name,
336
+ current: ws.workspace_id === config.current_workspace,
337
+ }));
338
+ // Then: Should be valid JSON
339
+ const json = JSON.stringify(output);
340
+ const parsed = JSON.parse(json);
341
+ expect(parsed).toHaveLength(2);
342
+ expect(parsed[0].current).toBe(true);
343
+ expect(parsed[1].current).toBe(false);
344
+ });
345
+ test('formats switch output correctly', async () => {
346
+ // Given: Workspace to switch to
347
+ const ws = {
348
+ workspace_id: 'T-switch-format',
349
+ workspace_name: 'switch-format',
350
+ token: 'token-switch',
351
+ cookie: 'cookie-switch',
352
+ };
353
+ await credManager.setWorkspace(ws);
354
+ await credManager.setCurrentWorkspace('T-switch-format');
355
+ // When: Creating switch output
356
+ const output = { current: 'T-switch-format' };
357
+ // Then: Should be valid JSON
358
+ const json = JSON.stringify(output);
359
+ const parsed = JSON.parse(json);
360
+ expect(parsed.current).toBe('T-switch-format');
361
+ });
362
+ test('formats current output correctly', async () => {
363
+ // Given: Current workspace
364
+ const ws = {
365
+ workspace_id: 'T-current-format',
366
+ workspace_name: 'current-format',
367
+ token: 'token-current',
368
+ cookie: 'cookie-current',
369
+ };
370
+ await credManager.setWorkspace(ws);
371
+ await credManager.setCurrentWorkspace('T-current-format');
372
+ // When: Creating current output
373
+ const current = await credManager.getWorkspace();
374
+ const output = {
375
+ workspace_id: current?.workspace_id,
376
+ workspace_name: current?.workspace_name,
377
+ };
378
+ // Then: Should be valid JSON
379
+ const json = JSON.stringify(output);
380
+ const parsed = JSON.parse(json);
381
+ expect(parsed.workspace_id).toBe('T-current-format');
382
+ expect(parsed.workspace_name).toBe('current-format');
383
+ });
384
+ test('formats remove output correctly', async () => {
385
+ // Given: Workspace to remove
386
+ const ws = {
387
+ workspace_id: 'T-remove-format',
388
+ workspace_name: 'remove-format',
389
+ token: 'token-remove',
390
+ cookie: 'cookie-remove',
391
+ };
392
+ await credManager.setWorkspace(ws);
393
+ // When: Creating remove output
394
+ const output = { removed: 'T-remove-format' };
395
+ // Then: Should be valid JSON
396
+ const json = JSON.stringify(output);
397
+ const parsed = JSON.parse(json);
398
+ expect(parsed.removed).toBe('T-remove-format');
399
+ });
400
+ test('pretty prints JSON correctly', async () => {
401
+ // Given: Output data
402
+ const output = {
403
+ id: 'T123',
404
+ name: 'test',
405
+ current: true,
406
+ };
407
+ // When: Pretty printing
408
+ const pretty = JSON.stringify(output, null, 2);
409
+ // Then: Should contain newlines and indentation
410
+ expect(pretty).toContain('\n');
411
+ expect(pretty).toContain(' ');
412
+ });
413
+ });
414
+ describe('Error Handling', () => {
415
+ test('handles missing workspace gracefully', async () => {
416
+ // Given: Workspace does not exist
417
+ // When: Trying to get workspace
418
+ const ws = await credManager.getWorkspace('missing');
419
+ // Then: Should return null
420
+ expect(ws).toBeNull();
421
+ });
422
+ test('handles corrupted config gracefully', async () => {
423
+ // Given: Config directory exists
424
+ // When: Loading from empty directory
425
+ const config = await credManager.load();
426
+ // Then: Should return default config
427
+ expect(config.current_workspace).toBeNull();
428
+ expect(config.workspaces).toEqual({});
429
+ });
430
+ test('handles concurrent operations', async () => {
431
+ // Given: Multiple workspaces
432
+ const ws1 = {
433
+ workspace_id: 'T-concurrent-1',
434
+ workspace_name: 'concurrent-1',
435
+ token: 'token-1',
436
+ cookie: 'cookie-1',
437
+ };
438
+ const ws2 = {
439
+ workspace_id: 'T-concurrent-2',
440
+ workspace_name: 'concurrent-2',
441
+ token: 'token-2',
442
+ cookie: 'cookie-2',
443
+ };
444
+ // When: Setting workspaces sequentially
445
+ await credManager.setWorkspace(ws1);
446
+ await credManager.setWorkspace(ws2);
447
+ // Then: Both should be saved
448
+ const config = await credManager.load();
449
+ expect(Object.keys(config.workspaces)).toHaveLength(2);
450
+ });
451
+ });
452
+ });
453
+ //# sourceMappingURL=workspace.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.test.js","sourceRoot":"","sources":["../../../tests/commands/workspace.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=credential-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-manager.test.d.ts","sourceRoot":"","sources":["../../tests/credential-manager.test.ts"],"names":[],"mappings":""}