agmem 0.2.0__py3-none-any.whl → 0.3.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agmem
3
- Version: 0.2.0
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,32 +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 applied to counts and frontmatter
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`; real summaries (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; optional feature in pack files
148
- - ✅ **GPU acceleration** — Vector store detects GPU for embedding model when available
149
- - ✅ **Optional** — `serve`, `daemon` (watch + auto-commit), `garden` (episode archival), MCP server; install extras as needed
150
-
151
- ### 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
152
448
 
153
449
  ```mermaid
154
450
  graph TB
@@ -183,6 +479,13 @@ graph TB
183
479
  Intel4["✅ Temporal queries<br/>Point-in-time, Range"]
184
480
  end
185
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
+
186
489
  subgraph Ops ["⚙️ Operations"]
187
490
  Ops1["✅ Pack/GC<br/>Object packing, cleanup"]
188
491
  Ops2["✅ Daemon mode<br/>Watch + auto-commit"]
@@ -193,13 +496,15 @@ graph TB
193
496
  Collab --> Safety
194
497
  Safety --> Privacy
195
498
  Privacy --> Intelligence
196
- Intelligence --> Ops
499
+ Intelligence --> NewFeatures
500
+ NewFeatures --> Ops
197
501
 
198
502
  style Core fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
199
503
  style Collab fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
200
504
  style Safety fill:#ffebee,stroke:#c62828,stroke-width:2px
201
505
  style Privacy fill:#e1f5fe,stroke:#01579b,stroke-width:2px
202
506
  style Intelligence fill:#f1f8e9,stroke:#558b2f,stroke-width:2px
507
+ style NewFeatures fill:#fff8e1,stroke:#f9a825,stroke-width:3px
203
508
  style Ops fill:#fff3e0,stroke:#e65100,stroke-width:2px
204
509
  ```
205
510
 
@@ -826,8 +1131,15 @@ mypy memvcs/
826
1131
  - [x] Encryption at rest (optional AES-256-GCM); differential privacy budget (`--private` on distill/garden)
827
1132
  - [x] Pack files and garbage collection (`agmem gc`); ZK proofs and federated stubs (`agmem prove`, `agmem federated`)
828
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
829
1140
  - [ ] IPFS remote (stub in place); full ZK circuits and federated coordinator
830
1141
 
1142
+
831
1143
  ## Integrations
832
1144
 
833
1145
  ```
@@ -1,6 +1,6 @@
1
- agmem-0.2.0.dist-info/licenses/LICENSE,sha256=X_S6RBErW-F0IDbM3FAEoDB-zxExFnl2m8640rTXphM,1067
2
- memvcs/__init__.py,sha256=pheWPxubHVcp2N6vk6M7hGXgkJQ06KajbWgCpOlUSJ8,193
3
- memvcs/cli.py,sha256=YF06oMNjKWUmiNahILmfjrIXgoXzU-5BJFmbunSb8Sc,6075
1
+ agmem-0.3.0.dist-info/licenses/LICENSE,sha256=X_S6RBErW-F0IDbM3FAEoDB-zxExFnl2m8640rTXphM,1067
2
+ memvcs/__init__.py,sha256=PwF2IkjOfw5nZCDcZdsNKns-h-FEvRahAqNd37Ti8_8,193
3
+ memvcs/cli.py,sha256=WPjhbevcOc_w_7SEXV5oitbEA5kYY5lHWgyTOq6x8sU,6075
4
4
  memvcs/commands/__init__.py,sha256=A2D6xWaO6epU7iV4QSvqvF5TspnwRyDN7NojmGatPrE,510
5
5
  memvcs/commands/add.py,sha256=k9eM7qf2NFvneiJkFQNiAYFB2GgKmyPw_NXmkCxblQE,8736
6
6
  memvcs/commands/audit.py,sha256=E6m54B726tqDQR3rrgRXWrjE-seu2UocqrFxN1aHkY4,1680
@@ -47,37 +47,52 @@ memvcs/commands/tree.py,sha256=vdULq4vIXA_4gNfMnHn_Y78BwE0sJoeTBOnFJR3WsZ4,4927
47
47
  memvcs/commands/verify.py,sha256=04CVW5NYWkUlPJ5z1Kci6dfQFM6UmPTGZh9ZextFLMc,3887
