@zhin.js/adapter-slack 2.0.0 → 2.0.1

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/lib/index.js CHANGED
@@ -3,14 +3,15 @@
3
3
  */
4
4
  import { usePlugin, createGroupManagementTools } from "zhin.js";
5
5
  import { SlackAdapter } from "./adapter.js";
6
+ import { platformPermit, registerSlackPlatformPermitChecker, slackGroupPermitResolver, } from "./platform-permit.js";
6
7
  export * from "./types.js";
7
- export { SlackBot } from "./bot.js";
8
+ export { SlackEndpoint } from "./endpoint.js";
8
9
  export { SlackAdapter } from "./adapter.js";
9
10
  const plugin = usePlugin();
10
11
  const { provide, useContext } = plugin;
11
12
  provide({
12
13
  name: "slack",
13
- description: "Slack Bot Adapter",
14
+ description: "Slack Endpoint Adapter",
14
15
  mounted: async (p) => {
15
16
  const adapter = new SlackAdapter(p);
16
17
  await adapter.start();
@@ -21,13 +22,15 @@ provide({
21
22
  },
22
23
  });
23
24
  useContext('tool', 'slack', (toolService, slack) => {
24
- const groupTools = createGroupManagementTools(slack, 'slack');
25
- const disposers = groupTools.map(t => toolService.addTool(t, plugin.name));
26
- function getBot(botId) {
27
- const bot = slack.bots.get(botId);
28
- if (!bot)
29
- throw new Error(`Bot ${botId} 不存在`);
30
- return bot;
25
+ const disposers = [];
26
+ disposers.push(registerSlackPlatformPermitChecker());
27
+ const groupTools = createGroupManagementTools(slack, 'slack', { permitResolver: slackGroupPermitResolver, registerChecker: false });
28
+ disposers.push(...groupTools.map(t => toolService.addTool(t, plugin.name)));
29
+ function getEndpoint(endpointId) {
30
+ const endpoint = slack.endpoints.get(endpointId);
31
+ if (!endpoint)
32
+ throw new Error(`Endpoint ${endpointId} 不存在`);
33
+ return endpoint;
31
34
  }
32
35
  disposers.push(toolService.addTool({
33
36
  name: 'slack_invite_to_channel',
@@ -35,17 +38,18 @@ useContext('tool', 'slack', (toolService, slack) => {
35
38
  parameters: {
36
39
  type: 'object',
37
40
  properties: {
38
- bot: { type: 'string', description: 'Bot 名称' },
41
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
39
42
  channel: { type: 'string', description: '频道 ID' },
40
43
  users: { type: 'string', description: '用户 ID 列表(逗号分隔)' },
41
44
  },
42
- required: ['bot', 'channel', 'users'],
45
+ required: ['endpoint_id', 'channel', 'users'],
43
46
  },
44
47
  platforms: ['slack'],
45
48
  tags: ['slack'],
49
+ permissions: [platformPermit('channel_manager')],
46
50
  execute: async (args) => {
47
- const bot = getBot(args.bot);
48
- const success = await bot.inviteToChannel(args.channel, args.users.split(','));
51
+ const endpoint = getEndpoint(args.endpoint_id);
52
+ const success = await endpoint.inviteToChannel(args.channel, args.users.split(','));
49
53
  return { success, message: success ? '已邀请用户加入频道' : '操作失败' };
50
54
  },
51
55
  }, plugin.name));
@@ -55,17 +59,18 @@ useContext('tool', 'slack', (toolService, slack) => {
55
59
  parameters: {
56
60
  type: 'object',
57
61
  properties: {
58
- bot: { type: 'string', description: 'Bot 名称' },
62
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
59
63
  channel: { type: 'string', description: '频道 ID' },
60
64
  topic: { type: 'string', description: '新话题' },
61
65
  },
62
- required: ['bot', 'channel', 'topic'],
66
+ required: ['endpoint_id', 'channel', 'topic'],
63
67
  },
64
68
  platforms: ['slack'],
65
69
  tags: ['slack'],
70
+ permissions: [platformPermit('channel_manager')],
66
71
  execute: async (args) => {
67
- const bot = getBot(args.bot);
68
- const success = await bot.setChannelTopic(args.channel, args.topic);
72
+ const endpoint = getEndpoint(args.endpoint_id);
73
+ const success = await endpoint.setChannelTopic(args.channel, args.topic);
69
74
  return { success, message: success ? '已设置频道话题' : '操作失败' };
70
75
  },
71
76
  }, plugin.name));
@@ -75,16 +80,17 @@ useContext('tool', 'slack', (toolService, slack) => {
75
80
  parameters: {
76
81
  type: 'object',
77
82
  properties: {
78
- bot: { type: 'string', description: 'Bot 名称' },
83
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
79
84
  channel: { type: 'string', description: '频道 ID' },
80
85
  },
81
- required: ['bot', 'channel'],
86
+ required: ['endpoint_id', 'channel'],
82
87
  },
83
88
  platforms: ['slack'],
84
89
  tags: ['slack'],
90
+ permissions: [platformPermit('workspace_admin')],
85
91
  execute: async (args) => {
86
- const bot = getBot(args.bot);
87
- const success = await bot.archiveChannel(args.channel);
92
+ const endpoint = getEndpoint(args.endpoint_id);
93
+ const success = await endpoint.archiveChannel(args.channel);
88
94
  return { success, message: success ? '已归档频道' : '操作失败' };
89
95
  },
90
96
  }, plugin.name));
@@ -94,17 +100,18 @@ useContext('tool', 'slack', (toolService, slack) => {
94
100
  parameters: {
95
101
  type: 'object',
96
102
  properties: {
97
- bot: { type: 'string', description: 'Bot 名称' },
103
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
98
104
  channel: { type: 'string', description: '频道 ID' },
99
105
  timestamp: { type: 'string', description: '消息时间戳' },
100
106
  },
101
- required: ['bot', 'channel', 'timestamp'],
107
+ required: ['endpoint_id', 'channel', 'timestamp'],
102
108
  },
103
109
  platforms: ['slack'],
104
110
  tags: ['slack'],
111
+ permissions: [platformPermit('channel_manager')],
105
112
  execute: async (args) => {
106
- const bot = getBot(args.bot);
107
- const success = await bot.pinMessage(args.channel, args.timestamp);
113
+ const endpoint = getEndpoint(args.endpoint_id);
114
+ const success = await endpoint.pinMessage(args.channel, args.timestamp);
108
115
  return { success, message: success ? '已置顶消息' : '操作失败' };
109
116
  },
110
117
  }, plugin.name));
@@ -114,18 +121,18 @@ useContext('tool', 'slack', (toolService, slack) => {
114
121
  parameters: {
115
122
  type: 'object',
116
123
  properties: {
117
- bot: { type: 'string', description: 'Bot 名称' },
124
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
118
125
  channel: { type: 'string', description: '频道 ID' },
119
126
  timestamp: { type: 'string', description: '消息时间戳' },
120
127
  emoji: { type: 'string', description: '表情名称(不含冒号)' },
121
128
  },
122
- required: ['bot', 'channel', 'timestamp', 'emoji'],
129
+ required: ['endpoint_id', 'channel', 'timestamp', 'emoji'],
123
130
  },
124
131
  platforms: ['slack'],
125
132
  tags: ['slack'],
126
133
  execute: async (args) => {
127
- const bot = getBot(args.bot);
128
- const success = await bot.addReaction(args.channel, args.timestamp, args.emoji);
134
+ const endpoint = getEndpoint(args.endpoint_id);
135
+ const success = await endpoint.addReaction(args.channel, args.timestamp, args.emoji);
129
136
  return { success, message: success ? `已添加反应 :${args.emoji}:` : '操作失败' };
130
137
  },
131
138
  }, plugin.name));
@@ -135,18 +142,18 @@ useContext('tool', 'slack', (toolService, slack) => {
135
142
  parameters: {
136
143
  type: 'object',
137
144
  properties: {
138
- bot: { type: 'string', description: 'Bot 名称' },
145
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
139
146
  channel_id: { type: 'string', description: '频道 ID' },
140
147
  timestamp: { type: 'string', description: '消息时间戳' },
141
148
  name: { type: 'string', description: '表情名称(如 thumbsup、heart)' },
142
149
  },
143
- required: ['bot', 'channel_id', 'timestamp', 'name'],
150
+ required: ['endpoint_id', 'channel_id', 'timestamp', 'name'],
144
151
  },
145
152
  platforms: ['slack'],
146
153
  tags: ['slack'],
147
154
  execute: async (args) => {
148
- const bot = getBot(args.bot);
149
- const success = await bot.removeReaction(args.channel_id, args.timestamp, args.name);
155
+ const endpoint = getEndpoint(args.endpoint_id);
156
+ const success = await endpoint.removeReaction(args.channel_id, args.timestamp, args.name);
150
157
  return { success, message: success ? `已移除反应 :${args.name}:` : '操作失败' };
151
158
  },
152
159
  }, plugin.name));
@@ -156,17 +163,18 @@ useContext('tool', 'slack', (toolService, slack) => {
156
163
  parameters: {
157
164
  type: 'object',
158
165
  properties: {
159
- bot: { type: 'string', description: 'Bot 名称' },
166
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
160
167
  channel_id: { type: 'string', description: '频道 ID' },
161
168
  timestamp: { type: 'string', description: '消息时间戳' },
162
169
  },
163
- required: ['bot', 'channel_id', 'timestamp'],
170
+ required: ['endpoint_id', 'channel_id', 'timestamp'],
164
171
  },
165
172
  platforms: ['slack'],
166
173
  tags: ['slack'],
174
+ permissions: [platformPermit('channel_manager')],
167
175
  execute: async (args) => {
168
- const bot = getBot(args.bot);
169
- const success = await bot.unpinMessage(args.channel_id, args.timestamp);
176
+ const endpoint = getEndpoint(args.endpoint_id);
177
+ const success = await endpoint.unpinMessage(args.channel_id, args.timestamp);
170
178
  return { success, message: success ? '已取消置顶' : '操作失败' };
171
179
  },
172
180
  }, plugin.name));
@@ -176,16 +184,16 @@ useContext('tool', 'slack', (toolService, slack) => {
176
184
  parameters: {
177
185
  type: 'object',
178
186
  properties: {
179
- bot: { type: 'string', description: 'Bot 名称' },
187
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
180
188
  user_id: { type: 'string', description: '用户 ID' },
181
189
  },
182
- required: ['bot', 'user_id'],
190
+ required: ['endpoint_id', 'user_id'],
183
191
  },
184
192
  platforms: ['slack'],
185
193
  tags: ['slack'],
186
194
  execute: async (args) => {
187
- const bot = getBot(args.bot);
188
- const user = await bot.getUserInfo(args.user_id);
195
+ const endpoint = getEndpoint(args.endpoint_id);
196
+ const user = await endpoint.getUserInfo(args.user_id);
189
197
  return {
190
198
  id: user.id,
191
199
  name: user.name,
@@ -204,17 +212,18 @@ useContext('tool', 'slack', (toolService, slack) => {
204
212
  parameters: {
205
213
  type: 'object',
206
214
  properties: {
207
- bot: { type: 'string', description: 'Bot 名称' },
215
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
208
216
  channel_id: { type: 'string', description: '频道 ID' },
209
217
  purpose: { type: 'string', description: '频道用途描述' },
210
218
  },
211
- required: ['bot', 'channel_id', 'purpose'],
219
+ required: ['endpoint_id', 'channel_id', 'purpose'],
212
220
  },
213
221
  platforms: ['slack'],
214
222
  tags: ['slack'],
223
+ permissions: [platformPermit('channel_manager')],
215
224
  execute: async (args) => {
216
- const bot = getBot(args.bot);
217
- const success = await bot.setChannelPurpose(args.channel_id, args.purpose);
225
+ const endpoint = getEndpoint(args.endpoint_id);
226
+ const success = await endpoint.setChannelPurpose(args.channel_id, args.purpose);
218
227
  return { success, message: success ? '频道用途已更新' : '操作失败' };
219
228
  },
220
229
  }, plugin.name));
@@ -224,16 +233,17 @@ useContext('tool', 'slack', (toolService, slack) => {
224
233
  parameters: {
225
234
  type: 'object',
226
235
  properties: {
227
- bot: { type: 'string', description: 'Bot 名称' },
236
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
228
237
  channel_id: { type: 'string', description: '频道 ID' },
229
238
  },
230
- required: ['bot', 'channel_id'],
239
+ required: ['endpoint_id', 'channel_id'],
231
240
  },
232
241
  platforms: ['slack'],
233
242
  tags: ['slack'],
243
+ permissions: [platformPermit('workspace_admin')],
234
244
  execute: async (args) => {
235
- const bot = getBot(args.bot);
236
- const success = await bot.unarchiveChannel(args.channel_id);
245
+ const endpoint = getEndpoint(args.endpoint_id);
246
+ const success = await endpoint.unarchiveChannel(args.channel_id);
237
247
  return { success, message: success ? '频道已恢复' : '操作失败' };
238
248
  },
239
249
  }, plugin.name));
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Slack platform permit — workspace + channel 权限
3
+ */
4
+ import type { Message } from 'zhin.js';
5
+ export declare function platformPermit(perm: string): string;
6
+ export declare function slackGroupPermitResolver(logicalPerm: string): string;
7
+ export declare function normalizeSlackSenderForPermit(input: {
8
+ isWorkspaceOwner?: boolean;
9
+ isWorkspaceAdmin?: boolean;
10
+ isChannelManager?: boolean;
11
+ }): {
12
+ role?: string;
13
+ permissions?: string[];
14
+ };
15
+ export declare function checkSlackPlatformPermit(perm: string, message: Message<any>): boolean;
16
+ export declare function registerSlackPlatformPermitChecker(): () => void;
17
+ //# sourceMappingURL=platform-permit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-permit.d.ts","sourceRoot":"","sources":["../src/platform-permit.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAOD,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAe5C;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAiBrF;AAED,wBAAgB,kCAAkC,IAAI,MAAM,IAAI,CAE/D"}
@@ -0,0 +1,49 @@
1
+ import { registerPlatformPermitChecker } from 'zhin.js';
2
+ const ADAPTER = 'slack';
3
+ export function platformPermit(perm) {
4
+ return `platform(${ADAPTER},${perm})`;
5
+ }
6
+ const FACTORY_PERM_MAP = {
7
+ group_admin: 'channel_manager',
8
+ group_owner: 'workspace_owner',
9
+ };
10
+ export function slackGroupPermitResolver(logicalPerm) {
11
+ return platformPermit(FACTORY_PERM_MAP[logicalPerm] ?? logicalPerm);
12
+ }
13
+ export function normalizeSlackSenderForPermit(input) {
14
+ const permissions = [];
15
+ if (input.isWorkspaceOwner) {
16
+ permissions.push('workspace_owner', 'workspace_admin', 'channel_manager');
17
+ return { role: 'owner', permissions };
18
+ }
19
+ if (input.isWorkspaceAdmin) {
20
+ permissions.push('workspace_admin', 'channel_manager');
21
+ return { role: 'admin', permissions };
22
+ }
23
+ if (input.isChannelManager) {
24
+ permissions.push('channel_manager');
25
+ return { role: 'channel_admin', permissions };
26
+ }
27
+ return { role: 'member', permissions };
28
+ }
29
+ export function checkSlackPlatformPermit(perm, message) {
30
+ const sender = message.$sender;
31
+ const permissions = sender.permissions ?? [];
32
+ const role = sender.role;
33
+ const has = (t) => permissions.includes(t);
34
+ switch (perm) {
35
+ case 'workspace_owner':
36
+ return role === 'owner' || has('workspace_owner');
37
+ case 'workspace_admin':
38
+ return role === 'owner' || role === 'admin' || has('workspace_admin') || has('workspace_owner');
39
+ case 'channel_manager':
40
+ return role === 'owner' || role === 'admin' || role === 'channel_admin'
41
+ || has('channel_manager') || has('workspace_admin') || has('workspace_owner');
42
+ default:
43
+ return false;
44
+ }
45
+ }
46
+ export function registerSlackPlatformPermitChecker() {
47
+ return registerPlatformPermitChecker(ADAPTER, checkSlackPlatformPermit);
48
+ }
49
+ //# sourceMappingURL=platform-permit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-permit.js","sourceRoot":"","sources":["../src/platform-permit.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAC;AAExD,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,YAAY,OAAO,IAAI,IAAI,GAAG,CAAC;AACxC,CAAC;AAED,MAAM,gBAAgB,GAA2B;IAC/C,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,iBAAiB;CAC/B,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,WAAmB;IAC1D,OAAO,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAI7C;IACC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,OAAqB;IAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAoD,CAAC;IAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEnD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,iBAAiB;YACpB,OAAO,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACpD,KAAK,iBAAiB;YACpB,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAClG,KAAK,iBAAiB;YACpB,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,eAAe;mBAClE,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAClF;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kCAAkC;IAChD,OAAO,6BAA6B,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;AAC1E,CAAC"}
package/lib/types.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import type { LogLevel } from "@slack/bolt";
5
5
  import type { KnownEventFromType } from "@slack/bolt";
6
- export interface SlackBotConfig {
6
+ export interface SlackEndpointConfig {
7
7
  context: "slack";
8
8
  token: string;
9
9
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhin.js/adapter-slack",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "Zhin.js adapter for Slack",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -36,12 +36,12 @@
36
36
  "@slack/web-api": "^7.16.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@types/node": "^25.9.1",
39
+ "@types/node": "^25.9.2",
40
40
  "typescript": "^6.0.3",
41
- "zhin.js": "2.0.0"
41
+ "zhin.js": "2.0.1"
42
42
  },
43
43
  "peerDependencies": {
44
- "zhin.js": "2.0.0"
44
+ "zhin.js": "2.0.1"
45
45
  },
46
46
  "files": [
47
47
  "src",
@@ -0,0 +1,24 @@
1
+ # Slack Platform Permits
2
+
3
+ ## 入站字段
4
+
5
+ 频道消息异步 enrich(`users.info` + `conversations.info`,TTL 60s):
6
+
7
+ | 字段 | 来源 |
8
+ |------|------|
9
+ | `$sender.role` | `owner` · `admin` · `channel_admin` · `member` |
10
+ | `$sender.permissions` | `workspace_owner` · `workspace_admin` · `channel_manager` |
11
+
12
+ `channel_manager`:频道 `creator === user` 或 workspace 管理员。
13
+
14
+ ## Permit 词汇表
15
+
16
+ | `platform(slack,…)` | 含义 |
17
+ |---------------------|------|
18
+ | `workspace_owner` | Workspace 主 |
19
+ | `workspace_admin` | Workspace 管理员 |
20
+ | `channel_manager` | 频道管理者 |
21
+
22
+ ## 工厂映射
23
+
24
+ `group_admin` → `channel_manager` · `group_owner` → `workspace_owner`
package/src/adapter.ts CHANGED
@@ -5,42 +5,44 @@ import {
5
5
  Adapter,
6
6
  Plugin,
7
7
  } from "zhin.js";
8
- import { SlackBot } from "./bot.js";
9
- import type { SlackBotConfig } from "./types.js";
8
+ import { SlackEndpoint } from "./endpoint.js";
9
+ import type { SlackEndpointConfig } from "./types.js";
10
+
11
+ export class SlackAdapter extends Adapter<SlackEndpoint> {
12
+ static override readonly capabilities = ['inbound', 'outbound'] as const;
10
13
 
11
- export class SlackAdapter extends Adapter<SlackBot> {
12
14
  constructor(plugin: Plugin) {
13
15
  super(plugin, "slack", []);
14
16
  }
15
17
 
16
- createBot(config: SlackBotConfig): SlackBot {
17
- return new SlackBot(this, config);
18
+ createEndpoint(config: SlackEndpointConfig): SlackEndpoint {
19
+ return new SlackEndpoint(this, config);
18
20
  }
19
21
 
20
22
  // ── IGroupManagement 标准群管方法 ──────────────────────────────────
21
23
 
22
- async kickMember(botId: string, sceneId: string, userId: string) {
23
- const bot = this.bots.get(botId);
24
- if (!bot) throw new Error(`Bot ${botId} 不存在`);
25
- return bot.kickFromChannel(sceneId, userId);
24
+ async kickMember(endpointId: string, sceneId: string, userId: string) {
25
+ const endpoint = this.endpoints.get(endpointId);
26
+ if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
27
+ return endpoint.kickFromChannel(sceneId, userId);
26
28
  }
27
29
 
28
- async setGroupName(botId: string, sceneId: string, name: string) {
29
- const bot = this.bots.get(botId);
30
- if (!bot) throw new Error(`Bot ${botId} 不存在`);
31
- return bot.renameChannel(sceneId, name);
30
+ async setGroupName(endpointId: string, sceneId: string, name: string) {
31
+ const endpoint = this.endpoints.get(endpointId);
32
+ if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
33
+ return endpoint.renameChannel(sceneId, name);
32
34
  }
33
35
 
34
- async listMembers(botId: string, sceneId: string) {
35
- const bot = this.bots.get(botId);
36
- if (!bot) throw new Error(`Bot ${botId} 不存在`);
37
- return bot.getChannelMembers(sceneId);
36
+ async listMembers(endpointId: string, sceneId: string) {
37
+ const endpoint = this.endpoints.get(endpointId);
38
+ if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
39
+ return endpoint.getChannelMembers(sceneId);
38
40
  }
39
41
 
40
- async getGroupInfo(botId: string, sceneId: string) {
41
- const bot = this.bots.get(botId);
42
- if (!bot) throw new Error(`Bot ${botId} 不存在`);
43
- return bot.getChannelInfo(sceneId);
42
+ async getGroupInfo(endpointId: string, sceneId: string) {
43
+ const endpoint = this.endpoints.get(endpointId);
44
+ if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
45
+ return endpoint.getChannelInfo(sceneId);
44
46
  }
45
47
 
46
48
  // ── 生命周期 ───────────────────────────────────────────────────────