memorisdk 2.0.1__py3-none-any.whl → 2.1.1__py3-none-any.whl

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.

Potentially problematic release.


This version of memorisdk might be problematic. Click here for more details.

Files changed (62) hide show
  1. memori/__init__.py +3 -3
  2. memori/agents/conscious_agent.py +289 -77
  3. memori/agents/memory_agent.py +19 -9
  4. memori/agents/retrieval_agent.py +59 -51
  5. memori/config/manager.py +7 -7
  6. memori/config/memory_manager.py +25 -25
  7. memori/config/settings.py +13 -6
  8. memori/core/conversation.py +15 -15
  9. memori/core/database.py +14 -13
  10. memori/core/memory.py +376 -105
  11. memori/core/providers.py +25 -25
  12. memori/database/__init__.py +11 -0
  13. memori/database/adapters/__init__.py +11 -0
  14. memori/database/adapters/mongodb_adapter.py +739 -0
  15. memori/database/adapters/mysql_adapter.py +8 -8
  16. memori/database/adapters/postgresql_adapter.py +6 -6
  17. memori/database/adapters/sqlite_adapter.py +6 -6
  18. memori/database/auto_creator.py +8 -9
  19. memori/database/connection_utils.py +5 -5
  20. memori/database/connectors/__init__.py +11 -0
  21. memori/database/connectors/base_connector.py +18 -19
  22. memori/database/connectors/mongodb_connector.py +654 -0
  23. memori/database/connectors/mysql_connector.py +13 -15
  24. memori/database/connectors/postgres_connector.py +12 -12
  25. memori/database/connectors/sqlite_connector.py +11 -11
  26. memori/database/models.py +2 -2
  27. memori/database/mongodb_manager.py +1484 -0
  28. memori/database/queries/base_queries.py +3 -4
  29. memori/database/queries/chat_queries.py +3 -5
  30. memori/database/queries/entity_queries.py +3 -5
  31. memori/database/queries/memory_queries.py +3 -5
  32. memori/database/query_translator.py +11 -11
  33. memori/database/schema_generators/__init__.py +11 -0
  34. memori/database/schema_generators/mongodb_schema_generator.py +666 -0
  35. memori/database/schema_generators/mysql_schema_generator.py +2 -4
  36. memori/database/search/__init__.py +11 -0
  37. memori/database/search/mongodb_search_adapter.py +653 -0
  38. memori/database/search/mysql_search_adapter.py +8 -8
  39. memori/database/search/sqlite_search_adapter.py +6 -6
  40. memori/database/search_service.py +17 -17
  41. memori/database/sqlalchemy_manager.py +10 -12
  42. memori/integrations/__init__.py +1 -1
  43. memori/integrations/anthropic_integration.py +1 -3
  44. memori/integrations/litellm_integration.py +23 -6
  45. memori/integrations/openai_integration.py +31 -3
  46. memori/tools/memory_tool.py +10 -9
  47. memori/utils/exceptions.py +58 -58
  48. memori/utils/helpers.py +11 -12
  49. memori/utils/input_validator.py +10 -12
  50. memori/utils/logging.py +4 -4
  51. memori/utils/pydantic_models.py +57 -57
  52. memori/utils/query_builder.py +20 -20
  53. memori/utils/security_audit.py +28 -28
  54. memori/utils/security_integration.py +9 -9
  55. memori/utils/transaction_manager.py +20 -19
  56. memori/utils/validators.py +6 -6
  57. {memorisdk-2.0.1.dist-info → memorisdk-2.1.1.dist-info}/METADATA +23 -12
  58. memorisdk-2.1.1.dist-info/RECORD +71 -0
  59. memorisdk-2.0.1.dist-info/RECORD +0 -66
  60. {memorisdk-2.0.1.dist-info → memorisdk-2.1.1.dist-info}/WHEEL +0 -0
  61. {memorisdk-2.0.1.dist-info → memorisdk-2.1.1.dist-info}/licenses/LICENSE +0 -0
  62. {memorisdk-2.0.1.dist-info → memorisdk-2.1.1.dist-info}/top_level.txt +0 -0
memori/core/database.py CHANGED
@@ -7,7 +7,7 @@ import sqlite3
7
7
  import uuid
