@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.
Files changed (202) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +84 -342
  3. package/lib/adapter.d.ts +17 -0
  4. package/lib/adapter.d.ts.map +1 -1
  5. package/lib/adapter.js +84 -2
  6. package/lib/adapter.js.map +1 -1
  7. package/lib/ai/agent.d.ts +126 -0
  8. package/lib/ai/agent.d.ts.map +1 -0
  9. package/lib/ai/agent.js +645 -0
  10. package/lib/ai/agent.js.map +1 -0
  11. package/lib/ai/context-manager.d.ts +213 -0
  12. package/lib/ai/context-manager.d.ts.map +1 -0
  13. package/lib/ai/context-manager.js +313 -0
  14. package/lib/ai/context-manager.js.map +1 -0
  15. package/lib/ai/conversation-memory.d.ts +181 -0
  16. package/lib/ai/conversation-memory.d.ts.map +1 -0
  17. package/lib/ai/conversation-memory.js +581 -0
  18. package/lib/ai/conversation-memory.js.map +1 -0
  19. package/lib/ai/follow-up.d.ts +131 -0
  20. package/lib/ai/follow-up.d.ts.map +1 -0
  21. package/lib/ai/follow-up.js +265 -0
  22. package/lib/ai/follow-up.js.map +1 -0
  23. package/lib/ai/index.d.ts +29 -0
  24. package/lib/ai/index.d.ts.map +1 -0
  25. package/lib/ai/index.js +34 -0
  26. package/lib/ai/index.js.map +1 -0
  27. package/lib/ai/init.d.ts +30 -0
  28. package/lib/ai/init.d.ts.map +1 -0
  29. package/lib/ai/init.js +424 -0
  30. package/lib/ai/init.js.map +1 -0
  31. package/lib/ai/output.d.ts +93 -0
  32. package/lib/ai/output.d.ts.map +1 -0
  33. package/lib/ai/output.js +176 -0
  34. package/lib/ai/output.js.map +1 -0
  35. package/lib/ai/providers/anthropic.d.ts +23 -0
  36. package/lib/ai/providers/anthropic.d.ts.map +1 -0
  37. package/lib/ai/providers/anthropic.js +322 -0
  38. package/lib/ai/providers/anthropic.js.map +1 -0
  39. package/lib/ai/providers/base.d.ts +43 -0
  40. package/lib/ai/providers/base.d.ts.map +1 -0
  41. package/lib/ai/providers/base.js +135 -0
  42. package/lib/ai/providers/base.js.map +1 -0
  43. package/lib/ai/providers/index.d.ts +12 -0
  44. package/lib/ai/providers/index.d.ts.map +1 -0
  45. package/lib/ai/providers/index.js +9 -0
  46. package/lib/ai/providers/index.js.map +1 -0
  47. package/lib/ai/providers/ollama.d.ts +25 -0
  48. package/lib/ai/providers/ollama.d.ts.map +1 -0
  49. package/lib/ai/providers/ollama.js +243 -0
  50. package/lib/ai/providers/ollama.js.map +1 -0
  51. package/lib/ai/providers/openai.d.ts +46 -0
  52. package/lib/ai/providers/openai.d.ts.map +1 -0
  53. package/lib/ai/providers/openai.js +132 -0
  54. package/lib/ai/providers/openai.js.map +1 -0
  55. package/lib/ai/rate-limiter.d.ts +38 -0
  56. package/lib/ai/rate-limiter.d.ts.map +1 -0
  57. package/lib/ai/rate-limiter.js +86 -0
  58. package/lib/ai/rate-limiter.js.map +1 -0
  59. package/lib/ai/service.d.ts +81 -0
  60. package/lib/ai/service.d.ts.map +1 -0
  61. package/lib/ai/service.js +274 -0
  62. package/lib/ai/service.js.map +1 -0
  63. package/lib/ai/session.d.ts +186 -0
  64. package/lib/ai/session.d.ts.map +1 -0
  65. package/lib/ai/session.js +443 -0
  66. package/lib/ai/session.js.map +1 -0
  67. package/lib/ai/tone-detector.d.ts +19 -0
  68. package/lib/ai/tone-detector.d.ts.map +1 -0
  69. package/lib/ai/tone-detector.js +72 -0
  70. package/lib/ai/tone-detector.js.map +1 -0
  71. package/lib/ai/tools.d.ts +45 -0
  72. package/lib/ai/tools.d.ts.map +1 -0
  73. package/lib/ai/tools.js +206 -0
  74. package/lib/ai/tools.js.map +1 -0
  75. package/lib/ai/types.d.ts +264 -0
  76. package/lib/ai/types.d.ts.map +1 -0
  77. package/lib/ai/types.js +6 -0
  78. package/lib/ai/types.js.map +1 -0
  79. package/lib/ai/user-profile.d.ts +56 -0
  80. package/lib/ai/user-profile.d.ts.map +1 -0
  81. package/lib/ai/user-profile.js +130 -0
  82. package/lib/ai/user-profile.js.map +1 -0
  83. package/lib/ai/zhin-agent.d.ts +165 -0
  84. package/lib/ai/zhin-agent.d.ts.map +1 -0
  85. package/lib/ai/zhin-agent.js +707 -0
  86. package/lib/ai/zhin-agent.js.map +1 -0
  87. package/lib/built/ai-trigger.d.ts.map +1 -1
  88. package/lib/built/ai-trigger.js +7 -3
  89. package/lib/built/ai-trigger.js.map +1 -1
  90. package/lib/built/command.d.ts +33 -17
  91. package/lib/built/command.d.ts.map +1 -1
  92. package/lib/built/command.js +71 -44
  93. package/lib/built/command.js.map +1 -1
  94. package/lib/built/component.d.ts +42 -15
  95. package/lib/built/component.d.ts.map +1 -1
  96. package/lib/built/component.js +84 -52
  97. package/lib/built/component.js.map +1 -1
  98. package/lib/built/config.d.ts +64 -5
  99. package/lib/built/config.d.ts.map +1 -1
  100. package/lib/built/config.js +129 -12
  101. package/lib/built/config.js.map +1 -1
  102. package/lib/built/cron.d.ts +41 -18
  103. package/lib/built/cron.d.ts.map +1 -1
  104. package/lib/built/cron.js +106 -63
  105. package/lib/built/cron.js.map +1 -1
  106. package/lib/built/database.d.ts +55 -6
  107. package/lib/built/database.d.ts.map +1 -1
  108. package/lib/built/database.js +93 -22
  109. package/lib/built/database.js.map +1 -1
  110. package/lib/built/dispatcher.d.ts +118 -0
  111. package/lib/built/dispatcher.d.ts.map +1 -0
  112. package/lib/built/dispatcher.js +196 -0
  113. package/lib/built/dispatcher.js.map +1 -0
  114. package/lib/built/permission.d.ts +45 -5
  115. package/lib/built/permission.d.ts.map +1 -1
  116. package/lib/built/permission.js +56 -11
  117. package/lib/built/permission.js.map +1 -1
  118. package/lib/built/skill.d.ts +117 -0
  119. package/lib/built/skill.d.ts.map +1 -0
  120. package/lib/built/skill.js +191 -0
  121. package/lib/built/skill.js.map +1 -0
  122. package/lib/built/tool.d.ts +71 -164
  123. package/lib/built/tool.d.ts.map +1 -1
  124. package/lib/built/tool.js +212 -297
  125. package/lib/built/tool.js.map +1 -1
  126. package/lib/feature.d.ts +75 -0
  127. package/lib/feature.d.ts.map +1 -0
  128. package/lib/feature.js +69 -0
  129. package/lib/feature.js.map +1 -0
  130. package/lib/index.d.ts +4 -0
  131. package/lib/index.d.ts.map +1 -1
  132. package/lib/index.js +7 -0
  133. package/lib/index.js.map +1 -1
  134. package/lib/plugin.d.ts +25 -17
  135. package/lib/plugin.d.ts.map +1 -1
  136. package/lib/plugin.js +180 -20
  137. package/lib/plugin.js.map +1 -1
  138. package/lib/types.d.ts +4 -9
  139. package/lib/types.d.ts.map +1 -1
  140. package/package.json +6 -6
  141. package/src/adapter.ts +101 -2
  142. package/src/ai/agent.ts +772 -0
  143. package/src/ai/context-manager.ts +440 -0
  144. package/src/ai/conversation-memory.ts +774 -0
  145. package/src/ai/follow-up.ts +357 -0
  146. package/src/ai/index.ts +128 -0
  147. package/src/ai/init.ts +502 -0
  148. package/src/ai/output.ts +261 -0
  149. package/src/ai/providers/anthropic.ts +375 -0
  150. package/src/ai/providers/base.ts +173 -0
  151. package/src/ai/providers/index.ts +13 -0
  152. package/src/ai/providers/ollama.ts +292 -0
  153. package/src/ai/providers/openai.ts +167 -0
  154. package/src/ai/rate-limiter.ts +129 -0
  155. package/src/ai/service.ts +319 -0
  156. package/src/ai/session.ts +544 -0
  157. package/src/ai/tone-detector.ts +89 -0
  158. package/src/ai/tools.ts +218 -0
  159. package/src/ai/types.ts +296 -0
  160. package/src/ai/user-profile.ts +181 -0
  161. package/src/ai/zhin-agent.ts +845 -0
  162. package/src/built/ai-trigger.ts +6 -3
  163. package/src/built/command.ts +75 -69
  164. package/src/built/component.ts +94 -76
  165. package/src/built/config.ts +288 -128
  166. package/src/built/cron.ts +117 -101
  167. package/src/built/database.ts +128 -33
  168. package/src/built/dispatcher.ts +332 -0
  169. package/src/built/permission.ts +146 -54
  170. package/src/built/skill.ts +280 -0
  171. package/src/built/tool.ts +245 -366
  172. package/src/feature.ts +113 -0
  173. package/src/index.ts +7 -0
  174. package/src/plugin.ts +198 -33
  175. package/src/types.ts +6 -10
  176. package/tests/adapter.test.ts +153 -1
  177. package/tests/ai/agent.test.ts +614 -0
  178. package/tests/ai/ai-trigger.test.ts +368 -0
  179. package/tests/ai/context-manager.test.ts +413 -0
  180. package/tests/ai/conversation-memory.test.ts +128 -0
  181. package/tests/ai/follow-up.test.ts +175 -0
  182. package/tests/ai/integration.test.ts +584 -0
  183. package/tests/ai/output.test.ts +128 -0
  184. package/tests/ai/providers.integration.test.ts +227 -0
  185. package/tests/ai/rate-limiter.test.ts +108 -0
  186. package/tests/ai/session.test.ts +375 -0
  187. package/tests/ai/setup.ts +308 -0
  188. package/tests/ai/tone-detector.test.ts +80 -0
  189. package/tests/ai/tool.test.ts +800 -0
  190. package/tests/ai/tools-builtin.test.ts +346 -0
  191. package/tests/ai/user-profile.test.ts +73 -0
  192. package/tests/ai/zhin-agent.test.ts +177 -0
  193. package/tests/config.test.ts +46 -0
  194. package/tests/cron.test.ts +94 -5
  195. package/tests/dispatcher.test.ts +146 -0
  196. package/tests/feature.test.ts +145 -0
  197. package/tests/features-builtin.test.ts +191 -0
  198. package/tests/plugin.test.ts +88 -14
  199. package/tests/skill-feature.test.ts +179 -0
  200. package/tests/tool-feature.test.ts +254 -0
  201. package/test/minimal-bot.ts +0 -31
  202. package/test/stress-test.ts +0 -123
