agentic-qe 2.3.3 → 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.
Files changed (162) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +10 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +113 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/cli/commands/dream/index.d.ts +50 -0
  8. package/dist/cli/commands/dream/index.d.ts.map +1 -0
  9. package/dist/cli/commands/dream/index.js +282 -0
  10. package/dist/cli/commands/dream/index.js.map +1 -0
  11. package/dist/cli/commands/learn/index.d.ts +31 -5
  12. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  13. package/dist/cli/commands/learn/index.js +183 -50
  14. package/dist/cli/commands/learn/index.js.map +1 -1
  15. package/dist/cli/commands/transfer/index.d.ts +55 -0
  16. package/dist/cli/commands/transfer/index.d.ts.map +1 -0
  17. package/dist/cli/commands/transfer/index.js +317 -0
  18. package/dist/cli/commands/transfer/index.js.map +1 -0
  19. package/dist/cli/index.js +156 -3
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/cli/init/index.d.ts.map +1 -1
  22. package/dist/cli/init/index.js +12 -4
  23. package/dist/cli/init/index.js.map +1 -1
  24. package/dist/cli/init/learning-init.d.ts +39 -0
  25. package/dist/cli/init/learning-init.d.ts.map +1 -0
  26. package/dist/cli/init/learning-init.js +239 -0
  27. package/dist/cli/init/learning-init.js.map +1 -0
  28. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  29. package/dist/learning/baselines/BaselineCollector.d.ts +178 -0
  30. package/dist/learning/baselines/BaselineCollector.d.ts.map +1 -0
  31. package/dist/learning/baselines/BaselineCollector.js +398 -0
  32. package/dist/learning/baselines/BaselineCollector.js.map +1 -0
  33. package/dist/learning/baselines/StandardTaskSuite.d.ts +88 -0
  34. package/dist/learning/baselines/StandardTaskSuite.d.ts.map +1 -0
  35. package/dist/learning/baselines/StandardTaskSuite.js +801 -0
  36. package/dist/learning/baselines/StandardTaskSuite.js.map +1 -0
  37. package/dist/learning/baselines/index.d.ts +10 -0
  38. package/dist/learning/baselines/index.d.ts.map +1 -0
  39. package/dist/learning/baselines/index.js +15 -0
  40. package/dist/learning/baselines/index.js.map +1 -0
  41. package/dist/learning/capture/ExecutionRecorder.d.ts +97 -0
  42. package/dist/learning/capture/ExecutionRecorder.d.ts.map +1 -0
  43. package/dist/learning/capture/ExecutionRecorder.js +195 -0
  44. package/dist/learning/capture/ExecutionRecorder.js.map +1 -0
  45. package/dist/learning/capture/ExperienceCapture.d.ts +177 -0
  46. package/dist/learning/capture/ExperienceCapture.d.ts.map +1 -0
  47. package/dist/learning/capture/ExperienceCapture.js +432 -0
  48. package/dist/learning/capture/ExperienceCapture.js.map +1 -0
  49. package/dist/learning/capture/index.d.ts +12 -0
  50. package/dist/learning/capture/index.d.ts.map +1 -0
  51. package/dist/learning/capture/index.js +17 -0
  52. package/dist/learning/capture/index.js.map +1 -0
  53. package/dist/learning/dashboard/MetricsDashboard.d.ts +63 -0
  54. package/dist/learning/dashboard/MetricsDashboard.d.ts.map +1 -0
  55. package/dist/learning/dashboard/MetricsDashboard.js +230 -0
  56. package/dist/learning/dashboard/MetricsDashboard.js.map +1 -0
  57. package/dist/learning/dashboard/index.d.ts +7 -0
  58. package/dist/learning/dashboard/index.d.ts.map +1 -0
  59. package/dist/learning/dashboard/index.js +23 -0
  60. package/dist/learning/dashboard/index.js.map +1 -0
  61. package/dist/learning/dream/ConceptGraph.d.ts +160 -0
  62. package/dist/learning/dream/ConceptGraph.d.ts.map +1 -0
  63. package/dist/learning/dream/ConceptGraph.js +445 -0
  64. package/dist/learning/dream/ConceptGraph.js.map +1 -0
  65. package/dist/learning/dream/DreamEngine.d.ts +150 -0
  66. package/dist/learning/dream/DreamEngine.d.ts.map +1 -0
  67. package/dist/learning/dream/DreamEngine.js +551 -0
  68. package/dist/learning/dream/DreamEngine.js.map +1 -0
  69. package/dist/learning/dream/InsightGenerator.d.ts +152 -0
  70. package/dist/learning/dream/InsightGenerator.d.ts.map +1 -0
  71. package/dist/learning/dream/InsightGenerator.js +463 -0
  72. package/dist/learning/dream/InsightGenerator.js.map +1 -0
  73. package/dist/learning/dream/SpreadingActivation.d.ts +138 -0
  74. package/dist/learning/dream/SpreadingActivation.d.ts.map +1 -0
  75. package/dist/learning/dream/SpreadingActivation.js +320 -0
  76. package/dist/learning/dream/SpreadingActivation.js.map +1 -0
  77. package/dist/learning/dream/index.d.ts +14 -0
  78. package/dist/learning/dream/index.d.ts.map +1 -0
  79. package/dist/learning/dream/index.js +22 -0
  80. package/dist/learning/dream/index.js.map +1 -0
  81. package/dist/learning/metrics/AlertManager.d.ts +107 -0
  82. package/dist/learning/metrics/AlertManager.d.ts.map +1 -0
  83. package/dist/learning/metrics/AlertManager.js +246 -0
  84. package/dist/learning/metrics/AlertManager.js.map +1 -0
  85. package/dist/learning/metrics/LearningMetrics.d.ts +184 -0
  86. package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -0
  87. package/dist/learning/metrics/LearningMetrics.js +754 -0
  88. package/dist/learning/metrics/LearningMetrics.js.map +1 -0
  89. package/dist/learning/metrics/MetricsCollector.d.ts +108 -0
  90. package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -0
  91. package/dist/learning/metrics/MetricsCollector.js +240 -0
  92. package/dist/learning/metrics/MetricsCollector.js.map +1 -0
  93. package/dist/learning/metrics/MetricsStore.d.ts +149 -0
  94. package/dist/learning/metrics/MetricsStore.d.ts.map +1 -0
  95. package/dist/learning/metrics/MetricsStore.js +502 -0
  96. package/dist/learning/metrics/MetricsStore.js.map +1 -0
  97. package/dist/learning/metrics/TrendAnalyzer.d.ts +85 -0
  98. package/dist/learning/metrics/TrendAnalyzer.d.ts.map +1 -0
  99. package/dist/learning/metrics/TrendAnalyzer.js +210 -0
  100. package/dist/learning/metrics/TrendAnalyzer.js.map +1 -0
  101. package/dist/learning/metrics/index.d.ts +13 -0
  102. package/dist/learning/metrics/index.d.ts.map +1 -0
  103. package/dist/learning/metrics/index.js +39 -0
  104. package/dist/learning/metrics/index.js.map +1 -0
  105. package/dist/learning/scheduler/IdleDetector.d.ts +126 -0
  106. package/dist/learning/scheduler/IdleDetector.d.ts.map +1 -0
  107. package/dist/learning/scheduler/IdleDetector.js +281 -0
  108. package/dist/learning/scheduler/IdleDetector.js.map +1 -0
  109. package/dist/learning/scheduler/SleepCycle.d.ts +150 -0
  110. package/dist/learning/scheduler/SleepCycle.d.ts.map +1 -0
  111. package/dist/learning/scheduler/SleepCycle.js +506 -0
  112. package/dist/learning/scheduler/SleepCycle.js.map +1 -0
  113. package/dist/learning/scheduler/SleepScheduler.d.ts +131 -0
  114. package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -0
  115. package/dist/learning/scheduler/SleepScheduler.js +299 -0
  116. package/dist/learning/scheduler/SleepScheduler.js.map +1 -0
  117. package/dist/learning/scheduler/TimeBasedTrigger.d.ts +108 -0
  118. package/dist/learning/scheduler/TimeBasedTrigger.d.ts.map +1 -0
  119. package/dist/learning/scheduler/TimeBasedTrigger.js +222 -0
  120. package/dist/learning/scheduler/TimeBasedTrigger.js.map +1 -0
  121. package/dist/learning/scheduler/index.d.ts +16 -0
  122. package/dist/learning/scheduler/index.d.ts.map +1 -0
  123. package/dist/learning/scheduler/index.js +23 -0
  124. package/dist/learning/scheduler/index.js.map +1 -0
  125. package/dist/learning/synthesis/PatternSynthesis.d.ts +162 -0
  126. package/dist/learning/synthesis/PatternSynthesis.d.ts.map +1 -0
  127. package/dist/learning/synthesis/PatternSynthesis.js +479 -0
  128. package/dist/learning/synthesis/PatternSynthesis.js.map +1 -0
  129. package/dist/learning/synthesis/index.d.ts +10 -0
  130. package/dist/learning/synthesis/index.d.ts.map +1 -0
  131. package/dist/learning/synthesis/index.js +14 -0
  132. package/dist/learning/synthesis/index.js.map +1 -0
  133. package/dist/learning/transfer/CompatibilityScorer.d.ts +115 -0
  134. package/dist/learning/transfer/CompatibilityScorer.d.ts.map +1 -0
  135. package/dist/learning/transfer/CompatibilityScorer.js +319 -0
  136. package/dist/learning/transfer/CompatibilityScorer.js.map +1 -0
  137. package/dist/learning/transfer/TransferProtocol.d.ts +172 -0
  138. package/dist/learning/transfer/TransferProtocol.d.ts.map +1 -0
  139. package/dist/learning/transfer/TransferProtocol.js +611 -0
  140. package/dist/learning/transfer/TransferProtocol.js.map +1 -0
  141. package/dist/learning/transfer/TransferPrototype.d.ts +93 -0
  142. package/dist/learning/transfer/TransferPrototype.d.ts.map +1 -0
  143. package/dist/learning/transfer/TransferPrototype.js +433 -0
  144. package/dist/learning/transfer/TransferPrototype.js.map +1 -0
  145. package/dist/learning/transfer/TransferValidator.d.ts +140 -0
  146. package/dist/learning/transfer/TransferValidator.d.ts.map +1 -0
  147. package/dist/learning/transfer/TransferValidator.js +413 -0
  148. package/dist/learning/transfer/TransferValidator.js.map +1 -0
  149. package/dist/learning/transfer/index.d.ts +14 -0
  150. package/dist/learning/transfer/index.d.ts.map +1 -0
  151. package/dist/learning/transfer/index.js +22 -0
  152. package/dist/learning/transfer/index.js.map +1 -0
  153. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts +26 -2
  154. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
  155. package/dist/mcp/handlers/test/test-generate-enhanced.js +159 -27
  156. package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
  157. package/dist/mcp/server-instructions.d.ts +1 -1
  158. package/dist/mcp/server-instructions.js +1 -1
  159. package/dist/mcp/server.d.ts.map +1 -1
  160. package/dist/mcp/server.js +2 -1
  161. package/dist/mcp/server.js.map +1 -1
  162. package/package.json +5 -2
