@memtensor/memos-local-openclaw-plugin 0.3.20 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +232 -22
  2. package/dist/capture/index.d.ts +1 -1
  3. package/dist/capture/index.d.ts.map +1 -1
  4. package/dist/capture/index.js +33 -8
  5. package/dist/capture/index.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +2 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/ingest/providers/anthropic.d.ts.map +1 -1
  11. package/dist/ingest/providers/anthropic.js +22 -8
  12. package/dist/ingest/providers/anthropic.js.map +1 -1
  13. package/dist/ingest/providers/bedrock.d.ts.map +1 -1
  14. package/dist/ingest/providers/bedrock.js +22 -8
  15. package/dist/ingest/providers/bedrock.js.map +1 -1
  16. package/dist/ingest/providers/gemini.d.ts.map +1 -1
  17. package/dist/ingest/providers/gemini.js +22 -8
  18. package/dist/ingest/providers/gemini.js.map +1 -1
  19. package/dist/ingest/providers/index.d.ts +13 -18
  20. package/dist/ingest/providers/index.d.ts.map +1 -1
  21. package/dist/ingest/providers/index.js +213 -139
  22. package/dist/ingest/providers/index.js.map +1 -1
  23. package/dist/ingest/providers/openai.d.ts +1 -1
  24. package/dist/ingest/providers/openai.d.ts.map +1 -1
  25. package/dist/ingest/providers/openai.js +37 -17
  26. package/dist/ingest/providers/openai.js.map +1 -1
  27. package/dist/ingest/task-processor.d.ts +28 -3
  28. package/dist/ingest/task-processor.d.ts.map +1 -1
  29. package/dist/ingest/task-processor.js +166 -67
  30. package/dist/ingest/task-processor.js.map +1 -1
  31. package/dist/ingest/worker.d.ts.map +1 -1
  32. package/dist/ingest/worker.js +97 -75
  33. package/dist/ingest/worker.js.map +1 -1
  34. package/dist/shared/llm-call.d.ts +26 -0
  35. package/dist/shared/llm-call.d.ts.map +1 -0
  36. package/dist/shared/llm-call.js +163 -0
  37. package/dist/shared/llm-call.js.map +1 -0
  38. package/dist/skill/evaluator.d.ts +0 -3
  39. package/dist/skill/evaluator.d.ts.map +1 -1
  40. package/dist/skill/evaluator.js +34 -59
  41. package/dist/skill/evaluator.js.map +1 -1
  42. package/dist/skill/evolver.d.ts +22 -1
  43. package/dist/skill/evolver.d.ts.map +1 -1
  44. package/dist/skill/evolver.js +191 -32
  45. package/dist/skill/evolver.js.map +1 -1
  46. package/dist/skill/generator.d.ts +0 -3
  47. package/dist/skill/generator.d.ts.map +1 -1
  48. package/dist/skill/generator.js +15 -50
  49. package/dist/skill/generator.js.map +1 -1
  50. package/dist/skill/upgrader.d.ts +0 -2
  51. package/dist/skill/upgrader.d.ts.map +1 -1
  52. package/dist/skill/upgrader.js +4 -39
  53. package/dist/skill/upgrader.js.map +1 -1
  54. package/dist/skill/validator.d.ts +0 -2
  55. package/dist/skill/validator.d.ts.map +1 -1
  56. package/dist/skill/validator.js +14 -44
  57. package/dist/skill/validator.js.map +1 -1
  58. package/dist/storage/sqlite.d.ts +13 -2
  59. package/dist/storage/sqlite.d.ts.map +1 -1
  60. package/dist/storage/sqlite.js +72 -6
  61. package/dist/storage/sqlite.js.map +1 -1
  62. package/dist/tools/memory-get.d.ts.map +1 -1
  63. package/dist/tools/memory-get.js +5 -1
  64. package/dist/tools/memory-get.js.map +1 -1
  65. package/dist/tools/memory-search.d.ts.map +1 -1
  66. package/dist/tools/memory-search.js +5 -0
  67. package/dist/tools/memory-search.js.map +1 -1
  68. package/dist/tools/memory-timeline.d.ts.map +1 -1
  69. package/dist/tools/memory-timeline.js +11 -2
  70. package/dist/tools/memory-timeline.js.map +1 -1
  71. package/dist/types.d.ts +2 -1
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/types.js +1 -1
  74. package/dist/types.js.map +1 -1
  75. package/dist/viewer/html.d.ts +1 -1
  76. package/dist/viewer/html.d.ts.map +1 -1
  77. package/dist/viewer/html.js +233 -9
  78. package/dist/viewer/html.js.map +1 -1
  79. package/dist/viewer/server.d.ts +5 -0
  80. package/dist/viewer/server.d.ts.map +1 -1
  81. package/dist/viewer/server.js +383 -177
  82. package/dist/viewer/server.js.map +1 -1
  83. package/index.ts +9 -3
  84. package/package.json +2 -1
  85. package/src/capture/index.ts +39 -10
  86. package/src/index.ts +3 -2
  87. package/src/ingest/providers/anthropic.ts +22 -8
  88. package/src/ingest/providers/bedrock.ts +22 -8
  89. package/src/ingest/providers/gemini.ts +22 -8
  90. package/src/ingest/providers/index.ts +192 -142
  91. package/src/ingest/providers/openai.ts +37 -17
  92. package/src/ingest/task-processor.ts +183 -65
  93. package/src/ingest/worker.ts +98 -77
  94. package/src/shared/llm-call.ts +144 -0
  95. package/src/skill/evaluator.ts +35 -64
  96. package/src/skill/evolver.ts +201 -33
  97. package/src/skill/generator.ts +16 -59
  98. package/src/skill/upgrader.ts +5 -43
  99. package/src/skill/validator.ts +15 -47
  100. package/src/storage/sqlite.ts +88 -6
  101. package/src/tools/memory-get.ts +6 -1
  102. package/src/tools/memory-search.ts +6 -0
  103. package/src/tools/memory-timeline.ts +13 -1
  104. package/src/types.ts +2 -1
  105. package/src/viewer/html.ts +233 -9
  106. package/src/viewer/server.ts +368 -187
