memorymaster 3.9.0__tar.gz → 3.11.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 (338) hide show
  1. {memorymaster-3.9.0 → memorymaster-3.11.0}/PKG-INFO +231 -231
  2. {memorymaster-3.9.0 → memorymaster-3.11.0}/README.md +187 -187
  3. {memorymaster-3.9.0 → memorymaster-3.11.0}/artifacts/bm25-per-field-eval-harness.py +309 -309
  4. memorymaster-3.11.0/artifacts/l2-haiku-batches/extract.py +66 -0
  5. memorymaster-3.11.0/cloned/MetaClaw/examples/run_conversation_opd.py +64 -0
  6. memorymaster-3.11.0/cloned/MetaClaw/examples/run_conversation_replay.py +242 -0
  7. memorymaster-3.11.0/cloned/MetaClaw/examples/run_conversation_rl.py +118 -0
  8. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/__init__.py +39 -0
  9. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/__main__.py +5 -0
  10. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/api_server.py +1782 -0
  11. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/bedrock_client.py +195 -0
  12. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/calendar_client.py +290 -0
  13. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/claw_adapter.py +597 -0
  14. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/cli.py +559 -0
  15. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/config.py +200 -0
  16. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/config_store.py +283 -0
  17. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/data_formatter.py +242 -0
  18. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/idle_detector.py +122 -0
  19. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/launcher.py +273 -0
  20. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/log_color.py +150 -0
  21. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/openclaw_env_rollout.py +384 -0
  22. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/prm_scorer.py +244 -0
  23. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/rollout.py +189 -0
  24. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/runtime_state.py +131 -0
  25. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/scheduler.py +254 -0
  26. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/sdk_backend.py +166 -0
  27. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/setup_wizard.py +420 -0
  28. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/skill_evolver.py +463 -0
  29. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/skill_manager.py +487 -0
  30. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/trainer.py +560 -0
  31. memorymaster-3.11.0/cloned/MetaClaw/metaclaw/utils.py +161 -0
  32. memorymaster-3.11.0/cloned/MetaClaw/scripts/run_v03_benchmark.py +310 -0
  33. memorymaster-3.11.0/cloned/MetaClaw/tests/conftest.py +7 -0
  34. memorymaster-3.11.0/cloned/MetaClaw/tests/test_cli.py +352 -0
  35. memorymaster-3.11.0/cloned/MetaClaw/tests/test_launcher.py +98 -0
  36. memorymaster-3.11.0/cloned/MetaClaw/tests/test_openclaw_env_rollout.py +153 -0
  37. memorymaster-3.11.0/cloned/MetaClaw/tests/test_runtime_state.py +62 -0
  38. memorymaster-3.11.0/cloned/MetaClaw/tests/test_sdk_backend.py +144 -0
  39. memorymaster-3.11.0/cloned/MetaClaw/tests/test_setup_wizard.py +130 -0
  40. memorymaster-3.11.0/cloned/MetaClaw/tests/test_utils.py +211 -0
  41. memorymaster-3.11.0/cloned/MetaClaw/tests/test_v03_live_tinker.py +743 -0
  42. memorymaster-3.11.0/cloned/agent-skill-creator/references/examples/stock-analyzer/scripts/main.py +397 -0
  43. memorymaster-3.11.0/cloned/agent-skill-creator/scripts/export_utils.py +845 -0
  44. memorymaster-3.11.0/cloned/agent-skill-creator/scripts/security_scan.py +423 -0
  45. memorymaster-3.11.0/cloned/agent-skill-creator/scripts/skill_registry.py +823 -0
  46. memorymaster-3.11.0/cloned/agent-skill-creator/scripts/staleness_check.py +796 -0
  47. memorymaster-3.11.0/cloned/agent-skill-creator/scripts/validate.py +461 -0
  48. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/__init__.py +5 -5
  49. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/_storage_lifecycle.py +552 -552
  50. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/_storage_read.py +654 -654
  51. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/_storage_schema.py +652 -652
  52. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/_storage_shared.py +41 -41
  53. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/_storage_write_claims.py +353 -353
  54. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/access_control.py +126 -126
  55. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/auto_extractor.py +139 -139
  56. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/auto_resolver.py +220 -220
  57. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/claim_edges.py +278 -209
  58. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/cli.py +442 -442
  59. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/cli_handlers_basic.py +716 -716
  60. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/cli_handlers_curation.py +893 -893
  61. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/cli_helpers.py +138 -138
  62. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/closets.py +253 -232
  63. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/hooks/memorymaster-auto-ingest.py +222 -222
  64. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/hooks/memorymaster-classify.py +304 -304
  65. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/hooks/memorymaster-dream-sync.py +27 -27
  66. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/hooks/memorymaster-observe.py +39 -39
  67. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/hooks/memorymaster-precompact.py +76 -76
  68. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/hooks/memorymaster-recall.py +32 -32
  69. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/hooks/memorymaster-session-start.py +272 -272
  70. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/hooks/memorymaster-steward-cycle.py +60 -60
  71. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/context_hook.py +1869 -1710
  72. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/context_optimizer.py +253 -253
  73. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/dashboard.py +1059 -1059
  74. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/db_merge.py +156 -156
  75. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/dream_bridge.py +697 -697
  76. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/embeddings.py +199 -199
  77. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/entity_extractor.py +767 -767
  78. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/entity_graph.py +313 -313
  79. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/entity_registry.py +456 -456
  80. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/federated_graphify.py +154 -154
  81. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/feedback.py +247 -247
  82. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/graph_store.py +570 -570
  83. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/hook_log.py +65 -65
  84. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/jobs/__init__.py +5 -5
  85. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/jobs/decay.py +50 -50
  86. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/jobs/deterministic.py +376 -376
  87. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/jobs/validator.py +233 -233
  88. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/key_rotator.py +176 -176
  89. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/llm_provider.py +512 -512
  90. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/llm_steward.py +847 -847
  91. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/mcp_server.py +962 -962
  92. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/metrics_exporter.py +1 -1
  93. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/models.py +336 -336
  94. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/operator.py +1453 -1453
  95. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/policy.py +133 -133
  96. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/postgres_store.py +1665 -1665
  97. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/qdrant_backend.py +327 -327
  98. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/qdrant_recall_fallback.py +305 -305
  99. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/query_expansion.py +184 -184
  100. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/recall_fusion.py +79 -79
  101. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/recall_tokenizer.py +305 -305
  102. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/retrieval.py +237 -237
  103. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/scheduler.py +98 -98
  104. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/schema.sql +123 -123
  105. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/scope_utils.py +109 -109
  106. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/security.py +363 -363
  107. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/service.py +792 -792
  108. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/session_tracker.py +129 -129
  109. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/setup_hooks.py +404 -404
  110. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/skill_evolver.py +161 -161
  111. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/steward.py +1627 -1627
  112. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/steward_classifier.py +149 -149
  113. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/steward_features.py +345 -345
  114. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/storage.py +101 -101
  115. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/vault_linter.py +301 -301
  116. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/verbatim_recall.py +296 -296
  117. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/webhook.py +58 -58
  118. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/wiki_freshness.py +228 -228
  119. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/wiki_similarity.py +621 -621
  120. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/wiki_validate.py +299 -299
  121. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster.egg-info/PKG-INFO +231 -231
  122. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster.egg-info/SOURCES.txt +47 -0
  123. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster.egg-info/top_level.txt +4 -0
  124. {memorymaster-3.9.0 → memorymaster-3.11.0}/pyproject.toml +72 -72
  125. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/agg_recall_latency.py +184 -184
  126. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/alert_operator_metrics.py +1 -1
  127. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/backfill_entity_extraction.py +327 -327
  128. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/backfill_graph_store.py +264 -264
  129. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/backfill_stop_hook_citations.py +137 -137
  130. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/backtest_steward_classifier.py +757 -757
  131. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/build_steward_training_set.py +119 -119
  132. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/check_hook_template_drift.py +143 -143
  133. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/eval_bm25_sweep.py +432 -432
  134. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/eval_classify_f1.py +226 -226
  135. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/eval_recall_precision_at_5.py +468 -468
  136. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/eval_recall_quality.py +132 -132
  137. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/eval_steward_pareto.py +273 -273
  138. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/eval_verbatim_recall.py +216 -216
  139. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/expand_recall_eval.py +404 -404
  140. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/gitnexus_to_claims.py +180 -180
  141. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/grid_recall_weights.py +191 -191
  142. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/index_claims_to_qdrant.py +315 -315
  143. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/ingest_planning_docs.py +170 -170
  144. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/label_prompts_with_judge.py +211 -211
  145. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/merge_scope_variants.py +216 -216
  146. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/precompute_candidates.py +94 -94
  147. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/run_longmemeval.py +997 -997
  148. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/scheduled_ingest.py +595 -595
  149. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/setup-hooks.py +10 -10
  150. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/sync_hook_templates.py +117 -117
  151. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/train_steward_classifier.py +457 -457
  152. {memorymaster-3.9.0 → memorymaster-3.11.0}/setup.cfg +4 -4
  153. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/conftest.py +37 -37
  154. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/integration/test_extract_llm_ollama_live.py +49 -49
  155. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_auto_ingest_hook_citations.py +147 -147
  156. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_auto_validate.py +197 -197
  157. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_bm25_per_field.py +222 -222
  158. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_claim_edges.py +167 -167
  159. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_claim_links.py +288 -288
  160. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_claim_type_ranking.py +84 -84
  161. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_classify_hook_f1.py +85 -85
  162. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_classify_hook_latency.py +91 -91
  163. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_cli_review_queue.py +1 -1
  164. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_closets.py +143 -143
  165. memorymaster-3.11.0/tests/test_closets_recall_integration.py +50 -0
  166. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_compaction_trace.py +1 -1
  167. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_connectors.py +473 -473
  168. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_context_hook.py +260 -260
  169. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_deterministic_predicates.py +1 -1
  170. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_entity_extractor.py +150 -150
  171. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_entity_extractor_llm.py +296 -296
  172. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_entity_new_kinds.py +241 -241
  173. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_entity_regex_v3.py +71 -71
  174. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_entity_registry.py +406 -406
  175. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_eval_harness.py +291 -291
  176. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_events_schema.py +1 -1
  177. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_extract_llm_ollama.py +140 -140
  178. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_federated_graphify_mcp.py +136 -136
  179. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_fts5_search.py +169 -169
  180. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_graph_distance.py +233 -233
  181. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_graph_store.py +321 -321
  182. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_hook_env_isolation.py +79 -79
  183. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_integration_workflows.py +534 -534
  184. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_key_rotator.py +159 -159
  185. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_llm_fallback.py +219 -219
  186. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_llm_provider_claude_cli.py +186 -186
  187. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_mcp_helpers.py +412 -412
  188. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_metrics_exporter.py +1 -1
  189. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_operator.py +379 -379
  190. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_policy_mode_env.py +91 -91
  191. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_postgres_parity.py +625 -625
  192. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_query_expansion.py +264 -264
  193. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_recall_entity_fanout.py +459 -459
  194. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_recall_fusion.py +94 -94
  195. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_recall_latency.py +275 -275
  196. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_recall_precision_at_5.py +261 -261
  197. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_recall_tokenizer.py +234 -234
  198. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_recall_vector_fallback.py +306 -306
  199. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_reliability_hardening.py +1 -1
  200. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_rl_trainer.py +232 -232
  201. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_rrf_auto_gate.py +223 -223
  202. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_scope_boost.py +298 -298
  203. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_scope_utils.py +112 -112
  204. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_security_patterns.py +249 -249
  205. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_sensitivity_filter_adversarial.py +93 -93
  206. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_sensitivity_filter_adversarial_v2.py +153 -153
  207. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_sqlite_core.py +255 -255
  208. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_steward.py +348 -348
  209. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_steward_classifier.py +261 -261
  210. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_steward_features.py +174 -174
  211. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_steward_features_v3.py +254 -254
  212. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_steward_resolution_parity.py +219 -219
  213. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_two_pass_recall.py +86 -86
  214. memorymaster-3.11.0/tests/test_v311_fixes.py +172 -0
  215. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_v390_e2e.py +151 -151
  216. memorymaster-3.11.0/tests/test_v391_strict_warnings.py +73 -0
  217. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_vault_exporter.py +381 -381
  218. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_vector_search.py +367 -367
  219. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_verbatim_recall.py +321 -321
  220. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_wiki_freshness.py +281 -281
  221. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_wiki_similarity_multiscope.py +270 -270
  222. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_wiki_validate_cli.py +193 -193
  223. {memorymaster-3.9.0 → memorymaster-3.11.0}/LICENSE +0 -0
  224. {memorymaster-3.9.0 → memorymaster-3.11.0}/benchmarks/longmemeval_runner.py +0 -0
  225. {memorymaster-3.9.0 → memorymaster-3.11.0}/benchmarks/longmemeval_vector_runner.py +0 -0
  226. {memorymaster-3.9.0 → memorymaster-3.11.0}/benchmarks/perf_smoke.py +0 -0
  227. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/__main__.py +0 -0
  228. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/claim_verifier.py +0 -0
  229. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config.py +0 -0
  230. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/claude-md-append.md +0 -0
  231. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/codex-agents-md-append.md +0 -0
  232. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/config_templates/hooks/memorymaster-validate-wiki.py +0 -0
  233. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/conflict_resolver.py +0 -0
  234. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/daily_notes.py +0 -0
  235. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/jobs/compact_summaries.py +0 -0
  236. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/jobs/compactor.py +0 -0
  237. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/jobs/dedup.py +0 -0
  238. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/jobs/extractor.py +0 -0
  239. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/jobs/staleness.py +0 -0
  240. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/lifecycle.py +0 -0
  241. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/operator_queue.py +0 -0
  242. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/plugins.py +0 -0
  243. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/qmd_bridge.py +0 -0
  244. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/query_classifier.py +0 -0
  245. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/retry.py +0 -0
  246. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/review.py +0 -0
  247. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/rl_trainer.py +0 -0
  248. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/schema.py +0 -0
  249. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/schema_postgres.sql +0 -0
  250. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/snapshot.py +0 -0
  251. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/store_factory.py +0 -0
  252. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/transcript_miner.py +0 -0
  253. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/turn_schema.py +0 -0
  254. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/vault_bases.py +0 -0
  255. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/vault_curator.py +0 -0
  256. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/vault_exporter.py +0 -0
  257. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/vault_log.py +0 -0
  258. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/vault_query_capture.py +0 -0
  259. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/vault_synthesis.py +0 -0
  260. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/verbatim_store.py +0 -0
  261. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster/wiki_engine.py +0 -0
  262. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster.egg-info/dependency_links.txt +0 -0
  263. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster.egg-info/entry_points.txt +0 -0
  264. {memorymaster-3.9.0 → memorymaster-3.11.0}/memorymaster.egg-info/requires.txt +0 -0
  265. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/autoresearch_daemon.py +0 -0
  266. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/claude_to_turns.py +0 -0
  267. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/codex_live_to_turns.py +0 -0
  268. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/compaction_edge_cases.py +0 -0
  269. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/compaction_trace_report.py +0 -0
  270. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/compaction_trace_validate.py +0 -0
  271. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/confusion_matrix_eval.py +0 -0
  272. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/conversation_importer.py +0 -0
  273. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/conversation_to_turns.py +0 -0
  274. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/e2e_operator.py +0 -0
  275. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/email_live_to_turns.py +0 -0
  276. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/eval_memorymaster.py +0 -0
  277. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/generate_drill_signoff.py +0 -0
  278. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/git_to_turns.py +0 -0
  279. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/github_live_to_turns.py +0 -0
  280. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/jira_live_to_turns.py +0 -0
  281. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/llm_benchmark.py +0 -0
  282. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/messages_to_turns.py +0 -0
  283. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/operator_metrics.py +0 -0
  284. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/recurring_incident_drill.py +0 -0
  285. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/release_readiness.py +0 -0
  286. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/run_codex_autologger.py +0 -0
  287. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/run_incident_drill.py +0 -0
  288. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/slack_live_to_turns.py +0 -0
  289. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/tickets_to_turns.py +0 -0
  290. {memorymaster-3.9.0 → memorymaster-3.11.0}/scripts/webhook_to_turns.py +0 -0
  291. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_access_control.py +0 -0
  292. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_auto_extractor.py +0 -0
  293. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_auto_ingest_hook_schema.py +0 -0
  294. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_auto_resolver.py +0 -0
  295. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_claude_to_turns.py +0 -0
  296. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_cli_json_flag.py +0 -0
  297. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_cli_ready.py +0 -0
  298. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_cli_subcommands.py +0 -0
  299. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_compact_summaries.py +0 -0
  300. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_config.py +0 -0
  301. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_conflict_resolver.py +0 -0
  302. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_confusion_matrix_eval.py +0 -0
  303. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_connection_retry.py +0 -0
  304. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_context_optimizer.py +0 -0
  305. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_conversation_to_turns.py +0 -0
  306. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_dashboard.py +0 -0
  307. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_dedup.py +0 -0
  308. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_embeddings_coverage.py +0 -0
  309. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_entity_graph.py +0 -0
  310. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_feedback.py +0 -0
  311. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_handler_regressions.py +0 -0
  312. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_human_id.py +0 -0
  313. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_incident_drill_runner.py +0 -0
  314. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_lifecycle.py +0 -0
  315. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_llm_steward_coverage.py +0 -0
  316. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_llm_steward_key_rotation.py +0 -0
  317. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_obsidian_mind_patterns.py +0 -0
  318. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_operator_queue.py +0 -0
  319. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_perf_smoke_config.py +0 -0
  320. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_plugins.py +0 -0
  321. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_policy_coverage.py +0 -0
  322. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_qdrant_backend.py +0 -0
  323. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_qmd_bridge.py +0 -0
  324. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_query_classifier.py +0 -0
  325. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_review.py +0 -0
  326. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_scheduler.py +0 -0
  327. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_schema.py +0 -0
  328. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_security_access.py +0 -0
  329. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_service_coverage.py +0 -0
  330. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_session_tracker.py +0 -0
  331. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_snapshot.py +0 -0
  332. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_staleness.py +0 -0
  333. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_stealth_mode.py +0 -0
  334. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_store_factory.py +0 -0
  335. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_tenant_isolation.py +0 -0
  336. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_turn_schema.py +0 -0
  337. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_webhook.py +0 -0
  338. {memorymaster-3.9.0 → memorymaster-3.11.0}/tests/test_wiki_binding.py +0 -0