@@ -0,0 +1,140 @@
1
+ /**
2
+ * TransferValidator - Validate pattern transfer success
3
+ *
4
+ * Performs post-transfer validation to ensure patterns are
5
+ * correctly transferred and applicable to target agents.
6
+ *
7
+ * Part of the Nightly-Learner Phase 2 implementation.
8
+ *
9
+ * @version 1.0.0
10
+ * @module src/learning/transfer/TransferValidator
11
+ */
12
+ import { EventEmitter } from 'events';
13
+ export interface ValidationConfig {
14
+ /** Database path. Default: .agentic-qe/memory.db */
15
+ dbPath?: string;
16
+ /** Minimum validation score to pass. Default: 0.7 */
17
+ passThreshold?: number;
18
+ /** Enable detailed validation. Default: true */
19
+ detailedValidation?: boolean;
20
+ /** Enable debug logging */
21
+ debug?: boolean;
22
+ }
23
+ export interface ValidationReport {
24
+ transferId: string;
25
+ patternId: string;
26
+ sourceAgent: string;
27
+ targetAgent: string;
28
+ passed: boolean;
29
+ overallScore: number;
30
+ checks: ValidationCheck[];
31
+ recommendations?: string[];
32
+ validatedAt: Date;
33
+ }
34
+ export interface ValidationCheck {
35
+ name: string;
36
+ category: 'integrity' | 'applicability' | 'performance' | 'safety';
37
+ passed: boolean;
38
+ score: number;
39
+ message: string;
40
+ details?: Record<string, unknown>;
41
+ }
42
+ export interface TransferRecord {
43
+ id: string;
44
+ patternId: string;
45
+ sourceAgent: string;
46
+ targetAgent: string;
47
+ transferredAt: Date;
48
+ originalContent: string;
49
+ transferredContent: string;
50
+ compatibilityScore: number;
51
+ }
52
+ /**
53
+ * TransferValidator validates pattern transfers
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const validator = new TransferValidator({ passThreshold: 0.7 });
58
+ *
59
+ * const report = await validator.validate(transferRecord);
60
+ *
61
+ * if (report.passed) {
62
+ * console.log('Transfer validated successfully');
63
+ * } else {
64
+ * console.log('Issues:', report.recommendations);
65
+ * }
66
+ * ```
67
+ */
68
+ export declare class TransferValidator extends EventEmitter {
69
+ private config;
70
+ private db;
71
+ private logger;
72
+ constructor(config?: ValidationConfig);
73
+ /**
74
+ * Initialize database schema
75
+ */
76
+ private initializeSchema;
77
+ /**
78
+ * Validate a pattern transfer
79
+ */
80
+ validate(record: TransferRecord): Promise<ValidationReport>;
81
+ /**
82
+ * Check pattern integrity
83
+ */
84
+ private checkPatternIntegrity;
85
+ /**
86
+ * Check data consistency
87
+ */
88
+ private checkDataConsistency;
89
+ /**
90
+ * Check agent applicability
91
+ */
92
+ private checkAgentApplicability;
93
+ /**
94
+ * Check context preservation
95
+ */
96
+ private checkContextPreservation;
97
+ /**
98
+ * Check confidence preservation
99
+ */
100
+ private checkConfidencePreservation;
101
+ /**
102
+ * Check for duplicate transfers
103
+ */
104
+ private checkDuplicateDetection;
105
+ /**
106
+ * Check safety constraints
107
+ */
108
+ private checkSafetyConstraints;
109
+ /**
110
+ * Calculate content similarity
111
+ */
112
+ private calculateContentSimilarity;
113
+ /**
114
+ * Generate recommendations based on validation
115
+ */
116
+ private generateRecommendations;
117
+ /**
118
+ * Store validation result
119
+ */
120
+ private storeValidation;
121
+ /**
122
+ * Get validation history for a pattern
123
+ */
124
+ getValidationHistory(patternId: string): ValidationReport[];
125
+ /**
126
+ * Get validation statistics
127
+ */
128
+ getStats(): {
129
+ total: number;
130
+ passed: number;
131
+ failed: number;
132
+ avgScore: number;
133
+ };
134
+ /**
135
+ * Close database connection
136
+ */
137
+ close(): void;
138
+ }
139
+ export default TransferValidator;
140
+ //# sourceMappingURL=TransferValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransferValidator.d.ts","sourceRoot":"","sources":["../../../src/learning/transfer/TransferValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,GAAG,eAAe,GAAG,aAAa,GAAG,QAAQ,CAAC;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,IAAI,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,gBAAgB;IAerC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuDjE;;OAEG;YACW,qBAAqB;IAqBnC;;OAEG;YACW,oBAAoB;IAqBlC;;OAEG;YACW,uBAAuB;IAiBrC;;OAEG;YACW,wBAAwB;IAqBtC;;OAEG;YACW,2BAA2B;IAiCzC;;OAEG;YACW,uBAAuB;IAqBrC;;OAEG;YACW,sBAAsB;IAsBpC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAclC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA6B/B;;OAEG;YACW,eAAe;IAqB7B;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAoB3D;;OAEG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAkB/E;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,413 @@
1
+ "use strict";
2
+ /**
3
+ * TransferValidator - Validate pattern transfer success
4
+ *
5
+ * Performs post-transfer validation to ensure patterns are
6
+ * correctly transferred and applicable to target agents.
7
+ *
8
+ * Part of the Nightly-Learner Phase 2 implementation.
9
+ *
10
+ * @version 1.0.0
11
+ * @module src/learning/transfer/TransferValidator
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.TransferValidator = 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 Logger_1 = require("../../utils/Logger");
55
+ /**
56
+ * TransferValidator validates pattern transfers
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const validator = new TransferValidator({ passThreshold: 0.7 });
61
+ *
62
+ * const report = await validator.validate(transferRecord);
63
+ *
64
+ * if (report.passed) {
65
+ * console.log('Transfer validated successfully');
66
+ * } else {
67
+ * console.log('Issues:', report.recommendations);
68
+ * }
69
+ * ```
70
+ */
71
+ class TransferValidator extends events_1.EventEmitter {
72
+ constructor(config) {
73
+ super();
74
+ this.logger = Logger_1.Logger.getInstance();
75
+ this.config = {
76
+ dbPath: config?.dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db'),
77
+ passThreshold: config?.passThreshold ?? 0.7,
78
+ detailedValidation: config?.detailedValidation ?? true,
79
+ debug: config?.debug ?? false,
80
+ };
81
+ this.db = new better_sqlite3_1.default(this.config.dbPath);
82
+ this.initializeSchema();
83
+ }
84
+ /**
85
+ * Initialize database schema
86
+ */
87
+ initializeSchema() {
88
+ this.db.exec(`
89
+ CREATE TABLE IF NOT EXISTS transfer_validations (
90
+ id TEXT PRIMARY KEY,
91
+ transfer_id TEXT NOT NULL,
92
+ pattern_id TEXT NOT NULL,
93
+ source_agent TEXT NOT NULL,
94
+ target_agent TEXT NOT NULL,
95
+ passed INTEGER NOT NULL,
96
+ overall_score REAL NOT NULL,
97
+ checks TEXT NOT NULL,
98
+ recommendations TEXT,
99
+ validated_at INTEGER NOT NULL
100
+ );
101
+
102
+ CREATE INDEX IF NOT EXISTS idx_validation_transfer ON transfer_validations(transfer_id);
103
+ CREATE INDEX IF NOT EXISTS idx_validation_pattern ON transfer_validations(pattern_id);
104
+ CREATE INDEX IF NOT EXISTS idx_validation_passed ON transfer_validations(passed);
105
+ `);
106
+ }
107
+ /**
108
+ * Validate a pattern transfer
109
+ */
110
+ async validate(record) {
111
+ const checks = [];
112
+ // Integrity checks
113
+ checks.push(await this.checkPatternIntegrity(record));
114
+ checks.push(await this.checkDataConsistency(record));
115
+ // Applicability checks
116
+ checks.push(await this.checkAgentApplicability(record));
117
+ checks.push(await this.checkContextPreservation(record));
118
+ // Performance checks
119
+ if (this.config.detailedValidation) {
120
+ checks.push(await this.checkConfidencePreservation(record));
121
+ checks.push(await this.checkDuplicateDetection(record));
122
+ }
123
+ // Safety checks
124
+ checks.push(await this.checkSafetyConstraints(record));
125
+ // Calculate overall score
126
+ const passedChecks = checks.filter(c => c.passed);
127
+ const overallScore = checks.reduce((sum, c) => sum + c.score, 0) / checks.length;
128
+ const passed = overallScore >= this.config.passThreshold;
129
+ // Generate recommendations
130
+ const recommendations = this.generateRecommendations(checks, passed);
131
+ const report = {
132
+ transferId: record.id,
133
+ patternId: record.patternId,
134
+ sourceAgent: record.sourceAgent,
135
+ targetAgent: record.targetAgent,
136
+ passed,
137
+ overallScore,
138
+ checks,
139
+ recommendations: recommendations.length > 0 ? recommendations : undefined,
140
+ validatedAt: new Date(),
141
+ };
142
+ // Store validation
143
+ await this.storeValidation(report);
144
+ this.logger.info('[TransferValidator] Validation complete', {
145
+ transferId: record.id,
146
+ passed,
147
+ score: overallScore.toFixed(3),
148
+ checksTotal: checks.length,
149
+ checksPassed: passedChecks.length,
150
+ });
151
+ this.emit('validation:complete', report);
152
+ return report;
153
+ }
154
+ /**
155
+ * Check pattern integrity
156
+ */
157
+ async checkPatternIntegrity(record) {
158
+ // Verify pattern exists in target context
159
+ const exists = this.db.prepare(`
160
+ SELECT COUNT(*) as count FROM patterns
161
+ WHERE id LIKE ? AND agent_id = ?
162
+ `).get(`%${record.patternId}%`, record.targetAgent);
163
+ const passed = exists.count > 0;
164
+ return {
165
+ name: 'Pattern Integrity',
166
+ category: 'integrity',
167
+ passed,
168
+ score: passed ? 1.0 : 0,
169
+ message: passed
170
+ ? 'Pattern exists in target agent context'
171
+ : 'Pattern not found in target agent context',
172
+ details: { count: exists.count },
173
+ };
174
+ }
175
+ /**
176
+ * Check data consistency
177
+ */
178
+ async checkDataConsistency(record) {
179
+ // Verify content is similar (allowing for minor adaptations)
180
+ const original = record.originalContent || '';
181
+ const transferred = record.transferredContent || '';
182
+ // Calculate similarity
183
+ const similarity = this.calculateContentSimilarity(original, transferred);
184
+ const passed = similarity >= 0.7; // Allow 30% adaptation
185
+ return {
186
+ name: 'Data Consistency',
187
+ category: 'integrity',
188
+ passed,
189
+ score: similarity,
190
+ message: passed
191
+ ? 'Content preserved within acceptable range'
192
+ : 'Content significantly altered during transfer',
193
+ details: { similarity: similarity.toFixed(3) },
194
+ };
195
+ }
196
+ /**
197
+ * Check agent applicability
198
+ */
199
+ async checkAgentApplicability(record) {
200
+ // Verify pattern is applicable to target agent's domain
201
+ const compatibility = record.compatibilityScore;
202
+ const passed = compatibility >= 0.5;
203
+ return {
204
+ name: 'Agent Applicability',
205
+ category: 'applicability',
206
+ passed,
207
+ score: compatibility,
208
+ message: passed
209
+ ? 'Pattern applicable to target agent'
210
+ : 'Pattern may not be suitable for target agent',
211
+ details: { compatibilityScore: compatibility.toFixed(3) },
212
+ };
213
+ }
214
+ /**
215
+ * Check context preservation
216
+ */
217
+ async checkContextPreservation(record) {
218
+ // Verify transfer context was recorded
219
+ const registry = this.db.prepare(`
220
+ SELECT * FROM transfer_registry
221
+ WHERE pattern_id = ? AND target_agent = ?
222
+ `).get(record.patternId, record.targetAgent);
223
+ const hasContext = registry && registry.source_agent === record.sourceAgent;
224
+ return {
225
+ name: 'Context Preservation',
226
+ category: 'applicability',
227
+ passed: hasContext,
228
+ score: hasContext ? 1.0 : 0.5,
229
+ message: hasContext
230
+ ? 'Transfer context preserved'
231
+ : 'Transfer context incomplete',
232
+ details: { hasRegistry: !!registry },
233
+ };
234
+ }
235
+ /**
236
+ * Check confidence preservation
237
+ */
238
+ async checkConfidencePreservation(record) {
239
+ // Get transferred pattern's confidence
240
+ const pattern = this.db.prepare(`
241
+ SELECT confidence FROM patterns
242
+ WHERE id LIKE ? AND agent_id = ?
243
+ `).get(`%${record.patternId}%`, record.targetAgent);
244
+ if (!pattern) {
245
+ return {
246
+ name: 'Confidence Preservation',
247
+ category: 'performance',
248
+ passed: false,
249
+ score: 0,
250
+ message: 'Pattern not found for confidence check',
251
+ };
252
+ }
253
+ // Expect ~90% confidence retention (10% reduction for transfer)
254
+ const expectedConfidence = 0.5; // Minimum acceptable
255
+ const passed = pattern.confidence >= expectedConfidence;
256
+ return {
257
+ name: 'Confidence Preservation',
258
+ category: 'performance',
259
+ passed,
260
+ score: Math.min(1, pattern.confidence / 0.7),
261
+ message: passed
262
+ ? `Confidence preserved: ${(pattern.confidence * 100).toFixed(1)}%`
263
+ : `Confidence too low: ${(pattern.confidence * 100).toFixed(1)}%`,
264
+ details: { confidence: pattern.confidence },
265
+ };
266
+ }
267
+ /**
268
+ * Check for duplicate transfers
269
+ */
270
+ async checkDuplicateDetection(record) {
271
+ // Check if same pattern was transferred multiple times
272
+ const duplicates = this.db.prepare(`
273
+ SELECT COUNT(*) as count FROM transfer_registry
274
+ WHERE pattern_id = ? AND target_agent = ?
275
+ `).get(record.patternId, record.targetAgent);
276
+ const noDuplicates = duplicates.count <= 1;
277
+ return {
278
+ name: 'Duplicate Detection',
279
+ category: 'performance',
280
+ passed: noDuplicates,
281
+ score: noDuplicates ? 1.0 : 0.5,
282
+ message: noDuplicates
283
+ ? 'No duplicate transfers detected'
284
+ : `Pattern transferred ${duplicates.count} times`,
285
+ details: { transferCount: duplicates.count },
286
+ };
287
+ }
288
+ /**
289
+ * Check safety constraints
290
+ */
291
+ async checkSafetyConstraints(record) {
292
+ // Verify no unsafe patterns are being transferred
293
+ const unsafePatterns = [
294
+ 'delete', 'drop', 'truncate', 'rm -rf',
295
+ 'password', 'secret', 'credential',
296
+ ];
297
+ const content = (record.transferredContent || '').toLowerCase();
298
+ const hasUnsafe = unsafePatterns.some(p => content.includes(p));
299
+ return {
300
+ name: 'Safety Constraints',
301
+ category: 'safety',
302
+ passed: !hasUnsafe,
303
+ score: hasUnsafe ? 0.5 : 1.0,
304
+ message: hasUnsafe
305
+ ? 'Warning: Pattern contains potentially unsafe content'
306
+ : 'Pattern passes safety checks',
307
+ details: { flagged: hasUnsafe },
308
+ };
309
+ }
310
+ /**
311
+ * Calculate content similarity
312
+ */
313
+ calculateContentSimilarity(a, b) {
314
+ if (!a || !b)
315
+ return 0;
316
+ if (a === b)
317
+ return 1;
318
+ // Simple word overlap
319
+ const wordsA = new Set(a.toLowerCase().split(/\s+/));
320
+ const wordsB = new Set(b.toLowerCase().split(/\s+/));
321
+ const intersection = [...wordsA].filter(w => wordsB.has(w));
322
+ const union = new Set([...wordsA, ...wordsB]);
323
+ return intersection.length / union.size;
324
+ }
325
+ /**
326
+ * Generate recommendations based on validation
327
+ */
328
+ generateRecommendations(checks, passed) {
329
+ const recommendations = [];
330
+ for (const check of checks) {
331
+ if (!check.passed) {
332
+ switch (check.category) {
333
+ case 'integrity':
334
+ recommendations.push(`Fix ${check.name}: ${check.message}`);
335
+ break;
336
+ case 'applicability':
337
+ recommendations.push(`Review applicability: ${check.message}`);
338
+ break;
339
+ case 'performance':
340
+ recommendations.push(`Optimize: ${check.message}`);
341
+ break;
342
+ case 'safety':
343
+ recommendations.push(`Security review required: ${check.message}`);
344
+ break;
345
+ }
346
+ }
347
+ }
348
+ if (!passed && recommendations.length === 0) {
349
+ recommendations.push('Overall score below threshold - review transfer parameters');
350
+ }
351
+ return recommendations;
352
+ }
353
+ /**
354
+ * Store validation result
355
+ */
356
+ async storeValidation(report) {
357
+ const id = `val-${Date.now()}-${Math.random().toString(36).substr(2, 8)}`;
358
+ this.db.prepare(`
359
+ INSERT INTO transfer_validations
360
+ (id, transfer_id, pattern_id, source_agent, target_agent, passed, overall_score, checks, recommendations, validated_at)
361
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
362
+ `).run(id, report.transferId, report.patternId, report.sourceAgent, report.targetAgent, report.passed ? 1 : 0, report.overallScore, JSON.stringify(report.checks), report.recommendations ? JSON.stringify(report.recommendations) : null, report.validatedAt.getTime());
363
+ }
364
+ /**
365
+ * Get validation history for a pattern
366
+ */
367
+ getValidationHistory(patternId) {
368
+ const rows = this.db.prepare(`
369
+ SELECT * FROM transfer_validations
370
+ WHERE pattern_id = ?
371
+ ORDER BY validated_at DESC
372
+ `).all(patternId);
373
+ return rows.map(row => ({
374
+ transferId: row.transfer_id,
375
+ patternId: row.pattern_id,
376
+ sourceAgent: row.source_agent,
377
+ targetAgent: row.target_agent,
378
+ passed: row.passed === 1,
379
+ overallScore: row.overall_score,
380
+ checks: JSON.parse(row.checks),
381
+ recommendations: row.recommendations ? JSON.parse(row.recommendations) : undefined,
382
+ validatedAt: new Date(row.validated_at),
383
+ }));
384
+ }
385
+ /**
386
+ * Get validation statistics
387
+ */
388
+ getStats() {
389
+ const stats = this.db.prepare(`
390
+ SELECT
391
+ COUNT(*) as total,
392
+ SUM(CASE WHEN passed = 1 THEN 1 ELSE 0 END) as passed,
393
+ SUM(CASE WHEN passed = 0 THEN 1 ELSE 0 END) as failed,
394
+ AVG(overall_score) as avg_score
395
+ FROM transfer_validations
396
+ `).get();
397
+ return {
398
+ total: stats.total || 0,
399
+ passed: stats.passed || 0,
400
+ failed: stats.failed || 0,
401
+ avgScore: stats.avg_score || 0,
402
+ };
403
+ }
404
+ /**
405
+ * Close database connection
406
+ */
407
+ close() {
408
+ this.db.close();
409
+ }
410
+ }
411
+ exports.TransferValidator = TransferValidator;
412
+ exports.default = TransferValidator;
413
+ //# sourceMappingURL=TransferValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransferValidator.js","sourceRoot":"","sources":["../../../src/learning/transfer/TransferValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Transfer Module
3
+ *
4
+ * Implements cross-agent pattern transfer for the Nightly-Learner system.
5
+ * Enables knowledge sharing between QE agents.
6
+ *
7
+ * @module src/learning/transfer
8
+ */
9
+ export { TransferPrototype, TransferTest, TransferResult as PrototypeTransferResult, AgentDomain, } from './TransferPrototype';
10
+ export { TransferProtocol, TransferRequest, TransferResult, TransferDetail, ValidationResult, ValidationTest, TransferProtocolConfig, TransferStats, } from './TransferProtocol';
11
+ export { CompatibilityScorer, CompatibilityReport, CompatibilityBreakdown, AgentProfile, PatternProfile, } from './CompatibilityScorer';
12
+ export { TransferValidator, ValidationConfig, ValidationReport, ValidationCheck, TransferRecord, } from './TransferValidator';
13
+ export { TransferProtocol as default } from './TransferProtocol';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/learning/transfer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,IAAI,uBAAuB,EACzC,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * Transfer Module
4
+ *
5
+ * Implements cross-agent pattern transfer for the Nightly-Learner system.
6
+ * Enables knowledge sharing between QE agents.
7
+ *
8
+ * @module src/learning/transfer
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.default = exports.TransferValidator = exports.CompatibilityScorer = exports.TransferProtocol = exports.TransferPrototype = void 0;
12
+ var TransferPrototype_1 = require("./TransferPrototype");
13
+ Object.defineProperty(exports, "TransferPrototype", { enumerable: true, get: function () { return TransferPrototype_1.TransferPrototype; } });
14
+ var TransferProtocol_1 = require("./TransferProtocol");
15
+ Object.defineProperty(exports, "TransferProtocol", { enumerable: true, get: function () { return TransferProtocol_1.TransferProtocol; } });
16
+ var CompatibilityScorer_1 = require("./CompatibilityScorer");
17
+ Object.defineProperty(exports, "CompatibilityScorer", { enumerable: true, get: function () { return CompatibilityScorer_1.CompatibilityScorer; } });
18
+ var TransferValidator_1 = require("./TransferValidator");
19
+ Object.defineProperty(exports, "TransferValidator", { enumerable: true, get: function () { return TransferValidator_1.TransferValidator; } });
20
+ var TransferProtocol_2 = require("./TransferProtocol");
21
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return TransferProtocol_2.TransferProtocol; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/learning/transfer/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,yDAK6B;AAJ3B,sHAAA,iBAAiB,OAAA;AAMnB,uDAS4B;AAR1B,oHAAA,gBAAgB,OAAA;AAUlB,6DAM+B;AAL7B,0HAAA,mBAAmB,OAAA;AAOrB,yDAM6B;AAL3B,sHAAA,iBAAiB,OAAA;AAOnB,uDAAiE;AAAxD,2GAAA,gBAAgB,OAAW"}
@@ -1,16 +1,25 @@
1
1
  /**
2
2
  * Enhanced Test Generation Handler with AI
3
3
  *
4
+ * Routes through AgentRegistry to enable automatic learning.
5
+ * When users call this MCP tool, the TestGeneratorAgent:
6
+ * 1. Executes the task via executeTask()
7
+ * 2. Triggers onPostTask() hook automatically
8
+ * 3. Calls learningEngine.learnFromExecution()
9
+ * 4. Persists Q-values, patterns, and experiences to memory.db
10
+ *
4
11
  * Features:
5
12
  * - AI-powered code analysis
6
13
  * - Pattern recognition
7
14
  * - Anti-pattern detection
8
15
  * - Property-based test generation
9
16
  * - Multi-language support
17
+ * - **Automatic learning from every execution**
10
18
  *
11
- * @version 1.0.0
19
+ * @version 2.0.0 - Now with agent-based learning
12
20
  */
