@zhin.js/adapter-napcat 1.1.25 → 1.1.27
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 +201 -0
- package/LICENSE +21 -0
- package/PERMITS.md +17 -3
- package/README.md +10 -6
- package/adapters/napcat/index.js +3 -0
- package/adapters/napcat/index.ts +3 -0
- package/agents/napcat/conversation.js +71 -0
- package/agents/napcat/conversation.ts +76 -0
- package/agents/napcat/media.js +49 -0
- package/agents/napcat/media.ts +44 -0
- package/agents/napcat/messages.js +32 -0
- package/agents/napcat/messages.ts +32 -0
- package/agents/napcat/skills/napcat-account/tools/delete_friend/index.js +1 -1
- package/agents/napcat/skills/napcat-account/tools/delete_friend/index.ts +1 -1
- package/agents/napcat/skills/napcat-account/tools/set_avatar/index.js +3 -1
- package/agents/napcat/skills/napcat-account/tools/set_avatar/index.ts +3 -1
- package/agents/napcat/skills/napcat-files-history/tools/download_file/index.js +3 -1
- package/agents/napcat/skills/napcat-files-history/tools/download_file/index.ts +3 -1
- package/agents/napcat/skills/napcat-group-content/tools/del_group_notice/index.js +5 -5
- package/agents/napcat/skills/napcat-group-content/tools/del_group_notice/index.ts +6 -6
- package/agents/napcat/skills/napcat-group-content/tools/delete_essence_msg/index.js +5 -3
- package/agents/napcat/skills/napcat-group-content/tools/delete_essence_msg/index.ts +6 -4
- package/agents/napcat/skills/napcat-group-content/tools/get_essence_list/index.js +5 -7
- package/agents/napcat/skills/napcat-group-content/tools/get_essence_list/index.ts +6 -8
- package/agents/napcat/skills/napcat-group-content/tools/get_group_notice/index.js +5 -7
- package/agents/napcat/skills/napcat-group-content/tools/get_group_notice/index.ts +6 -8
- package/agents/napcat/skills/napcat-group-content/tools/send_group_notice/index.js +9 -7
- package/agents/napcat/skills/napcat-group-content/tools/send_group_notice/index.ts +10 -9
- package/agents/napcat/skills/napcat-group-content/tools/set_essence_msg/index.js +5 -3
- package/agents/napcat/skills/napcat-group-content/tools/set_essence_msg/index.ts +6 -4
- package/agents/napcat/skills/napcat-group-files-history/tools/get_group_file_url/index.js +4 -5
- package/agents/napcat/skills/napcat-group-files-history/tools/get_group_file_url/index.ts +5 -6
- package/agents/napcat/skills/napcat-group-files-history/tools/get_group_msg_history/index.js +4 -5
- package/agents/napcat/skills/napcat-group-files-history/tools/get_group_msg_history/index.ts +5 -6
- package/agents/napcat/skills/napcat-group-files-history/tools/get_group_root_files/index.js +5 -7
- package/agents/napcat/skills/napcat-group-files-history/tools/get_group_root_files/index.ts +6 -8
- package/agents/napcat/skills/napcat-group-files-history/tools/upload_group_file/index.js +6 -5
- package/agents/napcat/skills/napcat-group-files-history/tools/upload_group_file/index.ts +8 -7
- package/agents/napcat/skills/napcat-group-media/tools/ai_tts/index.js +4 -5
- package/agents/napcat/skills/napcat-group-media/tools/ai_tts/index.ts +5 -6
- package/agents/napcat/skills/napcat-group-media/tools/get_ai_characters/index.js +5 -7
- package/agents/napcat/skills/napcat-group-media/tools/get_ai_characters/index.ts +6 -8
- package/agents/napcat/skills/napcat-group-settings/tools/get_group_info_ex/index.js +5 -7
- package/agents/napcat/skills/napcat-group-settings/tools/get_group_info_ex/index.ts +6 -8
- package/agents/napcat/skills/napcat-group-settings/tools/get_group_shut_list/index.js +5 -7
- package/agents/napcat/skills/napcat-group-settings/tools/get_group_shut_list/index.ts +6 -8
- package/agents/napcat/skills/napcat-group-settings/tools/group_sign/index.js +5 -7
- package/agents/napcat/skills/napcat-group-settings/tools/group_sign/index.ts +7 -9
- package/agents/napcat/skills/napcat-group-settings/tools/set_group_portrait/index.js +6 -5
- package/agents/napcat/skills/napcat-group-settings/tools/set_group_portrait/index.ts +7 -6
- package/agents/napcat/skills/napcat-group-settings/tools/set_title/index.js +5 -5
- package/agents/napcat/skills/napcat-group-settings/tools/set_title/index.ts +6 -6
- package/agents/napcat/skills/napcat-media/tools/ocr_image/index.js +4 -3
- package/agents/napcat/skills/napcat-media/tools/ocr_image/index.ts +5 -4
- package/agents/napcat/skills/napcat-messaging/tools/forward_single_msg/index.js +3 -1
- package/agents/napcat/skills/napcat-messaging/tools/forward_single_msg/index.ts +3 -1
- package/agents/napcat/skills/napcat-messaging/tools/send_forward_msg/index.js +12 -6
- package/agents/napcat/skills/napcat-messaging/tools/send_forward_msg/index.ts +13 -16
- package/agents/napcat/skills/napcat-messaging/tools/send_poke/index.js +10 -7
- package/agents/napcat/skills/napcat-messaging/tools/send_poke/index.ts +10 -8
- package/agents/napcat/skills/napcat-private-history/tools/get_friend_msg_history/index.js +4 -5
- package/agents/napcat/skills/napcat-private-history/tools/get_friend_msg_history/index.ts +5 -6
- package/lib/console-spec.js +52 -5
- package/lib/endpoint-management.js +37 -0
- package/lib/http-endpoint.d.ts +3 -0
- package/lib/http-endpoint.js +14 -20
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -1
- package/lib/protocol.d.ts +6 -1
- package/lib/protocol.js +13 -0
- package/lib/ws-endpoint.js +3 -2
- package/lib/ws-types.d.ts +6 -0
- package/lib/ws-types.js +31 -0
- package/lib/wss-auth.d.ts +2 -2
- package/lib/wss-auth.js +3 -12
- package/lib/wss-endpoint.d.ts +1 -1
- package/lib/wss-endpoint.js +22 -21
- package/package.json +24 -28
- package/plugin.js +0 -5
- package/schema.json +0 -56
- package/src/console-spec.ts +52 -5
- package/src/endpoint-management.ts +33 -0
- package/src/http-endpoint.ts +11 -20
- package/src/index.ts +0 -2
- package/src/protocol.ts +14 -1
- package/src/ws-endpoint.ts +3 -1
- package/src/ws-types.ts +33 -0
- package/src/wss-auth.ts +4 -11
- package/src/wss-endpoint.ts +22 -22
- package/lib/webhook.d.ts +0 -2
- package/lib/webhook.js +0 -14
- package/src/webhook.ts +0 -16
|
@@ -1,17 +1,15 @@
|
|
|
1
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
1
2
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
|
|
4
|
-
export default defineAgentTool<
|
|
5
|
-
description: '
|
|
6
|
-
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
|
-
}),
|
|
5
|
+
export default defineAgentTool<Record<string, never>>({
|
|
6
|
+
description: '获取当前群的根目录文件列表。',
|
|
7
|
+
inputSchema: z.object({}),
|
|
9
8
|
adapter: 'napcat',
|
|
10
9
|
tags: ['napcat', 'qq'],
|
|
11
10
|
keywords: ['群文件列表', 'group files'],
|
|
12
11
|
scopes: ['group'],
|
|
13
|
-
async execute(
|
|
14
|
-
|
|
15
|
-
return endpoint.getGroupRootFiles(group_id);
|
|
12
|
+
async execute(_input, context) {
|
|
13
|
+
return context.$client.getGroupRootFiles(currentGroup(context));
|
|
16
14
|
},
|
|
17
15
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
2
3
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
export default defineAgentTool({
|
|
5
|
-
description: '
|
|
6
|
+
description: '上传文件到当前群。file 为宿主机本地路径或 URL(读取宿主文件,仅全局主人可用)。',
|
|
6
7
|
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
8
|
file: z.string().describe('文件路径或 URL'),
|
|
9
9
|
name: z.string().describe('文件名'),
|
|
10
10
|
folder: z.string().optional().describe('目标文件夹 ID(可选)'),
|
|
@@ -13,9 +13,10 @@ export default defineAgentTool({
|
|
|
13
13
|
tags: ['napcat', 'qq'],
|
|
14
14
|
keywords: ['上传文件', 'upload file', '群文件'],
|
|
15
15
|
scopes: ['group'],
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
// `file` may be a path on the host: reading host files is a host-global capability (ADR 0056 §2).
|
|
17
|
+
permissions: ['owner@global'],
|
|
18
|
+
async execute({ file, name, folder }, context) {
|
|
19
|
+
await context.$client.uploadGroupFile({ groupId: currentGroup(context), file, name, folder });
|
|
19
20
|
return { success: true };
|
|
20
21
|
},
|
|
21
22
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
1
2
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
|
|
4
|
-
export default defineAgentTool<{
|
|
5
|
-
description: '
|
|
5
|
+
export default defineAgentTool<{ file: string; name: string; folder?: string }>({
|
|
6
|
+
description: '上传文件到当前群。file 为宿主机本地路径或 URL(读取宿主文件,仅全局主人可用)。',
|
|
6
7
|
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
8
|
file: z.string().describe('文件路径或 URL'),
|
|
9
9
|
name: z.string().describe('文件名'),
|
|
10
10
|
folder: z.string().optional().describe('目标文件夹 ID(可选)'),
|
|
@@ -13,9 +13,10 @@ export default defineAgentTool<{ group_id: number; file: string; name: string; f
|
|
|
13
13
|
tags: ['napcat', 'qq'],
|
|
14
14
|
keywords: ['上传文件', 'upload file', '群文件'],
|
|
15
15
|
scopes: ['group'],
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
// `file` may be a path on the host: reading host files is a host-global capability (ADR 0056 §2).
|
|
17
|
+
permissions: ['owner@global'],
|
|
18
|
+
async execute({ file, name, folder }, context) {
|
|
19
|
+
await context.$client.uploadGroupFile({ groupId: currentGroup(context), file, name, folder });
|
|
20
|
+
return { success: true };
|
|
20
21
|
},
|
|
21
22
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
2
3
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
export default defineAgentTool({
|
|
5
|
-
description: 'AI
|
|
6
|
+
description: 'AI 文字转语音,在当前群发送 AI 语音消息。',
|
|
6
7
|
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
8
|
character: z.string().describe('AI 语音角色 ID(可先用 napcat_get_ai_characters 查询)'),
|
|
9
9
|
text: z.string().describe('要转为语音的文字'),
|
|
10
10
|
}),
|
|
@@ -12,8 +12,7 @@ export default defineAgentTool({
|
|
|
12
12
|
tags: ['napcat', 'qq'],
|
|
13
13
|
keywords: ['AI语音', 'TTS', '文字转语音', 'ai record'],
|
|
14
14
|
scopes: ['group'],
|
|
15
|
-
async execute({
|
|
16
|
-
|
|
17
|
-
return endpoint.sendGroupAiRecord(group_id, character, text);
|
|
15
|
+
async execute({ character, text }, context) {
|
|
16
|
+
return context.$client.sendGroupAiRecord(currentGroup(context), character, text);
|
|
18
17
|
},
|
|
19
18
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
1
2
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
|
|
4
|
-
export default defineAgentTool<{
|
|
5
|
-
description: 'AI
|
|
5
|
+
export default defineAgentTool<{ character: string; text: string }>({
|
|
6
|
+
description: 'AI 文字转语音,在当前群发送 AI 语音消息。',
|
|
6
7
|
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
8
|
character: z.string().describe('AI 语音角色 ID(可先用 napcat_get_ai_characters 查询)'),
|
|
9
9
|
text: z.string().describe('要转为语音的文字'),
|
|
10
10
|
}),
|
|
@@ -12,8 +12,7 @@ export default defineAgentTool<{ group_id: number; character: string; text: stri
|
|
|
12
12
|
tags: ['napcat', 'qq'],
|
|
13
13
|
keywords: ['AI语音', 'TTS', '文字转语音', 'ai record'],
|
|
14
14
|
scopes: ['group'],
|
|
15
|
-
async execute({
|
|
16
|
-
|
|
17
|
-
return endpoint.sendGroupAiRecord(group_id, character, text);
|
|
15
|
+
async execute({ character, text }, context) {
|
|
16
|
+
return context.$client.sendGroupAiRecord(currentGroup(context), character, text);
|
|
18
17
|
},
|
|
19
18
|
});
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
2
3
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
export default defineAgentTool({
|
|
5
|
-
description: '
|
|
6
|
-
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
|
-
}),
|
|
6
|
+
description: '获取当前群可用的 AI 语音角色列表,用于 napcat_ai_tts 的 character 参数。',
|
|
7
|
+
inputSchema: z.object({}),
|
|
9
8
|
adapter: 'napcat',
|
|
10
9
|
tags: ['napcat', 'qq'],
|
|
11
10
|
keywords: ['AI角色', 'ai characters', '语音角色'],
|
|
12
11
|
scopes: ['group'],
|
|
13
|
-
async execute(
|
|
14
|
-
|
|
15
|
-
return endpoint.getAiCharacters(group_id);
|
|
12
|
+
async execute(_input, context) {
|
|
13
|
+
return context.$client.getAiCharacters(currentGroup(context));
|
|
16
14
|
},
|
|
17
15
|
});
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
1
2
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
|
|
4
|
-
export default defineAgentTool<
|
|
5
|
-
description: '
|
|
6
|
-
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
|
-
}),
|
|
5
|
+
export default defineAgentTool<Record<string, never>>({
|
|
6
|
+
description: '获取当前群可用的 AI 语音角色列表,用于 napcat_ai_tts 的 character 参数。',
|
|
7
|
+
inputSchema: z.object({}),
|
|
9
8
|
adapter: 'napcat',
|
|
10
9
|
tags: ['napcat', 'qq'],
|
|
11
10
|
keywords: ['AI角色', 'ai characters', '语音角色'],
|
|
12
11
|
scopes: ['group'],
|
|
13
|
-
async execute(
|
|
14
|
-
|
|
15
|
-
return endpoint.getAiCharacters(group_id);
|
|
12
|
+
async execute(_input, context) {
|
|
13
|
+
return context.$client.getAiCharacters(currentGroup(context));
|
|
16
14
|
},
|
|
17
15
|
});
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
2
3
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
export default defineAgentTool({
|
|
5
|
-
description: '
|
|
6
|
-
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
|
-
}),
|
|
6
|
+
description: '获取当前群的额外详细信息。',
|
|
7
|
+
inputSchema: z.object({}),
|
|
9
8
|
adapter: 'napcat',
|
|
10
9
|
tags: ['napcat', 'qq'],
|
|
11
10
|
keywords: ['群详情', '群额外信息', 'group info ex'],
|
|
12
11
|
scopes: ['group'],
|
|
13
|
-
async execute(
|
|
14
|
-
|
|
15
|
-
return endpoint.getGroupInfoEx(group_id);
|
|
12
|
+
async execute(_input, context) {
|
|
13
|
+
return context.$client.getGroupInfoEx(currentGroup(context));
|
|
16
14
|
},
|
|
17
15
|
});
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
1
2
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
|
|
4
|
-
export default defineAgentTool<
|
|
5
|
-
description: '
|
|
6
|
-
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
|
-
}),
|
|
5
|
+
export default defineAgentTool<Record<string, never>>({
|
|
6
|
+
description: '获取当前群的额外详细信息。',
|
|
7
|
+
inputSchema: z.object({}),
|
|
9
8
|
adapter: 'napcat',
|
|
10
9
|
tags: ['napcat', 'qq'],
|
|
11
10
|
keywords: ['群详情', '群额外信息', 'group info ex'],
|
|
12
11
|
scopes: ['group'],
|
|
13
|
-
async execute(
|
|
14
|
-
|
|
15
|
-
return endpoint.getGroupInfoEx(group_id);
|
|
12
|
+
async execute(_input, context) {
|
|
13
|
+
return context.$client.getGroupInfoEx(currentGroup(context));
|
|
16
14
|
},
|
|
17
15
|
});
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
2
3
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
export default defineAgentTool({
|
|
5
|
-
description: '
|
|
6
|
-
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
|
-
}),
|
|
6
|
+
description: '获取当前群的禁言列表。',
|
|
7
|
+
inputSchema: z.object({}),
|
|
9
8
|
adapter: 'napcat',
|
|
10
9
|
tags: ['napcat', 'qq'],
|
|
11
10
|
keywords: ['禁言列表', 'shut list', '被禁言'],
|
|
12
11
|
scopes: ['group'],
|
|
13
|
-
async execute(
|
|
14
|
-
|
|
15
|
-
return endpoint.getGroupShutList(group_id);
|
|
12
|
+
async execute(_input, context) {
|
|
13
|
+
return context.$client.getGroupShutList(currentGroup(context));
|
|
16
14
|
},
|
|
17
15
|
});
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
1
2
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
|
|
4
|
-
export default defineAgentTool<
|
|
5
|
-
description: '
|
|
6
|
-
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
|
-
}),
|
|
5
|
+
export default defineAgentTool<Record<string, never>>({
|
|
6
|
+
description: '获取当前群的禁言列表。',
|
|
7
|
+
inputSchema: z.object({}),
|
|
9
8
|
adapter: 'napcat',
|
|
10
9
|
tags: ['napcat', 'qq'],
|
|
11
10
|
keywords: ['禁言列表', 'shut list', '被禁言'],
|
|
12
11
|
scopes: ['group'],
|
|
13
|
-
async execute(
|
|
14
|
-
|
|
15
|
-
return endpoint.getGroupShutList(group_id);
|
|
12
|
+
async execute(_input, context) {
|
|
13
|
+
return context.$client.getGroupShutList(currentGroup(context));
|
|
16
14
|
},
|
|
17
15
|
});
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
2
3
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
export default defineAgentTool({
|
|
5
|
-
description: '
|
|
6
|
-
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
|
-
}),
|
|
6
|
+
description: '在当前群签到/打卡。',
|
|
7
|
+
inputSchema: z.object({}),
|
|
9
8
|
adapter: 'napcat',
|
|
10
9
|
tags: ['napcat', 'qq'],
|
|
11
10
|
keywords: ['签到', '打卡', 'sign', 'check in'],
|
|
12
11
|
scopes: ['group'],
|
|
13
|
-
async execute(
|
|
14
|
-
|
|
15
|
-
await endpoint.sendGroupSign(group_id);
|
|
12
|
+
async execute(_input, context) {
|
|
13
|
+
await context.$client.sendGroupSign(currentGroup(context));
|
|
16
14
|
return { success: true };
|
|
17
15
|
},
|
|
18
16
|
});
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
+
import { currentGroup } from "../../../../conversation.js";
|
|
1
2
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
|
|
4
|
-
export default defineAgentTool<
|
|
5
|
-
description: '
|
|
6
|
-
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
|
-
}),
|
|
5
|
+
export default defineAgentTool<Record<string, never>>({
|
|
6
|
+
description: '在当前群签到/打卡。',
|
|
7
|
+
inputSchema: z.object({}),
|
|
9
8
|
adapter: 'napcat',
|
|
10
9
|
tags: ['napcat', 'qq'],
|
|
11
10
|
keywords: ['签到', '打卡', 'sign', 'check in'],
|
|
12
11
|
scopes: ['group'],
|
|
13
|
-
async execute(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return { success: true };
|
|
12
|
+
async execute(_input, context) {
|
|
13
|
+
await context.$client.sendGroupSign(currentGroup(context));
|
|
14
|
+
return { success: true };
|
|
17
15
|
},
|
|
18
16
|
});
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
|
+
import { currentGroup } from '../../../../conversation.js';
|
|
2
3
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
export default defineAgentTool({
|
|
5
|
-
description: '
|
|
6
|
+
description: '设置当前群的群头像。file 为图片 URL、base64 或宿主本地路径(读取宿主文件,仅全局主人可用)。',
|
|
6
7
|
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
8
|
file: z.string().describe('图片(URL 或 base64)'),
|
|
9
9
|
}),
|
|
10
10
|
adapter: 'napcat',
|
|
11
11
|
tags: ['napcat', 'qq'],
|
|
12
12
|
keywords: ['群头像', 'group portrait', '设置群头像'],
|
|
13
|
-
|
|
13
|
+
// `file` may be a host path (OneBot reads `file://`): reading host files is host-global (ADR 0056 §2).
|
|
14
|
+
permissions: ['owner@global', 'bot:admin'],
|
|
14
15
|
scopes: ['group'],
|
|
15
|
-
async execute({
|
|
16
|
+
async execute({ file }, context) {
|
|
16
17
|
const endpoint = context.$client;
|
|
17
|
-
await endpoint.setGroupPortrait(
|
|
18
|
+
await endpoint.setGroupPortrait(currentGroup(context), file);
|
|
18
19
|
return { success: true };
|
|
19
20
|
},
|
|
20
21
|
});
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
+
import { currentGroup } from '../../../../conversation.js';
|
|
1
2
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
|
|
4
|
-
export default defineAgentTool<{
|
|
5
|
-
description: '
|
|
5
|
+
export default defineAgentTool<{ file: string }>({
|
|
6
|
+
description: '设置当前群的群头像。file 为图片 URL、base64 或宿主本地路径(读取宿主文件,仅全局主人可用)。',
|
|
6
7
|
inputSchema: z.object({
|
|
7
|
-
group_id: z.number().describe('群号'),
|
|
8
8
|
file: z.string().describe('图片(URL 或 base64)'),
|
|
9
9
|
}),
|
|
10
10
|
adapter: 'napcat',
|
|
11
11
|
tags: ['napcat', 'qq'],
|
|
12
12
|
keywords: ['群头像', 'group portrait', '设置群头像'],
|
|
13
|
-
|
|
13
|
+
// `file` may be a host path (OneBot reads `file://`): reading host files is host-global (ADR 0056 §2).
|
|
14
|
+
permissions: ['owner@global', 'bot:admin'],
|
|
14
15
|
scopes: ['group'],
|
|
15
|
-
async execute({
|
|
16
|
+
async execute({ file }, context) {
|
|
16
17
|
const endpoint = context.$client;
|
|
17
|
-
await endpoint.setGroupPortrait(
|
|
18
|
+
await endpoint.setGroupPortrait(currentGroup(context), file);
|
|
18
19
|
return { success: true };
|
|
19
20
|
},
|
|
20
21
|
});
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
2
|
import { messages as t } from "../../../../messages.js";
|
|
3
|
+
import { currentGroup } from '../../../../conversation.js';
|
|
3
4
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
4
5
|
import { z } from 'zod';
|
|
5
6
|
export default defineAgentTool({
|
|
6
|
-
description: '
|
|
7
|
+
description: '设置当前群成员的专属头衔。需要群主权限。',
|
|
7
8
|
inputSchema: z.object({
|
|
8
|
-
group_id: z.number().describe('群号'),
|
|
9
9
|
user_id: z.number().describe('目标成员 QQ 号'),
|
|
10
10
|
title: z.string().describe('头衔文字'),
|
|
11
11
|
}),
|
|
12
12
|
adapter: 'napcat',
|
|
13
13
|
tags: ['napcat', 'qq'],
|
|
14
14
|
keywords: ['头衔', 'title', '专属头衔', '设置头衔'],
|
|
15
|
-
permissions: ['platform
|
|
15
|
+
permissions: ['platform:owner', 'bot:owner'],
|
|
16
16
|
scopes: ['group'],
|
|
17
|
-
async execute({
|
|
17
|
+
async execute({ user_id, title }, context) {
|
|
18
18
|
const endpoint = context.$client;
|
|
19
|
-
await endpoint.setTitle({ groupId:
|
|
19
|
+
await endpoint.setTitle({ groupId: currentGroup(context), userId: user_id, title });
|
|
20
20
|
return { success: true, message: t(context.locale, 'memberTitleSet', { p0: user_id, p1: title }) };
|
|
21
21
|
},
|
|
22
22
|
});
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { messages as t } from "../../../../messages.js";
|
|
2
|
+
import { currentGroup } from '../../../../conversation.js';
|
|
2
3
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
|
|
5
|
-
export default defineAgentTool<{
|
|
6
|
-
description: '
|
|
6
|
+
export default defineAgentTool<{ user_id: number; title: string }>({
|
|
7
|
+
description: '设置当前群成员的专属头衔。需要群主权限。',
|
|
7
8
|
inputSchema: z.object({
|
|
8
|
-
group_id: z.number().describe('群号'),
|
|
9
9
|
user_id: z.number().describe('目标成员 QQ 号'),
|
|
10
10
|
title: z.string().describe('头衔文字'),
|
|
11
11
|
}),
|
|
12
12
|
adapter: 'napcat',
|
|
13
13
|
tags: ['napcat', 'qq'],
|
|
14
14
|
keywords: ['头衔', 'title', '专属头衔', '设置头衔'],
|
|
15
|
-
permissions: ['platform
|
|
15
|
+
permissions: ['platform:owner', 'bot:owner'],
|
|
16
16
|
scopes: ['group'],
|
|
17
|
-
async execute({
|
|
17
|
+
async execute({ user_id, title }, context) {
|
|
18
18
|
const endpoint = context.$client;
|
|
19
|
-
await endpoint.setTitle({ groupId:
|
|
19
|
+
await endpoint.setTitle({ groupId: currentGroup(context), userId: user_id, title });
|
|
20
20
|
return { success: true, message: t(context.locale, 'memberTitleSet', { p0: user_id, p1: title }) };
|
|
21
21
|
},
|
|
22
22
|
});
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
|
+
import { requireRemoteMedia } from "../../../../media.js";
|
|
2
3
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
export default defineAgentTool({
|
|
5
6
|
description: '图片 OCR 文字识别。',
|
|
6
7
|
inputSchema: z.object({
|
|
7
|
-
image: z.string().describe('图片 file 参数(收到消息中的 file
|
|
8
|
+
image: z.string().describe('图片 file 参数(收到消息中的 file 字段、http(s) 链接或 base64://;不接受本机路径)'),
|
|
8
9
|
}),
|
|
9
10
|
adapter: 'napcat',
|
|
10
11
|
tags: ['napcat', 'qq'],
|
|
11
12
|
keywords: ['OCR', '文字识别', '图片识别', 'ocr'],
|
|
12
13
|
async execute({ image }, context) {
|
|
13
|
-
|
|
14
|
-
return
|
|
14
|
+
requireRemoteMedia(context, image, 'image');
|
|
15
|
+
return context.$client.ocrImage(image);
|
|
15
16
|
},
|
|
16
17
|
});
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
import { requireRemoteMedia } from "../../../../media.js";
|
|
1
2
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
|
|
4
5
|
export default defineAgentTool<{ image: string }>({
|
|
5
6
|
description: '图片 OCR 文字识别。',
|
|
6
7
|
inputSchema: z.object({
|
|
7
|
-
image: z.string().describe('图片 file 参数(收到消息中的 file
|
|
8
|
+
image: z.string().describe('图片 file 参数(收到消息中的 file 字段、http(s) 链接或 base64://;不接受本机路径)'),
|
|
8
9
|
}),
|
|
9
10
|
adapter: 'napcat',
|
|
10
11
|
tags: ['napcat', 'qq'],
|
|
11
12
|
keywords: ['OCR', '文字识别', '图片识别', 'ocr'],
|
|
12
|
-
async execute({ image }
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
async execute({ image }, context) {
|
|
14
|
+
requireRemoteMedia(context, image, 'image');
|
|
15
|
+
return context.$client.ocrImage(image);
|
|
15
16
|
},
|
|
16
17
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
export default defineAgentTool({
|
|
5
|
-
description: '
|
|
5
|
+
description: '转发单条消息到指定好友或群(可跨会话,仅全局主人可用)。',
|
|
6
6
|
inputSchema: z.object({
|
|
7
7
|
target_type: z.enum(['friend', 'group']).describe('friend 或 group'),
|
|
8
8
|
target_id: z.number().describe('目标好友 QQ 号或群号'),
|
|
@@ -11,6 +11,8 @@ export default defineAgentTool({
|
|
|
11
11
|
adapter: 'napcat',
|
|
12
12
|
tags: ['napcat', 'qq'],
|
|
13
13
|
keywords: ['转发', 'forward', '单条转发'],
|
|
14
|
+
// Reads any message of the account and sends it to any friend / group: a cross-conversation capability.
|
|
15
|
+
permissions: ['owner@global'],
|
|
14
16
|
async execute({ target_type, target_id, message_id }, context) {
|
|
15
17
|
const endpoint = context.$client;
|
|
16
18
|
if (target_type === 'friend')
|
|
@@ -6,7 +6,7 @@ export default defineAgentTool<{
|
|
|
6
6
|
target_id: number;
|
|
7
7
|
message_id: number;
|
|
8
8
|
}>({
|
|
9
|
-
description: '
|
|
9
|
+
description: '转发单条消息到指定好友或群(可跨会话,仅全局主人可用)。',
|
|
10
10
|
inputSchema: z.object({
|
|
11
11
|
target_type: z.enum(['friend', 'group']).describe('friend 或 group'),
|
|
12
12
|
target_id: z.number().describe('目标好友 QQ 号或群号'),
|
|
@@ -15,6 +15,8 @@ export default defineAgentTool<{
|
|
|
15
15
|
adapter: 'napcat',
|
|
16
16
|
tags: ['napcat', 'qq'],
|
|
17
17
|
keywords: ['转发', 'forward', '单条转发'],
|
|
18
|
+
// Reads any message of the account and sends it to any friend / group: a cross-conversation capability.
|
|
19
|
+
permissions: ['owner@global'],
|
|
18
20
|
async execute({ target_type, target_id, message_id }: {
|
|
19
21
|
target_type: 'friend' | 'group';
|
|
20
22
|
target_id: number;
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
|
+
import { sendToCurrentConversation } from "../../../../conversation.js";
|
|
3
|
+
import { requireSafeForwardNodes } from "../../../../media.js";
|
|
2
4
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
3
5
|
import { z } from 'zod';
|
|
4
6
|
export default defineAgentTool({
|
|
5
|
-
description: '
|
|
7
|
+
description: '在当前会话发送合并转发消息。messages 为转发节点数组;引用已有消息的节点(data.id)只能引用当前会话的消息,节点内的图片等媒体只能是 http(s) 链接或 base64://。',
|
|
6
8
|
inputSchema: z.object({
|
|
7
|
-
message_type: z.enum(['private', 'group']).describe('private 或 group'),
|
|
8
|
-
id: z.number().describe('群号或 QQ 号'),
|
|
9
9
|
messages: z.string().describe('转发节点 JSON(node 数组)'),
|
|
10
10
|
}),
|
|
11
11
|
adapter: 'napcat',
|
|
12
12
|
tags: ['napcat', 'qq'],
|
|
13
13
|
keywords: ['合并转发', 'forward', '转发消息'],
|
|
14
|
-
async execute({
|
|
15
|
-
const endpoint = context.$client;
|
|
14
|
+
async execute({ messages }, context) {
|
|
16
15
|
const nodes = typeof messages === 'string' ? JSON.parse(messages) : messages;
|
|
17
|
-
|
|
16
|
+
if (!Array.isArray(nodes) || !nodes.length)
|
|
17
|
+
throw new Error('messages must be a non-empty JSON array of forward nodes');
|
|
18
|
+
await requireSafeForwardNodes(context, nodes);
|
|
19
|
+
// `napcat:node` is the NapCat adapter's namespaced outbound segment (one OneBot `node` each).
|
|
20
|
+
return sendToCurrentConversation(context, nodes.map((node) => ({
|
|
21
|
+
type: 'napcat:node',
|
|
22
|
+
data: { ...(node?.data ?? {}) },
|
|
23
|
+
})));
|
|
18
24
|
},
|
|
19
25
|
});
|
|
@@ -1,27 +1,24 @@
|
|
|
1
|
+
import { sendToCurrentConversation } from "../../../../conversation.js";
|
|
2
|
+
import { requireSafeForwardNodes } from "../../../../media.js";
|
|
1
3
|
import { defineAgentTool } from '@zhin.js/tool';
|
|
2
4
|
import { z } from 'zod';
|
|
3
5
|
|
|
4
|
-
export default defineAgentTool<{
|
|
5
|
-
|
|
6
|
-
id: number;
|
|
7
|
-
messages: string;
|
|
8
|
-
}>({
|
|
9
|
-
description: '发送合并转发消息(群聊或私聊)。messages 为转发节点数组。',
|
|
6
|
+
export default defineAgentTool<{ messages: string }>({
|
|
7
|
+
description: '在当前会话发送合并转发消息。messages 为转发节点数组;引用已有消息的节点(data.id)只能引用当前会话的消息,节点内的图片等媒体只能是 http(s) 链接或 base64://。',
|
|
10
8
|
inputSchema: z.object({
|
|
11
|
-
message_type: z.enum(['private', 'group']).describe('private 或 group'),
|
|
12
|
-
id: z.number().describe('群号或 QQ 号'),
|
|
13
9
|
messages: z.string().describe('转发节点 JSON(node 数组)'),
|
|
14
10
|
}),
|
|
15
11
|
adapter: 'napcat',
|
|
16
12
|
tags: ['napcat', 'qq'],
|
|
17
13
|
keywords: ['合并转发', 'forward', '转发消息'],
|
|
18
|
-
async execute({
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
async execute({ messages }, context) {
|
|
15
|
+
const nodes: unknown = typeof messages === 'string' ? JSON.parse(messages) : messages;
|
|
16
|
+
if (!Array.isArray(nodes) || !nodes.length) throw new Error('messages must be a non-empty JSON array of forward nodes');
|
|
17
|
+
await requireSafeForwardNodes(context, nodes);
|
|
18
|
+
// `napcat:node` is the NapCat adapter's namespaced outbound segment (one OneBot `node` each).
|
|
19
|
+
return sendToCurrentConversation(context, nodes.map((node) => ({
|
|
20
|
+
type: 'napcat:node',
|
|
21
|
+
data: { ...((node as { data?: Record<string, unknown> } | null)?.data ?? {}) },
|
|
22
|
+
})));
|
|
26
23
|
},
|
|
27
24
|
});
|