agent-messenger 1.3.0 → 1.3.1

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 (225) hide show
  1. package/.claude-plugin/marketplace.json +27 -1
  2. package/.claude-plugin/plugin.json +17 -4
  3. package/.env.template +3 -0
  4. package/.github/workflows/release.yml +94 -0
  5. package/AGENTS.md +48 -0
  6. package/README.md +25 -20
  7. package/biome.json +15 -39
  8. package/bun.lock +69 -0
  9. package/dist/package.json +10 -3
  10. package/dist/src/cli.d.ts.map +1 -1
  11. package/dist/src/cli.js +1 -4
  12. package/dist/src/cli.js.map +1 -1
  13. package/dist/src/platforms/discord/client.d.ts.map +1 -1
  14. package/dist/src/platforms/discord/client.js.map +1 -1
  15. package/dist/src/platforms/discord/commands/auth.d.ts.map +1 -1
  16. package/dist/src/platforms/discord/commands/auth.js.map +1 -1
  17. package/dist/src/platforms/discord/commands/channel.d.ts.map +1 -1
  18. package/dist/src/platforms/discord/commands/channel.js.map +1 -1
  19. package/dist/src/platforms/discord/commands/dm.d.ts.map +1 -1
  20. package/dist/src/platforms/discord/commands/dm.js.map +1 -1
  21. package/dist/src/platforms/discord/commands/file.d.ts.map +1 -1
  22. package/dist/src/platforms/discord/commands/file.js +1 -4
  23. package/dist/src/platforms/discord/commands/file.js.map +1 -1
  24. package/dist/src/platforms/discord/commands/friend.d.ts.map +1 -1
  25. package/dist/src/platforms/discord/commands/friend.js +1 -3
  26. package/dist/src/platforms/discord/commands/friend.js.map +1 -1
  27. package/dist/src/platforms/discord/commands/member.d.ts.map +1 -1
  28. package/dist/src/platforms/discord/commands/member.js.map +1 -1
  29. package/dist/src/platforms/discord/commands/mention.d.ts.map +1 -1
  30. package/dist/src/platforms/discord/commands/mention.js.map +1 -1
  31. package/dist/src/platforms/discord/commands/message.d.ts.map +1 -1
  32. package/dist/src/platforms/discord/commands/message.js.map +1 -1
  33. package/dist/src/platforms/discord/commands/note.d.ts.map +1 -1
  34. package/dist/src/platforms/discord/commands/note.js.map +1 -1
  35. package/dist/src/platforms/discord/commands/profile.d.ts.map +1 -1
  36. package/dist/src/platforms/discord/commands/profile.js.map +1 -1
  37. package/dist/src/platforms/discord/commands/reaction.d.ts.map +1 -1
  38. package/dist/src/platforms/discord/commands/reaction.js.map +1 -1
  39. package/dist/src/platforms/discord/commands/server.d.ts.map +1 -1
  40. package/dist/src/platforms/discord/commands/server.js.map +1 -1
  41. package/dist/src/platforms/discord/commands/snapshot.d.ts.map +1 -1
  42. package/dist/src/platforms/discord/commands/snapshot.js.map +1 -1
  43. package/dist/src/platforms/discord/commands/thread.d.ts.map +1 -1
  44. package/dist/src/platforms/discord/commands/thread.js.map +1 -1
  45. package/dist/src/platforms/discord/commands/user.d.ts.map +1 -1
  46. package/dist/src/platforms/discord/commands/user.js.map +1 -1
  47. package/dist/src/platforms/discord/credential-manager.d.ts.map +1 -1
  48. package/dist/src/platforms/discord/credential-manager.js.map +1 -1
  49. package/dist/src/platforms/discord/token-extractor.d.ts.map +1 -1
  50. package/dist/src/platforms/discord/token-extractor.js +2 -7
  51. package/dist/src/platforms/discord/token-extractor.js.map +1 -1
  52. package/dist/src/platforms/slack/client.d.ts.map +1 -1
  53. package/dist/src/platforms/slack/client.js.map +1 -1
  54. package/dist/src/platforms/slack/commands/activity.d.ts.map +1 -1
  55. package/dist/src/platforms/slack/commands/activity.js.map +1 -1
  56. package/dist/src/platforms/slack/commands/auth.d.ts.map +1 -1
  57. package/dist/src/platforms/slack/commands/auth.js.map +1 -1
  58. package/dist/src/platforms/slack/commands/channel.d.ts.map +1 -1
  59. package/dist/src/platforms/slack/commands/channel.js.map +1 -1
  60. package/dist/src/platforms/slack/commands/drafts.d.ts.map +1 -1
  61. package/dist/src/platforms/slack/commands/drafts.js.map +1 -1
  62. package/dist/src/platforms/slack/commands/file.d.ts.map +1 -1
  63. package/dist/src/platforms/slack/commands/file.js +1 -4
  64. package/dist/src/platforms/slack/commands/file.js.map +1 -1
  65. package/dist/src/platforms/slack/commands/message.d.ts.map +1 -1
  66. package/dist/src/platforms/slack/commands/message.js.map +1 -1
  67. package/dist/src/platforms/slack/commands/reaction.d.ts.map +1 -1
  68. package/dist/src/platforms/slack/commands/reaction.js.map +1 -1
  69. package/dist/src/platforms/slack/commands/saved.d.ts.map +1 -1
  70. package/dist/src/platforms/slack/commands/saved.js.map +1 -1
  71. package/dist/src/platforms/slack/commands/sections.d.ts.map +1 -1
  72. package/dist/src/platforms/slack/commands/sections.js.map +1 -1
  73. package/dist/src/platforms/slack/commands/snapshot.d.ts.map +1 -1
  74. package/dist/src/platforms/slack/commands/snapshot.js.map +1 -1
  75. package/dist/src/platforms/slack/commands/unread.d.ts.map +1 -1
  76. package/dist/src/platforms/slack/commands/unread.js.map +1 -1
  77. package/dist/src/platforms/slack/commands/user.d.ts.map +1 -1
  78. package/dist/src/platforms/slack/commands/user.js.map +1 -1
  79. package/dist/src/platforms/slack/commands/workspace.d.ts.map +1 -1
  80. package/dist/src/platforms/slack/commands/workspace.js.map +1 -1
  81. package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -1
  82. package/dist/src/platforms/slack/token-extractor.js +4 -5
  83. package/dist/src/platforms/slack/token-extractor.js.map +1 -1
  84. package/dist/src/platforms/slackbot/cli.d.ts.map +1 -1
  85. package/dist/src/platforms/slackbot/cli.js +1 -1
  86. package/dist/src/platforms/slackbot/cli.js.map +1 -1
  87. package/dist/src/platforms/slackbot/client.d.ts.map +1 -1
  88. package/dist/src/platforms/slackbot/client.js.map +1 -1
  89. package/dist/src/platforms/slackbot/commands/auth.js.map +1 -1
  90. package/dist/src/platforms/slackbot/commands/channel.js.map +1 -1
  91. package/dist/src/platforms/slackbot/commands/message.d.ts.map +1 -1
  92. package/dist/src/platforms/slackbot/commands/message.js.map +1 -1
  93. package/dist/src/platforms/slackbot/commands/reaction.d.ts.map +1 -1
  94. package/dist/src/platforms/slackbot/commands/reaction.js.map +1 -1
  95. package/dist/src/platforms/slackbot/commands/shared.d.ts.map +1 -1
  96. package/dist/src/platforms/slackbot/commands/shared.js.map +1 -1
  97. package/dist/src/platforms/slackbot/commands/user.js.map +1 -1
  98. package/dist/src/platforms/slackbot/credential-manager.d.ts.map +1 -1
  99. package/dist/src/platforms/slackbot/credential-manager.js +2 -4
  100. package/dist/src/platforms/slackbot/credential-manager.js.map +1 -1
  101. package/dist/src/platforms/teams/client.d.ts.map +1 -1
  102. package/dist/src/platforms/teams/client.js.map +1 -1
  103. package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
  104. package/dist/src/platforms/teams/commands/auth.js.map +1 -1
  105. package/dist/src/platforms/teams/commands/channel.d.ts.map +1 -1
  106. package/dist/src/platforms/teams/commands/channel.js.map +1 -1
  107. package/dist/src/platforms/teams/commands/file.d.ts.map +1 -1
  108. package/dist/src/platforms/teams/commands/file.js.map +1 -1
  109. package/dist/src/platforms/teams/commands/message.d.ts.map +1 -1
  110. package/dist/src/platforms/teams/commands/message.js.map +1 -1
  111. package/dist/src/platforms/teams/commands/reaction.d.ts.map +1 -1
  112. package/dist/src/platforms/teams/commands/reaction.js.map +1 -1
  113. package/dist/src/platforms/teams/commands/snapshot.d.ts.map +1 -1
  114. package/dist/src/platforms/teams/commands/snapshot.js.map +1 -1
  115. package/dist/src/platforms/teams/commands/team.d.ts.map +1 -1
  116. package/dist/src/platforms/teams/commands/team.js +1 -4
  117. package/dist/src/platforms/teams/commands/team.js.map +1 -1
  118. package/dist/src/platforms/teams/commands/user.d.ts.map +1 -1
  119. package/dist/src/platforms/teams/commands/user.js.map +1 -1
  120. package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
  121. package/dist/src/platforms/teams/token-extractor.js +3 -1
  122. package/dist/src/platforms/teams/token-extractor.js.map +1 -1
  123. package/docs/content/docs/agent-skills.mdx +4 -4
  124. package/docs/content/docs/index.mdx +11 -18
  125. package/docs/content/docs/integrations/discord.mdx +65 -1
  126. package/docs/content/docs/integrations/slack.mdx +51 -1
  127. package/docs/content/docs/integrations/slackbot.mdx +11 -1
  128. package/docs/content/docs/integrations/teams.mdx +4 -1
  129. package/docs/content/docs/quick-start.mdx +3 -2
  130. package/docs/src/app/icon.png +0 -0
  131. package/docs/src/app/layout.config.tsx +8 -1
  132. package/package.json +16 -9
  133. package/scripts/prepublish.ts +11 -0
  134. package/src/cli.ts +1 -4
  135. package/src/platforms/discord/client.test.ts +6 -14
  136. package/src/platforms/discord/client.ts +12 -34
  137. package/src/platforms/discord/commands/auth.test.ts +2 -7
  138. package/src/platforms/discord/commands/auth.ts +14 -19
  139. package/src/platforms/discord/commands/channel.test.ts +18 -20
  140. package/src/platforms/discord/commands/channel.ts +9 -18
  141. package/src/platforms/discord/commands/dm.test.ts +1 -3
  142. package/src/platforms/discord/commands/dm.ts +6 -10
  143. package/src/platforms/discord/commands/file.ts +10 -23
  144. package/src/platforms/discord/commands/friend.ts +33 -35
  145. package/src/platforms/discord/commands/member.ts +5 -7
  146. package/src/platforms/discord/commands/mention.ts +5 -11
  147. package/src/platforms/discord/commands/message.test.ts +1 -3
  148. package/src/platforms/discord/commands/message.ts +23 -61
  149. package/src/platforms/discord/commands/note.ts +7 -15
  150. package/src/platforms/discord/commands/profile.ts +4 -6
  151. package/src/platforms/discord/commands/reaction.test.ts +1 -3
  152. package/src/platforms/discord/commands/reaction.ts +19 -29
  153. package/src/platforms/discord/commands/server.test.ts +14 -18
  154. package/src/platforms/discord/commands/server.ts +9 -15
  155. package/src/platforms/discord/commands/snapshot.ts +5 -7
  156. package/src/platforms/discord/commands/thread.ts +8 -15
  157. package/src/platforms/discord/commands/user.ts +9 -20
  158. package/src/platforms/discord/credential-manager.test.ts +2 -2
  159. package/src/platforms/discord/credential-manager.ts +1 -3
  160. package/src/platforms/discord/token-extractor.test.ts +28 -57
  161. package/src/platforms/discord/token-extractor.ts +10 -30
  162. package/src/platforms/discord/types.ts +1 -1
  163. package/src/platforms/slack/client.test.ts +14 -20
  164. package/src/platforms/slack/client.ts +4 -11
  165. package/src/platforms/slack/commands/activity.test.ts +3 -9
  166. package/src/platforms/slack/commands/activity.ts +7 -12
  167. package/src/platforms/slack/commands/auth.test.ts +2 -2
  168. package/src/platforms/slack/commands/auth.ts +15 -31
  169. package/src/platforms/slack/commands/channel.ts +10 -32
  170. package/src/platforms/slack/commands/drafts.ts +5 -14
  171. package/src/platforms/slack/commands/file.ts +9 -29
  172. package/src/platforms/slack/commands/message.ts +23 -67
  173. package/src/platforms/slack/commands/reaction.ts +19 -48
  174. package/src/platforms/slack/commands/saved.ts +5 -14
  175. package/src/platforms/slack/commands/sections.ts +4 -11
  176. package/src/platforms/slack/commands/snapshot.test.ts +1 -3
  177. package/src/platforms/slack/commands/snapshot.ts +5 -10
  178. package/src/platforms/slack/commands/unread.test.ts +6 -8
  179. package/src/platforms/slack/commands/unread.ts +10 -33
  180. package/src/platforms/slack/commands/user.test.ts +1 -4
  181. package/src/platforms/slack/commands/user.ts +6 -8
  182. package/src/platforms/slack/commands/workspace.test.ts +1 -1
  183. package/src/platforms/slack/commands/workspace.ts +7 -12
  184. package/src/platforms/slack/token-extractor-node-test.ts +1 -1
  185. package/src/platforms/slack/token-extractor.ts +8 -17
  186. package/src/platforms/slack/types.ts +1 -1
  187. package/src/platforms/slackbot/cli.ts +1 -7
  188. package/src/platforms/slackbot/client.test.ts +7 -7
  189. package/src/platforms/slackbot/client.ts +4 -11
  190. package/src/platforms/slackbot/commands/auth.test.ts +1 -1
  191. package/src/platforms/slackbot/commands/auth.ts +7 -7
  192. package/src/platforms/slackbot/commands/channel.ts +4 -4
  193. package/src/platforms/slackbot/commands/message.ts +16 -29
  194. package/src/platforms/slackbot/commands/reaction.ts +6 -16
  195. package/src/platforms/slackbot/commands/shared.ts +2 -4
  196. package/src/platforms/slackbot/commands/user.ts +4 -4
  197. package/src/platforms/slackbot/credential-manager.ts +2 -7
  198. package/src/platforms/slackbot/types.ts +1 -1
  199. package/src/platforms/teams/client.test.ts +15 -32
  200. package/src/platforms/teams/client.ts +18 -51
  201. package/src/platforms/teams/commands/auth.test.ts +6 -16
  202. package/src/platforms/teams/commands/auth.ts +16 -26
  203. package/src/platforms/teams/commands/channel.test.ts +2 -5
  204. package/src/platforms/teams/commands/channel.ts +10 -20
  205. package/src/platforms/teams/commands/file.test.ts +1 -4
  206. package/src/platforms/teams/commands/file.ts +11 -21
  207. package/src/platforms/teams/commands/message.test.ts +1 -3
  208. package/src/platforms/teams/commands/message.ts +15 -25
  209. package/src/platforms/teams/commands/reaction.test.ts +2 -7
  210. package/src/platforms/teams/commands/reaction.ts +12 -16
  211. package/src/platforms/teams/commands/snapshot.ts +6 -11
  212. package/src/platforms/teams/commands/team.test.ts +15 -26
  213. package/src/platforms/teams/commands/team.ts +10 -19
  214. package/src/platforms/teams/commands/user.ts +8 -14
  215. package/src/platforms/teams/credential-manager.test.ts +2 -5
  216. package/src/platforms/teams/token-extractor.test.ts +21 -50
  217. package/src/platforms/teams/token-extractor.ts +12 -20
  218. package/src/platforms/teams/types.ts +1 -1
  219. package/src/shared/utils/concurrency.test.ts +2 -2
  220. package/src/shared/utils/concurrency.ts +1 -1
  221. package/.claude/commands/release.md +0 -92
  222. package/dist/src/platforms/discord/commands/guild.d.ts +0 -15
  223. package/dist/src/platforms/discord/commands/guild.d.ts.map +0 -1
  224. package/dist/src/platforms/discord/commands/guild.js +0 -102
  225. package/dist/src/platforms/discord/commands/guild.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
