composite-memory-mcp-server 0.11.0b1__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 (139) hide show
  1. composite_memory_mcp_server-0.11.0b1/AUTHORS.md +11 -0
  2. composite_memory_mcp_server-0.11.0b1/CHANGELOG.md +142 -0
  3. composite_memory_mcp_server-0.11.0b1/LICENSE +21 -0
  4. composite_memory_mcp_server-0.11.0b1/MANIFEST.in +4 -0
  5. composite_memory_mcp_server-0.11.0b1/PKG-INFO +804 -0
  6. composite_memory_mcp_server-0.11.0b1/README.md +751 -0
  7. composite_memory_mcp_server-0.11.0b1/composite_memory_mcp_server.egg-info/PKG-INFO +804 -0
  8. composite_memory_mcp_server-0.11.0b1/composite_memory_mcp_server.egg-info/SOURCES.txt +137 -0
  9. composite_memory_mcp_server-0.11.0b1/composite_memory_mcp_server.egg-info/dependency_links.txt +1 -0
  10. composite_memory_mcp_server-0.11.0b1/composite_memory_mcp_server.egg-info/entry_points.txt +2 -0
  11. composite_memory_mcp_server-0.11.0b1/composite_memory_mcp_server.egg-info/requires.txt +37 -0
  12. composite_memory_mcp_server-0.11.0b1/composite_memory_mcp_server.egg-info/top_level.txt +2 -0
  13. composite_memory_mcp_server-0.11.0b1/pyproject.toml +93 -0
  14. composite_memory_mcp_server-0.11.0b1/setup.cfg +4 -0
  15. composite_memory_mcp_server-0.11.0b1/src/memory_server/__init__.py +8 -0
  16. composite_memory_mcp_server-0.11.0b1/src/memory_server/admission.py +282 -0
  17. composite_memory_mcp_server-0.11.0b1/src/memory_server/api/__init__.py +1 -0
  18. composite_memory_mcp_server-0.11.0b1/src/memory_server/api/bulk_import.py +81 -0
  19. composite_memory_mcp_server-0.11.0b1/src/memory_server/api/get_context.py +58 -0
  20. composite_memory_mcp_server-0.11.0b1/src/memory_server/api/learn.py +48 -0
  21. composite_memory_mcp_server-0.11.0b1/src/memory_server/api/reflect.py +620 -0
  22. composite_memory_mcp_server-0.11.0b1/src/memory_server/api/remember.py +59 -0
  23. composite_memory_mcp_server-0.11.0b1/src/memory_server/api/search.py +42 -0
  24. composite_memory_mcp_server-0.11.0b1/src/memory_server/benchmarks/__init__.py +35 -0
  25. composite_memory_mcp_server-0.11.0b1/src/memory_server/benchmarks/longmemeval.py +500 -0
  26. composite_memory_mcp_server-0.11.0b1/src/memory_server/cli.py +374 -0
  27. composite_memory_mcp_server-0.11.0b1/src/memory_server/evaluation/__init__.py +21 -0
  28. composite_memory_mcp_server-0.11.0b1/src/memory_server/evaluation/auditor.py +520 -0
  29. composite_memory_mcp_server-0.11.0b1/src/memory_server/evaluation/confidence.py +228 -0
  30. composite_memory_mcp_server-0.11.0b1/src/memory_server/evaluation/decay.py +317 -0
  31. composite_memory_mcp_server-0.11.0b1/src/memory_server/evaluation/metrics.py +168 -0
  32. composite_memory_mcp_server-0.11.0b1/src/memory_server/evaluation/relation.py +595 -0
  33. composite_memory_mcp_server-0.11.0b1/src/memory_server/evaluation/validator.py +352 -0
  34. composite_memory_mcp_server-0.11.0b1/src/memory_server/extractors/__init__.py +1 -0
  35. composite_memory_mcp_server-0.11.0b1/src/memory_server/extractors/belief_extractor.py +100 -0
  36. composite_memory_mcp_server-0.11.0b1/src/memory_server/extractors/decision_extractor.py +89 -0
  37. composite_memory_mcp_server-0.11.0b1/src/memory_server/extractors/fact_extractor.py +82 -0
  38. composite_memory_mcp_server-0.11.0b1/src/memory_server/extractors/skill_extractor.py +117 -0
  39. composite_memory_mcp_server-0.11.0b1/src/memory_server/models/__init__.py +24 -0
  40. composite_memory_mcp_server-0.11.0b1/src/memory_server/models/belief.py +31 -0
  41. composite_memory_mcp_server-0.11.0b1/src/memory_server/models/decision.py +33 -0
  42. composite_memory_mcp_server-0.11.0b1/src/memory_server/models/entity.py +32 -0
  43. composite_memory_mcp_server-0.11.0b1/src/memory_server/models/evidence.py +22 -0
  44. composite_memory_mcp_server-0.11.0b1/src/memory_server/models/fact.py +32 -0
  45. composite_memory_mcp_server-0.11.0b1/src/memory_server/models/receipt.py +88 -0
  46. composite_memory_mcp_server-0.11.0b1/src/memory_server/models/skill.py +35 -0
  47. composite_memory_mcp_server-0.11.0b1/src/memory_server/plugins/__init__.py +1 -0
  48. composite_memory_mcp_server-0.11.0b1/src/memory_server/plugins/hermes/__init__.py +40 -0
  49. composite_memory_mcp_server-0.11.0b1/src/memory_server/plugins/hermes/config.py +105 -0
  50. composite_memory_mcp_server-0.11.0b1/src/memory_server/plugins/hermes/provider.py +1582 -0
  51. composite_memory_mcp_server-0.11.0b1/src/memory_server/plugins/hermes/writer.py +161 -0
  52. composite_memory_mcp_server-0.11.0b1/src/memory_server/providers/__init__.py +19 -0
  53. composite_memory_mcp_server-0.11.0b1/src/memory_server/providers/embedding_provider.py +229 -0
  54. composite_memory_mcp_server-0.11.0b1/src/memory_server/providers/graph_provider.py +361 -0
  55. composite_memory_mcp_server-0.11.0b1/src/memory_server/providers/lancedb_provider.py +476 -0
  56. composite_memory_mcp_server-0.11.0b1/src/memory_server/providers/qdrant_provider.py +355 -0
  57. composite_memory_mcp_server-0.11.0b1/src/memory_server/providers/sqlite_provider.py +526 -0
  58. composite_memory_mcp_server-0.11.0b1/src/memory_server/router/__init__.py +1 -0
  59. composite_memory_mcp_server-0.11.0b1/src/memory_server/router/embedding_router.py +140 -0
  60. composite_memory_mcp_server-0.11.0b1/src/memory_server/router/graph_router.py +246 -0
  61. composite_memory_mcp_server-0.11.0b1/src/memory_server/router/hybrid_router.py +267 -0
  62. composite_memory_mcp_server-0.11.0b1/src/memory_server/router/ranking.py +243 -0
  63. composite_memory_mcp_server-0.11.0b1/src/memory_server/router/rules.py +142 -0
  64. composite_memory_mcp_server-0.11.0b1/src/memory_server/server.py +1127 -0
  65. composite_memory_mcp_server-0.11.0b1/src/memory_server/services/__init__.py +1 -0
  66. composite_memory_mcp_server-0.11.0b1/src/memory_server/services/ingestion_service.py +530 -0
  67. composite_memory_mcp_server-0.11.0b1/storage/__init__.py +1 -0
  68. composite_memory_mcp_server-0.11.0b1/storage/adapters/__init__.py +9 -0
  69. composite_memory_mcp_server-0.11.0b1/storage/adapters/legacy_provider.py +206 -0
  70. composite_memory_mcp_server-0.11.0b1/storage/base.py +18 -0
  71. composite_memory_mcp_server-0.11.0b1/storage/models/__init__.py +27 -0
  72. composite_memory_mcp_server-0.11.0b1/storage/models/belief.py +114 -0
  73. composite_memory_mcp_server-0.11.0b1/storage/models/decision.py +69 -0
  74. composite_memory_mcp_server-0.11.0b1/storage/models/entity.py +66 -0
  75. composite_memory_mcp_server-0.11.0b1/storage/models/fact.py +62 -0
  76. composite_memory_mcp_server-0.11.0b1/storage/models/lifecycle.py +41 -0
  77. composite_memory_mcp_server-0.11.0b1/storage/models/receipt.py +62 -0
  78. composite_memory_mcp_server-0.11.0b1/storage/models/skill.py +75 -0
  79. composite_memory_mcp_server-0.11.0b1/storage/outbox.py +294 -0
  80. composite_memory_mcp_server-0.11.0b1/storage/outbox_worker.py +313 -0
  81. composite_memory_mcp_server-0.11.0b1/storage/repositories/__init__.py +19 -0
  82. composite_memory_mcp_server-0.11.0b1/storage/repositories/belief_repo.py +212 -0
  83. composite_memory_mcp_server-0.11.0b1/storage/repositories/decision_repo.py +55 -0
  84. composite_memory_mcp_server-0.11.0b1/storage/repositories/evidence_repo.py +133 -0
  85. composite_memory_mcp_server-0.11.0b1/storage/repositories/fact_repo.py +153 -0
  86. composite_memory_mcp_server-0.11.0b1/storage/repositories/lifecycle_repo.py +100 -0
  87. composite_memory_mcp_server-0.11.0b1/storage/repositories/receipt_repo.py +42 -0
  88. composite_memory_mcp_server-0.11.0b1/storage/repositories/skill_repo.py +43 -0
  89. composite_memory_mcp_server-0.11.0b1/tests/test_auditor.py +495 -0
  90. composite_memory_mcp_server-0.11.0b1/tests/test_belief_bridge.py +431 -0
  91. composite_memory_mcp_server-0.11.0b1/tests/test_belief_conflict.py +523 -0
  92. composite_memory_mcp_server-0.11.0b1/tests/test_belief_integration.py +470 -0
  93. composite_memory_mcp_server-0.11.0b1/tests/test_belief_lifecycle.py +246 -0
  94. composite_memory_mcp_server-0.11.0b1/tests/test_belief_models.py +199 -0
  95. composite_memory_mcp_server-0.11.0b1/tests/test_belief_provider.py +150 -0
  96. composite_memory_mcp_server-0.11.0b1/tests/test_belief_reflect.py +705 -0
  97. composite_memory_mcp_server-0.11.0b1/tests/test_belief_repo.py +255 -0
  98. composite_memory_mcp_server-0.11.0b1/tests/test_belief_tools.py +259 -0
  99. composite_memory_mcp_server-0.11.0b1/tests/test_benchmarks.py +486 -0
  100. composite_memory_mcp_server-0.11.0b1/tests/test_comparative.py +618 -0
  101. composite_memory_mcp_server-0.11.0b1/tests/test_confidence.py +282 -0
  102. composite_memory_mcp_server-0.11.0b1/tests/test_decay.py +338 -0
  103. composite_memory_mcp_server-0.11.0b1/tests/test_decision_extractor.py +99 -0
  104. composite_memory_mcp_server-0.11.0b1/tests/test_embedding_provider.py +146 -0
  105. composite_memory_mcp_server-0.11.0b1/tests/test_extractor_integration.py +197 -0
  106. composite_memory_mcp_server-0.11.0b1/tests/test_fact_extractor.py +118 -0
  107. composite_memory_mcp_server-0.11.0b1/tests/test_get_context.py +62 -0
  108. composite_memory_mcp_server-0.11.0b1/tests/test_graph_integration.py +265 -0
  109. composite_memory_mcp_server-0.11.0b1/tests/test_graph_provider.py +210 -0
  110. composite_memory_mcp_server-0.11.0b1/tests/test_graph_router.py +162 -0
  111. composite_memory_mcp_server-0.11.0b1/tests/test_graph_search.py +99 -0
  112. composite_memory_mcp_server-0.11.0b1/tests/test_hermes_plugin_registration.py +289 -0
  113. composite_memory_mcp_server-0.11.0b1/tests/test_hermes_provider.py +482 -0
  114. composite_memory_mcp_server-0.11.0b1/tests/test_hook.py +9 -0
  115. composite_memory_mcp_server-0.11.0b1/tests/test_hybrid_router.py +126 -0
  116. composite_memory_mcp_server-0.11.0b1/tests/test_integration.py +180 -0
  117. composite_memory_mcp_server-0.11.0b1/tests/test_lancedb_provider.py +209 -0
  118. composite_memory_mcp_server-0.11.0b1/tests/test_learn.py +127 -0
  119. composite_memory_mcp_server-0.11.0b1/tests/test_loadtest.py +626 -0
  120. composite_memory_mcp_server-0.11.0b1/tests/test_longmemeval_harness.py +251 -0
  121. composite_memory_mcp_server-0.11.0b1/tests/test_memory_admission.py +166 -0
  122. composite_memory_mcp_server-0.11.0b1/tests/test_models.py +319 -0
  123. composite_memory_mcp_server-0.11.0b1/tests/test_observability.py +253 -0
  124. composite_memory_mcp_server-0.11.0b1/tests/test_outbox.py +611 -0
  125. composite_memory_mcp_server-0.11.0b1/tests/test_phase6_fts5.py +486 -0
  126. composite_memory_mcp_server-0.11.0b1/tests/test_ping.py +43 -0
  127. composite_memory_mcp_server-0.11.0b1/tests/test_qdrant_provider.py +197 -0
  128. composite_memory_mcp_server-0.11.0b1/tests/test_relation.py +418 -0
  129. composite_memory_mcp_server-0.11.0b1/tests/test_release_candidate.py +158 -0
  130. composite_memory_mcp_server-0.11.0b1/tests/test_remember.py +104 -0
  131. composite_memory_mcp_server-0.11.0b1/tests/test_router.py +229 -0
  132. composite_memory_mcp_server-0.11.0b1/tests/test_router_integration.py +230 -0
  133. composite_memory_mcp_server-0.11.0b1/tests/test_search.py +61 -0
  134. composite_memory_mcp_server-0.11.0b1/tests/test_skill_extractor.py +97 -0
  135. composite_memory_mcp_server-0.11.0b1/tests/test_sqlite_provider.py +187 -0
  136. composite_memory_mcp_server-0.11.0b1/tests/test_storage_layer.py +597 -0
  137. composite_memory_mcp_server-0.11.0b1/tests/test_v05_integration.py +359 -0
  138. composite_memory_mcp_server-0.11.0b1/tests/test_validator.py +335 -0
  139. composite_memory_mcp_server-0.11.0b1/tests/test_writer_queue.py +203 -0
