mioku-plugin-help 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config.md +195 -0
- package/demo-config.ts +21 -0
- package/index.ts +107 -0
- package/package.json +29 -0
- package/runtime.ts +25 -0
- package/shared.ts +1276 -0
- package/skills.ts +94 -0
- package/source/miku.png +0 -0
- package/tsconfig.json +7 -0
package/skills.ts
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { AISkill, AITool } from "mioku";
|
|
2
|
+
import type { HelpService } from "mioku";
|
|
3
|
+
import type { ScreenshotService } from "mioku";
|
|
4
|
+
import {
|
|
5
|
+
buildHelpInfoText,
|
|
6
|
+
generateHelpImage,
|
|
7
|
+
getHelpRenderVersions,
|
|
8
|
+
resolveHelpBotProfile,
|
|
9
|
+
sendImageFromSkillContext,
|
|
10
|
+
} from "./shared";
|
|
11
|
+
|
|
12
|
+
const helpSkills: AISkill[] = [
|
|
13
|
+
{
|
|
14
|
+
name: "help",
|
|
15
|
+
description: "帮助系统,获取插件帮助信息和发送帮助图片",
|
|
16
|
+
permission: "member",
|
|
17
|
+
tools: [
|
|
18
|
+
{
|
|
19
|
+
name: "get_help_info",
|
|
20
|
+
description:
|
|
21
|
+
"获取所有插件的帮助信息文本,这个仅用于用户向你询问某个功能的具体用法时使用",
|
|
22
|
+
parameters: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: {},
|
|
25
|
+
required: [],
|
|
26
|
+
},
|
|
27
|
+
handler: async (_args: any, runtimeCtx?: any) => {
|
|
28
|
+
const ctx = runtimeCtx?.ctx;
|
|
29
|
+
const helpService = ctx?.services?.help as HelpService | undefined;
|
|
30
|
+
if (!helpService) {
|
|
31
|
+
return "help-service 未加载,无法获取帮助信息";
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return buildHelpInfoText(helpService.getAllHelp());
|
|
35
|
+
},
|
|
36
|
+
} as AITool,
|
|
37
|
+
{
|
|
38
|
+
name: "send_help_image",
|
|
39
|
+
description:
|
|
40
|
+
"生成并发送帮助图片到群聊,如果有人说他想看帮助,优先调用图片发送而不是自己查看帮助。",
|
|
41
|
+
parameters: {
|
|
42
|
+
type: "object",
|
|
43
|
+
properties: {},
|
|
44
|
+
required: [],
|
|
45
|
+
},
|
|
46
|
+
handler: async (_args: any, runtimeCtx?: any) => {
|
|
47
|
+
const ctx = runtimeCtx?.ctx;
|
|
48
|
+
const event = runtimeCtx?.event || runtimeCtx?.rawEvent;
|
|
49
|
+
const helpService = ctx?.services?.help as HelpService | undefined;
|
|
50
|
+
const screenshotService = ctx?.services?.screenshot as
|
|
51
|
+
| ScreenshotService
|
|
52
|
+
| undefined;
|
|
53
|
+
const { miokiVersion, miokuVersion } = await getHelpRenderVersions();
|
|
54
|
+
|
|
55
|
+
if (!screenshotService) {
|
|
56
|
+
return "screenshot 服务未加载,无法生成帮助图片";
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
const { botNickname, botAvatarUrl } = resolveHelpBotProfile(
|
|
61
|
+
ctx,
|
|
62
|
+
event,
|
|
63
|
+
);
|
|
64
|
+
const imagePath = await generateHelpImage({
|
|
65
|
+
helpService,
|
|
66
|
+
screenshotService,
|
|
67
|
+
miokiVersion,
|
|
68
|
+
miokuVersion,
|
|
69
|
+
botNickname,
|
|
70
|
+
botAvatarUrl,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
if (!imagePath) {
|
|
74
|
+
return "生成帮助图片失败";
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Help skill defaults to normal send instead of quote-reply.
|
|
78
|
+
await sendImageFromSkillContext({
|
|
79
|
+
ctx,
|
|
80
|
+
event,
|
|
81
|
+
imagePath,
|
|
82
|
+
quoteReply: false,
|
|
83
|
+
});
|
|
84
|
+
return "已发送帮助图片";
|
|
85
|
+
} catch (error) {
|
|
86
|
+
return `生成帮助图片失败: ${error}`;
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
} as AITool,
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
];
|
|
93
|
+
|
|
94
|
+
export default helpSkills;
|
package/source/miku.png
ADDED
|
Binary file
|