@zhin.js/core 1.0.25 → 1.0.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 +19 -0
- package/README.md +84 -342
- package/lib/adapter.d.ts +17 -0
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +84 -2
- package/lib/adapter.js.map +1 -1
- package/lib/ai/agent.d.ts +126 -0
- package/lib/ai/agent.d.ts.map +1 -0
- package/lib/ai/agent.js +645 -0
- package/lib/ai/agent.js.map +1 -0
- package/lib/ai/context-manager.d.ts +213 -0
- package/lib/ai/context-manager.d.ts.map +1 -0
- package/lib/ai/context-manager.js +313 -0
- package/lib/ai/context-manager.js.map +1 -0
- package/lib/ai/conversation-memory.d.ts +181 -0
- package/lib/ai/conversation-memory.d.ts.map +1 -0
- package/lib/ai/conversation-memory.js +581 -0
- package/lib/ai/conversation-memory.js.map +1 -0
- package/lib/ai/follow-up.d.ts +131 -0
- package/lib/ai/follow-up.d.ts.map +1 -0
- package/lib/ai/follow-up.js +265 -0
- package/lib/ai/follow-up.js.map +1 -0
- package/lib/ai/index.d.ts +29 -0
- package/lib/ai/index.d.ts.map +1 -0
- package/lib/ai/index.js +34 -0
- package/lib/ai/index.js.map +1 -0
- package/lib/ai/init.d.ts +30 -0
- package/lib/ai/init.d.ts.map +1 -0
- package/lib/ai/init.js +424 -0
- package/lib/ai/init.js.map +1 -0
- package/lib/ai/output.d.ts +93 -0
- package/lib/ai/output.d.ts.map +1 -0
- package/lib/ai/output.js +176 -0
- package/lib/ai/output.js.map +1 -0
- package/lib/ai/providers/anthropic.d.ts +23 -0
- package/lib/ai/providers/anthropic.d.ts.map +1 -0
- package/lib/ai/providers/anthropic.js +322 -0
- package/lib/ai/providers/anthropic.js.map +1 -0
- package/lib/ai/providers/base.d.ts +43 -0
- package/lib/ai/providers/base.d.ts.map +1 -0
- package/lib/ai/providers/base.js +135 -0
- package/lib/ai/providers/base.js.map +1 -0
- package/lib/ai/providers/index.d.ts +12 -0
- package/lib/ai/providers/index.d.ts.map +1 -0
- package/lib/ai/providers/index.js +9 -0
- package/lib/ai/providers/index.js.map +1 -0
- package/lib/ai/providers/ollama.d.ts +25 -0
- package/lib/ai/providers/ollama.d.ts.map +1 -0
- package/lib/ai/providers/ollama.js +243 -0
- package/lib/ai/providers/ollama.js.map +1 -0
- package/lib/ai/providers/openai.d.ts +46 -0
- package/lib/ai/providers/openai.d.ts.map +1 -0
- package/lib/ai/providers/openai.js +132 -0
- package/lib/ai/providers/openai.js.map +1 -0
- package/lib/ai/rate-limiter.d.ts +38 -0
- package/lib/ai/rate-limiter.d.ts.map +1 -0
- package/lib/ai/rate-limiter.js +86 -0
- package/lib/ai/rate-limiter.js.map +1 -0
- package/lib/ai/service.d.ts +81 -0
- package/lib/ai/service.d.ts.map +1 -0
- package/lib/ai/service.js +274 -0
- package/lib/ai/service.js.map +1 -0
- package/lib/ai/session.d.ts +186 -0
- package/lib/ai/session.d.ts.map +1 -0
- package/lib/ai/session.js +443 -0
- package/lib/ai/session.js.map +1 -0
- package/lib/ai/tone-detector.d.ts +19 -0
- package/lib/ai/tone-detector.d.ts.map +1 -0
- package/lib/ai/tone-detector.js +72 -0
- package/lib/ai/tone-detector.js.map +1 -0
- package/lib/ai/tools.d.ts +45 -0
- package/lib/ai/tools.d.ts.map +1 -0
- package/lib/ai/tools.js +206 -0
- package/lib/ai/tools.js.map +1 -0
- package/lib/ai/types.d.ts +264 -0
- package/lib/ai/types.d.ts.map +1 -0
- package/lib/ai/types.js +6 -0
- package/lib/ai/types.js.map +1 -0
- package/lib/ai/user-profile.d.ts +56 -0
- package/lib/ai/user-profile.d.ts.map +1 -0
- package/lib/ai/user-profile.js +130 -0
- package/lib/ai/user-profile.js.map +1 -0
- package/lib/ai/zhin-agent.d.ts +165 -0
- package/lib/ai/zhin-agent.d.ts.map +1 -0
- package/lib/ai/zhin-agent.js +707 -0
- package/lib/ai/zhin-agent.js.map +1 -0
- package/lib/built/ai-trigger.d.ts.map +1 -1
- package/lib/built/ai-trigger.js +7 -3
- package/lib/built/ai-trigger.js.map +1 -1
- package/lib/built/command.d.ts +33 -17
- package/lib/built/command.d.ts.map +1 -1
- package/lib/built/command.js +71 -44
- package/lib/built/command.js.map +1 -1
- package/lib/built/component.d.ts +42 -15
- package/lib/built/component.d.ts.map +1 -1
- package/lib/built/component.js +84 -52
- package/lib/built/component.js.map +1 -1
- package/lib/built/config.d.ts +64 -5
- package/lib/built/config.d.ts.map +1 -1
- package/lib/built/config.js +129 -12
- package/lib/built/config.js.map +1 -1
- package/lib/built/cron.d.ts +41 -18
- package/lib/built/cron.d.ts.map +1 -1
- package/lib/built/cron.js +106 -63
- package/lib/built/cron.js.map +1 -1
- package/lib/built/database.d.ts +55 -6
- package/lib/built/database.d.ts.map +1 -1
- package/lib/built/database.js +93 -22
- package/lib/built/database.js.map +1 -1
- package/lib/built/dispatcher.d.ts +118 -0
- package/lib/built/dispatcher.d.ts.map +1 -0
- package/lib/built/dispatcher.js +196 -0
- package/lib/built/dispatcher.js.map +1 -0
- package/lib/built/permission.d.ts +45 -5
- package/lib/built/permission.d.ts.map +1 -1
- package/lib/built/permission.js +56 -11
- package/lib/built/permission.js.map +1 -1
- package/lib/built/skill.d.ts +117 -0
- package/lib/built/skill.d.ts.map +1 -0
- package/lib/built/skill.js +191 -0
- package/lib/built/skill.js.map +1 -0
- package/lib/built/tool.d.ts +71 -164
- package/lib/built/tool.d.ts.map +1 -1
- package/lib/built/tool.js +212 -297
- package/lib/built/tool.js.map +1 -1
- package/lib/feature.d.ts +75 -0
- package/lib/feature.d.ts.map +1 -0
- package/lib/feature.js +69 -0
- package/lib/feature.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -0
- package/lib/index.js.map +1 -1
- package/lib/plugin.d.ts +25 -17
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +180 -20
- package/lib/plugin.js.map +1 -1
- package/lib/types.d.ts +4 -9
- package/lib/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/adapter.ts +101 -2
- package/src/ai/agent.ts +772 -0
- package/src/ai/context-manager.ts +440 -0
- package/src/ai/conversation-memory.ts +774 -0
- package/src/ai/follow-up.ts +357 -0
- package/src/ai/index.ts +128 -0
- package/src/ai/init.ts +502 -0
- package/src/ai/output.ts +261 -0
- package/src/ai/providers/anthropic.ts +375 -0
- package/src/ai/providers/base.ts +173 -0
- package/src/ai/providers/index.ts +13 -0
- package/src/ai/providers/ollama.ts +292 -0
- package/src/ai/providers/openai.ts +167 -0
- package/src/ai/rate-limiter.ts +129 -0
- package/src/ai/service.ts +319 -0
- package/src/ai/session.ts +544 -0
- package/src/ai/tone-detector.ts +89 -0
- package/src/ai/tools.ts +218 -0
- package/src/ai/types.ts +296 -0
- package/src/ai/user-profile.ts +181 -0
- package/src/ai/zhin-agent.ts +845 -0
- package/src/built/ai-trigger.ts +6 -3
- package/src/built/command.ts +75 -69
- package/src/built/component.ts +94 -76
- package/src/built/config.ts +288 -128
- package/src/built/cron.ts +117 -101
- package/src/built/database.ts +128 -33
- package/src/built/dispatcher.ts +332 -0
- package/src/built/permission.ts +146 -54
- package/src/built/skill.ts +280 -0
- package/src/built/tool.ts +245 -366
- package/src/feature.ts +113 -0
- package/src/index.ts +7 -0
- package/src/plugin.ts +198 -33
- package/src/types.ts +6 -10
- package/tests/adapter.test.ts +153 -1
- package/tests/ai/agent.test.ts +614 -0
- package/tests/ai/ai-trigger.test.ts +368 -0
- package/tests/ai/context-manager.test.ts +413 -0
- package/tests/ai/conversation-memory.test.ts +128 -0
- package/tests/ai/follow-up.test.ts +175 -0
- package/tests/ai/integration.test.ts +584 -0
- package/tests/ai/output.test.ts +128 -0
- package/tests/ai/providers.integration.test.ts +227 -0
- package/tests/ai/rate-limiter.test.ts +108 -0
- package/tests/ai/session.test.ts +375 -0
- package/tests/ai/setup.ts +308 -0
- package/tests/ai/tone-detector.test.ts +80 -0
- package/tests/ai/tool.test.ts +800 -0
- package/tests/ai/tools-builtin.test.ts +346 -0
- package/tests/ai/user-profile.test.ts +73 -0
- package/tests/ai/zhin-agent.test.ts +177 -0
- package/tests/config.test.ts +46 -0
- package/tests/cron.test.ts +94 -5
- package/tests/dispatcher.test.ts +146 -0
- package/tests/feature.test.ts +145 -0
- package/tests/features-builtin.test.ts +191 -0
- package/tests/plugin.test.ts +88 -14
- package/tests/skill-feature.test.ts +179 -0
- package/tests/tool-feature.test.ts +254 -0
- package/test/minimal-bot.ts +0 -31
- package/test/stress-test.ts +0 -123
package/lib/built/tool.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* ToolFeature — 统一的工具管理服务
|
|
3
|
+
* 支持 Tool ↔ Command 互转
|
|
4
4
|
*/
|
|
5
|
+
import { Feature, FeatureJSON } from "../feature.js";
|
|
5
6
|
import { MessageCommand } from "../command.js";
|
|
6
|
-
import {
|
|
7
|
+
import { Plugin } from "../plugin.js";
|
|
7
8
|
import type { Tool, ToolDefinition, RegisteredAdapter, ToolContext, ToolJsonSchema, ToolParametersSchema, PropertySchema, MaybePromise, ToolPermissionLevel, ToolScope } from "../types.js";
|
|
8
9
|
/**
|
|
9
10
|
* 权限级别优先级(数字越大权限越高)
|
|
@@ -35,29 +36,6 @@ export declare function generatePattern(tool: Tool): string;
|
|
|
35
36
|
export declare function extractParamInfo(parameters: ToolJsonSchema): Tool.ParamInfo[];
|
|
36
37
|
/**
|
|
37
38
|
* 定义工具的辅助函数(提供类型推断)
|
|
38
|
-
*
|
|
39
|
-
* 使用泛型参数获得 execute 函数的类型检查,
|
|
40
|
-
* 返回通用的 Tool 类型,可直接传给 addTool
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* ```typescript
|
|
44
|
-
* const myTool = defineTool<{ name: string }>({
|
|
45
|
-
* name: 'greet',
|
|
46
|
-
* description: '打招呼',
|
|
47
|
-
* parameters: {
|
|
48
|
-
* type: 'object',
|
|
49
|
-
* properties: {
|
|
50
|
-
* name: { type: 'string', description: '名字' }
|
|
51
|
-
* },
|
|
52
|
-
* required: ['name']
|
|
53
|
-
* },
|
|
54
|
-
* execute: async (args) => {
|
|
55
|
-
* return `你好,${args.name}!`; // args.name 有类型提示
|
|
56
|
-
* }
|
|
57
|
-
* });
|
|
58
|
-
*
|
|
59
|
-
* plugin.addTool(myTool); // 无需类型断言
|
|
60
|
-
* ```
|
|
61
39
|
*/
|
|
62
40
|
export declare function defineTool<TArgs extends Record<string, any> = Record<string, any>>(tool: ToolDefinition<TArgs>): Tool;
|
|
63
41
|
/**
|
|
@@ -71,129 +49,30 @@ interface ParamDef {
|
|
|
71
49
|
/**
|
|
72
50
|
* ZhinTool 类
|
|
73
51
|
* 提供类似 MessageCommand 的链式调用风格来定义工具
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* ```typescript
|
|
77
|
-
* const weatherTool = new ZhinTool('weather')
|
|
78
|
-
* .desc('查询天气信息')
|
|
79
|
-
* .param('city', { type: 'string', description: '城市名称' }, true)
|
|
80
|
-
* .param('days', { type: 'number', description: '预报天数' })
|
|
81
|
-
* .platform('qq', 'telegram')
|
|
82
|
-
* .scope('group', 'private')
|
|
83
|
-
* .permission('user')
|
|
84
|
-
* // AI 调用时执行(必须)
|
|
85
|
-
* .execute(async (args, ctx) => {
|
|
86
|
-
* return `${args.city} 的天气是晴天`;
|
|
87
|
-
* })
|
|
88
|
-
* // 可选:命令回调(与 MessageCommand.action 一致)
|
|
89
|
-
* // 如果定义了此回调,会生成 Command
|
|
90
|
-
* .action(async (message, result) => {
|
|
91
|
-
* return `命令执行: ${result.params.city}`;
|
|
92
|
-
* });
|
|
93
|
-
*
|
|
94
|
-
* plugin.addTool(weatherTool);
|
|
95
|
-
* ```
|
|
96
52
|
*/
|
|
97
53
|
export declare class ZhinTool {
|
|
98
54
|
#private;
|
|
99
|
-
/**
|
|
100
|
-
* 创建工具实例
|
|
101
|
-
* @param name 工具名称(唯一标识,建议使用 snake_case)
|
|
102
|
-
*/
|
|
103
55
|
constructor(name: string);
|
|
104
|
-
/** 获取工具名称 */
|
|
105
56
|
get name(): string;
|
|
106
|
-
/** 获取工具描述 */
|
|
107
57
|
get description(): string;
|
|
108
|
-
/** 获取有序的参数列表 */
|
|
109
58
|
get params(): ParamDef[];
|
|
110
|
-
/**
|
|
111
|
-
* 设置工具描述
|
|
112
|
-
* @param description 工具描述(供 AI 和帮助系统使用)
|
|
113
|
-
*/
|
|
114
59
|
desc(description: string): this;
|
|
115
|
-
/**
|
|
116
|
-
* 添加参数(按调用顺序保持有序)
|
|
117
|
-
* @param name 参数名称
|
|
118
|
-
* @param schema 参数 Schema(类型、描述等)
|
|
119
|
-
* @param required 是否必填(默认 false)
|
|
120
|
-
*/
|
|
121
60
|
param(name: string, schema: PropertySchema, required?: boolean): this;
|
|
122
|
-
/**
|
|
123
|
-
* 设置支持的平台
|
|
124
|
-
* @param platforms 平台名称列表(如 'qq', 'telegram')
|
|
125
|
-
*/
|
|
126
61
|
platform(...platforms: string[]): this;
|
|
127
|
-
/**
|
|
128
|
-
* 设置支持的场景
|
|
129
|
-
* @param scopes 场景类型列表('private', 'group', 'channel')
|
|
130
|
-
*/
|
|
131
62
|
scope(...scopes: ToolScope[]): this;
|
|
132
|
-
/**
|
|
133
|
-
* 设置权限级别
|
|
134
|
-
* @param level 权限级别('user', 'group_admin', 'group_owner', 'bot_admin', 'owner')
|
|
135
|
-
*/
|
|
136
63
|
permission(level: ToolPermissionLevel): this;
|
|
137
|
-
/**
|
|
138
|
-
* 添加旧版权限要求(兼容 MessageCommand)
|
|
139
|
-
* @param permissions 权限字符串列表
|
|
140
|
-
*/
|
|
141
64
|
permit(...permissions: string[]): this;
|
|
142
|
-
/**
|
|
143
|
-
* 添加标签
|
|
144
|
-
* @param tags 标签列表
|
|
145
|
-
*/
|
|
146
65
|
tag(...tags: string[]): this;
|
|
147
|
-
|
|
148
|
-
* 设置是否隐藏
|
|
149
|
-
* @param value 是否隐藏(默认 true)
|
|
150
|
-
*/
|
|
66
|
+
keyword(...keywords: string[]): this;
|
|
151
67
|
hidden(value?: boolean): this;
|
|
152
|
-
/**
|
|
153
|
-
* 设置使用说明(命令配置)
|
|
154
|
-
* @param usage 使用说明列表
|
|
155
|
-
*/
|
|
156
68
|
usage(...usage: string[]): this;
|
|
157
|
-
/**
|
|
158
|
-
* 设置示例(命令配置)
|
|
159
|
-
* @param examples 示例列表
|
|
160
|
-
*/
|
|
161
69
|
examples(...examples: string[]): this;
|
|
162
|
-
/**
|
|
163
|
-
* 设置别名(命令配置)
|
|
164
|
-
* @param alias 别名列表
|
|
165
|
-
*/
|
|
166
70
|
alias(...alias: string[]): this;
|
|
167
|
-
/**
|
|
168
|
-
* 设置自定义命令模式
|
|
169
|
-
* @param pattern 命令模式(如 'weather <city> [days]')
|
|
170
|
-
*/
|
|
171
71
|
pattern(pattern: string): this;
|
|
172
|
-
/**
|
|
173
|
-
* 设置 AI 工具执行函数
|
|
174
|
-
* @param callback 执行回调,入参是 (args, context)
|
|
175
|
-
*/
|
|
176
72
|
execute(callback: (args: Record<string, any>, context?: ToolContext) => MaybePromise<any>): this;
|
|
177
|
-
/**
|
|
178
|
-
* 设置命令回调(可选,与 MessageCommand.action 一致)
|
|
179
|
-
* 如果定义了此回调,会自动生成 Command
|
|
180
|
-
* 入参是 (message, matchResult)
|
|
181
|
-
*
|
|
182
|
-
* @param callback 命令回调
|
|
183
|
-
*/
|
|
184
73
|
action(callback: MessageCommand.Callback<RegisteredAdapter>): this;
|
|
185
|
-
/**
|
|
186
|
-
* 转换为 Tool 对象
|
|
187
|
-
*/
|
|
188
74
|
toTool(): Tool;
|
|
189
|
-
/**
|
|
190
|
-
* 获取 action 回调(命令回调,如果有)
|
|
191
|
-
*/
|
|
192
75
|
getActionCallback(): MessageCommand.Callback<RegisteredAdapter> | undefined;
|
|
193
|
-
/**
|
|
194
|
-
* 转换为 JSON 格式(供 AI 使用,不包含 execute 函数)
|
|
195
|
-
* 符合 OpenAI Function Calling 规范
|
|
196
|
-
*/
|
|
197
76
|
toJSON(): {
|
|
198
77
|
name: string;
|
|
199
78
|
description: string;
|
|
@@ -203,13 +82,7 @@ export declare class ZhinTool {
|
|
|
203
82
|
permissionLevel?: ToolPermissionLevel;
|
|
204
83
|
tags?: string[];
|
|
205
84
|
};
|
|
206
|
-
/**
|
|
207
|
-
* 输出帮助信息(类似 MessageCommand)
|
|
208
|
-
*/
|
|
209
85
|
get help(): string;
|
|
210
|
-
/**
|
|
211
|
-
* 输出简短信息
|
|
212
|
-
*/
|
|
213
86
|
toString(): string;
|
|
214
87
|
}
|
|
215
88
|
export declare function isZhinTool(obj: any): obj is ZhinTool;
|
|
@@ -218,7 +91,7 @@ export declare function isZhinTool(obj: any): obj is ZhinTool;
|
|
|
218
91
|
*/
|
|
219
92
|
export type ToolInput = Tool | ZhinTool;
|
|
220
93
|
/**
|
|
221
|
-
*
|
|
94
|
+
* ToolContext 扩展方法类型
|
|
222
95
|
*/
|
|
223
96
|
export interface ToolContextExtensions {
|
|
224
97
|
/** 添加工具(自动生成命令) */
|
|
@@ -231,51 +104,85 @@ declare module "../plugin.js" {
|
|
|
231
104
|
interface Extensions extends ToolContextExtensions {
|
|
232
105
|
}
|
|
233
106
|
interface Contexts {
|
|
234
|
-
tool:
|
|
107
|
+
tool: ToolFeature;
|
|
235
108
|
}
|
|
236
109
|
}
|
|
237
110
|
}
|
|
238
111
|
/**
|
|
239
|
-
*
|
|
112
|
+
* 将 Tool 转换为 MessageCommand
|
|
113
|
+
*/
|
|
114
|
+
declare function toolToCommand(tool: Tool): MessageCommand<RegisteredAdapter>;
|
|
115
|
+
/**
|
|
116
|
+
* 将 MessageCommand 转换为 Tool
|
|
240
117
|
*/
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
readonly
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
118
|
+
declare function commandToToolFn(command: MessageCommand<RegisteredAdapter>, pluginName: string): Tool;
|
|
119
|
+
export declare class ToolFeature extends Feature<Tool> {
|
|
120
|
+
#private;
|
|
121
|
+
readonly name: "tool";
|
|
122
|
+
readonly icon = "Wrench";
|
|
123
|
+
readonly desc = "\u5DE5\u5177";
|
|
124
|
+
/** 按名称索引 */
|
|
125
|
+
readonly byName: Map<string, Tool>;
|
|
126
|
+
/** 工具对应的命令 */
|
|
127
|
+
readonly toolCommands: Map<string, MessageCommand<"process">>;
|
|
128
|
+
/**
|
|
129
|
+
* 添加工具
|
|
130
|
+
* @param toolInput 工具或 ZhinTool 实例
|
|
131
|
+
* @param pluginName 注册插件名
|
|
132
|
+
* @param generateCommand 是否生成命令(默认 true)
|
|
133
|
+
*/
|
|
134
|
+
addTool(toolInput: ToolInput, pluginName: string, generateCommand?: boolean): () => void;
|
|
135
|
+
/**
|
|
136
|
+
* 移除工具
|
|
137
|
+
*/
|
|
138
|
+
removeTool(name: string): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* 获取工具
|
|
141
|
+
*/
|
|
251
142
|
get(name: string): Tool | undefined;
|
|
252
|
-
/**
|
|
143
|
+
/**
|
|
144
|
+
* 获取所有工具
|
|
145
|
+
*/
|
|
253
146
|
getAll(): Tool[];
|
|
254
|
-
/**
|
|
147
|
+
/**
|
|
148
|
+
* 根据标签过滤工具
|
|
149
|
+
*/
|
|
255
150
|
getByTags(tags: string[]): Tool[];
|
|
256
|
-
/**
|
|
151
|
+
/**
|
|
152
|
+
* 执行工具
|
|
153
|
+
*/
|
|
257
154
|
execute(name: string, args: Record<string, any>, context?: ToolContext): Promise<any>;
|
|
258
|
-
/**
|
|
155
|
+
/**
|
|
156
|
+
* 将 Command 转换为 Tool
|
|
157
|
+
*/
|
|
259
158
|
commandToTool(command: MessageCommand<RegisteredAdapter>, pluginName: string): Tool;
|
|
260
|
-
/**
|
|
159
|
+
/**
|
|
160
|
+
* 收集所有可用工具(包括从 Command 转换的)
|
|
161
|
+
*/
|
|
261
162
|
collectAll(plugin: Plugin): Tool[];
|
|
262
163
|
/**
|
|
263
164
|
* 根据上下文过滤工具
|
|
264
|
-
* 检查平台、场景、权限是否匹配
|
|
265
165
|
*/
|
|
266
166
|
filterByContext(tools: Tool[], context: ToolContext): Tool[];
|
|
167
|
+
/**
|
|
168
|
+
* 按插件名获取工具
|
|
169
|
+
*/
|
|
170
|
+
getToolsByPlugin(pluginName: string): Tool[];
|
|
171
|
+
/**
|
|
172
|
+
* 兼容旧接口:tools Map
|
|
173
|
+
*/
|
|
174
|
+
get tools(): Map<string, Tool>;
|
|
175
|
+
/**
|
|
176
|
+
* 序列化为 JSON
|
|
177
|
+
*/
|
|
178
|
+
toJSON(pluginName?: string): FeatureJSON;
|
|
179
|
+
/**
|
|
180
|
+
* 提供给 Plugin.prototype 的扩展方法
|
|
181
|
+
*/
|
|
182
|
+
get extensions(): {
|
|
183
|
+
addTool(tool: ToolInput): () => void;
|
|
184
|
+
addToolOnly(tool: ToolInput): () => void;
|
|
185
|
+
};
|
|
267
186
|
}
|
|
268
|
-
|
|
269
|
-
* 将 Tool 转换为 MessageCommand
|
|
270
|
-
*/
|
|
271
|
-
declare function toolToCommand(tool: Tool): MessageCommand<RegisteredAdapter>;
|
|
272
|
-
/**
|
|
273
|
-
* 将 MessageCommand 转换为 Tool
|
|
274
|
-
*/
|
|
275
|
-
declare function commandToTool(command: MessageCommand<RegisteredAdapter>, pluginName: string): Tool;
|
|
276
|
-
/**
|
|
277
|
-
* 创建工具服务 Context
|
|
278
|
-
*/
|
|
279
|
-
export declare function createToolService(): Context<'tool', ToolContextExtensions>;
|
|
280
|
-
export { toolToCommand, commandToTool, canAccessTool, inferPermissionLevel, hasPermissionLevel, PERMISSION_LEVEL_PRIORITY, };
|
|
187
|
+
export { toolToCommand, commandToToolFn as commandToTool, canAccessTool, inferPermissionLevel, hasPermissionLevel, PERMISSION_LEVEL_PRIORITY, };
|
|
281
188
|
//# sourceMappingURL=tool.d.ts.map
|
package/lib/built/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/built/tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/built/tool.ts"],"names":[],"mappings":"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"}
|