agentic-qe 2.3.5 → 2.4.0

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 (170) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +56 -49
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +208 -604
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/agents/FlakyTestHunterAgent.d.ts +2 -2
  8. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  9. package/dist/agents/FlakyTestHunterAgent.js +8 -104
  10. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  11. package/dist/agents/TestExecutorAgent.d.ts +1 -1
  12. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  13. package/dist/agents/TestExecutorAgent.js +4 -46
  14. package/dist/agents/TestExecutorAgent.js.map +1 -1
  15. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  16. package/dist/agents/TestGeneratorAgent.js +15 -35
  17. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  18. package/dist/agents/adapters/CoordinatorAdapter.d.ts +47 -0
  19. package/dist/agents/adapters/CoordinatorAdapter.d.ts.map +1 -0
  20. package/dist/agents/adapters/CoordinatorAdapter.js +266 -0
  21. package/dist/agents/adapters/CoordinatorAdapter.js.map +1 -0
  22. package/dist/agents/adapters/LearningEngineAdapter.d.ts +45 -0
  23. package/dist/agents/adapters/LearningEngineAdapter.d.ts.map +1 -0
  24. package/dist/agents/adapters/LearningEngineAdapter.js +279 -0
  25. package/dist/agents/adapters/LearningEngineAdapter.js.map +1 -0
  26. package/dist/agents/adapters/LifecycleManagerAdapter.d.ts +45 -0
  27. package/dist/agents/adapters/LifecycleManagerAdapter.d.ts.map +1 -0
  28. package/dist/agents/adapters/LifecycleManagerAdapter.js +128 -0
  29. package/dist/agents/adapters/LifecycleManagerAdapter.js.map +1 -0
  30. package/dist/agents/adapters/MemoryServiceAdapter.d.ts +96 -0
  31. package/dist/agents/adapters/MemoryServiceAdapter.d.ts.map +1 -0
  32. package/dist/agents/adapters/MemoryServiceAdapter.js +266 -0
  33. package/dist/agents/adapters/MemoryServiceAdapter.js.map +1 -0
  34. package/dist/agents/adapters/index.d.ts +14 -0
  35. package/dist/agents/adapters/index.d.ts.map +1 -0
  36. package/dist/agents/adapters/index.js +25 -0
  37. package/dist/agents/adapters/index.js.map +1 -0
  38. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
  39. package/dist/agents/lifecycle/AgentLifecycleManager.js +12 -6
  40. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
  41. package/dist/core/cache/BinaryCacheBuilder.d.ts +84 -0
  42. package/dist/core/cache/BinaryCacheBuilder.d.ts.map +1 -0
  43. package/dist/core/cache/BinaryCacheBuilder.js +225 -0
  44. package/dist/core/cache/BinaryCacheBuilder.js.map +1 -0
  45. package/dist/core/cache/BinaryCacheManager.d.ts +142 -0
  46. package/dist/core/cache/BinaryCacheManager.d.ts.map +1 -0
  47. package/dist/core/cache/BinaryCacheManager.js +354 -0
  48. package/dist/core/cache/BinaryCacheManager.js.map +1 -0
  49. package/dist/core/cache/BinaryCacheReader.d.ts +129 -0
  50. package/dist/core/cache/BinaryCacheReader.d.ts.map +1 -0
  51. package/dist/core/cache/BinaryCacheReader.js +243 -0
  52. package/dist/core/cache/BinaryCacheReader.js.map +1 -0
  53. package/dist/core/cache/BinaryMetadataCache.d.ts +533 -0
  54. package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -0
  55. package/dist/core/cache/BinaryMetadataCache.js +142 -0
  56. package/dist/core/cache/BinaryMetadataCache.js.map +1 -0
  57. package/dist/core/cache/CacheInvalidator.d.ts +103 -0
  58. package/dist/core/cache/CacheInvalidator.d.ts.map +1 -0
  59. package/dist/core/cache/CacheInvalidator.js +152 -0
  60. package/dist/core/cache/CacheInvalidator.js.map +1 -0
  61. package/dist/core/cache/CacheValidator.d.ts +69 -0
  62. package/dist/core/cache/CacheValidator.d.ts.map +1 -0
  63. package/dist/core/cache/CacheValidator.js +189 -0
  64. package/dist/core/cache/CacheValidator.js.map +1 -0
  65. package/dist/core/cache/MessagePackSerializer.d.ts +163 -0
  66. package/dist/core/cache/MessagePackSerializer.d.ts.map +1 -0
  67. package/dist/core/cache/MessagePackSerializer.js +274 -0
  68. package/dist/core/cache/MessagePackSerializer.js.map +1 -0
  69. package/dist/core/cache/index.d.ts +58 -0
  70. package/dist/core/cache/index.d.ts.map +1 -0
  71. package/dist/core/cache/index.js +102 -0
  72. package/dist/core/cache/index.js.map +1 -0
  73. package/dist/core/index.d.ts +2 -0
  74. package/dist/core/index.d.ts.map +1 -1
  75. package/dist/core/index.js +18 -0
  76. package/dist/core/index.js.map +1 -1
  77. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  78. package/dist/core/memory/PatternStoreFactory.d.ts +28 -0
  79. package/dist/core/memory/PatternStoreFactory.d.ts.map +1 -1
  80. package/dist/core/memory/PatternStoreFactory.js +68 -3
  81. package/dist/core/memory/PatternStoreFactory.js.map +1 -1
  82. package/dist/core/platform/FileOperations.d.ts +124 -0
  83. package/dist/core/platform/FileOperations.d.ts.map +1 -0
  84. package/dist/core/platform/FileOperations.js +371 -0
  85. package/dist/core/platform/FileOperations.js.map +1 -0
  86. package/dist/core/platform/PlatformDetector.d.ts +53 -0
  87. package/dist/core/platform/PlatformDetector.d.ts.map +1 -0
  88. package/dist/core/platform/PlatformDetector.js +251 -0
  89. package/dist/core/platform/PlatformDetector.js.map +1 -0
  90. package/dist/core/platform/index.d.ts +12 -0
  91. package/dist/core/platform/index.d.ts.map +1 -0
  92. package/dist/core/platform/index.js +28 -0
  93. package/dist/core/platform/index.js.map +1 -0
  94. package/dist/core/strategies/AcceleratedLearningStrategy.d.ts +74 -0
  95. package/dist/core/strategies/AcceleratedLearningStrategy.d.ts.map +1 -0
  96. package/dist/core/strategies/AcceleratedLearningStrategy.js +200 -0
  97. package/dist/core/strategies/AcceleratedLearningStrategy.js.map +1 -0
  98. package/dist/core/strategies/AgentCoordinationStrategy.d.ts +157 -0
  99. package/dist/core/strategies/AgentCoordinationStrategy.d.ts.map +1 -0
  100. package/dist/core/strategies/AgentCoordinationStrategy.js +12 -0
  101. package/dist/core/strategies/AgentCoordinationStrategy.js.map +1 -0
  102. package/dist/core/strategies/AgentLearningStrategy.d.ts +200 -0
  103. package/dist/core/strategies/AgentLearningStrategy.d.ts.map +1 -0
  104. package/dist/core/strategies/AgentLearningStrategy.js +13 -0
  105. package/dist/core/strategies/AgentLearningStrategy.js.map +1 -0
  106. package/dist/core/strategies/AgentLifecycleStrategy.d.ts +116 -0
  107. package/dist/core/strategies/AgentLifecycleStrategy.d.ts.map +1 -0
  108. package/dist/core/strategies/AgentLifecycleStrategy.js +12 -0
  109. package/dist/core/strategies/AgentLifecycleStrategy.js.map +1 -0
  110. package/dist/core/strategies/AgentMemoryStrategy.d.ts +154 -0
  111. package/dist/core/strategies/AgentMemoryStrategy.d.ts.map +1 -0
  112. package/dist/core/strategies/AgentMemoryStrategy.js +13 -0
  113. package/dist/core/strategies/AgentMemoryStrategy.js.map +1 -0
  114. package/dist/core/strategies/DefaultCoordinationStrategy.d.ts +105 -0
  115. package/dist/core/strategies/DefaultCoordinationStrategy.d.ts.map +1 -0
  116. package/dist/core/strategies/DefaultCoordinationStrategy.js +332 -0
  117. package/dist/core/strategies/DefaultCoordinationStrategy.js.map +1 -0
  118. package/dist/core/strategies/DefaultLearningStrategy.d.ts +120 -0
  119. package/dist/core/strategies/DefaultLearningStrategy.d.ts.map +1 -0
  120. package/dist/core/strategies/DefaultLearningStrategy.js +365 -0
  121. package/dist/core/strategies/DefaultLearningStrategy.js.map +1 -0
  122. package/dist/core/strategies/DefaultLifecycleStrategy.d.ts +129 -0
  123. package/dist/core/strategies/DefaultLifecycleStrategy.d.ts.map +1 -0
  124. package/dist/core/strategies/DefaultLifecycleStrategy.js +297 -0
  125. package/dist/core/strategies/DefaultLifecycleStrategy.js.map +1 -0
  126. package/dist/core/strategies/DefaultMemoryStrategy.d.ts +91 -0
  127. package/dist/core/strategies/DefaultMemoryStrategy.d.ts.map +1 -0
  128. package/dist/core/strategies/DefaultMemoryStrategy.js +257 -0
  129. package/dist/core/strategies/DefaultMemoryStrategy.js.map +1 -0
  130. package/dist/core/strategies/DistributedMemoryStrategy.d.ts +85 -0
  131. package/dist/core/strategies/DistributedMemoryStrategy.d.ts.map +1 -0
  132. package/dist/core/strategies/DistributedMemoryStrategy.js +126 -0
  133. package/dist/core/strategies/DistributedMemoryStrategy.js.map +1 -0
  134. package/dist/core/strategies/index.d.ts +95 -0
  135. package/dist/core/strategies/index.d.ts.map +1 -0
  136. package/dist/core/strategies/index.js +65 -0
  137. package/dist/core/strategies/index.js.map +1 -0
  138. package/dist/learning/PerformanceOptimizer.js +2 -2
  139. package/dist/learning/PerformanceOptimizer.js.map +1 -1
  140. package/dist/mcp/handlers/base-handler.d.ts +28 -1
  141. package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
  142. package/dist/mcp/handlers/base-handler.js +41 -0
  143. package/dist/mcp/handlers/base-handler.js.map +1 -1
  144. package/dist/mcp/server-instructions.d.ts +1 -1
  145. package/dist/mcp/server-instructions.js +1 -1
  146. package/dist/output/AIActionSuggester.d.ts +98 -0
  147. package/dist/output/AIActionSuggester.d.ts.map +1 -0
  148. package/dist/output/AIActionSuggester.js +499 -0
  149. package/dist/output/AIActionSuggester.js.map +1 -0
  150. package/dist/output/CLIOutputHelper.d.ts +169 -0
  151. package/dist/output/CLIOutputHelper.d.ts.map +1 -0
  152. package/dist/output/CLIOutputHelper.js +320 -0
  153. package/dist/output/CLIOutputHelper.js.map +1 -0
  154. package/dist/output/OutputFormatter.d.ts +764 -0
  155. package/dist/output/OutputFormatter.d.ts.map +1 -0
  156. package/dist/output/OutputFormatter.js +125 -0
  157. package/dist/output/OutputFormatter.js.map +1 -0
  158. package/dist/output/OutputFormatterImpl.d.ts +131 -0
  159. package/dist/output/OutputFormatterImpl.d.ts.map +1 -0
  160. package/dist/output/OutputFormatterImpl.js +556 -0
  161. package/dist/output/OutputFormatterImpl.js.map +1 -0
  162. package/dist/output/examples.d.ts +38 -0
  163. package/dist/output/examples.d.ts.map +1 -0
  164. package/dist/output/examples.js +503 -0
  165. package/dist/output/examples.js.map +1 -0
  166. package/dist/output/index.d.ts +16 -0
  167. package/dist/output/index.d.ts.map +1 -0
  168. package/dist/output/index.js +58 -0
  169. package/dist/output/index.js.map +1 -0
  170. package/package.json +4 -1
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+ /**
3
+ * DefaultLifecycleStrategy - Standard agent lifecycle implementation
4
+ *
5
+ * Provides the default initialization, state management, and cleanup behavior.
6
+ * Wraps existing AgentLifecycleManager for backward compatibility.
7
+ *
8
+ * @module core/strategies/DefaultLifecycleStrategy
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DisabledLifecycleStrategy = exports.PooledLifecycleStrategy = exports.DefaultLifecycleStrategy = void 0;
13
+ exports.createLifecycleStrategy = createLifecycleStrategy;
14
+ const types_1 = require("../../types");
15
+ /**
16
+ * DefaultLifecycleStrategy - Standard lifecycle management
17
+ *
18
+ * Uses a state machine for lifecycle transitions:
19
+ * INITIALIZING → IDLE → ACTIVE → IDLE/ERROR → TERMINATED
20
+ */
21
+ class DefaultLifecycleStrategy {
22
+ constructor() {
23
+ this.status = types_1.AgentStatus.INITIALIZING;
24
+ this.stateTransitions = 0;
25
+ this.tasksExecuted = 0;
26
+ this.lastActivity = new Date();
27
+ this.lifecycleHandlers = [];
28
+ // Valid state transitions
29
+ this.validTransitions = {
30
+ [types_1.AgentStatus.INITIALIZING]: [types_1.AgentStatus.IDLE, types_1.AgentStatus.ERROR, types_1.AgentStatus.TERMINATED],
31
+ [types_1.AgentStatus.IDLE]: [types_1.AgentStatus.ACTIVE, types_1.AgentStatus.TERMINATED, types_1.AgentStatus.ERROR, types_1.AgentStatus.STOPPING],
32
+ [types_1.AgentStatus.ACTIVE]: [types_1.AgentStatus.IDLE, types_1.AgentStatus.ERROR, types_1.AgentStatus.TERMINATED, types_1.AgentStatus.BUSY],
33
+ [types_1.AgentStatus.BUSY]: [types_1.AgentStatus.ACTIVE, types_1.AgentStatus.IDLE, types_1.AgentStatus.ERROR],
34
+ [types_1.AgentStatus.ERROR]: [types_1.AgentStatus.IDLE, types_1.AgentStatus.TERMINATED, types_1.AgentStatus.STOPPING],
35
+ [types_1.AgentStatus.STOPPING]: [types_1.AgentStatus.STOPPED, types_1.AgentStatus.TERMINATED],
36
+ [types_1.AgentStatus.STOPPED]: [types_1.AgentStatus.TERMINATED, types_1.AgentStatus.IDLE],
37
+ [types_1.AgentStatus.TERMINATING]: [types_1.AgentStatus.TERMINATED],
38
+ [types_1.AgentStatus.TERMINATED]: [],
39
+ };
40
+ }
41
+ /**
42
+ * Initialize the lifecycle strategy
43
+ */
44
+ async initialize(config) {
45
+ const startTime = performance.now();
46
+ this.config = config;
47
+ this.startTime = new Date();
48
+ // Simulate initialization work
49
+ await this.performInitialization();
50
+ this.initTime = performance.now() - startTime;
51
+ await this.transitionTo(types_1.AgentStatus.IDLE, 'Initialization complete');
52
+ }
53
+ /**
54
+ * Override this in subclasses to customize initialization
55
+ */
56
+ async performInitialization() {
57
+ // Default: no additional initialization
58
+ }
59
+ /**
60
+ * Get current agent status
61
+ */
62
+ getStatus() {
63
+ return this.status;
64
+ }
65
+ /**
66
+ * Transition to a new status with validation
67
+ */
68
+ async transitionTo(newStatus, reason) {
69
+ const validNextStates = this.validTransitions[this.status] || [];
70
+ if (!validNextStates.includes(newStatus)) {
71
+ throw new Error(`Invalid state transition: ${this.status} → ${newStatus}. ` +
72
+ `Valid transitions: ${validNextStates.join(', ')}`);
73
+ }
74
+ const previousStatus = this.status;
75
+ this.status = newStatus;
76
+ this.stateTransitions++;
77
+ this.lastActivity = new Date();
78
+ // Notify lifecycle handlers
79
+ const event = {
80
+ previousStatus,
81
+ newStatus,
82
+ timestamp: this.lastActivity,
83
+ reason,
84
+ };
85
+ for (const handler of this.lifecycleHandlers) {
86
+ try {
87
+ handler(event);
88
+ }
89
+ catch (error) {
90
+ console.error('[DefaultLifecycleStrategy] Handler error:', error);
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * Wait for agent to reach a specific status
96
+ */
97
+ async waitForStatus(targetStatus, timeout) {
98
+ if (this.status === targetStatus) {
99
+ return;
100
+ }
101
+ return new Promise((resolve, reject) => {
102
+ const startTime = Date.now();
103
+ const checkStatus = () => {
104
+ if (this.status === targetStatus) {
105
+ resolve();
106
+ return;
107
+ }
108
+ if (Date.now() - startTime > timeout) {
109
+ reject(new Error(`Timeout waiting for status '${targetStatus}'. Current: '${this.status}'`));
110
+ return;
111
+ }
112
+ setTimeout(checkStatus, 50);
113
+ };
114
+ checkStatus();
115
+ });
116
+ }
117
+ /**
118
+ * Wait for agent to be ready (idle)
119
+ */
120
+ async waitForReady(timeout) {
121
+ return this.waitForStatus(types_1.AgentStatus.IDLE, timeout);
122
+ }
123
+ /**
124
+ * Shutdown the agent
125
+ */
126
+ async shutdown() {
127
+ if (this.status === types_1.AgentStatus.TERMINATED) {
128
+ return; // Already terminated
129
+ }
130
+ try {
131
+ await this.performShutdown();
132
+ await this.transitionTo(types_1.AgentStatus.TERMINATED, 'Shutdown complete');
133
+ }
134
+ catch (error) {
135
+ await this.transitionTo(types_1.AgentStatus.ERROR, `Shutdown error: ${error}`);
136
+ throw error;
137
+ }
138
+ }
139
+ /**
140
+ * Override this in subclasses to customize shutdown
141
+ */
142
+ async performShutdown() {
143
+ // Default: no additional shutdown
144
+ }
145
+ /**
146
+ * Reset agent state for reuse (for PooledLifecycleStrategy)
147
+ */
148
+ async reset() {
149
+ if (this.status === types_1.AgentStatus.TERMINATED) {
150
+ throw new Error('Cannot reset terminated agent');
151
+ }
152
+ this.tasksExecuted = 0;
153
+ this.lastActivity = new Date();
154
+ await this.transitionTo(types_1.AgentStatus.IDLE, 'Reset for reuse');
155
+ }
156
+ /**
157
+ * Called before task execution
158
+ */
159
+ async onPreTask(data) {
160
+ if (this.status !== types_1.AgentStatus.IDLE && this.status !== types_1.AgentStatus.ACTIVE) {
161
+ throw new Error(`Cannot execute task in status '${this.status}'`);
162
+ }
163
+ const taskId = data.assignment?.task?.id || 'unknown';
164
+ await this.transitionTo(types_1.AgentStatus.ACTIVE, `Starting task: ${taskId}`);
165
+ this.lastActivity = new Date();
166
+ }
167
+ /**
168
+ * Called after successful task execution
169
+ */
170
+ async onPostTask(data) {
171
+ this.tasksExecuted++;
172
+ this.lastActivity = new Date();
173
+ const taskId = data.assignment?.task?.id || 'unknown';
174
+ await this.transitionTo(types_1.AgentStatus.IDLE, `Completed task: ${taskId}`);
175
+ }
176
+ /**
177
+ * Called when task execution fails
178
+ */
179
+ async onTaskError(data) {
180
+ this.lastActivity = new Date();
181
+ const canRetry = data.context?.canRetry !== false;
182
+ // Don't transition to error for recoverable failures
183
+ if (canRetry) {
184
+ await this.transitionTo(types_1.AgentStatus.IDLE, `Recovered from error: ${data.error.message}`);
185
+ }
186
+ else {
187
+ await this.transitionTo(types_1.AgentStatus.ERROR, `Task failed: ${data.error.message}`);
188
+ }
189
+ }
190
+ /**
191
+ * Subscribe to lifecycle events
192
+ */
193
+ onLifecycleChange(handler) {
194
+ this.lifecycleHandlers.push(handler);
195
+ }
196
+ /**
197
+ * Check if agent can accept new tasks
198
+ */
199
+ canAcceptTask() {
200
+ return this.status === types_1.AgentStatus.IDLE || this.status === types_1.AgentStatus.ACTIVE;
201
+ }
202
+ /**
203
+ * Get lifecycle metrics
204
+ */
205
+ getMetrics() {
206
+ return {
207
+ initializationTime: this.initTime ?? 0,
208
+ uptime: this.startTime ? Date.now() - this.startTime.getTime() : 0,
209
+ stateTransitions: this.stateTransitions,
210
+ tasksExecuted: this.tasksExecuted,
211
+ lastActivity: this.lastActivity,
212
+ };
213
+ }
214
+ }
215
+ exports.DefaultLifecycleStrategy = DefaultLifecycleStrategy;
216
+ /**
217
+ * PooledLifecycleStrategy - For agent pooling (reusable agents)
218
+ *
219
+ * Optimizes for fast reset and reuse instead of full initialization.
220
+ */
221
+ class PooledLifecycleStrategy extends DefaultLifecycleStrategy {
222
+ constructor() {
223
+ super(...arguments);
224
+ this.reuseCount = 0;
225
+ }
226
+ /**
227
+ * Faster reset for pooled agents
228
+ */
229
+ async reset() {
230
+ this.reuseCount++;
231
+ await super.reset();
232
+ }
233
+ /**
234
+ * Get pool-specific metrics
235
+ */
236
+ getPoolMetrics() {
237
+ return {
238
+ ...this.getMetrics(),
239
+ reuseCount: this.reuseCount,
240
+ poolId: this.poolId,
241
+ };
242
+ }
243
+ }
244
+ exports.PooledLifecycleStrategy = PooledLifecycleStrategy;
245
+ /**
246
+ * DisabledLifecycleStrategy - No-op for testing/benchmarks
247
+ */
248
+ class DisabledLifecycleStrategy {
249
+ constructor() {
250
+ this.status = types_1.AgentStatus.IDLE;
251
+ }
252
+ async initialize() {
253
+ this.status = types_1.AgentStatus.IDLE;
254
+ }
255
+ getStatus() {
256
+ return this.status;
257
+ }
258
+ async transitionTo(status) {
259
+ this.status = status;
260
+ }
261
+ async waitForStatus() {
262
+ // No-op
263
+ }
264
+ async waitForReady() {
265
+ // No-op
266
+ }
267
+ async shutdown() {
268
+ this.status = types_1.AgentStatus.TERMINATED;
269
+ }
270
+ async onPreTask() {
271
+ this.status = types_1.AgentStatus.ACTIVE;
272
+ }
273
+ async onPostTask() {
274
+ this.status = types_1.AgentStatus.IDLE;
275
+ }
276
+ async onTaskError() {
277
+ this.status = types_1.AgentStatus.IDLE;
278
+ }
279
+ canAcceptTask() {
280
+ return this.status === types_1.AgentStatus.IDLE || this.status === types_1.AgentStatus.ACTIVE;
281
+ }
282
+ }
283
+ exports.DisabledLifecycleStrategy = DisabledLifecycleStrategy;
284
+ /**
285
+ * Factory function for creating lifecycle strategies
286
+ */
287
+ function createLifecycleStrategy(type = 'default') {
288
+ switch (type) {
289
+ case 'pooled':
290
+ return new PooledLifecycleStrategy();
291
+ case 'disabled':
292
+ return new DisabledLifecycleStrategy();
293
+ default:
294
+ return new DefaultLifecycleStrategy();
295
+ }
296
+ }
297
+ //# sourceMappingURL=DefaultLifecycleStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultLifecycleStrategy.js","sourceRoot":"","sources":["../../../src/core/strategies/DefaultLifecycleStrategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * DefaultMemoryStrategy - Standard agent memory implementation
3
+ *
4
+ * Wraps SwarmMemoryManager for backward compatibility.
5
+ * Provides local and shared memory operations.
6
+ *
7
+ * @module core/strategies/DefaultMemoryStrategy
8
+ * @version 1.0.0
9
+ */
10
+ import type { QEAgentType, MemoryStore } from '../../types';
11
+ import type { SwarmMemoryManager } from '../memory/SwarmMemoryManager';
12
+ import type { AgentMemoryStrategy, MemoryOptions, MemoryEntry, MemoryQueryOptions, MemoryStats } from './AgentMemoryStrategy';
13
+ /**
14
+ * DefaultMemoryStrategy - SQLite-backed storage via SwarmMemoryManager
15
+ */
16
+ export declare class DefaultMemoryStrategy implements AgentMemoryStrategy {
17
+ private memoryStore;
18
+ private agentId?;
19
+ private stats;
20
+ private hits;
21
+ private misses;
22
+ constructor(memoryStore: MemoryStore | SwarmMemoryManager, agentId?: string);
23
+ /**
24
+ * Initialize the memory strategy
25
+ */
26
+ initialize(): Promise<void>;
27
+ /**
28
+ * Store a value in agent memory
29
+ */
30
+ store(key: string, value: unknown, options?: MemoryOptions): Promise<void>;
31
+ /**
32
+ * Retrieve a value from agent memory
33
+ */
34
+ retrieve<T = unknown>(key: string): Promise<T | undefined>;
35
+ /**
36
+ * Delete a value from agent memory
37
+ */
38
+ delete(key: string): Promise<boolean>;
39
+ /**
40
+ * Check if a key exists
41
+ */
42
+ exists(key: string): Promise<boolean>;
43
+ /**
44
+ * Store in shared memory (accessible by other agents)
45
+ */
46
+ storeShared(agentType: QEAgentType, key: string, value: unknown, options?: MemoryOptions): Promise<void>;
47
+ /**
48
+ * Retrieve from another agent's shared memory
49
+ */
50
+ retrieveShared<T = unknown>(agentType: QEAgentType, key: string): Promise<T | undefined>;
51
+ /**
52
+ * Bulk store multiple entries
53
+ */
54
+ bulkStore(entries: MemoryEntry[]): Promise<void>;
55
+ /**
56
+ * Bulk retrieve multiple values
57
+ */
58
+ bulkRetrieve<T = unknown>(keys: string[]): Promise<Map<string, T>>;
59
+ /**
60
+ * Bulk delete multiple keys
61
+ */
62
+ bulkDelete(keys: string[]): Promise<number>;
63
+ /**
64
+ * Query memory entries
65
+ */
66
+ query<T = unknown>(options: MemoryQueryOptions): Promise<MemoryEntry[]>;
67
+ /**
68
+ * List all keys matching a pattern
69
+ */
70
+ listKeys(pattern?: string): Promise<string[]>;
71
+ /**
72
+ * Close connections and cleanup
73
+ */
74
+ close(): Promise<void>;
75
+ /**
76
+ * Clear all agent memory
77
+ */
78
+ clear(): Promise<void>;
79
+ /**
80
+ * Get memory statistics
81
+ */
82
+ getStats(): Promise<MemoryStats>;
83
+ private prefixKey;
84
+ private updateHitRate;
85
+ private isSwarmMemoryManager;
86
+ }
87
+ /**
88
+ * Factory function for creating memory strategies
89
+ */
90
+ export declare function createMemoryStrategy(memoryStore: MemoryStore | SwarmMemoryManager, agentId?: string): AgentMemoryStrategy;
91
+ //# sourceMappingURL=DefaultMemoryStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultMemoryStrategy.d.ts","sourceRoot":"","sources":["../../../src/core/strategies/DefaultMemoryStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,8BAA8B,CAAC;AACrF,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,qBAAa,qBAAsB,YAAW,mBAAmB;IAC/D,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,KAAK,CAOX;IACF,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;gBAEP,WAAW,EAAE,WAAW,GAAG,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM;IAK3E;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC;;OAEG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBhF;;OAEG;IACG,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAoBhE;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB3C;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3C;;OAEG;IACG,WAAW,CACf,SAAS,EAAE,WAAW,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,cAAc,CAAC,CAAC,GAAG,OAAO,EAC9B,SAAS,EAAE,WAAW,EACtB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKzB;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD;;OAEG;IACG,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAexE;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAcjD;;OAEG;IACG,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAkB7E;;OAEG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQnD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAatC,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,oBAAoB;CAK7B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,GAAG,kBAAkB,EAC7C,OAAO,CAAC,EAAE,MAAM,GACf,mBAAmB,CAErB"}
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+ /**
3
+ * DefaultMemoryStrategy - Standard agent memory implementation
4
+ *
5
+ * Wraps SwarmMemoryManager for backward compatibility.
6
+ * Provides local and shared memory operations.
7
+ *
8
+ * @module core/strategies/DefaultMemoryStrategy
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DefaultMemoryStrategy = void 0;
13
+ exports.createMemoryStrategy = createMemoryStrategy;
14
+ /**
15
+ * DefaultMemoryStrategy - SQLite-backed storage via SwarmMemoryManager
16
+ */
17
+ class DefaultMemoryStrategy {
18
+ constructor(memoryStore, agentId) {
19
+ this.stats = {
20
+ totalEntries: 0,
21
+ totalSize: 0,
22
+ hitRate: 0,
23
+ missRate: 0,
24
+ evictionCount: 0,
25
+ lastCleanup: new Date(),
26
+ };
27
+ this.hits = 0;
28
+ this.misses = 0;
29
+ this.memoryStore = memoryStore;
30
+ this.agentId = agentId;
31
+ }
32
+ /**
33
+ * Initialize the memory strategy
34
+ */
35
+ async initialize() {
36
+ // SwarmMemoryManager may already be initialized
37
+ if (this.isSwarmMemoryManager(this.memoryStore)) {
38
+ // SwarmMemoryManager initializes in constructor or has initialize method
39
+ if ('initialize' in this.memoryStore && typeof this.memoryStore.initialize === 'function') {
40
+ try {
41
+ await this.memoryStore.initialize();
42
+ }
43
+ catch {
44
+ // May already be initialized
45
+ }
46
+ }
47
+ }
48
+ }
49
+ /**
50
+ * Store a value in agent memory
51
+ */
52
+ async store(key, value, options) {
53
+ const prefixedKey = this.prefixKey(key, options?.namespace);
54
+ if (this.isSwarmMemoryManager(this.memoryStore)) {
55
+ const storeOpts = {
56
+ partition: options?.namespace ?? 'agent',
57
+ ttl: options?.ttl ?? 0,
58
+ metadata: options?.metadata,
59
+ };
60
+ await this.memoryStore.store(prefixedKey, value, storeOpts);
61
+ }
62
+ else {
63
+ // Fallback for basic MemoryStore interface
64
+ await this.memoryStore.store(prefixedKey, value, options?.ttl ?? 0);
65
+ }
66
+ this.stats.totalEntries++;
67
+ }
68
+ /**
69
+ * Retrieve a value from agent memory
70
+ */
71
+ async retrieve(key) {
72
+ const prefixedKey = this.prefixKey(key);
73
+ try {
74
+ const result = await this.memoryStore.retrieve(prefixedKey);
75
+ if (result !== undefined && result !== null) {
76
+ this.hits++;
77
+ this.updateHitRate();
78
+ return result;
79
+ }
80
+ this.misses++;
81
+ this.updateHitRate();
82
+ return undefined;
83
+ }
84
+ catch {
85
+ this.misses++;
86
+ this.updateHitRate();
87
+ return undefined;
88
+ }
89
+ }
90
+ /**
91
+ * Delete a value from agent memory
92
+ */
93
+ async delete(key) {
94
+ const prefixedKey = this.prefixKey(key);
95
+ if (this.isSwarmMemoryManager(this.memoryStore)) {
96
+ try {
97
+ await this.memoryStore.delete(prefixedKey);
98
+ this.stats.totalEntries = Math.max(0, this.stats.totalEntries - 1);
99
+ return true;
100
+ }
101
+ catch {
102
+ return false;
103
+ }
104
+ }
105
+ // Fallback: try to delete by storing null (not ideal)
106
+ try {
107
+ await this.memoryStore.store(prefixedKey, null, 1);
108
+ return true;
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ }
114
+ /**
115
+ * Check if a key exists
116
+ */
117
+ async exists(key) {
118
+ const value = await this.retrieve(key);
119
+ return value !== undefined;
120
+ }
121
+ /**
122
+ * Store in shared memory (accessible by other agents)
123
+ */
124
+ async storeShared(agentType, key, value, options) {
125
+ const sharedKey = `shared:${agentType}:${key}`;
126
+ await this.store(sharedKey, value, {
127
+ ...options,
128
+ namespace: 'shared',
129
+ });
130
+ }
131
+ /**
132
+ * Retrieve from another agent's shared memory
133
+ */
134
+ async retrieveShared(agentType, key) {
135
+ const sharedKey = `shared:${agentType}:${key}`;
136
+ return this.retrieve(sharedKey);
137
+ }
138
+ /**
139
+ * Bulk store multiple entries
140
+ */
141
+ async bulkStore(entries) {
142
+ // Process in parallel with concurrency limit
143
+ const batchSize = 10;
144
+ for (let i = 0; i < entries.length; i += batchSize) {
145
+ const batch = entries.slice(i, i + batchSize);
146
+ await Promise.all(batch.map((entry) => this.store(entry.key, entry.value, entry.options)));
147
+ }
148
+ }
149
+ /**
150
+ * Bulk retrieve multiple values
151
+ */
152
+ async bulkRetrieve(keys) {
153
+ const results = new Map();
154
+ await Promise.all(keys.map(async (key) => {
155
+ const value = await this.retrieve(key);
156
+ if (value !== undefined) {
157
+ results.set(key, value);
158
+ }
159
+ }));
160
+ return results;
161
+ }
162
+ /**
163
+ * Bulk delete multiple keys
164
+ */
165
+ async bulkDelete(keys) {
166
+ let deleted = 0;
167
+ await Promise.all(keys.map(async (key) => {
168
+ if (await this.delete(key)) {
169
+ deleted++;
170
+ }
171
+ }));
172
+ return deleted;
173
+ }
174
+ /**
175
+ * Query memory entries
176
+ */
177
+ async query(options) {
178
+ if (this.isSwarmMemoryManager(this.memoryStore)) {
179
+ const pattern = options.pattern ?? '*';
180
+ const results = await this.memoryStore.query(pattern, {
181
+ partition: options.namespace ?? 'agent',
182
+ });
183
+ return results.slice(0, options.limit ?? 100).map((r) => ({
184
+ key: r.key,
185
+ value: r.value,
186
+ options: r.partition ? { namespace: r.partition } : undefined,
187
+ }));
188
+ }
189
+ // Fallback: empty results
190
+ return [];
191
+ }
192
+ /**
193
+ * List all keys matching a pattern
194
+ */
195
+ async listKeys(pattern) {
196
+ if (this.isSwarmMemoryManager(this.memoryStore)) {
197
+ const results = await this.memoryStore.query(pattern ?? '*');
198
+ return results.map((r) => r.key);
199
+ }
200
+ return [];
201
+ }
202
+ /**
203
+ * Close connections and cleanup
204
+ */
205
+ async close() {
206
+ if (this.isSwarmMemoryManager(this.memoryStore)) {
207
+ await this.memoryStore.close();
208
+ }
209
+ }
210
+ /**
211
+ * Clear all agent memory
212
+ */
213
+ async clear() {
214
+ // Query all keys and delete them
215
+ const keys = await this.listKeys();
216
+ await this.bulkDelete(keys);
217
+ this.stats.totalEntries = 0;
218
+ this.hits = 0;
219
+ this.misses = 0;
220
+ }
221
+ /**
222
+ * Get memory statistics
223
+ */
224
+ async getStats() {
225
+ return {
226
+ totalEntries: this.stats.totalEntries,
227
+ totalSize: 0,
228
+ hitRate: this.stats.hitRate,
229
+ missRate: this.stats.missRate,
230
+ evictionCount: 0,
231
+ lastCleanup: this.stats.lastCleanup,
232
+ };
233
+ }
234
+ // === Private Helpers ===
235
+ prefixKey(key, namespace) {
236
+ const ns = namespace ?? 'agent';
237
+ return this.agentId ? `${ns}:${this.agentId}:${key}` : `${ns}:${key}`;
238
+ }
239
+ updateHitRate() {
240
+ const total = this.hits + this.misses;
241
+ if (total > 0) {
242
+ this.stats.hitRate = this.hits / total;
243
+ this.stats.missRate = this.misses / total;
244
+ }
245
+ }
246
+ isSwarmMemoryManager(store) {
247
+ return 'query' in store && typeof store.query === 'function';
248
+ }
249
+ }
250
+ exports.DefaultMemoryStrategy = DefaultMemoryStrategy;
251
+ /**
252
+ * Factory function for creating memory strategies
253
+ */
254
+ function createMemoryStrategy(memoryStore, agentId) {
255
+ return new DefaultMemoryStrategy(memoryStore, agentId);
256
+ }
257
+ //# sourceMappingURL=DefaultMemoryStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultMemoryStrategy.js","sourceRoot":"","sources":["../../../src/core/strategies/DefaultMemoryStrategy.ts"],"names":[],"mappings":"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"}