3
  "name": "agent-messenger",
4
- "description": "Messaging platform interaction skills for AI agents - Slack workspaces and Discord servers",
4
+ "description": "Messaging platform interaction skills for AI agents - Slack, Discord, and Microsoft Teams",
5
5
  "owner": {
6
6
  "name": "devxoul",
7
7
  "url": "https://github.com/devxoul"
@@ -32,6 +32,32 @@
32
32
  "category": "productivity",
33
33
  "homepage": "https://github.com/devxoul/agent-messenger",
34
34
  "keywords": ["discord", "messaging", "guild", "server", "ai-agent", "cli", "communication"]
35
+ },
36
+ {
37
+ "name": "agent-slackbot",
38
+ "description": "Interact with Slack workspaces using bot tokens (xoxb-). Designed for server-side and CI/CD integrations. Supports message operations, channel management, reactions, and multi-bot/multi-workspace credential management.",
39
+ "version": "0.1.0",
40
+ "author": {
41
+ "name": "devxoul",
42
+ "url": "https://github.com/devxoul"
43
+ },
44
+ "source": "./",
45
+ "category": "productivity",
46
+ "homepage": "https://github.com/devxoul/agent-messenger",
47
+ "keywords": ["slack", "slackbot", "bot", "messaging", "ai-agent", "cli", "ci-cd"]
48
+ },
49
+ {
50
+ "name": "agent-teams",
51
+ "description": "Interact with Microsoft Teams through a CLI interface. Features credential extraction from Teams desktop app and browser, multi-team support, message operations, channel management, reactions, and file uploads.",
52
+ "version": "0.1.0",
53
+ "author": {
54
+ "name": "devxoul",
55
+ "url": "https://github.com/devxoul"
56
+ },
57
+ "source": "./",
58
+ "category": "productivity",
59
+ "homepage": "https://github.com/devxoul/agent-messenger",
60
+ "keywords": ["teams", "microsoft-teams", "messaging", "ai-agent", "cli", "communication"]
35
61
  }
