@zhin.js/adapter-icqq 6.0.1 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +1 -1
- package/agent/tools/announce.ts +21 -0
- package/agent/tools/essence.ts +22 -0
- package/agent/tools/friend_list.ts +19 -0
- package/agent/tools/group_files.ts +27 -0
- package/agent/tools/group_invite.ts +20 -0
- package/agent/tools/group_list.ts +20 -0
- package/agent/tools/group_sign.ts +19 -0
- package/agent/tools/list_muted.ts +22 -0
- package/agent/tools/poke.ts +20 -0
- package/agent/tools/send_user_like.ts +22 -0
- package/agent/tools/set_anonymous.ts +22 -0
- package/agent/tools/set_title.ts +25 -0
- package/lib/agent/tools/announce.js +21 -0
- package/lib/agent/tools/announce.js.map +1 -0
- package/lib/agent/tools/essence.js +22 -0
- package/lib/agent/tools/essence.js.map +1 -0
- package/lib/agent/tools/friend_list.js +19 -0
- package/lib/agent/tools/friend_list.js.map +1 -0
- package/lib/agent/tools/group_files.js +29 -0
- package/lib/agent/tools/group_files.js.map +1 -0
- package/lib/agent/tools/group_invite.js +20 -0
- package/lib/agent/tools/group_invite.js.map +1 -0
- package/lib/agent/tools/group_list.js +20 -0
- package/lib/agent/tools/group_list.js.map +1 -0
- package/lib/agent/tools/group_sign.js +19 -0
- package/lib/agent/tools/group_sign.js.map +1 -0
- package/lib/agent/tools/list_muted.js +23 -0
- package/lib/agent/tools/list_muted.js.map +1 -0
- package/lib/agent/tools/poke.js +20 -0
- package/lib/agent/tools/poke.js.map +1 -0
- package/lib/agent/tools/send_user_like.js +22 -0
- package/lib/agent/tools/send_user_like.js.map +1 -0
- package/lib/agent/tools/set_anonymous.js +22 -0
- package/lib/agent/tools/set_anonymous.js.map +1 -0
- package/lib/agent/tools/set_title.js +25 -0
- package/lib/agent/tools/set_title.js.map +1 -0
- package/lib/src/adapter.js.map +1 -0
- package/lib/src/agent-prompt.js.map +1 -0
- package/lib/src/cq-message.js.map +1 -0
- package/lib/{endpoint.js → src/endpoint.js} +21 -20
- package/lib/src/endpoint.js.map +1 -0
- package/lib/{forward-msg.js → src/forward-msg.js} +4 -1
- package/lib/src/forward-msg.js.map +1 -0
- package/lib/src/get-msg.js.map +1 -0
- package/lib/src/icqq-agent-deps.js +10 -0
- package/lib/src/icqq-agent-deps.js.map +1 -0
- package/lib/src/icqq-guild.js.map +1 -0
- package/lib/src/icqq-inbound.js.map +1 -0
- package/lib/src/icqq-login-assist-bridge.js.map +1 -0
- package/lib/{icqq-side-events.js → src/icqq-side-events.js} +28 -92
- package/lib/src/icqq-side-events.js.map +1 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/ipc-client.js.map +1 -0
- package/lib/src/login-assist-routes.js.map +1 -0
- package/lib/src/login-ipc-contract.js.map +1 -0
- package/lib/src/outbound-media.js.map +1 -0
- package/lib/src/protocol.js.map +1 -0
- package/lib/src/routes.js.map +1 -0
- package/lib/src/segment-mapper.js.map +1 -0
- package/lib/src/tools/index.js +23 -0
- package/lib/src/tools/index.js.map +1 -0
- package/lib/src/types.js.map +1 -0
- package/package.json +23 -19
- package/src/agent-prompt.ts +1 -2
- package/src/endpoint.ts +21 -33
- package/src/forward-msg.ts +2 -2
- package/src/icqq-agent-deps.ts +18 -0
- package/src/icqq-side-events.ts +33 -118
- package/src/tools/index.ts +14 -395
- package/lib/adapter.d.ts +0 -46
- package/lib/adapter.d.ts.map +0 -1
- package/lib/adapter.js.map +0 -1
- package/lib/agent-prompt.d.ts +0 -3
- package/lib/agent-prompt.d.ts.map +0 -1
- package/lib/agent-prompt.js.map +0 -1
- package/lib/cq-message.d.ts +0 -10
- package/lib/cq-message.d.ts.map +0 -1
- package/lib/cq-message.js.map +0 -1
- package/lib/endpoint.d.ts +0 -103
- package/lib/endpoint.d.ts.map +0 -1
- package/lib/endpoint.js.map +0 -1
- package/lib/forward-msg.d.ts +0 -27
- package/lib/forward-msg.d.ts.map +0 -1
- package/lib/forward-msg.js.map +0 -1
- package/lib/get-msg.d.ts +0 -3
- package/lib/get-msg.d.ts.map +0 -1
- package/lib/get-msg.js.map +0 -1
- package/lib/icqq-guild.d.ts +0 -48
- package/lib/icqq-guild.d.ts.map +0 -1
- package/lib/icqq-guild.js.map +0 -1
- package/lib/icqq-inbound.d.ts +0 -130
- package/lib/icqq-inbound.d.ts.map +0 -1
- package/lib/icqq-inbound.js.map +0 -1
- package/lib/icqq-login-assist-bridge.d.ts +0 -5
- package/lib/icqq-login-assist-bridge.d.ts.map +0 -1
- package/lib/icqq-login-assist-bridge.js.map +0 -1
- package/lib/icqq-side-events.d.ts +0 -34
- package/lib/icqq-side-events.d.ts.map +0 -1
- package/lib/icqq-side-events.js.map +0 -1
- package/lib/index.d.ts +0 -18
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/ipc-client.d.ts +0 -74
- package/lib/ipc-client.d.ts.map +0 -1
- package/lib/ipc-client.js.map +0 -1
- package/lib/login-assist-routes.d.ts +0 -7
- package/lib/login-assist-routes.d.ts.map +0 -1
- package/lib/login-assist-routes.js.map +0 -1
- package/lib/login-ipc-contract.d.ts +0 -44
- package/lib/login-ipc-contract.d.ts.map +0 -1
- package/lib/login-ipc-contract.js.map +0 -1
- package/lib/outbound-media.d.ts +0 -14
- package/lib/outbound-media.d.ts.map +0 -1
- package/lib/outbound-media.js.map +0 -1
- package/lib/protocol.d.ts +0 -198
- package/lib/protocol.d.ts.map +0 -1
- package/lib/protocol.js.map +0 -1
- package/lib/routes.d.ts +0 -8
- package/lib/routes.d.ts.map +0 -1
- package/lib/routes.js.map +0 -1
- package/lib/segment-mapper.d.ts +0 -2
- package/lib/segment-mapper.d.ts.map +0 -1
- package/lib/segment-mapper.js.map +0 -1
- package/lib/tools/index.d.ts +0 -10
- package/lib/tools/index.d.ts.map +0 -1
- package/lib/tools/index.js +0 -341
- package/lib/tools/index.js.map +0 -1
- package/lib/types.d.ts +0 -73
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js.map +0 -1
- /package/{skills/icqq → agent}/PERMITS.md +0 -0
- /package/lib/{adapter.js → src/adapter.js} +0 -0
- /package/lib/{agent-prompt.js → src/agent-prompt.js} +0 -0
- /package/lib/{cq-message.js → src/cq-message.js} +0 -0
- /package/lib/{get-msg.js → src/get-msg.js} +0 -0
- /package/lib/{icqq-guild.js → src/icqq-guild.js} +0 -0
- /package/lib/{icqq-inbound.js → src/icqq-inbound.js} +0 -0
- /package/lib/{icqq-login-assist-bridge.js → src/icqq-login-assist-bridge.js} +0 -0
- /package/lib/{index.js → src/index.js} +0 -0
- /package/lib/{ipc-client.js → src/ipc-client.js} +0 -0
- /package/lib/{login-assist-routes.js → src/login-assist-routes.js} +0 -0
- /package/lib/{login-ipc-contract.js → src/login-ipc-contract.js} +0 -0
- /package/lib/{outbound-media.js → src/outbound-media.js} +0 -0
- /package/lib/{protocol.js → src/protocol.js} +0 -0
- /package/lib/{routes.js → src/routes.js} +0 -0
- /package/lib/{segment-mapper.js → src/segment-mapper.js} +0 -0
- /package/lib/{types.js → src/types.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @zhin.js/adapter-icqq
|
|
2
2
|
|
|
3
|
+
## 6.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 872c583: Slack 适配器 Phase 1/2:mrkdwn 出站、长消息切分、斜杠/按钮 ephemeral 反馈、入站 mrkdwn→Markdown、editMessage 对齐 core。
|
|
8
|
+
|
|
9
|
+
Logger 表格日志与 string-width 列宽;Agent AI Handler 框线表格与 introspection/MCP 导出;Core side-event 归一化;Schedule 时区规划;多适配器 side-event 与 API surface 更新。
|
|
10
|
+
|
|
11
|
+
- 872c583: fix: 代码格式优化
|
|
12
|
+
- Updated dependencies [872c583]
|
|
13
|
+
- Updated dependencies [872c583]
|
|
14
|
+
- @zhin.js/agent@1.0.3
|
|
15
|
+
- @zhin.js/client@2.0.5
|
|
16
|
+
- @zhin.js/contract@1.0.3
|
|
17
|
+
- @zhin.js/core@1.3.4
|
|
18
|
+
- @zhin.js/host-api@2.0.5
|
|
19
|
+
- @zhin.js/host-router@2.0.3
|
|
20
|
+
- zhin.js@4.1.2
|
|
21
|
+
|
|
3
22
|
## 6.0.1
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -261,6 +261,7 @@ const memberInfo = endpoint.getGroupMemberInfo(groupId, userId)
|
|
|
261
261
|
|
|
262
262
|
## 🔧 群管理工具(AI 可调用)
|
|
263
263
|
|
|
264
|
+
|
|
264
265
|
适配器通过覆写 `ISceneManagement` 标准方法自动注册群管理工具,同时保留平台特有工具,这些工具可以被 AI 调用,实现智能化的群管理。
|
|
265
266
|
|
|
266
267
|
### 标准群管工具(自动生成)
|
|
@@ -393,7 +394,6 @@ onGroupMessage(async (message) => {
|
|
|
393
394
|
|
|
394
395
|
## icqq CLI 与 AI bash 安全
|
|
395
396
|
|
|
396
|
-
启用 **icqq 技能**(`skills/icqq`)时,模型通常会通过 **`bash`** 调用 `icqq …` 命令行。此时由框架 **`execSecurity` / `execApprovalMode`** 与 **Owner 私聊指令**(`approve always bash`、`approve rule <正则>` 等)共同约束:在 `allowlist` 下,**非敏感**子命令多数可直接执行;**敏感**子命令(踢人、禁言、解散、支付等)在 `execApprovalMode: ask` 时需 Owner 确认,并可用 **正则匹配整条子命令** 做持久化放行(不必把 QQ 号写进配置)。持久化文件为数据目录下的 `owner-approve-always.json`。
|
|
397
397
|
|
|
398
398
|
完整说明与指令表见仓库文档:[docs/advanced/ai.md](../../../docs/advanced/ai.md)(锚点:`#icqq-bash-exec`、`#owner-approve-commands`)。
|
|
399
399
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; group_id: number; content: string }>({
|
|
5
|
+
description: '发送 QQ 群公告(需要管理员权限)',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
content: z.string().describe('公告内容'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
permissions: ['platform(icqq,scene_admin)'],
|
|
14
|
+
async execute({ endpoint_id, group_id, content }: { endpoint_id: string; group_id: number; content: string }) {
|
|
15
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
16
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_ANNOUNCE, { group_id, content });
|
|
18
|
+
return { success: resp.ok, message: resp.ok ? '群公告已发送' : (resp.error ?? '发送失败') };
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; message_id: string; action: 'add' | 'remove' }>({
|
|
5
|
+
description: '设置或移除 QQ 群精华消息',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
message_id: z.string().describe('消息 ID'),
|
|
9
|
+
action: z.enum(['add', 'remove']).describe('add=设为精华, remove=移除精华'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
permissions: ['platform(icqq,scene_admin)'],
|
|
14
|
+
async execute({ endpoint_id, message_id, action }: { endpoint_id: string; message_id: string; action: 'add' | 'remove' }) {
|
|
15
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
16
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const act = action === 'add' ? Actions.GROUP_ESSENCE_ADD : Actions.GROUP_ESSENCE_REMOVE;
|
|
18
|
+
const resp = await endpoint.ipc.request(act, { message_id });
|
|
19
|
+
return { success: resp.ok, message: resp.ok ? (action === 'add' ? '已设为精华' : '已移除精华') : (resp.error ?? '操作失败') };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string }>({
|
|
5
|
+
description: '获取 QQ 好友列表',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
}),
|
|
9
|
+
platforms: ['icqq'],
|
|
10
|
+
tags: ['icqq'],
|
|
11
|
+
async execute({ endpoint_id }: { endpoint_id: string }) {
|
|
12
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
13
|
+
const friends = Array.from(endpoint.friends.values()).map((f) => ({
|
|
14
|
+
user_id: f.user_id, nickname: f.nickname, remark: f.remark,
|
|
15
|
+
}));
|
|
16
|
+
return { friends: friends.slice(0, 50), count: endpoint.friends.size };
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; group_id: number }>({
|
|
5
|
+
description: '获取 QQ 群的群文件列表',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
group_id: z.number().describe('群号'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['icqq'],
|
|
11
|
+
tags: ['icqq'],
|
|
12
|
+
async execute({ endpoint_id, group_id }: { endpoint_id: string; group_id: number }) {
|
|
13
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
14
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
15
|
+
const resp = await endpoint.ipc.request(Actions.GFS_LIST, { group_id });
|
|
16
|
+
if (!resp.ok) throw new Error(resp.error ?? '获取群文件失败');
|
|
17
|
+
const files = Array.isArray(resp.data) ? resp.data : [];
|
|
18
|
+
if (!files.length) return { files: [], message: '群文件为空' };
|
|
19
|
+
return {
|
|
20
|
+
files: files.slice(0, 30).map((f: { name: string; size: number; uploader_uin: string; upload_time: number }) => ({
|
|
21
|
+
name: f.name, size: f.size, uploader: f.uploader_uin, upload_time: f.upload_time,
|
|
22
|
+
})),
|
|
23
|
+
count: files.length,
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; group_id: number; user_id: number }>({
|
|
5
|
+
description: '邀请好友加入 QQ 群',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
user_id: z.number().describe('要邀请的 QQ号'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
async execute({ endpoint_id, group_id, user_id }: { endpoint_id: string; group_id: number; user_id: number }) {
|
|
14
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
15
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_INVITE, { group_id, user_id });
|
|
17
|
+
return { success: resp.ok, message: resp.ok ? `已邀请 ${user_id} 加入群` : (resp.error ?? '邀请失败') };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string }>({
|
|
5
|
+
description: '获取 Endpoint 的 QQ 群列表',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
}),
|
|
9
|
+
platforms: ['icqq'],
|
|
10
|
+
tags: ['icqq'],
|
|
11
|
+
async execute({ endpoint_id }: { endpoint_id: string }) {
|
|
12
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
13
|
+
const groups = Array.from(endpoint.groups.values()).map((g) => ({
|
|
14
|
+
group_id: g.group_id, group_name: g.group_name,
|
|
15
|
+
member_count: g.member_count, max_member_count: g.max_member_count,
|
|
16
|
+
}));
|
|
17
|
+
return { groups: groups.slice(0, 50), count: endpoint.groups.size };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; group_id: number }>({
|
|
5
|
+
description: 'QQ 群签到打卡',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['icqq'],
|
|
11
|
+
tags: ['icqq'],
|
|
12
|
+
async execute({ endpoint_id, group_id }: { endpoint_id: string; group_id: number }) {
|
|
13
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
14
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
15
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_SIGN, { group_id });
|
|
16
|
+
return { success: resp.ok, message: resp.ok ? '群签到成功' : (resp.error ?? '签到失败') };
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; group_id: number }>({
|
|
5
|
+
description: '查询 QQ 群中当前被禁言的成员列表',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['icqq'],
|
|
11
|
+
tags: ['icqq'],
|
|
12
|
+
permissions: ['platform(icqq,scene_admin)'],
|
|
13
|
+
async execute({ endpoint_id, group_id }: { endpoint_id: string; group_id: number }) {
|
|
14
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
15
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_MUTED_LIST, { group_id });
|
|
17
|
+
if (!resp.ok) throw new Error(resp.error ?? '获取禁言列表失败');
|
|
18
|
+
const list = Array.isArray(resp.data) ? resp.data : [];
|
|
19
|
+
return { muted_members: list, count: list.length };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; group_id: number; user_id: number }>({
|
|
5
|
+
description: '在 QQ 群中对某个成员执行戳一戳互动操作',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
user_id: z.number().describe('要戳的目标成员 QQ号'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
async execute({ endpoint_id, group_id, user_id }: { endpoint_id: string; group_id: number; user_id: number }) {
|
|
14
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
15
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_POKE, { group_id, user_id });
|
|
17
|
+
return { success: resp.ok, message: resp.ok ? `已戳了戳 ${user_id}` : (resp.error ?? '戳一戳失败') };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; user_id: number; times?: number }>({
|
|
5
|
+
description: '给用户点赞(竖大拇指),每人每天最多 20 次',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
user_id: z.number().describe('要点赞的目标用户 QQ号'),
|
|
9
|
+
times: z.number().optional().describe('点赞次数(1-20),默认 1'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
async execute({ endpoint_id, user_id, times }: { endpoint_id: string; user_id: number; times?: number }) {
|
|
14
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
15
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const resp = await endpoint.ipc.request(Actions.FRIEND_LIKE, {
|
|
17
|
+
user_id, times: Math.min(times ?? 1, 20),
|
|
18
|
+
});
|
|
19
|
+
return { success: resp.ok, message: resp.ok ? `已给 ${user_id} 点赞` : (resp.error ?? '点赞失败') };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; group_id: number; enable?: boolean }>({
|
|
5
|
+
description: '开启或关闭 QQ 群的匿名聊天功能',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
enable: z.boolean().optional().describe('true=开启,false=关闭,默认 true'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
permissions: ['platform(icqq,scene_owner)'],
|
|
14
|
+
async execute({ endpoint_id, group_id, enable }: { endpoint_id: string; group_id: number; enable?: boolean }) {
|
|
15
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
16
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const on = enable ?? true;
|
|
18
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_ALLOW_ANONY, { group_id, enable: on });
|
|
19
|
+
return { success: resp.ok, message: resp.ok ? (on ? '已开启匿名聊天' : '已关闭匿名聊天') : (resp.error ?? '操作失败') };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; group_id: number; user_id: number; title: string; duration?: number }>({
|
|
5
|
+
description: '设置 QQ 群成员的专属头衔',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
user_id: z.number().describe('目标成员 QQ号'),
|
|
10
|
+
title: z.string().describe('头衔文字'),
|
|
11
|
+
duration: z.number().optional().describe('持续时间(秒),-1永久'),
|
|
12
|
+
}),
|
|
13
|
+
platforms: ['icqq'],
|
|
14
|
+
tags: ['icqq'],
|
|
15
|
+
permissions: ['platform(icqq,scene_owner)'],
|
|
16
|
+
async execute({ endpoint_id, group_id, user_id, title, duration }: { endpoint_id: string; group_id: number; user_id: number; title: string; duration?: number }) {
|
|
17
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
18
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
19
|
+
const resp = await endpoint.ipc.request(Actions.SET_GROUP_TITLE, {
|
|
20
|
+
group_id, user_id, title, duration: duration ?? -1,
|
|
21
|
+
});
|
|
22
|
+
return { success: resp.ok, message: resp.ok ? `已将 ${user_id} 的头衔设为 "${title}"` : (resp.error ?? '设置失败') };
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '发送 QQ 群公告(需要管理员权限)',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
content: z.string().describe('公告内容'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
permissions: ['platform(icqq,scene_admin)'],
|
|
14
|
+
async execute({ endpoint_id, group_id, content }) {
|
|
15
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
16
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_ANNOUNCE, { group_id, content });
|
|
18
|
+
return { success: resp.ok, message: resp.ok ? '群公告已发送' : (resp.error ?? '发送失败') };
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=announce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"announce.js","sourceRoot":"","sources":["../../../agent/tools/announce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA6D;IACpF,WAAW,EAAE,oBAAoB;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;KACrC,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,4BAA4B,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAiE;QAC7G,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACvF,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;IACpF,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '设置或移除 QQ 群精华消息',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
message_id: z.string().describe('消息 ID'),
|
|
9
|
+
action: z.enum(['add', 'remove']).describe('add=设为精华, remove=移除精华'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
permissions: ['platform(icqq,scene_admin)'],
|
|
14
|
+
async execute({ endpoint_id, message_id, action }) {
|
|
15
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
16
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const act = action === 'add' ? Actions.GROUP_ESSENCE_ADD : Actions.GROUP_ESSENCE_REMOVE;
|
|
18
|
+
const resp = await endpoint.ipc.request(act, { message_id });
|
|
19
|
+
return { success: resp.ok, message: resp.ok ? (action === 'add' ? '已设为精华' : '已移除精华') : (resp.error ?? '操作失败') };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=essence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"essence.js","sourceRoot":"","sources":["../../../agent/tools/essence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAAwE;IAC/F,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KACpE,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,4BAA4B,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAyE;QACtH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACxF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;IAClH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '获取 QQ 好友列表',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
}),
|
|
9
|
+
platforms: ['icqq'],
|
|
10
|
+
tags: ['icqq'],
|
|
11
|
+
async execute({ endpoint_id }) {
|
|
12
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
13
|
+
const friends = Array.from(endpoint.friends.values()).map((f) => ({
|
|
14
|
+
user_id: f.user_id, nickname: f.nickname, remark: f.remark,
|
|
15
|
+
}));
|
|
16
|
+
return { friends: friends.slice(0, 50), count: endpoint.friends.size };
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=friend_list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"friend_list.js","sourceRoot":"","sources":["../../../agent/tools/friend_list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA0B;IACjD,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;KAChD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAA8B;QACvD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM;SAC3D,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACzE,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '获取 QQ 群的群文件列表',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
group_id: z.number().describe('群号'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['icqq'],
|
|
11
|
+
tags: ['icqq'],
|
|
12
|
+
async execute({ endpoint_id, group_id }) {
|
|
13
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
14
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
15
|
+
const resp = await endpoint.ipc.request(Actions.GFS_LIST, { group_id });
|
|
16
|
+
if (!resp.ok)
|
|
17
|
+
throw new Error(resp.error ?? '获取群文件失败');
|
|
18
|
+
const files = Array.isArray(resp.data) ? resp.data : [];
|
|
19
|
+
if (!files.length)
|
|
20
|
+
return { files: [], message: '群文件为空' };
|
|
21
|
+
return {
|
|
22
|
+
files: files.slice(0, 30).map((f) => ({
|
|
23
|
+
name: f.name, size: f.size, uploader: f.uploader_uin, upload_time: f.upload_time,
|
|
24
|
+
})),
|
|
25
|
+
count: files.length,
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=group_files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group_files.js","sourceRoot":"","sources":["../../../agent/tools/group_files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA4C;IACnE,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;KACpC,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAgD;QACnF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC1D,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAA4E,EAAE,EAAE,CAAC,CAAC;gBAC/G,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;aACjF,CAAC,CAAC;YACH,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '邀请好友加入 QQ 群',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
user_id: z.number().describe('要邀请的 QQ号'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
async execute({ endpoint_id, group_id, user_id }) {
|
|
14
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
15
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_INVITE, { group_id, user_id });
|
|
17
|
+
return { success: resp.ok, message: resp.ok ? `已邀请 ${user_id} 加入群` : (resp.error ?? '邀请失败') };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=group_invite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group_invite.js","sourceRoot":"","sources":["../../../agent/tools/group_invite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA6D;IACpF,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;KACzC,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAiE;QAC7G,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACrF,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;IAChG,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '获取 Endpoint 的 QQ 群列表',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
}),
|
|
9
|
+
platforms: ['icqq'],
|
|
10
|
+
tags: ['icqq'],
|
|
11
|
+
async execute({ endpoint_id }) {
|
|
12
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
13
|
+
const groups = Array.from(endpoint.groups.values()).map((g) => ({
|
|
14
|
+
group_id: g.group_id, group_name: g.group_name,
|
|
15
|
+
member_count: g.member_count, max_member_count: g.max_member_count,
|
|
16
|
+
}));
|
|
17
|
+
return { groups: groups.slice(0, 50), count: endpoint.groups.size };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=group_list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group_list.js","sourceRoot":"","sources":["../../../agent/tools/group_list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA0B;IACjD,WAAW,EAAE,sBAAsB;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;KAChD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAA8B;QACvD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9D,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;YAC9C,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;SACnE,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtE,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: 'QQ 群签到打卡',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['icqq'],
|
|
11
|
+
tags: ['icqq'],
|
|
12
|
+
async execute({ endpoint_id, group_id }) {
|
|
13
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
14
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
15
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_SIGN, { group_id });
|
|
16
|
+
return { success: resp.ok, message: resp.ok ? '群签到成功' : (resp.error ?? '签到失败') };
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=group_sign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group_sign.js","sourceRoot":"","sources":["../../../agent/tools/group_sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA4C;IACnE,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;KACtC,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAgD;QACnF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;IACnF,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '查询 QQ 群中当前被禁言的成员列表',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['icqq'],
|
|
11
|
+
tags: ['icqq'],
|
|
12
|
+
permissions: ['platform(icqq,scene_admin)'],
|
|
13
|
+
async execute({ endpoint_id, group_id }) {
|
|
14
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
15
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_MUTED_LIST, { group_id });
|
|
17
|
+
if (!resp.ok)
|
|
18
|
+
throw new Error(resp.error ?? '获取禁言列表失败');
|
|
19
|
+
const list = Array.isArray(resp.data) ? resp.data : [];
|
|
20
|
+
return { muted_members: list, count: list.length };
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=list_muted.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list_muted.js","sourceRoot":"","sources":["../../../agent/tools/list_muted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA4C;IACnE,WAAW,EAAE,oBAAoB;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;KACtC,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,4BAA4B,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAgD;QACnF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACrD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '在 QQ 群中对某个成员执行戳一戳互动操作',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
user_id: z.number().describe('要戳的目标成员 QQ号'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
async execute({ endpoint_id, group_id, user_id }) {
|
|
14
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
15
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_POKE, { group_id, user_id });
|
|
17
|
+
return { success: resp.ok, message: resp.ok ? `已戳了戳 ${user_id}` : (resp.error ?? '戳一戳失败') };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=poke.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poke.js","sourceRoot":"","sources":["../../../agent/tools/poke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA6D;IACpF,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC5C,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAiE;QAC7G,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACnF,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC;IAC9F,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '给用户点赞(竖大拇指),每人每天最多 20 次',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
user_id: z.number().describe('要点赞的目标用户 QQ号'),
|
|
9
|
+
times: z.number().optional().describe('点赞次数(1-20),默认 1'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
async execute({ endpoint_id, user_id, times }) {
|
|
14
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
15
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const resp = await endpoint.ipc.request(Actions.FRIEND_LIKE, {
|
|
17
|
+
user_id, times: Math.min(times ?? 1, 20),
|
|
18
|
+
});
|
|
19
|
+
return { success: resp.ok, message: resp.ok ? `已给 ${user_id} 点赞` : (resp.error ?? '点赞失败') };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=send_user_like.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send_user_like.js","sourceRoot":"","sources":["../../../agent/tools/send_user_like.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA2D;IAClF,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;KACzD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAA+D;QACxG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;YAC3D,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;SACzC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;IAC9F,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '开启或关闭 QQ 群的匿名聊天功能',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint QQ号'),
|
|
8
|
+
group_id: z.number().describe('目标群号'),
|
|
9
|
+
enable: z.boolean().optional().describe('true=开启,false=关闭,默认 true'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['icqq'],
|
|
12
|
+
tags: ['icqq'],
|
|
13
|
+
permissions: ['platform(icqq,scene_owner)'],
|
|
14
|
+
async execute({ endpoint_id, group_id, enable }) {
|
|
15
|
+
const { Actions } = await import('../../src/protocol.js');
|
|
16
|
+
const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const on = enable ?? true;
|
|
18
|
+
const resp = await endpoint.ipc.request(Actions.GROUP_ALLOW_ANONY, { group_id, enable: on });
|
|
19
|
+
return { success: resp.ok, message: resp.ok ? (on ? '已开启匿名聊天' : '已关闭匿名聊天') : (resp.error ?? '操作失败') };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=set_anonymous.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set_anonymous.js","sourceRoot":"","sources":["../../../agent/tools/set_anonymous.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA8D;IACrF,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACpE,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,4BAA4B,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAkE;QAC7G,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7F,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;IACxG,CAAC;CACF,CAAC,CAAC"}
|