package/lib/plugin.js CHANGED
@@ -11,6 +11,7 @@ import { fileURLToPath } from "url";
11
11
  import logger from "@zhin.js/logger";
12
12
  import { compose, remove, resolveEntry } from "./utils.js";
13
13
  import { Adapter } from "./adapter.js";
14
+ import { Feature } from "./feature.js";
14
15
  import { createHash } from "crypto";
15
16
  const contextsKey = Symbol("contexts");
16
17
  const loadedModules = new Map(); // 记录已加载的模块
@@ -44,10 +45,17 @@ function getCurrentFile(metaUrl = import.meta.url) {
44
45
  /**
45
46
  * usePlugin - 获取或创建当前插件实例
46
47
  * 类似 React Hooks 的设计,根据调用文件自动创建插件树
48
+ *
49
+ * 同一个文件多次调用 usePlugin() 返回同一个实例,
50
+ * 避免 Plugin.create() + usePlugin() 产生不必要的双层包装。
47
51
  */
48
52
  export function usePlugin() {
49
53
  const callerFile = getCurrentFile();
50
54
  const parentPlugin = storage.getStore();
55
+ // 同一文件再次调用 usePlugin(),直接复用已有实例
56
+ if (parentPlugin && parentPlugin.filePath === callerFile) {
57
+ return parentPlugin;
58
+ }
51
59
  const newPlugin = new Plugin(callerFile, parentPlugin);
52
60
  storage.enterWith(newPlugin);
53
61
  return newPlugin;
@@ -131,6 +139,8 @@ export class Plugin extends EventEmitter {
131
139
  #tools = new Map();
132
140
  // 统一的清理函数集合
133
141
  #disposables = new Set();
142
+ // 记录当前插件向哪些 Feature 贡献了哪些 item
143
+ #featureContributions = new Map();
134
144
  get middleware() {
135
145
  return compose(this.#middlewares);
136
146
  }
@@ -184,10 +194,10 @@ export class Plugin extends EventEmitter {
184
194
  * @returns 返回一个移除工具的函数
185
195
  */
186
196
  addTool(tool, generateCommand = true) {
187
- // 尝试使用 ToolService
197
+ // 尝试使用 ToolFeature
188
198
  const toolService = this.root.inject('tool');
189
- if (toolService && typeof toolService.add === 'function') {
190
- const dispose = toolService.add(tool, this.name, generateCommand);
199
+ if (toolService && typeof toolService.addTool === 'function') {
200
+ const dispose = toolService.addTool(tool, this.name, generateCommand);
191
201
  this.#disposables.add(dispose);
192
202
  return () => {
193
203
  dispose();
@@ -379,8 +389,11 @@ export class Plugin extends EventEmitter {
379
389
  this.started = true; // 提前设置,防止重复启动
380
390
  // 启动所有服务
381
391
  for (const context of this.$contexts.values()) {
382
- if (typeof context.mounted === "function" && !context.value) {
383
- context.value = await context.mounted(this);
392
+ if (typeof context.mounted === "function") {
393
+ const result = await context.mounted(this);
394
+ // 仅当 value 未预设时才赋值(mounted 始终执行,以支持副作用如设置内部引用)
395
+ if (!context.value)
396
+ context.value = result;
384
397
  }
385
398
  this.dispatch('context.mounted', context.name);
386
399
  }
@@ -399,24 +412,146 @@ export class Plugin extends EventEmitter {
399
412
  }
400
413
  }
401
414
  /**
402
- * 获取插件提供的功能
403
- * 从各个服务中获取数据
415
+ * 记录 Feature 贡献(由 Feature extensions 内部调用)
416
+ * @param featureName Feature 名称(如 'command')
417
+ * @param itemName item 标识(如命令 pattern)
404
418
  */
405
- get features() {
406
- const commandService = this.inject('command');
407
- const componentService = this.inject('component');
408
- const cronService = this.inject('cron');
409
- return {
410
- commands: commandService ? commandService.items.map(c => c.pattern) : [],
411
- components: componentService ? componentService.getAllNames() : [],
412
- crons: cronService ? cronService.items.map(c => c.cronExpression) : [],
413
- middlewares: this.#middlewares.map((m, i) => m.name || `middleware_${i}`),
419
+ recordFeatureContribution(featureName, itemName) {
420
+ if (!this.#featureContributions.has(featureName)) {
421
+ this.#featureContributions.set(featureName, new Set());
422
+ }
423
+ this.#featureContributions.get(featureName).add(itemName);
424
+ }
425
+ /**
426
+ * 收集本插件及所有后代插件的 Feature 贡献名称
427
+ * 解决 Plugin.create() 包装问题:外层插件的 #featureContributions 为空,
428
+ * 实际贡献记录在 usePlugin() 创建的内层子插件上
429
+ */
430
+ #collectAllFeatureNames(names) {
431
+ for (const name of this.#featureContributions.keys()) {
432
+ names.add(name);
433
+ }
434
+ for (const child of this.children) {
435
+ child.#collectAllFeatureNames(names);
436
+ }
437
+ }
438
+ /**
439
+ * 收集本插件及所有后代插件的 plugin name 集合
440
+ * 用于 Feature.toJSON(pluginName) 匹配
441
+ */
442
+ #collectAllPluginNames(names) {
443
+ names.add(this.name);
444
+ for (const child of this.children) {
445
+ child.#collectAllPluginNames(names);
446
+ }
447
+ }
448
+ /**
449
+ * 获取当前插件的所有 Feature 数据(用于 HTTP API)
450
+ * 遍历插件贡献的 Feature,调用各 Feature 的 toJSON(pluginName) 获取序列化数据
451
+ * 同时包含 middleware(方案 B: 本地构造)
452
+ *
453
+ * 注意:Plugin.create() 创建 "外层" 插件,usePlugin() 创建 "内层" 子插件。
454
+ * extension 方法 (addCommand 等) 通过 getPlugin() 记录在内层插件上。
455
+ * 因此需要遍历整个子树来收集 feature 贡献名称。
456
+ */
457
+ getFeatures() {
458
+ const result = [];
459
+ // 收集本插件及所有后代插件的 feature 名称和 plugin 名称
460
+ const featureNames = new Set();
461
+ this.#collectAllFeatureNames(featureNames);
462
+ const pluginNames = new Set();
463
+ this.#collectAllPluginNames(pluginNames);
464
+ // 从 Feature 贡献中收集
465
+ for (const featureName of featureNames) {
466
+ const feature = this.inject(featureName);
467
+ if (feature instanceof Feature) {
468
+ // 先用当前插件名尝试
469
+ let json = feature.toJSON(this.name);
470
+ if (json.count === 0) {
471
+ // 当前插件名匹配不到(可能名称不同),尝试后代插件名
472
+ for (const pName of pluginNames) {
473
+ if (pName === this.name)
474
+ continue;
475
+ json = feature.toJSON(pName);
476
+ if (json.count > 0)
477
+ break;
478
+ }
479
+ }
480
+ if (json.count > 0) {
481
+ result.push(json);
482
+ }
483
+ }
484
+ }
485
+ // middleware(方案 B: 本地构造,因为 middleware 是 Plugin 私有属性)
486
+ // 同样需要收集子插件树中的 middleware
487
+ const allMiddlewareNames = [];
488
+ const collectMiddlewares = (plugin) => {
489
+ const mws = plugin.#middlewares
490
+ .filter(m => m !== plugin.#messageMiddleware)
491
+ .map((m, i) => m.name || `middleware_${i}`);
492
+ allMiddlewareNames.push(...mws);
493
+ for (const child of plugin.children) {
494
+ collectMiddlewares(child);
495
+ }
496
+ };
497
+ collectMiddlewares(this);
498
+ if (allMiddlewareNames.length > 0) {
499
+ result.push({
500
+ name: 'middleware',
501
+ icon: 'Layers',
502
+ desc: '中间件',
503
+ count: allMiddlewareNames.length,
504
+ items: allMiddlewareNames.map(name => ({ name })),
505
+ });
506
+ }
507
+ // 自动检测适配器和服务上下文(从 $contexts 中发现非 Feature 的贡献)
508
+ const adapterItems = [];
509
+ const serviceItems = [];
510
+ const scanContexts = (plugin) => {
511
+ for (const [name, context] of plugin.$contexts) {
512
+ const value = context.value;
513
+ if (value instanceof Adapter) {
514
+ adapterItems.push({
515
+ name,
516
+ bots: value.bots.size,
517
+ online: Array.from(value.bots.values()).filter(b => b.$connected).length,
518
+ tools: value.tools.size,
519
+ });
520
+ }
521
+ else if (value !== undefined && !(value instanceof Feature)) {
522
+ // 非 Feature、非 Adapter 的上下文 = 服务
523
+ serviceItems.push({ name, desc: context.description || name });
524
+ }
525
+ }
526
+ for (const child of plugin.children) {
527
+ scanContexts(child);
528
+ }
414
529
  };
530
+ scanContexts(this);
531
+ if (adapterItems.length > 0) {
532
+ result.push({
533
+ name: 'adapter',
534
+ icon: 'Plug',
535
+ desc: '适配器',
536
+ count: adapterItems.length,
537
+ items: adapterItems,
538
+ });
539
+ }
540
+ if (serviceItems.length > 0) {
541
+ result.push({
542
+ name: 'service',
543
+ icon: 'Server',
544
+ desc: '服务',
545
+ count: serviceItems.length,
546
+ items: serviceItems,
547
+ });
548
+ }
549
+ return result;
415
550
  }
416
551
  info() {
417
552
  return {
418
553
  [this.name]: {
419
- features: this.features,
554
+ features: this.getFeatures(),
420
555
  children: this.children.map(child => child.info())
421
556
  }
422
557
  };
@@ -465,6 +600,8 @@ export class Plugin extends EventEmitter {
465
600
  this.#disposables.clear();
466
601
  // 清理 middlewares 数组(保留默认的消息中间件)
467
602
  this.#middlewares.length = 1;
603
+ // 清理 feature 贡献记录
604
+ this.#featureContributions.clear();
468
605
  if (this.parent) {
469
606
  remove(this.parent?.children, this);
470
607
  }
@@ -521,9 +658,31 @@ export class Plugin extends EventEmitter {
521
658
  // 依赖注入
522
659
  // ============================================================================
523
660
  /**
524
- * 注册上下文
661
+ * 注册上下文(支持 Feature 实例或传统 Context 对象)
525
662
  */
526
- provide(context) {
663
+ provide(target) {
664
+ if (target instanceof Feature) {
665
+ // Feature → 自动转为内部 Context 格式存储
666
+ const feature = target;
667
+ const context = {
668
+ name: feature.name,
669
+ description: feature.desc,
670
+ value: feature,
671
+ mounted: feature.mounted
672
+ ? async (plugin) => {
673
+ await feature.mounted(plugin);
674
+ return feature;
675
+ }
676
+ : undefined,
677
+ dispose: feature.dispose
678
+ ? async () => { await feature.dispose(); }
679
+ : undefined,
680
+ extensions: feature.extensions,
681
+ };
682
+ return this.provide(context);
683
+ }
684
+ // 传统 Context 路径
685
+ const context = target;
527
686
  if (!Plugin[contextsKey].includes(context.name)) {
528
687
  Plugin[contextsKey].push(context.name);
529
688
  }
@@ -618,7 +777,8 @@ export class Plugin extends EventEmitter {
618
777
  static #coreMethods = new Set([
619
778
  'addMiddleware', 'useContext', 'inject', 'contextIsReady',
620
779
  'start', 'stop', 'onMounted', 'onDispose',
621
- 'dispatch', 'broadcast', 'provide', 'import', 'reload', 'watch', 'info'
780
+ 'dispatch', 'broadcast', 'provide', 'import', 'reload', 'watch', 'info',
781
+ 'recordFeatureContribution', 'getFeatures'
622
782
  ]);
623
783
  /**
624
784
  * 自动绑定核心方法(只在构造函数中调用一次)
package/lib/plugin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -83,15 +83,6 @@ export interface UserInfo {
83
83
  card?: string;
84
84
  role?: string;
85
85
  }
86
- /**
87
- * 权限服务接口
88
- */
89
- import type { PermissionService } from './built/permission.js';
90
- /**
91
- * 配置服务接口
92
- */
93
- import type { ConfigService } from './built/config.js';
94
- export { PermissionService, ConfigService };
95
86
  /**
96
87
  * 群组信息结构
97
88
  */
@@ -276,6 +267,8 @@ export interface Tool {
276
267
  source?: string;
277
268
  /** 工具标签(用于分类和过滤) */
278
269
  tags?: string[];
270
+ /** 触发关键词(用户消息包含这些词时优先选择此工具) */
271
+ keywords?: string[];
279
272
  /**
280
273
  * 命令配置(可选)
281
274
  * 如果不提供,会根据 parameters 自动生成命令模式
@@ -321,6 +314,7 @@ export interface ToolDefinition<TArgs extends Record<string, any> = Record<strin
321
314
  execute: (args: TArgs, context?: ToolContext) => MaybePromise<any>;
322
315
  source?: string;
323
316
  tags?: string[];
317
+ keywords?: string[];
324
318
  command?: Tool.CommandConfig | false;
325
319
  permissions?: string[];
326
320
  /** 支持的平台列表(不填则支持所有平台) */
@@ -365,4 +359,5 @@ export declare namespace Tool {
365
359
  }
366
360
  /** @deprecated 使用 Tool 替代 */
367
361
  export type AITool = Tool;
362
+ export {};
368
363
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAC,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,MAAM,SAAS,CAAC,CAAC,IAAE,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAC,CAAC,GAAC,OAAO,CAAA;AAC3D,MAAM,WAAW,MAAO,SAAQ,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC;IACnD,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,IAAI,CAAC;CACZ;AACD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAC,CAAC,GAAG,CAAC,GAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,CAAC;CACzB;AACD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,GAAC,MAAM,SAAS,IAAE;IACpE,OAAO,EAAC,CAAC,CAAA;CACV,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACtB;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AACnD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,CAAC,CAAA;AAC7D;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,kBAAkB,GAAC,MAAM,kBAAkB,IAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,GAAC,EAAE,CAAA;AACvJ;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,kBAAkB,GAAC,MAAM,kBAAkB,IAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAC,cAAc,CAAC,CAAC,CAAC,GAAC,GAAG,CAAC,MAAM,CAAA;AAClK;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAC,MAAM,CAAC,CAAC,GAAC,CAAC,GAAC,GAAG,CAAC,MAAM,CAAA;AACzE;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,GAAG,IAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAC,CAAC,GAAC,EAAE,CAAA;AACjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AACD,MAAM,MAAM,cAAc,GAAC,cAAc,GAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;AAC/D;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAE,CAAC,GAAC,CAAC,EAAE,CAAA;AAC/B;;GAEG;AACH,MAAM,MAAM,WAAW,GAAC,UAAU,CAAC,MAAM,GAAC,cAAc,CAAC,CAAA;AACzD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAC,MAAM,EAAE,CAAA;CACtB;AACD;;GAEG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,GAAC,GAAG,EAAC,CAAC,SAAS,MAAM,GAAC,MAAM,GAAC,MAAM,IAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC;AAC5C;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,cAAc;AACd,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,GAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;AAGtK;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAC,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,KAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjF,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,OAAO,EAAC,MAAM,CAAA;IACd,GAAG,EAAC,MAAM,CAAA;IACV,OAAO,EAAC,WAAW,CAAA;CACpB;AAOD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,CAAC;CACX;AACD,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAC,CAAC,OAAO,EAAC,WAAW,KAAG,YAAY,CAAC,WAAW,GAAC,IAAI,CAAC,CAAA;AAOnF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG;QAC3C,oBAAoB;QACpB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;KACpD,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAMD;;GAEG;AACH,KAAK,eAAe,CAAC,CAAC,IACpB,CAAC,SAAS,MAAM,GAAG,QAAQ,GAC3B,CAAC,SAAS,MAAM,GAAG,QAAQ,GAC3B,CAAC,SAAS,OAAO,GAAG,SAAS,GAC7B,CAAC,SAAS,GAAG,EAAE,GAAG,OAAO,GACzB,CAAC,SAAS,MAAM,GAAG,QAAQ,GAC3B,QAAQ,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,cAAc;IAC7D,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,IAAI,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;CACpD;AAED;;;GAGG;AACH,KAAK,oBAAoB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;KAC5D,CAAC,IAAI,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAC7C,CAAC;AAUF;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3F,IAAI,EAAE,QAAQ,CAAC;IACf,gCAAgC;IAChC,UAAU,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACxC,cAAc;IACd,QAAQ,CAAC,EAAE,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;IACpC,SAAS;IACT,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;IAC5C;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAExD;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,CAAC;AAEjG,MAAM,WAAW,IAAI;IACnB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IAEb,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,oBAAoB,CAAC;IAEjC;;;;;OAKG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC;IAEjF,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;;OAIG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAErC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,mBAAmB,CAAC;IAEtC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yBAAyB;IACzB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,6BAA6B;IAC7B,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,IAAI,CAAC;IACpB;;OAEG;IACH,UAAiB,aAAa;QAC5B;;;;WAIG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,WAAW;QACX,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAEjB,aAAa;QACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAEjB,WAAW;QACX,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAEpB,oBAAoB;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB;IAED;;OAEG;IACH,UAAiB,SAAS;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KACd;CACF;AAMD,6BAA6B;AAC7B,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhin.js/core",
3
- "version": "1.0.25",
3
+ "version": "1.0.27",
4
4
  "description": "Zhin机器人核心框架",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -30,11 +30,11 @@
30
30
  "dependencies": {
31
31
  "croner": "^9.1.0",
32
32
  "segment-matcher": "latest",
33
- "toml": "^3.0.0",
33
+ "smol-toml": "^1.6.0",
34
34
  "yaml": "^2.3.4",
35
- "@zhin.js/database": "1.0.12",
36
- "@zhin.js/logger": "0.1.9",
37
- "@zhin.js/schema": "1.0.9"
35
+ "@zhin.js/database": "1.0.14",
36
+ "@zhin.js/logger": "0.1.11",
37
+ "@zhin.js/schema": "1.0.11"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^24.3.0",
@@ -51,6 +51,6 @@
51
51
  },
52
52
  "scripts": {
53
53
  "build": "tsc",
54
- "clean": "rm -rf lib"
54
+ "clean": "rimraf lib"
55
55
  }
56
56
  }
package/src/adapter.ts CHANGED
@@ -5,6 +5,7 @@ import { Message } from "./message.js";
5
5
  import { BeforeSendHandler, SendOptions, Tool, ToolContext } from "./types.js";
6
6
  import { segment } from "./utils.js";
7
7
  import { ZhinTool, isZhinTool, type ToolInput } from "./built/tool.js";
8
+ import type { Skill, SkillFeature } from "./built/skill.js";
8
9
  /**
9
10
  * Adapter类:适配器抽象,管理多平台Bot实例。
10
11
  * 负责根据配置启动/关闭各平台机器人,统一异常处理。
@@ -16,6 +17,8 @@ export abstract class Adapter<R extends Bot = Bot> extends EventEmitter<Adapter.
16
17
  public bots: Map<string, R> = new Map<string, R>();
17
18
  /** 适配器提供的工具 */
18
19
  public tools: Map<string, Tool> = new Map<string, Tool>();
20
+ /** Skill 注销函数(declareSkill 时设置) */
21
+ private _skillDispose?: () => void;
19
22
  /**
20
23
  * 构造函数
21
24
  * @param name 适配器名称(如 'process'、'qq' 等)
@@ -35,9 +38,19 @@ export abstract class Adapter<R extends Bot = Bot> extends EventEmitter<Adapter.
35
38
  })
36
39
  this.on('message.receive', (message) => {
37
40
  this.logger.info(`${message.$bot} recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`);
38
- // 使用 root 插件的中间件,这样所有子插件注册的中间件都能被执行
39
41
  const rootPlugin = this.plugin?.root || this.plugin;
40
- rootPlugin?.middleware(message, async ()=>{});
42
+ // 优先使用 MessageDispatcher(新架构),回退到旧中间件链(兼容)
43
+ const dispatcher = rootPlugin?.inject('dispatcher' as any) as any;
44
+ if (dispatcher && typeof dispatcher.dispatch === 'function') {
45
+ void dispatcher.dispatch(message).catch((err: unknown) => {
46
+ this.logger.error('dispatcher.dispatch(message) failed', err);
47
+ });
48
+ } else {
49
+ // 旧中间件链回退
50
+ void Promise.resolve(rootPlugin?.middleware(message, async () => {})).catch((err: unknown) => {
51
+ this.logger.error('rootPlugin.middleware(message, next) failed', err);
52
+ });
53
+ }
41
54
  });
42
55
  }
43
56
  abstract createBot(config: Adapter.BotConfig<R>): R;
@@ -92,6 +105,10 @@ export abstract class Adapter<R extends Bot = Bot> extends EventEmitter<Adapter.
92
105
  }
93
106
  // 清理 bots Map
94
107
  this.bots.clear();
108
+
109
+ // 清理 Skill
110
+ this._skillDispose?.();
111
+ this._skillDispose = undefined;
95
112
 
96
113
  // 从 adapters 数组中移除
97
114
  const idx = this.plugin.root.adapters.indexOf(this.name);
@@ -125,8 +142,20 @@ export abstract class Adapter<R extends Bot = Bot> extends EventEmitter<Adapter.
125
142
  tags: [...(tool.tags || []), 'adapter', this.name],
126
143
  };
127
144
  this.tools.set(tool.name, toolWithSource);
145
+
146
+ // 同步到全局 ToolFeature(如果可用),使适配器工具出现在插件 features 统计中
147
+ let globalDispose: (() => void) | undefined;
148
+ const toolFeature = this.plugin?.root?.inject('tool' as any) as any;
149
+ if (toolFeature && typeof toolFeature.addTool === 'function') {
150
+ const adapterPluginName = this.plugin?.name || `adapter:${this.name}`;
151
+ globalDispose = toolFeature.addTool(toolWithSource, adapterPluginName, false);
152
+ // 记录到宿主插件的 feature 贡献
153
+ this.plugin?.recordFeatureContribution('tool', tool.name);
154
+ }
155
+
128
156
  return () => {
129
157
  this.tools.delete(tool.name);
158
+ globalDispose?.();
130
159
  };
131
160
  }
132
161
 
@@ -147,6 +176,76 @@ export abstract class Adapter<R extends Bot = Bot> extends EventEmitter<Adapter.
147
176
  return this.tools.get(name);
148
177
  }
149
178
 
179
+ /**
180
+ * 声明适配器的 Skill(将 this.tools 聚合为一个 Skill 注册到 SkillFeature)
181
+ *
182
+ * @param metadata Skill 元数据
183
+ * - description: 平台级能力描述
184
+ * - keywords: 额外的触发关键词(可选,会自动从工具中聚合)
185
+ * - tags: 额外的分类标签(可选,会自动从工具中聚合)
186
+ * - conventions: 平台调用约定(可选,拼接到 description 末尾)
187
+ */
188
+ declareSkill(metadata: {
189
+ description: string;
190
+ keywords?: string[];
191
+ tags?: string[];
192
+ conventions?: string;
193
+ }): void {
194
+ const skillFeature = this.plugin?.root?.inject('skill' as any) as SkillFeature | undefined;
195
+ if (!skillFeature) {
196
+ this.logger.debug(`declareSkill: SkillFeature 不可用,跳过 Skill 注册`);
197
+ return;
198
+ }
199
+
200
+ // 收集适配器所有工具
201
+ const tools = this.getTools();
202
+
203
+ // 聚合关键词:metadata 声明 + 工具自带
204
+ const allKeywords = new Set<string>(metadata.keywords || []);
205
+ for (const tool of tools) {
206
+ if (tool.keywords) {
207
+ for (const kw of tool.keywords) {
208
+ allKeywords.add(kw);
209
+ }
210
+ }
211
+ }
212
+
213
+ // 聚合标签:metadata 声明 + 工具自带
214
+ const allTags = new Set<string>(metadata.tags || []);
215
+ for (const tool of tools) {
216
+ if (tool.tags) {
217
+ for (const tag of tool.tags) {
218
+ allTags.add(tag);
219
+ }
220
+ }
221
+ }
222
+
223
+ // 拼接描述:基础描述 + 调用约定
224
+ let description = metadata.description;
225
+ if (metadata.conventions) {
226
+ description += `\n\n调用约定:${metadata.conventions}`;
227
+ }
228
+
229
+ const pluginName = this.plugin?.name || `adapter:${this.name}`;
230
+ const skill: Skill = {
231
+ name: `adapter:${this.name}`,
232
+ description,
233
+ tools,
234
+ keywords: Array.from(allKeywords),
235
+ tags: Array.from(allTags),
236
+ pluginName,
237
+ };
238
+
239
+ // 清理旧的 Skill(如果有)
240
+ this._skillDispose?.();
241
+
242
+ // 注册到 SkillFeature
243
+ this._skillDispose = skillFeature.add(skill, pluginName);
244
+ this.plugin?.recordFeatureContribution('skill', `adapter:${this.name}`);
245
+
246
+ this.logger.debug(`declareSkill: 已注册 Skill "${skill.name}",包含 ${tools.length} 个工具`);
247
+ }
248
+
150
249
  /**
151
250
  * 提供默认的适配器工具(子类可覆盖)
152
251
  * 包含发送消息、撤回消息等基础能力