36
62
  ]
37
63
  }
@@ -1,17 +1,30 @@
1
1
  {
2
2
  "name": "agent-messenger",
3
- "version": "1.3.0",
4
- "description": "Messaging platform interaction skills for AI agents. Interact with Slack workspaces and Discord servers - send messages, read channels, manage reactions, upload files, and more through simple CLI interfaces.",
3
+ "version": "1.3.1",
4
+ "description": "Messaging platform interaction skills for AI agents. Interact with Slack, Discord, and Microsoft Teams - send messages, read channels, manage reactions, upload files, and more through simple CLI interfaces.",
5
5
  "author": {
6
6
  "name": "devxoul",
7
7
  "url": "https://github.com/devxoul"
8
8
  },
9
9
  "license": "MIT",
10
- "keywords": ["slack", "discord", "messaging", "workspace", "guild", "ai-agent", "cli", "communication", "productivity"],
10
+ "keywords": [
11
+ "slack",
12
+ "discord",
13
+ "teams",
14
+ "messaging",
15
+ "workspace",
16
+ "guild",
17
+ "ai-agent",
18
+ "cli",
19
+ "communication",
20
+ "productivity"
21
+ ],
11
22
  "homepage": "https://github.com/devxoul/agent-messenger",
12
23
  "repository": "https://github.com/devxoul/agent-messenger",
13
24
  "skills": [
14
25
  "./skills/agent-slack",
15
- "./skills/agent-discord"
26
+ "./skills/agent-slackbot",
27
+ "./skills/agent-discord",
28
+ "./skills/agent-teams"
16
29
  ]
17
30
  }
