agent-messenger 1.2.0 → 1.3.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 (80) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +1 -1
  3. package/dist/package.json +3 -2
  4. package/dist/src/platforms/slackbot/cli.d.ts +5 -0
  5. package/dist/src/platforms/slackbot/cli.d.ts.map +1 -0
  6. package/dist/src/platforms/slackbot/cli.js +19 -0
  7. package/dist/src/platforms/slackbot/cli.js.map +1 -0
  8. package/dist/src/platforms/slackbot/client.d.ts +43 -0
  9. package/dist/src/platforms/slackbot/client.d.ts.map +1 -0
  10. package/dist/src/platforms/slackbot/client.js +347 -0
  11. package/dist/src/platforms/slackbot/client.js.map +1 -0
  12. package/dist/src/platforms/slackbot/commands/auth.d.ts +35 -0
  13. package/dist/src/platforms/slackbot/commands/auth.d.ts.map +1 -0
  14. package/dist/src/platforms/slackbot/commands/auth.js +185 -0
  15. package/dist/src/platforms/slackbot/commands/auth.js.map +1 -0
  16. package/dist/src/platforms/slackbot/commands/channel.d.ts +3 -0
  17. package/dist/src/platforms/slackbot/commands/channel.d.ts.map +1 -0
  18. package/dist/src/platforms/slackbot/commands/channel.js +40 -0
  19. package/dist/src/platforms/slackbot/commands/channel.js.map +1 -0
  20. package/dist/src/platforms/slackbot/commands/index.d.ts +6 -0
  21. package/dist/src/platforms/slackbot/commands/index.d.ts.map +1 -0
  22. package/dist/src/platforms/slackbot/commands/index.js +6 -0
  23. package/dist/src/platforms/slackbot/commands/index.js.map +1 -0
  24. package/dist/src/platforms/slackbot/commands/message.d.ts +3 -0
  25. package/dist/src/platforms/slackbot/commands/message.d.ts.map +1 -0
  26. package/dist/src/platforms/slackbot/commands/message.js +135 -0
  27. package/dist/src/platforms/slackbot/commands/message.js.map +1 -0
  28. package/dist/src/platforms/slackbot/commands/reaction.d.ts +3 -0
  29. package/dist/src/platforms/slackbot/commands/reaction.d.ts.map +1 -0
  30. package/dist/src/platforms/slackbot/commands/reaction.js +43 -0
  31. package/dist/src/platforms/slackbot/commands/reaction.js.map +1 -0
  32. package/dist/src/platforms/slackbot/commands/shared.d.ts +9 -0
  33. package/dist/src/platforms/slackbot/commands/shared.d.ts.map +1 -0
  34. package/dist/src/platforms/slackbot/commands/shared.js +13 -0
  35. package/dist/src/platforms/slackbot/commands/shared.js.map +1 -0
  36. package/dist/src/platforms/slackbot/commands/user.d.ts +3 -0
  37. package/dist/src/platforms/slackbot/commands/user.d.ts.map +1 -0
  38. package/dist/src/platforms/slackbot/commands/user.js +40 -0
  39. package/dist/src/platforms/slackbot/commands/user.js.map +1 -0
  40. package/dist/src/platforms/slackbot/credential-manager.d.ts +18 -0
  41. package/dist/src/platforms/slackbot/credential-manager.d.ts.map +1 -0
  42. package/dist/src/platforms/slackbot/credential-manager.js +187 -0
  43. package/dist/src/platforms/slackbot/credential-manager.js.map +1 -0
  44. package/dist/src/platforms/slackbot/index.d.ts +4 -0
  45. package/dist/src/platforms/slackbot/index.d.ts.map +1 -0
  46. package/dist/src/platforms/slackbot/index.js +4 -0
  47. package/dist/src/platforms/slackbot/index.js.map +1 -0
  48. package/dist/src/platforms/slackbot/types.d.ts +460 -0
  49. package/dist/src/platforms/slackbot/types.d.ts.map +1 -0
  50. package/dist/src/platforms/slackbot/types.js +114 -0
  51. package/dist/src/platforms/slackbot/types.js.map +1 -0
  52. package/docs/content/docs/integrations/meta.json +1 -1
  53. package/docs/content/docs/integrations/slackbot.mdx +204 -0
  54. package/docs/src/app/page.tsx +18 -1
  55. package/e2e/config.ts +26 -0
  56. package/e2e/helpers.ts +6 -1
  57. package/e2e/slackbot.e2e.test.ts +306 -0
  58. package/package.json +3 -2
  59. package/skills/agent-slackbot/SKILL.md +285 -0
  60. package/skills/agent-slackbot/references/authentication.md +253 -0
  61. package/skills/agent-slackbot/references/common-patterns.md +218 -0
  62. package/skills/agent-slackbot/templates/monitor-channel.sh +98 -0
  63. package/skills/agent-slackbot/templates/post-message.sh +107 -0
  64. package/skills/agent-slackbot/templates/workspace-summary.sh +113 -0
  65. package/src/platforms/slackbot/cli.ts +30 -0
  66. package/src/platforms/slackbot/client.test.ts +282 -0
  67. package/src/platforms/slackbot/client.ts +401 -0
  68. package/src/platforms/slackbot/commands/auth.test.ts +245 -0
  69. package/src/platforms/slackbot/commands/auth.ts +240 -0
  70. package/src/platforms/slackbot/commands/channel.ts +46 -0
  71. package/src/platforms/slackbot/commands/index.ts +5 -0
  72. package/src/platforms/slackbot/commands/message.ts +182 -0
  73. package/src/platforms/slackbot/commands/reaction.ts +59 -0
  74. package/src/platforms/slackbot/commands/shared.ts +23 -0
  75. package/src/platforms/slackbot/commands/user.ts +46 -0
  76. package/src/platforms/slackbot/credential-manager.test.ts +264 -0
  77. package/src/platforms/slackbot/credential-manager.ts +218 -0
  78. package/src/platforms/slackbot/index.ts +19 -0
  79. package/src/platforms/slackbot/types.test.ts +90 -0
  80. package/src/platforms/slackbot/types.ts +222 -0
