@zhin.js/core 1.0.51 → 1.0.52
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 +12 -0
- package/README.md +1 -1
- package/lib/adapter.d.ts +10 -19
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +47 -80
- package/lib/adapter.js.map +1 -1
- package/lib/built/common-adapter-tools.d.ts +2 -2
- package/lib/built/common-adapter-tools.js +3 -3
- package/lib/built/common-adapter-tools.js.map +1 -1
- package/lib/built/dispatcher.d.ts +52 -42
- package/lib/built/dispatcher.d.ts.map +1 -1
- package/lib/built/dispatcher.js +194 -60
- package/lib/built/dispatcher.js.map +1 -1
- package/lib/built/skill.d.ts +3 -20
- package/lib/built/skill.d.ts.map +1 -1
- package/lib/built/skill.js +1 -53
- package/lib/built/skill.js.map +1 -1
- package/lib/plugin.d.ts +2 -0
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +1 -1
- package/lib/plugin.js.map +1 -1
- package/lib/types.d.ts +13 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/utils.js +1 -1
- package/package.json +6 -6
- package/src/adapter.ts +51 -95
- package/src/built/common-adapter-tools.ts +3 -3
- package/src/built/dispatcher.ts +264 -99
- package/src/built/skill.ts +3 -75
- package/src/plugin.ts +11 -5
- package/src/types.ts +16 -0
- package/src/utils.ts +1 -1
- package/tests/adapter.test.ts +40 -128
- package/tests/dispatcher.test.ts +155 -8
- package/tests/redos-protection.test.ts +5 -4
package/lib/built/dispatcher.js
CHANGED
|
@@ -11,32 +11,52 @@
|
|
|
11
11
|
* ▼
|
|
12
12
|
* ┌────────────────────────────────────────┐
|
|
13
13
|
* │ Stage 2: Route(路径判定) │
|
|
14
|
-
* │
|
|
15
|
-
* │
|
|
14
|
+
* │ exclusive:命令与 AI 互斥(旧行为) │
|
|
15
|
+
* │ dual:命令与 AI 独立判定,可同时命中 │
|
|
16
16
|
* └──────────────┬─────────────────────────┘
|
|
17
17
|
* ▼
|
|
18
18
|
* ┌────────────────────────────────────────┐
|
|
19
19
|
* │ Stage 3: Handle(处理) │
|
|
20
20
|
* │ Command: commandService.handle() │
|
|
21
21
|
* │ AI: aiHandler (由 AI 模块注册) │
|
|
22
|
+
* │ 出站:replyWithPolish → $reply → Adapter.sendMessage → before.sendMessage │
|
|
22
23
|
* └────────────────────────────────────────┘
|
|
23
24
|
*
|
|
24
25
|
* 注意:Context key 为 'dispatcher',避免与 HTTP 模块的 'router' 冲突。
|
|
26
|
+
*
|
|
27
|
+
* 默认路由为 exclusive(命令与 AI 互斥);需双轨时请显式 dualRoute.mode: 'dual'。
|
|
25
28
|
*/
|
|
29
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
26
30
|
import { getPlugin } from '../plugin.js';
|
|
31
|
+
/** Dispatcher 管理的「会话回复」异步上下文,供 `before.sendMessage` 内读取(与 Adapter.renderSendMessage 同链) */
|
|
32
|
+
const outboundReplyAls = new AsyncLocalStorage();
|
|
33
|
+
export function getOutboundReplyStore() {
|
|
34
|
+
return outboundReplyAls.getStore();
|
|
35
|
+
}
|
|
36
|
+
const DUAL_ROUTE_DEFAULTS = {
|
|
37
|
+
mode: 'exclusive',
|
|
38
|
+
order: 'command-first',
|
|
39
|
+
allowDualReply: false,
|
|
40
|
+
};
|
|
41
|
+
function resolveDualRouteConfig(partial) {
|
|
42
|
+
return {
|
|
43
|
+
mode: partial?.mode ?? DUAL_ROUTE_DEFAULTS.mode,
|
|
44
|
+
order: partial?.order ?? DUAL_ROUTE_DEFAULTS.order,
|
|
45
|
+
allowDualReply: partial?.allowDualReply ?? DUAL_ROUTE_DEFAULTS.allowDualReply,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
27
48
|
// ============================================================================
|
|
28
49
|
// 实现
|
|
29
50
|
// ============================================================================
|
|
30
|
-
|
|
31
|
-
* 创建 MessageDispatcher Context
|
|
32
|
-
*/
|
|
33
|
-
export function createMessageDispatcher() {
|
|
51
|
+
export function createMessageDispatcher(options) {
|
|
34
52
|
const guardrails = [];
|
|
53
|
+
/** mounted 前注册的润色,在 mounted 时挂到 root.before.sendMessage */
|
|
54
|
+
const pendingOutboundPolish = [];
|
|
35
55
|
let aiHandler = null;
|
|
36
56
|
let aiTriggerMatcher = null;
|
|
37
57
|
let commandMatcher = null;
|
|
38
58
|
let rootPlugin = null;
|
|
39
|
-
|
|
59
|
+
let dualRoute = resolveDualRouteConfig(options?.dualRoute);
|
|
40
60
|
let commandPrefixIndex = null;
|
|
41
61
|
let lastCommandCount = -1;
|
|
42
62
|
function rebuildCommandIndex() {
|
|
@@ -62,16 +82,15 @@ export function createMessageDispatcher() {
|
|
|
62
82
|
}
|
|
63
83
|
return commandPrefixIndex;
|
|
64
84
|
}
|
|
65
|
-
/**
|
|
66
|
-
* Guardrail pipeline — a guardrail that does NOT call next() blocks the message.
|
|
67
|
-
*/
|
|
68
85
|
async function runGuardrails(message) {
|
|
69
86
|
if (guardrails.length === 0)
|
|
70
87
|
return true;
|
|
71
88
|
for (const guardrail of guardrails) {
|
|
72
89
|
let nextCalled = false;
|
|
73
90
|
try {
|
|
74
|
-
await guardrail(message, async () => {
|
|
91
|
+
await guardrail(message, async () => {
|
|
92
|
+
nextCalled = true;
|
|
93
|
+
});
|
|
75
94
|
}
|
|
76
95
|
catch {
|
|
77
96
|
return false;
|
|
@@ -81,12 +100,42 @@ export function createMessageDispatcher() {
|
|
|
81
100
|
}
|
|
82
101
|
return true;
|
|
83
102
|
}
|
|
84
|
-
function
|
|
103
|
+
function extractText(message) {
|
|
104
|
+
if (!message.$content)
|
|
105
|
+
return '';
|
|
106
|
+
return message.$content
|
|
107
|
+
.map((seg) => {
|
|
108
|
+
if (typeof seg === 'string')
|
|
109
|
+
return seg;
|
|
110
|
+
if (seg.type === 'text')
|
|
111
|
+
return seg.data?.text || '';
|
|
112
|
+
return '';
|
|
113
|
+
})
|
|
114
|
+
.join('')
|
|
115
|
+
.trim();
|
|
116
|
+
}
|
|
117
|
+
function matchCommandInternal(message) {
|
|
118
|
+
const text = extractText(message);
|
|
119
|
+
if (commandMatcher && commandMatcher(text, message))
|
|
120
|
+
return true;
|
|
121
|
+
const index = getCommandIndex();
|
|
122
|
+
for (const [prefix] of index) {
|
|
123
|
+
if (text.startsWith(prefix))
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
function matchAIInternal(message) {
|
|
129
|
+
if (!aiTriggerMatcher)
|
|
130
|
+
return { triggered: false, content: '' };
|
|
131
|
+
return aiTriggerMatcher(message);
|
|
132
|
+
}
|
|
133
|
+
/** 互斥路由(与旧版 route 一致) */
|
|
134
|
+
function routeExclusive(message) {
|
|
85
135
|
const text = extractText(message);
|
|
86
136
|
if (commandMatcher && commandMatcher(text, message)) {
|
|
87
137
|
return { type: 'command' };
|
|
88
138
|
}
|
|
89
|
-
// Use indexed lookup instead of O(N) scan
|
|
90
139
|
const index = getCommandIndex();
|
|
91
140
|
for (const [prefix] of index) {
|
|
92
141
|
if (text.startsWith(prefix)) {
|
|
@@ -101,62 +150,111 @@ export function createMessageDispatcher() {
|
|
|
101
150
|
}
|
|
102
151
|
return { type: 'skip' };
|
|
103
152
|
}
|
|
104
|
-
function
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
153
|
+
function wrapPolishAsBeforeSend(handler) {
|
|
154
|
+
return async (options) => {
|
|
155
|
+
const store = outboundReplyAls.getStore();
|
|
156
|
+
if (!store)
|
|
157
|
+
return;
|
|
158
|
+
const ctx = {
|
|
159
|
+
message: store.message,
|
|
160
|
+
content: options.content,
|
|
161
|
+
source: store.source,
|
|
162
|
+
};
|
|
163
|
+
const next = await handler(ctx);
|
|
164
|
+
if (next !== undefined)
|
|
165
|
+
return { ...options, content: next };
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function flushPendingOutboundPolish() {
|
|
169
|
+
if (!rootPlugin)
|
|
170
|
+
return;
|
|
171
|
+
const root = rootPlugin.root;
|
|
172
|
+
for (const mw of pendingOutboundPolish) {
|
|
173
|
+
const fn = wrapPolishAsBeforeSend(mw);
|
|
174
|
+
root.on('before.sendMessage', fn);
|
|
175
|
+
}
|
|
176
|
+
pendingOutboundPolish.length = 0;
|
|
177
|
+
}
|
|
178
|
+
async function replyWithPolishInternal(message, source, content) {
|
|
179
|
+
if (!rootPlugin) {
|
|
180
|
+
return message.$reply(content);
|
|
181
|
+
}
|
|
182
|
+
return outboundReplyAls.run({ message, source }, () => message.$reply(content));
|
|
183
|
+
}
|
|
184
|
+
async function runCommandBranch(message) {
|
|
185
|
+
if (!rootPlugin)
|
|
186
|
+
return;
|
|
187
|
+
const commandService = rootPlugin.inject('command');
|
|
188
|
+
if (!commandService)
|
|
189
|
+
return;
|
|
190
|
+
const response = await commandService.handle(message, rootPlugin);
|
|
191
|
+
if (response) {
|
|
192
|
+
await replyWithPolishInternal(message, 'command', response);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
async function runCustomMiddlewares(message) {
|
|
196
|
+
if (!rootPlugin)
|
|
197
|
+
return;
|
|
198
|
+
const customMiddlewares = rootPlugin._getCustomMiddlewares?.();
|
|
199
|
+
if (customMiddlewares && customMiddlewares.length > 0) {
|
|
200
|
+
const { compose } = await import('../utils.js');
|
|
201
|
+
const composed = compose(customMiddlewares);
|
|
202
|
+
await composed(message, async () => { });
|
|
203
|
+
}
|
|
117
204
|
}
|
|
118
205
|
const service = {
|
|
119
206
|
async dispatch(message) {
|
|
120
|
-
// Stage 1: Guardrail
|
|
121
207
|
const passed = await runGuardrails(message);
|
|
122
208
|
if (!passed)
|
|
123
209
|
return;
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
break;
|
|
210
|
+
const cfg = dualRoute;
|
|
211
|
+
if (cfg.mode === 'exclusive') {
|
|
212
|
+
const result = routeExclusive(message);
|
|
213
|
+
switch (result.type) {
|
|
214
|
+
case 'command':
|
|
215
|
+
await runCommandBranch(message);
|
|
216
|
+
break;
|
|
217
|
+
case 'ai':
|
|
218
|
+
if (aiHandler)
|
|
219
|
+
await aiHandler(message, result.content);
|
|
220
|
+
break;
|
|
221
|
+
default:
|
|
222
|
+
break;
|
|
139
223
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
await aiHandler(message, result.content);
|
|
143
|
-
}
|
|
144
|
-
break;
|
|
145
|
-
}
|
|
146
|
-
case 'skip':
|
|
147
|
-
default:
|
|
148
|
-
break;
|
|
224
|
+
await runCustomMiddlewares(message);
|
|
225
|
+
return;
|
|
149
226
|
}
|
|
150
|
-
//
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
227
|
+
// dual 模式
|
|
228
|
+
let wantCmd = matchCommandInternal(message);
|
|
229
|
+
const aiRes = matchAIInternal(message);
|
|
230
|
+
let wantAi = aiRes.triggered;
|
|
231
|
+
if (!wantCmd && !wantAi) {
|
|
232
|
+
await runCustomMiddlewares(message);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
if (!cfg.allowDualReply && wantCmd && wantAi) {
|
|
236
|
+
if (cfg.order === 'command-first')
|
|
237
|
+
wantAi = false;
|
|
238
|
+
else
|
|
239
|
+
wantCmd = false;
|
|
159
240
|
}
|
|
241
|
+
const runCmd = async () => {
|
|
242
|
+
if (wantCmd)
|
|
243
|
+
await runCommandBranch(message);
|
|
244
|
+
};
|
|
245
|
+
const runAi = async () => {
|
|
246
|
+
if (wantAi && aiHandler)
|
|
247
|
+
await aiHandler(message, aiRes.content);
|
|
248
|
+
};
|
|
249
|
+
if (cfg.order === 'ai-first') {
|
|
250
|
+
await runAi();
|
|
251
|
+
await runCmd();
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
await runCmd();
|
|
255
|
+
await runAi();
|
|
256
|
+
}
|
|
257
|
+
await runCustomMiddlewares(message);
|
|
160
258
|
},
|
|
161
259
|
addGuardrail(guardrail) {
|
|
162
260
|
guardrails.push(guardrail);
|
|
@@ -178,6 +276,35 @@ export function createMessageDispatcher() {
|
|
|
178
276
|
hasAIHandler() {
|
|
179
277
|
return aiHandler !== null;
|
|
180
278
|
},
|
|
279
|
+
setDualRouteConfig(config) {
|
|
280
|
+
dualRoute = resolveDualRouteConfig({ ...dualRoute, ...config });
|
|
281
|
+
},
|
|
282
|
+
getDualRouteConfig() {
|
|
283
|
+
return { ...dualRoute };
|
|
284
|
+
},
|
|
285
|
+
addOutboundPolish(handler) {
|
|
286
|
+
const fn = wrapPolishAsBeforeSend(handler);
|
|
287
|
+
if (rootPlugin) {
|
|
288
|
+
const root = rootPlugin.root;
|
|
289
|
+
root.on('before.sendMessage', fn);
|
|
290
|
+
return () => root.off('before.sendMessage', fn);
|
|
291
|
+
}
|
|
292
|
+
pendingOutboundPolish.push(handler);
|
|
293
|
+
return () => {
|
|
294
|
+
const i = pendingOutboundPolish.indexOf(handler);
|
|
295
|
+
if (i !== -1)
|
|
296
|
+
pendingOutboundPolish.splice(i, 1);
|
|
297
|
+
};
|
|
298
|
+
},
|
|
299
|
+
replyWithPolish(message, source, content) {
|
|
300
|
+
return replyWithPolishInternal(message, source, content);
|
|
301
|
+
},
|
|
302
|
+
matchCommand(message) {
|
|
303
|
+
return matchCommandInternal(message);
|
|
304
|
+
},
|
|
305
|
+
matchAI(message) {
|
|
306
|
+
return matchAIInternal(message);
|
|
307
|
+
},
|
|
181
308
|
};
|
|
182
309
|
return {
|
|
183
310
|
name: 'dispatcher',
|
|
@@ -185,6 +312,7 @@ export function createMessageDispatcher() {
|
|
|
185
312
|
value: service,
|
|
186
313
|
mounted(plugin) {
|
|
187
314
|
rootPlugin = plugin.root;
|
|
315
|
+
flushPendingOutboundPolish();
|
|
188
316
|
return service;
|
|
189
317
|
},
|
|
190
318
|
extensions: {
|
|
@@ -194,6 +322,12 @@ export function createMessageDispatcher() {
|
|
|
194
322
|
plugin.onDispose(dispose);
|
|
195
323
|
return dispose;
|
|
196
324
|
},
|
|
325
|
+
addOutboundPolish(handler) {
|
|
326
|
+
const plugin = getPlugin();
|
|
327
|
+
const dispose = service.addOutboundPolish(handler);
|
|
328
|
+
plugin.onDispose(dispose);
|
|
329
|
+
return dispose;
|
|
330
|
+
},
|
|
197
331
|
},
|
|
198
332
|
};
|
|
199
333
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/built/dispatcher.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/built/dispatcher.ts"],"names":[],"mappings":"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"}
|
package/lib/built/skill.d.ts
CHANGED
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
* Plugin = 运行时容器(生命周期、服务注册、中间件)
|
|
6
6
|
* Skill = AI 可见的能力接口(名称、描述、工具列表)
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
* "我叫什么、我能做什么、我有哪些工具"
|
|
8
|
+
* Skill 记录由运行时注入(如 Agent 从磁盘 SKILL.md 同步),供 Agent 粗筛与工具关联。
|
|
10
9
|
*
|
|
11
10
|
* SkillFeature 全局收集所有 Skill,供 Agent 进行两级过滤:
|
|
12
11
|
* 1. 粗筛:根据用户消息选择相关 Skill
|
|
@@ -38,28 +37,18 @@ export interface Skill {
|
|
|
38
37
|
pluginName: string;
|
|
39
38
|
}
|
|
40
39
|
/**
|
|
41
|
-
*
|
|
42
|
-
* 由 plugin.declareSkill() 注册
|
|
40
|
+
* SKILL.md frontmatter 常见字段(类型提示;运行时由 Agent 等同步到 SkillFeature)
|
|
43
41
|
*/
|
|
44
42
|
export interface SkillMetadata {
|
|
45
43
|
/** 技能描述(必填) */
|
|
46
44
|
description: string;
|
|
47
|
-
/**
|
|
45
|
+
/** 触发关键词(可选) */
|
|
48
46
|
keywords?: string[];
|
|
49
47
|
/** 分类标签(可选) */
|
|
50
48
|
tags?: string[];
|
|
51
49
|
}
|
|
52
|
-
export interface SkillContextExtensions {
|
|
53
|
-
/**
|
|
54
|
-
* 声明本插件的 Skill 元数据
|
|
55
|
-
* 调用后,插件的工具会自动聚合为一个 Skill 注册到 SkillFeature
|
|
56
|
-
*/
|
|
57
|
-
declareSkill(metadata: SkillMetadata): void;
|
|
58
|
-
}
|
|
59
50
|
declare module '../plugin.js' {
|
|
60
51
|
namespace Plugin {
|
|
61
|
-
interface Extensions extends SkillContextExtensions {
|
|
62
|
-
}
|
|
63
52
|
interface Contexts {
|
|
64
53
|
skill: SkillFeature;
|
|
65
54
|
}
|
|
@@ -107,11 +96,5 @@ export declare class SkillFeature extends Feature<Skill> {
|
|
|
107
96
|
* 序列化为 JSON
|
|
108
97
|
*/
|
|
109
98
|
toJSON(pluginName?: string): FeatureJSON;
|
|
110
|
-
/**
|
|
111
|
-
* 提供给 Plugin.prototype 的扩展方法
|
|
112
|
-
*/
|
|
113
|
-
get extensions(): {
|
|
114
|
-
declareSkill(metadata: SkillMetadata): void;
|
|
115
|
-
};
|
|
116
99
|
}
|
|
117
100
|
//# sourceMappingURL=skill.d.ts.map
|
package/lib/built/skill.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/built/skill.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/built/skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAMxC;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IAEpB,sBAAsB;IACtB,KAAK,EAAE,IAAI,EAAE,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe;IACf,WAAW,EAAE,MAAM,CAAC;IAEpB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,MAAM,CAAC;QACf,UAAU,QAAQ;YAChB,KAAK,EAAE,YAAY,CAAC;SACrB;KACF;CACF;AAMD,qBAAa,YAAa,SAAQ,OAAO,CAAC,KAAK,CAAC;;IAC9C,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,IAAI,kBAAQ;IAErB,YAAY;IACZ,QAAQ,CAAC,MAAM,qBAA4B;IAE3C;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,IAAI;IAKjD;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAK7B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIpC;;OAEG;IACH,MAAM,IAAI,KAAK,EAAE;IAIjB;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,EAAE;IAWjE;;OAEG;IACH,eAAe,IAAI,IAAI,EAAE;IAQzB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IA0CD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW;CAgBzC"}
|
package/lib/built/skill.js
CHANGED
|
@@ -5,15 +5,13 @@
|
|
|
5
5
|
* Plugin = 运行时容器(生命周期、服务注册、中间件)
|
|
6
6
|
* Skill = AI 可见的能力接口(名称、描述、工具列表)
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
* "我叫什么、我能做什么、我有哪些工具"
|
|
8
|
+
* Skill 记录由运行时注入(如 Agent 从磁盘 SKILL.md 同步),供 Agent 粗筛与工具关联。
|
|
10
9
|
*
|
|
11
10
|
* SkillFeature 全局收集所有 Skill,供 Agent 进行两级过滤:
|
|
12
11
|
* 1. 粗筛:根据用户消息选择相关 Skill
|
|
13
12
|
* 2. 细筛:从选中 Skill 内选择具体 Tool
|
|
14
13
|
*/
|
|
15
14
|
import { Feature } from '../feature.js';
|
|
16
|
-
import { getPlugin } from '../plugin.js';
|
|
17
15
|
// ============================================================================
|
|
18
16
|
// SkillFeature 实现
|
|
19
17
|
// ============================================================================
|
|
@@ -136,55 +134,5 @@ export class SkillFeature extends Feature {
|
|
|
136
134
|
})),
|
|
137
135
|
};
|
|
138
136
|
}
|
|
139
|
-
/**
|
|
140
|
-
* 提供给 Plugin.prototype 的扩展方法
|
|
141
|
-
*/
|
|
142
|
-
get extensions() {
|
|
143
|
-
const feature = this;
|
|
144
|
-
return {
|
|
145
|
-
declareSkill(metadata) {
|
|
146
|
-
const plugin = getPlugin();
|
|
147
|
-
const pluginName = plugin.name;
|
|
148
|
-
// 收集该插件注册的工具
|
|
149
|
-
const toolService = plugin.root.inject('tool');
|
|
150
|
-
let tools = [];
|
|
151
|
-
if (toolService && typeof toolService.getToolsByPlugin === 'function') {
|
|
152
|
-
tools = toolService.getToolsByPlugin(pluginName);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
tools = plugin.getAllTools?.() || [];
|
|
156
|
-
}
|
|
157
|
-
// 聚合关键词:开发者声明 + 工具自带
|
|
158
|
-
const allKeywords = new Set(metadata.keywords || []);
|
|
159
|
-
for (const tool of tools) {
|
|
160
|
-
if (tool.keywords) {
|
|
161
|
-
for (const kw of tool.keywords) {
|
|
162
|
-
allKeywords.add(kw);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// 聚合标签
|
|
167
|
-
const allTags = new Set(metadata.tags || []);
|
|
168
|
-
for (const tool of tools) {
|
|
169
|
-
if (tool.tags) {
|
|
170
|
-
for (const tag of tool.tags) {
|
|
171
|
-
allTags.add(tag);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
const skill = {
|
|
176
|
-
name: pluginName,
|
|
177
|
-
description: metadata.description,
|
|
178
|
-
tools,
|
|
179
|
-
keywords: Array.from(allKeywords),
|
|
180
|
-
tags: Array.from(allTags),
|
|
181
|
-
pluginName,
|
|
182
|
-
};
|
|
183
|
-
const dispose = feature.add(skill, pluginName);
|
|
184
|
-
plugin.recordFeatureContribution(feature.name, pluginName);
|
|
185
|
-
plugin.onDispose(dispose);
|
|
186
|
-
},
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
137
|
}
|
|
190
138
|
//# sourceMappingURL=skill.js.map
|
package/lib/built/skill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/built/skill.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/built/skill.ts"],"names":[],"mappings":"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"}
|
package/lib/plugin.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { ConfigFeature } from "./built/config.js";
|
|
|
11
11
|
import type { PermissionFeature } from "./built/permission.js";
|
|
12
12
|
import { Adapters } from "./adapter.js";
|
|
13
13
|
import { Notice } from "./notice.js";
|
|
14
|
+
import { Message } from "./message.js";
|
|
14
15
|
import { Request } from "./request.js";
|
|
15
16
|
import { Feature, FeatureJSON } from "./feature.js";
|
|
16
17
|
declare const contextsKey: unique symbol;
|
|
@@ -239,6 +240,7 @@ export declare namespace Plugin {
|
|
|
239
240
|
/** 登录辅助:有待办时触发 */
|
|
240
241
|
'bot.login.pending': [BotLoginPendingTask];
|
|
241
242
|
'notice.receive': [Notice];
|
|
243
|
+
'message.receive': [Message];
|
|
242
244
|
[key: `notice.${string}`]: [Notice];
|
|
243
245
|
'request.receive': [Request];
|
|
244
246
|
[key: `request.${string}`]: [Request];
|
package/lib/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
package/lib/plugin.js
CHANGED
|
@@ -801,7 +801,7 @@ export class Plugin extends EventEmitter {
|
|
|
801
801
|
'addMiddleware', 'useContext', 'inject', 'contextIsReady',
|
|
802
802
|
'start', 'stop', 'onMounted', 'onDispose',
|
|
803
803
|
'dispatch', 'broadcast', 'provide', 'import', 'reload', 'watch', 'info',
|
|
804
|
-
'recordFeatureContribution', 'getFeatures'
|
|
804
|
+
'recordFeatureContribution', 'getFeatures',
|
|
805
805
|
]);
|
|
806
806
|
/**
|
|
807
807
|
* 自动绑定核心方法(只在构造函数中调用一次)
|