@zhin.js/adapter-icqq 1.0.70 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/CHANGELOG.md +1134 -51
  2. package/README.md +116 -431
  3. package/adapters/icqq.js +31 -0
  4. package/adapters/icqq.ts +42 -0
  5. package/agent/PERMITS.md +24 -0
  6. package/agent/prompt-sections/platform.ts +17 -0
  7. package/commands/endpoint/add/[[id]].js +3 -0
  8. package/commands/endpoint/add/[[id]].ts +3 -0
  9. package/commands/endpoint/list.js +3 -0
  10. package/commands/endpoint/list.ts +3 -0
  11. package/commands/endpoint/remove/[id].js +3 -0
  12. package/commands/endpoint/remove/[id].ts +3 -0
  13. package/lib/client.d.ts +19 -0
  14. package/lib/client.js +3 -0
  15. package/lib/cq-message.d.ts +14 -0
  16. package/lib/cq-message.js +106 -0
  17. package/lib/endpoint.d.ts +31 -0
  18. package/lib/endpoint.js +1046 -0
  19. package/lib/forward-msg.d.ts +6 -0
  20. package/lib/forward-msg.js +107 -0
  21. package/lib/icqq-endpoint-commands.d.ts +1 -0
  22. package/lib/icqq-endpoint-commands.js +26 -0
  23. package/lib/icqq-guild.d.ts +57 -0
  24. package/lib/icqq-guild.js +109 -0
  25. package/lib/icqq-inbound.d.ts +165 -0
  26. package/lib/icqq-inbound.js +651 -0
  27. package/lib/icqq-inbox.d.ts +25 -0
  28. package/lib/icqq-inbox.js +129 -0
  29. package/lib/icqq-login-assist.d.ts +27 -0
  30. package/lib/icqq-login-assist.js +109 -0
  31. package/lib/icqq-runtime-state.d.ts +1 -0
  32. package/lib/icqq-runtime-state.js +6 -0
  33. package/lib/index.d.ts +5 -18
  34. package/lib/index.js +5 -124
  35. package/lib/outbound-media.d.ts +14 -0
  36. package/lib/outbound-media.js +76 -0
  37. package/lib/protocol.d.ts +276 -0
  38. package/lib/protocol.js +425 -0
  39. package/lib/types.d.ts +37 -11
  40. package/lib/types.js +0 -1
  41. package/package.json +80 -32
  42. package/plugin.js +19 -0
  43. package/schema.json +162 -0
  44. package/src/client.ts +29 -0
  45. package/src/cq-message.ts +113 -0
  46. package/src/endpoint.ts +1138 -0
  47. package/src/forward-msg.ts +112 -0
  48. package/src/icqq-endpoint-commands.ts +28 -0
  49. package/src/icqq-guild.ts +154 -0
  50. package/src/icqq-inbound.ts +814 -0
  51. package/src/icqq-inbox.ts +147 -0
  52. package/src/icqq-login-assist.ts +132 -0
  53. package/src/icqq-runtime-state.ts +7 -0
  54. package/src/index.ts +30 -149
  55. package/src/outbound-media.ts +103 -0
  56. package/src/protocol.ts +575 -0
  57. package/src/types.ts +40 -11
  58. package/tools/announce.js +16 -0
  59. package/tools/announce.ts +15 -0
  60. package/tools/essence.js +22 -0
  61. package/tools/essence.ts +20 -0
  62. package/tools/friend_list.js +18 -0
  63. package/tools/friend_list.ts +18 -0
  64. package/tools/group_files.js +22 -0
  65. package/tools/group_files.ts +20 -0
  66. package/tools/group_invite.js +23 -0
  67. package/tools/group_invite.ts +20 -0
  68. package/tools/group_kick.js +26 -0
  69. package/tools/group_kick.ts +22 -0
  70. package/tools/group_list.js +19 -0
  71. package/tools/group_list.ts +19 -0
  72. package/tools/group_member_info.js +24 -0
  73. package/tools/group_member_info.ts +26 -0
  74. package/tools/group_sign.js +19 -0
  75. package/tools/group_sign.ts +17 -0
  76. package/tools/list_muted.js +17 -0
  77. package/tools/list_muted.ts +16 -0
  78. package/tools/poke.js +16 -0
  79. package/tools/poke.ts +15 -0
  80. package/tools/send_user_like.js +25 -0
  81. package/tools/send_user_like.ts +22 -0
  82. package/tools/set_anonymous.js +21 -0
  83. package/tools/set_anonymous.ts +19 -0
  84. package/tools/set_mute.js +24 -0
  85. package/tools/set_mute.ts +21 -0
  86. package/tools/set_title.js +25 -0
  87. package/tools/set_title.ts +22 -0
  88. package/tools/user_info.js +14 -0
  89. package/tools/user_info.ts +13 -0
  90. package/LICENSE +0 -21
  91. package/client/ICQQManagement.tsx +0 -139
  92. package/client/LoginAssistPanel.tsx +0 -293
  93. package/client/index.tsx +0 -11
  94. package/client/tsconfig.json +0 -7
  95. package/client/utils/api.ts +0 -20
  96. package/dist/index.js +0 -1
  97. package/lib/adapter.d.ts +0 -34
  98. package/lib/adapter.d.ts.map +0 -1
  99. package/lib/adapter.js +0 -396
  100. package/lib/adapter.js.map +0 -1
  101. package/lib/bot.d.ts +0 -46
  102. package/lib/bot.d.ts.map +0 -1
  103. package/lib/bot.js +0 -457
  104. package/lib/bot.js.map +0 -1
  105. package/lib/index.d.ts.map +0 -1
  106. package/lib/index.js.map +0 -1
  107. package/lib/types.d.ts.map +0 -1
  108. package/lib/types.js.map +0 -1
  109. package/skills/icqq/SKILL.md +0 -22
  110. package/src/adapter.ts +0 -448
  111. package/src/bot.ts +0 -521
