memorymaster 3.6.0__tar.gz → 3.10.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 (337) hide show
  1. {memorymaster-3.6.0/memorymaster.egg-info → memorymaster-3.10.0}/PKG-INFO +231 -231
  2. {memorymaster-3.6.0 → memorymaster-3.10.0}/README.md +187 -187
  3. {memorymaster-3.6.0 → memorymaster-3.10.0}/artifacts/bm25-per-field-eval-harness.py +309 -309
  4. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/__init__.py +5 -5
  5. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/_storage_lifecycle.py +552 -552
  6. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/_storage_read.py +654 -654
  7. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/_storage_schema.py +652 -652
  8. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/_storage_shared.py +41 -41
  9. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/_storage_write_claims.py +353 -353
  10. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/access_control.py +126 -126
  11. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/auto_extractor.py +139 -139
  12. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/auto_resolver.py +220 -220
  13. memorymaster-3.10.0/memorymaster/claim_edges.py +227 -0
  14. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/cli.py +442 -442
  15. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/cli_handlers_basic.py +716 -716
  16. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/cli_handlers_curation.py +893 -893
  17. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/cli_helpers.py +138 -138
  18. memorymaster-3.10.0/memorymaster/closets.py +232 -0
  19. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/hooks/memorymaster-auto-ingest.py +222 -222
  20. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/hooks/memorymaster-classify.py +304 -304
  21. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/hooks/memorymaster-dream-sync.py +27 -27
  22. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/hooks/memorymaster-observe.py +39 -39
  23. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/hooks/memorymaster-precompact.py +76 -76
  24. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/hooks/memorymaster-recall.py +32 -32
  25. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/hooks/memorymaster-session-start.py +272 -272
  26. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/hooks/memorymaster-steward-cycle.py +60 -60
  27. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/context_hook.py +1823 -1561
  28. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/context_optimizer.py +253 -253
  29. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/dashboard.py +1059 -1059
  30. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/db_merge.py +156 -156
  31. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/dream_bridge.py +697 -697
  32. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/embeddings.py +199 -199
  33. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/entity_extractor.py +767 -718
  34. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/entity_graph.py +313 -313
  35. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/entity_registry.py +456 -456
  36. memorymaster-3.10.0/memorymaster/federated_graphify.py +154 -0
  37. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/feedback.py +247 -247
  38. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/graph_store.py +570 -570
  39. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/hook_log.py +65 -65
  40. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/jobs/__init__.py +5 -5
  41. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/jobs/decay.py +50 -50
  42. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/jobs/deterministic.py +376 -376
  43. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/jobs/validator.py +233 -233
  44. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/key_rotator.py +176 -176
  45. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/llm_provider.py +512 -512
  46. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/llm_steward.py +847 -847
  47. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/mcp_server.py +962 -962
  48. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/metrics_exporter.py +1 -1
  49. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/models.py +336 -336
  50. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/operator.py +1453 -1453
  51. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/policy.py +133 -133
  52. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/postgres_store.py +1665 -1665
  53. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/qdrant_backend.py +327 -327
  54. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/qdrant_recall_fallback.py +305 -305
  55. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/query_expansion.py +184 -184
  56. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/recall_fusion.py +79 -79
  57. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/recall_tokenizer.py +305 -305
  58. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/retrieval.py +237 -237
  59. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/scheduler.py +98 -98
  60. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/schema.sql +123 -123
  61. memorymaster-3.10.0/memorymaster/scope_utils.py +109 -0
  62. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/security.py +363 -363
  63. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/service.py +792 -792
  64. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/session_tracker.py +129 -129
  65. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/setup_hooks.py +404 -404
  66. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/skill_evolver.py +161 -161
  67. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/steward.py +1627 -1627
  68. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/steward_classifier.py +149 -149
  69. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/steward_features.py +345 -345
  70. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/storage.py +101 -101
  71. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/vault_linter.py +301 -301
  72. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/verbatim_recall.py +296 -296
  73. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/webhook.py +58 -58
  74. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/wiki_freshness.py +228 -228
  75. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/wiki_similarity.py +621 -621
  76. memorymaster-3.10.0/memorymaster/wiki_validate.py +299 -0
  77. {memorymaster-3.6.0 → memorymaster-3.10.0/memorymaster.egg-info}/PKG-INFO +231 -231
  78. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster.egg-info/SOURCES.txt +16 -44
  79. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster.egg-info/top_level.txt +0 -4
  80. {memorymaster-3.6.0 → memorymaster-3.10.0}/pyproject.toml +72 -72
  81. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/agg_recall_latency.py +184 -184
  82. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/alert_operator_metrics.py +1 -1
  83. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/backfill_entity_extraction.py +327 -327
  84. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/backfill_graph_store.py +264 -264
  85. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/backfill_stop_hook_citations.py +137 -137
  86. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/backtest_steward_classifier.py +757 -757
  87. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/build_steward_training_set.py +119 -119
  88. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/check_hook_template_drift.py +143 -143
  89. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/eval_bm25_sweep.py +432 -432
  90. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/eval_classify_f1.py +226 -226
  91. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/eval_recall_precision_at_5.py +468 -468
  92. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/eval_recall_quality.py +132 -132
  93. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/eval_steward_pareto.py +273 -273
  94. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/eval_verbatim_recall.py +216 -216
  95. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/expand_recall_eval.py +404 -404
  96. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/gitnexus_to_claims.py +180 -180
  97. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/grid_recall_weights.py +191 -191
  98. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/index_claims_to_qdrant.py +315 -315
  99. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/ingest_planning_docs.py +170 -170
  100. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/label_prompts_with_judge.py +211 -211
  101. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/merge_scope_variants.py +216 -216
  102. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/precompute_candidates.py +94 -94
  103. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/run_longmemeval.py +997 -997
  104. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/scheduled_ingest.py +595 -595
  105. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/setup-hooks.py +10 -10
  106. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/sync_hook_templates.py +117 -117
  107. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/train_steward_classifier.py +457 -457
  108. {memorymaster-3.6.0 → memorymaster-3.10.0}/setup.cfg +4 -4
  109. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/conftest.py +37 -37
  110. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/integration/test_extract_llm_ollama_live.py +49 -49
  111. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_auto_ingest_hook_citations.py +147 -147
  112. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_auto_validate.py +197 -197
  113. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_bm25_per_field.py +222 -222
  114. memorymaster-3.10.0/tests/test_claim_edges.py +167 -0
  115. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_claim_links.py +288 -288
  116. memorymaster-3.10.0/tests/test_claim_type_ranking.py +84 -0
  117. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_classify_hook_f1.py +85 -85
  118. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_classify_hook_latency.py +91 -91
  119. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_cli_review_queue.py +1 -1
  120. memorymaster-3.10.0/tests/test_closets.py +143 -0
  121. memorymaster-3.10.0/tests/test_closets_recall_integration.py +50 -0
  122. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_compaction_trace.py +1 -1
  123. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_connectors.py +473 -473
  124. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_context_hook.py +260 -260
  125. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_deterministic_predicates.py +1 -1
  126. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_entity_extractor.py +150 -150
  127. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_entity_extractor_llm.py +296 -296
  128. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_entity_new_kinds.py +241 -241
  129. memorymaster-3.10.0/tests/test_entity_regex_v3.py +71 -0
  130. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_entity_registry.py +406 -406
  131. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_eval_harness.py +291 -291
  132. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_events_schema.py +1 -1
  133. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_extract_llm_ollama.py +140 -140
  134. memorymaster-3.10.0/tests/test_federated_graphify_mcp.py +136 -0
  135. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_fts5_search.py +169 -169
  136. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_graph_distance.py +233 -233
  137. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_graph_store.py +321 -321
  138. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_hook_env_isolation.py +79 -79
  139. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_integration_workflows.py +534 -534
  140. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_key_rotator.py +159 -159
  141. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_llm_fallback.py +219 -219
  142. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_llm_provider_claude_cli.py +186 -186
  143. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_mcp_helpers.py +412 -412
  144. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_metrics_exporter.py +1 -1
  145. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_operator.py +379 -379
  146. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_policy_mode_env.py +91 -91
  147. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_postgres_parity.py +625 -625
  148. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_query_expansion.py +264 -264
  149. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_recall_entity_fanout.py +459 -459
  150. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_recall_fusion.py +94 -94
  151. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_recall_latency.py +275 -275
  152. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_recall_precision_at_5.py +261 -261
  153. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_recall_tokenizer.py +234 -234
  154. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_recall_vector_fallback.py +306 -306
  155. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_reliability_hardening.py +1 -1
  156. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_rl_trainer.py +232 -232
  157. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_rrf_auto_gate.py +223 -223
  158. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_scope_boost.py +298 -298
  159. memorymaster-3.10.0/tests/test_scope_utils.py +112 -0
  160. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_security_patterns.py +249 -249
  161. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_sensitivity_filter_adversarial.py +93 -93
  162. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_sensitivity_filter_adversarial_v2.py +153 -153
  163. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_sqlite_core.py +255 -255
  164. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_steward.py +348 -348
  165. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_steward_classifier.py +261 -261
  166. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_steward_features.py +174 -174
  167. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_steward_features_v3.py +254 -254
  168. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_steward_resolution_parity.py +219 -219
  169. memorymaster-3.10.0/tests/test_two_pass_recall.py +86 -0
  170. memorymaster-3.10.0/tests/test_v390_e2e.py +151 -0
  171. memorymaster-3.10.0/tests/test_v391_strict_warnings.py +73 -0
  172. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_vault_exporter.py +381 -381
  173. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_vector_search.py +367 -367
  174. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_verbatim_recall.py +321 -321
  175. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_wiki_freshness.py +281 -281
  176. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_wiki_similarity_multiscope.py +270 -270
  177. memorymaster-3.10.0/tests/test_wiki_validate_cli.py +193 -0
  178. memorymaster-3.6.0/artifacts/l2-haiku-batches/extract.py +0 -66
  179. memorymaster-3.6.0/cloned/MetaClaw/examples/run_conversation_opd.py +0 -64
  180. memorymaster-3.6.0/cloned/MetaClaw/examples/run_conversation_replay.py +0 -242
  181. memorymaster-3.6.0/cloned/MetaClaw/examples/run_conversation_rl.py +0 -118
  182. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/__init__.py +0 -39
  183. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/__main__.py +0 -5
  184. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/api_server.py +0 -1782
  185. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/bedrock_client.py +0 -195
  186. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/calendar_client.py +0 -290
  187. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/claw_adapter.py +0 -597
  188. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/cli.py +0 -559
  189. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/config.py +0 -200
  190. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/config_store.py +0 -283
  191. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/data_formatter.py +0 -242
  192. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/idle_detector.py +0 -122
  193. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/launcher.py +0 -273
  194. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/log_color.py +0 -150
  195. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/openclaw_env_rollout.py +0 -384
  196. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/prm_scorer.py +0 -244
  197. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/rollout.py +0 -189
  198. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/runtime_state.py +0 -131
  199. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/scheduler.py +0 -254
  200. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/sdk_backend.py +0 -166
  201. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/setup_wizard.py +0 -420
  202. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/skill_evolver.py +0 -463
  203. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/skill_manager.py +0 -487
  204. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/trainer.py +0 -560
  205. memorymaster-3.6.0/cloned/MetaClaw/metaclaw/utils.py +0 -161
  206. memorymaster-3.6.0/cloned/MetaClaw/scripts/run_v03_benchmark.py +0 -310
  207. memorymaster-3.6.0/cloned/MetaClaw/tests/conftest.py +0 -7
  208. memorymaster-3.6.0/cloned/MetaClaw/tests/test_cli.py +0 -352
  209. memorymaster-3.6.0/cloned/MetaClaw/tests/test_launcher.py +0 -98
  210. memorymaster-3.6.0/cloned/MetaClaw/tests/test_openclaw_env_rollout.py +0 -153
  211. memorymaster-3.6.0/cloned/MetaClaw/tests/test_runtime_state.py +0 -62
  212. memorymaster-3.6.0/cloned/MetaClaw/tests/test_sdk_backend.py +0 -144
  213. memorymaster-3.6.0/cloned/MetaClaw/tests/test_setup_wizard.py +0 -130
  214. memorymaster-3.6.0/cloned/MetaClaw/tests/test_utils.py +0 -211
  215. memorymaster-3.6.0/cloned/MetaClaw/tests/test_v03_live_tinker.py +0 -743
  216. memorymaster-3.6.0/cloned/agent-skill-creator/references/examples/stock-analyzer/scripts/main.py +0 -397
  217. memorymaster-3.6.0/cloned/agent-skill-creator/scripts/export_utils.py +0 -845
  218. memorymaster-3.6.0/cloned/agent-skill-creator/scripts/security_scan.py +0 -423
  219. memorymaster-3.6.0/cloned/agent-skill-creator/scripts/skill_registry.py +0 -823
  220. memorymaster-3.6.0/cloned/agent-skill-creator/scripts/staleness_check.py +0 -796
  221. memorymaster-3.6.0/cloned/agent-skill-creator/scripts/validate.py +0 -461
  222. {memorymaster-3.6.0 → memorymaster-3.10.0}/LICENSE +0 -0
  223. {memorymaster-3.6.0 → memorymaster-3.10.0}/benchmarks/longmemeval_runner.py +0 -0
  224. {memorymaster-3.6.0 → memorymaster-3.10.0}/benchmarks/longmemeval_vector_runner.py +0 -0
  225. {memorymaster-3.6.0 → memorymaster-3.10.0}/benchmarks/perf_smoke.py +0 -0
  226. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/__main__.py +0 -0
  227. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/claim_verifier.py +0 -0
  228. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config.py +0 -0
  229. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/claude-md-append.md +0 -0
  230. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/codex-agents-md-append.md +0 -0
  231. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/config_templates/hooks/memorymaster-validate-wiki.py +0 -0
  232. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/conflict_resolver.py +0 -0
  233. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/daily_notes.py +0 -0
  234. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/jobs/compact_summaries.py +0 -0
  235. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/jobs/compactor.py +0 -0
  236. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/jobs/dedup.py +0 -0
  237. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/jobs/extractor.py +0 -0
  238. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/jobs/staleness.py +0 -0
  239. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/lifecycle.py +0 -0
  240. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/operator_queue.py +0 -0
  241. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/plugins.py +0 -0
  242. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/qmd_bridge.py +0 -0
  243. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/query_classifier.py +0 -0
  244. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/retry.py +0 -0
  245. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/review.py +0 -0
  246. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/rl_trainer.py +0 -0
  247. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/schema.py +0 -0
  248. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/schema_postgres.sql +0 -0
  249. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/snapshot.py +0 -0
  250. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/store_factory.py +0 -0
  251. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/transcript_miner.py +0 -0
  252. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/turn_schema.py +0 -0
  253. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/vault_bases.py +0 -0
  254. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/vault_curator.py +0 -0
  255. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/vault_exporter.py +0 -0
  256. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/vault_log.py +0 -0
  257. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/vault_query_capture.py +0 -0
  258. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/vault_synthesis.py +0 -0
  259. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/verbatim_store.py +0 -0
  260. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster/wiki_engine.py +0 -0
  261. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster.egg-info/dependency_links.txt +0 -0
  262. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster.egg-info/entry_points.txt +0 -0
  263. {memorymaster-3.6.0 → memorymaster-3.10.0}/memorymaster.egg-info/requires.txt +0 -0
  264. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/autoresearch_daemon.py +0 -0
  265. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/claude_to_turns.py +0 -0
  266. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/codex_live_to_turns.py +0 -0
  267. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/compaction_edge_cases.py +0 -0
  268. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/compaction_trace_report.py +0 -0
  269. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/compaction_trace_validate.py +0 -0
  270. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/confusion_matrix_eval.py +0 -0
  271. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/conversation_importer.py +0 -0
  272. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/conversation_to_turns.py +0 -0
  273. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/e2e_operator.py +0 -0
  274. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/email_live_to_turns.py +0 -0
  275. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/eval_memorymaster.py +0 -0
  276. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/generate_drill_signoff.py +0 -0
  277. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/git_to_turns.py +0 -0
  278. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/github_live_to_turns.py +0 -0
  279. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/jira_live_to_turns.py +0 -0
  280. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/llm_benchmark.py +0 -0
  281. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/messages_to_turns.py +0 -0
  282. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/operator_metrics.py +0 -0
  283. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/recurring_incident_drill.py +0 -0
  284. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/release_readiness.py +0 -0
  285. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/run_codex_autologger.py +0 -0
  286. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/run_incident_drill.py +0 -0
  287. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/slack_live_to_turns.py +0 -0
  288. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/tickets_to_turns.py +0 -0
  289. {memorymaster-3.6.0 → memorymaster-3.10.0}/scripts/webhook_to_turns.py +0 -0
  290. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_access_control.py +0 -0
  291. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_auto_extractor.py +0 -0
  292. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_auto_ingest_hook_schema.py +0 -0
  293. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_auto_resolver.py +0 -0
  294. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_claude_to_turns.py +0 -0
  295. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_cli_json_flag.py +0 -0
  296. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_cli_ready.py +0 -0
  297. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_cli_subcommands.py +0 -0
  298. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_compact_summaries.py +0 -0
  299. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_config.py +0 -0
  300. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_conflict_resolver.py +0 -0
  301. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_confusion_matrix_eval.py +0 -0
  302. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_connection_retry.py +0 -0
  303. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_context_optimizer.py +0 -0
  304. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_conversation_to_turns.py +0 -0
  305. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_dashboard.py +0 -0
  306. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_dedup.py +0 -0
  307. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_embeddings_coverage.py +0 -0
  308. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_entity_graph.py +0 -0
  309. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_feedback.py +0 -0
  310. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_handler_regressions.py +0 -0
  311. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_human_id.py +0 -0
  312. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_incident_drill_runner.py +0 -0
  313. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_lifecycle.py +0 -0
  314. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_llm_steward_coverage.py +0 -0
  315. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_llm_steward_key_rotation.py +0 -0
  316. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_obsidian_mind_patterns.py +0 -0
  317. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_operator_queue.py +0 -0
  318. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_perf_smoke_config.py +0 -0
  319. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_plugins.py +0 -0
  320. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_policy_coverage.py +0 -0
  321. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_qdrant_backend.py +0 -0
  322. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_qmd_bridge.py +0 -0
  323. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_query_classifier.py +0 -0
  324. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_review.py +0 -0
  325. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_scheduler.py +0 -0
  326. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_schema.py +0 -0
  327. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_security_access.py +0 -0
  328. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_service_coverage.py +0 -0
  329. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_session_tracker.py +0 -0
  330. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_snapshot.py +0 -0
  331. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_staleness.py +0 -0
  332. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_stealth_mode.py +0 -0
  333. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_store_factory.py +0 -0
  334. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_tenant_isolation.py +0 -0
  335. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_turn_schema.py +0 -0
  336. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_webhook.py +0 -0
  337. {memorymaster-3.6.0 → memorymaster-3.10.0}/tests/test_wiki_binding.py +0 -0
@@ -1,231 +1,231 @@
1
- Metadata-Version: 2.4
2
- Name: memorymaster
3
- Version: 3.6.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.10.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)