alma-memory 0.4.0__py3-none-any.whl → 0.5.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 +88 -44
- alma/confidence/__init__.py +1 -1
- alma/confidence/engine.py +92 -58
- alma/confidence/types.py +34 -14
- alma/config/loader.py +3 -2
- alma/consolidation/__init__.py +23 -0
- alma/consolidation/engine.py +678 -0
- alma/consolidation/prompts.py +84 -0
- alma/core.py +15 -15
- alma/domains/__init__.py +6 -6
- alma/domains/factory.py +12 -9
- alma/domains/schemas.py +17 -3
- alma/domains/types.py +8 -4
- alma/events/__init__.py +75 -0
- alma/events/emitter.py +284 -0
- alma/events/storage_mixin.py +246 -0
- alma/events/types.py +126 -0
- alma/events/webhook.py +425 -0
- alma/exceptions.py +49 -0
- alma/extraction/__init__.py +31 -0
- alma/extraction/auto_learner.py +264 -0
- alma/extraction/extractor.py +420 -0
- alma/graph/__init__.py +81 -0
- alma/graph/backends/__init__.py +18 -0
- alma/graph/backends/memory.py +236 -0
- alma/graph/backends/neo4j.py +417 -0
- alma/graph/base.py +159 -0
- alma/graph/extraction.py +198 -0
- alma/graph/store.py +860 -0
- alma/harness/__init__.py +4 -4
- alma/harness/base.py +18 -9
- alma/harness/domains.py +27 -11
- alma/initializer/__init__.py +1 -1
- alma/initializer/initializer.py +51 -43
- alma/initializer/types.py +25 -17
- alma/integration/__init__.py +9 -9
- alma/integration/claude_agents.py +10 -10
- alma/integration/helena.py +32 -22
- alma/integration/victor.py +57 -33
- alma/learning/__init__.py +27 -27
- alma/learning/forgetting.py +198 -148
- alma/learning/heuristic_extractor.py +40 -24
- alma/learning/protocols.py +62 -14
- alma/learning/validation.py +7 -2
- alma/mcp/__init__.py +4 -4
- alma/mcp/__main__.py +2 -1
- alma/mcp/resources.py +17 -16
- alma/mcp/server.py +102 -44
- alma/mcp/tools.py +174 -37
- alma/progress/__init__.py +3 -3
- alma/progress/tracker.py +26 -20
- alma/progress/types.py +8 -12
- alma/py.typed +0 -0
- alma/retrieval/__init__.py +11 -11
- alma/retrieval/cache.py +20 -21
- alma/retrieval/embeddings.py +4 -4
- alma/retrieval/engine.py +114 -35
- alma/retrieval/scoring.py +73 -63
- alma/session/__init__.py +2 -2
- alma/session/manager.py +5 -5
- alma/session/types.py +5 -4
- alma/storage/__init__.py +41 -0
- alma/storage/azure_cosmos.py +101 -31
- alma/storage/base.py +157 -4
- alma/storage/chroma.py +1443 -0
- alma/storage/file_based.py +56 -20
- alma/storage/pinecone.py +1080 -0
- alma/storage/postgresql.py +1452 -0
- alma/storage/qdrant.py +1306 -0
- alma/storage/sqlite_local.py +376 -31
- alma/types.py +62 -14
- alma_memory-0.5.0.dist-info/METADATA +905 -0
- alma_memory-0.5.0.dist-info/RECORD +76 -0
- {alma_memory-0.4.0.dist-info → alma_memory-0.5.0.dist-info}/WHEEL +1 -1
- alma_memory-0.4.0.dist-info/METADATA +0 -488
- alma_memory-0.4.0.dist-info/RECORD +0 -52
- {alma_memory-0.4.0.dist-info → alma_memory-0.5.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
alma/__init__.py,sha256=XJ-yrVNtw5A12ZU5Yc16h5_m7eDdiTnpQRqn9YCkFas,3932
|
|
2
|
+
alma/core.py,sha256=AwTiX44nWk_Es3Sz5jR6nyF64-8O6j9Btjqsn7fcxJg,9688
|
|
3
|
+
alma/exceptions.py,sha256=chGNPmOUWJnx-9-fAtBZIBLBeFmINTHuzqsejt_rrk4,873
|
|
4
|
+
alma/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
alma/types.py,sha256=708rjkZwOfI7PgvfK0N2UyIMpjzi6Jf0vVilfEyWKbM,8167
|
|
6
|
+
alma/confidence/__init__.py,sha256=-XvCT7gmO5ewWvUAPhZb4XBZN2tw4OGUMMz3FHTzrSw,1200
|
|
7
|
+
alma/confidence/engine.py,sha256=LunulwFhvV8TJ4mO73jrTY75Bhid4d9TfSP53CyylqI,18210
|
|
8
|
+
alma/confidence/types.py,sha256=iIzJ1QnU4RMBtD6LIVNPsjVs-PC4pFO_72O40axfgRc,11552
|
|
9
|
+
alma/config/__init__.py,sha256=MQ7zjiIFlUnjeI_Nxn4ig0HAmYeUuS7_FVNjYi8Ik3A,99
|
|
10
|
+
alma/config/loader.py,sha256=v9MLfYcxrrb1qD3yfjczaSzAwXFl56eVrmzCe6_f00Y,4875
|
|
11
|
+
alma/consolidation/__init__.py,sha256=XGUL6AwOsjXx2kuTb5PdDTDGoqSyBbjBC_ppuymCcgU,609
|
|
12
|
+
alma/consolidation/engine.py,sha256=i7YI4nji0SrrnRSqUCHOP8_Cg4ttVeXPuPS4EUazAP0,23320
|
|
13
|
+
alma/consolidation/prompts.py,sha256=KKkTAliVjf-blzkej1REQUsNh533LIdXsJz-mbHJCx8,3020
|
|
14
|
+
alma/domains/__init__.py,sha256=QBVMKWOGVWXA98RiHv-fPjOKczwG5Y7wS1yQQqO3BTQ,623
|
|
15
|
+
alma/domains/factory.py,sha256=UZRYnI5jL7gT_8e0BQKcdQeSpmOxsusxWh4g26ybHCY,10838
|
|
16
|
+
alma/domains/schemas.py,sha256=ByworPVE_JiUh84vTwxGlQY3f0ID4nnGzuTuus45Ga0,13176
|
|
17
|
+
alma/domains/types.py,sha256=E5jyQdUA2MbxJUkaKDJhDw6vmdtlbDOfvdArSIUkdrg,9027
|
|
18
|
+
alma/events/__init__.py,sha256=UbmiG_fB9gXYcjBZhfwYuTyY2b85uKA5gxuCivstf1o,1748
|
|
19
|
+
alma/events/emitter.py,sha256=lpczJvIfU2S8nuJ-t26PcZ3Lvf2KT0NikSR-lNq_0FA,8801
|
|
20
|
+
alma/events/storage_mixin.py,sha256=t4Y1BCv3CTz_0FoJtAblf4s_qIWK3hrNAH4CLqc2DTo,7654
|
|
21
|
+
alma/events/types.py,sha256=DGJe8W5DNs8SHYRbwdgV7OoRF952HoEVz0T9dv5A-LA,3795
|
|
22
|
+
alma/events/webhook.py,sha256=eavcXDTYKYu3GueDrAd0L8JFUkLczjNgmZJpiia0Rvw,12983
|
|
23
|
+
alma/extraction/__init__.py,sha256=2ZYxMAjjbgvWvtMn4flCsFla7OSR45bMtuUDuRRlG9E,597
|
|
24
|
+
alma/extraction/auto_learner.py,sha256=B7qMcJ-wR69aHaYPr9D8SURBAAkwq4AXhJ44nJhED2Y,9117
|
|
25
|
+
alma/extraction/extractor.py,sha256=2VC4tcnHAF1zjax7MI09jb9Q3dUmWxFeBLOMd-7Aj1E,13160
|
|
26
|
+
alma/graph/__init__.py,sha256=KyC2wWBN9bivwL7yDOpkKfMXOSU8zLFFurMS2BxfReE,1903
|
|
27
|
+
alma/graph/base.py,sha256=A3yqNI4DiY0D3MuNaa6Sv41hfzzqwrs38ahs6qcaD-g,4042
|
|
28
|
+
alma/graph/extraction.py,sha256=Esb4jRHAJxE3QRutSpasMmRKq_MMDQtcMOnHeahLcZY,6063
|
|
29
|
+
alma/graph/store.py,sha256=V9KjfFaKagOxD2FYITrjnQgDdu9U2z4wetHBnXhqROc,28450
|
|
30
|
+
alma/graph/backends/__init__.py,sha256=IKewfN2G0QJfmPBJePHCkfVILq1PY5ehggMeJziX_Os,421
|
|
31
|
+
alma/graph/backends/memory.py,sha256=qdb8ixGHZKMqs6673sCJORteD6KaTLDpXhs8fJS2oQs,8218
|
|
32
|
+
alma/graph/backends/neo4j.py,sha256=gSL813Et0lEx8zrLv6R5mgq651ZMcnJPN__iPhF561o,14347
|
|
33
|
+
alma/harness/__init__.py,sha256=ZuORMt41ArCXlLcrpaCuHW3BUvH27YcxWRnqQ6ZXiMo,684
|
|
34
|
+
alma/harness/base.py,sha256=8t44wBD8tL8Zb14PVnxHjOei_3ATieiVNNbVu3c0mz4,11206
|
|
35
|
+
alma/harness/domains.py,sha256=0U81P7DYfWw7bGV8MmngICU5ZCsdeA6coc7p-PABLE8,25926
|
|
36
|
+
alma/initializer/__init__.py,sha256=VhG5hSgdselyToBnvixcyjrTtsnNhVvWdi7kfUVc0RM,826
|
|
37
|
+
alma/initializer/initializer.py,sha256=2SyHgreopClPQ0loyA29lcJp_pK1ssubK2529cQk8hc,13204
|
|
38
|
+
alma/initializer/types.py,sha256=ADeWwyqiG9uI0DkukDNGA81JNeCPfY6m__LsKgXQmZA,7875
|
|
39
|
+
alma/integration/__init__.py,sha256=YhJSurb10eOlh227HqqgCtzayDljbmjI2dn347HVua0,1276
|
|
40
|
+
alma/integration/claude_agents.py,sha256=-256HWoG7Z-g6Kgx21QBnEa_GBpkZ37fr9NwiJH67Ec,13263
|
|
41
|
+
alma/integration/helena.py,sha256=BcTvac8vGmbHwogAbNMQsZssMOlBT-DxwLKWPfPXie4,12099
|
|
42
|
+
alma/integration/victor.py,sha256=DR_6RLj1hpNHnTUC5jhWo59WQr7qDF6VOtn98cyxhoo,13527
|
|
43
|
+
alma/learning/__init__.py,sha256=XH3H-vEMY1TOBQxiC3H6c_iWtzR8xrQH9PqQL1vv6b4,1870
|
|
44
|
+
alma/learning/forgetting.py,sha256=TSBZ0Ad8hJEIPXteXse78czyPQBDEiPgNAvkH__e9bg,46546
|
|
45
|
+
alma/learning/heuristic_extractor.py,sha256=FO-TIS1NQZUdQXuD924-2odw7GQETRxchxjxk-fzYGs,12084
|
|
46
|
+
alma/learning/protocols.py,sha256=0x3wi4xeMRBBJVRJ-9mXIemFirQfh1-pM7-9Apz2Kho,12229
|
|
47
|
+
alma/learning/validation.py,sha256=i_-TmoDyBXVHjAiEQnb1QtliuLxNsbxwud3C0IoaHjY,11065
|
|
48
|
+
alma/mcp/__init__.py,sha256=Qr913n8XG02abbBs78mMKKLo3VzVJMt71TehAhuhqrE,947
|
|
49
|
+
alma/mcp/__main__.py,sha256=ySdPB2MK-Mau6ofOlAsIv-jIXuyMpUpJuoNbj-GEqwA,3954
|
|
50
|
+
alma/mcp/resources.py,sha256=5YxoTCgzBzFoP07US_ZuBPnrL7F0t9WAX5Cins7XJf8,3499
|
|
51
|
+
alma/mcp/server.py,sha256=5qBk35JDvWwh6e8xNl7mj_L7O3NpfeRkPqo_Mm7k7pk,21541
|
|
52
|
+
alma/mcp/tools.py,sha256=Wwq2aFDnnSLDhTAzHbnujC4PJLvCIhqPf-_mQnwSBj0,14585
|
|
53
|
+
alma/progress/__init__.py,sha256=0VqMDlICHRHrYFAp-HzNVaN1JikST--kFGDd7803WGk,371
|
|
54
|
+
alma/progress/tracker.py,sha256=0E7YghcEHiw1Gorm28ON7SBOlVb7SXSHUHy8cGeMg0k,19290
|
|
55
|
+
alma/progress/types.py,sha256=sxouhkNO6OLmDuhrPnn6uqEEwOj6nLZeRh-krgTh4nA,7026
|
|
56
|
+
alma/retrieval/__init__.py,sha256=htuoJ-jiaUooA3bdc9DEcgfpNHlqlqGqiKgdjwq9y1Y,1006
|
|
57
|
+
alma/retrieval/cache.py,sha256=l1VY2k6OzvrFxJfzkZ1rch9zWfl2-80pttgW_11sxbc,34585
|
|
58
|
+
alma/retrieval/embeddings.py,sha256=XwTjPnnfW4VB9FGN3FQ_nWZ1hAaJLufXNZYbWMwkct0,6496
|
|
59
|
+
alma/retrieval/engine.py,sha256=AH4junHgWbzWYD5kqHvcxQW_YuRfHl_dBtGbEJD4egQ,13016
|
|
60
|
+
alma/retrieval/scoring.py,sha256=WaMu4HN5ui9y0yV8AKEcix0xvav4mvXV7rn8ihAYURw,10350
|
|
61
|
+
alma/session/__init__.py,sha256=4LWuYdF8N5XxcmVZA8verJV5XF_eRCgU-M_0Hkfovgg,352
|
|
62
|
+
alma/session/manager.py,sha256=U_a2_1VySD_QwJY6tyukko4pHDcxQaLzUZmgUH4I2W4,12638
|
|
63
|
+
alma/session/types.py,sha256=VIIE330GiWAkWN4SaJhUa_BrpEdLMWIbUvTRciT6C8I,9501
|
|
64
|
+
alma/storage/__init__.py,sha256=CwH7w9O-OGpC1osh-UxmWao6fJmmMyaGeCSpjfbrE-c,1520
|
|
65
|
+
alma/storage/azure_cosmos.py,sha256=cw2jkATSurLmRJScIHnMFFCeknQDAep5izB_ByiwahI,35345
|
|
66
|
+
alma/storage/base.py,sha256=jdkNCKLId99nLWrWNdSDfpu09r4Raapz245OfOaA3RA,14175
|
|
67
|
+
alma/storage/chroma.py,sha256=Csim64cbtX_z6g2fsy91xEpnsRGQ_Llb8vu7QOOJ-lE,51218
|
|
68
|
+
alma/storage/file_based.py,sha256=NaDytkeBRmreGsH8_F62UFiTLheuhRTSAQSAeBbuWsg,22249
|
|
69
|
+
alma/storage/pinecone.py,sha256=dGgncFgLZUsMRAt6nnlFISDNbsTU0ZFahiTXle08eRk,37904
|
|
70
|
+
alma/storage/postgresql.py,sha256=QLM11lrHp11hEfqbnKWVNtCU8kECy9o2Jk4fQLgKnYY,54477
|
|
71
|
+
alma/storage/qdrant.py,sha256=We74ewKkGdLpfpsZC-40MVLkzrjJHP49xcg7t7aF1Gg,43460
|
|
72
|
+
alma/storage/sqlite_local.py,sha256=aa4ZWqoib7y9Lma1u5ZjAzHxFAk41kgFW4PmTDm9cPI,48854
|
|
73
|
+
alma_memory-0.5.0.dist-info/METADATA,sha256=3vFcHkpOCQb5W0ZEi6hwmWUBQh60olwkA8VNz2NfiKk,28249
|
|
74
|
+
alma_memory-0.5.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
75
|
+
alma_memory-0.5.0.dist-info/top_level.txt,sha256=5oN68LXctTl8a8i1LA-5WqSaP-pDA-J0x1AfCFfLm4A,5
|
|
76
|
+
alma_memory-0.5.0.dist-info/RECORD,,
|
|
@@ -1,488 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: alma-memory
|
|
3
|
-
Version: 0.4.0
|
|
4
|
-
Summary: Agent Learning Memory Architecture - Persistent memory for AI agents
|
|
5
|
-
Author-email: RBKunnela <aiagentsprompt@gmail.com>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/RBKunnela/ALMA-memory
|
|
8
|
-
Project-URL: Documentation, https://github.com/RBKunnela/ALMA-memory/tree/main/docs
|
|
9
|
-
Project-URL: Repository, https://github.com/RBKunnela/ALMA-memory
|
|
10
|
-
Project-URL: Issues, https://github.com/RBKunnela/ALMA-memory/issues
|
|
11
|
-
Keywords: ai,agents,memory,learning,llm,azure,claude
|
|
12
|
-
Classifier: Development Status :: 3 - Alpha
|
|
13
|
-
Classifier: Intended Audience :: Developers
|
|
14
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
-
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
-
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
20
|
-
Requires-Python: >=3.10
|
|
21
|
-
Description-Content-Type: text/markdown
|
|
22
|
-
Requires-Dist: pyyaml>=6.0
|
|
23
|
-
Requires-Dist: python-dotenv>=1.0.0
|
|
24
|
-
Provides-Extra: local
|
|
25
|
-
Requires-Dist: sentence-transformers>=2.2.0; extra == "local"
|
|
26
|
-
Requires-Dist: faiss-cpu>=1.7.4; extra == "local"
|
|
27
|
-
Provides-Extra: azure
|
|
28
|
-
Requires-Dist: azure-cosmos>=4.5.0; extra == "azure"
|
|
29
|
-
Requires-Dist: azure-identity>=1.15.0; extra == "azure"
|
|
30
|
-
Requires-Dist: azure-keyvault-secrets>=4.7.0; extra == "azure"
|
|
31
|
-
Requires-Dist: openai>=1.0.0; extra == "azure"
|
|
32
|
-
Provides-Extra: mcp
|
|
33
|
-
Requires-Dist: pydantic>=2.0.0; extra == "mcp"
|
|
34
|
-
Requires-Dist: aiohttp>=3.9.0; extra == "mcp"
|
|
35
|
-
Provides-Extra: dev
|
|
36
|
-
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
37
|
-
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
38
|
-
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
39
|
-
Requires-Dist: pytest-benchmark>=4.0.0; extra == "dev"
|
|
40
|
-
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
41
|
-
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
42
|
-
Provides-Extra: all
|
|
43
|
-
Requires-Dist: alma-memory[azure,dev,local,mcp]; extra == "all"
|
|
44
|
-
|
|
45
|
-
# ALMA - Agent Learning Memory Architecture
|
|
46
|
-
|
|
47
|
-
[](https://pypi.org/project/alma-memory/)
|
|
48
|
-
[](https://www.python.org/downloads/)
|
|
49
|
-
[](https://opensource.org/licenses/MIT)
|
|
50
|
-
|
|
51
|
-
> Persistent memory for AI agents that learn and improve over time - without model weight updates.
|
|
52
|
-
|
|
53
|
-
## What is ALMA?
|
|
54
|
-
|
|
55
|
-
ALMA is a **memory framework** that makes AI agents appear to "learn" by:
|
|
56
|
-
1. **Storing** outcomes, strategies, and knowledge from past tasks
|
|
57
|
-
2. **Retrieving** relevant memories before each new task
|
|
58
|
-
3. **Injecting** that knowledge into prompts
|
|
59
|
-
4. **Learning** from new outcomes to improve future performance
|
|
60
|
-
|
|
61
|
-
**No fine-tuning. No model changes. Just smarter prompts.**
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
65
|
-
│ BEFORE TASK: Retrieve relevant memories │
|
|
66
|
-
│ ├── "Last time you tested forms, incremental validation worked"│
|
|
67
|
-
│ ├── "User prefers verbose output" │
|
|
68
|
-
│ └── "Don't use sleep() - causes flaky tests" │
|
|
69
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
70
|
-
│ DURING TASK: Agent executes with injected knowledge │
|
|
71
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
72
|
-
│ AFTER TASK: Learn from outcome │
|
|
73
|
-
│ └── Success? → New heuristic. Failure? → Anti-pattern. │
|
|
74
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Installation
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
pip install alma-memory
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Quick Start
|
|
84
|
-
|
|
85
|
-
```python
|
|
86
|
-
from alma import ALMA
|
|
87
|
-
|
|
88
|
-
# Initialize
|
|
89
|
-
alma = ALMA.from_config(".alma/config.yaml")
|
|
90
|
-
|
|
91
|
-
# Before task: Get relevant memories
|
|
92
|
-
memories = alma.retrieve(
|
|
93
|
-
task="Test the login form validation",
|
|
94
|
-
agent="helena",
|
|
95
|
-
top_k=5
|
|
96
|
-
)
|
|
97
|
-
|
|
98
|
-
# Inject into your prompt
|
|
99
|
-
prompt = f"""
|
|
100
|
-
## Your Task
|
|
101
|
-
Test the login form validation
|
|
102
|
-
|
|
103
|
-
## Knowledge from Past Runs
|
|
104
|
-
{memories.to_prompt()}
|
|
105
|
-
"""
|
|
106
|
-
|
|
107
|
-
# After task: Learn from outcome
|
|
108
|
-
alma.learn(
|
|
109
|
-
agent="helena",
|
|
110
|
-
task="Test login form",
|
|
111
|
-
outcome="success",
|
|
112
|
-
strategy_used="Tested empty fields, invalid email, valid submission",
|
|
113
|
-
)
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
## Features
|
|
117
|
-
|
|
118
|
-
### Core Memory System
|
|
119
|
-
|
|
120
|
-
| Feature | Description |
|
|
121
|
-
|---------|-------------|
|
|
122
|
-
| **5 Memory Types** | Heuristics, Outcomes, Preferences, Domain Knowledge, Anti-patterns |
|
|
123
|
-
| **Semantic Search** | Vector similarity for relevant memory retrieval |
|
|
124
|
-
| **Scoped Learning** | Agents only learn from their domain (Helena can't learn backend) |
|
|
125
|
-
| **Confidence Decay** | Old memories fade, recent ones stay strong |
|
|
126
|
-
| **Forgetting** | Automatic cleanup of low-value memories |
|
|
127
|
-
|
|
128
|
-
### Storage Backends
|
|
129
|
-
|
|
130
|
-
| Backend | Use Case | Vector Search |
|
|
131
|
-
|---------|----------|---------------|
|
|
132
|
-
| **SQLite + FAISS** | Local development | Yes |
|
|
133
|
-
| **Azure Cosmos DB** | Production | Yes (native) |
|
|
134
|
-
| **File-based** | Testing/Simple use | No |
|
|
135
|
-
|
|
136
|
-
### Domain Memory Factory (NEW in v0.3.0)
|
|
137
|
-
|
|
138
|
-
Create ALMA instances for any domain - not just coding:
|
|
139
|
-
|
|
140
|
-
```python
|
|
141
|
-
from alma.domains import DomainMemoryFactory, get_research_schema
|
|
142
|
-
|
|
143
|
-
# Pre-built schemas
|
|
144
|
-
factory = DomainMemoryFactory()
|
|
145
|
-
alma = factory.create_alma(get_research_schema(), "my-research-project")
|
|
146
|
-
|
|
147
|
-
# Or create custom domains
|
|
148
|
-
schema = factory.create_schema("sales", {
|
|
149
|
-
"entity_types": [
|
|
150
|
-
{"name": "lead", "attributes": ["stage", "value"]},
|
|
151
|
-
{"name": "objection", "attributes": ["type", "response"]},
|
|
152
|
-
],
|
|
153
|
-
"learning_categories": [
|
|
154
|
-
"objection_handling",
|
|
155
|
-
"closing_techniques",
|
|
156
|
-
"qualification_patterns",
|
|
157
|
-
],
|
|
158
|
-
})
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
**Pre-built schemas:** `coding`, `research`, `sales`, `general`, `customer_support`, `content_creation`
|
|
162
|
-
|
|
163
|
-
### Progress Tracking (NEW in v0.3.0)
|
|
164
|
-
|
|
165
|
-
Track work items and get intelligent next-task suggestions:
|
|
166
|
-
|
|
167
|
-
```python
|
|
168
|
-
from alma.progress import ProgressTracker
|
|
169
|
-
|
|
170
|
-
tracker = ProgressTracker("my-project")
|
|
171
|
-
|
|
172
|
-
# Create work items
|
|
173
|
-
item = tracker.create_work_item(
|
|
174
|
-
title="Fix authentication bug",
|
|
175
|
-
description="Login fails on mobile devices",
|
|
176
|
-
priority=80,
|
|
177
|
-
agent="Victor",
|
|
178
|
-
)
|
|
179
|
-
|
|
180
|
-
# Update status
|
|
181
|
-
tracker.update_status(item.id, "in_progress")
|
|
182
|
-
|
|
183
|
-
# Get next task (by priority, quick wins, or unblock others)
|
|
184
|
-
next_task = tracker.get_next_item(strategy="priority")
|
|
185
|
-
|
|
186
|
-
# Get progress summary
|
|
187
|
-
summary = tracker.get_progress_summary()
|
|
188
|
-
print(f"Done: {summary.done}/{summary.total} ({summary.completion_percentage}%)")
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### Session Handoff (NEW in v0.3.0)
|
|
192
|
-
|
|
193
|
-
Maintain context across sessions - no more "starting fresh":
|
|
194
|
-
|
|
195
|
-
```python
|
|
196
|
-
from alma.session import SessionManager
|
|
197
|
-
|
|
198
|
-
manager = SessionManager("my-project")
|
|
199
|
-
|
|
200
|
-
# Start session (loads previous context)
|
|
201
|
-
context = manager.start_session(agent="Helena", goal="Complete auth testing")
|
|
202
|
-
|
|
203
|
-
# Previous session info is available
|
|
204
|
-
if context.previous_handoff:
|
|
205
|
-
print(f"Last action: {context.previous_handoff.last_action}")
|
|
206
|
-
print(f"Blockers: {context.previous_handoff.blockers}")
|
|
207
|
-
|
|
208
|
-
# Track decisions and blockers during work
|
|
209
|
-
manager.update_session("Helena", context.session_id,
|
|
210
|
-
decision="Using OAuth mock for testing",
|
|
211
|
-
blocker="Staging API is down",
|
|
212
|
-
)
|
|
213
|
-
|
|
214
|
-
# End session with handoff for next time
|
|
215
|
-
manager.create_handoff("Helena", context.session_id,
|
|
216
|
-
last_action="completed_oauth_tests",
|
|
217
|
-
last_outcome="success",
|
|
218
|
-
next_steps=["Test refresh tokens", "Add error cases"],
|
|
219
|
-
)
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### MCP Server Integration
|
|
223
|
-
|
|
224
|
-
Expose ALMA to Claude Code or any MCP-compatible client:
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
# Start MCP server
|
|
228
|
-
python -m alma.mcp --config .alma/config.yaml
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
```json
|
|
232
|
-
// .mcp.json
|
|
233
|
-
{
|
|
234
|
-
"mcpServers": {
|
|
235
|
-
"alma-memory": {
|
|
236
|
-
"command": "python",
|
|
237
|
-
"args": ["-m", "alma.mcp", "--config", ".alma/config.yaml"]
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
**Available MCP Tools:**
|
|
244
|
-
- `alma_retrieve` - Get memories for a task
|
|
245
|
-
- `alma_learn` - Record task outcome
|
|
246
|
-
- `alma_add_preference` - Add user preference
|
|
247
|
-
- `alma_add_knowledge` - Add domain knowledge
|
|
248
|
-
- `alma_forget` - Prune stale memories
|
|
249
|
-
- `alma_stats` - Get memory statistics
|
|
250
|
-
- `alma_health` - Health check
|
|
251
|
-
|
|
252
|
-
## Memory Types
|
|
253
|
-
|
|
254
|
-
| Type | What It Stores | Example |
|
|
255
|
-
|------|----------------|---------|
|
|
256
|
-
| **Heuristic** | Learned strategies | "For forms with >5 fields, test validation incrementally" |
|
|
257
|
-
| **Outcome** | Task results | "Login test succeeded using JWT token strategy" |
|
|
258
|
-
| **Preference** | User constraints | "User prefers verbose test output" |
|
|
259
|
-
| **Domain Knowledge** | Accumulated facts | "Login uses OAuth 2.0 with 24h token expiry" |
|
|
260
|
-
| **Anti-pattern** | What NOT to do | "Don't use sleep() for async waits - causes flaky tests" |
|
|
261
|
-
|
|
262
|
-
## The Harness Pattern
|
|
263
|
-
|
|
264
|
-
ALMA implements a generalized harness pattern for any tool-using agent:
|
|
265
|
-
|
|
266
|
-
```
|
|
267
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
268
|
-
│ 1. SETTING Fixed environment: tools, constraints │
|
|
269
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
270
|
-
│ 2. CONTEXT Ephemeral per-run inputs: task, user │
|
|
271
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
272
|
-
│ 3. AGENT The executor with scoped intelligence │
|
|
273
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
274
|
-
│ 4. MEMORY SCHEMA Domain-specific learning structure │
|
|
275
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
```python
|
|
279
|
-
from alma import create_harness, Context
|
|
280
|
-
|
|
281
|
-
# Create domain-specific harness
|
|
282
|
-
harness = create_harness("coding", "helena", alma)
|
|
283
|
-
|
|
284
|
-
# Run with automatic memory injection
|
|
285
|
-
result = harness.run(Context(
|
|
286
|
-
task="Test the login form validation",
|
|
287
|
-
project_id="my-app",
|
|
288
|
-
))
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
## Configuration
|
|
292
|
-
|
|
293
|
-
Create `.alma/config.yaml`:
|
|
294
|
-
|
|
295
|
-
```yaml
|
|
296
|
-
alma:
|
|
297
|
-
project_id: "my-project"
|
|
298
|
-
storage: sqlite # or "azure" for production
|
|
299
|
-
|
|
300
|
-
agents:
|
|
301
|
-
helena:
|
|
302
|
-
domain: coding
|
|
303
|
-
can_learn:
|
|
304
|
-
- testing_strategies
|
|
305
|
-
- selector_patterns
|
|
306
|
-
cannot_learn:
|
|
307
|
-
- backend_logic
|
|
308
|
-
min_occurrences_for_heuristic: 3
|
|
309
|
-
|
|
310
|
-
victor:
|
|
311
|
-
domain: coding
|
|
312
|
-
can_learn:
|
|
313
|
-
- api_patterns
|
|
314
|
-
- database_queries
|
|
315
|
-
cannot_learn:
|
|
316
|
-
- frontend_selectors
|
|
317
|
-
min_occurrences_for_heuristic: 3
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
## Architecture
|
|
321
|
-
|
|
322
|
-
```
|
|
323
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
324
|
-
│ ALMA v0.3.0 │
|
|
325
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
326
|
-
│ HARNESS LAYER │
|
|
327
|
-
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
|
|
328
|
-
│ │ Setting │ │ Context │ │ Agent │ │MemorySchema │ │
|
|
329
|
-
│ └──────────┘ └──────────┘ └──────────┘ └──────────────┘ │
|
|
330
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
331
|
-
│ NEW IN v0.3.0 │
|
|
332
|
-
│ ┌──────────────┐ ┌────────────────┐ ┌───────────────────┐ │
|
|
333
|
-
│ │ Progress │ │ Session │ │ Domain Memory │ │
|
|
334
|
-
│ │ Tracking │ │ Handoff │ │ Factory │ │
|
|
335
|
-
│ └──────────────┘ └────────────────┘ └───────────────────┘ │
|
|
336
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
337
|
-
│ CORE LAYER │
|
|
338
|
-
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌──────────┐ │
|
|
339
|
-
│ │ Retrieval │ │ Learning │ │ Caching │ │Forgetting│ │
|
|
340
|
-
│ │ Engine │ │ Protocol │ │ Layer │ │Mechanism │ │
|
|
341
|
-
│ └────────────┘ └────────────┘ └────────────┘ └──────────┘ │
|
|
342
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
343
|
-
│ STORAGE LAYER │
|
|
344
|
-
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
|
|
345
|
-
│ │ SQLite + FAISS │ │ Azure Cosmos │ │ File-based │ │
|
|
346
|
-
│ └────────────────┘ └────────────────┘ └────────────────┘ │
|
|
347
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
348
|
-
│ INTEGRATION LAYER │
|
|
349
|
-
│ ┌────────────────────────────────────────────────────────┐ │
|
|
350
|
-
│ │ MCP Server │ │
|
|
351
|
-
│ └────────────────────────────────────────────────────────┘ │
|
|
352
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
## Development Status
|
|
356
|
-
|
|
357
|
-
| Phase | Description | Status |
|
|
358
|
-
|-------|-------------|--------|
|
|
359
|
-
| 1 | Core Abstractions | ✅ Done |
|
|
360
|
-
| 2 | Local Storage (SQLite + FAISS) | ✅ Done |
|
|
361
|
-
| 3 | Retrieval Engine | ✅ Done |
|
|
362
|
-
| 4 | Learning Protocols | ✅ Done |
|
|
363
|
-
| 5 | Agent Integration | ✅ Done |
|
|
364
|
-
| 6 | Azure Cosmos DB | ✅ Done |
|
|
365
|
-
| 7 | Cache Layer | ✅ Done |
|
|
366
|
-
| 8 | Forgetting Mechanism | ✅ Done |
|
|
367
|
-
| 9 | MCP Server + Testing Suite | ✅ Done |
|
|
368
|
-
| 10 | Progress, Sessions, Domains | ✅ Done |
|
|
369
|
-
| 11 | Initializer Agent Pattern | ✅ Done |
|
|
370
|
-
| 12 | Forward-Looking Confidence | ✅ Done |
|
|
371
|
-
|
|
372
|
-
## API Reference
|
|
373
|
-
|
|
374
|
-
### Core
|
|
375
|
-
|
|
376
|
-
```python
|
|
377
|
-
# Initialize
|
|
378
|
-
alma = ALMA.from_config(".alma/config.yaml")
|
|
379
|
-
|
|
380
|
-
# Retrieve memories
|
|
381
|
-
memories = alma.retrieve(task, agent, top_k=5)
|
|
382
|
-
|
|
383
|
-
# Learn from outcome
|
|
384
|
-
alma.learn(agent, task, outcome, strategy_used, feedback=None)
|
|
385
|
-
|
|
386
|
-
# Add knowledge directly
|
|
387
|
-
alma.add_preference(user_id, category, preference)
|
|
388
|
-
alma.add_domain_knowledge(agent, domain, fact)
|
|
389
|
-
|
|
390
|
-
# Memory hygiene
|
|
391
|
-
alma.forget(agent, older_than_days=90, min_confidence=0.3)
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
### Progress Tracking
|
|
395
|
-
|
|
396
|
-
```python
|
|
397
|
-
from alma.progress import ProgressTracker, WorkItem
|
|
398
|
-
|
|
399
|
-
tracker = ProgressTracker("project-id")
|
|
400
|
-
item = tracker.create_work_item(title, description, priority=50)
|
|
401
|
-
tracker.update_status(item.id, "in_progress") # or "done", "blocked"
|
|
402
|
-
next_item = tracker.get_next_item(strategy="priority")
|
|
403
|
-
summary = tracker.get_progress_summary(agent="helena")
|
|
404
|
-
```
|
|
405
|
-
|
|
406
|
-
### Session Management
|
|
407
|
-
|
|
408
|
-
```python
|
|
409
|
-
from alma.session import SessionManager
|
|
410
|
-
|
|
411
|
-
manager = SessionManager("project-id")
|
|
412
|
-
context = manager.start_session(agent, goal)
|
|
413
|
-
manager.update_session(agent, session_id, decision=..., blocker=...)
|
|
414
|
-
manager.create_handoff(agent, session_id, last_action, outcome, next_steps)
|
|
415
|
-
reload_str = manager.get_quick_reload(agent)
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
### Domain Factory
|
|
419
|
-
|
|
420
|
-
```python
|
|
421
|
-
from alma.domains import DomainMemoryFactory, get_coding_schema
|
|
422
|
-
|
|
423
|
-
factory = DomainMemoryFactory()
|
|
424
|
-
schema = get_coding_schema() # or research, sales, general
|
|
425
|
-
alma = factory.create_alma(schema, "project-id")
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
### Session Initializer (NEW in v0.4.0)
|
|
429
|
-
|
|
430
|
-
```python
|
|
431
|
-
from alma.initializer import SessionInitializer
|
|
432
|
-
|
|
433
|
-
initializer = SessionInitializer(alma)
|
|
434
|
-
|
|
435
|
-
# Full initialization before starting work
|
|
436
|
-
result = initializer.initialize(
|
|
437
|
-
project_id="my-project",
|
|
438
|
-
agent="Helena",
|
|
439
|
-
user_prompt="Test the login form validation",
|
|
440
|
-
project_path="/path/to/project",
|
|
441
|
-
)
|
|
442
|
-
|
|
443
|
-
# Inject into agent prompt
|
|
444
|
-
prompt = f"""
|
|
445
|
-
{result.to_prompt()}
|
|
446
|
-
|
|
447
|
-
Now proceed with the first work item.
|
|
448
|
-
"""
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
### Confidence Engine (NEW in v0.4.0)
|
|
452
|
-
|
|
453
|
-
```python
|
|
454
|
-
from alma.confidence import ConfidenceEngine
|
|
455
|
-
|
|
456
|
-
engine = ConfidenceEngine(alma)
|
|
457
|
-
|
|
458
|
-
# Assess a strategy before trying it
|
|
459
|
-
signal = engine.assess_strategy(
|
|
460
|
-
strategy="Use incremental validation",
|
|
461
|
-
context="Testing a 5-field registration form",
|
|
462
|
-
agent="Helena",
|
|
463
|
-
)
|
|
464
|
-
|
|
465
|
-
print(f"Confidence: {signal.confidence_score:.0%}")
|
|
466
|
-
print(f"Recommendation: {signal.recommendation}")
|
|
467
|
-
# → Confidence: 78%
|
|
468
|
-
# → Recommendation: yes
|
|
469
|
-
|
|
470
|
-
# Rank multiple strategies
|
|
471
|
-
rankings = engine.rank_strategies(
|
|
472
|
-
strategies=["Strategy A", "Strategy B", "Strategy C"],
|
|
473
|
-
context="Current task",
|
|
474
|
-
agent="Helena",
|
|
475
|
-
)
|
|
476
|
-
```
|
|
477
|
-
|
|
478
|
-
## License
|
|
479
|
-
|
|
480
|
-
MIT
|
|
481
|
-
|
|
482
|
-
## Contributing
|
|
483
|
-
|
|
484
|
-
Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
485
|
-
|
|
486
|
-
---
|
|
487
|
-
|
|
488
|
-
**Built for AI agents that get better with every task.**
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
alma/__init__.py,sha256=b15Ug9R7GcQ6J343-z5YN4-haUDujYZK7kIPajtlqdE,3059
|
|
2
|
-
alma/core.py,sha256=-lAYOdnNYDz0ziVQFybLNF_2cDbM8-lIw5xvLuiXZKY,9638
|
|
3
|
-
alma/types.py,sha256=hdBP1dwvYquS7Zej4xb6DM4Bfyx6C2OIFi3vFYo9DMk,6769
|
|
4
|
-
alma/confidence/__init__.py,sha256=VvObyBormXwEpcOAvP-gHZlb2X1z1UuGuy8Zdkg4A-0,1200
|
|
5
|
-
alma/confidence/engine.py,sha256=R6muu7yWrlZSzOm2jsoPTBU2UGwvfJ30Akqj7g8pCXo,17399
|
|
6
|
-
alma/confidence/types.py,sha256=6Qmvla26qBWtijhj-C4XOLyxlKbsxchhI7xNoAJ0CXw,11227
|
|
7
|
-
alma/config/__init__.py,sha256=MQ7zjiIFlUnjeI_Nxn4ig0HAmYeUuS7_FVNjYi8Ik3A,99
|
|
8
|
-
alma/config/loader.py,sha256=OJPXTSKrBunl6LMvyb-avSOyH1Pr0IpUZIK9UOmB-LE,4884
|
|
9
|
-
alma/domains/__init__.py,sha256=wDvWGshubbbEcUv_7vUdnj_Np5Ovkqp8w9VwFCv_JOs,623
|
|
10
|
-
alma/domains/factory.py,sha256=dYhsqW8K3VmfzP6zwBzfddkDZBuPjoL_K7jdB6SFne0,10843
|
|
11
|
-
alma/domains/schemas.py,sha256=OOvnddjBwJHSH99h0fZ1EFQgkCPyZPPx3Lc4210Rn0U,13040
|
|
12
|
-
alma/domains/types.py,sha256=s4ToTMLPzJRj1u4yfFTkiQhK2bjcF0O17zaUFloBtOk,8999
|
|
13
|
-
alma/harness/__init__.py,sha256=T25gbnat63HA6QeHY5BiaYxM3BODgQmkcR85DIVjsMc,684
|
|
14
|
-
alma/harness/base.py,sha256=rvgLHVVKo0INDDQTzqYIzEpoNkSiJ0DG5qE_-K4Cc5A,11223
|
|
15
|
-
alma/harness/domains.py,sha256=ur6BqClFd7JgH62DQsC5RBJV-IpEbL9uaEHZzZRtyxI,25720
|
|
16
|
-
alma/initializer/__init__.py,sha256=Hmlb35EnIkPYsmuxuoUQrHAJWerDqK0EzBi8vmrvFw8,826
|
|
17
|
-
alma/initializer/initializer.py,sha256=OexGjQeB7sng8Gy9DKAGchgdGZJGIwkLcnPOLQMFH1c,13008
|
|
18
|
-
alma/initializer/types.py,sha256=t7B9q-hYKx468d9EXAFFNEZ6BS04Be8kxO3SCjwvcww,7717
|
|
19
|
-
alma/integration/__init__.py,sha256=bQZKgA4zhUD3AK4lxh4I7PGukUogKFodIDn3Jurlcws,1276
|
|
20
|
-
alma/integration/claude_agents.py,sha256=HdAZVVIOr7W-_oAuDL4J7ZanvvpOjCP_Lfw-N1TMekI,13318
|
|
21
|
-
alma/integration/helena.py,sha256=rDCYy8Y7_f3xeCzahahio_0OIUury-dMhU7Z_EjWc5w,11885
|
|
22
|
-
alma/integration/victor.py,sha256=Z3FBso38eYs4X6He2qvl_O3Lu9_o5X1dWHvf3PnI0kw,13073
|
|
23
|
-
alma/learning/__init__.py,sha256=GU33u8KUyDgnUASXfAXZ5rMF3sjkdWMzqR5aWAwjWPU,1870
|
|
24
|
-
alma/learning/forgetting.py,sha256=_7BVezNjoEk2AGVARVPr255af3O51vtKR6LW8dMrSwU,45513
|
|
25
|
-
alma/learning/heuristic_extractor.py,sha256=lKM2hGihFjeTolOl58GImfPkaSQOsEqCCjuYPhskJf0,11881
|
|
26
|
-
alma/learning/protocols.py,sha256=yr5JpHQB5ktYtkmSaas6AUp0iWPyoN7ZU39nEdRwUko,10328
|
|
27
|
-
alma/learning/validation.py,sha256=cv4mMTr3hRlC3AxWHG7-w-k_b-dNkowRh-idC18hN6Y,11028
|
|
28
|
-
alma/mcp/__init__.py,sha256=USCtSVAKaW1eFKgdqm50krlufPeccfGw5yDZ4BC2KwE,947
|
|
29
|
-
alma/mcp/__main__.py,sha256=OKNXBY3GBJJKhAjIpGeKYcK02dX_83eOwUXkUXpV54A,3946
|
|
30
|
-
alma/mcp/resources.py,sha256=tdJoBA55qRcdwXCPyaFJ2hR23oQRqfiNUTzHo-h5qfs,3460
|
|
31
|
-
alma/mcp/server.py,sha256=4LPs2J53I4fTXVB5P-1mZibce-FVWrPhFWCoUKHy9TM,19043
|
|
32
|
-
alma/mcp/tools.py,sha256=UEB9NzcjxcpuAiie6sJ_gGdjfP6Ey0ajgp8hZRx3NHE,9452
|
|
33
|
-
alma/progress/__init__.py,sha256=6cdZ4ON__ARzZRfLOOFcIguQ2Z8xie2CwIvUVCJJWhM,371
|
|
34
|
-
alma/progress/tracker.py,sha256=0wKXqwEQePAYD7lc9DcBGhpqjvcQN47W-UT6p85lp00,19137
|
|
35
|
-
alma/progress/types.py,sha256=cVu-dLrrrsTJ4n25rwaQdWMYTEl2Z4JwYZxJhM83Vfs,7088
|
|
36
|
-
alma/retrieval/__init__.py,sha256=lhfJh7Lfi4d0UYzhgVxKPVCO3959eJwCH0VzK4mgTio,1006
|
|
37
|
-
alma/retrieval/cache.py,sha256=mJ-hJUaoX1aUlcQjYsrrYQBKb8F3qIJJe46bSQ2RMg4,34645
|
|
38
|
-
alma/retrieval/embeddings.py,sha256=S7KvogxBNoDP2r5ANwuH0hFdzqsAGXzAqAA8BY0_zMI,6464
|
|
39
|
-
alma/retrieval/engine.py,sha256=RHkCaBbhYMHA44t8CU1W7dxMuUj1yvZ7p_v52cC23bY,9659
|
|
40
|
-
alma/retrieval/scoring.py,sha256=VG41Vq1mV0DgLv0cM7m89KLwRNqOWaLboSRNhoC0cy8,10102
|
|
41
|
-
alma/session/__init__.py,sha256=1kKfjacWOd0WBWs3Yv_d_t_CaUTOWeGb0DCoKxRfvp8,352
|
|
42
|
-
alma/session/manager.py,sha256=O6Onh7rnQIr_J5L2IahiuxsH7pi8-G_VmGavp_QEsQs,12637
|
|
43
|
-
alma/session/types.py,sha256=lLcWK64C5-ycItJmvHAHgC6L-y3toTc4kKttp2Fvgic,9464
|
|
44
|
-
alma/storage/__init__.py,sha256=PtKICN39q2MQ7CuUmFnERQMIfo8Tbpv_Ro61jLLvUvQ,528
|
|
45
|
-
alma/storage/azure_cosmos.py,sha256=TN_HJIaIrAppDh1LPY3jYVIT0EQkKQnqhNPkonChrf8,33068
|
|
46
|
-
alma/storage/base.py,sha256=-1Xi3zQFdFgdkIWvqLhNNq9SPdjaIYoagijPMKA3I8M,8960
|
|
47
|
-
alma/storage/file_based.py,sha256=g-1dkmu68T6ePhyvh40o_u-THqK1WbXtt4xfccChySM,20709
|
|
48
|
-
alma/storage/sqlite_local.py,sha256=ppqUcXbuiqN6p7tEWu0r1MoMQTCXc-XDYkQe0Tq93ps,36557
|
|
49
|
-
alma_memory-0.4.0.dist-info/METADATA,sha256=jcbxdCB17ZfCklRlTZfN-mfjjOdEz302RCzxksgbWhM,18840
|
|
50
|
-
alma_memory-0.4.0.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
|
|
51
|
-
alma_memory-0.4.0.dist-info/top_level.txt,sha256=5oN68LXctTl8a8i1LA-5WqSaP-pDA-J0x1AfCFfLm4A,5
|
|
52
|
-
alma_memory-0.4.0.dist-info/RECORD,,
|
|
File without changes
|