@@ -2,34 +2,46 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SkillEvaluator = void 0;
4
4
  const types_1 = require("../types");
5
- const CREATE_EVAL_PROMPT = `You are an experience evaluation expert. Based on the completed task record below, decide whether this task contains reusable experience worth distilling into a "skill".
5
+ const llm_call_1 = require("../shared/llm-call");
6
+ const CREATE_EVAL_PROMPT = `You are a strict experience evaluation expert. Based on the completed task record below, decide whether this task contains **reusable, transferable** experience worth distilling into a "skill".
6
7
 
7
- A skill is a reusable guide that helps an AI agent handle similar tasks better in the future.
8
+ A skill is a reusable guide that helps an AI agent handle **the same type of task** better in the future. The key question is: "Will someone likely need to do this exact type of thing again?"
8
9
 
9
- Worth distilling (any ONE qualifies):
10
- - Contains concrete steps, commands, code, or configuration
11
- - Solves a recurring problem with a specific approach/workflow
12
- - Went through trial-and-error (wrong approach then corrected)
10
+ STRICT criteria must meet ALL of:
11
+ 1. **Repeatable**: The task type is likely to recur (not a one-off personal conversation)
12
+ 2. **Transferable**: The approach/solution would help others facing the same problem
13
+ 3. **Technical depth**: Contains non-trivial steps, commands, code, configs, or diagnostic reasoning
14
+
15
+ Worth distilling (must meet criteria above AND at least ONE below):
16
+ - Solves a recurring technical problem with a specific approach/workflow
17
+ - Went through trial-and-error (wrong approach then corrected) — the learning is valuable
13
18
  - Involves non-obvious usage of specific tools, APIs, or frameworks
14
19
  - Contains debugging/troubleshooting with diagnostic reasoning
15
- - Demonstrates a multi-step workflow using external tools (browser, search, file system, etc.)
16
- - Reveals user preferences or style requirements that should be remembered
17
- - Shows how to combine multiple tools/services to accomplish a goal
18
- - Contains a process that required specific parameter tuning or configuration
20
+ - Shows how to combine multiple tools/services to accomplish a technical goal
21
+ - Contains deployment, configuration, or infrastructure setup steps
22
+ - Demonstrates a reusable data processing or automation pipeline
19
23
 
20
- NOT worth distilling:
24
+ NOT worth distilling (if ANY matches, return shouldGenerate=false):
21
25
  - Pure factual Q&A with no process ("what is TCP", "what's the capital of France")
22
26
  - Single-turn simple answers with no workflow
23
27
  - Conversation too fragmented or incoherent to extract a clear process
28
+ - One-off personal tasks: identity confirmation, preference setting, self-introduction
29
+ - Casual chat, opinion discussion, news commentary, brainstorming without actionable output
30
+ - Simple information lookup or summarization (e.g. "summarize this article", "explain X concept")
31
+ - Organizing/listing personal information (work history, resume, contacts)
32
+ - Generic product/system overviews without specific operational steps
33
+ - Tasks where the "steps" are just the AI answering questions (no real workflow)
24
34
 
25
35
  Task title: {TITLE}
