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.
Files changed (169) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +0 -11
  3. package/dist/package.json +1 -1
  4. package/dist/src/platforms/channeltalk/commands/snapshot.d.ts +4 -2
  5. package/dist/src/platforms/channeltalk/commands/snapshot.d.ts.map +1 -1
  6. package/dist/src/platforms/channeltalk/commands/snapshot.js +86 -31
  7. package/dist/src/platforms/channeltalk/commands/snapshot.js.map +1 -1
  8. package/dist/src/platforms/channeltalkbot/commands/snapshot.d.ts +3 -1
  9. package/dist/src/platforms/channeltalkbot/commands/snapshot.d.ts.map +1 -1
  10. package/dist/src/platforms/channeltalkbot/commands/snapshot.js +110 -60
  11. package/dist/src/platforms/channeltalkbot/commands/snapshot.js.map +1 -1
  12. package/dist/src/platforms/discord/commands/snapshot.d.ts +1 -0
  13. package/dist/src/platforms/discord/commands/snapshot.d.ts.map +1 -1
  14. package/dist/src/platforms/discord/commands/snapshot.js +48 -34
  15. package/dist/src/platforms/discord/commands/snapshot.js.map +1 -1
  16. package/dist/src/platforms/discordbot/commands/snapshot.d.ts +2 -0
  17. package/dist/src/platforms/discordbot/commands/snapshot.d.ts.map +1 -1
  18. package/dist/src/platforms/discordbot/commands/snapshot.js +46 -34
  19. package/dist/src/platforms/discordbot/commands/snapshot.js.map +1 -1
  20. package/dist/src/platforms/slack/commands/snapshot.d.ts.map +1 -1
  21. package/dist/src/platforms/slack/commands/snapshot.js +75 -55
  22. package/dist/src/platforms/slack/commands/snapshot.js.map +1 -1
  23. package/dist/src/platforms/teams/client.d.ts +9 -1
  24. package/dist/src/platforms/teams/client.d.ts.map +1 -1
  25. package/dist/src/platforms/teams/client.js +69 -18
  26. package/dist/src/platforms/teams/client.js.map +1 -1
  27. package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
  28. package/dist/src/platforms/teams/commands/auth.js +7 -2
  29. package/dist/src/platforms/teams/commands/auth.js.map +1 -1
  30. package/dist/src/platforms/teams/commands/channel.d.ts.map +1 -1
  31. package/dist/src/platforms/teams/commands/channel.js +18 -3
  32. package/dist/src/platforms/teams/commands/channel.js.map +1 -1
  33. package/dist/src/platforms/teams/commands/file.d.ts.map +1 -1
  34. package/dist/src/platforms/teams/commands/file.js +18 -3
  35. package/dist/src/platforms/teams/commands/file.js.map +1 -1
  36. package/dist/src/platforms/teams/commands/message.d.ts.map +1 -1
  37. package/dist/src/platforms/teams/commands/message.js +24 -4
  38. package/dist/src/platforms/teams/commands/message.js.map +1 -1
  39. package/dist/src/platforms/teams/commands/reaction.d.ts.map +1 -1
  40. package/dist/src/platforms/teams/commands/reaction.js +12 -2
  41. package/dist/src/platforms/teams/commands/reaction.js.map +1 -1
  42. package/dist/src/platforms/teams/commands/snapshot.d.ts +1 -0
  43. package/dist/src/platforms/teams/commands/snapshot.d.ts.map +1 -1
  44. package/dist/src/platforms/teams/commands/snapshot.js +50 -32
  45. package/dist/src/platforms/teams/commands/snapshot.js.map +1 -1
  46. package/dist/src/platforms/teams/commands/team.d.ts.map +1 -1
  47. package/dist/src/platforms/teams/commands/team.js +6 -1
  48. package/dist/src/platforms/teams/commands/team.js.map +1 -1
  49. package/dist/src/platforms/teams/commands/user.d.ts.map +1 -1
  50. package/dist/src/platforms/teams/commands/user.js +18 -3
  51. package/dist/src/platforms/teams/commands/user.js.map +1 -1
  52. package/dist/src/platforms/teams/commands/whoami.d.ts.map +1 -1
  53. package/dist/src/platforms/teams/commands/whoami.js +6 -1
  54. package/dist/src/platforms/teams/commands/whoami.js.map +1 -1
  55. package/dist/src/platforms/teams/credential-manager.d.ts +3 -1
  56. package/dist/src/platforms/teams/credential-manager.d.ts.map +1 -1
  57. package/dist/src/platforms/teams/credential-manager.js +6 -1
  58. package/dist/src/platforms/teams/credential-manager.js.map +1 -1
  59. package/dist/src/platforms/teams/ensure-auth.d.ts.map +1 -1
  60. package/dist/src/platforms/teams/ensure-auth.js +7 -2
  61. package/dist/src/platforms/teams/ensure-auth.js.map +1 -1
  62. package/dist/src/platforms/teams/token-extractor.d.ts +3 -1
  63. package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
  64. package/dist/src/platforms/teams/token-extractor.js +67 -10
  65. package/dist/src/platforms/teams/token-extractor.js.map +1 -1
  66. package/dist/src/platforms/teams/types.d.ts +17 -0
  67. package/dist/src/platforms/teams/types.d.ts.map +1 -1
  68. package/dist/src/platforms/teams/types.js +2 -0
  69. package/dist/src/platforms/teams/types.js.map +1 -1
  70. package/dist/src/platforms/webex/client.d.ts +3 -0
  71. package/dist/src/platforms/webex/client.d.ts.map +1 -1
  72. package/dist/src/platforms/webex/client.js +58 -13
  73. package/dist/src/platforms/webex/client.js.map +1 -1
  74. package/dist/src/platforms/webex/commands/auth.d.ts.map +1 -1
  75. package/dist/src/platforms/webex/commands/auth.js +61 -10
  76. package/dist/src/platforms/webex/commands/auth.js.map +1 -1
  77. package/dist/src/platforms/webex/commands/snapshot.d.ts +1 -0
  78. package/dist/src/platforms/webex/commands/snapshot.d.ts.map +1 -1
  79. package/dist/src/platforms/webex/commands/snapshot.js +14 -7
  80. package/dist/src/platforms/webex/commands/snapshot.js.map +1 -1
  81. package/dist/src/platforms/webex/credential-manager.d.ts.map +1 -1
  82. package/dist/src/platforms/webex/credential-manager.js +18 -6
  83. package/dist/src/platforms/webex/credential-manager.js.map +1 -1
  84. package/dist/src/platforms/webex/encryption.d.ts.map +1 -1
  85. package/dist/src/platforms/webex/encryption.js +3 -1
  86. package/dist/src/platforms/webex/encryption.js.map +1 -1
  87. package/dist/src/platforms/webex/ensure-auth.d.ts.map +1 -1
  88. package/dist/src/platforms/webex/ensure-auth.js +10 -2
  89. package/dist/src/platforms/webex/ensure-auth.js.map +1 -1
  90. package/dist/src/platforms/webex/token-extractor.d.ts +1 -0
  91. package/dist/src/platforms/webex/token-extractor.d.ts.map +1 -1
  92. package/dist/src/platforms/webex/token-extractor.js +21 -4
  93. package/dist/src/platforms/webex/token-extractor.js.map +1 -1
  94. package/docs/content/docs/agent-skills.mdx +0 -10
  95. package/docs/content/docs/cli/channeltalk.mdx +18 -8
  96. package/docs/content/docs/cli/channeltalkbot.mdx +16 -6
  97. package/docs/content/docs/cli/discord.mdx +23 -7
  98. package/docs/content/docs/cli/discordbot.mdx +23 -7
  99. package/docs/content/docs/cli/slack.mdx +24 -7
  100. package/docs/content/docs/cli/teams.mdx +24 -8
  101. package/docs/content/docs/cli/webex.mdx +15 -2
  102. package/e2e/webex.e2e.test.ts +57 -0
  103. package/package.json +1 -1
  104. package/skills/agent-channeltalk/SKILL.md +19 -9
  105. package/skills/agent-channeltalk/references/common-patterns.md +10 -9
  106. package/skills/agent-channeltalkbot/SKILL.md +19 -9
  107. package/skills/agent-channeltalkbot/references/common-patterns.md +10 -9
  108. package/skills/agent-discord/SKILL.md +18 -9
  109. package/skills/agent-discord/references/common-patterns.md +8 -7
  110. package/skills/agent-discordbot/SKILL.md +18 -9
  111. package/skills/agent-instagram/SKILL.md +1 -1
  112. package/skills/agent-kakaotalk/SKILL.md +1 -1
  113. package/skills/agent-line/SKILL.md +1 -1
  114. package/skills/agent-slack/SKILL.md +19 -10
  115. package/skills/agent-slack/references/common-patterns.md +4 -7
  116. package/skills/agent-slackbot/SKILL.md +1 -1
  117. package/skills/agent-teams/SKILL.md +18 -9
  118. package/skills/agent-teams/references/common-patterns.md +9 -7
  119. package/skills/agent-telegram/SKILL.md +1 -1
  120. package/skills/agent-webex/SKILL.md +13 -4
  121. package/skills/agent-webex/references/common-patterns.md +8 -2
  122. package/skills/agent-wechatbot/SKILL.md +1 -1
  123. package/skills/agent-whatsapp/SKILL.md +1 -1
  124. package/skills/agent-whatsappbot/SKILL.md +1 -1
  125. package/src/platforms/channeltalk/commands/snapshot.test.ts +58 -26
  126. package/src/platforms/channeltalk/commands/snapshot.ts +107 -33
  127. package/src/platforms/channeltalkbot/commands/snapshot.test.ts +26 -8
  128. package/src/platforms/channeltalkbot/commands/snapshot.ts +131 -64
  129. package/src/platforms/discord/commands/snapshot.test.ts +1 -1
  130. package/src/platforms/discord/commands/snapshot.ts +58 -42
  131. package/src/platforms/discordbot/commands/snapshot.test.ts +40 -18
  132. package/src/platforms/discordbot/commands/snapshot.ts +54 -37
  133. package/src/platforms/slack/commands/snapshot.test.ts +63 -8
  134. package/src/platforms/slack/commands/snapshot.ts +98 -66
  135. package/src/platforms/teams/client.test.ts +34 -30
  136. package/src/platforms/teams/client.ts +92 -20
  137. package/src/platforms/teams/commands/auth.test.ts +6 -2
  138. package/src/platforms/teams/commands/auth.ts +7 -2
  139. package/src/platforms/teams/commands/channel.test.ts +6 -6
  140. package/src/platforms/teams/commands/channel.ts +18 -3
  141. package/src/platforms/teams/commands/file.ts +18 -3
  142. package/src/platforms/teams/commands/message.ts +24 -4
  143. package/src/platforms/teams/commands/reaction.ts +12 -2
  144. package/src/platforms/teams/commands/snapshot.test.ts +1 -1
  145. package/src/platforms/teams/commands/snapshot.ts +59 -39
  146. package/src/platforms/teams/commands/team.test.ts +2 -2
  147. package/src/platforms/teams/commands/team.ts +6 -1
  148. package/src/platforms/teams/commands/user.ts +18 -3
  149. package/src/platforms/teams/commands/whoami.ts +6 -1
  150. package/src/platforms/teams/credential-manager.test.ts +25 -0
  151. package/src/platforms/teams/credential-manager.ts +13 -3
  152. package/src/platforms/teams/ensure-auth.test.ts +6 -1
  153. package/src/platforms/teams/ensure-auth.ts +7 -2
  154. package/src/platforms/teams/token-extractor.ts +77 -12
  155. package/src/platforms/teams/types.test.ts +17 -0
  156. package/src/platforms/teams/types.ts +6 -0
  157. package/src/platforms/webex/client.test.ts +157 -13
  158. package/src/platforms/webex/client.ts +64 -15
  159. package/src/platforms/webex/commands/auth.test.ts +122 -1
  160. package/src/platforms/webex/commands/auth.ts +72 -17
  161. package/src/platforms/webex/commands/snapshot.test.ts +14 -1
  162. package/src/platforms/webex/commands/snapshot.ts +17 -9
  163. package/src/platforms/webex/credential-manager.test.ts +63 -0
  164. package/src/platforms/webex/credential-manager.ts +22 -8
  165. package/src/platforms/webex/encryption.test.ts +54 -0
  166. package/src/platforms/webex/encryption.ts +3 -1
  167. package/src/platforms/webex/ensure-auth.ts +10 -2
  168. package/src/platforms/webex/token-extractor.test.ts +32 -3
  169. package/src/platforms/webex/token-extractor.ts +26 -5
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-messenger",
3
- "version": "2.8.0",
3
+ "version": "2.10.0",
4
4
  "description": "Multi-platform messaging CLI for AI agents (Slack, Discord, Teams, Webex, Telegram, WhatsApp, LINE, Instagram, KakaoTalk, Channel Talk)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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.8.0
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 comprehensive workspace state for AI agents:
270
+ Get workspace overview for AI agents (brief by default):
271
271
 
