@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.
- package/dist/ai-gateway/index.d.ts.map +1 -1
- package/dist/ai-gateway/index.js +30 -9
- package/dist/ai-gateway/index.js.map +1 -1
- package/dist/ai-gateway/model-selector.d.ts +12 -0
- package/dist/ai-gateway/model-selector.d.ts.map +1 -1
- package/dist/ai-gateway/model-selector.js +20 -0
- package/dist/ai-gateway/model-selector.js.map +1 -1
- package/dist/autopilot/task-completion-detector.d.ts +32 -0
- package/dist/autopilot/task-completion-detector.d.ts.map +1 -0
- package/dist/autopilot/task-completion-detector.js +103 -0
- package/dist/autopilot/task-completion-detector.js.map +1 -0
- package/dist/daemon/handlers/context-builder.d.ts +8 -7
- package/dist/daemon/handlers/context-builder.d.ts.map +1 -1
- package/dist/daemon/handlers/context-builder.js +16 -20
- package/dist/daemon/handlers/context-builder.js.map +1 -1
- package/dist/daemon/handlers/orchestration-context.d.ts +6 -9
- package/dist/daemon/handlers/orchestration-context.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/01-failure-signal.d.ts +1 -0
- package/dist/daemon/handlers/stages/01-failure-signal.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/01-failure-signal.js +2 -2
- package/dist/daemon/handlers/stages/01-failure-signal.js.map +1 -1
- package/dist/daemon/handlers/stages/02-active-intervention.d.ts +1 -0
- package/dist/daemon/handlers/stages/02-active-intervention.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/02-active-intervention.js +1 -0
- package/dist/daemon/handlers/stages/02-active-intervention.js.map +1 -1
- package/dist/daemon/handlers/stages/03-init-prompt.d.ts +1 -0
- package/dist/daemon/handlers/stages/03-init-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/03-init-prompt.js +2 -2
- package/dist/daemon/handlers/stages/03-init-prompt.js.map +1 -1
- package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts +1 -0
- package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/04-skill-suggestions.js +2 -1
- package/dist/daemon/handlers/stages/04-skill-suggestions.js.map +1 -1
- package/dist/daemon/handlers/stages/05-conv-config.d.ts +1 -0
- package/dist/daemon/handlers/stages/05-conv-config.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/05-conv-config.js +1 -0
- package/dist/daemon/handlers/stages/05-conv-config.js.map +1 -1
- package/dist/daemon/handlers/stages/06-engine-check.d.ts +1 -0
- package/dist/daemon/handlers/stages/06-engine-check.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/06-engine-check.js +1 -0
- package/dist/daemon/handlers/stages/06-engine-check.js.map +1 -1
- package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts +1 -0
- package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/07-pipeline-reply.js +1 -2
- package/dist/daemon/handlers/stages/07-pipeline-reply.js.map +1 -1
- package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts +1 -0
- package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/08-esc-interrupt.js +1 -0
- package/dist/daemon/handlers/stages/08-esc-interrupt.js.map +1 -1
- package/dist/daemon/handlers/stages/09-pipeline-active.d.ts +1 -0
- package/dist/daemon/handlers/stages/09-pipeline-active.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/09-pipeline-active.js +1 -0
- package/dist/daemon/handlers/stages/09-pipeline-active.js.map +1 -1
- package/dist/daemon/handlers/stages/10-cooldown.d.ts +1 -1
- package/dist/daemon/handlers/stages/10-cooldown.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/10-cooldown.js +1 -39
- package/dist/daemon/handlers/stages/10-cooldown.js.map +1 -1
- package/dist/daemon/handlers/stages/11-intent-analysis.d.ts +1 -0
- package/dist/daemon/handlers/stages/11-intent-analysis.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/11-intent-analysis.js +4 -3
- package/dist/daemon/handlers/stages/11-intent-analysis.js.map +1 -1
- package/dist/daemon/handlers/stages/12-strategy-advice.d.ts +1 -0
- package/dist/daemon/handlers/stages/12-strategy-advice.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/12-strategy-advice.js +1 -0
- package/dist/daemon/handlers/stages/12-strategy-advice.js.map +1 -1
- package/dist/daemon/handlers/stages/13-template-route.d.ts +1 -0
- package/dist/daemon/handlers/stages/13-template-route.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/13-template-route.js +1 -0
- package/dist/daemon/handlers/stages/13-template-route.js.map +1 -1
- package/dist/daemon/handlers/stages/14-plan-resume.d.ts +1 -0
- package/dist/daemon/handlers/stages/14-plan-resume.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/14-plan-resume.js +1 -0
- package/dist/daemon/handlers/stages/14-plan-resume.js.map +1 -1
- package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts +1 -0
- package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/15-plan-enforcement.js +1 -0
- package/dist/daemon/handlers/stages/15-plan-enforcement.js.map +1 -1
- package/dist/daemon/handlers/stages/16-intervention-level.d.ts +1 -0
- package/dist/daemon/handlers/stages/16-intervention-level.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/16-intervention-level.js +1 -0
- package/dist/daemon/handlers/stages/16-intervention-level.js.map +1 -1
- package/dist/daemon/handlers/stages/17-simple-task.d.ts +1 -0
- package/dist/daemon/handlers/stages/17-simple-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/17-simple-task.js +2 -1
- package/dist/daemon/handlers/stages/17-simple-task.js.map +1 -1
- package/dist/daemon/handlers/stages/18-complex-task.d.ts +1 -0
- package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/18-complex-task.js +4 -4
- package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -1
- package/dist/daemon/handlers/stages/19-moderate-task.d.ts +1 -0
- package/dist/daemon/handlers/stages/19-moderate-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/19-moderate-task.js +3 -2
- package/dist/daemon/handlers/stages/19-moderate-task.js.map +1 -1
- package/dist/daemon/handlers/stages/stage-interface.d.ts +3 -0
- package/dist/daemon/handlers/stages/stage-interface.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/stage-scheduler.d.ts +27 -0
- package/dist/daemon/handlers/stages/stage-scheduler.d.ts.map +1 -0
- package/dist/daemon/handlers/stages/stage-scheduler.js +105 -0
- package/dist/daemon/handlers/stages/stage-scheduler.js.map +1 -0
- package/dist/daemon/handlers/user-prompt-handler.d.ts +3 -12
- package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.js +73 -141
- package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
- package/dist/pipeline/index.d.ts +0 -5
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +13 -23
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/phase-manager.d.ts +5 -1
- package/dist/pipeline/phase-manager.d.ts.map +1 -1
- package/dist/pipeline/phase-manager.js +36 -1
- package/dist/pipeline/phase-manager.js.map +1 -1
- 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;
|
|
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"}
|
package/dist/ai-gateway/index.js
CHANGED
|
@@ -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
|
-
//
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAa,MAAM,2BAA2B,CAAC;AAcjE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC3C,QAAQ,EAAE,MAAM,EAAE,MAAM;CACzB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,OAAO,SAAS;IAOA;IANZ,WAAW,CAAc;IACzB,KAAK,CAAgB;IACrB,aAAa,CAAc;IAC3B,aAAa,CAAuB;IACpC,UAAU,CAAS;IAE3B,YAAoB,KAAiB,EAAE,OAAuB,EAAE;QAA5C,UAAK,GAAL,KAAK,CAAY;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC;QACvF,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC;YAC3B,GAAG,uBAAuB;YAC1B,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,KAAc,EAAE,OAA2B;QACxE,aAAa;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,
|
|
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;
|
|
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":"
|
|
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:
|
|
18
|
+
buildProfileContext(projectPath: string, cache: LRUCache<string, InjectionCache>): string | undefined;
|
|
18
19
|
/** 读取项目人设文本 */
|
|
19
20
|
private readProjectPersona;
|
|
20
21
|
/** 构建计划进度上下文 */
|
|
21
|
-
buildPlanStartContext(projectPath: string, cache:
|
|
22
|
+
buildPlanStartContext(projectPath: string, cache: LRUCache<string, InjectionCache>): string | undefined;
|
|
22
23
|
/** 读取技能优化建议文件,读取后立即删除 */
|
|
23
|
-
readAndDeleteSkillSuggestions(projectPath: string, cache:
|
|
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:
|
|
30
|
+
buildSimilarSessionContext(keywords: string[], projectPath: string, cache: LRUCache<string, InjectionCache>): string | undefined;
|
|
30
31
|
/** 增量读取 decisions.md 末尾 */
|
|
31
|
-
readDecisionsFile(projectPath: string, cache:
|
|
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:
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/context-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,8 @@ export class ContextBuilder {
|
|
|
15
15
|
constructor(ctx) {
|
|
16
16
|
this.ctx = ctx;
|
|
17
17
|
}
|
|
18
|
-
/** 辅助方法:更新 injectionCache
|
|
19
|
-
updateCache(cache,
|
|
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
|
|
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,
|
|
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
|
|
111
|
+
buildPlanStartContext(projectPath, cache) {
|
|
115
112
|
const cacheEntry = cache.get(projectPath);
|
|
116
113
|
if (cacheEntry?.planContextInjected)
|
|
117
114
|
return undefined;
|
|
118
|
-
this.updateCache(cache,
|
|
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
|
|
123
|
+
readAndDeleteSkillSuggestions(projectPath, cache) {
|
|
127
124
|
const cacheEntry = cache.get(projectPath);
|
|
128
125
|
if (cacheEntry?.skillSuggestionsInjected)
|
|
129
126
|
return undefined;
|
|
130
|
-
this.updateCache(cache,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
303
|
-
const
|
|
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,
|
|
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":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;;GAGG;AACH,MAAM,OAAO,cAAc;IACL;IAApB,YAAoB,GAAmB;QAAnB,QAAG,GAAH,GAAG,CAAgB;IAAG,CAAC;IAE3C,oCAAoC;IAC5B,WAAW,CACjB,KAAkC,EAClC,OAAwC,EACxC,WAAmB,EACnB,OAAgC;QAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI;YACzC,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,EAAE;YACnB,gBAAgB,EAAE,EAAE;YACpB,eAAe,EAAE,KAAK;YACtB,mBAAmB,EAAE,KAAK;YAC1B,wBAAwB,EAAE,KAAK;SAChC,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,wBAAwB,CAAC,SAAiB,EAAE,WAAmB;QAC7D,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;YAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;gBACvC,UAAU,EAAE,SAAS;gBACrB,YAAY,EAAE,WAAW;gBACzB,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;YAEH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAEhD,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,MAAM,WAAW,GAAG,YAAY;iBAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,kBAAkB,IAAI,CAAC,CAAC,UAAU,CAAC;iBAC/D,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,KAAK,CAAC,CAAC,CAAC;iBACR,OAAO,EAAE,CAAC;YAEb,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1B,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAI,CAAC,CAAC,UAAqC,EAAE,WAAW,IAAI,EAAE,CAAC;oBAC3E,IAAI,MAAM,EAAE,CAAC;wBACX,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,YAAY;iBAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,aAAa,IAAI,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;iBAC3F,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,OAAO,EAAE,CAAC;YAEb,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;oBAC3B,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YACzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,mBAAmB,CAAC,WAAmB,EAAE,KAAkC,EAAE,OAA6B;QACxG,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,UAAU,EAAE,eAAe;YAAE,OAAO,SAAS,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QAE3C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzE,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,gBAAgB,OAAO,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5H,OAAO,cAAc,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe;IACP,kBAAkB,CAAC,WAAmB;QAC5C,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;YAClE,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBAC5D,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;oBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;YAC1E,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,gBAAgB;IAChB,qBAAqB,CAAC,WAAmB,EAAE,KAAkC,EAAE,OAA6B;QAC1G,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,UAAU,EAAE,mBAAmB;YAAE,OAAO,SAAS,CAAC;QAEtD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7E,MAAM,GAAG,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,IAAI,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,GAAG,IAAI,SAAS,CAAC;IAC1B,CAAC;IAED,yBAAyB;IACzB,6BAA6B,CAAC,WAAmB,EAAE,KAAkC,EAAE,OAA6B;QAClH,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,UAAU,EAAE,wBAAwB;YAAE,OAAO,SAAS,CAAC;QAE3D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC;QAElF,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;YACzF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,OAAO,SAAS,CAAC;YAEtD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACjE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YAE/B,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC;YAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,kBAAkB,CAAC,WAAmB;QACpC,OAAO,uFAAuF,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnH,CAAC;IAED,uBAAuB;IACvB,KAAK,CAAC,iBAAiB,CAAC,QAAkB,EAAE,WAAmB;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;QAChE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,0BAA0B,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC/E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YACzC,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gBACpC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC1E,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,0BAA0B,CAAC,QAAkB,EAAE,WAAmB,EAAE,KAAkC;QACpG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;YAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAExC,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAE9C,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,OAAe,CAAC;YAEpB,IAAI,UAAU,EAAE,gBAAgB,EAAE,CAAC;gBACjC,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAChC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBAAE,OAAO,SAAS,CAAC;YAEtC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/E,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,OAAO,iBAAiB,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,WAAW,wBAAwB,OAAO,UAAU,CAAC;QACzH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,iBAAiB,CAAC,WAAmB,EAAE,KAAkC,EAAE,OAA6B,EAAE,SAAS,GAAG,IAAI;QACxH,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;YAC9E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;YAC1D,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;YAED,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEnC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;gBAC3D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE;oBAC5C,YAAY,EAAE,WAAW;oBACzB,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,eAAe;IACf,KAAK,CAAC,oBAAoB,CAAC,WAAmB,EAAE,WAAmB,EAAE,KAAkC,EAAE,OAA6B;QACpI,MAAM,YAAY,GAAG,oDAAoD,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;YAC9E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,OAAO,SAAS,CAAC;YAEpD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAE1C,IAAI,UAAU,EAAE,YAAY,KAAK,WAAW,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,UAAU,CAAC,eAAe,IAAI,SAAS,CAAC;YACjD,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACpF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,cAAc,CAAC,wBAAwB,CACpD,WAAW,EACX,kBAAkB,UAAU,EAAE,CAC/B,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE;oBAC5C,YAAY,EAAE,WAAW;oBACzB,eAAe,EAAE,MAAM;oBACvB,gBAAgB,EAAE,EAAE;iBACrB,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,4BAA4B,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAClG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,cAAc;IACN,KAAK,CAAC,yBAAyB,CAAC,WAAmB,EAAE,aAAqB;QAChF,IAAI,CAAC;YACH,IAAI,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAExD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YAEtB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAEvD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;gBACzD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,iBAAiB;IACT,4BAA4B,CAAC,WAAmB,EAAE,WAAmB,EAAE,WAAmB,EAAE,KAAkC,EAAE,OAA6B;QACnK,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAChC,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC;QAEnC,MAAM,QAAQ,GAAG,WAAW;aACzB,KAAK,CAAC,gBAAgB,CAAC;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAI,QAAkB,CAAC;QACvB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CACpE,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,cAAc,CAAC,wBAAwB,CACpD,WAAW,EACX,2BAA2B,OAAO,UAAU,CAC7C,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE;YAC5C,YAAY,EAAE,WAAW;YACzB,eAAe,EAAE,MAAM;YACvB,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,sBAAsB,QAAQ,CAAC,MAAM,OAAO,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sCAAsC;IACtC,gBAAgB,CAAC,WAAmB,EAAE,WAAyB;QAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAExC,MAAM,YAAY,GAAsD;YACtE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE;YACpG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE;YAC1F,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,EAAE;YACnH,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE;YACpG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE;YAC7F,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE;SACtI,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC3D,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAErC,KAAK,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;YAClD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC5C,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;oBAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9B,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IACtE,CAAC;IAED,eAAe;IACf,KAAK,CAAC,2BAA2B,CAAC,WAAmB,EAAE,gBAAwB;QAC7E,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;YACvE,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,IAAI,IAAI,CAAC,UAAU,KAAK,gBAAgB;gBAAE,OAAO;YAEjD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3D,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;oBAAE,OAAO;YACxC,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;YAEhD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAElE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC;gBACxC,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACxE,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,WAAW;gBACzB,eAAe,EAAE,IAAI,CAAC,EAAE;gBACxB,WAAW,EAAE,0BAA0B;gBACvC,YAAY,EAAE,QAAQ,GAAG,SAAS;gBAClC,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,gBAAgB,EAAE;aACjG,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,yCAAyC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,gBAAgB,CAAC,WAAmB;QAQlC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;QAC9C,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACpF,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC;YACnD,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,MAAM;YACzF,CAAC,CAAC,GAAG,CAAC;QAER,MAAM,eAAe,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC/D,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACjG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QACD,MAAM,mBAAmB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAsC,CAAC;QAErJ,MAAM,kBAAkB,GAA2F;YACjH,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,cAAc;YACnB,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,QAAQ;SACjB,CAAC;QAEF,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,UAAU;YAC5C,gBAAgB,EAAE,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;YACvE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;YACjC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC;YACzC,gBAAgB,EAAE,eAAe;YACjC,oBAAoB,EAAE,mBAAmB;SAC1C,CAAC;IACJ,CAAC;IAED,eAAe;IACf,qBAAqB,CAAC,WAAmB;QACvC,OAAO,qBAAqB,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;IACzD,CAAC;CACF"}
|
|
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:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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;
|
|
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
|