@@ -1,231 +1,231 @@
1
- Metadata-Version: 2.4
2
- Name: memorymaster
3
- Version: 3.9.0
4
- Summary: Production-grade memory reliability system for AI coding agents. Lifecycle-managed claims with citations, conflict detection, steward governance, and MCP integration.
5
- Author: wolverin0
6
- License: MIT
7
- Keywords: memory,ai-agents,claims,lifecycle,mcp,sqlite,postgres,coding-agents
8
- Classifier: Development Status :: 5 - Production/Stable
9
- Classifier: Intended Audience :: Developers
10
- Classifier: License :: OSI Approved :: MIT License
11
- Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.10
13
- Classifier: Programming Language :: Python :: 3.11
14
- Classifier: Programming Language :: Python :: 3.12
15
- Classifier: Topic :: Software Development :: Libraries
16
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
17
- Requires-Python: >=3.10
18
- Description-Content-Type: text/markdown
19
- License-File: LICENSE
20
- Provides-Extra: postgres
21
- Requires-Dist: psycopg[binary]>=3.2; extra == "postgres"
22
- Provides-Extra: security
23
- Requires-Dist: cryptography>=42; extra == "security"
24
- Provides-Extra: embeddings
25
- Requires-Dist: sentence-transformers>=3.0; extra == "embeddings"
26
- Provides-Extra: gemini
27
- Requires-Dist: google-genai>=1.0; extra == "gemini"
28
- Provides-Extra: qdrant
29
- Requires-Dist: httpx>=0.27; extra == "qdrant"
30
- Provides-Extra: vector
31
- Requires-Dist: sentence-transformers>=3.0; extra == "vector"
32
- Requires-Dist: qdrant-client>=1.9; extra == "vector"
33
- Provides-Extra: graph
34
- Requires-Dist: kuzu>=0.4; extra == "graph"
35
- Provides-Extra: dev
36
- Requires-Dist: pytest>=8.2; extra == "dev"
37
- Requires-Dist: pytest-cov>=6.0; extra == "dev"
38
- Provides-Extra: mcp
39
- Requires-Dist: mcp>=1.2; extra == "mcp"
40
- Provides-Extra: ml
41
- Requires-Dist: scikit-learn>=1.3; extra == "ml"
42
- Requires-Dist: joblib>=1.3; extra == "ml"
43
- Dynamic: license-file
44
-
45
- # MemoryMaster
46
-
47
- **Production-grade memory reliability system for AI coding agents.**
48
-
49
- Lifecycle-managed claims with citations, conflict detection, steward governance, hybrid retrieval, and MCP integration. Give your AI agents persistent, trustworthy memory.
50
-
51
- [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
52
- [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
53
- [![Tests](https://img.shields.io/badge/tests-1029-green.svg)]()
54
- [![MCP Tools](https://img.shields.io/badge/MCP%20tools-22-purple.svg)]()
55
- [![CLI Commands](https://img.shields.io/badge/CLI%20commands-64-orange.svg)]()
56
- [![PyPI](https://img.shields.io/pypi/v/memorymaster.svg)](https://pypi.org/project/memorymaster/)
57
-
58
- MemoryMaster prevents the #1 problem with agent memory: **drift, stale assumptions, and unsafe disclosure**. It gives Claude Code, Codex, and any MCP-compatible agent persistent, verifiable memory with a full claim lifecycle, citation tracking, conflict detection, and human-in-the-loop governance.
59
-
60
- ---
61
-
62
- ## Architecture
63
-
64
- ```
65
- ┌─────────────────────────────────────────────────────────────────┐
66
- │ Agent Runtime │
67
- │ (Claude Code / Codex / any MCP-compatible agent) │
68
- └────────────┬────────────────────────────────┬───────────────────┘
69
- │ MCP (22 tools) │ CLI (64 commands)
70
- v v
71
- ┌─────────────────────────────────────────────────────────────────┐
72
- │ MemoryMaster Core │
73
- │ ┌──────────┐ ┌───────────┐ ┌──────────┐ ┌───────────────┐ │
74
- │ │ Ingestor │ │ Extractor │ │ Validator │ │ State Engine │ │
75
- │ │ (events) │->│ (claims) │->│ (probes) │->│ (6-state FSM) │ │
76
- │ └──────────┘ └───────────┘ └──────────┘ └───────────────┘ │
77
- │ ┌──────────┐ ┌───────────┐ ┌──────────┐ ┌───────────────┐ │
78
- │ │ Retrieval│ │ Compactor │ │ Steward │ │ Dashboard │ │
79
- │ │ (hybrid) │ │ (archive) │ │ (govern) │ │ (HTML+SSE) │ │
80
- │ └──────────┘ └───────────┘ └──────────┘ └───────────────┘ │
81
- └────────┬──────────────┬──────────────┬──────────┬───────────────┘
82
- v v v v
83
- SQLite/Postgres Qdrant Ollama/CLI Claude Code
84
- (vectors) (LLM stack) Auto Dream + Vault
85
- ```
86
-
87
- ## Key features
88
-
89
- - **6-state lifecycle**: `candidate` → `confirmed` → `stale` → `superseded` → `conflicted` → `archived`
90
- - **Citation tracking** with provenance for every claim
91
- - **Hybrid retrieval**: vector (sentence-transformers / Gemini) + FTS5 + freshness + confidence
92
- - **Context optimizer**: `query_for_context(budget=4000)` returns auto-curated memory that fits your token budget
93
- - **Entity graph** with typed relationships and alias resolution
94
- - **Steward governance**: multi-probe validators (filesystem, format, citation, semantic, tool) with proposal review
95
- - **Conflict resolution**: 5-tier auto (confidence > freshness > citations > LLM > manual)
96
- - **Auto-redaction** at ingest: JWT, GitHub tokens, Bearer, AWS keys, SSH keys, custom patterns
97
- - **LLM Wiki**: compiled-truth + append-only timeline articles with progressive-disclosure frontmatter
98
- - **Dual backend**: SQLite (zero-config) and Postgres (full feature parity with pgvector)
99
- - **Dream Bridge** for bidirectional sync with Claude Code's Auto Dream
100
- - **7-hook stack**: recall, classify, validate-wiki, session-start, auto-ingest, precompact, steward-cron
101
-
102
- Full feature index lives in [`docs/handbook.md`](docs/handbook.md).
103
-
104
- ## Prerequisites
105
-
106
- **Required**
107
-
108
- - Python **3.10+** with `pip`
109
- - Claude Code, Codex, or any MCP-compatible agent
110
-
111
- **Optional**
112
-
113
- - **Already a Claude Code subscriber?** No API key needed — set `MEMORYMASTER_LLM_PROVIDER=claude_cli` and the steward + auto-ingest hooks will use your existing OAuth via the local `claude --print` binary
114
- - A free Gemini API key from [aistudio.google.com](https://aistudio.google.com) — powers the auto-ingest hook at ~zero cost
115
- - **Node.js 18+** for graphify and GitNexus
116
- - **Obsidian 1.6+** with the Bases core plugin (for visual wiki browsing)
117
- - **Docker** for Qdrant (SQLite FTS5 is the default and works out of the box)
118
-
119
- ## Quick start
120
-
121
- ```bash
122
- pip install "memorymaster[mcp]"
123
- memorymaster --db memorymaster.db init-db
124
- memorymaster-setup # interactive: hooks, MCP, steward cron, CLAUDE.md / AGENTS.md
125
- ```
126
-
127
- That's enough to use the CLI, the MCP server, and the auto-ingest Stop hook.
128
-
129
- ```bash
130
- # Ingest a claim with citation
131
- memorymaster --db memorymaster.db ingest \
132
- --text "Server uses PostgreSQL 16" \
133
- --source "session://chat|turn-3|user confirmed"
134
-
135
- # Query memory (hybrid retrieval)
136
- memorymaster --db memorymaster.db query "database version" --retrieval-mode hybrid
137
-
138
- # Context optimizer — the killer feature for agents
139
- memorymaster --db memorymaster.db context "auth patterns" --budget 4000 --format xml
140
-
141
- # Run validation cycle
142
- memorymaster --db memorymaster.db run-cycle
143
- ```
144
-
145
- For the one-prompt agent install (paste into any agent with shell access), see [`docs/handbook.md#one-prompt-agent-install`](docs/handbook.md#one-prompt-agent-install).
146
-
147
- ## Pick your LLM provider
148
-
149
- | Provider | Env vars | Default model | Cost |
150
- |----------|----------|---------------|------|
151
- | **Claude Code OAuth** (recommended for subscribers) | `MEMORYMASTER_LLM_PROVIDER=claude_cli` (requires `claude` CLI on PATH) | `claude-haiku-4-5-20251001` | included in Claude Code plan |
152
- | Google Gemini (default) | `MEMORYMASTER_LLM_PROVIDER=google` + `GEMINI_API_KEY=...` | `gemini-3.1-flash-lite-preview` | ~free |
153
- | OpenAI | `MEMORYMASTER_LLM_PROVIDER=openai` + `OPENAI_API_KEY=...` | `gpt-4o-mini` | ~$0.001/call |
154
- | Anthropic API | `MEMORYMASTER_LLM_PROVIDER=anthropic` + `ANTHROPIC_API_KEY=...` | `claude-haiku-4-5-20251001` | ~$0.001/call |
155
- | Ollama (local) | `MEMORYMASTER_LLM_PROVIDER=ollama` + `OLLAMA_URL=http://localhost:11434` | `llama3.2:3b` | free |
156
-
157
- The `claude_cli` provider shells out to your local `claude --print` binary, so it inherits the OAuth session you're already logged into in Claude Code — no API key, no rotator, no quota juggling. **Caveat**: cold-start adds 3-15s per call (subprocess spawn), so it's ideal for batched/cron paths (steward, wiki-absorb) and not for latency-sensitive recall. Override with `MEMORYMASTER_CLAUDE_CLI_BIN` and `MEMORYMASTER_CLAUDE_CLI_TIMEOUT`. On VM installs the OAuth token expires ~24h, so pair with `MEMORYMASTER_LLM_FALLBACK_PROVIDER=ollama`; desktop tokens don't expire.
158
-
159
- For zero-cost offline use, install [Ollama](https://ollama.com), `ollama pull llama3.2:3b`, and set `MEMORYMASTER_LLM_PROVIDER=ollama`.
160
-
161
- ## MCP server
162
-
163
- ```json
164
- {
165
- "mcpServers": {
166
- "memorymaster": {
167
- "command": "memorymaster-mcp",
168
- "env": {
169
- "MEMORYMASTER_DEFAULT_DB": "/path/to/memorymaster.db",
170
- "MEMORYMASTER_WORKSPACE": "/path/to/your/project"
171
- }
172
- }
173
- }
174
- }
175
- ```
176
-
177
- 22 MCP tools: `init_db`, `ingest_claim`, `run_cycle`, `run_steward`, `classify_query`, `query_memory`, `query_for_context`, `list_claims`, `redact_claim_payload`, `pin_claim`, `compact_memory`, `list_events`, `search_verbatim`, `open_dashboard`, `list_steward_proposals`, `resolve_steward_proposal`, `extract_entities`, `entity_stats`, `find_related_claims`, `quality_scores`, `recompute_tiers`, `federated_query`.
178
-
179
- See [`.mcp.json.example`](.mcp.json.example) for the full template.
180
-
181
- ## Backends
182
-
183
- | Backend | Install | Use case |
184
- |---------|---------|----------|
185
- | **SQLite** | Built-in | Local development, single-agent, zero-config |
186
- | **Postgres** | `pip install "memorymaster[postgres]"` | Team deployment, multi-agent, pgvector search |
187
-
188
- ## Docker Compose
189
-
190
- Run the full stack (MemoryMaster + Qdrant + Ollama) with one command:
191
-
192
- ```bash
193
- docker compose up -d
194
- ```
195
-
196
- See [INSTALLATION.md](INSTALLATION.md) for Kubernetes / Helm.
197
-
198
- ## Development
199
-
200
- ```bash
201
- # Install with dev dependencies
202
- pip install -e ".[dev,mcp,security,embeddings,qdrant]"
203
-
204
- # Run tests
205
- pytest tests/ -q
206
-
207
- # Lint and format
208
- ruff check memorymaster/ && ruff format memorymaster/
209
-
210
- # Performance benchmarks
211
- python benchmarks/perf_smoke.py
212
- ```
213
-
214
- See [CONTRIBUTING.md](CONTRIBUTING.md) for the full workflow.
215
-
216
- ## Documentation
217
-
218
- | Document | Description |
219
- |----------|-------------|
220
- | [docs/handbook.md](docs/handbook.md) | Full operator handbook — hooks, dashboard, steward, dream bridge, troubleshooting, one-prompt install |
221
- | [INSTALLATION.md](INSTALLATION.md) | Setup guide: pip, Docker, Helm, MCP config |
222
- | [CONTRIBUTING.md](CONTRIBUTING.md) | Dev setup, testing, PR workflow |
223
- | [ARCHITECTURE.md](ARCHITECTURE.md) | System design and subsystem details |
224
- | [USER_GUIDE.md](USER_GUIDE.md) | Usage, MCP integration, troubleshooting |
225
- | [CHANGELOG.md](CHANGELOG.md) | Version history and release notes |
226
- | [ROADMAP.md](ROADMAP.md) | Release plan and future tracks |
227
- | [docs/enabling-v2-systems.md](docs/enabling-v2-systems.md) | v3 statistical classifier + cadence policy opt-in |
228
-
229
- ## License
230
-
231
- [MIT](LICENSE) — Built by [wolverin0](https://github.com/wolverin0)
1
+ Metadata-Version: 2.4
2
+ Name: memorymaster
3
+ Version: 3.11.0
4
+ Summary: Production-grade memory reliability system for AI coding agents. Lifecycle-managed claims with citations, conflict detection, steward governance, and MCP integration.
5
+ Author: wolverin0
6
+ License: MIT
7
+ Keywords: memory,ai-agents,claims,lifecycle,mcp,sqlite,postgres,coding-agents
8
+ Classifier: Development Status :: 5 - Production/Stable
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Topic :: Software Development :: Libraries
16
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
17
+ Requires-Python: >=3.10
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Provides-Extra: postgres
21
+ Requires-Dist: psycopg[binary]>=3.2; extra == "postgres"
22
+ Provides-Extra: security
23
+ Requires-Dist: cryptography>=42; extra == "security"
24
+ Provides-Extra: embeddings
25
+ Requires-Dist: sentence-transformers>=3.0; extra == "embeddings"
26
+ Provides-Extra: gemini
27
+ Requires-Dist: google-genai>=1.0; extra == "gemini"
28
+ Provides-Extra: qdrant
29
+ Requires-Dist: httpx>=0.27; extra == "qdrant"
30
+ Provides-Extra: vector
31
+ Requires-Dist: sentence-transformers>=3.0; extra == "vector"
32
+ Requires-Dist: qdrant-client>=1.9; extra == "vector"
33
+ Provides-Extra: graph
34
+ Requires-Dist: kuzu>=0.4; extra == "graph"
35
+ Provides-Extra: dev
36
+ Requires-Dist: pytest>=8.2; extra == "dev"
37
+ Requires-Dist: pytest-cov>=6.0; extra == "dev"
38
+ Provides-Extra: mcp
39
+ Requires-Dist: mcp>=1.2; extra == "mcp"
40
+ Provides-Extra: ml
41
+ Requires-Dist: scikit-learn>=1.3; extra == "ml"
42
+ Requires-Dist: joblib>=1.3; extra == "ml"
43
+ Dynamic: license-file
44
+
45
+ # MemoryMaster
46
+
47
+ **Production-grade memory reliability system for AI coding agents.**
48
+
49
+ Lifecycle-managed claims with citations, conflict detection, steward governance, hybrid retrieval, and MCP integration. Give your AI agents persistent, trustworthy memory.
50
+
51
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
52
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
53
+ [![Tests](https://img.shields.io/badge/tests-1029-green.svg)]()
54
+ [![MCP Tools](https://img.shields.io/badge/MCP%20tools-22-purple.svg)]()
55
+ [![CLI Commands](https://img.shields.io/badge/CLI%20commands-64-orange.svg)]()
56
+ [![PyPI](https://img.shields.io/pypi/v/memorymaster.svg)](https://pypi.org/project/memorymaster/)
57
+
58
+ MemoryMaster prevents the #1 problem with agent memory: **drift, stale assumptions, and unsafe disclosure**. It gives Claude Code, Codex, and any MCP-compatible agent persistent, verifiable memory with a full claim lifecycle, citation tracking, conflict detection, and human-in-the-loop governance.
59
+
60
+ ---
61
+
62
+ ## Architecture
63
+
64
+ ```
65
+ ┌─────────────────────────────────────────────────────────────────┐
66
+ │ Agent Runtime │
67
+ │ (Claude Code / Codex / any MCP-compatible agent) │
68
+ └────────────┬────────────────────────────────┬───────────────────┘
69
+ │ MCP (22 tools) │ CLI (64 commands)
70
+ v v
71
+ ┌─────────────────────────────────────────────────────────────────┐
72
+ │ MemoryMaster Core │
73
+ │ ┌──────────┐ ┌───────────┐ ┌──────────┐ ┌───────────────┐ │
74
+ │ │ Ingestor │ │ Extractor │ │ Validator │ │ State Engine │ │
75
+ │ │ (events) │->│ (claims) │->│ (probes) │->│ (6-state FSM) │ │
76
+ │ └──────────┘ └───────────┘ └──────────┘ └───────────────┘ │
77
+ │ ┌──────────┐ ┌───────────┐ ┌──────────┐ ┌───────────────┐ │
78
+ │ │ Retrieval│ │ Compactor │ │ Steward │ │ Dashboard │ │
79
+ │ │ (hybrid) │ │ (archive) │ │ (govern) │ │ (HTML+SSE) │ │
80
+ │ └──────────┘ └───────────┘ └──────────┘ └───────────────┘ │
81
+ └────────┬──────────────┬──────────────┬──────────┬───────────────┘
82
+ v v v v
83
+ SQLite/Postgres Qdrant Ollama/CLI Claude Code
84
+ (vectors) (LLM stack) Auto Dream + Vault
85
+ ```
86
+
87
+ ## Key features
88
+
89
+ - **6-state lifecycle**: `candidate` → `confirmed` → `stale` → `superseded` → `conflicted` → `archived`
90
+ - **Citation tracking** with provenance for every claim
91
+ - **Hybrid retrieval**: vector (sentence-transformers / Gemini) + FTS5 + freshness + confidence
92
+ - **Context optimizer**: `query_for_context(budget=4000)` returns auto-curated memory that fits your token budget
93
+ - **Entity graph** with typed relationships and alias resolution
94
+ - **Steward governance**: multi-probe validators (filesystem, format, citation, semantic, tool) with proposal review
95
+ - **Conflict resolution**: 5-tier auto (confidence > freshness > citations > LLM > manual)
96
+ - **Auto-redaction** at ingest: JWT, GitHub tokens, Bearer, AWS keys, SSH keys, custom patterns
97
+ - **LLM Wiki**: compiled-truth + append-only timeline articles with progressive-disclosure frontmatter
98
+ - **Dual backend**: SQLite (zero-config) and Postgres (full feature parity with pgvector)
99
+ - **Dream Bridge** for bidirectional sync with Claude Code's Auto Dream
100
+ - **7-hook stack**: recall, classify, validate-wiki, session-start, auto-ingest, precompact, steward-cron
101
+
102
+ Full feature index lives in [`docs/handbook.md`](docs/handbook.md).
103
+
104
+ ## Prerequisites
105
+
106
+ **Required**
107
+
108
+ - Python **3.10+** with `pip`
109
+ - Claude Code, Codex, or any MCP-compatible agent
110
+
111
+ **Optional**
112
+
113
+ - **Already a Claude Code subscriber?** No API key needed — set `MEMORYMASTER_LLM_PROVIDER=claude_cli` and the steward + auto-ingest hooks will use your existing OAuth via the local `claude --print` binary
114
+ - A free Gemini API key from [aistudio.google.com](https://aistudio.google.com) — powers the auto-ingest hook at ~zero cost
115
+ - **Node.js 18+** for graphify and GitNexus
116
+ - **Obsidian 1.6+** with the Bases core plugin (for visual wiki browsing)
117
+ - **Docker** for Qdrant (SQLite FTS5 is the default and works out of the box)
118
+
119
+ ## Quick start
120
+
121
+ ```bash
122
+ pip install "memorymaster[mcp]"
123
+ memorymaster --db memorymaster.db init-db
124
+ memorymaster-setup # interactive: hooks, MCP, steward cron, CLAUDE.md / AGENTS.md
125
+ ```
126
+
127
+ That's enough to use the CLI, the MCP server, and the auto-ingest Stop hook.
128
+
129
+ ```bash
130
+ # Ingest a claim with citation
131
+ memorymaster --db memorymaster.db ingest \
132
+ --text "Server uses PostgreSQL 16" \
133
+ --source "session://chat|turn-3|user confirmed"
134
+
135
+ # Query memory (hybrid retrieval)
136
+ memorymaster --db memorymaster.db query "database version" --retrieval-mode hybrid
137
+
138
+ # Context optimizer — the killer feature for agents
139
+ memorymaster --db memorymaster.db context "auth patterns" --budget 4000 --format xml
140
+
141
+ # Run validation cycle
142
+ memorymaster --db memorymaster.db run-cycle
143
+ ```
144
+
145
+ For the one-prompt agent install (paste into any agent with shell access), see [`docs/handbook.md#one-prompt-agent-install`](docs/handbook.md#one-prompt-agent-install).
146
+
147
+ ## Pick your LLM provider
148
+
149
+ | Provider | Env vars | Default model | Cost |
150
+ |----------|----------|---------------|------|
151
+ | **Claude Code OAuth** (recommended for subscribers) | `MEMORYMASTER_LLM_PROVIDER=claude_cli` (requires `claude` CLI on PATH) | `claude-haiku-4-5-20251001` | included in Claude Code plan |
152
+ | Google Gemini (default) | `MEMORYMASTER_LLM_PROVIDER=google` + `GEMINI_API_KEY=...` | `gemini-3.1-flash-lite-preview` | ~free |
153
+ | OpenAI | `MEMORYMASTER_LLM_PROVIDER=openai` + `OPENAI_API_KEY=...` | `gpt-4o-mini` | ~$0.001/call |
154
+ | Anthropic API | `MEMORYMASTER_LLM_PROVIDER=anthropic` + `ANTHROPIC_API_KEY=...` | `claude-haiku-4-5-20251001` | ~$0.001/call |
155
+ | Ollama (local) | `MEMORYMASTER_LLM_PROVIDER=ollama` + `OLLAMA_URL=http://localhost:11434` | `llama3.2:3b` | free |
156
+
157
+ The `claude_cli` provider shells out to your local `claude --print` binary, so it inherits the OAuth session you're already logged into in Claude Code — no API key, no rotator, no quota juggling. **Caveat**: cold-start adds 3-15s per call (subprocess spawn), so it's ideal for batched/cron paths (steward, wiki-absorb) and not for latency-sensitive recall. Override with `MEMORYMASTER_CLAUDE_CLI_BIN` and `MEMORYMASTER_CLAUDE_CLI_TIMEOUT`. On VM installs the OAuth token expires ~24h, so pair with `MEMORYMASTER_LLM_FALLBACK_PROVIDER=ollama`; desktop tokens don't expire.
158
+
159
+ For zero-cost offline use, install [Ollama](https://ollama.com), `ollama pull llama3.2:3b`, and set `MEMORYMASTER_LLM_PROVIDER=ollama`.
160
+
161
+ ## MCP server
162
+
163
+ ```json
164
+ {
165
+ "mcpServers": {
166
+ "memorymaster": {
167
+ "command": "memorymaster-mcp",
168
+ "env": {
169
+ "MEMORYMASTER_DEFAULT_DB": "/path/to/memorymaster.db",
170
+ "MEMORYMASTER_WORKSPACE": "/path/to/your/project"
171
+ }
172
+ }
173
+ }
174
+ }
175
+ ```
176
+
177
+ 22 MCP tools: `init_db`, `ingest_claim`, `run_cycle`, `run_steward`, `classify_query`, `query_memory`, `query_for_context`, `list_claims`, `redact_claim_payload`, `pin_claim`, `compact_memory`, `list_events`, `search_verbatim`, `open_dashboard`, `list_steward_proposals`, `resolve_steward_proposal`, `extract_entities`, `entity_stats`, `find_related_claims`, `quality_scores`, `recompute_tiers`, `federated_query`.
178
+
179
+ See [`.mcp.json.example`](.mcp.json.example) for the full template.
180
+
181
+ ## Backends
182
+
183
+ | Backend | Install | Use case |
184
+ |---------|---------|----------|
185
+ | **SQLite** | Built-in | Local development, single-agent, zero-config |
186
+ | **Postgres** | `pip install "memorymaster[postgres]"` | Team deployment, multi-agent, pgvector search |
187
+
188
+ ## Docker Compose
189
+
190
+ Run the full stack (MemoryMaster + Qdrant + Ollama) with one command:
191
+
192
+ ```bash
193
+ docker compose up -d
194
+ ```
195
+
196
+ See [INSTALLATION.md](INSTALLATION.md) for Kubernetes / Helm.
197
+
198
+ ## Development
199
+
200
+ ```bash
201
+ # Install with dev dependencies
202
+ pip install -e ".[dev,mcp,security,embeddings,qdrant]"
203
+
204
+ # Run tests
205
+ pytest tests/ -q
206
+
207
+ # Lint and format
208
+ ruff check memorymaster/ && ruff format memorymaster/
209
+
210
+ # Performance benchmarks
211
+ python benchmarks/perf_smoke.py
212
+ ```
213
+
214
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for the full workflow.
215
+
216
+ ## Documentation
217
+
218
+ | Document | Description |
219
+ |----------|-------------|
220
+ | [docs/handbook.md](docs/handbook.md) | Full operator handbook — hooks, dashboard, steward, dream bridge, troubleshooting, one-prompt install |
221
+ | [INSTALLATION.md](INSTALLATION.md) | Setup guide: pip, Docker, Helm, MCP config |
222
+ | [CONTRIBUTING.md](CONTRIBUTING.md) | Dev setup, testing, PR workflow |
223
+ | [ARCHITECTURE.md](ARCHITECTURE.md) | System design and subsystem details |
224
+ | [USER_GUIDE.md](USER_GUIDE.md) | Usage, MCP integration, troubleshooting |
225
+ | [CHANGELOG.md](CHANGELOG.md) | Version history and release notes |
226
+ | [ROADMAP.md](ROADMAP.md) | Release plan and future tracks |
227
+ | [docs/enabling-v2-systems.md](docs/enabling-v2-systems.md) | v3 statistical classifier + cadence policy opt-in |
228
+
229
+ ## License
230
+
231
+ [MIT](LICENSE) — Built by [wolverin0](https://github.com/wolverin0)