agentic-qe 1.3.4 → 1.3.6

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 (136) hide show
  1. package/.claude/agents/qe-code-complexity.md +291 -0
  2. package/.claude/settings.json +2 -2
  3. package/CHANGELOG.md +289 -0
  4. package/README.md +56 -26
  5. package/dist/agents/BaseAgent.d.ts +6 -2
  6. package/dist/agents/BaseAgent.d.ts.map +1 -1
  7. package/dist/agents/BaseAgent.js +62 -51
  8. package/dist/agents/BaseAgent.js.map +1 -1
  9. package/dist/agents/CodeComplexityAnalyzerAgent.d.ts +139 -0
  10. package/dist/agents/CodeComplexityAnalyzerAgent.d.ts.map +1 -0
  11. package/dist/agents/CodeComplexityAnalyzerAgent.js +403 -0
  12. package/dist/agents/CodeComplexityAnalyzerAgent.js.map +1 -0
  13. package/dist/agents/FleetCommanderAgent.js +2 -2
  14. package/dist/agents/FleetCommanderAgent.js.map +1 -1
  15. package/dist/agents/QualityGateAgent.d.ts +5 -5
  16. package/dist/agents/QualityGateAgent.d.ts.map +1 -1
  17. package/dist/agents/QualityGateAgent.js +33 -19
  18. package/dist/agents/QualityGateAgent.js.map +1 -1
  19. package/dist/agents/TestDataArchitectAgent.d.ts +9 -0
  20. package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
  21. package/dist/agents/TestDataArchitectAgent.js +96 -2
  22. package/dist/agents/TestDataArchitectAgent.js.map +1 -1
  23. package/dist/agents/TestGeneratorAgent.d.ts +23 -1
  24. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  25. package/dist/agents/TestGeneratorAgent.js +279 -54
  26. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  27. package/dist/agents/coordination/AgentCoordinator.d.ts +98 -0
  28. package/dist/agents/coordination/AgentCoordinator.d.ts.map +1 -0
  29. package/dist/agents/coordination/AgentCoordinator.js +196 -0
  30. package/dist/agents/coordination/AgentCoordinator.js.map +1 -0
  31. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts +107 -0
  32. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -0
  33. package/dist/agents/lifecycle/AgentLifecycleManager.js +220 -0
  34. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -0
  35. package/dist/agents/memory/AgentMemoryService.d.ts +173 -0
  36. package/dist/agents/memory/AgentMemoryService.d.ts.map +1 -0
  37. package/dist/agents/memory/AgentMemoryService.js +297 -0
  38. package/dist/agents/memory/AgentMemoryService.js.map +1 -0
  39. package/dist/cli/commands/init.d.ts.map +1 -1
  40. package/dist/cli/commands/init.js +45 -3
  41. package/dist/cli/commands/init.js.map +1 -1
  42. package/dist/cli/commands/routing/index.d.ts +1 -1
  43. package/dist/cli/commands/routing/index.d.ts.map +1 -1
  44. package/dist/cli/commands/routing/index.js +29 -19
  45. package/dist/cli/commands/routing/index.js.map +1 -1
  46. package/dist/cli/commands/skills/index.d.ts +4 -0
  47. package/dist/cli/commands/skills/index.d.ts.map +1 -1
  48. package/dist/cli/commands/skills/index.js +8 -2
  49. package/dist/cli/commands/skills/index.js.map +1 -1
  50. package/dist/core/memory/SwarmMemoryManager.d.ts +2 -1
  51. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  52. package/dist/core/memory/SwarmMemoryManager.js +4 -1
  53. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  54. package/dist/core/memory/dao/AccessControlDAO.d.ts +66 -0
  55. package/dist/core/memory/dao/AccessControlDAO.d.ts.map +1 -0
  56. package/dist/core/memory/dao/AccessControlDAO.js +140 -0
  57. package/dist/core/memory/dao/AccessControlDAO.js.map +1 -0
  58. package/dist/core/memory/dao/BaseDAO.d.ts +34 -0
  59. package/dist/core/memory/dao/BaseDAO.d.ts.map +1 -0
  60. package/dist/core/memory/dao/BaseDAO.js +34 -0
  61. package/dist/core/memory/dao/BaseDAO.js.map +1 -0
  62. package/dist/core/memory/dao/BlackboardDAO.d.ts +90 -0
  63. package/dist/core/memory/dao/BlackboardDAO.d.ts.map +1 -0
  64. package/dist/core/memory/dao/BlackboardDAO.js +223 -0
  65. package/dist/core/memory/dao/BlackboardDAO.js.map +1 -0
  66. package/dist/core/memory/dao/EventDAO.d.ts +83 -0
  67. package/dist/core/memory/dao/EventDAO.d.ts.map +1 -0
  68. package/dist/core/memory/dao/EventDAO.js +177 -0
  69. package/dist/core/memory/dao/EventDAO.js.map +1 -0
  70. package/dist/core/memory/dao/MemoryEntryDAO.d.ts +57 -0
  71. package/dist/core/memory/dao/MemoryEntryDAO.d.ts.map +1 -0
  72. package/dist/core/memory/dao/MemoryEntryDAO.js +159 -0
  73. package/dist/core/memory/dao/MemoryEntryDAO.js.map +1 -0
  74. package/dist/core/memory/dao/WorkflowDAO.d.ts +85 -0
  75. package/dist/core/memory/dao/WorkflowDAO.d.ts.map +1 -0
  76. package/dist/core/memory/dao/WorkflowDAO.js +182 -0
  77. package/dist/core/memory/dao/WorkflowDAO.js.map +1 -0
  78. package/dist/core/memory/services/AccessControlService.d.ts +123 -0
  79. package/dist/core/memory/services/AccessControlService.d.ts.map +1 -0
  80. package/dist/core/memory/services/AccessControlService.js +249 -0
  81. package/dist/core/memory/services/AccessControlService.js.map +1 -0
  82. package/dist/core/memory/services/MemoryStoreService.d.ts +69 -0
  83. package/dist/core/memory/services/MemoryStoreService.d.ts.map +1 -0
  84. package/dist/core/memory/services/MemoryStoreService.js +214 -0
  85. package/dist/core/memory/services/MemoryStoreService.js.map +1 -0
  86. package/dist/learning/ExperienceReplayBuffer.d.ts +143 -0
  87. package/dist/learning/ExperienceReplayBuffer.d.ts.map +1 -0
  88. package/dist/learning/ExperienceReplayBuffer.js +255 -0
  89. package/dist/learning/ExperienceReplayBuffer.js.map +1 -0
  90. package/dist/learning/LearningEngine.d.ts +50 -1
  91. package/dist/learning/LearningEngine.d.ts.map +1 -1
  92. package/dist/learning/LearningEngine.js +140 -0
  93. package/dist/learning/LearningEngine.js.map +1 -1
  94. package/dist/learning/QLearning.d.ts +154 -0
  95. package/dist/learning/QLearning.d.ts.map +1 -0
  96. package/dist/learning/QLearning.js +337 -0
  97. package/dist/learning/QLearning.js.map +1 -0
  98. package/dist/learning/index.d.ts +2 -0
  99. package/dist/learning/index.d.ts.map +1 -1
  100. package/dist/learning/index.js +2 -0
  101. package/dist/learning/index.js.map +1 -1
  102. package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
  103. package/dist/mcp/handlers/base-handler.js +4 -1
  104. package/dist/mcp/handlers/base-handler.js.map +1 -1
  105. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +11 -1
  106. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +1 -1
  107. package/dist/mcp/handlers/prediction/regression-risk-analyze.js +63 -8
  108. package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +1 -1
  109. package/dist/mcp/handlers/quality-analyze.d.ts +7 -1
  110. package/dist/mcp/handlers/quality-analyze.d.ts.map +1 -1
  111. package/dist/mcp/handlers/quality-analyze.js +18 -1
  112. package/dist/mcp/handlers/quality-analyze.js.map +1 -1
  113. package/dist/mcp/handlers/test-generate.d.ts.map +1 -1
  114. package/dist/mcp/handlers/test-generate.js +24 -8
  115. package/dist/mcp/handlers/test-generate.js.map +1 -1
  116. package/dist/mcp/services/AgentRegistry.d.ts +5 -0
  117. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  118. package/dist/mcp/services/AgentRegistry.js +19 -0
  119. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  120. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts +11 -1
  121. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts.map +1 -1
  122. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js +12 -0
  123. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js.map +1 -1
  124. package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts +10 -1
  125. package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts.map +1 -1
  126. package/dist/mcp/streaming/TestExecuteStreamHandler.js +11 -0
  127. package/dist/mcp/streaming/TestExecuteStreamHandler.js.map +1 -1
  128. package/dist/reasoning/QEReasoningBank.d.ts +89 -2
  129. package/dist/reasoning/QEReasoningBank.d.ts.map +1 -1
  130. package/dist/reasoning/QEReasoningBank.js +396 -10
  131. package/dist/reasoning/QEReasoningBank.js.map +1 -1
  132. package/dist/utils/__mocks__/Database.d.ts +64 -0
  133. package/dist/utils/__mocks__/Database.d.ts.map +1 -0
  134. package/dist/utils/__mocks__/Database.js +134 -0
  135. package/dist/utils/__mocks__/Database.js.map +1 -0
  136. package/package.json +6 -2
