@winspan/claude-forge 0.7.3 → 0.7.4

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 (112) hide show
  1. package/dist/ai-gateway/index.d.ts.map +1 -1
  2. package/dist/ai-gateway/index.js +30 -9
  3. package/dist/ai-gateway/index.js.map +1 -1
  4. package/dist/ai-gateway/model-selector.d.ts +12 -0
  5. package/dist/ai-gateway/model-selector.d.ts.map +1 -1
  6. package/dist/ai-gateway/model-selector.js +20 -0
  7. package/dist/ai-gateway/model-selector.js.map +1 -1
  8. package/dist/autopilot/task-completion-detector.d.ts +32 -0
  9. package/dist/autopilot/task-completion-detector.d.ts.map +1 -0
  10. package/dist/autopilot/task-completion-detector.js +103 -0
  11. package/dist/autopilot/task-completion-detector.js.map +1 -0
  12. package/dist/daemon/handlers/context-builder.d.ts +8 -7
  13. package/dist/daemon/handlers/context-builder.d.ts.map +1 -1
  14. package/dist/daemon/handlers/context-builder.js +16 -20
  15. package/dist/daemon/handlers/context-builder.js.map +1 -1
  16. package/dist/daemon/handlers/orchestration-context.d.ts +6 -9
  17. package/dist/daemon/handlers/orchestration-context.d.ts.map +1 -1
  18. package/dist/daemon/handlers/stages/01-failure-signal.d.ts +1 -0
  19. package/dist/daemon/handlers/stages/01-failure-signal.d.ts.map +1 -1
  20. package/dist/daemon/handlers/stages/01-failure-signal.js +2 -2
  21. package/dist/daemon/handlers/stages/01-failure-signal.js.map +1 -1
  22. package/dist/daemon/handlers/stages/02-active-intervention.d.ts +1 -0
  23. package/dist/daemon/handlers/stages/02-active-intervention.d.ts.map +1 -1
  24. package/dist/daemon/handlers/stages/02-active-intervention.js +1 -0
  25. package/dist/daemon/handlers/stages/02-active-intervention.js.map +1 -1
  26. package/dist/daemon/handlers/stages/03-init-prompt.d.ts +1 -0
  27. package/dist/daemon/handlers/stages/03-init-prompt.d.ts.map +1 -1
  28. package/dist/daemon/handlers/stages/03-init-prompt.js +2 -2
  29. package/dist/daemon/handlers/stages/03-init-prompt.js.map +1 -1
  30. package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts +1 -0
  31. package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts.map +1 -1
  32. package/dist/daemon/handlers/stages/04-skill-suggestions.js +2 -1
  33. package/dist/daemon/handlers/stages/04-skill-suggestions.js.map +1 -1
  34. package/dist/daemon/handlers/stages/05-conv-config.d.ts +1 -0
  35. package/dist/daemon/handlers/stages/05-conv-config.d.ts.map +1 -1
  36. package/dist/daemon/handlers/stages/05-conv-config.js +1 -0
  37. package/dist/daemon/handlers/stages/05-conv-config.js.map +1 -1
  38. package/dist/daemon/handlers/stages/06-engine-check.d.ts +1 -0
  39. package/dist/daemon/handlers/stages/06-engine-check.d.ts.map +1 -1
  40. package/dist/daemon/handlers/stages/06-engine-check.js +1 -0
  41. package/dist/daemon/handlers/stages/06-engine-check.js.map +1 -1
  42. package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts +1 -0
  43. package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts.map +1 -1
  44. package/dist/daemon/handlers/stages/07-pipeline-reply.js +1 -2
  45. package/dist/daemon/handlers/stages/07-pipeline-reply.js.map +1 -1
  46. package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts +1 -0
  47. package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts.map +1 -1
  48. package/dist/daemon/handlers/stages/08-esc-interrupt.js +1 -0
  49. package/dist/daemon/handlers/stages/08-esc-interrupt.js.map +1 -1
  50. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts +1 -0
  51. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts.map +1 -1
  52. package/dist/daemon/handlers/stages/09-pipeline-active.js +1 -0
  53. package/dist/daemon/handlers/stages/09-pipeline-active.js.map +1 -1
  54. package/dist/daemon/handlers/stages/10-cooldown.d.ts +1 -1
  55. package/dist/daemon/handlers/stages/10-cooldown.d.ts.map +1 -1
  56. package/dist/daemon/handlers/stages/10-cooldown.js +1 -39
  57. package/dist/daemon/handlers/stages/10-cooldown.js.map +1 -1
  58. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts +1 -0
  59. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts.map +1 -1
  60. package/dist/daemon/handlers/stages/11-intent-analysis.js +4 -3
  61. package/dist/daemon/handlers/stages/11-intent-analysis.js.map +1 -1
  62. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts +1 -0
  63. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts.map +1 -1
  64. package/dist/daemon/handlers/stages/12-strategy-advice.js +1 -0
  65. package/dist/daemon/handlers/stages/12-strategy-advice.js.map +1 -1
  66. package/dist/daemon/handlers/stages/13-template-route.d.ts +1 -0
  67. package/dist/daemon/handlers/stages/13-template-route.d.ts.map +1 -1
  68. package/dist/daemon/handlers/stages/13-template-route.js +1 -0
  69. package/dist/daemon/handlers/stages/13-template-route.js.map +1 -1
  70. package/dist/daemon/handlers/stages/14-plan-resume.d.ts +1 -0
  71. package/dist/daemon/handlers/stages/14-plan-resume.d.ts.map +1 -1
  72. package/dist/daemon/handlers/stages/14-plan-resume.js +1 -0
  73. package/dist/daemon/handlers/stages/14-plan-resume.js.map +1 -1
  74. package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts +1 -0
  75. package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts.map +1 -1
  76. package/dist/daemon/handlers/stages/15-plan-enforcement.js +1 -0
  77. package/dist/daemon/handlers/stages/15-plan-enforcement.js.map +1 -1
  78. package/dist/daemon/handlers/stages/16-intervention-level.d.ts +1 -0
  79. package/dist/daemon/handlers/stages/16-intervention-level.d.ts.map +1 -1
  80. package/dist/daemon/handlers/stages/16-intervention-level.js +1 -0
  81. package/dist/daemon/handlers/stages/16-intervention-level.js.map +1 -1
  82. package/dist/daemon/handlers/stages/17-simple-task.d.ts +1 -0
  83. package/dist/daemon/handlers/stages/17-simple-task.d.ts.map +1 -1
  84. package/dist/daemon/handlers/stages/17-simple-task.js +2 -1
  85. package/dist/daemon/handlers/stages/17-simple-task.js.map +1 -1
  86. package/dist/daemon/handlers/stages/18-complex-task.d.ts +1 -0
  87. package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -1
  88. package/dist/daemon/handlers/stages/18-complex-task.js +4 -4
  89. package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -1
  90. package/dist/daemon/handlers/stages/19-moderate-task.d.ts +1 -0
  91. package/dist/daemon/handlers/stages/19-moderate-task.d.ts.map +1 -1
  92. package/dist/daemon/handlers/stages/19-moderate-task.js +3 -2
  93. package/dist/daemon/handlers/stages/19-moderate-task.js.map +1 -1
  94. package/dist/daemon/handlers/stages/stage-interface.d.ts +3 -0
  95. package/dist/daemon/handlers/stages/stage-interface.d.ts.map +1 -1
  96. package/dist/daemon/handlers/stages/stage-scheduler.d.ts +27 -0
  97. package/dist/daemon/handlers/stages/stage-scheduler.d.ts.map +1 -0
  98. package/dist/daemon/handlers/stages/stage-scheduler.js +105 -0
  99. package/dist/daemon/handlers/stages/stage-scheduler.js.map +1 -0
  100. package/dist/daemon/handlers/user-prompt-handler.d.ts +3 -12
  101. package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
  102. package/dist/daemon/handlers/user-prompt-handler.js +73 -141
  103. package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
  104. package/dist/pipeline/index.d.ts +0 -5
  105. package/dist/pipeline/index.d.ts.map +1 -1
  106. package/dist/pipeline/index.js +13 -23
  107. package/dist/pipeline/index.js.map +1 -1
  108. package/dist/pipeline/phase-manager.d.ts +5 -1
  109. package/dist/pipeline/phase-manager.d.ts.map +1 -1
  110. package/dist/pipeline/phase-manager.js +36 -1
  111. package/dist/pipeline/phase-manager.js.map +1 -1
  112. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAO7E,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0BAA0B;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7D;AAOD;;;GAGG;AACH,qBAAa,SAAU,YAAW,UAAU;IAO9B,OAAO,CAAC,KAAK;IANzB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAS;gBAEP,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,cAAmB;IAW1D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2C5F,QAAQ;IAIR,WAAW,IAAI,MAAM;CAMtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAO7E,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0BAA0B;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7D;AAOD;;;GAGG;AACH,qBAAa,SAAU,YAAW,UAAU;IAO9B,OAAO,CAAC,KAAK;IANzB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAS;gBAEP,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,cAAmB;IAW1D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkE5F,QAAQ;IAIR,WAAW,IAAI,MAAM;CAMtB"}