package/.env.template ADDED
@@ -0,0 +1,3 @@
1
+ E2E_SLACKBOT_WORKSPACE_ID=T0AC55BSF6E
2
+ E2E_SLACKBOT_WORKSPACE_NAME=Agent Messenger
3
+ E2E_SLACKBOT_TOKEN=
@@ -0,0 +1,94 @@
1
+ name: Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: "Version (x.y.z)"
8
+ required: true
9
+
10
+ permissions:
11
+ contents: write
12
+ id-token: write
13
+
14
+ jobs:
15
+ check:
16
+ runs-on: ubuntu-latest
17
+
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+
21
+ - uses: oven-sh/setup-bun@v2
22
+ with:
23
+ bun-version: latest
24
+
25
+ - uses: actions/setup-node@v4
26
+ with:
27
+ node-version: "22"
28
+
29
+ - name: Install dependencies
30
+ run: bun install --frozen-lockfile
31
+
32
+ - name: Typecheck
33
+ run: bun run typecheck
34
+
35
+ - name: Lint
36
+ run: bun run lint
37
+
38
+ - name: Test
39
+ run: bun run test
40
+
41
+ release:
42
+ needs: check
43
+ runs-on: ubuntu-latest
44
+
45
+ steps:
46
+ - uses: actions/checkout@v4
47
+
48
+ - uses: oven-sh/setup-bun@v2
49
+ with:
50
+ bun-version: latest
51
+
52
+ - uses: actions/setup-node@v4
53
+ with:
54
+ node-version: "24"
55
+ registry-url: "https://registry.npmjs.org"
56
+
57
+ - name: Install dependencies
58
+ run: bun install --frozen-lockfile --ignore-scripts
59
+
60
+ - name: Build
61
+ run: bun run build
62
+
63
+ - name: Bump version
64
+ run: |
65
+ npm version ${{ inputs.version }} --no-git-tag-version --allow-same-version
66
+ bun -e "
67
+ const fs = require('fs');
68
+ const v = '${{ inputs.version }}';
69
+ for (const f of ['.claude-plugin/plugin.json']) {
70
+ const c = JSON.parse(fs.readFileSync(f, 'utf8'));
71
+ c.version = v;
72
+ fs.writeFileSync(f, JSON.stringify(c, null, 2) + '\n');
73
+ }
74
+ let readme = fs.readFileSync('README.md', 'utf8');
75
+ readme = readme.replace(/agent-messenger@[\d.]+/g, 'agent-messenger@' + v);
76
+ fs.writeFileSync('README.md', readme);
77
+ "
78
+
79
+ - name: Commit and tag
80
+ run: |
81
+ git config user.name "github-actions[bot]"
82
+ git config user.email "github-actions[bot]@users.noreply.github.com"
83
+ git add package.json .claude-plugin/plugin.json README.md
84
+ git diff --staged --quiet || git commit -m "${{ inputs.version }}"
85
+ git tag "${{ inputs.version }}"
86
+ git push origin HEAD --tags
87
+
88
+ - name: Publish to npm
89
+ run: npm publish --provenance --access public
90
+
91
+ - name: Create GitHub Release
92
+ run: gh release create "${{ inputs.version }}" --generate-notes
93
+ env:
94
+ GH_TOKEN: ${{ github.token }}
package/AGENTS.md ADDED
@@ -0,0 +1,48 @@
1
+ # agent-messenger
2
+
3
+ Multi-platform messaging CLI for AI agents (Slack, Discord, Teams).
4
+
5
+ ## TypeScript Execution Model
6
+
7
+ ### Local Development
8
+
9
+ Bun runs TypeScript directly — no compilation step needed.
10
+
11
+ - `bin` entries in `package.json` point to `./src/*.ts` files
12
+ - All CLI entry points use `#!/usr/bin/env bun` shebang
13
+ - Run any file: `bun src/cli.ts`
14
+ - Run with hot reload: `bun --hot src/cli.ts`
15
+
16
+ ### Production Build (Publish)
17
+
18
+ `bun run build` compiles to `dist/` for npm consumers who don't have Bun.
19
+
20
+ 1. `tsc` compiles `src/` → `dist/src/` (JS + declarations + source maps)
21
+ 2. `scripts/postbuild.ts` replaces `#!/usr/bin/env bun` → `#!/usr/bin/env node` in CLI files
22
+ 3. `module` and `main` in `package.json` point to `dist/cli.js`
23
+
24
+ npm consumers run compiled JS via Node.js. The `prepublishOnly` script ensures build runs before `npm publish`.
25
+
26
+ ### Key Distinction
27
+
28
+ | | Local (dev) | Published (npm) |
29
+ |---|---|---|
30
+ | Runtime | Bun | Node.js |
31
+ | Entry files | `src/*.ts` | `dist/src/*.js` |
32
+ | Shebang | `#!/usr/bin/env bun` | `#!/usr/bin/env node` |
33
+ | Compilation | None (Bun runs TS) | `tsc` → `dist/` |
34
+
35
+ ## Commands
36
+
37
+ ```bash
38
+ bun install # Install dependencies
39
+ bun link # Link CLI globally for local testing
40
+ bun test # Run tests
41
+ bun run build # Build dist/ for production
42
+ bun typecheck # Type check without emitting
43
+ bun lint # Lint with Biome
44
+ ```
45
+
46
+ ## Release
47
+
48
+ Use the **Release** GitHub Actions workflow (`workflow_dispatch`). Enter the version (e.g., `1.4.0`) — it typechecks, lints, tests, bumps version in `package.json` / `.claude-plugin/plugin.json` / `README.md`, commits, tags, publishes to npm, and creates a GitHub Release. Tags have no `v` prefix.
package/README.md CHANGED
@@ -4,13 +4,16 @@
4
4
 
