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.
Files changed (149) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/README.md +2 -2
  3. package/dist/agents/CodeIntelligenceAgent.d.ts.map +1 -1
  4. package/dist/agents/CodeIntelligenceAgent.js +7 -5
  5. package/dist/agents/CodeIntelligenceAgent.js.map +1 -1
  6. package/dist/cli/commands/knowledge-graph.d.ts.map +1 -1
  7. package/dist/cli/commands/knowledge-graph.js +4 -2
  8. package/dist/cli/commands/knowledge-graph.js.map +1 -1
  9. package/dist/cli/commands/migrate/index.d.ts +14 -0
  10. package/dist/cli/commands/migrate/index.d.ts.map +1 -0
  11. package/dist/cli/commands/migrate/index.js +283 -0
  12. package/dist/cli/commands/migrate/index.js.map +1 -0
  13. package/dist/cli/formatters/KGOutputFormatter.d.ts.map +1 -1
  14. package/dist/cli/formatters/KGOutputFormatter.js +15 -6
  15. package/dist/cli/formatters/KGOutputFormatter.js.map +1 -1
  16. package/dist/cli/index.js +3 -0
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/cli/init/database-init.d.ts.map +1 -1
  19. package/dist/cli/init/database-init.js +105 -0
  20. package/dist/cli/init/database-init.js.map +1 -1
  21. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts +9 -3
  22. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts.map +1 -1
  23. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js +41 -3
  24. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js.map +1 -1
  25. package/dist/code-intelligence/service/CodeIntelligenceService.js +1 -1
  26. package/dist/code-intelligence/service/CodeIntelligenceService.js.map +1 -1
  27. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  28. package/dist/learning/QLearning.d.ts +9 -1
  29. package/dist/learning/QLearning.d.ts.map +1 -1
  30. package/dist/learning/QLearning.js +50 -1
  31. package/dist/learning/QLearning.js.map +1 -1
  32. package/dist/learning/metrics/LearningMetrics.d.ts +37 -0
  33. package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -1
  34. package/dist/learning/metrics/LearningMetrics.js +73 -0
  35. package/dist/learning/metrics/LearningMetrics.js.map +1 -1
  36. package/dist/mcp/handlers/fleet-init.d.ts +10 -0
  37. package/dist/mcp/handlers/fleet-init.d.ts.map +1 -1
  38. package/dist/mcp/handlers/fleet-init.js +61 -0
  39. package/dist/mcp/handlers/fleet-init.js.map +1 -1
  40. package/dist/mcp/handlers/learning/learning-store-pattern.d.ts +13 -0
  41. package/dist/mcp/handlers/learning/learning-store-pattern.d.ts.map +1 -1
  42. package/dist/mcp/handlers/learning/learning-store-pattern.js +38 -0
  43. package/dist/mcp/handlers/learning/learning-store-pattern.js.map +1 -1
  44. package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts +89 -0
  45. package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts.map +1 -1
  46. package/dist/mcp/handlers/phase3/Phase3DomainTools.js +110 -1
  47. package/dist/mcp/handlers/phase3/Phase3DomainTools.js.map +1 -1
  48. package/dist/mcp/handlers/task-orchestrate.d.ts +27 -1
  49. package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
  50. package/dist/mcp/handlers/task-orchestrate.js +188 -8
  51. package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
  52. package/dist/mcp/server-instructions.d.ts +1 -1
  53. package/dist/mcp/server-instructions.js +1 -1
  54. package/dist/mcp/server.d.ts +6 -0
  55. package/dist/mcp/server.d.ts.map +1 -1
  56. package/dist/mcp/server.js +92 -2
  57. package/dist/mcp/server.js.map +1 -1
  58. package/dist/mcp/services/AgentRegistry.d.ts +13 -0
  59. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  60. package/dist/mcp/services/AgentRegistry.js +66 -0
  61. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  62. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts +55 -0
  63. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts.map +1 -1
  64. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js +233 -0
  65. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js.map +1 -1
  66. package/dist/mcp/tools/qe/quality-gates/index.d.ts +5 -2
  67. package/dist/mcp/tools/qe/quality-gates/index.d.ts.map +1 -1
  68. package/dist/mcp/tools/qe/quality-gates/index.js +10 -1
  69. package/dist/mcp/tools/qe/quality-gates/index.js.map +1 -1
  70. package/dist/mcp/tools.d.ts +1 -0
  71. package/dist/mcp/tools.d.ts.map +1 -1
  72. package/dist/mcp/tools.js +156 -1
  73. package/dist/mcp/tools.js.map +1 -1
  74. package/dist/persistence/migrations/all-migrations.d.ts +18 -0
  75. package/dist/persistence/migrations/all-migrations.d.ts.map +1 -0
  76. package/dist/persistence/migrations/all-migrations.js +624 -0
  77. package/dist/persistence/migrations/all-migrations.js.map +1 -0
  78. package/dist/persistence/migrations/index.d.ts +110 -0
  79. package/dist/persistence/migrations/index.d.ts.map +1 -0
  80. package/dist/persistence/migrations/index.js +303 -0
  81. package/dist/persistence/migrations/index.js.map +1 -0
  82. package/dist/planning/GOAPPlanner.d.ts +128 -0
  83. package/dist/planning/GOAPPlanner.d.ts.map +1 -0
  84. package/dist/planning/GOAPPlanner.js +630 -0
  85. package/dist/planning/GOAPPlanner.js.map +1 -0
  86. package/dist/planning/WorldStateBuilder.d.ts +150 -0
  87. package/dist/planning/WorldStateBuilder.d.ts.map +1 -0
  88. package/dist/planning/WorldStateBuilder.js +267 -0
  89. package/dist/planning/WorldStateBuilder.js.map +1 -0
  90. package/dist/planning/actions/fleet-actions.d.ts +78 -0
  91. package/dist/planning/actions/fleet-actions.d.ts.map +1 -0
  92. package/dist/planning/actions/fleet-actions.js +329 -0
  93. package/dist/planning/actions/fleet-actions.js.map +1 -0
  94. package/dist/planning/actions/index.d.ts +61 -0
  95. package/dist/planning/actions/index.d.ts.map +1 -0
  96. package/dist/planning/actions/index.js +159 -0
  97. package/dist/planning/actions/index.js.map +1 -0
  98. package/dist/planning/actions/orchestration-actions.d.ts +61 -0
  99. package/dist/planning/actions/orchestration-actions.d.ts.map +1 -0
  100. package/dist/planning/actions/orchestration-actions.js +395 -0
  101. package/dist/planning/actions/orchestration-actions.js.map +1 -0
  102. package/dist/planning/actions/quality-gate-actions.d.ts +160 -0
  103. package/dist/planning/actions/quality-gate-actions.d.ts.map +1 -0
  104. package/dist/planning/actions/quality-gate-actions.js +639 -0
  105. package/dist/planning/actions/quality-gate-actions.js.map +1 -0
  106. package/dist/planning/actions/test-strategy-actions.d.ts +70 -0
  107. package/dist/planning/actions/test-strategy-actions.d.ts.map +1 -0
  108. package/dist/planning/actions/test-strategy-actions.js +278 -0
  109. package/dist/planning/actions/test-strategy-actions.js.map +1 -0
  110. package/dist/planning/execution/PlanExecutor.d.ts +124 -0
  111. package/dist/planning/execution/PlanExecutor.d.ts.map +1 -0
  112. package/dist/planning/execution/PlanExecutor.js +405 -0
  113. package/dist/planning/execution/PlanExecutor.js.map +1 -0
  114. package/dist/planning/execution/index.d.ts +12 -0
  115. package/dist/planning/execution/index.d.ts.map +1 -0
  116. package/dist/planning/execution/index.js +18 -0
  117. package/dist/planning/execution/index.js.map +1 -0
  118. package/dist/planning/goals/TaskWorkflowGoals.d.ts +67 -0
  119. package/dist/planning/goals/TaskWorkflowGoals.d.ts.map +1 -0
  120. package/dist/planning/goals/TaskWorkflowGoals.js +208 -0
  121. package/dist/planning/goals/TaskWorkflowGoals.js.map +1 -0
  122. package/dist/planning/goals/index.d.ts +10 -0
  123. package/dist/planning/goals/index.d.ts.map +1 -0
  124. package/dist/planning/goals/index.js +19 -0
  125. package/dist/planning/goals/index.js.map +1 -0
  126. package/dist/planning/index.d.ts +34 -0
  127. package/dist/planning/index.d.ts.map +1 -0
  128. package/dist/planning/index.js +176 -0
  129. package/dist/planning/index.js.map +1 -0
  130. package/dist/planning/integration/GOAPQualityGateIntegration.d.ts +229 -0
  131. package/dist/planning/integration/GOAPQualityGateIntegration.d.ts.map +1 -0
  132. package/dist/planning/integration/GOAPQualityGateIntegration.js +582 -0
  133. package/dist/planning/integration/GOAPQualityGateIntegration.js.map +1 -0
  134. package/dist/planning/integration/GOAPTaskOrchestration.d.ts +165 -0
  135. package/dist/planning/integration/GOAPTaskOrchestration.d.ts.map +1 -0
  136. package/dist/planning/integration/GOAPTaskOrchestration.js +490 -0
  137. package/dist/planning/integration/GOAPTaskOrchestration.js.map +1 -0
  138. package/dist/planning/integration/index.d.ts +14 -0
  139. package/dist/planning/integration/index.d.ts.map +1 -0
  140. package/dist/planning/integration/index.js +23 -0
  141. package/dist/planning/integration/index.js.map +1 -0
  142. package/dist/planning/types.d.ts +264 -0
  143. package/dist/planning/types.d.ts.map +1 -0
  144. package/dist/planning/types.js +63 -0
  145. package/dist/planning/types.js.map +1 -0
  146. package/dist/utils/Database.d.ts.map +1 -1
  147. package/dist/utils/Database.js +81 -2
  148. package/dist/utils/Database.js.map +1 -1
  149. package/package.json +6 -3
