agentic-qe 2.3.2 → 2.3.4
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 +140 -0
- package/README.md +1 -1
- package/dist/agents/BaseAgent.d.ts +10 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +113 -0
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +53 -27
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +5 -0
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +20 -5
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.js +44 -6
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/cli/commands/dream/index.d.ts +50 -0
- package/dist/cli/commands/dream/index.d.ts.map +1 -0
- package/dist/cli/commands/dream/index.js +282 -0
- package/dist/cli/commands/dream/index.js.map +1 -0
- package/dist/cli/commands/learn/index.d.ts +31 -5
- package/dist/cli/commands/learn/index.d.ts.map +1 -1
- package/dist/cli/commands/learn/index.js +183 -50
- package/dist/cli/commands/learn/index.js.map +1 -1
- package/dist/cli/commands/transfer/index.d.ts +55 -0
- package/dist/cli/commands/transfer/index.d.ts.map +1 -0
- package/dist/cli/commands/transfer/index.js +317 -0
- package/dist/cli/commands/transfer/index.js.map +1 -0
- package/dist/cli/index.js +156 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/database-init.js +5 -0
- package/dist/cli/init/database-init.js.map +1 -1
- package/dist/cli/init/index.d.ts.map +1 -1
- package/dist/cli/init/index.js +12 -4
- package/dist/cli/init/index.js.map +1 -1
- package/dist/cli/init/learning-init.d.ts +39 -0
- package/dist/cli/init/learning-init.d.ts.map +1 -0
- package/dist/cli/init/learning-init.js +239 -0
- package/dist/cli/init/learning-init.js.map +1 -0
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/learning/PerformanceTracker.d.ts +9 -0
- package/dist/learning/PerformanceTracker.d.ts.map +1 -1
- package/dist/learning/PerformanceTracker.js +26 -2
- package/dist/learning/PerformanceTracker.js.map +1 -1
- package/dist/learning/baselines/BaselineCollector.d.ts +178 -0
- package/dist/learning/baselines/BaselineCollector.d.ts.map +1 -0
- package/dist/learning/baselines/BaselineCollector.js +398 -0
- package/dist/learning/baselines/BaselineCollector.js.map +1 -0
- package/dist/learning/baselines/StandardTaskSuite.d.ts +88 -0
- package/dist/learning/baselines/StandardTaskSuite.d.ts.map +1 -0
- package/dist/learning/baselines/StandardTaskSuite.js +801 -0
- package/dist/learning/baselines/StandardTaskSuite.js.map +1 -0
- package/dist/learning/baselines/index.d.ts +10 -0
- package/dist/learning/baselines/index.d.ts.map +1 -0
- package/dist/learning/baselines/index.js +15 -0
- package/dist/learning/baselines/index.js.map +1 -0
- package/dist/learning/capture/ExecutionRecorder.d.ts +97 -0
- package/dist/learning/capture/ExecutionRecorder.d.ts.map +1 -0
- package/dist/learning/capture/ExecutionRecorder.js +195 -0
- package/dist/learning/capture/ExecutionRecorder.js.map +1 -0
- package/dist/learning/capture/ExperienceCapture.d.ts +177 -0
- package/dist/learning/capture/ExperienceCapture.d.ts.map +1 -0
- package/dist/learning/capture/ExperienceCapture.js +432 -0
- package/dist/learning/capture/ExperienceCapture.js.map +1 -0
- package/dist/learning/capture/index.d.ts +12 -0
- package/dist/learning/capture/index.d.ts.map +1 -0
- package/dist/learning/capture/index.js +17 -0
- package/dist/learning/capture/index.js.map +1 -0
- package/dist/learning/dashboard/MetricsDashboard.d.ts +63 -0
- package/dist/learning/dashboard/MetricsDashboard.d.ts.map +1 -0
- package/dist/learning/dashboard/MetricsDashboard.js +230 -0
- package/dist/learning/dashboard/MetricsDashboard.js.map +1 -0
- package/dist/learning/dashboard/index.d.ts +7 -0
- package/dist/learning/dashboard/index.d.ts.map +1 -0
- package/dist/learning/dashboard/index.js +23 -0
- package/dist/learning/dashboard/index.js.map +1 -0
- package/dist/learning/dream/ConceptGraph.d.ts +160 -0
- package/dist/learning/dream/ConceptGraph.d.ts.map +1 -0
- package/dist/learning/dream/ConceptGraph.js +445 -0
- package/dist/learning/dream/ConceptGraph.js.map +1 -0
- package/dist/learning/dream/DreamEngine.d.ts +150 -0
- package/dist/learning/dream/DreamEngine.d.ts.map +1 -0
- package/dist/learning/dream/DreamEngine.js +551 -0
- package/dist/learning/dream/DreamEngine.js.map +1 -0
- package/dist/learning/dream/InsightGenerator.d.ts +152 -0
- package/dist/learning/dream/InsightGenerator.d.ts.map +1 -0
- package/dist/learning/dream/InsightGenerator.js +463 -0
- package/dist/learning/dream/InsightGenerator.js.map +1 -0
- package/dist/learning/dream/SpreadingActivation.d.ts +138 -0
- package/dist/learning/dream/SpreadingActivation.d.ts.map +1 -0
- package/dist/learning/dream/SpreadingActivation.js +320 -0
- package/dist/learning/dream/SpreadingActivation.js.map +1 -0
- package/dist/learning/dream/index.d.ts +14 -0
- package/dist/learning/dream/index.d.ts.map +1 -0
- package/dist/learning/dream/index.js +22 -0
- package/dist/learning/dream/index.js.map +1 -0
- package/dist/learning/metrics/AlertManager.d.ts +107 -0
- package/dist/learning/metrics/AlertManager.d.ts.map +1 -0
- package/dist/learning/metrics/AlertManager.js +246 -0
- package/dist/learning/metrics/AlertManager.js.map +1 -0
- package/dist/learning/metrics/LearningMetrics.d.ts +184 -0
- package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -0
- package/dist/learning/metrics/LearningMetrics.js +754 -0
- package/dist/learning/metrics/LearningMetrics.js.map +1 -0
- package/dist/learning/metrics/MetricsCollector.d.ts +108 -0
- package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -0
- package/dist/learning/metrics/MetricsCollector.js +240 -0
- package/dist/learning/metrics/MetricsCollector.js.map +1 -0
- package/dist/learning/metrics/MetricsStore.d.ts +149 -0
- package/dist/learning/metrics/MetricsStore.d.ts.map +1 -0
- package/dist/learning/metrics/MetricsStore.js +502 -0
- package/dist/learning/metrics/MetricsStore.js.map +1 -0
- package/dist/learning/metrics/TrendAnalyzer.d.ts +85 -0
- package/dist/learning/metrics/TrendAnalyzer.d.ts.map +1 -0
- package/dist/learning/metrics/TrendAnalyzer.js +210 -0
- package/dist/learning/metrics/TrendAnalyzer.js.map +1 -0
- package/dist/learning/metrics/index.d.ts +13 -0
- package/dist/learning/metrics/index.d.ts.map +1 -0
- package/dist/learning/metrics/index.js +39 -0
- package/dist/learning/metrics/index.js.map +1 -0
- package/dist/learning/scheduler/IdleDetector.d.ts +126 -0
- package/dist/learning/scheduler/IdleDetector.d.ts.map +1 -0
- package/dist/learning/scheduler/IdleDetector.js +281 -0
- package/dist/learning/scheduler/IdleDetector.js.map +1 -0
- package/dist/learning/scheduler/SleepCycle.d.ts +150 -0
- package/dist/learning/scheduler/SleepCycle.d.ts.map +1 -0
- package/dist/learning/scheduler/SleepCycle.js +506 -0
- package/dist/learning/scheduler/SleepCycle.js.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts +131 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.js +299 -0
- package/dist/learning/scheduler/SleepScheduler.js.map +1 -0
- package/dist/learning/scheduler/TimeBasedTrigger.d.ts +108 -0
- package/dist/learning/scheduler/TimeBasedTrigger.d.ts.map +1 -0
- package/dist/learning/scheduler/TimeBasedTrigger.js +222 -0
- package/dist/learning/scheduler/TimeBasedTrigger.js.map +1 -0
- package/dist/learning/scheduler/index.d.ts +16 -0
- package/dist/learning/scheduler/index.d.ts.map +1 -0
- package/dist/learning/scheduler/index.js +23 -0
- package/dist/learning/scheduler/index.js.map +1 -0
- package/dist/learning/synthesis/PatternSynthesis.d.ts +162 -0
- package/dist/learning/synthesis/PatternSynthesis.d.ts.map +1 -0
- package/dist/learning/synthesis/PatternSynthesis.js +479 -0
- package/dist/learning/synthesis/PatternSynthesis.js.map +1 -0
- package/dist/learning/synthesis/index.d.ts +10 -0
- package/dist/learning/synthesis/index.d.ts.map +1 -0
- package/dist/learning/synthesis/index.js +14 -0
- package/dist/learning/synthesis/index.js.map +1 -0
- package/dist/learning/transfer/CompatibilityScorer.d.ts +115 -0
- package/dist/learning/transfer/CompatibilityScorer.d.ts.map +1 -0
- package/dist/learning/transfer/CompatibilityScorer.js +319 -0
- package/dist/learning/transfer/CompatibilityScorer.js.map +1 -0
- package/dist/learning/transfer/TransferProtocol.d.ts +172 -0
- package/dist/learning/transfer/TransferProtocol.d.ts.map +1 -0
- package/dist/learning/transfer/TransferProtocol.js +611 -0
- package/dist/learning/transfer/TransferProtocol.js.map +1 -0
- package/dist/learning/transfer/TransferPrototype.d.ts +93 -0
- package/dist/learning/transfer/TransferPrototype.d.ts.map +1 -0
- package/dist/learning/transfer/TransferPrototype.js +433 -0
- package/dist/learning/transfer/TransferPrototype.js.map +1 -0
- package/dist/learning/transfer/TransferValidator.d.ts +140 -0
- package/dist/learning/transfer/TransferValidator.d.ts.map +1 -0
- package/dist/learning/transfer/TransferValidator.js +413 -0
- package/dist/learning/transfer/TransferValidator.js.map +1 -0
- package/dist/learning/transfer/index.d.ts +14 -0
- package/dist/learning/transfer/index.d.ts.map +1 -0
- package/dist/learning/transfer/index.js +22 -0
- package/dist/learning/transfer/index.js.map +1 -0
- package/dist/mcp/handlers/test/test-generate-enhanced.d.ts +26 -2
- package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-generate-enhanced.js +159 -27
- package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -1
- package/dist/mcp/server.js.map +1 -1
- package/package.json +7 -2
- package/scripts/README.md +352 -0
- package/scripts/hooks/capture-task-learning.js +191 -0
- package/scripts/hooks/emit-task-complete.sh +35 -0
- package/scripts/hooks/emit-task-spawn.sh +27 -0
- package/.claude/agents/failing-agent.json +0 -9
- package/.claude/agents/test-agent.json +0 -9
- package/dist/App.d.ts +0 -5
- package/dist/App.d.ts.map +0 -1
- package/dist/App.js +0 -15
- package/dist/App.js.map +0 -1
- package/dist/cli/init/utils.d.ts +0 -183
- package/dist/cli/init/utils.d.ts.map +0 -1
- package/dist/cli/init/utils.js +0 -354
- package/dist/cli/init/utils.js.map +0 -1
- package/dist/components/Dashboard/Dashboard.d.ts +0 -4
- package/dist/components/Dashboard/Dashboard.d.ts.map +0 -1
- package/dist/components/Dashboard/Dashboard.js +0 -148
- package/dist/components/Dashboard/Dashboard.js.map +0 -1
- package/dist/components/Dashboard/DashboardHeader.d.ts +0 -4
- package/dist/components/Dashboard/DashboardHeader.d.ts.map +0 -1
- package/dist/components/Dashboard/DashboardHeader.js +0 -138
- package/dist/components/Dashboard/DashboardHeader.js.map +0 -1
- package/dist/contexts/DashboardContext.d.ts +0 -41
- package/dist/contexts/DashboardContext.d.ts.map +0 -1
- package/dist/contexts/DashboardContext.js +0 -187
- package/dist/contexts/DashboardContext.js.map +0 -1
- package/dist/core/transport/QUICTransport.d.ts +0 -320
- package/dist/core/transport/QUICTransport.d.ts.map +0 -1
- package/dist/core/transport/QUICTransport.js +0 -711
- package/dist/core/transport/QUICTransport.js.map +0 -1
- package/dist/learning/LearningPersistenceAdapter.d.ts +0 -84
- package/dist/learning/LearningPersistenceAdapter.d.ts.map +0 -1
- package/dist/learning/LearningPersistenceAdapter.js +0 -202
- package/dist/learning/LearningPersistenceAdapter.js.map +0 -1
- package/dist/learning/algorithms/QLearning.d.ts +0 -68
- package/dist/learning/algorithms/QLearning.d.ts.map +0 -1
- package/dist/learning/algorithms/QLearning.js +0 -116
- package/dist/learning/algorithms/QLearning.js.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts +0 -7
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.js +0 -267
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.js.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-validate.d.ts +0 -7
- package/dist/mcp/handlers/advanced/requirements-validate.d.ts.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-validate.js +0 -175
- package/dist/mcp/handlers/advanced/requirements-validate.js.map +0 -1
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts +0 -15
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts.map +0 -1
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js +0 -43
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js.map +0 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts +0 -58
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +0 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +0 -188
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +0 -1
- package/dist/mcp/handlers/optimize-tests.d.ts +0 -219
- package/dist/mcp/handlers/optimize-tests.d.ts.map +0 -1
- package/dist/mcp/handlers/optimize-tests.js +0 -533
- package/dist/mcp/handlers/optimize-tests.js.map +0 -1
- package/dist/mcp/handlers/predict-defects.d.ts +0 -194
- package/dist/mcp/handlers/predict-defects.d.ts.map +0 -1
- package/dist/mcp/handlers/predict-defects.js +0 -722
- package/dist/mcp/handlers/predict-defects.js.map +0 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +0 -199
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +0 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js +0 -471
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-decision-make.d.ts +0 -104
- package/dist/mcp/handlers/quality/quality-decision-make.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-decision-make.js +0 -408
- package/dist/mcp/handlers/quality/quality-decision-make.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-gate-execute.d.ts +0 -160
- package/dist/mcp/handlers/quality/quality-gate-execute.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-gate-execute.js +0 -412
- package/dist/mcp/handlers/quality/quality-gate-execute.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-policy-check.d.ts +0 -163
- package/dist/mcp/handlers/quality/quality-policy-check.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-policy-check.js +0 -455
- package/dist/mcp/handlers/quality/quality-policy-check.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-risk-assess.d.ts +0 -123
- package/dist/mcp/handlers/quality/quality-risk-assess.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-risk-assess.js +0 -522
- package/dist/mcp/handlers/quality/quality-risk-assess.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts +0 -117
- package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-validate-metrics.js +0 -288
- package/dist/mcp/handlers/quality/quality-validate-metrics.js.map +0 -1
- package/dist/mcp/handlers/quality-analyze.d.ts +0 -279
- package/dist/mcp/handlers/quality-analyze.d.ts.map +0 -1
- package/dist/mcp/handlers/quality-analyze.js +0 -720
- package/dist/mcp/handlers/quality-analyze.js.map +0 -1
- package/dist/mcp/handlers/security/check-authz.d.ts +0 -152
- package/dist/mcp/handlers/security/check-authz.d.ts.map +0 -1
- package/dist/mcp/handlers/security/check-authz.js +0 -434
- package/dist/mcp/handlers/security/check-authz.js.map +0 -1
- package/dist/mcp/handlers/security/scan-dependencies.d.ts +0 -148
- package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +0 -1
- package/dist/mcp/handlers/security/scan-dependencies.js +0 -354
- package/dist/mcp/handlers/security/scan-dependencies.js.map +0 -1
- package/dist/mcp/handlers/security/validate-auth.d.ts +0 -128
- package/dist/mcp/handlers/security/validate-auth.d.ts.map +0 -1
- package/dist/mcp/handlers/security/validate-auth.js +0 -294
- package/dist/mcp/handlers/security/validate-auth.js.map +0 -1
- package/dist/mcp/handlers/test-generate.d.ts +0 -107
- package/dist/mcp/handlers/test-generate.d.ts.map +0 -1
- package/dist/mcp/handlers/test-generate.js +0 -454
- package/dist/mcp/handlers/test-generate.js.map +0 -1
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SleepCycle - State machine for learning cycle phases
|
|
4
|
+
*
|
|
5
|
+
* Implements a sleep-inspired learning cycle with phases:
|
|
6
|
+
* - N1_CAPTURE: Capture recent experiences (light sleep)
|
|
7
|
+
* - N2_PROCESS: Process and cluster patterns (deeper sleep)
|
|
8
|
+
* - N3_CONSOLIDATE: Consolidate into long-term memory (deep sleep)
|
|
9
|
+
* - REM_DREAM: Dream engine activation (REM sleep)
|
|
10
|
+
*
|
|
11
|
+
* Part of the Nightly-Learner Phase 1 implementation.
|
|
12
|
+
* Updated in Phase 3 to integrate with actual learning modules.
|
|
13
|
+
*
|
|
14
|
+
* @version 2.0.0
|
|
15
|
+
* @module src/learning/scheduler/SleepCycle
|
|
16
|
+
*/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
34
|
+
var ownKeys = function(o) {
|
|
35
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
36
|
+
var ar = [];
|
|
37
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
38
|
+
return ar;
|
|
39
|
+
};
|
|
40
|
+
return ownKeys(o);
|
|
41
|
+
};
|
|
42
|
+
return function (mod) {
|
|
43
|
+
if (mod && mod.__esModule) return mod;
|
|
44
|
+
var result = {};
|
|
45
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
46
|
+
__setModuleDefault(result, mod);
|
|
47
|
+
return result;
|
|
48
|
+
};
|
|
49
|
+
})();
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.SleepCycle = void 0;
|
|
52
|
+
const events_1 = require("events");
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const Logger_1 = require("../../utils/Logger");
|
|
55
|
+
const ExperienceCapture_1 = require("../capture/ExperienceCapture");
|
|
56
|
+
const PatternSynthesis_1 = require("../synthesis/PatternSynthesis");
|
|
57
|
+
const DreamEngine_1 = require("../dream/DreamEngine");
|
|
58
|
+
const TransferProtocol_1 = require("../transfer/TransferProtocol");
|
|
59
|
+
/**
|
|
60
|
+
* SleepCycle manages the execution of learning phases
|
|
61
|
+
*
|
|
62
|
+
* Now integrates with actual learning modules:
|
|
63
|
+
* - ExperienceCapture for N1_CAPTURE
|
|
64
|
+
* - PatternSynthesis for N2_PROCESS
|
|
65
|
+
* - DreamEngine for REM_DREAM
|
|
66
|
+
* - TransferProtocol for cross-agent transfer
|
|
67
|
+
*/
|
|
68
|
+
class SleepCycle extends events_1.EventEmitter {
|
|
69
|
+
constructor(config) {
|
|
70
|
+
super();
|
|
71
|
+
this.currentPhase = null;
|
|
72
|
+
this.phaseResults = [];
|
|
73
|
+
this._isActive = false;
|
|
74
|
+
this._isAborted = false;
|
|
75
|
+
this.startTime = null;
|
|
76
|
+
// Integrated learning modules
|
|
77
|
+
this.experienceCapture = null;
|
|
78
|
+
this.patternSynthesis = null;
|
|
79
|
+
this.dreamEngine = null;
|
|
80
|
+
this.transferProtocol = null;
|
|
81
|
+
// Collected data during cycle
|
|
82
|
+
this.capturedExperienceData = [];
|
|
83
|
+
this.synthesizedPatterns = [];
|
|
84
|
+
this.dreamResult = null;
|
|
85
|
+
this.transferResults = [];
|
|
86
|
+
this.processedAgents = new Set();
|
|
87
|
+
this.id = `cycle-${Date.now()}`;
|
|
88
|
+
this.config = config;
|
|
89
|
+
this.logger = Logger_1.Logger.getInstance();
|
|
90
|
+
this.dbPath = config.dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db');
|
|
91
|
+
// Set phase durations with defaults
|
|
92
|
+
this.phaseDurations = new Map([
|
|
93
|
+
['N1_CAPTURE', config.phaseDurations?.N1_CAPTURE ?? 5 * 60 * 1000], // 5 minutes
|
|
94
|
+
['N2_PROCESS', config.phaseDurations?.N2_PROCESS ?? 10 * 60 * 1000], // 10 minutes
|
|
95
|
+
['N3_CONSOLIDATE', config.phaseDurations?.N3_CONSOLIDATE ?? 15 * 60 * 1000], // 15 minutes
|
|
96
|
+
['REM_DREAM', config.phaseDurations?.REM_DREAM ?? 20 * 60 * 1000], // 20 minutes
|
|
97
|
+
]);
|
|
98
|
+
// Initialize learning modules
|
|
99
|
+
this.initializeModules();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Initialize integrated learning modules
|
|
103
|
+
*/
|
|
104
|
+
initializeModules() {
|
|
105
|
+
try {
|
|
106
|
+
this.experienceCapture = new ExperienceCapture_1.ExperienceCapture({
|
|
107
|
+
dbPath: this.dbPath,
|
|
108
|
+
debug: this.config.debug,
|
|
109
|
+
});
|
|
110
|
+
this.patternSynthesis = new PatternSynthesis_1.PatternSynthesis({
|
|
111
|
+
dbPath: this.dbPath,
|
|
112
|
+
debug: this.config.debug,
|
|
113
|
+
});
|
|
114
|
+
this.dreamEngine = new DreamEngine_1.DreamEngine({
|
|
115
|
+
dbPath: this.dbPath,
|
|
116
|
+
cycleDuration: this.phaseDurations.get('REM_DREAM') || 20 * 60 * 1000,
|
|
117
|
+
debug: this.config.debug,
|
|
118
|
+
});
|
|
119
|
+
this.transferProtocol = new TransferProtocol_1.TransferProtocol({
|
|
120
|
+
dbPath: this.dbPath,
|
|
121
|
+
debug: this.config.debug,
|
|
122
|
+
});
|
|
123
|
+
this.logger.info('[SleepCycle] Learning modules initialized');
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
this.logger.error('[SleepCycle] Failed to initialize learning modules', { error });
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Check if cycle is currently active
|
|
131
|
+
*/
|
|
132
|
+
get isActive() {
|
|
133
|
+
return this._isActive;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Check if cycle was aborted
|
|
137
|
+
*/
|
|
138
|
+
get isAborted() {
|
|
139
|
+
return this._isAborted;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Get cycle ID
|
|
143
|
+
*/
|
|
144
|
+
getId() {
|
|
145
|
+
return this.id;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get current phase
|
|
149
|
+
*/
|
|
150
|
+
getCurrentPhase() {
|
|
151
|
+
return this.currentPhase;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Execute the complete sleep cycle
|
|
155
|
+
*/
|
|
156
|
+
async execute() {
|
|
157
|
+
this._isActive = true;
|
|
158
|
+
this._isAborted = false;
|
|
159
|
+
this.startTime = new Date();
|
|
160
|
+
const summary = {
|
|
161
|
+
id: this.id,
|
|
162
|
+
startTime: this.startTime,
|
|
163
|
+
endTime: new Date(),
|
|
164
|
+
totalDuration: 0,
|
|
165
|
+
phasesCompleted: [],
|
|
166
|
+
phasesSkipped: [],
|
|
167
|
+
patternsDiscovered: 0,
|
|
168
|
+
patternsConsolidated: 0,
|
|
169
|
+
agentsProcessed: [],
|
|
170
|
+
phaseResults: [],
|
|
171
|
+
errors: [],
|
|
172
|
+
aborted: false,
|
|
173
|
+
};
|
|
174
|
+
this.logger.info('[SleepCycle] Starting cycle', { id: this.id });
|
|
175
|
+
const phases = ['N1_CAPTURE', 'N2_PROCESS', 'N3_CONSOLIDATE', 'REM_DREAM'];
|
|
176
|
+
for (const phase of phases) {
|
|
177
|
+
if (this._isAborted) {
|
|
178
|
+
this.logger.info('[SleepCycle] Cycle aborted', { lastPhase: this.currentPhase });
|
|
179
|
+
summary.aborted = true;
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
// Check if phase should be skipped
|
|
183
|
+
if (this.config.skipPhases?.includes(phase)) {
|
|
184
|
+
summary.phasesSkipped.push(phase);
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
// Check budget constraints
|
|
188
|
+
if (!this.checkBudget(summary)) {
|
|
189
|
+
this.logger.info('[SleepCycle] Budget exhausted, ending cycle', {
|
|
190
|
+
patternsProcessed: summary.patternsDiscovered + summary.patternsConsolidated,
|
|
191
|
+
maxPatterns: this.config.budget.maxPatternsPerCycle,
|
|
192
|
+
});
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
this.currentPhase = phase;
|
|
196
|
+
const duration = this.phaseDurations.get(phase) || 0;
|
|
197
|
+
try {
|
|
198
|
+
const result = await this.executePhase(phase, duration);
|
|
199
|
+
this.phaseResults.push(result);
|
|
200
|
+
summary.phaseResults.push(result);
|
|
201
|
+
summary.phasesCompleted.push(phase);
|
|
202
|
+
summary.patternsDiscovered += result.patternsProcessed;
|
|
203
|
+
if (result.error) {
|
|
204
|
+
summary.errors.push(result.error);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
this.logger.error('[SleepCycle] Phase failed', { phase, error });
|
|
209
|
+
summary.errors.push(error);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
this._isActive = false;
|
|
213
|
+
this.currentPhase = 'COMPLETE';
|
|
214
|
+
summary.endTime = new Date();
|
|
215
|
+
summary.totalDuration = summary.endTime.getTime() - summary.startTime.getTime();
|
|
216
|
+
summary.patternsConsolidated = this.synthesizedPatterns.length + this.transferResults.length;
|
|
217
|
+
summary.agentsProcessed = Array.from(this.processedAgents);
|
|
218
|
+
this.logger.info('[SleepCycle] Cycle complete', {
|
|
219
|
+
id: this.id,
|
|
220
|
+
duration: summary.totalDuration,
|
|
221
|
+
phases: summary.phasesCompleted.length,
|
|
222
|
+
patterns: summary.patternsDiscovered,
|
|
223
|
+
agents: summary.agentsProcessed.length,
|
|
224
|
+
});
|
|
225
|
+
return summary;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Abort the current cycle gracefully
|
|
229
|
+
*/
|
|
230
|
+
async abort() {
|
|
231
|
+
if (!this._isActive)
|
|
232
|
+
return;
|
|
233
|
+
this.logger.info('[SleepCycle] Aborting cycle', { id: this.id, currentPhase: this.currentPhase });
|
|
234
|
+
this._isAborted = true;
|
|
235
|
+
// Allow current phase to complete gracefully
|
|
236
|
+
// The execute loop will check _isAborted and exit
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Execute a single phase
|
|
240
|
+
*/
|
|
241
|
+
async executePhase(phase, maxDuration) {
|
|
242
|
+
const startTime = new Date();
|
|
243
|
+
this.emit('phase:start', phase);
|
|
244
|
+
this.logger.info('[SleepCycle] Starting phase', { phase, maxDuration });
|
|
245
|
+
let result;
|
|
246
|
+
try {
|
|
247
|
+
switch (phase) {
|
|
248
|
+
case 'N1_CAPTURE':
|
|
249
|
+
result = await this.captureExperiences(maxDuration);
|
|
250
|
+
break;
|
|
251
|
+
case 'N2_PROCESS':
|
|
252
|
+
result = await this.processPatterns(maxDuration);
|
|
253
|
+
break;
|
|
254
|
+
case 'N3_CONSOLIDATE':
|
|
255
|
+
result = await this.consolidateMemory(maxDuration);
|
|
256
|
+
break;
|
|
257
|
+
case 'REM_DREAM':
|
|
258
|
+
result = await this.activateDreamEngine(maxDuration);
|
|
259
|
+
break;
|
|
260
|
+
default:
|
|
261
|
+
result = { patterns: 0, agents: [] };
|
|
262
|
+
}
|
|
263
|
+
const phaseResult = {
|
|
264
|
+
phase,
|
|
265
|
+
startTime,
|
|
266
|
+
endTime: new Date(),
|
|
267
|
+
duration: Date.now() - startTime.getTime(),
|
|
268
|
+
patternsProcessed: result.patterns,
|
|
269
|
+
agentsProcessed: result.agents,
|
|
270
|
+
success: true,
|
|
271
|
+
metrics: {},
|
|
272
|
+
};
|
|
273
|
+
this.emit('phase:complete', phase, phaseResult);
|
|
274
|
+
return phaseResult;
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
const phaseResult = {
|
|
278
|
+
phase,
|
|
279
|
+
startTime,
|
|
280
|
+
endTime: new Date(),
|
|
281
|
+
duration: Date.now() - startTime.getTime(),
|
|
282
|
+
patternsProcessed: 0,
|
|
283
|
+
agentsProcessed: [],
|
|
284
|
+
success: false,
|
|
285
|
+
error: error,
|
|
286
|
+
metrics: {},
|
|
287
|
+
};
|
|
288
|
+
this.emit('phase:error', phase, error);
|
|
289
|
+
return phaseResult;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* N1 Phase: Capture recent experiences from agents
|
|
294
|
+
* Now uses ExperienceCapture.getRecentExperiences() for real data
|
|
295
|
+
*/
|
|
296
|
+
async captureExperiences(maxDuration) {
|
|
297
|
+
const agents = [];
|
|
298
|
+
let experienceCount = 0;
|
|
299
|
+
this.logger.info('[SleepCycle:N1] Capturing experiences using ExperienceCapture');
|
|
300
|
+
if (!this.experienceCapture) {
|
|
301
|
+
this.logger.warn('[SleepCycle:N1] ExperienceCapture not available, falling back to empty result');
|
|
302
|
+
return { patterns: 0, agents: [] };
|
|
303
|
+
}
|
|
304
|
+
try {
|
|
305
|
+
// Get recent experiences from the last 24 hours
|
|
306
|
+
const limit = Math.min(100, this.config.budget.maxPatternsPerCycle);
|
|
307
|
+
const experiences = this.experienceCapture.getRecentExperiences(24, limit);
|
|
308
|
+
this.logger.info('[SleepCycle:N1] Retrieved experiences', { count: experiences.length });
|
|
309
|
+
// Group by agent type and collect unique agents
|
|
310
|
+
const agentTypeSet = new Set();
|
|
311
|
+
for (const exp of experiences) {
|
|
312
|
+
if (this._isAborted)
|
|
313
|
+
break;
|
|
314
|
+
if (agentTypeSet.size >= this.config.budget.maxAgentsPerCycle)
|
|
315
|
+
break;
|
|
316
|
+
agentTypeSet.add(exp.agentType);
|
|
317
|
+
this.processedAgents.add(exp.agentType);
|
|
318
|
+
}
|
|
319
|
+
agents.push(...agentTypeSet);
|
|
320
|
+
experienceCount = experiences.length;
|
|
321
|
+
// Store for next phase
|
|
322
|
+
this.capturedExperienceData = experiences;
|
|
323
|
+
this.logger.info('[SleepCycle:N1] Captured experiences', {
|
|
324
|
+
experienceCount,
|
|
325
|
+
agentTypes: agents.length,
|
|
326
|
+
agents,
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
catch (error) {
|
|
330
|
+
this.logger.error('[SleepCycle:N1] Failed to capture experiences', { error });
|
|
331
|
+
}
|
|
332
|
+
return { patterns: experienceCount, agents };
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* N2 Phase: Process experiences into pattern clusters
|
|
336
|
+
* Now uses PatternSynthesis.synthesize() for real pattern extraction
|
|
337
|
+
*/
|
|
338
|
+
async processPatterns(maxDuration) {
|
|
339
|
+
let patternsFound = 0;
|
|
340
|
+
this.logger.info('[SleepCycle:N2] Processing patterns using PatternSynthesis');
|
|
341
|
+
if (!this.patternSynthesis) {
|
|
342
|
+
this.logger.warn('[SleepCycle:N2] PatternSynthesis not available, falling back to empty result');
|
|
343
|
+
return { patterns: 0, agents: Array.from(this.processedAgents) };
|
|
344
|
+
}
|
|
345
|
+
try {
|
|
346
|
+
// Run pattern synthesis on captured experiences
|
|
347
|
+
const result = await this.patternSynthesis.synthesize({
|
|
348
|
+
minSupport: 2, // Lower for more patterns during dev
|
|
349
|
+
minConfidence: 0.6,
|
|
350
|
+
maxPatterns: this.config.budget.maxPatternsPerCycle,
|
|
351
|
+
agentTypes: Array.from(this.processedAgents),
|
|
352
|
+
});
|
|
353
|
+
patternsFound = result.patterns.length;
|
|
354
|
+
this.synthesizedPatterns = result.patterns;
|
|
355
|
+
this.logger.info('[SleepCycle:N2] Pattern synthesis complete', {
|
|
356
|
+
patternsFound,
|
|
357
|
+
clustersAnalyzed: result.clustersAnalyzed,
|
|
358
|
+
experiencesProcessed: result.experiencesProcessed,
|
|
359
|
+
duration: result.duration,
|
|
360
|
+
stats: result.stats,
|
|
361
|
+
});
|
|
362
|
+
// Mark experiences as processed
|
|
363
|
+
if (this.experienceCapture && this.capturedExperienceData.length > 0) {
|
|
364
|
+
const expIds = this.capturedExperienceData.map(e => e.id);
|
|
365
|
+
this.experienceCapture.markAsProcessed(expIds);
|
|
366
|
+
this.logger.debug('[SleepCycle:N2] Marked experiences as processed', { count: expIds.length });
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
this.logger.error('[SleepCycle:N2] Failed to process patterns', { error });
|
|
371
|
+
}
|
|
372
|
+
return { patterns: patternsFound, agents: Array.from(this.processedAgents) };
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* N3 Phase: Consolidate patterns into long-term memory
|
|
376
|
+
* Now uses TransferProtocol for cross-agent knowledge sharing
|
|
377
|
+
*/
|
|
378
|
+
async consolidateMemory(maxDuration) {
|
|
379
|
+
let consolidated = 0;
|
|
380
|
+
this.logger.info('[SleepCycle:N3] Consolidating memory and initiating cross-agent transfer');
|
|
381
|
+
if (!this.transferProtocol) {
|
|
382
|
+
this.logger.warn('[SleepCycle:N3] TransferProtocol not available, skipping cross-agent transfer');
|
|
383
|
+
return { patterns: this.synthesizedPatterns.length, agents: Array.from(this.processedAgents) };
|
|
384
|
+
}
|
|
385
|
+
try {
|
|
386
|
+
// Get patterns that have high confidence and could benefit other agents
|
|
387
|
+
const highConfidencePatterns = this.synthesizedPatterns.filter(p => p.confidence >= 0.7);
|
|
388
|
+
if (highConfidencePatterns.length === 0) {
|
|
389
|
+
this.logger.info('[SleepCycle:N3] No high-confidence patterns to transfer');
|
|
390
|
+
return { patterns: this.synthesizedPatterns.length, agents: Array.from(this.processedAgents) };
|
|
391
|
+
}
|
|
392
|
+
// For each agent type that produced patterns, try to transfer to compatible agents
|
|
393
|
+
const processedAgentsArray = Array.from(this.processedAgents);
|
|
394
|
+
for (const sourceAgent of processedAgentsArray) {
|
|
395
|
+
if (this._isAborted)
|
|
396
|
+
break;
|
|
397
|
+
// Get patterns from this agent type
|
|
398
|
+
const agentPatterns = highConfidencePatterns.filter(p => p.agentTypes.includes(sourceAgent));
|
|
399
|
+
if (agentPatterns.length === 0)
|
|
400
|
+
continue;
|
|
401
|
+
// Broadcast each pattern to compatible agents
|
|
402
|
+
for (const pattern of agentPatterns) {
|
|
403
|
+
if (this._isAborted)
|
|
404
|
+
break;
|
|
405
|
+
try {
|
|
406
|
+
const results = await this.transferProtocol.broadcastPattern(pattern.id, sourceAgent);
|
|
407
|
+
// Count successful transfers
|
|
408
|
+
const successful = results.filter(r => r.patternsTransferred > 0);
|
|
409
|
+
if (successful.length > 0) {
|
|
410
|
+
this.transferResults.push(...successful);
|
|
411
|
+
consolidated += successful.length;
|
|
412
|
+
this.logger.info('[SleepCycle:N3] Pattern broadcast complete', {
|
|
413
|
+
patternId: pattern.id,
|
|
414
|
+
source: sourceAgent,
|
|
415
|
+
successfulTransfers: successful.length,
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
catch (transferError) {
|
|
420
|
+
this.logger.warn('[SleepCycle:N3] Pattern transfer failed', {
|
|
421
|
+
patternId: pattern.id,
|
|
422
|
+
agent: sourceAgent,
|
|
423
|
+
error: transferError,
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
// Consolidation count = synthesized patterns + transferred patterns
|
|
429
|
+
consolidated = this.synthesizedPatterns.length + consolidated;
|
|
430
|
+
this.logger.info('[SleepCycle:N3] Memory consolidation complete', {
|
|
431
|
+
synthesizedPatterns: this.synthesizedPatterns.length,
|
|
432
|
+
crossAgentTransfers: this.transferResults.length,
|
|
433
|
+
totalConsolidated: consolidated,
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
catch (error) {
|
|
437
|
+
this.logger.error('[SleepCycle:N3] Failed to consolidate memory', { error });
|
|
438
|
+
}
|
|
439
|
+
return { patterns: consolidated, agents: Array.from(this.processedAgents) };
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* REM Phase: Dream engine for creative pattern generation
|
|
443
|
+
* Now uses DreamEngine.dream() for real insight discovery
|
|
444
|
+
*/
|
|
445
|
+
async activateDreamEngine(maxDuration) {
|
|
446
|
+
let insightsGenerated = 0;
|
|
447
|
+
this.logger.info('[SleepCycle:REM] Activating DreamEngine for pattern discovery');
|
|
448
|
+
if (!this.dreamEngine) {
|
|
449
|
+
this.logger.warn('[SleepCycle:REM] DreamEngine not available, skipping dream phase');
|
|
450
|
+
return { patterns: 0, agents: Array.from(this.processedAgents) };
|
|
451
|
+
}
|
|
452
|
+
try {
|
|
453
|
+
// Initialize dream engine (loads patterns as concepts)
|
|
454
|
+
await this.dreamEngine.initialize();
|
|
455
|
+
// Run the dream cycle
|
|
456
|
+
const result = await this.dreamEngine.dream();
|
|
457
|
+
insightsGenerated = result.insightsGenerated;
|
|
458
|
+
this.dreamResult = result;
|
|
459
|
+
this.logger.info('[SleepCycle:REM] Dream cycle complete', {
|
|
460
|
+
insightsGenerated,
|
|
461
|
+
associationsFound: result.associationsFound,
|
|
462
|
+
duration: result.duration,
|
|
463
|
+
status: result.status,
|
|
464
|
+
actionableInsights: result.insights.filter(i => i.actionable).length,
|
|
465
|
+
});
|
|
466
|
+
// Log notable insights
|
|
467
|
+
for (const insight of result.insights.slice(0, 5)) {
|
|
468
|
+
this.logger.debug('[SleepCycle:REM] Insight discovered', {
|
|
469
|
+
type: insight.type,
|
|
470
|
+
description: insight.description.substring(0, 100),
|
|
471
|
+
novelty: insight.noveltyScore.toFixed(2),
|
|
472
|
+
actionable: insight.actionable,
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
catch (error) {
|
|
477
|
+
this.logger.error('[SleepCycle:REM] Failed to run dream engine', { error });
|
|
478
|
+
}
|
|
479
|
+
return { patterns: insightsGenerated, agents: Array.from(this.processedAgents) };
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Check if we're within budget constraints
|
|
483
|
+
*/
|
|
484
|
+
checkBudget(summary) {
|
|
485
|
+
const totalPatterns = summary.patternsDiscovered + summary.patternsConsolidated;
|
|
486
|
+
if (totalPatterns >= this.config.budget.maxPatternsPerCycle) {
|
|
487
|
+
return false;
|
|
488
|
+
}
|
|
489
|
+
if (summary.agentsProcessed.length >= this.config.budget.maxAgentsPerCycle) {
|
|
490
|
+
return false;
|
|
491
|
+
}
|
|
492
|
+
if (summary.totalDuration >= this.config.budget.maxDurationMs) {
|
|
493
|
+
return false;
|
|
494
|
+
}
|
|
495
|
+
return true;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Helper to sleep for a duration
|
|
499
|
+
*/
|
|
500
|
+
sleep(ms) {
|
|
501
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
exports.SleepCycle = SleepCycle;
|
|
505
|
+
exports.default = SleepCycle;
|
|
506
|
+
//# sourceMappingURL=SleepCycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SleepCycle.js","sourceRoot":"","sources":["../../../src/learning/scheduler/SleepCycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SleepScheduler - Orchestrates learning cycles during system idle periods
|
|
3
|
+
*
|
|
4
|
+
* Triggers learning activities when the system is idle, using either:
|
|
5
|
+
* - Idle detection (CPU/memory monitoring)
|
|
6
|
+
* - Time-based scheduling (cron-like)
|
|
7
|
+
* - Hybrid mode (both)
|
|
8
|
+
*
|
|
9
|
+
* Part of the Nightly-Learner Phase 1 implementation.
|
|
10
|
+
*
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
* @module src/learning/scheduler/SleepScheduler
|
|
13
|
+
*/
|
|
14
|
+
import { EventEmitter } from 'events';
|
|
15
|
+
import { IdleDetectorConfig } from './IdleDetector';
|
|
16
|
+
import { SleepCycle, CycleSummary } from './SleepCycle';
|
|
17
|
+
export interface LearningBudget {
|
|
18
|
+
/** Maximum patterns to process per cycle. Default: 50 */
|
|
19
|
+
maxPatternsPerCycle: number;
|
|
20
|
+
/** Maximum agents to process per cycle. Default: 5 */
|
|
21
|
+
maxAgentsPerCycle: number;
|
|
22
|
+
/** Maximum duration for a cycle in ms. Default: 3600000 (1 hour) */
|
|
23
|
+
maxDurationMs: number;
|
|
24
|
+
}
|
|
25
|
+
export interface ScheduleConfig {
|
|
26
|
+
/** Hour to start (0-23). Default: 2 (2 AM) */
|
|
27
|
+
startHour: number;
|
|
28
|
+
/** Duration in minutes. Default: 60 */
|
|
29
|
+
durationMinutes: number;
|
|
30
|
+
/** Days to run (0=Sunday, 6=Saturday). Default: all days */
|
|
31
|
+
daysOfWeek?: number[];
|
|
32
|
+
}
|
|
33
|
+
export interface SleepSchedulerConfig {
|
|
34
|
+
/** Scheduling mode: idle-based, time-based, or hybrid */
|
|
35
|
+
mode: 'idle' | 'time' | 'hybrid';
|
|
36
|
+
/** Idle detector configuration (for idle/hybrid modes) */
|
|
37
|
+
idleConfig?: Partial<IdleDetectorConfig>;
|
|
38
|
+
/** Time-based schedule configuration (for time/hybrid modes) */
|
|
39
|
+
schedule?: Partial<ScheduleConfig>;
|
|
40
|
+
/** Learning budget constraints */
|
|
41
|
+
learningBudget: Partial<LearningBudget>;
|
|
42
|
+
/** Minimum time between cycles in ms. Default: 3600000 (1 hour) */
|
|
43
|
+
minCycleInterval?: number;
|
|
44
|
+
/** Enable debug logging */
|
|
45
|
+
debug?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface SleepSchedulerState {
|
|
48
|
+
isRunning: boolean;
|
|
49
|
+
mode: 'idle' | 'time' | 'hybrid';
|
|
50
|
+
currentCycle: SleepCycle | null;
|
|
51
|
+
lastCycleEnd: Date | null;
|
|
52
|
+
cyclesCompleted: number;
|
|
53
|
+
totalPatternsProcessed: number;
|
|
54
|
+
totalAgentsProcessed: number;
|
|
55
|
+
nextScheduledRun: Date | null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* SleepScheduler orchestrates learning cycles during idle periods
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const scheduler = new SleepScheduler({
|
|
63
|
+
* mode: 'hybrid',
|
|
64
|
+
* learningBudget: { maxPatternsPerCycle: 50, maxAgentsPerCycle: 5 },
|
|
65
|
+
* });
|
|
66
|
+
*
|
|
67
|
+
* scheduler.on('sleep:start', (cycle) => console.log('Learning cycle started'));
|
|
68
|
+
* scheduler.on('sleep:end', (summary) => console.log('Cycle complete:', summary));
|
|
69
|
+
*
|
|
70
|
+
* await scheduler.start();
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare class SleepScheduler extends EventEmitter {
|
|
74
|
+
private config;
|
|
75
|
+
private idleDetector;
|
|
76
|
+
private currentCycle;
|
|
77
|
+
private isRunning;
|
|
78
|
+
private logger;
|
|
79
|
+
private timeBasedTimer;
|
|
80
|
+
private lastCycleEnd;
|
|
81
|
+
private cyclesCompleted;
|
|
82
|
+
private totalPatternsProcessed;
|
|
83
|
+
private totalAgentsProcessed;
|
|
84
|
+
constructor(config: SleepSchedulerConfig);
|
|
85
|
+
/**
|
|
86
|
+
* Start the sleep scheduler
|
|
87
|
+
*/
|
|
88
|
+
start(): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Stop the sleep scheduler
|
|
91
|
+
*/
|
|
92
|
+
stop(): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Manually trigger a learning cycle
|
|
95
|
+
*/
|
|
96
|
+
triggerCycle(reason?: string): Promise<CycleSummary | null>;
|
|
97
|
+
/**
|
|
98
|
+
* Get current scheduler state
|
|
99
|
+
*/
|
|
100
|
+
getState(): SleepSchedulerState;
|
|
101
|
+
/**
|
|
102
|
+
* Register a task to prevent idle detection during critical operations
|
|
103
|
+
*/
|
|
104
|
+
registerTask(taskId: string): void;
|
|
105
|
+
/**
|
|
106
|
+
* Unregister a task to allow idle detection
|
|
107
|
+
*/
|
|
108
|
+
unregisterTask(taskId: string): void;
|
|
109
|
+
/**
|
|
110
|
+
* Handle idle detection event
|
|
111
|
+
*/
|
|
112
|
+
private handleIdleDetected;
|
|
113
|
+
/**
|
|
114
|
+
* Execute a learning cycle
|
|
115
|
+
*/
|
|
116
|
+
private executeCycle;
|
|
117
|
+
/**
|
|
118
|
+
* Set up time-based scheduling
|
|
119
|
+
*/
|
|
120
|
+
private scheduleTimeBased;
|
|
121
|
+
/**
|
|
122
|
+
* Calculate next scheduled run time
|
|
123
|
+
*/
|
|
124
|
+
private getNextScheduledRun;
|
|
125
|
+
/**
|
|
126
|
+
* Get configuration
|
|
127
|
+
*/
|
|
128
|
+
getConfig(): SleepSchedulerConfig;
|
|
129
|
+
}
|
|
130
|
+
export default SleepScheduler;
|
|
131
|
+
//# sourceMappingURL=SleepScheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SleepScheduler.d.ts","sourceRoot":"","sources":["../../../src/learning/scheduler/SleepScheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAgB,kBAAkB,EAAa,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAc,YAAY,EAAoB,MAAM,cAAc,CAAC;AAGtF,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjC,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,kCAAkC;IAClC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,oBAAoB,CAAa;gBAE7B,MAAM,EAAE,oBAAoB;IAmCxC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B;;OAEG;IACG,YAAY,CAAC,MAAM,GAAE,MAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAe3E;;OAEG;IACH,QAAQ,IAAI,mBAAmB;IAa/B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;YACW,kBAAkB;IAsBhC;;OAEG;YACW,YAAY;IAmD1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,SAAS,IAAI,oBAAoB;CAGlC;AAED,eAAe,cAAc,CAAC"}
|