@zhin.js/adapter-slack 1.0.78 → 1.1.2

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 (108) hide show
  1. package/CHANGELOG.md +731 -2
  2. package/PERMITS.md +24 -0
  3. package/README.md +111 -158
  4. package/adapters/slack/index.js +40 -0
  5. package/adapters/slack/index.ts +45 -0
  6. package/agents/slack/agent.json +20 -0
  7. package/agents/slack/boundaries.md +3 -0
  8. package/agents/slack/conventions.md +3 -0
  9. package/agents/slack/skills/slack-channels/SKILL.md +24 -0
  10. package/agents/slack/skills/slack-channels/tools/archive_channel/index.js +19 -0
  11. package/agents/slack/skills/slack-channels/tools/archive_channel/index.ts +21 -0
  12. package/agents/slack/skills/slack-channels/tools/invite_to_channel/index.js +20 -0
  13. package/agents/slack/skills/slack-channels/tools/invite_to_channel/index.ts +23 -0
  14. package/agents/slack/skills/slack-channels/tools/set_purpose/index.js +20 -0
  15. package/agents/slack/skills/slack-channels/tools/set_purpose/index.ts +23 -0
  16. package/agents/slack/skills/slack-channels/tools/set_topic/index.js +20 -0
  17. package/agents/slack/skills/slack-channels/tools/set_topic/index.ts +23 -0
  18. package/agents/slack/skills/slack-channels/tools/unarchive/index.js +19 -0
  19. package/agents/slack/skills/slack-channels/tools/unarchive/index.ts +21 -0
  20. package/agents/slack/skills/slack-channels/tools/user_info/index.js +27 -0
  21. package/agents/slack/skills/slack-channels/tools/user_info/index.ts +29 -0
  22. package/agents/slack/skills/slack-messages/SKILL.md +22 -0
  23. package/agents/slack/skills/slack-messages/tools/add_reaction/index.js +27 -0
  24. package/agents/slack/skills/slack-messages/tools/add_reaction/index.ts +29 -0
  25. package/agents/slack/skills/slack-messages/tools/edit_message/index.js +21 -0
  26. package/agents/slack/skills/slack-messages/tools/edit_message/index.ts +25 -0
  27. package/agents/slack/skills/slack-messages/tools/pin_message/index.js +20 -0
  28. package/agents/slack/skills/slack-messages/tools/pin_message/index.ts +23 -0
  29. package/agents/slack/skills/slack-messages/tools/remove_reaction/index.js +30 -0
  30. package/agents/slack/skills/slack-messages/tools/remove_reaction/index.ts +32 -0
  31. package/agents/slack/skills/slack-messages/tools/unpin_message/index.js +20 -0
  32. package/agents/slack/skills/slack-messages/tools/unpin_message/index.ts +23 -0
  33. package/agents/slack/system.md +3 -0
  34. package/commands/slack/endpoint/add/[id]/index.js +3 -0
  35. package/commands/slack/endpoint/add/[id]/index.ts +3 -0
  36. package/commands/slack/endpoint/definition.js +19 -0
  37. package/commands/slack/endpoint/definition.ts +19 -0
  38. package/commands/slack/endpoint/list/index.js +3 -0
  39. package/commands/slack/endpoint/list/index.ts +3 -0
  40. package/commands/slack/endpoint/remove/[id]/index.js +3 -0
  41. package/commands/slack/endpoint/remove/[id]/index.ts +3 -0
  42. package/lib/client.d.ts +25 -0
  43. package/lib/client.js +2 -0
  44. package/lib/endpoint.d.ts +153 -0
  45. package/lib/endpoint.js +425 -0
  46. package/lib/index.d.ts +10 -10
  47. package/lib/index.js +10 -242
  48. package/lib/markdown-to-mrkdwn.d.ts +9 -0
  49. package/lib/markdown-to-mrkdwn.js +121 -0
  50. package/lib/mrkdwn-to-markdown.d.ts +4 -0
  51. package/lib/mrkdwn-to-markdown.js +30 -0
  52. package/lib/platform-permit.d.ts +15 -0
  53. package/lib/platform-permit.js +43 -0
  54. package/lib/protocol.d.ts +144 -0
  55. package/lib/protocol.js +258 -0
  56. package/lib/side-event-dispatch.d.ts +4 -0
  57. package/lib/side-event-dispatch.js +45 -0
  58. package/lib/slack-inbound-filter.d.ts +12 -0
  59. package/lib/slack-inbound-filter.js +46 -0
  60. package/lib/slack-message-ref.d.ts +7 -0
  61. package/lib/slack-message-ref.js +17 -0
  62. package/lib/slack-outbound.d.ts +24 -0
  63. package/lib/slack-outbound.js +111 -0
  64. package/lib/slack-reaction.d.ts +1 -0
  65. package/lib/slack-reaction.js +26 -0
  66. package/lib/slack-response-url.d.ts +5 -0
  67. package/lib/slack-response-url.js +16 -0
  68. package/lib/slack-runtime-state.d.ts +1 -0
  69. package/lib/slack-runtime-state.js +6 -0
  70. package/lib/webhook.d.ts +14 -0
  71. package/lib/webhook.js +72 -0
  72. package/package.json +80 -16
  73. package/plugin.js +19 -0
  74. package/schema.json +108 -0
  75. package/src/client.ts +30 -0
  76. package/src/endpoint.ts +526 -0
  77. package/src/index.ts +59 -265
  78. package/src/markdown-to-mrkdwn.ts +117 -0
  79. package/src/mrkdwn-to-markdown.ts +29 -0
  80. package/src/platform-permit.ts +59 -0
  81. package/src/protocol.ts +406 -0
  82. package/src/side-event-dispatch.ts +54 -0
  83. package/src/slack-inbound-filter.ts +60 -0
  84. package/src/slack-message-ref.ts +18 -0
  85. package/src/slack-outbound.ts +170 -0
  86. package/src/slack-reaction.ts +23 -0
  87. package/src/slack-response-url.ts +26 -0
  88. package/src/slack-runtime-state.ts +7 -0
  89. package/src/webhook.ts +106 -0
  90. package/lib/adapter.d.ts +0 -16
  91. package/lib/adapter.d.ts.map +0 -1
  92. package/lib/adapter.js +0 -43
  93. package/lib/adapter.js.map +0 -1
  94. package/lib/bot.d.ts +0 -106
  95. package/lib/bot.d.ts.map +0 -1
  96. package/lib/bot.js +0 -628
  97. package/lib/bot.js.map +0 -1
  98. package/lib/index.d.ts.map +0 -1
  99. package/lib/index.js.map +0 -1
  100. package/lib/types.d.ts +0 -17
  101. package/lib/types.d.ts.map +0 -1
  102. package/lib/types.js +0 -2
  103. package/lib/types.js.map +0 -1
  104. package/plugin.yml +0 -3
  105. package/skills/slack/SKILL.md +0 -91
  106. package/src/adapter.ts +0 -52
  107. package/src/bot.ts +0 -688
  108. package/src/types.ts +0 -18
