alma-memory 0.5.0__py3-none-any.whl → 0.7.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.
- alma/__init__.py +296 -194
- alma/compression/__init__.py +33 -0
- alma/compression/pipeline.py +980 -0
- alma/confidence/__init__.py +47 -47
- alma/confidence/engine.py +540 -540
- alma/confidence/types.py +351 -351
- alma/config/loader.py +157 -157
- alma/consolidation/__init__.py +23 -23
- alma/consolidation/engine.py +678 -678
- alma/consolidation/prompts.py +84 -84
- alma/core.py +1189 -322
- alma/domains/__init__.py +30 -30
- alma/domains/factory.py +359 -359
- alma/domains/schemas.py +448 -448
- alma/domains/types.py +272 -272
- alma/events/__init__.py +75 -75
- alma/events/emitter.py +285 -284
- alma/events/storage_mixin.py +246 -246
- alma/events/types.py +126 -126
- alma/events/webhook.py +425 -425
- alma/exceptions.py +49 -49
- alma/extraction/__init__.py +31 -31
- alma/extraction/auto_learner.py +265 -264
- alma/extraction/extractor.py +420 -420
- alma/graph/__init__.py +106 -81
- alma/graph/backends/__init__.py +32 -18
- alma/graph/backends/kuzu.py +624 -0
- alma/graph/backends/memgraph.py +432 -0
- alma/graph/backends/memory.py +236 -236
- alma/graph/backends/neo4j.py +417 -417
- alma/graph/base.py +159 -159
- alma/graph/extraction.py +198 -198
- alma/graph/store.py +860 -860
- alma/harness/__init__.py +35 -35
- alma/harness/base.py +386 -386
- alma/harness/domains.py +705 -705
- alma/initializer/__init__.py +37 -37
- alma/initializer/initializer.py +418 -418
- alma/initializer/types.py +250 -250
- alma/integration/__init__.py +62 -62
- alma/integration/claude_agents.py +444 -432
- alma/integration/helena.py +423 -423
- alma/integration/victor.py +471 -471
- alma/learning/__init__.py +101 -86
- alma/learning/decay.py +878 -0
- alma/learning/forgetting.py +1446 -1446
- alma/learning/heuristic_extractor.py +390 -390
- alma/learning/protocols.py +374 -374
- alma/learning/validation.py +346 -346
- alma/mcp/__init__.py +123 -45
- alma/mcp/__main__.py +156 -156
- alma/mcp/resources.py +122 -122
- alma/mcp/server.py +955 -591
- alma/mcp/tools.py +3254 -511
- alma/observability/__init__.py +91 -0
- alma/observability/config.py +302 -0
- alma/observability/guidelines.py +170 -0
- alma/observability/logging.py +424 -0
- alma/observability/metrics.py +583 -0
- alma/observability/tracing.py +440 -0
- alma/progress/__init__.py +21 -21
- alma/progress/tracker.py +607 -607
- alma/progress/types.py +250 -250
- alma/retrieval/__init__.py +134 -53
- alma/retrieval/budget.py +525 -0
- alma/retrieval/cache.py +1304 -1061
- alma/retrieval/embeddings.py +202 -202
- alma/retrieval/engine.py +850 -366
- alma/retrieval/modes.py +365 -0
- alma/retrieval/progressive.py +560 -0
- alma/retrieval/scoring.py +344 -344
- alma/retrieval/trust_scoring.py +637 -0
- alma/retrieval/verification.py +797 -0
- alma/session/__init__.py +19 -19
- alma/session/manager.py +442 -399
- alma/session/types.py +288 -288
- alma/storage/__init__.py +101 -61
- alma/storage/archive.py +233 -0
- alma/storage/azure_cosmos.py +1259 -1048
- alma/storage/base.py +1083 -525
- alma/storage/chroma.py +1443 -1443
- alma/storage/constants.py +103 -0
- alma/storage/file_based.py +614 -619
- alma/storage/migrations/__init__.py +21 -0
- alma/storage/migrations/base.py +321 -0
- alma/storage/migrations/runner.py +323 -0
- alma/storage/migrations/version_stores.py +337 -0
- alma/storage/migrations/versions/__init__.py +11 -0
- alma/storage/migrations/versions/v1_0_0.py +373 -0
- alma/storage/migrations/versions/v1_1_0_workflow_context.py +551 -0
- alma/storage/pinecone.py +1080 -1080
- alma/storage/postgresql.py +1948 -1452
- alma/storage/qdrant.py +1306 -1306
- alma/storage/sqlite_local.py +3041 -1358
- alma/testing/__init__.py +46 -0
- alma/testing/factories.py +301 -0
- alma/testing/mocks.py +389 -0
- alma/types.py +292 -264
- alma/utils/__init__.py +19 -0
- alma/utils/tokenizer.py +521 -0
- alma/workflow/__init__.py +83 -0
- alma/workflow/artifacts.py +170 -0
- alma/workflow/checkpoint.py +311 -0
- alma/workflow/context.py +228 -0
- alma/workflow/outcomes.py +189 -0
- alma/workflow/reducers.py +393 -0
- {alma_memory-0.5.0.dist-info → alma_memory-0.7.0.dist-info}/METADATA +244 -72
- alma_memory-0.7.0.dist-info/RECORD +112 -0
- alma_memory-0.5.0.dist-info/RECORD +0 -76
- {alma_memory-0.5.0.dist-info → alma_memory-0.7.0.dist-info}/WHEEL +0 -0
- {alma_memory-0.5.0.dist-info → alma_memory-0.7.0.dist-info}/top_level.txt +0 -0
alma/graph/__init__.py
CHANGED
|
@@ -1,81 +1,106 @@
|
|
|
1
|
-
"""
|
|
2
|
-
ALMA Graph Memory Module.
|
|
3
|
-
|
|
4
|
-
Graph-based memory for capturing relationships between entities.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
from alma.graph.base import GraphBackend
|
|
8
|
-
from alma.graph.extraction import (
|
|
9
|
-
EntityExtractor,
|
|
10
|
-
ExtractionConfig,
|
|
11
|
-
)
|
|
12
|
-
from alma.graph.store import (
|
|
13
|
-
BackendGraphStore,
|
|
14
|
-
Entity,
|
|
15
|
-
GraphQuery,
|
|
16
|
-
GraphResult,
|
|
17
|
-
GraphStore,
|
|
18
|
-
InMemoryGraphStore,
|
|
19
|
-
Neo4jGraphStore,
|
|
20
|
-
Relationship,
|
|
21
|
-
create_graph_store,
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
__all__ = [
|
|
25
|
-
# Backend abstract base class
|
|
26
|
-
"GraphBackend",
|
|
27
|
-
# Store classes (high-level API)
|
|
28
|
-
"GraphStore",
|
|
29
|
-
"Neo4jGraphStore",
|
|
30
|
-
"InMemoryGraphStore",
|
|
31
|
-
"BackendGraphStore",
|
|
32
|
-
# Data classes
|
|
33
|
-
"Entity",
|
|
34
|
-
"Relationship",
|
|
35
|
-
"GraphQuery",
|
|
36
|
-
"GraphResult",
|
|
37
|
-
# Extraction
|
|
38
|
-
"EntityExtractor",
|
|
39
|
-
"ExtractionConfig",
|
|
40
|
-
# Factory functions
|
|
41
|
-
"create_graph_store",
|
|
42
|
-
"create_graph_backend",
|
|
43
|
-
]
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
def create_graph_backend(backend: str = "neo4j", **config) -> GraphBackend:
|
|
47
|
-
"""
|
|
48
|
-
Factory function to create a graph backend.
|
|
49
|
-
|
|
50
|
-
Args:
|
|
51
|
-
backend: Backend type ("neo4j" or "memory")
|
|
52
|
-
**config: Backend-specific configuration options
|
|
53
|
-
|
|
54
|
-
Returns:
|
|
55
|
-
Configured GraphBackend instance
|
|
56
|
-
|
|
57
|
-
Raises:
|
|
58
|
-
ValueError: If an unknown backend type is specified
|
|
59
|
-
|
|
60
|
-
Example:
|
|
61
|
-
# Create Neo4j backend
|
|
62
|
-
backend = create_graph_backend(
|
|
63
|
-
backend="neo4j",
|
|
64
|
-
uri="bolt://localhost:7687",
|
|
65
|
-
username="neo4j",
|
|
66
|
-
password="password"
|
|
67
|
-
)
|
|
68
|
-
|
|
69
|
-
# Create
|
|
70
|
-
backend = create_graph_backend(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
1
|
+
"""
|
|
2
|
+
ALMA Graph Memory Module.
|
|
3
|
+
|
|
4
|
+
Graph-based memory for capturing relationships between entities.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from alma.graph.base import GraphBackend
|
|
8
|
+
from alma.graph.extraction import (
|
|
9
|
+
EntityExtractor,
|
|
10
|
+
ExtractionConfig,
|
|
11
|
+
)
|
|
12
|
+
from alma.graph.store import (
|
|
13
|
+
BackendGraphStore,
|
|
14
|
+
Entity,
|
|
15
|
+
GraphQuery,
|
|
16
|
+
GraphResult,
|
|
17
|
+
GraphStore,
|
|
18
|
+
InMemoryGraphStore,
|
|
19
|
+
Neo4jGraphStore,
|
|
20
|
+
Relationship,
|
|
21
|
+
create_graph_store,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
__all__ = [
|
|
25
|
+
# Backend abstract base class
|
|
26
|
+
"GraphBackend",
|
|
27
|
+
# Store classes (high-level API)
|
|
28
|
+
"GraphStore",
|
|
29
|
+
"Neo4jGraphStore",
|
|
30
|
+
"InMemoryGraphStore",
|
|
31
|
+
"BackendGraphStore",
|
|
32
|
+
# Data classes
|
|
33
|
+
"Entity",
|
|
34
|
+
"Relationship",
|
|
35
|
+
"GraphQuery",
|
|
36
|
+
"GraphResult",
|
|
37
|
+
# Extraction
|
|
38
|
+
"EntityExtractor",
|
|
39
|
+
"ExtractionConfig",
|
|
40
|
+
# Factory functions
|
|
41
|
+
"create_graph_store",
|
|
42
|
+
"create_graph_backend",
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def create_graph_backend(backend: str = "neo4j", **config) -> GraphBackend:
|
|
47
|
+
"""
|
|
48
|
+
Factory function to create a graph backend.
|
|
49
|
+
|
|
50
|
+
Args:
|
|
51
|
+
backend: Backend type ("neo4j", "memgraph", "kuzu", or "memory")
|
|
52
|
+
**config: Backend-specific configuration options
|
|
53
|
+
|
|
54
|
+
Returns:
|
|
55
|
+
Configured GraphBackend instance
|
|
56
|
+
|
|
57
|
+
Raises:
|
|
58
|
+
ValueError: If an unknown backend type is specified
|
|
59
|
+
|
|
60
|
+
Example:
|
|
61
|
+
# Create Neo4j backend
|
|
62
|
+
backend = create_graph_backend(
|
|
63
|
+
backend="neo4j",
|
|
64
|
+
uri="bolt://localhost:7687",
|
|
65
|
+
username="neo4j",
|
|
66
|
+
password="password"
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
# Create Memgraph backend
|
|
70
|
+
backend = create_graph_backend(
|
|
71
|
+
backend="memgraph",
|
|
72
|
+
uri="bolt://localhost:7687",
|
|
73
|
+
username="",
|
|
74
|
+
password=""
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
# Create Kuzu embedded backend (persistent)
|
|
78
|
+
backend = create_graph_backend(
|
|
79
|
+
backend="kuzu",
|
|
80
|
+
database_path="./my_graph_db"
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
# Create Kuzu embedded backend (in-memory)
|
|
84
|
+
backend = create_graph_backend(backend="kuzu")
|
|
85
|
+
|
|
86
|
+
# Create in-memory backend for testing
|
|
87
|
+
backend = create_graph_backend(backend="memory")
|
|
88
|
+
"""
|
|
89
|
+
if backend == "neo4j":
|
|
90
|
+
from alma.graph.backends.neo4j import Neo4jBackend
|
|
91
|
+
|
|
92
|
+
return Neo4jBackend(**config)
|
|
93
|
+
elif backend == "memgraph":
|
|
94
|
+
from alma.graph.backends.memgraph import MemgraphBackend
|
|
95
|
+
|
|
96
|
+
return MemgraphBackend(**config)
|
|
97
|
+
elif backend == "kuzu":
|
|
98
|
+
from alma.graph.backends.kuzu import KuzuBackend
|
|
99
|
+
|
|
100
|
+
return KuzuBackend(**config)
|
|
101
|
+
elif backend == "memory":
|
|
102
|
+
from alma.graph.backends.memory import InMemoryBackend
|
|
103
|
+
|
|
104
|
+
return InMemoryBackend()
|
|
105
|
+
else:
|
|
106
|
+
raise ValueError(f"Unknown graph backend: {backend}")
|
alma/graph/backends/__init__.py
CHANGED
|
@@ -1,18 +1,32 @@
|
|
|
1
|
-
"""
|
|
2
|
-
ALMA Graph Memory Backends.
|
|
3
|
-
|
|
4
|
-
This package contains implementations of the GraphBackend interface
|
|
5
|
-
for various graph database systems.
|
|
6
|
-
|
|
7
|
-
Available backends:
|
|
8
|
-
- neo4j: Neo4j graph database backend
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
"""
|
|
2
|
+
ALMA Graph Memory Backends.
|
|
3
|
+
|
|
4
|
+
This package contains implementations of the GraphBackend interface
|
|
5
|
+
for various graph database systems.
|
|
6
|
+
|
|
7
|
+
Available backends:
|
|
8
|
+
- neo4j: Neo4j graph database backend
|
|
9
|
+
- memgraph: Memgraph graph database backend (Neo4j Bolt protocol compatible)
|
|
10
|
+
- kuzu: Kuzu embedded graph database backend (no server required)
|
|
11
|
+
- memory: In-memory backend for testing and development
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from alma.graph.backends.memgraph import MemgraphBackend
|
|
15
|
+
from alma.graph.backends.memory import InMemoryBackend
|
|
16
|
+
from alma.graph.backends.neo4j import Neo4jBackend
|
|
17
|
+
|
|
18
|
+
# Kuzu is an optional dependency
|
|
19
|
+
try:
|
|
20
|
+
from alma.graph.backends.kuzu import KuzuBackend
|
|
21
|
+
|
|
22
|
+
_KUZU_AVAILABLE = True
|
|
23
|
+
except ImportError:
|
|
24
|
+
KuzuBackend = None # type: ignore
|
|
25
|
+
_KUZU_AVAILABLE = False
|
|
26
|
+
|
|
27
|
+
__all__ = [
|
|
28
|
+
"Neo4jBackend",
|
|
29
|
+
"MemgraphBackend",
|
|
30
|
+
"KuzuBackend",
|
|
31
|
+
"InMemoryBackend",
|
|
32
|
+
]
|