13
21
  import { BaseHandler, HandlerResponse } from '../base-handler';
22
+ import { AgentRegistry } from '../../services/AgentRegistry';
14
23
  export interface TestGenerateEnhancedArgs {
15
24
  sourceCode: string;
16
25
  language: string;
@@ -20,10 +29,25 @@ export interface TestGenerateEnhancedArgs {
20
29
  detectAntiPatterns?: boolean;
21
30
  }
22
31
  export declare class TestGenerateEnhancedHandler extends BaseHandler {
32
+ private registry;
23
33
  private aiModels;
24
34
  private patternRecognizer;
25
- constructor();
35
+ constructor(registry?: AgentRegistry);
36
+ /**
37
+ * Set the AgentRegistry for agent-based execution with learning
38
+ */
39
+ setRegistry(registry: AgentRegistry): void;
26
40
  handle(args: TestGenerateEnhancedArgs): Promise<HandlerResponse>;
41
+ /**
42
+ * Execute via TestGeneratorAgent for automatic learning
43
+ * This is the preferred path - agents learn from every execution
44
+ */
45
+ private executeViaAgent;
46
+ /**
47
+ * Direct execution without agent (fallback - no learning)
48
+ */
49
+ private executeDirect;
50
+ private getFrameworkForLanguage;
27
51
  private initializeAIModels;
28
52
  private initializePatternRecognizer;
29
53
  private analyzeCodeWithAI;