5
5
  A unified, agent-friendly CLI for messaging platforms. Zero-config credential extraction from your desktop apps—no OAuth flows, no API keys, no admin approval needed. Works out of the box.
6
6
 
7
- ## Why Agent Messenger?
7
+ ## 🤔 Why Agent Messenger?
8
8
 
9
+ Messaging platforms only offer Bot tokens for API access—your AI agent can never act **as you**. Agent Messenger extracts user credentials directly from your installed desktop apps, letting your agent operate on your behalf. Bot tokens are fully supported too for server-side and CI/CD use cases.
10
+
11
+ - 🎭 **Act as yourself, not a bot** — Extracted user tokens let your agent operate on your behalf
9
12
  - 🔑 **No API keys needed** — Automatically extracts credentials from your installed desktop apps
10
13
  - 🌐 **One interface, multiple platforms** — Learn once, use everywhere (Slack, Discord, Teams)
11
14
  - 🤖 **AI-agent friendly** — JSON output by default, perfect for LLM tool use
12
15
  - 👤 **Human friendly too** — Add `--pretty` for readable output
13
- - 🪙 **Token efficient** — CLI, not MCP. Load only what you need. ([Why not MCP?](#-philosophy))
16
+ - **Token efficient** — CLI, not MCP. Load only what you need. ([Why not MCP?](#philosophy))
14
17
 
15
18
  ## 📦 Installation
16
19
 
@@ -21,15 +24,16 @@ npm install -g agent-messenger
21
24
  Or use your favorite package manager.
22
25
 
23
26
  This installs:
24
- - `agent-slack` — Slack CLI
27
+ - `agent-slack` — Slack CLI (user token, zero-config)
28
+ - `agent-slackbot` — Slack Bot CLI (bot token, for server-side/CI/CD)
25
29
  - `agent-discord` — Discord CLI
26
30
  - `agent-teams` — Microsoft Teams CLI
27
31
 
28
- ## 🧩 Agent Skills
32
+ ## 🧠 Agent Skills
29
33
 
30
- Agent Messenger includes [Agent Skills](https://agentskills.io/) that teach your AI agent how to use these CLIs effectively.
34
+ Agent Messenger includes [Agent Skills](https://agentskills.io/) that teach your AI agent how to use these CLIs effectively. Install the skill for your platform:
31
35
 
32
- ### Skills CLI
36
+ ### Skills CLI (OpenCode, Cline, etc.)
33
37
 
34
38
  ```bash
35
39
  npx skills add devxoul/agent-messenger
@@ -51,14 +55,14 @@ Or within Claude Code:
51
55
  /plugin install agent-messenger
52
56
  ```
53
57
 
54
- ### OpenCode
58
+ ### OpenCode (via plugin)
55
59
 
56
60
  Add to your `opencode.jsonc`:
57
61
 
58
62
  ```jsonc
59
63
  {
60
64
  "plugins": [
61
- "agent-messenger@1.3.0"
65
+ "agent-messenger"
62
66
  ]
63
67
  }
64
68
  ```
@@ -80,7 +84,7 @@ agent-slack message send general "Hello from the CLI!"
80
84
 
81
85
  That's it. No OAuth flows. No API tokens. No configuration files.
82
86
 
83
- ## 🔌 Supported Platforms
87
+ ## 📋 Supported Platforms
84
88
 
85
89
  | Feature | Slack | Discord | Teams |
86
90
  |---------|:-----:|:-------:|:-----:|
@@ -92,38 +96,39 @@ That's it. No OAuth flows. No API tokens. No configuration files.
92
96
  | File uploads | ✅ | ✅ | ✅ |
93
97
  | Workspace snapshots | ✅ | ✅ | ✅ |
94
98
  | Multi-workspace | ✅ | ✅ | ✅ |
95
- | Bot support | 🏗️ | 🏗️ | 🏗️ |
99
+ | Bot support | | | |
96
100
 
97
- > **Note**: Teams tokens expire in 60-90 minutes. See [Teams Guide](docs/teams.md) for token refresh patterns.
101
+ > ⚠️ **Teams tokens expire in 60-90 minutes.** Re-run `agent-teams auth extract` to refresh. See [Teams Guide](skills/agent-teams/SKILL.md) for details.
98
102
 
99
- ## 📚 Platform Guides
103
+ ## 📖 Platform Guides
100
104
 
101
- - **[Slack Guide](docs/slack.md)** — Full command reference for Slack
102
- - **[Discord Guide](docs/discord.md)** — Full command reference for Discord
103
- - **[Teams Guide](docs/teams.md)** — Full command reference for Microsoft Teams
105
+ - **[Slack Guide](skills/agent-slack/SKILL.md)** — Full command reference for Slack
106
+ - **[Slack Bot Guide](skills/agent-slackbot/SKILL.md)** — Bot token integration for server-side and CI/CD
107
+ - **[Discord Guide](skills/agent-discord/SKILL.md)** — Full command reference for Discord
108
+ - **[Teams Guide](skills/agent-teams/SKILL.md)** — Full command reference for Microsoft Teams
104
109
 
105
110
  ## 💡 Use Cases
106
111
 
107
- **🤖 For AI Agents**
112
+ **For AI Agents**
108
113
  - Give Claude, GPT, or your custom agent the ability to read and send messages
109
114
  - Automate Slack/Discord/Teams workflows with simple CLI commands
110
115
  - Build integrations without OAuth complexity
111
116
 
112
- **👩‍💻 For Developers**
117
+ **For Developers**
113
118
  - Quick message sending from terminal
114
119
  - Scripted notifications and alerts
115
120
  - Workspace snapshots for debugging
116
121
 
117
- **👥 For Teams**
122
+ **For Teams**
118
123
  - Automate standups and reminders
119
124
  - Cross-post announcements to multiple platforms
120
125
  - Build custom notification pipelines
121
126
 
122
- ## 🧠 Philosophy
127
+ ## 💭 Philosophy
123
128
 
124
129
  **Why not MCP?** MCP servers expose all tools at once, bloating context and confusing agents. **[Agent Skills](https://agentskills.io/) + agent-friendly CLI** offer a better approach—load what you need, when you need it. Fewer tokens, cleaner context, better output.
125
130
 
126
- **Why not OAuth?** OAuth requires an app and it requires workspace admin approval to install, which can take days. This tool just works—zero setup required. Bot support is on the roadmap for those who prefer it.
131
+ **Why not OAuth?** OAuth requires an app and it requires workspace admin approval to install, which can take days. This tool just works—zero setup required. For those who prefer bot tokens (e.g., server-side or CI/CD), see [`agent-slackbot`](skills/agent-slackbot/SKILL.md).
127
132
 
128
133
  Inspired by [agent-browser](https://github.com/vercel-labs/agent-browser) from Vercel Labs.
129
134
 
package/biome.json CHANGED
@@ -5,62 +5,38 @@
5
5
  "ignoreUnknown": false
6
6
  },
7
7
  "formatter": {
8
- "enabled": true,
9
8
  "indentStyle": "space",
10
- "indentWidth": 2,
11
- "lineWidth": 100,
12
- "lineEnding": "lf"
9
+ "lineWidth": 120
13
10
  },
14
11
  "linter": {
15
- "enabled": true,
16
12
  "rules": {
17
- "recommended": true,
13
+ "complexity": {
14
+ "noUselessUndefinedInitialization": "off"
15
+ },
16
+ "security": {
17
+ "noDangerouslySetInnerHtml": "off"
18
+ },
18
19
  "style": {
19
20
  "noNonNullAssertion": "off",
20
21
  "useImportType": "off",
21
- "noRestrictedImports": {
22
- "level": "error",
23
- "options": {
24
- "patterns": [
25
- {
26
- "group": ["bun:*"],
27
- "message": "Bun-specific API. We use Bun for development, but users install agent-messenger via npm/yarn/pnpm, so runtime code must be Node.js-compatible. Do not disable this rule except in tests."
28
- }
29
- ]
30
- }
31
- },
32
- "noRestrictedGlobals": {
33
- "level": "error",
34
- "options": {
35
- "deniedGlobals": {
36
- "Bun": "Bun-specific API. We use Bun for development, but users install agent-messenger via npm/yarn/pnpm, so runtime code must be Node.js-compatible. Do not disable this rule except in tests."
37
- }
38
- }
39
- }
22
+ "useTemplate": "off"
40
23
  },
41
24
  "suspicious": {
25
+ "noArrayIndexKey": "off",
26
+ "noDocumentCookie": "off",
42
27
  "noExplicitAny": "off"
43
28
  }
44
29
  }
45
30
  },
46
- "overrides": [
47
- {
48
- "includes": ["tests/**", "**/*.test.ts", "**/*.spec.ts"],
49
- "linter": {
50
- "rules": {
51
- "style": {
52
- "noRestrictedImports": "off",
53
- "noRestrictedGlobals": "off"
54
- }
55
- }
56
- }
31
+ "assist": {
32
+ "actions": {
33
+ "source": {}
57
34
  }
58
- ],
35
+ },
59
36
  "javascript": {
60
37
  "formatter": {
61
38
  "semicolons": "asNeeded",
62
- "quoteStyle": "single",
63
- "trailingCommas": "es5"
39
+ "quoteStyle": "single"
64
40
  }
65
41
  }
66
42
  }
package/bun.lock CHANGED
@@ -16,6 +16,7 @@
16
16
  "@types/better-sqlite3": "^7.6.8",
17
17
  "@types/bun": "latest",
18
18
  "@types/node": "^20.10.6",
19
+ "tsc-alias": "^1.8.16",
19
20
  "tsx": "^4.21.0",
20
21
  "typescript": "^5.9.3",
21
22
  },
@@ -92,6 +93,12 @@
92
93
 
93
94
  "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="],
94
95
 
96
+ "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="],
97
+
98
+ "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="],
99
+
100
+ "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
101
+
95
102
  "@slack/logger": ["@slack/logger@3.0.0", "", { "dependencies": { "@types/node": ">=12.0.0" } }, "sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA=="],
96
103
 
97
104
  "@slack/types": ["@slack/types@2.19.0", "", {}, "sha512-7+QZ38HGcNh/b/7MpvPG6jnw7mliV6UmrquJLqgdxkzJgQEYUcEztvFWRU49z0x4vthF0ixL5lTK601AXrS8IA=="],
@@ -110,6 +117,10 @@
110
117
 
111
118
  "abstract-level": ["abstract-level@1.0.4", "", { "dependencies": { "buffer": "^6.0.3", "catering": "^2.1.0", "is-buffer": "^2.0.5", "level-supports": "^4.0.0", "level-transcoder": "^1.0.1", "module-error": "^1.0.1", "queue-microtask": "^1.2.3" } }, "sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg=="],
112
119
 
120
+ "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="],
121
+
122
+ "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="],
123
+
113
124
  "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="],