272
272
  ```bash
273
- # Full snapshot of current workspace
273
+ # Brief snapshot (default) fast, minimal API calls
274
274
  agent-channeltalk snapshot
275
275
 
276
- # Filtered snapshots
277
- agent-channeltalk snapshot --groups-only
278
- agent-channeltalk snapshot --chats-only
276
+ # Full snapshot — includes messages, managers, bots (slow, large output)
277
+ agent-channeltalk snapshot --full
279
278
 
280
- # Limit messages per group/chat
281
- agent-channeltalk snapshot --limit 10
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
- Returns JSON with:
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
- # Full snapshot for comprehensive context
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
- # For focused views
112
- agent-channeltalk snapshot --groups-only # Just groups and messages
113
- agent-channeltalk snapshot --chats-only # Just UserChat summary
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.8.0
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 comprehensive workspace state for AI agents:
277
+ Get workspace overview for AI agents (brief by default):
278
278
 
279
279
  ```bash
280
- # Full snapshot of current workspace
280
+ # Brief snapshot (default) fast, minimal API calls
281
281
  agent-channeltalkbot snapshot
282
282
 
283
- # Filtered snapshots
284
- agent-channeltalkbot snapshot --groups-only
285
- agent-channeltalkbot snapshot --chats-only
283
+ # Full snapshot — includes messages, managers, bots (slow, large output)
284
+ agent-channeltalkbot snapshot --full
286
285
 