26
36
  Task summary:
27
37
  {SUMMARY}
28
38
 
39
+ LANGUAGE RULE: The "reason" field MUST use the SAME language as the task title/summary. Chinese input → Chinese reason. English input → English reason. "suggestedName" stays in English kebab-case.
40
+
29
41
  Reply in JSON only, no extra text:
30
42
  {
31
43
  "shouldGenerate": boolean,
32
- "reason": "brief explanation",
44
+ "reason": "brief explanation (same language as input)",
33
45
  "suggestedName": "kebab-case-name",
34
46
  "suggestedTags": ["tag1", "tag2"],
35
47
  "confidence": 0.0-1.0
@@ -63,13 +75,15 @@ NOT worth upgrading:
63
75
  - New task's approach is worse than existing skill
64
76
  - Differences are trivial
65
77
 
78
+ LANGUAGE RULE: "reason" and "mergeStrategy" MUST use the SAME language as the task title/summary. Chinese input → Chinese output. English input → English output.
79
+
66
80
  Reply in JSON only, no extra text:
67
81
  {
68
82
  "shouldUpgrade": boolean,
69
83
  "upgradeType": "refine" | "extend" | "fix",
70
84
  "dimensions": ["faster", "more_elegant", "more_convenient", "fewer_tokens", "more_accurate", "more_robust", "new_scenario", "fix_outdated"],
71
- "reason": "what new value the task brings",
72
- "mergeStrategy": "which specific parts need updating",
85
+ "reason": "what new value the task brings (same language as input)",
86
+ "mergeStrategy": "which specific parts need updating (same language as input)",
73
87
  "confidence": 0.0-1.0
74
88
  }`;
75
89
  class SkillEvaluator {
@@ -99,15 +113,15 @@ class SkillEvaluator {
99
113
  return { pass: true, skipReason: "" };
100
114
  }
101
115
  async evaluateCreate(task) {
102
- const cfg = this.getProviderConfig();
103
- if (!cfg) {
116
+ const chain = (0, llm_call_1.buildSkillConfigChain)(this.ctx);
117
+ if (chain.length === 0) {
104
118
  return { shouldGenerate: false, reason: "no LLM configured", suggestedName: "", suggestedTags: [], confidence: 0 };
105
119
  }
106
120
  const prompt = CREATE_EVAL_PROMPT
107
121
  .replace("{TITLE}", task.title)
108
122
  .replace("{SUMMARY}", task.summary.slice(0, 3000));
109
123
  try {
110
- const raw = await this.callLLM(cfg, prompt);
124
+ const raw = await (0, llm_call_1.callLLMWithFallback)(chain, prompt, this.ctx.log, "SkillEvaluator.create");
111
125
  return this.parseJSON(raw, {
112
126
  shouldGenerate: false, reason: "parse failed", suggestedName: "", suggestedTags: [], confidence: 0,
113
127
  });
@@ -118,8 +132,8 @@ class SkillEvaluator {
118
132
  }
119
133
  }
120
134
  async evaluateUpgrade(task, skill, skillContent) {
121
- const cfg = this.getProviderConfig();
122
- if (!cfg) {
135
+ const chain = (0, llm_call_1.buildSkillConfigChain)(this.ctx);
136
+ if (chain.length === 0) {
123
137
  return { shouldUpgrade: false, upgradeType: "refine", dimensions: [], reason: "no LLM configured", mergeStrategy: "", confidence: 0 };
124
138
  }
125
139
  const prompt = UPGRADE_EVAL_PROMPT
@@ -129,7 +143,7 @@ class SkillEvaluator {
129
143
  .replace("{TITLE}", task.title)
130
144
  .replace("{SUMMARY}", task.summary.slice(0, 3000));
131
145
  try {
132
- const raw = await this.callLLM(cfg, prompt);
146
+ const raw = await (0, llm_call_1.callLLMWithFallback)(chain, prompt, this.ctx.log, "SkillEvaluator.upgrade");
133
147
  return this.parseJSON(raw, {
134
148
  shouldUpgrade: false, upgradeType: "refine", dimensions: [], reason: "parse failed", mergeStrategy: "", confidence: 0,
135
149
  });
@@ -139,37 +153,6 @@ class SkillEvaluator {
139
153
  return { shouldUpgrade: false, upgradeType: "refine", dimensions: [], reason: `error: ${err}`, mergeStrategy: "", confidence: 0 };
140
154
  }
141
155
  }
142
- getProviderConfig() {
143
- return this.ctx.config.summarizer;
144
- }
145
- async callLLM(cfg, userContent) {
146
- const endpoint = this.normalizeEndpoint(cfg.endpoint ?? "https://api.openai.com/v1/chat/completions");
147
- const model = cfg.model ?? "gpt-4o-mini";
148
- const headers = {
149
- "Content-Type": "application/json",
150
- Authorization: `Bearer ${cfg.apiKey}`,
151
- ...cfg.headers,
152
- };
153
- const resp = await fetch(endpoint, {
154
- method: "POST",
155
- headers,
156
- body: JSON.stringify({
157
- model,
158
- temperature: cfg.temperature ?? 0.1,
159
- max_tokens: 1024,
160
- messages: [
161
- { role: "user", content: userContent },
162
- ],
163
- }),
164
- signal: AbortSignal.timeout(cfg.timeoutMs ?? 30_000),
165
- });
166
- if (!resp.ok) {
167
- const body = await resp.text();
168
- throw new Error(`LLM call failed (${resp.status}): ${body}`);
169
- }
170
- const json = (await resp.json());
171
- return json.choices[0]?.message?.content?.trim() ?? "";
172
- }
173
156
  parseJSON(raw, fallback) {
174
157
  const jsonMatch = raw.match(/\{[\s\S]*\}/);
175
158
  if (!jsonMatch)
@@ -181,14 +164,6 @@ class SkillEvaluator {
181
164
  return fallback;
182
165
  }
183
166
  }
184
- normalizeEndpoint(url) {
185
- const stripped = url.replace(/\/+$/, "");
186
- if (stripped.endsWith("/chat/completions"))
187
- return stripped;
188
- if (stripped.endsWith("/completions"))
189
- return stripped;
190
- return `${stripped}/chat/completions`;
191
- }
192
167
  }
193
168
  exports.SkillEvaluator = SkillEvaluator;
194
169
  //# sourceMappingURL=evaluator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/skill/evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/skill/evaluator.ts"],"names":[],"mappings":"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"}
@@ -6,15 +6,36 @@ export declare class SkillEvolver {
6
6
  private store;
7
7
  private engine;
8
8
  private ctx;
9
+ private embedder?;
9
10
  private evaluator;
10
11
  private generator;
11
12
  private upgrader;
12
13
  private installer;
13
14
  private processing;
14
- constructor(store: SqliteStore, engine: RecallEngine, ctx: PluginContext, embedder?: Embedder);
15
+ private queue;
16
+ constructor(store: SqliteStore, engine: RecallEngine, ctx: PluginContext, embedder?: Embedder | undefined);
17
+ recoverOrphanedTasks(): Promise<number>;
15
18
  onTaskCompleted(task: Task): Promise<void>;
19
+ private drain;
20
+ private processOne;
16
21
  private process;
22
+ /** Max candidates to send to LLM for relevance judgment. */
23
+ private static readonly RELATED_SKILL_CANDIDATE_TOP;
24
+ /**
25
+ * Search for an existing skill that is HIGHLY related to the given task.
26
+ *
27
+ * 1. Collect top 50 skill candidates by FTS + vector similarity (relaxed thresholds).
28
+ * 2. Call LLM with task title/summary and each skill's name/description; strict rule:
29
+ * only output ONE skill index if the task clearly belongs to that skill's domain;
30
+ * otherwise output 0 (do not force a match).
31
+ */
17
32
  private findRelatedSkill;
33
+ /**
34
+ * Ask LLM to pick at most ONE skill that is HIGHLY relevant to the task.
35
+ * Strict rule: only return a skill if the task clearly belongs to that skill's domain; otherwise return null.
36
+ */
37
+ private judgeSkillRelatedToTask;
38
+ private parseJudgeSkillResult;
18
39
  private handleExistingSkill;
19
40
  private handleNewSkill;
20
41
  private markChunksWithSkill;
@@ -1 +1 @@
1
- {"version":3,"file":"evolver.d.ts","sourceRoot":"","sources":["../../src/skill/evolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAgB,aAAa,EAAE,MAAM,UAAU,CAAC;AAOlE,qBAAa,YAAY;IAQrB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IATb,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAS;gBAGjB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,aAAa,EAC1B,QAAQ,CAAC,EAAE,QAAQ;IAQf,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAmBlC,OAAO;YAmBP,gBAAgB;YAuBhB,mBAAmB;YAqCnB,cAAc;IAwB5B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;CAUzB"}
1
+ {"version":3,"file":"evolver.d.ts","sourceRoot":"","sources":["../../src/skill/evolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,IAAI,EAAgB,aAAa,EAAE,MAAM,UAAU,CAAC;AAQlE,qBAAa,YAAY;IASrB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,QAAQ,CAAC;IAXnB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAc;gBAGjB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,aAAa,EAClB,QAAQ,CAAC,EAAE,QAAQ,YAAA;IAQvB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAevC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAclC,KAAK;YAaL,UAAU;YASV,OAAO;IAmBrB,4DAA4D;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAM;IAEzD;;;;;;;OAOG;YACW,gBAAgB;IAqE9B;;;OAGG;YACW,uBAAuB;IAkDrC,OAAO,CAAC,qBAAqB;YAef,mBAAmB;YA4CnB,cAAc;IAwB5B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;CAUzB"}
@@ -36,49 +36,84 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.SkillEvolver = void 0;
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
+ const vector_1 = require("../storage/vector");
39
40
  const types_1 = require("../types");
40
41
  const evaluator_1 = require("./evaluator");
41
42
  const generator_1 = require("./generator");
42
43
  const upgrader_1 = require("./upgrader");
43
44
  const installer_1 = require("./installer");
45
+ const llm_call_1 = require("../shared/llm-call");
44
46
  class SkillEvolver {
45
47
  store;
46
48
  engine;
47
49
  ctx;
50
+ embedder;
48
51
  evaluator;
49
52
  generator;
50
53
  upgrader;
51
54
  installer;
52
55
  processing = false;
56
+ queue = [];
53
57
  constructor(store, engine, ctx, embedder) {
54
58
  this.store = store;
55
59
  this.engine = engine;
56
60
  this.ctx = ctx;
61
+ this.embedder = embedder;
57
62
  this.evaluator = new evaluator_1.SkillEvaluator(ctx);
58
63
  this.generator = new generator_1.SkillGenerator(store, engine, ctx, embedder);
59
64
  this.upgrader = new upgrader_1.SkillUpgrader(store, ctx);
60
65
  this.installer = new installer_1.SkillInstaller(store, ctx);
61
66
  }
67
+ async recoverOrphanedTasks() {
68
+ const orphaned = this.store.getTasksBySkillStatus(["queued", "generating"]);
69
+ if (orphaned.length === 0)
70
+ return 0;
71
+ this.ctx.log.info(`SkillEvolver: recovering ${orphaned.length} orphaned tasks (queued/generating from previous run)`);
72
+ for (const task of orphaned) {
73
+ try {
74
+ await this.processOne(task);
75
+ }
76
+ catch (err) {
77
+ this.ctx.log.error(`SkillEvolver: recovery failed for task ${task.id}: ${err}`);
78
+ }
79
+ }
80
+ return orphaned.length;
81
+ }
62
82
  async onTaskCompleted(task) {
63
83
  const enabled = this.ctx.config.skillEvolution?.enabled ?? types_1.DEFAULTS.skillEvolutionEnabled;
64
84
  const autoEval = this.ctx.config.skillEvolution?.autoEvaluate ?? types_1.DEFAULTS.skillAutoEvaluate;
65
85
  if (!enabled || !autoEval)
66
86
  return;
67
87
  if (this.processing) {
68
- this.ctx.log.debug("SkillEvolver: already processing, skipping");
88
+ this.ctx.log.debug(`SkillEvolver: busy, queuing task ${task.id} (queue=${this.queue.length})`);
89
+ this.store.setTaskSkillMeta(task.id, { skillStatus: "queued", skillReason: `排队中,前方还有 ${this.queue.length + 1} 个任务` });
90
+ this.queue.push(task);
69
91
  return;
70
92
  }
93
+ await this.drain(task);
94
+ }
95
+ async drain(task) {
71
96
  this.processing = true;
72
97
  try {
73
- await this.process(task);
74
- }
75
- catch (err) {
76
- this.ctx.log.error(`SkillEvolver error: ${err}`);
98
+ await this.processOne(task);
99
+ while (this.queue.length > 0) {
100
+ const next = this.queue.shift();
101
+ await this.processOne(next);
102
+ }
77
103
  }
78
104
  finally {
79
105
  this.processing = false;
80
106
  }
81
107
  }
108
+ async processOne(task) {
109
+ try {
110
+ await this.process(task);
111
+ }
112
+ catch (err) {
113
+ this.ctx.log.error(`SkillEvolver error for task ${task.id}: ${err}`);
114
+ this.store.setTaskSkillMeta(task.id, { skillStatus: "skipped", skillReason: `Error: ${err}` });
115
+ }
116
+ }
82
117
  async process(task) {
83
118
  const chunks = this.store.getChunksByTask(task.id);
84
119
  const { pass, skipReason } = this.evaluator.passesRuleFilter(chunks, task);
@@ -95,59 +130,183 @@ class SkillEvolver {
95
130
  await this.handleNewSkill(task, chunks);
96
131
  }
97
132
  }
133
+ /** Max candidates to send to LLM for relevance judgment. */
134
+ static RELATED_SKILL_CANDIDATE_TOP = 10;
135
+ /**
136
+ * Search for an existing skill that is HIGHLY related to the given task.
137
+ *
138
+ * 1. Collect top 50 skill candidates by FTS + vector similarity (relaxed thresholds).
139
+ * 2. Call LLM with task title/summary and each skill's name/description; strict rule:
140
+ * only output ONE skill index if the task clearly belongs to that skill's domain;
141
+ * otherwise output 0 (do not force a match).
142
+ */
98
143
  async findRelatedSkill(task) {
144
+ const query = task.summary.slice(0, 600);
145
+ const owner = task.owner ?? "agent:main";
146
+ // Relaxed thresholds to gather a larger candidate pool; LLM will do strict filtering
147
+ const VEC_FLOOR = 0.35;
148
+ const TOP_N = SkillEvolver.RELATED_SKILL_CANDIDATE_TOP;
149
+ const candidateMap = new Map();
150
+ // 1. FTS on skill name + description (take more candidates)
99
151
  try {
100
- const result = await this.engine.search({
101
- query: task.summary.slice(0, 500),
102
- maxResults: 10,
103
- minScore: 0.5,
104
- });
105
- for (const hit of result.hits) {
106
- if (hit.skillId) {
107
- const skill = this.store.getSkill(hit.skillId);
108
- if (skill && (skill.status === "active" || skill.status === "draft")) {
109
- this.ctx.log.debug(`SkillEvolver: found related skill "${skill.name}" via memory search`);
110
- return skill;
152
+ const ftsHits = this.store.skillFtsSearch(query, TOP_N, "mix", owner);
153
+ for (const hit of ftsHits) {
154
+ const skill = this.store.getSkill(hit.skillId);
155
+ if (skill && (skill.status === "active" || skill.status === "draft")) {
156
+ candidateMap.set(skill.id, { skill, vecScore: 0, ftsScore: hit.score, combined: 0 });
157
+ }
158
+ }
159
+ }
160
+ catch (err) {
161
+ this.ctx.log.warn(`SkillEvolver: skill FTS search failed: ${err}`);
162
+ }
163
+ // 2. Vector similarity: include all skills above a low floor to rank them
164
+ if (this.embedder) {
165
+ try {
166
+ const queryVec = await this.embedder.embedQuery(query);
167
+ const allSkillEmb = this.store.getSkillEmbeddings("mix", owner);
168
+ for (const row of allSkillEmb) {
169
+ const sim = (0, vector_1.cosineSimilarity)(queryVec, row.vector);
170
+ if (sim >= VEC_FLOOR) {
171
+ const existing = candidateMap.get(row.skillId);
172
+ if (existing) {
173
+ existing.vecScore = sim;
174
+ }
175
+ else {
176
+ const skill = this.store.getSkill(row.skillId);
177
+ if (skill && (skill.status === "active" || skill.status === "draft")) {
178
+ candidateMap.set(skill.id, { skill, vecScore: sim, ftsScore: 0, combined: 0 });
179
+ }
180
+ }
111
181
  }
112
182
  }
113
183
  }
184
+ catch (err) {
185
+ this.ctx.log.warn(`SkillEvolver: skill vector search failed: ${err}`);
186
+ }
187
+ }
188
+ if (candidateMap.size === 0)
189
+ return null;
190
+ for (const c of candidateMap.values()) {
191
+ c.combined = c.vecScore * 0.7 + c.ftsScore * 0.3;
192
+ }
193
+ const sorted = [...candidateMap.values()]
194
+ .sort((a, b) => b.combined - a.combined)
195
+ .slice(0, TOP_N);
196
+ if (sorted.length === 0)
197
+ return null;
198
+ // 3. LLM strict relevance judgment: only one skill if HIGHLY related, else none
199
+ const selectedSkill = await this.judgeSkillRelatedToTask(task, sorted);
200
+ if (selectedSkill) {
201
+ this.ctx.log.debug(`SkillEvolver: LLM selected related skill "${selectedSkill.name}" for task "${task.title}"`);
202
+ }
203
+ else {
204
+ this.ctx.log.debug(`SkillEvolver: LLM found no highly related skill for task "${task.title}" (${sorted.length} candidates)`);
205
+ }
206
+ return selectedSkill;
207
+ }
208
+ /**
209
+ * Ask LLM to pick at most ONE skill that is HIGHLY relevant to the task.
210
+ * Strict rule: only return a skill if the task clearly belongs to that skill's domain; otherwise return null.
211
+ */
212
+ async judgeSkillRelatedToTask(task, candidates) {
213
+ const chain = (0, llm_call_1.buildSkillConfigChain)(this.ctx);
214
+ if (chain.length === 0) {
215
+ this.ctx.log.warn("SkillEvolver: no LLM config available, skipping skill relevance judgment");
216
+ return null;
217
+ }
218
+ const taskTitle = task.title || "(no title)";
219
+ const taskSummary = task.summary.slice(0, 800);
220
+ const skillList = candidates
221
+ .map((c, i) => `${i + 1}. [${c.skill.name}]\n ${(c.skill.description || "").slice(0, 300)}`)
222
+ .join("\n\n");
223
+ const prompt = `You are a strict judge: decide whether a completed TASK should be merged into an EXISTING SKILL. The task and the skill must be in the SAME domain/topic — e.g. same type of problem, same tool, same workflow. Loose or tangential relevance is NOT enough.
224
+
225
+ TASK TITLE: ${taskTitle}
226
+
227
+ TASK SUMMARY:
228
+ ${taskSummary}
229
+
230
+ CANDIDATE SKILLS (index, name, description):
231
+ ${skillList}
232
+
233
+ RULES:
234
+ - Output exactly ONE skill index (1 to ${candidates.length}) ONLY if the task's experience clearly belongs to that skill's domain. Same topic, same kind of work.
235
+ - If no skill is clearly relevant (different domain, or only loosely related), output 0. When in doubt, output 0.
236
+ - Do not force a match. "Movie recommendation" task must not match "Weather query" or "Legal discussion" skill even if both exist in the list.
237
+
238
+ LANGUAGE RULE: "reason" MUST use the SAME language as the task title/summary. Chinese input → Chinese reason.
239
+
240
+ Reply with JSON only, no other text:
241
+ {"selectedIndex": 0, "reason": "brief explanation (same language as input)"}
242
+ Use selectedIndex 0 when none is highly relevant.`;
243
+ try {
244
+ const raw = await (0, llm_call_1.callLLMWithFallback)(chain, prompt, this.ctx.log, "SkillEvolver.judgeRelated", { temperature: 0, maxTokens: 256 });
245
+ const parsed = this.parseJudgeSkillResult(raw, candidates.length);
246
+ if (parsed.selectedIndex >= 1 && parsed.selectedIndex <= candidates.length) {
247
+ return candidates[parsed.selectedIndex - 1].skill;
248
+ }
249
+ return null;
114
250
  }
115
251
  catch (err) {
116
- this.ctx.log.warn(`SkillEvolver: memory search for related skill failed: ${err}`);
252
+ this.ctx.log.warn(`SkillEvolver: LLM skill relevance judgment failed: ${err}`);
253
+ return null;
254
+ }
255
+ }
256
+ parseJudgeSkillResult(raw, maxIndex) {
257
+ const fallback = { selectedIndex: 0, reason: "parse failed" };
258
+ const match = raw.match(/\{[\s\S]*\}/);
259
+ if (!match)
260
+ return fallback;
261
+ try {
262
+ const obj = JSON.parse(match[0]);
263
+ const idx = typeof obj.selectedIndex === "number" ? obj.selectedIndex : 0;
264
+ const reason = typeof obj.reason === "string" ? obj.reason : "";
265
+ if (idx < 0 || idx > maxIndex)
266
+ return { selectedIndex: 0, reason: reason || "out of range" };
267
+ return { selectedIndex: idx, reason };
268
+ }
269
+ catch {
270
+ return fallback;
117
271
  }
118
- return null;
119
272
  }
120
273
  async handleExistingSkill(task, chunks, skill) {
121
- const skillContent = this.readSkillContent(skill);
274
+ // Verify skill still exists in DB (may have been manually deleted)
275
+ const freshSkill = this.store.getSkill(skill.id);
276
+ if (!freshSkill) {
277
+ this.ctx.log.warn(`SkillEvolver: skill "${skill.name}" (${skill.id}) no longer exists, treating as new`);
278
+ await this.handleNewSkill(task, chunks);
279
+ return;
280
+ }
281
+ const skillContent = this.readSkillContent(freshSkill);
122
282
  if (!skillContent) {
123
- this.ctx.log.warn(`SkillEvolver: cannot read skill "${skill.name}" content, treating as new`);
283
+ this.ctx.log.warn(`SkillEvolver: cannot read skill "${freshSkill.name}" content, treating as new`);
124
284
  await this.handleNewSkill(task, chunks);
125
285
  return;
126
286
  }
127
287
  const minConfidence = this.ctx.config.skillEvolution?.minConfidence ?? types_1.DEFAULTS.skillMinConfidence;
128
- const evalResult = await this.evaluator.evaluateUpgrade(task, skill, skillContent);
288
+ const evalResult = await this.evaluator.evaluateUpgrade(task, freshSkill, skillContent);
129
289
  if (evalResult.shouldUpgrade && evalResult.confidence >= minConfidence) {
130
- this.ctx.log.info(`SkillEvolver: upgrading skill "${skill.name}" — ${evalResult.reason}`);
131
- const { upgraded } = await this.upgrader.upgrade(task, skill, evalResult);
132
- this.markChunksWithSkill(chunks, skill.id);
290
+ this.ctx.log.info(`SkillEvolver: upgrading skill "${freshSkill.name}" — ${evalResult.reason}`);
291
+ const { upgraded } = await this.upgrader.upgrade(task, freshSkill, evalResult);
292
+ this.markChunksWithSkill(chunks, freshSkill.id);
133
293
  if (upgraded) {
134
- this.store.linkTaskSkill(task.id, skill.id, "evolved_from", skill.version + 1);
135
- this.installer.syncIfInstalled(skill.name);
294
+ this.store.linkTaskSkill(task.id, freshSkill.id, "evolved_from", freshSkill.version + 1);
295
+ this.installer.syncIfInstalled(freshSkill.name);
136
296
  }
137
297
  else {
138
- this.store.linkTaskSkill(task.id, skill.id, "applied_to", skill.version);
298
+ this.store.linkTaskSkill(task.id, freshSkill.id, "applied_to", freshSkill.version);
139
299
  }
140
300
  }
141
301
  else if (evalResult.confidence < 0.3) {
142
- // Low confidence means the matched skill is likely unrelated try creating a new one
143
- this.ctx.log.info(`SkillEvolver: skill "${skill.name}" has low relevance (confidence=${evalResult.confidence}), ` +
302
+ this.ctx.log.info(`SkillEvolver: skill "${freshSkill.name}" has low relevance (confidence=${evalResult.confidence}), ` +
144
303
  `falling back to new skill evaluation for task "${task.title}"`);
145
304
  await this.handleNewSkill(task, chunks);
146
305
  }
147
306
  else {
148
- this.ctx.log.debug(`SkillEvolver: skill "${skill.name}" not worth upgrading (confidence=${evalResult.confidence})`);
149
- this.markChunksWithSkill(chunks, skill.id);
150
- this.store.linkTaskSkill(task.id, skill.id, "applied_to", skill.version);
307
+ this.ctx.log.debug(`SkillEvolver: skill "${freshSkill.name}" not worth upgrading (confidence=${evalResult.confidence})`);
308
+ this.markChunksWithSkill(chunks, freshSkill.id);
309
+ this.store.linkTaskSkill(task.id, freshSkill.id, "applied_to", freshSkill.version);
151
310
  }
152
311
  }
153
312
  async handleNewSkill(task, chunks) {
@@ -1 +1 @@
1
- {"version":3,"file":"evolver.js","sourceRoot":"","sources":["../../src/skill/evolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evolver.js","sourceRoot":"","sources":["../../src/skill/evolver.ts"],"names":[],"mappings":"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"}
@@ -17,11 +17,8 @@ export declare class SkillGenerator {
17
17
  private step2bExtractReferences;
18
18
  private step3GenerateEvals;
19
19
  private verifyEvals;
20
- private callLLM;
21
20
  private parseJSONArray;
22
21
  private buildConversationText;
23
22
  private parseDescription;
24
- private getProviderConfig;
25
- private normalizeEndpoint;
26
23
  }
27
24
  //# sourceMappingURL=generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/skill/generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAyC,MAAM,UAAU,CAAC;AAEzG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAyKpD,qBAAa,cAAc;IAKvB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IANb,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAyB;gBAG/B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,aAAa,EAC1B,QAAQ,CAAC,EAAE,QAAQ;IAMf,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IA+IzF,OAAO,CAAC,cAAc;YAOR,oBAAoB;YAyBpB,mBAAmB;YAsBnB,uBAAuB;YAsBvB,kBAAkB;YAsBlB,WAAW;YAoCX,OAAO;IAoCrB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,iBAAiB;CAM1B"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/skill/generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAuB,MAAM,UAAU,CAAC;AAEvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA4KpD,qBAAa,cAAc;IAKvB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IANb,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAyB;gBAG/B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,aAAa,EAC1B,QAAQ,CAAC,EAAE,QAAQ;IAMf,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IA+IzF,OAAO,CAAC,cAAc;YAOR,oBAAoB;YAyBpB,mBAAmB;YAsBnB,uBAAuB;YAsBvB,kBAAkB;YAsBlB,WAAW;IAoCzB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,gBAAgB;CAQzB"}