@@ -32,7 +32,7 @@ export class AIGateway {
32
32
  async complete(prompt, label, options) {
33
33
  // 可缓存的调用先查缓存
34
34
  const cacheable = label ? !this.noCacheLabels.has(label) : false;
35
- // 先确定模型(用于缓存键)
35
+ // 先确定主模型(用于缓存键)
36
36
  const resolvedModel = this.modelSelector ? this.modelSelector.selectModel(label) : options?.model;
37
37
  if (cacheable) {
38
38
  const cached = this.cache.get(prompt, label, resolvedModel);
@@ -44,18 +44,39 @@ export class AIGateway {
44
44
  // 限流
45
45
  await this.rateLimiter.acquire();
46
46
  try {
47
- // 分层模型策略:根据 label 选择模型,注入 options.model
47
+ // 分层模型策略 + 降级链
48
+ if (this.modelSelector) {
49
+ const chain = this.modelSelector.getFallbackChain(label);
50
+ const tiers = [chain.primary, ...chain.fallbacks];
51
+ let lastErr;
52
+ for (const tier of tiers) {
53
+ const model = this.modelSelector.modelForTier(tier);
54
+ const tieredOptions = { ...options, model };
55
+ try {
56
+ const result = await withRetry(() => this.inner.complete(prompt, label, tieredOptions), `AI调用(${label ?? 'unlabeled'}/${tier})`, { retryable: true, maxRetries: 2, retryDelayMs: 500, exponentialBackoff: true });
57
+ if (tier !== chain.primary) {
58
+ logger.info(`[AI Gateway] 降级成功:${chain.primary} → ${tier}(label=${label ?? '-'})`);
59
+ }
60
+ if (cacheable) {
61
+ this.cache.set(prompt, label, result, this.cacheTtlMs, model);
62
+ }
63
+ return result;
64
+ }
65
+ catch (err) {
66
+ lastErr = err;
67
+ if (tier !== tiers[tiers.length - 1]) {
68
+ logger.warn(`[AI Gateway] ${tier} 调用失败,降级到下一层(label=${label ?? '-'}):${err}`);
69
+ }
70
+ }
71
+ }
72
+ throw lastErr;
73
+ }
74
+ // 无分层策略:原有逻辑
48
75
  const tieredOptions = {
49
76
  ...options,
50
77
  ...(resolvedModel ? { model: resolvedModel } : {}),
51
78
  };
52
- // 带重试的 AI 调用
53
- const result = await withRetry(() => this.inner.complete(prompt, label, tieredOptions), `AI调用(${label ?? 'unlabeled'})`, {
54
- retryable: true,
55
- maxRetries: 3,
56
- retryDelayMs: 1000,
57
- exponentialBackoff: true,
58
- });
79
+ const result = await withRetry(() => this.inner.complete(prompt, label, tieredOptions), `AI调用(${label ?? 'unlabeled'})`, { retryable: true, maxRetries: 3, retryDelayMs: 1000, exponentialBackoff: true });
59
80
  if (cacheable) {
60
81
  this.cache.set(prompt, label, result, this.cacheTtlMs, resolvedModel);
61
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai-gateway/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai-gateway/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  export type ModelTier = 'haiku' | 'sonnet' | 'opus';
2
+ export interface FallbackChain {
3
+ primary: ModelTier;
4
+ fallbacks: ModelTier[];
5
+ }
2
6
  export declare class ModelSelector {
3
7
  private tierToModel;
4
8
  constructor(models?: {
@@ -8,5 +12,13 @@ export declare class ModelSelector {
8
12
  });
9
13
  selectTier(label?: string): ModelTier;
10
14
  selectModel(label?: string): string;
15
+ /**
16
+ * 返回降级链:primary 失败时依次尝试 fallbacks。
17
+ * opus → sonnet → haiku
18
+ * sonnet → haiku
19
+ * haiku → (无降级)
20
+ */
21
+ getFallbackChain(label?: string): FallbackChain;
22
+ modelForTier(tier: ModelTier): string;
11
23
  }
12
24
  //# sourceMappingURL=model-selector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../src/ai-gateway/model-selector.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAkEpD,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAA4B;gBAEnC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAQvE,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS;IAKrC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;CAGpC"}
1
+ {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../src/ai-gateway/model-selector.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAkED,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAA4B;gBAEnC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAQvE,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS;IAKrC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAInC;;;;;OAKG;IACH,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa;IAY/C,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;CAGtC"}
@@ -75,5 +75,25 @@ export class ModelSelector {
75
75
  selectModel(label) {
76
76
  return this.tierToModel[this.selectTier(label)];
77
77
  }
78
+ /**
79
+ * 返回降级链:primary 失败时依次尝试 fallbacks。
80
+ * opus → sonnet → haiku
81
+ * sonnet → haiku
82
+ * haiku → (无降级)
83
+ */
84
+ getFallbackChain(label) {
85
+ const primary = this.selectTier(label);
86
+ switch (primary) {
87
+ case 'opus':
88
+ return { primary: 'opus', fallbacks: ['sonnet', 'haiku'] };
89
+ case 'sonnet':
90
+ return { primary: 'sonnet', fallbacks: ['haiku'] };
91
+ case 'haiku':
92
+ return { primary: 'haiku', fallbacks: [] };
93
+ }
94
+ }
95
+ modelForTier(tier) {
96
+ return this.tierToModel[tier];
97
+ }
78
98
  }
79
99
  //# sourceMappingURL=model-selector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../src/ai-gateway/model-selector.ts"],"names":[],"mappings":"AAEA,qBAAqB;AACrB,MAAM,aAAa,GAA8B;IAC/C,qEAAqE;IACrE,gBAAgB;IAChB,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,OAAO;IACf,gBAAgB,EAAE,OAAO;IACzB,MAAM,EAAE,OAAO;IACf,gBAAgB,EAAE,OAAO;IACzB,aAAa;IACb,WAAW,EAAE,OAAO;IACpB,oBAAoB,EAAE,OAAO;IAC7B,mBAAmB,EAAE,OAAO;IAC5B,gBAAgB;IAChB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,OAAO;IAC1B,UAAU;IACV,qBAAqB,EAAE,OAAO;IAC9B,oBAAoB,EAAE,OAAO;IAC7B,eAAe,EAAE,OAAO;IACxB,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,OAAO;IACjB,eAAe;IACf,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,OAAO;IAEhB,gEAAgE;IAChE,OAAO;IACP,cAAc,EAAE,QAAQ;IACxB,+BAA+B,EAAE,QAAQ;IACzC,oBAAoB,EAAE,QAAQ;IAC9B,MAAM,EAAE,QAAQ;IAChB,QAAQ;IACR,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,QAAQ;IAChB,OAAO;IACP,eAAe,EAAE,QAAQ;IACzB,iBAAiB,EAAE,QAAQ;IAC3B,cAAc,EAAE,QAAQ;IACxB,6BAA6B,EAAE,QAAQ;IACvC,MAAM,EAAE,QAAQ;IAChB,QAAQ;IACR,oBAAoB,EAAE,QAAQ;IAC9B,iBAAiB,EAAE,QAAQ;IAC3B,WAAW;IACX,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,QAAQ;IAElB,sEAAsE;IACtE,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,MAAM;IACrB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,MAAM,qBAAqB,GAA8B;IACvD,KAAK,EAAE,2BAA2B;IAClC,MAAM,EAAE,mBAAmB;IAC3B,IAAI,EAAE,iBAAiB;CACxB,CAAC;AAEF,MAAM,OAAO,aAAa;IAChB,WAAW,CAA4B;IAE/C,YAAY,MAA2D;QACrE,IAAI,CAAC,WAAW,GAAG;YACjB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,qBAAqB,CAAC,KAAK;YACnD,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,qBAAqB,CAAC,MAAM;YACtD,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,qBAAqB,CAAC,IAAI;SACjD,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAc;QACvB,IAAI,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC;QAC5B,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../src/ai-gateway/model-selector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { AIProvider } from '../ai-provider/types.js';
2
+ import type { PipelinePhase } from '../pipeline/types.js';
3
+ export interface TaskCompletionContext {
4
+ requirement: string;
5
+ currentPhase: PipelinePhase;
6
+ /** 最近 5 次工具调用名称 */
7
+ recentTools: string[];
8
+ toolCallCount: number;
9
+ /** 当前阶段已完成任务数 */
10
+ completedTaskCount: number;
11
+ /** 当前阶段总任务数 */
12
+ totalTaskCount: number;
13
+ }
14
+ export interface CompletionDetectionResult {
15
+ isComplete: boolean;
16
+ confidence: 'high' | 'medium' | 'low';
17
+ reason: string;
18
+ suggestedAction: 'advance' | 'wait' | 'ask_user';
19
+ }
20
+ /**
21
+ * LLM 语义任务完成检测器
22
+ *
23
+ * 使用 Haiku 快速判断当前阶段是否完成,替代基于工具调用次数的启发式阈值。
24
+ * 保留阈值逻辑作为兜底,防止 LLM 误判导致无限循环。
25
+ */
26
+ export declare class TaskCompletionDetector {
27
+ private aiProvider;
28
+ constructor(aiProvider: AIProvider);
29
+ detect(ctx: TaskCompletionContext): Promise<CompletionDetectionResult>;
30
+ private parseResponse;
31
+ }
32
+ //# sourceMappingURL=task-completion-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-completion-detector.d.ts","sourceRoot":"","sources":["../../src/autopilot/task-completion-detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC;IAC5B,mBAAmB;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;CAClD;AA6CD;;;;;GAKG;AACH,qBAAa,sBAAsB;IACrB,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEpC,MAAM,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA0B5E,OAAO,CAAC,aAAa;CAgCtB"}
@@ -0,0 +1,103 @@
1
+ import { logger } from '../utils/logger.js';
2
+ const PHASE_DESCRIPTIONS = {
3
+ analyze: '需求分析(输出功能点列表、技术方案、风险点)',
4
+ design: '架构设计(输出目录结构、核心接口定义、设计文档)',
5
+ profile: '性能分析(输出 profiling 结果、基准数据、瓶颈定位)',
6
+ code: '编码实现(按设计方案编写源代码文件)',
7
+ test: '测试编写(编写测试文件并运行通过)',
8
+ review: '代码审查(安全性、规范性、性能检查并修复)',
9
+ done: '已完成',
10
+ };
11
+ const COMPLETION_PROMPT = (ctx) => `你是一个软件开发流水线的阶段完成度评估器。
12
+
13
+ ## 当前上下文
14
+
15
+ - **需求**:${ctx.requirement}
16
+ - **当前阶段**:${ctx.currentPhase}(${PHASE_DESCRIPTIONS[ctx.currentPhase]})
17
+ - **任务进度**:${ctx.completedTaskCount}/${ctx.totalTaskCount} 个任务已完成
18
+ - **工具调用总数**:${ctx.toolCallCount}
19
+ - **最近工具调用**:${ctx.recentTools.join(', ') || '(无)'}
20
+
21
+ ## 评估任务
22
+
23
+ 根据以上信息,判断当前阶段是否已经完成,可以推进到下一阶段。
24
+
25
+ ## 评估标准
26
+
27
+ - analyze 阶段:已有探索(Read/Glob/Grep)+ 输出(Write/Edit),或明确说明分析完成
28
+ - design 阶段:已创建设计文档或目录结构(Write/Edit 包含 design/architecture/README)
29
+ - profile 阶段:已执行 profiling 命令(Bash)或写入性能报告
30
+ - code 阶段:已创建源代码文件(Write .ts/.js/.py/.go 等)
31
+ - test 阶段:已写入测试文件(Write/Edit 包含 test/spec)且已运行测试(Bash vitest/jest)
32
+ - review 阶段:已有代码修改(Edit)
33
+
34
+ ## 输出格式
35
+
36
+ 严格输出 JSON,不要有任何其他文字:
37
+ {
38
+ "isComplete": true/false,
39
+ "confidence": "high"/"medium"/"low",
40
+ "reason": "简短说明(中文,不超过 50 字)",
41
+ "suggestedAction": "advance"/"wait"/"ask_user"
42
+ }`;
43
+ /**
44
+ * LLM 语义任务完成检测器
45
+ *
46
+ * 使用 Haiku 快速判断当前阶段是否完成,替代基于工具调用次数的启发式阈值。
47
+ * 保留阈值逻辑作为兜底,防止 LLM 误判导致无限循环。
48
+ */
49
+ export class TaskCompletionDetector {
50
+ aiProvider;
51
+ constructor(aiProvider) {
52
+ this.aiProvider = aiProvider;
53
+ }
54
+ async detect(ctx) {
55
+ try {
56
+ const prompt = COMPLETION_PROMPT(ctx);
57
+ const response = await this.aiProvider.complete(prompt, 'task-completion-detector', {
58
+ maxTokens: 200,
59
+ temperature: 0,
60
+ });
61
+ const result = this.parseResponse(response);
62
+ if (result) {
63
+ logger.info(`[任务完成检测] ${ctx.currentPhase} 阶段:${result.isComplete ? '完成' : '未完成'}(${result.confidence})- ${result.reason}`);
64
+ return result;
65
+ }
66
+ }
67
+ catch (err) {
68
+ logger.warn(`[任务完成检测] LLM 调用失败,降级到保守策略:${err}`);
69
+ }
70
+ // 降级:保守策略(未完成)
71
+ return {
72
+ isComplete: false,
73
+ confidence: 'low',
74
+ reason: 'LLM 检测失败,保守判断为未完成',
75
+ suggestedAction: 'wait',
76
+ };
77
+ }
78
+ parseResponse(response) {
79
+ try {
80
+ // 提取 JSON(可能被 markdown 代码块包裹)
81
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
82
+ if (!jsonMatch)
83
+ return null;
84
+ const parsed = JSON.parse(jsonMatch[0]);
85
+ if (typeof parsed.isComplete !== 'boolean' ||
86
+ !['high', 'medium', 'low'].includes(parsed.confidence) ||
87
+ typeof parsed.reason !== 'string' ||
88
+ !['advance', 'wait', 'ask_user'].includes(parsed.suggestedAction)) {
89
+ return null;
90
+ }
91
+ return {
92
+ isComplete: parsed.isComplete,
93
+ confidence: parsed.confidence,
94
+ reason: parsed.reason,
95
+ suggestedAction: parsed.suggestedAction,
96
+ };
97
+ }
98
+ catch {
99
+ return null;
100
+ }
101
+ }
102
+ }
103
+ //# sourceMappingURL=task-completion-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-completion-detector.js","sourceRoot":"","sources":["../../src/autopilot/task-completion-detector.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { HandlerContext } from '../handler-context.js';
2
2
  import type { InjectionCache } from './orchestration-context.js';
3
3
  import type { Convention, ConventionRole } from '../../convention/types.js';
4
4
  import type { ActivePlanSummary } from '../../utils/plan-reader.js';
5
+ import type { LRUCache } from '../../utils/memory-manager.js';
5
6
  /**
6
7
  * ContextBuilder — 上下文构建工具类
7
8
  * 包含所有从 UserPromptHandler 提取的工具方法
@@ -9,31 +10,31 @@ import type { ActivePlanSummary } from '../../utils/plan-reader.js';
9
10
  export declare class ContextBuilder {
10
11
  private ctx;
11
12
  constructor(ctx: HandlerContext);
12
- /** 辅助方法:更新 injectionCache 并同步时间戳 */
13
+ /** 辅助方法:更新 injectionCache(TTL memoryManager 统一管理) */
13
14
  private updateCache;
14
15
  /** 构建会话上下文:最近的用户输入 + 工具调用摘要 */
15
16
  buildConversationHistory(sessionId: string, projectPath: string): string | undefined;
16
17
  /** 构建用户画像上下文 */
17
- buildProfileContext(projectPath: string, cache: Map<string, InjectionCache>, cacheAt?: Map<string, number>): string | undefined;
18
+ buildProfileContext(projectPath: string, cache: LRUCache<string, InjectionCache>): string | undefined;
18
19
  /** 读取项目人设文本 */
19
20
  private readProjectPersona;
20
21
  /** 构建计划进度上下文 */
21
- buildPlanStartContext(projectPath: string, cache: Map<string, InjectionCache>, cacheAt?: Map<string, number>): string | undefined;
22
+ buildPlanStartContext(projectPath: string, cache: LRUCache<string, InjectionCache>): string | undefined;
22
23
  /** 读取技能优化建议文件,读取后立即删除 */
23
- readAndDeleteSkillSuggestions(projectPath: string, cache: Map<string, InjectionCache>, cacheAt?: Map<string, number>): string | undefined;
24
+ readAndDeleteSkillSuggestions(projectPath: string, cache: LRUCache<string, InjectionCache>): string | undefined;
24
25
  /** 判断用户输入是否含有代码变更意图 */
25
26
  isCodeChangeIntent(requirement: string): boolean;
26
27
  /** 知识图谱上下文:查找历史成功路径 */
27
28
  buildGraphContext(keywords: string[], projectPath: string): Promise<string | undefined>;
28
29
  /** FTS5 历史场景检索 */
29
- buildSimilarSessionContext(keywords: string[], projectPath: string, cache: Map<string, InjectionCache>): string | undefined;
30
+ buildSimilarSessionContext(keywords: string[], projectPath: string, cache: LRUCache<string, InjectionCache>): string | undefined;
30
31
  /** 增量读取 decisions.md 末尾 */
31
- readDecisionsFile(projectPath: string, cache: Map<string, InjectionCache>, cacheAt?: Map<string, number>, tailBytes?: number): {
32
+ readDecisionsFile(projectPath: string, cache: LRUCache<string, InjectionCache>, tailBytes?: number): {
32
33
  tail: string;
33
34
  fingerprint: string;
34
35
  } | null;
35
36
  /** 读取项目决策历史 */
36
- readDecisionsContext(requirement: string, projectPath: string, cache: Map<string, InjectionCache>, cacheAt?: Map<string, number>): Promise<string | undefined>;
37
+ readDecisionsContext(requirement: string, projectPath: string, cache: LRUCache<string, InjectionCache>): Promise<string | undefined>;
37
38
  /** 树索引推理检索 */
38
39
  private readDecisionsViaTreeIndex;
39
40
  /** 降级方案:关键词切片 */
@@ -1 +1 @@
1
- {"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/context-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/context-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEvF,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAU9D;;;GAGG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,cAAc;IAEvC,uDAAuD;IACvD,OAAO,CAAC,WAAW;IAgBnB,+BAA+B;IAC/B,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAiDpF,gBAAgB;IAChB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,GAAG,SAAS;IAcrG,eAAe;IACf,OAAO,CAAC,kBAAkB;IAmB1B,gBAAgB;IAChB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,GAAG,SAAS;IAavG,yBAAyB;IACzB,6BAA6B,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,GAAG,SAAS;IAoB/G,uBAAuB;IACvB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIhD,uBAAuB;IACjB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAkB7F,kBAAkB;IAClB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,GAAG,SAAS;IAqChI,2BAA2B;IAC3B,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,SAAS,SAAO,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAiC/I,eAAe;IACT,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAsC1I,cAAc;YACA,yBAAyB;IA4BvC,iBAAiB;IACjB,OAAO,CAAC,4BAA4B;IAuCpC,sCAAsC;IACtC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,cAAc,GAAG,IAAI;IAiCvF,eAAe;IACT,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC/F,oCAAoC;IACpC,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG;QACrC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;QACjD,gBAAgB,EAAE,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;QACzD,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,oBAAoB,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;KACzD;IAgCD,eAAe;IACf,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;CAG1E"}
@@ -15,8 +15,8 @@ export class ContextBuilder {
15
15
  constructor(ctx) {
16
16
  this.ctx = ctx;
17
17
  }
18
- /** 辅助方法:更新 injectionCache 并同步时间戳 */
19
- updateCache(cache, cacheAt, projectPath, updates) {
18
+ /** 辅助方法:更新 injectionCache(TTL memoryManager 统一管理) */
19
+ updateCache(cache, projectPath, updates) {
20
20
  const existing = cache.get(projectPath) ?? {
21
21
  decisionsKey: '',
22
22
  decisionsResult: '',
@@ -26,9 +26,6 @@ export class ContextBuilder {
26
26
  skillSuggestionsInjected: false,
27
27
  };
28
28
  cache.set(projectPath, { ...existing, ...updates });
29
- if (cacheAt) {
30
- cacheAt.set(projectPath, Date.now());
31
- }
32
29
  }
33
30
  /** 构建会话上下文:最近的用户输入 + 工具调用摘要 */
34
31
  buildConversationHistory(sessionId, projectPath) {
@@ -76,14 +73,14 @@ export class ContextBuilder {
76
73
  }
77
74
  }
78
75
  /** 构建用户画像上下文 */
79
- buildProfileContext(projectPath, cache, cacheAt) {
76
+ buildProfileContext(projectPath, cache) {
80
77
  const cacheEntry = cache.get(projectPath);
81
78
  if (cacheEntry?.profileInjected)
82
79
  return undefined;
83
80
  const profile = this.ctx.profileManager.get();
84
81
  if (!profile.initialized)
85
82
  return undefined;
86
- this.updateCache(cache, cacheAt, projectPath, { profileInjected: true });
83
+ this.updateCache(cache, projectPath, { profileInjected: true });
87
84
  const persona = this.readProjectPersona(projectPath);
88
85
  logger.info(`注入用户画像:角色=${profile.role} 经验=${profile.experience_level} 风格=${profile.work_style}${persona ? ' 人设=已加载' : ''}`);
89
86
  return ForgeFormatter.formatProfileContext(profile, persona);
@@ -111,11 +108,11 @@ export class ContextBuilder {
111
108
  return undefined;
112
109
  }
113
110
  /** 构建计划进度上下文 */
114
- buildPlanStartContext(projectPath, cache, cacheAt) {
111
+ buildPlanStartContext(projectPath, cache) {
115
112
  const cacheEntry = cache.get(projectPath);
116
113
  if (cacheEntry?.planContextInjected)
117
114
  return undefined;
118
- this.updateCache(cache, cacheAt, projectPath, { planContextInjected: true });
115
+ this.updateCache(cache, projectPath, { planContextInjected: true });
119
116
  const ctx = buildSessionStartPlanContext(projectPath);
120
117
  if (ctx) {
121
118
  logger.info(`注入计划上下文:${projectPath}`);
@@ -123,11 +120,11 @@ export class ContextBuilder {
123
120
  return ctx ?? undefined;
124
121
  }
125
122
  /** 读取技能优化建议文件,读取后立即删除 */
126
- readAndDeleteSkillSuggestions(projectPath, cache, cacheAt) {
123
+ readAndDeleteSkillSuggestions(projectPath, cache) {
127
124
  const cacheEntry = cache.get(projectPath);
128
125
  if (cacheEntry?.skillSuggestionsInjected)
129
126
  return undefined;
130
- this.updateCache(cache, cacheAt, projectPath, { skillSuggestionsInjected: true });
127
+ this.updateCache(cache, projectPath, { skillSuggestionsInjected: true });
131
128
  try {
132
129
  const suggestionsFile = path.join(os.homedir(), '.claude-forge', 'skill-suggestions.md');
133
130
  if (!fs.existsSync(suggestionsFile))
@@ -207,7 +204,7 @@ export class ContextBuilder {
207
204
  }
208
205
  }
209
206
  /** 增量读取 decisions.md 末尾 */
210
- readDecisionsFile(projectPath, cache, cacheAt, tailBytes = 2048) {
207
+ readDecisionsFile(projectPath, cache, tailBytes = 2048) {
211
208
  try {
212
209
  const decisionsPath = path.join(projectPath, '.claude-forge', 'decisions.md');
213
210
  if (!fs.existsSync(decisionsPath))
@@ -228,7 +225,7 @@ export class ContextBuilder {
228
225
  const tail = buf.toString('utf-8');
229
226
  const cacheEntry = cache.get(projectPath);
230
227
  if (!cacheEntry || cacheEntry.decisionsKey !== fingerprint) {
231
- this.updateCache(cache, cacheAt, projectPath, {
228
+ this.updateCache(cache, projectPath, {
232
229
  decisionsKey: fingerprint,
233
230
  decisionsRawTail: tail,
234
231
  });
@@ -240,7 +237,7 @@ export class ContextBuilder {
240
237
  }
241
238
  }
242
239
  /** 读取项目决策历史 */
243
- async readDecisionsContext(requirement, projectPath, cache, cacheAt) {
240
+ async readDecisionsContext(requirement, projectPath, cache) {
244
241
  const needsContext = /架构|设计|重构|优化|改造|迁移|升级|architecture|design|refactor/i.test(requirement);
245
242
  if (!needsContext)
246
243
  return undefined;
@@ -258,7 +255,7 @@ export class ContextBuilder {
258
255
  const treeResult = await this.readDecisionsViaTreeIndex(requirement, decisionsPath);
259
256
  if (treeResult) {
260
257
  const result = ForgeFormatter.formatModuleNotification('decisions', `项目决策历史(推理检索):\n${treeResult}`);
261
- this.updateCache(cache, cacheAt, projectPath, {
258
+ this.updateCache(cache, projectPath, {
262
259
  decisionsKey: fingerprint,
263
260
  decisionsResult: result,
264
261
  decisionsRawTail: '',
@@ -266,7 +263,7 @@ export class ContextBuilder {
266
263
  return result;
267
264
  }
268
265
  logger.info('[Forge:决策] 树索引不可用,降级到关键词切片');
269
- return this.readDecisionsContextFallback(requirement, projectPath, fingerprint, cache, cacheAt);
266
+ return this.readDecisionsContextFallback(requirement, projectPath, fingerprint, cache);
270
267
  }
271
268
  catch {
272
269
  return undefined;
@@ -299,9 +296,8 @@ export class ContextBuilder {
299
296
  }
300
297
  }
301
298
  /** 降级方案:关键词切片 */
302
- readDecisionsContextFallback(requirement, projectPath, fingerprint, cache, cacheAt) {
303
- const cacheEntry = cache.get(projectPath);
304
- const fileData = this.readDecisionsFile(projectPath, cache, cacheAt);
299
+ readDecisionsContextFallback(requirement, projectPath, fingerprint, cache) {
300
+ const fileData = this.readDecisionsFile(projectPath, cache);
305
301
  if (!fileData)
306
302
  return undefined;
307
303
  const { tail } = fileData;
@@ -325,7 +321,7 @@ export class ContextBuilder {
325
321
  if (snippet.length > 600)
326
322
  snippet = '...\n' + snippet.slice(-600);
327
323
  const result = ForgeFormatter.formatModuleNotification('decisions', `项目决策历史(关键词匹配):\n\`\`\`\n${snippet}\n\`\`\``);
328
- this.updateCache(cache, cacheAt, projectPath, {
324
+ this.updateCache(cache, projectPath, {
329
325
  decisionsKey: fingerprint,
330
326
  decisionsResult: result,
331
327
  decisionsRawTail: tail,
@@ -1 +1 @@
1
- {"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../../src/daemon/handlers/context-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../../src/daemon/handlers/context-builder.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { ActivePlanSummary } from '../../utils/plan-reader.js';
5
5
  import type { TemplateRegistry } from '../../pipeline/template-registry.js';
6
6
  import type { TemplateRouter } from '../../pipeline/template-router.js';
7
7
  import type { StageTraceLogger } from '../../utils/stage-trace.js';
8
+ import type { LRUCache } from '../../utils/memory-manager.js';
8
9
  /** session 级注入缓存条目,避免同一 session 内重复注入相同内容 */
9
10
  export interface InjectionCache {
10
11
  decisionsKey: string;
@@ -22,15 +23,11 @@ export interface OrchestrationContext {
22
23
  event: ForgeEvent;
23
24
  userPrompt: string;
24
25
  handlerCtx: HandlerContext;
25
- suggestionPending: Map<string, boolean>;
26
- suggestionPendingAt: Map<string, number>;
27
- lastAnalysisAt: Map<string, number>;
28
- injectionCache: Map<string, InjectionCache>;
29
- injectionCacheAt: Map<string, number>;
30
- negativeRestartChecked: Set<string>;
31
- negativeRestartCheckedAt: Map<string, number>;
32
- initPromptedSessions: Set<string>;
33
- initPromptedAt: Map<string, number>;
26
+ suggestionPending: LRUCache<string, boolean>;
27
+ lastAnalysisAt: LRUCache<string, number>;
28
+ injectionCache: LRUCache<string, InjectionCache>;
29
+ negativeRestartChecked: LRUCache<string, boolean>;
30
+ initPromptedSessions: LRUCache<string, boolean>;
34
31
  templateRegistry: TemplateRegistry | null;
35
32
  templateRouter: TemplateRouter | null;
36
33
  analysis?: IntentAnalysis;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestration-context.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/orchestration-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IAEnC,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,CAAC;IAG3B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IAGtC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,EAAE,gBAAgB,CAAC;CAC/B"}
1
+ {"version":3,"file":"orchestration-context.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/orchestration-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IAEnC,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,CAAC;IAG3B,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,sBAAsB,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,oBAAoB,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IAGtC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,EAAE,gBAAgB,CAAC;CAC/B"}
@@ -3,6 +3,7 @@ import type { OrchestrationContext } from '../orchestration-context.js';
3
3
  /** Stage 01: 失败信号检测 + 负向重启回溯修正 */
4
4
  export declare class FailureSignalStage implements Stage {
5
5
  readonly name = "\u5931\u8D25\u4FE1\u53F7\u68C0\u6D4B";
6
+ readonly dependencies: string[];
6
7
  execute(ctx: OrchestrationContext): Promise<StageResult>;
7
8
  }
8
9
  //# sourceMappingURL=01-failure-signal.d.ts.map