@zhin.js/adapter-qq 2.0.12 → 3.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/CHANGELOG.md +20 -4
- package/README.md +9 -9
- package/client/Dashboard.tsx +32 -32
- package/dist/index.js +1 -1
- package/lib/adapter.d.ts +10 -9
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +33 -32
- package/lib/adapter.js.map +1 -1
- package/lib/{bot.d.ts → endpoint.d.ts} +13 -8
- package/lib/endpoint.d.ts.map +1 -0
- package/lib/{bot.js → endpoint.js} +101 -35
- package/lib/endpoint.js.map +1 -0
- package/lib/gateway-config.d.ts +3 -3
- package/lib/gateway-config.d.ts.map +1 -1
- package/lib/gateway-config.js +2 -2
- package/lib/gateway-config.js.map +1 -1
- package/lib/group-at-normalize.d.ts +1 -1
- package/lib/group-at-normalize.d.ts.map +1 -1
- package/lib/group-at-normalize.js +8 -8
- package/lib/group-at-normalize.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +124 -96
- 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 +47 -0
- package/lib/platform-permit.js.map +1 -0
- package/lib/sdk-version.d.ts +1 -1
- package/lib/sdk-version.js +1 -1
- package/lib/types.d.ts +4 -4
- package/lib/types.d.ts.map +1 -1
- package/package.json +13 -10
- package/skills/qq/PERMITS.md +25 -0
- package/skills/qq/SKILL.md +1 -1
- package/src/adapter.ts +27 -25
- package/src/{bot.ts → endpoint.ts} +116 -42
- package/src/gateway-config.ts +5 -5
- package/src/group-at-normalize.ts +8 -8
- package/src/index.ts +118 -85
- package/src/platform-permit.ts +62 -0
- package/src/sdk-version.ts +1 -1
- package/src/types.ts +5 -5
- package/lib/bot.d.ts.map +0 -1
- package/lib/bot.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* QQ 官方
|
|
2
|
+
* QQ 官方 Endpoint 实现
|
|
3
3
|
*/
|
|
4
|
-
import { Bot, } from "qq-official-bot";
|
|
4
|
+
import { Bot as QQOfficialClient, } from "qq-official-bot";
|
|
5
5
|
import path from "path";
|
|
6
6
|
import { formatCompact } from "@zhin.js/logger";
|
|
7
7
|
import { Message, segment, } from "zhin.js";
|
|
@@ -12,7 +12,28 @@ import { SDK_VERSION, SDK_VERSION_HEADER } from "./sdk-version.js";
|
|
|
12
12
|
import { applyCustomAuthEndpoints } from "./gateway-config.js";
|
|
13
13
|
import { normalizeOutboundMarkdown } from "./outbound-markdown.js";
|
|
14
14
|
import { normalizeOutboundMedia } from "./outbound-media.js";
|
|
15
|
-
|
|
15
|
+
import { normalizeQqGuildSenderForPermit } from "./platform-permit.js";
|
|
16
|
+
/** 从 qq-official-bot SendResult / 审核回包中解析出站消息 ID */
|
|
17
|
+
export function resolveOutboundMessageId(result) {
|
|
18
|
+
if (!result || typeof result !== "object") {
|
|
19
|
+
throw new Error("QQ 发送消息失败:响应为空");
|
|
20
|
+
}
|
|
21
|
+
const row = result;
|
|
22
|
+
const nested = row.data && typeof row.data === "object"
|
|
23
|
+
? row.data
|
|
24
|
+
: undefined;
|
|
25
|
+
const audit = (row.message_audit ?? nested?.message_audit);
|
|
26
|
+
const id = row.id ?? row.message_id ?? audit?.audit_id;
|
|
27
|
+
if (id == null || id === "") {
|
|
28
|
+
const code = row.code;
|
|
29
|
+
const msg = row.message;
|
|
30
|
+
throw new Error(code != null
|
|
31
|
+
? `QQ 发送消息失败(${String(code)})${msg ? `: ${String(msg)}` : ""}`
|
|
32
|
+
: "QQ 发送消息失败:响应缺少消息 ID");
|
|
33
|
+
}
|
|
34
|
+
return String(id);
|
|
35
|
+
}
|
|
36
|
+
export class QQEndpoint extends QQOfficialClient {
|
|
16
37
|
adapter;
|
|
17
38
|
$connected = false;
|
|
18
39
|
/** 平台侧机器人 user_id,用于 @ 触发匹配 */
|
|
@@ -58,9 +79,54 @@ export class QQBot extends Bot {
|
|
|
58
79
|
normalizeQqInboundWsPayload(event, wsRes);
|
|
59
80
|
super.dispatchEvent(event, wsRes);
|
|
60
81
|
}
|
|
61
|
-
|
|
82
|
+
guildMemberCache = new Map();
|
|
83
|
+
guildOwnerCache = new Map();
|
|
84
|
+
async enrichGuildSender(message, guildId, userId) {
|
|
85
|
+
const key = `${guildId}:${userId}`;
|
|
86
|
+
const now = Date.now();
|
|
87
|
+
const cached = this.guildMemberCache.get(key);
|
|
88
|
+
if (cached && now - cached.at < 60_000) {
|
|
89
|
+
message.$sender.role = cached.role;
|
|
90
|
+
message.$sender.permissions = cached.permissions;
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
let ownerId;
|
|
95
|
+
const ownerCached = this.guildOwnerCache.get(guildId);
|
|
96
|
+
if (ownerCached && now - ownerCached.at < 300_000) {
|
|
97
|
+
ownerId = ownerCached.ownerId;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const guild = await this.getGuildInfo(guildId);
|
|
101
|
+
ownerId = guild?.owner_id?.toString?.() ?? guild?.owner?.id?.toString?.();
|
|
102
|
+
this.guildOwnerCache.set(guildId, { at: now, ownerId });
|
|
103
|
+
}
|
|
104
|
+
const member = await this.getGuildMember(guildId, userId);
|
|
105
|
+
const roleIds = Array.isArray(member?.roles)
|
|
106
|
+
? member.roles.map((r) => typeof r === "string" ? r : r?.id ?? String(r))
|
|
107
|
+
: [];
|
|
108
|
+
const isOwner = ownerId === userId;
|
|
109
|
+
const isAdmin = !isOwner && roleIds.length > 0;
|
|
110
|
+
const normalized = normalizeQqGuildSenderForPermit({ roles: roleIds, isOwner, isAdmin });
|
|
111
|
+
const entry = {
|
|
112
|
+
at: now,
|
|
113
|
+
role: normalized.role,
|
|
114
|
+
permissions: normalized.permissions ?? [],
|
|
115
|
+
};
|
|
116
|
+
this.guildMemberCache.set(key, entry);
|
|
117
|
+
message.$sender.role = entry.role;
|
|
118
|
+
message.$sender.permissions = entry.permissions;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// 保守拒绝
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async handleQQMessage(msg) {
|
|
62
125
|
try {
|
|
63
126
|
const message = this.$formatMessage(msg);
|
|
127
|
+
if (msg.message_type === "guild" && msg.guild_id && message.$sender.id) {
|
|
128
|
+
await this.enrichGuildSender(message, String(msg.guild_id), message.$sender.id);
|
|
129
|
+
}
|
|
64
130
|
this.adapter.emit("message.receive", message);
|
|
65
131
|
this.pluginLogger.debug(`${this.$config.name} recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`);
|
|
66
132
|
}
|
|
@@ -94,7 +160,7 @@ export class QQBot extends Bot {
|
|
|
94
160
|
}
|
|
95
161
|
}
|
|
96
162
|
async $disconnect() {
|
|
97
|
-
//
|
|
163
|
+
// Endpoint 继承自 EventEmitter,清除 $connect() 注册的所有监听器
|
|
98
164
|
this.removeAllListeners();
|
|
99
165
|
await this.stop();
|
|
100
166
|
this.$connected = false;
|
|
@@ -160,15 +226,15 @@ export class QQBot extends Bot {
|
|
|
160
226
|
target_id = `direct:${msg.guild_id}`;
|
|
161
227
|
let content = msg.message;
|
|
162
228
|
if (msg.message_type === "group" && Array.isArray(content)) {
|
|
163
|
-
const
|
|
229
|
+
const endpointAtIds = [this.$platformUserId, this.$config.appid]
|
|
164
230
|
.filter((id) => Boolean(id))
|
|
165
231
|
.map(String);
|
|
166
|
-
content = normalizeGroupAtPrefix(content,
|
|
232
|
+
content = normalizeGroupAtPrefix(content, endpointAtIds, raw.__zhin_group_at === true);
|
|
167
233
|
}
|
|
168
234
|
const result = Message.from(msg, {
|
|
169
235
|
$id: msg.message_id?.toString(),
|
|
170
236
|
$adapter: "qq",
|
|
171
|
-
$
|
|
237
|
+
$endpoint: this.$config.name,
|
|
172
238
|
$sender: {
|
|
173
239
|
id: msg.sender.user_id?.toString(),
|
|
174
240
|
name: msg.sender.user_name?.toString(),
|
|
@@ -191,7 +257,7 @@ export class QQBot extends Bot {
|
|
|
191
257
|
return await this.adapter.sendMessage({
|
|
192
258
|
...result.$channel,
|
|
193
259
|
context: "qq",
|
|
194
|
-
|
|
260
|
+
endpoint: this.$config.name,
|
|
195
261
|
content,
|
|
196
262
|
});
|
|
197
263
|
},
|
|
@@ -206,23 +272,23 @@ export class QQBot extends Bot {
|
|
|
206
272
|
const id = options.id.replace("direct:", "");
|
|
207
273
|
const result = await this.sendDirectMessage(id, content);
|
|
208
274
|
this.pluginLogger.debug(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(content)}`);
|
|
209
|
-
return `direct-${options.id}:${result
|
|
275
|
+
return `direct-${options.id}:${resolveOutboundMessageId(result)}`;
|
|
210
276
|
}
|
|
211
277
|
else {
|
|
212
278
|
const result = await this.sendPrivateMessage(options.id, content);
|
|
213
279
|
this.pluginLogger.debug(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(content)}`);
|
|
214
|
-
return `private-${options.id}:${result
|
|
280
|
+
return `private-${options.id}:${resolveOutboundMessageId(result)}`;
|
|
215
281
|
}
|
|
216
282
|
}
|
|
217
283
|
case "group": {
|
|
218
284
|
const result = await this.sendGroupMessage(options.id, content);
|
|
219
285
|
this.pluginLogger.debug(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(content)}`);
|
|
220
|
-
return `group-${options.id}:${result
|
|
286
|
+
return `group-${options.id}:${resolveOutboundMessageId(result)}`;
|
|
221
287
|
}
|
|
222
288
|
case "channel": {
|
|
223
289
|
const result = await this.sendGuildMessage(options.id, content);
|
|
224
290
|
this.pluginLogger.debug(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(content)}`);
|
|
225
|
-
return `channel-${options.id}:${result
|
|
291
|
+
return `channel-${options.id}:${resolveOutboundMessageId(result)}`;
|
|
226
292
|
}
|
|
227
293
|
default:
|
|
228
294
|
throw new Error(`unsupported channel type ${options.type}`);
|
|
@@ -253,7 +319,7 @@ export class QQBot extends Bot {
|
|
|
253
319
|
return await this.guildService.getList();
|
|
254
320
|
}
|
|
255
321
|
catch (error) {
|
|
256
|
-
this.pluginLogger.error(`QQ
|
|
322
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取频道列表失败:`, error);
|
|
257
323
|
throw error;
|
|
258
324
|
}
|
|
259
325
|
}
|
|
@@ -266,7 +332,7 @@ export class QQBot extends Bot {
|
|
|
266
332
|
return await this.guildService.getInfo(guildId);
|
|
267
333
|
}
|
|
268
334
|
catch (error) {
|
|
269
|
-
this.pluginLogger.error(`QQ
|
|
335
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取频道详情失败:`, error);
|
|
270
336
|
throw error;
|
|
271
337
|
}
|
|
272
338
|
}
|
|
@@ -279,7 +345,7 @@ export class QQBot extends Bot {
|
|
|
279
345
|
return await this.channelService.getList(guildId);
|
|
280
346
|
}
|
|
281
347
|
catch (error) {
|
|
282
|
-
this.pluginLogger.error(`QQ
|
|
348
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取子频道列表失败:`, error);
|
|
283
349
|
throw error;
|
|
284
350
|
}
|
|
285
351
|
}
|
|
@@ -292,7 +358,7 @@ export class QQBot extends Bot {
|
|
|
292
358
|
return await this.channelService.getInfo(channelId);
|
|
293
359
|
}
|
|
294
360
|
catch (error) {
|
|
295
|
-
this.pluginLogger.error(`QQ
|
|
361
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取子频道详情失败:`, error);
|
|
296
362
|
throw error;
|
|
297
363
|
}
|
|
298
364
|
}
|
|
@@ -305,7 +371,7 @@ export class QQBot extends Bot {
|
|
|
305
371
|
return await this.memberService.getGuildMemberList(guildId);
|
|
306
372
|
}
|
|
307
373
|
catch (error) {
|
|
308
|
-
this.pluginLogger.error(`QQ
|
|
374
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取频道成员列表失败:`, error);
|
|
309
375
|
throw error;
|
|
310
376
|
}
|
|
311
377
|
}
|
|
@@ -319,7 +385,7 @@ export class QQBot extends Bot {
|
|
|
319
385
|
return await this.memberService.getGuildMemberInfo(guildId, userId);
|
|
320
386
|
}
|
|
321
387
|
catch (error) {
|
|
322
|
-
this.pluginLogger.error(`QQ
|
|
388
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取成员详情失败:`, error);
|
|
323
389
|
throw error;
|
|
324
390
|
}
|
|
325
391
|
}
|
|
@@ -333,11 +399,11 @@ export class QQBot extends Bot {
|
|
|
333
399
|
async removeGuildMember(guildId, userId, addBlacklist, deleteHistoryMsg) {
|
|
334
400
|
try {
|
|
335
401
|
await this.memberService.kickMember(guildId, userId, deleteHistoryMsg, addBlacklist);
|
|
336
|
-
this.pluginLogger.info(`QQ
|
|
402
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 踢出成员 ${userId}(频道 ${guildId})`);
|
|
337
403
|
return true;
|
|
338
404
|
}
|
|
339
405
|
catch (error) {
|
|
340
|
-
this.pluginLogger.error(`QQ
|
|
406
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 踢出成员失败:`, error);
|
|
341
407
|
throw error;
|
|
342
408
|
}
|
|
343
409
|
}
|
|
@@ -350,7 +416,7 @@ export class QQBot extends Bot {
|
|
|
350
416
|
return await this.guildService.getRoles(guildId);
|
|
351
417
|
}
|
|
352
418
|
catch (error) {
|
|
353
|
-
this.pluginLogger.error(`QQ
|
|
419
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取角色列表失败:`, error);
|
|
354
420
|
throw error;
|
|
355
421
|
}
|
|
356
422
|
}
|
|
@@ -364,11 +430,11 @@ export class QQBot extends Bot {
|
|
|
364
430
|
async createGuildRole(guildId, name, color, hoist) {
|
|
365
431
|
try {
|
|
366
432
|
const result = await this.guildService.createRole(guildId, { name, color: color || 0, hoist: hoist ?? 0 });
|
|
367
|
-
this.pluginLogger.info(`QQ
|
|
433
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 创建角色 "${name}"(频道 ${guildId})`);
|
|
368
434
|
return result;
|
|
369
435
|
}
|
|
370
436
|
catch (error) {
|
|
371
|
-
this.pluginLogger.error(`QQ
|
|
437
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 创建角色失败:`, error);
|
|
372
438
|
throw error;
|
|
373
439
|
}
|
|
374
440
|
}
|
|
@@ -382,11 +448,11 @@ export class QQBot extends Bot {
|
|
|
382
448
|
async addMemberRole(guildId, channelId, userId, roleId) {
|
|
383
449
|
try {
|
|
384
450
|
await this.memberService.addMemberRole(guildId, channelId, userId, roleId);
|
|
385
|
-
this.pluginLogger.info(`QQ
|
|
451
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 给成员 ${userId} 添加角色 ${roleId}(频道 ${guildId})`);
|
|
386
452
|
return true;
|
|
387
453
|
}
|
|
388
454
|
catch (error) {
|
|
389
|
-
this.pluginLogger.error(`QQ
|
|
455
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 添加角色失败:`, error);
|
|
390
456
|
throw error;
|
|
391
457
|
}
|
|
392
458
|
}
|
|
@@ -400,11 +466,11 @@ export class QQBot extends Bot {
|
|
|
400
466
|
async removeMemberRole(guildId, channelId, userId, roleId) {
|
|
401
467
|
try {
|
|
402
468
|
await this.memberService.removeMemberRole(guildId, channelId, userId, roleId);
|
|
403
|
-
this.pluginLogger.info(`QQ
|
|
469
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 移除成员 ${userId} 的角色 ${roleId}(频道 ${guildId})`);
|
|
404
470
|
return true;
|
|
405
471
|
}
|
|
406
472
|
catch (error) {
|
|
407
|
-
this.pluginLogger.error(`QQ
|
|
473
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 移除角色失败:`, error);
|
|
408
474
|
throw error;
|
|
409
475
|
}
|
|
410
476
|
}
|
|
@@ -418,16 +484,16 @@ export class QQBot extends Bot {
|
|
|
418
484
|
try {
|
|
419
485
|
if (muteSeconds > 0) {
|
|
420
486
|
await this.memberService.muteMembers(guildId, userIds, muteSeconds);
|
|
421
|
-
this.pluginLogger.info(`QQ
|
|
487
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 禁言成员 ${userIds.join(',')} ${muteSeconds}秒(频道 ${guildId})`);
|
|
422
488
|
}
|
|
423
489
|
else {
|
|
424
490
|
await this.memberService.unmuteMembers(guildId, userIds);
|
|
425
|
-
this.pluginLogger.info(`QQ
|
|
491
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 解除成员 ${userIds.join(',')} 禁言(频道 ${guildId})`);
|
|
426
492
|
}
|
|
427
493
|
return true;
|
|
428
494
|
}
|
|
429
495
|
catch (error) {
|
|
430
|
-
this.pluginLogger.error(`QQ
|
|
496
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 禁言操作失败:`, error);
|
|
431
497
|
throw error;
|
|
432
498
|
}
|
|
433
499
|
}
|
|
@@ -440,18 +506,18 @@ export class QQBot extends Bot {
|
|
|
440
506
|
try {
|
|
441
507
|
if (muteSeconds > 0) {
|
|
442
508
|
await this.guildService.mute(guildId, muteSeconds);
|
|
443
|
-
this.pluginLogger.info(`QQ
|
|
509
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 开启全员禁言(频道 ${guildId})`);
|
|
444
510
|
}
|
|
445
511
|
else {
|
|
446
512
|
await this.guildService.unmute(guildId);
|
|
447
|
-
this.pluginLogger.info(`QQ
|
|
513
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 关闭全员禁言(频道 ${guildId})`);
|
|
448
514
|
}
|
|
449
515
|
return true;
|
|
450
516
|
}
|
|
451
517
|
catch (error) {
|
|
452
|
-
this.pluginLogger.error(`QQ
|
|
518
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 全员禁言操作失败:`, error);
|
|
453
519
|
throw error;
|
|
454
520
|
}
|
|
455
521
|
}
|
|
456
522
|
}
|
|
457
|
-
//# sourceMappingURL=
|
|
523
|
+
//# sourceMappingURL=endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
package/lib/gateway-config.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Logger } from "@zhin.js/logger";
|
|
2
|
-
import type { Bot } from "qq-official-bot";
|
|
2
|
+
import type { Bot as QQOfficialBot } from "qq-official-bot";
|
|
3
3
|
import { ReceiverMode } from "qq-official-bot";
|
|
4
|
-
import type {
|
|
4
|
+
import type { QQEndpointConfig } from "./types.js";
|
|
5
5
|
/** qq-official-bot 默认 token 接口 */
|
|
6
6
|
export declare const DEFAULT_ACCESS_TOKEN_URL = "https://bots.qq.com/app/getAppAccessToken";
|
|
7
7
|
/** qq-official-bot 默认 gateway 路径(相对 API baseURL) */
|
|
@@ -10,5 +10,5 @@ export declare const DEFAULT_GATEWAY_URL = "/gateway/bot";
|
|
|
10
10
|
* 将自定义 gateway / token 地址注入 SDK Auth。
|
|
11
11
|
* SDK 仅在 websocket 模式自动读取配置;middleware / webhook 需在此补丁。
|
|
12
12
|
*/
|
|
13
|
-
export declare function applyCustomAuthEndpoints(
|
|
13
|
+
export declare function applyCustomAuthEndpoints(endpoint: QQOfficialBot, config: Pick<QQEndpointConfig<ReceiverMode>, "mode" | "accessTokenUrl" | "gatewayUrl">, logger: Logger): void;
|
|
14
14
|
//# sourceMappingURL=gateway-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-config.d.ts","sourceRoot":"","sources":["../src/gateway-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway-config.d.ts","sourceRoot":"","sources":["../src/gateway-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,kCAAkC;AAClC,eAAO,MAAM,wBAAwB,8CAA8C,CAAC;AACpF,oDAAoD;AACpD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAWlD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,YAAY,CAAC,EACtF,MAAM,EAAE,MAAM,GACb,IAAI,CAmBN"}
|
package/lib/gateway-config.js
CHANGED
|
@@ -8,12 +8,12 @@ export const DEFAULT_GATEWAY_URL = "/gateway/bot";
|
|
|
8
8
|
* 将自定义 gateway / token 地址注入 SDK Auth。
|
|
9
9
|
* SDK 仅在 websocket 模式自动读取配置;middleware / webhook 需在此补丁。
|
|
10
10
|
*/
|
|
11
|
-
export function applyCustomAuthEndpoints(
|
|
11
|
+
export function applyCustomAuthEndpoints(endpoint, config, logger) {
|
|
12
12
|
const { accessTokenUrl, gatewayUrl, mode } = config;
|
|
13
13
|
if (!accessTokenUrl && !gatewayUrl)
|
|
14
14
|
return;
|
|
15
15
|
if (mode !== ReceiverMode.WEBSOCKET) {
|
|
16
|
-
const session =
|
|
16
|
+
const session = endpoint.sessionManager;
|
|
17
17
|
if (accessTokenUrl)
|
|
18
18
|
session.authManager.config.accessTokenUrl = accessTokenUrl;
|
|
19
19
|
if (gatewayUrl)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-config.js","sourceRoot":"","sources":["../src/gateway-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,kCAAkC;AAClC,MAAM,CAAC,MAAM,wBAAwB,GAAG,2CAA2C,CAAC;AACpF,oDAAoD;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAWlD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,
|
|
1
|
+
{"version":3,"file":"gateway-config.js","sourceRoot":"","sources":["../src/gateway-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,kCAAkC;AAClC,MAAM,CAAC,MAAM,wBAAwB,GAAG,2CAA2C,CAAC;AACpF,oDAAoD;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAWlD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAuB,EACvB,MAAsF,EACtF,MAAc;IAEd,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACpD,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU;QAAE,OAAO;IAE3C,IAAI,IAAI,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAA+C,CAAC;QACzE,IAAI,cAAc;YAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QAC/E,IAAI,UAAU;YAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QACxB,EAAE,EAAE,YAAY;QAChB,IAAI;QACJ,cAAc,EAAE,cAAc,IAAI,wBAAwB;QAC1D,UAAU,EAAE,UAAU,IAAI,mBAAmB;QAC7C,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,SAAS;YACnC,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,wCAAwC;KAC7C,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -4,5 +4,5 @@ import type { MessageElement } from "zhin.js";
|
|
|
4
4
|
* - 去掉正文前的 at 段与内联 @,使命令/文本从首段开始匹配
|
|
5
5
|
* - 若曾 @ 机器人,在末尾追加规范 at 段,供 AI @ 触发器识别
|
|
6
6
|
*/
|
|
7
|
-
export declare function normalizeGroupAtPrefix(content: MessageElement[],
|
|
7
|
+
export declare function normalizeGroupAtPrefix(content: MessageElement[], endpointAtIds: string[], forceAt: boolean): MessageElement[];
|
|
8
8
|
//# sourceMappingURL=group-at-normalize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-at-normalize.d.ts","sourceRoot":"","sources":["../src/group-at-normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA2B9C;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,cAAc,EAAE,EACzB,
|
|
1
|
+
{"version":3,"file":"group-at-normalize.d.ts","sourceRoot":"","sources":["../src/group-at-normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA2B9C;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,EAAE,OAAO,GACf,cAAc,EAAE,CAyClB"}
|
|
@@ -5,17 +5,17 @@ function segmentAtId(seg) {
|
|
|
5
5
|
const raw = data?.user_id ?? data?.qq ?? data?.id;
|
|
6
6
|
return raw == null ? "" : String(raw);
|
|
7
7
|
}
|
|
8
|
-
function
|
|
9
|
-
for (const id of
|
|
8
|
+
function textMentionsEndpoint(text, endpointIds) {
|
|
9
|
+
for (const id of endpointIds) {
|
|
10
10
|
const re = new RegExp(`@${id.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`);
|
|
11
11
|
if (re.test(text))
|
|
12
12
|
return true;
|
|
13
13
|
}
|
|
14
14
|
return false;
|
|
15
15
|
}
|
|
16
|
-
function
|
|
16
|
+
function stripInlineAtEndpoint(text, endpointIds) {
|
|
17
17
|
let result = text;
|
|
18
|
-
for (const id of
|
|
18
|
+
for (const id of endpointIds) {
|
|
19
19
|
if (!id)
|
|
20
20
|
continue;
|
|
21
21
|
const re = new RegExp(`^@${id.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`);
|
|
@@ -28,8 +28,8 @@ function stripInlineAtBot(text, botIds) {
|
|
|
28
28
|
* - 去掉正文前的 at 段与内联 @,使命令/文本从首段开始匹配
|
|
29
29
|
* - 若曾 @ 机器人,在末尾追加规范 at 段,供 AI @ 触发器识别
|
|
30
30
|
*/
|
|
31
|
-
export function normalizeGroupAtPrefix(content,
|
|
32
|
-
const ids = [...new Set(
|
|
31
|
+
export function normalizeGroupAtPrefix(content, endpointAtIds, forceAt) {
|
|
32
|
+
const ids = [...new Set(endpointAtIds.map(String).filter(Boolean))];
|
|
33
33
|
if (!ids.length || !Array.isArray(content))
|
|
34
34
|
return content;
|
|
35
35
|
let mentioned = forceAt;
|
|
@@ -46,9 +46,9 @@ export function normalizeGroupAtPrefix(content, botAtIds, forceAt) {
|
|
|
46
46
|
}
|
|
47
47
|
if (seg.type === "text" && seg.data && typeof seg.data === "object") {
|
|
48
48
|
const raw = String(seg.data.text ?? "");
|
|
49
|
-
if (
|
|
49
|
+
if (textMentionsEndpoint(raw, ids))
|
|
50
50
|
mentioned = true;
|
|
51
|
-
const stripped =
|
|
51
|
+
const stripped = stripInlineAtEndpoint(raw, ids);
|
|
52
52
|
if (stripped) {
|
|
53
53
|
body.push({ ...seg, data: { ...seg.data, text: stripped } });
|
|
54
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-at-normalize.js","sourceRoot":"","sources":["../src/group-at-normalize.ts"],"names":[],"mappings":"AAEA,SAAS,WAAW,CAAC,GAAmB;IACtC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,IAA2C,CAAC;IAC7D,MAAM,GAAG,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;IAClD,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"group-at-normalize.js","sourceRoot":"","sources":["../src/group-at-normalize.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,MAAM,CAAC;QACf,UAAU,QAAQ;YAChB,GAAG,EAAE,WAAW,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB;KACF;CACF;AAED,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,QAAQ;QAChB,EAAE,EAAE,SAAS,CAAC;KACf;CACF;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|