48
48
  memvcs/commands/when.py,sha256=bxG_tEYnZNBTl2IPkoxpc2LUEbO_5ev1hRvEzxQQDmc,4773
49
49
  memvcs/coordinator/__init__.py,sha256=XJEXEXJFvvhtRInPeyAC9bFNXGbshSrtuK6wZo3wS6g,139
50
- memvcs/coordinator/server.py,sha256=-kCEyqUi7eLC45qqkH1KCk8zZk8T1NdJyffOY8133ec,7045
50
+ memvcs/coordinator/server.py,sha256=M0wnww0EbtxuDaunP29LJDCnsTm1mcOn7h_fqZbQy5c,7550
51
51
  memvcs/core/__init__.py,sha256=dkIC-4tS0GhwV2mZIbofEe8xR8uiFwrxslGf1aXwhYg,493
52
52
  memvcs/core/access_index.py,sha256=HhacnzSUASzRV2jhDHkwRFoPS3rtqh9n9yE1VV7JXpk,5596
53
+ memvcs/core/agents.py,sha256=im8X9m8_x_be8IA2Mu804o0479yIdAdO7AHKZ8m6WoQ,13989
54
+ memvcs/core/archaeology.py,sha256=Uo-IOQOj031yrqO-MZ_UvLlZsjdP4EVKROwPJiPFp7o,14544
53
55
  memvcs/core/audit.py,sha256=8APkm9Spl_-1rIdyRQz1elyxOeK3nlpwm0CLkpLlhTE,3732
56
+ memvcs/core/collaboration.py,sha256=Ao-cerw11vwTfMM1YEAuR3yicyRez1w2DdYMObTLtnI,14099
57
+ memvcs/core/compliance.py,sha256=XsBQr7kclbSM21yekW4GcHG1VJipp2L_saw4OTkA7w8,14855
58
+ memvcs/core/compression_metrics.py,sha256=0JrbkCGr0hnaKlmPLqv5WVLwO3emOEz2iFhdMTDNTNY,9835
54
59
  memvcs/core/compression_pipeline.py,sha256=Vzr5v_0pgAG20C8znC0-Ho5fEwBoaTOLddxMTldd64M,5564
60
+ memvcs/core/confidence.py,sha256=22AwbCsLwWkQwqMww4eh6uNvZAYwyqMfNX8VakNZCEo,13176
55
61
  memvcs/core/config_loader.py,sha256=j-jgLDp2TRzWN9ZEZebfWSfatevBNYs0FEb3ud1SIR8,8277
56
62
  memvcs/core/consistency.py,sha256=YOG8xhqZLKZCLbai2rdcP0KxYPNGFv5RRMwrQ6qCeyc,7462
57
63
  memvcs/core/constants.py,sha256=WUjAb50BFcF0mbFi_GNteDLCxLihmViBm9Fb-JMPmbM,220
58
64
  memvcs/core/crypto_verify.py,sha256=DTuC7Kfx6z2b8UWOWziBTqP633LrjXbdtGmBBqrJTF0,10424
65
+ memvcs/core/daemon.py,sha256=pg2UaSd5QZ3RhjR64nLviAPIC1hug3ftL62dkCuCuU8,23433
59
66
  memvcs/core/decay.py,sha256=ROGwnqngs7eJNkbKmwyOdij607m73vpmoJqzrIDLBzk,6581
60
- memvcs/core/delta.py,sha256=obXzojUSc2HaEUqH3L_1LF-GcJ63Wr_yYvIPM8iyeSg,7865
67
+ memvcs/core/delta.py,sha256=aCbIXoBdo9unn1baJo20TdOctBCjYF20bQVlOCbb8fs,8518
61
68
  memvcs/core/diff.py,sha256=koEHTLciIUxYKVJVuvmY0GDXMgDgGZP_qg5RayhF-iE,13226
