@winspan/claude-forge 0.2.15 → 0.3.1

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 (56) hide show
  1. package/README.md +2 -2
  2. package/dist/claudemd/detector.d.ts +1 -0
  3. package/dist/claudemd/detector.d.ts.map +1 -1
  4. package/dist/claudemd/detector.js +78 -0
  5. package/dist/claudemd/detector.js.map +1 -1
  6. package/dist/daemon/handler-context.d.ts +1 -1
  7. package/dist/daemon/handler-context.d.ts.map +1 -1
  8. package/dist/daemon/handlers/session-cleanup.d.ts +2 -0
  9. package/dist/daemon/handlers/session-cleanup.d.ts.map +1 -1
  10. package/dist/daemon/handlers/session-cleanup.js +35 -1
  11. package/dist/daemon/handlers/session-cleanup.js.map +1 -1
  12. package/dist/daemon/handlers/stop-handler.d.ts.map +1 -1
  13. package/dist/daemon/handlers/stop-handler.js +8 -0
  14. package/dist/daemon/handlers/stop-handler.js.map +1 -1
  15. package/dist/daemon/handlers/user-prompt-handler.d.ts +13 -0
  16. package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
  17. package/dist/daemon/handlers/user-prompt-handler.js +124 -9
  18. package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
  19. package/dist/skill-registry/evolver/index.d.ts +5 -0
  20. package/dist/skill-registry/evolver/index.d.ts.map +1 -1
  21. package/dist/skill-registry/evolver/index.js +49 -0
  22. package/dist/skill-registry/evolver/index.js.map +1 -1
  23. package/dist/skill-registry/evolver/keyword-evolver.d.ts.map +1 -1
  24. package/dist/skill-registry/evolver/keyword-evolver.js +9 -7
  25. package/dist/skill-registry/evolver/keyword-evolver.js.map +1 -1
  26. package/dist/skill-registry/fuzzy-matcher.d.ts +15 -0
  27. package/dist/skill-registry/fuzzy-matcher.d.ts.map +1 -0
  28. package/dist/skill-registry/fuzzy-matcher.js +41 -0
  29. package/dist/skill-registry/fuzzy-matcher.js.map +1 -0
  30. package/dist/skill-registry/index.d.ts +4 -0
  31. package/dist/skill-registry/index.d.ts.map +1 -1
  32. package/dist/skill-registry/index.js +22 -5
  33. package/dist/skill-registry/index.js.map +1 -1
  34. package/dist/skill-registry/orchestration-config.d.ts +10 -0
  35. package/dist/skill-registry/orchestration-config.d.ts.map +1 -1
  36. package/dist/skill-registry/orchestration-config.js +20 -0
  37. package/dist/skill-registry/orchestration-config.js.map +1 -1
  38. package/dist/skill-registry/orchestrator.d.ts +5 -0
  39. package/dist/skill-registry/orchestrator.d.ts.map +1 -1
  40. package/dist/skill-registry/orchestrator.js +82 -29
  41. package/dist/skill-registry/orchestrator.js.map +1 -1
  42. package/dist/storage/index.d.ts +2 -0
  43. package/dist/storage/index.d.ts.map +1 -1
  44. package/dist/storage/sqlite.d.ts +2 -0
  45. package/dist/storage/sqlite.d.ts.map +1 -1
  46. package/dist/storage/sqlite.js +64 -6
  47. package/dist/storage/sqlite.js.map +1 -1
  48. package/dist/utils/formatter.d.ts +1 -1
  49. package/dist/utils/formatter.d.ts.map +1 -1
  50. package/dist/utils/formatter.js +7 -2
  51. package/dist/utils/formatter.js.map +1 -1
  52. package/dist/utils/plan-reader.d.ts +7 -8
  53. package/dist/utils/plan-reader.d.ts.map +1 -1
  54. package/dist/utils/plan-reader.js +39 -30
  55. package/dist/utils/plan-reader.js.map +1 -1
  56. package/package.json +1 -1
