@winspan/claude-forge 2.7.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/autopilot/intent-engine.js +5 -5
- package/dist/autopilot/intent-engine.js.map +1 -1
- package/dist/autopilot/issue-tracker.d.ts +1 -1
- package/dist/autopilot/issue-tracker.d.ts.map +1 -1
- package/dist/autopilot/issue-tracker.js +2 -2
- package/dist/autopilot/issue-tracker.js.map +1 -1
- package/dist/autopilot/phase-gap-detector.d.ts +2 -1
- package/dist/autopilot/phase-gap-detector.d.ts.map +1 -1
- package/dist/autopilot/phase-gap-detector.js +1 -1
- package/dist/autopilot/phase-gap-detector.js.map +1 -1
- package/dist/autopilot/quality-gate.d.ts +1 -1
- package/dist/autopilot/quality-gate.d.ts.map +1 -1
- package/dist/autopilot/quality-gate.js +4 -4
- package/dist/autopilot/quality-gate.js.map +1 -1
- package/dist/autopilot/task-completion-detector.d.ts +1 -1
- package/dist/autopilot/task-completion-detector.d.ts.map +1 -1
- package/dist/backup/index.d.ts +2 -2
- package/dist/backup/index.d.ts.map +1 -1
- package/dist/backup/index.js +5 -7
- package/dist/backup/index.js.map +1 -1
- package/dist/claudemd/writer.d.ts +1 -0
- package/dist/claudemd/writer.d.ts.map +1 -1
- package/dist/claudemd/writer.js +12 -0
- package/dist/claudemd/writer.js.map +1 -1
- package/dist/convention/convention-manager.d.ts +2 -4
- package/dist/convention/convention-manager.d.ts.map +1 -1
- package/dist/convention/convention-manager.js +6 -25
- package/dist/convention/convention-manager.js.map +1 -1
- package/dist/core/cache-registry.d.ts +53 -0
- package/dist/core/cache-registry.d.ts.map +1 -0
- package/dist/core/cache-registry.js +93 -0
- package/dist/core/cache-registry.js.map +1 -0
- package/dist/core/pending-prompt-sink.d.ts +14 -0
- package/dist/core/pending-prompt-sink.d.ts.map +1 -0
- package/dist/core/pending-prompt-sink.js +7 -0
- package/dist/core/pending-prompt-sink.js.map +1 -0
- package/dist/core/types.d.ts +24 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +24 -0
- package/dist/core/types.js.map +1 -0
- package/dist/daemon/engine-registry/init-pipeline.d.ts.map +1 -1
- package/dist/daemon/engine-registry/init-pipeline.js +3 -1
- package/dist/daemon/engine-registry/init-pipeline.js.map +1 -1
- package/dist/daemon/engine-registry.js +2 -2
- package/dist/daemon/engine-registry.js.map +1 -1
- package/dist/daemon/handlers/post-tool-use-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use-handler.js +4 -3
- package/dist/daemon/handlers/post-tool-use-handler.js.map +1 -1
- package/dist/daemon/handlers/pre-tool-use-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/pre-tool-use-handler.js +18 -48
- package/dist/daemon/handlers/pre-tool-use-handler.js.map +1 -1
- package/dist/daemon/handlers/stages/13-template-route.js +2 -2
- package/dist/daemon/handlers/stages/13-template-route.js.map +1 -1
- package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/18-complex-task.js +11 -3
- package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -1
- package/dist/daemon/handlers/stop-handler.js +2 -2
- package/dist/daemon/handlers/stop-handler.js.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.js +6 -6
- package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
- package/dist/distill/trigger.js +2 -2
- package/dist/distill/trigger.js.map +1 -1
- package/dist/pipeline/artifact-generator.d.ts +5 -1
- package/dist/pipeline/artifact-generator.d.ts.map +1 -1
- package/dist/pipeline/artifact-generator.js +5 -1
- package/dist/pipeline/artifact-generator.js.map +1 -1
- package/dist/pipeline/artifact-validator.d.ts.map +1 -1
- package/dist/pipeline/artifact-validator.js +9 -0
- package/dist/pipeline/artifact-validator.js.map +1 -1
- package/dist/pipeline/completion-detector.d.ts.map +1 -1
- package/dist/pipeline/completion-detector.js +10 -0
- package/dist/pipeline/completion-detector.js.map +1 -1
- package/dist/pipeline/completion-gate.d.ts +56 -0
- package/dist/pipeline/completion-gate.d.ts.map +1 -0
- package/dist/pipeline/completion-gate.js +165 -0
- package/dist/pipeline/completion-gate.js.map +1 -0
- package/dist/pipeline/dynamic-node-executor.d.ts +10 -10
- package/dist/pipeline/dynamic-node-executor.d.ts.map +1 -1
- package/dist/pipeline/dynamic-node-executor.js +132 -202
- package/dist/pipeline/dynamic-node-executor.js.map +1 -1
- package/dist/pipeline/dynamic-node-types.d.ts +2 -0
- package/dist/pipeline/dynamic-node-types.d.ts.map +1 -1
- package/dist/pipeline/event-sourced-engine.d.ts.map +1 -1
- package/dist/pipeline/event-sourced-engine.js +6 -5
- package/dist/pipeline/event-sourced-engine.js.map +1 -1
- package/dist/pipeline/execution-plan-builder.d.ts +20 -0
- package/dist/pipeline/execution-plan-builder.d.ts.map +1 -0
- package/dist/pipeline/execution-plan-builder.js +100 -0
- package/dist/pipeline/execution-plan-builder.js.map +1 -0
- package/dist/pipeline/execution-plan.d.ts +64 -0
- package/dist/pipeline/execution-plan.d.ts.map +1 -0
- package/dist/pipeline/execution-plan.js +57 -0
- package/dist/pipeline/execution-plan.js.map +1 -0
- package/dist/pipeline/i-node-executor.d.ts +2 -0
- package/dist/pipeline/i-node-executor.d.ts.map +1 -1
- package/dist/pipeline/index.d.ts +22 -20
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +157 -284
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/optimized-aggregator.d.ts.map +1 -1
- package/dist/pipeline/optimized-aggregator.js +1 -1
- package/dist/pipeline/optimized-aggregator.js.map +1 -1
- package/dist/pipeline/phase-manager.js +10 -10
- package/dist/pipeline/phase-manager.js.map +1 -1
- package/dist/pipeline/report-generator.d.ts +3 -3
- package/dist/pipeline/report-generator.d.ts.map +1 -1
- package/dist/pipeline/report-generator.js +4 -4
- package/dist/pipeline/report-generator.js.map +1 -1
- package/dist/pipeline/step-gate-keeper.d.ts +1 -1
- package/dist/pipeline/step-gate-keeper.d.ts.map +1 -1
- package/dist/pipeline/step-gate-keeper.js +2 -3
- package/dist/pipeline/step-gate-keeper.js.map +1 -1
- package/dist/pipeline/step-orchestrator.d.ts +6 -1
- package/dist/pipeline/step-orchestrator.d.ts.map +1 -1
- package/dist/pipeline/step-orchestrator.js +13 -5
- package/dist/pipeline/step-orchestrator.js.map +1 -1
- package/dist/pipeline/types.d.ts +5 -4
- package/dist/pipeline/types.d.ts.map +1 -1
- package/dist/pipeline/types.js +1 -17
- package/dist/pipeline/types.js.map +1 -1
- package/dist/storage/repositories/dynamic-pipeline-repository.d.ts.map +1 -1
- package/dist/storage/repositories/dynamic-pipeline-repository.js +11 -23
- package/dist/storage/repositories/dynamic-pipeline-repository.js.map +1 -1
- package/dist/storage/repositories/maintenance-repository.d.ts +1 -0
- package/dist/storage/repositories/maintenance-repository.d.ts.map +1 -1
- package/dist/storage/repositories/maintenance-repository.js +76 -130
- package/dist/storage/repositories/maintenance-repository.js.map +1 -1
- package/dist/storage/schema/migration-manager.d.ts +15 -0
- package/dist/storage/schema/migration-manager.d.ts.map +1 -0
- package/dist/storage/schema/migration-manager.js +868 -0
- package/dist/storage/schema/migration-manager.js.map +1 -0
- package/dist/storage/sqlite.d.ts +0 -5
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +6 -837
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/utils/forge-resume-block.d.ts +2 -1
- package/dist/utils/forge-resume-block.d.ts.map +1 -1
- package/dist/utils/forge-resume-block.js +16 -2
- package/dist/utils/forge-resume-block.js.map +1 -1
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +3 -7
- package/dist/utils/formatter.js.map +1 -1
- package/dist/utils/mutex-lock.d.ts +1 -0
- package/dist/utils/mutex-lock.d.ts.map +1 -1
- package/dist/utils/mutex-lock.js +13 -0
- package/dist/utils/mutex-lock.js.map +1 -1
- package/dist/web-static/assets/{index-nmYJCpsl.js → index-BcPVkZqZ.js} +1 -1
- package/dist/web-static/index.html +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-validator.js","sourceRoot":"","sources":["../../src/pipeline/artifact-validator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"artifact-validator.js","sourceRoot":"","sources":["../../src/pipeline/artifact-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-detector.d.ts","sourceRoot":"","sources":["../../src/pipeline/completion-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,qBAAa,kBAAkB;IAC7B;;;OAGG;IACH,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"completion-detector.d.ts","sourceRoot":"","sources":["../../src/pipeline/completion-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,qBAAa,kBAAkB;IAC7B;;;OAGG;IACH,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAkChE;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO;IAgB9D;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO;IAgClE;;;OAGG;IACH,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAkBpD;;;OAGG;IACH,uBAAuB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO;IAgB5D;;;OAGG;IACH,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,GAAE,MAAW,GAAG,OAAO;IAezE;;;OAGG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO;IAcpF;;;OAGG;IACH,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO;IAc5F;;OAEG;IACH,OAAO,CAAC,SAAS;CAWlB"}
|
|
@@ -20,6 +20,16 @@ export class CompletionDetector {
|
|
|
20
20
|
logger.info(`[CompletionDetector] 🔔 检测到 user_prompt 中的完成信号:${signal}`);
|
|
21
21
|
return true;
|
|
22
22
|
}
|
|
23
|
+
const toolInputSignal = JSON.stringify(event.tool_input || {}).toLowerCase();
|
|
24
|
+
if (toolInputSignal.includes(signalLower)) {
|
|
25
|
+
logger.info(`[CompletionDetector] 🔔 检测到 tool_input 中的完成信号:${signal}`);
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
const structuredSignal = String(event.tool_input?.forge_signal ?? '').toLowerCase();
|
|
29
|
+
if (structuredSignal === signalLower) {
|
|
30
|
+
logger.info(`[CompletionDetector] 🔔 检测到结构化完成信号:${signal}`);
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
23
33
|
// 检查 Bash 输出(AI 通过 echo 发出信号时)
|
|
24
34
|
if (event.tool_name === 'Bash') {
|
|
25
35
|
const toolOutput = JSON.stringify(event.tool_output || '').toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-detector.js","sourceRoot":"","sources":["../../src/pipeline/completion-detector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"completion-detector.js","sourceRoot":"","sources":["../../src/pipeline/completion-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { ForgeEvent } from '../types/index.js';
|
|
2
|
+
import type { DynamicNode, DynamicPipeline, NodeStepExecution } from './dynamic-node-types.js';
|
|
3
|
+
import type { ConventionNodeType, Artifact } from '../convention/types.js';
|
|
4
|
+
import type { AdvanceResult } from './i-node-executor.js';
|
|
5
|
+
import type { StepDefinition } from './step-types.js';
|
|
6
|
+
import type { StepGateKeeper } from './step-gate-keeper.js';
|
|
7
|
+
import type { SemanticValidator } from './semantic-validator.js';
|
|
8
|
+
import type { StepValidator } from './step-validator.js';
|
|
9
|
+
interface TraditionalCompletionContext {
|
|
10
|
+
pipeline: DynamicPipeline;
|
|
11
|
+
currentNode: DynamicNode;
|
|
12
|
+
nodeType: ConventionNodeType;
|
|
13
|
+
event: ForgeEvent;
|
|
14
|
+
artifacts: Artifact[];
|
|
15
|
+
eventCount: number;
|
|
16
|
+
recentEvents: ForgeEvent[];
|
|
17
|
+
lastActivityAt?: number;
|
|
18
|
+
lastArtifactAt?: number;
|
|
19
|
+
consecutiveNonWriteCount: number;
|
|
20
|
+
retryCount: number;
|
|
21
|
+
maxArtifactRetries: number;
|
|
22
|
+
formatPathRequirement: (pathPattern?: string) => string;
|
|
23
|
+
}
|
|
24
|
+
interface StepCompletionContext {
|
|
25
|
+
pipeline: DynamicPipeline;
|
|
26
|
+
currentNode: DynamicNode;
|
|
27
|
+
currentStep: NodeStepExecution;
|
|
28
|
+
stepDef: StepDefinition;
|
|
29
|
+
event: ForgeEvent;
|
|
30
|
+
stepValidator: StepValidator;
|
|
31
|
+
}
|
|
32
|
+
interface PreToolGateContext {
|
|
33
|
+
event: ForgeEvent;
|
|
34
|
+
isInArtifactRetry: boolean;
|
|
35
|
+
artifactStage: 'uninitialized' | 'bootstrapped' | 'enriching' | 'ready';
|
|
36
|
+
stepGateKeeper?: StepGateKeeper;
|
|
37
|
+
currentStep?: NodeStepExecution;
|
|
38
|
+
stepDef?: StepDefinition;
|
|
39
|
+
}
|
|
40
|
+
export declare class CompletionGate {
|
|
41
|
+
private semanticValidator;
|
|
42
|
+
private readonly artifactValidator;
|
|
43
|
+
private readonly completionEngine;
|
|
44
|
+
private readonly detector;
|
|
45
|
+
constructor(semanticValidator?: SemanticValidator | null);
|
|
46
|
+
evaluateTraditionalNode(context: TraditionalCompletionContext): Promise<AdvanceResult>;
|
|
47
|
+
evaluateStep(context: StepCompletionContext): Promise<AdvanceResult>;
|
|
48
|
+
evaluatePreToolGate(context: PreToolGateContext): {
|
|
49
|
+
allowed: boolean;
|
|
50
|
+
reason?: string;
|
|
51
|
+
} | null;
|
|
52
|
+
private detectStepCompletion;
|
|
53
|
+
private getNextNodeId;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=completion-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-gate.d.ts","sourceRoot":"","sources":["../../src/pipeline/completion-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,UAAU,4BAA4B;IACpC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACzD;AAED,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,eAAe,GAAG,cAAc,GAAG,WAAW,GAAG,OAAO,CAAC;IACxE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,qBAAa,cAAc;IAKb,OAAO,CAAC,iBAAiB;IAJrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA0B;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;gBAEjC,iBAAiB,GAAE,iBAAiB,GAAG,IAAW;IAEhE,uBAAuB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,aAAa,CAAC;IAyGtF,YAAY,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAkC1E,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA4B9F,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,aAAa;CAkBtB"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { ArtifactValidator } from './artifact-validator.js';
|
|
2
|
+
import { CompletionDetector } from './completion-detector.js';
|
|
3
|
+
import { CompletionEngine } from './completion-engine.js';
|
|
4
|
+
import { logger } from '../utils/logger.js';
|
|
5
|
+
export class CompletionGate {
|
|
6
|
+
semanticValidator;
|
|
7
|
+
artifactValidator = new ArtifactValidator();
|
|
8
|
+
completionEngine = new CompletionEngine();
|
|
9
|
+
detector = new CompletionDetector();
|
|
10
|
+
constructor(semanticValidator = null) {
|
|
11
|
+
this.semanticValidator = semanticValidator;
|
|
12
|
+
}
|
|
13
|
+
async evaluateTraditionalNode(context) {
|
|
14
|
+
const hasExplicitSignal = context.nodeType.completion.explicit_signal
|
|
15
|
+
? this.detector.detectExplicitSignal(context.event, context.nodeType.completion.explicit_signal)
|
|
16
|
+
: false;
|
|
17
|
+
const decision = this.completionEngine.decide(context.currentNode, context.nodeType, context.event, context.recentEvents, context.artifacts, context.eventCount, context.lastActivityAt, context.lastArtifactAt, context.pipeline.complexity);
|
|
18
|
+
if (!decision.shouldAdvance && !hasExplicitSignal) {
|
|
19
|
+
return { advanced: false };
|
|
20
|
+
}
|
|
21
|
+
if (context.consecutiveNonWriteCount >= 20) {
|
|
22
|
+
const requiredArtifacts = context.nodeType.expected_artifacts?.filter(c => c.required !== false) ?? [];
|
|
23
|
+
const artifactList = requiredArtifacts.map(c => {
|
|
24
|
+
const pathHint = context.formatPathRequirement(c.path_pattern);
|
|
25
|
+
return `- ${c.description}${pathHint}`;
|
|
26
|
+
}).join('\n');
|
|
27
|
+
return {
|
|
28
|
+
advanced: false,
|
|
29
|
+
blocking: true,
|
|
30
|
+
systemMessage: `[Pipeline 已阻断] 检测到连续 ${context.consecutiveNonWriteCount} 次非写入工具调用,流程已熔断。\n\n必需产物:\n${artifactList}\n\n请立即使用 Write 工具创建产物文件并写入实质内容,然后执行 echo "FORGE_NODE_DONE"。`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const validation = this.artifactValidator.validate(context.artifacts, context.nodeType.expected_artifacts, context.pipeline.complexity);
|
|
34
|
+
if (!validation.passed && context.pipeline.complexity !== 'simple') {
|
|
35
|
+
const missing = validation.missing_required?.join('、') || validation.errors?.join(';') || '必需产物';
|
|
36
|
+
const requiredArtifacts = context.nodeType.expected_artifacts?.filter(c => c.required !== false) ?? [];
|
|
37
|
+
const artifactList = requiredArtifacts.map(c => {
|
|
38
|
+
const pathHint = context.formatPathRequirement(c.path_pattern);
|
|
39
|
+
return `- ${c.description}(${c.type} 文件${pathHint})`;
|
|
40
|
+
}).join('\n');
|
|
41
|
+
if (context.retryCount < context.maxArtifactRetries) {
|
|
42
|
+
return {
|
|
43
|
+
advanced: false,
|
|
44
|
+
systemMessage: `[Forge:产物强制要求] 当前节点「${context.nodeType.name}」尚未完成,缺少必需产物:${missing}。\n\n这是第 ${context.retryCount + 1}/${context.maxArtifactRetries} 次重试。\n\n你必须立即使用 Write 工具生成以下文件后才能继续:\n${artifactList || missing}\n\n生成完成后执行 echo "FORGE_NODE_DONE"。`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
advanced: false,
|
|
49
|
+
blocking: true,
|
|
50
|
+
systemMessage: `[Pipeline 已阻断] 产物验证失败 ${context.maxArtifactRetries} 次。\n\n缺少必需产物:\n${missing}\n\n必需产物清单:\n${artifactList}\n\nPipeline 已被阻断,无法继续执行。请检查:\n1. 产物路径是否正确?\n2. 产物内容是否符合要求?\n3. 是否需要调整产物约束配置?\n\n如需继续,请手动修复问题后重启 Pipeline。`,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (this.semanticValidator && validation.passed) {
|
|
54
|
+
const documentArtifacts = context.artifacts.filter(artifact => artifact.type === 'document');
|
|
55
|
+
if (documentArtifacts.length > 0) {
|
|
56
|
+
const semanticConfig = context.nodeType.semantic_validation;
|
|
57
|
+
if (semanticConfig?.enabled !== false) {
|
|
58
|
+
try {
|
|
59
|
+
const artifact = documentArtifacts[0];
|
|
60
|
+
const minCoverage = semanticConfig?.min_coverage;
|
|
61
|
+
const semanticResult = await this.semanticValidator.validate(artifact, context.recentEvents, context.nodeType.name, context.event.project_path, minCoverage);
|
|
62
|
+
if (!semanticResult.consistent) {
|
|
63
|
+
const missingList = semanticResult.missing_points.map(point => `- ${point}`).join('\n');
|
|
64
|
+
const threshold = minCoverage ?? 70;
|
|
65
|
+
return {
|
|
66
|
+
advanced: false,
|
|
67
|
+
systemMessage: `[Forge:语义一致性] 当前节点「${context.nodeType.name}」产物文档内容不完整。\n\n覆盖率:${semanticResult.coverage}%(需要 >= ${threshold}%)\n\n缺失的关键要点:\n${missingList}\n\n请使用 Edit 工具补充以上缺失内容到文档中,确保文档完整覆盖本轮调研的关键发现。`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
logger.warn(`[CompletionGate] 语义校验失败,跳过:${err}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const nextNodeId = this.getNextNodeId(context.pipeline, context.currentNode.id);
|
|
78
|
+
return {
|
|
79
|
+
advanced: true,
|
|
80
|
+
newPhase: nextNodeId,
|
|
81
|
+
advanceReason: 'task_complete',
|
|
82
|
+
nodeOutput: JSON.stringify({
|
|
83
|
+
artifacts: context.artifacts,
|
|
84
|
+
validation,
|
|
85
|
+
summary: `完成节点:${context.nodeType.name},产出 ${context.artifacts.length} 个产物(${decision.method},置信度 ${decision.confidence}%)`,
|
|
86
|
+
}),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
async evaluateStep(context) {
|
|
90
|
+
if (!this.detectStepCompletion(context.stepDef, context.event)) {
|
|
91
|
+
return { advanced: false };
|
|
92
|
+
}
|
|
93
|
+
const validationResult = await context.stepValidator.validate(context.stepDef, context.currentStep, context.pipeline.projectPath, context.pipeline.complexity);
|
|
94
|
+
if (!validationResult.passed) {
|
|
95
|
+
const maxRetries = context.stepDef.max_retries ?? 3;
|
|
96
|
+
if (context.currentStep.attempts < maxRetries) {
|
|
97
|
+
return {
|
|
98
|
+
advanced: false,
|
|
99
|
+
systemMessage: `[Forge:Step验证] 当前步骤「${context.stepDef.name}」未通过验证。\n\n${validationResult.summary}\n\n请根据失败信息继续修复后再次发送完成信号。`,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
advanced: false,
|
|
104
|
+
blocking: true,
|
|
105
|
+
systemMessage: `[Pipeline 已阻断] 当前步骤「${context.stepDef.name}」连续 ${maxRetries} 次验证失败。\n\n${validationResult.summary}\n\n请检查步骤定义或手动介入。`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
advanced: true,
|
|
110
|
+
advanceReason: 'task_complete',
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
evaluatePreToolGate(context) {
|
|
114
|
+
if (context.isInArtifactRetry && context.artifactStage === 'enriching') {
|
|
115
|
+
const tool = context.event.tool_name;
|
|
116
|
+
const isWriteOrEdit = tool === 'Write' || tool === 'Edit';
|
|
117
|
+
const isDoneSignalBash = tool === 'Bash'
|
|
118
|
+
&& this.detector.detectExplicitSignal({
|
|
119
|
+
...context.event,
|
|
120
|
+
user_prompt: context.event.user_prompt ?? '',
|
|
121
|
+
}, 'FORGE_NODE_DONE');
|
|
122
|
+
if (!isWriteOrEdit && !isDoneSignalBash) {
|
|
123
|
+
return {
|
|
124
|
+
allowed: false,
|
|
125
|
+
reason: `[Forge 产物门禁] 当前节点处于产物修复阶段(enriching)。只允许使用 Write/Edit 修复产物;Bash 仅允许发送完成信号(FORGE_NODE_DONE)。请立即编辑已生成的文档产物文件。`,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (context.stepGateKeeper && context.currentStep && context.stepDef) {
|
|
130
|
+
return context.stepGateKeeper.checkTool(context.event, context.currentStep, context.stepDef);
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
detectStepCompletion(stepDef, event) {
|
|
135
|
+
const signal = stepDef.done_definition.signal || 'FORGE_STEP_DONE';
|
|
136
|
+
if (this.detector.detectExplicitSignal(event, signal)) {
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
const requiredArtifacts = stepDef.done_definition.required_artifacts ?? [];
|
|
140
|
+
if (requiredArtifacts.length > 0) {
|
|
141
|
+
return this.detector.detectFilePatterns(event, requiredArtifacts);
|
|
142
|
+
}
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
getNextNodeId(pipeline, completingNodeId) {
|
|
146
|
+
const currentIndex = pipeline.nodes.findIndex(node => node.id === completingNodeId);
|
|
147
|
+
if (currentIndex === -1 || currentIndex === pipeline.nodes.length - 1) {
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
for (let index = currentIndex + 1; index < pipeline.nodes.length; index++) {
|
|
151
|
+
const node = pipeline.nodes[index];
|
|
152
|
+
if (node.status !== 'pending')
|
|
153
|
+
continue;
|
|
154
|
+
const dependenciesMet = (node.dependencies ?? []).every(depId => {
|
|
155
|
+
if (depId === completingNodeId)
|
|
156
|
+
return true;
|
|
157
|
+
return pipeline.nodes.find(candidate => candidate.id === depId)?.status === 'completed';
|
|
158
|
+
});
|
|
159
|
+
if (dependenciesMet)
|
|
160
|
+
return node.id;
|
|
161
|
+
}
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=completion-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-gate.js","sourceRoot":"","sources":["../../src/pipeline/completion-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import type { INodeExecutor, NodeExecutorState, AdvanceResult } from './i-node-e
|
|
|
13
13
|
import type { QualityGateEngine } from '../autopilot/quality-gate.js';
|
|
14
14
|
import type { PhaseSnapshot } from '../retrospective/types.js';
|
|
15
15
|
import type { AIProvider } from '../ai-provider/types.js';
|
|
16
|
+
import type { PendingPromptSink } from '../core/pending-prompt-sink.js';
|
|
16
17
|
import { StepOrchestrator } from './step-orchestrator.js';
|
|
17
18
|
export declare class DynamicNodeExecutor implements INodeExecutor {
|
|
18
19
|
private nodeToolsSeen;
|
|
@@ -28,9 +29,7 @@ export declare class DynamicNodeExecutor implements INodeExecutor {
|
|
|
28
29
|
private lastArtifactAt;
|
|
29
30
|
/** 最近事件列表(key = pipelineId:nodeId,保留最近 10 条) */
|
|
30
31
|
private recentEvents;
|
|
31
|
-
/** 产物阶段状态(uninitialized/bootstrapped/enriching/ready)
|
|
32
|
-
* @deprecated 骨架自动创建已禁用,状态机不再维护
|
|
33
|
-
*/
|
|
32
|
+
/** 产物阶段状态(uninitialized/bootstrapped/enriching/ready) */
|
|
34
33
|
private artifactStage;
|
|
35
34
|
/** 连续非 Write/Edit 工具调用次数(熔断器) */
|
|
36
35
|
private consecutiveNonWriteCount;
|
|
@@ -41,20 +40,23 @@ export declare class DynamicNodeExecutor implements INodeExecutor {
|
|
|
41
40
|
/** 连续非写入工具调用超过此阈值时触发强制门禁 */
|
|
42
41
|
private static readonly CONSECUTIVE_NON_WRITE_BLOCK;
|
|
43
42
|
private artifactCollector;
|
|
44
|
-
private artifactValidator;
|
|
45
|
-
private completionEngine;
|
|
46
43
|
private semanticValidator;
|
|
44
|
+
private completionGate;
|
|
47
45
|
private stepOrchestrator;
|
|
48
46
|
private stepPromptBuilder;
|
|
49
47
|
private stepValidator;
|
|
50
48
|
private stepGateKeeper;
|
|
51
|
-
constructor(api?: AIProvider);
|
|
49
|
+
constructor(api?: AIProvider, pendingPromptSink?: PendingPromptSink);
|
|
52
50
|
/** 初始化 StepGateKeeper(需要 HandlerContext) */
|
|
53
51
|
initStepGateKeeper(handlerContext: import('../daemon/handler-context.js').HandlerContext): void;
|
|
54
52
|
/** 获取 StepOrchestrator(供 PipelineEngine 使用) */
|
|
55
53
|
getStepOrchestrator(): StepOrchestrator;
|
|
56
54
|
/** 获取 StepGateKeeper(供 PipelineEngine 使用) */
|
|
57
55
|
getStepGateKeeper(): import('./step-gate-keeper.js').StepGateKeeper;
|
|
56
|
+
evaluatePreToolGate(pipeline: DynamicPipeline, event: ForgeEvent): {
|
|
57
|
+
allowed: boolean;
|
|
58
|
+
reason?: string;
|
|
59
|
+
} | null;
|
|
58
60
|
/**
|
|
59
61
|
* 获取当前节点的指令
|
|
60
62
|
*/
|
|
@@ -75,14 +77,12 @@ export declare class DynamicNodeExecutor implements INodeExecutor {
|
|
|
75
77
|
* 传统模式的推进逻辑(原有逻辑)
|
|
76
78
|
*/
|
|
77
79
|
private checkAndAdvanceTraditional;
|
|
78
|
-
/**
|
|
79
|
-
* 检测 Step 是否完成(检查完成信号)
|
|
80
|
-
*/
|
|
81
|
-
private detectStepCompletion;
|
|
82
80
|
/**
|
|
83
81
|
* 收集 Step 的输出产物
|
|
84
82
|
*/
|
|
85
83
|
private collectStepOutputs;
|
|
84
|
+
private findMatchingArtifactPath;
|
|
85
|
+
private createGlobMatcher;
|
|
86
86
|
/**
|
|
87
87
|
* 清理节点执行器缓存
|
|
88
88
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-node-executor.d.ts","sourceRoot":"","sources":["../../src/pipeline/dynamic-node-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"dynamic-node-executor.d.ts","sourceRoot":"","sources":["../../src/pipeline/dynamic-node-executor.ts"],"names":[],"mappings":"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"}
|