speccore 8.3.222 → 8.3.224
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/dist/cli.js +29 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +491 -238
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/change.js +1 -0
- package/dist/commands/change.js.map +1 -1
- package/dist/commands/doc2spec.d.ts.map +1 -1
- package/dist/commands/doc2spec.js +205 -95
- package/dist/commands/doc2spec.js.map +1 -1
- package/dist/commands/execute.js +4 -4
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/iteration/split.d.ts.map +1 -1
- package/dist/commands/iteration/split.js +29 -182
- package/dist/commands/iteration/split.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +67 -11
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/req-doc.d.ts.map +1 -1
- package/dist/commands/req-doc.js +122 -14
- package/dist/commands/req-doc.js.map +1 -1
- package/dist/commands/retro.d.ts +1 -1
- package/dist/commands/retro.d.ts.map +1 -1
- package/dist/commands/retro.js +87 -8
- package/dist/commands/retro.js.map +1 -1
- package/dist/commands/run.d.ts +1 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +144 -17
- package/dist/commands/run.js.map +1 -1
- package/dist/core/agent-adapter.d.ts.map +1 -1
- package/dist/core/agent-adapter.js +13 -6
- package/dist/core/agent-adapter.js.map +1 -1
- package/dist/core/context-budget.d.ts +3 -2
- package/dist/core/context-budget.d.ts.map +1 -1
- package/dist/core/context-budget.js +16 -3
- package/dist/core/context-budget.js.map +1 -1
- package/dist/core/dispatch-loop.d.ts +81 -0
- package/dist/core/dispatch-loop.d.ts.map +1 -0
- package/dist/core/dispatch-loop.js +152 -0
- package/dist/core/dispatch-loop.js.map +1 -0
- package/dist/core/intent-cache.d.ts +5 -0
- package/dist/core/intent-cache.d.ts.map +1 -1
- package/dist/core/intent-cache.js +32 -15
- package/dist/core/intent-cache.js.map +1 -1
- package/dist/core/prompt-builder.d.ts.map +1 -1
- package/dist/core/prompt-builder.js +20 -0
- package/dist/core/prompt-builder.js.map +1 -1
- package/dist/core/requirement-clarifier.d.ts.map +1 -1
- package/dist/core/requirement-clarifier.js +36 -0
- package/dist/core/requirement-clarifier.js.map +1 -1
- package/dist/core/state.d.ts +3 -0
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +19 -1
- package/dist/core/state.js.map +1 -1
- package/dist/core/unit-context-assembler.d.ts +5 -0
- package/dist/core/unit-context-assembler.d.ts.map +1 -1
- package/dist/core/unit-context-assembler.js +225 -9
- package/dist/core/unit-context-assembler.js.map +1 -1
- package/package.json +2 -2
|
@@ -318,15 +318,19 @@ function mapToQoderAgentName(subagent) {
|
|
|
318
318
|
'Explore': 'Explore',
|
|
319
319
|
'Plan': 'Plan',
|
|
320
320
|
// v8.3.171+: SpecCore 核心子 Agent → Qoder 内置 Agent 映射
|
|
321
|
-
|
|
321
|
+
// v8.3.223+: 分析/探索类角色映射 Explore(只读探索型),规划类映射 Plan,
|
|
322
|
+
// 生成/审查类保留 general-purpose——修复「全量退化到 general-purpose」的映射问题。
|
|
323
|
+
// 注意:registry 中存在 SpecCore 自定义角色定义时,dispatchSubagent 优先使用
|
|
324
|
+
// 自定义定义(此映射仅作未定义角色时的兜底)。
|
|
325
|
+
'requirement-analyzer': 'Explore',
|
|
322
326
|
'code-generator': 'general-purpose',
|
|
323
327
|
'task-decomposer': 'Plan',
|
|
324
328
|
'schedule-planner': 'Plan',
|
|
325
|
-
'impact-analyst': '
|
|
329
|
+
'impact-analyst': 'Explore',
|
|
326
330
|
'code-reviewer': 'general-purpose',
|
|
327
331
|
'security-reviewer': 'general-purpose',
|
|
328
332
|
// v8.3.189+: 补齐流水线其余阶段的 subagent 映射
|
|
329
|
-
'product-analyst': '
|
|
333
|
+
'product-analyst': 'Explore',
|
|
330
334
|
'doc-sync-agent': 'general-purpose',
|
|
331
335
|
'compliance-checker': 'general-purpose',
|
|
332
336
|
'test-engineer': 'general-purpose',
|
|
@@ -419,7 +423,9 @@ class QoderSdkAdapter {
|
|
|
419
423
|
customAgents[ctx.subagent] = buildQoderAgentDefinition(config);
|
|
420
424
|
}
|
|
421
425
|
// 3. 确定使用的 agent 名称
|
|
422
|
-
|
|
426
|
+
// v8.3.223+: 有 SpecCore 自定义角色定义时优先用自定义 agent(角色特化真正生效);
|
|
427
|
+
// 只有未定义时才回退到 Qoder 内置映射——修复「自定义定义被 general-purpose 覆盖」的退化
|
|
428
|
+
const qoderAgentName = config ? ctx.subagent : (mapToQoderAgentName(ctx.subagent) || ctx.subagent);
|
|
423
429
|
// 4. 构建 options
|
|
424
430
|
const options = {
|
|
425
431
|
auth: accessTokenFromEnv ? accessTokenFromEnv() : undefined,
|
|
@@ -431,8 +437,9 @@ class QoderSdkAdapter {
|
|
|
431
437
|
if (Object.keys(customAgents).length > 0) {
|
|
432
438
|
options.agents = customAgents;
|
|
433
439
|
}
|
|
434
|
-
//
|
|
435
|
-
|
|
440
|
+
// v8.3.223+: 仅当未注入自定义定义时才映射到内置 agent——
|
|
441
|
+
// 旧代码无条件设置 options.agent,导致 SpecCore 自定义角色定义被 general-purpose 覆盖
|
|
442
|
+
if (Object.keys(customAgents).length === 0 && mapToQoderAgentName(ctx.subagent)) {
|
|
436
443
|
options.agent = qoderAgentName;
|
|
437
444
|
}
|
|
438
445
|
logger_1.logger.info(`[QoderSdkAdapter] 调度子 Agent: ${ctx.subagent} (Qoder agent: ${qoderAgentName})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-adapter.js","sourceRoot":"","sources":["../../src/core/agent-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-adapter.js","sourceRoot":"","sources":["../../src/core/agent-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
*/
|
|
15
15
|
/** 内容优先级:0=需求/Spec(不裁剪) 1=代码卡片/源码 2=知识图谱/任务链 3=其他 */
|
|
16
16
|
export type ContentPriority = 0 | 1 | 2 | 3;
|
|
17
|
-
/** 每档预算(字符数)。P0 需求/Spec
|
|
17
|
+
/** 每档预算(字符数)。P0 需求/Spec 设真实上限(约 30K tokens),超限按中间态截断。 */
|
|
18
18
|
export declare const TIER_BUDGETS: {
|
|
19
|
-
readonly P0:
|
|
19
|
+
readonly P0: 40000;
|
|
20
20
|
readonly P1: 10000;
|
|
21
21
|
readonly P2: 5000;
|
|
22
22
|
readonly P3: 3000;
|
|
@@ -55,6 +55,7 @@ export interface BudgetResult {
|
|
|
55
55
|
* 预算可通过 opts 覆盖(默认取 TIER_BUDGETS)。
|
|
56
56
|
*/
|
|
57
57
|
export declare function applyTierBudget(items: BudgetItem[], opts?: {
|
|
58
|
+
budgetP0?: number;
|
|
58
59
|
budgetP1?: number;
|
|
59
60
|
budgetP2?: number;
|
|
60
61
|
budgetP3?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-budget.d.ts","sourceRoot":"","sources":["../../src/core/context-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5C,
|
|
1
|
+
{"version":3,"file":"context-budget.d.ts","sourceRoot":"","sources":["../../src/core/context-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5C,yDAAyD;AACzD,eAAO,MAAM,YAAY;;;;;CAOf,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBnD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAQ7D;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,aAAa;AACb,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EAAE,EACnB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF,YAAY,CAoDd"}
|
|
@@ -18,9 +18,11 @@ exports.TIER_BUDGETS = void 0;
|
|
|
18
18
|
exports.isSpecContent = isSpecContent;
|
|
19
19
|
exports.classifyContent = classifyContent;
|
|
20
20
|
exports.applyTierBudget = applyTierBudget;
|
|
21
|
-
/** 每档预算(字符数)。P0 需求/Spec
|
|
21
|
+
/** 每档预算(字符数)。P0 需求/Spec 设真实上限(约 30K tokens),超限按中间态截断。 */
|
|
22
22
|
exports.TIER_BUDGETS = {
|
|
23
|
-
|
|
23
|
+
// v8.3.223+: 原为 Infinity——P0 永不裁剪导致大单元照样爆上下文,
|
|
24
|
+
// 且降级时悬崖式清空(要么全量、要么归零)。改为真实上限 + 截断中间态。
|
|
25
|
+
P0: 40000,
|
|
24
26
|
P1: 10000, // 代码卡片 / 关联源码 / 前端结构 / INFO_GAP
|
|
25
27
|
P2: 5000, // 知识图谱 / 任务关联链
|
|
26
28
|
P3: 3000, // 其他(一致性检查 / 可选清单 / 工程路径)
|
|
@@ -73,6 +75,7 @@ function classifyContent(name) {
|
|
|
73
75
|
* 预算可通过 opts 覆盖(默认取 TIER_BUDGETS)。
|
|
74
76
|
*/
|
|
75
77
|
function applyTierBudget(items, opts) {
|
|
78
|
+
const B0 = opts?.budgetP0 ?? exports.TIER_BUDGETS.P0;
|
|
76
79
|
const B1 = opts?.budgetP1 ?? exports.TIER_BUDGETS.P1;
|
|
77
80
|
const B2 = opts?.budgetP2 ?? exports.TIER_BUDGETS.P2;
|
|
78
81
|
const B3 = opts?.budgetP3 ?? exports.TIER_BUDGETS.P3;
|
|
@@ -85,7 +88,17 @@ function applyTierBudget(items, opts) {
|
|
|
85
88
|
let keep = true;
|
|
86
89
|
let content = item.content;
|
|
87
90
|
if (p === 0) {
|
|
88
|
-
|
|
91
|
+
// v8.3.223+: P0 设上限后不再无条件保留——超限时截断并提示按需 Read 源文件,
|
|
92
|
+
// 替代旧「Infinity 全量 + 悬崖式清空」两级极端(中间态)
|
|
93
|
+
if (used.p0 + len > B0) {
|
|
94
|
+
const remain = Math.max(0, B0 - used.p0);
|
|
95
|
+
if (remain < 400)
|
|
96
|
+
keep = false;
|
|
97
|
+
else
|
|
98
|
+
content = content.slice(0, remain) + '\n> ... (P0预算截断:剩余内容请按需 Read 源文件)';
|
|
99
|
+
}
|
|
100
|
+
if (keep)
|
|
101
|
+
used.p0 += content.length;
|
|
89
102
|
}
|
|
90
103
|
else if (p === 1) {
|
|
91
104
|
if (used.p1 + len > B1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-budget.js","sourceRoot":"","sources":["../../src/core/context-budget.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;
|
|
1
|
+
{"version":3,"file":"context-budget.js","sourceRoot":"","sources":["../../src/core/context-budget.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAqBH,sCAgBC;AAMD,0CAQC;AAoBD,0CAuDC;AAzHD,yDAAyD;AAC5C,QAAA,YAAY,GAAG;IAC1B,8CAA8C;IAC9C,uCAAuC;IACvC,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK,EAAK,gCAAgC;IAC9C,EAAE,EAAE,IAAI,EAAM,eAAe;IAC7B,EAAE,EAAE,IAAI,EAAM,0BAA0B;CAChC,CAAC;AAEX;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,0BAA0B;IAC1B,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ;QAC7C,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;QAC3C,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI;QAC3D,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY;KACrD,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,IAAI,aAAa,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;WACpE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;WACxC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IACjF,OAAO,CAAC,CAAC;AACX,CAAC;AAeD;;;;GAIG;AACH,SAAgB,eAAe,CAC7B,KAAmB,EACnB,IAAqF;IAErF,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,IAAI,oBAAY,CAAC,EAAE,CAAC;IAC7C,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,IAAI,oBAAY,CAAC,EAAE,CAAC;IAC7C,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,IAAI,oBAAY,CAAC,EAAE,CAAC;IAC7C,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,IAAI,oBAAY,CAAC,EAAE,CAAC;IAE7C,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE3B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,kDAAkD;YAClD,oCAAoC;YACpC,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,MAAM,GAAG,GAAG;oBAAE,IAAI,GAAG,KAAK,CAAC;;oBAC1B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,mCAAmC,CAAC;YAChF,CAAC;YACD,IAAI,IAAI;gBAAE,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;QACtC,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,MAAM,GAAG,GAAG;oBAAE,IAAI,GAAG,KAAK,CAAC;;oBAC1B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAAC;YAC/D,CAAC;YACD,IAAI,IAAI;gBAAE,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;QACtC,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,MAAM,GAAG,GAAG;oBAAE,IAAI,GAAG,KAAK,CAAC;;oBAC1B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAAC;YAC/D,CAAC;YACD,IAAI,IAAI;gBAAE,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,MAAM,GAAG,GAAG;oBAAE,IAAI,GAAG,KAAK,CAAC;;oBAC1B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAAC;YAC/D,CAAC;YACD,IAAI,IAAI;gBAAE,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;QACtC,CAAC;QAED,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dispatch-loop — 调度循环状态机(v8.3.225+)
|
|
3
|
+
*
|
|
4
|
+
* 方式 Y(宿主会话内闭环):CLI 每轮处理一个步骤,宿主 AI 在同一会话内连续调用:
|
|
5
|
+
*
|
|
6
|
+
* CLI 首次调用 → 推进状态机 → 找到第一个「未完成」步骤 → 输出自包含 prompt(exitCode 10)
|
|
7
|
+
* → 宿主 AI 落盘 → 宿主 AI 再次调用 CLI → CLI 校验产物 → 通过则标记 done 并推进下一步
|
|
8
|
+
* → …… → 全部完成 → 输出汇总报告(exitCode 0)
|
|
9
|
+
*
|
|
10
|
+
* 错误隔离:步骤间相互独立,某一步失败(重试超限)只标记该步 failed 并继续后续步骤,
|
|
11
|
+
* 不影响其他步骤。状态文件支持 Ctrl-C 中断后恢复。
|
|
12
|
+
*
|
|
13
|
+
* 状态文件:<projectRoot>/.speccore/local/dispatch-loop.json(按 scope 分节,一个文件多租户)
|
|
14
|
+
*/
|
|
15
|
+
export type LoopStepStatus = 'done' | 'failed';
|
|
16
|
+
export interface LoopStepState {
|
|
17
|
+
status?: LoopStepStatus;
|
|
18
|
+
/** 已完成的尝试次数(1-based)。首试 attempt=1,一次重试 attempt=2 */
|
|
19
|
+
attempt: number;
|
|
20
|
+
lastError?: string;
|
|
21
|
+
updatedAt: string;
|
|
22
|
+
}
|
|
23
|
+
export interface LoopStateFile {
|
|
24
|
+
version: 1;
|
|
25
|
+
scopes: Record<string, Record<string, LoopStepState>>;
|
|
26
|
+
}
|
|
27
|
+
export interface LoopStep {
|
|
28
|
+
/** 步骤唯一 ID(建议带前缀,如 `unit:PRD-会议室管理`) */
|
|
29
|
+
id: string;
|
|
30
|
+
/** 步骤展示名 */
|
|
31
|
+
name: string;
|
|
32
|
+
/** 产出校验:返回 null = 通过;返回字符串 = 失败原因 */
|
|
33
|
+
validate: () => Promise<string | null>;
|
|
34
|
+
/** 生成该步骤的 prompt(attempt 为第几次尝试,lastError 为上次失败原因,仅重试时有值) */
|
|
35
|
+
buildPrompt: (ctx: {
|
|
36
|
+
attempt: number;
|
|
37
|
+
lastError?: string;
|
|
38
|
+
}) => Promise<string>;
|
|
39
|
+
}
|
|
40
|
+
export interface LoopSummary {
|
|
41
|
+
done: string[];
|
|
42
|
+
failed: string[];
|
|
43
|
+
failedErrors: Record<string, string>;
|
|
44
|
+
}
|
|
45
|
+
export interface LoopRoundResult {
|
|
46
|
+
finished: boolean;
|
|
47
|
+
/** finished=true 时的汇总 */
|
|
48
|
+
summary?: LoopSummary;
|
|
49
|
+
/** finished=false 时的当前步骤 */
|
|
50
|
+
step?: LoopStep;
|
|
51
|
+
/** 本次输出的尝试序号(1-based) */
|
|
52
|
+
attempt?: number;
|
|
53
|
+
/** 当前步骤的 prompt(finished=false 时必有) */
|
|
54
|
+
prompt?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface DispatchLoopOptions {
|
|
57
|
+
projectRoot: string;
|
|
58
|
+
/** 状态文件命名空间(如 `analyze-units:meeting-system`) */
|
|
59
|
+
scope: string;
|
|
60
|
+
/** 重试次数(默认 1,即最多 2 次尝试) */
|
|
61
|
+
maxRetries?: number;
|
|
62
|
+
/** 已完成步骤的产物被删除时是否重置为 pending(默认 true) */
|
|
63
|
+
resetStaleDone?: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 推进一轮调度循环。
|
|
67
|
+
*
|
|
68
|
+
* 行为:
|
|
69
|
+
* 1. 已标记 failed 的步骤直接跳过(错误隔离,不阻塞后续)
|
|
70
|
+
* 2. 从前往后逐个校验步骤产出:通过 → 标记 done 并继续(宿主可能一次落盘多个步骤)
|
|
71
|
+
* 3. 遇到「产出未就绪」的步骤:
|
|
72
|
+
* - 尝试次数已达上限(maxRetries+1)→ 标记 failed,继续后续步骤
|
|
73
|
+
* - 否则 → 记录本次尝试、生成 prompt 并返回(调用方输出 prompt 后以 exitCode 10 退出)
|
|
74
|
+
* 4. 所有步骤均为 done/failed → 返回 finished=true + 汇总报告
|
|
75
|
+
*/
|
|
76
|
+
export declare function runDispatchLoopRound(steps: LoopStep[], options: DispatchLoopOptions): Promise<LoopRoundResult>;
|
|
77
|
+
/**
|
|
78
|
+
* 重置指定 scope 的状态(如用户手动删除产物后重跑)。
|
|
79
|
+
*/
|
|
80
|
+
export declare function resetDispatchLoopState(projectRoot: string, scope: string): Promise<void>;
|
|
81
|
+
//# sourceMappingURL=dispatch-loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-loop.d.ts","sourceRoot":"","sources":["../../src/core/dispatch-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,QAAQ;IACvB,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,6DAA6D;IAC7D,WAAW,EAAE,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAChF;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,yBAAyB;IACzB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAwCD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,eAAe,CAAC,CAmF1B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9F"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* dispatch-loop — 调度循环状态机(v8.3.225+)
|
|
4
|
+
*
|
|
5
|
+
* 方式 Y(宿主会话内闭环):CLI 每轮处理一个步骤,宿主 AI 在同一会话内连续调用:
|
|
6
|
+
*
|
|
7
|
+
* CLI 首次调用 → 推进状态机 → 找到第一个「未完成」步骤 → 输出自包含 prompt(exitCode 10)
|
|
8
|
+
* → 宿主 AI 落盘 → 宿主 AI 再次调用 CLI → CLI 校验产物 → 通过则标记 done 并推进下一步
|
|
9
|
+
* → …… → 全部完成 → 输出汇总报告(exitCode 0)
|
|
10
|
+
*
|
|
11
|
+
* 错误隔离:步骤间相互独立,某一步失败(重试超限)只标记该步 failed 并继续后续步骤,
|
|
12
|
+
* 不影响其他步骤。状态文件支持 Ctrl-C 中断后恢复。
|
|
13
|
+
*
|
|
14
|
+
* 状态文件:<projectRoot>/.speccore/local/dispatch-loop.json(按 scope 分节,一个文件多租户)
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.runDispatchLoopRound = runDispatchLoopRound;
|
|
18
|
+
exports.resetDispatchLoopState = resetDispatchLoopState;
|
|
19
|
+
const path_1 = require("path");
|
|
20
|
+
const fs_extra_1 = require("fs-extra");
|
|
21
|
+
const logger_1 = require("../utils/logger");
|
|
22
|
+
// ═══════════════════════════════════════════════════════════
|
|
23
|
+
// 状态文件读写
|
|
24
|
+
// ═══════════════════════════════════════════════════════════
|
|
25
|
+
async function getStateFilePath(projectRoot) {
|
|
26
|
+
const fp = (0, path_1.join)(projectRoot, '.speccore', 'local', 'dispatch-loop.json');
|
|
27
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.dirname)(fp));
|
|
28
|
+
return fp;
|
|
29
|
+
}
|
|
30
|
+
async function loadStateFile(projectRoot) {
|
|
31
|
+
try {
|
|
32
|
+
const fp = await getStateFilePath(projectRoot);
|
|
33
|
+
if (!(await (0, fs_extra_1.pathExists)(fp)))
|
|
34
|
+
return { version: 1, scopes: {} };
|
|
35
|
+
const raw = await (0, fs_extra_1.readFile)(fp, 'utf-8');
|
|
36
|
+
const parsed = JSON.parse(raw);
|
|
37
|
+
if (parsed && parsed.version === 1 && typeof parsed.scopes === 'object' && parsed.scopes) {
|
|
38
|
+
return parsed;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
logger_1.logger.debug(`[dispatch-loop] 状态文件读取失败,使用空状态: ${e.message}`);
|
|
43
|
+
}
|
|
44
|
+
return { version: 1, scopes: {} };
|
|
45
|
+
}
|
|
46
|
+
async function saveStateFile(projectRoot, state) {
|
|
47
|
+
try {
|
|
48
|
+
const fp = await getStateFilePath(projectRoot);
|
|
49
|
+
await (0, fs_extra_1.writeFile)(fp, JSON.stringify(state, null, 2));
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
logger_1.logger.warn(`[dispatch-loop] 状态文件写入失败: ${e.message}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// ═══════════════════════════════════════════════════════════
|
|
56
|
+
// 核心循环
|
|
57
|
+
// ═══════════════════════════════════════════════════════════
|
|
58
|
+
/**
|
|
59
|
+
* 推进一轮调度循环。
|
|
60
|
+
*
|
|
61
|
+
* 行为:
|
|
62
|
+
* 1. 已标记 failed 的步骤直接跳过(错误隔离,不阻塞后续)
|
|
63
|
+
* 2. 从前往后逐个校验步骤产出:通过 → 标记 done 并继续(宿主可能一次落盘多个步骤)
|
|
64
|
+
* 3. 遇到「产出未就绪」的步骤:
|
|
65
|
+
* - 尝试次数已达上限(maxRetries+1)→ 标记 failed,继续后续步骤
|
|
66
|
+
* - 否则 → 记录本次尝试、生成 prompt 并返回(调用方输出 prompt 后以 exitCode 10 退出)
|
|
67
|
+
* 4. 所有步骤均为 done/failed → 返回 finished=true + 汇总报告
|
|
68
|
+
*/
|
|
69
|
+
async function runDispatchLoopRound(steps, options) {
|
|
70
|
+
const maxRetries = options.maxRetries ?? 1;
|
|
71
|
+
const resetStaleDone = options.resetStaleDone ?? true;
|
|
72
|
+
const stateFile = await loadStateFile(options.projectRoot);
|
|
73
|
+
const scopeState = stateFile.scopes[options.scope] || (stateFile.scopes[options.scope] = {});
|
|
74
|
+
const now = new Date().toISOString();
|
|
75
|
+
const done = [];
|
|
76
|
+
const failed = [];
|
|
77
|
+
const failedErrors = {};
|
|
78
|
+
for (const step of steps) {
|
|
79
|
+
const st = scopeState[step.id];
|
|
80
|
+
// 已标记失败:先校验产物是否已被手动修复(通过则恢复为 done,否则保持跳过)
|
|
81
|
+
if (st?.status === 'failed') {
|
|
82
|
+
const error = await step.validate();
|
|
83
|
+
if (error === null) {
|
|
84
|
+
scopeState[step.id] = { status: 'done', attempt: st.attempt, updatedAt: now };
|
|
85
|
+
done.push(step.id);
|
|
86
|
+
logger_1.logger.info(`[dispatch-loop] 步骤 ${step.id} 已手动修复,恢复为完成`);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
failed.push(step.id);
|
|
90
|
+
failedErrors[step.id] = st.lastError || error;
|
|
91
|
+
}
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
// 校验产出
|
|
95
|
+
const error = await step.validate();
|
|
96
|
+
if (error === null) {
|
|
97
|
+
// 产出就绪 → 标记完成
|
|
98
|
+
scopeState[step.id] = { status: 'done', attempt: st?.attempt ?? 1, updatedAt: now };
|
|
99
|
+
done.push(step.id);
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
// 产出未就绪。若之前标记过 done(产物被删),按需重置
|
|
103
|
+
if (st?.status === 'done') {
|
|
104
|
+
if (!resetStaleDone) {
|
|
105
|
+
done.push(step.id);
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
logger_1.logger.warn(`[dispatch-loop] 步骤 ${step.id} 曾完成但产物已失效,重置为待处理`);
|
|
109
|
+
delete scopeState[step.id];
|
|
110
|
+
}
|
|
111
|
+
// 尝试次数判断
|
|
112
|
+
const prevAttempt = scopeState[step.id]?.attempt ?? 0;
|
|
113
|
+
if (prevAttempt >= maxRetries + 1) {
|
|
114
|
+
// 重试超限 → 标记失败,继续后续步骤
|
|
115
|
+
scopeState[step.id] = { status: 'failed', attempt: prevAttempt, lastError: error, updatedAt: now };
|
|
116
|
+
failed.push(step.id);
|
|
117
|
+
failedErrors[step.id] = error;
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
// 记录本次尝试并生成 prompt
|
|
121
|
+
const nextAttempt = prevAttempt + 1;
|
|
122
|
+
scopeState[step.id] = { attempt: nextAttempt, lastError: error, updatedAt: now };
|
|
123
|
+
await saveStateFile(options.projectRoot, stateFile);
|
|
124
|
+
const prompt = await step.buildPrompt({
|
|
125
|
+
attempt: nextAttempt,
|
|
126
|
+
lastError: prevAttempt > 0 ? error : undefined,
|
|
127
|
+
});
|
|
128
|
+
logger_1.logger.info(`[dispatch-loop] 步骤 ${step.id} 待处理(第 ${nextAttempt}/${maxRetries + 1} 次尝试)`);
|
|
129
|
+
return {
|
|
130
|
+
finished: false,
|
|
131
|
+
step,
|
|
132
|
+
attempt: nextAttempt,
|
|
133
|
+
prompt,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
await saveStateFile(options.projectRoot, stateFile);
|
|
137
|
+
return {
|
|
138
|
+
finished: true,
|
|
139
|
+
summary: { done, failed, failedErrors },
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* 重置指定 scope 的状态(如用户手动删除产物后重跑)。
|
|
144
|
+
*/
|
|
145
|
+
async function resetDispatchLoopState(projectRoot, scope) {
|
|
146
|
+
const stateFile = await loadStateFile(projectRoot);
|
|
147
|
+
if (stateFile.scopes[scope]) {
|
|
148
|
+
delete stateFile.scopes[scope];
|
|
149
|
+
await saveStateFile(projectRoot, stateFile);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=dispatch-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-loop.js","sourceRoot":"","sources":["../../src/core/dispatch-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,8 @@ export interface CachedIntent {
|
|
|
23
23
|
createdAt: string;
|
|
24
24
|
/** 最后命中时间 */
|
|
25
25
|
lastUsed: string;
|
|
26
|
+
/** v8.3.224+: 创建该条目时的 CLI 版本(识别逻辑升级后旧缓存自动失效) */
|
|
27
|
+
cliVersion: string;
|
|
26
28
|
}
|
|
27
29
|
export interface IntentCache {
|
|
28
30
|
version: string;
|
|
@@ -32,10 +34,13 @@ export interface IntentCache {
|
|
|
32
34
|
}
|
|
33
35
|
/**
|
|
34
36
|
* 查询缓存:精确 → 归一化语义 → 编辑距离模糊
|
|
37
|
+
* v8.3.224+: 条目级 cliVersion 校验——旧版本 CLI 产生的缓存条目不再命中,
|
|
38
|
+
* 避免识别逻辑修复后被旧错误结果固化(如「从切分功能单元到开发」被旧缓存固化为歧义)。
|
|
35
39
|
*/
|
|
36
40
|
export declare function getCachedIntent(input: string): Promise<AskResult | null>;
|
|
37
41
|
/**
|
|
38
42
|
* 写入缓存
|
|
43
|
+
* v8.3.224+: 拒绝缓存 ambiguous(歧义是中间态,固化会把旧错误结果永久锁定)
|
|
39
44
|
*/
|
|
40
45
|
export declare function cacheIntent(input: string, result: AskResult, source?: string): Promise<void>;
|
|
41
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-cache.d.ts","sourceRoot":"","sources":["../../src/core/intent-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"intent-cache.d.ts","sourceRoot":"","sources":["../../src/core/intent-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAO9C,MAAM,WAAW,YAAY;IAC3B,cAAc;IACd,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,+BAA+B;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAgED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAwD9E;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B7G;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAGrF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjE;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CASrG"}
|
|
@@ -16,11 +16,12 @@ exports.markSolidified = markSolidified;
|
|
|
16
16
|
exports.getCacheStats = getCacheStats;
|
|
17
17
|
const fs_extra_1 = require("fs-extra");
|
|
18
18
|
const logger_1 = require("../utils/logger");
|
|
19
|
+
const package_json_1 = require("../../package.json");
|
|
19
20
|
// ═══════════════════════════════════════════════════════════
|
|
20
21
|
// 常量
|
|
21
22
|
// ═══════════════════════════════════════════════════════════
|
|
22
23
|
const CACHE_PATH = '.speccore/local/intent-cache.json';
|
|
23
|
-
const CACHE_VERSION = '1.
|
|
24
|
+
const CACHE_VERSION = '1.2'; // 1.2: 条目级 cliVersion,识别逻辑升级后旧缓存自动失效
|
|
24
25
|
const MAX_ENTRIES = 200;
|
|
25
26
|
const FUZZY_THRESHOLD = 2; // 编辑距离阈值
|
|
26
27
|
/** 停用词表 */
|
|
@@ -71,27 +72,31 @@ async function saveCache(cache) {
|
|
|
71
72
|
// ═══════════════════════════════════════════════════════════
|
|
72
73
|
/**
|
|
73
74
|
* 查询缓存:精确 → 归一化语义 → 编辑距离模糊
|
|
75
|
+
* v8.3.224+: 条目级 cliVersion 校验——旧版本 CLI 产生的缓存条目不再命中,
|
|
76
|
+
* 避免识别逻辑修复后被旧错误结果固化(如「从切分功能单元到开发」被旧缓存固化为歧义)。
|
|
74
77
|
*/
|
|
75
78
|
async function getCachedIntent(input) {
|
|
76
79
|
const cache = await loadCache();
|
|
80
|
+
// v8.3.224+: 条目级 cliVersion 校验,旧版本 CLI 产生的条目不再命中
|
|
81
|
+
const isStale = (entry) => entry.cliVersion !== package_json_1.version;
|
|
82
|
+
const touch = async (entry, hitType, extra = '') => {
|
|
83
|
+
entry.hitCount++;
|
|
84
|
+
entry.lastUsed = new Date().toISOString();
|
|
85
|
+
await saveCache(cache);
|
|
86
|
+
logger_1.logger.info(`💾 意图缓存命中(${hitType}): "${input.slice(0, 30)}..."${extra} → ${entry.result.summary.slice(0, 30)}`);
|
|
87
|
+
};
|
|
77
88
|
// 1. 精确匹配
|
|
78
89
|
const exact = cache.entries[input];
|
|
79
|
-
if (exact) {
|
|
80
|
-
exact
|
|
81
|
-
exact.lastUsed = new Date().toISOString();
|
|
82
|
-
await saveCache(cache);
|
|
83
|
-
logger_1.logger.info(`💾 意图缓存命中(精确): "${input.slice(0, 30)}..." → ${exact.result.summary.slice(0, 30)}`);
|
|
90
|
+
if (exact && !isStale(exact)) {
|
|
91
|
+
await touch(exact, '精确');
|
|
84
92
|
return exact.result;
|
|
85
93
|
}
|
|
86
94
|
// 2. 归一化语义匹配("分析一下登录" ≈ "分析登录功能")
|
|
87
95
|
const normalized = normalizeInput(input);
|
|
88
96
|
if (normalized) {
|
|
89
97
|
for (const entry of Object.values(cache.entries)) {
|
|
90
|
-
if (entry.normalizedInput === normalized) {
|
|
91
|
-
entry.
|
|
92
|
-
entry.lastUsed = new Date().toISOString();
|
|
93
|
-
await saveCache(cache);
|
|
94
|
-
logger_1.logger.info(`💾 意图缓存命中(语义): "${input.slice(0, 30)}..." ≈ "${entry.input.slice(0, 30)}..."`);
|
|
98
|
+
if (!isStale(entry) && entry.normalizedInput === normalized) {
|
|
99
|
+
await touch(entry, '语义', ` ≈ "${entry.input.slice(0, 30)}..."`);
|
|
95
100
|
return entry.result;
|
|
96
101
|
}
|
|
97
102
|
}
|
|
@@ -99,25 +104,36 @@ async function getCachedIntent(input) {
|
|
|
99
104
|
// 3. 模糊匹配(编辑距离 ≤ 2,且长度比例合理)
|
|
100
105
|
// 防止短字符串误匹配:如"补充测试"匹配"补充分析"(编辑距离 2 但语义完全不同)
|
|
101
106
|
for (const [cachedInput, entry] of Object.entries(cache.entries)) {
|
|
107
|
+
if (isStale(entry))
|
|
108
|
+
continue;
|
|
102
109
|
const dist = levenshtein(input, cachedInput);
|
|
103
110
|
const maxLen = Math.max(input.length, cachedInput.length);
|
|
104
111
|
const minLen = Math.min(input.length, cachedInput.length);
|
|
105
112
|
// 长度比例保护:编辑距离 ≤ 2 时,要求较短串长度 ≥ 6(避免 4 字中文短句误匹配)
|
|
106
113
|
// 且编辑距离占较长串比例 ≤ 30%(避免长串被短串误匹配)
|
|
107
114
|
if (dist <= FUZZY_THRESHOLD && minLen >= 6 && dist / maxLen <= 0.3) {
|
|
108
|
-
entry.
|
|
109
|
-
entry.lastUsed = new Date().toISOString();
|
|
110
|
-
await saveCache(cache);
|
|
111
|
-
logger_1.logger.info(`💾 意图缓存命中(模糊): "${input.slice(0, 30)}..." ≈ "${cachedInput.slice(0, 30)}..."`);
|
|
115
|
+
await touch(entry, '模糊', ` ≈ "${cachedInput.slice(0, 30)}..."`);
|
|
112
116
|
return entry.result;
|
|
113
117
|
}
|
|
114
118
|
}
|
|
119
|
+
// 惰性清理:存在旧版本条目时重建缓存结构,避免旧条目无限堆积
|
|
120
|
+
if (Object.keys(cache.entries).some(k => isStale(cache.entries[k]))) {
|
|
121
|
+
const totalBefore = Object.keys(cache.entries).length;
|
|
122
|
+
cache.entries = Object.fromEntries(Object.entries(cache.entries).filter(([, e]) => !isStale(e)));
|
|
123
|
+
await saveCache(cache);
|
|
124
|
+
logger_1.logger.info(`💾 意图缓存:已清除 ${totalBefore - Object.keys(cache.entries).length} 条旧版本缓存(当前 CLI ${package_json_1.version})`);
|
|
125
|
+
}
|
|
115
126
|
return null;
|
|
116
127
|
}
|
|
117
128
|
/**
|
|
118
129
|
* 写入缓存
|
|
130
|
+
* v8.3.224+: 拒绝缓存 ambiguous(歧义是中间态,固化会把旧错误结果永久锁定)
|
|
119
131
|
*/
|
|
120
132
|
async function cacheIntent(input, result, source = 'host-ai') {
|
|
133
|
+
if (result.mode === 'ambiguous') {
|
|
134
|
+
logger_1.logger.debug(`💾 意图缓存:跳过 ambiguous 结果(歧义是中间态,不固化): "${input.slice(0, 30)}..."`);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
121
137
|
const cache = await loadCache();
|
|
122
138
|
cache.entries[input] = {
|
|
123
139
|
input,
|
|
@@ -127,6 +143,7 @@ async function cacheIntent(input, result, source = 'host-ai') {
|
|
|
127
143
|
hitCount: 1,
|
|
128
144
|
createdAt: new Date().toISOString(),
|
|
129
145
|
lastUsed: new Date().toISOString(),
|
|
146
|
+
cliVersion: package_json_1.version,
|
|
130
147
|
};
|
|
131
148
|
// 超限清理:保留最近使用的 150 条
|
|
132
149
|
const entriesList = Object.entries(cache.entries);
|