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.
Files changed (59) hide show
  1. package/dist/cli.js +29 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/analyze.d.ts.map +1 -1
  4. package/dist/commands/analyze.js +491 -238
  5. package/dist/commands/analyze.js.map +1 -1
  6. package/dist/commands/change.js +1 -0
  7. package/dist/commands/change.js.map +1 -1
  8. package/dist/commands/doc2spec.d.ts.map +1 -1
  9. package/dist/commands/doc2spec.js +205 -95
  10. package/dist/commands/doc2spec.js.map +1 -1
  11. package/dist/commands/execute.js +4 -4
  12. package/dist/commands/execute.js.map +1 -1
  13. package/dist/commands/iteration/split.d.ts.map +1 -1
  14. package/dist/commands/iteration/split.js +29 -182
  15. package/dist/commands/iteration/split.js.map +1 -1
  16. package/dist/commands/plan.d.ts.map +1 -1
  17. package/dist/commands/plan.js +67 -11
  18. package/dist/commands/plan.js.map +1 -1
  19. package/dist/commands/req-doc.d.ts.map +1 -1
  20. package/dist/commands/req-doc.js +122 -14
  21. package/dist/commands/req-doc.js.map +1 -1
  22. package/dist/commands/retro.d.ts +1 -1
  23. package/dist/commands/retro.d.ts.map +1 -1
  24. package/dist/commands/retro.js +87 -8
  25. package/dist/commands/retro.js.map +1 -1
  26. package/dist/commands/run.d.ts +1 -0
  27. package/dist/commands/run.d.ts.map +1 -1
  28. package/dist/commands/run.js +144 -17
  29. package/dist/commands/run.js.map +1 -1
  30. package/dist/core/agent-adapter.d.ts.map +1 -1
  31. package/dist/core/agent-adapter.js +13 -6
  32. package/dist/core/agent-adapter.js.map +1 -1
  33. package/dist/core/context-budget.d.ts +3 -2
  34. package/dist/core/context-budget.d.ts.map +1 -1
  35. package/dist/core/context-budget.js +16 -3
  36. package/dist/core/context-budget.js.map +1 -1
  37. package/dist/core/dispatch-loop.d.ts +81 -0
  38. package/dist/core/dispatch-loop.d.ts.map +1 -0
  39. package/dist/core/dispatch-loop.js +152 -0
  40. package/dist/core/dispatch-loop.js.map +1 -0
  41. package/dist/core/intent-cache.d.ts +5 -0
  42. package/dist/core/intent-cache.d.ts.map +1 -1
  43. package/dist/core/intent-cache.js +32 -15
  44. package/dist/core/intent-cache.js.map +1 -1
  45. package/dist/core/prompt-builder.d.ts.map +1 -1
  46. package/dist/core/prompt-builder.js +20 -0
  47. package/dist/core/prompt-builder.js.map +1 -1
  48. package/dist/core/requirement-clarifier.d.ts.map +1 -1
  49. package/dist/core/requirement-clarifier.js +36 -0
  50. package/dist/core/requirement-clarifier.js.map +1 -1
  51. package/dist/core/state.d.ts +3 -0
  52. package/dist/core/state.d.ts.map +1 -1
  53. package/dist/core/state.js +19 -1
  54. package/dist/core/state.js.map +1 -1
  55. package/dist/core/unit-context-assembler.d.ts +5 -0
  56. package/dist/core/unit-context-assembler.d.ts.map +1 -1
  57. package/dist/core/unit-context-assembler.js +225 -9
  58. package/dist/core/unit-context-assembler.js.map +1 -1
  59. 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