@@ -0,0 +1,165 @@
1
+ /**
2
+ * GOAP Task Orchestration Integration
3
+ *
4
+ * Integrates GOAP planning with task orchestration to replace
5
+ * hardcoded workflow templates with dynamic plan generation.
6
+ *
7
+ * @module planning/integration/GOAPTaskOrchestration
8
+ * @version 1.0.0
9
+ */
10
+ import Database from 'better-sqlite3';
11
+ import { TaskGoalDefinition } from '../goals/TaskWorkflowGoals';
12
+ /**
13
+ * Interface for agent registry to avoid circular dependency
14
+ */
15
+ export interface AgentRegistryInterface {
16
+ getSupportedMCPTypes(): string[];
17
+ getAllAgents(): Array<{
18
+ id: string;
19
+ mcpType: string;
20
+ status: string;
21
+ }>;
22
+ getAgentsByType(mcpType: string): Array<{
23
+ id: string;
24
+ status: string;
25
+ }>;
26
+ }
27
+ /**
28
+ * Orchestration context from task-orchestrate handler
29
+ */
30
+ export interface OrchestrationContext {
31
+ project?: string;
32
+ branch?: string;
33
+ environment?: 'development' | 'staging' | 'production';
34
+ requirements?: string[];
35
+ /** Custom thresholds */
36
+ coverageThreshold?: number;
37
+ securityThreshold?: number;
38
+ performanceThreshold?: number;
39
+ testPassingThreshold?: number;
40
+ /** Time budget in seconds */
41
+ timeBudgetSeconds?: number;
42
+ /** Max agents available */
43
+ maxAgents?: number;
44
+ }
45
+ /**
46
+ * Task specification from task-orchestrate handler
47
+ */
48
+ export interface TaskSpec {
49
+ type: 'comprehensive-testing' | 'quality-gate' | 'defect-prevention' | 'performance-validation';
50
+ priority: 'low' | 'medium' | 'high' | 'critical';
51
+ strategy: 'parallel' | 'sequential' | 'adaptive';
52
+ maxAgents?: number;
53
+ timeoutMinutes?: number;
54
+ }
55
+ /**
56
+ * Workflow step generated from GOAP plan
57
+ */
58
+ export interface GOAPWorkflowStep {
59
+ id: string;
60
+ name: string;
61
+ type: string;
62
+ dependencies: string[];
63
+ estimatedDuration: number;
64
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
65
+ assignedAgent?: string;
66
+ goapActionId: string;
67
+ agentType: string;
68
+ category: string;
69
+ canRunParallel: boolean;
70
+ }
71
+ /**
72
+ * Result of GOAP workflow generation
73
+ */
74
+ export interface GOAPWorkflowResult {
75
+ success: boolean;
76
+ workflow: GOAPWorkflowStep[];
77
+ planId: string;
78
+ totalCost: number;
79
+ estimatedDuration: number;
80
+ goalDefinition: TaskGoalDefinition;
81
+ alternativePaths: number;
82
+ error?: string;
83
+ }
84
+ /**
85
+ * GOAP Task Orchestration Integration
86
+ */
87
+ export declare class GOAPTaskOrchestration {
88
+ private planner;
89
+ private db;
90
+ private logger;
91
+ private initialized;
92
+ private registry;
93
+ constructor(db: Database.Database, registry?: AgentRegistryInterface);
94
+ /**
95
+ * Set or update the agent registry for fleet state population
96
+ */
97
+ setRegistry(registry: AgentRegistryInterface): void;
98
+ /**
99
+ * Initialize the integration (create tables, register actions)
100
+ */
101
+ initialize(): Promise<void>;
102
+ /**
103
+ * Generate a dynamic workflow for a task using GOAP planning
104
+ */
105
+ generateWorkflow(task: TaskSpec, context?: OrchestrationContext): Promise<GOAPWorkflowResult>;
106
+ /**
107
+ * Build initial world state from task and context
108
+ *
109
+ * IMPORTANT: Fleet state is populated from AgentRegistry if available.
110
+ * This enables GOAP to make decisions based on actual agent availability.
111
+ */
112
+ private buildWorldState;
113
+ /**
114
+ * Build fleet state from AgentRegistry
115
+ *
116
+ * Maps agent types to GOAP-compatible format.
117
+ * If no registry is available, returns default agent types based on orchestration actions.
118
+ */
119
+ private buildFleetState;
120
+ /**
121
+ * Map task priority to risk level
122
+ */
123
+ private mapPriorityToRisk;
124
+ /**
125
+ * Convert GOAP plan to workflow steps with proper dependencies
126
+ */
127
+ private convertPlanToWorkflow;
128
+ /**
129
+ * Build dependency map based on action preconditions and effects
130
+ */
131
+ private buildDependencyMap;
132
+ /**
133
+ * Resolve dependencies for a step based on completed workflow steps
134
+ */
135
+ private resolveDependencies;
136
+ /**
137
+ * Map GOAP action category to step type
138
+ */
139
+ private getStepTypeFromAction;
140
+ /**
141
+ * Find alternative paths for resilience
142
+ */
143
+ private findAlternativePaths;
144
+ /**
145
+ * Persist plan to database
146
+ */
147
+ private persistPlan;
148
+ /**
149
+ * Ensure GOAP tables exist
150
+ */
151
+ private ensureTablesExist;
152
+ /**
153
+ * Register orchestration actions in database
154
+ */
155
+ private registerOrchestrationActions;
156
+ /**
157
+ * Close database connection
158
+ */
159
+ close(): void;
160
+ }
161
+ /**
162
+ * Factory function to create GOAPTaskOrchestration
163
+ */
164
+ export declare function createGOAPTaskOrchestration(dbPath: string): GOAPTaskOrchestration;
165
+ //# sourceMappingURL=GOAPTaskOrchestration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GOAPTaskOrchestration.d.ts","sourceRoot":"","sources":["../../../src/planning/integration/GOAPTaskOrchestration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,490 @@
1
+ "use strict";
2
+ /**
3
+ * GOAP Task Orchestration Integration
4
+ *
5
+ * Integrates GOAP planning with task orchestration to replace
6
+ * hardcoded workflow templates with dynamic plan generation.
7
+ *
8
+ * @module planning/integration/GOAPTaskOrchestration
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GOAPTaskOrchestration = void 0;
13
+ exports.createGOAPTaskOrchestration = createGOAPTaskOrchestration;
14
+ const GOAPPlanner_1 = require("../GOAPPlanner");
15
+ const types_1 = require("../types");
16
+ const TaskWorkflowGoals_1 = require("../goals/TaskWorkflowGoals");
17
+ const actions_1 = require("../actions");
18
+ const Logger_1 = require("../../utils/Logger");
19
+ const SecureRandom_1 = require("../../utils/SecureRandom");
20
+ /**
21
+ * GOAP Task Orchestration Integration
22
+ */
23
+ class GOAPTaskOrchestration {
24
+ constructor(db, registry) {
25
+ this.initialized = false;
26
+ this.registry = null;
27
+ this.db = db;
28
+ this.planner = new GOAPPlanner_1.GOAPPlanner(db);
29
+ this.logger = Logger_1.Logger.getInstance();
30
+ this.registry = registry || null;
31
+ }
32
+ /**
33
+ * Set or update the agent registry for fleet state population
34
+ */
35
+ setRegistry(registry) {
36
+ this.registry = registry;
37
+ }
38
+ /**
39
+ * Initialize the integration (create tables, register actions)
40
+ */
41
+ async initialize() {
42
+ if (this.initialized)
43
+ return;
44
+ this.logger.info('[GOAPTaskOrchestration] Initializing...');
45
+ // Ensure GOAP tables exist
46
+ await this.ensureTablesExist();
47
+ // Register orchestration actions
48
+ await this.registerOrchestrationActions();
49
+ this.initialized = true;
50
+ this.logger.info('[GOAPTaskOrchestration] Initialized', {
51
+ actionsRegistered: actions_1.orchestrationActions.length
52
+ });
53
+ }
54
+ /**
55
+ * Generate a dynamic workflow for a task using GOAP planning
56
+ */
57
+ async generateWorkflow(task, context = {}) {
58
+ await this.initialize();
59
+ this.logger.info('[GOAPTaskOrchestration] Generating workflow', {
60
+ taskType: task.type,
61
+ strategy: task.strategy,
62
+ context
63
+ });
64
+ try {
65
+ // Get and customize goal definition
66
+ const baseGoal = (0, TaskWorkflowGoals_1.getGoalForType)(task.type);
67
+ const goal = (0, TaskWorkflowGoals_1.customizeGoalConditions)(baseGoal, {
68
+ coverageThreshold: context.coverageThreshold,
69
+ securityThreshold: context.securityThreshold,
70
+ performanceThreshold: context.performanceThreshold,
71
+ testPassingThreshold: context.testPassingThreshold,
72
+ requirements: context.requirements
73
+ });
74
+ // Build initial world state
75
+ const worldState = this.buildWorldState(task, context);
76
+ // Get applicable actions for this task type
77
+ const applicableActions = (0, actions_1.getActionsForTaskType)(task.type);
78
+ // Set planner constraints
79
+ const constraints = {
80
+ maxIterations: 5000,
81
+ timeoutMs: 10000,
82
+ allowedCategories: goal.allowedCategories,
83
+ maxPlanLength: 10
84
+ };
85
+ // Generate GOAP plan
86
+ const plan = await this.planner.findPlan(worldState, goal.conditions, constraints);
87
+ if (!plan) {
88
+ this.logger.warn('[GOAPTaskOrchestration] No plan found', { taskType: task.type });
89
+ return {
90
+ success: false,
91
+ workflow: [],
92
+ planId: '',
93
+ totalCost: 0,
94
+ estimatedDuration: 0,
95
+ goalDefinition: goal,
96
+ alternativePaths: 0,
97
+ error: `No viable plan found for task type: ${task.type}`
98
+ };
99
+ }
100
+ // Convert GOAP plan to workflow steps
101
+ const workflow = this.convertPlanToWorkflow(plan, task.strategy);
102
+ // Persist plan for tracking
103
+ const planId = await this.persistPlan(plan, task, context);
104
+ // Find alternative paths for resilience
105
+ const alternatives = await this.findAlternativePaths(plan, worldState, goal, constraints);
106
+ this.logger.info('[GOAPTaskOrchestration] Workflow generated', {
107
+ planId,
108
+ steps: workflow.length,
109
+ totalCost: plan.totalCost,
110
+ alternatives: alternatives.length
111
+ });
112
+ return {
113
+ success: true,
114
+ workflow,
115
+ planId,
116
+ totalCost: plan.totalCost,
117
+ estimatedDuration: plan.estimatedDuration,
118
+ goalDefinition: goal,
119
+ alternativePaths: alternatives.length
120
+ };
121
+ }
122
+ catch (error) {
123
+ const errorMsg = error instanceof Error ? error.message : String(error);
124
+ this.logger.error('[GOAPTaskOrchestration] Workflow generation failed', { error: errorMsg });
125
+ return {
126
+ success: false,
127
+ workflow: [],
128
+ planId: '',
129
+ totalCost: 0,
130
+ estimatedDuration: 0,
131
+ goalDefinition: (0, TaskWorkflowGoals_1.getGoalForType)(task.type),
132
+ alternativePaths: 0,
133
+ error: errorMsg
134
+ };
135
+ }
136
+ }
137
+ /**
138
+ * Build initial world state from task and context
139
+ *
140
+ * IMPORTANT: Fleet state is populated from AgentRegistry if available.
141
+ * This enables GOAP to make decisions based on actual agent availability.
142
+ */
143
+ buildWorldState(task, context) {
144
+ const timeBudget = context.timeBudgetSeconds || (task.timeoutMinutes || 30) * 60;
145
+ const parallelSlots = context.maxAgents || task.maxAgents || 4;
146
+ // Query actual fleet state from registry
147
+ const fleetState = this.buildFleetState();
148
+ return {
149
+ ...types_1.DEFAULT_WORLD_STATE,
150
+ coverage: {
151
+ line: 0,
152
+ branch: 0,
153
+ function: 0,
154
+ target: context.coverageThreshold || 80,
155
+ measured: false
156
+ },
157
+ quality: {
158
+ testsPassing: 0,
159
+ securityScore: 0,
160
+ performanceScore: 0,
161
+ technicalDebt: 0,
162
+ // Measurement flags - all false initially
163
+ testsMeasured: false,
164
+ integrationTested: false,
165
+ securityMeasured: false,
166
+ performanceMeasured: false,
167
+ complexityMeasured: false,
168
+ gateEvaluated: false
169
+ },
170
+ fleet: fleetState,
171
+ resources: {
172
+ timeRemaining: timeBudget,
173
+ memoryAvailable: 2048,
174
+ parallelSlots
175
+ },
176
+ context: {
177
+ environment: context.environment || 'development',
178
+ changeSize: 'medium',
179
+ riskLevel: this.mapPriorityToRisk(task.priority),
180
+ previousFailures: 0,
181
+ impactAnalyzed: false,
182
+ coverageGapsAnalyzed: false,
183
+ bddGenerated: false
184
+ }
185
+ };
186
+ }
187
+ /**
188
+ * Build fleet state from AgentRegistry
189
+ *
190
+ * Maps agent types to GOAP-compatible format.
191
+ * If no registry is available, returns default agent types based on orchestration actions.
192
+ */
193
+ buildFleetState() {
194
+ if (this.registry) {
195
+ try {
196
+ // Get actual agents from registry
197
+ const allAgents = this.registry.getAllAgents();
198
+ const supportedTypes = this.registry.getSupportedMCPTypes();
199
+ // Separate available (idle) vs busy agents
200
+ const availableAgents = [];
201
+ const busyAgents = [];
202
+ const agentTypes = {};
203
+ for (const agent of allAgents) {
204
+ if (agent.status === 'idle' || agent.status === 'available') {
205
+ availableAgents.push(agent.mcpType);
206
+ }
207
+ else if (agent.status === 'busy' || agent.status === 'running') {
208
+ busyAgents.push(agent.id);
209
+ }
210
+ // Count by type
211
+ agentTypes[agent.mcpType] = (agentTypes[agent.mcpType] || 0) + 1;
212
+ }
213
+ // If no agents spawned yet, add supported types as "available"
214
+ // This allows planning to proceed knowing agents CAN be spawned
215
+ if (availableAgents.length === 0 && supportedTypes.length > 0) {
216
+ // Add supported types that match our action requirements
217
+ const actionAgentTypes = new Set(actions_1.orchestrationActions.map(a => a.agentType));
218
+ for (const type of supportedTypes) {
219
+ if (actionAgentTypes.has(type)) {
220
+ availableAgents.push(type);
221
+ }
222
+ }
223
+ }
224
+ this.logger.debug('[GOAPTaskOrchestration] Fleet state from registry', {
225
+ activeAgents: allAgents.length,
226
+ availableAgents: availableAgents.length,
227
+ busyAgents: busyAgents.length
228
+ });
229
+ return {
230
+ activeAgents: allAgents.length,
231
+ availableAgents,
232
+ busyAgents,
233
+ agentTypes,
234
+ topologyOptimized: allAgents.length > 0
235
+ };
236
+ }
237
+ catch (error) {
238
+ this.logger.warn('[GOAPTaskOrchestration] Failed to query registry, using defaults', {
239
+ error: error instanceof Error ? error.message : String(error)
240
+ });
241
+ }
242
+ }
243
+ // Default: assume all action agent types are available (can be spawned on demand)
244
+ const defaultAgentTypes = [...new Set(actions_1.orchestrationActions.map(a => a.agentType))];
245
+ return {
246
+ activeAgents: 0,
247
+ availableAgents: defaultAgentTypes, // GOAP assumes agents can be spawned
248
+ busyAgents: [],
249
+ agentTypes: {},
250
+ topologyOptimized: false
251
+ };
252
+ }
253
+ /**
254
+ * Map task priority to risk level
255
+ */
256
+ mapPriorityToRisk(priority) {
257
+ const mapping = {
258
+ 'low': 'low',
259
+ 'medium': 'medium',
260
+ 'high': 'high',
261
+ 'critical': 'critical'
262
+ };
263
+ return mapping[priority];
264
+ }
265
+ /**
266
+ * Convert GOAP plan to workflow steps with proper dependencies
267
+ */
268
+ convertPlanToWorkflow(plan, strategy) {
269
+ const workflow = [];
270
+ const actionDependencyMap = new Map();
271
+ // Build dependency map based on preconditions and effects
272
+ this.buildDependencyMap(plan.actions, actionDependencyMap);
273
+ for (let i = 0; i < plan.actions.length; i++) {
274
+ const action = plan.actions[i];
275
+ const stepId = `${action.id}-${Date.now()}-${i}`;
276
+ // Get dependencies based on strategy
277
+ let dependencies = [];
278
+ if (strategy === 'sequential') {
279
+ // Sequential: each step depends on previous
280
+ if (i > 0) {
281
+ dependencies = [workflow[i - 1].id];
282
+ }
283
+ }
284
+ else {
285
+ // Parallel/Adaptive: use actual dependency analysis
286
+ dependencies = this.resolveDependencies(action, workflow, actionDependencyMap);
287
+ }
288
+ const step = {
289
+ id: stepId,
290
+ name: action.name,
291
+ type: this.getStepTypeFromAction(action),
292
+ dependencies,
293
+ estimatedDuration: action.durationEstimate || 300,
294
+ status: 'pending',
295
+ goapActionId: action.id,
296
+ agentType: action.agentType,
297
+ category: action.category,
298
+ canRunParallel: dependencies.length === 0 || strategy === 'parallel'
299
+ };
300
+ workflow.push(step);
301
+ }
302
+ return workflow;
303
+ }
304
+ /**
305
+ * Build dependency map based on action preconditions and effects
306
+ */
307
+ buildDependencyMap(actions, dependencyMap) {
308
+ for (const action of actions) {
309
+ const deps = [];
310
+ // Find actions whose effects satisfy this action's preconditions
311
+ for (const [precondKey] of Object.entries(action.preconditions)) {
312
+ for (const otherAction of actions) {
313
+ if (otherAction.id === action.id)
314
+ continue;
315
+ for (const [effectKey, effect] of Object.entries(otherAction.effects)) {
316
+ if (effectKey === precondKey) {
317
+ // Check if effect sets a flag that precondition requires
318
+ const effectObj = effect;
319
+ if (effectObj?.set === true) {
320
+ deps.push(otherAction.id);
321
+ break;
322
+ }
323
+ }
324
+ }
325
+ }
326
+ }
327
+ dependencyMap.set(action.id, [...new Set(deps)]);
328
+ }
329
+ }
330
+ /**
331
+ * Resolve dependencies for a step based on completed workflow steps
332
+ */
333
+ resolveDependencies(action, currentWorkflow, dependencyMap) {
334
+ const actionDeps = dependencyMap.get(action.id) || [];
335
+ const resolvedDeps = [];
336
+ for (const depActionId of actionDeps) {
337
+ // Find the workflow step that corresponds to this action
338
+ const depStep = currentWorkflow.find(s => s.goapActionId === depActionId);
339
+ if (depStep) {
340
+ resolvedDeps.push(depStep.id);
341
+ }
342
+ }
343
+ return resolvedDeps;
344
+ }
345
+ /**
346
+ * Map GOAP action category to step type
347
+ */
348
+ getStepTypeFromAction(action) {
349
+ const typeMapping = {
350
+ 'analysis': 'analysis',
351
+ 'test': action.name.includes('Generate') ? 'test-generation' : 'test-execution',
352
+ 'coverage': 'coverage-analysis',
353
+ 'security': 'security-analysis',
354
+ 'performance': 'performance-testing',
355
+ 'process': 'decision-making',
356
+ 'fleet': 'resource-management'
357
+ };
358
+ return typeMapping[action.category] || action.category;
359
+ }
360
+ /**
361
+ * Find alternative paths for resilience
362
+ */
363
+ async findAlternativePaths(primaryPlan, worldState, goal, constraints) {
364
+ const alternatives = [];
365
+ // Try to find alternatives by excluding actions one at a time
366
+ for (const action of primaryPlan.actions) {
367
+ // Skip measurement actions - they're usually required
368
+ const isMeasurement = Object.entries(action.effects).some(([key, effect]) => {
369
+ const effectObj = effect;
370
+ return effectObj?.set === true && (key.includes('Measured') || key.includes('Tested') || key.includes('Evaluated'));
371
+ });
372
+ if (isMeasurement)
373
+ continue;
374
+ try {
375
+ const altPlan = await this.planner.findPlan(worldState, goal.conditions, {
376
+ ...constraints,
377
+ excludedActions: [action.id]
378
+ });
379
+ if (altPlan && altPlan.actions.length > 0) {
380
+ // Only add if it's actually different
381
+ const isDifferent = altPlan.actions.some((a) => !primaryPlan.actions.find((pa) => pa.id === a.id));
382
+ if (isDifferent) {
383
+ alternatives.push(altPlan);
384
+ }
385
+ }
386
+ }
387
+ catch {
388
+ // Ignore failures finding alternatives
389
+ }
390
+ // Limit alternatives
391
+ if (alternatives.length >= 3)
392
+ break;
393
+ }
394
+ return alternatives;
395
+ }
396
+ /**
397
+ * Persist plan to database
398
+ */
399
+ async persistPlan(plan, task, context) {
400
+ const planId = `orch-plan-${Date.now()}-${SecureRandom_1.SecureRandom.generateId(6)}`;
401
+ try {
402
+ this.db.prepare(`
403
+ INSERT INTO goap_plans (
404
+ id, goal_id, sequence, initial_state, goal_state,
405
+ action_sequence, total_cost, estimated_duration,
406
+ status, created_at
407
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'pending', ?)
408
+ `).run(planId, TaskWorkflowGoals_1.TASK_WORKFLOW_GOALS[task.type].id, JSON.stringify(plan.actions.map((a) => a.id)), JSON.stringify(context), JSON.stringify(TaskWorkflowGoals_1.TASK_WORKFLOW_GOALS[task.type].conditions), JSON.stringify(plan.actions.map((a) => ({ id: a.id, name: a.name, cost: a.cost }))), plan.totalCost, plan.estimatedDuration, Date.now());
409
+ }
410
+ catch (error) {
411
+ this.logger.warn('[GOAPTaskOrchestration] Failed to persist plan', { planId, error });
412
+ }
413
+ return planId;
414
+ }
415
+ /**
416
+ * Ensure GOAP tables exist
417
+ */
418
+ async ensureTablesExist() {
419
+ this.db.exec(`
420
+ CREATE TABLE IF NOT EXISTS goap_actions (
421
+ id TEXT PRIMARY KEY,
422
+ name TEXT NOT NULL,
423
+ description TEXT,
424
+ agent_type TEXT NOT NULL,
425
+ preconditions TEXT NOT NULL,
426
+ effects TEXT NOT NULL,
427
+ cost REAL NOT NULL DEFAULT 1.0,
428
+ duration_estimate INTEGER,
429
+ success_rate REAL DEFAULT 1.0,
430
+ execution_count INTEGER DEFAULT 0,
431
+ category TEXT,
432
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
433
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
434
+ );
435
+
436
+ CREATE TABLE IF NOT EXISTS goap_plans (
437
+ id TEXT PRIMARY KEY,
438
+ goal_id TEXT,
439
+ sequence TEXT NOT NULL,
440
+ initial_state TEXT,
441
+ goal_state TEXT,
442
+ action_sequence TEXT,
443
+ total_cost REAL,
444
+ estimated_duration INTEGER,
445
+ actual_duration INTEGER,
446
+ status TEXT DEFAULT 'pending',
447
+ success INTEGER,
448
+ failure_reason TEXT,
449
+ execution_trace TEXT,
450
+ replanned_from TEXT,
451
+ created_at INTEGER,
452
+ executed_at DATETIME,
453
+ completed_at DATETIME,
454
+ started_at DATETIME
455
+ );
456
+ `);
457
+ }
458
+ /**
459
+ * Register orchestration actions in database
460
+ */
461
+ async registerOrchestrationActions() {
462
+ const insertStmt = this.db.prepare(`
463
+ INSERT OR REPLACE INTO goap_actions (
464
+ id, name, description, agent_type, preconditions, effects,
465
+ cost, duration_estimate, category, created_at, updated_at
466
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
467
+ `);
468
+ const insertMany = this.db.transaction((actions) => {
469
+ for (const action of actions) {
470
+ insertStmt.run(action.id, action.name, action.description || '', action.agentType, JSON.stringify(action.preconditions), JSON.stringify(action.effects), action.cost, action.durationEstimate || null, action.category);
471
+ }
472
+ });
473
+ insertMany(actions_1.orchestrationActions);
474
+ }
475
+ /**
476
+ * Close database connection
477
+ */
478
+ close() {
479
+ // Database is managed externally, don't close here
480
+ }
481
+ }
482
+ exports.GOAPTaskOrchestration = GOAPTaskOrchestration;
483
+ /**
484
+ * Factory function to create GOAPTaskOrchestration
485
+ */
486
+ function createGOAPTaskOrchestration(dbPath) {
487
+ const db = new (require('better-sqlite3'))(dbPath);
488
+ return new GOAPTaskOrchestration(db);
489
+ }
490
+ //# sourceMappingURL=GOAPTaskOrchestration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GOAPTaskOrchestration.js","sourceRoot":"","sources":["../../../src/planning/integration/GOAPTaskOrchestration.ts"],"names":[],"mappings":"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"}