114
125
 
115
126
  "axios": ["axios@1.13.3", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-ERT8kdX7DZjtUm7IitEyV7InTHAF42iJuMArIiDIV5YtPanJkgw4hw5Dyg9fh0mihdWNn1GKaeIWErfe56UQ1g=="],
@@ -118,10 +129,14 @@
118
129
 
119
130
  "better-sqlite3": ["better-sqlite3@9.6.0", "", { "dependencies": { "bindings": "^1.5.0", "prebuild-install": "^7.1.1" } }, "sha512-yR5HATnqeYNVnkaUTf4bOP2dJSnyhP4puJN/QPRyx4YkBEEUxib422n2XzPqDEHjQQqazoYoADdAm5vE15+dAQ=="],
120
131
 
132
+ "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="],
133
+
121
134
  "bindings": ["bindings@1.5.0", "", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="],
122
135
 
123
136
  "bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="],
124
137
 
138
+ "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
139
+
125
140
  "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="],
126
141
 
127
142
  "bun-types": ["bun-types@1.3.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-OlFwHcnNV99r//9v5IIOgQ9Uk37gZqrNMCcqEaExdkVq3Avwqok1bJFmvGMCkCE0FqzdY8VMOZpfpR3lwI+CsQ=="],
@@ -130,6 +145,8 @@
130
145
 
