remdb 0.3.148__tar.gz → 0.3.217__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.
Potentially problematic release.
This version of remdb might be problematic. Click here for more details.
- remdb-0.3.217/.githooks/pre-commit +25 -0
- remdb-0.3.217/.githooks/pre-push +43 -0
- remdb-0.3.217/.kreuzberg/mime/0b34bcd318001ead.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/2279f944d9ee9966.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/23c2221c537a5fc7.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/245d4933e8c1b195.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/256e0b513c55383d.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/333c03f53d37ed0e.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/3a11309ab5c2f4f1.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/454e06d91c1f7da3.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/5bcfea3bfc53067c.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/7b3e640c001c4894.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/8225fe0751545bd9.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/9a6b60a4833997e2.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/a1da34b0466f625e.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/ac4f98ccc34fc6c0.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/bdb1282b79539c3a.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/c1f16f2de51197de.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/e8a4b78d213a80ec.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/ec70e75eec5d6198.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/f0fa2893c7713bc6.msgpack +1 -0
- remdb-0.3.217/.kreuzberg/mime/f6624f69041cc763.msgpack +1 -0
- {remdb-0.3.148 → remdb-0.3.217}/PKG-INFO +1 -1
- {remdb-0.3.148 → remdb-0.3.217}/pyproject.toml +1 -1
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/README.md +262 -2
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/agents/__init__.py +16 -0
- remdb-0.3.217/src/rem/agentic/agents/agent_manager.py +311 -0
- remdb-0.3.217/src/rem/agentic/context.py +425 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/context_builder.py +48 -11
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/mcp/tool_wrapper.py +43 -14
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/providers/pydantic_ai.py +76 -34
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/schema.py +4 -3
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/tools/rem_tools.py +11 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/deps.py +3 -5
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/main.py +23 -4
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/mcp_router/resources.py +75 -14
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/mcp_router/server.py +32 -23
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/mcp_router/tools.py +685 -155
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/middleware/tracking.py +5 -5
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/auth.py +237 -8
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/completions.py +71 -21
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/sse_events.py +7 -3
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/streaming.py +362 -41
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/messages.py +141 -45
- remdb-0.3.217/src/rem/auth/jwt.py +367 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/middleware.py +91 -37
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/providers/email.py +16 -7
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/README.md +62 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/ask.py +1 -1
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/db.py +148 -70
- remdb-0.3.217/src/rem/cli/commands/process.py +380 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/__init__.py +4 -0
- remdb-0.3.217/src/rem/models/entities/ontology.py +181 -0
- remdb-0.3.217/src/rem/models/entities/subscriber.py +175 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/user.py +1 -0
- remdb-0.3.217/src/rem/schemas/agents/core/agent-builder.yaml +235 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/content/service.py +22 -8
- remdb-0.3.217/src/rem/services/email/service.py +522 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/embeddings/worker.py +26 -12
- remdb-0.3.217/src/rem/services/postgres/__init__.py +49 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/diff_service.py +57 -5
- remdb-0.3.217/src/rem/services/postgres/programmable_diff_service.py +635 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/pydantic_to_sqlalchemy.py +2 -2
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/register_type.py +12 -11
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/repository.py +51 -29
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/schema_generator.py +5 -5
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/sql_builder.py +6 -5
- remdb-0.3.217/src/rem/services/session/__init__.py +13 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/session/compression.py +153 -52
- remdb-0.3.217/src/rem/services/session/pydantic_messages.py +276 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/session/reload.py +14 -7
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/user_service.py +41 -9
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/settings.py +136 -1
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/background_indexes.sql +5 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/migrations/001_install.sql +158 -11
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/migrations/002_install_models.sql +160 -132
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/migrations/004_cache_system.sql +7 -275
- remdb-0.3.217/src/rem/sql/migrations/migrate_session_id_to_uuid.sql +45 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/model_helpers.py +101 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/schema_loader.py +51 -13
- remdb-0.3.217/test_resources.py +29 -0
- remdb-0.3.217/tests/data/schemas/agents/test_orchestrator.yaml +29 -0
- remdb-0.3.217/tests/data/schemas/agents/test_responder.yaml +21 -0
- remdb-0.3.217/tests/integration/conftest.py +29 -0
- remdb-0.3.217/tests/integration/quick_delegation_test.py +88 -0
- remdb-0.3.217/tests/integration/test_actual_streaming_save.py +91 -0
- remdb-0.3.217/tests/integration/test_agent_delegation_streaming.py +267 -0
- remdb-0.3.217/tests/integration/test_ask_agent_streaming.py +279 -0
- remdb-0.3.217/tests/integration/test_early_stream_close.py +91 -0
- remdb-0.3.217/tests/integration/test_email_auth.py +191 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_embedding_worker.py +19 -5
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_embeddings_e2e.py +6 -3
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_graph_traversal.py +11 -9
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_mcp_tools_layer.py +55 -35
- remdb-0.3.217/tests/integration/test_messages_sessions_access.py +335 -0
- remdb-0.3.217/tests/integration/test_multi_agent.py +521 -0
- remdb-0.3.217/tests/integration/test_nested_agent_save.py +126 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_schema_introspection.py +1 -1
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_session_management.py +3 -3
- remdb-0.3.217/tests/integration/test_streaming_response.py +83 -0
- remdb-0.3.217/tests/integration/test_streaming_save.py +150 -0
- remdb-0.3.217/tests/integration/test_text_response_extraction.py +189 -0
- remdb-0.3.217/tests/integration/test_user_lookup_by_email.py +269 -0
- remdb-0.3.217/tests/test_agent_manager.py +175 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/test_schema.py +1 -1
- remdb-0.3.217/tests/unit/services/test_session_compression.py +273 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_api_key_auth.py +72 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_resource_tools.py +3 -3
- remdb-0.3.148/src/rem/agentic/context.py +0 -174
- remdb-0.3.148/src/rem/cli/commands/process.py +0 -252
- remdb-0.3.148/src/rem/models/entities/ontology.py +0 -191
- remdb-0.3.148/src/rem/services/email/service.py +0 -399
- remdb-0.3.148/src/rem/services/postgres/__init__.py +0 -24
- remdb-0.3.148/src/rem/services/session/__init__.py +0 -6
- remdb-0.3.148/tests/integration/run_rem_agent_eval.py +0 -375
- remdb-0.3.148/tests/integration/test_merge_strategies_demo.py +0 -232
- remdb-0.3.148/tests/integration/test_shared_sessions.py +0 -734
- {remdb-0.3.148 → remdb-0.3.217}/.claude/archive/PUBLISH.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.claude/archive/QUICKSTART.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.claude/archive/publish.sh +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.claude/settings.local.json +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.dockerignore +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.env.example +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.experiments/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.experiments/RUN_ON_CLUSTER.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.experiments/TESTING_GUIDE.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.experiments/test-phoenix-integration.sh +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.gitignore +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/039976f3b4dc7549.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/045e65492b634d11.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/07f5cd0e3fb1d287.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/08f4ae339838b804.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/0a64e58ae1289686.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/0da06e67dd284834.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/0e200bfe2ea523f2.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/10b1925cb6007390.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/11c55125d2be1895.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/12dd62bbe8ee9b6a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/18f78825b8e302a8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/19a7ff44501eb3f9.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/1c9cec1b6f266e8d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/1db0e7d4ac2443af.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/1f32d592b118d944.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/20db05a60f4c6ce3.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/220746359cef9884.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/24034098fd444b39.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2470f3a5e2d1953b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/24acc2df261ae549.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/26a8ed0cdfc0ccab.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/28e3c2bf25dfc659.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/295a37ef869b0a49.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2a6f58009e01ad65.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2ab7ae3b2e42644e.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2b24548c2f91f8b9.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2bb63e6235d19b40.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2c74a0f17cde1b0c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2d728912eb223a33.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2de80149b410a676.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2e1001cbed04103c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/32d99ccf71d10a38.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/3353ae12a176a9bd.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/34f1cfc7a58e8b0c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/3c5bd974fb83b573.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/3ca9da43dd834bca.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/3e9db2b8a87873c7.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/3ff1b430e0b510d5.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/4035607526c8600d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/40f0415d564cb996.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/4388f8ee095c9ed8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/439f422b7f8dc467.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/452c56ffd625931f.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/45ee850e300157c8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/45f79b5f90a07f0e.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/487e56b12d123968.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/49be62bf170de12a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/4b3e165ec4ba87d0.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/505ff13d9ac8f006.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/51e81cbe7899e310.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/537dea93b57ffce5.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/56a9f1cd9ec05384.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/56bf449feab17e6d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/57ab5fe18c74538b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/5a11f436d88e89cd.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/5b10dca1c6db6714.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/5eb63bbe412735a4.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/5ebca8549bb3ff2b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/5fef074c57dd118f.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/60f343229f836ab6.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6153f83bf3713b32.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6488134e7b6dd403.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/68e7b00767be2e16.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6afac5499ef0a938.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6bd93d4fd4cc3893.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6defbba8bfc76983.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6e37f5165f71513b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6f9130d5f4db8b28.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6fc0d79c16c59de5.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/774b8c209528323e.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/78c509bc3a9d93c4.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/798017037907ab5f.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/7a4fd9fd84ae6899.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/7b094993adee6e1a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/7c3ad418912e7c09.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/7f630276be2a1503.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/80fd68e8a4ac6556.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/819aabcfdf1334af.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/81ea65c652232174.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/84c4f70ba7616566.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/856e8ba75c4d220e.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/8cace0ec228b43d6.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/8d1ecc30d7d58b41.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/8e2e4ab7c05925fa.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/8e89a980bc3b92d8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/8f6a9b01f15883f5.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9091b9d61e026046.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/927a028cf723c70d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/94bda8f2cabc1358.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/95313ccec52beb53.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/954fee40bb61432b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9592cc24f2bf0d77.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/967396ed95832197.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9804f3b02bf98e83.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9936890e55f094f3.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/99405cab6cc35283.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/99e3da57a007bc59.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/99f1579d6a6790ad.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9c265a028ee05977.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9f02e484a5feb3af.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9fd81ffc0b3282f8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a0d60cff1e5950a6.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a2bcfb3e4cf75d71.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a3fd1a45a0ef02f1.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a72acced3b5f0c28.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a78fa3051259d29c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a964045be65be2d2.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ae8bc0c15954a96a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/af05b5754cd245b5.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/af28c894e94dc85c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b0a26c1396c336b2.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b2b5204d4dfab9dc.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b2f8df0bdc713008.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b361fc308a3b9ab1.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b374846290238cd1.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b4b163b746d0aa53.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b68845f6e8da9be3.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b7e677bf8412e9bd.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b99ba32d31caa65e.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/bc02d7c24ec8eccc.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/bc1a967be3c37e18.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/bc89d1801e46fb3c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/bce873a224061155.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/bea4de84b22aebbc.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c5f723dcb1ff4b6f.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c6ca46f28d7798dd.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c6e2f4ede9282c2f.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c761de11e901384a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c99399d1889fa84c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c9fd297a955f2355.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ca9a80b78b7aa22c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/cb9503b8979b185d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/cbc6cfb0a51ab6bb.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/cc3bda1ed2e95150.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ceb98745ab5dbe70.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/d1df948b17e4d9fc.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/d1e1e212112ab926.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/d4b766742cf2328a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/d93262cc2f01da93.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/d977ad06778acf8d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/da9376a352a900b8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/db2816895dd01979.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/db3a782c367dbe28.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/db825a17acae232c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/dc96bd8d8ad04ee4.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/dd1562878ff3c0f5.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/de117be85702ebbc.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/e3aafc52b94d322c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/e53a6e77d7808ee8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/e7dc452a2aae9b10.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ebf2fcb04221173e.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ebf527595602c7cc.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ed6a8410124b956b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/f1801152a72fbdf0.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/f6fe984552a62891.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/f81bbef279fc5018.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/f975369ecf8cfe1b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/fd21c48c0c429b77.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0354796dc060829e.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/039f9af1f7851836.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/05e117af5b509bae.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0bc34e3949fbef01.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0ce495589c7221d3.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0dd1cda742544db1.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0eba31912f25f3eb.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0f2703145ac02172.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0fa09530ccf28805.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0fd8e540615171e8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/101ff2c4997376a9.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/12c490c06def9488.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/18257c152bba13a6.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/1d4a6a418d2b6a64.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/1e61d3c782893a54.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/1fc92f87c93d4fd9.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/2c9de54bccd13e11.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/2f3ea5c1badef128.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/32aa8c660cf91963.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/35111034d5ad26a6.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/352eb0c7f720c196.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/3a2e224daffb8e3d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/3ee772a67521e170.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/401e93fa320273da.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/40d9b4294628036d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/44592db880e5ec3f.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/45870b434cfe0c85.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/458943c95381e6de.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/4ca27bb3cae67ad6.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/4e0d19bea7253cc8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/4f02317672f3198b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/56a98d6dbd85ebed.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/5d6b31c824d8741e.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/5f75509e9ed27170.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/5fcfe11a675bac8b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/61b8b2fc9077f91a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/642c92672daf5c43.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/655ff32e6cd550bc.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/65bc24178c843052.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/66cd62510980471d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/681c1dd84a2bdf26.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/6838fe47e511b2b8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/6a609539ed167213.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/74b6b71e76efb9c9.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/75e719c76477d44f.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/77e0e879c2c95195.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7a15ef0ba4aa5660.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7a9dd710389dde99.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7b783286f80ab872.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7d1298c12634bc16.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7ddf2b8e4c6cb2e3.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7fc2229fcb868522.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/85abdb138905726a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/884e41282eb896c5.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8a703994c30b19ea.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8aca0021ebe63f8e.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8bc107890e1ab320.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8c1a66ea86c98f76.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8dd5ac3207b6ca3b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8f898c00eea3a93b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/931cbc8a4cbebf70.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/932804c1aff4d044.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/94b151c44f8a3588.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/94ce2189385c970f.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/94fa736d741d63be.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/95bd2009772c07fd.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/95f748fee80393ef.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/9b1e26a55ef34ee9.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/9f3159c9912586db.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/a17c34748d867e85.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/a2ca0018b46feabd.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/a60b9031cf48ebba.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/a9be790d1f0ae7ec.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ac4d6823c4034fe6.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ad80625c2fe055e2.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/b102691e3c3e4cae.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/b34027c96f8daa30.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/b639b463e04459db.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/b7e540f21b7f0271.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ba460ba22b61b3ac.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ba7499ca4c58ff94.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/be2d027b571e9344.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c1fff30850bb8b6f.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c3889a8993fc490d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c51c4fa6e6b83f7e.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c57ca30ea53e2d68.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c64c433f4452d82a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c91739ca8dcc39ea.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c91d5e81eba0d3c9.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c9fecad2b9f0357c.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/cb7fab9ab7b8c520.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/cbbaeea4c7d24156.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/cc7dd2a0003c03d8.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ce64ddc6701623a7.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/d19b01ce83c8c71a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/d5aae4af1fe94a3a.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/d5c47dfe60be1592.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/d7eef627315eeab2.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/d81cb4d0b47db4ae.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/deed4c82c27e2b5d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/df1c0ed33adf634d.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/e1c2af52b798715b.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/e249b7de89e07bbc.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/e6b6c0b80707ee08.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/e74d1c6e8e950e20.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/e9d2da361090c228.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ec8c114b8a360379.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/f1772556a9442724.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/f4753f23f51fe441.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/f52c654a914ee356.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/f6187d9353655ff5.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/f766aa4cfdca2770.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/fabcc3a4db082252.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/fec2d3d5372c2bcc.msgpack +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/Activate.ps1 +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/activate +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/activate-global-python-argcomplete +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/activate.csh +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/activate.fish +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/alembic +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/arize-phoenix +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/cyclopts +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/distro +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/docutils +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/dotenv +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/email_validator +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/f2py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/fastapi +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/fastavro +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/fastmcp +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/genai-prices +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/get_gprof +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/get_objgraph +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/griffe +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/hf +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/httpx +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/hypercorn +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/inv +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/invoke +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/jp.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/jsonpath_ng +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/jsonschema +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/keyring +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/kreuzberg +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/logfire +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/mako-render +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/markdown-it +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/mcp +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/mpire-dashboard +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/normalizer +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/numpy-config +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/openai +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/opentelemetry-bootstrap +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/opentelemetry-instrument +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pai +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/phoenix +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pip +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pip3 +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pip3.12 +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pygmentize +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-decrypt +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-encrypt +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-keygen +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-priv2pub +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-sign +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-verify +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pystache +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pystache-test +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/python +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/python-argcomplete-check-easy-install-script +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/python3 +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/python3.12 +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/register-python-argcomplete +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rem +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2html +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2html4 +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2html5 +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2latex +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2man +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2odt +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2pseudoxml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2s5 +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2xetex +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2xml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/strawberry +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/tiny-agents +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/tqdm +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/undill +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/uvicorn +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/watchfiles +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/websockets +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/.venv-test/pyvenv.cfg +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/Dockerfile +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/Tiltfile +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/alembic/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/alembic/env.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/alembic/script.py.mako +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/alembic.ini +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/dev-setup.sh +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/docker-compose.prebuilt.yml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/docker-compose.test.yml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/docker-compose.yml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/agents/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/agents/sse_simulator.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/llm_provider_models.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/mcp/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/otel/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/otel/setup.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/providers/phoenix.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/query.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/query_helper.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/serialization.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/tools/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/mcp_router/prompts.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/admin.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/json_utils.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/models.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/otel_utils.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/dev.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/feedback.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/models.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/query.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/shared_sessions.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/providers/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/providers/base.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/providers/google.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/providers/microsoft.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/cluster.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/configure.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/dreaming.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/experiments.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/mcp.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/scaffold.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/schema.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/serve.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/session.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/dreaming.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/main.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/config.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/mcp_server.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/core_model.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/engram.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/experiment.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/inline_edge.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/rem_query.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/domain_resource.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/feedback.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/file.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/image_resource.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/message.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/moment.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/ontology_config.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/resource.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/schema.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/session.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/shared_session.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/py.typed +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/registry.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/core/moment-builder.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/core/rem-query-agent.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/core/resource-affinity-assessor.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/core/simple-assistant.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/core/user-profile-builder.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/contract-analyzer.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/contract-extractor.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/cv-parser.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/hello-world.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/query.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/simple.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/test.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/rem.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/hello-world/default.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/rem/faithfulness.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/rem/lookup-correctness.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/rem/retrieval-precision.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/rem/retrieval-recall.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/rem/search-correctness.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/audio/INTEGRATION.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/audio/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/audio/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/audio/chunker.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/audio/transcriber.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/content/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/content/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/content/providers.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/affinity_service.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/moment_service.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/ontology_service.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/user_model_service.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/utils.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/email/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/email/templates.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/embeddings/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/embeddings/api.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/examples.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/examples_paths.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/git_provider.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/local_provider.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/parsing-hooks-examples.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/paths.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/provider.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/s3_provider.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/service.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/git/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/git/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/git/service.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/EXPERIMENT_DESIGN.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/client.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/config.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/prompt_labels.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/migration_service.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/service.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rate_limit.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/exceptions.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/executor.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/parser.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/queries.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/query.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/service.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/session/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/migrations/003_optional_extensions.sql +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/migrations/005_schema_update.sql +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/AGENTIC_CHUNKING.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/agentic_chunking.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/batch_ops.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/chunking.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/clip_embeddings.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/constants.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/date_utils.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/dict_utils.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/embeddings.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/examples/embeddings_example.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/examples/sql_types_example.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/files.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/markdown.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/mime_types.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/sql_paths.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/sql_types.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/user_id.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/vision.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/db_listener.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/db_maintainer.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/dreaming.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/engram_processor.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/sqs_file_processor.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/unlogged_maintainer.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/conftest.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/SUMMARY.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/generate_test_audio.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/test_hq_30s.wav +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/test_long_90s.wav +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/test_medium_10s.wav +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/test_short_3s.wav +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/test_standard_30s.wav +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/annual_financial_report.pdf +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/consulting_agreement.pdf +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/nda_agreement.pdf +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/sample_business_plan.pdf +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/sample_invoice.pdf +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/sample_research_paper.pdf +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/sample_resume.pdf +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/service_contract.pdf +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/test.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/CODE_REVIEW_FIXES.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/TEST_RESULTS.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/cli_verification.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/database-design.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/deep-learning-guide.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/ml-overview.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/python-best-practices.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/test_summary.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/engrams/test-conversation.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/engrams/test-diary-entry.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/engrams/test-meeting-notes.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/engrams/test-observation.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/engrams/test-project-note.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/graph_seed.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/sample-architecture-doc.txt +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/sample_conversations.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/schemas/agents/query_agent.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/schemas/agents/summarization_agent.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/schemas/agents/test-cv-parser.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/schemas/evaluators/accuracy_evaluator.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/001_sample_data.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/001_sample_data.yaml.bak +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/files/documents/api_spec.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/files/documents/meeting_notes.txt +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/files/engrams/personal_reflection.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/files/engrams/product_idea_voice_memo.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/files/engrams/team_standup_meeting.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/resources.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/shared_sessions_demo.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/test-user-data.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/test-user-data.yaml.bak +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/users.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/helpers/README.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/helpers/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/helpers/seed_data.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/phoenix/run_complete_experiment.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/phoenix/run_hello_world_experiment.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/phoenix/test_connection.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/rem-agent-eval-questions.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/rem-query-agent-tests.yaml +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/load_sample_data.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/resources/api_design_discussion.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/resources/database_migration_plan.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/resources/morning_standup_notes.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/resources/production_incident_postmortem.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/resources/quarterly_reflection.md +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/services/test_content_providers.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/services/test_schema_provider.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_agent_end_to_end.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_agent_tool_invocation.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_agent_with_tools.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_api_endpoints.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_batch_upsert.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_completions_with_sessions.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_content_ingest_workflow.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_contract_extractor.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_dreaming_moments.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_dynamic_agents.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_git_provider.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_mcp_server_loading.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_mcp_tool_loading.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_mcp_tools.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_natural_language_to_rem.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_query.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_query_agent.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_query_agent_structured.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_query_evolution.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_query_functions.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_service_layer.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_unlogged_maintainer.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_user_session_reloads.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_verify_setup.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_yaml_export.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/integration/validate_rem_agent_schema.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/scripts/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/scripts/demo_session_recovery.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/scripts/seed_sample_sessions.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/scripts/simple_session_demo.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/agents/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/agents/test_sse_simulator.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/providers/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/providers/test_pydantic_ai.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/test_schema_integration.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/test_tool_description_suffix.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/api/__init__.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/api/test_feedback.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/api/test_models_endpoint.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/api/test_sessions_messages.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/api/test_sse_events.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/conftest.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_admin_internal.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_registry.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_session_cli.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_sql_security.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/tests/unit/utils/test_agentic_chunking.py +0 -0
- {remdb-0.3.148 → remdb-0.3.217}/walkthrough.md +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Pre-commit hook for remstack/rem
|
|
4
|
+
#
|
|
5
|
+
# Runs unit tests before commit
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
set -e
|
|
9
|
+
|
|
10
|
+
echo "=== Pre-commit: Running unit tests ==="
|
|
11
|
+
|
|
12
|
+
# Check if REM package has changes
|
|
13
|
+
if git diff --cached --name-only | grep -q "^src/rem/"; then
|
|
14
|
+
echo ""
|
|
15
|
+
echo ">>> REM package changes detected - running pytest..."
|
|
16
|
+
uv run pytest tests/unit/ -v -m "not llm"
|
|
17
|
+
|
|
18
|
+
echo ""
|
|
19
|
+
echo "✓ Unit tests passed"
|
|
20
|
+
else
|
|
21
|
+
echo "No REM package changes, skipping unit tests"
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
echo ""
|
|
25
|
+
echo "=== Pre-commit: OK ==="
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Pre-push hook for remstack/rem
|
|
4
|
+
#
|
|
5
|
+
# Runs integration tests before push, skipping LLM tests (expensive and require API keys)
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
set -e
|
|
9
|
+
|
|
10
|
+
echo "=== Pre-push: Running integration tests ==="
|
|
11
|
+
|
|
12
|
+
echo ""
|
|
13
|
+
echo ">>> Starting test database..."
|
|
14
|
+
docker compose -f docker-compose.test.yml up -d
|
|
15
|
+
|
|
16
|
+
echo ">>> Waiting for database to be ready..."
|
|
17
|
+
for i in {1..30}; do
|
|
18
|
+
if docker exec rem-postgres-test pg_isready -U rem > /dev/null 2>&1; then
|
|
19
|
+
echo "Database ready"
|
|
20
|
+
break
|
|
21
|
+
fi
|
|
22
|
+
sleep 1
|
|
23
|
+
done
|
|
24
|
+
|
|
25
|
+
echo ""
|
|
26
|
+
echo ">>> Running integration tests (DB-only, skipping LLM tests)..."
|
|
27
|
+
# Skip LLM-marked tests which require real API calls and have async isolation issues
|
|
28
|
+
POSTGRES__CONNECTION_STRING="postgresql://rem:rem@localhost:5433/rem" \
|
|
29
|
+
uv run pytest tests/integration/ -v -m "not llm" || {
|
|
30
|
+
echo ""
|
|
31
|
+
echo ">>> Stopping test database..."
|
|
32
|
+
docker compose -f docker-compose.test.yml down -v
|
|
33
|
+
exit 1
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
echo ""
|
|
37
|
+
echo ">>> Stopping test database..."
|
|
38
|
+
docker compose -f docker-compose.test.yml down -v
|
|
39
|
+
|
|
40
|
+
echo ""
|
|
41
|
+
echo "✓ Integration tests passed"
|
|
42
|
+
echo ""
|
|
43
|
+
echo "=== Pre-push: OK ==="
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�N�m��
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�N��^ٕ
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�O(V^�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�NH����
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�N�y�v
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�N�7|�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�NH�Gf�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�O$܄�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�NH;�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�N��ft�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�NH;���
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�O'�eä
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�NH�U#[
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�N�����
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�U:�:2�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�N��\/]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�P�T
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�Qm]YG�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�PY��
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��type�str�data�application/pdf�cached_at�A�O@-�9
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: remdb
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.217
|
|
4
4
|
Summary: Resources Entities Moments - Bio-inspired memory system for agentic AI workloads
|
|
5
5
|
Project-URL: Homepage, https://github.com/Percolation-Labs/reminiscent
|
|
6
6
|
Project-URL: Documentation, https://github.com/Percolation-Labs/reminiscent/blob/main/README.md
|
|
@@ -716,11 +716,271 @@ curl -X POST http://localhost:8000/api/v1/chat/completions \
|
|
|
716
716
|
|
|
717
717
|
See `rem/api/README.md` for full SSE event protocol documentation.
|
|
718
718
|
|
|
719
|
+
## Multi-Agent Orchestration
|
|
720
|
+
|
|
721
|
+
REM supports hierarchical agent orchestration where agents can delegate work to other agents via the `ask_agent` tool. This enables complex workflows with specialized agents.
|
|
722
|
+
|
|
723
|
+
### Architecture
|
|
724
|
+
|
|
725
|
+
```mermaid
|
|
726
|
+
sequenceDiagram
|
|
727
|
+
participant User
|
|
728
|
+
participant API as Chat API
|
|
729
|
+
participant Orchestrator as Orchestrator Agent
|
|
730
|
+
participant EventSink as Event Sink (Queue)
|
|
731
|
+
participant Child as Child Agent
|
|
732
|
+
participant DB as PostgreSQL
|
|
733
|
+
|
|
734
|
+
User->>API: POST /chat/completions (stream=true)
|
|
735
|
+
API->>API: Create event sink (asyncio.Queue)
|
|
736
|
+
API->>Orchestrator: agent.iter(prompt)
|
|
737
|
+
|
|
738
|
+
loop Streaming Loop
|
|
739
|
+
Orchestrator->>API: PartDeltaEvent (text)
|
|
740
|
+
API->>User: SSE: data: {"delta": {"content": "..."}}
|
|
741
|
+
end
|
|
742
|
+
|
|
743
|
+
Orchestrator->>Orchestrator: Decides to call ask_agent
|
|
744
|
+
Orchestrator->>API: ToolCallPart (ask_agent)
|
|
745
|
+
API->>User: SSE: event: tool_call
|
|
746
|
+
|
|
747
|
+
API->>Child: ask_agent("child_name", input)
|
|
748
|
+
Child->>EventSink: push_event(child_content)
|
|
749
|
+
EventSink->>API: Consume child events
|
|
750
|
+
API->>User: SSE: data: {"delta": {"content": "..."}}
|
|
751
|
+
|
|
752
|
+
Child->>Child: Completes
|
|
753
|
+
Child-->>Orchestrator: Return result
|
|
754
|
+
|
|
755
|
+
Orchestrator->>API: Final response
|
|
756
|
+
API->>DB: Save tool calls
|
|
757
|
+
API->>DB: Save assistant message
|
|
758
|
+
API->>User: SSE: data: [DONE]
|
|
759
|
+
```
|
|
760
|
+
|
|
761
|
+
### Event Sink Pattern
|
|
762
|
+
|
|
763
|
+
When an agent delegates to a child via `ask_agent`, the child's streaming events need to bubble up to the parent's stream. This is achieved through an **event sink** pattern using Python's `ContextVar`:
|
|
764
|
+
|
|
765
|
+
```python
|
|
766
|
+
# context.py
|
|
767
|
+
from contextvars import ContextVar
|
|
768
|
+
|
|
769
|
+
_parent_event_sink: ContextVar["asyncio.Queue | None"] = ContextVar(
|
|
770
|
+
"parent_event_sink", default=None
|
|
771
|
+
)
|
|
772
|
+
|
|
773
|
+
async def push_event(event: Any) -> bool:
|
|
774
|
+
"""Push event to parent's event sink if available."""
|
|
775
|
+
sink = _parent_event_sink.get()
|
|
776
|
+
if sink is not None:
|
|
777
|
+
await sink.put(event)
|
|
778
|
+
return True
|
|
779
|
+
return False
|
|
780
|
+
```
|
|
781
|
+
|
|
782
|
+
The streaming controller sets up the event sink before agent execution:
|
|
783
|
+
|
|
784
|
+
```python
|
|
785
|
+
# streaming.py
|
|
786
|
+
child_event_sink: asyncio.Queue = asyncio.Queue()
|
|
787
|
+
set_event_sink(child_event_sink)
|
|
788
|
+
|
|
789
|
+
async for node in agent.iter(prompt):
|
|
790
|
+
# Process agent events...
|
|
791
|
+
|
|
792
|
+
# Consume any child events that arrived
|
|
793
|
+
while not child_event_sink.empty():
|
|
794
|
+
child_event = child_event_sink.get_nowait()
|
|
795
|
+
if child_event["type"] == "child_content":
|
|
796
|
+
yield format_sse_content_delta(child_event["content"])
|
|
797
|
+
```
|
|
798
|
+
|
|
799
|
+
### ask_agent Tool Implementation
|
|
800
|
+
|
|
801
|
+
The `ask_agent` tool in `mcp_router/tools.py` uses Pydantic AI's streaming iteration:
|
|
802
|
+
|
|
803
|
+
```python
|
|
804
|
+
async def ask_agent(agent_name: str, input_text: str, ...):
|
|
805
|
+
"""Delegate work to another agent."""
|
|
806
|
+
|
|
807
|
+
# Load and create child agent
|
|
808
|
+
schema = await load_agent_schema_async(agent_name, user_id)
|
|
809
|
+
child_agent = await create_agent(context=context, agent_schema_override=schema)
|
|
810
|
+
|
|
811
|
+
# Stream child agent with event proxying
|
|
812
|
+
async with child_agent.iter(prompt) as agent_run:
|
|
813
|
+
async for node in agent_run:
|
|
814
|
+
if Agent.is_model_request_node(node):
|
|
815
|
+
async with node.stream(agent_run.ctx) as request_stream:
|
|
816
|
+
async for event in request_stream:
|
|
817
|
+
if isinstance(event, PartDeltaEvent):
|
|
818
|
+
# Push content to parent's event sink
|
|
819
|
+
await push_event({
|
|
820
|
+
"type": "child_content",
|
|
821
|
+
"agent_name": agent_name,
|
|
822
|
+
"content": event.delta.content_delta,
|
|
823
|
+
})
|
|
824
|
+
|
|
825
|
+
return agent_run.result
|
|
826
|
+
```
|
|
827
|
+
|
|
828
|
+
### Pydantic AI Features Used
|
|
829
|
+
|
|
830
|
+
#### 1. Streaming Iteration (`agent.iter()`)
|
|
831
|
+
|
|
832
|
+
Unlike `agent.run()` which blocks until completion, `agent.iter()` provides fine-grained control over the execution flow:
|
|
833
|
+
|
|
834
|
+
```python
|
|
835
|
+
async with agent.iter(prompt) as agent_run:
|
|
836
|
+
async for node in agent_run:
|
|
837
|
+
if Agent.is_model_request_node(node):
|
|
838
|
+
# Model is generating - stream the response
|
|
839
|
+
async with node.stream(agent_run.ctx) as stream:
|
|
840
|
+
async for event in stream:
|
|
841
|
+
if isinstance(event, PartStartEvent):
|
|
842
|
+
# Tool call starting
|
|
843
|
+
elif isinstance(event, PartDeltaEvent):
|
|
844
|
+
# Content chunk
|
|
845
|
+
elif Agent.is_call_tools_node(node):
|
|
846
|
+
# Tools are being executed
|
|
847
|
+
async with node.stream(agent_run.ctx) as stream:
|
|
848
|
+
async for event in stream:
|
|
849
|
+
if isinstance(event, FunctionToolResultEvent):
|
|
850
|
+
# Tool completed
|
|
851
|
+
```
|
|
852
|
+
|
|
853
|
+
#### 2. Node Types
|
|
854
|
+
|
|
855
|
+
- **`ModelRequestNode`**: The model is generating a response (text or tool calls)
|
|
856
|
+
- **`CallToolsNode`**: Tools are being executed
|
|
857
|
+
- **`End`**: Agent execution complete
|
|
858
|
+
|
|
859
|
+
#### 3. Event Types
|
|
860
|
+
|
|
861
|
+
- **`PartStartEvent`**: A new part (text or tool call) is starting
|
|
862
|
+
- **`PartDeltaEvent`**: Content chunk for streaming text
|
|
863
|
+
- **`FunctionToolResultEvent`**: Tool execution completed with result
|
|
864
|
+
- **`ToolCallPart`**: Metadata about a tool call (name, arguments)
|
|
865
|
+
- **`TextPart`**: Text content
|
|
866
|
+
|
|
867
|
+
### Message Persistence
|
|
868
|
+
|
|
869
|
+
All messages are persisted to PostgreSQL for session continuity:
|
|
870
|
+
|
|
871
|
+
```python
|
|
872
|
+
# streaming.py - after agent completes
|
|
873
|
+
async def save_session_messages(...):
|
|
874
|
+
store = SessionMessageStore(user_id=user_id)
|
|
875
|
+
|
|
876
|
+
# Save each tool call as a tool message
|
|
877
|
+
for tool_call in tool_calls:
|
|
878
|
+
await store.save_message(
|
|
879
|
+
session_id=session_id,
|
|
880
|
+
role="tool",
|
|
881
|
+
content=tool_call.result,
|
|
882
|
+
tool_name=tool_call.name,
|
|
883
|
+
tool_call_id=tool_call.id,
|
|
884
|
+
)
|
|
885
|
+
|
|
886
|
+
# Save the final assistant response
|
|
887
|
+
await store.save_message(
|
|
888
|
+
session_id=session_id,
|
|
889
|
+
role="assistant",
|
|
890
|
+
content=accumulated_content,
|
|
891
|
+
)
|
|
892
|
+
```
|
|
893
|
+
|
|
894
|
+
Messages are stored with:
|
|
895
|
+
- **Embeddings**: For semantic search across conversation history
|
|
896
|
+
- **Compression**: Long conversations are summarized to manage context window
|
|
897
|
+
- **Session isolation**: Each session maintains its own message history
|
|
898
|
+
|
|
899
|
+
### Testing Multi-Agent Systems
|
|
900
|
+
|
|
901
|
+
#### Integration Tests
|
|
902
|
+
|
|
903
|
+
Real end-to-end tests without mocking are in `tests/integration/test_ask_agent_streaming.py`:
|
|
904
|
+
|
|
905
|
+
```python
|
|
906
|
+
class TestAskAgentStreaming:
|
|
907
|
+
async def test_ask_agent_streams_and_saves(self, session_id, user_id):
|
|
908
|
+
"""Test delegation via ask_agent."""
|
|
909
|
+
# Uses test_orchestrator which always delegates to test_responder
|
|
910
|
+
agent = await create_agent(context=context, agent_schema_override=schema)
|
|
911
|
+
|
|
912
|
+
chunks = []
|
|
913
|
+
async for chunk in stream_openai_response_with_save(
|
|
914
|
+
agent=agent,
|
|
915
|
+
prompt="Hello, please delegate this",
|
|
916
|
+
...
|
|
917
|
+
):
|
|
918
|
+
chunks.append(chunk)
|
|
919
|
+
|
|
920
|
+
# Verify streaming worked
|
|
921
|
+
assert len(content_chunks) > 0
|
|
922
|
+
|
|
923
|
+
# Verify persistence
|
|
924
|
+
messages = await store.load_session_messages(session_id)
|
|
925
|
+
assert len([m for m in messages if m["role"] == "assistant"]) == 1
|
|
926
|
+
assert len([m for m in messages if m["tool_name"] == "ask_agent"]) >= 1
|
|
927
|
+
|
|
928
|
+
async def test_multi_turn_saves_all_assistant_messages(self, session_id, user_id):
|
|
929
|
+
"""Test that each turn saves its own assistant message.
|
|
930
|
+
|
|
931
|
+
This catches scoping bugs like accumulated_content not being
|
|
932
|
+
properly scoped per-turn.
|
|
933
|
+
"""
|
|
934
|
+
turn_prompts = [
|
|
935
|
+
"Hello, how are you?",
|
|
936
|
+
"Tell me something interesting",
|
|
937
|
+
"Thanks for chatting!",
|
|
938
|
+
]
|
|
939
|
+
|
|
940
|
+
for prompt in turn_prompts:
|
|
941
|
+
async for chunk in stream_openai_response_with_save(...):
|
|
942
|
+
pass
|
|
943
|
+
|
|
944
|
+
# Each turn should save an assistant message
|
|
945
|
+
messages = await store.load_session_messages(session_id)
|
|
946
|
+
assistant_msgs = [m for m in messages if m["role"] == "assistant"]
|
|
947
|
+
assert len(assistant_msgs) == 3
|
|
948
|
+
```
|
|
949
|
+
|
|
950
|
+
#### Test Agent Schemas
|
|
951
|
+
|
|
952
|
+
Test agents are defined in `tests/data/schemas/agents/`:
|
|
953
|
+
|
|
954
|
+
- **`test_orchestrator.yaml`**: Always delegates via `ask_agent`
|
|
955
|
+
- **`test_responder.yaml`**: Simple agent that responds directly
|
|
956
|
+
|
|
957
|
+
```yaml
|
|
958
|
+
# test_orchestrator.yaml
|
|
959
|
+
type: object
|
|
960
|
+
description: |
|
|
961
|
+
You are a TEST ORCHESTRATOR that ALWAYS delegates to another agent.
|
|
962
|
+
Call ask_agent with agent_name="test_responder" on EVERY turn.
|
|
963
|
+
json_schema_extra:
|
|
964
|
+
kind: agent
|
|
965
|
+
name: test_orchestrator
|
|
966
|
+
tools:
|
|
967
|
+
- name: ask_agent
|
|
968
|
+
mcp_server: rem
|
|
969
|
+
```
|
|
970
|
+
|
|
971
|
+
#### Running Integration Tests
|
|
972
|
+
|
|
973
|
+
```bash
|
|
974
|
+
# Run individually (recommended due to async isolation)
|
|
975
|
+
POSTGRES__CONNECTION_STRING="postgresql://rem:rem@localhost:5050/rem" \
|
|
976
|
+
uv run pytest tests/integration/test_ask_agent_streaming.py::TestAskAgentStreaming::test_multi_turn_saves_all_assistant_messages -v -s
|
|
977
|
+
```
|
|
978
|
+
|
|
719
979
|
## Future Work
|
|
720
980
|
|
|
721
981
|
- [ ] Phoenix evaluator integration
|
|
722
982
|
- [ ] Agent schema registry (load schemas by URI)
|
|
723
983
|
- [ ] Schema validation and versioning
|
|
724
|
-
- [
|
|
725
|
-
- [
|
|
984
|
+
- [x] Multi-turn conversation management
|
|
985
|
+
- [x] Agent composition (agents calling agents)
|
|
726
986
|
- [ ] Alternative provider implementations (if needed)
|
|
@@ -6,6 +6,8 @@ Use create_agent_from_schema_file() to instantiate agents.
|
|
|
6
6
|
|
|
7
7
|
The SSE Simulator is a special programmatic "agent" that generates
|
|
8
8
|
scripted SSE events for testing and demonstration - it doesn't use an LLM.
|
|
9
|
+
|
|
10
|
+
Agent Manager provides functions for saving/loading user-created agents.
|
|
9
11
|
"""
|
|
10
12
|
|
|
11
13
|
from .sse_simulator import (
|
|
@@ -14,9 +16,23 @@ from .sse_simulator import (
|
|
|
14
16
|
stream_error_demo,
|
|
15
17
|
)
|
|
16
18
|
|
|
19
|
+
from .agent_manager import (
|
|
20
|
+
save_agent,
|
|
21
|
+
get_agent,
|
|
22
|
+
list_agents,
|
|
23
|
+
delete_agent,
|
|
24
|
+
build_agent_spec,
|
|
25
|
+
)
|
|
26
|
+
|
|
17
27
|
__all__ = [
|
|
18
28
|
# SSE Simulator (programmatic, no LLM)
|
|
19
29
|
"stream_simulator_events",
|
|
20
30
|
"stream_minimal_demo",
|
|
21
31
|
"stream_error_demo",
|
|
32
|
+
# Agent Manager
|
|
33
|
+
"save_agent",
|
|
34
|
+
"get_agent",
|
|
35
|
+
"list_agents",
|
|
36
|
+
"delete_agent",
|
|
37
|
+
"build_agent_spec",
|
|
22
38
|
]
|