@pga-ai/core 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/README.md +278 -0
  2. package/dist/PGA.d.ts +156 -0
  3. package/dist/PGA.d.ts.map +1 -0
  4. package/dist/PGA.js +636 -0
  5. package/dist/PGA.js.map +1 -0
  6. package/dist/advanced-ai/ModelRouter.d.ts +82 -0
  7. package/dist/advanced-ai/ModelRouter.d.ts.map +1 -0
  8. package/dist/advanced-ai/ModelRouter.js +280 -0
  9. package/dist/advanced-ai/ModelRouter.js.map +1 -0
  10. package/dist/advanced-ai/ThinkingEngine.d.ts +50 -0
  11. package/dist/advanced-ai/ThinkingEngine.d.ts.map +1 -0
  12. package/dist/advanced-ai/ThinkingEngine.js +179 -0
  13. package/dist/advanced-ai/ThinkingEngine.js.map +1 -0
  14. package/dist/core/ContextMemory.d.ts +56 -0
  15. package/dist/core/ContextMemory.d.ts.map +1 -0
  16. package/dist/core/ContextMemory.js +253 -0
  17. package/dist/core/ContextMemory.js.map +1 -0
  18. package/dist/core/DNAProfile.d.ts +19 -0
  19. package/dist/core/DNAProfile.d.ts.map +1 -0
  20. package/dist/core/DNAProfile.js +141 -0
  21. package/dist/core/DNAProfile.js.map +1 -0
  22. package/dist/core/FitnessTracker.d.ts +13 -0
  23. package/dist/core/FitnessTracker.d.ts.map +1 -0
  24. package/dist/core/FitnessTracker.js +101 -0
  25. package/dist/core/FitnessTracker.js.map +1 -0
  26. package/dist/core/GenomeKernel.d.ts +57 -0
  27. package/dist/core/GenomeKernel.d.ts.map +1 -0
  28. package/dist/core/GenomeKernel.js +305 -0
  29. package/dist/core/GenomeKernel.js.map +1 -0
  30. package/dist/core/GenomeManager.d.ts +21 -0
  31. package/dist/core/GenomeManager.d.ts.map +1 -0
  32. package/dist/core/GenomeManager.js +123 -0
  33. package/dist/core/GenomeManager.js.map +1 -0
  34. package/dist/core/LearningAnnouncer.d.ts +16 -0
  35. package/dist/core/LearningAnnouncer.d.ts.map +1 -0
  36. package/dist/core/LearningAnnouncer.js +176 -0
  37. package/dist/core/LearningAnnouncer.js.map +1 -0
  38. package/dist/core/ProactiveSuggestions.d.ts +25 -0
  39. package/dist/core/ProactiveSuggestions.d.ts.map +1 -0
  40. package/dist/core/ProactiveSuggestions.js +238 -0
  41. package/dist/core/ProactiveSuggestions.js.map +1 -0
  42. package/dist/core/PromptAssembler.d.ts +12 -0
  43. package/dist/core/PromptAssembler.d.ts.map +1 -0
  44. package/dist/core/PromptAssembler.js +74 -0
  45. package/dist/core/PromptAssembler.js.map +1 -0
  46. package/dist/enterprise/AuthManager.d.ts +71 -0
  47. package/dist/enterprise/AuthManager.d.ts.map +1 -0
  48. package/dist/enterprise/AuthManager.js +216 -0
  49. package/dist/enterprise/AuthManager.js.map +1 -0
  50. package/dist/enterprise/RateLimiter.d.ts +48 -0
  51. package/dist/enterprise/RateLimiter.d.ts.map +1 -0
  52. package/dist/enterprise/RateLimiter.js +193 -0
  53. package/dist/enterprise/RateLimiter.js.map +1 -0
  54. package/dist/evaluation/BenchmarkSuites.d.ts +27 -0
  55. package/dist/evaluation/BenchmarkSuites.d.ts.map +1 -0
  56. package/dist/evaluation/BenchmarkSuites.js +69 -0
  57. package/dist/evaluation/BenchmarkSuites.js.map +1 -0
  58. package/dist/evaluation/CalibrationManager.d.ts +66 -0
  59. package/dist/evaluation/CalibrationManager.d.ts.map +1 -0
  60. package/dist/evaluation/CalibrationManager.js +117 -0
  61. package/dist/evaluation/CalibrationManager.js.map +1 -0
  62. package/dist/evaluation/Evaluator.d.ts +79 -0
  63. package/dist/evaluation/Evaluator.d.ts.map +1 -0
  64. package/dist/evaluation/Evaluator.js +359 -0
  65. package/dist/evaluation/Evaluator.js.map +1 -0
  66. package/dist/evaluation/EvolutionGuardrails.d.ts +29 -0
  67. package/dist/evaluation/EvolutionGuardrails.d.ts.map +1 -0
  68. package/dist/evaluation/EvolutionGuardrails.js +166 -0
  69. package/dist/evaluation/EvolutionGuardrails.js.map +1 -0
  70. package/dist/evaluation/SandboxSuites.d.ts +26 -0
  71. package/dist/evaluation/SandboxSuites.d.ts.map +1 -0
  72. package/dist/evaluation/SandboxSuites.js +252 -0
  73. package/dist/evaluation/SandboxSuites.js.map +1 -0
  74. package/dist/evaluation/SemanticJudge.d.ts +21 -0
  75. package/dist/evaluation/SemanticJudge.d.ts.map +1 -0
  76. package/dist/evaluation/SemanticJudge.js +139 -0
  77. package/dist/evaluation/SemanticJudge.js.map +1 -0
  78. package/dist/evaluation/fixtures/core-coding-v1.json +68 -0
  79. package/dist/evaluation/fixtures/core-general-v1.json +68 -0
  80. package/dist/evolution/CanaryDeployment.d.ts +77 -0
  81. package/dist/evolution/CanaryDeployment.d.ts.map +1 -0
  82. package/dist/evolution/CanaryDeployment.js +261 -0
  83. package/dist/evolution/CanaryDeployment.js.map +1 -0
  84. package/dist/evolution/DriftAnalyzer.d.ts +63 -0
  85. package/dist/evolution/DriftAnalyzer.d.ts.map +1 -0
  86. package/dist/evolution/DriftAnalyzer.js +283 -0
  87. package/dist/evolution/DriftAnalyzer.js.map +1 -0
  88. package/dist/evolution/FitnessCalculator.d.ts +47 -0
  89. package/dist/evolution/FitnessCalculator.d.ts.map +1 -0
  90. package/dist/evolution/FitnessCalculator.js +177 -0
  91. package/dist/evolution/FitnessCalculator.js.map +1 -0
  92. package/dist/evolution/MutationOperator.d.ts +76 -0
  93. package/dist/evolution/MutationOperator.d.ts.map +1 -0
  94. package/dist/evolution/MutationOperator.js +267 -0
  95. package/dist/evolution/MutationOperator.js.map +1 -0
  96. package/dist/evolution/PromotionGate.d.ts +45 -0
  97. package/dist/evolution/PromotionGate.d.ts.map +1 -0
  98. package/dist/evolution/PromotionGate.js +248 -0
  99. package/dist/evolution/PromotionGate.js.map +1 -0
  100. package/dist/evolution/boost/EvolutionBoostEngine.d.ts +69 -0
  101. package/dist/evolution/boost/EvolutionBoostEngine.d.ts.map +1 -0
  102. package/dist/evolution/boost/EvolutionBoostEngine.js +185 -0
  103. package/dist/evolution/boost/EvolutionBoostEngine.js.map +1 -0
  104. package/dist/evolution/boost/GeneticRecombinator.d.ts +26 -0
  105. package/dist/evolution/boost/GeneticRecombinator.d.ts.map +1 -0
  106. package/dist/evolution/boost/GeneticRecombinator.js +179 -0
  107. package/dist/evolution/boost/GeneticRecombinator.js.map +1 -0
  108. package/dist/evolution/boost/MetaEvolutionEngine.d.ts +48 -0
  109. package/dist/evolution/boost/MetaEvolutionEngine.d.ts.map +1 -0
  110. package/dist/evolution/boost/MetaEvolutionEngine.js +193 -0
  111. package/dist/evolution/boost/MetaEvolutionEngine.js.map +1 -0
  112. package/dist/evolution/boost/ParallelEvolutionEngine.d.ts +44 -0
  113. package/dist/evolution/boost/ParallelEvolutionEngine.d.ts.map +1 -0
  114. package/dist/evolution/boost/ParallelEvolutionEngine.js +135 -0
  115. package/dist/evolution/boost/ParallelEvolutionEngine.js.map +1 -0
  116. package/dist/evolution/boost/ParetoOptimizer.d.ts +42 -0
  117. package/dist/evolution/boost/ParetoOptimizer.d.ts.map +1 -0
  118. package/dist/evolution/boost/ParetoOptimizer.js +167 -0
  119. package/dist/evolution/boost/ParetoOptimizer.js.map +1 -0
  120. package/dist/evolution/boost/operators/BreakthroughOperator.d.ts +22 -0
  121. package/dist/evolution/boost/operators/BreakthroughOperator.d.ts.map +1 -0
  122. package/dist/evolution/boost/operators/BreakthroughOperator.js +217 -0
  123. package/dist/evolution/boost/operators/BreakthroughOperator.js.map +1 -0
  124. package/dist/evolution/boost/operators/CrossoverMutationOperator.d.ts +26 -0
  125. package/dist/evolution/boost/operators/CrossoverMutationOperator.d.ts.map +1 -0
  126. package/dist/evolution/boost/operators/CrossoverMutationOperator.js +160 -0
  127. package/dist/evolution/boost/operators/CrossoverMutationOperator.js.map +1 -0
  128. package/dist/evolution/boost/operators/PatternExtractionOperator.d.ts +24 -0
  129. package/dist/evolution/boost/operators/PatternExtractionOperator.d.ts.map +1 -0
  130. package/dist/evolution/boost/operators/PatternExtractionOperator.js +212 -0
  131. package/dist/evolution/boost/operators/PatternExtractionOperator.js.map +1 -0
  132. package/dist/evolution/boost/operators/SemanticRestructuringOperator.d.ts +19 -0
  133. package/dist/evolution/boost/operators/SemanticRestructuringOperator.d.ts.map +1 -0
  134. package/dist/evolution/boost/operators/SemanticRestructuringOperator.js +106 -0
  135. package/dist/evolution/boost/operators/SemanticRestructuringOperator.js.map +1 -0
  136. package/dist/gene-bank/CognitiveGene.d.ts +799 -0
  137. package/dist/gene-bank/CognitiveGene.d.ts.map +1 -0
  138. package/dist/gene-bank/CognitiveGene.js +128 -0
  139. package/dist/gene-bank/CognitiveGene.js.map +1 -0
  140. package/dist/gene-bank/GeneAdopter.d.ts +75 -0
  141. package/dist/gene-bank/GeneAdopter.d.ts.map +1 -0
  142. package/dist/gene-bank/GeneAdopter.js +271 -0
  143. package/dist/gene-bank/GeneAdopter.js.map +1 -0
  144. package/dist/gene-bank/GeneBank.d.ts +124 -0
  145. package/dist/gene-bank/GeneBank.d.ts.map +1 -0
  146. package/dist/gene-bank/GeneBank.js +261 -0
  147. package/dist/gene-bank/GeneBank.js.map +1 -0
  148. package/dist/gene-bank/GeneExtractor.d.ts +59 -0
  149. package/dist/gene-bank/GeneExtractor.d.ts.map +1 -0
  150. package/dist/gene-bank/GeneExtractor.js +311 -0
  151. package/dist/gene-bank/GeneExtractor.js.map +1 -0
  152. package/dist/gene-bank/GeneMatcher.d.ts +82 -0
  153. package/dist/gene-bank/GeneMatcher.d.ts.map +1 -0
  154. package/dist/gene-bank/GeneMatcher.js +215 -0
  155. package/dist/gene-bank/GeneMatcher.js.map +1 -0
  156. package/dist/gene-bank/PGAIntegration.d.ts +53 -0
  157. package/dist/gene-bank/PGAIntegration.d.ts.map +1 -0
  158. package/dist/gene-bank/PGAIntegration.js +139 -0
  159. package/dist/gene-bank/PGAIntegration.js.map +1 -0
  160. package/dist/gene-bank/SandboxTester.d.ts +92 -0
  161. package/dist/gene-bank/SandboxTester.d.ts.map +1 -0
  162. package/dist/gene-bank/SandboxTester.js +262 -0
  163. package/dist/gene-bank/SandboxTester.js.map +1 -0
  164. package/dist/gene-bank/adapters/InMemoryGeneStorage.d.ts +21 -0
  165. package/dist/gene-bank/adapters/InMemoryGeneStorage.d.ts.map +1 -0
  166. package/dist/gene-bank/adapters/InMemoryGeneStorage.js +115 -0
  167. package/dist/gene-bank/adapters/InMemoryGeneStorage.js.map +1 -0
  168. package/dist/gene-bank/adapters/PostgresGeneStorage.d.ts +21 -0
  169. package/dist/gene-bank/adapters/PostgresGeneStorage.d.ts.map +1 -0
  170. package/dist/gene-bank/adapters/PostgresGeneStorage.js +272 -0
  171. package/dist/gene-bank/adapters/PostgresGeneStorage.js.map +1 -0
  172. package/dist/gene-bank/index.d.ts +7 -0
  173. package/dist/gene-bank/index.d.ts.map +1 -0
  174. package/dist/gene-bank/index.js +7 -0
  175. package/dist/gene-bank/index.js.map +1 -0
  176. package/dist/index.d.ts +72 -0
  177. package/dist/index.d.ts.map +1 -0
  178. package/dist/index.js +37 -0
  179. package/dist/index.js.map +1 -0
  180. package/dist/interfaces/LLMAdapter.d.ts +31 -0
  181. package/dist/interfaces/LLMAdapter.d.ts.map +1 -0
  182. package/dist/interfaces/LLMAdapter.js +2 -0
  183. package/dist/interfaces/LLMAdapter.js.map +1 -0
  184. package/dist/interfaces/StorageAdapter.d.ts +49 -0
  185. package/dist/interfaces/StorageAdapter.d.ts.map +1 -0
  186. package/dist/interfaces/StorageAdapter.js +2 -0
  187. package/dist/interfaces/StorageAdapter.js.map +1 -0
  188. package/dist/memory/LayeredMemory.d.ts +112 -0
  189. package/dist/memory/LayeredMemory.d.ts.map +1 -0
  190. package/dist/memory/LayeredMemory.js +405 -0
  191. package/dist/memory/LayeredMemory.js.map +1 -0
  192. package/dist/memory-compaction/MemoryCompactor.d.ts +18 -0
  193. package/dist/memory-compaction/MemoryCompactor.d.ts.map +1 -0
  194. package/dist/memory-compaction/MemoryCompactor.js +156 -0
  195. package/dist/memory-compaction/MemoryCompactor.js.map +1 -0
  196. package/dist/memory-compaction/index.d.ts +6 -0
  197. package/dist/memory-compaction/index.d.ts.map +1 -0
  198. package/dist/memory-compaction/index.js +5 -0
  199. package/dist/memory-compaction/index.js.map +1 -0
  200. package/dist/memory-compaction/strategies/BaseStrategy.d.ts +9 -0
  201. package/dist/memory-compaction/strategies/BaseStrategy.d.ts.map +1 -0
  202. package/dist/memory-compaction/strategies/BaseStrategy.js +50 -0
  203. package/dist/memory-compaction/strategies/BaseStrategy.js.map +1 -0
  204. package/dist/memory-compaction/strategies/ImportanceBasedStrategy.d.ts +9 -0
  205. package/dist/memory-compaction/strategies/ImportanceBasedStrategy.d.ts.map +1 -0
  206. package/dist/memory-compaction/strategies/ImportanceBasedStrategy.js +101 -0
  207. package/dist/memory-compaction/strategies/ImportanceBasedStrategy.js.map +1 -0
  208. package/dist/memory-compaction/strategies/SlidingWindowStrategy.d.ts +9 -0
  209. package/dist/memory-compaction/strategies/SlidingWindowStrategy.d.ts.map +1 -0
  210. package/dist/memory-compaction/strategies/SlidingWindowStrategy.js +87 -0
  211. package/dist/memory-compaction/strategies/SlidingWindowStrategy.js.map +1 -0
  212. package/dist/memory-compaction/types.d.ts +78 -0
  213. package/dist/memory-compaction/types.d.ts.map +1 -0
  214. package/dist/memory-compaction/types.js +2 -0
  215. package/dist/memory-compaction/types.js.map +1 -0
  216. package/dist/monitoring/AlertWebhooks.d.ts +57 -0
  217. package/dist/monitoring/AlertWebhooks.d.ts.map +1 -0
  218. package/dist/monitoring/AlertWebhooks.js +205 -0
  219. package/dist/monitoring/AlertWebhooks.js.map +1 -0
  220. package/dist/monitoring/MetricsCollector.d.ts +120 -0
  221. package/dist/monitoring/MetricsCollector.d.ts.map +1 -0
  222. package/dist/monitoring/MetricsCollector.js +274 -0
  223. package/dist/monitoring/MetricsCollector.js.map +1 -0
  224. package/dist/monitoring/MonitoringDashboard.d.ts +38 -0
  225. package/dist/monitoring/MonitoringDashboard.d.ts.map +1 -0
  226. package/dist/monitoring/MonitoringDashboard.js +271 -0
  227. package/dist/monitoring/MonitoringDashboard.js.map +1 -0
  228. package/dist/plugins/PluginManager.d.ts +61 -0
  229. package/dist/plugins/PluginManager.d.ts.map +1 -0
  230. package/dist/plugins/PluginManager.js +154 -0
  231. package/dist/plugins/PluginManager.js.map +1 -0
  232. package/dist/rag/RAGEngine.d.ts +54 -0
  233. package/dist/rag/RAGEngine.d.ts.map +1 -0
  234. package/dist/rag/RAGEngine.js +162 -0
  235. package/dist/rag/RAGEngine.js.map +1 -0
  236. package/dist/rag/VectorStoreAdapter.d.ts +40 -0
  237. package/dist/rag/VectorStoreAdapter.d.ts.map +1 -0
  238. package/dist/rag/VectorStoreAdapter.js +106 -0
  239. package/dist/rag/VectorStoreAdapter.js.map +1 -0
  240. package/dist/realtime/EventEmitter.d.ts +86 -0
  241. package/dist/realtime/EventEmitter.d.ts.map +1 -0
  242. package/dist/realtime/EventEmitter.js +173 -0
  243. package/dist/realtime/EventEmitter.js.map +1 -0
  244. package/dist/realtime/StreamingManager.d.ts +26 -0
  245. package/dist/realtime/StreamingManager.d.ts.map +1 -0
  246. package/dist/realtime/StreamingManager.js +175 -0
  247. package/dist/realtime/StreamingManager.js.map +1 -0
  248. package/dist/reasoning/ReasoningEngine.d.ts +57 -0
  249. package/dist/reasoning/ReasoningEngine.d.ts.map +1 -0
  250. package/dist/reasoning/ReasoningEngine.js +316 -0
  251. package/dist/reasoning/ReasoningEngine.js.map +1 -0
  252. package/dist/resilience/CircuitBreaker.d.ts +41 -0
  253. package/dist/resilience/CircuitBreaker.d.ts.map +1 -0
  254. package/dist/resilience/CircuitBreaker.js +108 -0
  255. package/dist/resilience/CircuitBreaker.js.map +1 -0
  256. package/dist/resilience/RetryManager.d.ts +14 -0
  257. package/dist/resilience/RetryManager.d.ts.map +1 -0
  258. package/dist/resilience/RetryManager.js +35 -0
  259. package/dist/resilience/RetryManager.js.map +1 -0
  260. package/dist/types/GenomeV2.d.ts +226 -0
  261. package/dist/types/GenomeV2.d.ts.map +1 -0
  262. package/dist/types/GenomeV2.js +2 -0
  263. package/dist/types/GenomeV2.js.map +1 -0
  264. package/dist/types/index.d.ts +205 -0
  265. package/dist/types/index.d.ts.map +1 -0
  266. package/dist/types/index.js +2 -0
  267. package/dist/types/index.js.map +1 -0
  268. package/package.json +75 -0