131
146
  "catering": ["catering@2.1.1", "", {}, "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w=="],
132
147
 
148
+ "chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="],
149
+
133
150
  "chownr": ["chownr@1.1.4", "", {}, "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="],
134
151
 
135
152
  "classic-level": ["classic-level@1.4.1", "", { "dependencies": { "abstract-level": "^1.0.2", "catering": "^2.1.0", "module-error": "^1.0.1", "napi-macros": "^2.2.2", "node-gyp-build": "^4.3.0" } }, "sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ=="],
@@ -146,6 +163,8 @@
146
163
 
147
164
  "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
148
165
 
166
+ "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="],
167
+
149
168
  "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
150
169
 
151
170
  "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="],
@@ -164,8 +183,14 @@
164
183
 
165
184
  "expand-template": ["expand-template@2.0.3", "", {}, "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="],
166
185
 
186
+ "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
187
+
188
+ "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="],
189
+
167
190
  "file-uri-to-path": ["file-uri-to-path@1.0.0", "", {}, "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="],
168
191
 
192
+ "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
193
+
169
194
  "follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="],
170
195
 
171
196
  "form-data": ["form-data@2.5.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.35", "safe-buffer": "^5.2.1" } }, "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A=="],
@@ -184,6 +209,10 @@
184
209
 
