agentic-qe 2.7.1 → 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/CHANGELOG.md +105 -0
- package/README.md +2 -2
- package/dist/agents/CodeIntelligenceAgent.d.ts.map +1 -1
- package/dist/agents/CodeIntelligenceAgent.js +7 -5
- package/dist/agents/CodeIntelligenceAgent.js.map +1 -1
- package/dist/cli/commands/knowledge-graph.d.ts.map +1 -1
- package/dist/cli/commands/knowledge-graph.js +4 -2
- package/dist/cli/commands/knowledge-graph.js.map +1 -1
- package/dist/cli/commands/migrate/index.d.ts +14 -0
- package/dist/cli/commands/migrate/index.d.ts.map +1 -0
- package/dist/cli/commands/migrate/index.js +283 -0
- package/dist/cli/commands/migrate/index.js.map +1 -0
- package/dist/cli/formatters/KGOutputFormatter.d.ts.map +1 -1
- package/dist/cli/formatters/KGOutputFormatter.js +15 -6
- package/dist/cli/formatters/KGOutputFormatter.js.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/database-init.d.ts.map +1 -1
- package/dist/cli/init/database-init.js +105 -0
- package/dist/cli/init/database-init.js.map +1 -1
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts +9 -3
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts.map +1 -1
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js +41 -3
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js.map +1 -1
- package/dist/code-intelligence/service/CodeIntelligenceService.js +1 -1
- package/dist/code-intelligence/service/CodeIntelligenceService.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/learning/QLearning.d.ts +9 -1
- package/dist/learning/QLearning.d.ts.map +1 -1
- package/dist/learning/QLearning.js +50 -1
- package/dist/learning/QLearning.js.map +1 -1
- package/dist/learning/metrics/LearningMetrics.d.ts +37 -0
- package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -1
- package/dist/learning/metrics/LearningMetrics.js +73 -0
- package/dist/learning/metrics/LearningMetrics.js.map +1 -1
- package/dist/mcp/handlers/fleet-init.d.ts +10 -0
- package/dist/mcp/handlers/fleet-init.d.ts.map +1 -1
- package/dist/mcp/handlers/fleet-init.js +61 -0
- package/dist/mcp/handlers/fleet-init.js.map +1 -1
- package/dist/mcp/handlers/learning/learning-store-pattern.d.ts +13 -0
- package/dist/mcp/handlers/learning/learning-store-pattern.d.ts.map +1 -1
- package/dist/mcp/handlers/learning/learning-store-pattern.js +38 -0
- package/dist/mcp/handlers/learning/learning-store-pattern.js.map +1 -1
- package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts +89 -0
- package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts.map +1 -1
- package/dist/mcp/handlers/phase3/Phase3DomainTools.js +110 -1
- package/dist/mcp/handlers/phase3/Phase3DomainTools.js.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.d.ts +27 -1
- package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.js +188 -8
- package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts +6 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +92 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts +13 -0
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +66 -0
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts +55 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts.map +1 -1
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js +233 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js.map +1 -1
- package/dist/mcp/tools/qe/quality-gates/index.d.ts +5 -2
- package/dist/mcp/tools/qe/quality-gates/index.d.ts.map +1 -1
- package/dist/mcp/tools/qe/quality-gates/index.js +10 -1
- package/dist/mcp/tools/qe/quality-gates/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +156 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/persistence/migrations/all-migrations.d.ts +18 -0
- package/dist/persistence/migrations/all-migrations.d.ts.map +1 -0
- package/dist/persistence/migrations/all-migrations.js +624 -0
- package/dist/persistence/migrations/all-migrations.js.map +1 -0
- package/dist/persistence/migrations/index.d.ts +110 -0
- package/dist/persistence/migrations/index.d.ts.map +1 -0
- package/dist/persistence/migrations/index.js +303 -0
- package/dist/persistence/migrations/index.js.map +1 -0
- package/dist/planning/GOAPPlanner.d.ts +128 -0
- package/dist/planning/GOAPPlanner.d.ts.map +1 -0
- package/dist/planning/GOAPPlanner.js +630 -0
- package/dist/planning/GOAPPlanner.js.map +1 -0
- package/dist/planning/WorldStateBuilder.d.ts +150 -0
- package/dist/planning/WorldStateBuilder.d.ts.map +1 -0
- package/dist/planning/WorldStateBuilder.js +267 -0
- package/dist/planning/WorldStateBuilder.js.map +1 -0
- package/dist/planning/actions/fleet-actions.d.ts +78 -0
- package/dist/planning/actions/fleet-actions.d.ts.map +1 -0
- package/dist/planning/actions/fleet-actions.js +329 -0
- package/dist/planning/actions/fleet-actions.js.map +1 -0
- package/dist/planning/actions/index.d.ts +61 -0
- package/dist/planning/actions/index.d.ts.map +1 -0
- package/dist/planning/actions/index.js +159 -0
- package/dist/planning/actions/index.js.map +1 -0
- package/dist/planning/actions/orchestration-actions.d.ts +61 -0
- package/dist/planning/actions/orchestration-actions.d.ts.map +1 -0
- package/dist/planning/actions/orchestration-actions.js +395 -0
- package/dist/planning/actions/orchestration-actions.js.map +1 -0
- package/dist/planning/actions/quality-gate-actions.d.ts +160 -0
- package/dist/planning/actions/quality-gate-actions.d.ts.map +1 -0
- package/dist/planning/actions/quality-gate-actions.js +639 -0
- package/dist/planning/actions/quality-gate-actions.js.map +1 -0
- package/dist/planning/actions/test-strategy-actions.d.ts +70 -0
- package/dist/planning/actions/test-strategy-actions.d.ts.map +1 -0
- package/dist/planning/actions/test-strategy-actions.js +278 -0
- package/dist/planning/actions/test-strategy-actions.js.map +1 -0
- package/dist/planning/execution/PlanExecutor.d.ts +124 -0
- package/dist/planning/execution/PlanExecutor.d.ts.map +1 -0
- package/dist/planning/execution/PlanExecutor.js +405 -0
- package/dist/planning/execution/PlanExecutor.js.map +1 -0
- package/dist/planning/execution/index.d.ts +12 -0
- package/dist/planning/execution/index.d.ts.map +1 -0
- package/dist/planning/execution/index.js +18 -0
- package/dist/planning/execution/index.js.map +1 -0
- package/dist/planning/goals/TaskWorkflowGoals.d.ts +67 -0
- package/dist/planning/goals/TaskWorkflowGoals.d.ts.map +1 -0
- package/dist/planning/goals/TaskWorkflowGoals.js +208 -0
- package/dist/planning/goals/TaskWorkflowGoals.js.map +1 -0
- package/dist/planning/goals/index.d.ts +10 -0
- package/dist/planning/goals/index.d.ts.map +1 -0
- package/dist/planning/goals/index.js +19 -0
- package/dist/planning/goals/index.js.map +1 -0
- package/dist/planning/index.d.ts +34 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/index.js +176 -0
- package/dist/planning/index.js.map +1 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.d.ts +229 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.d.ts.map +1 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.js +582 -0
- package/dist/planning/integration/GOAPQualityGateIntegration.js.map +1 -0
- package/dist/planning/integration/GOAPTaskOrchestration.d.ts +165 -0
- package/dist/planning/integration/GOAPTaskOrchestration.d.ts.map +1 -0
- package/dist/planning/integration/GOAPTaskOrchestration.js +490 -0
- package/dist/planning/integration/GOAPTaskOrchestration.js.map +1 -0
- package/dist/planning/integration/index.d.ts +14 -0
- package/dist/planning/integration/index.d.ts.map +1 -0
- package/dist/planning/integration/index.js +23 -0
- package/dist/planning/integration/index.js.map +1 -0
- package/dist/planning/types.d.ts +264 -0
- package/dist/planning/types.d.ts.map +1 -0
- package/dist/planning/types.js +63 -0
- package/dist/planning/types.js.map +1 -0
- package/dist/utils/Database.d.ts.map +1 -1
- package/dist/utils/Database.js +81 -2
- package/dist/utils/Database.js.map +1 -1
- package/package.json +6 -3
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GOAP Plan Executor
|
|
4
|
+
*
|
|
5
|
+
* Executes remediation plans generated by GOAPQualityGateIntegration:
|
|
6
|
+
* - Spawns agents for each action
|
|
7
|
+
* - Executes actions in sequence with dependency ordering
|
|
8
|
+
* - Records outcomes for learning (wires recordActionOutcome)
|
|
9
|
+
* - Handles failures with automatic replanning
|
|
10
|
+
*
|
|
11
|
+
* @module planning/execution/PlanExecutor
|
|
12
|
+
* @version 1.0.0
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.PlanExecutor = void 0;
|
|
49
|
+
exports.createPlanExecutor = createPlanExecutor;
|
|
50
|
+
exports.executeQualityGateRemediation = executeQualityGateRemediation;
|
|
51
|
+
const GOAPQualityGateIntegration_1 = require("../integration/GOAPQualityGateIntegration");
|
|
52
|
+
const Logger_1 = require("../../utils/Logger");
|
|
53
|
+
// Lazy import to avoid circular dependencies and reduce memory in tests
|
|
54
|
+
let AgentRegistryModule = null;
|
|
55
|
+
async function getAgentRegistryModule() {
|
|
56
|
+
if (!AgentRegistryModule) {
|
|
57
|
+
AgentRegistryModule = await Promise.resolve().then(() => __importStar(require('../../mcp/services/AgentRegistry')));
|
|
58
|
+
}
|
|
59
|
+
return AgentRegistryModule;
|
|
60
|
+
}
|
|
61
|
+
const DEFAULT_CONFIG = {
|
|
62
|
+
maxRetries: 1,
|
|
63
|
+
actionTimeoutMs: 300000,
|
|
64
|
+
continueOnFailure: false,
|
|
65
|
+
maxReplanAttempts: 2,
|
|
66
|
+
dryRun: false
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* GOAP Plan Executor
|
|
70
|
+
*
|
|
71
|
+
* Bridges plan generation with actual agent execution.
|
|
72
|
+
* Implements the OODA (Observe-Orient-Decide-Act) loop for plan execution.
|
|
73
|
+
*/
|
|
74
|
+
class PlanExecutor {
|
|
75
|
+
constructor(db, integration, config = {}) {
|
|
76
|
+
this.registry = null; // AgentRegistry - lazily initialized
|
|
77
|
+
this.ownsRegistry = false; // Track if we created the registry
|
|
78
|
+
this.db = db;
|
|
79
|
+
this.integration = integration;
|
|
80
|
+
this.logger = Logger_1.Logger.getInstance();
|
|
81
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
82
|
+
// Registry is lazily initialized only when needed (not in dry-run mode)
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Initialize registry only when needed for actual execution
|
|
86
|
+
*/
|
|
87
|
+
async ensureRegistry() {
|
|
88
|
+
if (!this.registry) {
|
|
89
|
+
const { getAgentRegistry } = await getAgentRegistryModule();
|
|
90
|
+
this.registry = getAgentRegistry();
|
|
91
|
+
this.ownsRegistry = true;
|
|
92
|
+
}
|
|
93
|
+
return this.registry;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Cleanup resources - call this when done with the executor
|
|
97
|
+
*/
|
|
98
|
+
async cleanup() {
|
|
99
|
+
// Don't cleanup singleton registry - it's shared
|
|
100
|
+
this.registry = null;
|
|
101
|
+
this.ownsRegistry = false;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Execute a remediation plan
|
|
105
|
+
*
|
|
106
|
+
* @param plan - The remediation plan to execute
|
|
107
|
+
* @param context - Quality gate context for replanning
|
|
108
|
+
* @param metrics - Current metrics for replanning
|
|
109
|
+
*/
|
|
110
|
+
async executePlan(plan, context, metrics) {
|
|
111
|
+
const startTime = Date.now();
|
|
112
|
+
const result = {
|
|
113
|
+
planId: plan.planId,
|
|
114
|
+
success: false,
|
|
115
|
+
totalDurationMs: 0,
|
|
116
|
+
actionsExecuted: 0,
|
|
117
|
+
actionsSucceeded: 0,
|
|
118
|
+
actionsFailed: 0,
|
|
119
|
+
actionResults: [],
|
|
120
|
+
replanned: false
|
|
121
|
+
};
|
|
122
|
+
this.logger.info('[PlanExecutor] Starting plan execution', {
|
|
123
|
+
planId: plan.planId,
|
|
124
|
+
actionCount: plan.actions.length,
|
|
125
|
+
dryRun: this.config.dryRun
|
|
126
|
+
});
|
|
127
|
+
// Update plan status to 'executing'
|
|
128
|
+
await this.updatePlanStatus(plan.planId, 'executing');
|
|
129
|
+
let replanAttempts = 0;
|
|
130
|
+
let currentPlan = plan;
|
|
131
|
+
while (replanAttempts <= this.config.maxReplanAttempts) {
|
|
132
|
+
try {
|
|
133
|
+
// Execute each action in sequence
|
|
134
|
+
for (const action of currentPlan.actions) {
|
|
135
|
+
const actionResult = await this.executeAction(action, context);
|
|
136
|
+
result.actionResults.push(actionResult);
|
|
137
|
+
result.actionsExecuted++;
|
|
138
|
+
if (actionResult.success) {
|
|
139
|
+
result.actionsSucceeded++;
|
|
140
|
+
// Record success for learning
|
|
141
|
+
await this.integration.recordActionOutcome(action.id, true);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
result.actionsFailed++;
|
|
145
|
+
// Record failure for learning
|
|
146
|
+
await this.integration.recordActionOutcome(action.id, false);
|
|
147
|
+
if (!this.config.continueOnFailure) {
|
|
148
|
+
this.logger.warn('[PlanExecutor] Action failed, attempting replan', {
|
|
149
|
+
actionId: action.id,
|
|
150
|
+
actionName: action.name,
|
|
151
|
+
error: actionResult.error
|
|
152
|
+
});
|
|
153
|
+
// Try to replan
|
|
154
|
+
replanAttempts++;
|
|
155
|
+
if (replanAttempts > this.config.maxReplanAttempts) {
|
|
156
|
+
result.error = `Max replan attempts (${this.config.maxReplanAttempts}) exceeded. Last error: ${actionResult.error}`;
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
// Try alternative path first
|
|
160
|
+
if (currentPlan.alternativePaths.length > 0) {
|
|
161
|
+
const altPath = currentPlan.alternativePaths[0];
|
|
162
|
+
this.logger.info('[PlanExecutor] Using alternative path', {
|
|
163
|
+
alternativePlanId: altPath.planId,
|
|
164
|
+
difference: altPath.differenceFromPrimary
|
|
165
|
+
});
|
|
166
|
+
// Generate new plan from alternative
|
|
167
|
+
const newPlan = await this.integration.generateRemediationPlan(metrics, context);
|
|
168
|
+
if (newPlan) {
|
|
169
|
+
currentPlan = newPlan;
|
|
170
|
+
result.replanned = true;
|
|
171
|
+
result.alternativePlanUsed = altPath.planId;
|
|
172
|
+
continue; // Restart with new plan
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Full replan if no alternatives
|
|
176
|
+
const newPlan = await this.integration.generateRemediationPlan(metrics, context);
|
|
177
|
+
if (newPlan) {
|
|
178
|
+
currentPlan = newPlan;
|
|
179
|
+
result.replanned = true;
|
|
180
|
+
this.logger.info('[PlanExecutor] Replanned with new strategy', {
|
|
181
|
+
newPlanId: newPlan.planId
|
|
182
|
+
});
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
result.error = `Replanning failed after action ${action.id}`;
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// If we get here without breaking, we succeeded
|
|
191
|
+
if (!result.error) {
|
|
192
|
+
result.success = result.actionsFailed === 0;
|
|
193
|
+
}
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
result.error = error instanceof Error ? error.message : String(error);
|
|
198
|
+
this.logger.error('[PlanExecutor] Plan execution failed', { error: result.error });
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
result.totalDurationMs = Date.now() - startTime;
|
|
203
|
+
// Update plan status
|
|
204
|
+
await this.updatePlanStatus(plan.planId, result.success ? 'completed' : 'failed', result.success, result.error);
|
|
205
|
+
// Mark plan as completed via integration
|
|
206
|
+
await this.integration.completePlan(plan.planId, result.success, result.error);
|
|
207
|
+
this.logger.info('[PlanExecutor] Plan execution completed', {
|
|
208
|
+
planId: plan.planId,
|
|
209
|
+
success: result.success,
|
|
210
|
+
duration: `${result.totalDurationMs}ms`,
|
|
211
|
+
actionsExecuted: result.actionsExecuted,
|
|
212
|
+
actionsSucceeded: result.actionsSucceeded,
|
|
213
|
+
actionsFailed: result.actionsFailed,
|
|
214
|
+
replanned: result.replanned
|
|
215
|
+
});
|
|
216
|
+
return result;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Execute a single remediation action
|
|
220
|
+
*/
|
|
221
|
+
async executeAction(action, context) {
|
|
222
|
+
const startTime = Date.now();
|
|
223
|
+
const result = {
|
|
224
|
+
actionId: action.id,
|
|
225
|
+
actionName: action.name,
|
|
226
|
+
success: false,
|
|
227
|
+
durationMs: 0
|
|
228
|
+
};
|
|
229
|
+
if (this.config.dryRun) {
|
|
230
|
+
this.logger.info('[PlanExecutor] DRY RUN - Would execute action', {
|
|
231
|
+
actionId: action.id,
|
|
232
|
+
actionName: action.name,
|
|
233
|
+
agentType: action.agentType
|
|
234
|
+
});
|
|
235
|
+
result.success = true;
|
|
236
|
+
result.durationMs = Date.now() - startTime;
|
|
237
|
+
return result;
|
|
238
|
+
}
|
|
239
|
+
this.logger.info('[PlanExecutor] Executing action', {
|
|
240
|
+
actionId: action.id,
|
|
241
|
+
actionName: action.name,
|
|
242
|
+
agentType: action.agentType
|
|
243
|
+
});
|
|
244
|
+
try {
|
|
245
|
+
// Get registry only when actually executing (not in dry-run)
|
|
246
|
+
const registry = await this.ensureRegistry();
|
|
247
|
+
// Map GOAP agent type to MCP agent type
|
|
248
|
+
const mcpAgentType = this.mapAgentType(action.agentType);
|
|
249
|
+
// Spawn or get an agent of the required type
|
|
250
|
+
const { id: agentId } = await registry.spawnAgent(mcpAgentType, {
|
|
251
|
+
name: `${mcpAgentType}-${action.id}`,
|
|
252
|
+
description: `Spawned for action: ${action.name}`,
|
|
253
|
+
capabilities: this.getCapabilitiesForAction(action)
|
|
254
|
+
});
|
|
255
|
+
result.agentId = agentId;
|
|
256
|
+
// Create task from action
|
|
257
|
+
const task = this.createTaskFromAction(action, context);
|
|
258
|
+
// Execute with timeout
|
|
259
|
+
const executePromise = registry.executeTask(agentId, task);
|
|
260
|
+
const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Action timeout')), this.config.actionTimeoutMs));
|
|
261
|
+
const output = await Promise.race([executePromise, timeoutPromise]);
|
|
262
|
+
result.success = true;
|
|
263
|
+
result.output = output;
|
|
264
|
+
// Terminate the agent after use (cleanup)
|
|
265
|
+
await registry.terminateAgent(agentId).catch((err) => this.logger.warn('[PlanExecutor] Failed to terminate agent', { agentId, error: err }));
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
result.success = false;
|
|
269
|
+
result.error = error instanceof Error ? error.message : String(error);
|
|
270
|
+
this.logger.error('[PlanExecutor] Action execution failed', {
|
|
271
|
+
actionId: action.id,
|
|
272
|
+
error: result.error
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
result.durationMs = Date.now() - startTime;
|
|
276
|
+
return result;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Map GOAP agent type to MCP agent type
|
|
280
|
+
*/
|
|
281
|
+
mapAgentType(goapAgentType) {
|
|
282
|
+
const mapping = {
|
|
283
|
+
// QE agents
|
|
284
|
+
'qe-test-generator': 'test-generator',
|
|
285
|
+
'qe-test-executor': 'test-executor',
|
|
286
|
+
'qe-coverage-analyzer': 'coverage-analyzer',
|
|
287
|
+
'qe-quality-gate': 'quality-gate',
|
|
288
|
+
'qe-performance-tester': 'performance-tester',
|
|
289
|
+
'qe-security-scanner': 'security-scanner',
|
|
290
|
+
'qe-flaky-test-hunter': 'flaky-test-detector',
|
|
291
|
+
'qe-regression-risk-analyzer': 'regression-analyzer',
|
|
292
|
+
'qe-requirements-validator': 'requirements-validator',
|
|
293
|
+
'qe-fleet-commander': 'fleet-commander',
|
|
294
|
+
'qe-chaos-engineer': 'chaos-engineer',
|
|
295
|
+
// Legacy/simple mappings
|
|
296
|
+
'test-generator': 'test-generator',
|
|
297
|
+
'test-executor': 'test-executor',
|
|
298
|
+
'coverage-analyzer': 'coverage-analyzer',
|
|
299
|
+
'quality-gate': 'quality-gate',
|
|
300
|
+
'performance-tester': 'performance-tester',
|
|
301
|
+
'security-scanner': 'security-scanner'
|
|
302
|
+
};
|
|
303
|
+
return mapping[goapAgentType] || 'quality-gate';
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Get capabilities for an action
|
|
307
|
+
*/
|
|
308
|
+
getCapabilitiesForAction(action) {
|
|
309
|
+
const categoryCapabilities = {
|
|
310
|
+
test: ['test-execution', 'test-validation'],
|
|
311
|
+
coverage: ['coverage-analysis', 'gap-detection'],
|
|
312
|
+
security: ['vulnerability-scanning', 'security-testing'],
|
|
313
|
+
performance: ['load-testing', 'performance-analysis'],
|
|
314
|
+
analysis: ['code-analysis', 'impact-analysis'],
|
|
315
|
+
process: ['decision-making', 'workflow-management'],
|
|
316
|
+
fleet: ['agent-coordination', 'resource-management']
|
|
317
|
+
};
|
|
318
|
+
return categoryCapabilities[action.category] || ['generic-execution'];
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Create a task from a remediation action
|
|
322
|
+
*/
|
|
323
|
+
createTaskFromAction(action, context) {
|
|
324
|
+
return {
|
|
325
|
+
id: `task-${action.id}-${Date.now()}`,
|
|
326
|
+
type: action.category,
|
|
327
|
+
payload: {
|
|
328
|
+
actionId: action.id,
|
|
329
|
+
actionName: action.name,
|
|
330
|
+
description: action.description,
|
|
331
|
+
effects: action.effects,
|
|
332
|
+
projectId: context.projectId,
|
|
333
|
+
buildId: context.buildId,
|
|
334
|
+
environment: context.environment
|
|
335
|
+
},
|
|
336
|
+
priority: context.criticality === 'critical' ? 1 : context.criticality === 'high' ? 3 : 5,
|
|
337
|
+
description: action.description || action.name,
|
|
338
|
+
context: {
|
|
339
|
+
source: 'goap-remediation',
|
|
340
|
+
planAction: action.id
|
|
341
|
+
}
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Update plan status in database
|
|
346
|
+
*/
|
|
347
|
+
async updatePlanStatus(planId, status, success, failureReason) {
|
|
348
|
+
try {
|
|
349
|
+
if (status === 'executing') {
|
|
350
|
+
this.db.prepare(`
|
|
351
|
+
UPDATE goap_plans SET status = ?, started_at = CURRENT_TIMESTAMP WHERE id = ?
|
|
352
|
+
`).run(status, planId);
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
this.db.prepare(`
|
|
356
|
+
UPDATE goap_plans
|
|
357
|
+
SET status = ?, success = ?, failure_reason = ?, completed_at = CURRENT_TIMESTAMP
|
|
358
|
+
WHERE id = ?
|
|
359
|
+
`).run(status, success ? 1 : 0, failureReason || null, planId);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
catch (error) {
|
|
363
|
+
this.logger.warn('[PlanExecutor] Failed to update plan status', { planId, error });
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
exports.PlanExecutor = PlanExecutor;
|
|
368
|
+
/**
|
|
369
|
+
* Factory function to create a PlanExecutor
|
|
370
|
+
*/
|
|
371
|
+
function createPlanExecutor(dbPath, config = {}) {
|
|
372
|
+
const Database = require('better-sqlite3');
|
|
373
|
+
const db = new Database(dbPath);
|
|
374
|
+
const integration = new GOAPQualityGateIntegration_1.GOAPQualityGateIntegration(db);
|
|
375
|
+
return {
|
|
376
|
+
executor: new PlanExecutor(db, integration, config),
|
|
377
|
+
integration
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Execute a quality gate remediation with GOAP planning
|
|
382
|
+
*
|
|
383
|
+
* High-level function that:
|
|
384
|
+
* 1. Generates a remediation plan
|
|
385
|
+
* 2. Executes the plan
|
|
386
|
+
* 3. Records outcomes for learning
|
|
387
|
+
*/
|
|
388
|
+
async function executeQualityGateRemediation(metrics, context, dbPath, targetGoal, config = {}) {
|
|
389
|
+
const { executor, integration } = createPlanExecutor(dbPath, config);
|
|
390
|
+
try {
|
|
391
|
+
await integration.initialize();
|
|
392
|
+
// Generate remediation plan
|
|
393
|
+
const plan = await integration.generateRemediationPlan(metrics, context, targetGoal);
|
|
394
|
+
if (!plan) {
|
|
395
|
+
Logger_1.Logger.getInstance().info('[executeQualityGateRemediation] No remediation needed - goal already satisfied');
|
|
396
|
+
return null;
|
|
397
|
+
}
|
|
398
|
+
// Execute the plan
|
|
399
|
+
return await executor.executePlan(plan, context, metrics);
|
|
400
|
+
}
|
|
401
|
+
finally {
|
|
402
|
+
integration.close();
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
//# sourceMappingURL=PlanExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanExecutor.js","sourceRoot":"","sources":["../../../src/planning/execution/PlanExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GOAP Plan Execution Module
|
|
3
|
+
*
|
|
4
|
+
* Exports for plan execution functionality:
|
|
5
|
+
* - PlanExecutor - Executes remediation plans with agent orchestration
|
|
6
|
+
* - executeQualityGateRemediation - High-level function for quality gate remediation
|
|
7
|
+
*
|
|
8
|
+
* @module planning/execution
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
export { PlanExecutor, createPlanExecutor, executeQualityGateRemediation, type ActionExecutionResult, type PlanExecutionResult, type PlanExecutionConfig } from './PlanExecutor';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/planning/execution/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,6BAA6B,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GOAP Plan Execution Module
|
|
4
|
+
*
|
|
5
|
+
* Exports for plan execution functionality:
|
|
6
|
+
* - PlanExecutor - Executes remediation plans with agent orchestration
|
|
7
|
+
* - executeQualityGateRemediation - High-level function for quality gate remediation
|
|
8
|
+
*
|
|
9
|
+
* @module planning/execution
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.executeQualityGateRemediation = exports.createPlanExecutor = exports.PlanExecutor = void 0;
|
|
14
|
+
var PlanExecutor_1 = require("./PlanExecutor");
|
|
15
|
+
Object.defineProperty(exports, "PlanExecutor", { enumerable: true, get: function () { return PlanExecutor_1.PlanExecutor; } });
|
|
16
|
+
Object.defineProperty(exports, "createPlanExecutor", { enumerable: true, get: function () { return PlanExecutor_1.createPlanExecutor; } });
|
|
17
|
+
Object.defineProperty(exports, "executeQualityGateRemediation", { enumerable: true, get: function () { return PlanExecutor_1.executeQualityGateRemediation; } });
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/planning/execution/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,+CAOwB;AANtB,4GAAA,YAAY,OAAA;AACZ,kHAAA,kBAAkB,OAAA;AAClB,6HAAA,6BAA6B,OAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Workflow Goals for GOAP Integration
|
|
3
|
+
*
|
|
4
|
+
* Defines goal conditions for each task orchestration type.
|
|
5
|
+
* These replace the hardcoded workflow templates with dynamic GOAP planning.
|
|
6
|
+
*
|
|
7
|
+
* @module planning/goals/TaskWorkflowGoals
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
import { StateConditions, GOAPGoal } from '../types';
|
|
11
|
+
/**
|
|
12
|
+
* Goal definition for task orchestration
|
|
13
|
+
*/
|
|
14
|
+
export interface TaskGoalDefinition {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
conditions: StateConditions;
|
|
19
|
+
allowedCategories: string[];
|
|
20
|
+
priority: number;
|
|
21
|
+
timeoutSeconds?: number;
|
|
22
|
+
/** Minimum actions expected in plan */
|
|
23
|
+
minActions?: number;
|
|
24
|
+
/** Required measurement flags that must be set */
|
|
25
|
+
requiredMeasurements?: string[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Task Workflow Goals - GOAP goal definitions for each orchestration type
|
|
29
|
+
*/
|
|
30
|
+
export declare const TASK_WORKFLOW_GOALS: Record<string, TaskGoalDefinition>;
|
|
31
|
+
/**
|
|
32
|
+
* Get goal definition for a task type
|
|
33
|
+
*/
|
|
34
|
+
export declare function getGoalForType(taskType: string): TaskGoalDefinition;
|
|
35
|
+
/**
|
|
36
|
+
* Get all available task types
|
|
37
|
+
*/
|
|
38
|
+
export declare function getAvailableTaskTypes(): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Customize goal conditions based on context
|
|
41
|
+
*
|
|
42
|
+
* @param baseGoal - The base goal definition
|
|
43
|
+
* @param context - Orchestration context with custom requirements
|
|
44
|
+
*/
|
|
45
|
+
export declare function customizeGoalConditions(baseGoal: TaskGoalDefinition, context?: {
|
|
46
|
+
coverageThreshold?: number;
|
|
47
|
+
securityThreshold?: number;
|
|
48
|
+
performanceThreshold?: number;
|
|
49
|
+
testPassingThreshold?: number;
|
|
50
|
+
requirements?: string[];
|
|
51
|
+
}): TaskGoalDefinition;
|
|
52
|
+
/**
|
|
53
|
+
* Convert GOAP goal definition to database-compatible format
|
|
54
|
+
*/
|
|
55
|
+
export declare function toGOAPGoal(definition: TaskGoalDefinition): GOAPGoal;
|
|
56
|
+
/**
|
|
57
|
+
* Validate that a goal's required measurements can be achieved
|
|
58
|
+
* by the available actions
|
|
59
|
+
*/
|
|
60
|
+
export declare function validateGoalAchievability(goal: TaskGoalDefinition, availableActions: {
|
|
61
|
+
id: string;
|
|
62
|
+
effects: Record<string, unknown>;
|
|
63
|
+
}[]): {
|
|
64
|
+
achievable: boolean;
|
|
65
|
+
missingEffects: string[];
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=TaskWorkflowGoals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskWorkflowGoals.d.ts","sourceRoot":"","sources":["../../../src/planning/goals/TaskWorkflowGoals.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,eAAe,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CA+GlE,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAMnE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE;IACR,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GACA,kBAAkB,CAoBpB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,kBAAkB,GAAG,QAAQ,CAUnE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,kBAAkB,EACxB,gBAAgB,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,GACnE;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAwBnD"}
|