superlocalmemory 3.4.4 → 3.4.7

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 (228) hide show
  1. package/README.md +4 -11
  2. package/ide/hooks/tool-event-hook.sh +46 -0
  3. package/package.json +1 -1
  4. package/pyproject.toml +1 -1
  5. package/src/superlocalmemory/attribution/mathematical_dna.py +1 -1
  6. package/src/superlocalmemory/attribution/signer.py +1 -1
  7. package/src/superlocalmemory/attribution/watermark.py +1 -1
  8. package/src/superlocalmemory/cli/__init__.py +1 -1
  9. package/src/superlocalmemory/cli/commands.py +1 -1
  10. package/src/superlocalmemory/cli/daemon.py +56 -26
  11. package/src/superlocalmemory/cli/json_output.py +1 -1
  12. package/src/superlocalmemory/cli/main.py +1 -1
  13. package/src/superlocalmemory/cli/migrate_cmd.py +1 -1
  14. package/src/superlocalmemory/cli/pending_store.py +1 -1
  15. package/src/superlocalmemory/cli/post_install.py +1 -1
  16. package/src/superlocalmemory/cli/service_installer.py +1 -1
  17. package/src/superlocalmemory/cli/setup_wizard.py +1 -1
  18. package/src/superlocalmemory/code_graph/__init__.py +1 -1
  19. package/src/superlocalmemory/code_graph/blast_radius.py +1 -1
  20. package/src/superlocalmemory/code_graph/bridge/__init__.py +1 -1
  21. package/src/superlocalmemory/code_graph/bridge/entity_resolver.py +1 -1
  22. package/src/superlocalmemory/code_graph/bridge/event_listeners.py +1 -1
  23. package/src/superlocalmemory/code_graph/bridge/fact_enricher.py +1 -1
  24. package/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +1 -1
  25. package/src/superlocalmemory/code_graph/bridge/temporal_checker.py +1 -1
  26. package/src/superlocalmemory/code_graph/changes.py +1 -1
  27. package/src/superlocalmemory/code_graph/communities.py +1 -1
  28. package/src/superlocalmemory/code_graph/config.py +1 -1
  29. package/src/superlocalmemory/code_graph/database.py +1 -1
  30. package/src/superlocalmemory/code_graph/extractors/__init__.py +1 -1
  31. package/src/superlocalmemory/code_graph/extractors/python.py +1 -1
  32. package/src/superlocalmemory/code_graph/extractors/typescript.py +1 -1
  33. package/src/superlocalmemory/code_graph/flows.py +1 -1
  34. package/src/superlocalmemory/code_graph/git_hooks.py +1 -1
  35. package/src/superlocalmemory/code_graph/graph_engine.py +1 -1
  36. package/src/superlocalmemory/code_graph/graph_store.py +1 -1
  37. package/src/superlocalmemory/code_graph/incremental.py +1 -1
  38. package/src/superlocalmemory/code_graph/models.py +1 -1
  39. package/src/superlocalmemory/code_graph/parser.py +1 -1
  40. package/src/superlocalmemory/code_graph/resolver.py +1 -1
  41. package/src/superlocalmemory/code_graph/search.py +1 -1
  42. package/src/superlocalmemory/code_graph/service.py +1 -1
  43. package/src/superlocalmemory/code_graph/watcher.py +1 -1
  44. package/src/superlocalmemory/compliance/abac.py +1 -1
  45. package/src/superlocalmemory/compliance/audit.py +1 -1
  46. package/src/superlocalmemory/compliance/eu_ai_act.py +1 -1
  47. package/src/superlocalmemory/compliance/gdpr.py +1 -1
  48. package/src/superlocalmemory/compliance/lifecycle.py +1 -1
  49. package/src/superlocalmemory/compliance/retention.py +1 -1
  50. package/src/superlocalmemory/compliance/scheduler.py +1 -1
  51. package/src/superlocalmemory/core/config.py +1 -1
  52. package/src/superlocalmemory/core/consolidation_engine.py +52 -1
  53. package/src/superlocalmemory/core/embedding_worker.py +1 -1
  54. package/src/superlocalmemory/core/embeddings.py +1 -1
  55. package/src/superlocalmemory/core/engine.py +17 -1
  56. package/src/superlocalmemory/core/engine_wiring.py +21 -1
  57. package/src/superlocalmemory/core/graph_analyzer.py +15 -1
  58. package/src/superlocalmemory/core/health_monitor.py +1 -1
  59. package/src/superlocalmemory/core/hooks.py +1 -1
  60. package/src/superlocalmemory/core/maintenance.py +1 -1
  61. package/src/superlocalmemory/core/maintenance_scheduler.py +1 -1
  62. package/src/superlocalmemory/core/modes.py +1 -1
  63. package/src/superlocalmemory/core/ollama_embedder.py +1 -1
  64. package/src/superlocalmemory/core/profiles.py +1 -1
  65. package/src/superlocalmemory/core/recall_pipeline.py +16 -3
  66. package/src/superlocalmemory/core/recall_worker.py +1 -1
  67. package/src/superlocalmemory/core/registry.py +1 -1
  68. package/src/superlocalmemory/core/reranker_worker.py +1 -1
  69. package/src/superlocalmemory/core/store_pipeline.py +1 -1
  70. package/src/superlocalmemory/core/summarizer.py +1 -1
  71. package/src/superlocalmemory/core/worker_pool.py +1 -1
  72. package/src/superlocalmemory/dynamics/activation_guided_quantization.py +1 -1
  73. package/src/superlocalmemory/dynamics/eap_scheduler.py +1 -1
  74. package/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +1 -1
  75. package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +1 -1
  76. package/src/superlocalmemory/encoding/auto_linker.py +1 -1
  77. package/src/superlocalmemory/encoding/cognitive_consolidator.py +1 -1
  78. package/src/superlocalmemory/encoding/consolidator.py +1 -1
  79. package/src/superlocalmemory/encoding/context_generator.py +1 -1
  80. package/src/superlocalmemory/encoding/emotional.py +1 -1
  81. package/src/superlocalmemory/encoding/entity_resolver.py +1 -1
  82. package/src/superlocalmemory/encoding/entropy_gate.py +1 -1
  83. package/src/superlocalmemory/encoding/fact_extractor.py +1 -1
  84. package/src/superlocalmemory/encoding/foresight.py +1 -1
  85. package/src/superlocalmemory/encoding/graph_builder.py +1 -1
  86. package/src/superlocalmemory/encoding/observation_builder.py +1 -1
  87. package/src/superlocalmemory/encoding/scene_builder.py +1 -1
  88. package/src/superlocalmemory/encoding/signal_inference.py +1 -1
  89. package/src/superlocalmemory/encoding/temporal_parser.py +1 -1
  90. package/src/superlocalmemory/encoding/temporal_validator.py +1 -1
  91. package/src/superlocalmemory/encoding/type_router.py +1 -1
  92. package/src/superlocalmemory/hooks/__init__.py +1 -1
  93. package/src/superlocalmemory/hooks/auto_capture.py +1 -1
  94. package/src/superlocalmemory/hooks/auto_invoker.py +1 -1
  95. package/src/superlocalmemory/hooks/auto_parameterize.py +1 -1
  96. package/src/superlocalmemory/hooks/auto_recall.py +1 -1
  97. package/src/superlocalmemory/hooks/claude_code_hooks.py +1 -1
  98. package/src/superlocalmemory/hooks/hook_handlers.py +1 -1
  99. package/src/superlocalmemory/hooks/ide_connector.py +1 -1
  100. package/src/superlocalmemory/hooks/rules_engine.py +1 -1
  101. package/src/superlocalmemory/infra/__init__.py +1 -1
  102. package/src/superlocalmemory/infra/auth_middleware.py +1 -1
  103. package/src/superlocalmemory/infra/backup.py +1 -1
  104. package/src/superlocalmemory/infra/cache_manager.py +1 -1
  105. package/src/superlocalmemory/infra/event_bus.py +1 -1
  106. package/src/superlocalmemory/infra/heartbeat_monitor.py +1 -1
  107. package/src/superlocalmemory/infra/pid_manager.py +1 -1
  108. package/src/superlocalmemory/infra/process_reaper.py +1 -1
  109. package/src/superlocalmemory/infra/rate_limiter.py +1 -1
  110. package/src/superlocalmemory/infra/webhook_dispatcher.py +1 -1
  111. package/src/superlocalmemory/ingestion/__init__.py +1 -1
  112. package/src/superlocalmemory/ingestion/adapter_manager.py +1 -1
  113. package/src/superlocalmemory/ingestion/base_adapter.py +1 -1
  114. package/src/superlocalmemory/ingestion/calendar_adapter.py +1 -1
  115. package/src/superlocalmemory/ingestion/credentials.py +1 -1
  116. package/src/superlocalmemory/ingestion/gmail_adapter.py +1 -1
  117. package/src/superlocalmemory/ingestion/parsers.py +1 -1
  118. package/src/superlocalmemory/ingestion/transcript_adapter.py +1 -1
  119. package/src/superlocalmemory/learning/adaptive.py +1 -1
  120. package/src/superlocalmemory/learning/assertion_miner.py +310 -0
  121. package/src/superlocalmemory/learning/behavioral.py +1 -1
  122. package/src/superlocalmemory/learning/behavioral_listener.py +1 -1
  123. package/src/superlocalmemory/learning/bootstrap.py +1 -1
  124. package/src/superlocalmemory/learning/consolidation_quantization_worker.py +1 -1
  125. package/src/superlocalmemory/learning/consolidation_worker.py +25 -9
  126. package/src/superlocalmemory/learning/cross_project.py +1 -1
  127. package/src/superlocalmemory/learning/database.py +1 -1
  128. package/src/superlocalmemory/learning/entity_compiler.py +1 -1
  129. package/src/superlocalmemory/learning/features.py +1 -1
  130. package/src/superlocalmemory/learning/forgetting_scheduler.py +1 -1
  131. package/src/superlocalmemory/learning/outcomes.py +1 -1
  132. package/src/superlocalmemory/learning/project_context.py +1 -1
  133. package/src/superlocalmemory/learning/quantization_scheduler.py +1 -1
  134. package/src/superlocalmemory/learning/ranker.py +1 -1
  135. package/src/superlocalmemory/learning/signals.py +1 -1
  136. package/src/superlocalmemory/learning/workflows.py +1 -1
  137. package/src/superlocalmemory/llm/backbone.py +1 -1
  138. package/src/superlocalmemory/math/ebbinghaus.py +1 -1
  139. package/src/superlocalmemory/math/fisher.py +1 -1
  140. package/src/superlocalmemory/math/fisher_quantized.py +1 -1
  141. package/src/superlocalmemory/math/hopfield.py +1 -1
  142. package/src/superlocalmemory/math/langevin.py +1 -1
  143. package/src/superlocalmemory/math/polar_quant.py +1 -1
  144. package/src/superlocalmemory/math/qjl.py +1 -1
  145. package/src/superlocalmemory/math/sheaf.py +1 -1
  146. package/src/superlocalmemory/math/turbo_quant.py +1 -1
  147. package/src/superlocalmemory/mcp/resources.py +1 -1
  148. package/src/superlocalmemory/mcp/server.py +17 -2
  149. package/src/superlocalmemory/mcp/shared.py +1 -1
  150. package/src/superlocalmemory/mcp/tools.py +1 -1
  151. package/src/superlocalmemory/mcp/tools_active.py +1 -1
  152. package/src/superlocalmemory/mcp/tools_code_graph.py +1 -1
  153. package/src/superlocalmemory/mcp/tools_core.py +1 -1
  154. package/src/superlocalmemory/mcp/tools_learning.py +221 -0
  155. package/src/superlocalmemory/mcp/tools_mesh.py +55 -12
  156. package/src/superlocalmemory/mcp/tools_v28.py +23 -1
  157. package/src/superlocalmemory/mcp/tools_v3.py +1 -1
  158. package/src/superlocalmemory/mcp/tools_v33.py +1 -1
  159. package/src/superlocalmemory/mesh/__init__.py +1 -1
  160. package/src/superlocalmemory/mesh/broker.py +194 -38
  161. package/src/superlocalmemory/parameterization/__init__.py +1 -1
  162. package/src/superlocalmemory/parameterization/pattern_extractor.py +35 -1
  163. package/src/superlocalmemory/parameterization/pii_filter.py +1 -1
  164. package/src/superlocalmemory/parameterization/prompt_injector.py +1 -1
  165. package/src/superlocalmemory/parameterization/prompt_lifecycle.py +1 -1
  166. package/src/superlocalmemory/parameterization/soft_prompt_generator.py +7 -1
  167. package/src/superlocalmemory/retrieval/agentic.py +1 -1
  168. package/src/superlocalmemory/retrieval/ann_index.py +1 -1
  169. package/src/superlocalmemory/retrieval/bm25_channel.py +1 -1
  170. package/src/superlocalmemory/retrieval/bridge_discovery.py +1 -1
  171. package/src/superlocalmemory/retrieval/channel_registry.py +1 -1
  172. package/src/superlocalmemory/retrieval/engine.py +1 -1
  173. package/src/superlocalmemory/retrieval/entity_channel.py +1 -1
  174. package/src/superlocalmemory/retrieval/forgetting_filter.py +1 -1
  175. package/src/superlocalmemory/retrieval/fusion.py +1 -1
  176. package/src/superlocalmemory/retrieval/hopfield_channel.py +1 -1
  177. package/src/superlocalmemory/retrieval/profile_channel.py +1 -1
  178. package/src/superlocalmemory/retrieval/quantization_aware_search.py +1 -1
  179. package/src/superlocalmemory/retrieval/reranker.py +1 -1
  180. package/src/superlocalmemory/retrieval/semantic_channel.py +1 -1
  181. package/src/superlocalmemory/retrieval/spreading_activation.py +1 -1
  182. package/src/superlocalmemory/retrieval/strategy.py +1 -1
  183. package/src/superlocalmemory/retrieval/temporal_channel.py +1 -1
  184. package/src/superlocalmemory/retrieval/vector_store.py +1 -1
  185. package/src/superlocalmemory/server/api.py +1 -1
  186. package/src/superlocalmemory/server/routes/__init__.py +1 -1
  187. package/src/superlocalmemory/server/routes/adapters.py +1 -1
  188. package/src/superlocalmemory/server/routes/agents.py +2 -2
  189. package/src/superlocalmemory/server/routes/backup.py +2 -2
  190. package/src/superlocalmemory/server/routes/behavioral.py +125 -2
  191. package/src/superlocalmemory/server/routes/compliance.py +2 -2
  192. package/src/superlocalmemory/server/routes/data_io.py +2 -2
  193. package/src/superlocalmemory/server/routes/entity.py +1 -1
  194. package/src/superlocalmemory/server/routes/events.py +2 -2
  195. package/src/superlocalmemory/server/routes/helpers.py +2 -2
  196. package/src/superlocalmemory/server/routes/ingest.py +1 -1
  197. package/src/superlocalmemory/server/routes/learning.py +2 -2
  198. package/src/superlocalmemory/server/routes/lifecycle.py +2 -2
  199. package/src/superlocalmemory/server/routes/memories.py +2 -2
  200. package/src/superlocalmemory/server/routes/mesh.py +25 -7
  201. package/src/superlocalmemory/server/routes/profiles.py +2 -2
  202. package/src/superlocalmemory/server/routes/stats.py +26 -7
  203. package/src/superlocalmemory/server/routes/v3_api.py +1 -1
  204. package/src/superlocalmemory/server/routes/ws.py +2 -2
  205. package/src/superlocalmemory/server/ui.py +1 -1
  206. package/src/superlocalmemory/server/unified_daemon.py +42 -1
  207. package/src/superlocalmemory/storage/access_control.py +1 -1
  208. package/src/superlocalmemory/storage/access_log.py +1 -1
  209. package/src/superlocalmemory/storage/database.py +1 -1
  210. package/src/superlocalmemory/storage/embedding_migrator.py +1 -1
  211. package/src/superlocalmemory/storage/migration_v33.py +1 -1
  212. package/src/superlocalmemory/storage/migrations.py +1 -1
  213. package/src/superlocalmemory/storage/models.py +1 -1
  214. package/src/superlocalmemory/storage/quantized_store.py +1 -1
  215. package/src/superlocalmemory/storage/schema.py +1 -1
  216. package/src/superlocalmemory/storage/schema_code_graph.py +1 -1
  217. package/src/superlocalmemory/storage/schema_v32.py +1 -1
  218. package/src/superlocalmemory/storage/schema_v343.py +75 -1
  219. package/src/superlocalmemory/storage/schema_v347.py +136 -0
  220. package/src/superlocalmemory/storage/v2_migrator.py +1 -1
  221. package/src/superlocalmemory/trust/gate.py +1 -1
  222. package/src/superlocalmemory/trust/provenance.py +1 -1
  223. package/src/superlocalmemory/trust/scorer.py +1 -1
  224. package/src/superlocalmemory/trust/signals.py +1 -1
  225. package/src/superlocalmemory/ui/index.html +7 -7
  226. package/src/superlocalmemory/ui/js/behavioral.js +174 -3
  227. package/src/superlocalmemory.egg-info/PKG-INFO +5 -12
  228. package/src/superlocalmemory.egg-info/SOURCES.txt +3 -0
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Sleep-time consolidation engine (Phase 5).
@@ -127,6 +127,57 @@ class ConsolidationEngine:
127
127
  )