185
210
  "github-from-package": ["github-from-package@0.0.0", "", {}, "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="],
186
211
 
212
+ "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
213
+
214
+ "globby": ["globby@11.1.0", "", { "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" } }, "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="],
215
+
187
216
  "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
188
217
 
189
218
  "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
@@ -194,14 +223,24 @@
194
223
 
195
224
  "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="],
196
225
 
226
+ "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="],
227
+
197
228
  "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
198
229
 
199
230
  "ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="],
200
231
 
232
+ "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="],
233
+
201
234
  "is-buffer": ["is-buffer@2.0.5", "", {}, "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="],
202
235
 
203
236
  "is-electron": ["is-electron@2.2.2", "", {}, "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg=="],
204
237
 
238
+ "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
239
+
240
+ "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
241
+
242
+ "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
243
+
205
244
  "is-stream": ["is-stream@1.1.0", "", {}, "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="],
206
245
 
207
246
  "level-supports": ["level-supports@4.0.1", "", {}, "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA=="],
@@ -210,6 +249,10 @@
210
249
 
211
250
  "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
212
251
 
252
+ "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
253
+
254
+ "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
255
+
213
256
  "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="],
214
257
 
215
258
  "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
@@ -222,6 +265,8 @@
222
265
 
223
266
  "module-error": ["module-error@1.0.2", "", {}, "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA=="],
224
267
 
268
+ "mylas": ["mylas@2.1.14", "", {}, "sha512-BzQguy9W9NJgoVn2mRWzbFrFWWztGCcng2QI9+41frfk+Athwgx3qhqhvStz7ExeUUu7Kzw427sNzHpEZNINog=="],
269
+
225
270
  "napi-build-utils": ["napi-build-utils@2.0.0", "", {}, "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA=="],
226
271
 
227
272
  "napi-macros": ["napi-macros@2.2.2", "", {}, "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g=="],
@@ -230,6 +275,8 @@
230
275
 
231
276
  "node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="],
232
277
 
278
+ "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="],
279
+
233
280
  "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
234
281
 
235
282
  "p-finally": ["p-finally@1.0.0", "", {}, "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow=="],
@@ -240,22 +287,36 @@
240
287
 
241
288
  "p-timeout": ["p-timeout@3.2.0", "", { "dependencies": { "p-finally": "^1.0.0" } }, "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg=="],
242
289
 
290
+ "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="],
291
+
292
+ "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
293
+
294
+ "plimit-lit": ["plimit-lit@1.6.1", "", { "dependencies": { "queue-lit": "^1.5.1" } }, "sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA=="],
295
+
243
296
  "prebuild-install": ["prebuild-install@7.1.3", "", { "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" }, "bin": { "prebuild-install": "bin.js" } }, "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug=="],
244
297
 
245
298
  "proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="],
246
299
 
247
300
  "pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="],
248
301
 
302
+ "queue-lit": ["queue-lit@1.5.2", "", {}, "sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw=="],
303
+
249
304
  "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
250
305
 
251
306
  "rc": ["rc@1.2.8", "", { "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": { "rc": "./cli.js" } }, "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="],
252
307
 
253
308
  "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
254
309
 
310
+ "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="],
311
+
255
312
  "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="],
256
313
 
257
314
  "retry": ["retry@0.13.1", "", {}, "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="],
258
315
 
316
+ "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
317
+
318
+ "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
319
+
259
320
  "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
260
321
 
261
322
  "semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="],
@@ -264,6 +325,8 @@
264
325
 
265
326
  "simple-get": ["simple-get@4.0.1", "", { "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA=="],
266
327
 
328
+ "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="],
329
+
267
330
  "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="],
268
331
 
269
332
  "strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="],
@@ -272,6 +335,10 @@
272
335
 
273
336
  "tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="],
274
337
 
338
+ "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
339
+
340
+ "tsc-alias": ["tsc-alias@1.8.16", "", { "dependencies": { "chokidar": "^3.5.3", "commander": "^9.0.0", "get-tsconfig": "^4.10.0", "globby": "^11.0.4", "mylas": "^2.1.9", "normalize-path": "^3.0.0", "plimit-lit": "^1.2.6" }, "bin": { "tsc-alias": "dist/bin/index.js" } }, "sha512-QjCyu55NFyRSBAl6+MTFwplpFcnm2Pq01rR/uxfqJoLMm6X3O14KEGtaSDZpJYaE1bJBGDjD0eSuiIWPe2T58g=="],
341
+
275
342
  "tsx": ["tsx@4.21.0", "", { "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw=="],
276
343
 
277
344
  "tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="],
@@ -302,6 +369,8 @@
302
369
 
303
370
  "p-queue/eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="],
304
371
 
372
+ "tsc-alias/commander": ["commander@9.5.0", "", {}, "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="],
373
+
305
374
  "@slack/logger/@types/node/undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
306
375
 
307
376
  "@slack/web-api/@types/node/undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],