alma-memory 0.5.0__tar.gz → 0.7.0__tar.gz

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 (125) hide show
  1. {alma_memory-0.5.0 → alma_memory-0.7.0}/PKG-INFO +244 -72
  2. {alma_memory-0.5.0 → alma_memory-0.7.0}/README.md +1017 -849
  3. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/__init__.py +296 -194
  4. alma_memory-0.7.0/alma/compression/__init__.py +33 -0
  5. alma_memory-0.7.0/alma/compression/pipeline.py +980 -0
  6. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/confidence/__init__.py +47 -47
  7. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/confidence/engine.py +540 -540
  8. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/confidence/types.py +351 -351
  9. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/config/loader.py +157 -157
  10. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/consolidation/__init__.py +23 -23
  11. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/consolidation/engine.py +678 -678
  12. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/consolidation/prompts.py +84 -84
  13. alma_memory-0.7.0/alma/core.py +1189 -0
  14. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/domains/__init__.py +30 -30
  15. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/domains/factory.py +359 -359
  16. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/domains/schemas.py +448 -448
  17. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/domains/types.py +272 -272
  18. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/events/__init__.py +75 -75
  19. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/events/emitter.py +285 -284
  20. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/events/storage_mixin.py +246 -246
  21. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/events/types.py +126 -126
  22. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/events/webhook.py +425 -425
  23. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/exceptions.py +49 -49
  24. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/extraction/__init__.py +31 -31
  25. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/extraction/auto_learner.py +265 -264
  26. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/extraction/extractor.py +420 -420
  27. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/graph/__init__.py +106 -81
  28. alma_memory-0.7.0/alma/graph/backends/__init__.py +32 -0
  29. alma_memory-0.7.0/alma/graph/backends/kuzu.py +624 -0
  30. alma_memory-0.7.0/alma/graph/backends/memgraph.py +432 -0
  31. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/graph/backends/memory.py +236 -236
  32. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/graph/backends/neo4j.py +417 -417
  33. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/graph/base.py +159 -159
  34. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/graph/extraction.py +198 -198
  35. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/graph/store.py +860 -860
  36. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/harness/__init__.py +35 -35
  37. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/harness/base.py +386 -386
  38. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/harness/domains.py +705 -705
  39. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/initializer/__init__.py +37 -37
  40. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/initializer/initializer.py +418 -418
  41. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/initializer/types.py +250 -250
  42. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/integration/__init__.py +62 -62
  43. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/integration/claude_agents.py +444 -432
  44. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/integration/helena.py +423 -423
  45. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/integration/victor.py +471 -471
  46. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/learning/__init__.py +101 -86
  47. alma_memory-0.7.0/alma/learning/decay.py +878 -0
  48. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/learning/forgetting.py +1446 -1446
  49. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/learning/heuristic_extractor.py +390 -390
  50. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/learning/protocols.py +374 -374
  51. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/learning/validation.py +346 -346
  52. alma_memory-0.7.0/alma/mcp/__init__.py +123 -0
  53. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/mcp/__main__.py +156 -156
  54. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/mcp/resources.py +122 -122
  55. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/mcp/server.py +955 -591
  56. alma_memory-0.7.0/alma/mcp/tools.py +3254 -0
  57. alma_memory-0.7.0/alma/observability/__init__.py +91 -0
  58. alma_memory-0.7.0/alma/observability/config.py +302 -0
  59. alma_memory-0.7.0/alma/observability/guidelines.py +170 -0
  60. alma_memory-0.7.0/alma/observability/logging.py +424 -0
  61. alma_memory-0.7.0/alma/observability/metrics.py +583 -0
  62. alma_memory-0.7.0/alma/observability/tracing.py +440 -0
  63. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/progress/__init__.py +21 -21
  64. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/progress/tracker.py +607 -607
  65. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/progress/types.py +250 -250
  66. alma_memory-0.7.0/alma/retrieval/__init__.py +134 -0
  67. alma_memory-0.7.0/alma/retrieval/budget.py +525 -0
  68. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/retrieval/cache.py +1304 -1061
  69. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/retrieval/embeddings.py +202 -202
  70. alma_memory-0.7.0/alma/retrieval/engine.py +850 -0
  71. alma_memory-0.7.0/alma/retrieval/modes.py +365 -0
  72. alma_memory-0.7.0/alma/retrieval/progressive.py +560 -0
  73. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/retrieval/scoring.py +344 -344
  74. alma_memory-0.7.0/alma/retrieval/trust_scoring.py +637 -0
  75. alma_memory-0.7.0/alma/retrieval/verification.py +797 -0
  76. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/session/__init__.py +19 -19
  77. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/session/manager.py +442 -399
  78. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/session/types.py +288 -288
  79. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/storage/__init__.py +101 -61
  80. alma_memory-0.7.0/alma/storage/archive.py +233 -0
  81. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/storage/azure_cosmos.py +1259 -1048
  82. alma_memory-0.7.0/alma/storage/base.py +1083 -0
  83. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/storage/chroma.py +1443 -1443
  84. alma_memory-0.7.0/alma/storage/constants.py +103 -0
  85. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/storage/file_based.py +614 -619
  86. alma_memory-0.7.0/alma/storage/migrations/__init__.py +21 -0
  87. alma_memory-0.7.0/alma/storage/migrations/base.py +321 -0
  88. alma_memory-0.7.0/alma/storage/migrations/runner.py +323 -0
  89. alma_memory-0.7.0/alma/storage/migrations/version_stores.py +337 -0
  90. alma_memory-0.7.0/alma/storage/migrations/versions/__init__.py +11 -0
  91. alma_memory-0.7.0/alma/storage/migrations/versions/v1_0_0.py +373 -0
  92. alma_memory-0.7.0/alma/storage/migrations/versions/v1_1_0_workflow_context.py +551 -0
  93. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/storage/pinecone.py +1080 -1080
  94. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/storage/postgresql.py +1948 -1452
  95. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/storage/qdrant.py +1306 -1306
  96. alma_memory-0.7.0/alma/storage/sqlite_local.py +3041 -0
  97. alma_memory-0.7.0/alma/testing/__init__.py +46 -0
  98. alma_memory-0.7.0/alma/testing/factories.py +301 -0
  99. alma_memory-0.7.0/alma/testing/mocks.py +389 -0
  100. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/types.py +292 -264
  101. alma_memory-0.7.0/alma/utils/__init__.py +19 -0
  102. alma_memory-0.7.0/alma/utils/tokenizer.py +521 -0
  103. alma_memory-0.7.0/alma/workflow/__init__.py +83 -0
  104. alma_memory-0.7.0/alma/workflow/artifacts.py +170 -0
  105. alma_memory-0.7.0/alma/workflow/checkpoint.py +311 -0
  106. alma_memory-0.7.0/alma/workflow/context.py +228 -0
  107. alma_memory-0.7.0/alma/workflow/outcomes.py +189 -0
  108. alma_memory-0.7.0/alma/workflow/reducers.py +393 -0
  109. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma_memory.egg-info/PKG-INFO +244 -72
  110. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma_memory.egg-info/SOURCES.txt +36 -0
  111. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma_memory.egg-info/requires.txt +6 -1
  112. {alma_memory-0.5.0 → alma_memory-0.7.0}/pyproject.toml +161 -154
  113. alma_memory-0.5.0/alma/core.py +0 -322
  114. alma_memory-0.5.0/alma/graph/backends/__init__.py +0 -18
  115. alma_memory-0.5.0/alma/mcp/__init__.py +0 -45
  116. alma_memory-0.5.0/alma/mcp/tools.py +0 -511
  117. alma_memory-0.5.0/alma/retrieval/__init__.py +0 -53
  118. alma_memory-0.5.0/alma/retrieval/engine.py +0 -366
  119. alma_memory-0.5.0/alma/storage/base.py +0 -525
  120. alma_memory-0.5.0/alma/storage/sqlite_local.py +0 -1358
  121. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/config/__init__.py +0 -0
  122. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma/py.typed +0 -0
  123. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma_memory.egg-info/dependency_links.txt +0 -0
  124. {alma_memory-0.5.0 → alma_memory-0.7.0}/alma_memory.egg-info/top_level.txt +0 -0
  125. {alma_memory-0.5.0 → alma_memory-0.7.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alma-memory
3
- Version: 0.5.0
3
+ Version: 0.7.0
4
4
  Summary: Agent Learning Memory Architecture - Persistent memory for AI agents
5
5
  Author-email: RBKunnela <aiagentsprompt@gmail.com>
6
6
  License: MIT
@@ -41,6 +41,10 @@ Requires-Dist: pinecone>=3.0.0; extra == "pinecone"
41
41
  Provides-Extra: mcp
42
42
  Requires-Dist: pydantic>=2.0.0; extra == "mcp"
43
43
  Requires-Dist: aiohttp>=3.9.0; extra == "mcp"
44
+ Provides-Extra: observability
45
+ Requires-Dist: opentelemetry-api>=1.20.0; extra == "observability"
46
+ Requires-Dist: opentelemetry-sdk>=1.20.0; extra == "observability"
47
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.20.0; extra == "observability"
44
48
  Provides-Extra: dev
45
49
  Requires-Dist: pytest>=7.0.0; extra == "dev"
46
50
  Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
@@ -52,17 +56,70 @@ Requires-Dist: black>=24.0.0; extra == "dev"
52
56
  Requires-Dist: bandit[toml]>=1.7.0; extra == "dev"
53
57
  Requires-Dist: numpy>=1.24.0; extra == "dev"
54
58
  Provides-Extra: all
55
- Requires-Dist: alma-memory[azure,chroma,dev,local,mcp,pinecone,postgres,qdrant]; extra == "all"
59
+ Requires-Dist: alma-memory[azure,chroma,dev,local,mcp,observability,pinecone,postgres,qdrant]; extra == "all"
56
60
 
57
61
  # ALMA - Agent Learning Memory Architecture
58
62
 
59
63
  [![PyPI version](https://badge.fury.io/py/alma-memory.svg)](https://pypi.org/project/alma-memory/)
64
+ [![npm version](https://img.shields.io/badge/npm-v0.6.0-cb3837?logo=npm)](https://github.com/RBKunnela/ALMA-memory/pkgs/npm/alma-memory)
60
65
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
61
66
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
62
67
  [![CI](https://github.com/RBKunnela/ALMA-memory/actions/workflows/ci.yml/badge.svg)](https://github.com/RBKunnela/ALMA-memory/actions/workflows/ci.yml)
63
- [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
68
+ [![Documentation](https://img.shields.io/badge/docs-alma--memory.pages.dev-blue)](https://alma-memory.pages.dev)
69
+ [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-support-yellow?logo=buy-me-a-coffee)](https://buymeacoffee.com/aiagentsprp)
64
70
 
65
- > Persistent memory for AI agents that learn and improve over time - without model weight updates.
71
+ <div align="center">
72
+
73
+ ### 🧠 AI Agents That Actually Learn
74
+
75
+ **Persistent memory for AI agents that improves over time - no fine-tuning required.**
76
+
77
+ [**🌐 Visit alma-memory.pages.dev →**](https://alma-memory.pages.dev)
78
+
79
+ </div>
80
+
81
+ ---
82
+
83
+ **[📖 Documentation](https://alma-memory.pages.dev)** · **[🔧 Technical Reference](docs/TECHNICAL.md)** · **[📦 PyPI](https://pypi.org/project/alma-memory/)** · **[📦 npm](https://github.com/RBKunnela/ALMA-memory/pkgs/npm/alma-memory)** · **[☕ Support](https://buymeacoffee.com/aiagentsprp)**
84
+
85
+ ---
86
+
87
+ ## Looking for a Mem0 Alternative? LangChain Memory Replacement?
88
+
89
+ **ALMA is the answer.** If you've tried Mem0 or LangChain Memory and found them lacking for production AI agents, ALMA was built specifically to solve those gaps:
90
+
91
+ | If you need... | Mem0 | LangChain | **ALMA** |
92
+ |----------------|------|-----------|----------|
93
+ | Scoped learning (agents only learn their domain) | ❌ | ❌ | ✅ |
94
+ | Anti-pattern tracking (what NOT to do) | ❌ | ❌ | ✅ |
95
+ | Multi-agent knowledge sharing | ❌ | ❌ | ✅ |
96
+ | TypeScript/JavaScript SDK | ❌ | ✅ | ✅ |
97
+ | MCP integration (Claude Code) | ❌ | ❌ | ✅ |
98
+ | 6 vector database backends | Limited | Limited | ✅ |
99
+ | Graph memory for relationships | Limited | Limited | ✅ |
100
+ | Workflow checkpoints & state merging | ❌ | ❌ | ✅ |
101
+
102
+ **See detailed comparisons:** [ALMA vs Mem0](https://alma-memory.pages.dev/comparison/mem0-vs-alma.html) · [ALMA vs LangChain Memory](https://alma-memory.pages.dev/comparison/langchain-memory-vs-alma.html)
103
+
104
+ ---
105
+
106
+ ## The Problem I Solved
107
+
108
+ I was building AI agents for automated testing. Helena for frontend QA, Victor for backend verification. They worked great... until they didn't.
109
+
110
+ **The same mistakes kept happening:**
111
+
112
+ - Helena would use `sleep(5000)` for waits, causing flaky tests
113
+ - Victor would forget that the API uses JWT with 24-hour expiry
114
+ - Both agents would repeat failed strategies session after session
115
+
116
+ Every conversation started fresh. No memory. No learning. Just an expensive LLM making the same mistakes I'd already corrected.
117
+
118
+ I tried **Mem0**. It stores memories, but no way to scope what an agent can learn, no anti-pattern tracking, no multi-agent sharing. I looked at **LangChain Memory**. It's for conversation context, not long-term learning.
119
+
120
+ **Nothing fit. So I built ALMA.**
121
+
122
+ The core insight: AI agents don't need to modify their weights to "learn." They need **smart prompts** built from **relevant past experiences.**
66
123
 
67
124
  ---
68
125
 
@@ -79,7 +136,7 @@ ALMA isn't just another memory framework. Here's what sets it apart from alterna
79
136
  | **Event System** | Webhooks + in-process callbacks | None | React to memory changes in real-time |
80
137
  | **TypeScript SDK** | Full-featured client library | None | First-class JavaScript/TypeScript support |
81
138
  | **Vector DB Support** | 6 backends (PostgreSQL, Qdrant, Pinecone, Chroma, SQLite, Azure) | Limited | Deploy anywhere |
82
- | **Graph Memory** | Pluggable backends (Neo4j, In-memory) | Limited | Entity relationship tracking |
139
+ | **Graph Memory** | Pluggable backends (Neo4j, Memgraph, Kuzu, In-memory) | Limited | Entity relationship tracking |
83
140
  | **Harness Pattern** | Decouples agent from domain memory | None | Reusable agent architecture |
84
141
  | **MCP Integration** | Native stdio/HTTP server | None | Direct Claude Code integration |
85
142
  | **Domain Memory Factory** | 6 pre-built schemas | None | Instant setup for any domain |
@@ -87,58 +144,81 @@ ALMA isn't just another memory framework. Here's what sets it apart from alterna
87
144
 
88
145
  **Bottom line:** ALMA is purpose-built for AI agents that need to learn, remember, and improve - not just store and retrieve.
89
146
 
147
+ ### Quick Comparison: ALMA vs Mem0 vs Graphiti
148
+
149
+ | Feature | ALMA | Mem0 | Graphiti |
150
+ |---------|------|------|----------|
151
+ | Memory Scoping | ✅ `can_learn`/`cannot_learn` | ❌ | ❌ |
152
+ | Anti-Pattern Learning | ✅ `why_bad` + `better_alternative` | ❌ | ❌ |
153
+ | Multi-Agent Inheritance | ✅ `inherit_from`/`share_with` | ❌ | ❌ |
154
+ | Multi-Factor Scoring | ✅ 4 factors (similarity + recency + success + confidence) | ❌ similarity only | ❌ similarity only |
155
+ | MCP Integration | ✅ 16 tools | ❌ | ❌ |
156
+ | Workflow Checkpoints | ✅ | ❌ | ❌ |
157
+ | TypeScript SDK | ✅ | ❌ | ❌ |
158
+ | Graph + Vector Hybrid | ✅ | Limited | ✅ |
159
+
160
+ **The key insight:** Most solutions treat memory as "store embeddings, retrieve similar." ALMA treats it as "teach agents to improve within safe boundaries."
161
+
90
162
  ---
91
163
 
92
- ## What's New in v0.5.0
93
-
94
- ### Phase 2: Vector Database Backends
95
-
96
- - **Qdrant Backend** (`alma/storage/qdrant.py`)
97
- - Full StorageBackend implementation with vector similarity search
98
- - Metadata filtering for all queries
99
- - Optimized `MatchAny` queries for multi-agent memory sharing
100
-
101
- - **Pinecone Backend** (`alma/storage/pinecone.py`)
102
- - Namespace-based organization per memory type
103
- - Serverless spec support for automatic scaling
104
- - Environment variable expansion in configuration
105
-
106
- - **Chroma Backend** (`alma/storage/chroma.py`)
107
- - Persistent, client-server, and ephemeral modes
108
- - Native embedding storage and similarity search
109
- - Lightweight local development option
110
-
111
- - **Graph Database Abstraction** (`alma/graph/`)
112
- - Pluggable `GraphBackend` interface
113
- - Neo4j backend for production
114
- - In-memory backend for testing
115
- - Factory function `create_graph_backend()` for easy setup
116
-
117
- ### Phase 1: Core Features
118
-
119
- - **Memory Consolidation Engine** (`alma/consolidation/`)
120
- - LLM-powered deduplication that merges similar memories
121
- - Cosine similarity-based grouping with configurable thresholds
122
- - Provenance tracking (merged_from metadata)
123
- - Dry-run mode for safety
124
-
125
- - **Event System** (`alma/events/`)
126
- - In-process callbacks via `EventEmitter`
127
- - Webhook delivery with HMAC signatures
128
- - Event types: CREATED, UPDATED, DELETED, ACCESSED, CONSOLIDATED
129
- - Retry logic with exponential backoff
130
-
131
- - **TypeScript/JavaScript SDK** (`packages/alma-memory-js/`)
132
- - Full API coverage: retrieve, learn, addPreference, addKnowledge, forget
133
- - Type-safe with comprehensive TypeScript definitions
134
- - Error hierarchy matching Python SDK
135
- - Automatic retry with configurable backoff
136
-
137
- - **Multi-Agent Memory Sharing**
138
- - `inherit_from`: Read memories from other agents
139
- - `share_with`: Make your memories readable by others
140
- - Origin tracking via `metadata['shared_from']`
141
- - Optimized batch queries across agents
164
+ ## What's New in v0.6.0
165
+
166
+ ### Workflow Context Layer
167
+
168
+ The major theme of v0.6.0 is **multi-agent workflow support** - enabling agents to coordinate across long-running tasks with checkpoints, state merging, and artifact tracking.
169
+
170
+ - **Checkpoint & Resume** (`alma/workflow/`)
171
+ - Save workflow state at any point: `alma.checkpoint(workflow_id, state, metadata)`
172
+ - Resume from checkpoints after failures or handoffs: `alma.resume(workflow_id)`
173
+ - Automatic cleanup of old checkpoints: `alma.cleanup_checkpoints(older_than_days=7)`
174
+
175
+ - **State Reducers for Multi-Agent Workflows**
176
+ - Merge states from parallel agents: `alma.merge_states(workflow_id, states, reducer)`
177
+ - Built-in reducers: `latest_wins`, `merge_lists`, `priority_agent`
178
+ - Custom reducer functions for complex merge logic
179
+
180
+ - **Artifact Linking**
181
+ - Link outputs to workflows: `alma.link_artifact(workflow_id, artifact_type, ref)`
182
+ - Artifact types: `code`, `test`, `document`, `config`, `deployment`
183
+ - Retrieve all artifacts: `alma.get_artifacts(workflow_id)`
184
+
185
+ - **Scoped Retrieval**
186
+ - Filter memories by workflow context: `alma.retrieve_scoped(query, scope)`
187
+ - Scopes: `workflow_only`, `agent_only`, `project_wide`
188
+
189
+ - **Session Persistence**
190
+ - Session handoffs now persist to storage backend
191
+ - Lazy loading for performance
192
+ - Survives process restarts
193
+
194
+ - **MCP Workflow Tools** (8 new tools)
195
+ - `alma_consolidate`, `alma_checkpoint`, `alma_resume`
196
+ - `alma_merge_states`, `alma_workflow_learn`
197
+ - `alma_link_artifact`, `alma_get_artifacts`
198
+ - `alma_cleanup_checkpoints`, `alma_retrieve_scoped`
199
+
200
+ - **TypeScript SDK v0.6.0** (`packages/alma-memory-js/`)
201
+ - Full workflow API parity with Python SDK
202
+ - 9 new methods: `consolidate()`, `checkpoint()`, `resume()`, `mergeStates()`, `workflowLearn()`, `linkArtifact()`, `getArtifacts()`, `cleanupCheckpoints()`, `retrieveScoped()`
203
+ - 25+ new TypeScript types for workflow context
204
+ - Published to GitHub Packages: `@rbkunnela/alma-memory`
205
+
206
+ ### Previous Releases
207
+
208
+ <details>
209
+ <summary>v0.5.0 - Vector Database Backends</summary>
210
+
211
+ - **Qdrant Backend** - Full vector similarity search with metadata filtering
212
+ - **Pinecone Backend** - Serverless spec support, namespace organization
213
+ - **Chroma Backend** - Persistent, client-server, and ephemeral modes
214
+ - **Graph Database Abstraction** - Neo4j, Memgraph, Kuzu, In-memory backends
215
+ - **Testing Module** - MockStorage, MockEmbedder, factory functions
216
+ - **Memory Consolidation Engine** - LLM-powered deduplication
217
+ - **Event System** - Webhooks + in-process callbacks
218
+ - **TypeScript SDK** - Initial release with core API
219
+ - **Multi-Agent Memory Sharing** - inherit_from, share_with
220
+
221
+ </details>
142
222
 
143
223
  See [CHANGELOG.md](CHANGELOG.md) for the complete history.
144
224
 
@@ -194,11 +274,15 @@ pip install alma-memory[azure] # Azure Cosmos DB + Azure OpenAI
194
274
  pip install alma-memory[all]
195
275
  ```
196
276
 
197
- **TypeScript/JavaScript:**
277
+ **TypeScript/JavaScript (via GitHub Packages):**
198
278
  ```bash
199
- npm install alma-memory
279
+ # Configure npm for the scope (one-time)
280
+ echo "@rbkunnela:registry=https://npm.pkg.github.com" >> ~/.npmrc
281
+
282
+ # Install
283
+ npm install @rbkunnela/alma-memory
200
284
  # or
201
- yarn add alma-memory
285
+ yarn add @rbkunnela/alma-memory
202
286
  ```
203
287
 
204
288
  ---
@@ -241,7 +325,7 @@ alma.learn(
241
325
  ### TypeScript/JavaScript
242
326
 
243
327
  ```typescript
244
- import { ALMA } from 'alma-memory';
328
+ import { ALMA } from '@rbkunnela/alma-memory';
245
329
 
246
330
  // Create client
247
331
  const alma = new ALMA({
@@ -434,14 +518,23 @@ Capture entity relationships for complex reasoning:
434
518
  ```python
435
519
  from alma.graph import create_graph_backend, BackendGraphStore, EntityExtractor
436
520
 
437
- # Create graph backend (Neo4j for production, memory for testing)
521
+ # Create graph backend - multiple options available:
522
+
523
+ # Neo4j (production, hosted)
438
524
  backend = create_graph_backend(
439
525
  "neo4j",
440
526
  uri="neo4j+s://xxx.databases.neo4j.io",
441
527
  username="neo4j",
442
528
  password="your-password"
443
529
  )
444
- # Or for testing:
530
+
531
+ # Memgraph (high-performance, in-memory)
532
+ # backend = create_graph_backend("memgraph", uri="bolt://localhost:7687")
533
+
534
+ # Kuzu (embedded, no server required)
535
+ # backend = create_graph_backend("kuzu", database_path="./my_graph_db")
536
+
537
+ # In-memory (testing)
445
538
  # backend = create_graph_backend("memory")
446
539
 
447
540
  # Create store with backend
@@ -516,9 +609,10 @@ python -m alma.mcp --config .alma/config.yaml
516
609
  }
517
610
  ```
518
611
 
519
- **Available MCP Tools:**
520
- | Tool | Description |
521
- |------|-------------|
612
+ **Available MCP Tools (16 total):**
613
+
614
+ | Core Tools | Description |
615
+ |------------|-------------|
522
616
  | `alma_retrieve` | Get memories for a task |
523
617
  | `alma_learn` | Record task outcome |
524
618
  | `alma_add_preference` | Add user preference |
@@ -527,6 +621,18 @@ python -m alma.mcp --config .alma/config.yaml
527
621
  | `alma_stats` | Get memory statistics |
528
622
  | `alma_health` | Health check |
529
623
 
624
+ | Workflow Tools (v0.6.0) | Description |
625
+ |-------------------------|-------------|
626
+ | `alma_consolidate` | Merge similar memories |
627
+ | `alma_checkpoint` | Save workflow state |
628
+ | `alma_resume` | Resume from checkpoint |
629
+ | `alma_merge_states` | Merge parallel agent states |
630
+ | `alma_workflow_learn` | Learn with workflow context |
631
+ | `alma_link_artifact` | Link output to workflow |
632
+ | `alma_get_artifacts` | Get workflow artifacts |
633
+ | `alma_cleanup_checkpoints` | Clean old checkpoints |
634
+ | `alma_retrieve_scoped` | Scoped memory retrieval |
635
+
530
636
  ---
531
637
 
532
638
  ## Advanced Features
@@ -657,7 +763,7 @@ print(f"Recommendation: {signal.recommendation}")
657
763
 
658
764
  ```
659
765
  +-------------------------------------------------------------------------+
660
- | ALMA v0.5.0 |
766
+ | ALMA v0.6.0 |
661
767
  +-------------------------------------------------------------------------+
662
768
  | HARNESS LAYER |
663
769
  | +-----------+ +-----------+ +-----------+ +----------------+ |
@@ -693,9 +799,12 @@ print(f"Recommendation: {signal.recommendation}")
693
799
  | +---------------+ +------------------+ +---------------+ |
694
800
  +-------------------------------------------------------------------------+
695
801
  | GRAPH LAYER |
696
- | +---------------+ +------------------+ |
697
- | | Neo4j | | In-Memory | |
698
- | +---------------+ +------------------+ |
802
+ | +---------------+ +------------------+ +---------------+ |
803
+ | | Neo4j | | Memgraph | | Kuzu | |
804
+ | +---------------+ +------------------+ +---------------+ |
805
+ | +---------------+ |
806
+ | | In-Memory | |
807
+ | +---------------+ |
699
808
  +-------------------------------------------------------------------------+
700
809
  | INTEGRATION LAYER |
701
810
  | +-------------------------------------------------------------------+ |
@@ -819,6 +928,12 @@ chroma:
819
928
  | Pinecone Backend | Serverless vector DB | Done |
820
929
  | Chroma Backend | Lightweight vector DB | Done |
821
930
  | Graph Abstraction | Pluggable graph backends | Done |
931
+ | Testing Module | Mocks and factories for testing | Done |
932
+ | Workflow Context | Checkpoints, state merging, artifacts | Done |
933
+ | Session Persistence | Persistent session handoffs | Done |
934
+ | Scoped Retrieval | Filter by workflow/agent/project | Done |
935
+ | MCP Workflow Tools | 8 additional MCP tools | Done |
936
+ | TypeScript SDK v0.6.0 | Full workflow API support | Done |
822
937
 
823
938
  ---
824
939
 
@@ -850,6 +965,16 @@ docker run -p 6333:6333 qdrant/qdrant
850
965
  - Ensure `embedding_dim` in config matches your embedding provider
851
966
  - Local: 384, Azure text-embedding-3-small: 1536
852
967
 
968
+ **Memgraph connection refused**
969
+ ```bash
970
+ # Start Memgraph with Docker
971
+ docker run -p 7687:7687 memgraph/memgraph-mage
972
+ ```
973
+
974
+ **Kuzu database locked**
975
+ - Ensure only one process accesses the database at a time
976
+ - Use `read_only=True` for concurrent read access
977
+
853
978
  ### Debug Logging
854
979
 
855
980
  ```python
@@ -873,11 +998,18 @@ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
873
998
 
874
999
  ## Roadmap
875
1000
 
876
- **Completed:**
1001
+ **Completed (v0.6.0):**
1002
+ - Workflow context layer (checkpoints, state merging, artifacts)
1003
+ - Session persistence
1004
+ - Scoped retrieval
1005
+ - MCP workflow tools (8 new tools)
1006
+ - TypeScript SDK v0.6.0 with full workflow support
1007
+
1008
+ **Completed (v0.5.0):**
877
1009
  - Multi-agent memory sharing
878
1010
  - Memory consolidation engine
879
1011
  - Event system / webhooks
880
- - TypeScript SDK
1012
+ - TypeScript SDK (initial)
881
1013
  - Qdrant, Pinecone, Chroma backends
882
1014
  - Graph database abstraction
883
1015
 
@@ -896,10 +1028,50 @@ MIT
896
1028
 
897
1029
  ---
898
1030
 
899
- ## Star History
1031
+ ## Support the Project
1032
+
1033
+ If ALMA helps your AI agents get smarter:
1034
+
1035
+ - **Star this repo** - It helps others discover ALMA
1036
+ - **[Buy me a coffee](https://buymeacoffee.com/aiagentsprp)** - Support continued development
1037
+ - **[Sponsor on GitHub](https://github.com/sponsors/RBKunnela)** - Become an official sponsor
1038
+ - **Contribute** - PRs welcome! See [CONTRIBUTING.md](CONTRIBUTING.md)
1039
+
1040
+ ---
1041
+
1042
+ ## Links
900
1043
 
901
- If ALMA helps your AI agents get smarter, consider giving us a star!
1044
+ - **Documentation:** [alma-memory.pages.dev](https://alma-memory.pages.dev)
1045
+ - **PyPI:** [pypi.org/project/alma-memory](https://pypi.org/project/alma-memory/)
1046
+ - **npm:** [@rbkunnela/alma-memory](https://github.com/RBKunnela/ALMA-memory/pkgs/npm/alma-memory)
1047
+ - **Issues:** [GitHub Issues](https://github.com/RBKunnela/ALMA-memory/issues)
902
1048
 
903
1049
  ---
904
1050
 
905
1051
  **Built for AI agents that get better with every task.**
1052
+
1053
+ *Created by [@RBKunnela](https://github.com/RBKunnela)*
1054
+
1055
+ ---
1056
+
1057
+ ## Technical Documentation
1058
+
1059
+ For detailed technical reference including architecture diagrams, API specifications, storage backend configuration, and performance tuning, see the **[Technical Documentation](docs/TECHNICAL.md)**.
1060
+
1061
+ ---
1062
+
1063
+ ## Share ALMA
1064
+
1065
+ Help other developers discover ALMA:
1066
+
1067
+ - **Twitter/X:** "Just found @ALMA_Memory - finally an AI agent memory framework that actually works. Scoped learning, anti-patterns, multi-agent sharing. Way better than Mem0. https://alma-memory.pages.dev"
1068
+ - **LinkedIn:** Share how ALMA improved your AI agent workflows
1069
+ - **Reddit:** Post in r/MachineLearning, r/LocalLLaMA, r/ClaudeAI, r/artificial
1070
+ - **Hacker News:** Submit the landing page - we'd love your upvotes!
1071
+ - **Dev.to / Medium:** Write about your experience using ALMA
1072
+
1073
+ ---
1074
+
1075
+ ## Keywords
1076
+
1077
+ *AI agent memory, persistent memory for LLMs, Mem0 alternative, LangChain memory replacement, agent learning framework, MCP memory server, Claude Code memory, vector database for agents, pgvector memory, Qdrant memory, Pinecone memory, multi-agent memory sharing, AI memory architecture, semantic memory for AI, long-term memory AI agents, memory-augmented AI, retrieval-augmented generation, RAG memory, agentic memory system*