@winspan/claude-forge 2.6.4 → 2.7.2
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 +2 -2
- 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/daemon/handlers/post-tool-use-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use-handler.js +2 -1
- 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/09-pipeline-active.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/09-pipeline-active.js +7 -0
- package/dist/daemon/handlers/stages/09-pipeline-active.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/pipeline/artifact-enforcement.d.ts +74 -0
- package/dist/pipeline/artifact-enforcement.d.ts.map +1 -0
- package/dist/pipeline/artifact-enforcement.js +187 -0
- package/dist/pipeline/artifact-enforcement.js.map +1 -0
- 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-rules.d.ts +39 -0
- package/dist/pipeline/artifact-rules.d.ts.map +1 -0
- package/dist/pipeline/artifact-rules.js +104 -0
- package/dist/pipeline/artifact-rules.js.map +1 -0
- 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 +7 -6
- package/dist/pipeline/dynamic-node-executor.d.ts.map +1 -1
- package/dist/pipeline/dynamic-node-executor.js +116 -185
- 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/events.d.ts +3 -0
- package/dist/pipeline/events.d.ts.map +1 -1
- package/dist/pipeline/events.js +4 -0
- package/dist/pipeline/events.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 +25 -8
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +137 -149
- 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.d.ts +13 -0
- package/dist/pipeline/phase-manager.d.ts.map +1 -1
- package/dist/pipeline/phase-manager.js +178 -18
- package/dist/pipeline/phase-manager.js.map +1 -1
- package/dist/pipeline/types.d.ts +1 -0
- package/dist/pipeline/types.d.ts.map +1 -1
- 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/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/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-C3zW2cbT.js → index-C9F94O8p.js} +1 -1
- package/dist/web-static/index.html +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 产物规则定义:每个阶段必须产出的产物类型
|
|
3
|
+
*
|
|
4
|
+
* 这是三层防护机制的配置基础,驱动:
|
|
5
|
+
* 1. 阶段指令引导(第一层)
|
|
6
|
+
* 2. 实时产物追踪(第二层)
|
|
7
|
+
* 3. 阶段推进门禁(第三层)
|
|
8
|
+
*/
|
|
9
|
+
export const ARTIFACT_RULES = {
|
|
10
|
+
analyze: {
|
|
11
|
+
label: '需求分析',
|
|
12
|
+
required: ['document'],
|
|
13
|
+
extensions: ['.md'],
|
|
14
|
+
pathKeywords: ['需求', '分析', 'analysis', 'requirement', 'spec', 'docs/'],
|
|
15
|
+
exemptComplexity: ['simple'],
|
|
16
|
+
},
|
|
17
|
+
design: {
|
|
18
|
+
label: '架构设计',
|
|
19
|
+
required: ['document'],
|
|
20
|
+
extensions: ['.md', '.drawio', '.mermaid'],
|
|
21
|
+
pathKeywords: ['设计', '架构', 'design', 'architecture', 'spec', 'docs/'],
|
|
22
|
+
exemptTaskType: ['bugfix'],
|
|
23
|
+
},
|
|
24
|
+
profile: {
|
|
25
|
+
label: '性能分析',
|
|
26
|
+
required: ['document'],
|
|
27
|
+
extensions: ['.md'],
|
|
28
|
+
pathKeywords: ['性能', 'profile', 'benchmark', 'performance', 'docs/'],
|
|
29
|
+
exemptComplexity: ['simple'],
|
|
30
|
+
exemptTaskType: ['bugfix'],
|
|
31
|
+
},
|
|
32
|
+
code: {
|
|
33
|
+
label: '编码实现',
|
|
34
|
+
required: ['code'],
|
|
35
|
+
extensions: [
|
|
36
|
+
'.ts', '.tsx', '.js', '.jsx', '.mjs',
|
|
37
|
+
'.py', '.go', '.java', '.rs', '.rb',
|
|
38
|
+
'.vue', '.svelte',
|
|
39
|
+
'.css', '.scss',
|
|
40
|
+
'.sh', '.sql',
|
|
41
|
+
],
|
|
42
|
+
pathKeywords: ['src/', 'lib/', 'app/', 'pkg/'],
|
|
43
|
+
// 编码阶段不允许豁免
|
|
44
|
+
},
|
|
45
|
+
test: {
|
|
46
|
+
label: '测试验证',
|
|
47
|
+
required: ['test'],
|
|
48
|
+
extensions: ['.test.ts', '.spec.ts', '.test.js', '.spec.py', '_test.go'],
|
|
49
|
+
pathKeywords: ['test', 'spec', '__tests__'],
|
|
50
|
+
mustRunBash: true,
|
|
51
|
+
// 测试阶段不允许豁免
|
|
52
|
+
},
|
|
53
|
+
review: {
|
|
54
|
+
label: '代码审查',
|
|
55
|
+
required: ['document'],
|
|
56
|
+
extensions: ['.md'],
|
|
57
|
+
pathKeywords: ['审查', '审核', 'review', 'docs/'],
|
|
58
|
+
exemptComplexity: ['simple'],
|
|
59
|
+
},
|
|
60
|
+
done: {
|
|
61
|
+
label: '完成',
|
|
62
|
+
required: [],
|
|
63
|
+
extensions: [],
|
|
64
|
+
pathKeywords: [],
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* 判断当前阶段是否可以豁免产物检查
|
|
69
|
+
*/
|
|
70
|
+
export function isArtifactExempted(phase, taskType, complexity) {
|
|
71
|
+
const rule = ARTIFACT_RULES[phase];
|
|
72
|
+
if (rule.required.length === 0)
|
|
73
|
+
return true;
|
|
74
|
+
if (rule.exemptComplexity?.includes(complexity)) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
if (rule.exemptTaskType?.includes(taskType || '')) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 根据文件路径推断产物类型
|
|
84
|
+
*/
|
|
85
|
+
export function inferArtifactType(filePath) {
|
|
86
|
+
if (filePath.match(/\.(test|spec)\./))
|
|
87
|
+
return 'test';
|
|
88
|
+
if (filePath.endsWith('.md'))
|
|
89
|
+
return 'document';
|
|
90
|
+
if (filePath.match(/\.(json|yaml|yml|toml|env)$/))
|
|
91
|
+
return 'config';
|
|
92
|
+
if (filePath.match(/\.(ts|tsx|js|jsx|py|go|java|rs|rb|vue|svelte|css|scss|sh|sql)$/))
|
|
93
|
+
return 'code';
|
|
94
|
+
return 'other';
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* 检查产物是否匹配阶段规则的路径关键词
|
|
98
|
+
*/
|
|
99
|
+
export function matchesPhaseKeywords(filePath, phase) {
|
|
100
|
+
const rule = ARTIFACT_RULES[phase];
|
|
101
|
+
const lower = filePath.toLowerCase();
|
|
102
|
+
return rule.pathKeywords.some(kw => lower.includes(kw.toLowerCase()));
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=artifact-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-rules.js","sourceRoot":"","sources":["../../src/pipeline/artifact-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-validator.d.ts","sourceRoot":"","sources":["../../src/pipeline/artifact-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGvF,qBAAa,iBAAiB;IAC5B;;;;OAIG;IACH,QAAQ,CACN,SAAS,EAAE,QAAQ,EAAE,EACrB,WAAW,CAAC,EAAE,kBAAkB,EAAE,EAClC,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,EAC9C,MAAM,UAAQ,GACb,UAAU,CAAC,YAAY,CAAC;IAsE3B;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAoBrC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsB/B;;OAEG;IACH,OAAO,CAAC,eAAe;IA0BvB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"artifact-validator.d.ts","sourceRoot":"","sources":["../../src/pipeline/artifact-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGvF,qBAAa,iBAAiB;IAC5B;;;;OAIG;IACH,QAAQ,CACN,SAAS,EAAE,QAAQ,EAAE,EACrB,WAAW,CAAC,EAAE,kBAAkB,EAAE,EAClC,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,EAC9C,MAAM,UAAQ,GACb,UAAU,CAAC,YAAY,CAAC;IAsE3B;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAoBrC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsB/B;;OAEG;IACH,OAAO,CAAC,eAAe;IA0BvB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAwBpB"}
|
|
@@ -136,10 +136,19 @@ export class ArtifactValidator {
|
|
|
136
136
|
globToRegex(pattern) {
|
|
137
137
|
// 先用占位符保护 **,避免被后续 * 替换误伤
|
|
138
138
|
const DOUBLE_STAR = '\x00DOUBLESTAR\x00';
|
|
139
|
+
const BRACE_GROUP = '\x00BRACEGROUP\x00';
|
|
140
|
+
const braceGroups = [];
|
|
139
141
|
let regex = pattern
|
|
142
|
+
.replace(/\{([^}]+)\}/g, (_match, inner) => {
|
|
143
|
+
const options = inner.split(',').map((part) => part.trim()).filter(Boolean);
|
|
144
|
+
const group = `(?:${options.map(option => option.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('|')})`;
|
|
145
|
+
braceGroups.push(group);
|
|
146
|
+
return `${BRACE_GROUP}${braceGroups.length - 1}\x00`;
|
|
147
|
+
})
|
|
140
148
|
.replace(/\*\*/g, DOUBLE_STAR)
|
|
141
149
|
// 转义正则特殊字符(不含已替换的占位符)
|
|
142
150
|
.replace(/[.+?^${}()|[\]\\]/g, '\\$&')
|
|
151
|
+
.replace(new RegExp(`${BRACE_GROUP}(\\d+)\\x00`, 'g'), (_match, index) => braceGroups[Number(index)] ?? '')
|
|
143
152
|
// * 匹配单层路径(不含 /)
|
|
144
153
|
.replace(/\*/g, '[^/]*')
|
|
145
154
|
// 还原 ** 为匹配任意路径(含零层,即可直接匹配文件名)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-validator.js","sourceRoot":"","sources":["../../src/pipeline/artifact-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,OAAO,iBAAiB;IAC5B;;;;OAIG;IACH,QAAQ,CACN,SAAqB,EACrB,WAAkC,EAClC,UAA8C,EAC9C,MAAM,GAAG,KAAK;QAEd,cAAc;QACd,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,2CAA2C;QAC3C,MAAM,oBAAoB,GAAG,IAAI,CAAC,6BAA6B,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAEzF,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,UAAU,IAAI,oBAAoB,EAAE,CAAC;YAC9C,aAAa;YACb,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAE9E,SAAS;YACT,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,WAAW;YAC3D,IAAI,QAAQ,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,uBAAuB;YACvB,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,SAAS;YACT,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,IAAI,CAAC,CAAC;YAC3C,IAAI,iBAAiB,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,WAAW,OAAO,QAAQ,OAAO,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;YACjG,CAAC;YAED,SAAS;YACT,IAAI,UAAU,CAAC,SAAS,IAAI,iBAAiB,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;gBAC5E,MAAM,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,WAAW,OAAO,UAAU,CAAC,SAAS,OAAO,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7G,CAAC;YAED,SAAS;YACT,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBACnC,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;oBACzC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,IAAI,UAAU,CAAC,cAAc,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9D,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;oBACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;wBACrC,MAAM,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,WAAW,SAAS,UAAU,CAAC,cAAc,UAAU,IAAI,MAAM,CAAC,CAAC;oBACtG,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,OAAO;YACL,MAAM;YACN,gBAAgB,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YAC1E,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC/C,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,6BAA6B,CACnC,WAAiC,EACjC,UAA8C;QAE9C,IAAI,CAAC,UAAU;YAAE,OAAO,WAAW,CAAC,CAAC,eAAe;QAEpD,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,wBAAwB;YACxB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,uBAAuB;YACvB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,oBAAoB;QACpB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,SAAqB,EACrB,UAA8B;QAE9B,OAAO,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YACjC,OAAO;YACP,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;gBACtC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,eAAe;YACf,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,eAAe,CACrB,QAAkB,EAClB,UAA8B,EAC9B,MAAgB;QAEhB,MAAM,kBAAkB,GAAG,UAAU,CAAC,mBAAmB,CAAC;QAC1D,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAEhC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;QAE/C,SAAS;QACT,IAAI,kBAAkB,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAE,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,IAAI,OAAO,kBAAkB,CAAC,UAAU,UAAU,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACtG,CAAC;QAED,UAAU;QACV,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;YACzC,MAAM,eAAe,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CACjE,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAClE,CAAC;YACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,IAAI,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAC,OAAe;QACjC,0BAA0B;QAC1B,MAAM,WAAW,GAAG,oBAAoB,CAAC;QACzC,IAAI,KAAK,GAAG,OAAO;aAChB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;YAC9B,sBAAsB;aACrB,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC;
|
|
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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"}
|
|
@@ -41,9 +41,8 @@ export declare class DynamicNodeExecutor implements INodeExecutor {
|
|
|
41
41
|
/** 连续非写入工具调用超过此阈值时触发强制门禁 */
|
|
42
42
|
private static readonly CONSECUTIVE_NON_WRITE_BLOCK;
|
|
43
43
|
private artifactCollector;
|
|
44
|
-
private artifactValidator;
|
|
45
|
-
private completionEngine;
|
|
46
44
|
private semanticValidator;
|
|
45
|
+
private completionGate;
|
|
47
46
|
private stepOrchestrator;
|
|
48
47
|
private stepPromptBuilder;
|
|
49
48
|
private stepValidator;
|
|
@@ -55,6 +54,10 @@ export declare class DynamicNodeExecutor implements INodeExecutor {
|
|
|
55
54
|
getStepOrchestrator(): StepOrchestrator;
|
|
56
55
|
/** 获取 StepGateKeeper(供 PipelineEngine 使用) */
|
|
57
56
|
getStepGateKeeper(): import('./step-gate-keeper.js').StepGateKeeper;
|
|
57
|
+
evaluatePreToolGate(pipeline: DynamicPipeline, event: ForgeEvent): {
|
|
58
|
+
allowed: boolean;
|
|
59
|
+
reason?: string;
|
|
60
|
+
} | null;
|
|
58
61
|
/**
|
|
59
62
|
* 获取当前节点的指令
|
|
60
63
|
*/
|
|
@@ -75,14 +78,12 @@ export declare class DynamicNodeExecutor implements INodeExecutor {
|
|
|
75
78
|
* 传统模式的推进逻辑(原有逻辑)
|
|
76
79
|
*/
|
|
77
80
|
private checkAndAdvanceTraditional;
|
|
78
|
-
/**
|
|
79
|
-
* 检测 Step 是否完成(检查完成信号)
|
|
80
|
-
*/
|
|
81
|
-
private detectStepCompletion;
|
|
82
81
|
/**
|
|
83
82
|
* 收集 Step 的输出产物
|
|
84
83
|
*/
|
|
85
84
|
private collectStepOutputs;
|
|
85
|
+
private findMatchingArtifactPath;
|
|
86
|
+
private createGlobMatcher;
|
|
86
87
|
/**
|
|
87
88
|
* 清理节点执行器缓存
|
|
88
89
|
*/
|
|
@@ -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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"}
|