alma-memory 0.5.1__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.
Files changed (111) hide show
  1. alma/__init__.py +296 -226
  2. alma/compression/__init__.py +33 -0
  3. alma/compression/pipeline.py +980 -0
  4. alma/confidence/__init__.py +47 -47
  5. alma/confidence/engine.py +540 -540
  6. alma/confidence/types.py +351 -351
  7. alma/config/loader.py +157 -157
  8. alma/consolidation/__init__.py +23 -23
  9. alma/consolidation/engine.py +678 -678
  10. alma/consolidation/prompts.py +84 -84
  11. alma/core.py +1189 -430
  12. alma/domains/__init__.py +30 -30
  13. alma/domains/factory.py +359 -359
  14. alma/domains/schemas.py +448 -448
  15. alma/domains/types.py +272 -272
  16. alma/events/__init__.py +75 -75
  17. alma/events/emitter.py +285 -284
  18. alma/events/storage_mixin.py +246 -246
  19. alma/events/types.py +126 -126
  20. alma/events/webhook.py +425 -425
  21. alma/exceptions.py +49 -49
  22. alma/extraction/__init__.py +31 -31
  23. alma/extraction/auto_learner.py +265 -265
  24. alma/extraction/extractor.py +420 -420
  25. alma/graph/__init__.py +106 -106
  26. alma/graph/backends/__init__.py +32 -32
  27. alma/graph/backends/kuzu.py +624 -624
  28. alma/graph/backends/memgraph.py +432 -432
  29. alma/graph/backends/memory.py +236 -236
  30. alma/graph/backends/neo4j.py +417 -417
  31. alma/graph/base.py +159 -159
  32. alma/graph/extraction.py +198 -198
  33. alma/graph/store.py +860 -860
  34. alma/harness/__init__.py +35 -35
  35. alma/harness/base.py +386 -386
  36. alma/harness/domains.py +705 -705
  37. alma/initializer/__init__.py +37 -37
  38. alma/initializer/initializer.py +418 -418
  39. alma/initializer/types.py +250 -250
  40. alma/integration/__init__.py +62 -62
  41. alma/integration/claude_agents.py +444 -444
  42. alma/integration/helena.py +423 -423
  43. alma/integration/victor.py +471 -471
  44. alma/learning/__init__.py +101 -86
  45. alma/learning/decay.py +878 -0
  46. alma/learning/forgetting.py +1446 -1446
  47. alma/learning/heuristic_extractor.py +390 -390
  48. alma/learning/protocols.py +374 -374
  49. alma/learning/validation.py +346 -346
  50. alma/mcp/__init__.py +123 -45
  51. alma/mcp/__main__.py +156 -156
  52. alma/mcp/resources.py +122 -122
  53. alma/mcp/server.py +955 -591
  54. alma/mcp/tools.py +3254 -509
  55. alma/observability/__init__.py +91 -84
  56. alma/observability/config.py +302 -302
  57. alma/observability/guidelines.py +170 -0
  58. alma/observability/logging.py +424 -424
  59. alma/observability/metrics.py +583 -583
  60. alma/observability/tracing.py +440 -440
  61. alma/progress/__init__.py +21 -21
  62. alma/progress/tracker.py +607 -607
  63. alma/progress/types.py +250 -250
  64. alma/retrieval/__init__.py +134 -53
  65. alma/retrieval/budget.py +525 -0
  66. alma/retrieval/cache.py +1304 -1061
  67. alma/retrieval/embeddings.py +202 -202
  68. alma/retrieval/engine.py +850 -427
  69. alma/retrieval/modes.py +365 -0
  70. alma/retrieval/progressive.py +560 -0
  71. alma/retrieval/scoring.py +344 -344
  72. alma/retrieval/trust_scoring.py +637 -0
  73. alma/retrieval/verification.py +797 -0
  74. alma/session/__init__.py +19 -19
  75. alma/session/manager.py +442 -399
  76. alma/session/types.py +288 -288
  77. alma/storage/__init__.py +101 -90
  78. alma/storage/archive.py +233 -0
  79. alma/storage/azure_cosmos.py +1259 -1259
  80. alma/storage/base.py +1083 -583
  81. alma/storage/chroma.py +1443 -1443
  82. alma/storage/constants.py +103 -103
  83. alma/storage/file_based.py +614 -614
  84. alma/storage/migrations/__init__.py +21 -21
  85. alma/storage/migrations/base.py +321 -321
  86. alma/storage/migrations/runner.py +323 -323
  87. alma/storage/migrations/version_stores.py +337 -337
  88. alma/storage/migrations/versions/__init__.py +11 -11
  89. alma/storage/migrations/versions/v1_0_0.py +373 -373
  90. alma/storage/migrations/versions/v1_1_0_workflow_context.py +551 -0
  91. alma/storage/pinecone.py +1080 -1080
  92. alma/storage/postgresql.py +1948 -1559
  93. alma/storage/qdrant.py +1306 -1306
  94. alma/storage/sqlite_local.py +3041 -1457
  95. alma/testing/__init__.py +46 -46
  96. alma/testing/factories.py +301 -301
  97. alma/testing/mocks.py +389 -389
  98. alma/types.py +292 -264
  99. alma/utils/__init__.py +19 -0
  100. alma/utils/tokenizer.py +521 -0
  101. alma/workflow/__init__.py +83 -0
  102. alma/workflow/artifacts.py +170 -0
  103. alma/workflow/checkpoint.py +311 -0
  104. alma/workflow/context.py +228 -0
  105. alma/workflow/outcomes.py +189 -0
  106. alma/workflow/reducers.py +393 -0
  107. {alma_memory-0.5.1.dist-info → alma_memory-0.7.0.dist-info}/METADATA +210 -72
  108. alma_memory-0.7.0.dist-info/RECORD +112 -0
  109. alma_memory-0.5.1.dist-info/RECORD +0 -93
  110. {alma_memory-0.5.1.dist-info → alma_memory-0.7.0.dist-info}/WHEEL +0 -0
  111. {alma_memory-0.5.1.dist-info → alma_memory-0.7.0.dist-info}/top_level.txt +0 -0
alma/graph/__init__.py CHANGED
@@ -1,106 +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", "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}")
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}")
@@ -1,32 +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
- - 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
- ]
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
+ ]