@zhin.js/adapter-slack 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/README.md +5 -5
- package/lib/adapter.d.ts +9 -8
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +24 -23
- package/lib/adapter.js.map +1 -1
- package/lib/{bot.d.ts → endpoint.d.ts} +8 -6
- package/lib/endpoint.d.ts.map +1 -0
- package/lib/{bot.js → endpoint.js} +79 -34
- package/lib/endpoint.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +59 -49
- package/lib/index.js.map +1 -1
- package/lib/platform-permit.d.ts +17 -0
- package/lib/platform-permit.d.ts.map +1 -0
- package/lib/platform-permit.js +49 -0
- package/lib/platform-permit.js.map +1 -0
- package/lib/types.d.ts +1 -1
- package/lib/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/skills/slack/PERMITS.md +24 -0
- package/src/adapter.ts +23 -21
- package/src/{bot.ts → endpoint.ts} +82 -36
- package/src/index.ts +62 -47
- package/src/platform-permit.ts +64 -0
- package/src/types.ts +1 -1
- package/lib/bot.d.ts.map +0 -1
- package/lib/bot.js.map +0 -1
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 {
|
|
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
|
|
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
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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: ['
|
|
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
|
|
48
|
-
const success = await
|
|
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
|
-
|
|
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: ['
|
|
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
|
|
68
|
-
const success = await
|
|
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
|
-
|
|
83
|
+
endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
|
|
79
84
|
channel: { type: 'string', description: '频道 ID' },
|
|
80
85
|
},
|
|
81
|
-
required: ['
|
|
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
|
|
87
|
-
const success = await
|
|
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
|
-
|
|
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: ['
|
|
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
|
|
107
|
-
const success = await
|
|
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
|
-
|
|
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: ['
|
|
129
|
+
required: ['endpoint_id', 'channel', 'timestamp', 'emoji'],
|
|
123
130
|
},
|
|
124
131
|
platforms: ['slack'],
|
|
125
132
|
tags: ['slack'],
|
|
126
133
|
execute: async (args) => {
|
|
127
|
-
const
|
|
128
|
-
const success = await
|
|
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
|
-
|
|
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: ['
|
|
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
|
|
149
|
-
const success = await
|
|
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
|
-
|
|
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: ['
|
|
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
|
|
169
|
-
const success = await
|
|
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
|
-
|
|
187
|
+
endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
|
|
180
188
|
user_id: { type: 'string', description: '用户 ID' },
|
|
181
189
|
},
|
|
182
|
-
required: ['
|
|
190
|
+
required: ['endpoint_id', 'user_id'],
|
|
183
191
|
},
|
|
184
192
|
platforms: ['slack'],
|
|
185
193
|
tags: ['slack'],
|
|
186
194
|
execute: async (args) => {
|
|
187
|
-
const
|
|
188
|
-
const user = await
|
|
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
|
-
|
|
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: ['
|
|
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
|
|
217
|
-
const success = await
|
|
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
|
-
|
|
236
|
+
endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
|
|
228
237
|
channel_id: { type: 'string', description: '频道 ID' },
|
|
229
238
|
},
|
|
230
|
-
required: ['
|
|
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
|
|
236
|
-
const success = await
|
|
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
package/lib/types.d.ts.map
CHANGED
|
@@ -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,
|
|
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": "
|
|
3
|
+
"version": "3.0.0",
|
|
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.
|
|
39
|
+
"@types/node": "^25.9.2",
|
|
40
40
|
"typescript": "^6.0.3",
|
|
41
|
-
"zhin.js": "
|
|
41
|
+
"zhin.js": "3.0.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
|
-
"zhin.js": "
|
|
44
|
+
"zhin.js": "3.0.0"
|
|
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 {
|
|
9
|
-
import type {
|
|
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
|
-
|
|
17
|
-
return new
|
|
18
|
+
createEndpoint(config: SlackEndpointConfig): SlackEndpoint {
|
|
19
|
+
return new SlackEndpoint(this, config);
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
// ── IGroupManagement 标准群管方法 ──────────────────────────────────
|
|
21
23
|
|
|
22
|
-
async kickMember(
|
|
23
|
-
const
|
|
24
|
-
if (!
|
|
25
|
-
return
|
|
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(
|
|
29
|
-
const
|
|
30
|
-
if (!
|
|
31
|
-
return
|
|
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(
|
|
35
|
-
const
|
|
36
|
-
if (!
|
|
37
|
-
return
|
|
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(
|
|
41
|
-
const
|
|
42
|
-
if (!
|
|
43
|
-
return
|
|
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
|
// ── 生命周期 ───────────────────────────────────────────────────────
|