@@ -0,0 +1,98 @@
1
+ /**
2
+ * AgentCoordinator - Handles inter-agent coordination and communication
3
+ *
4
+ * Responsibilities:
5
+ * - Event emission and handling
6
+ * - Message broadcasting to other agents
7
+ * - Status reporting to coordination system
8
+ * - Event handler registration and lifecycle
9
+ *
10
+ * Part of BaseAgent refactoring (Phase 2)
11
+ * Reduces BaseAgent complexity by ~200 LOC
12
+ */
13
+ import { EventEmitter } from 'events';
14
+ import { AgentId, EventHandler, MemoryStore } from '../../types';
15
+ export interface AgentCoordinatorConfig {
16
+ agentId: AgentId;
17
+ eventBus: EventEmitter;
18
+ memoryStore?: MemoryStore;
19
+ }
20
+ export declare class AgentCoordinator {
21
+ private readonly agentId;
22
+ private readonly eventBus;
23
+ private readonly memoryStore?;
24
+ private readonly eventHandlers;
25
+ constructor(config: AgentCoordinatorConfig);
26
+ /**
27
+ * Register an event handler for a specific event type
28
+ * @param handler Event handler configuration
29
+ */
30
+ registerEventHandler<T = any>(handler: EventHandler<T>): void;
31
+ /**
32
+ * Unregister an event handler
33
+ * @param eventType Event type to unregister
34
+ * @param handler Handler function to remove
35
+ */
36
+ unregisterEventHandler(eventType: string, handler: Function): void;
37
+ /**
38
+ * Emit an event to the event bus
39
+ * @param type Event type
40
+ * @param data Event payload
41
+ * @param priority Event priority
42
+ */
43
+ emitEvent(type: string, data: any, priority?: 'low' | 'medium' | 'high' | 'critical'): void;
44
+ /**
45
+ * Broadcast message to other agents
46
+ * @param type Message type
47
+ * @param payload Message payload
48
+ * @param priority Message priority
49
+ */
50
+ broadcastMessage(type: string, payload: any, priority?: 'low' | 'medium' | 'high' | 'critical'): Promise<void>;
51
+ /**
52
+ * Send direct message to specific agent
53
+ * @param toAgentId Target agent ID
54
+ * @param type Message type
55
+ * @param payload Message payload
56
+ * @param priority Message priority
57
+ */
58
+ sendMessage(toAgentId: AgentId, type: string, payload: any, priority?: 'low' | 'medium' | 'high' | 'critical'): Promise<void>;
59
+ /**
60
+ * Report agent status to coordination system
61
+ * @param status Status information to report
62
+ */
63
+ reportStatus(status: string, metrics?: any): Promise<void>;
64
+ /**
65
+ * Clean up all event handlers
66
+ * Should be called during agent termination
67
+ */
68
+ cleanup(): void;
69
+ /**
70
+ * Get registered event types
71
+ */
72
+ getRegisteredEventTypes(): string[];
73
+ /**
74
+ * Get handler count for specific event type
75
+ */
76
+ getHandlerCount(eventType: string): number;
77
+ /**
78
+ * Get total handler count
79
+ */
80
+ getTotalHandlerCount(): number;
81
+ /**
82
+ * Get event handlers map (for backward compatibility)
83
+ */
84
+ getEventHandlers(): Map<string, EventHandler[]>;
85
+ /**
86
+ * Clear all event handlers
87
+ */
88
+ clearAllHandlers(): void;
89
+ /**
90
+ * Generate unique event ID
91
+ */
92
+ private generateEventId;
93
+ /**
94
+ * Generate unique message ID
95
+ */
96
+ private generateMessageId;
97
+ }
98
+ //# sourceMappingURL=AgentCoordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentCoordinator.d.ts","sourceRoot":"","sources":["../../../src/agents/coordination/AgentCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,OAAO,EAEP,YAAY,EAIZ,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;gBAE5D,MAAM,EAAE,sBAAsB;IAM1C;;;OAGG;IACI,oBAAoB,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IASpE;;;;OAIG;IACI,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAezE;;;;;OAKG;IACI,SAAS,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAqB,GAC1D,IAAI;IAcP;;;;;OAKG;IACU,gBAAgB,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,GAAG,EACZ,QAAQ,GAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAqB,GAC1D,OAAO,CAAC,IAAI,CAAC;IAchB;;;;;;OAMG;IACU,WAAW,CACtB,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,GAAG,EACZ,QAAQ,GAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAqB,GAC1D,OAAO,CAAC,IAAI,CAAC;IAchB;;;OAGG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvE;;;OAGG;IACI,OAAO,IAAI,IAAI;IAStB;;OAEG;IACI,uBAAuB,IAAI,MAAM,EAAE;IAI1C;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIjD;;OAEG;IACI,oBAAoB,IAAI,MAAM;IAQrC;;OAEG;IACI,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAItD;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAI/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ /**
3
+ * AgentCoordinator - Handles inter-agent coordination and communication
4
+ *
5
+ * Responsibilities:
6
+ * - Event emission and handling
7
+ * - Message broadcasting to other agents
8
+ * - Status reporting to coordination system
9
+ * - Event handler registration and lifecycle
10
+ *
11
+ * Part of BaseAgent refactoring (Phase 2)
12
+ * Reduces BaseAgent complexity by ~200 LOC
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AgentCoordinator = void 0;
16
+ const SecureRandom_js_1 = require("../../utils/SecureRandom.js");
17
+ class AgentCoordinator {
18
+ constructor(config) {
19
+ this.eventHandlers = new Map();
20
+ this.agentId = config.agentId;
21
+ this.eventBus = config.eventBus;
22
+ this.memoryStore = config.memoryStore;
23
+ }
24
+ /**
25
+ * Register an event handler for a specific event type
26
+ * @param handler Event handler configuration
27
+ */
28
+ registerEventHandler(handler) {
29
+ const handlers = this.eventHandlers.get(handler.eventType) || [];
30
+ handlers.push(handler);
31
+ this.eventHandlers.set(handler.eventType, handlers);
32
+ // Register with event bus
33
+ this.eventBus.on(handler.eventType, handler.handler);
34
+ }
35
+ /**
36
+ * Unregister an event handler
37
+ * @param eventType Event type to unregister
38
+ * @param handler Handler function to remove
39
+ */
40
+ unregisterEventHandler(eventType, handler) {
41
+ const handlers = this.eventHandlers.get(eventType);
42
+ if (!handlers)
43
+ return;
44
+ const index = handlers.findIndex(h => h.handler === handler);
45
+ if (index !== -1) {
46
+ handlers.splice(index, 1);
47
+ this.eventBus.off(eventType, handler);
48
+ }
49
+ if (handlers.length === 0) {
50
+ this.eventHandlers.delete(eventType);
51
+ }
52
+ }
53
+ /**
54
+ * Emit an event to the event bus
55
+ * @param type Event type
56
+ * @param data Event payload
57
+ * @param priority Event priority
58
+ */
59
+ emitEvent(type, data, priority = 'medium') {
60
+ const event = {
61
+ id: this.generateEventId(),
62
+ type,
63
+ source: this.agentId,
64
+ data,
65
+ timestamp: new Date(),
66
+ priority,
67
+ scope: 'global'
68
+ };
69
+ this.eventBus.emit(type, event);
70
+ }
71
+ /**
72
+ * Broadcast message to other agents
73
+ * @param type Message type
74
+ * @param payload Message payload
75
+ * @param priority Message priority
76
+ */
77
+ async broadcastMessage(type, payload, priority = 'medium') {
78
+ const message = {
79
+ id: this.generateMessageId(),
80
+ from: this.agentId,
81
+ to: { id: 'broadcast', type: 'all', created: new Date() },
82
+ type: type,
83
+ payload,
84
+ timestamp: new Date(),
85
+ priority
86
+ };
87
+ this.eventBus.emit('agent.message', message);
88
+ }
89
+ /**
90
+ * Send direct message to specific agent
91
+ * @param toAgentId Target agent ID
92
+ * @param type Message type
93
+ * @param payload Message payload
94
+ * @param priority Message priority
95
+ */
96
+ async sendMessage(toAgentId, type, payload, priority = 'medium') {
97
+ const message = {
98
+ id: this.generateMessageId(),
99
+ from: this.agentId,
100
+ to: toAgentId,
101
+ type: type,
102
+ payload,
103
+ timestamp: new Date(),
104
+ priority
105
+ };
106
+ this.eventBus.emit(`agent.message.${toAgentId.id}`, message);
107
+ }
108
+ /**
109
+ * Report agent status to coordination system
110
+ * @param status Status information to report
111
+ */
112
+ async reportStatus(status, metrics) {
113
+ if (!this.memoryStore) {
114
+ console.warn(`[${this.agentId.id}] Cannot report status: memory store not available`);
115
+ return;
116
+ }
117
+ try {
118
+ const sharedKey = `shared:${this.agentId.type}:status`;
119
+ await this.memoryStore.store(sharedKey, {
120
+ agentId: this.agentId.id,
121
+ status,
122
+ metrics,
123
+ timestamp: new Date()
124
+ });
125
+ // Also emit event
126
+ this.emitEvent('agent.status.updated', {
127
+ agentId: this.agentId,
128
+ status,
129
+ metrics
130
+ });
131
+ }
132
+ catch (error) {
133
+ console.warn(`[${this.agentId.id}] Failed to report status:`, error);
134
+ }
135
+ }
136
+ /**
137
+ * Clean up all event handlers
138
+ * Should be called during agent termination
139
+ */
140
+ cleanup() {
141
+ for (const [eventType, handlers] of this.eventHandlers.entries()) {
142
+ for (const handler of handlers) {
143
+ this.eventBus.off(eventType, handler.handler);
144
+ }
145
+ }
146
+ this.eventHandlers.clear();
147
+ }
148
+ /**
149
+ * Get registered event types
150
+ */
151
+ getRegisteredEventTypes() {
152
+ return Array.from(this.eventHandlers.keys());
153
+ }
154
+ /**
155
+ * Get handler count for specific event type
156
+ */
157
+ getHandlerCount(eventType) {
158
+ return this.eventHandlers.get(eventType)?.length || 0;
159
+ }
160
+ /**
161
+ * Get total handler count
162
+ */
163
+ getTotalHandlerCount() {
164
+ let count = 0;
165
+ for (const handlers of this.eventHandlers.values()) {
166
+ count += handlers.length;
167
+ }
168
+ return count;
169
+ }
170
+ /**
171
+ * Get event handlers map (for backward compatibility)
172
+ */
173
+ getEventHandlers() {
174
+ return this.eventHandlers;
175
+ }
176
+ /**
177
+ * Clear all event handlers
178
+ */
179
+ clearAllHandlers() {
180
+ this.cleanup();
181
+ }
182
+ /**
183
+ * Generate unique event ID
184
+ */
185
+ generateEventId() {
186
+ return `event-${Date.now()}-${SecureRandom_js_1.SecureRandom.generateId(5)}`;
187
+ }
188
+ /**
189
+ * Generate unique message ID
190
+ */
191
+ generateMessageId() {
192
+ return `msg-${Date.now()}-${SecureRandom_js_1.SecureRandom.generateId(5)}`;
193
+ }
194
+ }
195
+ exports.AgentCoordinator = AgentCoordinator;
196
+ //# sourceMappingURL=AgentCoordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentCoordinator.js","sourceRoot":"","sources":["../../../src/agents/coordination/AgentCoordinator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * AgentLifecycleManager - Manages agent lifecycle state transitions
3
+ *
4
+ * Responsibilities:
5
+ * - Status management (INITIALIZING, ACTIVE, IDLE, TERMINATING, TERMINATED, ERROR)
6
+ * - Lifecycle state transitions with validation
7
+ * - Hook coordination during lifecycle events
8
+ * - State transition auditing
9
+ *
10
+ * Part of BaseAgent refactoring (Phase 1)
11
+ * Reduces BaseAgent complexity by ~150 LOC
12
+ */
13
+ import { AgentStatus, AgentId } from '../../types';
14
+ export interface LifecycleHooks {
15
+ onPreInitialization?: () => Promise<void>;
16
+ onPostInitialization?: () => Promise<void>;
17
+ onPreTermination?: () => Promise<void>;
18
+ onPostTermination?: () => Promise<void>;
19
+ }
20
+ export interface StateTransition {
21
+ from: AgentStatus;
22
+ to: AgentStatus;
23
+ timestamp: Date;
24
+ reason?: string;
25
+ }
26
+ export declare class AgentLifecycleManager {
27
+ private status;
28
+ private readonly agentId;
29
+ private readonly transitionHistory;
30
+ private readonly validTransitions;
31
+ constructor(agentId: AgentId);
32
+ /**
33
+ * Initialize the agent lifecycle
34
+ * @param hooks Optional lifecycle hooks to execute
35
+ */
36
+ initialize(hooks?: LifecycleHooks): Promise<void>;
37
+ /**
38
+ * Terminate the agent lifecycle
39
+ * @param hooks Optional lifecycle hooks to execute
40
+ */
41
+ terminate(hooks?: LifecycleHooks): Promise<void>;
42
+ /**
43
+ * Get current agent status
44
+ */
45
+ getStatus(): AgentStatus;
46
+ /**
47
+ * Check if agent is in a specific status
48
+ */
49
+ isInStatus(status: AgentStatus): boolean;
50
+ /**
51
+ * Check if agent is active and can accept tasks
52
+ */
53
+ canAcceptTasks(): boolean;
54
+ /**
55
+ * Mark agent as active (processing task)
56
+ */
57
+ markActive(): void;
58
+ /**
59
+ * Mark agent as idle (ready for next task)
60
+ */
61
+ markIdle(): void;
62
+ /**
63
+ * Mark agent as errored
64
+ */
65
+ markError(reason: string): void;
66
+ /**
67
+ * Get transition history
68
+ */
69
+ getTransitionHistory(): StateTransition[];
70
+ /**
71
+ * Get time in current status
72
+ */
73
+ getTimeInCurrentStatus(): number;
74
+ /**
75
+ * Validate if a state transition is allowed
76
+ * @throws Error if transition is invalid
77
+ */
78
+ validateTransition(from: AgentStatus, to: AgentStatus): void;
79
+ /**
80
+ * Internal method to perform state transition
81
+ */
82
+ private transitionTo;
83
+ /**
84
+ * Build valid state transition map
85
+ * Defines the finite state machine for agent lifecycle
86
+ */
87
+ private buildTransitionMap;
88
+ /**
89
+ * Get status statistics
90
+ */
91
+ getStatusStatistics(): {
92
+ currentStatus: AgentStatus;
93
+ totalTransitions: number;
94
+ timeInCurrentStatus: number;
95
+ statusBreakdown: Map<AgentStatus, number>;
96
+ };
97
+ /**
98
+ * Set agent status directly (for backward compatibility)
99
+ * @deprecated Use transitionTo() or specific methods like markActive() instead
100
+ */
101
+ setStatus(newStatus: AgentStatus): void;
102
+ /**
103
+ * Check if agent is terminating
104
+ */
105
+ isTerminating(): boolean;
106
+ }
107
+ //# sourceMappingURL=AgentLifecycleManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentLifecycleManager.d.ts","sourceRoot":"","sources":["../../../src/agents/lifecycle/AgentLifecycleManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyB;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqC;gBAE1D,OAAO,EAAE,OAAO;IAK5B;;;OAGG;IACU,UAAU,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9D;;;OAGG;IACU,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7D;;OAEG;IACI,SAAS,IAAI,WAAW;IAI/B;;OAEG;IACI,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAI/C;;OAEG;IACI,cAAc,IAAI,OAAO;IAIhC;;OAEG;IACI,UAAU,IAAI,IAAI;IAKzB;;OAEG;IACI,QAAQ,IAAI,IAAI;IAKvB;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACI,oBAAoB,IAAI,eAAe,EAAE;IAIhD;;OAEG;IACI,sBAAsB,IAAI,MAAM;IAMvC;;;OAGG;IACI,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,GAAG,IAAI;IAcnE;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;OAEG;IACI,mBAAmB,IAAI;QAC5B,aAAa,EAAE,WAAW,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;KAC3C;IAkBD;;;OAGG;IACI,SAAS,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAI9C;;OAEG;IACI,aAAa,IAAI,OAAO;CAGhC"}
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ /**
3
+ * AgentLifecycleManager - Manages agent lifecycle state transitions
4
+ *
5
+ * Responsibilities:
6
+ * - Status management (INITIALIZING, ACTIVE, IDLE, TERMINATING, TERMINATED, ERROR)
7
+ * - Lifecycle state transitions with validation
8
+ * - Hook coordination during lifecycle events
9
+ * - State transition auditing
10
+ *
11
+ * Part of BaseAgent refactoring (Phase 1)
12
+ * Reduces BaseAgent complexity by ~150 LOC
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AgentLifecycleManager = void 0;
16
+ const types_1 = require("../../types");
17
+ class AgentLifecycleManager {
18
+ constructor(agentId) {
19
+ this.status = types_1.AgentStatus.INITIALIZING;
20
+ this.transitionHistory = [];
21
+ this.agentId = agentId;
22
+ this.validTransitions = this.buildTransitionMap();
23
+ }
24
+ /**
25
+ * Initialize the agent lifecycle
26
+ * @param hooks Optional lifecycle hooks to execute
27
+ */
28
+ async initialize(hooks) {
29
+ this.validateTransition(this.status, types_1.AgentStatus.INITIALIZING);
30
+ try {
31
+ // Execute pre-initialization hook
32
+ if (hooks?.onPreInitialization) {
33
+ await hooks.onPreInitialization();
34
+ }
35
+ // Transition to ACTIVE
36
+ this.transitionTo(types_1.AgentStatus.ACTIVE, 'Initialization complete');
37
+ // Execute post-initialization hook
38
+ if (hooks?.onPostInitialization) {
39
+ await hooks.onPostInitialization();
40
+ }
41
+ }
42
+ catch (error) {
43
+ this.transitionTo(types_1.AgentStatus.ERROR, `Initialization failed: ${error}`);
44
+ throw error;
45
+ }
46
+ }
47
+ /**
48
+ * Terminate the agent lifecycle
49
+ * @param hooks Optional lifecycle hooks to execute
50
+ */
51
+ async terminate(hooks) {
52
+ this.validateTransition(this.status, types_1.AgentStatus.TERMINATING);
53
+ try {
54
+ // Transition to TERMINATING
55
+ this.transitionTo(types_1.AgentStatus.TERMINATING, 'Termination initiated');
56
+ // Execute pre-termination hook
57
+ if (hooks?.onPreTermination) {
58
+ await hooks.onPreTermination();
59
+ }
60
+ // Transition to TERMINATED
61
+ this.transitionTo(types_1.AgentStatus.TERMINATED, 'Termination complete');
62
+ // Execute post-termination hook
63
+ if (hooks?.onPostTermination) {
64
+ await hooks.onPostTermination();
65
+ }
66
+ }
67
+ catch (error) {
68
+ this.transitionTo(types_1.AgentStatus.ERROR, `Termination failed: ${error}`);
69
+ throw error;
70
+ }
71
+ }
72
+ /**
73
+ * Get current agent status
74
+ */
75
+ getStatus() {
76
+ return this.status;
77
+ }
78
+ /**
79
+ * Check if agent is in a specific status
80
+ */
81
+ isInStatus(status) {
82
+ return this.status === status;
83
+ }
84
+ /**
85
+ * Check if agent is active and can accept tasks
86
+ */
87
+ canAcceptTasks() {
88
+ return this.status === types_1.AgentStatus.ACTIVE || this.status === types_1.AgentStatus.IDLE;
89
+ }
90
+ /**
91
+ * Mark agent as active (processing task)
92
+ */
93
+ markActive() {
94
+ this.validateTransition(this.status, types_1.AgentStatus.ACTIVE);
95
+ this.transitionTo(types_1.AgentStatus.ACTIVE, 'Task execution started');
96
+ }
97
+ /**
98
+ * Mark agent as idle (ready for next task)
99
+ */
100
+ markIdle() {
101
+ this.validateTransition(this.status, types_1.AgentStatus.IDLE);
102
+ this.transitionTo(types_1.AgentStatus.IDLE, 'Task execution completed');
103
+ }
104
+ /**
105
+ * Mark agent as errored
106
+ */
107
+ markError(reason) {
108
+ this.transitionTo(types_1.AgentStatus.ERROR, reason);
109
+ }
110
+ /**
111
+ * Get transition history
112
+ */
113
+ getTransitionHistory() {
114
+ return [...this.transitionHistory];
115
+ }
116
+ /**
117
+ * Get time in current status
118
+ */
119
+ getTimeInCurrentStatus() {
120
+ const lastTransition = this.transitionHistory[this.transitionHistory.length - 1];
121
+ if (!lastTransition)
122
+ return 0;
123
+ return Date.now() - lastTransition.timestamp.getTime();
124
+ }
125
+ /**
126
+ * Validate if a state transition is allowed
127
+ * @throws Error if transition is invalid
128
+ */
129
+ validateTransition(from, to) {
130
+ // Allow same-state transitions
131
+ if (from === to)
132
+ return;
133
+ // Check if transition is valid
134
+ const validNextStates = this.validTransitions.get(from);
135
+ if (!validNextStates || !validNextStates.has(to)) {
136
+ throw new Error(`Invalid lifecycle transition for agent ${this.agentId.id}: ` +
137
+ `Cannot transition from ${from} to ${to}`);
138
+ }
139
+ }
140
+ /**
141
+ * Internal method to perform state transition
142
+ */
143
+ transitionTo(newStatus, reason) {
144
+ const transition = {
145
+ from: this.status,
146
+ to: newStatus,
147
+ timestamp: new Date(),
148
+ reason
149
+ };
150
+ this.status = newStatus;
151
+ this.transitionHistory.push(transition);
152
+ }
153
+ /**
154
+ * Build valid state transition map
155
+ * Defines the finite state machine for agent lifecycle
156
+ */
157
+ buildTransitionMap() {
158
+ return new Map([
159
+ // INITIALIZING can transition to ACTIVE or ERROR
160
+ [types_1.AgentStatus.INITIALIZING, new Set([
161
+ types_1.AgentStatus.ACTIVE,
162
+ types_1.AgentStatus.ERROR
163
+ ])],
164
+ // ACTIVE can transition to IDLE, TERMINATING, or ERROR
165
+ [types_1.AgentStatus.ACTIVE, new Set([
166
+ types_1.AgentStatus.IDLE,
167
+ types_1.AgentStatus.TERMINATING,
168
+ types_1.AgentStatus.ERROR,
169
+ types_1.AgentStatus.ACTIVE // Allow re-entry for task processing
170
+ ])],
171
+ // IDLE can transition to ACTIVE, TERMINATING, or ERROR
172
+ [types_1.AgentStatus.IDLE, new Set([
173
+ types_1.AgentStatus.ACTIVE,
174
+ types_1.AgentStatus.TERMINATING,
175
+ types_1.AgentStatus.ERROR
176
+ ])],
177
+ // TERMINATING can transition to TERMINATED or ERROR
178
+ [types_1.AgentStatus.TERMINATING, new Set([
179
+ types_1.AgentStatus.TERMINATED,
180
+ types_1.AgentStatus.ERROR
181
+ ])],
182
+ // TERMINATED is a final state
183
+ [types_1.AgentStatus.TERMINATED, new Set()],
184
+ // ERROR can transition to TERMINATING (for cleanup)
185
+ [types_1.AgentStatus.ERROR, new Set([
186
+ types_1.AgentStatus.TERMINATING
187
+ ])]
188
+ ]);
189
+ }
190
+ /**
191
+ * Get status statistics
192
+ */
193
+ getStatusStatistics() {
194
+ const statusBreakdown = new Map();
195
+ for (const transition of this.transitionHistory) {
196
+ statusBreakdown.set(transition.to, (statusBreakdown.get(transition.to) || 0) + 1);
197
+ }
198
+ return {
199
+ currentStatus: this.status,
200
+ totalTransitions: this.transitionHistory.length,
201
+ timeInCurrentStatus: this.getTimeInCurrentStatus(),
202
+ statusBreakdown
203
+ };
204
+ }
205
+ /**
206
+ * Set agent status directly (for backward compatibility)
207
+ * @deprecated Use transitionTo() or specific methods like markActive() instead
208
+ */
209
+ setStatus(newStatus) {
210
+ this.status = newStatus;
211
+ }
212
+ /**
213
+ * Check if agent is terminating
214
+ */
215
+ isTerminating() {
216
+ return this.status === types_1.AgentStatus.TERMINATING || this.status === types_1.AgentStatus.TERMINATED;
217
+ }
218
+ }
219
+ exports.AgentLifecycleManager = AgentLifecycleManager;
220
+ //# sourceMappingURL=AgentLifecycleManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentLifecycleManager.js","sourceRoot":"","sources":["../../../src/agents/lifecycle/AgentLifecycleManager.ts"],"names":[],"mappings":"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"}