287
- # Limit messages per group/chat
288
- agent-channeltalkbot snapshot --limit 10
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
- Returns JSON with:
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
- # Full snapshot for comprehensive context
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
- # For focused views
132
- agent-channeltalkbot snapshot --groups-only # Just groups and messages
133
- agent-channeltalkbot snapshot --chats-only # Just UserChat summary
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.8.0
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 comprehensive server state for AI agents:
321
+ Get server overview for AI agents (brief by default):
322
322
 
323
323
  ```bash
324
- # Full snapshot
324
+ # Brief snapshot (default) — fast, minimal API calls
325
325
  agent-discord snapshot
326
326
 
327
- # Filtered snapshots
328
- agent-discord snapshot --channels-only
329
- agent-discord snapshot --users-only
327
+ # Full snapshot — includes messages and members (slow, large output)
328
+ agent-discord snapshot --full
330
329
 
331
- # Limit messages per channel
332
- agent-discord snapshot --limit 10
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
- Returns JSON with:
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 full snapshot
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
- # List recent activity
97
- echo -e "\nRecent messages:"
98
- echo "$SNAPSHOT" | jq -r '.recent_messages[] | " [\(.channel_name)] \(.author): \(.content[0:50])"'
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.8.0
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 comprehensive server state for AI agents:
268
+ Get server overview for AI agents (brief by default):
269
269
 
270
270
  ```bash
