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,432 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ExperienceCapture - Captures agent executions for learning
|
|
4
|
+
*
|
|
5
|
+
* Automatically captures agent execution data and stores it for later
|
|
6
|
+
* pattern synthesis during sleep cycles.
|
|
7
|
+
*
|
|
8
|
+
* Part of the Nightly-Learner Phase 1 implementation.
|
|
9
|
+
*
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
* @module src/learning/capture/ExperienceCapture
|
|
12
|
+
*/
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
+
var ownKeys = function(o) {
|
|
31
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
+
var ar = [];
|
|
33
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
+
return ar;
|
|
35
|
+
};
|
|
36
|
+
return ownKeys(o);
|
|
37
|
+
};
|
|
38
|
+
return function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
46
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
47
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.ExperienceCapture = void 0;
|
|
51
|
+
const events_1 = require("events");
|
|
52
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const fs = __importStar(require("fs"));
|
|
55
|
+
const Logger_1 = require("../../utils/Logger");
|
|
56
|
+
const SecureRandom_1 = require("../../utils/SecureRandom");
|
|
57
|
+
/**
|
|
58
|
+
* ExperienceCapture captures and stores agent execution experiences
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const capture = new ExperienceCapture({ bufferSize: 50 });
|
|
63
|
+
* await capture.start();
|
|
64
|
+
*
|
|
65
|
+
* // Capture an execution
|
|
66
|
+
* await capture.captureExecution({
|
|
67
|
+
* agentId: 'agent-123',
|
|
68
|
+
* agentType: 'test-generator',
|
|
69
|
+
* taskType: 'unit-test-generation',
|
|
70
|
+
* // ...
|
|
71
|
+
* });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
class ExperienceCapture extends events_1.EventEmitter {
|
|
75
|
+
/**
|
|
76
|
+
* Get or create the shared ExperienceCapture instance
|
|
77
|
+
* Uses singleton pattern to ensure all agents share the same capture buffer
|
|
78
|
+
*/
|
|
79
|
+
static async getSharedInstance(config) {
|
|
80
|
+
if (ExperienceCapture.instance && ExperienceCapture.instance.isRunning) {
|
|
81
|
+
return ExperienceCapture.instance;
|
|
82
|
+
}
|
|
83
|
+
// Handle concurrent initialization
|
|
84
|
+
if (ExperienceCapture.instancePromise) {
|
|
85
|
+
return ExperienceCapture.instancePromise;
|
|
86
|
+
}
|
|
87
|
+
ExperienceCapture.instancePromise = (async () => {
|
|
88
|
+
if (!ExperienceCapture.instance) {
|
|
89
|
+
ExperienceCapture.instance = new ExperienceCapture(config);
|
|
90
|
+
}
|
|
91
|
+
if (!ExperienceCapture.instance.isRunning) {
|
|
92
|
+
await ExperienceCapture.instance.start();
|
|
93
|
+
}
|
|
94
|
+
return ExperienceCapture.instance;
|
|
95
|
+
})();
|
|
96
|
+
const instance = await ExperienceCapture.instancePromise;
|
|
97
|
+
ExperienceCapture.instancePromise = null;
|
|
98
|
+
return instance;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Reset the shared instance (for testing)
|
|
102
|
+
*/
|
|
103
|
+
static resetInstance() {
|
|
104
|
+
if (ExperienceCapture.instance) {
|
|
105
|
+
ExperienceCapture.instance.stop().catch(() => { });
|
|
106
|
+
ExperienceCapture.instance = null;
|
|
107
|
+
}
|
|
108
|
+
ExperienceCapture.instancePromise = null;
|
|
109
|
+
}
|
|
110
|
+
constructor(config) {
|
|
111
|
+
super();
|
|
112
|
+
this.buffer = [];
|
|
113
|
+
this.flushTimer = null;
|
|
114
|
+
this.isRunning = false;
|
|
115
|
+
// Stats tracking
|
|
116
|
+
this.totalCaptured = 0;
|
|
117
|
+
this.totalFlushed = 0;
|
|
118
|
+
this.lastFlush = null;
|
|
119
|
+
this.byAgentType = {};
|
|
120
|
+
this.byTaskType = {};
|
|
121
|
+
this.successCount = 0;
|
|
122
|
+
this.logger = Logger_1.Logger.getInstance();
|
|
123
|
+
this.config = {
|
|
124
|
+
dbPath: config?.dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db'),
|
|
125
|
+
bufferSize: config?.bufferSize ?? 100,
|
|
126
|
+
flushInterval: config?.flushInterval ?? 30000,
|
|
127
|
+
debug: config?.debug ?? false,
|
|
128
|
+
};
|
|
129
|
+
// Ensure the directory exists before opening the database
|
|
130
|
+
const dbDir = path.dirname(this.config.dbPath);
|
|
131
|
+
if (!fs.existsSync(dbDir)) {
|
|
132
|
+
fs.mkdirSync(dbDir, { recursive: true });
|
|
133
|
+
}
|
|
134
|
+
this.db = new better_sqlite3_1.default(this.config.dbPath);
|
|
135
|
+
this.initializeSchema();
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Initialize database schema for experience storage
|
|
139
|
+
*/
|
|
140
|
+
initializeSchema() {
|
|
141
|
+
this.db.exec(`
|
|
142
|
+
CREATE TABLE IF NOT EXISTS captured_experiences (
|
|
143
|
+
id TEXT PRIMARY KEY,
|
|
144
|
+
agent_id TEXT NOT NULL,
|
|
145
|
+
agent_type TEXT NOT NULL,
|
|
146
|
+
task_type TEXT NOT NULL,
|
|
147
|
+
execution TEXT NOT NULL,
|
|
148
|
+
context TEXT NOT NULL,
|
|
149
|
+
outcome TEXT NOT NULL,
|
|
150
|
+
embedding BLOB,
|
|
151
|
+
created_at INTEGER NOT NULL,
|
|
152
|
+
processed INTEGER DEFAULT 0
|
|
153
|
+
);
|
|
154
|
+
|
|
155
|
+
CREATE INDEX IF NOT EXISTS idx_exp_agent_type ON captured_experiences(agent_type);
|
|
156
|
+
CREATE INDEX IF NOT EXISTS idx_exp_task_type ON captured_experiences(task_type);
|
|
157
|
+
CREATE INDEX IF NOT EXISTS idx_exp_created_at ON captured_experiences(created_at);
|
|
158
|
+
CREATE INDEX IF NOT EXISTS idx_exp_processed ON captured_experiences(processed);
|
|
159
|
+
`);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Start capturing experiences
|
|
163
|
+
*/
|
|
164
|
+
async start() {
|
|
165
|
+
if (this.isRunning) {
|
|
166
|
+
this.logger.warn('[ExperienceCapture] Already running');
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
this.isRunning = true;
|
|
170
|
+
// Start periodic flush
|
|
171
|
+
this.flushTimer = setInterval(() => this.flush(), this.config.flushInterval);
|
|
172
|
+
this.logger.info('[ExperienceCapture] Started', {
|
|
173
|
+
bufferSize: this.config.bufferSize,
|
|
174
|
+
flushInterval: this.config.flushInterval,
|
|
175
|
+
});
|
|
176
|
+
this.emit('started');
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Stop capturing and flush remaining buffer
|
|
180
|
+
*/
|
|
181
|
+
async stop() {
|
|
182
|
+
if (!this.isRunning)
|
|
183
|
+
return;
|
|
184
|
+
this.isRunning = false;
|
|
185
|
+
if (this.flushTimer) {
|
|
186
|
+
clearInterval(this.flushTimer);
|
|
187
|
+
this.flushTimer = null;
|
|
188
|
+
}
|
|
189
|
+
// Final flush
|
|
190
|
+
await this.flush();
|
|
191
|
+
this.logger.info('[ExperienceCapture] Stopped', {
|
|
192
|
+
totalCaptured: this.totalCaptured,
|
|
193
|
+
totalFlushed: this.totalFlushed,
|
|
194
|
+
});
|
|
195
|
+
this.emit('stopped');
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Capture an agent execution event
|
|
199
|
+
*/
|
|
200
|
+
async captureExecution(event) {
|
|
201
|
+
if (!this.isRunning) {
|
|
202
|
+
throw new Error('ExperienceCapture not running');
|
|
203
|
+
}
|
|
204
|
+
const experience = await this.extractExperience(event);
|
|
205
|
+
this.buffer.push(experience);
|
|
206
|
+
// Update stats
|
|
207
|
+
this.totalCaptured++;
|
|
208
|
+
this.byAgentType[event.agentType] = (this.byAgentType[event.agentType] || 0) + 1;
|
|
209
|
+
this.byTaskType[event.taskType] = (this.byTaskType[event.taskType] || 0) + 1;
|
|
210
|
+
if (event.success)
|
|
211
|
+
this.successCount++;
|
|
212
|
+
if (this.config.debug) {
|
|
213
|
+
this.logger.debug('[ExperienceCapture] Captured', {
|
|
214
|
+
id: experience.id,
|
|
215
|
+
agentType: event.agentType,
|
|
216
|
+
taskType: event.taskType,
|
|
217
|
+
bufferSize: this.buffer.length,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
this.emit('captured', experience);
|
|
221
|
+
// Auto-flush if buffer is full
|
|
222
|
+
if (this.buffer.length >= this.config.bufferSize) {
|
|
223
|
+
await this.flush();
|
|
224
|
+
}
|
|
225
|
+
return experience.id;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Flush buffer to database
|
|
229
|
+
*/
|
|
230
|
+
async flush() {
|
|
231
|
+
if (this.buffer.length === 0)
|
|
232
|
+
return 0;
|
|
233
|
+
const experiences = [...this.buffer];
|
|
234
|
+
this.buffer = [];
|
|
235
|
+
const stmt = this.db.prepare(`
|
|
236
|
+
INSERT INTO captured_experiences
|
|
237
|
+
(id, agent_id, agent_type, task_type, execution, context, outcome, embedding, created_at, processed)
|
|
238
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 0)
|
|
239
|
+
`);
|
|
240
|
+
const insertMany = this.db.transaction((exps) => {
|
|
241
|
+
for (const exp of exps) {
|
|
242
|
+
stmt.run(exp.id, exp.agentId, exp.agentType, exp.taskType, JSON.stringify(exp.execution), JSON.stringify(exp.context), JSON.stringify(exp.outcome), exp.embedding ? Buffer.from(new Float32Array(exp.embedding).buffer) : null, exp.timestamp.getTime());
|
|
243
|
+
}
|
|
244
|
+
return exps.length;
|
|
245
|
+
});
|
|
246
|
+
const flushed = insertMany(experiences);
|
|
247
|
+
this.totalFlushed += flushed;
|
|
248
|
+
this.lastFlush = new Date();
|
|
249
|
+
this.logger.info('[ExperienceCapture] Flushed', { count: flushed });
|
|
250
|
+
this.emit('flushed', { count: flushed, experiences });
|
|
251
|
+
return flushed;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Get unprocessed experiences for learning
|
|
255
|
+
*/
|
|
256
|
+
getUnprocessedExperiences(limit = 100) {
|
|
257
|
+
const rows = this.db.prepare(`
|
|
258
|
+
SELECT * FROM captured_experiences
|
|
259
|
+
WHERE processed = 0
|
|
260
|
+
ORDER BY created_at ASC
|
|
261
|
+
LIMIT ?
|
|
262
|
+
`).all(limit);
|
|
263
|
+
return rows.map(row => this.rowToExperience(row));
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Get experiences by agent type
|
|
267
|
+
*/
|
|
268
|
+
getExperiencesByAgentType(agentType, limit = 100) {
|
|
269
|
+
const rows = this.db.prepare(`
|
|
270
|
+
SELECT * FROM captured_experiences
|
|
271
|
+
WHERE agent_type = ?
|
|
272
|
+
ORDER BY created_at DESC
|
|
273
|
+
LIMIT ?
|
|
274
|
+
`).all(agentType, limit);
|
|
275
|
+
return rows.map(row => this.rowToExperience(row));
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Get recent experiences
|
|
279
|
+
*/
|
|
280
|
+
getRecentExperiences(hours = 24, limit = 100) {
|
|
281
|
+
const since = Date.now() - hours * 60 * 60 * 1000;
|
|
282
|
+
const rows = this.db.prepare(`
|
|
283
|
+
SELECT * FROM captured_experiences
|
|
284
|
+
WHERE created_at >= ?
|
|
285
|
+
ORDER BY created_at DESC
|
|
286
|
+
LIMIT ?
|
|
287
|
+
`).all(since, limit);
|
|
288
|
+
return rows.map(row => this.rowToExperience(row));
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Mark experiences as processed
|
|
292
|
+
*/
|
|
293
|
+
markAsProcessed(ids) {
|
|
294
|
+
const stmt = this.db.prepare(`
|
|
295
|
+
UPDATE captured_experiences SET processed = 1 WHERE id = ?
|
|
296
|
+
`);
|
|
297
|
+
const updateMany = this.db.transaction((expIds) => {
|
|
298
|
+
for (const id of expIds) {
|
|
299
|
+
stmt.run(id);
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
updateMany(ids);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Get capture statistics
|
|
306
|
+
*/
|
|
307
|
+
getStats() {
|
|
308
|
+
return {
|
|
309
|
+
totalCaptured: this.totalCaptured,
|
|
310
|
+
totalFlushed: this.totalFlushed,
|
|
311
|
+
bufferSize: this.buffer.length,
|
|
312
|
+
lastFlush: this.lastFlush,
|
|
313
|
+
byAgentType: { ...this.byAgentType },
|
|
314
|
+
byTaskType: { ...this.byTaskType },
|
|
315
|
+
successRate: this.totalCaptured > 0 ? this.successCount / this.totalCaptured : 0,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Extract a CapturedExperience from an execution event
|
|
320
|
+
*/
|
|
321
|
+
async extractExperience(event) {
|
|
322
|
+
// Extract patterns and decisions from output
|
|
323
|
+
const patternsUsed = this.extractPatterns(event.output);
|
|
324
|
+
const decisionsMade = this.extractDecisions(event.output);
|
|
325
|
+
const errorsEncountered = event.error ? [event.error.message] : [];
|
|
326
|
+
// Calculate quality score
|
|
327
|
+
const qualityScore = this.calculateQualityScore(event);
|
|
328
|
+
return {
|
|
329
|
+
id: `exp-${Date.now()}-${SecureRandom_1.SecureRandom.randomString(8, 'alphanumeric')}`,
|
|
330
|
+
agentId: event.agentId,
|
|
331
|
+
agentType: event.agentType,
|
|
332
|
+
taskType: event.taskType,
|
|
333
|
+
execution: {
|
|
334
|
+
input: event.input,
|
|
335
|
+
output: event.output,
|
|
336
|
+
duration: event.duration,
|
|
337
|
+
success: event.success,
|
|
338
|
+
},
|
|
339
|
+
context: {
|
|
340
|
+
patterns_used: patternsUsed,
|
|
341
|
+
decisions_made: decisionsMade,
|
|
342
|
+
errors_encountered: errorsEncountered,
|
|
343
|
+
},
|
|
344
|
+
outcome: {
|
|
345
|
+
quality_score: qualityScore,
|
|
346
|
+
coverage_delta: event.metrics?.coverage_delta || 0,
|
|
347
|
+
},
|
|
348
|
+
timestamp: event.timestamp,
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Extract pattern IDs from execution output
|
|
353
|
+
*/
|
|
354
|
+
extractPatterns(output) {
|
|
355
|
+
const patterns = [];
|
|
356
|
+
// Look for pattern references in output
|
|
357
|
+
if (output.patterns && Array.isArray(output.patterns)) {
|
|
358
|
+
patterns.push(...output.patterns.map((p) => p.id || String(p)));
|
|
359
|
+
}
|
|
360
|
+
if (output.patternsApplied && Array.isArray(output.patternsApplied)) {
|
|
361
|
+
patterns.push(...output.patternsApplied);
|
|
362
|
+
}
|
|
363
|
+
return patterns;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Extract decision points from execution output
|
|
367
|
+
*/
|
|
368
|
+
extractDecisions(output) {
|
|
369
|
+
const decisions = [];
|
|
370
|
+
// Look for decision references in output
|
|
371
|
+
if (output.decisions && Array.isArray(output.decisions)) {
|
|
372
|
+
decisions.push(...output.decisions.map(String));
|
|
373
|
+
}
|
|
374
|
+
if (output.strategy) {
|
|
375
|
+
decisions.push(`strategy:${output.strategy}`);
|
|
376
|
+
}
|
|
377
|
+
if (output.framework) {
|
|
378
|
+
decisions.push(`framework:${output.framework}`);
|
|
379
|
+
}
|
|
380
|
+
return decisions;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Calculate a quality score for the execution
|
|
384
|
+
*/
|
|
385
|
+
calculateQualityScore(event) {
|
|
386
|
+
let score = event.success ? 0.5 : 0.0;
|
|
387
|
+
// Bonus for metrics
|
|
388
|
+
if (event.metrics) {
|
|
389
|
+
if (event.metrics.coverage && event.metrics.coverage > 70) {
|
|
390
|
+
score += 0.2;
|
|
391
|
+
}
|
|
392
|
+
if (event.metrics.testsGenerated && event.metrics.testsGenerated > 5) {
|
|
393
|
+
score += 0.1;
|
|
394
|
+
}
|
|
395
|
+
if (event.metrics.duration && event.metrics.duration < 5000) {
|
|
396
|
+
score += 0.1; // Fast execution bonus
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
// Penalty for errors
|
|
400
|
+
if (event.error) {
|
|
401
|
+
score -= 0.2;
|
|
402
|
+
}
|
|
403
|
+
return Math.max(0, Math.min(1, score));
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Convert database row to CapturedExperience
|
|
407
|
+
*/
|
|
408
|
+
rowToExperience(row) {
|
|
409
|
+
return {
|
|
410
|
+
id: row.id,
|
|
411
|
+
agentId: row.agent_id,
|
|
412
|
+
agentType: row.agent_type,
|
|
413
|
+
taskType: row.task_type,
|
|
414
|
+
execution: JSON.parse(row.execution),
|
|
415
|
+
context: JSON.parse(row.context),
|
|
416
|
+
outcome: JSON.parse(row.outcome),
|
|
417
|
+
timestamp: new Date(row.created_at),
|
|
418
|
+
embedding: row.embedding ? Array.from(new Float32Array(row.embedding)) : undefined,
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Close database connection
|
|
423
|
+
*/
|
|
424
|
+
close() {
|
|
425
|
+
this.db.close();
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
exports.ExperienceCapture = ExperienceCapture;
|
|
429
|
+
ExperienceCapture.instance = null;
|
|
430
|
+
ExperienceCapture.instancePromise = null;
|
|
431
|
+
exports.default = ExperienceCapture;
|
|
432
|
+
//# sourceMappingURL=ExperienceCapture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExperienceCapture.js","sourceRoot":"","sources":["../../../src/learning/capture/ExperienceCapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Experience Capture Module
|
|
3
|
+
*
|
|
4
|
+
* Provides experience capture infrastructure for the Nightly-Learner system:
|
|
5
|
+
* - ExperienceCapture: Store agent execution experiences
|
|
6
|
+
* - ExecutionRecorder: Hook into agent execution pipeline
|
|
7
|
+
*
|
|
8
|
+
* @module src/learning/capture
|
|
9
|
+
*/
|
|
10
|
+
export { ExperienceCapture, ExperienceCaptureConfig, CapturedExperience, AgentExecutionEvent, CaptureStats, } from './ExperienceCapture';
|
|
11
|
+
export { ExecutionRecorder, ExecutionRecorderConfig, RecordedExecution, } from './ExecutionRecorder';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/learning/capture/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Experience Capture Module
|
|
4
|
+
*
|
|
5
|
+
* Provides experience capture infrastructure for the Nightly-Learner system:
|
|
6
|
+
* - ExperienceCapture: Store agent execution experiences
|
|
7
|
+
* - ExecutionRecorder: Hook into agent execution pipeline
|
|
8
|
+
*
|
|
9
|
+
* @module src/learning/capture
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ExecutionRecorder = exports.ExperienceCapture = void 0;
|
|
13
|
+
var ExperienceCapture_1 = require("./ExperienceCapture");
|
|
14
|
+
Object.defineProperty(exports, "ExperienceCapture", { enumerable: true, get: function () { return ExperienceCapture_1.ExperienceCapture; } });
|
|
15
|
+
var ExecutionRecorder_1 = require("./ExecutionRecorder");
|
|
16
|
+
Object.defineProperty(exports, "ExecutionRecorder", { enumerable: true, get: function () { return ExecutionRecorder_1.ExecutionRecorder; } });
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/learning/capture/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,yDAM6B;AAL3B,sHAAA,iBAAiB,OAAA;AAOnB,yDAI6B;AAH3B,sHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MetricsDashboard - Phase 3 Dashboard Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for displaying metrics in CLI dashboard format.
|
|
5
|
+
*/
|
|
6
|
+
import { AggregatedMetrics } from '../metrics/MetricsCollector';
|
|
7
|
+
import { TrendAnalysis } from '../metrics/TrendAnalyzer';
|
|
8
|
+
import { Alert } from '../metrics/AlertManager';
|
|
9
|
+
/**
|
|
10
|
+
* Dashboard display options
|
|
11
|
+
*/
|
|
12
|
+
export interface DashboardOptions {
|
|
13
|
+
detailed?: boolean;
|
|
14
|
+
format?: 'table' | 'json';
|
|
15
|
+
showTrends?: boolean;
|
|
16
|
+
showAlerts?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* MetricsDashboard - Formats and displays learning metrics
|
|
20
|
+
*/
|
|
21
|
+
export declare class MetricsDashboard {
|
|
22
|
+
/**
|
|
23
|
+
* Display complete metrics dashboard
|
|
24
|
+
*/
|
|
25
|
+
static displayMetrics(metrics: AggregatedMetrics, options?: DashboardOptions): void;
|
|
26
|
+
/**
|
|
27
|
+
* Display trend analysis
|
|
28
|
+
*/
|
|
29
|
+
static displayTrends(trends: TrendAnalysis[], options?: DashboardOptions): void;
|
|
30
|
+
/**
|
|
31
|
+
* Display alerts
|
|
32
|
+
*/
|
|
33
|
+
static displayAlerts(alerts: Alert[], options?: DashboardOptions): void;
|
|
34
|
+
/**
|
|
35
|
+
* Display a metrics section
|
|
36
|
+
*/
|
|
37
|
+
private static displaySection;
|
|
38
|
+
/**
|
|
39
|
+
* Display trend section
|
|
40
|
+
*/
|
|
41
|
+
private static displayTrendSection;
|
|
42
|
+
/**
|
|
43
|
+
* Format percentage
|
|
44
|
+
*/
|
|
45
|
+
private static formatPercentage;
|
|
46
|
+
/**
|
|
47
|
+
* Get color for trend direction
|
|
48
|
+
*/
|
|
49
|
+
private static getTrendColor;
|
|
50
|
+
/**
|
|
51
|
+
* Get color for alert severity
|
|
52
|
+
*/
|
|
53
|
+
private static getAlertColor;
|
|
54
|
+
/**
|
|
55
|
+
* Format metric name for display
|
|
56
|
+
*/
|
|
57
|
+
private static formatMetricName;
|
|
58
|
+
/**
|
|
59
|
+
* Create summary table
|
|
60
|
+
*/
|
|
61
|
+
static createSummaryTable(metrics: AggregatedMetrics): string;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=MetricsDashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetricsDashboard.d.ts","sourceRoot":"","sources":["../../../src/learning/dashboard/MetricsDashboard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAkB,aAAa,EAAiB,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,KAAK,EAA+B,MAAM,yBAAyB,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;IAoDvF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;IAwBnF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;IA0B3E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAoBlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAgB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;CA2C9D"}
|