@winspan/claude-forge 3.5.2 → 3.6.1
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/autopilot/task-completion-detector.d.ts.map +1 -1
- package/dist/autopilot/task-completion-detector.js +10 -0
- package/dist/autopilot/task-completion-detector.js.map +1 -1
- package/dist/daemon/engine-registry.d.ts.map +1 -1
- package/dist/daemon/engine-registry.js +3 -0
- package/dist/daemon/engine-registry.js.map +1 -1
- package/dist/daemon/handler-context.d.ts +2 -0
- package/dist/daemon/handler-context.d.ts.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 +14 -30
- package/dist/daemon/handlers/post-tool-use-handler.js.map +1 -1
- package/dist/daemon/handlers/session-cleanup.d.ts +1 -0
- package/dist/daemon/handlers/session-cleanup.d.ts.map +1 -1
- package/dist/daemon/handlers/session-cleanup.js +24 -0
- package/dist/daemon/handlers/session-cleanup.js.map +1 -1
- package/dist/daemon/handlers/stop-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/stop-handler.js +1 -0
- package/dist/daemon/handlers/stop-handler.js.map +1 -1
- package/dist/goal/goal-decomposer.d.ts.map +1 -1
- package/dist/goal/goal-decomposer.js +11 -1
- package/dist/goal/goal-decomposer.js.map +1 -1
- package/dist/pipeline/artifact-generator.d.ts.map +1 -1
- package/dist/pipeline/artifact-generator.js +50 -0
- package/dist/pipeline/artifact-generator.js.map +1 -1
- package/dist/pipeline/custom-node-type-store.d.ts +12 -0
- package/dist/pipeline/custom-node-type-store.d.ts.map +1 -0
- package/dist/pipeline/custom-node-type-store.js +54 -0
- package/dist/pipeline/custom-node-type-store.js.map +1 -0
- package/dist/pipeline/index.js +2 -2
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/node-type-evolver.d.ts +18 -0
- package/dist/pipeline/node-type-evolver.d.ts.map +1 -0
- package/dist/pipeline/node-type-evolver.js +171 -0
- package/dist/pipeline/node-type-evolver.js.map +1 -0
- package/dist/pipeline/node-type-registry.d.ts +7 -1
- package/dist/pipeline/node-type-registry.d.ts.map +1 -1
- package/dist/pipeline/node-type-registry.js +169 -1
- package/dist/pipeline/node-type-registry.js.map +1 -1
- package/dist/pipeline/node-type-sync.d.ts.map +1 -1
- package/dist/pipeline/node-type-sync.js +10 -0
- package/dist/pipeline/node-type-sync.js.map +1 -1
- package/dist/pipeline/orchestration-enforcer.d.ts.map +1 -1
- package/dist/pipeline/orchestration-enforcer.js +4 -3
- package/dist/pipeline/orchestration-enforcer.js.map +1 -1
- package/dist/pipeline/store.d.ts.map +1 -1
- package/dist/pipeline/store.js +8 -2
- package/dist/pipeline/store.js.map +1 -1
- package/dist/pipeline/types.d.ts +1 -1
- package/dist/pipeline/types.d.ts.map +1 -1
- package/dist/types/core-types.d.ts +1 -1
- package/dist/types/core-types.d.ts.map +1 -1
- package/dist/types/core-types.js +13 -1
- package/dist/types/core-types.js.map +1 -1
- package/dist/web/routes/node-types.d.ts.map +1 -1
- package/dist/web/routes/node-types.js +101 -0
- package/dist/web/routes/node-types.js.map +1 -1
- package/dist/web-static/assets/index-B0aR8OSd.js +76 -0
- package/dist/web-static/assets/index-B3HcDvcB.css +1 -0
- package/dist/web-static/index.html +2 -2
- package/package.json +1 -1
- package/dist/web-static/assets/index-3iTzJKjz.js +0 -76
- package/dist/web-static/assets/index-CEtt07F4.css +0 -1
|
@@ -39,6 +39,15 @@ export function registerNodeTypeRoutes(app) {
|
|
|
39
39
|
minToolCalls: nt.activity_threshold?.min_tool_calls,
|
|
40
40
|
stagnationStrategy: nt.activity_threshold?.stagnation_strategy,
|
|
41
41
|
},
|
|
42
|
+
expectedArtifacts: nt.expected_artifacts?.map(a => ({
|
|
43
|
+
type: a.type,
|
|
44
|
+
description: a.description,
|
|
45
|
+
pathPattern: a.path_pattern,
|
|
46
|
+
required: a.required,
|
|
47
|
+
minCount: a.min_count,
|
|
48
|
+
})) || [],
|
|
49
|
+
semanticValidation: nt.semantic_validation,
|
|
50
|
+
instructionSuffix: nt.instruction_suffix,
|
|
42
51
|
}));
|
|
43
52
|
res.json({ total: items.length, items });
|
|
44
53
|
}
|
|
@@ -72,11 +81,103 @@ export function registerNodeTypeRoutes(app) {
|
|
|
72
81
|
minToolCalls: nodeType.activity_threshold?.min_tool_calls,
|
|
73
82
|
stagnationStrategy: nodeType.activity_threshold?.stagnation_strategy,
|
|
74
83
|
},
|
|
84
|
+
expectedArtifacts: nodeType.expected_artifacts?.map(a => ({
|
|
85
|
+
type: a.type,
|
|
86
|
+
description: a.description,
|
|
87
|
+
pathPattern: a.path_pattern,
|
|
88
|
+
required: a.required,
|
|
89
|
+
minCount: a.min_count,
|
|
90
|
+
})) || [],
|
|
91
|
+
semanticValidation: nodeType.semantic_validation,
|
|
92
|
+
instructionSuffix: nodeType.instruction_suffix,
|
|
75
93
|
});
|
|
76
94
|
}
|
|
77
95
|
catch (err) {
|
|
78
96
|
handleError(err, res, 'node-type-detail');
|
|
79
97
|
}
|
|
80
98
|
});
|
|
99
|
+
// 创建自定义节点类型
|
|
100
|
+
app.post('/api/node-types', (req, res) => {
|
|
101
|
+
try {
|
|
102
|
+
const body = req.body;
|
|
103
|
+
const id = String(body.id || '').trim();
|
|
104
|
+
if (!id || !body.name) {
|
|
105
|
+
return res.status(400).json({ error: '缺少 id 或 name' });
|
|
106
|
+
}
|
|
107
|
+
if (registry.isBuiltin(id)) {
|
|
108
|
+
return res.status(400).json({ error: '不能覆盖内置节点类型' });
|
|
109
|
+
}
|
|
110
|
+
const nodeType = requestToNodeType(body);
|
|
111
|
+
registry.saveCustom(nodeType);
|
|
112
|
+
res.json({ success: true, id: nodeType.id });
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
handleError(err, res, 'node-type-create');
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
// 更新节点类型
|
|
119
|
+
app.put('/api/node-types/:id', (req, res) => {
|
|
120
|
+
try {
|
|
121
|
+
const id = Array.isArray(req.params.id) ? req.params.id[0] : req.params.id;
|
|
122
|
+
if (registry.isBuiltin(id)) {
|
|
123
|
+
return res.status(400).json({ error: '内置节点类型不可修改' });
|
|
124
|
+
}
|
|
125
|
+
const existing = registry.resolve(id);
|
|
126
|
+
if (!existing) {
|
|
127
|
+
return res.status(404).json({ error: '节点类型不存在' });
|
|
128
|
+
}
|
|
129
|
+
const body = req.body;
|
|
130
|
+
const nodeType = requestToNodeType({ ...body, id });
|
|
131
|
+
registry.saveCustom(nodeType);
|
|
132
|
+
res.json({ success: true });
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
handleError(err, res, 'node-type-update');
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
// 删除自定义节点类型
|
|
139
|
+
app.delete('/api/node-types/:id', (req, res) => {
|
|
140
|
+
try {
|
|
141
|
+
const id = Array.isArray(req.params.id) ? req.params.id[0] : req.params.id;
|
|
142
|
+
if (registry.isBuiltin(id)) {
|
|
143
|
+
return res.status(400).json({ error: '内置节点类型不可删除' });
|
|
144
|
+
}
|
|
145
|
+
const removed = registry.removeCustom(id);
|
|
146
|
+
if (!removed) {
|
|
147
|
+
return res.status(404).json({ error: '节点类型不存在或非自定义类型' });
|
|
148
|
+
}
|
|
149
|
+
res.json({ success: true });
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
handleError(err, res, 'node-type-delete');
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
function requestToNodeType(body) {
|
|
157
|
+
const artifacts = (body.expectedArtifacts || []).map(a => ({
|
|
158
|
+
type: String(a.type || 'document'),
|
|
159
|
+
description: String(a.description || ''),
|
|
160
|
+
path_pattern: a.pathPattern ? String(a.pathPattern) : undefined,
|
|
161
|
+
required: a.required !== false,
|
|
162
|
+
min_count: typeof a.minCount === 'number' ? a.minCount : 1,
|
|
163
|
+
}));
|
|
164
|
+
return {
|
|
165
|
+
id: String(body.id),
|
|
166
|
+
name: String(body.name || ''),
|
|
167
|
+
description: String(body.description || ''),
|
|
168
|
+
semantic_category: (String(body.semanticCategory || 'code')),
|
|
169
|
+
completion: {
|
|
170
|
+
explicit_signal: 'FORGE_NODE_DONE',
|
|
171
|
+
heuristic: { require_write: true },
|
|
172
|
+
},
|
|
173
|
+
activity_threshold: {
|
|
174
|
+
min_tool_calls: typeof body.minToolCalls === 'number' ? body.minToolCalls : 20,
|
|
175
|
+
stagnation_strategy: (String(body.stagnationStrategy || 'balanced')),
|
|
176
|
+
},
|
|
177
|
+
default_skills: Array.isArray(body.defaultSkills) ? body.defaultSkills.map(String) : [],
|
|
178
|
+
expected_artifacts: artifacts.length > 0 ? artifacts : undefined,
|
|
179
|
+
semantic_validation: body.semanticValidation,
|
|
180
|
+
instruction_suffix: body.instructionSuffix ? String(body.instructionSuffix) : undefined,
|
|
181
|
+
};
|
|
81
182
|
}
|
|
82
183
|
//# sourceMappingURL=node-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../src/web/routes/node-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAExE,WAAW;IACX,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,2CAA2C;YAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,WAAiC,CAAC;YAChE,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,iBAAiB,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,sBAAsB;gBACxB,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAChC,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,gBAAgB,EAAE,EAAE,CAAC,iBAAiB;gBACtC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpC,aAAa,EAAE,EAAE,CAAC,cAAc,IAAI,EAAE;gBACtC,UAAU,EAAE;oBACV,cAAc,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe;oBAC9C,YAAY,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa;oBACrD,QAAQ,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE;oBAClD,YAAY,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,IAAI,EAAE;iBAC5D;gBACD,iBAAiB,EAAE;oBACjB,YAAY,EAAE,EAAE,CAAC,kBAAkB,EAAE,cAAc;oBACnD,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,EAAE,mBAAmB;iBAC/D;
|
|
1
|
+
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../src/web/routes/node-types.ts"],"names":[],"mappings":"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"}
|