128
128
  # Step 7: Cognitive Consolidation Quantization (Phase E)
129
129
  results["ccq"] = self._step7_ccq(profile_id)
130
+
131
+ # Step 8 (v3.4.7): Mine behavioral assertions from tool events.
132
+ try:
133
+ from superlocalmemory.learning.assertion_miner import AssertionMiner
134
+ miner = AssertionMiner(self._db.db_path)
135
+ results["assertions"] = miner.mine(profile_id)
136
+ except Exception as exc:
137
+ logger.debug("Assertion mining (non-fatal): %s", exc)
138
+ results["assertions"] = {"error": str(exc)}
139
+
140
+ # Step 9 (v3.4.7): Generate soft prompts from patterns + assertions.
141
+ # Previously the AutoParameterizeHook was never wired.
142
+ try:
143
+ from superlocalmemory.parameterization.pattern_extractor import PatternExtractor
144
+ from superlocalmemory.parameterization.soft_prompt_generator import SoftPromptGenerator
145
+ from superlocalmemory.parameterization.prompt_injector import PromptInjector
146
+ from superlocalmemory.parameterization.prompt_lifecycle import PromptLifecycleManager
147
+ from superlocalmemory.learning.behavioral import BehavioralPatternStore
148
+ # cross_project and workflow_miner may not exist yet — stub them
149
+ try:
150
+ from superlocalmemory.parameterization.cross_project import CrossProjectAggregator
151
+ except ImportError:
152
+ class CrossProjectAggregator:
153
+ def __init__(self, db): pass
154
+ def aggregate(self, *a, **kw): return []
155
+ try:
156
+ from superlocalmemory.parameterization.workflow_miner import WorkflowMiner
157
+ except ImportError:
158
+ class WorkflowMiner:
159
+ def __init__(self, db): pass
160
+ def mine(self, *a, **kw): return []
161
+ from superlocalmemory.hooks.auto_parameterize import AutoParameterizeHook
162
+ from superlocalmemory.core.config import ParameterizationConfig
163
+ from pathlib import Path as _Path
164
+
165
+ p_config = getattr(self._slm_config, "parameterization", ParameterizationConfig())
166
+ learning_db = str(_Path.home() / ".superlocalmemory" / "learning.db")
167
+ beh_store = BehavioralPatternStore(learning_db)
168
+ cross_proj = CrossProjectAggregator(self._db)
169
+ wf_miner = WorkflowMiner(self._db)
170
+ extractor = PatternExtractor(self._db, beh_store, cross_proj, wf_miner, p_config)
171
+ generator = SoftPromptGenerator(p_config)
172
+ injector = PromptInjector(self._db)
173
+ lifecycle = PromptLifecycleManager(self._db, p_config)
174
+ hook = AutoParameterizeHook(extractor, generator, injector, lifecycle, p_config)
175
+ sp_result = hook.on_consolidation_complete(profile_id)
176
+ results["soft_prompts"] = sp_result
177
+ except Exception as exc:
178
+ logger.debug("Soft prompt generation (non-fatal): %s", exc)
179
+ results["soft_prompts"] = {"error": str(exc)}
180
+
130
181
  results["success"] = True
