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.
Files changed (163) hide show
  1. {agmem-0.1.6/agmem.egg-info → agmem-0.2.0}/PKG-INFO +12 -6
  2. {agmem-0.1.6 → agmem-0.2.0}/README.md +5 -4
  3. {agmem-0.1.6 → agmem-0.2.0/agmem.egg-info}/PKG-INFO +12 -6
  4. {agmem-0.1.6 → agmem-0.2.0}/agmem.egg-info/SOURCES.txt +18 -0
  5. {agmem-0.1.6 → agmem-0.2.0}/agmem.egg-info/requires.txt +6 -0
  6. agmem-0.2.0/docs/FINAL_COMPLETION_REPORT.md +613 -0
  7. agmem-0.2.0/docs/FINAL_STATUS_REPORT.md +295 -0
  8. agmem-0.2.0/docs/HEALTH_MONITORING.md +265 -0
  9. agmem-0.2.0/docs/IMPLEMENTATION_COMPLETE_SUMMARY.md +508 -0
  10. agmem-0.2.0/docs/PACKAGE_UPDATES_VERIFICATION.md +209 -0
  11. agmem-0.2.0/docs/QUICK_REFERENCE.md +339 -0
  12. agmem-0.2.0/docs/STEP10_SOLID_REFACTORING_COMPLETION.md +495 -0
  13. agmem-0.2.0/docs/STEP8_HEALTH_MONITORING_COMPLETION.md +293 -0
  14. agmem-0.2.0/docs/STEP9_DELTA_ENCODING_COMPLETION.md +233 -0
  15. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/daemon.py +37 -1
  16. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/distill.py +6 -0
  17. agmem-0.2.0/memvcs/coordinator/__init__.py +5 -0
  18. agmem-0.2.0/memvcs/coordinator/server.py +223 -0
  19. agmem-0.2.0/memvcs/core/delta.py +258 -0
  20. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/distiller.py +74 -50
  21. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/pack.py +191 -33
  22. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/remote.py +82 -2
  23. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/zk_proofs.py +62 -5
  24. agmem-0.2.0/memvcs/health/__init__.py +25 -0
  25. agmem-0.2.0/memvcs/health/monitor.py +452 -0
  26. {agmem-0.1.6 → agmem-0.2.0}/pyproject.toml +12 -1
  27. agmem-0.2.0/tests/test_compression_pipeline.py +158 -0
  28. agmem-0.2.0/tests/test_delta_encoding.py +297 -0
  29. agmem-0.2.0/tests/test_health_monitor.py +393 -0
  30. agmem-0.2.0/tests/test_ipfs_integration.py +134 -0
  31. {agmem-0.1.6 → agmem-0.2.0}/tests/test_pack_gc.py +61 -0
  32. {agmem-0.1.6 → agmem-0.2.0}/LICENSE +0 -0
  33. {agmem-0.1.6 → agmem-0.2.0}/MANIFEST.in +0 -0
  34. {agmem-0.1.6 → agmem-0.2.0}/agmem.egg-info/dependency_links.txt +0 -0
  35. {agmem-0.1.6 → agmem-0.2.0}/agmem.egg-info/entry_points.txt +0 -0
  36. {agmem-0.1.6 → agmem-0.2.0}/agmem.egg-info/top_level.txt +0 -0
  37. {agmem-0.1.6 → agmem-0.2.0}/docs/AGMEM_PUBLISHING_SETUP.md +0 -0
  38. {agmem-0.1.6 → agmem-0.2.0}/docs/CONFIG.md +0 -0
  39. {agmem-0.1.6 → agmem-0.2.0}/docs/FEDERATED.md +0 -0
  40. {agmem-0.1.6 → agmem-0.2.0}/docs/GTM.md +0 -0
  41. {agmem-0.1.6 → agmem-0.2.0}/docs/KNOWLEDGE_GRAPH.md +0 -0
  42. {agmem-0.1.6 → agmem-0.2.0}/docs/SEQUENTIAL_VALIDATION.md +0 -0
  43. {agmem-0.1.6 → agmem-0.2.0}/docs/TEST_REPORT.md +0 -0
  44. {agmem-0.1.6 → agmem-0.2.0}/docs/aux/INSTALL.md +0 -0
  45. {agmem-0.1.6 → agmem-0.2.0}/examples/basic_workflow.sh +0 -0
  46. {agmem-0.1.6 → agmem-0.2.0}/memvcs/__init__.py +0 -0
  47. {agmem-0.1.6 → agmem-0.2.0}/memvcs/cli.py +0 -0
  48. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/__init__.py +0 -0
  49. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/add.py +0 -0
  50. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/audit.py +0 -0
  51. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/base.py +0 -0
  52. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/blame.py +0 -0
  53. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/branch.py +0 -0
  54. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/checkout.py +0 -0
  55. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/clean.py +0 -0
  56. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/clone.py +0 -0
  57. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/commit.py +0 -0
  58. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/decay.py +0 -0
  59. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/diff.py +0 -0
  60. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/federated.py +0 -0
  61. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/fsck.py +0 -0
  62. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/garden.py +0 -0
  63. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/gc.py +0 -0
  64. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/graph.py +0 -0
  65. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/init.py +0 -0
  66. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/log.py +0 -0
  67. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/mcp.py +0 -0
  68. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/merge.py +0 -0
  69. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/pack.py +0 -0
  70. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/prove.py +0 -0
  71. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/pull.py +0 -0
  72. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/push.py +0 -0
  73. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/recall.py +0 -0
  74. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/reflog.py +0 -0
  75. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/remote.py +0 -0
  76. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/repair.py +0 -0
  77. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/reset.py +0 -0
  78. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/resolve.py +0 -0
  79. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/resurrect.py +0 -0
  80. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/search.py +0 -0
  81. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/serve.py +0 -0
  82. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/show.py +0 -0
  83. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/stash.py +0 -0
  84. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/status.py +0 -0
  85. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/tag.py +0 -0
  86. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/test.py +0 -0
  87. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/timeline.py +0 -0
  88. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/tree.py +0 -0
  89. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/verify.py +0 -0
  90. {agmem-0.1.6 → agmem-0.2.0}/memvcs/commands/when.py +0 -0
  91. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/__init__.py +0 -0
  92. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/access_index.py +0 -0
  93. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/audit.py +0 -0
  94. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/compression_pipeline.py +0 -0
  95. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/config_loader.py +0 -0
  96. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/consistency.py +0 -0
  97. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/constants.py +0 -0
  98. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/crypto_verify.py +0 -0
  99. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/decay.py +0 -0
  100. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/diff.py +0 -0
  101. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/encryption.py +0 -0
  102. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/federated.py +0 -0
  103. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/gardener.py +0 -0
  104. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/hooks.py +0 -0
  105. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/ipfs_remote.py +0 -0
  106. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/knowledge_graph.py +0 -0
  107. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/llm/__init__.py +0 -0
  108. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/llm/anthropic_provider.py +0 -0
  109. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/llm/base.py +0 -0
  110. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/llm/factory.py +0 -0
  111. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/llm/openai_provider.py +0 -0
  112. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/merge.py +0 -0
  113. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/objects.py +0 -0
  114. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/pii_scanner.py +0 -0
  115. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/privacy_budget.py +0 -0
  116. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/refs.py +0 -0
  117. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/repository.py +0 -0
  118. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/schema.py +0 -0
  119. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/staging.py +0 -0
  120. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/storage/__init__.py +0 -0
  121. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/storage/base.py +0 -0
  122. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/storage/gcs.py +0 -0
  123. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/storage/local.py +0 -0
  124. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/storage/s3.py +0 -0
  125. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/temporal_index.py +0 -0
  126. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/test_runner.py +0 -0
  127. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/trust.py +0 -0
  128. {agmem-0.1.6 → agmem-0.2.0}/memvcs/core/vector_store.py +0 -0
  129. {agmem-0.1.6 → agmem-0.2.0}/memvcs/integrations/__init__.py +0 -0
  130. {agmem-0.1.6 → agmem-0.2.0}/memvcs/integrations/mcp_server.py +0 -0
  131. {agmem-0.1.6 → agmem-0.2.0}/memvcs/integrations/web_ui/__init__.py +0 -0
  132. {agmem-0.1.6 → agmem-0.2.0}/memvcs/integrations/web_ui/server.py +0 -0
  133. {agmem-0.1.6 → agmem-0.2.0}/memvcs/retrieval/__init__.py +0 -0
  134. {agmem-0.1.6 → agmem-0.2.0}/memvcs/retrieval/base.py +0 -0
  135. {agmem-0.1.6 → agmem-0.2.0}/memvcs/retrieval/pack.py +0 -0
  136. {agmem-0.1.6 → agmem-0.2.0}/memvcs/retrieval/recaller.py +0 -0
  137. {agmem-0.1.6 → agmem-0.2.0}/memvcs/retrieval/strategies.py +0 -0
  138. {agmem-0.1.6 → agmem-0.2.0}/memvcs/utils/__init__.py +0 -0
  139. {agmem-0.1.6 → agmem-0.2.0}/memvcs/utils/helpers.py +0 -0
  140. {agmem-0.1.6 → agmem-0.2.0}/setup.cfg +0 -0
  141. {agmem-0.1.6 → agmem-0.2.0}/setup.py +0 -0
  142. {agmem-0.1.6 → agmem-0.2.0}/tests/test_access_index.py +0 -0
  143. {agmem-0.1.6 → agmem-0.2.0}/tests/test_advanced_commands.py +0 -0
  144. {agmem-0.1.6 → agmem-0.2.0}/tests/test_audit.py +0 -0
  145. {agmem-0.1.6 → agmem-0.2.0}/tests/test_commit_importance.py +0 -0
  146. {agmem-0.1.6 → agmem-0.2.0}/tests/test_consistency.py +0 -0
  147. {agmem-0.1.6 → agmem-0.2.0}/tests/test_crypto_verify.py +0 -0
  148. {agmem-0.1.6 → agmem-0.2.0}/tests/test_decay.py +0 -0
  149. {agmem-0.1.6 → agmem-0.2.0}/tests/test_edge_cases.py +0 -0
  150. {agmem-0.1.6 → agmem-0.2.0}/tests/test_encryption.py +0 -0
  151. {agmem-0.1.6 → agmem-0.2.0}/tests/test_federated.py +0 -0
  152. {agmem-0.1.6 → agmem-0.2.0}/tests/test_ipfs_remote.py +0 -0
  153. {agmem-0.1.6 → agmem-0.2.0}/tests/test_llm_provider.py +0 -0
  154. {agmem-0.1.6 → agmem-0.2.0}/tests/test_objects.py +0 -0
  155. {agmem-0.1.6 → agmem-0.2.0}/tests/test_pii.py +0 -0
  156. {agmem-0.1.6 → agmem-0.2.0}/tests/test_plan_features.py +0 -0
  157. {agmem-0.1.6 → agmem-0.2.0}/tests/test_privacy_budget.py +0 -0
  158. {agmem-0.1.6 → agmem-0.2.0}/tests/test_repository.py +0 -0
  159. {agmem-0.1.6 → agmem-0.2.0}/tests/test_resolve_helpers.py +0 -0
  160. {agmem-0.1.6 → agmem-0.2.0}/tests/test_retrieval.py +0 -0
  161. {agmem-0.1.6 → agmem-0.2.0}/tests/test_temporal_index.py +0 -0
  162. {agmem-0.1.6 → agmem-0.2.0}/tests/test_trust.py +0 -0
  163. {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.1.6
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** — Periodic Merkle verification in daemon loop; safe auto-remediation hooks
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** | **Zero-knowledge proofs** | zk-SNARK-style proofs for keyword containment and memory freshness. **Command:** `agmem prove --memory <path> --property keyword|freshness --value <v> [-o out]` (stub). |
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** — Periodic Merkle verification in daemon loop; safe auto-remediation hooks
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** | **Zero-knowledge proofs** | zk-SNARK-style proofs for keyword containment and memory freshness. **Command:** `agmem prove --memory <path> --property keyword|freshness --value <v> [-o out]` (stub). |
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.1.6
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** — Periodic Merkle verification in daemon loop; safe auto-remediation hooks
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** | **Zero-knowledge proofs** | zk-SNARK-style proofs for keyword containment and memory freshness. **Command:** `agmem prove --memory <path> --property keyword|freshness --value <v> [-o out]` (stub). |
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