271
- # Full snapshot of current server
271
+ # Brief snapshot (default) fast, minimal API calls
272
272
  agent-discordbot snapshot
273
273
 
274
- # Filtered snapshots
275
- agent-discordbot snapshot --channels-only
276
- agent-discordbot snapshot --users-only
274
+ # Full snapshot — includes messages and members (slow, large output)
275
+ agent-discordbot snapshot --full
277
276
 
278
- # Limit messages per channel
279
- agent-discordbot snapshot --limit 10
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
- Returns JSON with:
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-instagram
3
3
  description: Interact with Instagram DMs - send messages, read conversations, manage accounts
4
- version: 2.8.0
4
+ version: 2.10.0
5
5
  allowed-tools: Bash(agent-instagram:*)
6
6
  metadata:
7
7
  openclaw:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-kakaotalk
3
3
  description: Interact with KakaoTalk - send messages, read chats, manage conversations
4
- version: 2.8.0
4
+ version: 2.10.0
5
5
  allowed-tools: Bash(agent-kakaotalk:*)
6
6
  metadata:
7
7
  openclaw:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-line
3
3
  description: Interact with LINE - send messages, read chats, manage conversations
4
- version: 2.8.0
4
+ version: 2.10.0
5
5
  allowed-tools: Bash(agent-line:*)