62
- memvcs/core/distiller.py,sha256=QA4acLc005cLac09IvIaog1fJt5IGXWRiSdZq_Ya27g,14086
69
+ memvcs/core/distiller.py,sha256=wwY3xQVRBjVfxnOUIwMsQCSeQ2tlG68w2-KiCwkF9yo,13844
63
70
  memvcs/core/encryption.py,sha256=epny_nlW6ylllv1qxs1mAcFq-PrLIisgfot4llOoAqw,5289
64
- memvcs/core/federated.py,sha256=vUYMZ0xv80hqGDRKq645Od1i8N33l-pIAkklJbJUlVg,5445
65
- memvcs/core/gardener.py,sha256=lBWkyE72O-JMiHM-oqrnex9k_xSv7FvztjkOdLdB0Kk,18610
71
+ memvcs/core/fast_similarity.py,sha256=phgjxkSchJg7om9AFFSMbtP6bSidyRy-vVrR3XyMmDQ,13934
72
+ memvcs/core/federated.py,sha256=qwvfhNgga-lHadbinAfKPI4oAl0RMn5ab01ChmQTP1s,5863
73
+ memvcs/core/gardener.py,sha256=bpoJbK6PJ6nvK3ytj23jpMUBUB7Nn_fB80Ap1E7-Nv8,17041
66
74
  memvcs/core/hooks.py,sha256=XF9z8J5sWjAcuOyWQ2nuvEzK0UV8s4ThrcltaBZttzw,5448
67
75
  memvcs/core/ipfs_remote.py,sha256=xmEO14bn_7Ej-W5jhx2QJyBd-ljj9S2COOxMmcZBiTs,6643
68
76
  memvcs/core/knowledge_graph.py,sha256=GY27e1rgraF2zMpz_jsumdUtpgTRk48yH5CAEQ3TDl4,16416
69
77
  memvcs/core/merge.py,sha256=x2eSaxr4f63Eq00FCJ6DDe2TZU8H5yHQpzKzMhYsaFw,19871
70
78
  memvcs/core/objects.py,sha256=Xgw1IpQnJLCG5o_7gDHVQ-TNGR9CSpDYWRXzLgLSuec,11006
71
- memvcs/core/pack.py,sha256=Kq0hyMNroT0MwiS4pVJVuJO9nZ04P3wssep2tADvnpQ,15950
79
+ memvcs/core/pack.py,sha256=jtbeBh625K6nshPgBGf7zelU-BhvK5-t5NYBJPoYfgs,15961
72
80
  memvcs/core/pii_scanner.py,sha256=T6gQ1APFrSDk980fjnv4ZMF-UztbJgmUFSwGrwWixEw,10802
73
81
  memvcs/core/privacy_budget.py,sha256=fOPlxoKEAmsKtda-OJCrSaKjTyw7ekcqdN7KfRBw1CY,2113
82
+ memvcs/core/privacy_validator.py,sha256=g3l1zxSIxkjMYJMwL5yfuDY5FFjmkm6HZ2Wo4xBiEkQ,6795
83
+ memvcs/core/private_search.py,sha256=RHmLY8dyRdAMBa2nEalh2YuDOBzjM8hIFMRkqYTX9U4,10643
84
+ memvcs/core/protocol_builder.py,sha256=b_5FphgmMdp7qP34ws3U2agXEoeYzTBjSgsQqd2Jx6Y,7713
74
85
  memvcs/core/refs.py,sha256=4Nx2ZVRa_DzfUZ4O1AwzOHEjoGAEICJKqSd9GxaiD_g,16754
75
86
  memvcs/core/remote.py,sha256=sZbAO9JEaDJM96PylB0CjpmR5UxWYdoXlq86sj3R2gU,22228
76
87
  memvcs/core/repository.py,sha256=NzC2UFPv6ePxi5lfiSKyZFLclH4bJpWJz88pY7tDiv4,20605
77
88
  memvcs/core/schema.py,sha256=_CrEWCdArc0yDJ04GT7fyvjHqkal7gegdFSsFOjVpBc,15287
89
+ memvcs/core/search_index.py,sha256=BlG62Uc3Eh019Xco154hSFKaKqO_hcJr5d82v7mMh3I,16928
90
+ memvcs/core/semantic_graph.py,sha256=ke-H1I3T9oQsofBrvJOmhdd9fRiwbbww-24fakVtRkc,13708
91
+ memvcs/core/session.py,sha256=kprikqIP61DmtxsWdDATyrufP12UH-1ed99lVJTzHjU,17673
78
92
  memvcs/core/staging.py,sha256=dptdGi_74lhDkcGqGVU39ZyTkb25j-Rnkz0GWi83W1k,7221
