@winspan/claude-forge 0.2.15 → 0.3.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.
- package/README.md +2 -2
- package/dist/claudemd/detector.d.ts +1 -0
- package/dist/claudemd/detector.d.ts.map +1 -1
- package/dist/claudemd/detector.js +78 -0
- package/dist/claudemd/detector.js.map +1 -1
- package/dist/daemon/handler-context.d.ts +1 -1
- package/dist/daemon/handler-context.d.ts.map +1 -1
- package/dist/daemon/handlers/session-cleanup.js +1 -1
- package/dist/daemon/handlers/session-cleanup.js.map +1 -1
- package/dist/daemon/handlers/stop-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/stop-handler.js +2 -0
- package/dist/daemon/handlers/stop-handler.js.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.d.ts +2 -0
- package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.js +32 -4
- package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
- package/dist/skill-registry/evolver/keyword-evolver.d.ts.map +1 -1
- package/dist/skill-registry/evolver/keyword-evolver.js +9 -7
- package/dist/skill-registry/evolver/keyword-evolver.js.map +1 -1
- package/dist/skill-registry/fuzzy-matcher.d.ts +15 -0
- package/dist/skill-registry/fuzzy-matcher.d.ts.map +1 -0
- package/dist/skill-registry/fuzzy-matcher.js +41 -0
- package/dist/skill-registry/fuzzy-matcher.js.map +1 -0
- package/dist/skill-registry/index.d.ts.map +1 -1
- package/dist/skill-registry/index.js +14 -5
- package/dist/skill-registry/index.js.map +1 -1
- package/dist/skill-registry/orchestration-config.d.ts +10 -0
- package/dist/skill-registry/orchestration-config.d.ts.map +1 -1
- package/dist/skill-registry/orchestration-config.js +20 -0
- package/dist/skill-registry/orchestration-config.js.map +1 -1
- package/dist/skill-registry/orchestrator.d.ts +5 -0
- package/dist/skill-registry/orchestrator.d.ts.map +1 -1
- package/dist/skill-registry/orchestrator.js +82 -29
- package/dist/skill-registry/orchestrator.js.map +1 -1
- package/dist/utils/formatter.d.ts +1 -1
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +7 -2
- package/dist/utils/formatter.js.map +1 -1
- package/dist/utils/plan-reader.d.ts +7 -8
- package/dist/utils/plan-reader.d.ts.map +1 -1
- package/dist/utils/plan-reader.js +39 -30
- package/dist/utils/plan-reader.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzzy-matcher.d.ts","sourceRoot":"","sources":["../../src/skill-registry/fuzzy-matcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAU7D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,OAAO,CAKlF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 基于 bigram 的模糊匹配,用于处理词序变化等子串匹配失败的场景
|
|
3
|
+
* 零依赖实现,约 20 行核心逻辑
|
|
4
|
+
*/
|
|
5
|
+
function bigrams(str) {
|
|
6
|
+
const result = new Set();
|
|
7
|
+
for (let i = 0; i < str.length - 1; i++) {
|
|
8
|
+
result.add(str.slice(i, i + 2));
|
|
9
|
+
}
|
|
10
|
+
return result;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 计算两个字符串的 bigram 相似度(Dice 系数)
|
|
14
|
+
* 返回 0~1,1 表示完全相同
|
|
15
|
+
*/
|
|
16
|
+
export function bigramSimilarity(a, b) {
|
|
17
|
+
if (a === b)
|
|
18
|
+
return 1;
|
|
19
|
+
if (a.length < 2 || b.length < 2)
|
|
20
|
+
return 0;
|
|
21
|
+
const biA = bigrams(a);
|
|
22
|
+
const biB = bigrams(b);
|
|
23
|
+
let intersection = 0;
|
|
24
|
+
for (const bg of biA) {
|
|
25
|
+
if (biB.has(bg))
|
|
26
|
+
intersection++;
|
|
27
|
+
}
|
|
28
|
+
return (2 * intersection) / (biA.size + biB.size);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 检查 keyword 是否与 text 模糊匹配(先子串,再 bigram 降级)
|
|
32
|
+
* threshold: bigram 相似度阈值,默认 0.4
|
|
33
|
+
*/
|
|
34
|
+
export function fuzzyMatch(keyword, text, threshold = 0.4) {
|
|
35
|
+
const kw = keyword.toLowerCase();
|
|
36
|
+
const tx = text.toLowerCase();
|
|
37
|
+
if (tx.includes(kw))
|
|
38
|
+
return true;
|
|
39
|
+
return bigramSimilarity(kw, tx) >= threshold;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=fuzzy-matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzzy-matcher.js","sourceRoot":"","sources":["../../src/skill-registry/fuzzy-matcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAS,EAAE,CAAS;IACnD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,YAAY,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,IAAY,EAAE,SAAS,GAAG,GAAG;IACvE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;AAC/C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill-registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,GAAG,CAAyB;gBAExB,GAAG,CAAC,EAAE,UAAU;IAuB5B;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAarF;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIrC,WAAW,CAAC,QAAQ,GAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill-registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,GAAG,CAAyB;gBAExB,GAAG,CAAC,EAAE,UAAU;IAuB5B;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAarF;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIrC,WAAW,CAAC,QAAQ,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA0BrE;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAcxE,WAAW,IAAI,aAAa;IAC5B,YAAY,IAAI,cAAc;IAC9B,UAAU,IAAI,YAAY,GAAG,IAAI;IAEjC;;;OAGG;IACG,0BAA0B,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBjF;;OAEG;YACW,4BAA4B;IAmD1C;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAI5D,SAAS,IAAI;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnD;CAmBF"}
|
|
@@ -58,20 +58,29 @@ export class SkillRegistryEngine {
|
|
|
58
58
|
setIntentKeywords(keywords) {
|
|
59
59
|
this.lastIntentKeywords = keywords;
|
|
60
60
|
}
|
|
61
|
-
async maybeEvolve(interval =
|
|
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
|
-
|
|
69
|
+
// 轻量进化:只做关键词映射进化,完整进化由每日定时器触发
|
|
70
|
+
const keywordsEvolved = await this.evolver.evolveKeywordMappings();
|
|
70
71
|
this.registry.refresh();
|
|
71
|
-
return
|
|
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(`[技能注册表]
|
|
83
|
+
logger.error(`[技能注册表] 关键词进化失败:${err}`);
|
|
75
84
|
return null;
|
|
76
85
|
}
|
|
77
86
|
}
|
|
@@ -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":"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"}
|
|
@@ -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;
|
|
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":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC5D,MAAM,yBAAyB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;
|
|
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;
|
|
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
|
|
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 = [`编排完成:${
|
|
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
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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
|
|
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
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
|
|
197
|
-
|
|
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":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/skill-registry/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/utils/formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM;IAqBvD;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;IAIrD;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAcxE;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;IAKxD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI3C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM;IAMrE;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAsB3E;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,KAAK,CAAC;QAChD,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACxC,iBAAiB,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjE,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,GAAG,MAAM;IA+BX;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE;QACnC,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/utils/formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM;IAqBvD;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;IAIrD;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAcxE;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;IAKxD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI3C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM;IAMrE;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAsB3E;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,KAAK,CAAC;QAChD,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACxC,iBAAiB,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjE,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,GAAG,MAAM;IA+BX;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE;QACnC,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAgB5B;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI3E;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;CAU3F"}
|
package/dist/utils/formatter.js
CHANGED
|
@@ -122,7 +122,7 @@ export class ForgeFormatter {
|
|
|
122
122
|
/**
|
|
123
123
|
* 格式化用户画像上下文(注入到 Claude 对话中)
|
|
124
124
|
*/
|
|
125
|
-
static formatProfileContext(profile) {
|
|
125
|
+
static formatProfileContext(profile, persona) {
|
|
126
126
|
const lines = [
|
|
127
127
|
'[Forge 用户画像]',
|
|
128
128
|
`角色:${profile.role} | 经验:${profile.experience_level} | 风格:${profile.work_style}`,
|
|
@@ -130,7 +130,12 @@ export class ForgeFormatter {
|
|
|
130
130
|
if (profile.tech_stack.length > 0) {
|
|
131
131
|
lines.push(`技术栈:${profile.tech_stack.join(', ')}`);
|
|
132
132
|
}
|
|
133
|
-
|
|
133
|
+
if (persona) {
|
|
134
|
+
lines.push(`人设:${persona}`);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
lines.push('请根据以上用户画像调整回答的深度和风格。经验越高,解释越精简;技术栈匹配时可使用专业术语。');
|
|
138
|
+
}
|
|
134
139
|
return lines.join('\n');
|
|
135
140
|
}
|
|
136
141
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/utils/formatter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/utils/formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,25 +3,24 @@ export interface PlanTask {
|
|
|
3
3
|
status: 'pending' | 'in-progress' | 'done';
|
|
4
4
|
}
|
|
5
5
|
export interface PlanFile {
|
|
6
|
-
date: string;
|
|
7
6
|
filePath: string;
|
|
8
7
|
tasks: PlanTask[];
|
|
9
8
|
hasInProgress: boolean;
|
|
10
9
|
hasIncomplete: boolean;
|
|
11
10
|
}
|
|
12
11
|
/**
|
|
13
|
-
*
|
|
12
|
+
* 读取项目 docs/plan-*.md,返回最新的含未完成任务的计划文件。
|
|
13
|
+
* 按文件名倒序扫描,找到第一个有 pending/in-progress 任务的文件即返回。
|
|
14
14
|
*/
|
|
15
|
-
export declare function
|
|
15
|
+
export declare function readPlanFile(projectPath: string): PlanFile | null;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* 出错返回 null。
|
|
17
|
+
* 返回当前项目最新 plan 文件路径(用于提示用户在哪里写计划)。
|
|
18
|
+
* 若已有 plan 文件则返回最新的,否则返回建议新建的路径。
|
|
20
19
|
*/
|
|
21
|
-
export declare function
|
|
20
|
+
export declare function getPlanFilePath(projectPath: string): string;
|
|
22
21
|
/**
|
|
23
22
|
* 构建会话开始时注入的计划上下文。
|
|
24
|
-
*
|
|
23
|
+
* 若项目 docs/ 下没有含未完成任务的 plan 文件,返回 null。
|
|
25
24
|
*/
|
|
26
25
|
export declare function buildSessionStartPlanContext(projectPath: string): string | null;
|
|
27
26
|
//# sourceMappingURL=plan-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-reader.d.ts","sourceRoot":"","sources":["../../src/utils/plan-reader.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;CAC5C;AAED,MAAM,WAAW,QAAQ;IACvB,
|
|
1
|
+
{"version":3,"file":"plan-reader.d.ts","sourceRoot":"","sources":["../../src/utils/plan-reader.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;CAC5C;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB;AAmBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAgBjE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA+B/E"}
|