@@ -58,20 +58,29 @@ export class SkillRegistryEngine {
58
58
  setIntentKeywords(keywords) {
59
59
  this.lastIntentKeywords = keywords;
60
60
  }
61
- async maybeEvolve(interval = 10) {
61
+ async maybeEvolve(interval = 5) {
62
62
  if (!this.evolver)
63
63
  return null;
64
64
  this.evolveCount++;
65
65
  if (this.evolveCount % interval !== 0)
66
66
  return null;
67
- logger.info('[技能注册表] 触发进化周期');
67
+ logger.info('[技能注册表] 触发关键词进化');
68
68
  try {
69
- const report = await this.evolver.evolve();
69
+ // 轻量进化:只做关键词映射进化,完整进化由每日定时器触发
70
+ const keywordsEvolved = await this.evolver.evolveKeywordMappings();
70
71
  this.registry.refresh();
71
- return report;
72
+ return {
73
+ retired: [],
74
+ optimized: [],
75
+ generated: [],
76
+ officialEvolved: [],
77
+ distilled: [],
78
+ keywordsEvolved,
79
+ errors: [],
80
+ };
72
81
  }
73
82
  catch (err) {
74
- logger.error(`[技能注册表] 进化失败:${err}`);
83
+ logger.error(`[技能注册表] 关键词进化失败:${err}`);
75
84
  return null;
76
85
  }
77
86
  }
@@ -96,6 +105,14 @@ export class SkillRegistryEngine {
96
105
  getRegistry() { return this.registry; }
97
106
  getCollector() { return this.collector; }
98
107
  getEvolver() { return this.evolver; }
108
+ /**
109
+ * 生成技能优化建议(每 10 次 Stop 触发一次)
110
+ */
111
+ async suggestImprovements(eventsPath) {
112
+ if (!this.evolver)
113
+ return null;
114
+ return this.evolver.suggestImprovements(eventsPath);
115
+ }
99
116
  /**
100
117
  * 刷新技能注册表并为新技能生成编排关键词
101
118
  * 用于文件监听触发的自动更新场景
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skill-registry/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skill-registry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,0BAA0B,CAAC;AAE9E,MAAM,OAAO,mBAAmB;IACtB,QAAQ,CAAgB;IACxB,YAAY,CAAoB;IAChC,SAAS,CAAiB;IAC1B,OAAO,GAAwB,IAAI,CAAC;IACpC,OAAO,GAA0B,IAAI,CAAC;IACtC,YAAY,CAAoB;IAChC,WAAW,GAAW,CAAC,CAAC;IACxB,kBAAkB,GAAa,EAAE,CAAC;IAClC,GAAG,CAAyB;IAEpC,YAAY,GAAgB;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzD,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEtC,YAAY;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,WAAW,UAAU,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,KAAiB,EAAE,aAAsB;QAC1D,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAkB;QAClC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE/B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;gBACb,eAAe,EAAE,EAAE;gBACnB,SAAS,EAAE,EAAE;gBACb,eAAe;gBACf,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,WAAW,KAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,YAAY,KAAqB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,UAAU,KAA0B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1D;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,0BAA0B;QAC9B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAErE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,MAAM,SAAS,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5F,cAAc;QACd,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,4BAA4B,CAAC,UAAoB;QAC7D,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACnD,MAAM,gBAAgB,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAElD,aAAa;QACb,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;QAC/F,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEvC,MAAM,iBAAiB,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,KAAK,IAAI,KAAK,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG;;;EAGjB,iBAAiB;;;;;;;;;;;;;EAajB,CAAC;QAEC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAiD,CAAC;YAC1F,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAChF,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,SAAiB,EAAE,UAAmB;QACnD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,SAAS;QASP,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAE9C,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,MAAM;YACjB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM;YACnD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;YACrD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM;YAC3D,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM;YACzD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACzB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,YAAa,CAAC;gBACjC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBACxC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;CACF"}
@@ -7,6 +7,12 @@ export interface OrchestrationMapping {
7
7
  misses?: number;
8
8
  /** 最近一次命中时间(ISO 字符串) */
9
9
  lastHit?: string;
10
+ /** 推荐后 60s 内触发的命中次数(高质量信号) */
11
+ recommendedHits?: number;
12
+ /** 未被推荐但用户主动调用的次数(表明关键词覆盖不足) */
13
+ unpromptedHits?: number;
14
+ /** session 热词表写入的候选关键词,供进化器下次进化时参考 */
15
+ candidateKeywords?: string[];
10
16
  }
11
17
  export interface OrchestrationConfig {
12
18
  mappings: OrchestrationMapping[];
@@ -31,5 +37,9 @@ export declare class OrchestrationConfigManager {
31
37
  recordHit(skill: string): void;
32
38
  /** 记录一次未命中(关键词匹配但技能未被实际调用) */
33
39
  recordMiss(skill: string): void;
40
+ /** 记录一次推荐命中(推荐后 60s 内触发,高质量信号) */
41
+ recordRecommendedHit(skill: string): void;
42
+ /** 记录一次主动调用(未被推荐但用户主动调用,表明关键词覆盖不足) */
43
+ recordUnpromptedHit(skill: string): void;
34
44
  }
35
45
  //# sourceMappingURL=orchestration-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orchestration-config.d.ts","sourceRoot":"","sources":["../../src/skill-registry/orchestration-config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAmBD,qBAAa,0BAA0B;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;gBAErC,UAAU,SAA4B;IAIlD,IAAI,IAAI,mBAAmB;IAgB3B,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAQvC,8BAA8B;IAC9B,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,aAAa;IASrB,gBAAgB;IAChB,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAW3C,aAAa;IACb,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAW9B,0BAA0B;IAC1B,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,IAAI;IAY5D,YAAY,IAAI,oBAAoB,EAAE;IAItC,8BAA8B;IAC9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS9B,8BAA8B;IAC9B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAOhC"}
1
+ {"version":3,"file":"orchestration-config.d.ts","sourceRoot":"","sources":["../../src/skill-registry/orchestration-config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAmBD,qBAAa,0BAA0B;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;gBAErC,UAAU,SAA4B;IAIlD,IAAI,IAAI,mBAAmB;IAgB3B,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAQvC,8BAA8B;IAC9B,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,aAAa;IASrB,gBAAgB;IAChB,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAW3C,aAAa;IACb,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAW9B,0BAA0B;IAC1B,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,IAAI;IAY5D,YAAY,IAAI,oBAAoB,EAAE;IAItC,8BAA8B;IAC9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS9B,8BAA8B;IAC9B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ/B,kCAAkC;IAClC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUzC,sCAAsC;IACtC,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAOzC"}
@@ -121,5 +121,25 @@ export class OrchestrationConfigManager {
121
121
  m.misses = (m.misses ?? 0) + 1;
122
122
  this.save(config);
123
123
  }
124
+ /** 记录一次推荐命中(推荐后 60s 内触发,高质量信号) */
125
+ recordRecommendedHit(skill) {
126
+ const config = this.load();
127
+ const m = config.mappings.find(x => x.skill === skill);
128
+ if (!m)
129
+ return;
130
+ m.hits = (m.hits ?? 0) + 1;
131
+ m.recommendedHits = (m.recommendedHits ?? 0) + 1;
132
+ m.lastHit = new Date().toISOString();
133
+ this.save(config);
134
+ }
135
+ /** 记录一次主动调用(未被推荐但用户主动调用,表明关键词覆盖不足) */
136
+ recordUnpromptedHit(skill) {
137
+ const config = this.load();
138
+ const m = config.mappings.find(x => x.skill === skill);
139
+ if (!m)
140
+ return;
141
+ m.unpromptedHits = (m.unpromptedHits ?? 0) + 1;
142
+ this.save(config);
143
+ }
124
144
  }
125
145
  //# sourceMappingURL=orchestration-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orchestration-config.js","sourceRoot":"","sources":["../../src/skill-registry/orchestration-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestration-config.js","sourceRoot":"","sources":["../../src/skill-registry/orchestration-config.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export declare class SkillOrchestrator {
9
9
  private sessionOrchestrated;
10
10
  /** 本 session 中已匹配但尚未确认命中的技能名(等待 detectSkillUsage 确认) */
11
11
  private pendingHits;
12
+ /** session 热词表:unpromptedHit 发生时把当前 intentKeywords 加入,当次 session 立即生效 */
13
+ private sessionKeywordBoosts;
12
14
  constructor(registry: SkillRegistry, collector: SkillCollector, api?: AIProvider);
13
15
  /**
14
16
  * 分析事件,自动编排 Skill/Agent 调用
@@ -29,6 +31,8 @@ export declare class SkillOrchestrator {
29
31
  private tryAutoInstall;
30
32
  /**
31
33
  * 检测工具调用中的 Skill 使用,并将 pendingHits 中对应的技能记录为命中
34
+ * - 推荐后 60s 内调用 → recommendedHit(高质量信号)
35
+ * - 超过 60s 或未被推荐 → unpromptedHit(关键词覆盖不足信号)
32
36
  */
33
37
  private detectSkillUsage;
34
38
  /**
@@ -39,6 +43,7 @@ export declare class SkillOrchestrator {
39
43
  private matchSkills;
40
44
  /**
41
45
  * session 结束时将所有仍在 pendingHits 中的技能记录为未命中(匹配了但未调用)
46
+ * 同时将 session 热词表写入 candidateKeywords 供下次进化使用
42
47
  */
43
48
  flushPendingMisses(): void;
44
49
  resetSession(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/skill-registry/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAY1D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,mBAAmB,CAAqB;IAChD,wDAAwD;IACxD,OAAO,CAAC,WAAW,CAAqB;gBAE5B,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,UAAU;IAMhF;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2C/G;;OAEG;YACW,SAAS;IAmBvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;YACW,cAAc;IAsC5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA6BnB;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAS1B,YAAY,IAAI,IAAI;CAIrB"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/skill-registry/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAa1D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,mBAAmB,CAAqB;IAChD,wDAAwD;IACxD,OAAO,CAAC,WAAW,CAAiF;IACpG,yEAAyE;IACzE,OAAO,CAAC,oBAAoB,CAA+B;gBAE/C,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,UAAU;IAMhF;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2C/G;;OAEG;YACW,SAAS;IAmBvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;YACW,cAAc;IAsC5B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA4CnB;;;OAGG;IACH,kBAAkB,IAAI,IAAI;IAwB1B,YAAY,IAAI,IAAI;CAIrB"}
@@ -1,12 +1,15 @@
1
1
  import { OrchestrationConfigManager } from './orchestration-config.js';
2
2
  import { logger } from '../utils/logger.js';
3
+ import { fuzzyMatch } from './fuzzy-matcher.js';
3
4
  export class SkillOrchestrator {
4
5
  registry;
5
6
  collector;
6
7
  api;
7
8
  sessionOrchestrated = new Set();
8
9
  /** 本 session 中已匹配但尚未确认命中的技能名(等待 detectSkillUsage 确认) */
9
- pendingHits = new Set();
10
+ pendingHits = new Map();
11
+ /** session 热词表:unpromptedHit 发生时把当前 intentKeywords 加入,当次 session 立即生效 */
12
+ sessionKeywordBoosts = new Map();
10
13
  constructor(registry, collector, api) {
11
14
  this.registry = registry;
12
15
  this.collector = collector;
@@ -20,14 +23,14 @@ export class SkillOrchestrator {
20
23
  const inputStr = event.tool_input ? JSON.stringify(event.tool_input) : '';
21
24
  const toolName = event.tool_name || '';
22
25
  // 记录 Skill 使用
23
- this.detectSkillUsage(event);
26
+ this.detectSkillUsage(event, intentKeywords);
24
27
  // 匹配需要的 Skill(inputStr + intentKeywords 联合匹配,按 Pipeline 阶段过滤)
25
28
  const matched = this.matchSkills(toolName, inputStr, intentKeywords, pipelinePhase);
26
29
  if (matched.length === 0) {
27
30
  logger.debug(`[编排器] 未匹配到技能 (tool=${toolName})`);
28
31
  return null;
29
32
  }
30
- logger.info(`匹配到 ${matched.length} 个技能:${matched.map(s => s.name).join(', ')}`);
33
+ logger.info(`匹配到 ${matched.length} 个技能:${matched.map(s => `${s.name}(${s.description.substring(0, 30)})`).join(', ')}`);
31
34
  // 去重:同一意图只编排一次,但首次跳过时仍记录使用次数(每 session 每技能只记一次)
32
35
  const intentKey = matched.map(s => s.name).sort().join('+');
33
36
  if (this.sessionOrchestrated.has(intentKey)) {
@@ -40,7 +43,7 @@ export class SkillOrchestrator {
40
43
  if (!plan)
41
44
  return null;
42
45
  // 记录编排完成及产物
43
- const summary = [`编排完成:${plan.skills.join(' → ')}`];
46
+ const summary = [`编排完成:${matched.map(s => `${s.name}(${s.description.substring(0, 30)})`).join(' → ')}`];
44
47
  if (plan.autoInstalled && plan.autoInstalled.length > 0) {
45
48
  summary.push(` 自动安装:${plan.autoInstalled.join(', ')}`);
46
49
  }
@@ -141,17 +144,38 @@ export class SkillOrchestrator {
141
144
  }
142
145
  /**
143
146
  * 检测工具调用中的 Skill 使用,并将 pendingHits 中对应的技能记录为命中
147
+ * - 推荐后 60s 内调用 → recommendedHit(高质量信号)
148
+ * - 超过 60s 或未被推荐 → unpromptedHit(关键词覆盖不足信号)
144
149
  */
145
- detectSkillUsage(event) {
150
+ detectSkillUsage(event, intentKeywords) {
146
151
  if (event.tool_name !== 'Skill')
147
152
  return;
148
153
  const skillField = event.tool_input?.skill;
149
- if (skillField) {
150
- this.registry.recordUsage(skillField, true);
151
- // 如果该技能在本 session 中曾被关键词匹配过,记录为命中
152
- if (this.pendingHits.has(skillField)) {
153
- new OrchestrationConfigManager().recordHit(skillField);
154
- this.pendingHits.delete(skillField);
154
+ if (!skillField)
155
+ return;
156
+ this.registry.recordUsage(skillField, true);
157
+ const pending = this.pendingHits.get(skillField);
158
+ const configMgr = new OrchestrationConfigManager();
159
+ if (pending) {
160
+ const elapsedMs = Date.now() - pending.recommendedAt;
161
+ if (elapsedMs <= 60_000) {
162
+ // 推荐后 60s 内调用:高质量命中
163
+ configMgr.recordRecommendedHit(skillField);
164
+ }
165
+ else {
166
+ // 超时:视为未命中(推荐了但太久才用,相关性弱)
167
+ configMgr.recordMiss(skillField);
168
+ }
169
+ this.pendingHits.delete(skillField);
170
+ }
171
+ else {
172
+ // 未被推荐但主动调用:关键词覆盖不足,加入 session 热词表
173
+ configMgr.recordUnpromptedHit(skillField);
174
+ if (intentKeywords && intentKeywords.length > 0) {
175
+ const existing = this.sessionKeywordBoosts.get(skillField) ?? [];
176
+ const merged = [...new Set([...existing, ...intentKeywords])];
177
+ this.sessionKeywordBoosts.set(skillField, merged);
178
+ logger.debug(`[编排器] 热词表更新:${skillField} → [${merged.join(', ')}]`);
155
179
  }
156
180
  }
157
181
  }
@@ -164,39 +188,68 @@ export class SkillOrchestrator {
164
188
  const matches = [];
165
189
  const input = inputStr.toLowerCase();
166
190
  const intentStr = intentKeywords ? intentKeywords.join(' ').toLowerCase() : '';
167
- const combined = input + ' ' + intentStr;
191
+ const hasIntent = intentStr.trim().length > 0;
168
192
  const configMgr = new OrchestrationConfigManager();
169
193
  const mappings = configMgr.listMappings();
170
194
  for (const mapping of mappings) {
171
- if (mapping.keywords.some(kw => combined.includes(kw.toLowerCase()))) {
172
- const skill = this.registry.get(mapping.skill);
173
- if (skill && !matches.some(m => m.name === skill.name)) {
174
- // 如果技能有 phase:xxx 标签,仅在对应阶段推荐
175
- if (pipelinePhase && skill.tags && skill.tags.length > 0) {
176
- const phaseTags = skill.tags.filter(t => t.startsWith('phase:'));
177
- if (phaseTags.length > 0 && !phaseTags.includes(`phase:${pipelinePhase}`)) {
178
- logger.debug(`[编排器] 技能 ${skill.name} 的阶段标签 [${phaseTags.join(', ')}] 与当前阶段 ${pipelinePhase} 不匹配,跳过`);
179
- continue;
180
- }
195
+ const kws = mapping.keywords.map(kw => kw.toLowerCase());
196
+ // session 热词表:unpromptedHit 时加入的候选关键词,当次 session 立即生效
197
+ const boosts = (this.sessionKeywordBoosts.get(mapping.skill) ?? []).map(k => k.toLowerCase());
198
+ const allKws = [...kws, ...boosts];
199
+ // intent 优先策略:有意图关键词时只匹配意图(含 fuzzy),无意图时降级到 tool_input
200
+ let source;
201
+ if (hasIntent) {
202
+ const hit = allKws.some(kw => fuzzyMatch(kw, intentStr));
203
+ if (!hit)
204
+ continue;
205
+ source = 'intent';
206
+ }
207
+ else {
208
+ const hit = allKws.some(kw => fuzzyMatch(kw, input));
209
+ if (!hit)
210
+ continue;
211
+ source = 'tool_input';
212
+ }
213
+ const skill = this.registry.get(mapping.skill);
214
+ if (skill && !matches.some(m => m.name === skill.name)) {
215
+ // 如果技能有 phase:xxx 标签,仅在对应阶段推荐
216
+ if (pipelinePhase && skill.tags && skill.tags.length > 0) {
217
+ const phaseTags = skill.tags.filter(t => t.startsWith('phase:'));
218
+ if (phaseTags.length > 0 && !phaseTags.includes(`phase:${pipelinePhase}`)) {
219
+ logger.debug(`[编排器] 技能 ${skill.name} 的阶段标签 [${phaseTags.join(', ')}] 与当前阶段 ${pipelinePhase} 不匹配,跳过`);
220
+ continue;
181
221
  }
182
- matches.push(skill);
183
- this.pendingHits.add(skill.name);
184
222
  }
223
+ matches.push(skill);
224
+ this.pendingHits.set(skill.name, { source, recommendedAt: Date.now() });
185
225
  }
186
226
  }
187
227
  return matches;
188
228
  }
189
229
  /**
190
230
  * session 结束时将所有仍在 pendingHits 中的技能记录为未命中(匹配了但未调用)
231
+ * 同时将 session 热词表写入 candidateKeywords 供下次进化使用
191
232
  */
192
233
  flushPendingMisses() {
193
- if (this.pendingHits.size === 0)
194
- return;
195
234
  const configMgr = new OrchestrationConfigManager();
196
- for (const skill of this.pendingHits) {
197
- configMgr.recordMiss(skill);
235
+ if (this.pendingHits.size > 0) {
236
+ for (const [skill] of this.pendingHits) {
237
+ configMgr.recordMiss(skill);
238
+ }
239
+ this.pendingHits.clear();
240
+ }
241
+ // 将 session 热词表写入 candidateKeywords 供进化器使用
242
+ if (this.sessionKeywordBoosts.size > 0) {
243
+ for (const [skill, keywords] of this.sessionKeywordBoosts) {
244
+ const mapping = configMgr.listMappings().find(m => m.skill === skill);
245
+ if (mapping) {
246
+ const existing = mapping.candidateKeywords ?? [];
247
+ const merged = [...new Set([...existing, ...keywords])];
248
+ configMgr.upsert({ ...mapping, candidateKeywords: merged });
249
+ }
250
+ }
251
+ this.sessionKeywordBoosts.clear();
198
252
  }
199
- this.pendingHits.clear();
200
253
  }
201
254
  resetSession() {
202
255
  this.flushPendingMisses();
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/skill-registry/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/skill-registry/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ export interface StorageEngine {
26
26
  updateSessionStatus(sessionId: string, status: SessionStatus, endTime?: string, projectPath?: string): void;
27
27
  getUndistilledEvents(sessionId: string, projectPath?: string): ForgeEvent[];
28
28
  getStorageSize(): number;
29
+ /** FTS5 全文检索:按关键词搜索相关历史事件,返回最近 limit 条 */
30
+ searchByKeywords(keywords: string[], projectPath: string, limit?: number): ForgeEvent[];
29
31
  close(): void;
30
32
  }
31
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAC/C,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;IACzC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE9C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACpE,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,EAAE,CAAC;IAChD,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5G,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5E,cAAc,IAAI,MAAM,CAAC;IAEzB,KAAK,IAAI,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAC/C,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;IACzC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE9C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACpE,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,EAAE,CAAC;IAChD,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5G,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5E,cAAc,IAAI,MAAM,CAAC;IAEzB,0CAA0C;IAC1C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAExF,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -51,6 +51,8 @@ export declare class SQLiteStorage implements StorageEngine {
51
51
  queryPatternExecutions(patternId: string, limit?: number): PatternExecution[];
52
52
  /** 更新执行记录的用户满意度(+1 正向 / -1 负向 / 0 中性) */
53
53
  updatePatternSatisfaction(executionId: string, satisfaction: number): void;
54
+ /** FTS5 全文检索:按关键词搜索相关历史事件,返回最近 limit 条 */
55
+ searchByKeywords(keywords: string[], projectPath: string, limit?: number): ForgeEvent[];
54
56
  close(): void;
55
57
  /**
56
58
  * 获取底层数据库连接(供需要直接操作的模块使用,如 PipelineStore)
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAkB1B,8BAA8B;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAK;IAE3C,qCAAqC;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAIhC;IAEF,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,UAAU;IA0DlB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IA6BnC,OAAO,CAAC,aAAa;IAiCrB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE;IAgD9C,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAqBxC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAmB7C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAcnE,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,EAAE;IAwB/C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAa3G,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;IAW3E,cAAc,IAAI,MAAM;IAOxB;;;OAGG;IACH,oBAAoB,CAAC,aAAa,GAAE,MAAU,GAAG,MAAM;IAQvD;;OAEG;IACH,gBAAgB,CAAC,aAAa,GAAE,MAAW,GAAG,MAAM;IAQpD;;;;OAIG;IACH,cAAc,CAAC,SAAS,SAAO,GAAG;QAChC,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB;IA0BD,oBAAoB;IACpB,WAAW,IAAI,MAAM;IASrB,sEAAsE;IACtE,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAsBrD,2BAA2B;IAC3B,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,gBAAgB,EAAE;IAuBzE,yCAAyC;IACzC,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAM1E,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,WAAW,IAAI,QAAQ,CAAC,QAAQ;IAKhC,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,YAAY;CAWrB"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAkB1B,8BAA8B;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAK;IAE3C,qCAAqC;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAkBhC;IAEF,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,UAAU;IA0DlB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAuDnC,OAAO,CAAC,aAAa;IAiCrB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE;IAgD9C,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAqBxC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAmB7C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAcnE,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,EAAE;IAwB/C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAa3G,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;IAW3E,cAAc,IAAI,MAAM;IAOxB;;;OAGG;IACH,oBAAoB,CAAC,aAAa,GAAE,MAAU,GAAG,MAAM;IAQvD;;OAEG;IACH,gBAAgB,CAAC,aAAa,GAAE,MAAW,GAAG,MAAM;IAQpD;;;;OAIG;IACH,cAAc,CAAC,SAAS,SAAO,GAAG;QAChC,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB;IA0BD,oBAAoB;IACpB,WAAW,IAAI,MAAM;IASrB,sEAAsE;IACtE,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAsBrD,2BAA2B;IAC3B,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,gBAAgB,EAAE;IAuBzE,yCAAyC;IACzC,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAM1E,0CAA0C;IAC1C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,UAAU,EAAE;IA6BnF,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,WAAW,IAAI,QAAQ,CAAC,QAAQ;IAKhC,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,YAAY;CAWrB"}
@@ -20,12 +20,26 @@ export class SQLiteStorage {
20
20
  this.runMigrations();
21
21
  }
22
22
  /** 当前 schema 版本号,每次新增迁移时递增 */
23
- static SCHEMA_VERSION = 1;
23
+ static SCHEMA_VERSION = 2;
24
24
  /** 增量迁移函数表:key 为目标版本号,value 为迁移函数 */
25
25
  static MIGRATIONS = {
26
- // v1: 基线版本(initSchema 已创建所有表),无需额外操作
27
- // 未来新增迁移示例:
28
- // 2: (db) => { db.exec('ALTER TABLE events ADD COLUMN extra TEXT'); },
26
+ // v1: 基线版本(initSchema 已创建所有表),无需额外操作
27
+ // v2: 新增 FTS5 全文检索虚拟表
28
+ 2: (db) => {
29
+ db.exec(`
30
+ CREATE VIRTUAL TABLE IF NOT EXISTS events_fts
31
+ USING fts5(
32
+ event_id UNINDEXED,
33
+ session_id,
34
+ project_path,
35
+ tool_name,
36
+ tool_input,
37
+ user_prompt,
38
+ content=events,
39
+ tokenize='unicode61'
40
+ )
41
+ `);
42
+ },
29
43
  };
30
44
  runMigrations() {
31
45
  // 确保 schema_version 表存在
@@ -114,13 +128,29 @@ export class SQLiteStorage {
114
128
  }
115
129
  writeEvent(event) {
116
130
  const writeEventTx = this.db.transaction((ev) => {
117
- this.db.prepare(`
131
+ const toolInputStr = ev.tool_input ? JSON.stringify(ev.tool_input) : null;
132
+ const changes = this.db.prepare(`
118
133
  INSERT OR IGNORE INTO events (
119
134
  event_id, session_id, project_path, timestamp,
120
135
  hook_type, tool_name, tool_input, tool_output,
121
136
  user_prompt, ai_response, distilled
122
137
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
123
- `).run(ev.event_id, ev.session_id, ev.project_path, ev.timestamp, ev.hook_type, ev.tool_name || null, ev.tool_input ? JSON.stringify(ev.tool_input) : null, ev.tool_output ? JSON.stringify(ev.tool_output) : null, ev.user_prompt || null, ev.ai_response || null, ev.distilled ? 1 : 0);
138
+ `).run(ev.event_id, ev.session_id, ev.project_path, ev.timestamp, ev.hook_type, ev.tool_name || null, toolInputStr, ev.tool_output ? JSON.stringify(ev.tool_output) : null, ev.user_prompt || null, ev.ai_response || null, ev.distilled ? 1 : 0);
139
+ // FTS5 同步(只在新记录插入时同步,避免重复)
140
+ if (changes.changes > 0) {
141
+ try {
142
+ const rowResult = this.db.prepare('SELECT rowid FROM events WHERE event_id = ?').get(ev.event_id);
143
+ if (rowResult) {
144
+ this.db.prepare(`
145
+ INSERT OR IGNORE INTO events_fts(rowid, event_id, session_id, project_path, tool_name, tool_input, user_prompt)
146
+ VALUES (?, ?, ?, ?, ?, ?, ?)
147
+ `).run(rowResult.rowid, ev.event_id, ev.session_id, ev.project_path, ev.tool_name || null, toolInputStr, ev.user_prompt || null);
148
+ }
149
+ }
150
+ catch {
151
+ // FTS5 表可能尚未创建(迁移 v2 前的旧数据库),静默忽略
152
+ }
153
+ }
124
154
  // 更新或创建会话(在同一事务内)
125
155
  this.upsertSession(ev);
126
156
  });
@@ -373,6 +403,34 @@ export class SQLiteStorage {
373
403
  UPDATE pattern_executions SET user_satisfaction = ? WHERE id = ?
374
404
  `).run(satisfaction, executionId);
375
405
  }
406
+ /** FTS5 全文检索:按关键词搜索相关历史事件,返回最近 limit 条 */
407
+ searchByKeywords(keywords, projectPath, limit = 20) {
408
+ if (keywords.length === 0)
409
+ return [];
410
+ try {
411
+ // 构建 FTS5 MATCH 表达式:多个关键词用 OR 连接
412
+ const matchExpr = keywords
413
+ .map(kw => kw.replace(/['"*]/g, '')) // 清理特殊字符
414
+ .filter(kw => kw.trim().length > 0)
415
+ .join(' OR ');
416
+ if (!matchExpr)
417
+ return [];
418
+ const rows = this.db.prepare(`
419
+ SELECT e.*
420
+ FROM events e
421
+ INNER JOIN events_fts fts ON e.rowid = fts.rowid
422
+ WHERE events_fts MATCH ?
423
+ AND e.project_path = ?
424
+ ORDER BY e.timestamp DESC
425
+ LIMIT ?
426
+ `).all(matchExpr, projectPath, limit);
427
+ return rows.map(this.rowToEvent);
428
+ }
429
+ catch {
430
+ // FTS5 表不存在或查询失败,静默返回空结果
431
+ return [];
432
+ }
433
+ }
376
434
  close() {
377
435
  this.db.close();
378
436
  }