@@ -0,0 +1,11 @@
1
+ # Authors
2
+
3
+ ## Primary Code Author
4
+
5
+ - **Shtorm** — AI agent, primary code author.
6
+ Public profile: https://www.moltbook.com/u/shtorm
7
+
8
+ ## Project Owner / Initiator / Maintainer
9
+
10
+ - **FedosIS** — project owner, initiator, and maintainer.
11
+ Contact: fedosis@gmail.com
@@ -0,0 +1,142 @@
1
+ # Changelog
2
+
3
+ All notable changes to Composite Memory MCP Server (CMMS) are documented here.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [PEP 440](https://peps.python.org/pep-0440/)
7
+ versioning with SemVer-like semantics.
8
+
9
+ ## 0.11.0b1 — 2026-07-22
10
+
11
+ First CMMS beta release. Shifts from the `alpha` pre-release track to `beta`,
12
+ marking API stability sufficient for early integration testing.
13
+
14
+ This beta is published as a GitHub prerelease tag. It is not published to PyPI,
15
+ the official MCP Registry, Smithery, or Glama yet; install from source or
16
+ explicit GitHub release artifacts until package publication is verified.
17
+
18
+ ### Added
19
+
20
+ - **LongMemEval-S Benchmark Harness** (Card 001, t_ee797b52)
21
+ - Lineage-aware retrieval evaluation with three scoring targets:
22
+ `raw`, `source`, `canonical`.
23
+ - `memory-server benchmark-longmemeval` CLI command.
24
+ - `BuiltInMemoryBaseline` — deterministic Hermes built-in lexical overlap
25
+ scorer (model-free, no API keys).
26
+ - `rescore_trace()` for re-scoring saved retrieval traces against any target.
27
+ - Shared-subset pairwise comparison (`raw_vs_source`, `raw_vs_canonical`).
28
+ - Full documentation in `docs/longmemeval-harness.md`.
29
+
30
+ - **Memory Admission Gate + Tagging** (Card 002, t_855a2392)
31
+ - `MemoryAdmissionGate` — rule-based write-time admission filter that
32
+ classifies memory text as `EPHEMERAL`, `DURABLE`, or `IMPORTANT`.
33
+ - TTL-aware lifecycle: ephemeral (1 day), durable (365 days), important
34
+ (no expiry).
35
+ - Structured admission metadata: `memory_kind`, `epistemic_status`,
36
+ `authority_level`, `risk_tags`, `admission_tags`.
37
+ - `force=True` override admits low-signal text while preserving its
38
+ tag and TTL.
39
+ - `prune_expired_memories()` — batch archive for expired receipts and
40
+ facts.
41
+ - `import_memory_md()` — MEMORY.md bulk import with automatic
42
+ ephemeral/durable filtering.
43
+ - CLI integration — `remember()` accepts `admission=` parameter.
44
+ - 8+ admission gate tests, 3+ integration tests covering TTL prune,
45
+ bulk import, and admission metadata persistence.
46
+
47
+ - **Hermes v0.19 Compatibility Fix**
48
+ - Restored CMMS provider discovery under Hermes v0.19 plugin shim.
49
+
50
+ ### Changed
51
+
52
+ - Package metadata version from `0.1.0` → `0.11.0b1`.
53
+ - README: restructured with clean quickstart section at top for new users.
54
+
55
+ ### Known limitations
56
+
57
+ - **LongMemEval-S requires an external dataset** — the harness does not bundle
58
+ the LongMemEval JSON. Users must download `longmemeval_s_cleaned.json`
59
+ separately.
60
+ - **Public directory/package publication is pending** — `server.json` and
61
+ directory text are draft metadata only until explicit publication to PyPI,
62
+ the official MCP Registry, Smithery, or Glama is verified.
63
+ - **No retrieval plug-in API** — the built-in baseline is the only retriever
64
+ in this release. Custom retrievers require subclassing `BuiltInMemoryBaseline`.
65
+ - **No full suite green**: Unit tests pass (~240+ tests), but integration,
66
+ e2e, and benchmark tests require Qdrant or external services; they are not
67
+ part of the CI unit-test gate.
68
+ - **Memory Admission Gate is rule-first** — it uses deterministic heuristics,
69
+ not an ML model. Edge cases (mixed-language input, novel preference forms)
70
+ may be misclassified. The `force` flag provides an escape hatch.
71
+ - **Graph cleanup on fact deletion** — graph nodes and edges persist when a
72
+ fact is deleted from SQLite. This is a known limitation (documented in
73
+ `docs/metrics.md` §3.4).
74
+
75
+ ### Test Status
76
+
77
+ - **Unit tests**: ✅ ~240+ passing (`pytest tests/ -q -k "not integration and not e2e and not benchmark and not loadtest and not migration"`)
78
+ - **Integration + e2e + benchmark**: 🔄 requires Qdrant container (CI-only)
79
+ - **Contract tests**: ✅ JSON Schema validation + schema/contract tests
80
+ - **Migration tests**: ✅ `alembic upgrade head && alembic downgrade -1`
81
+ - **Lint**: ✅ `ruff check src/` clean
82
+
83
+ ## [0.10.0-alpha.1] — 2026-07-XX
84
+
85
+ LanceDB Vector Store as default local-first backend.
86
+
87
+ - LanceDBProvider with env `MEMORY_VECTOR_BACKEND=lancedb`
88
+ - ADR-015: LanceDB local-first architecture decision
89
+ - 18+ tests for LanceDB integration
90
+
91
+ ## [0.9.0-alpha.1] — 2026-07-XX
92
+
93
+ Belief System v2 — Ternary Relation Classification.
94
+
95
+ - Ternary Relation Classifier (`contradiction|entailment|neutral`)
96
+ - `same_context` gate via `RelationClassifier._has_same_subject()`
97
+ - Migrated `reflect()` and `resolve_conflict()` to ternary semantics
98
+ - ADR-014, 136 tests
99
+
100
+ ## [0.8.0-alpha.1] — 2026-07-XX
101
+
102
+ Hermes Native MemoryProvider Integration.
103
+
104
+ - MemoryProvider ABC, lifecycle hooks, writer queue
105
+ - `install-hermes-plugin` CLI + auto-discovery + docs
106
+
107
+ ## [0.7.0] — 2026-07-XX
108
+
109
+ Belief Store + Reflection.
110
+
111
+ - Belief Model with confidence, evidence provenance, lifecycle states
112
+ - `reflect()` tool with 6 analysis modes
113
+ - Learn-to-belief bridge
114
+ - Conflict resolution (manual + auto)
115
+ - 240 tests, 5 ADRs (007-012)
116
+
117
+ ## [0.6.0] — 2026-07-XX
118
+
119
+ Stabilization: contract freeze, canonical data model, outbox ingestion,
120
+ lifecycle engine, FTS5 retrieval, audit system, observability, CI/CD.
121
+
122
+ ## [0.5.0] — 2026-07-XX
123
+
124
+ Confidence engine + validation + decay + memory auditor + auto-indexing.
125
+
126
+ ## [0.4.0] — 2026-07-XX
127
+
128
+ Graph DB + entity relations + hybrid router.
129
+
130
+ ## [0.3.0] — 2026-07-XX
131
+
132
+ LLM extractors + `learn()` MCP tool.
133
+
134
+ ## [0.2.0] — 2026-07-XX
135
+
136
+ Qdrant + embeddings + semantic router.
137
+
138
+ ## [0.1a] — 2026-07-XX
139
+
140
+ Initial MCP API + SQLite provider + `get_context`/`search`/`remember` tools.
141
+
142
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Shtorm, FedosIS
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,4 @@
1
+ include CHANGELOG.md
2
+ include README.md
3
+ include LICENSE
4
+ include AUTHORS.md