6
6
  metadata:
7
7
  openclaw:
@@ -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.8.0
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 comprehensive workspace state for AI agents:
476
+ Get workspace overview for AI agents (brief by default):
477
477
 
478
478
  ```bash
479
- # Full snapshot
479
+ # Brief snapshot (default) — fast, minimal API calls
480
480
  agent-slack snapshot
481
481
 
482
- # Filtered snapshots
483
- agent-slack snapshot --channels-only
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
- # Limit messages per channel
487
- agent-slack snapshot --limit 10
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
- Returns JSON with:
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 full snapshot
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
- # List recent activity
91
- echo -e "\nRecent messages:"
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-slackbot
3
3
  description: Interact with Slack workspaces using bot tokens - send messages, read channels, manage reactions
4
- version: 2.8.0
4
+ version: 2.10.0
5
5
  allowed-tools: Bash(agent-slackbot:*)
6
6
  metadata:
7
7
  openclaw:
@@ -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.8.0
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 comprehensive team state for AI agents:
265
+ Get team overview for AI agents (brief by default):
266
266
 
267
267
  ```bash
268
- # Full snapshot
268
+ # Brief snapshot (default) — fast, minimal API calls
269
269
  agent-teams snapshot
270
270
 
271
- # Filtered snapshots
272
- agent-teams snapshot --channels-only
273
- agent-teams snapshot --users-only
271
+ # Full snapshot — includes messages and members (slow, large output)
272
+ agent-teams snapshot --full
274
273
 
275
- # Limit messages per channel
276
- agent-teams snapshot --limit 10
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
- Returns JSON with:
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 full snapshot
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
- # List recent activity
147
- echo -e "\nRecent messages:"
148
- echo "$SNAPSHOT" | jq -r '.recent_messages[] | " [\(.channel_name)] \(.author): \(.content[0:50])"'
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-telegram
3
3
  description: Interact with Telegram through TDLib - authenticate, inspect chats, and send messages
4
- version: 2.8.0
4
+ version: 2.10.0
5
5
  allowed-tools: Bash(agent-telegram:*)
6
6
  ---
7
7
 
@@ -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.8.0
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 spaces overview for AI agents:
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
- Returns JSON with:
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) — only spaces you're a member of
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) (\(.type))"'
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. Use `message list <space-id>` or `member list <space-id>` for details.
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