79
93
  memvcs/core/temporal_index.py,sha256=81hZHlVElp2UpXjseFVCdDUwxGM45zIU-y1dDlOhFHI,4012
80
94
  memvcs/core/test_runner.py,sha256=7-0jCvji63JRbVfy3LNQWIQ7VL5weulOoG7SY1-YJbw,11496
95
+ memvcs/core/timetravel.py,sha256=7NWzjy_S5hGw67VW2Feyy76uE95s2GfHIssQjCF1ozg,14963
81
96
  memvcs/core/trust.py,sha256=msx80Cl3bxyQTY8mFUKWY9P6l3zb1s8FafympgHwtpo,3494
82
97
  memvcs/core/vector_store.py,sha256=yUAp5BlaAtjkrtsdY1I-vmAp_YIFgJykBoNlp5hcg0I,11063
83
98
  memvcs/core/zk_proofs.py,sha256=tvJnj5oLTNQ_wFIGcMuuVF5faigIX_32U_HojNMoNp0,7623
@@ -94,9 +109,10 @@ memvcs/core/storage/s3.py,sha256=tY5rfz8FfkRRNaHOPX7Wk6yXdBBBhKV0Ju2qnBtHxeU,138
94
109
  memvcs/health/__init__.py,sha256=YuxF8hVHJHNilAvVa0maptFLBWm4hcBymMjpA2dFJVU,546
95
110
  memvcs/health/monitor.py,sha256=2JQqkR6n0e5L-gsU97FEB3rxjrCNAaGRNFpa7LKZtOg,15545
96
111
  memvcs/integrations/__init__.py,sha256=hVtJoFaXt6ErAZwctcSBDZLXRHFs1CNgtltIBQiroQ0,103
97
- memvcs/integrations/mcp_server.py,sha256=PxBYJnbzPs6bcFH6EmH5jQqbu_9Vy5eSAA8ruWTn2Q4,9061
112
+ memvcs/integrations/mcp_server.py,sha256=-Kg04padPDPm59-rkzPv2zMTOb53ejwkh23Y9tmHMTM,35066
98
113
  memvcs/integrations/web_ui/__init__.py,sha256=MQIfgDKDgPctlcTUjwkwueS_MDsDssVRmIUnpECGS0k,51
99
- memvcs/integrations/web_ui/server.py,sha256=4roJdX0xI3o-n3jZkOMnRScW4YUwpzE2dYZABDv6Iio,12751
114
+ memvcs/integrations/web_ui/server.py,sha256=9Rdaaic8_Gkvg89GDAerkbZU4Og7IeOAWcngOpwO0Tg,28147
115
+ memvcs/integrations/web_ui/websocket.py,sha256=Ji3Z8E1kEP2Q5EsL23E8abZyMbKGsVKHUmdMWeZ4Ers,7353
100
116
  memvcs/retrieval/__init__.py,sha256=IzzmYbE_hmkCmcwQqIUPca4vQh_tD--cB_l00i6uGxY,465
101
117
  memvcs/retrieval/base.py,sha256=aCeWpb2EbSRE81Rn4maLzqPmLSKZOUrwmSSfTEFJ33U,1336
102
118
  memvcs/retrieval/pack.py,sha256=4rrGP7oduPhAM9PYnW2_eNm4WpSDnleHEja-fjBtONc,4299
@@ -104,8 +120,8 @@ memvcs/retrieval/recaller.py,sha256=8KY-XjMUz5_vcKf46zI64uk1DEM__u7wM92ShukOtsY,
104
120
  memvcs/retrieval/strategies.py,sha256=26yxQQubQfjxWQXknfVMxuzPHf2EcZxJg_B99BEdl5c,11458
105
121
  memvcs/utils/__init__.py,sha256=8psUzz4Ntv2GzbRebkeVsoyC6Ck-FIwi0_lfYdj5oho,185
