memorisdk 2.0.1__py3-none-any.whl → 2.1.0__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.
- memori/__init__.py +3 -3
- memori/agents/conscious_agent.py +289 -77
- memori/agents/memory_agent.py +19 -9
- memori/agents/retrieval_agent.py +59 -51
- memori/config/manager.py +7 -7
- memori/config/memory_manager.py +25 -25
- memori/config/settings.py +13 -6
- memori/core/conversation.py +15 -15
- memori/core/database.py +14 -13
- memori/core/memory.py +376 -105
- memori/core/providers.py +25 -25
- memori/database/__init__.py +11 -0
- memori/database/adapters/__init__.py +11 -0
- memori/database/adapters/mongodb_adapter.py +739 -0
- memori/database/adapters/mysql_adapter.py +8 -8
- memori/database/adapters/postgresql_adapter.py +6 -6
- memori/database/adapters/sqlite_adapter.py +6 -6
- memori/database/auto_creator.py +8 -9
- memori/database/connection_utils.py +5 -5
- memori/database/connectors/__init__.py +11 -0
- memori/database/connectors/base_connector.py +18 -19
- memori/database/connectors/mongodb_connector.py +527 -0
- memori/database/connectors/mysql_connector.py +13 -15
- memori/database/connectors/postgres_connector.py +12 -12
- memori/database/connectors/sqlite_connector.py +11 -11
- memori/database/models.py +2 -2
- memori/database/mongodb_manager.py +1402 -0
- memori/database/queries/base_queries.py +3 -4
- memori/database/queries/chat_queries.py +3 -5
- memori/database/queries/entity_queries.py +3 -5
- memori/database/queries/memory_queries.py +3 -5
- memori/database/query_translator.py +11 -11
- memori/database/schema_generators/__init__.py +11 -0
- memori/database/schema_generators/mongodb_schema_generator.py +666 -0
- memori/database/schema_generators/mysql_schema_generator.py +2 -4
- memori/database/search/__init__.py +11 -0
- memori/database/search/mongodb_search_adapter.py +653 -0
- memori/database/search/mysql_search_adapter.py +8 -8
- memori/database/search/sqlite_search_adapter.py +6 -6
- memori/database/search_service.py +17 -17
- memori/database/sqlalchemy_manager.py +10 -12
- memori/integrations/__init__.py +1 -1
- memori/integrations/anthropic_integration.py +1 -3
- memori/integrations/litellm_integration.py +23 -6
- memori/integrations/openai_integration.py +31 -3
- memori/tools/memory_tool.py +10 -9
- memori/utils/exceptions.py +58 -58
- memori/utils/helpers.py +11 -12
- memori/utils/input_validator.py +10 -12
- memori/utils/logging.py +4 -4
- memori/utils/pydantic_models.py +57 -57
- memori/utils/query_builder.py +20 -20
- memori/utils/security_audit.py +28 -28
- memori/utils/security_integration.py +9 -9
- memori/utils/transaction_manager.py +20 -19
- memori/utils/validators.py +6 -6
- {memorisdk-2.0.1.dist-info → memorisdk-2.1.0.dist-info}/METADATA +22 -12
- memorisdk-2.1.0.dist-info/RECORD +71 -0
- memorisdk-2.0.1.dist-info/RECORD +0 -66
- {memorisdk-2.0.1.dist-info → memorisdk-2.1.0.dist-info}/WHEEL +0 -0
- {memorisdk-2.0.1.dist-info → memorisdk-2.1.0.dist-info}/licenses/LICENSE +0 -0
- {memorisdk-2.0.1.dist-info → memorisdk-2.1.0.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
|
|
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:
|
|
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:
|
|
283
|
+
session_id: str | None = None,
|
|
281
284
|
limit: int = 10,
|
|
282
|
-
) ->
|
|
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:
|
|
513
|
+
category_filter: list[str] | None = None,
|
|
511
514
|
limit: int = 10,
|
|
512
|
-
) ->
|
|
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:
|
|
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:
|
|
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:
|
|
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") ->
|
|
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()
|