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.
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/.env.example +18 -2
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/.github/workflows/ci.yml +13 -12
- grafeo_memory-0.4.0/.github/workflows/engine-compat.yml +45 -0
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/.github/workflows/pypi.yml +4 -4
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/.gitignore +25 -0
- grafeo_memory-0.4.0/.pre-commit-config.yaml +68 -0
- grafeo_memory-0.4.0/CHANGELOG.md +437 -0
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/CONTRIBUTING.md +1 -1
- grafeo_memory-0.4.0/PKG-INFO +693 -0
- grafeo_memory-0.4.0/README.md +639 -0
- grafeo_memory-0.4.0/_typos.toml +3 -0
- grafeo_memory-0.4.0/docs/architecture.md +66 -0
- grafeo_memory-0.4.0/docs/benchmarks.md +124 -0
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/async_memory.py +1 -1
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/importance_scoring.py +2 -2
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/mistral_quickstart.py +4 -4
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/multimodal_vision.py +2 -2
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/procedural_memory.py +1 -1
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/temporal_bench.py +1 -1
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/topology_boost.py +3 -3
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/usage_tracking.py +1 -1
- grafeo_memory-0.4.0/grafeo_memory/__init__.py +164 -0
- grafeo_memory-0.4.0/grafeo_memory/_deprecated.py +83 -0
- grafeo_memory-0.4.0/grafeo_memory/agent_framework.py +388 -0
- grafeo_memory-0.4.0/grafeo_memory/bench/README.md +6 -0
- grafeo_memory-0.4.0/grafeo_memory/bench/__init__.py +7 -0
- grafeo_memory-0.4.0/grafeo_memory/bench/beam_eval.py +409 -0
- grafeo_memory-0.4.0/grafeo_memory/bench/common.py +233 -0
- grafeo_memory-0.4.0/grafeo_memory/bench/lme_eval.py +421 -0
- grafeo_memory-0.4.0/grafeo_memory/bench/locomo_eval.py +731 -0
- grafeo_memory-0.4.0/grafeo_memory/bench/matrix.py +526 -0
- grafeo_memory-0.4.0/grafeo_memory/bench/ruff.toml +11 -0
- grafeo_memory-0.4.0/grafeo_memory/bench/vector_search_bench.py +230 -0
- grafeo_memory-0.4.0/grafeo_memory/cli/__init__.py +11 -0
- grafeo_memory-0.2.2/src/grafeo_memory/cli.py → grafeo_memory-0.4.0/grafeo_memory/cli/app.py +53 -21
- grafeo_memory-0.4.0/grafeo_memory/common/README.md +13 -0
- grafeo_memory-0.4.0/grafeo_memory/common/__init__.py +63 -0
- grafeo_memory-0.4.0/grafeo_memory/common/cache.py +616 -0
- grafeo_memory-0.2.2/src/grafeo_memory/_compat.py → grafeo_memory-0.4.0/grafeo_memory/common/compat.py +17 -9
- grafeo_memory-0.4.0/grafeo_memory/common/exceptions.py +15 -0
- grafeo_memory-0.4.0/grafeo_memory/common/intervals.py +329 -0
- grafeo_memory-0.4.0/grafeo_memory/common/logging.py +106 -0
- grafeo_memory-0.4.0/grafeo_memory/common/paths.py +58 -0
- grafeo_memory-0.4.0/grafeo_memory/common/ruff.toml +11 -0
- grafeo_memory-0.4.0/grafeo_memory/common/secrets.py +37 -0
- grafeo_memory-0.4.0/grafeo_memory/common/settings.py +130 -0
- grafeo_memory-0.4.0/grafeo_memory/common/telemetry.py +32 -0
- grafeo_memory-0.4.0/grafeo_memory/common/timing.py +65 -0
- grafeo_memory-0.4.0/grafeo_memory/common/types.py +1095 -0
- grafeo_memory-0.4.0/grafeo_memory/core/__init__.py +4 -0
- grafeo_memory-0.4.0/grafeo_memory/core/_compat.py +4 -0
- grafeo_memory-0.4.0/grafeo_memory/core/_graph.py +36 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/_tracing.py +2 -2
- grafeo_memory-0.4.0/grafeo_memory/core/bucket.py +54 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/communities.py +12 -9
- grafeo_memory-0.4.0/grafeo_memory/core/extraction/__init__.py +16 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/extraction/entities.py +65 -34
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/extraction/facts.py +18 -12
- grafeo_memory-0.4.0/grafeo_memory/core/extraction/ruff.toml +12 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/extraction/temporal.py +6 -6
- grafeo_memory-0.4.0/grafeo_memory/core/history.py +214 -0
- grafeo_memory-0.4.0/grafeo_memory/core/ontology/README.md +9 -0
- grafeo_memory-0.4.0/grafeo_memory/core/ontology/__init__.py +30 -0
- grafeo_memory-0.4.0/grafeo_memory/core/ontology/normalize.py +97 -0
- grafeo_memory-0.4.0/grafeo_memory/core/ontology/ruff.toml +14 -0
- grafeo_memory-0.4.0/grafeo_memory/core/ontology/scheme.py +220 -0
- grafeo_memory-0.4.0/grafeo_memory/core/ontology/temporal_rules.py +28 -0
- grafeo_memory-0.4.0/grafeo_memory/core/ontology/types.py +130 -0
- grafeo_memory-0.4.0/grafeo_memory/core/policy/__init__.py +32 -0
- grafeo_memory-0.4.0/grafeo_memory/core/policy/packs.py +116 -0
- grafeo_memory-0.4.0/grafeo_memory/core/policy/ruff.toml +14 -0
- grafeo_memory-0.4.0/grafeo_memory/core/policy/rules.py +51 -0
- grafeo_memory-0.4.0/grafeo_memory/core/policy/shapes.py +41 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/prompts.py +33 -10
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/protocol.py +10 -4
- grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/README.md +9 -0
- grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/__init__.py +17 -0
- grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/memories.py +493 -0
- grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/relations.py +206 -0
- grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/ruff.toml +11 -0
- grafeo_memory-0.4.0/grafeo_memory/core/reconciliation/temporal.py +158 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/reranker.py +8 -20
- grafeo_memory-0.4.0/grafeo_memory/core/ruff.toml +9 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/scoring.py +11 -57
- grafeo_memory-0.4.0/grafeo_memory/core/search/__init__.py +6 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/search/graph.py +18 -9
- grafeo_memory-0.4.0/grafeo_memory/core/search/ruff.toml +11 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/search/vector.py +66 -22
- grafeo_memory-0.4.0/grafeo_memory/core/taxonomy.py +272 -0
- grafeo_memory-0.4.0/grafeo_memory/core/tiers.py +62 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/vision.py +5 -5
- grafeo_memory-0.4.0/grafeo_memory/mcp/__init__.py +9 -0
- {grafeo_memory-0.2.2/src → grafeo_memory-0.4.0}/grafeo_memory/mcp/resources.py +16 -6
- grafeo_memory-0.4.0/grafeo_memory/mcp/server.py +130 -0
- {grafeo_memory-0.2.2/src → grafeo_memory-0.4.0}/grafeo_memory/mcp/tools.py +272 -26
- grafeo_memory-0.4.0/grafeo_memory/providers/__init__.py +4 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/decision/README.md +10 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/decision/__init__.py +51 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/decision/fake.py +44 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/decision/jev.py +226 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/decision/packs.py +291 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/decision/protocol.py +27 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/decision/registry.py +92 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/decision/ruff.toml +10 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/decision/types.py +42 -0
- grafeo_memory-0.2.2/src/grafeo_memory/embedding.py → grafeo_memory-0.4.0/grafeo_memory/providers/embedding/__init__.py +21 -15
- grafeo_memory-0.4.0/grafeo_memory/providers/llm/__init__.py +6 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/llm/model_registry.py +34 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/llm/retry.py +47 -0
- grafeo_memory-0.4.0/grafeo_memory/providers/ruff.toml +10 -0
- grafeo_memory-0.4.0/grafeo_memory/ruff.toml +6 -0
- grafeo_memory-0.4.0/grafeo_memory/services/__init__.py +5 -0
- grafeo_memory-0.4.0/grafeo_memory/services/bucket.py +450 -0
- grafeo_memory-0.4.0/grafeo_memory/services/compile.py +241 -0
- grafeo_memory-0.2.2/src/grafeo_memory/manager.py → grafeo_memory-0.4.0/grafeo_memory/services/memory.py +1720 -217
- grafeo_memory-0.4.0/grafeo_memory/services/policy.py +203 -0
- grafeo_memory-0.4.0/grafeo_memory/services/retrieval.py +243 -0
- grafeo_memory-0.4.0/grafeo_memory/services/ruff.toml +8 -0
- grafeo_memory-0.4.0/grafeo_memory/services/schema.py +82 -0
- grafeo_memory-0.4.0/grafeo_memory/services/scoping.py +440 -0
- grafeo_memory-0.4.0/grafeo_memory/services/tiers.py +282 -0
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/pyproject.toml +50 -19
- grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.2/manifest.json +603 -0
- grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.2/memory.grafeo +0 -0
- grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.2/memory_wal/LOCK +0 -0
- grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.2/memory_wal/wal/wal_00000000.log +0 -0
- grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.3/manifest.json +739 -0
- grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.3/memory.grafeo +0 -0
- grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.3/memory_wal/LOCK +0 -0
- grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/grafeo-memory-0.2.3/memory_wal/wal/wal_00000000.log +0 -0
- grafeo_memory-0.4.0/tests/fixtures/grafeo_0_5/make_fixtures.py +239 -0
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/tests/mock_llm.py +6 -0
- grafeo_memory-0.4.0/tests/test_bench/__init__.py +0 -0
- grafeo_memory-0.4.0/tests/test_bench/conftest.py +36 -0
- grafeo_memory-0.4.0/tests/test_bench/test_cache_replay.py +64 -0
- grafeo_memory-0.4.0/tests/test_bench/test_common.py +65 -0
- grafeo_memory-0.4.0/tests/test_bench/test_gate.py +216 -0
- grafeo_memory-0.4.0/tests/test_common/__init__.py +0 -0
- grafeo_memory-0.4.0/tests/test_common/test_architecture.py +126 -0
- grafeo_memory-0.4.0/tests/test_common/test_cache.py +412 -0
- grafeo_memory-0.4.0/tests/test_common/test_deprecated_paths.py +51 -0
- grafeo_memory-0.4.0/tests/test_common/test_intervals.py +237 -0
- grafeo_memory-0.4.0/tests/test_common/test_settings.py +200 -0
- grafeo_memory-0.4.0/tests/test_common/test_small_modules.py +149 -0
- grafeo_memory-0.4.0/tests/test_core/__init__.py +0 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_bitemporal.py +81 -10
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_communities.py +2 -2
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_explain.py +1 -1
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_extractor.py +85 -5
- grafeo_memory-0.4.0/tests/test_core/test_grafeo_contract.py +595 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_instrumentation.py +1 -1
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_messages.py +3 -3
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_multi_hop.py +2 -2
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_multi_tenant.py +4 -4
- grafeo_memory-0.4.0/tests/test_core/test_ontology.py +314 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_persistence_lifecycle.py +35 -0
- grafeo_memory-0.4.0/tests/test_core/test_properties.py +66 -0
- grafeo_memory-0.4.0/tests/test_core/test_recon_temporal.py +278 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_reconciler.py +83 -8
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_reranker.py +2 -2
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_scoring.py +4 -4
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_stats.py +1 -1
- grafeo_memory-0.4.0/tests/test_core/test_taxonomy.py +170 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_temporal.py +2 -7
- grafeo_memory-0.4.0/tests/test_core/test_time_travel.py +192 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_topology_scoring.py +8 -8
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_types.py +33 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_vision.py +1 -1
- grafeo_memory-0.4.0/tests/test_providers/__init__.py +0 -0
- grafeo_memory-0.4.0/tests/test_providers/test_decisions.py +731 -0
- grafeo_memory-0.4.0/tests/test_providers/test_jev.py +149 -0
- grafeo_memory-0.4.0/tests/test_providers/test_retry.py +59 -0
- grafeo_memory-0.4.0/tests/test_services/__init__.py +0 -0
- grafeo_memory-0.4.0/tests/test_services/test_agent_framework.py +310 -0
- grafeo_memory-0.4.0/tests/test_services/test_bug_regressions.py +475 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_cli.py +38 -4
- grafeo_memory-0.4.0/tests/test_services/test_cli_integration.py +87 -0
- grafeo_memory-0.4.0/tests/test_services/test_compile.py +151 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_coverage_gaps.py +12 -16
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_db_injection.py +2 -2
- grafeo_memory-0.4.0/tests/test_services/test_delete_cascade.py +259 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_episodes.py +1 -4
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_graph_name.py +1 -1
- grafeo_memory-0.4.0/tests/test_services/test_history.py +220 -0
- grafeo_memory-0.4.0/tests/test_services/test_history_durability.py +220 -0
- grafeo_memory-0.4.0/tests/test_services/test_identity.py +66 -0
- grafeo_memory-0.4.0/tests/test_services/test_layers.py +561 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_manager.py +72 -22
- grafeo_memory-0.4.0/tests/test_services/test_mcp_integration.py +202 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_mcp_tools.py +44 -2
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_new_features.py +52 -48
- grafeo_memory-0.4.0/tests/test_services/test_review_core.py +203 -0
- grafeo_memory-0.4.0/tests/test_services/test_sessions.py +126 -0
- grafeo_memory-0.4.0/tests/test_services/test_tenancy.py +113 -0
- grafeo_memory-0.4.0/tests/test_services/test_upgrade_from_05.py +241 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_usage.py +9 -4
- grafeo_memory-0.4.0/uv.lock +2086 -0
- grafeo_memory-0.2.2/CHANGELOG.md +0 -286
- grafeo_memory-0.2.2/PKG-INFO +0 -387
- grafeo_memory-0.2.2/README.md +0 -349
- grafeo_memory-0.2.2/coverage.xml +0 -1741
- grafeo_memory-0.2.2/src/grafeo_memory/__init__.py +0 -99
- grafeo_memory-0.2.2/src/grafeo_memory/extraction/__init__.py +0 -16
- grafeo_memory-0.2.2/src/grafeo_memory/history.py +0 -139
- grafeo_memory-0.2.2/src/grafeo_memory/mcp/__init__.py +0 -5
- grafeo_memory-0.2.2/src/grafeo_memory/mcp/server.py +0 -94
- grafeo_memory-0.2.2/src/grafeo_memory/reconciliation/__init__.py +0 -11
- grafeo_memory-0.2.2/src/grafeo_memory/reconciliation/memories.py +0 -119
- grafeo_memory-0.2.2/src/grafeo_memory/reconciliation/relations.py +0 -73
- grafeo_memory-0.2.2/src/grafeo_memory/search/__init__.py +0 -6
- grafeo_memory-0.2.2/src/grafeo_memory/types.py +0 -389
- grafeo_memory-0.2.2/tests/test_history.py +0 -140
- grafeo_memory-0.2.2/uv.lock +0 -1772
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/LICENCE +0 -0
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/examples/quickstart.py +0 -0
- {grafeo_memory-0.2.2/src → grafeo_memory-0.4.0}/grafeo_memory/__main__.py +0 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/common}/schemas.py +0 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/messages.py +0 -0
- {grafeo_memory-0.2.2/src/grafeo_memory → grafeo_memory-0.4.0/grafeo_memory/core}/temporal.py +0 -0
- {grafeo_memory-0.2.2/src → grafeo_memory-0.4.0}/grafeo_memory/mcp/prompts.py +0 -0
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/tests/__init__.py +0 -0
- {grafeo_memory-0.2.2 → grafeo_memory-0.4.0}/tests/conftest.py +0 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_common}/test_config_validation.py +0 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_multi_session.py +0 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_search_quality.py +0 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_core}/test_temporal_integration.py +0 -0
- {grafeo_memory-0.2.2/tests → grafeo_memory-0.4.0/tests/test_services}/test_concurrency.py +0 -0
- {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
|
|
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.
|
|
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@
|
|
14
|
-
- uses: astral-sh/setup-uv@
|
|
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@
|
|
23
|
-
- uses: astral-sh/setup-uv@
|
|
24
|
-
- run: uv sync
|
|
25
|
-
- run: uv run ty check
|
|
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.
|
|
33
|
+
python-version: ["3.13", "3.14", "3.15"]
|
|
33
34
|
steps:
|
|
34
|
-
- uses: actions/checkout@
|
|
35
|
-
- uses: astral-sh/setup-uv@
|
|
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@
|
|
46
|
-
- uses: astral-sh/setup-uv@
|
|
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@
|
|
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@
|
|
15
|
-
- uses: astral-sh/setup-uv@
|
|
14
|
+
- uses: actions/checkout@v7
|
|
15
|
+
- uses: astral-sh/setup-uv@v10.3.0
|
|
16
16
|
- run: uv build
|
|
17
|
-
- uses: actions/upload-artifact@
|
|
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@
|
|
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]
|