106
122
  memvcs/utils/helpers.py,sha256=37zg_DcQ2y99b9NSLqxFkglHe13rJXKhFDpEbQ7iLhM,4121
107
- agmem-0.2.0.dist-info/METADATA,sha256=Oh9LOeoQR_A9ZXrdrkt-sTFoiYA-peWVHvpVaUYncns,42100
108
- agmem-0.2.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
109
- agmem-0.2.0.dist-info/entry_points.txt,sha256=at7eWycgjqOo1wbUMECnXUsNo3gpCkJTU71OzrGLHu0,42
110
- agmem-0.2.0.dist-info/top_level.txt,sha256=HtMMsKuwLKLOdgF1GxqQztqFM54tTJctVdJuOec6B-4,7
111
- agmem-0.2.0.dist-info/RECORD,,
123
+ agmem-0.3.0.dist-info/METADATA,sha256=ytzmWVS_XqQ2dnhL60IwSXHDYbwBsfLgo6_DllrXKEI,51060
124
+ agmem-0.3.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
125
+ agmem-0.3.0.dist-info/entry_points.txt,sha256=at7eWycgjqOo1wbUMECnXUsNo3gpCkJTU71OzrGLHu0,42
126
+ agmem-0.3.0.dist-info/top_level.txt,sha256=HtMMsKuwLKLOdgF1GxqQztqFM54tTJctVdJuOec6B-4,7
127
+ agmem-0.3.0.dist-info/RECORD,,
memvcs/__init__.py CHANGED
@@ -4,6 +4,6 @@ agmem - Agentic Memory Version Control System
4
4
  A Git-inspired version control system for AI agent memory artifacts.
5
5
  """
6
6
 
7
- __version__ = "0.1.6"
7
+ __version__ = "0.2.1"
8
8
  __author__ = "agmem Team"
9
9
  __license__ = "MIT"
memvcs/cli.py CHANGED
@@ -141,7 +141,7 @@ For more information: https://github.com/vivek-tiwari-vt/agmem
141
141
  """,
142
142
  )
143
143
 
144
- parser.add_argument("--version", "-v", action="version", version="%(prog)s 0.1.0")
144
+ parser.add_argument("--version", "-v", action="version", version="%(prog)s 0.2.1")
145
145
 
146
146
  parser.add_argument("--verbose", action="store_true", help="Enable verbose output")
147
147
 
@@ -21,6 +21,7 @@ from typing import Dict, List, Optional, Any
21
21
  from pathlib import Path
22
22
  import json
23
23
  import hashlib
24
+ import re
24
25
 
25
26
  try:
26
27
  from fastapi import FastAPI, HTTPException, Request
@@ -39,10 +40,25 @@ except ImportError:
39
40
  return None
40
41
 
41
42
 
43
+ def _get_version() -> str:
44
+ """Get agmem version from pyproject.toml. Falls back to 0.2.1 if not found."""
45
+ try:
46
+ pyproject_path = Path(__file__).parent.parent.parent / "pyproject.toml"
47
+ if pyproject_path.exists():
48
+ content = pyproject_path.read_text()
49
+ match = re.search(r'version\s*=\s*"([^"]+)"', content)
50
+ if match:
51
+ return match.group(1)
52
+ except Exception:
53
+ pass
54
+ return "0.2.1"
55
+
56
+
42
57
  # Storage: In-memory for simplicity (use Redis/PostgreSQL for production)
43
58
  summaries_store: Dict[str, List[Dict[str, Any]]] = {}
59
+ _version = _get_version()
44
60
  metadata_store: Dict[str, Any] = {
45
- "coordinator_version": "0.1.6",
61
+ "coordinator_version": _version,
46
62
  "started_at": datetime.now(timezone.utc).isoformat(),
47
63
  "total_pushes": 0,
48
64
  "total_agents": 0,
@@ -79,7 +95,7 @@ if FASTAPI_AVAILABLE:
79
95
  app = FastAPI(
80
96
  title="agmem Federated Coordinator",
81
97
  description="Minimal coordinator for federated agent memory collaboration",
82
- version="0.1.6",
98
+ version=_version,
83
99
  )
84
100
 
85
101
  @app.get("/")