package/lib/adapter.js DELETED
@@ -1,396 +0,0 @@
1
- import { Adapter, createGroupManagementTools, } from "zhin.js";
2
- import { IcqqBot } from "./bot.js";
3
- export class IcqqAdapter extends Adapter {
4
- constructor(plugin) {
5
- super(plugin, "icqq", []);
6
- }
7
- createBot(config) {
8
- return new IcqqBot(this, config);
9
- }
10
- // ── IGroupManagement 标准群管方法 ──────────────────────────────────
11
- async kickMember(botId, sceneId, userId) {
12
- const bot = this.bots.get(botId);
13
- if (!bot)
14
- throw new Error(`Bot ${botId} 不存在`);
15
- return bot.kickMember(Number(sceneId), Number(userId), false);
16
- }
17
- async muteMember(botId, sceneId, userId, duration = 600) {
18
- const bot = this.bots.get(botId);
19
- if (!bot)
20
- throw new Error(`Bot ${botId} 不存在`);
21
- return bot.muteMember(Number(sceneId), Number(userId), duration);
22
- }
23
- async muteAll(botId, sceneId, enable = true) {
24
- const bot = this.bots.get(botId);
25
- if (!bot)
26
- throw new Error(`Bot ${botId} 不存在`);
27
- return bot.muteAll(Number(sceneId), enable);
28
- }
29
- async setAdmin(botId, sceneId, userId, enable = true) {
30
- const bot = this.bots.get(botId);
31
- if (!bot)
32
- throw new Error(`Bot ${botId} 不存在`);
33
- return bot.setAdmin(Number(sceneId), Number(userId), enable);
34
- }
35
- async setMemberNickname(botId, sceneId, userId, nickname) {
36
- const bot = this.bots.get(botId);
37
- if (!bot)
38
- throw new Error(`Bot ${botId} 不存在`);
39
- return bot.setCard(Number(sceneId), Number(userId), nickname);
40
- }
41
- async setGroupName(botId, sceneId, name) {
42
- const bot = this.bots.get(botId);
43
- if (!bot)
44
- throw new Error(`Bot ${botId} 不存在`);
45
- return bot.setGroupName(Number(sceneId), name);
46
- }
47
- async listMembers(botId, sceneId) {
48
- const bot = this.bots.get(botId);
49
- if (!bot)
50
- throw new Error(`Bot ${botId} 不存在`);
51
- const memberMap = await bot.getMemberList(Number(sceneId));
52
- const members = Array.from(memberMap.values()).map((m) => ({
53
- user_id: m.user_id,
54
- nickname: m.nickname,
55
- card: m.card,
56
- role: m.role,
57
- title: m.title,
58
- }));
59
- return { members, count: members.length };
60
- }
61
- // ── 生命周期 ───────────────────────────────────────────────────────
62
- async start() {
63
- this.registerIcqqPlatformTools();
64
- const groupTools = createGroupManagementTools(this, this.name);
65
- groupTools.forEach((t) => this.addTool(t));
66
- await super.start();
67
- }
68
- /**
69
- * 注册 ICQQ 平台特有工具(头衔、戳一戳、群公告等)
70
- */
71
- registerIcqqPlatformTools() {
72
- const CTX_BOT = {
73
- type: "string",
74
- description: "执行操作的 Bot QQ号",
75
- contextKey: "botId",
76
- };
77
- const CTX_GROUP = {
78
- type: "number",
79
- description: "目标群号",
80
- contextKey: "sceneId",
81
- };
82
- // 设置头衔工具
83
- this.addTool({
84
- name: "icqq_set_title",
85
- description: "设置 QQ 群成员的专属头衔(显示在群昵称旁边的标签)。只有群主才能操作。可设置持续时间或永久。如果只有昵称没有 QQ号,请先调用 list_members 查询。",
86
- tags: ["群管理", "成员管理", "头衔"],
87
- keywords: ["头衔", "专属头衔", "设置头衔", "给头衔", "加头衔", "称号"],
88
- parameters: {
89
- type: "object",
90
- properties: {
91
- bot: CTX_BOT,
92
- group_id: CTX_GROUP,
93
- user_id: {
94
- type: "number",
95
- description: "目标成员 QQ号",
96
- },
97
- title: {
98
- type: "string",
99
- description: "头衔文字内容",
100
- },
101
- duration: {
102
- type: "number",
103
- description: "持续时间(秒),-1 表示永久,默认永久",
104
- },
105
- },
106
- required: ["bot", "group_id", "user_id", "title"],
107
- },
108
- platforms: ["icqq"],
109
- scopes: ["group"],
110
- permissionLevel: "group_owner",
111
- execute: async (args, context) => {
112
- const { bot: botId, group_id, user_id, title, duration = -1 } = args;
113
- const bot = this.bots.get(botId);
114
- if (!bot)
115
- throw new Error(`Bot ${botId} 不存在`);
116
- this.checkPermission(context, "group_owner");
117
- const success = await bot.setTitle(group_id, user_id, title, duration);
118
- return {
119
- success,
120
- message: success
121
- ? `已将 ${user_id} 的头衔设为 "${title}"`
122
- : "设置失败",
123
- };
124
- },
125
- });
126
- // 发送群公告工具
127
- this.addTool({
128
- name: "icqq_announce",
129
- description: "发送 QQ 群公告(需要管理员权限)",
130
- parameters: {
131
- type: "object",
132
- properties: {
133
- bot: CTX_BOT,
134
- group_id: CTX_GROUP,
135
- content: {
136
- type: "string",
137
- description: "公告内容",
138
- },
139
- },
140
- required: ["bot", "group_id", "content"],
141
- },
142
- platforms: ["icqq"],
143
- scopes: ["group"],
144
- permissionLevel: "group_admin",
145
- execute: async (args, context) => {
146
- const { bot: botId, group_id, content } = args;
147
- const bot = this.bots.get(botId);
148
- if (!bot)
149
- throw new Error(`Bot ${botId} 不存在`);
150
- this.checkPermission(context, "group_admin");
151
- const success = await bot.sendAnnounce(group_id, content);
152
- return { success, message: success ? "群公告已发送" : "发送失败" };
153
- },
154
- });
155
- // 戳一戳工具
156
- this.addTool({
157
- name: "icqq_poke",
158
- description: '在 QQ 群中对某个成员执行"戳一戳"互动操作(类似拍一拍)。任何人都可以使用。注意:每次请求只戳一次,不要重复调用此工具。如果只有昵称没有 QQ号,请先调用 list_members 查询。',
159
- tags: ["互动", "趣味", "戳一戳"],
160
- keywords: ["戳", "戳一戳", "拍一拍", "拍", "碰一碰", "poke"],
161
- parameters: {
162
- type: "object",
163
- properties: {
164
- bot: CTX_BOT,
165
- group_id: CTX_GROUP,
166
- user_id: {
167
- type: "number",
168
- description: "要戳的目标成员 QQ号",
169
- },
170
- },
171
- required: ["bot", "group_id", "user_id"],
172
- },
173
- platforms: ["icqq"],
174
- scopes: ["group"],
175
- permissionLevel: "user",
176
- execute: async (args) => {
177
- const { bot: botId, group_id, user_id } = args;
178
- const bot = this.bots.get(botId);
179
- if (!bot)
180
- throw new Error(`Bot ${botId} 不存在`);
181
- const success = await bot.pokeMember(group_id, user_id);
182
- return {
183
- success,
184
- message: success ? `已戳了戳 ${user_id}` : "戳一戳失败",
185
- };
186
- },
187
- });
188
- // 获取被禁言列表工具
189
- this.addTool({
190
- name: "icqq_list_muted",
191
- description: "查询 QQ 群中当前被禁言的成员列表,返回被禁言成员的 QQ号和剩余禁言时间。此工具仅用于查询,不会执行禁言操作。如需禁言或解除禁言,请使用 icqq_mute_member 工具。",
192
- tags: ["群查询", "禁言查询", "列表"],
193
- keywords: ["禁言列表", "被禁言", "谁被禁言", "查看禁言", "禁言名单"],
194
- parameters: {
195
- type: "object",
196
- properties: {
197
- bot: CTX_BOT,
198
- group_id: CTX_GROUP,
199
- },
200
- required: ["bot", "group_id"],
201
- },
202
- platforms: ["icqq"],
203
- scopes: ["group"],
204
- permissionLevel: "user",
205
- execute: async (args) => {
206
- const { bot: botId, group_id } = args;
207
- const bot = this.bots.get(botId);
208
- if (!bot)
209
- throw new Error(`Bot ${botId} 不存在`);
210
- const mutedList = await bot.getMutedMembers(group_id);
211
- return {
212
- muted_members: mutedList.filter((m) => m !== null),
213
- count: mutedList.filter((m) => m !== null).length,
214
- };
215
- },
216
- });
217
- this.addTool({
218
- name: "icqq_send_user_like",
219
- description: "给用户点赞(竖大拇指)。每人每天最多点赞 20 次,超出无效。如果只有昵称没有 QQ号,请先调用 list_members 查询。",
220
- tags: ["互动", "趣味", "点赞"],
221
- keywords: ["点赞", "赞我", "赞一下", "大拇指"],
222
- parameters: {
223
- type: "object",
224
- properties: {
225
- bot: CTX_BOT,
226
- user_id: {
227
- type: "number",
228
- description: "要点赞的目标用户 QQ号(如果只有昵称,先用 list_members 查询获取)",
229
- },
230
- times: {
231
- type: "number",
232
- description: "点赞次数(1-20),默认 1 次,每人每天上限 20 次",
233
- default: 1,
234
- },
235
- },
236
- required: ["bot", "user_id"],
237
- },
238
- platforms: ["icqq"],
239
- scopes: ["group", "private"],
240
- permissionLevel: "user",
241
- execute: async (args) => {
242
- const { bot: botId, user_id, times = 1 } = args;
243
- const bot = this.bots.get(botId);
244
- if (!bot)
245
- throw new Error(`Bot ${botId} 不存在`);
246
- const success = await bot.sendLike(user_id, Math.min(times, 20));
247
- return {
248
- success,
249
- message: success ? `已发送用户点赞消息给 ${user_id}` : "发送失败",
250
- };
251
- },
252
- });
253
- // 设置匿名状态工具
254
- this.addTool({
255
- name: "icqq_set_anonymous",
256
- description: "开启或关闭 QQ 群的匿名聊天功能。开启后群成员可以匿名发言。需要 Bot 拥有管理员权限。",
257
- tags: ["群管理", "群设置", "匿名"],
258
- keywords: ["匿名", "匿名聊天", "开启匿名", "关闭匿名", "允许匿名"],
259
- parameters: {
260
- type: "object",
261
- properties: {
262
- bot: CTX_BOT,
263
- group_id: CTX_GROUP,
264
- enable: {
265
- type: "boolean",
266
- description: "true=开启匿名聊天,false=关闭匿名聊天,默认 true",
267
- },
268
- },
269
- required: ["bot", "group_id"],
270
- },
271
- platforms: ["icqq"],
272
- scopes: ["group"],
273
- permissionLevel: "group_admin",
274
- execute: async (args, context) => {
275
- const { bot: botId, group_id, enable = true } = args;
276
- const bot = this.bots.get(botId);
277
- if (!bot)
278
- throw new Error(`Bot ${botId} 不存在`);
279
- this.checkPermission(context, "group_admin");
280
- const success = await bot.setAnonymous(group_id, enable);
281
- return {
282
- success,
283
- message: success
284
- ? enable
285
- ? "已开启匿名聊天"
286
- : "已关闭匿名聊天"
287
- : "操作失败",
288
- };
289
- },
290
- });
291
- // 群文件列表
292
- this.addTool({
293
- name: "icqq_group_files",
294
- description: "获取 QQ 群的群文件列表",
295
- parameters: {
296
- type: "object",
297
- properties: {
298
- bot: { type: "string", description: "Bot 名称" },
299
- group_id: { type: "number", description: "群号" },
300
- },
301
- required: ["bot", "group_id"],
302
- },
303
- platforms: ["icqq"],
304
- scopes: ["group"],
305
- permissionLevel: "user",
306
- execute: async (args) => {
307
- const { bot: botId, group_id } = args;
308
- const bot = this.bots.get(botId);
309
- if (!bot)
310
- throw new Error(`Bot ${botId} 不存在`);
311
- const files = await bot.getGroupFiles(group_id);
312
- if (!files?.length)
313
- return { files: [], message: "群文件为空" };
314
- return {
315
- files: files.slice(0, 30).map((f) => ({
316
- name: f.name,
317
- size: f.size,
318
- uploader: f.uploader_uin,
319
- upload_time: f.upload_time,
320
- })),
321
- count: files.length,
322
- };
323
- },
324
- });
325
- // 好友列表
326
- this.addTool({
327
- name: "icqq_friend_list",
328
- description: "获取 QQ 好友列表",
329
- parameters: {
330
- type: "object",
331
- properties: {
332
- bot: { type: "string", description: "Bot 名称" },
333
- },
334
- required: ["bot"],
335
- },
336
- platforms: ["icqq"],
337
- scopes: ["group", "private"],
338
- permissionLevel: "user",
339
- execute: async (args) => {
340
- const { bot: botId } = args;
341
- const bot = this.bots.get(botId);
342
- if (!bot)
343
- throw new Error(`Bot ${botId} 不存在`);
344
- const fl = bot.fl;
345
- const friends = Array.from(fl.values()).map((f) => ({
346
- user_id: f.user_id,
347
- nickname: f.nickname,
348
- remark: f.remark,
349
- }));
350
- return { friends: friends.slice(0, 50), count: fl.size };
351
- },
352
- });
353
- this.plugin.logger.debug("已注册 ICQQ 平台群管理工具");
354
- }
355
- /**
356
- * 检查执行上下文中的权限
357
- * 双重验证:优先从 ToolContext 获取权限级别,其次从消息发送者信息获取
358
- */
359
- checkPermission(context, required) {
360
- const permissionLevels = {
361
- user: 0,
362
- group_admin: 1,
363
- group_owner: 2,
364
- bot_admin: 3,
365
- owner: 4,
366
- };
367
- const requiredLevel = permissionLevels[required] ?? 0;
368
- if (requiredLevel === 0)
369
- return; // user 级别无需检查
370
- // 1. 优先从 ToolContext.senderPermissionLevel 获取(AI Agent 路径注入)
371
- if (context?.senderPermissionLevel) {
372
- const ctxLevel = permissionLevels[context.senderPermissionLevel] ?? 0;
373
- if (ctxLevel < requiredLevel) {
374
- throw new Error(`权限不足:需要 ${required} 权限,当前为 ${context.senderPermissionLevel}`);
375
- }
376
- return; // 检查通过
377
- }
378
- // 2. 从消息的 $sender 获取权限(命令行/中间件路径)
379
- const sender = context?.message?.$sender;
380
- if (!sender) {
381
- // 无上下文且无发送者信息 → 拒绝高权限操作
382
- throw new Error(`权限不足:无法验证身份,拒绝执行需要 ${required} 权限的操作`);
383
- }
384
- let senderLevel = "user";
385
- if (sender.isOwner || sender.role === "owner") {
386
- senderLevel = "group_owner";
387
- }
388
- else if (sender.isAdmin || sender.role === "admin") {
389
- senderLevel = "group_admin";
390
- }
391
- if (permissionLevels[senderLevel] < requiredLevel) {
392
- throw new Error(`权限不足:需要 ${required} 权限,当前为 ${senderLevel}`);
393
- }
394
- }
395
- }
396
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/lib/bot.d.ts DELETED
@@ -1,46 +0,0 @@
1
- /**
2
- * ICQQ Bot:继承 icqq Client,实现 zhin Bot 接口
3
- */
4
- import { Client, PrivateMessageEvent, GroupMessageEvent, Sendable, MemberInfo } from "@icqqjs/icqq";
5
- import { Bot, Message, SendOptions, MessageSegment, SendContent } from "zhin.js";
6
- import type { IcqqBotConfig } from "./types.js";
7
- import type { IcqqAdapter } from "./adapter.js";
8
- export declare class IcqqBot extends Client implements Bot<IcqqBotConfig, PrivateMessageEvent | GroupMessageEvent> {
9
- adapter: IcqqAdapter;
10
- $connected: boolean;
11
- $config: IcqqBotConfig;
12
- get pluginLogger(): import("zhin.js").Logger;
13
- get $id(): `${number}`;
14
- constructor(adapter: IcqqAdapter, config: IcqqBotConfig);
15
- private handleIcqqMessage;
16
- $connect(): Promise<void>;
17
- $disconnect(): Promise<void>;
18
- $formatMessage(msg: PrivateMessageEvent | GroupMessageEvent): Message<PrivateMessageEvent | GroupMessageEvent>;
19
- private getSenderInfo;
20
- private handleGroupNotice;
21
- private handleFriendNotice;
22
- private handleFriendRequest;
23
- private handleGroupRequest;
24
- kickMember(groupId: number, userId: number, block?: boolean): Promise<boolean>;
25
- muteMember(groupId: number, userId: number, duration?: number): Promise<boolean>;
26
- muteAll(groupId: number, enable?: boolean): Promise<boolean>;
27
- setAdmin(groupId: number, userId: number, enable?: boolean): Promise<boolean>;
28
- setCard(groupId: number, userId: number, card: string): Promise<boolean>;
29
- setTitle(groupId: number, userId: number, title: string, duration?: number): Promise<boolean>;
30
- setGroupName(groupId: number, name: string): Promise<boolean>;
31
- sendAnnounce(groupId: number, content: string): Promise<boolean>;
32
- pokeMember(groupId: number, userId: number): Promise<boolean>;
33
- getMemberList(groupId: number): Promise<Map<number, MemberInfo>>;
34
- getMutedMembers(groupId: number): Promise<any[]>;
35
- setAnonymous(groupId: number, enable?: boolean): Promise<boolean>;
36
- getGroupFiles(groupId: number): Promise<any>;
37
- $recallMessage(id: string): Promise<void>;
38
- $sendMessage(options: SendOptions): Promise<string>;
39
- }
40
- export declare namespace IcqqBot {
41
- function toSegments(message: Sendable): MessageSegment[];
42
- }
43
- export declare namespace IcqqBot {
44
- function toSendable(content: SendContent): Sendable;
45
- }
46
- //# sourceMappingURL=bot.d.ts.map
package/lib/bot.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}