- 'requirement-analyzer': 'general-purpose',
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': 'general-purpose',
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': 'general-purpose',
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
- const qoderAgentName = mapToQoderAgentName(ctx.subagent) || ctx.subagent;
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
- // 如果映射到内置 agent,使用 agent 选项
435
- if (mapToQoderAgentName(ctx.subagent)) {
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":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAojBH,wDAGC;AAGD,kEAEC;AAsBD,4CAsBC;AAUD,gDA8BC;AA3oBD,4CAAyC;AACzC,+CAA8D;AAC9D,+DAA6D;AA6E7D,sBAAsB;AACtB,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA0B,CAAC;AAE3D,yCAAyC;AACzC,6FAA6F;AAC7F,SAAS,uBAAuB,CAAC,GAAoB;IACnD,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI;QAClC,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU;QAChD,kBAAkB,EAAE,GAAG,CAAC,WAAW,IAAI,MAAM;QAC7C,oBAAoB,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;QAC/C,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,kEAAkE;AAClE,SAAS,cAAc,CAAC,GAAoB;IAC1C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AACjD,CAAC;AAGD,8DAA8D;AAC9D,wCAAwC;AACxC,8DAA8D;AAE9D,MAAa,eAAe;IAI1B;QAFQ,mBAAc,GAAG,KAAK,CAAC;QAG7B,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAClE,KAAK,CAAC,oBAAoB,CAAC,GAAW;QAC5C,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAa,EAAC,GAAG,CAAC,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,eAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,gBAAgB,CAAC,IAAkB,EAAE,WAAmB;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,MAAsB;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChC,eAAM,CAAC,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,uBAAuB;IACvB,KAAK,CAAC,cAAc,CAAC,GAAiB;QACpC,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,kBAAkB;QAClB,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,aAAa;QACb,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,+BAA+B;QAC/B,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,IAAI,GAAG,CAAC,eAAe,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC9B,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;oBAC1D,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC;gBAC/B,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,IAAI,GAAG,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,+BAA+B;QAC/B,IAAI,GAAG,CAAC,WAAW,KAAK,eAAe,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,QAAQ,uBAAuB,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,8BAA8B;QAC9B,IAAI,GAAG,CAAC,WAAW,KAAK,eAAe,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,sDAAsD;QACtD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,MAAM,SAAS,GAA6B;YAC1C,iBAAiB,EAAE;gBACjB,6CAA6C;gBAC7C,uCAAuC;gBACvC,wCAAwC;gBACxC,0BAA0B;aAC3B;YACD,sBAAsB,EAAE;gBACtB,6BAA6B;gBAC7B,iDAAiD;gBACjD,oDAAoD;gBACpD,6BAA6B;aAC9B;YACD,mBAAmB,EAAE;gBACnB,+CAA+C;gBAC/C,GAAG,CAAC,WAAW,KAAK,aAAa;oBAC/B,CAAC,CAAC,mCAAmC;oBACrC,CAAC,CAAC,0BAA0B;gBAC9B,wBAAwB;aACzB;YACD,UAAU,EAAE;gBACV,sBAAsB;gBACtB,8DAA8D;gBAC9D,+CAA+C;gBAC/C,qBAAqB;aACtB;YACD,eAAe,EAAE;gBACf,4BAA4B;gBAC5B,4BAA4B;gBAC5B,uBAAuB;gBACvB,qBAAqB;aACtB;YACD,oBAAoB,EAAE;gBACpB,mCAAmC;gBACnC,wBAAwB;gBACxB,qBAAqB;gBACrB,kBAAkB;aACnB;YACD,gBAAgB,EAAE;gBAChB,4BAA4B;gBAC5B,yBAAyB;gBACzB,uBAAuB;gBACvB,qBAAqB;aACtB;YACD,sBAAsB,EAAE;gBACtB,uBAAuB;gBACvB,wCAAwC;gBACxC,8BAA8B;aAC/B;YACD,gBAAgB,EAAE;gBAChB,6BAA6B;gBAC7B,+BAA+B;gBAC/B,mCAAmC;aACpC;YACD,iBAAiB,EAAE;gBACjB,uCAAuC;gBACvC,oBAAoB;gBACpB,kCAAkC;aACnC;YACD,oBAAoB,EAAE;gBACpB,6BAA6B;gBAC7B,uBAAuB;aACxB;YACD,eAAe,EAAE;gBACf,wBAAwB;gBACxB,4CAA4C;gBAC5C,wBAAwB;aACzB;YACD,eAAe,EAAE;gBACf,kBAAkB;gBAClB,8CAA8C;gBAC9C,oBAAoB;aACrB;YACD,gBAAgB,EAAE;gBAChB,uBAAuB;gBACvB,oBAAoB;aACrB;YACD,mBAAmB,EAAE;gBACnB,uBAAuB;gBACvB,oBAAoB;aACrB;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,qBAAqB;IACrB,qBAAqB,CAAC,GAAiB,EAAE,UAAkB;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,4BAA4B,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;QACxD,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,iCAAiC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,6BAA6B,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAtND,0CAsNC;AAED,8DAA8D;AAC9D,oDAAoD;AACpD,8DAA8D;AAE9D,oDAAoD;AACpD,SAAS,yBAAyB,CAAC,MAAsB;IACvD,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;QACjE,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,aAAa;KAC9B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,0BAA0B,CAAC,MAAc;IAChD,MAAM,WAAW,GACf,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB,iDAAiD,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9D,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;QACpC,wDAAwD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAExE,IAAI,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC;IAEhC,MAAM,KAAK,GAAG;QACZ,EAAE;QACF,EAAE;QACF,wCAAwC;QACxC,6CAA6C;QAC7C,2BAA2B;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO,MAAM,GAAG,KAAK,CAAC;AACxB,CAAC;AAED;4CAC4C;AAC5C,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,MAAM,UAAU,GAA2B;QACzC,mBAAmB;QACnB,iBAAiB,EAAE,iBAAiB;QACpC,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,MAAM;QACd,oDAAoD;QACpD,mDAAmD;QACnD,4DAA4D;QAC5D,0DAA0D;QAC1D,yBAAyB;QACzB,sBAAsB,EAAE,SAAS;QACjC,gBAAgB,EAAE,iBAAiB;QACnC,iBAAiB,EAAE,MAAM;QACzB,kBAAkB,EAAE,MAAM;QAC1B,gBAAgB,EAAE,SAAS;QAC3B,eAAe,EAAE,iBAAiB;QAClC,mBAAmB,EAAE,iBAAiB;QACtC,oCAAoC;QACpC,iBAAiB,EAAE,SAAS;QAC5B,gBAAgB,EAAE,iBAAiB;QACnC,oBAAoB,EAAE,iBAAiB;QACvC,eAAe,EAAE,iBAAiB;QAClC,mBAAmB,EAAE,iBAAiB;KACvC,CAAC;IACF,iDAAiD;IACjD,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtD,sCAAsC;IACtC,uGAAuG;IACvG,gDAAgD;IAChD,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,CAAC;YAAE,MAAM;QACpB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1B,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,gCAAgC;IAChC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAa,eAAe;IAK1B;QAHQ,cAAS,GAAe,IAAI,CAAC;QAC7B,mBAAc,GAAG,KAAK,CAAC;QAG7B,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED,iDAAiD;IACzC,KAAK,CAAC,oBAAoB,CAAC,GAAW;QAC5C,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAa,EAAC,GAAG,CAAC,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,MAAsB;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,cAAc,CAAC,GAAiB;QACpC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,0CAA0C;IAC1C,qBAAqB,CAAC,GAAiB,EAAE,UAAkB;QACzD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,gBAAgB,CAAC,GAAiB,EAAE,UAAkB;QAC1D,IAAI,CAAC;YACH,mCAAmC;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,IAAI,CAAC,SAAS,GAAG,wDAAa,2BAA2B,GAAC,CAAC;oBAC3D,eAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC5C,CAAC;gBAAC,OAAO,MAAW,EAAE,CAAC;oBACrB,eAAM,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;oBAC1E,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YACrD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,eAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;gBACnE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE/C,qBAAqB;YACrB,MAAM,YAAY,GAAwB,EAAE,CAAC;YAC7C,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;YACjE,CAAC;YAED,oBAAoB;YACpB,wDAAwD;YACxD,0DAA0D;YAC1D,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEnG,gBAAgB;YAChB,MAAM,OAAO,GAAQ;gBACnB,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC3D,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;gBACxE,cAAc,EAAE,aAAa;aAC9B,CAAC;YAEF,4BAA4B;YAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC;YAChC,CAAC;YACD,uCAAuC;YACvC,iEAAiE;YACjE,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChF,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC;YACjC,CAAC;YAED,eAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,QAAQ,kBAAkB,cAAc,GAAG,CAAC,CAAC;YAE7F,gEAAgE;YAChE,MAAM,WAAW,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;YAE3D,oBAAoB;YACpB,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;YAEvD,gBAAgB;YAChB,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,IAAI,KAAyB,CAAC;YAE9B,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;gBACnC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACjC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;wBACnD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BAC1B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;wBACxB,CAAC;6BAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BACrC,eAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;4BACtD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gCACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC;gCACzD,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oCACzC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAC1B,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrC,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;wBAChC,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,IAAI,cAAc,CAAC;oBACpD,CAAC;oBACD,eAAM,CAAC,IAAI,CAAC,6BAA6B,GAAG,CAAC,QAAQ,UAAU,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,KAAK;gBACf,OAAO,EAAE,OAAO,IAAI,SAAS;gBAC7B,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;gBAChE,KAAK;aACN,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,eAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AApJD,0CAoJC;AAED,8DAA8D;AAC9D,SAAS;AACT,8DAA8D;AAE9D,iCAAiC;AACjC,SAAgB,sBAAsB,CAAC,IAAiB;IACtD,MAAM,CAAC,GAAG,IAAI,IAAI,IAAA,0BAAY,GAAE,CAAC;IACjC,OAAO,CAAC,KAAK,OAAO,CAAC;AACvB,CAAC;AAED,6CAA6C;AAC7C,SAAgB,2BAA2B;IACzC,OAAO,IAAI,CAAC,CAAC,wBAAwB;AACvC,CAAC;AAED,8DAA8D;AAC9D,oBAAoB;AACpB,8DAA8D;AAE9D,mDAAmD;AACnD,IAAI,gBAAgB,GAA2B,IAAI,CAAC;AAEpD,SAAS,kBAAkB;IACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CACpC,GAAiB,EACjB,UAAkB;IAElB,MAAM,IAAI,GAAG,IAAA,0BAAY,GAAE,CAAC;IAE5B,uDAAuD;IACvD,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,qCAAqC;IACrC,yEAAyE;IACzE,sDAAsD;IACtD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,eAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,4DAA4D,CAAC,CAAC;IAC7G,CAAC;SAAM,CAAC;QACN,eAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,8BAA8B,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8DAA8D;AAC9D,OAAO;AACP,8DAA8D;AAE9D;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,IAAuB;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmD,CAAC;IAChF,MAAM,aAAa,GAAG,IAAI,IAAI,OAAO,CAAC;IAEtC,kBAAkB;IAClB,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;YAClC,eAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,IAAI,eAAe,EAAE,CAAC;QAC/B,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,uCAAuC,aAAa,GAAG,CAAC,CAAC;QACtE,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;IAED,gBAAgB;IAChB,MAAM,IAAI,GAAG,IAAA,0BAAY,GAAE,CAAC;IAC5B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,eAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAChE,OAAO,IAAI,eAAe,EAAE,CAAC;QAC/B,KAAK,WAAW,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC;QACjB;YACE,eAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,iBAAiB,CAAC,CAAC;YACzD,OAAO,IAAI,eAAe,EAAE,CAAC;IACjC,CAAC;AACH,CAAC;AAED,gDAAgD;AACnC,QAAA,cAAc,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -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: number;
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,wCAAwC;AACxC,eAAO,MAAM,YAAY;;;;;CAKf,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,CAAA;CAAE,GACjE,YAAY,CA4Cd"}
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
- P0: Infinity, // 需求/Spec:无条件完整保留
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
- used.p0 += len; // 需求/Spec 无条件完整保留
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":"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"}
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;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM9C,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;CAClB;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;;GAEG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CA6C9E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB7G;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"}
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.1'; // 升级到 1.1 支持 normalizedInput
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.hitCount++;
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.hitCount++;
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.hitCount++;
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);