131
182
  except Exception as exc:
132
183
  logger.warning(
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Subprocess embedding worker — isolates PyTorch memory from main process.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Embedding Service (Subprocess-Isolated).
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Main Memory Engine (Facade).
@@ -125,6 +125,20 @@ class MemoryEngine:
125
125
  except Exception as exc:
126
126
  logger.debug("V3.4.3 schema migration: %s", exc)
127
127
 
128
+ # V3.4.6: Apply "Connected Brain" mesh enhancements (broadcast, project routing, offline queue)
129
+ try:
130
+ from superlocalmemory.storage.schema_v343 import apply_v346_schema
131
+ apply_v346_schema(str(self._db.db_path))
132
+ except Exception as exc:
133
+ logger.debug("V3.4.6 schema migration: %s", exc)
134
+
135
+ # V3.4.7: Apply "Learning Brain" schema (tool_events, behavioral_assertions)
136
+ try:
137
+ from superlocalmemory.storage.schema_v347 import apply_v347_schema
138
+ apply_v347_schema(str(self._db.db_path))
139
+ except Exception as exc:
140
+ logger.debug("V3.4.7 schema migration: %s", exc)
141
+
128
142
  self._embedder = init_embedder(self._config)
129
143
 
130
144
  if self._caps.llm_fact_extraction:
@@ -199,6 +213,8 @@ class MemoryEngine:
199
213
  temporal_validator=self._temporal_validator,
200
214
  summarizer=summarizer,
201
215
  behavioral_store=None,
216
+ embedder=self._embedder, # v3.4.7: for CCQ worker
217
+ llm=getattr(self, "_llm", None), # v3.4.7: for CCQ worker
202
218
  )
