agmem 0.2.1__tar.gz → 0.3.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 (183) hide show
  1. {agmem-0.2.1/agmem.egg-info → agmem-0.3.0}/PKG-INFO +338 -27
  2. {agmem-0.2.1 → agmem-0.3.0}/README.md +336 -25
  3. {agmem-0.2.1 → agmem-0.3.0/agmem.egg-info}/PKG-INFO +338 -27
  4. {agmem-0.2.1 → agmem-0.3.0}/agmem.egg-info/SOURCES.txt +21 -0
  5. agmem-0.3.0/memvcs/core/agents.py +411 -0
  6. agmem-0.3.0/memvcs/core/archaeology.py +410 -0
  7. agmem-0.3.0/memvcs/core/collaboration.py +435 -0
  8. agmem-0.3.0/memvcs/core/compliance.py +427 -0
  9. agmem-0.3.0/memvcs/core/confidence.py +379 -0
  10. agmem-0.3.0/memvcs/core/daemon.py +735 -0
  11. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/delta.py +45 -23
  12. agmem-0.3.0/memvcs/core/private_search.py +327 -0
  13. agmem-0.3.0/memvcs/core/search_index.py +538 -0
  14. agmem-0.3.0/memvcs/core/semantic_graph.py +388 -0
  15. agmem-0.3.0/memvcs/core/session.py +520 -0
  16. agmem-0.3.0/memvcs/core/timetravel.py +430 -0
  17. agmem-0.3.0/memvcs/integrations/mcp_server.py +1036 -0
  18. agmem-0.3.0/memvcs/integrations/web_ui/server.py +775 -0
  19. agmem-0.3.0/memvcs/integrations/web_ui/websocket.py +223 -0
  20. {agmem-0.2.1 → agmem-0.3.0}/pyproject.toml +7 -1
  21. agmem-0.3.0/tests/test_archaeology.py +167 -0
  22. agmem-0.3.0/tests/test_collaboration.py +238 -0
  23. agmem-0.3.0/tests/test_compliance.py +227 -0
  24. agmem-0.3.0/tests/test_confidence.py +205 -0
  25. agmem-0.3.0/tests/test_daemon.py +389 -0
  26. agmem-0.3.0/tests/test_phase3.py +280 -0
  27. agmem-0.3.0/tests/test_progressive_search.py +247 -0
  28. agmem-0.3.0/tests/test_session.py +240 -0
  29. agmem-0.3.0/tests/test_web_api.py +255 -0
  30. agmem-0.2.1/memvcs/integrations/mcp_server.py +0 -265
  31. agmem-0.2.1/memvcs/integrations/web_ui/server.py +0 -351
  32. {agmem-0.2.1 → agmem-0.3.0}/LICENSE +0 -0
  33. {agmem-0.2.1 → agmem-0.3.0}/MANIFEST.in +0 -0
  34. {agmem-0.2.1 → agmem-0.3.0}/agmem.egg-info/dependency_links.txt +0 -0
  35. {agmem-0.2.1 → agmem-0.3.0}/agmem.egg-info/entry_points.txt +0 -0
  36. {agmem-0.2.1 → agmem-0.3.0}/agmem.egg-info/requires.txt +0 -0
  37. {agmem-0.2.1 → agmem-0.3.0}/agmem.egg-info/top_level.txt +0 -0
  38. {agmem-0.2.1 → agmem-0.3.0}/docs/AGMEM_PUBLISHING_SETUP.md +0 -0
  39. {agmem-0.2.1 → agmem-0.3.0}/docs/CONFIG.md +0 -0
  40. {agmem-0.2.1 → agmem-0.3.0}/docs/FEDERATED.md +0 -0
  41. {agmem-0.2.1 → agmem-0.3.0}/docs/GTM.md +0 -0
  42. {agmem-0.2.1 → agmem-0.3.0}/docs/KNOWLEDGE_GRAPH.md +0 -0
  43. {agmem-0.2.1 → agmem-0.3.0}/docs/SEQUENTIAL_VALIDATION.md +0 -0
  44. {agmem-0.2.1 → agmem-0.3.0}/docs/TEST_REPORT.md +0 -0
  45. {agmem-0.2.1 → agmem-0.3.0}/docs/aux/INSTALL.md +0 -0
  46. {agmem-0.2.1 → agmem-0.3.0}/examples/basic_workflow.sh +0 -0
  47. {agmem-0.2.1 → agmem-0.3.0}/memvcs/__init__.py +0 -0
  48. {agmem-0.2.1 → agmem-0.3.0}/memvcs/cli.py +0 -0
  49. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/__init__.py +0 -0
  50. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/add.py +0 -0
  51. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/audit.py +0 -0
  52. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/base.py +0 -0
  53. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/blame.py +0 -0
  54. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/branch.py +0 -0
  55. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/checkout.py +0 -0
  56. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/clean.py +0 -0
  57. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/clone.py +0 -0
  58. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/commit.py +0 -0
  59. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/daemon.py +0 -0
  60. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/decay.py +0 -0
  61. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/diff.py +0 -0
  62. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/distill.py +0 -0
  63. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/federated.py +0 -0
  64. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/fsck.py +0 -0
  65. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/garden.py +0 -0
  66. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/gc.py +0 -0
  67. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/graph.py +0 -0
  68. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/init.py +0 -0
  69. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/log.py +0 -0
  70. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/mcp.py +0 -0
  71. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/merge.py +0 -0
  72. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/pack.py +0 -0
  73. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/prove.py +0 -0
  74. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/pull.py +0 -0
  75. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/push.py +0 -0
  76. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/recall.py +0 -0
  77. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/reflog.py +0 -0
  78. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/remote.py +0 -0
  79. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/repair.py +0 -0
  80. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/reset.py +0 -0
  81. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/resolve.py +0 -0
  82. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/resurrect.py +0 -0
  83. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/search.py +0 -0
  84. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/serve.py +0 -0
  85. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/show.py +0 -0
  86. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/stash.py +0 -0
  87. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/status.py +0 -0
  88. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/tag.py +0 -0
  89. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/test.py +0 -0
  90. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/timeline.py +0 -0
  91. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/tree.py +0 -0
  92. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/verify.py +0 -0
  93. {agmem-0.2.1 → agmem-0.3.0}/memvcs/commands/when.py +0 -0
  94. {agmem-0.2.1 → agmem-0.3.0}/memvcs/coordinator/__init__.py +0 -0
  95. {agmem-0.2.1 → agmem-0.3.0}/memvcs/coordinator/server.py +0 -0
  96. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/__init__.py +0 -0
  97. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/access_index.py +0 -0
  98. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/audit.py +0 -0
  99. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/compression_metrics.py +0 -0
  100. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/compression_pipeline.py +0 -0
  101. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/config_loader.py +0 -0
  102. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/consistency.py +0 -0
  103. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/constants.py +0 -0
  104. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/crypto_verify.py +0 -0
  105. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/decay.py +0 -0
  106. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/diff.py +0 -0
  107. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/distiller.py +0 -0
  108. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/encryption.py +0 -0
  109. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/fast_similarity.py +0 -0
  110. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/federated.py +0 -0
  111. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/gardener.py +0 -0
  112. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/hooks.py +0 -0
  113. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/ipfs_remote.py +0 -0
  114. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/knowledge_graph.py +0 -0
  115. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/llm/__init__.py +0 -0
  116. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/llm/anthropic_provider.py +0 -0
  117. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/llm/base.py +0 -0
  118. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/llm/factory.py +0 -0
  119. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/llm/openai_provider.py +0 -0
  120. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/merge.py +0 -0
  121. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/objects.py +0 -0
  122. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/pack.py +0 -0
  123. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/pii_scanner.py +0 -0
  124. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/privacy_budget.py +0 -0
  125. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/privacy_validator.py +0 -0
  126. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/protocol_builder.py +0 -0
  127. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/refs.py +0 -0
  128. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/remote.py +0 -0
  129. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/repository.py +0 -0
  130. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/schema.py +0 -0
  131. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/staging.py +0 -0
  132. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/storage/__init__.py +0 -0
  133. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/storage/base.py +0 -0
  134. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/storage/gcs.py +0 -0
  135. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/storage/local.py +0 -0
  136. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/storage/s3.py +0 -0
  137. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/temporal_index.py +0 -0
  138. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/test_runner.py +0 -0
  139. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/trust.py +0 -0
  140. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/vector_store.py +0 -0
  141. {agmem-0.2.1 → agmem-0.3.0}/memvcs/core/zk_proofs.py +0 -0
  142. {agmem-0.2.1 → agmem-0.3.0}/memvcs/health/__init__.py +0 -0
  143. {agmem-0.2.1 → agmem-0.3.0}/memvcs/health/monitor.py +0 -0
  144. {agmem-0.2.1 → agmem-0.3.0}/memvcs/integrations/__init__.py +0 -0
  145. {agmem-0.2.1 → agmem-0.3.0}/memvcs/integrations/web_ui/__init__.py +0 -0
  146. {agmem-0.2.1 → agmem-0.3.0}/memvcs/retrieval/__init__.py +0 -0
  147. {agmem-0.2.1 → agmem-0.3.0}/memvcs/retrieval/base.py +0 -0
  148. {agmem-0.2.1 → agmem-0.3.0}/memvcs/retrieval/pack.py +0 -0
  149. {agmem-0.2.1 → agmem-0.3.0}/memvcs/retrieval/recaller.py +0 -0
  150. {agmem-0.2.1 → agmem-0.3.0}/memvcs/retrieval/strategies.py +0 -0
  151. {agmem-0.2.1 → agmem-0.3.0}/memvcs/utils/__init__.py +0 -0
  152. {agmem-0.2.1 → agmem-0.3.0}/memvcs/utils/helpers.py +0 -0
  153. {agmem-0.2.1 → agmem-0.3.0}/setup.cfg +0 -0
  154. {agmem-0.2.1 → agmem-0.3.0}/setup.py +0 -0
  155. {agmem-0.2.1 → agmem-0.3.0}/tests/test_access_index.py +0 -0
  156. {agmem-0.2.1 → agmem-0.3.0}/tests/test_advanced_commands.py +0 -0
  157. {agmem-0.2.1 → agmem-0.3.0}/tests/test_audit.py +0 -0
  158. {agmem-0.2.1 → agmem-0.3.0}/tests/test_commit_importance.py +0 -0
  159. {agmem-0.2.1 → agmem-0.3.0}/tests/test_compression_pipeline.py +0 -0
  160. {agmem-0.2.1 → agmem-0.3.0}/tests/test_consistency.py +0 -0
  161. {agmem-0.2.1 → agmem-0.3.0}/tests/test_crypto_verify.py +0 -0
  162. {agmem-0.2.1 → agmem-0.3.0}/tests/test_decay.py +0 -0
  163. {agmem-0.2.1 → agmem-0.3.0}/tests/test_delta_encoding.py +0 -0
  164. {agmem-0.2.1 → agmem-0.3.0}/tests/test_distiller_dp.py +0 -0
  165. {agmem-0.2.1 → agmem-0.3.0}/tests/test_edge_cases.py +0 -0
  166. {agmem-0.2.1 → agmem-0.3.0}/tests/test_encryption.py +0 -0
  167. {agmem-0.2.1 → agmem-0.3.0}/tests/test_federated.py +0 -0
  168. {agmem-0.2.1 → agmem-0.3.0}/tests/test_health_monitor.py +0 -0
  169. {agmem-0.2.1 → agmem-0.3.0}/tests/test_ipfs_integration.py +0 -0
  170. {agmem-0.2.1 → agmem-0.3.0}/tests/test_ipfs_remote.py +0 -0
  171. {agmem-0.2.1 → agmem-0.3.0}/tests/test_llm_provider.py +0 -0
  172. {agmem-0.2.1 → agmem-0.3.0}/tests/test_objects.py +0 -0
  173. {agmem-0.2.1 → agmem-0.3.0}/tests/test_pack_gc.py +0 -0
  174. {agmem-0.2.1 → agmem-0.3.0}/tests/test_performance_benchmarks.py +0 -0
  175. {agmem-0.2.1 → agmem-0.3.0}/tests/test_pii.py +0 -0
  176. {agmem-0.2.1 → agmem-0.3.0}/tests/test_plan_features.py +0 -0
  177. {agmem-0.2.1 → agmem-0.3.0}/tests/test_privacy_budget.py +0 -0
  178. {agmem-0.2.1 → agmem-0.3.0}/tests/test_repository.py +0 -0
  179. {agmem-0.2.1 → agmem-0.3.0}/tests/test_resolve_helpers.py +0 -0
  180. {agmem-0.2.1 → agmem-0.3.0}/tests/test_retrieval.py +0 -0
  181. {agmem-0.2.1 → agmem-0.3.0}/tests/test_temporal_index.py +0 -0
  182. {agmem-0.2.1 → agmem-0.3.0}/tests/test_trust.py +0 -0
  183. {agmem-0.2.1 → agmem-0.3.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.2.1
3
+ Version: 0.3.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,health-monitoring,delta-encoding,ipfs,federated
13
+ Keywords: ai,agent,memory,version-control,git,vcs,llm,merkle,audit,encryption,differential-privacy,trust,multi-agent,health-monitoring,delta-encoding,ipfs,federated,time-travel,semantic-graph,memory-agents,confidence-scoring,session-management,collaboration
14
14
  Classifier: Development Status :: 3 - Alpha
15
15
  Classifier: Intended Audience :: Developers
16
16
  Classifier: License :: OSI Approved :: MIT License
@@ -123,33 +123,328 @@ agmem solves all of these problems with a familiar Git-like interface.
123
123
 
124
124
  ## Features
125
125
 
126
+ ### 🔧 Core Version Control
126
127
  - ✅ **Git-like workflow** — `init`, `add`, `commit`, `status`, `log`, `branch`, `checkout`, `merge`, `diff`, `show`, `reset`, `tag`, `stash`, `reflog`, `blame`, `tree`, `clean`
127
- - ✅ **HEAD~n** — Walk parent chain: `agmem log HEAD~5`, `agmem show HEAD~1`
128
+ - ✅ **HEAD~n resolution** — Walk parent chain: `agmem log HEAD~5`, `agmem show HEAD~1`
128
129
  - ✅ **Branch/tag names with `/`** — Git-style refs: `feature/test`, `releases/v1` (path-validated)
129
- - ✅ **Content-addressable storage** — SHA-256 deduplication like Git
130
+ - ✅ **Content-addressable storage** — SHA-256 deduplication like Git with zlib compression
130
131
  - ✅ **Memory-type-aware merging** — Episodic append, semantic consolidate, procedural prefer-new
131
- - ✅ **Remote (file://)** — `clone`, `push`, `pull`, `remote`; pull merges into current branch; push conflict detection (non–fast-forward reject)
132
- - **Search** Semantic with `agmem[vector]`, or plain text over `current/` when vector deps missing
133
- - ✅ **Knowledge graph** — `agmem graph` from wikilinks/tags; `--no-similarity`, `--format d3`, `--serve` (optional `agmem[web]`)
134
- - ✅ **Integrity** — `agmem fsck` (objects, refs, vector store, Merkle/signature); `agmem verify --crypto`; path/ref/hash validation (no path traversal)
135
- - ✅ **Cryptographic commit verification** — Merkle tree over blobs; Ed25519 signing of root; verify on checkout, pull, `verify`, `fsck`; Merkle proofs for single-blob verification
136
- - ✅ **Encryption at rest** — Optional AES-256-GCM with Argon2id key derivation; hash-then-encrypt preserves deduplication
137
- - ✅ **Tamper-evident audit trail** — Append-only hash-chained log (init, add, commit, checkout, merge, push, pull, config); `agmem audit` and `agmem audit --verify`
138
- - **Multi-agent trust** — Trust store (full / conditional / untrusted) per public key; applied on pull/merge; clone copies remote keys
139
- - ✅ **Conflict resolution** — `agmem resolve` with ours/theirs/both; conflicts persisted in `.mem/merge/`; path-safe
140
- - ✅ **Differential privacy** — Epsilon/delta budget in `.mem/privacy_budget.json`; `--private` on `agmem distill` and `agmem garden`; noise applies to fact-level data only (metadata fields excluded)
141
- - ✅ **Pack files & GC** — `agmem gc [--repack]` (reachable from refs, prune loose, optional pack file + index); ObjectStore reads from pack when loose missing
142
- - ✅ **Multi-provider LLM** — OpenAI and Anthropic via `memvcs.core.llm`; config/repo or env; used by gardener, distiller, consistency, merge
143
- - ✅ **Temporal querying** — Point-in-time and range queries in temporal index; frontmatter timestamps
144
- - ✅ **Federated collaboration** — `agmem federated push|pull`; protocol-compliant summaries (agent_id, timestamp, topic_counts, fact_hashes); optional DP on outbound; coordinator API in docs/FEDERATED.md
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; enabled in GC repack with multi-tier similarity filtering
148
- - ✅ **Performance safeguards** — Multi-tier similarity filter (length ratio + SimHash) avoids O(n²×m²) worst-case comparisons
149
- - ✅ **GPU acceleration** — Vector store detects GPU for embedding model when available
150
- - ✅ **Optional** — `serve`, `daemon` (watch + auto-commit), `garden` (episode archival), MCP server; install extras as needed
151
-
152
- ### Feature Coverage
132
+
133
+ ### 🌐 Collaboration & Remotes
134
+ - ✅ **Remote operations** — `clone`, `push`, `pull`, `remote` with file:// URLs
135
+ - ✅ **Multi-agent trust** — Trust store (full/conditional/untrusted) per public key
136
+ - ✅ **Federated collaboration** — Coordinator API for distributed memory sharing
137
+ - ✅ **Conflict resolution** — `agmem resolve` with ours/theirs/both strategies
138
+
139
+ ### 🔒 Security & Privacy
140
+ - ✅ **Cryptographic verification** — Merkle tree over blobs, Ed25519 signing
141
+ - ✅ **Encryption at rest** — AES-256-GCM with Argon2id key derivation
142
+ - ✅ **Tamper-evident audit** — Append-only hash-chained log
143
+ - ✅ **Differential privacy** — Epsilon/delta budget with fact-level noise
144
+ - ✅ **Zero-knowledge proofs** — Keyword containment, memory freshness
145
+ - ✅ **PII scanning** — Pre-commit hooks for sensitive data
146
+
147
+ ### 🧠 Intelligence & Search
148
+ - ✅ **Semantic search** — Vector embeddings with GPU acceleration
149
+ - ✅ **Knowledge graph** — Wikilinks, tags, co-occurrence relationships
150
+ - ✅ **Multi-provider LLM** — OpenAI and Anthropic integration
151
+ - ✅ **Temporal queries** — Point-in-time and range-based retrieval
152
+
153
+ ### ⚙️ Operations & Performance
154
+ - ✅ **Pack files & GC** — Object packing with 5-10x delta compression
155
+ - ✅ **Health monitoring** — Storage, redundancy, staleness, graph consistency
156
+ - ✅ **IPFS/S3/GCS remotes** — Distributed storage backends
157
+ - ✅ **GPU acceleration** — CUDA/MPS detection for embeddings
158
+
159
+ ---
160
+
161
+ ## 🚀 New in v0.3.0: Complete Feature Set
162
+
163
+ ### Phase 1: UX Parity
164
+
165
+ ```mermaid
166
+ graph LR
167
+ subgraph Daemon ["🔄 Observation Daemon"]
168
+ D1["Extract MCP<br/>observations"] --> D2["Classify by<br/>memory type"]
169
+ D2 --> D3["Auto-stage<br/>changes"]
170
+ D3 --> D4["Generate commit<br/>message (LLM)"]
171
+ end
172
+
173
+ subgraph WebUI ["🌐 Web Viewer"]
174
+ W1["Dashboard"] --> W2["Timeline"]
175
+ W2 --> W3["Graph"]
176
+ W3 --> W4["Agents"]
177
+ end
178
+
179
+ subgraph Search ["🔍 Progressive Search"]
180
+ S1["Layer 1:<br/>Fast index"] --> S2["Layer 2:<br/>Timeline context"]
181
+ S2 --> S3["Layer 3:<br/>Full details"]
182
+ end
183
+
184
+ subgraph Sessions ["📋 Session Manager"]
185
+ SS1["Start session"] --> SS2["Track observations"]
186
+ SS2 --> SS3["Classify topics"]
187
+ SS3 --> SS4["Auto-commit"]
188
+ end
189
+
190
+ style Daemon fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
191
+ style WebUI fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
192
+ style Search fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
193
+ style Sessions fill:#fff3e0,stroke:#f57c00,stroke-width:2px
194
+ ```
195
+
196
+ | Feature | Module | Description |
197
+ |---------|--------|-------------|
198
+ | **Observation Daemon** | `daemon.py` | Real-time MCP tool observation extraction with LLM commit messages |
199
+ | **Web Viewer UI** | `web_ui/` | React dashboard with 22 REST endpoints + WebSocket |
200
+ | **Progressive Search** | `search_index.py` | 3-tier search: index → timeline → full details |
201
+ | **Session Manager** | `session.py` | Session lifecycle with topic classification |
202
+
203
+ ### Phase 2: Differentiation
204
+
205
+ ```mermaid
206
+ graph TB
207
+ subgraph Collab ["👥 Multi-Agent Collaboration"]
208
+ C1["Agent Registry<br/>register, list, trust"]
209
+ C2["Trust Manager<br/>grant, revoke, verify"]
210
+ C3["Contribution Tracker<br/>commits, leaderboard"]
211
+ C4["Conflict Detector<br/>concurrent edits"]
212
+ end
213
+
214
+ subgraph Compliance ["📋 Compliance Dashboard"]
215
+ CP1["Privacy Manager<br/>budget tracking"]
216
+ CP2["Encryption Verifier<br/>status checks"]
217
+ CP3["Tamper Detector<br/>Merkle verification"]
218
+ CP4["Audit Analyzer<br/>pattern detection"]
219
+ end
220
+
221
+ subgraph Archaeology ["🏛️ Memory Archaeology"]
222
+ A1["History Explorer<br/>file evolution"]
223
+ A2["Forgotten Finder<br/>unused memories"]
224
+ A3["Pattern Analyzer<br/>recurring themes"]
225
+ A4["Context Reconstructor<br/>historical state"]
226
+ end
227
+
228
+ subgraph Confidence ["📊 Confidence Scoring"]
229
+ CS1["Decay Model<br/>exponential, linear, step"]
230
+ CS2["Source Tracker<br/>reliability scores"]
231
+ CS3["Confidence Calculator<br/>multi-factor scoring"]
232
+ CS4["Expiration Alert<br/>low-confidence items"]
233
+ end
234
+
235
+ style Collab fill:#e1f5fe,stroke:#01579b,stroke-width:2px
236
+ style Compliance fill:#fce4ec,stroke:#c2185b,stroke-width:2px
237
+ style Archaeology fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
238
+ style Confidence fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
239
+ ```
240
+
241
+ | Feature | Module | MCP Tools |
242
+ |---------|--------|-----------|
243
+ | **Collaboration** | `collaboration.py` | `agent_register`, `trust_grant`, `contributions_list` |
244
+ | **Compliance** | `compliance.py` | `privacy_status`, `integrity_verify` |
245
+ | **Archaeology** | `archaeology.py` | `forgotten_memories`, `find_context` |
246
+ | **Confidence** | `confidence.py` | `confidence_score`, `low_confidence`, `expiring_soon` |
247
+
248
+ ### Phase 3: Advanced Features
249
+
250
+ ```mermaid
251
+ graph TB
252
+ subgraph TimeTravel ["⏰ Time-Travel Debugging"]
253
+ T1["TimeExpressionParser<br/>'yesterday', '2 weeks ago'"]
254
+ T2["TemporalNavigator<br/>commit lookup by time"]
255
+ T3["TimelineVisualizer<br/>activity heatmaps"]
256
+ T4["SnapshotExporter<br/>JSON, Markdown, Archive"]
257
+ end
258
+
259
+ subgraph PrivateSearch ["🔐 Privacy-Preserving Search"]
260
+ P1["SearchTokenizer<br/>blind search tokens"]
261
+ P2["AccessControl<br/>file-level permissions"]
262
+ P3["DP Noise<br/>result randomization"]
263
+ P4["Private Engine<br/>secure retrieval"]
264
+ end
265
+
266
+ subgraph SemanticGraph ["🕸️ Semantic Memory Graph"]
267
+ G1["GraphBuilder<br/>auto-infer relationships"]
268
+ G2["Clusterer<br/>type, tag, community"]
269
+ G3["GraphSearch<br/>traversal queries"]
270
+ G4["Visualizer<br/>D3 force-directed"]
271
+ end
272
+
273
+ subgraph Agents ["🤖 Memory Agents"]
274
+ AG1["ConsolidationAgent<br/>merge fragmented"]
275
+ AG2["CleanupAgent<br/>duplicates, stale"]
276
+ AG3["AlertAgent<br/>notifications"]
277
+ AG4["AgentManager<br/>orchestration"]
278
+ end
279
+
280
+ style TimeTravel fill:#fff3e0,stroke:#e65100,stroke-width:2px
281
+ style PrivateSearch fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
282
+ style SemanticGraph fill:#e0f2f1,stroke:#00695c,stroke-width:2px
283
+ style Agents fill:#fbe9e7,stroke:#bf360c,stroke-width:2px
284
+ ```
285
+
286
+ | Feature | Module | MCP Tools |
287
+ |---------|--------|-----------|
288
+ | **Time-Travel** | `timetravel.py` | `time_travel`, `timeline` |
289
+ | **Private Search** | `private_search.py` | Secure search with access control |
290
+ | **Semantic Graph** | `semantic_graph.py` | `memory_graph`, `graph_related` |
291
+ | **Memory Agents** | `agents.py` | `agent_health`, `find_duplicates`, `cleanup_candidates` |
292
+
293
+ ---
294
+
295
+ ## 📊 Complete Architecture
296
+
297
+ ```mermaid
298
+ flowchart TB
299
+ subgraph Frontend ["🖥️ Frontend Layer"]
300
+ direction LR
301
+ CLI["CLI<br/>agmem *"]
302
+ MCP["MCP Server<br/>30 tools"]
303
+ WEB["Web UI<br/>React + WebSocket"]
304
+ API["REST API<br/>22 endpoints"]
305
+ end
306
+
307
+ subgraph Core ["⚙️ Core Layer (48 Modules)"]
308
+ direction TB
309
+
310
+ subgraph VCS ["Version Control"]
311
+ Repository
312
+ Objects
313
+ Refs
314
+ Staging
315
+ Merge
316
+ Diff
317
+ end
318
+
319
+ subgraph Intelligence ["Intelligence"]
320
+ VectorStore["Vector Store"]
321
+ KnowledgeGraph["Knowledge Graph"]
322
+ SemanticGraph["Semantic Graph"]
323
+ SearchIndex["Search Index"]
324
+ LLM["LLM Providers"]
325
+ end
326
+
327
+ subgraph Security ["Security"]
328
+ CryptoVerify["Crypto Verify"]
329
+ Encryption
330
+ Trust
331
+ Audit
332
+ ZKProofs["ZK Proofs"]
333
+ end
334
+
335
+ subgraph Automation ["Automation"]
336
+ Daemon
337
+ Session
338
+ Agents
339
+ Gardener
340
+ Distiller
341
+ end
342
+ end
343
+
344
+ subgraph Storage ["💾 Storage Layer"]
345
+ direction LR
346
+ Local["Local<br/>.mem/objects/"]
347
+ Pack["Pack Files<br/>Delta encoded"]
348
+ IPFS["IPFS<br/>Distributed"]
349
+ Cloud["S3/GCS<br/>Cloud"]
350
+ end
351
+
352
+ Frontend --> Core
353
+ Core --> Storage
354
+
355
+ style Frontend fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
356
+ style Core fill:#f5f5f5,stroke:#616161,stroke-width:2px
357
+ style Storage fill:#fff3e0,stroke:#e65100,stroke-width:2px
358
+ style VCS fill:#c8e6c9,stroke:#2e7d32
359
+ style Intelligence fill:#bbdefb,stroke:#1565c0
360
+ style Security fill:#ffcdd2,stroke:#c62828
361
+ style Automation fill:#e1bee7,stroke:#7b1fa2
362
+ ```
363
+
364
+ ---
365
+
366
+ ## 🔄 User Flows
367
+
368
+ ### Memory Commit Flow
369
+
370
+ ```mermaid
371
+ sequenceDiagram
372
+ participant Agent as 🤖 Agent
373
+ participant Daemon as 🔄 Daemon
374
+ participant Session as 📋 Session
375
+ participant VCS as 💾 VCS
376
+ participant Graph as 🕸️ Graph
377
+
378
+ Agent->>Daemon: MCP tool observation
379
+ Daemon->>Daemon: Extract & classify
380
+ Daemon->>Session: Add to session
381
+ Session->>Session: Topic classification
382
+
383
+ alt Auto-commit enabled
384
+ Session->>VCS: Stage changes
385
+ VCS->>VCS: Generate commit (LLM)
386
+ VCS->>Graph: Update relationships
387
+ else Manual commit
388
+ Agent->>VCS: agmem commit
389
+ VCS->>Graph: Update relationships
390
+ end
391
+
392
+ Graph->>Graph: Rebuild connections
393
+ ```
394
+
395
+ ### Multi-Agent Collaboration Flow
396
+
397
+ ```mermaid
398
+ sequenceDiagram
399
+ participant A1 as 🤖 Agent A
400
+ participant Reg as 📋 Registry
401
+ participant Trust as 🔐 Trust
402
+ participant Remote as 🌐 Remote
403
+ participant A2 as 🤖 Agent B
404
+
405
+ A1->>Reg: agent_register
406
+ A2->>Reg: agent_register
407
+
408
+ A1->>Trust: trust_grant(Agent B)
409
+ Trust->>Trust: Verify public key
410
+
411
+ A1->>Remote: agmem push
412
+ Remote->>Remote: Store commits
413
+
414
+ A2->>Remote: agmem pull
415
+ Remote->>Trust: Verify origin
416
+ Trust->>A2: Merge if trusted
417
+
418
+ A2->>A2: contribution_log
419
+ ```
420
+
421
+ ### Time-Travel Debugging Flow
422
+
423
+ ```mermaid
424
+ sequenceDiagram
425
+ participant User as 👤 User
426
+ participant Parser as 📅 Parser
427
+ participant Nav as 🧭 Navigator
428
+ participant VCS as 💾 VCS
429
+ participant Export as 📦 Exporter
430
+
431
+ User->>Parser: "2 weeks ago"
432
+ Parser->>Parser: Parse expression
433
+ Parser->>Nav: Get commit at time
434
+ Nav->>VCS: Lookup by timestamp
435
+ VCS->>Nav: Return commit hash
436
+
437
+ alt View timeline
438
+ Nav->>User: Activity heatmap
439
+ else Export snapshot
440
+ Nav->>Export: Export state
441
+ Export->>User: JSON/Markdown/Archive
442
+ end
443
+ ```
444
+
445
+ ---
446
+
447
+ ### Feature Coverage Overview
153
448
 
154
449
  ```mermaid
155
450
  graph TB
@@ -184,6 +479,13 @@ graph TB
184
479
  Intel4["✅ Temporal queries<br/>Point-in-time, Range"]
185
480
  end
186
481
 
482
+ subgraph NewFeatures ["🆕 v0.3.0 Features"]
483
+ New1["✅ Web UI + React Frontend<br/>Dashboard, Graph, Timeline"]
484
+ New2["✅ Session Management<br/>Topic classification, auto-commit"]
485
+ New3["✅ Memory Agents<br/>Consolidation, Cleanup, Alerts"]
486
+ New4["✅ Time-Travel<br/>Natural language dates"]
487
+ end
488
+
187
489
  subgraph Ops ["⚙️ Operations"]
188
490
  Ops1["✅ Pack/GC<br/>Object packing, cleanup"]
189
491
  Ops2["✅ Daemon mode<br/>Watch + auto-commit"]
@@ -194,13 +496,15 @@ graph TB
194
496
  Collab --> Safety
195
497
  Safety --> Privacy
196
498
  Privacy --> Intelligence
197
- Intelligence --> Ops
499
+ Intelligence --> NewFeatures
500
+ NewFeatures --> Ops
198
501
 
199
502
  style Core fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
200
503
  style Collab fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
201
504
  style Safety fill:#ffebee,stroke:#c62828,stroke-width:2px
202
505
  style Privacy fill:#e1f5fe,stroke:#01579b,stroke-width:2px
203
506
  style Intelligence fill:#f1f8e9,stroke:#558b2f,stroke-width:2px
507
+ style NewFeatures fill:#fff8e1,stroke:#f9a825,stroke-width:3px
204
508
  style Ops fill:#fff3e0,stroke:#e65100,stroke-width:2px
205
509
  ```
206
510
 
@@ -827,8 +1131,15 @@ mypy memvcs/
827
1131
  - [x] Encryption at rest (optional AES-256-GCM); differential privacy budget (`--private` on distill/garden)
828
1132
  - [x] Pack files and garbage collection (`agmem gc`); ZK proofs and federated stubs (`agmem prove`, `agmem federated`)
829
1133
  - [x] Multi-provider LLM (OpenAI, Anthropic); temporal range queries; daemon health checks; GPU detection; test suite and CI
1134
+ - [x] **Phase 1: UX Parity** — Observation daemon, web viewer UI, progressive disclosure search, session-aware auto-commit
1135
+ - [x] **Phase 2: Differentiation** — Multi-agent collaboration, compliance dashboard, memory archaeology, confidence scoring
1136
+ - [x] **Phase 3: Advanced Features** — Time-travel debugging, privacy-preserving search, semantic memory graph, memory agents
1137
+ - [x] **React Frontend** — Interactive force-directed graph visualization with search, zoom, pan, node dragging
1138
+ - [x] **WebSocket Support** — Real-time updates for file changes, commits, and agent activity
1139
+ - [x] **Service Templates** — systemd and launchd service files for daemon deployment
830
1140
  - [ ] IPFS remote (stub in place); full ZK circuits and federated coordinator
831
1141
 
1142
+
832
1143
  ## Integrations
833
1144
 
834
1145
  ```