@memtensor/memos-local-openclaw-plugin 0.3.20 → 1.0.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.
- package/README.md +239 -22
- package/dist/capture/index.d.ts +1 -1
- package/dist/capture/index.d.ts.map +1 -1
- package/dist/capture/index.js +33 -8
- package/dist/capture/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/ingest/providers/anthropic.d.ts.map +1 -1
- package/dist/ingest/providers/anthropic.js +22 -8
- package/dist/ingest/providers/anthropic.js.map +1 -1
- package/dist/ingest/providers/bedrock.d.ts.map +1 -1
- package/dist/ingest/providers/bedrock.js +22 -8
- package/dist/ingest/providers/bedrock.js.map +1 -1
- package/dist/ingest/providers/gemini.d.ts.map +1 -1
- package/dist/ingest/providers/gemini.js +22 -8
- package/dist/ingest/providers/gemini.js.map +1 -1
- package/dist/ingest/providers/index.d.ts +13 -18
- package/dist/ingest/providers/index.d.ts.map +1 -1
- package/dist/ingest/providers/index.js +213 -139
- package/dist/ingest/providers/index.js.map +1 -1
- package/dist/ingest/providers/openai.d.ts +1 -1
- package/dist/ingest/providers/openai.d.ts.map +1 -1
- package/dist/ingest/providers/openai.js +37 -17
- package/dist/ingest/providers/openai.js.map +1 -1
- package/dist/ingest/task-processor.d.ts +28 -3
- package/dist/ingest/task-processor.d.ts.map +1 -1
- package/dist/ingest/task-processor.js +166 -67
- package/dist/ingest/task-processor.js.map +1 -1
- package/dist/ingest/worker.d.ts.map +1 -1
- package/dist/ingest/worker.js +97 -75
- package/dist/ingest/worker.js.map +1 -1
- package/dist/shared/llm-call.d.ts +26 -0
- package/dist/shared/llm-call.d.ts.map +1 -0
- package/dist/shared/llm-call.js +163 -0
- package/dist/shared/llm-call.js.map +1 -0
- package/dist/skill/evaluator.d.ts +0 -3
- package/dist/skill/evaluator.d.ts.map +1 -1
- package/dist/skill/evaluator.js +34 -59
- package/dist/skill/evaluator.js.map +1 -1
- package/dist/skill/evolver.d.ts +22 -1
- package/dist/skill/evolver.d.ts.map +1 -1
- package/dist/skill/evolver.js +191 -32
- package/dist/skill/evolver.js.map +1 -1
- package/dist/skill/generator.d.ts +0 -3
- package/dist/skill/generator.d.ts.map +1 -1
- package/dist/skill/generator.js +15 -50
- package/dist/skill/generator.js.map +1 -1
- package/dist/skill/upgrader.d.ts +0 -2
- package/dist/skill/upgrader.d.ts.map +1 -1
- package/dist/skill/upgrader.js +4 -39
- package/dist/skill/upgrader.js.map +1 -1
- package/dist/skill/validator.d.ts +0 -2
- package/dist/skill/validator.d.ts.map +1 -1
- package/dist/skill/validator.js +14 -44
- package/dist/skill/validator.js.map +1 -1
- package/dist/storage/sqlite.d.ts +13 -2
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +92 -15
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/tools/memory-get.d.ts.map +1 -1
- package/dist/tools/memory-get.js +5 -1
- package/dist/tools/memory-get.js.map +1 -1
- package/dist/tools/memory-search.d.ts.map +1 -1
- package/dist/tools/memory-search.js +5 -0
- package/dist/tools/memory-search.js.map +1 -1
- package/dist/tools/memory-timeline.d.ts.map +1 -1
- package/dist/tools/memory-timeline.js +11 -2
- package/dist/tools/memory-timeline.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/viewer/html.d.ts +1 -1
- package/dist/viewer/html.d.ts.map +1 -1
- package/dist/viewer/html.js +380 -26
- package/dist/viewer/html.js.map +1 -1
- package/dist/viewer/server.d.ts +9 -0
- package/dist/viewer/server.d.ts.map +1 -1
- package/dist/viewer/server.js +549 -184
- package/dist/viewer/server.js.map +1 -1
- package/index.ts +9 -3
- package/package.json +2 -1
- package/src/capture/index.ts +39 -10
- package/src/index.ts +3 -2
- package/src/ingest/providers/anthropic.ts +22 -8
- package/src/ingest/providers/bedrock.ts +22 -8
- package/src/ingest/providers/gemini.ts +22 -8
- package/src/ingest/providers/index.ts +192 -142
- package/src/ingest/providers/openai.ts +37 -17
- package/src/ingest/task-processor.ts +183 -65
- package/src/ingest/worker.ts +98 -77
- package/src/shared/llm-call.ts +144 -0
- package/src/skill/evaluator.ts +35 -64
- package/src/skill/evolver.ts +201 -33
- package/src/skill/generator.ts +16 -59
- package/src/skill/upgrader.ts +5 -43
- package/src/skill/validator.ts +15 -47
- package/src/storage/sqlite.ts +107 -15
- package/src/tools/memory-get.ts +6 -1
- package/src/tools/memory-search.ts +6 -0
- package/src/tools/memory-timeline.ts +13 -1
- package/src/types.ts +2 -1
- package/src/viewer/html.ts +380 -26
- package/src/viewer/server.ts +535 -197
package/dist/skill/evaluator.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
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
|
|
103
|
-
if (
|
|
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
|
|
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
|
|
122
|
-
if (
|
|
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
|
|
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":";;;AACA,oCAAoC;
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/skill/evaluator.ts"],"names":[],"mappings":"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"}
|
package/dist/skill/evolver.d.ts
CHANGED
|
@@ -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
|
-
|
|
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;
|
|
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"}
|
package/dist/skill/evolver.js
CHANGED
|
@@ -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(
|
|
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.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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:
|
|
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
|
-
|
|
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 "${
|
|
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,
|
|
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 "${
|
|
131
|
-
const { upgraded } = await this.upgrader.upgrade(task,
|
|
132
|
-
this.markChunksWithSkill(chunks,
|
|
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,
|
|
135
|
-
this.installer.syncIfInstalled(
|
|
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,
|
|
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
|
-
|
|
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 "${
|
|
149
|
-
this.markChunksWithSkill(chunks,
|
|
150
|
-
this.store.linkTaskSkill(task.id,
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAK7B,oCAAoC;AACpC,2CAA6C;AAC7C,2CAA6C;AAC7C,yCAA2C;AAC3C,2CAA6C;AAE7C,MAAa,YAAY;IAQb;IACA;IACA;IATF,SAAS,CAAiB;IAC1B,SAAS,CAAiB;IAC1B,QAAQ,CAAgB;IACxB,SAAS,CAAiB;IAC1B,UAAU,GAAG,KAAK,CAAC;IAE3B,YACU,KAAkB,EAClB,MAAoB,EACpB,GAAkB,EAC1B,QAAmB;QAHX,UAAK,GAAL,KAAK,CAAa;QAClB,WAAM,GAAN,MAAM,CAAc;QACpB,QAAG,GAAH,GAAG,CAAe;QAG1B,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAc,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,wBAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAU;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,IAAI,gBAAQ,CAAC,qBAAqB,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,IAAI,gBAAQ,CAAC,iBAAiB,CAAC;QAC5F,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;YAAE,OAAO;QAElC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAU;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,EAAE,4BAA4B,UAAU,YAAY,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACpH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEvD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAU;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACtC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACjC,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,GAAG;aACd,CAAC,CAAC;YAEH,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC/C,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE,CAAC;wBACrE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC;wBAC1F,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,yDAAyD,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAAU,EAAE,MAAe,EAAE,KAAY;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,KAAK,CAAC,IAAI,4BAA4B,CAAC,CAAC;YAC9F,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,IAAI,gBAAQ,CAAC,kBAAkB,CAAC;QACnG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAEnF,IAAI,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,UAAU,IAAI,aAAa,EAAE,CAAC;YACvE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,IAAI,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1F,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAE1E,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAE3C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBAC/E,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;YACvC,sFAAsF;YACtF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CACf,wBAAwB,KAAK,CAAC,IAAI,mCAAmC,UAAU,CAAC,UAAU,KAAK;gBAC/F,kDAAkD,IAAI,CAAC,KAAK,GAAG,CAChE,CAAC;YACF,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,KAAK,CAAC,IAAI,qCAAqC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;YACpH,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAU,EAAE,MAAe;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,IAAI,gBAAQ,CAAC,kBAAkB,CAAC;QACnG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE7D,IAAI,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,UAAU,IAAI,aAAa,EAAE,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,uCAAuC,UAAU,CAAC,aAAa,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7G,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAEpG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACtE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAEnG,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,IAAI,gBAAQ,CAAC,gBAAgB,CAAC;YAC7F,IAAI,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,iBAAiB,UAAU,CAAC,UAAU,MAAM,aAAa,GAAG,CAAC;YACjG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,KAAK,kCAAkC,MAAM,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,MAAe,EAAE,OAAe;QAC1D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,MAAM,yBAAyB,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;IAEO,gBAAgB,CAAC,KAAY;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,EAAE,OAAO,IAAI,IAAI,CAAC;IAC7B,CAAC;CACF;AA9JD,oCA8JC"}
|
|
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,
|
|
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"}
|