203
219
 
204
220
  # V3.3: Check for embedding model migration on mode switch
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Engine wiring — extracted free functions for MemoryEngine initialization.
@@ -330,10 +330,29 @@ def _init_consolidation(
330
330
  temporal_validator: Any,
331
331
  summarizer: Any,
332
332
  behavioral_store: Any,
333
+ embedder: Any = None,
334
+ llm: Any = None,
333
335
  ) -> Any | None:
334
336
  """Create ConsolidationEngine for Phase 5 sleep-time consolidation."""
335
337
  try:
336
338
  from superlocalmemory.core.consolidation_engine import ConsolidationEngine
339
+
340
+ # v3.4.7: Create CCQWorker so Step 7 (cognitive consolidation) actually runs.
341
+ # Previously, ccq_worker was always None → Step 7 returned {"enabled": False}.
342
+ ccq_worker = None
343
+ try:
344
+ from superlocalmemory.core.config import CCQConfig
345
+ from superlocalmemory.encoding.cognitive_consolidator import CognitiveConsolidator
346
+ from superlocalmemory.learning.consolidation_quantization_worker import CCQWorker
347
+ ccq_config = getattr(config, "ccq", CCQConfig())
348
+ consolidator = CognitiveConsolidator(
349
+ db=db, embedder=embedder, llm=llm, config=ccq_config,
350
+ )
351
+ ccq_worker = CCQWorker(consolidator=consolidator, config=ccq_config)
352
+ logger.info("CCQ worker initialized (enabled=%s)", ccq_config.enabled)
353
+ except Exception as exc:
354
+ logger.debug("CCQ worker init failed (non-fatal): %s", exc)
355
+
337
356
  return ConsolidationEngine(
338
357
  db=db,
339
358
  config=config.consolidation,
@@ -343,6 +362,7 @@ def _init_consolidation(
343
362
  graph_analyzer=graph_analyzer,
344
363
  temporal_validator=temporal_validator,
345
364
  slm_config=config,
365
+ ccq_worker=ccq_worker,
346
366
  )
347
367
  except Exception as exc:
348
368
  logger.debug("ConsolidationEngine init failed: %s", exc)
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3
4
4
 
5
5
  """Graph structural analysis -- PageRank, community detection, centrality.
@@ -438,4 +438,18 @@ class GraphAnalyzer:
438
438
  except Exception as exc:
439
439
  logger.debug("association_edges read failed: %s", exc)
440
440
 
441
+ # v3.4.7: Add ALL facts as nodes so isolated facts get base PageRank.
442
+ # Previously, facts without edges were invisible to graph analysis.
443
+ try:
444
+ all_facts = self._db.execute(
445
+ "SELECT fact_id FROM atomic_facts WHERE profile_id = ?",
446
+ (profile_id,),
447
+ )
448
+ for row in all_facts:
449
+ fact_id = dict(row)["fact_id"]
450
+ if fact_id not in g:
451
+ g.add_node(fact_id)
452
+ except Exception as exc:
453
+ logger.debug("Failed to add isolated fact nodes: %s", exc)
454
+
441
455
  return g
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Enterprise-grade health monitoring for the SLM Unified Daemon.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Engine lifecycle hooks -- pre/post operation dispatch.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Background Math Maintenance.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Background Maintenance Scheduler.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Mode System.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Ollama Embedding Provider — lightweight HTTP-based embeddings.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Profile Management.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Recall pipeline — extracted free functions for MemoryEngine.recall().
@@ -230,10 +230,23 @@ def run_recall(
230
230
  # singletons to avoid creating new objects per recall (was causing
231
231
  # object accumulation across 304 benchmark recalls).
232
232
  try:
233
+ # v3.4.7: Extract entities from results for behavioral tracking.
234
+ # Was passing wrong param (result_count instead of entities) → TypeError.
235
+ entities: list[str] = []
236
+ for r in response.results[:10]:
237
+ rd = r if isinstance(r, dict) else (dict(r) if hasattr(r, "keys") else {})
238
+ ents_json = rd.get("canonical_entities_json", "")
239
+ if ents_json:
240
+ try:
241
+ import json as _json
242
+ entities.extend(_json.loads(ents_json))
243
+ except (ValueError, TypeError):
244
+ pass
233
245
  _get_behavioral_tracker(db).record_query(
234
- profile_id=profile_id, query=query,
246
+ query=query,
235
247
  query_type=response.query_type,
236
- result_count=len(response.results),
248
+ entities=entities[:20],
249
+ profile_id=profile_id,
237
250
  )
238
251
  except Exception as exc:
239
252
  logger.debug("Behavioral tracking: %s", exc)
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Subprocess recall worker — runs the full recall pipeline in isolation.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Agent registry — multi-agent profile isolation.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Subprocess reranker worker — isolates PyTorch/ONNX from main process.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Store pipeline — extracted free functions for MemoryEngine.store().
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Summarizer — Mode A heuristic + Mode B Ollama + Mode C OpenRouter.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Recall worker pool — manages subprocess lifecycle for all callers.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3
4
4
 
5
5
  """Spreading Activation-Guided Quantization (SAGQ) engine.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3
4
4
 
5
5
  """EAP Scheduler -- Embedding-Aware Precision.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Ebbinghaus-Langevin coupling — forgetting drift in dynamics.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Fisher-Langevin Coupling: information-dynamic lifecycle for memory.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3
4
4
 
5
5
  """A-MEM-inspired automatic edge creation between related facts.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Cognitive Consolidation Quantization (CCQ) — Phase E.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Memory Consolidator.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3.2 | https://qualixar.com
4
4
 
5
5
  """Generate contextual descriptions for facts (A-MEM pattern).
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Emotional Tagging (VADER).
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Entity Resolution.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Entropy Gate (Deduplication).
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Fact extraction — converts raw conversation turns into structured AtomicFacts.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Foresight Signal Extraction.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Knowledge graph construction — 4 edge types, zero memory limits.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Observation Builder (Entity Profiles).
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Scene Builder (Memory Clustering).
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Signal Inference (6 Types).
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Temporal Parser (3-Date Model).
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3
4
4
 
5
5
  """Temporal Intelligence -- contradiction detection and fact invalidation.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 — Typed Memory Router.
@@ -1,3 +1,3 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Auto-capture — detect and store important information automatically."""
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3.2 | https://qualixar.com
4
4
 
5
5
  """Auto-Invoke Engine -- multi-signal memory retrieval.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3.3
4
4
 
5
5
  """AutoParameterizeHook — Trigger parameterization on consolidation events.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Auto-recall — inject relevant memories into AI context automatically."""
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Claude Code hook integration — hybrid approach (v3.3.6).
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Claude Code hook handlers — zero-dependency, cross-platform.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """IDE connector — detect installed IDEs and generate SLM integration configs.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """Rules engine for configurable auto-capture and auto-recall behavior."""
@@ -1,3 +1,3 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
  """Opt-in API-key authentication middleware.
5
5
 
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
  """Automated backup manager for SuperLocalMemory V3.
5
5
 
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
  """LRU cache with optional TTL for search-result caching.
5
5
 
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
  """EventBus -- Real-time event broadcasting for memory operations.
5
5
 
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
2
- # Licensed under the Elastic License 2.0 - see LICENSE file
2
+ # Licensed under AGPL-3.0-or-later - see LICENSE file
3
3
  # Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
4
4
 
5
5
  """SuperLocalMemory V3 -- Parent Heartbeat Monitor.