@@ -0,0 +1,112 @@
1
+ import type { StorageAdapter } from '../interfaces/StorageAdapter.js';
2
+ import type { LLMAdapter } from '../interfaces/LLMAdapter.js';
3
+ import type { Interaction } from '../types/index.js';
4
+ import type { MetricsCollector } from '../monitoring/MetricsCollector.js';
5
+ export interface ShortTermMemory {
6
+ messages: Interaction[];
7
+ ttl: number;
8
+ maxMessages: number;
9
+ estimatedTokens: number;
10
+ }
11
+ export interface MediumTermMemory {
12
+ summary: string;
13
+ periodStart: Date;
14
+ periodEnd: Date;
15
+ messageCount: number;
16
+ estimatedTokens: number;
17
+ }
18
+ export interface LongTermMemory {
19
+ userProfile: UserProfile;
20
+ semanticFacts: SemanticFact[];
21
+ permanentPreferences: Record<string, any>;
22
+ estimatedTokens: number;
23
+ }
24
+ export interface SemanticFact {
25
+ id: string;
26
+ fact: string;
27
+ category: 'profile' | 'preference' | 'constraint' | 'knowledge';
28
+ confidence: number;
29
+ sourceTurn: number;
30
+ sourceInteractionId?: string;
31
+ extractedAt: Date;
32
+ expiry: Date | null;
33
+ verified: boolean;
34
+ }
35
+ export interface UserProfile {
36
+ userId: string;
37
+ profession?: string;
38
+ timezone?: string;
39
+ language?: string;
40
+ communicationStyle?: 'formal' | 'casual' | 'technical';
41
+ codePreferences?: {
42
+ language?: string;
43
+ style?: string;
44
+ verbosity?: 'concise' | 'detailed';
45
+ };
46
+ }
47
+ export interface LayeredMemorySnapshot {
48
+ shortTerm: ShortTermMemory;
49
+ mediumTerm: MediumTermMemory;
50
+ longTerm: LongTermMemory;
51
+ totalEstimatedTokens: number;
52
+ lastCompaction: Date;
53
+ }
54
+ export interface LayeredMemoryConfig {
55
+ enabled: boolean;
56
+ shortTerm: {
57
+ maxMessages: number;
58
+ ttlHours: number;
59
+ };
60
+ mediumTerm: {
61
+ maxMessages: number;
62
+ ttlDays: number;
63
+ compressionRatio: number;
64
+ };
65
+ longTerm: {
66
+ enabled: boolean;
67
+ autoExtraction: boolean;
68
+ minConfidence: number;
69
+ defaultTTLDays: number;
70
+ };
71
+ compaction: {
72
+ autoCompact: boolean;
73
+ triggerAfterMessages: number;
74
+ };
75
+ privacy: {
76
+ enableExpiration: boolean;
77
+ allowUserDeletion: boolean;
78
+ };
79
+ }
80
+ export declare class LayeredMemory {
81
+ private storage;
82
+ private llm;
83
+ private config;
84
+ private summaryCache;
85
+ private lastCompactionTimes;
86
+ private turnCounters;
87
+ private metricsCollector?;
88
+ constructor(storage: StorageAdapter, llm: LLMAdapter, config?: Partial<LayeredMemoryConfig>, metricsCollector?: MetricsCollector);
89
+ getMemorySnapshot(userId: string, genomeId: string): Promise<LayeredMemorySnapshot>;
90
+ buildContext(userId: string, genomeId: string): Promise<string>;
91
+ addInteraction(userId: string, genomeId: string, interaction: Interaction): Promise<void>;
92
+ deleteUserData(userId: string, genomeId: string): Promise<void>;
93
+ deleteFact(userId: string, genomeId: string, factId: string): Promise<void>;
94
+ verifyFact(userId: string, genomeId: string, factId: string): Promise<void>;
95
+ getFacts(userId: string, genomeId: string): Promise<SemanticFact[]>;
96
+ cleanExpiredFacts(userId: string, genomeId: string): Promise<number>;
97
+ compactMemory(userId: string, genomeId: string): Promise<void>;
98
+ private getShortTermMemory;
99
+ private getMediumTermMemory;
100
+ private getLongTermMemory;
101
+ private getAllInteractions;
102
+ private summarizeInteractions;
103
+ private extractLongTermFacts;
104
+ private formatLongTermMemory;
105
+ private formatMediumTermMemory;
106
+ private formatShortTermMemory;
107
+ private getMessageCount;
108
+ private getLastCompactionTime;
109
+ private setLastCompactionTime;
110
+ private estimateTokens;
111
+ }
112
+ //# sourceMappingURL=LayeredMemory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayeredMemory.d.ts","sourceRoot":"","sources":["../../src/memory/LayeredMemory.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC;CAC3B;AAWD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,IAAI,CAAC;IAClB,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACvD,eAAe,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;KACtC,CAAC;CACL;AAED,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,IAAI,CAAC;CACxB;AAID,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAC;IAEjB,SAAS,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,UAAU,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;KAC5B,CAAC;IAEF,QAAQ,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,OAAO,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF,UAAU,EAAE;QACR,WAAW,EAAE,OAAO,CAAC;QACrB,oBAAoB,EAAE,MAAM,CAAC;KAChC,CAAC;IAEF,OAAO,EAAE;QACL,gBAAgB,EAAE,OAAO,CAAC;QAC1B,iBAAiB,EAAE,OAAO,CAAC;KAC9B,CAAC;CACL;AAID,qBAAa,aAAa;IAQlB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,GAAG;IARf,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,YAAY,CAAgE;IACpF,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAAmB;gBAGhC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,UAAU,EACvB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,EACrC,gBAAgB,CAAC,EAAE,gBAAgB;IAkCjC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA0BnF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B/D,cAAc,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,GACzB,OAAO,CAAC,IAAI,CAAC;IAsBV,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3E,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3E,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQnE,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQpE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAiEtD,kBAAkB;YAclB,mBAAmB;YA0CnB,iBAAiB;YAkBjB,kBAAkB;YAMlB,qBAAqB;YAyBrB,oBAAoB;IAiJlC,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,qBAAqB;YAUf,eAAe;YAKf,qBAAqB;YAKrB,qBAAqB;IAKnC,OAAO,CAAC,cAAc;CAIzB"}
@@ -0,0 +1,405 @@
1
+ export class LayeredMemory {
2
+ storage;
3
+ llm;
4
+ config;
5
+ summaryCache = new Map();
6
+ lastCompactionTimes = new Map();
7
+ turnCounters = new Map();
8
+ metricsCollector;
9
+ constructor(storage, llm, config, metricsCollector) {
10
+ this.storage = storage;
11
+ this.llm = llm;
12
+ this.metricsCollector = metricsCollector;
13
+ this.config = {
14
+ enabled: config?.enabled ?? true,
15
+ shortTerm: {
16
+ maxMessages: config?.shortTerm?.maxMessages ?? 10,
17
+ ttlHours: config?.shortTerm?.ttlHours ?? 1,
18
+ },
19
+ mediumTerm: {
20
+ maxMessages: config?.mediumTerm?.maxMessages ?? 50,
21
+ ttlDays: config?.mediumTerm?.ttlDays ?? 7,
22
+ compressionRatio: config?.mediumTerm?.compressionRatio ?? 0.2,
23
+ },
24
+ longTerm: {
25
+ enabled: config?.longTerm?.enabled ?? true,
26
+ autoExtraction: config?.longTerm?.autoExtraction ?? true,
27
+ minConfidence: config?.longTerm?.minConfidence ?? 0.7,
28
+ defaultTTLDays: config?.longTerm?.defaultTTLDays ?? 365,
29
+ },
30
+ compaction: {
31
+ autoCompact: config?.compaction?.autoCompact ?? true,
32
+ triggerAfterMessages: config?.compaction?.triggerAfterMessages ?? 50,
33
+ },
34
+ privacy: {
35
+ enableExpiration: config?.privacy?.enableExpiration ?? true,
36
+ allowUserDeletion: config?.privacy?.allowUserDeletion ?? true,
37
+ },
38
+ };
39
+ }
40
+ async getMemorySnapshot(userId, genomeId) {
41
+ const [shortTerm, mediumTerm, longTerm] = await Promise.all([
42
+ this.getShortTermMemory(userId, genomeId),
43
+ this.getMediumTermMemory(userId, genomeId),
44
+ this.getLongTermMemory(userId, genomeId),
45
+ ]);
46
+ const totalEstimatedTokens = shortTerm.estimatedTokens +
47
+ mediumTerm.estimatedTokens +
48
+ longTerm.estimatedTokens;
49
+ const lastCompaction = await this.getLastCompactionTime(userId, genomeId);
50
+ return {
51
+ shortTerm,
52
+ mediumTerm,
53
+ longTerm,
54
+ totalEstimatedTokens,
55
+ lastCompaction,
56
+ };
57
+ }
58
+ async buildContext(userId, genomeId) {
59
+ const snapshot = await this.getMemorySnapshot(userId, genomeId);
60
+ const sections = [];
61
+ if (snapshot.longTerm.estimatedTokens > 0) {
62
+ sections.push(this.formatLongTermMemory(snapshot.longTerm));
63
+ }
64
+ if (snapshot.mediumTerm.summary) {
65
+ sections.push(this.formatMediumTermMemory(snapshot.mediumTerm));
66
+ }
67
+ if (snapshot.shortTerm.messages.length > 0) {
68
+ sections.push(this.formatShortTermMemory(snapshot.shortTerm));
69
+ }
70
+ return sections.join('\n\n');
71
+ }
72
+ async addInteraction(userId, genomeId, interaction) {
73
+ await this.storage.recordInteraction(interaction);
74
+ if (this.config.compaction.autoCompact) {
75
+ const messageCount = await this.getMessageCount(userId, genomeId);
76
+ if (messageCount % this.config.compaction.triggerAfterMessages === 0) {
77
+ await this.compactMemory(userId, genomeId);
78
+ }
79
+ }
80
+ if (this.config.longTerm.enabled && this.config.longTerm.autoExtraction) {
81
+ await this.extractLongTermFacts(userId, genomeId, interaction);
82
+ }
83
+ }
84
+ async deleteUserData(userId, genomeId) {
85
+ if (!this.config.privacy.allowUserDeletion) {
86
+ throw new Error('User data deletion is not enabled');
87
+ }
88
+ const cacheKey = `${userId}:${genomeId}`;
89
+ this.summaryCache.delete(cacheKey);
90
+ this.lastCompactionTimes.delete(cacheKey);
91
+ this.turnCounters.delete(cacheKey);
92
+ await this.storage.deleteUserFacts(userId, genomeId);
93
+ }
94
+ async deleteFact(userId, genomeId, factId) {
95
+ void userId;
96
+ void genomeId;
97
+ await this.storage.deleteFact(factId);
98
+ }
99
+ async verifyFact(userId, genomeId, factId) {
100
+ void userId;
101
+ void genomeId;
102
+ await this.storage.updateFact(factId, {
103
+ verified: true,
104
+ confidence: 1.0,
105
+ expiry: null,
106
+ });
107
+ }
108
+ async getFacts(userId, genomeId) {
109
+ const longTerm = await this.getLongTermMemory(userId, genomeId);
110
+ return longTerm.semanticFacts;
111
+ }
112
+ async cleanExpiredFacts(userId, genomeId) {
113
+ return await this.storage.cleanExpiredFacts(userId, genomeId);
114
+ }
115
+ async compactMemory(userId, genomeId) {
116
+ const startTime = Date.now();
117
+ const interactions = await this.getAllInteractions(userId, genomeId);
118
+ if (interactions.length < this.config.shortTerm.maxMessages) {
119
+ return;
120
+ }
121
+ const fullText = interactions.map(i => `${i.userMessage} ${i.assistantResponse}`).join(' ');
122
+ const tokensBeforeCompaction = this.estimateTokens(fullText);
123
+ const shortTermCutoff = interactions.length - this.config.shortTerm.maxMessages;
124
+ const mediumTermMessages = interactions.slice(0, shortTermCutoff);
125
+ let tokensAfterCompaction = tokensBeforeCompaction;
126
+ if (mediumTermMessages.length > 0) {
127
+ const summary = await this.summarizeInteractions(mediumTermMessages);
128
+ const cacheKey = `${userId}:${genomeId}`;
129
+ this.summaryCache.set(cacheKey, {
130
+ summary,
131
+ timestamp: new Date(),
132
+ });
133
+ const shortTermText = interactions
134
+ .slice(-this.config.shortTerm.maxMessages)
135
+ .map(i => `${i.userMessage} ${i.assistantResponse}`)
136
+ .join(' ');
137
+ tokensAfterCompaction = this.estimateTokens(shortTermText + summary);
138
+ }
139
+ await this.setLastCompactionTime(userId, genomeId, new Date());
140
+ const latencyMs = Date.now() - startTime;
141
+ const compressionRatio = tokensBeforeCompaction > 0
142
+ ? 1 - (tokensAfterCompaction / tokensBeforeCompaction)
143
+ : 0;
144
+ this.metricsCollector?.logAudit({
145
+ level: 'info',
146
+ component: 'LayeredMemory',
147
+ operation: 'compaction',
148
+ userId,
149
+ genomeId,
150
+ message: `Compacted ${mediumTermMessages.length} messages with ${compressionRatio.toFixed(1)}x compression ratio`,
151
+ duration: latencyMs,
152
+ metadata: {
153
+ messagesCompacted: mediumTermMessages.length,
154
+ tokensBeforeCompaction,
155
+ tokensAfterCompaction,
156
+ compressionRatio,
157
+ },
158
+ });
159
+ }
160
+ async getShortTermMemory(userId, genomeId) {
161
+ const allInteractions = await this.getAllInteractions(userId, genomeId);
162
+ const recentMessages = allInteractions.slice(-this.config.shortTerm.maxMessages);
163
+ return {
164
+ messages: recentMessages,
165
+ ttl: this.config.shortTerm.ttlHours * 60 * 60 * 1000,
166
+ maxMessages: this.config.shortTerm.maxMessages,
167
+ estimatedTokens: this.estimateTokens(recentMessages.map(m => `${m.userMessage} ${m.assistantResponse}`).join(' ')),
168
+ };
169
+ }
170
+ async getMediumTermMemory(userId, genomeId) {
171
+ const cacheKey = `${userId}:${genomeId}`;
172
+ const cached = this.summaryCache.get(cacheKey);
173
+ if (cached) {
174
+ return {
175
+ summary: cached.summary,
176
+ periodStart: new Date(0),
177
+ periodEnd: cached.timestamp,
178
+ messageCount: 0,
179
+ estimatedTokens: this.estimateTokens(cached.summary),
180
+ };
181
+ }
182
+ const interactions = await this.getAllInteractions(userId, genomeId);
183
+ if (interactions.length > this.config.shortTerm.maxMessages) {
184
+ const shortTermCutoff = interactions.length - this.config.shortTerm.maxMessages;
185
+ const mediumTermMessages = interactions.slice(0, shortTermCutoff);
186
+ const summary = await this.summarizeInteractions(mediumTermMessages);
187
+ this.summaryCache.set(cacheKey, { summary, timestamp: new Date() });
188
+ return {
189
+ summary,
190
+ periodStart: mediumTermMessages[0].timestamp,
191
+ periodEnd: mediumTermMessages[mediumTermMessages.length - 1].timestamp,
192
+ messageCount: mediumTermMessages.length,
193
+ estimatedTokens: this.estimateTokens(summary),
194
+ };
195
+ }
196
+ return {
197
+ summary: '',
198
+ periodStart: new Date(),
199
+ periodEnd: new Date(),
200
+ messageCount: 0,
201
+ estimatedTokens: 0,
202
+ };
203
+ }
204
+ async getLongTermMemory(userId, genomeId) {
205
+ const includeExpired = !this.config.privacy.enableExpiration;
206
+ const facts = await this.storage.getFacts(userId, genomeId, includeExpired);
207
+ const userProfile = { userId };
208
+ const permanentPreferences = {};
209
+ const profileString = JSON.stringify({ userProfile, facts, permanentPreferences });
210
+ return {
211
+ userProfile,
212
+ semanticFacts: facts,
213
+ permanentPreferences,
214
+ estimatedTokens: this.estimateTokens(profileString),
215
+ };
216
+ }
217
+ async getAllInteractions(userId, genomeId) {
218
+ const interactions = await this.storage.getRecentInteractions(genomeId, userId, 1000);
219
+ return interactions;
220
+ }
221
+ async summarizeInteractions(interactions) {
222
+ const messagesText = interactions
223
+ .map(i => `User: ${i.userMessage}\nAssistant: ${i.assistantResponse}`)
224
+ .join('\n\n');
225
+ const summaryPrompt = `
226
+ Summarize the following conversation in 5-7 sentences, preserving:
227
+ 1. Key facts learned about the user
228
+ 2. Important decisions or preferences stated
229
+ 3. Main topics discussed
230
+ 4. Any commitments or follow-ups
231
+
232
+ Conversation:
233
+ ${messagesText}
234
+
235
+ Summary:`;
236
+ const response = await this.llm.chat([
237
+ { role: 'system', content: 'You are a precise conversation summarizer.' },
238
+ { role: 'user', content: summaryPrompt },
239
+ ]);
240
+ return response.content;
241
+ }
242
+ async extractLongTermFacts(userId, genomeId, interaction) {
243
+ const startTime = Date.now();
244
+ const cacheKey = `${userId}:${genomeId}`;
245
+ const currentTurn = (this.turnCounters.get(cacheKey) || 0) + 1;
246
+ this.turnCounters.set(cacheKey, currentTurn);
247
+ const extractionPrompt = `
248
+ Analyze this conversation and extract permanent facts about the user.
249
+ Return ONLY facts that are unlikely to change (profession, timezone, preferences, etc.).
250
+
251
+ User: ${interaction.userMessage}
252
+ Assistant: ${interaction.assistantResponse}
253
+
254
+ Extract facts in JSON format:
255
+ {
256
+ "facts": [
257
+ {
258
+ "fact": "The user is a software engineer",
259
+ "category": "profile",
260
+ "confidence": 0.9
261
+ }
262
+ ]
263
+ }
264
+
265
+ Valid categories: "profile", "preference", "constraint", "knowledge"
266
+ Confidence: 0.0 to 1.0
267
+
268
+ If no permanent facts found, return: {"facts": []}
269
+ `;
270
+ try {
271
+ const response = await this.llm.chat([
272
+ {
273
+ role: 'system',
274
+ content: 'You extract permanent user facts from conversations. Return valid JSON only.',
275
+ },
276
+ { role: 'user', content: extractionPrompt },
277
+ ]);
278
+ const parsed = JSON.parse(response.content);
279
+ const extractedFacts = parsed.facts || [];
280
+ const validFacts = extractedFacts.filter((f) => f.confidence >= this.config.longTerm.minConfidence);
281
+ const avgConfidence = validFacts.length > 0
282
+ ? validFacts.reduce((sum, f) => sum + f.confidence, 0) / validFacts.length
283
+ : 0;
284
+ if (validFacts.length === 0) {
285
+ this.metricsCollector?.logAudit({
286
+ level: 'warning',
287
+ component: 'LayeredMemory',
288
+ operation: 'fact_extraction',
289
+ userId,
290
+ genomeId,
291
+ message: 'No facts extracted from messages',
292
+ duration: Date.now() - startTime,
293
+ metadata: {
294
+ factsExtracted: 0,
295
+ avgConfidence: 0,
296
+ success: false,
297
+ },
298
+ });
299
+ return;
300
+ }
301
+ const now = new Date();
302
+ const ttlMs = this.config.longTerm.defaultTTLDays * 24 * 60 * 60 * 1000;
303
+ const expiry = new Date(now.getTime() + ttlMs);
304
+ const newFacts = validFacts.map((f) => ({
305
+ id: `${cacheKey}-${currentTurn}-${Date.now()}`,
306
+ fact: f.fact,
307
+ category: f.category,
308
+ confidence: f.confidence,
309
+ sourceTurn: currentTurn,
310
+ sourceInteractionId: interaction.timestamp.toISOString(),
311
+ extractedAt: now,
312
+ expiry,
313
+ verified: false,
314
+ }));
315
+ for (const fact of newFacts) {
316
+ await this.storage.saveFact(fact, userId, genomeId);
317
+ }
318
+ const latencyMs = Date.now() - startTime;
319
+ this.metricsCollector?.logAudit({
320
+ level: 'info',
321
+ component: 'LayeredMemory',
322
+ operation: 'fact_extraction',
323
+ userId,
324
+ genomeId,
325
+ message: `Extracted ${validFacts.length} semantic facts with avg confidence ${avgConfidence.toFixed(2)}`,
326
+ duration: latencyMs,
327
+ metadata: {
328
+ factsExtracted: validFacts.length,
329
+ avgConfidence,
330
+ success: true,
331
+ },
332
+ });
333
+ }
334
+ catch (error) {
335
+ this.metricsCollector?.logAudit({
336
+ level: 'error',
337
+ component: 'LayeredMemory',
338
+ operation: 'fact_extraction',
339
+ userId,
340
+ genomeId,
341
+ message: 'Failed to extract semantic facts',
342
+ duration: Date.now() - startTime,
343
+ metadata: {
344
+ factsExtracted: 0,
345
+ success: false,
346
+ },
347
+ error: error instanceof Error ? {
348
+ name: error.name,
349
+ message: error.message,
350
+ stack: error.stack,
351
+ } : {
352
+ name: 'UnknownError',
353
+ message: String(error),
354
+ },
355
+ });
356
+ console.warn('Failed to extract long-term facts:', error);
357
+ }
358
+ }
359
+ formatLongTermMemory(longTerm) {
360
+ const factsFormatted = longTerm.semanticFacts
361
+ .map(f => `- ${f.fact} (confidence: ${f.confidence.toFixed(2)}, verified: ${f.verified})`)
362
+ .join('\n');
363
+ return `# User Profile & Permanent Knowledge
364
+
365
+ User Information:
366
+ ${JSON.stringify(longTerm.userProfile, null, 2)}
367
+
368
+ Known Facts:
369
+ ${factsFormatted || 'No facts extracted yet'}
370
+
371
+ Preferences:
372
+ ${JSON.stringify(longTerm.permanentPreferences, null, 2)}`;
373
+ }
374
+ formatMediumTermMemory(mediumTerm) {
375
+ return `# Conversation History Summary (${mediumTerm.periodStart.toLocaleDateString()} - ${mediumTerm.periodEnd.toLocaleDateString()})
376
+
377
+ ${mediumTerm.summary}
378
+
379
+ (${mediumTerm.messageCount} messages summarized)`;
380
+ }
381
+ formatShortTermMemory(shortTerm) {
382
+ const messages = shortTerm.messages
383
+ .map(m => `User: ${m.userMessage}\nAssistant: ${m.assistantResponse}`)
384
+ .join('\n\n');
385
+ return `# Recent Conversation
386
+
387
+ ${messages}`;
388
+ }
389
+ async getMessageCount(userId, genomeId) {
390
+ const interactions = await this.getAllInteractions(userId, genomeId);
391
+ return interactions.length;
392
+ }
393
+ async getLastCompactionTime(userId, genomeId) {
394
+ const cacheKey = `${userId}:${genomeId}`;
395
+ return this.lastCompactionTimes.get(cacheKey) || new Date(0);
396
+ }
397
+ async setLastCompactionTime(userId, genomeId, time) {
398
+ const cacheKey = `${userId}:${genomeId}`;
399
+ this.lastCompactionTimes.set(cacheKey, time);
400
+ }
401
+ estimateTokens(text) {
402
+ return Math.ceil(text.length / 4);
403
+ }
404
+ }
405
+ //# sourceMappingURL=LayeredMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayeredMemory.js","sourceRoot":"","sources":["../../src/memory/LayeredMemory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Conversation, CompactionConfig, CompactionResult, MemoryItem, PrioritizationOptions, ConversationSummary, CompactionStrategy } from './types.js';
2
+ export declare class MemoryCompactor {
3
+ private config;
4
+ private strategies;
5
+ constructor(config?: Partial<CompactionConfig>);
6
+ shouldCompact(conversation: Conversation): boolean;
7
+ compactConversation(conversation: Conversation): Promise<CompactionResult>;
8
+ applyCompaction(conversation: Conversation, result: CompactionResult): Conversation;
9
+ extractEssentials(conversation: Conversation): ConversationSummary;
10
+ prioritizeMemory(items: MemoryItem[], options?: Partial<PrioritizationOptions>): MemoryItem[];
11
+ private calculateTotalTokens;
12
+ private estimateTokens;
13
+ private extractTopics;
14
+ getConfig(): CompactionConfig;
15
+ updateConfig(config: Partial<CompactionConfig>): void;
16
+ getAvailableStrategies(): CompactionStrategy[];
17
+ }
18
+ //# sourceMappingURL=MemoryCompactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryCompactor.d.ts","sourceRoot":"","sources":["../../src/memory-compaction/MemoryCompactor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEhB,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAErB,MAAM,YAAY,CAAC;AA6BpB,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAA+C;gBAErD,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAoB9C,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO;IAS5C,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAchF,eAAe,CACX,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,gBAAgB,GACzB,YAAY;IAoCf,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,mBAAmB;IAkElE,gBAAgB,CACZ,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACzC,UAAU,EAAE;IAkCf,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,aAAa;IAyBrB,SAAS,IAAI,gBAAgB;IAO7B,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAUrD,sBAAsB,IAAI,kBAAkB,EAAE;CAGjD"}