package/lib/bot.js DELETED
@@ -1,628 +0,0 @@
1
- /**
2
- * Slack Bot 实现
3
- */
4
- import { App as SlackApp, LogLevel } from "@slack/bolt";
5
- import { WebClient } from "@slack/web-api";
6
- import { formatCompact, Message, segment } from 'zhin.js';
7
- export class SlackBot {
8
- adapter;
9
- $config;
10
- $connected;
11
- /** 延迟到 `$connect`,避免子类 mock `$connect` 时仍在构造函数里创建 Bolt/WebClient(会在后台触发 Slack API) */
12
- app;
13
- client;
14
- get logger() {
15
- return this.adapter.plugin.logger;
16
- }
17
- get $id() {
18
- return this.$config.name;
19
- }
20
- constructor(adapter, $config) {
21
- this.adapter = adapter;
22
- this.$config = $config;
23
- this.$connected = false;
24
- }
25
- #ensureSlackRuntime() {
26
- if (this.app && this.client)
27
- return;
28
- const $config = this.$config;
29
- if ($config.socketMode && $config.appToken) {
30
- this.app = new SlackApp({
31
- token: $config.token,
32
- signingSecret: $config.signingSecret,
33
- appToken: $config.appToken,
34
- socketMode: true,
35
- logLevel: $config.logLevel || LogLevel.INFO,
36
- });
37
- }
38
- else {
39
- this.app = new SlackApp({
40
- token: $config.token,
41
- signingSecret: $config.signingSecret,
42
- socketMode: false,
43
- logLevel: $config.logLevel || LogLevel.INFO,
44
- });
45
- }
46
- this.client = new WebClient($config.token);
47
- }
48
- async $connect() {
49
- this.#ensureSlackRuntime();
50
- try {
51
- // Set up message event handler
52
- this.app.message(async ({ message, say }) => {
53
- await this.handleSlackMessage(message);
54
- });
55
- // Set up app mention handler
56
- this.app.event("app_mention", async ({ event, say }) => {
57
- await this.handleSlackMessage(event);
58
- });
59
- // Start the app
60
- const port = this.$config.port || 3000;
61
- if (this.$config.socketMode) {
62
- await this.app.start();
63
- }
64
- else {
65
- await this.app.start(port);
66
- }
67
- this.$connected = true;
68
- // Get bot info
69
- const authTest = await this.client.auth.test();
70
- this.logger.info(formatCompact({ bot: this.$config.name, user: authTest.user }));
71
- if (!this.$config.socketMode) {
72
- this.logger.info(formatCompact({ op: "listen", port }));
73
- }
74
- }
75
- catch (error) {
76
- this.logger.error("Failed to connect Slack bot:", error);
77
- this.$connected = false;
78
- throw error;
79
- }
80
- }
81
- async $disconnect() {
82
- if (!this.app) {
83
- this.$connected = false;
84
- return;
85
- }
86
- try {
87
- await this.app.stop();
88
- this.$connected = false;
89
- this.logger.info(formatCompact({ op: "disconnect", bot: this.$config.name }));
90
- }
91
- catch (error) {
92
- this.logger.error("Error disconnecting Slack bot:", error);
93
- throw error;
94
- }
95
- }
96
- async handleSlackMessage(msg) {
97
- // Ignore bot messages and message changes
98
- if ("subtype" in msg && (msg.subtype === "bot_message" || msg.subtype === "message_changed")) {
99
- return;
100
- }
101
- const message = this.$formatMessage(msg);
102
- this.adapter.emit("message.receive", message);
103
- this.logger.debug(`${this.$config.name} recv ${message.$channel.type}(${message.$channel.id}): ${segment.raw(message.$content)}`);
104
- }
105
- $formatMessage(msg) {
106
- // Determine channel type based on channel ID
107
- const channelType = "channel_type" in msg && msg.channel_type === "im" ? "private" : "group";
108
- const channelId = msg.channel;
109
- // Parse message content
110
- const content = this.parseMessageContent(msg);
111
- // Extract user info safely
112
- const userId = ("user" in msg ? msg.user : "") || "";
113
- const userName = ("username" in msg ? msg.username : null) || userId || "Unknown";
114
- const messageText = ("text" in msg ? msg.text : "") || "";
115
- const result = Message.from(msg, {
116
- $id: msg.ts,
117
- $adapter: "slack",
118
- $bot: this.$config.name,
119
- $sender: {
120
- id: userId,
121
- name: userName,
122
- },
123
- $channel: {
124
- id: channelId,
125
- type: channelType,
126
- },
127
- $content: content,
128
- $raw: messageText,
129
- $timestamp: parseFloat(msg.ts) * 1000,
130
- $recall: async () => {
131
- try {
132
- await this.client.chat.delete({
133
- channel: channelId,
134
- ts: result.$id,
135
- });
136
- }
137
- catch (error) {
138
- this.logger.error("Error recalling Slack message:", error);
139
- throw error;
140
- }
141
- },
142
- $reply: async (content, quote) => {
143
- if (!Array.isArray(content))
144
- content = [content];
145
- const sendOptions = {
146
- channel: channelId,
147
- };
148
- // Handle thread reply
149
- if (quote) {
150
- const threadTs = typeof quote === "boolean" ? result.$id : quote;
151
- sendOptions.thread_ts = threadTs;
152
- }
153
- return await this.adapter.sendMessage({
154
- context: "slack",
155
- bot: this.$config.name,
156
- id: channelId,
157
- type: "channel",
158
- content: content,
159
- });
160
- },
161
- });
162
- return result;
163
- }
164
- parseMessageContent(msg) {
165
- const segments = [];
166
- // Handle text
167
- if ("text" in msg && msg.text) {
168
- // Parse Slack formatting
169
- segments.push(...this.parseSlackText(msg.text));
170
- }
171
- // Handle files
172
- if ("files" in msg && msg.files) {
173
- for (const file of msg.files) {
174
- if (file.mimetype?.startsWith("image/")) {
175
- segments.push({
176
- type: "image",
177
- data: {
178
- id: file.id,
179
- name: file.name,
180
- url: file.url_private || file.permalink,
181
- size: file.size,
182
- mimetype: file.mimetype,
183
- },
184
- });
185
- }
186
- else if (file.mimetype?.startsWith("video/")) {
187
- segments.push({
188
- type: "video",
189
- data: {
190
- id: file.id,
191
- name: file.name,
192
- url: file.url_private || file.permalink,
193
- size: file.size,
194
- mimetype: file.mimetype,
195
- },
196
- });
197
- }
198
- else if (file.mimetype?.startsWith("audio/")) {
199
- segments.push({
200
- type: "audio",
201
- data: {
202
- id: file.id,
203
- name: file.name,
204
- url: file.url_private || file.permalink,
205
- size: file.size,
206
- mimetype: file.mimetype,
207
- },
208
- });
209
- }
210
- else {
211
- segments.push({
212
- type: "file",
213
- data: {
214
- id: file.id,
215
- name: file.name,
216
- url: file.url_private || file.permalink,
217
- size: file.size,
218
- mimetype: file.mimetype,
219
- },
220
- });
221
- }
222
- }
223
- }
224
- // Handle attachments
225
- if ("attachments" in msg && msg.attachments) {
226
- for (const attachment of msg.attachments) {
227
- if (attachment.image_url) {
228
- segments.push({
229
- type: "image",
230
- data: {
231
- url: attachment.image_url,
232
- title: attachment.title,
233
- text: attachment.text,
234
- },
235
- });
236
- }
237
- }
238
- }
239
- return segments.length > 0
240
- ? segments
241
- : [{ type: "text", data: { text: "" } }];
242
- }
243
- parseSlackText(text) {
244
- const segments = [];
245
- let lastIndex = 0;
246
- // Match user mentions <@U12345678>
247
- const userMentionRegex = /<@([UW][A-Z0-9]+)(?:\|([^>]+))?>/g;
248
- // Match channel mentions <#C12345678|general>
249
- const channelMentionRegex = /<#([C][A-Z0-9]+)(?:\|([^>]+))?>/g;
250
- // Match links <http://example.com|Example>
251
- const linkRegex = /<(https?:\/\/[^|>]+)(?:\|([^>]+))?>/g;
252
- const allMatches = [];
253
- // Collect all matches
254
- let match;
255
- while ((match = userMentionRegex.exec(text)) !== null) {
256
- allMatches.push({ match, type: "user" });
257
- }
258
- while ((match = channelMentionRegex.exec(text)) !== null) {
259
- allMatches.push({ match, type: "channel" });
260
- }
261
- while ((match = linkRegex.exec(text)) !== null) {
262
- allMatches.push({ match, type: "link" });
263
- }
264
- // Sort by position
265
- allMatches.sort((a, b) => a.match.index - b.match.index);
266
- // Process matches
267
- for (const { match, type } of allMatches) {
268
- const matchStart = match.index;
269
- const matchEnd = matchStart + match[0].length;
270
- // Add text before match
271
- if (matchStart > lastIndex) {
272
- const beforeText = text.slice(lastIndex, matchStart);
273
- if (beforeText.trim()) {
274
- segments.push({ type: "text", data: { text: beforeText } });
275
- }
276
- }
277
- // Add special segment
278
- switch (type) {
279
- case "user":
280
- segments.push({
281
- type: "at",
282
- data: {
283
- id: match[1],
284
- name: match[2] || match[1],
285
- text: match[0],
286
- },
287
- });
288
- break;
289
- case "channel":
290
- segments.push({
291
- type: "channel_mention",
292
- data: {
293
- id: match[1],
294
- name: match[2] || match[1],
295
- text: match[0],
296
- },
297
- });
298
- break;
299
- case "link":
300
- segments.push({
301
- type: "link",
302
- data: {
303
- url: match[1],
304
- text: match[2] || match[1],
305
- },
306
- });
307
- break;
308
- }
309
- lastIndex = matchEnd;
310
- }
311
- // Add remaining text
312
- if (lastIndex < text.length) {
313
- const remainingText = text.slice(lastIndex);
314
- if (remainingText.trim()) {
315
- segments.push({ type: "text", data: { text: remainingText } });
316
- }
317
- }
318
- return segments.length > 0
319
- ? segments
320
- : [{ type: "text", data: { text } }];
321
- }
322
- async $sendMessage(options) {
323
- try {
324
- const result = await this.sendContentToChannel(options.id, options.content);
325
- this.logger.debug(`${this.$config.name} send ${options.type}(${options.id}): ${segment.raw(options.content)}`);
326
- return result.ts || "";
327
- }
328
- catch (error) {
329
- this.logger.error("Failed to send Slack message:", error);
330
- throw error;
331
- }
332
- }
333
- async sendContentToChannel(channel, content, extraOptions = {}) {
334
- if (!Array.isArray(content))
335
- content = [content];
336
- let textContent = "";
337
- const attachments = [];
338
- for (const segment of content) {
339
- if (typeof segment === "string") {
340
- textContent += segment;
341
- continue;
342
- }
343
- const { type, data } = segment;
344
- switch (type) {
345
- case "text":
346
- textContent += data.text || "";
347
- break;
348
- case "at":
349
- textContent += `<@${data.id}>`;
350
- break;
351
- case "channel_mention":
352
- textContent += `<#${data.id}>`;
353
- break;
354
- case "link":
355
- if (data.text && data.text !== data.url) {
356
- textContent += `<${data.url}|${data.text}>`;
357
- }
358
- else {
359
- textContent += `<${data.url}>`;
360
- }
361
- break;
362
- case "image":
363
- if (data.url) {
364
- attachments.push({
365
- image_url: data.url,
366
- title: data.name || data.title,
367
- });
368
- }
369
- break;
370
- case "file":
371
- // Files need to be uploaded separately
372
- if (data.file) {
373
- try {
374
- await this.client.files.upload({
375
- channels: channel,
376
- file: data.file,
377
- filename: data.name,
378
- });
379
- }
380
- catch (error) {
381
- this.logger.error("Failed to upload file:", error);
382
- }
383
- }
384
- break;
385
- default:
386
- textContent += data.text || `[${type}]`;
387
- }
388
- }
389
- // Send message
390
- const messageOptions = {
391
- channel,
392
- text: textContent.trim() || "Message",
393
- ...extraOptions,
394
- };
395
- if (attachments.length > 0) {
396
- messageOptions.attachments = attachments;
397
- }
398
- const result = await this.client.chat.postMessage(messageOptions);
399
- return result.message || {};
400
- }
401
- async $recallMessage(id) {
402
- // Slack requires both channel and ts (timestamp) to delete a message
403
- // The Bot interface only provides message ID (ts), making recall impossible
404
- // Users should use message.$recall() instead, which has the full context
405
- throw new Error("SlackBot.$recallMessage: Message recall not supported without channel information. " +
406
- "Use message.$recall() method instead, which contains the required context.");
407
- }
408
- // ==================== 工作区管理 API ====================
409
- /**
410
- * 邀请用户到频道
411
- * @param channel 频道 ID
412
- * @param users 用户 ID 列表
413
- */
414
- async inviteToChannel(channel, users) {
415
- try {
416
- await this.client.conversations.invite({ channel, users: users.join(',') });
417
- this.logger.debug(formatCompact({ op: "invite", bot: this.$id, channel, users: users.join(",") }));
418
- return true;
419
- }
420
- catch (error) {
421
- this.logger.error(`Slack Bot ${this.$id} 邀请用户失败:`, error);
422
- throw error;
423
- }
424
- }
425
- /**
426
- * 从频道踢出用户
427
- * @param channel 频道 ID
428
- * @param user 用户 ID
429
- */
430
- async kickFromChannel(channel, user) {
431
- try {
432
- await this.client.conversations.kick({ channel, user });
433
- this.logger.debug(formatCompact({ op: "kick", bot: this.$id, channel, user }));
434
- return true;
435
- }
436
- catch (error) {
437
- this.logger.error(`Slack Bot ${this.$id} 踢出用户失败:`, error);
438
- throw error;
439
- }
440
- }
441
- /**
442
- * 设置频道话题
443
- * @param channel 频道 ID
444
- * @param topic 话题
445
- */
446
- async setChannelTopic(channel, topic) {
447
- try {
448
- await this.client.conversations.setTopic({ channel, topic });
449
- this.logger.debug(formatCompact({ op: "set_topic", bot: this.$id, channel }));
450
- return true;
451
- }
452
- catch (error) {
453
- this.logger.error(`Slack Bot ${this.$id} 设置话题失败:`, error);
454
- throw error;
455
- }
456
- }
457
- /**
458
- * 设置频道目的
459
- * @param channel 频道 ID
460
- * @param purpose 目的
461
- */
462
- async setChannelPurpose(channel, purpose) {
463
- try {
464
- await this.client.conversations.setPurpose({ channel, purpose });
465
- this.logger.debug(formatCompact({ op: "set_purpose", bot: this.$id, channel }));
466
- return true;
467
- }
468
- catch (error) {
469
- this.logger.error(`Slack Bot ${this.$id} 设置目的失败:`, error);
470
- throw error;
471
- }
472
- }
473
- /**
474
- * 归档频道
475
- * @param channel 频道 ID
476
- */
477
- async archiveChannel(channel) {
478
- try {
479
- await this.client.conversations.archive({ channel });
480
- this.logger.debug(formatCompact({ op: "archive", bot: this.$id, channel }));
481
- return true;
482
- }
483
- catch (error) {
484
- this.logger.error(`Slack Bot ${this.$id} 归档频道失败:`, error);
485
- throw error;
486
- }
487
- }
488
- /**
489
- * 取消归档频道
490
- * @param channel 频道 ID
491
- */
492
- async unarchiveChannel(channel) {
493
- try {
494
- await this.client.conversations.unarchive({ channel });
495
- this.logger.debug(formatCompact({ op: "unarchive", bot: this.$id, channel }));
496
- return true;
497
- }
498
- catch (error) {
499
- this.logger.error(`Slack Bot ${this.$id} 取消归档失败:`, error);
500
- throw error;
501
- }
502
- }
503
- /**
504
- * 重命名频道
505
- * @param channel 频道 ID
506
- * @param name 新名称
507
- */
508
- async renameChannel(channel, name) {
509
- try {
510
- await this.client.conversations.rename({ channel, name });
511
- this.logger.debug(formatCompact({ op: "rename", bot: this.$id, channel, name }));
512
- return true;
513
- }
514
- catch (error) {
515
- this.logger.error(`Slack Bot ${this.$id} 重命名频道失败:`, error);
516
- throw error;
517
- }
518
- }
519
- /**
520
- * 获取频道成员列表
521
- * @param channel 频道 ID
522
- */
523
- async getChannelMembers(channel) {
524
- try {
525
- const result = await this.client.conversations.members({ channel });
526
- return result.members || [];
527
- }
528
- catch (error) {
529
- this.logger.error(`Slack Bot ${this.$id} 获取成员列表失败:`, error);
530
- throw error;
531
- }
532
- }
533
- /**
534
- * 获取频道信息
535
- * @param channel 频道 ID
536
- */
537
- async getChannelInfo(channel) {
538
- try {
539
- const result = await this.client.conversations.info({ channel });
540
- return result.channel;
541
- }
542
- catch (error) {
543
- this.logger.error(`Slack Bot ${this.$id} 获取频道信息失败:`, error);
544
- throw error;
545
- }
546
- }
547
- /**
548
- * 获取用户信息
549
- * @param user 用户 ID
550
- */
551
- async getUserInfo(user) {
552
- try {
553
- const result = await this.client.users.info({ user });
554
- return result.user;
555
- }
556
- catch (error) {
557
- this.logger.error(`Slack Bot ${this.$id} 获取用户信息失败:`, error);
558
- throw error;
559
- }
560
- }
561
- /**
562
- * 添加消息反应
563
- * @param channel 频道 ID
564
- * @param timestamp 消息时间戳
565
- * @param name 表情名称
566
- */
567
- async addReaction(channel, timestamp, name) {
568
- try {
569
- await this.client.reactions.add({ channel, timestamp, name });
570
- this.logger.debug(formatCompact({ op: "reaction_add", bot: this.$id, name }));
571
- return true;
572
- }
573
- catch (error) {
574
- this.logger.error(`Slack Bot ${this.$id} 添加反应失败:`, error);
575
- throw error;
576
- }
577
- }
578
- /**
579
- * 移除消息反应
580
- * @param channel 频道 ID
581
- * @param timestamp 消息时间戳
582
- * @param name 表情名称
583
- */
584
- async removeReaction(channel, timestamp, name) {
585
- try {
586
- await this.client.reactions.remove({ channel, timestamp, name });
587
- this.logger.debug(formatCompact({ op: "reaction_remove", bot: this.$id, name }));
588
- return true;
589
- }
590
- catch (error) {
591
- this.logger.error(`Slack Bot ${this.$id} 移除反应失败:`, error);
592
- throw error;
593
- }
594
- }
595
- /**
596
- * 置顶消息
597
- * @param channel 频道 ID
598
- * @param timestamp 消息时间戳
599
- */
600
- async pinMessage(channel, timestamp) {
601
- try {
602
- await this.client.pins.add({ channel, timestamp });
603
- this.logger.debug(formatCompact({ op: "pin", bot: this.$id, channel }));
604
- return true;
605
- }
606
- catch (error) {
607
- this.logger.error(`Slack Bot ${this.$id} 置顶消息失败:`, error);
608
- throw error;
609
- }
610
- }
611
- /**
612
- * 取消置顶消息
613
- * @param channel 频道 ID
614
- * @param timestamp 消息时间戳
615
- */
616
- async unpinMessage(channel, timestamp) {
617
- try {
618
- await this.client.pins.remove({ channel, timestamp });
619
- this.logger.debug(formatCompact({ op: "unpin", bot: this.$id, channel }));
620
- return true;
621
- }
622
- catch (error) {
623
- this.logger.error(`Slack Bot ${this.$id} 取消置顶失败:`, error);
624
- throw error;
625
- }
626
- }
627
- }
628
- //# sourceMappingURL=bot.js.map
package/lib/bot.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,QAAQ;QAChB,KAAK,EAAE,YAAY,CAAC;KACrB;CACF;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}