agentic-qe 2.3.4 → 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.
- package/CHANGELOG.md +72 -0
- package/README.md +1 -1
- package/dist/agents/ApiContractValidatorAgent.d.ts +5 -0
- package/dist/agents/ApiContractValidatorAgent.d.ts.map +1 -1
- package/dist/agents/ApiContractValidatorAgent.js +41 -0
- package/dist/agents/ApiContractValidatorAgent.js.map +1 -1
- package/dist/agents/BaseAgent.d.ts +56 -49
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +208 -604
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CodeComplexityAnalyzerAgent.d.ts +5 -0
- package/dist/agents/CodeComplexityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CodeComplexityAnalyzerAgent.js +47 -0
- package/dist/agents/CodeComplexityAnalyzerAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +26 -0
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +149 -1
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.d.ts +5 -0
- package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.js +41 -0
- package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +7 -2
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +48 -104
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/FleetCommanderAgent.d.ts +5 -0
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
- package/dist/agents/FleetCommanderAgent.js +51 -0
- package/dist/agents/FleetCommanderAgent.js.map +1 -1
- package/dist/agents/PerformanceTesterAgent.d.ts +5 -0
- package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
- package/dist/agents/PerformanceTesterAgent.js +44 -0
- package/dist/agents/PerformanceTesterAgent.js.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.d.ts +5 -0
- package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.js +46 -0
- package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
- package/dist/agents/QXPartnerAgent.js +52 -0
- package/dist/agents/QXPartnerAgent.js.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.d.ts +5 -0
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.js +45 -0
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.d.ts +40 -0
- package/dist/agents/QualityGateAgent.d.ts.map +1 -1
- package/dist/agents/QualityGateAgent.js +227 -1
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts +5 -0
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.js +46 -0
- package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.d.ts +5 -0
- package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.js +42 -0
- package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
- package/dist/agents/SecurityScannerAgent.d.ts +5 -0
- package/dist/agents/SecurityScannerAgent.d.ts.map +1 -1
- package/dist/agents/SecurityScannerAgent.js +39 -0
- package/dist/agents/SecurityScannerAgent.js.map +1 -1
- package/dist/agents/TestDataArchitectAgent.d.ts +5 -0
- package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
- package/dist/agents/TestDataArchitectAgent.js +46 -0
- package/dist/agents/TestDataArchitectAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts +6 -1
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +52 -46
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +5 -0
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +51 -35
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/adapters/CoordinatorAdapter.d.ts +47 -0
- package/dist/agents/adapters/CoordinatorAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/CoordinatorAdapter.js +266 -0
- package/dist/agents/adapters/CoordinatorAdapter.js.map +1 -0
- package/dist/agents/adapters/LearningEngineAdapter.d.ts +45 -0
- package/dist/agents/adapters/LearningEngineAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/LearningEngineAdapter.js +279 -0
- package/dist/agents/adapters/LearningEngineAdapter.js.map +1 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.d.ts +45 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.js +128 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.js.map +1 -0
- package/dist/agents/adapters/MemoryServiceAdapter.d.ts +96 -0
- package/dist/agents/adapters/MemoryServiceAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/MemoryServiceAdapter.js +266 -0
- package/dist/agents/adapters/MemoryServiceAdapter.js.map +1 -0
- package/dist/agents/adapters/index.d.ts +14 -0
- package/dist/agents/adapters/index.d.ts.map +1 -0
- package/dist/agents/adapters/index.js +25 -0
- package/dist/agents/adapters/index.js.map +1 -0
- package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.js +17 -8
- package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
- package/dist/cli/index.js +68 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/cache/BinaryCacheBuilder.d.ts +84 -0
- package/dist/core/cache/BinaryCacheBuilder.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheBuilder.js +225 -0
- package/dist/core/cache/BinaryCacheBuilder.js.map +1 -0
- package/dist/core/cache/BinaryCacheManager.d.ts +142 -0
- package/dist/core/cache/BinaryCacheManager.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheManager.js +354 -0
- package/dist/core/cache/BinaryCacheManager.js.map +1 -0
- package/dist/core/cache/BinaryCacheReader.d.ts +129 -0
- package/dist/core/cache/BinaryCacheReader.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheReader.js +243 -0
- package/dist/core/cache/BinaryCacheReader.js.map +1 -0
- package/dist/core/cache/BinaryMetadataCache.d.ts +533 -0
- package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -0
- package/dist/core/cache/BinaryMetadataCache.js +142 -0
- package/dist/core/cache/BinaryMetadataCache.js.map +1 -0
- package/dist/core/cache/CacheInvalidator.d.ts +103 -0
- package/dist/core/cache/CacheInvalidator.d.ts.map +1 -0
- package/dist/core/cache/CacheInvalidator.js +152 -0
- package/dist/core/cache/CacheInvalidator.js.map +1 -0
- package/dist/core/cache/CacheValidator.d.ts +69 -0
- package/dist/core/cache/CacheValidator.d.ts.map +1 -0
- package/dist/core/cache/CacheValidator.js +189 -0
- package/dist/core/cache/CacheValidator.js.map +1 -0
- package/dist/core/cache/MessagePackSerializer.d.ts +163 -0
- package/dist/core/cache/MessagePackSerializer.d.ts.map +1 -0
- package/dist/core/cache/MessagePackSerializer.js +274 -0
- package/dist/core/cache/MessagePackSerializer.js.map +1 -0
- package/dist/core/cache/index.d.ts +58 -0
- package/dist/core/cache/index.d.ts.map +1 -0
- package/dist/core/cache/index.js +102 -0
- package/dist/core/cache/index.js.map +1 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +18 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/core/memory/PatternStoreFactory.d.ts +28 -0
- package/dist/core/memory/PatternStoreFactory.d.ts.map +1 -1
- package/dist/core/memory/PatternStoreFactory.js +68 -3
- package/dist/core/memory/PatternStoreFactory.js.map +1 -1
- package/dist/core/platform/FileOperations.d.ts +124 -0
- package/dist/core/platform/FileOperations.d.ts.map +1 -0
- package/dist/core/platform/FileOperations.js +371 -0
- package/dist/core/platform/FileOperations.js.map +1 -0
- package/dist/core/platform/PlatformDetector.d.ts +53 -0
- package/dist/core/platform/PlatformDetector.d.ts.map +1 -0
- package/dist/core/platform/PlatformDetector.js +251 -0
- package/dist/core/platform/PlatformDetector.js.map +1 -0
- package/dist/core/platform/index.d.ts +12 -0
- package/dist/core/platform/index.d.ts.map +1 -0
- package/dist/core/platform/index.js +28 -0
- package/dist/core/platform/index.js.map +1 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.d.ts +74 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.js +200 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.js.map +1 -0
- package/dist/core/strategies/AgentCoordinationStrategy.d.ts +157 -0
- package/dist/core/strategies/AgentCoordinationStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentCoordinationStrategy.js +12 -0
- package/dist/core/strategies/AgentCoordinationStrategy.js.map +1 -0
- package/dist/core/strategies/AgentLearningStrategy.d.ts +200 -0
- package/dist/core/strategies/AgentLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentLearningStrategy.js +13 -0
- package/dist/core/strategies/AgentLearningStrategy.js.map +1 -0
- package/dist/core/strategies/AgentLifecycleStrategy.d.ts +116 -0
- package/dist/core/strategies/AgentLifecycleStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentLifecycleStrategy.js +12 -0
- package/dist/core/strategies/AgentLifecycleStrategy.js.map +1 -0
- package/dist/core/strategies/AgentMemoryStrategy.d.ts +154 -0
- package/dist/core/strategies/AgentMemoryStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentMemoryStrategy.js +13 -0
- package/dist/core/strategies/AgentMemoryStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.d.ts +105 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.js +332 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultLearningStrategy.d.ts +120 -0
- package/dist/core/strategies/DefaultLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultLearningStrategy.js +365 -0
- package/dist/core/strategies/DefaultLearningStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.d.ts +129 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.js +297 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultMemoryStrategy.d.ts +91 -0
- package/dist/core/strategies/DefaultMemoryStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultMemoryStrategy.js +257 -0
- package/dist/core/strategies/DefaultMemoryStrategy.js.map +1 -0
- package/dist/core/strategies/DistributedMemoryStrategy.d.ts +85 -0
- package/dist/core/strategies/DistributedMemoryStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DistributedMemoryStrategy.js +126 -0
- package/dist/core/strategies/DistributedMemoryStrategy.js.map +1 -0
- package/dist/core/strategies/index.d.ts +95 -0
- package/dist/core/strategies/index.d.ts.map +1 -0
- package/dist/core/strategies/index.js +65 -0
- package/dist/core/strategies/index.js.map +1 -0
- package/dist/learning/PerformanceOptimizer.js +2 -2
- package/dist/learning/PerformanceOptimizer.js.map +1 -1
- package/dist/learning/capture/ExperienceExtractor.d.ts +219 -0
- package/dist/learning/capture/ExperienceExtractor.d.ts.map +1 -0
- package/dist/learning/capture/ExperienceExtractor.js +536 -0
- package/dist/learning/capture/ExperienceExtractor.js.map +1 -0
- package/dist/learning/capture/ExperienceStore.d.ts +196 -0
- package/dist/learning/capture/ExperienceStore.d.ts.map +1 -0
- package/dist/learning/capture/ExperienceStore.js +453 -0
- package/dist/learning/capture/ExperienceStore.js.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts +2 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -1
- package/dist/learning/scheduler/SleepScheduler.js +2 -0
- package/dist/learning/scheduler/SleepScheduler.js.map +1 -1
- package/dist/learning/synthesis/ClusteringEngine.d.ts +122 -0
- package/dist/learning/synthesis/ClusteringEngine.d.ts.map +1 -0
- package/dist/learning/synthesis/ClusteringEngine.js +356 -0
- package/dist/learning/synthesis/ClusteringEngine.js.map +1 -0
- package/dist/learning/transfer/TransferRegistry.d.ts +245 -0
- package/dist/learning/transfer/TransferRegistry.d.ts.map +1 -0
- package/dist/learning/transfer/TransferRegistry.js +410 -0
- package/dist/learning/transfer/TransferRegistry.js.map +1 -0
- package/dist/mcp/handlers/base-handler.d.ts +28 -1
- package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
- package/dist/mcp/handlers/base-handler.js +41 -0
- package/dist/mcp/handlers/base-handler.js.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.d.ts +11 -0
- package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.js +297 -4
- package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts +6 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +34 -3
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/output/AIActionSuggester.d.ts +98 -0
- package/dist/output/AIActionSuggester.d.ts.map +1 -0
- package/dist/output/AIActionSuggester.js +499 -0
- package/dist/output/AIActionSuggester.js.map +1 -0
- package/dist/output/CLIOutputHelper.d.ts +169 -0
- package/dist/output/CLIOutputHelper.d.ts.map +1 -0
- package/dist/output/CLIOutputHelper.js +320 -0
- package/dist/output/CLIOutputHelper.js.map +1 -0
- package/dist/output/OutputFormatter.d.ts +764 -0
- package/dist/output/OutputFormatter.d.ts.map +1 -0
- package/dist/output/OutputFormatter.js +125 -0
- package/dist/output/OutputFormatter.js.map +1 -0
- package/dist/output/OutputFormatterImpl.d.ts +131 -0
- package/dist/output/OutputFormatterImpl.d.ts.map +1 -0
- package/dist/output/OutputFormatterImpl.js +556 -0
- package/dist/output/OutputFormatterImpl.js.map +1 -0
- package/dist/output/examples.d.ts +38 -0
- package/dist/output/examples.d.ts.map +1 -0
- package/dist/output/examples.js +503 -0
- package/dist/output/examples.js.map +1 -0
- package/dist/output/index.d.ts +16 -0
- package/dist/output/index.d.ts.map +1 -0
- package/dist/output/index.js +58 -0
- package/dist/output/index.js.map +1 -0
- 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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"}
|