@@ -0,0 +1,222 @@
1
+ import { z } from 'zod'
2
+
3
+ // SlackBot-specific types (NO cookie - bot tokens don't use cookies)
4
+
5
+ export interface SlackBotCredentials {
6
+ token: string
7
+ workspace_id: string
8
+ workspace_name: string
9
+ bot_id: string
10
+ bot_name: string
11
+ }
12
+
13
+ export interface SlackBotEntry {
14
+ bot_id: string
15
+ bot_name: string
16
+ token: string
17
+ }
18
+
19
+ export interface SlackBotWorkspace {
20
+ workspace_id: string
21
+ workspace_name: string
22
+ bots: Record<string, SlackBotEntry>
23
+ }
24
+
25
+ export interface SlackBotConfig {
26
+ current: { workspace_id: string; bot_id: string } | null
27
+ workspaces: Record<string, SlackBotWorkspace>
28
+ }
29
+
30
+ // Error class for SlackBot operations
31
+ export class SlackBotError extends Error {
32
+ code: string
33
+
34
+ constructor(message: string, code: string) {
35
+ super(message)
36
+ this.name = 'SlackBotError'
37
+ this.code = code
38
+ }
39
+ }
40
+
41
+ // Shared types (same structure as slack platform, kept local for independence)
42
+ export interface SlackChannel {
43
+ id: string
44
+ name: string
45
+ is_private: boolean
46
+ is_archived: boolean
47
+ created: number
48
+ creator: string
49
+ topic?: {
50
+ value: string
51
+ creator: string
52
+ last_set: number
53
+ }
54
+ purpose?: {
55
+ value: string
56
+ creator: string
57
+ last_set: number
58
+ }
59
+ }
60
+
61
+ export interface SlackMessage {
62
+ ts: string
63
+ text: string
64
+ user?: string
65
+ username?: string
66
+ type: string
67
+ thread_ts?: string
68
+ reply_count?: number
69
+ replies?: Array<{ user: string; ts: string }>
70
+ edited?: {
71
+ user: string
72
+ ts: string
73
+ }
74
+ }
75
+
76
+ export interface SlackUser {
77
+ id: string
78
+ name: string
79
+ real_name: string
80
+ is_admin: boolean
81
+ is_owner: boolean
82
+ is_bot: boolean
83
+ is_app_user: boolean
84
+ profile?: {
85
+ email?: string
86
+ phone?: string
87
+ title?: string
88
+ status_text?: string
89
+ }
90
+ }
91
+
92
+ export interface SlackReaction {
93
+ name: string
94
+ count: number
95
+ users: string[]
96
+ }
97
+
98
+ export interface SlackFile {
99
+ id: string
100
+ name: string
101
+ title: string
102
+ mimetype: string
103
+ size: number
104
+ url_private: string
105
+ created: number
106
+ user: string
107
+ channels?: string[]
108
+ }
109
+
110
+ // Zod validation schemas
111
+ export const SlackBotEntrySchema = z.object({
112
+ bot_id: z.string(),
113
+ bot_name: z.string(),
114
+ token: z.string().startsWith('xoxb-', 'Token must be a bot token (xoxb-)'),
115
+ })
116
+
117
+ export const SlackBotWorkspaceSchema = z.object({
118
+ workspace_id: z.string(),
119
+ workspace_name: z.string(),
120
+ bots: z.record(z.string(), SlackBotEntrySchema),
121
+ })
122
+
123
+ export const SlackBotCredentialsSchema = z.object({
124
+ token: z.string().startsWith('xoxb-', 'Token must be a bot token (xoxb-)'),
125
+ workspace_id: z.string(),
126
+ workspace_name: z.string(),
127
+ bot_id: z.string(),
128
+ bot_name: z.string(),
129
+ })
130
+
131
+ export const SlackBotConfigSchema = z.object({
132
+ current: z
133
+ .object({
134
+ workspace_id: z.string(),
135
+ bot_id: z.string(),
136
+ })
137
+ .nullable(),
138
+ workspaces: z.record(z.string(), SlackBotWorkspaceSchema),
139
+ })
140
+
141
+ export const SlackChannelSchema = z.object({
142
+ id: z.string(),
143
+ name: z.string(),
144
+ is_private: z.boolean(),
145
+ is_archived: z.boolean(),
146
+ created: z.number(),
147
+ creator: z.string(),
148
+ topic: z
149
+ .object({
150
+ value: z.string(),
151
+ creator: z.string(),
152
+ last_set: z.number(),
153
+ })
154
+ .optional(),
155
+ purpose: z
156
+ .object({
157
+ value: z.string(),
158
+ creator: z.string(),
159
+ last_set: z.number(),
160
+ })
161
+ .optional(),
162
+ })
163
+
164
+ export const SlackMessageSchema = z.object({
165
+ ts: z.string(),
166
+ text: z.string(),
167
+ user: z.string().optional(),
168
+ username: z.string().optional(),
169
+ type: z.string(),
170
+ thread_ts: z.string().optional(),
171
+ reply_count: z.number().optional(),
172
+ replies: z
173
+ .array(
174
+ z.object({
175
+ user: z.string(),
176
+ ts: z.string(),
177
+ })
178
+ )
179
+ .optional(),
180
+ edited: z
181
+ .object({
182
+ user: z.string(),
183
+ ts: z.string(),
184
+ })
185
+ .optional(),
186
+ })
187
+
188
+ export const SlackUserSchema = z.object({
189
+ id: z.string(),
190
+ name: z.string(),
191
+ real_name: z.string(),
192
+ is_admin: z.boolean(),
193
+ is_owner: z.boolean(),
194
+ is_bot: z.boolean(),
195
+ is_app_user: z.boolean(),
196
+ profile: z
197
+ .object({
198
+ email: z.string().optional(),
199
+ phone: z.string().optional(),
200
+ title: z.string().optional(),
201
+ status_text: z.string().optional(),
202
+ })
203
+ .optional(),
204
+ })
205
+
206
+ export const SlackReactionSchema = z.object({
207
+ name: z.string(),
208
+ count: z.number(),
209
+ users: z.array(z.string()),
210
+ })
211
+
212
+ export const SlackFileSchema = z.object({
213
+ id: z.string(),
214
+ name: z.string(),
215
+ title: z.string(),
216
+ mimetype: z.string(),
217
+ size: z.number(),
218
+ url_private: z.string(),
219
+ created: z.number(),
220
+ user: z.string(),
221
+ channels: z.array(z.string()).optional(),
222
+ })