agent-messenger 2.8.0 → 2.10.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/plugin.json +1 -1
- package/README.md +0 -11
- package/dist/package.json +1 -1
- package/dist/src/platforms/channeltalk/commands/snapshot.d.ts +4 -2
- package/dist/src/platforms/channeltalk/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/channeltalk/commands/snapshot.js +86 -31
- package/dist/src/platforms/channeltalk/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/channeltalkbot/commands/snapshot.d.ts +3 -1
- package/dist/src/platforms/channeltalkbot/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/channeltalkbot/commands/snapshot.js +110 -60
- package/dist/src/platforms/channeltalkbot/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/discord/commands/snapshot.d.ts +1 -0
- package/dist/src/platforms/discord/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/snapshot.js +48 -34
- package/dist/src/platforms/discord/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/discordbot/commands/snapshot.d.ts +2 -0
- package/dist/src/platforms/discordbot/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/discordbot/commands/snapshot.js +46 -34
- package/dist/src/platforms/discordbot/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/slack/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/snapshot.js +75 -55
- package/dist/src/platforms/slack/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/teams/client.d.ts +9 -1
- package/dist/src/platforms/teams/client.d.ts.map +1 -1
- package/dist/src/platforms/teams/client.js +69 -18
- package/dist/src/platforms/teams/client.js.map +1 -1
- package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/auth.js +7 -2
- package/dist/src/platforms/teams/commands/auth.js.map +1 -1
- package/dist/src/platforms/teams/commands/channel.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/channel.js +18 -3
- package/dist/src/platforms/teams/commands/channel.js.map +1 -1
- package/dist/src/platforms/teams/commands/file.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/file.js +18 -3
- package/dist/src/platforms/teams/commands/file.js.map +1 -1
- package/dist/src/platforms/teams/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/message.js +24 -4
- package/dist/src/platforms/teams/commands/message.js.map +1 -1
- package/dist/src/platforms/teams/commands/reaction.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/reaction.js +12 -2
- package/dist/src/platforms/teams/commands/reaction.js.map +1 -1
- package/dist/src/platforms/teams/commands/snapshot.d.ts +1 -0
- package/dist/src/platforms/teams/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/snapshot.js +50 -32
- package/dist/src/platforms/teams/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/teams/commands/team.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/team.js +6 -1
- package/dist/src/platforms/teams/commands/team.js.map +1 -1
- package/dist/src/platforms/teams/commands/user.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/user.js +18 -3
- package/dist/src/platforms/teams/commands/user.js.map +1 -1
- package/dist/src/platforms/teams/commands/whoami.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/whoami.js +6 -1
- package/dist/src/platforms/teams/commands/whoami.js.map +1 -1
- package/dist/src/platforms/teams/credential-manager.d.ts +3 -1
- package/dist/src/platforms/teams/credential-manager.d.ts.map +1 -1
- package/dist/src/platforms/teams/credential-manager.js +6 -1
- package/dist/src/platforms/teams/credential-manager.js.map +1 -1
- package/dist/src/platforms/teams/ensure-auth.d.ts.map +1 -1
- package/dist/src/platforms/teams/ensure-auth.js +7 -2
- package/dist/src/platforms/teams/ensure-auth.js.map +1 -1
- package/dist/src/platforms/teams/token-extractor.d.ts +3 -1
- package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/teams/token-extractor.js +67 -10
- package/dist/src/platforms/teams/token-extractor.js.map +1 -1
- package/dist/src/platforms/teams/types.d.ts +17 -0
- package/dist/src/platforms/teams/types.d.ts.map +1 -1
- package/dist/src/platforms/teams/types.js +2 -0
- package/dist/src/platforms/teams/types.js.map +1 -1
- package/dist/src/platforms/webex/client.d.ts +3 -0
- package/dist/src/platforms/webex/client.d.ts.map +1 -1
- package/dist/src/platforms/webex/client.js +58 -13
- package/dist/src/platforms/webex/client.js.map +1 -1
- package/dist/src/platforms/webex/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/webex/commands/auth.js +61 -10
- package/dist/src/platforms/webex/commands/auth.js.map +1 -1
- package/dist/src/platforms/webex/commands/snapshot.d.ts +1 -0
- package/dist/src/platforms/webex/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/webex/commands/snapshot.js +14 -7
- package/dist/src/platforms/webex/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/webex/credential-manager.d.ts.map +1 -1
- package/dist/src/platforms/webex/credential-manager.js +18 -6
- package/dist/src/platforms/webex/credential-manager.js.map +1 -1
- package/dist/src/platforms/webex/encryption.d.ts.map +1 -1
- package/dist/src/platforms/webex/encryption.js +3 -1
- package/dist/src/platforms/webex/encryption.js.map +1 -1
- package/dist/src/platforms/webex/ensure-auth.d.ts.map +1 -1
- package/dist/src/platforms/webex/ensure-auth.js +10 -2
- package/dist/src/platforms/webex/ensure-auth.js.map +1 -1
- package/dist/src/platforms/webex/token-extractor.d.ts +1 -0
- package/dist/src/platforms/webex/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/webex/token-extractor.js +21 -4
- package/dist/src/platforms/webex/token-extractor.js.map +1 -1
- package/docs/content/docs/agent-skills.mdx +0 -10
- package/docs/content/docs/cli/channeltalk.mdx +18 -8
- package/docs/content/docs/cli/channeltalkbot.mdx +16 -6
- package/docs/content/docs/cli/discord.mdx +23 -7
- package/docs/content/docs/cli/discordbot.mdx +23 -7
- package/docs/content/docs/cli/slack.mdx +24 -7
- package/docs/content/docs/cli/teams.mdx +24 -8
- package/docs/content/docs/cli/webex.mdx +15 -2
- package/e2e/webex.e2e.test.ts +57 -0
- package/package.json +1 -1
- package/skills/agent-channeltalk/SKILL.md +19 -9
- package/skills/agent-channeltalk/references/common-patterns.md +10 -9
- package/skills/agent-channeltalkbot/SKILL.md +19 -9
- package/skills/agent-channeltalkbot/references/common-patterns.md +10 -9
- package/skills/agent-discord/SKILL.md +18 -9
- package/skills/agent-discord/references/common-patterns.md +8 -7
- package/skills/agent-discordbot/SKILL.md +18 -9
- package/skills/agent-instagram/SKILL.md +1 -1
- package/skills/agent-kakaotalk/SKILL.md +1 -1
- package/skills/agent-line/SKILL.md +1 -1
- package/skills/agent-slack/SKILL.md +19 -10
- package/skills/agent-slack/references/common-patterns.md +4 -7
- package/skills/agent-slackbot/SKILL.md +1 -1
- package/skills/agent-teams/SKILL.md +18 -9
- package/skills/agent-teams/references/common-patterns.md +9 -7
- package/skills/agent-telegram/SKILL.md +1 -1
- package/skills/agent-webex/SKILL.md +13 -4
- package/skills/agent-webex/references/common-patterns.md +8 -2
- package/skills/agent-wechatbot/SKILL.md +1 -1
- package/skills/agent-whatsapp/SKILL.md +1 -1
- package/skills/agent-whatsappbot/SKILL.md +1 -1
- package/src/platforms/channeltalk/commands/snapshot.test.ts +58 -26
- package/src/platforms/channeltalk/commands/snapshot.ts +107 -33
- package/src/platforms/channeltalkbot/commands/snapshot.test.ts +26 -8
- package/src/platforms/channeltalkbot/commands/snapshot.ts +131 -64
- package/src/platforms/discord/commands/snapshot.test.ts +1 -1
- package/src/platforms/discord/commands/snapshot.ts +58 -42
- package/src/platforms/discordbot/commands/snapshot.test.ts +40 -18
- package/src/platforms/discordbot/commands/snapshot.ts +54 -37
- package/src/platforms/slack/commands/snapshot.test.ts +63 -8
- package/src/platforms/slack/commands/snapshot.ts +98 -66
- package/src/platforms/teams/client.test.ts +34 -30
- package/src/platforms/teams/client.ts +92 -20
- package/src/platforms/teams/commands/auth.test.ts +6 -2
- package/src/platforms/teams/commands/auth.ts +7 -2
- package/src/platforms/teams/commands/channel.test.ts +6 -6
- package/src/platforms/teams/commands/channel.ts +18 -3
- package/src/platforms/teams/commands/file.ts +18 -3
- package/src/platforms/teams/commands/message.ts +24 -4
- package/src/platforms/teams/commands/reaction.ts +12 -2
- package/src/platforms/teams/commands/snapshot.test.ts +1 -1
- package/src/platforms/teams/commands/snapshot.ts +59 -39
- package/src/platforms/teams/commands/team.test.ts +2 -2
- package/src/platforms/teams/commands/team.ts +6 -1
- package/src/platforms/teams/commands/user.ts +18 -3
- package/src/platforms/teams/commands/whoami.ts +6 -1
- package/src/platforms/teams/credential-manager.test.ts +25 -0
- package/src/platforms/teams/credential-manager.ts +13 -3
- package/src/platforms/teams/ensure-auth.test.ts +6 -1
- package/src/platforms/teams/ensure-auth.ts +7 -2
- package/src/platforms/teams/token-extractor.ts +77 -12
- package/src/platforms/teams/types.test.ts +17 -0
- package/src/platforms/teams/types.ts +6 -0
- package/src/platforms/webex/client.test.ts +157 -13
- package/src/platforms/webex/client.ts +64 -15
- package/src/platforms/webex/commands/auth.test.ts +122 -1
- package/src/platforms/webex/commands/auth.ts +72 -17
- package/src/platforms/webex/commands/snapshot.test.ts +14 -1
- package/src/platforms/webex/commands/snapshot.ts +17 -9
- package/src/platforms/webex/credential-manager.test.ts +63 -0
- package/src/platforms/webex/credential-manager.ts +22 -8
- package/src/platforms/webex/encryption.test.ts +54 -0
- package/src/platforms/webex/encryption.ts +3 -1
- package/src/platforms/webex/ensure-auth.ts +10 -2
- package/src/platforms/webex/token-extractor.test.ts +32 -3
- package/src/platforms/webex/token-extractor.ts +26 -5
package/e2e/webex.e2e.test.ts
CHANGED
|
@@ -117,7 +117,64 @@ describe('Webex E2E Tests', () => {
|
|
|
117
117
|
|
|
118
118
|
const result = await runCLI('webex', ['message', 'edit', sent!.id, WEBEX_TEST_SPACE_ID, `edited ${testId}`])
|
|
119
119
|
expect(result.exitCode).toBe(0)
|
|
120
|
+
|
|
121
|
+
const edited = parseJSON<{ id: string; text: string }>(result.stdout)
|
|
122
|
+
expect(edited?.id).toBeTruthy()
|
|
123
|
+
expect(edited?.text).toBe(`edited ${testId}`)
|
|
120
124
|
}, 30000)
|
|
125
|
+
|
|
126
|
+
// Regression for the silent-edit-failure bug: plain-text and markdown edits go
|
|
127
|
+
// through different `buildEncryptedObject` branches, and a second edit catches
|
|
128
|
+
// cases where the first edit corrupted the activity chain.
|
|
129
|
+
//
|
|
130
|
+
// Uses `editWithRetry` because the Webex internal conversation endpoint has
|
|
131
|
+
// a tighter 429 budget than the public REST gateway, and internal requests
|
|
132
|
+
// do not share the same auto-retry logic as public-API requests.
|
|
133
|
+
const editWithRetry = async (args: string[]) => {
|
|
134
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
135
|
+
const r = await runCLI('webex', args)
|
|
136
|
+
if (r.exitCode === 0 || !r.stderr.includes('HTTP 429')) return r
|
|
137
|
+
await waitForRateLimit(5000 * (attempt + 1))
|
|
138
|
+
}
|
|
139
|
+
return runCLI('webex', args)
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
test('message edit survives second edit and markdown edit (regression for silent failure)', async () => {
|
|
143
|
+
if (!webexAvailable) return
|
|
144
|
+
|
|
145
|
+
const testId = generateTestId()
|
|
146
|
+
const sendResult = await runCLI('webex', ['message', 'send', WEBEX_TEST_SPACE_ID, `regression ${testId}`])
|
|
147
|
+
expect(sendResult.exitCode).toBe(0)
|
|
148
|
+
|
|
149
|
+
const sent = parseJSON<{ id: string }>(sendResult.stdout)
|
|
150
|
+
expect(sent?.id).toBeTruthy()
|
|
151
|
+
if (sent?.id) testMessages.push(sent.id)
|
|
152
|
+
|
|
153
|
+
await waitForRateLimit(3000)
|
|
154
|
+
|
|
155
|
+
const first = await editWithRetry(['message', 'edit', sent!.id, WEBEX_TEST_SPACE_ID, `first edit ${testId}`])
|
|
156
|
+
expect(first.exitCode).toBe(0)
|
|
157
|
+
expect(first.stderr).not.toContain('edit_failed')
|
|
158
|
+
expect(first.stderr).not.toContain('Edit rejected')
|
|
159
|
+
|
|
160
|
+
await waitForRateLimit(3000)
|
|
161
|
+
|
|
162
|
+
const second = await editWithRetry([
|
|
163
|
+
'message',
|
|
164
|
+
'edit',
|
|
165
|
+
sent!.id,
|
|
166
|
+
WEBEX_TEST_SPACE_ID,
|
|
167
|
+
`**second edit** ${testId}`,
|
|
168
|
+
'--markdown',
|
|
169
|
+
])
|
|
170
|
+
expect(second.exitCode).toBe(0)
|
|
171
|
+
expect(second.stderr).not.toContain('edit_failed')
|
|
172
|
+
expect(second.stderr).not.toContain('Edit rejected')
|
|
173
|
+
|
|
174
|
+
const secondData = parseJSON<{ id: string; text: string }>(second.stdout)
|
|
175
|
+
expect(secondData?.id).toBeTruthy()
|
|
176
|
+
expect(secondData?.text).toContain(testId)
|
|
177
|
+
}, 60000)
|
|
121
178
|
})
|
|
122
179
|
|
|
123
180
|
describe('space', () => {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-channeltalk
|
|
3
3
|
description: Interact with Channel Talk using extracted desktop app or browser credentials - read chats, send messages, search messages, manage groups
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
allowed-tools: Bash(agent-channeltalk:*)
|
|
6
6
|
metadata:
|
|
7
7
|
openclaw:
|
|
@@ -267,21 +267,31 @@ agent-channeltalk bot list --limit 50
|
|
|
267
267
|
|
|
268
268
|
### Snapshot Command
|
|
269
269
|
|
|
270
|
-
Get
|
|
270
|
+
Get workspace overview for AI agents (brief by default):
|
|
271
271
|
|
|
272
272
|
```bash
|
|
273
|
-
#
|
|
273
|
+
# Brief snapshot (default) — fast, minimal API calls
|
|
274
274
|
agent-channeltalk snapshot
|
|
275
275
|
|
|
276
|
-
#
|
|
277
|
-
agent-channeltalk snapshot --
|
|
278
|
-
agent-channeltalk snapshot --chats-only
|
|
276
|
+
# Full snapshot — includes messages, managers, bots (slow, large output)
|
|
277
|
+
agent-channeltalk snapshot --full
|
|
279
278
|
|
|
280
|
-
#
|
|
281
|
-
agent-channeltalk snapshot --
|
|
279
|
+
# Filtered full snapshots
|
|
280
|
+
agent-channeltalk snapshot --full --groups-only
|
|
281
|
+
agent-channeltalk snapshot --full --chats-only
|
|
282
|
+
|
|
283
|
+
# Limit messages per group/chat (only with --full)
|
|
284
|
+
agent-channeltalk snapshot --full --limit 10
|
|
282
285
|
```
|
|
283
286
|
|
|
284
|
-
|
|
287
|
+
Default returns brief JSON with:
|
|
288
|
+
|
|
289
|
+
- Workspace metadata (id, name)
|
|
290
|
+
- Groups (id, name)
|
|
291
|
+
- UserChat summary (total count, by state)
|
|
292
|
+
- Hint for next commands
|
|
293
|
+
|
|
294
|
+
With `--full`, returns comprehensive JSON with:
|
|
285
295
|
|
|
286
296
|
- Workspace metadata (id, name)
|
|
287
297
|
- Groups with recent messages (id, name, messages)
|
|
@@ -92,28 +92,29 @@ done
|
|
|
92
92
|
```bash
|
|
93
93
|
#!/bin/bash
|
|
94
94
|
|
|
95
|
-
#
|
|
95
|
+
# Get brief snapshot (default — fast, minimal output)
|
|
96
96
|
SNAPSHOT=$(agent-channeltalk snapshot)
|
|
97
97
|
|
|
98
98
|
# Extract key info
|
|
99
99
|
WORKSPACE=$(echo "$SNAPSHOT" | jq -r '.workspace.name')
|
|
100
100
|
GROUP_COUNT=$(echo "$SNAPSHOT" | jq '.groups | length')
|
|
101
101
|
OPEN_CHATS=$(echo "$SNAPSHOT" | jq '.user_chats.by_state.opened')
|
|
102
|
-
MANAGER_COUNT=$(echo "$SNAPSHOT" | jq '.managers | length')
|
|
103
|
-
BOT_COUNT=$(echo "$SNAPSHOT" | jq '.bots | length')
|
|
104
102
|
|
|
105
103
|
echo "Workspace: $WORKSPACE"
|
|
106
104
|
echo "Groups: $GROUP_COUNT"
|
|
107
105
|
echo "Open chats: $OPEN_CHATS"
|
|
108
|
-
echo "Managers: $MANAGER_COUNT"
|
|
109
|
-
echo "Bots: $BOT_COUNT"
|
|
110
106
|
|
|
111
|
-
#
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
# List all groups
|
|
108
|
+
echo -e "\nGroups:"
|
|
109
|
+
echo "$SNAPSHOT" | jq -r '.groups[] | " \(.name) (\(.id))"'
|
|
110
|
+
|
|
111
|
+
# Then drill into specific resources for details
|
|
112
|
+
agent-channeltalk chat list --state opened --limit 10
|
|
113
|
+
agent-channeltalk manager list --limit 20
|
|
114
|
+
agent-channeltalk bot list --limit 20
|
|
114
115
|
```
|
|
115
116
|
|
|
116
|
-
**When to use**: Start of every AI agent session, periodic context refresh, workspace audits.
|
|
117
|
+
**When to use**: Start of every AI agent session, periodic context refresh, workspace audits. Start with brief snapshot, then use targeted list commands for messages, managers, or bots.
|
|
117
118
|
|
|
118
119
|
## Pattern 5: Find Group by Name
|
|
119
120
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-channeltalkbot
|
|
3
3
|
description: Interact with Channel Talk workspaces using API credentials - send messages, read chats, manage groups and bots
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
allowed-tools: Bash(agent-channeltalkbot:*)
|
|
6
6
|
metadata:
|
|
7
7
|
openclaw:
|
|
@@ -274,21 +274,31 @@ agent-channeltalkbot bot delete <bot-id> --force
|
|
|
274
274
|
|
|
275
275
|
### Snapshot Command
|
|
276
276
|
|
|
277
|
-
Get
|
|
277
|
+
Get workspace overview for AI agents (brief by default):
|
|
278
278
|
|
|
279
279
|
```bash
|
|
280
|
-
#
|
|
280
|
+
# Brief snapshot (default) — fast, minimal API calls
|
|
281
281
|
agent-channeltalkbot snapshot
|
|
282
282
|
|
|
283
|
-
#
|
|
284
|
-
agent-channeltalkbot snapshot --
|
|
285
|
-
agent-channeltalkbot snapshot --chats-only
|
|
283
|
+
# Full snapshot — includes messages, managers, bots (slow, large output)
|
|
284
|
+
agent-channeltalkbot snapshot --full
|
|
286
285
|
|
|
287
|
-
#
|
|
288
|
-
agent-channeltalkbot snapshot --
|
|
286
|
+
# Filtered full snapshots
|
|
287
|
+
agent-channeltalkbot snapshot --full --groups-only
|
|
288
|
+
agent-channeltalkbot snapshot --full --chats-only
|
|
289
|
+
|
|
290
|
+
# Limit messages per group/chat (only with --full)
|
|
291
|
+
agent-channeltalkbot snapshot --full --limit 10
|
|
289
292
|
```
|
|
290
293
|
|
|
291
|
-
|
|
294
|
+
Default returns brief JSON with:
|
|
295
|
+
|
|
296
|
+
- Workspace metadata (id, name, homepage_url, description)
|
|
297
|
+
- Groups (id, name)
|
|
298
|
+
- UserChat summary (opened/snoozed/closed counts)
|
|
299
|
+
- Hint for next commands
|
|
300
|
+
|
|
301
|
+
With `--full`, returns comprehensive JSON with:
|
|
292
302
|
|
|
293
303
|
- Workspace metadata (id, name, homepage_url, description)
|
|
294
304
|
- Groups with recent messages (id, name, messages)
|
|
@@ -112,28 +112,29 @@ fi
|
|
|
112
112
|
```bash
|
|
113
113
|
#!/bin/bash
|
|
114
114
|
|
|
115
|
-
#
|
|
115
|
+
# Get brief snapshot (default — fast, minimal output)
|
|
116
116
|
SNAPSHOT=$(agent-channeltalkbot snapshot)
|
|
117
117
|
|
|
118
118
|
# Extract key info
|
|
119
119
|
WORKSPACE=$(echo "$SNAPSHOT" | jq -r '.workspace.name')
|
|
120
120
|
GROUP_COUNT=$(echo "$SNAPSHOT" | jq '.groups | length')
|
|
121
121
|
OPEN_CHATS=$(echo "$SNAPSHOT" | jq '.user_chats.opened_count')
|
|
122
|
-
MANAGER_COUNT=$(echo "$SNAPSHOT" | jq '.managers | length')
|
|
123
|
-
BOT_COUNT=$(echo "$SNAPSHOT" | jq '.bots | length')
|
|
124
122
|
|
|
125
123
|
echo "Workspace: $WORKSPACE"
|
|
126
124
|
echo "Groups: $GROUP_COUNT"
|
|
127
125
|
echo "Open chats: $OPEN_CHATS"
|
|
128
|
-
echo "Managers: $MANAGER_COUNT"
|
|
129
|
-
echo "Bots: $BOT_COUNT"
|
|
130
126
|
|
|
131
|
-
#
|
|
132
|
-
|
|
133
|
-
|
|
127
|
+
# List all groups
|
|
128
|
+
echo -e "\nGroups:"
|
|
129
|
+
echo "$SNAPSHOT" | jq -r '.groups[] | " \(.name) (\(.id))"'
|
|
130
|
+
|
|
131
|
+
# Then drill into specific resources for details
|
|
132
|
+
agent-channeltalkbot chat list --state opened --limit 10
|
|
133
|
+
agent-channeltalkbot manager list
|
|
134
|
+
agent-channeltalkbot bot list
|
|
134
135
|
```
|
|
135
136
|
|
|
136
|
-
**When to use**: Start of every AI agent session, periodic context refresh, workspace audits.
|
|
137
|
+
**When to use**: Start of every AI agent session, periodic context refresh, workspace audits. Start with brief snapshot, then use targeted list commands for chats, managers, or bots.
|
|
137
138
|
|
|
138
139
|
## Pattern 6: Search Messages Across Chats
|
|
139
140
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-discord
|
|
3
3
|
description: Interact with Discord servers - send messages, read channels, manage reactions
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
allowed-tools: Bash(agent-discord:*)
|
|
6
6
|
metadata:
|
|
7
7
|
openclaw:
|
|
@@ -318,21 +318,30 @@ agent-discord file info <channel-id> <file-id>
|
|
|
318
318
|
|
|
319
319
|
### Snapshot Command
|
|
320
320
|
|
|
321
|
-
Get
|
|
321
|
+
Get server overview for AI agents (brief by default):
|
|
322
322
|
|
|
323
323
|
```bash
|
|
324
|
-
#
|
|
324
|
+
# Brief snapshot (default) — fast, minimal API calls
|
|
325
325
|
agent-discord snapshot
|
|
326
326
|
|
|
327
|
-
#
|
|
328
|
-
agent-discord snapshot --
|
|
329
|
-
agent-discord snapshot --users-only
|
|
327
|
+
# Full snapshot — includes messages and members (slow, large output)
|
|
328
|
+
agent-discord snapshot --full
|
|
330
329
|
|
|
331
|
-
#
|
|
332
|
-
agent-discord snapshot --
|
|
330
|
+
# Filtered full snapshots
|
|
331
|
+
agent-discord snapshot --full --channels-only
|
|
332
|
+
agent-discord snapshot --full --users-only
|
|
333
|
+
|
|
334
|
+
# Limit messages per channel (only with --full)
|
|
335
|
+
agent-discord snapshot --full --limit 10
|
|
333
336
|
```
|
|
334
337
|
|
|
335
|
-
|
|
338
|
+
Default returns brief JSON with:
|
|
339
|
+
|
|
340
|
+
- Server metadata (id, name)
|
|
341
|
+
- Channels (id, name) — text channels only
|
|
342
|
+
- Hint for next commands
|
|
343
|
+
|
|
344
|
+
With `--full`, returns comprehensive JSON with:
|
|
336
345
|
|
|
337
346
|
- Server metadata (id, name)
|
|
338
347
|
- Channels (id, name, type, topic)
|
|
@@ -77,28 +77,29 @@ done
|
|
|
77
77
|
```bash
|
|
78
78
|
#!/bin/bash
|
|
79
79
|
|
|
80
|
-
# Get
|
|
80
|
+
# Get brief snapshot (default — fast, minimal output)
|
|
81
81
|
SNAPSHOT=$(agent-discord snapshot)
|
|
82
82
|
|
|
83
83
|
# Extract key information
|
|
84
84
|
SERVER_NAME=$(echo "$SNAPSHOT" | jq -r '.server.name')
|
|
85
85
|
CHANNEL_COUNT=$(echo "$SNAPSHOT" | jq -r '.channels | length')
|
|
86
|
-
MEMBER_COUNT=$(echo "$SNAPSHOT" | jq -r '.members | length')
|
|
87
86
|
|
|
88
87
|
echo "Server: $SERVER_NAME"
|
|
89
88
|
echo "Channels: $CHANNEL_COUNT"
|
|
90
|
-
echo "Members: $MEMBER_COUNT"
|
|
91
89
|
|
|
92
90
|
# List all text channels
|
|
93
91
|
echo -e "\nChannels:"
|
|
94
92
|
echo "$SNAPSHOT" | jq -r '.channels[] | " #\(.name) (\(.id))"'
|
|
95
93
|
|
|
96
|
-
#
|
|
97
|
-
echo -
|
|
98
|
-
|
|
94
|
+
# Then drill into a specific channel for recent activity
|
|
95
|
+
CHANNEL_ID=$(echo "$SNAPSHOT" | jq -r '.channels[0].id // empty')
|
|
96
|
+
if [ -n "$CHANNEL_ID" ]; then
|
|
97
|
+
echo -e "\nRecent messages:"
|
|
98
|
+
agent-discord message list "$CHANNEL_ID" --limit 10
|
|
99
|
+
fi
|
|
99
100
|
```
|
|
100
101
|
|
|
101
|
-
**When to use**: Initial context gathering, status reports, server summaries.
|
|
102
|
+
**When to use**: Initial context gathering, status reports, server summaries. Start with brief snapshot, then use `message list <channel-id>` or `user list` for details.
|
|
102
103
|
|
|
103
104
|
## Pattern 4: Find Channel by Name
|
|
104
105
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-discordbot
|
|
3
3
|
description: Interact with Discord servers using bot tokens - send messages, read channels, manage reactions
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
allowed-tools: Bash(agent-discordbot:*)
|
|
6
6
|
metadata:
|
|
7
7
|
openclaw:
|
|
@@ -265,21 +265,30 @@ agent-discordbot thread archive <thread-id>
|
|
|
265
265
|
|
|
266
266
|
### Snapshot Command
|
|
267
267
|
|
|
268
|
-
Get
|
|
268
|
+
Get server overview for AI agents (brief by default):
|
|
269
269
|
|
|
270
270
|
```bash
|
|
271
|
-
#
|
|
271
|
+
# Brief snapshot (default) — fast, minimal API calls
|
|
272
272
|
agent-discordbot snapshot
|
|
273
273
|
|
|
274
|
-
#
|
|
275
|
-
agent-discordbot snapshot --
|
|
276
|
-
agent-discordbot snapshot --users-only
|
|
274
|
+
# Full snapshot — includes messages and members (slow, large output)
|
|
275
|
+
agent-discordbot snapshot --full
|
|
277
276
|
|
|
278
|
-
#
|
|
279
|
-
agent-discordbot snapshot --
|
|
277
|
+
# Filtered full snapshots
|
|
278
|
+
agent-discordbot snapshot --full --channels-only
|
|
279
|
+
agent-discordbot snapshot --full --users-only
|
|
280
|
+
|
|
281
|
+
# Limit messages per channel (only with --full)
|
|
282
|
+
agent-discordbot snapshot --full --limit 10
|
|
280
283
|
```
|
|
281
284
|
|
|
282
|
-
|
|
285
|
+
Default returns brief JSON with:
|
|
286
|
+
|
|
287
|
+
- Server ID
|
|
288
|
+
- Channels (id, name) — text channels only
|
|
289
|
+
- Hint for next commands
|
|
290
|
+
|
|
291
|
+
With `--full`, returns comprehensive JSON with:
|
|
283
292
|
|
|
284
293
|
- Server metadata (id, name)
|
|
285
294
|
- Channels (id, name, type, topic)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-slack
|
|
3
3
|
description: Interact with Slack workspaces - send messages, read channels, manage reactions
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
allowed-tools: Bash(agent-slack:*)
|
|
6
6
|
metadata:
|
|
7
7
|
openclaw:
|
|
@@ -473,24 +473,33 @@ agent-slack emoji list --pretty
|
|
|
473
473
|
|
|
474
474
|
### Snapshot Command
|
|
475
475
|
|
|
476
|
-
Get
|
|
476
|
+
Get workspace overview for AI agents (brief by default):
|
|
477
477
|
|
|
478
478
|
```bash
|
|
479
|
-
#
|
|
479
|
+
# Brief snapshot (default) — fast, minimal API calls
|
|
480
480
|
agent-slack snapshot
|
|
481
481
|
|
|
482
|
-
#
|
|
483
|
-
agent-slack snapshot --
|
|
484
|
-
agent-slack snapshot --users-only
|
|
482
|
+
# Full snapshot — includes messages, users, user groups (slow, large output)
|
|
483
|
+
agent-slack snapshot --full
|
|
485
484
|
|
|
486
|
-
#
|
|
487
|
-
agent-slack snapshot --
|
|
485
|
+
# Filtered full snapshots
|
|
486
|
+
agent-slack snapshot --full --channels-only
|
|
487
|
+
agent-slack snapshot --full --users-only
|
|
488
|
+
|
|
489
|
+
# Limit messages per channel (only with --full)
|
|
490
|
+
agent-slack snapshot --full --limit 10
|
|
488
491
|
```
|
|
489
492
|
|
|
490
|
-
|
|
493
|
+
Default returns brief JSON with:
|
|
494
|
+
|
|
495
|
+
- Workspace metadata
|
|
496
|
+
- Channels (id, name) — non-archived only
|
|
497
|
+
- Hint for next commands
|
|
498
|
+
|
|
499
|
+
With `--full`, returns comprehensive JSON with:
|
|
491
500
|
|
|
492
501
|
- Workspace metadata
|
|
493
|
-
- Channels (id, name, topic, purpose)
|
|
502
|
+
- Channels (id, name, topic, purpose, is_private, is_archived)
|
|
494
503
|
- Recent messages (ts, text, user, channel)
|
|
495
504
|
- Users (id, name, profile)
|
|
496
505
|
- User groups (id, name, handle, description, user_count, users)
|
|
@@ -71,28 +71,25 @@ done
|
|
|
71
71
|
```bash
|
|
72
72
|
#!/bin/bash
|
|
73
73
|
|
|
74
|
-
# Get
|
|
74
|
+
# Get brief snapshot (default — fast, minimal output)
|
|
75
75
|
SNAPSHOT=$(agent-slack snapshot)
|
|
76
76
|
|
|
77
77
|
# Extract key information
|
|
78
78
|
WORKSPACE_NAME=$(echo "$SNAPSHOT" | jq -r '.workspace.name')
|
|
79
79
|
CHANNEL_COUNT=$(echo "$SNAPSHOT" | jq -r '.channels | length')
|
|
80
|
-
USER_COUNT=$(echo "$SNAPSHOT" | jq -r '.users | length')
|
|
81
80
|
|
|
82
81
|
echo "Workspace: $WORKSPACE_NAME"
|
|
83
82
|
echo "Channels: $CHANNEL_COUNT"
|
|
84
|
-
echo "Users: $USER_COUNT"
|
|
85
83
|
|
|
86
84
|
# List all channels
|
|
87
85
|
echo -e "\nChannels:"
|
|
88
86
|
echo "$SNAPSHOT" | jq -r '.channels[] | " \(.name) (\(.id))"'
|
|
89
87
|
|
|
90
|
-
#
|
|
91
|
-
|
|
92
|
-
echo "$SNAPSHOT" | jq -r '.recent_messages[] | " \(.channel_name): \(.text[0:50])"'
|
|
88
|
+
# Then drill into specific channels for messages
|
|
89
|
+
agent-slack message list general --limit 10
|
|
93
90
|
```
|
|
94
91
|
|
|
95
|
-
**When to use**: Initial context gathering, status reports, workspace summaries.
|
|
92
|
+
**When to use**: Initial context gathering, status reports, workspace summaries. Start with brief snapshot, then use targeted commands for details.
|
|
96
93
|
|
|
97
94
|
## Pattern 4: Thread Conversation
|
|
98
95
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-teams
|
|
3
3
|
description: Interact with Microsoft Teams - send messages, read channels, manage reactions
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
allowed-tools: Bash(agent-teams:*)
|
|
6
6
|
metadata:
|
|
7
7
|
openclaw:
|
|
@@ -262,21 +262,30 @@ agent-teams file info <team-id> <channel-id> <file-id>
|
|
|
262
262
|
|
|
263
263
|
### Snapshot Command
|
|
264
264
|
|
|
265
|
-
Get
|
|
265
|
+
Get team overview for AI agents (brief by default):
|
|
266
266
|
|
|
267
267
|
```bash
|
|
268
|
-
#
|
|
268
|
+
# Brief snapshot (default) — fast, minimal API calls
|
|
269
269
|
agent-teams snapshot
|
|
270
270
|
|
|
271
|
-
#
|
|
272
|
-
agent-teams snapshot --
|
|
273
|
-
agent-teams snapshot --users-only
|
|
271
|
+
# Full snapshot — includes messages and members (slow, large output)
|
|
272
|
+
agent-teams snapshot --full
|
|
274
273
|
|
|
275
|
-
#
|
|
276
|
-
agent-teams snapshot --
|
|
274
|
+
# Filtered full snapshots
|
|
275
|
+
agent-teams snapshot --full --channels-only
|
|
276
|
+
agent-teams snapshot --full --users-only
|
|
277
|
+
|
|
278
|
+
# Limit messages per channel (only with --full)
|
|
279
|
+
agent-teams snapshot --full --limit 10
|
|
277
280
|
```
|
|
278
281
|
|
|
279
|
-
|
|
282
|
+
Default returns brief JSON with:
|
|
283
|
+
|
|
284
|
+
- Team metadata (id, name)
|
|
285
|
+
- Channels (id, name)
|
|
286
|
+
- Hint for next commands
|
|
287
|
+
|
|
288
|
+
With `--full`, returns comprehensive JSON with:
|
|
280
289
|
|
|
281
290
|
- Team metadata (id, name)
|
|
282
291
|
- Channels (id, name, type, description)
|
|
@@ -127,28 +127,30 @@ done
|
|
|
127
127
|
# Ensure fresh token
|
|
128
128
|
agent-teams auth extract 2>/dev/null || true
|
|
129
129
|
|
|
130
|
-
# Get
|
|
130
|
+
# Get brief snapshot (default — fast, minimal output)
|
|
131
131
|
SNAPSHOT=$(agent-teams snapshot)
|
|
132
132
|
|
|
133
133
|
# Extract key information
|
|
134
134
|
TEAM_NAME=$(echo "$SNAPSHOT" | jq -r '.team.name // "Unknown"')
|
|
135
135
|
CHANNEL_COUNT=$(echo "$SNAPSHOT" | jq -r '.channels | length')
|
|
136
|
-
MEMBER_COUNT=$(echo "$SNAPSHOT" | jq -r '.members | length')
|
|
137
136
|
|
|
138
137
|
echo "Team: $TEAM_NAME"
|
|
139
138
|
echo "Channels: $CHANNEL_COUNT"
|
|
140
|
-
echo "Members: $MEMBER_COUNT"
|
|
141
139
|
|
|
142
140
|
# List all channels
|
|
143
141
|
echo -e "\nChannels:"
|
|
144
142
|
echo "$SNAPSHOT" | jq -r '.channels[] | " #\(.name) (\(.id))"'
|
|
145
143
|
|
|
146
|
-
#
|
|
147
|
-
echo -
|
|
148
|
-
echo "$SNAPSHOT" | jq -r '.
|
|
144
|
+
# Then drill into a specific channel for recent activity
|
|
145
|
+
CHANNEL_ID=$(echo "$SNAPSHOT" | jq -r '.channels[0].id // empty')
|
|
146
|
+
TEAM_ID=$(echo "$SNAPSHOT" | jq -r '.team.id // empty')
|
|
147
|
+
if [ -n "$TEAM_ID" ] && [ -n "$CHANNEL_ID" ]; then
|
|
148
|
+
echo -e "\nRecent messages:"
|
|
149
|
+
agent-teams message list "$TEAM_ID" "$CHANNEL_ID" --limit 10
|
|
150
|
+
fi
|
|
149
151
|
```
|
|
150
152
|
|
|
151
|
-
**When to use**: Initial context gathering, status reports, team summaries.
|
|
153
|
+
**When to use**: Initial context gathering, status reports, team summaries. Start with brief snapshot, then use `message list <team-id> <channel-id>` or `member list <team-id>` for details.
|
|
152
154
|
|
|
153
155
|
## Pattern 4: Find Channel by Name
|
|
154
156
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-webex
|
|
3
3
|
description: Interact with Cisco Webex - send messages, read spaces, manage memberships
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
allowed-tools: Bash(agent-webex:*)
|
|
6
6
|
metadata:
|
|
7
7
|
openclaw:
|
|
@@ -247,15 +247,24 @@ agent-webex member list <space-id> --limit 100
|
|
|
247
247
|
|
|
248
248
|
### Snapshot Command
|
|
249
249
|
|
|
250
|
-
Get workspace
|
|
250
|
+
Get workspace overview for AI agents (brief by default):
|
|
251
251
|
|
|
252
252
|
```bash
|
|
253
|
+
# Brief snapshot (default) — fast, minimal output
|
|
253
254
|
agent-webex snapshot
|
|
255
|
+
|
|
256
|
+
# Full snapshot — includes type and lastActivity
|
|
257
|
+
agent-webex snapshot --full
|
|
254
258
|
```
|
|
255
259
|
|
|
256
|
-
|
|
260
|
+
Default returns brief JSON with:
|
|
261
|
+
|
|
262
|
+
- Spaces (id, title) — only spaces you're a member of
|
|
263
|
+
- Hint for next commands
|
|
264
|
+
|
|
265
|
+
With `--full`, returns:
|
|
257
266
|
|
|
258
|
-
- Spaces (id, title, type, lastActivity)
|
|
267
|
+
- Spaces (id, title, type, lastActivity)
|
|
259
268
|
|
|
260
269
|
For messages or members, use `message list <space-id>` or `member list <space-id>`.
|
|
261
270
|
|
|
@@ -336,10 +336,16 @@ SPACE_COUNT=$(echo "$SNAPSHOT" | jq -r '.spaces | length')
|
|
|
336
336
|
echo "Total spaces: $SPACE_COUNT"
|
|
337
337
|
|
|
338
338
|
# List all spaces
|
|
339
|
-
echo "$SNAPSHOT" | jq -r '.spaces[] | " \(.title) (\(.
|
|
339
|
+
echo "$SNAPSHOT" | jq -r '.spaces[] | " \(.title) (\(.id))"'
|
|
340
|
+
|
|
341
|
+
# Then drill into a specific space for details
|
|
342
|
+
SPACE_ID=$(echo "$SNAPSHOT" | jq -r '.spaces[0].id // empty')
|
|
343
|
+
if [ -n "$SPACE_ID" ]; then
|
|
344
|
+
agent-webex message list "$SPACE_ID" --limit 10
|
|
345
|
+
fi
|
|
340
346
|
```
|
|
341
347
|
|
|
342
|
-
**When to use**: Quick workspace overview to discover space IDs and titles.
|
|
348
|
+
**When to use**: Quick workspace overview to discover space IDs and titles. Start with brief snapshot, then use `message list <space-id>` or `member list <space-id>` for details.
|
|
343
349
|
|
|
344
350
|
## Pipeline Patterns
|
|
345
351
|
|