agent-messenger 1.3.6 → 1.5.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.
- package/.claude-plugin/README.md +38 -14
- package/.claude-plugin/plugin.json +1 -1
- package/.github/workflows/ci.yml +3 -0
- package/CONTRIBUTING.md +24 -1
- package/README.md +12 -8
- package/dist/package.json +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +3 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/platforms/discord/cli.d.ts +2 -2
- package/dist/src/platforms/discord/cli.d.ts.map +1 -1
- package/dist/src/platforms/discord/cli.js +23 -1
- package/dist/src/platforms/discord/cli.js.map +1 -1
- package/dist/src/platforms/discord/commands/file.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/file.js +13 -7
- package/dist/src/platforms/discord/commands/file.js.map +1 -1
- package/dist/src/platforms/discord/commands/friend.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/friend.js +30 -30
- package/dist/src/platforms/discord/commands/friend.js.map +1 -1
- package/dist/src/platforms/discord/commands/index.d.ts +7 -0
- package/dist/src/platforms/discord/commands/index.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/index.js +7 -0
- package/dist/src/platforms/discord/commands/index.js.map +1 -1
- package/dist/src/platforms/discord/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/snapshot.js +1 -2
- package/dist/src/platforms/discord/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/discord/ensure-auth.d.ts +2 -0
- package/dist/src/platforms/discord/ensure-auth.d.ts.map +1 -0
- package/dist/src/platforms/discord/ensure-auth.js +31 -0
- package/dist/src/platforms/discord/ensure-auth.js.map +1 -0
- package/dist/src/platforms/slack/cli.d.ts +2 -2
- package/dist/src/platforms/slack/cli.d.ts.map +1 -1
- package/dist/src/platforms/slack/cli.js +15 -0
- package/dist/src/platforms/slack/cli.js.map +1 -1
- package/dist/src/platforms/slack/client.d.ts +1 -0
- package/dist/src/platforms/slack/client.d.ts.map +1 -1
- package/dist/src/platforms/slack/client.js +13 -0
- package/dist/src/platforms/slack/client.js.map +1 -1
- package/dist/src/platforms/slack/commands/channel.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/channel.js +2 -0
- package/dist/src/platforms/slack/commands/channel.js.map +1 -1
- package/dist/src/platforms/slack/commands/file.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/file.js +13 -5
- package/dist/src/platforms/slack/commands/file.js.map +1 -1
- package/dist/src/platforms/slack/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/message.js +12 -6
- package/dist/src/platforms/slack/commands/message.js.map +1 -1
- package/dist/src/platforms/slack/commands/reaction.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/reaction.js +3 -0
- package/dist/src/platforms/slack/commands/reaction.js.map +1 -1
- package/dist/src/platforms/slack/commands/sections.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/sections.js +5 -6
- package/dist/src/platforms/slack/commands/sections.js.map +1 -1
- package/dist/src/platforms/slack/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/snapshot.js +1 -2
- package/dist/src/platforms/slack/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/slack/commands/unread.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/unread.js +2 -0
- package/dist/src/platforms/slack/commands/unread.js.map +1 -1
- package/dist/src/platforms/slack/commands/user.js +8 -8
- package/dist/src/platforms/slack/ensure-auth.d.ts +2 -0
- package/dist/src/platforms/slack/ensure-auth.d.ts.map +1 -0
- package/dist/src/platforms/slack/ensure-auth.js +30 -0
- package/dist/src/platforms/slack/ensure-auth.js.map +1 -0
- package/dist/src/platforms/slackbot/client.d.ts +1 -0
- package/dist/src/platforms/slackbot/client.d.ts.map +1 -1
- package/dist/src/platforms/slackbot/client.js +13 -0
- package/dist/src/platforms/slackbot/client.js.map +1 -1
- package/dist/src/platforms/slackbot/commands/channel.d.ts.map +1 -1
- package/dist/src/platforms/slackbot/commands/channel.js +3 -2
- package/dist/src/platforms/slackbot/commands/channel.js.map +1 -1
- package/dist/src/platforms/slackbot/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/slackbot/commands/message.js +18 -12
- package/dist/src/platforms/slackbot/commands/message.js.map +1 -1
- package/dist/src/platforms/slackbot/commands/reaction.d.ts.map +1 -1
- package/dist/src/platforms/slackbot/commands/reaction.js +8 -6
- package/dist/src/platforms/slackbot/commands/reaction.js.map +1 -1
- package/dist/src/platforms/teams/cli.d.ts +2 -2
- package/dist/src/platforms/teams/cli.d.ts.map +1 -1
- package/dist/src/platforms/teams/cli.js +15 -0
- package/dist/src/platforms/teams/cli.js.map +1 -1
- package/dist/src/platforms/teams/commands/file.js +12 -12
- package/dist/src/platforms/teams/commands/file.js.map +1 -1
- package/dist/src/platforms/teams/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/snapshot.js +1 -2
- package/dist/src/platforms/teams/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/teams/ensure-auth.d.ts +2 -0
- package/dist/src/platforms/teams/ensure-auth.d.ts.map +1 -0
- package/dist/src/platforms/teams/ensure-auth.js +32 -0
- package/dist/src/platforms/teams/ensure-auth.js.map +1 -0
- package/e2e/README.md +1 -1
- package/package.json +1 -1
- package/skills/agent-discord/SKILL.md +22 -22
- package/skills/agent-slack/SKILL.md +28 -40
- package/skills/agent-teams/SKILL.md +41 -65
- package/skills/agent-teams/references/common-patterns.md +63 -49
- package/src/cli.ts +4 -0
- package/src/platforms/discord/cli.ts +30 -0
- package/src/platforms/discord/commands/file.ts +13 -7
- package/src/platforms/discord/commands/friend.ts +34 -34
- package/src/platforms/discord/commands/index.ts +7 -0
- package/src/platforms/discord/commands/snapshot.ts +1 -2
- package/src/platforms/discord/ensure-auth.test.ts +123 -0
- package/src/platforms/discord/ensure-auth.ts +31 -0
- package/src/platforms/slack/cli.ts +16 -0
- package/src/platforms/slack/client.test.ts +101 -0
- package/src/platforms/slack/client.ts +22 -0
- package/src/platforms/slack/commands/channel.ts +2 -0
- package/src/platforms/slack/commands/file.ts +15 -5
- package/src/platforms/slack/commands/message.ts +17 -6
- package/src/platforms/slack/commands/reaction.ts +3 -0
- package/src/platforms/slack/commands/sections.ts +8 -9
- package/src/platforms/slack/commands/snapshot.ts +1 -2
- package/src/platforms/slack/commands/unread.ts +2 -0
- package/src/platforms/slack/commands/user.ts +8 -8
- package/src/platforms/slack/ensure-auth.test.ts +186 -0
- package/src/platforms/slack/ensure-auth.ts +30 -0
- package/src/platforms/slackbot/client.test.ts +87 -0
- package/src/platforms/slackbot/client.ts +21 -0
- package/src/platforms/slackbot/commands/channel.ts +3 -2
- package/src/platforms/slackbot/commands/message.ts +18 -12
- package/src/platforms/slackbot/commands/reaction.ts +8 -6
- package/src/platforms/teams/cli.ts +16 -0
- package/src/platforms/teams/commands/file.ts +12 -12
- package/src/platforms/teams/commands/snapshot.ts +1 -2
- package/src/platforms/teams/ensure-auth.test.ts +167 -0
- package/src/platforms/teams/ensure-auth.ts +34 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../../src/platforms/teams/commands/snapshot.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../../src/platforms/teams/commands/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-auth.d.ts","sourceRoot":"","sources":["../../../../src/platforms/teams/ensure-auth.ts"],"names":[],"mappings":"AAIA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA6BrD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { TeamsClient } from './client.js';
|
|
2
|
+
import { TeamsCredentialManager } from './credential-manager.js';
|
|
3
|
+
import { TeamsTokenExtractor } from './token-extractor.js';
|
|
4
|
+
export async function ensureTeamsAuth() {
|
|
5
|
+
try {
|
|
6
|
+
const credManager = new TeamsCredentialManager();
|
|
7
|
+
const config = await credManager.loadConfig();
|
|
8
|
+
if (config?.token && !(await credManager.isTokenExpired()))
|
|
9
|
+
return;
|
|
10
|
+
const extractor = new TeamsTokenExtractor();
|
|
11
|
+
const extracted = await extractor.extract();
|
|
12
|
+
if (!extracted)
|
|
13
|
+
return;
|
|
14
|
+
const client = new TeamsClient(extracted.token);
|
|
15
|
+
await client.testAuth();
|
|
16
|
+
const teams = await client.listTeams();
|
|
17
|
+
if (teams.length === 0)
|
|
18
|
+
return;
|
|
19
|
+
const teamMap = {};
|
|
20
|
+
for (const team of teams) {
|
|
21
|
+
teamMap[team.id] = { team_id: team.id, team_name: team.name };
|
|
22
|
+
}
|
|
23
|
+
await credManager.saveConfig({
|
|
24
|
+
token: extracted.token,
|
|
25
|
+
current_team: teams[0].id,
|
|
26
|
+
teams: teamMap,
|
|
27
|
+
token_expires_at: new Date(Date.now() + 60 * 60 * 1000).toISOString(),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch { }
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ensure-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-auth.js","sourceRoot":"","sources":["../../../../src/platforms/teams/ensure-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,CAAA;QAE7C,IAAI,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC;YAAE,OAAM;QAElE,MAAM,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAA;QAC3C,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAA;QAC3C,IAAI,CAAC,SAAS;YAAE,OAAM;QAEtB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;QAEvB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAA;QACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAE9B,MAAM,OAAO,GAA2D,EAAE,CAAA;QAC1E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/D,CAAC;QAED,MAAM,WAAW,CAAC,UAAU,CAAC;YAC3B,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACzB,KAAK,EAAE,OAAO;YACd,gBAAgB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;SACtE,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC"}
|
package/e2e/README.md
CHANGED
|
@@ -253,7 +253,7 @@ If tests crash before cleanup, you may have leftover messages in the `e2e-test`
|
|
|
253
253
|
agent-slack message list e2e-test --limit 20 --pretty
|
|
254
254
|
|
|
255
255
|
# Delete specific message
|
|
256
|
-
agent-slack message delete e2e-test <
|
|
256
|
+
agent-slack message delete e2e-test <ts> --force
|
|
257
257
|
```
|
|
258
258
|
|
|
259
259
|
### CI Environment Variables Not Working
|
package/package.json
CHANGED
|
@@ -11,10 +11,7 @@ A TypeScript CLI tool that enables AI agents and humans to interact with Discord
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
#
|
|
15
|
-
agent-discord auth extract
|
|
16
|
-
|
|
17
|
-
# Get server snapshot
|
|
14
|
+
# Get server snapshot (credentials are extracted automatically)
|
|
18
15
|
agent-discord snapshot
|
|
19
16
|
|
|
20
17
|
# Send a message
|
|
@@ -26,24 +23,9 @@ agent-discord channel list
|
|
|
26
23
|
|
|
27
24
|
## Authentication
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
agent-discord automatically extracts your Discord credentials from the desktop app:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
# Just run this - no manual token copying needed
|
|
35
|
-
agent-discord auth extract
|
|
36
|
-
|
|
37
|
-
# Use --debug for troubleshooting
|
|
38
|
-
agent-discord auth extract --debug
|
|
39
|
-
```
|
|
26
|
+
Credentials are extracted automatically from the Discord desktop app on first use. No manual setup required — just run any command and authentication happens silently in the background.
|
|
40
27
|
|
|
41
|
-
This
|
|
42
|
-
- Auto-detects your platform (macOS/Linux/Windows)
|
|
43
|
-
- Extracts user token from Discord desktop app's LevelDB storage
|
|
44
|
-
- Validates token against Discord API before saving
|
|
45
|
-
- Discovers ALL joined servers
|
|
46
|
-
- Stores credentials securely in `~/.config/agent-messenger/`
|
|
28
|
+
On macOS, the system may prompt for your Keychain password the first time (required to decrypt Discord's stored token). This is a one-time prompt.
|
|
47
29
|
|
|
48
30
|
### Multi-Server Support
|
|
49
31
|
|
|
@@ -83,6 +65,11 @@ agent-discord message delete <channel-id> <message-id> --force
|
|
|
83
65
|
|
|
84
66
|
# Acknowledge/mark a message as read
|
|
85
67
|
agent-discord message ack <channel-id> <message-id>
|
|
68
|
+
|
|
69
|
+
# Search messages in current server
|
|
70
|
+
agent-discord message search <query>
|
|
71
|
+
agent-discord message search "project update" --limit 10
|
|
72
|
+
agent-discord message search "hello" --channel <channel-id> --author <user-id>
|
|
86
73
|
```
|
|
87
74
|
|
|
88
75
|
### Channel Commands
|
|
@@ -298,7 +285,7 @@ All commands return consistent error format:
|
|
|
298
285
|
```
|
|
299
286
|
|
|
300
287
|
Common errors:
|
|
301
|
-
- `Not authenticated`: No valid token -
|
|
288
|
+
- `Not authenticated`: No valid token (auto-extraction failed — see Troubleshooting)
|
|
302
289
|
- `No current server set`: Run `server switch <id>` first
|
|
303
290
|
- `Message not found`: Invalid message ID
|
|
304
291
|
- `Unknown Channel`: Invalid channel ID
|
|
@@ -335,6 +322,19 @@ Format:
|
|
|
335
322
|
|
|
336
323
|
## Troubleshooting
|
|
337
324
|
|
|
325
|
+
### Authentication fails or no token found
|
|
326
|
+
|
|
327
|
+
Credentials are normally extracted automatically. If auto-extraction fails, run it manually with debug output:
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
agent-discord auth extract --debug
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
Common causes:
|
|
334
|
+
- Discord desktop app is not installed or not logged in
|
|
335
|
+
- macOS Keychain access was denied (re-run and approve the prompt)
|
|
336
|
+
- Discord is not running and LevelDB files are stale
|
|
337
|
+
|
|
338
338
|
### `agent-discord: command not found`
|
|
339
339
|
|
|
340
340
|
**`agent-discord` is NOT the npm package name.** The npm package is `agent-messenger`.
|
|
@@ -11,10 +11,7 @@ A TypeScript CLI tool that enables AI agents and humans to interact with Slack w
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
#
|
|
15
|
-
agent-slack auth extract
|
|
16
|
-
|
|
17
|
-
# Get workspace snapshot
|
|
14
|
+
# Get workspace snapshot (credentials are extracted automatically)
|
|
18
15
|
agent-slack snapshot
|
|
19
16
|
|
|
20
17
|
# Send a message
|
|
@@ -26,25 +23,9 @@ agent-slack channel list
|
|
|
26
23
|
|
|
27
24
|
## Authentication
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
agent-slack automatically extracts your Slack credentials from the desktop app:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
# Just run this - no manual token copying needed
|
|
35
|
-
agent-slack auth extract
|
|
36
|
-
|
|
37
|
-
# Use --debug for troubleshooting
|
|
38
|
-
agent-slack auth extract --debug
|
|
39
|
-
```
|
|
26
|
+
Credentials are extracted automatically from the Slack desktop app on first use. No manual setup required — just run any command and authentication happens silently in the background.
|
|
40
27
|
|
|
41
|
-
This
|
|
42
|
-
- Auto-detects your platform (macOS/Linux/Windows)
|
|
43
|
-
- Supports both direct download and App Store versions of Slack on macOS
|
|
44
|
-
- Extracts xoxc token and xoxd cookie (with v10 decryption for sandboxed apps)
|
|
45
|
-
- Validates tokens against Slack API before saving
|
|
46
|
-
- Discovers ALL logged-in workspaces
|
|
47
|
-
- Stores credentials securely in `~/.config/agent-messenger/`
|
|
28
|
+
On macOS, the system may prompt for your Keychain password the first time (required to decrypt Slack's stored token). This is a one-time prompt.
|
|
48
29
|
|
|
49
30
|
### Multi-Workspace Support
|
|
50
31
|
|
|
@@ -165,16 +146,14 @@ agent-slack file info <file-id>
|
|
|
165
146
|
### Unread Commands
|
|
166
147
|
|
|
167
148
|
```bash
|
|
168
|
-
#
|
|
169
|
-
agent-slack unread
|
|
170
|
-
agent-slack unread list --pretty
|
|
149
|
+
# Get unread counts for all channels
|
|
150
|
+
agent-slack unread counts
|
|
171
151
|
|
|
172
|
-
# Get
|
|
173
|
-
agent-slack unread
|
|
152
|
+
# Get thread subscription details
|
|
153
|
+
agent-slack unread threads <channel> <thread_ts>
|
|
174
154
|
|
|
175
|
-
# Mark channel as read
|
|
176
|
-
agent-slack mark
|
|
177
|
-
agent-slack mark read general
|
|
155
|
+
# Mark channel as read up to timestamp
|
|
156
|
+
agent-slack unread mark <channel> <ts>
|
|
178
157
|
```
|
|
179
158
|
|
|
180
159
|
### Activity Commands
|
|
@@ -183,6 +162,8 @@ agent-slack mark read general
|
|
|
183
162
|
# List activity feed (mentions, reactions, replies)
|
|
184
163
|
agent-slack activity list
|
|
185
164
|
agent-slack activity list --limit 50
|
|
165
|
+
agent-slack activity list --unread
|
|
166
|
+
agent-slack activity list --types thread_reply,message_reaction
|
|
186
167
|
```
|
|
187
168
|
|
|
188
169
|
### Saved Items Commands
|
|
@@ -190,13 +171,7 @@ agent-slack activity list --limit 50
|
|
|
190
171
|
```bash
|
|
191
172
|
# List saved items
|
|
192
173
|
agent-slack saved list
|
|
193
|
-
|
|
194
|
-
# Add item to saved
|
|
195
|
-
agent-slack saved add <channel> <ts>
|
|
196
|
-
agent-slack saved add general 1234567890.123456
|
|
197
|
-
|
|
198
|
-
# Remove item from saved
|
|
199
|
-
agent-slack saved remove <channel> <ts>
|
|
174
|
+
agent-slack saved list --limit 10
|
|
200
175
|
```
|
|
201
176
|
|
|
202
177
|
### Drafts Commands
|
|
@@ -211,8 +186,8 @@ agent-slack drafts list --pretty
|
|
|
211
186
|
|
|
212
187
|
```bash
|
|
213
188
|
# List channel sections (sidebar organization)
|
|
214
|
-
agent-slack
|
|
215
|
-
agent-slack
|
|
189
|
+
agent-slack sections list
|
|
190
|
+
agent-slack sections list --pretty
|
|
216
191
|
```
|
|
217
192
|
|
|
218
193
|
### Snapshot Command
|
|
@@ -281,7 +256,7 @@ All commands return consistent error format:
|
|
|
281
256
|
```
|
|
282
257
|
|
|
283
258
|
Common errors:
|
|
284
|
-
- `NO_WORKSPACE`: No authenticated workspace
|
|
259
|
+
- `NO_WORKSPACE`: No authenticated workspace (auto-extraction failed — see Troubleshooting)
|
|
285
260
|
- `SLACK_API_ERROR`: Slack API returned an error
|
|
286
261
|
- `RATE_LIMIT`: Hit Slack rate limit (auto-retries with backoff)
|
|
287
262
|
|
|
@@ -317,6 +292,19 @@ Format:
|
|
|
317
292
|
|
|
318
293
|
## Troubleshooting
|
|
319
294
|
|
|
295
|
+
### Authentication fails or no workspace found
|
|
296
|
+
|
|
297
|
+
Credentials are normally extracted automatically. If auto-extraction fails, run it manually with debug output:
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
agent-slack auth extract --debug
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Common causes:
|
|
304
|
+
- Slack desktop app is not installed or not logged in
|
|
305
|
+
- macOS Keychain access was denied (re-run and approve the prompt)
|
|
306
|
+
- Slack was installed via a method that uses a different storage path
|
|
307
|
+
|
|
320
308
|
### `agent-slack: command not found`
|
|
321
309
|
|
|
322
310
|
**`agent-slack` is NOT the npm package name.** The npm package is `agent-messenger`.
|
|
@@ -8,58 +8,24 @@ allowed-tools: Bash(agent-teams:*)
|
|
|
8
8
|
|
|
9
9
|
A TypeScript CLI tool that enables AI agents and humans to interact with Microsoft Teams through a simple command interface. Features seamless token extraction from the Teams desktop app and multi-team support.
|
|
10
10
|
|
|
11
|
-
## TOKEN EXPIRY WARNING
|
|
12
|
-
|
|
13
|
-
**CRITICAL**: Microsoft Teams tokens expire in **60-90 minutes**! Unlike Discord/Slack, Teams tokens have a short lifespan. You MUST:
|
|
14
|
-
|
|
15
|
-
1. Check token validity before operations
|
|
16
|
-
2. Re-extract credentials when tokens expire
|
|
17
|
-
3. Handle `401 Unauthorized` errors gracefully
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
# Always check auth status first
|
|
21
|
-
agent-teams auth status
|
|
22
|
-
|
|
23
|
-
# If expired, re-extract
|
|
24
|
-
agent-teams auth extract
|
|
25
|
-
```
|
|
26
|
-
|
|
27
11
|
## Quick Start
|
|
28
12
|
|
|
29
13
|
```bash
|
|
30
|
-
#
|
|
31
|
-
agent-teams auth extract
|
|
32
|
-
|
|
33
|
-
# Get team snapshot
|
|
14
|
+
# Get team snapshot (credentials are extracted automatically)
|
|
34
15
|
agent-teams snapshot
|
|
35
16
|
|
|
36
17
|
# Send a message
|
|
37
|
-
agent-teams message send <channel-id> "Hello from AI agent!"
|
|
18
|
+
agent-teams message send <team-id> <channel-id> "Hello from AI agent!"
|
|
38
19
|
|
|
39
20
|
# List channels
|
|
40
|
-
agent-teams channel list
|
|
21
|
+
agent-teams channel list <team-id>
|
|
41
22
|
```
|
|
42
23
|
|
|
43
24
|
## Authentication
|
|
44
25
|
|
|
45
|
-
|
|
26
|
+
Credentials are extracted automatically from the Teams desktop app on first use. No manual setup required — just run any command and authentication happens silently in the background.
|
|
46
27
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
# Just run this - no manual token copying needed
|
|
51
|
-
agent-teams auth extract
|
|
52
|
-
|
|
53
|
-
# Use --debug for troubleshooting
|
|
54
|
-
agent-teams auth extract --debug
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
This command:
|
|
58
|
-
- Auto-detects your platform (macOS/Linux/Windows)
|
|
59
|
-
- Extracts skypetoken_asm from Teams desktop app's Cookies SQLite database
|
|
60
|
-
- Validates token against Teams API before saving
|
|
61
|
-
- Discovers ALL joined teams
|
|
62
|
-
- Stores credentials securely in `~/.config/agent-messenger/`
|
|
28
|
+
Teams tokens expire in 60-90 minutes. The CLI automatically re-extracts a fresh token when the current one expires, so you don't need to manage token lifecycle manually.
|
|
63
29
|
|
|
64
30
|
### Multi-Team Support
|
|
65
31
|
|
|
@@ -83,32 +49,32 @@ agent-teams auth status
|
|
|
83
49
|
|
|
84
50
|
```bash
|
|
85
51
|
# Send a message
|
|
86
|
-
agent-teams message send <channel-id> <content>
|
|
87
|
-
agent-teams message send 19:abc123@thread.tacv2 "Hello world"
|
|
52
|
+
agent-teams message send <team-id> <channel-id> <content>
|
|
53
|
+
agent-teams message send <team-id> 19:abc123@thread.tacv2 "Hello world"
|
|
88
54
|
|
|
89
55
|
# List messages
|
|
90
|
-
agent-teams message list <channel-id>
|
|
91
|
-
agent-teams message list 19:abc123@thread.tacv2 --limit 50
|
|
56
|
+
agent-teams message list <team-id> <channel-id>
|
|
57
|
+
agent-teams message list <team-id> 19:abc123@thread.tacv2 --limit 50
|
|
92
58
|
|
|
93
59
|
# Get a single message by ID
|
|
94
|
-
agent-teams message get <channel-id> <message-id>
|
|
60
|
+
agent-teams message get <team-id> <channel-id> <message-id>
|
|
95
61
|
|
|
96
62
|
# Delete a message
|
|
97
|
-
agent-teams message delete <channel-id> <message-id> --force
|
|
63
|
+
agent-teams message delete <team-id> <channel-id> <message-id> --force
|
|
98
64
|
```
|
|
99
65
|
|
|
100
66
|
### Channel Commands
|
|
101
67
|
|
|
102
68
|
```bash
|
|
103
|
-
# List channels in
|
|
104
|
-
agent-teams channel list
|
|
69
|
+
# List channels in a team
|
|
70
|
+
agent-teams channel list <team-id>
|
|
105
71
|
|
|
106
72
|
# Get channel info
|
|
107
|
-
agent-teams channel info <channel-id>
|
|
108
|
-
agent-teams channel info 19:abc123@thread.tacv2
|
|
73
|
+
agent-teams channel info <team-id> <channel-id>
|
|
74
|
+
agent-teams channel info <team-id> 19:abc123@thread.tacv2
|
|
109
75
|
|
|
110
76
|
# Get channel history (alias for message list)
|
|
111
|
-
agent-teams channel history <channel-id> --limit 100
|
|
77
|
+
agent-teams channel history <team-id> <channel-id> --limit 100
|
|
112
78
|
```
|
|
113
79
|
|
|
114
80
|
### Team Commands
|
|
@@ -131,7 +97,7 @@ agent-teams team current
|
|
|
131
97
|
|
|
132
98
|
```bash
|
|
133
99
|
# List team members
|
|
134
|
-
agent-teams user list
|
|
100
|
+
agent-teams user list <team-id>
|
|
135
101
|
|
|
136
102
|
# Get user info
|
|
137
103
|
agent-teams user info <user-id>
|
|
@@ -144,28 +110,25 @@ agent-teams user me
|
|
|
144
110
|
|
|
145
111
|
```bash
|
|
146
112
|
# Add reaction (use emoji name)
|
|
147
|
-
agent-teams reaction add <channel-id> <message-id> <emoji>
|
|
148
|
-
agent-teams reaction add 19:abc123@thread.tacv2 1234567890 like
|
|
113
|
+
agent-teams reaction add <team-id> <channel-id> <message-id> <emoji>
|
|
114
|
+
agent-teams reaction add <team-id> 19:abc123@thread.tacv2 1234567890 like
|
|
149
115
|
|
|
150
116
|
# Remove reaction
|
|
151
|
-
agent-teams reaction remove <channel-id> <message-id> <emoji>
|
|
152
|
-
|
|
153
|
-
# List reactions on a message
|
|
154
|
-
agent-teams reaction list <channel-id> <message-id>
|
|
117
|
+
agent-teams reaction remove <team-id> <channel-id> <message-id> <emoji>
|
|
155
118
|
```
|
|
156
119
|
|
|
157
120
|
### File Commands
|
|
158
121
|
|
|
159
122
|
```bash
|
|
160
123
|
# Upload file
|
|
161
|
-
agent-teams file upload <channel-id> <path>
|
|
162
|
-
agent-teams file upload 19:abc123@thread.tacv2 ./report.pdf
|
|
124
|
+
agent-teams file upload <team-id> <channel-id> <path>
|
|
125
|
+
agent-teams file upload <team-id> 19:abc123@thread.tacv2 ./report.pdf
|
|
163
126
|
|
|
164
127
|
# List files in channel
|
|
165
|
-
agent-teams file list <channel-id>
|
|
128
|
+
agent-teams file list <team-id> <channel-id>
|
|
166
129
|
|
|
167
130
|
# Get file info
|
|
168
|
-
agent-teams file info <channel-id> <file-id>
|
|
131
|
+
agent-teams file info <team-id> <channel-id> <file-id>
|
|
169
132
|
```
|
|
170
133
|
|
|
171
134
|
### Snapshot Command
|
|
@@ -247,12 +210,12 @@ All commands return consistent error format:
|
|
|
247
210
|
```
|
|
248
211
|
|
|
249
212
|
Common errors:
|
|
250
|
-
- `Not authenticated`: No valid token -
|
|
251
|
-
- `Token expired`: Token has expired
|
|
213
|
+
- `Not authenticated`: No valid token (auto-extraction failed — see Troubleshooting)
|
|
214
|
+
- `Token expired`: Token has expired and auto-refresh failed — see Troubleshooting
|
|
252
215
|
- `No current team set`: Run `team switch <id>` first
|
|
253
216
|
- `Message not found`: Invalid message ID
|
|
254
217
|
- `Channel not found`: Invalid channel ID
|
|
255
|
-
- `401 Unauthorized`: Token expired
|
|
218
|
+
- `401 Unauthorized`: Token expired and auto-refresh failed — see Troubleshooting
|
|
256
219
|
|
|
257
220
|
## Configuration
|
|
258
221
|
|
|
@@ -284,10 +247,23 @@ Format:
|
|
|
284
247
|
- No webhook support
|
|
285
248
|
- Plain text messages only (no adaptive cards in v1)
|
|
286
249
|
- User tokens only (no app tokens)
|
|
287
|
-
- **Token expires in 60-90 minutes** -
|
|
250
|
+
- **Token expires in 60-90 minutes** - auto-refreshed, but requires Teams desktop app to be logged in
|
|
288
251
|
|
|
289
252
|
## Troubleshooting
|
|
290
253
|
|
|
254
|
+
### Authentication fails or token expired
|
|
255
|
+
|
|
256
|
+
Credentials and token refresh are normally handled automatically. If auto-extraction fails, run it manually with debug output:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
agent-teams auth extract --debug
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Common causes:
|
|
263
|
+
- Teams desktop app is not installed or not logged in
|
|
264
|
+
- Teams Cookies database is locked or inaccessible
|
|
265
|
+
- Token expired and Teams desktop app session also expired (re-login to Teams)
|
|
266
|
+
|
|
291
267
|
### `agent-teams: command not found`
|
|
292
268
|
|
|
293
269
|
**`agent-teams` is NOT the npm package name.** The npm package is `agent-messenger`.
|