agmem 0.1.6__tar.gz → 0.2.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.
- {agmem-0.1.6/agmem.egg-info → agmem-0.2.0}/PKG-INFO +12 -6
- {agmem-0.1.6 → agmem-0.2.0}/README.md +5 -4
- {agmem-0.1.6 → agmem-0.2.0/agmem.egg-info}/PKG-INFO +12 -6
- {agmem-0.1.6 → agmem-0.2.0}/agmem.egg-info/SOURCES.txt +18 -0
- {agmem-0.1.6 → agmem-0.2.0}/agmem.egg-info/requires.txt +6 -0
- agmem-0.2.0/docs/FINAL_COMPLETION_REPORT.md +613 -0
- agmem-0.2.0/docs/FINAL_STATUS_REPORT.md +295 -0
- agmem-0.2.0/docs/HEALTH_MONITORING.md +265 -0
- agmem-0.2.0/docs/IMPLEMENTATION_COMPLETE_SUMMARY.md +508 -0
- agmem-0.2.0/docs/PACKAGE_UPDATES_VERIFICATION.md +209 -0
- agmem-0.2.0/docs/QUICK_REFERENCE.md +339 -0
- agmem-0.2.0/docs/STEP10_SOLID_REFACTORING_COMPLETION.md +495 -0
- agmem-0.2.0/docs/STEP8_HEALTH_MONITORING_COMPLETION.md +293 -0
- agmem-0.2.0/docs/STEP9_DELTA_ENCODING_COMPLETION.md +233 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/daemon.py +37 -1
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/distill.py +6 -0
- agmem-0.2.0/memvcs/coordinator/__init__.py +5 -0
- agmem-0.2.0/memvcs/coordinator/server.py +223 -0
- agmem-0.2.0/memvcs/core/delta.py +258 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/distiller.py +74 -50
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/pack.py +191 -33
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/remote.py +82 -2
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/zk_proofs.py +62 -5
- agmem-0.2.0/memvcs/health/__init__.py +25 -0
- agmem-0.2.0/memvcs/health/monitor.py +452 -0
- {agmem-0.1.6 → agmem-0.2.0}/pyproject.toml +12 -1
- agmem-0.2.0/tests/test_compression_pipeline.py +158 -0
- agmem-0.2.0/tests/test_delta_encoding.py +297 -0
- agmem-0.2.0/tests/test_health_monitor.py +393 -0
- agmem-0.2.0/tests/test_ipfs_integration.py +134 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_pack_gc.py +61 -0
- {agmem-0.1.6 → agmem-0.2.0}/LICENSE +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/MANIFEST.in +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/agmem.egg-info/dependency_links.txt +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/agmem.egg-info/entry_points.txt +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/agmem.egg-info/top_level.txt +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/docs/AGMEM_PUBLISHING_SETUP.md +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/docs/CONFIG.md +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/docs/FEDERATED.md +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/docs/GTM.md +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/docs/KNOWLEDGE_GRAPH.md +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/docs/SEQUENTIAL_VALIDATION.md +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/docs/TEST_REPORT.md +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/docs/aux/INSTALL.md +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/examples/basic_workflow.sh +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/__init__.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/cli.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/__init__.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/add.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/audit.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/base.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/blame.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/branch.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/checkout.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/clean.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/clone.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/commit.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/decay.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/diff.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/federated.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/fsck.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/garden.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/gc.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/graph.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/init.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/log.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/mcp.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/merge.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/pack.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/prove.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/pull.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/push.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/recall.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/reflog.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/remote.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/repair.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/reset.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/resolve.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/resurrect.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/search.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/serve.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/show.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/stash.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/status.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/tag.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/test.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/timeline.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/tree.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/verify.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/when.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/__init__.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/access_index.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/audit.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/compression_pipeline.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/config_loader.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/consistency.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/constants.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/crypto_verify.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/decay.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/diff.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/encryption.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/federated.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/gardener.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/hooks.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/ipfs_remote.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/knowledge_graph.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/llm/__init__.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/llm/anthropic_provider.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/llm/base.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/llm/factory.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/llm/openai_provider.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/merge.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/objects.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/pii_scanner.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/privacy_budget.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/refs.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/repository.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/schema.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/staging.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/storage/__init__.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/storage/base.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/storage/gcs.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/storage/local.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/storage/s3.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/temporal_index.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/test_runner.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/trust.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/vector_store.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/integrations/__init__.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/integrations/mcp_server.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/integrations/web_ui/__init__.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/integrations/web_ui/server.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/retrieval/__init__.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/retrieval/base.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/retrieval/pack.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/retrieval/recaller.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/retrieval/strategies.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/utils/__init__.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/memvcs/utils/helpers.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/setup.cfg +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/setup.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_access_index.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_advanced_commands.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_audit.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_commit_importance.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_consistency.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_crypto_verify.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_decay.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_edge_cases.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_encryption.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_federated.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_ipfs_remote.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_llm_provider.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_objects.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_pii.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_plan_features.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_privacy_budget.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_repository.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_resolve_helpers.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_retrieval.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_temporal_index.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_trust.py +0 -0
- {agmem-0.1.6 → agmem-0.2.0}/tests/test_zk_proofs.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agmem
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Agentic Memory Version Control System - Git for AI agent memories
|
|
5
5
|
Home-page: https://github.com/vivek-tiwari-vt/agmem
|
|
6
6
|
Author: agmem Team
|
|
@@ -10,7 +10,7 @@ Project-URL: Homepage, https://github.com/vivek-tiwari-vt/agmem
|
|
|
10
10
|
Project-URL: Documentation, https://github.com/vivek-tiwari-vt/agmem#readme
|
|
11
11
|
Project-URL: Repository, https://github.com/vivek-tiwari-vt/agmem
|
|
12
12
|
Project-URL: Bug Tracker, https://github.com/vivek-tiwari-vt/agmem/issues
|
|
13
|
-
Keywords: ai,agent,memory,version-control,git,vcs,llm,merkle,audit,encryption,differential-privacy,trust,multi-agent
|
|
13
|
+
Keywords: ai,agent,memory,version-control,git,vcs,llm,merkle,audit,encryption,differential-privacy,trust,multi-agent,health-monitoring,delta-encoding,ipfs,federated
|
|
14
14
|
Classifier: Development Status :: 3 - Alpha
|
|
15
15
|
Classifier: Intended Audience :: Developers
|
|
16
16
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -71,6 +71,10 @@ Provides-Extra: ipfs
|
|
|
71
71
|
Requires-Dist: requests>=2.28.0; extra == "ipfs"
|
|
72
72
|
Provides-Extra: ipfs-daemon
|
|
73
73
|
Requires-Dist: ipfshttpclient>=0.8.0; extra == "ipfs-daemon"
|
|
74
|
+
Provides-Extra: coordinator
|
|
75
|
+
Requires-Dist: fastapi>=0.100.0; extra == "coordinator"
|
|
76
|
+
Requires-Dist: uvicorn[standard]>=0.22.0; extra == "coordinator"
|
|
77
|
+
Requires-Dist: pydantic>=2.0.0; extra == "coordinator"
|
|
74
78
|
Provides-Extra: all
|
|
75
79
|
Requires-Dist: mcp>=1.0.0; extra == "all"
|
|
76
80
|
Requires-Dist: cryptography>=41.0.0; extra == "all"
|
|
@@ -88,6 +92,7 @@ Requires-Dist: networkx>=3.0; extra == "all"
|
|
|
88
92
|
Requires-Dist: tiktoken>=0.5.0; extra == "all"
|
|
89
93
|
Requires-Dist: presidio-analyzer>=2.2.0; extra == "all"
|
|
90
94
|
Requires-Dist: requests>=2.28.0; extra == "all"
|
|
95
|
+
Requires-Dist: pydantic>=2.0.0; extra == "all"
|
|
91
96
|
Dynamic: author
|
|
92
97
|
Dynamic: home-page
|
|
93
98
|
Dynamic: license-file
|
|
@@ -137,8 +142,9 @@ agmem solves all of these problems with a familiar Git-like interface.
|
|
|
137
142
|
- ✅ **Multi-provider LLM** — OpenAI and Anthropic via `memvcs.core.llm`; config/repo or env; used by gardener, distiller, consistency, merge
|
|
138
143
|
- ✅ **Temporal querying** — Point-in-time and range queries in temporal index; frontmatter timestamps
|
|
139
144
|
- ✅ **Federated collaboration** — `agmem federated push|pull`; real summaries (topic counts, fact hashes); optional DP on outbound; coordinator API in docs/FEDERATED.md
|
|
140
|
-
- ✅ **Zero-knowledge proofs** — `agmem prove` (hash/signature-based): keyword containment (Merkle set membership), memory freshness (signed timestamp)
|
|
141
|
-
- ✅ **Daemon health** —
|
|
145
|
+
- ✅ **Zero-knowledge proofs** — `agmem prove` (hash/signature-based): keyword containment (Merkle set membership), memory freshness (signed timestamp). **Note:** Current implementation is proof-of-knowledge with known limitations; see docs for migration to true zk-SNARKs.
|
|
146
|
+
- ✅ **Daemon health** — 4-point health monitoring (storage, redundancy, staleness, graph consistency) with periodic checks; visible warnings and JSON reports
|
|
147
|
+
- ✅ **Delta encoding** — 5-10x compression for similar objects using Levenshtein distance and SequenceMatcher; optional feature in pack files
|
|
142
148
|
- ✅ **GPU acceleration** — Vector store detects GPU for embedding model when available
|
|
143
149
|
- ✅ **Optional** — `serve`, `daemon` (watch + auto-commit), `garden` (episode archival), MCP server; install extras as needed
|
|
144
150
|
|
|
@@ -469,8 +475,8 @@ The following 18 capabilities are implemented (or stubbed) per the agmem feature
|
|
|
469
475
|
|
|
470
476
|
| # | Feature | Description |
|
|
471
477
|
|---|---------|-------------|
|
|
472
|
-
| **7** | **Differential privacy** | Epsilon/delta budget per repo in `.mem/privacy_budget.json`. **Usage:** `agmem distill --private`, `agmem garden --private`; blocks when budget exceeded. Config: `differential_privacy.max_epsilon`, `delta`. |
|
|
473
|
-
| **8** | **
|
|
478
|
+
| **7** | **Differential privacy** | Epsilon/delta budget per repo in `.mem/privacy_budget.json`. **Usage:** `agmem distill --private`, `agmem garden --private`; blocks when budget exceeded. Config: `differential_privacy.max_epsilon`, `delta`. **Note:** Now correctly applied to actual facts during extraction, not metadata counts. |
|
|
479
|
+
| **8** | **Cryptographic proofs (proof-of-knowledge)** | Hash/signature-based proofs for keyword containment (Merkle set membership) and memory freshness (signed timestamp). **Command:** `agmem prove --memory <path> --property keyword\|freshness --value <v> [-o out]`. **IMPORTANT:** These are proof-of-knowledge, not true zero-knowledge proofs. Keyword proof leaks word count and allows verifier to test other words. Freshness proof relies on forgeable filesystem mtime. See `memvcs/core/zk_proofs.py` for details and migration path to zk-SNARKs. |
|
|
474
480
|
|
|
475
481
|
### Tier 4 — Storage and distribution
|
|
476
482
|
|
|
@@ -42,8 +42,9 @@ agmem solves all of these problems with a familiar Git-like interface.
|
|
|
42
42
|
- ✅ **Multi-provider LLM** — OpenAI and Anthropic via `memvcs.core.llm`; config/repo or env; used by gardener, distiller, consistency, merge
|
|
43
43
|
- ✅ **Temporal querying** — Point-in-time and range queries in temporal index; frontmatter timestamps
|
|
44
44
|
- ✅ **Federated collaboration** — `agmem federated push|pull`; real summaries (topic counts, fact hashes); optional DP on outbound; coordinator API in docs/FEDERATED.md
|
|
45
|
-
- ✅ **Zero-knowledge proofs** — `agmem prove` (hash/signature-based): keyword containment (Merkle set membership), memory freshness (signed timestamp)
|
|
46
|
-
- ✅ **Daemon health** —
|
|
45
|
+
- ✅ **Zero-knowledge proofs** — `agmem prove` (hash/signature-based): keyword containment (Merkle set membership), memory freshness (signed timestamp). **Note:** Current implementation is proof-of-knowledge with known limitations; see docs for migration to true zk-SNARKs.
|
|
46
|
+
- ✅ **Daemon health** — 4-point health monitoring (storage, redundancy, staleness, graph consistency) with periodic checks; visible warnings and JSON reports
|
|
47
|
+
- ✅ **Delta encoding** — 5-10x compression for similar objects using Levenshtein distance and SequenceMatcher; optional feature in pack files
|
|
47
48
|
- ✅ **GPU acceleration** — Vector store detects GPU for embedding model when available
|
|
48
49
|
- ✅ **Optional** — `serve`, `daemon` (watch + auto-commit), `garden` (episode archival), MCP server; install extras as needed
|
|
49
50
|
|
|
@@ -374,8 +375,8 @@ The following 18 capabilities are implemented (or stubbed) per the agmem feature
|
|
|
374
375
|
|
|
375
376
|
| # | Feature | Description |
|
|
376
377
|
|---|---------|-------------|
|
|
377
|
-
| **7** | **Differential privacy** | Epsilon/delta budget per repo in `.mem/privacy_budget.json`. **Usage:** `agmem distill --private`, `agmem garden --private`; blocks when budget exceeded. Config: `differential_privacy.max_epsilon`, `delta`. |
|
|
378
|
-
| **8** | **
|
|
378
|
+
| **7** | **Differential privacy** | Epsilon/delta budget per repo in `.mem/privacy_budget.json`. **Usage:** `agmem distill --private`, `agmem garden --private`; blocks when budget exceeded. Config: `differential_privacy.max_epsilon`, `delta`. **Note:** Now correctly applied to actual facts during extraction, not metadata counts. |
|
|
379
|
+
| **8** | **Cryptographic proofs (proof-of-knowledge)** | Hash/signature-based proofs for keyword containment (Merkle set membership) and memory freshness (signed timestamp). **Command:** `agmem prove --memory <path> --property keyword\|freshness --value <v> [-o out]`. **IMPORTANT:** These are proof-of-knowledge, not true zero-knowledge proofs. Keyword proof leaks word count and allows verifier to test other words. Freshness proof relies on forgeable filesystem mtime. See `memvcs/core/zk_proofs.py` for details and migration path to zk-SNARKs. |
|
|
379
380
|
|
|
380
381
|
### Tier 4 — Storage and distribution
|
|
381
382
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agmem
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Agentic Memory Version Control System - Git for AI agent memories
|
|
5
5
|
Home-page: https://github.com/vivek-tiwari-vt/agmem
|
|
6
6
|
Author: agmem Team
|
|
@@ -10,7 +10,7 @@ Project-URL: Homepage, https://github.com/vivek-tiwari-vt/agmem
|
|
|
10
10
|
Project-URL: Documentation, https://github.com/vivek-tiwari-vt/agmem#readme
|
|
11
11
|
Project-URL: Repository, https://github.com/vivek-tiwari-vt/agmem
|
|
12
12
|
Project-URL: Bug Tracker, https://github.com/vivek-tiwari-vt/agmem/issues
|
|
13
|
-
Keywords: ai,agent,memory,version-control,git,vcs,llm,merkle,audit,encryption,differential-privacy,trust,multi-agent
|
|
13
|
+
Keywords: ai,agent,memory,version-control,git,vcs,llm,merkle,audit,encryption,differential-privacy,trust,multi-agent,health-monitoring,delta-encoding,ipfs,federated
|
|
14
14
|
Classifier: Development Status :: 3 - Alpha
|
|
15
15
|
Classifier: Intended Audience :: Developers
|
|
16
16
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -71,6 +71,10 @@ Provides-Extra: ipfs
|
|
|
71
71
|
Requires-Dist: requests>=2.28.0; extra == "ipfs"
|
|
72
72
|
Provides-Extra: ipfs-daemon
|
|
73
73
|
Requires-Dist: ipfshttpclient>=0.8.0; extra == "ipfs-daemon"
|
|
74
|
+
Provides-Extra: coordinator
|
|
75
|
+
Requires-Dist: fastapi>=0.100.0; extra == "coordinator"
|
|
76
|
+
Requires-Dist: uvicorn[standard]>=0.22.0; extra == "coordinator"
|
|
77
|
+
Requires-Dist: pydantic>=2.0.0; extra == "coordinator"
|
|
74
78
|
Provides-Extra: all
|
|
75
79
|
Requires-Dist: mcp>=1.0.0; extra == "all"
|
|
76
80
|
Requires-Dist: cryptography>=41.0.0; extra == "all"
|
|
@@ -88,6 +92,7 @@ Requires-Dist: networkx>=3.0; extra == "all"
|
|
|
88
92
|
Requires-Dist: tiktoken>=0.5.0; extra == "all"
|
|
89
93
|
Requires-Dist: presidio-analyzer>=2.2.0; extra == "all"
|
|
90
94
|
Requires-Dist: requests>=2.28.0; extra == "all"
|
|
95
|
+
Requires-Dist: pydantic>=2.0.0; extra == "all"
|
|
91
96
|
Dynamic: author
|
|
92
97
|
Dynamic: home-page
|
|
93
98
|
Dynamic: license-file
|
|
@@ -137,8 +142,9 @@ agmem solves all of these problems with a familiar Git-like interface.
|
|
|
137
142
|
- ✅ **Multi-provider LLM** — OpenAI and Anthropic via `memvcs.core.llm`; config/repo or env; used by gardener, distiller, consistency, merge
|
|
138
143
|
- ✅ **Temporal querying** — Point-in-time and range queries in temporal index; frontmatter timestamps
|
|
139
144
|
- ✅ **Federated collaboration** — `agmem federated push|pull`; real summaries (topic counts, fact hashes); optional DP on outbound; coordinator API in docs/FEDERATED.md
|
|
140
|
-
- ✅ **Zero-knowledge proofs** — `agmem prove` (hash/signature-based): keyword containment (Merkle set membership), memory freshness (signed timestamp)
|
|
141
|
-
- ✅ **Daemon health** —
|
|
145
|
+
- ✅ **Zero-knowledge proofs** — `agmem prove` (hash/signature-based): keyword containment (Merkle set membership), memory freshness (signed timestamp). **Note:** Current implementation is proof-of-knowledge with known limitations; see docs for migration to true zk-SNARKs.
|
|
146
|
+
- ✅ **Daemon health** — 4-point health monitoring (storage, redundancy, staleness, graph consistency) with periodic checks; visible warnings and JSON reports
|
|
147
|
+
- ✅ **Delta encoding** — 5-10x compression for similar objects using Levenshtein distance and SequenceMatcher; optional feature in pack files
|
|
142
148
|
- ✅ **GPU acceleration** — Vector store detects GPU for embedding model when available
|
|
143
149
|
- ✅ **Optional** — `serve`, `daemon` (watch + auto-commit), `garden` (episode archival), MCP server; install extras as needed
|
|
144
150
|
|
|
@@ -469,8 +475,8 @@ The following 18 capabilities are implemented (or stubbed) per the agmem feature
|
|
|
469
475
|
|
|
470
476
|
| # | Feature | Description |
|
|
471
477
|
|---|---------|-------------|
|
|
472
|
-
| **7** | **Differential privacy** | Epsilon/delta budget per repo in `.mem/privacy_budget.json`. **Usage:** `agmem distill --private`, `agmem garden --private`; blocks when budget exceeded. Config: `differential_privacy.max_epsilon`, `delta`. |
|
|
473
|
-
| **8** | **
|
|
478
|
+
| **7** | **Differential privacy** | Epsilon/delta budget per repo in `.mem/privacy_budget.json`. **Usage:** `agmem distill --private`, `agmem garden --private`; blocks when budget exceeded. Config: `differential_privacy.max_epsilon`, `delta`. **Note:** Now correctly applied to actual facts during extraction, not metadata counts. |
|
|
479
|
+
| **8** | **Cryptographic proofs (proof-of-knowledge)** | Hash/signature-based proofs for keyword containment (Merkle set membership) and memory freshness (signed timestamp). **Command:** `agmem prove --memory <path> --property keyword\|freshness --value <v> [-o out]`. **IMPORTANT:** These are proof-of-knowledge, not true zero-knowledge proofs. Keyword proof leaks word count and allows verifier to test other words. Freshness proof relies on forgeable filesystem mtime. See `memvcs/core/zk_proofs.py` for details and migration path to zk-SNARKs. |
|
|
474
480
|
|
|
475
481
|
### Tier 4 — Storage and distribution
|
|
476
482
|
|
|
@@ -12,9 +12,18 @@ agmem.egg-info/top_level.txt
|
|
|
12
12
|
docs/AGMEM_PUBLISHING_SETUP.md
|
|
13
13
|
docs/CONFIG.md
|
|
14
14
|
docs/FEDERATED.md
|
|
15
|
+
docs/FINAL_COMPLETION_REPORT.md
|
|
16
|
+
docs/FINAL_STATUS_REPORT.md
|
|
15
17
|
docs/GTM.md
|
|
18
|
+
docs/HEALTH_MONITORING.md
|
|
19
|
+
docs/IMPLEMENTATION_COMPLETE_SUMMARY.md
|
|
16
20
|
docs/KNOWLEDGE_GRAPH.md
|
|
21
|
+
docs/PACKAGE_UPDATES_VERIFICATION.md
|
|
22
|
+
docs/QUICK_REFERENCE.md
|
|
17
23
|
docs/SEQUENTIAL_VALIDATION.md
|
|
24
|
+
docs/STEP10_SOLID_REFACTORING_COMPLETION.md
|
|
25
|
+
docs/STEP8_HEALTH_MONITORING_COMPLETION.md
|
|
26
|
+
docs/STEP9_DELTA_ENCODING_COMPLETION.md
|
|
18
27
|
docs/TEST_REPORT.md
|
|
19
28
|
docs/aux/INSTALL.md
|
|
20
29
|
examples/basic_workflow.sh
|
|
@@ -65,6 +74,8 @@ memvcs/commands/timeline.py
|
|
|
65
74
|
memvcs/commands/tree.py
|
|
66
75
|
memvcs/commands/verify.py
|
|
67
76
|
memvcs/commands/when.py
|
|
77
|
+
memvcs/coordinator/__init__.py
|
|
78
|
+
memvcs/coordinator/server.py
|
|
68
79
|
memvcs/core/__init__.py
|
|
69
80
|
memvcs/core/access_index.py
|
|
70
81
|
memvcs/core/audit.py
|
|
@@ -74,6 +85,7 @@ memvcs/core/consistency.py
|
|
|
74
85
|
memvcs/core/constants.py
|
|
75
86
|
memvcs/core/crypto_verify.py
|
|
76
87
|
memvcs/core/decay.py
|
|
88
|
+
memvcs/core/delta.py
|
|
77
89
|
memvcs/core/diff.py
|
|
78
90
|
memvcs/core/distiller.py
|
|
79
91
|
memvcs/core/encryption.py
|
|
@@ -107,6 +119,8 @@ memvcs/core/storage/base.py
|
|
|
107
119
|
memvcs/core/storage/gcs.py
|
|
108
120
|
memvcs/core/storage/local.py
|
|
109
121
|
memvcs/core/storage/s3.py
|
|
122
|
+
memvcs/health/__init__.py
|
|
123
|
+
memvcs/health/monitor.py
|
|
110
124
|
memvcs/integrations/__init__.py
|
|
111
125
|
memvcs/integrations/mcp_server.py
|
|
112
126
|
memvcs/integrations/web_ui/__init__.py
|
|
@@ -122,12 +136,16 @@ tests/test_access_index.py
|
|
|
122
136
|
tests/test_advanced_commands.py
|
|
123
137
|
tests/test_audit.py
|
|
124
138
|
tests/test_commit_importance.py
|
|
139
|
+
tests/test_compression_pipeline.py
|
|
125
140
|
tests/test_consistency.py
|
|
126
141
|
tests/test_crypto_verify.py
|
|
127
142
|
tests/test_decay.py
|
|
143
|
+
tests/test_delta_encoding.py
|
|
128
144
|
tests/test_edge_cases.py
|
|
129
145
|
tests/test_encryption.py
|
|
130
146
|
tests/test_federated.py
|
|
147
|
+
tests/test_health_monitor.py
|
|
148
|
+
tests/test_ipfs_integration.py
|
|
131
149
|
tests/test_ipfs_remote.py
|
|
132
150
|
tests/test_llm_provider.py
|
|
133
151
|
tests/test_objects.py
|
|
@@ -17,6 +17,7 @@ networkx>=3.0
|
|
|
17
17
|
tiktoken>=0.5.0
|
|
18
18
|
presidio-analyzer>=2.2.0
|
|
19
19
|
requests>=2.28.0
|
|
20
|
+
pydantic>=2.0.0
|
|
20
21
|
|
|
21
22
|
[anthropic]
|
|
22
23
|
anthropic>=0.18.0
|
|
@@ -25,6 +26,11 @@ anthropic>=0.18.0
|
|
|
25
26
|
boto3>=1.34.0
|
|
26
27
|
google-cloud-storage>=2.0.0
|
|
27
28
|
|
|
29
|
+
[coordinator]
|
|
30
|
+
fastapi>=0.100.0
|
|
31
|
+
uvicorn[standard]>=0.22.0
|
|
32
|
+
pydantic>=2.0.0
|
|
33
|
+
|
|
28
34
|
[crypto]
|
|
29
35
|
cryptography>=41.0.0
|
|
30
36
|
|