@pellux/goodvibes-sdk 0.33.20 → 0.33.22
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/browser-knowledge.d.ts +49 -0
- package/dist/browser-knowledge.d.ts.map +1 -1
- package/dist/browser-knowledge.js +22 -0
- package/dist/contracts/artifacts/operator-contract.json +4615 -4
- package/dist/events/agents.d.ts +11 -0
- package/dist/events/agents.d.ts.map +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/planner.d.ts +69 -1
- package/dist/events/planner.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-controller.d.ts +19 -0
- package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-controller.js +286 -22
- package/dist/platform/agents/wrfc-reporting.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-reporting.js +5 -1
- package/dist/platform/agents/wrfc-types.d.ts +1 -1
- package/dist/platform/agents/wrfc-types.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-knowledge.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-knowledge.js +154 -1
- package/dist/platform/control-plane/operator-contract-schemas-project-planning.d.ts +4 -0
- package/dist/platform/control-plane/operator-contract-schemas-project-planning.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-project-planning.js +78 -0
- package/dist/platform/core/orchestrator-turn-helpers.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-turn-helpers.js +27 -11
- package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-turn-loop.js +4 -1
- package/dist/platform/core/wrfc-routing.d.ts +5 -0
- package/dist/platform/core/wrfc-routing.d.ts.map +1 -0
- package/dist/platform/core/wrfc-routing.js +51 -0
- package/dist/platform/daemon/http/project-planning-routes.d.ts.map +1 -1
- package/dist/platform/daemon/http/project-planning-routes.js +67 -0
- package/dist/platform/knowledge/index.d.ts +1 -1
- package/dist/platform/knowledge/index.d.ts.map +1 -1
- package/dist/platform/knowledge/project-planning/helpers.d.ts +1 -1
- package/dist/platform/knowledge/project-planning/helpers.d.ts.map +1 -1
- package/dist/platform/knowledge/project-planning/helpers.js +4 -0
- package/dist/platform/knowledge/project-planning/index.d.ts +1 -1
- package/dist/platform/knowledge/project-planning/index.d.ts.map +1 -1
- package/dist/platform/knowledge/project-planning/service.d.ts +21 -1
- package/dist/platform/knowledge/project-planning/service.d.ts.map +1 -1
- package/dist/platform/knowledge/project-planning/service.js +502 -1
- package/dist/platform/knowledge/project-planning/types.d.ts +140 -0
- package/dist/platform/knowledge/project-planning/types.d.ts.map +1 -1
- package/dist/platform/runtime/emitters/agents.d.ts +11 -0
- package/dist/platform/runtime/emitters/agents.d.ts.map +1 -1
- package/dist/platform/runtime/emitters/planner.d.ts +22 -0
- package/dist/platform/runtime/emitters/planner.d.ts.map +1 -1
- package/dist/platform/runtime/emitters/planner.js +15 -0
- package/dist/platform/runtime/events/index.d.ts +1 -1
- package/dist/platform/runtime/events/index.d.ts.map +1 -1
- package/dist/platform/runtime/services.d.ts.map +1 -1
- package/dist/platform/runtime/services.js +2 -0
- package/dist/platform/runtime/store/domains/agents.d.ts +3 -1
- package/dist/platform/runtime/store/domains/agents.d.ts.map +1 -1
- package/dist/platform/runtime/store/helpers/reducers/lifecycle.d.ts.map +1 -1
- package/dist/platform/runtime/store/helpers/reducers/lifecycle.js +25 -6
- package/dist/platform/tools/agent/index.d.ts.map +1 -1
- package/dist/platform/tools/agent/index.js +131 -64
- package/dist/platform/tools/agent/manager.d.ts +1 -0
- package/dist/platform/tools/agent/manager.d.ts.map +1 -1
- package/dist/platform/tools/agent/manager.js +36 -7
- package/dist/platform/tools/agent/schema.d.ts.map +1 -1
- package/dist/platform/tools/agent/schema.js +7 -6
- package/dist/platform/version.js +1 -1
- package/package.json +9 -9
|
@@ -8,7 +8,7 @@ import { AgentWorktree } from './worktree.js';
|
|
|
8
8
|
import { completePlanItemsForAgent } from './wrfc-plan-sync.js';
|
|
9
9
|
import { logger } from '../utils/logger.js';
|
|
10
10
|
import { summarizeError } from '../utils/error-display.js';
|
|
11
|
-
import { emitAgentCompleted, emitAgentFailed, emitWorkflowChainFailed, emitWorkflowFixAttempted, emitWorkflowReviewCompleted, } from '../runtime/emitters/index.js';
|
|
11
|
+
import { emitAgentCompleted, emitAgentFailed, emitAgentProgress, emitAgentRunning, emitWorkflowChainFailed, emitWorkflowFixAttempted, emitWorkflowReviewCompleted, } from '../runtime/emitters/index.js';
|
|
12
12
|
import { getWrfcAutoCommit, getWrfcMaxFixAttempts, getWrfcScoreThreshold, } from './wrfc-config.js';
|
|
13
13
|
import { buildEngineerConstraintAddendum, } from './wrfc-prompt-addenda.js';
|
|
14
14
|
import { completeWrfcOrchestrationNode, createWrfcWorkflowContext, emitWrfcAutoCommitted, emitWrfcCascadeAbort, emitWrfcChainCreated, emitWrfcChainPassed, emitWrfcConstraintsEnumerated, emitWrfcGraphCreated, emitWrfcStateChanged, failWrfcOrchestrationNode, startWrfcOrchestrationNode, } from './wrfc-runtime-events.js';
|
|
@@ -40,6 +40,8 @@ export class WrfcController {
|
|
|
40
40
|
configManager;
|
|
41
41
|
createWorktree;
|
|
42
42
|
selectChildRoute;
|
|
43
|
+
workPlanService = null;
|
|
44
|
+
workPlanTaskQueues = new Map();
|
|
43
45
|
constructor(runtimeBus, messageBus, deps) {
|
|
44
46
|
this.runtimeBus = runtimeBus;
|
|
45
47
|
this.messageBus = messageBus;
|
|
@@ -86,6 +88,9 @@ export class WrfcController {
|
|
|
86
88
|
this.runtimeBus = runtimeBus;
|
|
87
89
|
this.setupListeners();
|
|
88
90
|
}
|
|
91
|
+
setWorkPlanService(service) {
|
|
92
|
+
this.workPlanService = service ?? null;
|
|
93
|
+
}
|
|
89
94
|
getChain(chainId) { return this.chains.get(chainId) ?? null; }
|
|
90
95
|
listChains() { return Array.from(this.chains.values()); }
|
|
91
96
|
resumeChain(chainId) {
|
|
@@ -138,9 +143,86 @@ export class WrfcController {
|
|
|
138
143
|
}
|
|
139
144
|
const from = chain.state;
|
|
140
145
|
chain.state = to;
|
|
146
|
+
if (to !== 'passed' && to !== 'failed') {
|
|
147
|
+
this.keepOwnerAgentActive(chain);
|
|
148
|
+
}
|
|
141
149
|
emitWrfcStateChanged(this.runtimeBus, this.sessionId, chain.id, from, to);
|
|
142
150
|
logger.debug('WrfcController.transition', { chainId: chain.id, from, to });
|
|
143
151
|
}
|
|
152
|
+
applyWrfcAgentMetadata(chain, record, role) {
|
|
153
|
+
record.wrfcId = chain.id;
|
|
154
|
+
record.wrfcRole = role;
|
|
155
|
+
record.wrfcPhaseOrder = this.wrfcPhaseOrder(role);
|
|
156
|
+
if (role === 'owner') {
|
|
157
|
+
record.progress = this.ownerProgress(chain);
|
|
158
|
+
}
|
|
159
|
+
if (record.status === 'pending' || record.status === 'running') {
|
|
160
|
+
emitAgentProgress(this.runtimeBus, {
|
|
161
|
+
sessionId: this.sessionId,
|
|
162
|
+
traceId: `${this.sessionId}:wrfc-agent-metadata:${record.id}`,
|
|
163
|
+
source: 'wrfc-controller',
|
|
164
|
+
agentId: record.id,
|
|
165
|
+
}, {
|
|
166
|
+
agentId: record.id,
|
|
167
|
+
progress: record.progress ?? `WRFC ${role} phase`,
|
|
168
|
+
...(record.parentAgentId ? { parentAgentId: record.parentAgentId } : {}),
|
|
169
|
+
wrfcId: chain.id,
|
|
170
|
+
wrfcRole: role,
|
|
171
|
+
wrfcPhaseOrder: record.wrfcPhaseOrder,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
keepOwnerAgentActive(chain, reason) {
|
|
176
|
+
if (chain.ownerTerminalEmitted || chain.state === 'passed' || chain.state === 'failed')
|
|
177
|
+
return;
|
|
178
|
+
const owner = this.agentManager.getStatus(chain.ownerAgentId);
|
|
179
|
+
if (!owner)
|
|
180
|
+
return;
|
|
181
|
+
this.applyWrfcAgentMetadata(chain, owner, 'owner');
|
|
182
|
+
owner.status = 'running';
|
|
183
|
+
delete owner.completedAt;
|
|
184
|
+
owner.progress = reason ? `${this.ownerProgress(chain)} - ${reason}` : this.ownerProgress(chain);
|
|
185
|
+
emitAgentRunning(this.runtimeBus, {
|
|
186
|
+
sessionId: this.sessionId,
|
|
187
|
+
traceId: `${this.sessionId}:wrfc-owner-active:${chain.id}`,
|
|
188
|
+
source: 'wrfc-controller',
|
|
189
|
+
agentId: owner.id,
|
|
190
|
+
}, {
|
|
191
|
+
agentId: owner.id,
|
|
192
|
+
wrfcId: chain.id,
|
|
193
|
+
wrfcRole: 'owner',
|
|
194
|
+
wrfcPhaseOrder: owner.wrfcPhaseOrder,
|
|
195
|
+
});
|
|
196
|
+
emitAgentProgress(this.runtimeBus, {
|
|
197
|
+
sessionId: this.sessionId,
|
|
198
|
+
traceId: `${this.sessionId}:wrfc-owner-progress:${chain.id}`,
|
|
199
|
+
source: 'wrfc-controller',
|
|
200
|
+
agentId: owner.id,
|
|
201
|
+
}, {
|
|
202
|
+
agentId: owner.id,
|
|
203
|
+
progress: owner.progress,
|
|
204
|
+
wrfcId: chain.id,
|
|
205
|
+
wrfcRole: 'owner',
|
|
206
|
+
wrfcPhaseOrder: owner.wrfcPhaseOrder,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
ownerProgress(chain) {
|
|
210
|
+
return `WRFC owner supervising child agents (${chain.state})`;
|
|
211
|
+
}
|
|
212
|
+
wrfcPhaseOrder(role) {
|
|
213
|
+
switch (role) {
|
|
214
|
+
case 'owner':
|
|
215
|
+
return 0;
|
|
216
|
+
case 'engineer':
|
|
217
|
+
return 1;
|
|
218
|
+
case 'reviewer':
|
|
219
|
+
return 2;
|
|
220
|
+
case 'fixer':
|
|
221
|
+
return 3;
|
|
222
|
+
case 'verifier':
|
|
223
|
+
return 4;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
144
226
|
setupListeners() {
|
|
145
227
|
const unsubComplete = this.runtimeBus.on('AGENT_COMPLETED', ({ payload }) => {
|
|
146
228
|
this.onAgentComplete(payload.agentId).catch((error) => {
|
|
@@ -165,7 +247,13 @@ export class WrfcController {
|
|
|
165
247
|
if (agentId === chain.ownerAgentId) {
|
|
166
248
|
if (chain.ownerTerminalEmitted)
|
|
167
249
|
return;
|
|
168
|
-
this.
|
|
250
|
+
this.keepOwnerAgentActive(chain, 'Ignored premature owner completion event; WRFC lifecycle is still active');
|
|
251
|
+
this.appendOwnerDecision(chain, 'owner_completion_ignored', 'Ignored premature owner completion because WRFC owner remains active until the full chain is terminal', { agentId });
|
|
252
|
+
logger.warn('WrfcController: ignored premature owner completion before terminal chain state', {
|
|
253
|
+
chainId: chain.id,
|
|
254
|
+
agentId,
|
|
255
|
+
state: chain.state,
|
|
256
|
+
});
|
|
169
257
|
return;
|
|
170
258
|
}
|
|
171
259
|
const record = this.agentManager.getStatus(agentId);
|
|
@@ -186,12 +274,14 @@ export class WrfcController {
|
|
|
186
274
|
}
|
|
187
275
|
if (chain.state === 'engineering' || chain.state === 'fixing') {
|
|
188
276
|
const report = parseEngineerCompletionReport(rawOutput, record?.template);
|
|
277
|
+
this.setWrfcWorkPlanTaskStatus(chain, agentId, 'done');
|
|
189
278
|
this.handleEngineerCompletion(chain, agentId, report);
|
|
190
279
|
}
|
|
191
280
|
else if (chain.state === 'reviewing') {
|
|
192
281
|
const review = parseReviewerCompletionReport(chain.id, rawOutput, getWrfcScoreThreshold(this.configManager));
|
|
193
282
|
chain.reviewerReport = review;
|
|
194
283
|
chain.reviewCycles += 1;
|
|
284
|
+
this.setWrfcWorkPlanTaskStatus(chain, agentId, 'done');
|
|
195
285
|
await this.processReview(chain, review);
|
|
196
286
|
}
|
|
197
287
|
if (this.planManager) {
|
|
@@ -208,6 +298,20 @@ export class WrfcController {
|
|
|
208
298
|
return;
|
|
209
299
|
if (agentId === chain.ownerAgentId && (chain.state === 'passed' || chain.state === 'failed'))
|
|
210
300
|
return;
|
|
301
|
+
if (agentId === chain.ownerAgentId) {
|
|
302
|
+
this.keepOwnerAgentActive(chain, 'Ignored premature owner failure event; WRFC lifecycle is still active');
|
|
303
|
+
this.appendOwnerDecision(chain, 'owner_failure_ignored', errorMessage
|
|
304
|
+
? `Ignored premature owner failure before terminal chain state: ${errorMessage}`
|
|
305
|
+
: 'Ignored premature owner failure before terminal chain state', { agentId });
|
|
306
|
+
logger.warn('WrfcController: ignored premature owner failure before terminal chain state', {
|
|
307
|
+
chainId: chain.id,
|
|
308
|
+
agentId,
|
|
309
|
+
state: chain.state,
|
|
310
|
+
error: errorMessage,
|
|
311
|
+
});
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
this.setWrfcWorkPlanTaskStatus(chain, agentId, 'failed', errorMessage ?? `Agent ${agentId} failed`);
|
|
211
315
|
this.failChain(chain, errorMessage ?? `Agent ${agentId} failed`);
|
|
212
316
|
}
|
|
213
317
|
onAgentCancelled(agentId, reason) {
|
|
@@ -215,9 +319,11 @@ export class WrfcController {
|
|
|
215
319
|
if (!chain || chain.state === 'passed' || chain.state === 'failed')
|
|
216
320
|
return;
|
|
217
321
|
if (agentId === chain.ownerAgentId) {
|
|
322
|
+
this.setWrfcWorkPlanTaskStatus(chain, agentId, 'cancelled', reason ?? 'WRFC owner agent cancelled');
|
|
218
323
|
this.cancelChain(chain, reason ?? 'WRFC owner agent cancelled');
|
|
219
324
|
return;
|
|
220
325
|
}
|
|
326
|
+
this.setWrfcWorkPlanTaskStatus(chain, agentId, 'cancelled', reason ?? `Agent ${agentId} cancelled`);
|
|
221
327
|
this.failChain(chain, reason ?? `Agent ${agentId} cancelled`);
|
|
222
328
|
}
|
|
223
329
|
startReview(chain, report) {
|
|
@@ -236,9 +342,8 @@ export class WrfcController {
|
|
|
236
342
|
}
|
|
237
343
|
const reviewerRecord = this.spawnWrfcAgent(chain, 'reviewer', 'reviewer', reviewTask, true);
|
|
238
344
|
chain.reviewerAgentId = reviewerRecord.id;
|
|
239
|
-
|
|
345
|
+
this.applyWrfcAgentMetadata(chain, reviewerRecord, 'reviewer');
|
|
240
346
|
chain.allAgentIds.push(reviewerRecord.id);
|
|
241
|
-
reviewerRecord.wrfcId = chain.id;
|
|
242
347
|
this.messageBus.registerAgent({
|
|
243
348
|
agentId: reviewerRecord.id,
|
|
244
349
|
role: 'reviewer',
|
|
@@ -254,6 +359,7 @@ export class WrfcController {
|
|
|
254
359
|
role: 'reviewer',
|
|
255
360
|
record: reviewerRecord,
|
|
256
361
|
});
|
|
362
|
+
this.upsertWrfcWorkPlanTask(chain, 'reviewer', reviewerRecord, 'in_progress');
|
|
257
363
|
}
|
|
258
364
|
async processReview(chain, review) {
|
|
259
365
|
const threshold = getWrfcScoreThreshold(this.configManager);
|
|
@@ -353,9 +459,8 @@ export class WrfcController {
|
|
|
353
459
|
});
|
|
354
460
|
const fixerRecord = this.spawnWrfcAgent(chain, 'fixer', 'engineer', buildFixTask(chain.id, chain.task, review, getWrfcScoreThreshold(this.configManager), chain.fixAttempts, chain.constraints, review.constraintFindings ?? []), true);
|
|
355
461
|
chain.fixerAgentId = fixerRecord.id;
|
|
356
|
-
|
|
462
|
+
this.applyWrfcAgentMetadata(chain, fixerRecord, 'fixer');
|
|
357
463
|
chain.allAgentIds.push(fixerRecord.id);
|
|
358
|
-
fixerRecord.wrfcId = chain.id;
|
|
359
464
|
this.messageBus.registerAgent({
|
|
360
465
|
agentId: fixerRecord.id,
|
|
361
466
|
role: 'fixer',
|
|
@@ -379,6 +484,7 @@ export class WrfcController {
|
|
|
379
484
|
role: 'fixer',
|
|
380
485
|
record: fixerRecord,
|
|
381
486
|
});
|
|
487
|
+
this.upsertWrfcWorkPlanTask(chain, 'fixer', fixerRecord, 'in_progress');
|
|
382
488
|
}
|
|
383
489
|
async runGates(chain) {
|
|
384
490
|
this.transition(chain, 'gating');
|
|
@@ -489,10 +595,9 @@ export class WrfcController {
|
|
|
489
595
|
});
|
|
490
596
|
const gateFixTask = buildGateFailureTask(chain.id, chain.task, failedGates, chain.constraints);
|
|
491
597
|
const fixerRecord = this.spawnWrfcAgent(chain, 'fixer', 'engineer', gateFixTask, true);
|
|
492
|
-
|
|
598
|
+
this.applyWrfcAgentMetadata(chain, fixerRecord, 'fixer');
|
|
493
599
|
chain.fixerAgentId = fixerRecord.id;
|
|
494
600
|
chain.allAgentIds.push(fixerRecord.id);
|
|
495
|
-
fixerRecord.wrfcId = chain.id;
|
|
496
601
|
this.messageBus.registerAgent({
|
|
497
602
|
agentId: fixerRecord.id,
|
|
498
603
|
role: 'fixer',
|
|
@@ -516,6 +621,7 @@ export class WrfcController {
|
|
|
516
621
|
role: 'fixer',
|
|
517
622
|
record: fixerRecord,
|
|
518
623
|
});
|
|
624
|
+
this.upsertWrfcWorkPlanTask(chain, 'fixer', fixerRecord, 'in_progress');
|
|
519
625
|
}
|
|
520
626
|
scheduleChainCleanup(chain) {
|
|
521
627
|
const timer = setTimeout(() => {
|
|
@@ -608,6 +714,7 @@ export class WrfcController {
|
|
|
608
714
|
}
|
|
609
715
|
chain.error = reason;
|
|
610
716
|
chain.completedAt = Date.now();
|
|
717
|
+
this.setWrfcWorkPlanTaskStatus(chain, chain.ownerAgentId, 'failed', reason);
|
|
611
718
|
this.cancelRunningChildren(chain);
|
|
612
719
|
this.appendOwnerDecision(chain, 'chain_failed', reason, {
|
|
613
720
|
agentId: chain.ownerAgentId,
|
|
@@ -655,6 +762,7 @@ export class WrfcController {
|
|
|
655
762
|
chain.error = reason;
|
|
656
763
|
chain.completedAt = Date.now();
|
|
657
764
|
chain.ownerTerminalEmitted = true;
|
|
765
|
+
this.setWrfcWorkPlanTaskStatus(chain, chain.ownerAgentId, 'cancelled', reason);
|
|
658
766
|
this.appendOwnerDecision(chain, 'chain_cancelled', reason, {
|
|
659
767
|
agentId: chain.ownerAgentId,
|
|
660
768
|
});
|
|
@@ -764,9 +872,8 @@ export class WrfcController {
|
|
|
764
872
|
};
|
|
765
873
|
this.chains.set(chain.id, chain);
|
|
766
874
|
emitWrfcGraphCreated(this.runtimeBus, this.sessionId, chain.id, `WRFC: ${ownerRecord.task}`);
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
ownerRecord.progress = 'WRFC owner supervising child agents';
|
|
875
|
+
this.applyWrfcAgentMetadata(chain, ownerRecord, 'owner');
|
|
876
|
+
this.keepOwnerAgentActive(chain);
|
|
770
877
|
this.messageBus.registerAgent({
|
|
771
878
|
agentId: ownerRecord.id,
|
|
772
879
|
template: ownerRecord.template,
|
|
@@ -775,16 +882,17 @@ export class WrfcController {
|
|
|
775
882
|
this.appendOwnerDecision(chain, 'chain_created', 'WRFC owner created for original ask', {
|
|
776
883
|
agentId: ownerRecord.id,
|
|
777
884
|
});
|
|
885
|
+
this.upsertWrfcWorkPlanTask(chain, 'owner', ownerRecord, 'pending');
|
|
778
886
|
return chain;
|
|
779
887
|
}
|
|
780
888
|
startEngineeringChain(chain, emitCreated) {
|
|
781
889
|
this.activeChainCount += 1;
|
|
782
890
|
this.transition(chain, 'engineering');
|
|
891
|
+
this.setWrfcWorkPlanTaskStatus(chain, chain.ownerAgentId, 'in_progress');
|
|
783
892
|
const engineerRecord = this.spawnWrfcAgent(chain, 'engineer', 'engineer', chain.task, true);
|
|
784
|
-
|
|
893
|
+
this.applyWrfcAgentMetadata(chain, engineerRecord, 'engineer');
|
|
785
894
|
chain.engineerAgentId = engineerRecord.id;
|
|
786
895
|
chain.allAgentIds.push(engineerRecord.id);
|
|
787
|
-
engineerRecord.wrfcId = chain.id;
|
|
788
896
|
this.messageBus.registerAgent({
|
|
789
897
|
agentId: engineerRecord.id,
|
|
790
898
|
role: 'engineer',
|
|
@@ -799,8 +907,10 @@ export class WrfcController {
|
|
|
799
907
|
role: 'engineer',
|
|
800
908
|
record: engineerRecord,
|
|
801
909
|
});
|
|
910
|
+
this.upsertWrfcWorkPlanTask(chain, 'engineer', engineerRecord, 'in_progress');
|
|
802
911
|
}
|
|
803
912
|
handleEngineerCompletion(chain, agentId, report) {
|
|
913
|
+
let reportForReview = report;
|
|
804
914
|
this.completeCurrentNode(chain, report.summary);
|
|
805
915
|
if (chain.state === 'engineering') {
|
|
806
916
|
chain.engineerReport = report;
|
|
@@ -829,16 +939,39 @@ export class WrfcController {
|
|
|
829
939
|
// Fixer continuity validation: verify the fixer returned the same constraint id-set.
|
|
830
940
|
// If it diverged, inject a synthetic critical issue for the next review pass.
|
|
831
941
|
const fixerConstraints = isEngineerReportShape(report) ? (report.constraints ?? []) : [];
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
942
|
+
if (isEngineerReportShape(report)) {
|
|
943
|
+
reportForReview = this.canonicalizeFixerReportConstraints(report, chain.constraints);
|
|
944
|
+
}
|
|
945
|
+
if (chain.constraints.length === 0) {
|
|
946
|
+
if (fixerConstraints.length > 0) {
|
|
947
|
+
logger.warn('WrfcController: ignored fixer-invented constraints for unconstrained chain', {
|
|
948
|
+
chainId: chain.id,
|
|
949
|
+
extra: fixerConstraints.map((constraint) => constraint.id),
|
|
950
|
+
});
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
else if (isEngineerReportShape(report)) {
|
|
954
|
+
const expectedIds = new Set(chain.constraints.map((c) => c.id));
|
|
955
|
+
const actualIds = new Set(fixerConstraints.map((c) => c.id));
|
|
956
|
+
const missing = [...expectedIds].filter((id) => !actualIds.has(id));
|
|
957
|
+
const extra = [...actualIds].filter((id) => !expectedIds.has(id));
|
|
958
|
+
if (missing.length > 0 || extra.length > 0) {
|
|
959
|
+
const description = `Fixer regressed constraint continuity: missing=[${missing.join(',')}] extra=[${extra.join(',')}]`;
|
|
960
|
+
logger.warn('WrfcController: fixer constraint-continuity violation', {
|
|
961
|
+
chainId: chain.id,
|
|
962
|
+
missing,
|
|
963
|
+
extra,
|
|
964
|
+
});
|
|
965
|
+
chain.syntheticIssues ??= [];
|
|
966
|
+
chain.syntheticIssues.push({ severity: 'critical', description });
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
else {
|
|
970
|
+
const description = `Fixer regressed constraint continuity: missing=[${chain.constraints.map((c) => c.id).join(',')}] extra=[]`;
|
|
838
971
|
logger.warn('WrfcController: fixer constraint-continuity violation', {
|
|
839
972
|
chainId: chain.id,
|
|
840
|
-
missing,
|
|
841
|
-
extra,
|
|
973
|
+
missing: chain.constraints.map((constraint) => constraint.id),
|
|
974
|
+
extra: [],
|
|
842
975
|
});
|
|
843
976
|
chain.syntheticIssues ??= [];
|
|
844
977
|
chain.syntheticIssues.push({ severity: 'critical', description });
|
|
@@ -846,7 +979,23 @@ export class WrfcController {
|
|
|
846
979
|
// The authoritative constraint list is NOT overwritten — chain.constraints remains the
|
|
847
980
|
// original enumeration from the initial engineer turn.
|
|
848
981
|
}
|
|
849
|
-
this.startReview(chain,
|
|
982
|
+
this.startReview(chain, reportForReview);
|
|
983
|
+
}
|
|
984
|
+
canonicalizeFixerReportConstraints(report, constraints) {
|
|
985
|
+
const canonical = {
|
|
986
|
+
...report,
|
|
987
|
+
constraints: constraints.map((constraint) => ({ ...constraint })),
|
|
988
|
+
};
|
|
989
|
+
const { reviewableOutput: _ignored, ...jsonReport } = canonical;
|
|
990
|
+
canonical.reviewableOutput = [
|
|
991
|
+
'Controller-canonicalized EngineerReport for WRFC review.',
|
|
992
|
+
'The constraint list below is the authoritative chain constraint list; fixer-invented or renamed constraints were not forwarded to the reviewer.',
|
|
993
|
+
'',
|
|
994
|
+
'```json',
|
|
995
|
+
JSON.stringify(jsonReport, null, 2),
|
|
996
|
+
'```',
|
|
997
|
+
].join('\n');
|
|
998
|
+
return canonical;
|
|
850
999
|
}
|
|
851
1000
|
spawnWrfcAgent(chain, role, template, task, dangerouslyDisableWrfc) {
|
|
852
1001
|
const owner = this.agentManager.getStatus(chain.ownerAgentId);
|
|
@@ -885,6 +1034,7 @@ export class WrfcController {
|
|
|
885
1034
|
this.appendOwnerDecision(chain, 'chain_passed', 'WRFC full-scope review and quality gates passed', {
|
|
886
1035
|
agentId: chain.ownerAgentId,
|
|
887
1036
|
});
|
|
1037
|
+
this.setWrfcWorkPlanTaskStatus(chain, chain.ownerAgentId, 'done', 'WRFC full-scope review and quality gates passed');
|
|
888
1038
|
this.completeOwnerAgent(chain, 'completed', `WRFC chain ${chain.id} passed`);
|
|
889
1039
|
emitWrfcChainPassed(this.runtimeBus, this.sessionId, chain.id);
|
|
890
1040
|
this.scheduleChainCleanup(chain);
|
|
@@ -896,6 +1046,7 @@ export class WrfcController {
|
|
|
896
1046
|
const owner = this.agentManager.getStatus(chain.ownerAgentId);
|
|
897
1047
|
if (!owner)
|
|
898
1048
|
return;
|
|
1049
|
+
this.applyWrfcAgentMetadata(chain, owner, 'owner');
|
|
899
1050
|
owner.status = status;
|
|
900
1051
|
owner.completedAt = Date.now();
|
|
901
1052
|
owner.progress = message;
|
|
@@ -924,6 +1075,119 @@ export class WrfcController {
|
|
|
924
1075
|
});
|
|
925
1076
|
}
|
|
926
1077
|
}
|
|
1078
|
+
upsertWrfcWorkPlanTask(chain, role, record, status) {
|
|
1079
|
+
if (!this.workPlanService)
|
|
1080
|
+
return;
|
|
1081
|
+
const taskId = this.workPlanTaskIdForAgent(chain, record.id, role);
|
|
1082
|
+
const task = {
|
|
1083
|
+
taskId,
|
|
1084
|
+
title: this.workPlanTaskTitle(role, chain.task),
|
|
1085
|
+
notes: role === 'owner'
|
|
1086
|
+
? 'WRFC owner chain supervising lifecycle child agents.'
|
|
1087
|
+
: `WRFC ${role} phase for the owner chain.`,
|
|
1088
|
+
owner: role,
|
|
1089
|
+
status,
|
|
1090
|
+
source: 'wrfc',
|
|
1091
|
+
chainId: chain.id,
|
|
1092
|
+
phaseId: role,
|
|
1093
|
+
agentId: record.id,
|
|
1094
|
+
originSurface: 'daemon',
|
|
1095
|
+
tags: ['wrfc', role],
|
|
1096
|
+
parentTaskId: role === 'owner' ? undefined : this.workPlanTaskIdForAgent(chain, chain.ownerAgentId, 'owner'),
|
|
1097
|
+
metadata: {
|
|
1098
|
+
wrfcState: chain.state,
|
|
1099
|
+
agentTemplate: record.template,
|
|
1100
|
+
},
|
|
1101
|
+
};
|
|
1102
|
+
this.enqueueWrfcWorkPlanTaskOperation(taskId, async () => {
|
|
1103
|
+
try {
|
|
1104
|
+
await this.workPlanService?.createWorkPlanTask({ task });
|
|
1105
|
+
}
|
|
1106
|
+
catch (error) {
|
|
1107
|
+
if (!(error instanceof Error) || !error.message.includes('already exists'))
|
|
1108
|
+
throw error;
|
|
1109
|
+
await this.workPlanService?.updateWorkPlanTask({
|
|
1110
|
+
taskId,
|
|
1111
|
+
patch: {
|
|
1112
|
+
...task,
|
|
1113
|
+
taskId: undefined,
|
|
1114
|
+
},
|
|
1115
|
+
});
|
|
1116
|
+
}
|
|
1117
|
+
}, {
|
|
1118
|
+
chainId: chain.id,
|
|
1119
|
+
agentId: record.id,
|
|
1120
|
+
role,
|
|
1121
|
+
action: 'upsert',
|
|
1122
|
+
});
|
|
1123
|
+
}
|
|
1124
|
+
setWrfcWorkPlanTaskStatus(chain, agentId, status, reason) {
|
|
1125
|
+
if (!this.workPlanService)
|
|
1126
|
+
return;
|
|
1127
|
+
const role = this.workPlanRoleForAgent(chain, agentId);
|
|
1128
|
+
if (!role)
|
|
1129
|
+
return;
|
|
1130
|
+
const taskId = this.workPlanTaskIdForAgent(chain, agentId, role);
|
|
1131
|
+
this.enqueueWrfcWorkPlanTaskOperation(taskId, async () => {
|
|
1132
|
+
await this.workPlanService?.updateWorkPlanTask({
|
|
1133
|
+
taskId,
|
|
1134
|
+
patch: {
|
|
1135
|
+
status,
|
|
1136
|
+
metadata: {
|
|
1137
|
+
wrfcState: chain.state,
|
|
1138
|
+
...(reason ? { statusReason: reason } : {}),
|
|
1139
|
+
},
|
|
1140
|
+
},
|
|
1141
|
+
});
|
|
1142
|
+
}, {
|
|
1143
|
+
chainId: chain.id,
|
|
1144
|
+
agentId,
|
|
1145
|
+
role,
|
|
1146
|
+
action: 'status',
|
|
1147
|
+
});
|
|
1148
|
+
}
|
|
1149
|
+
enqueueWrfcWorkPlanTaskOperation(taskId, operation, context) {
|
|
1150
|
+
const previous = this.workPlanTaskQueues.get(taskId) ?? Promise.resolve();
|
|
1151
|
+
let next;
|
|
1152
|
+
next = previous
|
|
1153
|
+
.catch(() => undefined)
|
|
1154
|
+
.then(operation)
|
|
1155
|
+
.catch((error) => {
|
|
1156
|
+
logger.warn('WrfcController: failed to sync work-plan task', {
|
|
1157
|
+
chainId: context.chainId,
|
|
1158
|
+
agentId: context.agentId,
|
|
1159
|
+
role: context.role,
|
|
1160
|
+
action: context.action,
|
|
1161
|
+
error: summarizeError(error),
|
|
1162
|
+
});
|
|
1163
|
+
})
|
|
1164
|
+
.finally(() => {
|
|
1165
|
+
if (this.workPlanTaskQueues.get(taskId) === next) {
|
|
1166
|
+
this.workPlanTaskQueues.delete(taskId);
|
|
1167
|
+
}
|
|
1168
|
+
});
|
|
1169
|
+
this.workPlanTaskQueues.set(taskId, next);
|
|
1170
|
+
}
|
|
1171
|
+
workPlanRoleForAgent(chain, agentId) {
|
|
1172
|
+
if (agentId === chain.ownerAgentId)
|
|
1173
|
+
return 'owner';
|
|
1174
|
+
if (agentId === chain.engineerAgentId)
|
|
1175
|
+
return 'engineer';
|
|
1176
|
+
if (agentId === chain.reviewerAgentId)
|
|
1177
|
+
return 'reviewer';
|
|
1178
|
+
if (agentId === chain.fixerAgentId)
|
|
1179
|
+
return 'fixer';
|
|
1180
|
+
return null;
|
|
1181
|
+
}
|
|
1182
|
+
workPlanTaskIdForAgent(chain, agentId, role) {
|
|
1183
|
+
return `wrfc-${chain.id}-${role}-${agentId}`;
|
|
1184
|
+
}
|
|
1185
|
+
workPlanTaskTitle(role, task) {
|
|
1186
|
+
const label = role === 'owner'
|
|
1187
|
+
? 'WRFC owner'
|
|
1188
|
+
: role.charAt(0).toUpperCase() + role.slice(1);
|
|
1189
|
+
return `${label}: ${task.slice(0, 120)}`;
|
|
1190
|
+
}
|
|
927
1191
|
safeDequeueNext() {
|
|
928
1192
|
this.dequeueNext().catch((error) => {
|
|
929
1193
|
logger.error('WrfcController.dequeueNext unhandled error', { error: summarizeError(error) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrfc-reporting.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/wrfc-reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAkB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG9H,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAQzD,KAAK,0BAA0B,GAAG,gBAAgB,GAAG;IACnD,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBhE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAK7F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAa5E;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAkB/G;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,cAAc,CA6BhB;AAID,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,0BAA0B,EAClC,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,UAAU,EAAO,GAC7B,MAAM,CAuDR;AAiGD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,UAAU,EAAO,EAC9B,kBAAkB,GAAE,iBAAiB,EAAO,GAC3C,MAAM,
|
|
1
|
+
{"version":3,"file":"wrfc-reporting.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/wrfc-reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAkB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG9H,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAQzD,KAAK,0BAA0B,GAAG,gBAAgB,GAAG;IACnD,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBhE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAK7F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAa5E;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAkB/G;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,cAAc,CA6BhB;AAID,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,0BAA0B,EAClC,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,UAAU,EAAO,GAC7B,MAAM,CAuDR;AAiGD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,UAAU,EAAO,EAC9B,kBAAkB,GAAE,iBAAiB,EAAO,GAC3C,MAAM,CAiER;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,SAAS,iBAAiB,EAAE,EACzC,WAAW,GAAE,SAAS,UAAU,EAAO,GACtC,MAAM,CAuCR"}
|
|
@@ -266,7 +266,11 @@ export function buildFixTask(chainId, originalTask, review, threshold, fixAttemp
|
|
|
266
266
|
`6. Return a structured EngineerReport JSON block including gatheredContext, plannedActions, and appliedChanges in your final response.`,
|
|
267
267
|
].join('\n');
|
|
268
268
|
if (constraints.length === 0) {
|
|
269
|
-
return
|
|
269
|
+
return [
|
|
270
|
+
base,
|
|
271
|
+
``,
|
|
272
|
+
`Constraint continuity: the initial engineer declared no user-declared constraints for this chain. Return "constraints": [] in your EngineerReport. Do not invent constraint ids from the review findings, implementation details, or quality rubric.`,
|
|
273
|
+
].join('\n');
|
|
270
274
|
}
|
|
271
275
|
// Build a finding-lookup map: constraintId -> ConstraintFinding
|
|
272
276
|
const findingMap = new Map();
|
|
@@ -9,7 +9,7 @@ export interface QueuedChain {
|
|
|
9
9
|
export type WrfcState = 'pending' | 'engineering' | 'reviewing' | 'fixing' | 'awaiting_gates' | 'gating' | 'passed' | 'failed' | 'committing';
|
|
10
10
|
/** Agent role within a WRFC chain. The owner is the durable chain orchestrator. */
|
|
11
11
|
export type WrfcAgentRole = 'owner' | 'engineer' | 'reviewer' | 'fixer' | 'verifier';
|
|
12
|
-
export type WrfcOwnerDecisionAction = 'chain_created' | 'spawn_engineer' | 'spawn_reviewer' | 'spawn_fixer' | 'spawn_gate_fixer' | 'review_passed' | 'review_failed' | 'gate_passed' | 'gate_failed' | 'chain_passed' | 'chain_failed' | 'chain_cancelled' | 'resume_skipped' | 'resume_started';
|
|
12
|
+
export type WrfcOwnerDecisionAction = 'chain_created' | 'spawn_engineer' | 'spawn_reviewer' | 'spawn_fixer' | 'spawn_gate_fixer' | 'review_passed' | 'review_failed' | 'gate_passed' | 'gate_failed' | 'chain_passed' | 'chain_failed' | 'chain_cancelled' | 'owner_completion_ignored' | 'owner_failure_ignored' | 'resume_skipped' | 'resume_started';
|
|
13
13
|
export interface WrfcOwnerDecision {
|
|
14
14
|
id: string;
|
|
15
15
|
ts: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrfc-types.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/wrfc-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wrfc-types.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/wrfc-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method-catalog-knowledge.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/method-catalog-knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"method-catalog-knowledge.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/method-catalog-knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAqE1E,eAAO,MAAM,wCAAwC,EAAE,SAAS,uBAAuB,EA43BtF,CAAC"}
|