grafeo-memory 0.2.2__tar.gz → 0.4.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 (228) hide show
  1. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/.env.example +18 -2
  2. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/.github/workflows/ci.yml +13 -12
  3. grafeo_memory-0.4.0/.github/workflows/engine-compat.yml +45 -0
  4. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/.github/workflows/pypi.yml +4 -4
  5. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/.gitignore +25 -0
  6. grafeo_memory-0.4.0/.pre-commit-config.yaml +68 -0
  7. grafeo_memory-0.4.0/CHANGELOG.md +437 -0
  8. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/CONTRIBUTING.md +1 -1
  9. grafeo_memory-0.4.0/PKG-INFO +693 -0
  10. grafeo_memory-0.4.0/README.md +639 -0
  11. grafeo_memory-0.4.0/_typos.toml +3 -0
  12. grafeo_memory-0.4.0/docs/architecture.md +66 -0
  13. grafeo_memory-0.4.0/docs/benchmarks.md +124 -0
  14. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/async_memory.py +1 -1
  15. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/importance_scoring.py +2 -2
  16. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/mistral_quickstart.py +4 -4
  17. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/multimodal_vision.py +2 -2
  18. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/procedural_memory.py +1 -1
  19. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/temporal_bench.py +1 -1
  20. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/topology_boost.py +3 -3
  21. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/usage_tracking.py +1 -1
  22. grafeo_memory-0.4.0/grafeo_memory/__init__.py +164 -0
  23. grafeo_memory-0.4.0/grafeo_memory/_deprecated.py +83 -0
  24. grafeo_memory-0.4.0/grafeo_memory/agent_framework.py +388 -0
  25. grafeo_memory-0.4.0/grafeo_memory/bench/README.md +6 -0
  26. grafeo_memory-0.4.0/grafeo_memory/bench/__init__.py +7 -0
  27. grafeo_memory-0.4.0/grafeo_memory/bench/beam_eval.py +409 -0
  28. grafeo_memory-0.4.0/grafeo_memory/bench/common.py +233 -0
  29. grafeo_memory-0.4.0/grafeo_memory/bench/lme_eval.py +421 -0
  30. grafeo_memory-0.4.0/grafeo_memory/bench/locomo_eval.py +731 -0
  31. grafeo_memory-0.4.0/grafeo_memory/bench/matrix.py +526 -0
  32. grafeo_memory-0.4.0/grafeo_memory/bench/ruff.toml +11 -0
  33. grafeo_memory-0.4.0/grafeo_memory/bench/vector_search_bench.py +230 -0
  34. grafeo_memory-0.4.0/grafeo_memory/cli/__init__.py +11 -0
  35. grafeo_memory-0.2.2/src/grafeo_memory/cli.py → grafeo_memory-0.4.0/grafeo_memory/cli/app.py +53 -21
  36. grafeo_memory-0.4.0/grafeo_memory/common/README.md +13 -0
  37. grafeo_memory-0.4.0/grafeo_memory/common/__init__.py +63 -0
  38. grafeo_memory-0.4.0/grafeo_memory/common/cache.py +616 -0
  39. grafeo_memory-0.2.2/src/grafeo_memory/_compat.py → grafeo_memory-0.4.0/grafeo_memory/common/compat.py +17 -9
  40. grafeo_memory-0.4.0/grafeo_memory/common/exceptions.py +15 -0
  41. grafeo_memory-0.4.0/grafeo_memory/common/intervals.py +329 -0
  42. grafeo_memory-0.4.0/grafeo_memory/common/logging.py +106 -0
  43. grafeo_memory-0.4.0/grafeo_memory/common/paths.py +58 -0
  44. grafeo_memory-0.4.0/grafeo_memory/common/ruff.toml +11 -0
  45. grafeo_memory-0.4.0/grafeo_memory/common/secrets.py +37 -0
  46. grafeo_memory-0.4.0/grafeo_memory/common/settings.py +130 -0
  47. grafeo_memory-0.4.0/grafeo_memory/common/telemetry.py +32 -0
  48. grafeo_memory-0.4.0/grafeo_memory/common/timing.py +65 -0
  49. grafeo_memory-0.4.0/grafeo_memory/common/types.py +1095 -0
  50. grafeo_memory-0.4.0/grafeo_memory/core/__init__.py +4 -0
  51. grafeo_memory-0.4.0/grafeo_memory/core/_compat.py +4 -0
  52. grafeo_memory-0.4.0/grafeo_memory/core/_graph.py +36 -0
  53. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/_tracing.py +2 -2
  54. grafeo_memory-0.4.0/grafeo_memory/core/bucket.py +54 -0
  55. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/communities.py +12 -9
  56. grafeo_memory-0.4.0/grafeo_memory/core/extraction/__init__.py +16 -0
  57. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/extraction/entities.py +65 -34
  58. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/extraction/facts.py +18 -12
  59. grafeo_memory-0.4.0/grafeo_memory/core/extraction/ruff.toml +12 -0
  60. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/extraction/temporal.py +6 -6
  61. grafeo_memory-0.4.0/grafeo_memory/core/history.py +214 -0
  62. grafeo_memory-0.4.0/grafeo_memory/core/ontology/README.md +9 -0
  63. grafeo_memory-0.4.0/grafeo_memory/core/ontology/__init__.py +30 -0
  64. grafeo_memory-0.4.0/grafeo_memory/core/ontology/normalize.py +97 -0
  65. grafeo_memory-0.4.0/grafeo_memory/core/ontology/ruff.toml +14 -0
  66. grafeo_memory-0.4.0/grafeo_memory/core/ontology/scheme.py +220 -0
  67. grafeo_memory-0.4.0/grafeo_memory/core/ontology/temporal_rules.py +28 -0
  68. grafeo_memory-0.4.0/grafeo_memory/core/ontology/types.py +130 -0
  69. grafeo_memory-0.4.0/grafeo_memory/core/policy/__init__.py +32 -0
  70. grafeo_memory-0.4.0/grafeo_memory/core/policy/packs.py +116 -0
  71. grafeo_memory-0.4.0/grafeo_memory/core/policy/ruff.toml +14 -0
  72. grafeo_memory-0.4.0/grafeo_memory/core/policy/rules.py +51 -0
  73. grafeo_memory-0.4.0/grafeo_memory/core/policy/shapes.py +41 -0
  74. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/prompts.py +33 -10
  75. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/protocol.py +10 -4
  76. grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/README.md +9 -0
  77. grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/__init__.py +17 -0
  78. grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/memories.py +493 -0
  79. grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/relations.py +206 -0
  80. grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/ruff.toml +11 -0
  81. grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/temporal.py +158 -0
  82. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/reranker.py +8 -20
  83. grafeo_memory-0.4.0/grafeo_memory/core/ruff.toml +9 -0
  84. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/scoring.py +11 -57
  85. grafeo_memory-0.4.0/grafeo_memory/core/search/__init__.py +6 -0
  86. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/search/graph.py +18 -9
  87. grafeo_memory-0.4.0/grafeo_memory/core/search/ruff.toml +11 -0
  88. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/search/vector.py +66 -22
  89. grafeo_memory-0.4.0/grafeo_memory/core/taxonomy.py +272 -0
  90. grafeo_memory-0.4.0/grafeo_memory/core/tiers.py +62 -0
  91. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/vision.py +5 -5
  92. grafeo_memory-0.4.0/grafeo_memory/mcp/__init__.py +9 -0
  93. {grafeo_memory-0.2.2/src → grafeo_memory-0.4.0}/grafeo_memory/mcp/resources.py +16 -6
  94. grafeo_memory-0.4.0/grafeo_memory/mcp/server.py +130 -0
  95. {grafeo_memory-0.2.2/src → grafeo_memory-0.4.0}/grafeo_memory/mcp/tools.py +272 -26
  96. grafeo_memory-0.4.0/grafeo_memory/providers/__init__.py +4 -0
  97. grafeo_memory-0.4.0/grafeo_memory/providers/decision/README.md +10 -0
  98. grafeo_memory-0.4.0/grafeo_memory/providers/decision/__init__.py +51 -0
  99. grafeo_memory-0.4.0/grafeo_memory/providers/decision/fake.py +44 -0
  100. grafeo_memory-0.4.0/grafeo_memory/providers/decision/jev.py +226 -0
  101. grafeo_memory-0.4.0/grafeo_memory/providers/decision/packs.py +291 -0
  102. grafeo_memory-0.4.0/grafeo_memory/providers/decision/protocol.py +27 -0
  103. grafeo_memory-0.4.0/grafeo_memory/providers/decision/registry.py +92 -0
  104. grafeo_memory-0.4.0/grafeo_memory/providers/decision/ruff.toml +10 -0
  105. grafeo_memory-0.4.0/grafeo_memory/providers/decision/types.py +42 -0
  106. grafeo_memory-0.2.2/src/grafeo_memory/embedding.py → grafeo_memory-0.4.0/grafeo_memory/providers/embedding/__init__.py +21 -15
  107. grafeo_memory-0.4.0/grafeo_memory/providers/llm/__init__.py +6 -0
  108. grafeo_memory-0.4.0/grafeo_memory/providers/llm/model_registry.py +34 -0
  109. grafeo_memory-0.4.0/grafeo_memory/providers/llm/retry.py +47 -0
  110. grafeo_memory-0.4.0/grafeo_memory/providers/ruff.toml +10 -0
  111. grafeo_memory-0.4.0/grafeo_memory/ruff.toml +6 -0
  112. grafeo_memory-0.4.0/grafeo_memory/services/__init__.py +5 -0
  113. grafeo_memory-0.4.0/grafeo_memory/services/bucket.py +450 -0
  114. grafeo_memory-0.4.0/grafeo_memory/services/compile.py +241 -0
  115. grafeo_memory-0.2.2/src/grafeo_memory/manager.py → grafeo_memory-0.4.0/grafeo_memory/services/memory.py +1720 -217
  116. grafeo_memory-0.4.0/grafeo_memory/services/policy.py +203 -0
  117. grafeo_memory-0.4.0/grafeo_memory/services/retrieval.py +243 -0
  118. grafeo_memory-0.4.0/grafeo_memory/services/ruff.toml +8 -0
  119. grafeo_memory-0.4.0/grafeo_memory/services/schema.py +82 -0
  120. grafeo_memory-0.4.0/grafeo_memory/services/scoping.py +440 -0
  121. grafeo_memory-0.4.0/grafeo_memory/services/tiers.py +282 -0
  122. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/pyproject.toml +50 -19
  123. grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.2/manifest.json +603 -0
  124. grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.2/memory.grafeo +0 -0
  125. grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.2/memory_wal/LOCK +0 -0
  126. grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.2/memory_wal/wal/wal_00000000.log +0 -0
  127. grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.3/manifest.json +739 -0
  128. grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.3/memory.grafeo +0 -0
  129. grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.3/memory_wal/LOCK +0 -0
  130. grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.3/memory_wal/wal/wal_00000000.log +0 -0
  131. grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/make_fixtures.py +239 -0
  132. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/tests/mock_llm.py +6 -0
  133. grafeo_memory-0.4.0/tests/test_bench/__init__.py +0 -0
  134. grafeo_memory-0.4.0/tests/test_bench/conftest.py +36 -0
  135. grafeo_memory-0.4.0/tests/test_bench/test_cache_replay.py +64 -0
  136. grafeo_memory-0.4.0/tests/test_bench/test_common.py +65 -0
  137. grafeo_memory-0.4.0/tests/test_bench/test_gate.py +216 -0
  138. grafeo_memory-0.4.0/tests/test_common/__init__.py +0 -0
  139. grafeo_memory-0.4.0/tests/test_common/test_architecture.py +126 -0
  140. grafeo_memory-0.4.0/tests/test_common/test_cache.py +412 -0
  141. grafeo_memory-0.4.0/tests/test_common/test_deprecated_paths.py +51 -0
  142. grafeo_memory-0.4.0/tests/test_common/test_intervals.py +237 -0
  143. grafeo_memory-0.4.0/tests/test_common/test_settings.py +200 -0
  144. grafeo_memory-0.4.0/tests/test_common/test_small_modules.py +149 -0
  145. grafeo_memory-0.4.0/tests/test_core/__init__.py +0 -0
  146. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_bitemporal.py +81 -10
  147. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_communities.py +2 -2
  148. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_explain.py +1 -1
  149. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_extractor.py +85 -5
  150. grafeo_memory-0.4.0/tests/test_core/test_grafeo_contract.py +595 -0
  151. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_instrumentation.py +1 -1
  152. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_messages.py +3 -3
  153. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_multi_hop.py +2 -2
  154. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_multi_tenant.py +4 -4
  155. grafeo_memory-0.4.0/tests/test_core/test_ontology.py +314 -0
  156. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_persistence_lifecycle.py +35 -0
  157. grafeo_memory-0.4.0/tests/test_core/test_properties.py +66 -0
  158. grafeo_memory-0.4.0/tests/test_core/test_recon_temporal.py +278 -0
  159. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_reconciler.py +83 -8
  160. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_reranker.py +2 -2
  161. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_scoring.py +4 -4
  162. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_stats.py +1 -1
  163. grafeo_memory-0.4.0/tests/test_core/test_taxonomy.py +170 -0
  164. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_temporal.py +2 -7
  165. grafeo_memory-0.4.0/tests/test_core/test_time_travel.py +192 -0
  166. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_topology_scoring.py +8 -8
  167. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_types.py +33 -0
  168. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_vision.py +1 -1
  169. grafeo_memory-0.4.0/tests/test_providers/__init__.py +0 -0
  170. grafeo_memory-0.4.0/tests/test_providers/test_decisions.py +731 -0
  171. grafeo_memory-0.4.0/tests/test_providers/test_jev.py +149 -0
  172. grafeo_memory-0.4.0/tests/test_providers/test_retry.py +59 -0
  173. grafeo_memory-0.4.0/tests/test_services/__init__.py +0 -0
  174. grafeo_memory-0.4.0/tests/test_services/test_agent_framework.py +310 -0
  175. grafeo_memory-0.4.0/tests/test_services/test_bug_regressions.py +475 -0
  176. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_cli.py +38 -4
  177. grafeo_memory-0.4.0/tests/test_services/test_cli_integration.py +87 -0
  178. grafeo_memory-0.4.0/tests/test_services/test_compile.py +151 -0
  179. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_coverage_gaps.py +12 -16
  180. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_db_injection.py +2 -2
  181. grafeo_memory-0.4.0/tests/test_services/test_delete_cascade.py +259 -0
  182. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_episodes.py +1 -4
  183. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_graph_name.py +1 -1
  184. grafeo_memory-0.4.0/tests/test_services/test_history.py +220 -0
  185. grafeo_memory-0.4.0/tests/test_services/test_history_durability.py +220 -0
  186. grafeo_memory-0.4.0/tests/test_services/test_identity.py +66 -0
  187. grafeo_memory-0.4.0/tests/test_services/test_layers.py +561 -0
  188. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_manager.py +72 -22
  189. grafeo_memory-0.4.0/tests/test_services/test_mcp_integration.py +202 -0
  190. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_mcp_tools.py +44 -2
  191. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_new_features.py +52 -48
  192. grafeo_memory-0.4.0/tests/test_services/test_review_core.py +203 -0
  193. grafeo_memory-0.4.0/tests/test_services/test_sessions.py +126 -0
  194. grafeo_memory-0.4.0/tests/test_services/test_tenancy.py +113 -0
  195. grafeo_memory-0.4.0/tests/test_services/test_upgrade_from_05.py +241 -0
  196. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_usage.py +9 -4
  197. grafeo_memory-0.4.0/uv.lock +2086 -0
  198. grafeo_memory-0.2.2/CHANGELOG.md +0 -286
  199. grafeo_memory-0.2.2/PKG-INFO +0 -387
  200. grafeo_memory-0.2.2/README.md +0 -349
  201. grafeo_memory-0.2.2/coverage.xml +0 -1741
  202. grafeo_memory-0.2.2/src/grafeo_memory/__init__.py +0 -99
  203. grafeo_memory-0.2.2/src/grafeo_memory/extraction/__init__.py +0 -16
  204. grafeo_memory-0.2.2/src/grafeo_memory/history.py +0 -139
  205. grafeo_memory-0.2.2/src/grafeo_memory/mcp/__init__.py +0 -5
  206. grafeo_memory-0.2.2/src/grafeo_memory/mcp/server.py +0 -94
  207. grafeo_memory-0.2.2/src/grafeo_memory/reconciliation/__init__.py +0 -11
  208. grafeo_memory-0.2.2/src/grafeo_memory/reconciliation/memories.py +0 -119
  209. grafeo_memory-0.2.2/src/grafeo_memory/reconciliation/relations.py +0 -73
  210. grafeo_memory-0.2.2/src/grafeo_memory/search/__init__.py +0 -6
  211. grafeo_memory-0.2.2/src/grafeo_memory/types.py +0 -389
  212. grafeo_memory-0.2.2/tests/test_history.py +0 -140
  213. grafeo_memory-0.2.2/uv.lock +0 -1772
  214. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/LICENCE +0 -0
  215. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/quickstart.py +0 -0
  216. {grafeo_memory-0.2.2/src → grafeo_memory-0.4.0}/grafeo_memory/__main__.py +0 -0
  217. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/common}/schemas.py +0 -0
  218. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/messages.py +0 -0
  219. {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/temporal.py +0 -0
  220. {grafeo_memory-0.2.2/src → grafeo_memory-0.4.0}/grafeo_memory/mcp/prompts.py +0 -0
  221. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/tests/__init__.py +0 -0
  222. {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/tests/conftest.py +0 -0
  223. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_common}/test_config_validation.py +0 -0
  224. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_multi_session.py +0 -0
  225. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_search_quality.py +0 -0
  226. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_temporal_integration.py +0 -0
  227. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_concurrency.py +0 -0
  228. {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_error_surfacing.py +0 -0
@@ -1,4 +1,4 @@
1
- # grafeo-memory — Environment Variables
1
+ # grafeo-memory: environment variables
2
2
  #
3
3
  # Copy this file to .env and fill in the keys for your provider(s).
4
4
  # Only the provider you use needs to be set.
@@ -9,7 +9,7 @@
9
9
 
10
10
  # ── grafeo-memory config ────────────────────────────────────────────
11
11
  # GRAFEO_MEMORY_MODEL=mistral:mistral-small-latest
12
- # GRAFEO_MEMORY_DB=./memory.db
12
+ # GRAFEO_MEMORY_DB=./memory.grafeo
13
13
  # GRAFEO_MEMORY_USER=default
14
14
 
15
15
  # ── LLM Providers (pydantic-ai) ─────────────────────────────────────
@@ -60,3 +60,19 @@ OPENROUTER_API_KEY=
60
60
 
61
61
  # Mistral embeddings (used automatically when model is mistral:*)
62
62
  # MISTRAL_API_KEY= (same key as above)
63
+
64
+ # ── LLM call cache (in-memory LRU + optional JSONL persistence) ──────────
65
+ # GRAFEO_MEMORY_CACHE_ENABLED=true
66
+ # GRAFEO_MEMORY_CACHE_MAX_ENTRIES=10000
67
+ # GRAFEO_MEMORY_CACHE_MAX_MEMORY_MB=128 # in-memory hot cache cap
68
+ # GRAFEO_MEMORY_CACHE_MAX_STORAGE_MB=512 # JSONL persistence file cap
69
+ # GRAFEO_MEMORY_CACHE_PERSIST_PATH=./memory.grafeo.llmcache.jsonl # default: <db>.llmcache.jsonl
70
+
71
+ # ── GrafeoDB engine limits (MB; unset = grafeo's detected machine default) ──
72
+ # GRAFEO_MEMORY_DB_MEMORY_LIMIT_MB=2048 # enforced per write; cold chunks spill
73
+ # GRAFEO_MEMORY_DB_SPILL_LIMIT_MB=4096 # on-disk spill/WAL cap
74
+
75
+ # ── Decision models (Typesafe Jev / System One) ─────────────────────────
76
+ # TYPESAFE_API_KEY=<template>
77
+ # GRAFEO_MEMORY_DECISION_MODEL=jev # registered name or entry point; unset = LLM-only pipeline
78
+ # GRAFEO_MEMORY_JEV_MODEL=jev-latest # Jev model version
@@ -10,8 +10,8 @@ jobs:
10
10
  lint:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/checkout@v4
14
- - uses: astral-sh/setup-uv@v6
13
+ - uses: actions/checkout@v7
14
+ - uses: astral-sh/setup-uv@v10.3.0
15
15
  - run: uv sync
16
16
  - run: uv run ruff check .
17
17
  - run: uv run ruff format --check .
@@ -19,20 +19,21 @@ jobs:
19
19
  typecheck:
20
20
  runs-on: ubuntu-latest
21
21
  steps:
22
- - uses: actions/checkout@v4
23
- - uses: astral-sh/setup-uv@v6
24
- - run: uv sync
25
- - run: uv run ty check src/ tests/
22
+ - uses: actions/checkout@v7
23
+ - uses: astral-sh/setup-uv@v10.3.0
24
+ - run: uv sync --all-extras # optional imports (mcp, httpx, openai, ...) must resolve
25
+ - run: uv run ty check
26
26
 
27
27
  test:
28
28
  runs-on: ${{ matrix.os }}
29
29
  strategy:
30
+ fail-fast: false # one failing job must not cancel the others: every OS and version reports
30
31
  matrix:
31
32
  os: [ubuntu-latest, windows-latest]
32
- python-version: ["3.12", "3.13", "3.14"]
33
+ python-version: ["3.13", "3.14", "3.15"]
33
34
  steps:
34
- - uses: actions/checkout@v4
35
- - uses: astral-sh/setup-uv@v6
35
+ - uses: actions/checkout@v7
36
+ - uses: astral-sh/setup-uv@v10.3.0
36
37
  with:
37
38
  python-version: ${{ matrix.python-version }}
38
39
  - run: uv sync --all-extras
@@ -42,13 +43,13 @@ jobs:
42
43
  name: Code Coverage
43
44
  runs-on: ubuntu-latest
44
45
  steps:
45
- - uses: actions/checkout@v4
46
- - uses: astral-sh/setup-uv@v6
46
+ - uses: actions/checkout@v7
47
+ - uses: astral-sh/setup-uv@v10.3.0
47
48
  - run: uv sync --all-extras
48
49
  - name: Generate coverage report
49
50
  run: uv run pytest --cov=grafeo_memory --cov-report=xml:coverage.xml
50
51
  - name: Upload coverage to Codecov
51
- uses: codecov/codecov-action@v5
52
+ uses: codecov/codecov-action@v7
52
53
  with:
53
54
  token: ${{ secrets.CODECOV_TOKEN }}
54
55
  files: coverage.xml
@@ -0,0 +1,45 @@
1
+ name: Engine compatibility
2
+
3
+ # Runs the suite against the newest grafeo releases on PyPI, pre-releases
4
+ # included, so an engine change that breaks grafeo-memory shows up before
5
+ # users hit it. tests/test_core/test_grafeo_contract.py names the engine behavior that
6
+ # changed.
7
+ #
8
+ # - within-pin: the newest grafeo that the requirement in pyproject.toml accepts
9
+ # - newest: the newest grafeo on PyPI, ignoring that requirement (early
10
+ # warning for the next minor release)
11
+ #
12
+ # Only grafeo moves: every other package stays at its locked version.
13
+
14
+ on:
15
+ schedule:
16
+ - cron: "0 5 * * 1" # Mondays, 05:00 UTC
17
+ workflow_dispatch:
18
+
19
+ jobs:
20
+ test:
21
+ name: grafeo ${{ matrix.grafeo }} (${{ matrix.os }})
22
+ runs-on: ${{ matrix.os }}
23
+ strategy:
24
+ fail-fast: false
25
+ matrix:
26
+ os: [ubuntu-latest, windows-latest]
27
+ grafeo: [within-pin, newest]
28
+ steps:
29
+ - uses: actions/checkout@v7
30
+ - uses: astral-sh/setup-uv@v10.3.0
31
+ with:
32
+ python-version: "3.13"
33
+ - run: uv sync --all-extras --no-sources
34
+ - name: Newest grafeo the requirement accepts
35
+ if: matrix.grafeo == 'within-pin'
36
+ run: uv pip install --no-sources -r pyproject.toml --upgrade-package grafeo --prerelease allow
37
+ - name: Newest grafeo on PyPI
38
+ if: matrix.grafeo == 'newest'
39
+ run: uv pip install --upgrade --prerelease allow grafeo
40
+ - name: Engine under test
41
+ run: uv run --no-sync python -c "import grafeo; print(grafeo.__version__, grafeo.build_info())"
42
+ - name: Engine contract
43
+ run: uv run --no-sync pytest tests/test_core/test_grafeo_contract.py -v --no-cov
44
+ - name: Full suite
45
+ run: uv run --no-sync pytest -v
@@ -11,10 +11,10 @@ jobs:
11
11
  build:
12
12
  runs-on: ubuntu-latest
13
13
  steps:
14
- - uses: actions/checkout@v4
15
- - uses: astral-sh/setup-uv@v6
14
+ - uses: actions/checkout@v7
15
+ - uses: astral-sh/setup-uv@v10.3.0
16
16
  - run: uv build
17
- - uses: actions/upload-artifact@v4
17
+ - uses: actions/upload-artifact@v7
18
18
  with:
19
19
  name: dist
20
20
  path: dist/
@@ -24,7 +24,7 @@ jobs:
24
24
  runs-on: ubuntu-latest
25
25
  environment: pypi
26
26
  steps:
27
- - uses: actions/download-artifact@v4
27
+ - uses: actions/download-artifact@v8
28
28
  with:
29
29
  name: dist
30
30
  path: dist/
@@ -32,8 +32,33 @@ venv/
32
32
  # ── Testing & coverage ───────────────────────────────────────────────
33
33
  .pytest_cache/
34
34
  .coverage
35
+ coverage.xml
35
36
  htmlcov/
36
37
  *.log
37
38
 
38
39
  # ── Database files (don't commit user data) ──────────────────────────
39
40
  *.db
41
+
42
+
43
+ # benchmark run data and LLM caches (large, regenerable)
44
+ .benchmarks/beam_runs/
45
+ .benchmarks/beam_data/
46
+ .benchmarks/lme_runs/
47
+ .benchmarks/lme_data/
48
+ .benchmarks/locomo_runs/
49
+ .benchmarks/locomo_data/
50
+ *.llmcache.jsonl
51
+ *.grafeo
52
+ *.grafeo.wal/
53
+ # left by the 0.6 upgrade (full copies of the old database) and by queries that spill to disk
54
+ *.grafeo.pre-0.6
55
+ *.grafeo.pre-0.6.wal/
56
+ *.db.pre-0.6/
57
+ *.grafeo.spill/
58
+
59
+ # Claude Code project context (internal)
60
+ .claude/
61
+
62
+ # grafeo 0.5 databases the upgrade tests open (tests/fixtures/grafeo_0_5/make_fixtures.py); after *.grafeo so they win
63
+ !tests/fixtures/grafeo_0_5/*/memory_wal/wal/*.log
64
+ !tests/fixtures/grafeo_0_5/*/memory.grafeo
@@ -0,0 +1,68 @@
1
+ # Pre-commit hooks for grafeo-memory: the same checks CI runs, so a push that passes here passes CI.
2
+ # Install once per clone: cargo install prek && prek install (installs the pre-commit and pre-push hooks)
3
+ # Run manually: prek run --all-files (pre-push stage: prek run --all-files --hook-stage pre-push)
4
+ # Docs: https://github.com/j178/prek
5
+ #
6
+ # On commit: hygiene, typos, ruff check, ruff format, ty, lockfile check (fast).
7
+ # On push: the full test suite, on this machine's OS (catches the Windows-only failures before CI).
8
+
9
+ default_install_hook_types: [pre-commit, pre-push]
10
+ default_stages: [pre-commit]
11
+
12
+ repos:
13
+ # Built-in prek hooks
14
+ - repo: builtin
15
+ hooks:
16
+ # Markdown is prose; never rewrite it mechanically
17
+ - id: trailing-whitespace
18
+ exclude: '\.md$'
19
+ - id: end-of-file-fixer
20
+ exclude: '\.md$'
21
+ - id: check-yaml
22
+ - id: check-toml
23
+ - id: check-merge-conflict
24
+ - id: check-added-large-files
25
+ args: ['--maxkb=1000']
26
+
27
+ # Typo checker
28
+ - repo: https://github.com/crate-ci/typos
29
+ rev: v1.29.4
30
+ hooks:
31
+ - id: typos
32
+
33
+ # Python hooks
34
+ - repo: local
35
+ hooks:
36
+ - id: ruff-check
37
+ name: ruff check
38
+ entry: uv run --frozen ruff check --fix --exit-non-zero-on-fix
39
+ language: system
40
+ types: [python]
41
+
42
+ - id: ruff-format
43
+ name: ruff format
44
+ entry: uv run --frozen ruff format
45
+ language: system
46
+ types: [python]
47
+
48
+ - id: ty-check
49
+ name: ty check
50
+ entry: uv run --frozen ty check .
51
+ language: system
52
+ pass_filenames: false
53
+ types: [python]
54
+
55
+ - id: uv-lock-check
56
+ name: uv lock --check
57
+ entry: uv lock --check
58
+ language: system
59
+ pass_filenames: false
60
+ files: '^(pyproject\.toml|uv\.lock)$'
61
+
62
+ - id: pytest
63
+ name: pytest (full suite)
64
+ entry: uv run --frozen pytest -q -p no:cacheprovider --no-cov
65
+ language: system
66
+ pass_filenames: false
67
+ always_run: true
68
+ stages: [pre-push]