8
8
  from datetime import datetime, timedelta
9
9
  from pathlib import Path
10
- from typing import Any, Dict, List, Optional
10
+ from typing import Any
11
11
 
12
12
  from loguru import logger
13
13
 
@@ -24,6 +24,9 @@ from ..utils.transaction_manager import TransactionManager, TransactionOperation
24
24
  class DatabaseManager:
25
25
  """Manages Pydantic-based memory storage with streamlined schema and FTS search"""
26
26
 
27
+ # Database type identifier for database-agnostic code
28
+ database_type = "sql"
29
+
27
30
  def __init__(self, database_connect: str, template: str = "basic"):
28
31
  self.database_connect = database_connect
29
32
  self.template = template
@@ -229,7 +232,7 @@ class DatabaseManager:
229
232
  session_id: str,
230
233
  namespace: str = "default",
231
234
  tokens_used: int = 0,
232
- metadata: Optional[Dict[str, Any]] = None,
235
+ metadata: dict[str, Any] | None = None,
233
236
  ):
234
237
  """Store chat history with input validation"""
235
238
  try:
@@ -277,9 +280,9 @@ class DatabaseManager:
277
280
  def get_chat_history(
278
281
  self,
279
282
  namespace: str = "default",
280
- session_id: Optional[str] = None,
283
+ session_id: str | None = None,
281
284
  limit: int = 10,
282
- ) -> List[Dict[str, Any]]:
285
+ ) -> list[dict[str, Any]]:
283
286
  """Get chat history with optional session filtering"""
284
287
  try:
285
288
  # Validate inputs
@@ -507,9 +510,9 @@ class DatabaseManager:
507
510
  self,
508
511
  query: str,
509
512
  namespace: str = "default",
510
- category_filter: Optional[List[str]] = None,
513
+ category_filter: list[str] | None = None,
511
514
  limit: int = 10,
512
- ) -> List[Dict[str, Any]]:
515
+ ) -> list[dict[str, Any]]:
513
516
  """Advanced memory search with hybrid approach: FTS + Entity + Category filtering"""
514
517
  try:
515
518
  # Validate and sanitize all input parameters
@@ -591,7 +594,7 @@ class DatabaseManager:
591
594
  cursor,
592
595
  query: str,
593
596
  namespace: str,
594
- category_filter: Optional[List[str]],
597
+ category_filter: list[str] | None,
595
598
  limit: int,
596
599
  ):
597
600
  """Execute FTS5 search with proper parameterization"""
@@ -709,7 +712,7 @@ class DatabaseManager:
709
712
  return []
710
713
 
711
714
  def _execute_category_search(
712
- self, cursor, query: str, namespace: str, category_filter: List[str], limit: int
715
+ self, cursor, query: str, namespace: str, category_filter: list[str], limit: int
713
716
  ):
714
717
  """Execute category-based search with proper input validation"""
715
718
  try:
@@ -759,7 +762,7 @@ class DatabaseManager:
759
762
  cursor,
760
763
  query: str,
761
764
  namespace: str,
762
- category_filter: Optional[List[str]],
765
+ category_filter: list[str] | None,
763
766
  limit: int,
764
767
  ):
765
768
  """Execute fallback LIKE search with proper input validation"""
@@ -884,7 +887,7 @@ class DatabaseManager:
884
887
  else:
885
888
  return "short_term_memory"
886
889
 
887
- def get_memory_stats(self, namespace: str = "default") -> Dict[str, Any]:
890
+ def get_memory_stats(self, namespace: str = "default") -> dict[str, Any]:
888
891
  """Get comprehensive memory statistics"""
889
892
  with self._get_connection() as conn:
890
893
  cursor = conn.cursor()
@@ -948,9 +951,7 @@ class DatabaseManager:
948
951
 
949
952
  return stats
950
953
 
951
- def clear_memory(
952
- self, namespace: str = "default", memory_type: Optional[str] = None
953
- ):
954
+ def clear_memory(self, namespace: str = "default", memory_type: str | None = None):
954
955
  """Clear memory data with entity cleanup"""
955
956
  with self._get_connection() as conn:
956
957
  cursor = conn.cursor()