remdb 0.3.164__tar.gz → 0.3.203__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.203/.kreuzberg/mime/0b34bcd318001ead.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/2279f944d9ee9966.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/23c2221c537a5fc7.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/245d4933e8c1b195.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/256e0b513c55383d.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/333c03f53d37ed0e.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/3a11309ab5c2f4f1.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/454e06d91c1f7da3.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/5bcfea3bfc53067c.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/7b3e640c001c4894.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/8225fe0751545bd9.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/9a6b60a4833997e2.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/a1da34b0466f625e.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/ac4f98ccc34fc6c0.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/c1f16f2de51197de.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/e8a4b78d213a80ec.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/ec70e75eec5d6198.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/f0fa2893c7713bc6.msgpack +1 -0
- remdb-0.3.203/.kreuzberg/mime/f6624f69041cc763.msgpack +1 -0
- {remdb-0.3.164 → remdb-0.3.203}/PKG-INFO +1 -1
- {remdb-0.3.164 → remdb-0.3.203}/pyproject.toml +1 -1
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/context.py +101 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/context_builder.py +30 -8
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/mcp/tool_wrapper.py +43 -14
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/providers/pydantic_ai.py +76 -34
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/schema.py +4 -3
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/tools/rem_tools.py +11 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/main.py +1 -1
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/mcp_router/resources.py +75 -14
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/mcp_router/server.py +31 -24
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/mcp_router/tools.py +474 -155
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/auth.py +54 -7
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/chat/completions.py +52 -10
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/chat/sse_events.py +2 -2
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/chat/streaming.py +162 -19
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/messages.py +145 -24
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/auth/jwt.py +19 -4
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/auth/middleware.py +59 -42
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/README.md +62 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/ask.py +1 -1
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/db.py +148 -70
- remdb-0.3.203/src/rem/cli/commands/process.py +380 -0
- remdb-0.3.203/src/rem/models/entities/ontology.py +181 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/core/agent-builder.yaml +18 -12
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/content/service.py +18 -5
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/email/service.py +17 -6
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/embeddings/worker.py +26 -12
- remdb-0.3.203/src/rem/services/postgres/__init__.py +49 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/postgres/diff_service.py +57 -5
- remdb-0.3.203/src/rem/services/postgres/programmable_diff_service.py +635 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/postgres/pydantic_to_sqlalchemy.py +2 -2
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/postgres/register_type.py +12 -11
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/postgres/repository.py +32 -21
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/postgres/schema_generator.py +5 -5
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/postgres/sql_builder.py +6 -5
- remdb-0.3.203/src/rem/services/session/__init__.py +12 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/session/compression.py +42 -2
- remdb-0.3.203/src/rem/services/session/pydantic_messages.py +210 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/user_service.py +12 -9
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/settings.py +7 -1
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/sql/background_indexes.sql +5 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/sql/migrations/001_install.sql +158 -11
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/sql/migrations/002_install_models.sql +160 -132
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/sql/migrations/004_cache_system.sql +7 -275
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/model_helpers.py +101 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/schema_loader.py +6 -6
- remdb-0.3.203/test_resources.py +29 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_embedding_worker.py +19 -5
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_embeddings_e2e.py +6 -3
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_graph_traversal.py +11 -9
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_mcp_tools_layer.py +55 -35
- remdb-0.3.203/tests/integration/test_messages_sessions_access.py +335 -0
- remdb-0.3.203/tests/integration/test_multi_agent.py +319 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_schema_introspection.py +1 -1
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_session_management.py +3 -3
- remdb-0.3.203/tests/integration/test_user_lookup_by_email.py +269 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/agentic/test_schema.py +1 -1
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/test_api_key_auth.py +72 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/test_resource_tools.py +3 -3
- remdb-0.3.164/src/rem/cli/commands/process.py +0 -252
- remdb-0.3.164/src/rem/models/entities/ontology.py +0 -191
- remdb-0.3.164/src/rem/services/postgres/__init__.py +0 -24
- remdb-0.3.164/src/rem/services/session/__init__.py +0 -6
- remdb-0.3.164/tests/integration/run_rem_agent_eval.py +0 -375
- remdb-0.3.164/tests/integration/test_merge_strategies_demo.py +0 -232
- remdb-0.3.164/tests/integration/test_shared_sessions.py +0 -734
- {remdb-0.3.164 → remdb-0.3.203}/.claude/archive/PUBLISH.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.claude/archive/QUICKSTART.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.claude/archive/publish.sh +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.claude/settings.local.json +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.dockerignore +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.env.example +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.experiments/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.experiments/RUN_ON_CLUSTER.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.experiments/TESTING_GUIDE.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.experiments/test-phoenix-integration.sh +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.gitignore +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/039976f3b4dc7549.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/045e65492b634d11.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/07f5cd0e3fb1d287.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/08f4ae339838b804.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/0a64e58ae1289686.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/0da06e67dd284834.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/0e200bfe2ea523f2.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/10b1925cb6007390.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/11c55125d2be1895.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/12dd62bbe8ee9b6a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/18f78825b8e302a8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/19a7ff44501eb3f9.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/1c9cec1b6f266e8d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/1db0e7d4ac2443af.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/1f32d592b118d944.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/20db05a60f4c6ce3.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/220746359cef9884.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/24034098fd444b39.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/2470f3a5e2d1953b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/24acc2df261ae549.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/26a8ed0cdfc0ccab.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/28e3c2bf25dfc659.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/295a37ef869b0a49.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/2a6f58009e01ad65.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/2ab7ae3b2e42644e.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/2b24548c2f91f8b9.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/2bb63e6235d19b40.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/2c74a0f17cde1b0c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/2d728912eb223a33.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/2de80149b410a676.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/2e1001cbed04103c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/32d99ccf71d10a38.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/3353ae12a176a9bd.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/34f1cfc7a58e8b0c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/3c5bd974fb83b573.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/3ca9da43dd834bca.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/3e9db2b8a87873c7.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/3ff1b430e0b510d5.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/4035607526c8600d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/40f0415d564cb996.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/4388f8ee095c9ed8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/439f422b7f8dc467.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/452c56ffd625931f.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/45ee850e300157c8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/45f79b5f90a07f0e.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/487e56b12d123968.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/49be62bf170de12a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/4b3e165ec4ba87d0.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/505ff13d9ac8f006.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/51e81cbe7899e310.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/537dea93b57ffce5.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/56a9f1cd9ec05384.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/56bf449feab17e6d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/57ab5fe18c74538b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/5a11f436d88e89cd.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/5b10dca1c6db6714.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/5eb63bbe412735a4.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/5ebca8549bb3ff2b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/5fef074c57dd118f.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/60f343229f836ab6.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/6153f83bf3713b32.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/6488134e7b6dd403.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/68e7b00767be2e16.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/6afac5499ef0a938.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/6bd93d4fd4cc3893.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/6defbba8bfc76983.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/6e37f5165f71513b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/6f9130d5f4db8b28.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/6fc0d79c16c59de5.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/774b8c209528323e.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/78c509bc3a9d93c4.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/798017037907ab5f.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/7a4fd9fd84ae6899.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/7b094993adee6e1a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/7c3ad418912e7c09.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/7f630276be2a1503.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/80fd68e8a4ac6556.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/819aabcfdf1334af.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/81ea65c652232174.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/84c4f70ba7616566.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/856e8ba75c4d220e.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/8cace0ec228b43d6.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/8d1ecc30d7d58b41.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/8e2e4ab7c05925fa.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/8e89a980bc3b92d8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/8f6a9b01f15883f5.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/9091b9d61e026046.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/927a028cf723c70d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/94bda8f2cabc1358.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/95313ccec52beb53.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/954fee40bb61432b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/9592cc24f2bf0d77.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/967396ed95832197.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/9804f3b02bf98e83.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/9936890e55f094f3.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/99405cab6cc35283.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/99e3da57a007bc59.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/99f1579d6a6790ad.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/9c265a028ee05977.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/9f02e484a5feb3af.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/9fd81ffc0b3282f8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/a0d60cff1e5950a6.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/a2bcfb3e4cf75d71.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/a3fd1a45a0ef02f1.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/a72acced3b5f0c28.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/a78fa3051259d29c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/a964045be65be2d2.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/ae8bc0c15954a96a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/af05b5754cd245b5.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/af28c894e94dc85c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/b0a26c1396c336b2.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/b2b5204d4dfab9dc.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/b2f8df0bdc713008.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/b361fc308a3b9ab1.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/b374846290238cd1.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/b4b163b746d0aa53.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/b68845f6e8da9be3.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/b7e677bf8412e9bd.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/b99ba32d31caa65e.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/bc02d7c24ec8eccc.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/bc1a967be3c37e18.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/bc89d1801e46fb3c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/bce873a224061155.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/bea4de84b22aebbc.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/c5f723dcb1ff4b6f.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/c6ca46f28d7798dd.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/c6e2f4ede9282c2f.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/c761de11e901384a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/c99399d1889fa84c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/c9fd297a955f2355.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/ca9a80b78b7aa22c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/cb9503b8979b185d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/cbc6cfb0a51ab6bb.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/cc3bda1ed2e95150.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/ceb98745ab5dbe70.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/d1df948b17e4d9fc.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/d1e1e212112ab926.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/d4b766742cf2328a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/d93262cc2f01da93.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/d977ad06778acf8d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/da9376a352a900b8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/db2816895dd01979.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/db3a782c367dbe28.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/db825a17acae232c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/dc96bd8d8ad04ee4.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/dd1562878ff3c0f5.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/de117be85702ebbc.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/e3aafc52b94d322c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/e53a6e77d7808ee8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/e7dc452a2aae9b10.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/ebf2fcb04221173e.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/ebf527595602c7cc.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/ed6a8410124b956b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/f1801152a72fbdf0.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/f6fe984552a62891.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/f81bbef279fc5018.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/f975369ecf8cfe1b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/mime/fd21c48c0c429b77.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/0354796dc060829e.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/039f9af1f7851836.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/05e117af5b509bae.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/0bc34e3949fbef01.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/0ce495589c7221d3.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/0dd1cda742544db1.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/0eba31912f25f3eb.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/0f2703145ac02172.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/0fa09530ccf28805.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/0fd8e540615171e8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/101ff2c4997376a9.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/12c490c06def9488.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/18257c152bba13a6.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/1d4a6a418d2b6a64.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/1e61d3c782893a54.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/1fc92f87c93d4fd9.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/2c9de54bccd13e11.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/2f3ea5c1badef128.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/32aa8c660cf91963.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/35111034d5ad26a6.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/352eb0c7f720c196.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/3a2e224daffb8e3d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/3ee772a67521e170.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/401e93fa320273da.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/40d9b4294628036d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/44592db880e5ec3f.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/45870b434cfe0c85.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/458943c95381e6de.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/4ca27bb3cae67ad6.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/4e0d19bea7253cc8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/4f02317672f3198b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/56a98d6dbd85ebed.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/5d6b31c824d8741e.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/5f75509e9ed27170.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/5fcfe11a675bac8b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/61b8b2fc9077f91a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/642c92672daf5c43.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/655ff32e6cd550bc.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/65bc24178c843052.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/66cd62510980471d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/681c1dd84a2bdf26.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/6838fe47e511b2b8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/6a609539ed167213.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/74b6b71e76efb9c9.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/75e719c76477d44f.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/77e0e879c2c95195.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/7a15ef0ba4aa5660.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/7a9dd710389dde99.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/7b783286f80ab872.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/7d1298c12634bc16.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/7ddf2b8e4c6cb2e3.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/7fc2229fcb868522.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/85abdb138905726a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/884e41282eb896c5.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/8a703994c30b19ea.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/8aca0021ebe63f8e.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/8bc107890e1ab320.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/8c1a66ea86c98f76.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/8dd5ac3207b6ca3b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/8f898c00eea3a93b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/931cbc8a4cbebf70.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/932804c1aff4d044.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/94b151c44f8a3588.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/94ce2189385c970f.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/94fa736d741d63be.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/95bd2009772c07fd.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/95f748fee80393ef.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/9b1e26a55ef34ee9.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/9f3159c9912586db.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/a17c34748d867e85.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/a2ca0018b46feabd.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/a60b9031cf48ebba.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/a9be790d1f0ae7ec.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/ac4d6823c4034fe6.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/ad80625c2fe055e2.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/b102691e3c3e4cae.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/b34027c96f8daa30.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/b639b463e04459db.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/b7e540f21b7f0271.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/ba460ba22b61b3ac.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/ba7499ca4c58ff94.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/be2d027b571e9344.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/c1fff30850bb8b6f.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/c3889a8993fc490d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/c51c4fa6e6b83f7e.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/c57ca30ea53e2d68.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/c64c433f4452d82a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/c91739ca8dcc39ea.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/c91d5e81eba0d3c9.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/c9fecad2b9f0357c.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/cb7fab9ab7b8c520.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/cbbaeea4c7d24156.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/cc7dd2a0003c03d8.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/ce64ddc6701623a7.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/d19b01ce83c8c71a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/d5aae4af1fe94a3a.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/d5c47dfe60be1592.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/d7eef627315eeab2.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/d81cb4d0b47db4ae.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/deed4c82c27e2b5d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/df1c0ed33adf634d.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/e1c2af52b798715b.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/e249b7de89e07bbc.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/e6b6c0b80707ee08.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/e74d1c6e8e950e20.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/e9d2da361090c228.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/ec8c114b8a360379.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/f1772556a9442724.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/f4753f23f51fe441.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/f52c654a914ee356.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/f6187d9353655ff5.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/f766aa4cfdca2770.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/fabcc3a4db082252.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.kreuzberg/tables/fec2d3d5372c2bcc.msgpack +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/Activate.ps1 +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/activate +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/activate-global-python-argcomplete +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/activate.csh +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/activate.fish +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/alembic +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/arize-phoenix +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/cyclopts +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/distro +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/docutils +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/dotenv +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/email_validator +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/f2py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/fastapi +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/fastavro +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/fastmcp +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/genai-prices +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/get_gprof +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/get_objgraph +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/griffe +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/hf +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/httpx +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/hypercorn +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/inv +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/invoke +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/jp.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/jsonpath_ng +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/jsonschema +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/keyring +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/kreuzberg +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/logfire +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/mako-render +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/markdown-it +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/mcp +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/mpire-dashboard +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/normalizer +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/numpy-config +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/openai +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/opentelemetry-bootstrap +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/opentelemetry-instrument +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pai +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/phoenix +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pip +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pip3 +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pip3.12 +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pygmentize +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pyrsa-decrypt +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pyrsa-encrypt +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pyrsa-keygen +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pyrsa-priv2pub +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pyrsa-sign +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pyrsa-verify +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pystache +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/pystache-test +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/python +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/python-argcomplete-check-easy-install-script +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/python3 +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/python3.12 +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/register-python-argcomplete +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rem +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rst2html +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rst2html4 +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rst2html5 +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rst2latex +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rst2man +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rst2odt +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rst2pseudoxml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rst2s5 +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rst2xetex +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/rst2xml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/strawberry +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/tiny-agents +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/tqdm +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/undill +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/uvicorn +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/watchfiles +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/bin/websockets +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/.venv-test/pyvenv.cfg +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/Dockerfile +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/Tiltfile +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/alembic/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/alembic/env.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/alembic/script.py.mako +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/alembic.ini +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/dev-setup.sh +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/docker-compose.prebuilt.yml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/docker-compose.test.yml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/docker-compose.yml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/agents/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/agents/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/agents/agent_manager.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/agents/sse_simulator.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/llm_provider_models.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/mcp/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/otel/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/otel/setup.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/providers/phoenix.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/query.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/query_helper.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/serialization.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/agentic/tools/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/deps.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/mcp_router/prompts.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/middleware/tracking.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/admin.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/chat/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/chat/json_utils.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/chat/models.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/chat/otel_utils.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/dev.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/feedback.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/models.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/query.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/api/routers/shared_sessions.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/auth/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/auth/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/auth/providers/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/auth/providers/base.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/auth/providers/email.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/auth/providers/google.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/auth/providers/microsoft.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/cluster.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/configure.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/dreaming.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/experiments.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/mcp.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/scaffold.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/schema.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/serve.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/commands/session.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/dreaming.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/cli/main.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/config.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/mcp_server.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/core/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/core/core_model.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/core/engram.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/core/experiment.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/core/inline_edge.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/core/rem_query.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/domain_resource.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/feedback.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/file.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/image_resource.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/message.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/moment.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/ontology_config.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/resource.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/schema.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/session.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/shared_session.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/subscriber.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/models/entities/user.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/py.typed +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/registry.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/core/moment-builder.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/core/rem-query-agent.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/core/resource-affinity-assessor.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/core/simple-assistant.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/core/user-profile-builder.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/examples/contract-analyzer.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/examples/contract-extractor.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/examples/cv-parser.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/examples/hello-world.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/examples/query.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/examples/simple.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/examples/test.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/agents/rem.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/evaluators/hello-world/default.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/evaluators/rem/faithfulness.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/evaluators/rem/lookup-correctness.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/evaluators/rem/retrieval-precision.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/evaluators/rem/retrieval-recall.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/schemas/evaluators/rem/search-correctness.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/audio/INTEGRATION.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/audio/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/audio/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/audio/chunker.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/audio/transcriber.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/content/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/content/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/content/providers.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/dreaming/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/dreaming/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/dreaming/affinity_service.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/dreaming/moment_service.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/dreaming/ontology_service.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/dreaming/user_model_service.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/dreaming/utils.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/email/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/email/templates.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/embeddings/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/embeddings/api.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/examples.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/examples_paths.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/git_provider.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/local_provider.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/parsing-hooks-examples.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/paths.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/provider.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/s3_provider.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/fs/service.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/git/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/git/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/git/service.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/phoenix/EXPERIMENT_DESIGN.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/phoenix/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/phoenix/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/phoenix/client.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/phoenix/config.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/phoenix/prompt_labels.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/postgres/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/postgres/migration_service.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/postgres/service.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/rate_limit.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/rem/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/rem/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/rem/exceptions.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/rem/executor.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/rem/parser.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/rem/queries.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/rem/query.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/rem/service.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/session/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/services/session/reload.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/sql/migrations/003_optional_extensions.sql +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/sql/migrations/005_schema_update.sql +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/AGENTIC_CHUNKING.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/agentic_chunking.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/batch_ops.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/chunking.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/clip_embeddings.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/constants.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/date_utils.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/dict_utils.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/embeddings.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/examples/embeddings_example.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/examples/sql_types_example.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/files.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/markdown.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/mime_types.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/sql_paths.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/sql_types.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/user_id.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/utils/vision.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/workers/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/workers/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/workers/db_listener.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/workers/db_maintainer.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/workers/dreaming.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/workers/engram_processor.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/workers/sqs_file_processor.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/src/rem/workers/unlogged_maintainer.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/conftest.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/audio/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/audio/SUMMARY.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/audio/generate_test_audio.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/audio/test_hq_30s.wav +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/audio/test_long_90s.wav +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/audio/test_medium_10s.wav +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/audio/test_short_3s.wav +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/audio/test_standard_30s.wav +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/content-examples/pdf/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/content-examples/pdf/annual_financial_report.pdf +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/content-examples/pdf/consulting_agreement.pdf +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/content-examples/pdf/nda_agreement.pdf +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/content-examples/pdf/sample_business_plan.pdf +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/content-examples/pdf/sample_invoice.pdf +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/content-examples/pdf/sample_research_paper.pdf +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/content-examples/pdf/sample_resume.pdf +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/content-examples/pdf/service_contract.pdf +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/content-examples/test.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/docs/CODE_REVIEW_FIXES.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/docs/TEST_RESULTS.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/docs/cli_verification.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/docs/database-design.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/docs/deep-learning-guide.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/docs/ml-overview.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/docs/python-best-practices.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/docs/test_summary.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/engrams/test-conversation.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/engrams/test-diary-entry.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/engrams/test-meeting-notes.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/engrams/test-observation.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/engrams/test-project-note.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/graph_seed.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/sample-architecture-doc.txt +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/sample_conversations.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/schemas/agents/query_agent.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/schemas/agents/summarization_agent.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/schemas/agents/test-cv-parser.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/schemas/evaluators/accuracy_evaluator.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/001_sample_data.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/001_sample_data.yaml.bak +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/files/documents/api_spec.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/files/documents/meeting_notes.txt +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/files/engrams/personal_reflection.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/files/engrams/product_idea_voice_memo.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/files/engrams/team_standup_meeting.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/resources.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/shared_sessions_demo.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/test-user-data.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/test-user-data.yaml.bak +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/data/seed/users.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/helpers/README.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/helpers/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/helpers/seed_data.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/phoenix/run_complete_experiment.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/phoenix/run_hello_world_experiment.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/phoenix/test_connection.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/rem-agent-eval-questions.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/rem-query-agent-tests.yaml +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/sample_data/dreaming/load_sample_data.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/sample_data/dreaming/resources/api_design_discussion.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/sample_data/dreaming/resources/database_migration_plan.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/sample_data/dreaming/resources/morning_standup_notes.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/sample_data/dreaming/resources/production_incident_postmortem.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/sample_data/dreaming/resources/quarterly_reflection.md +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/services/test_content_providers.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/services/test_schema_provider.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_agent_end_to_end.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_agent_tool_invocation.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_agent_with_tools.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_api_endpoints.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_batch_upsert.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_completions_with_sessions.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_content_ingest_workflow.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_contract_extractor.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_dreaming_moments.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_dynamic_agents.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_email_auth.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_git_provider.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_mcp_server_loading.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_mcp_tool_loading.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_mcp_tools.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_natural_language_to_rem.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_rem_query.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_rem_query_agent.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_rem_query_agent_structured.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_rem_query_evolution.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_rem_query_functions.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_rem_service_layer.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_unlogged_maintainer.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_user_session_reloads.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_verify_setup.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/test_yaml_export.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/integration/validate_rem_agent_schema.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/scripts/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/scripts/demo_session_recovery.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/scripts/seed_sample_sessions.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/scripts/simple_session_demo.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/test_agent_manager.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/agentic/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/agentic/agents/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/agentic/agents/test_sse_simulator.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/agentic/providers/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/agentic/providers/test_pydantic_ai.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/agentic/test_schema_integration.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/agentic/test_tool_description_suffix.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/api/__init__.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/api/test_feedback.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/api/test_models_endpoint.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/api/test_sessions_messages.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/api/test_sse_events.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/conftest.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/services/test_session_compression.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/test_admin_internal.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/test_registry.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/test_session_cli.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/test_sql_security.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/tests/unit/utils/test_agentic_chunking.py +0 -0
- {remdb-0.3.164 → remdb-0.3.203}/walkthrough.md +0 -0
|
@@ -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�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.203
|
|
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
|
|
@@ -22,14 +22,81 @@ Key Design Pattern:
|
|
|
22
22
|
- Enables session tracking across API, CLI, and test execution
|
|
23
23
|
- Supports header-based configuration override (model, schema URI)
|
|
24
24
|
- Clean separation: context (who/what) vs agent (how)
|
|
25
|
+
|
|
26
|
+
Multi-Agent Context Propagation:
|
|
27
|
+
- ContextVar (_current_agent_context) threads context through nested agent calls
|
|
28
|
+
- Parent context is automatically available to child agents via get_current_context()
|
|
29
|
+
- Use agent_context_scope() context manager for scoped context setting
|
|
30
|
+
- Child agents inherit user_id, tenant_id, session_id, is_eval from parent
|
|
25
31
|
"""
|
|
26
32
|
|
|
33
|
+
from contextlib import contextmanager
|
|
34
|
+
from contextvars import ContextVar
|
|
35
|
+
from typing import Generator
|
|
36
|
+
|
|
27
37
|
from loguru import logger
|
|
28
38
|
from pydantic import BaseModel, Field
|
|
29
39
|
|
|
30
40
|
from ..settings import settings
|
|
31
41
|
|
|
32
42
|
|
|
43
|
+
# Thread-local context for current agent execution
|
|
44
|
+
# This enables context propagation through nested agent calls (multi-agent)
|
|
45
|
+
_current_agent_context: ContextVar["AgentContext | None"] = ContextVar(
|
|
46
|
+
"current_agent_context", default=None
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def get_current_context() -> "AgentContext | None":
|
|
51
|
+
"""
|
|
52
|
+
Get the current agent context from context var.
|
|
53
|
+
|
|
54
|
+
Used by MCP tools (like ask_agent) to inherit context from parent agent.
|
|
55
|
+
Returns None if no context is set (e.g., direct CLI invocation without context).
|
|
56
|
+
|
|
57
|
+
Example:
|
|
58
|
+
# In an MCP tool
|
|
59
|
+
parent_context = get_current_context()
|
|
60
|
+
if parent_context:
|
|
61
|
+
# Inherit user_id, session_id, etc. from parent
|
|
62
|
+
child_context = parent_context.child_context(agent_schema_uri="child-agent")
|
|
63
|
+
"""
|
|
64
|
+
return _current_agent_context.get()
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def set_current_context(ctx: "AgentContext | None") -> None:
|
|
68
|
+
"""
|
|
69
|
+
Set the current agent context.
|
|
70
|
+
|
|
71
|
+
Called by streaming layer before agent execution.
|
|
72
|
+
Should be cleared (set to None) after execution completes.
|
|
73
|
+
"""
|
|
74
|
+
_current_agent_context.set(ctx)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
@contextmanager
|
|
78
|
+
def agent_context_scope(ctx: "AgentContext") -> Generator["AgentContext", None, None]:
|
|
79
|
+
"""
|
|
80
|
+
Context manager for scoped context setting.
|
|
81
|
+
|
|
82
|
+
Automatically restores previous context when exiting scope.
|
|
83
|
+
Safe for nested agent calls - each level preserves its parent's context.
|
|
84
|
+
|
|
85
|
+
Example:
|
|
86
|
+
context = AgentContext(user_id="user-123")
|
|
87
|
+
with agent_context_scope(context):
|
|
88
|
+
# Context is available via get_current_context()
|
|
89
|
+
result = await agent.run(...)
|
|
90
|
+
# Previous context (or None) is restored
|
|
91
|
+
"""
|
|
92
|
+
previous = _current_agent_context.get()
|
|
93
|
+
_current_agent_context.set(ctx)
|
|
94
|
+
try:
|
|
95
|
+
yield ctx
|
|
96
|
+
finally:
|
|
97
|
+
_current_agent_context.set(previous)
|
|
98
|
+
|
|
99
|
+
|
|
33
100
|
class AgentContext(BaseModel):
|
|
34
101
|
"""
|
|
35
102
|
Session and configuration context for agent execution.
|
|
@@ -85,6 +152,40 @@ class AgentContext(BaseModel):
|
|
|
85
152
|
|
|
86
153
|
model_config = {"populate_by_name": True}
|
|
87
154
|
|
|
155
|
+
def child_context(
|
|
156
|
+
self,
|
|
157
|
+
agent_schema_uri: str | None = None,
|
|
158
|
+
model_override: str | None = None,
|
|
159
|
+
) -> "AgentContext":
|
|
160
|
+
"""
|
|
161
|
+
Create a child context for nested agent calls.
|
|
162
|
+
|
|
163
|
+
Inherits user_id, tenant_id, session_id, is_eval from parent.
|
|
164
|
+
Allows overriding agent_schema_uri and default_model for the child.
|
|
165
|
+
|
|
166
|
+
Args:
|
|
167
|
+
agent_schema_uri: Agent schema for the child agent (required for lineage)
|
|
168
|
+
model_override: Optional model override for child agent
|
|
169
|
+
|
|
170
|
+
Returns:
|
|
171
|
+
New AgentContext for the child agent
|
|
172
|
+
|
|
173
|
+
Example:
|
|
174
|
+
parent_context = get_current_context()
|
|
175
|
+
child_context = parent_context.child_context(
|
|
176
|
+
agent_schema_uri="sentiment-analyzer"
|
|
177
|
+
)
|
|
178
|
+
agent = await create_agent(context=child_context)
|
|
179
|
+
"""
|
|
180
|
+
return AgentContext(
|
|
181
|
+
user_id=self.user_id,
|
|
182
|
+
tenant_id=self.tenant_id,
|
|
183
|
+
session_id=self.session_id,
|
|
184
|
+
default_model=model_override or self.default_model,
|
|
185
|
+
agent_schema_uri=agent_schema_uri or self.agent_schema_uri,
|
|
186
|
+
is_eval=self.is_eval,
|
|
187
|
+
)
|
|
188
|
+
|
|
88
189
|
@staticmethod
|
|
89
190
|
def get_user_id_or_default(
|
|
90
191
|
user_id: str | None,
|
|
@@ -12,7 +12,7 @@ User Context (on-demand by default):
|
|
|
12
12
|
- System message includes REM LOOKUP hint for user profile
|
|
13
13
|
- Agent decides whether to load profile based on query
|
|
14
14
|
- More efficient for queries that don't need personalization
|
|
15
|
-
- Example: "User
|
|
15
|
+
- Example: "User: sarah@example.com. To load user profile: Use REM LOOKUP \"sarah@example.com\""
|
|
16
16
|
|
|
17
17
|
User Context (auto-inject when enabled):
|
|
18
18
|
- Set CHAT__AUTO_INJECT_USER_CONTEXT=true
|
|
@@ -40,7 +40,7 @@ Usage (on-demand, default):
|
|
|
40
40
|
|
|
41
41
|
# Messages list structure (on-demand):
|
|
42
42
|
# [
|
|
43
|
-
# {"role": "system", "content": "Today's date: 2025-11-22\nUser
|
|
43
|
+
# {"role": "system", "content": "Today's date: 2025-11-22\nUser: sarah@example.com\nTo load user profile: Use REM LOOKUP \"sarah@example.com\"\nSession ID: sess-123\nTo load session history: Use REM LOOKUP messages?session_id=sess-123"},
|
|
44
44
|
# {"role": "user", "content": "What's next for the API migration?"}
|
|
45
45
|
# ]
|
|
46
46
|
|
|
@@ -115,7 +115,7 @@ class ContextBuilder:
|
|
|
115
115
|
- Agent can retrieve full content on-demand using REM LOOKUP
|
|
116
116
|
|
|
117
117
|
User Context (on-demand by default):
|
|
118
|
-
- System message includes REM LOOKUP hint: "User
|
|
118
|
+
- System message includes REM LOOKUP hint: "User: {email}. To load user profile: Use REM LOOKUP \"{email}\""
|
|
119
119
|
- Agent decides whether to load profile based on query
|
|
120
120
|
|
|
121
121
|
User Context (auto-inject when enabled):
|
|
@@ -137,7 +137,7 @@ class ContextBuilder:
|
|
|
137
137
|
|
|
138
138
|
# messages structure:
|
|
139
139
|
# [
|
|
140
|
-
# {"role": "system", "content": "Today's date: 2025-11-22\nUser
|
|
140
|
+
# {"role": "system", "content": "Today's date: 2025-11-22\nUser: sarah@example.com\nTo load user profile: Use REM LOOKUP \"sarah@example.com\""},
|
|
141
141
|
# {"role": "user", "content": "Previous message"},
|
|
142
142
|
# {"role": "assistant", "content": "Start of long response... [REM LOOKUP session-123-msg-1] ...end"},
|
|
143
143
|
# {"role": "user", "content": "New message"}
|
|
@@ -191,8 +191,16 @@ class ContextBuilder:
|
|
|
191
191
|
context_hint += "\n\nNo user context available (anonymous or new user)."
|
|
192
192
|
elif context.user_id:
|
|
193
193
|
# On-demand: Provide hint to use REM LOOKUP
|
|
194
|
-
|
|
195
|
-
|
|
194
|
+
# user_id is UUID5 hash of email - load user to get email for display and LOOKUP
|
|
195
|
+
user_repo = Repository(User, "users", db=db)
|
|
196
|
+
user = await user_repo.get_by_id(context.user_id, context.tenant_id)
|
|
197
|
+
if user and user.email:
|
|
198
|
+
# Show email (more useful than UUID) and LOOKUP hint
|
|
199
|
+
context_hint += f"\n\nUser: {user.email}"
|
|
200
|
+
context_hint += f"\nTo load user profile: Use REM LOOKUP \"{user.email}\""
|
|
201
|
+
else:
|
|
202
|
+
context_hint += f"\n\nUser ID: {context.user_id}"
|
|
203
|
+
context_hint += "\nUser profile not available."
|
|
196
204
|
|
|
197
205
|
# Add system context hint
|
|
198
206
|
messages.append(ContextMessage(role="system", content=context_hint))
|
|
@@ -209,11 +217,21 @@ class ContextBuilder:
|
|
|
209
217
|
)
|
|
210
218
|
|
|
211
219
|
# Convert to ContextMessage format
|
|
220
|
+
# For tool messages, wrap content with clear markers so the agent
|
|
221
|
+
# can see previous tool results when the prompt is concatenated
|
|
212
222
|
for msg_dict in session_history:
|
|
223
|
+
role = msg_dict["role"]
|
|
224
|
+
content = msg_dict["content"]
|
|
225
|
+
|
|
226
|
+
if role == "tool":
|
|
227
|
+
# Wrap tool results with clear markers for visibility
|
|
228
|
+
tool_name = msg_dict.get("tool_name", "unknown")
|
|
229
|
+
content = f"[TOOL RESULT: {tool_name}]\n{content}\n[/TOOL RESULT]"
|
|
230
|
+
|
|
213
231
|
messages.append(
|
|
214
232
|
ContextMessage(
|
|
215
|
-
role=
|
|
216
|
-
content=
|
|
233
|
+
role=role,
|
|
234
|
+
content=content,
|
|
217
235
|
)
|
|
218
236
|
)
|
|
219
237
|
|
|
@@ -239,6 +257,9 @@ class ContextBuilder:
|
|
|
239
257
|
"""
|
|
240
258
|
Load user profile from database and format as context.
|
|
241
259
|
|
|
260
|
+
user_id is always a UUID5 hash of email (bijection).
|
|
261
|
+
Looks up user by their id field in the database.
|
|
262
|
+
|
|
242
263
|
Returns formatted string with:
|
|
243
264
|
- User summary (generated by dreaming worker)
|
|
244
265
|
- Current projects
|
|
@@ -252,6 +273,7 @@ class ContextBuilder:
|
|
|
252
273
|
|
|
253
274
|
try:
|
|
254
275
|
user_repo = Repository(User, "users", db=db)
|
|
276
|
+
# user_id is UUID5 hash of email - look up by database id
|
|
255
277
|
user = await user_repo.get_by_id(user_id, tenant_id)
|
|
256
278
|
|
|
257
279
|
if not user:
|
|
@@ -149,12 +149,23 @@ def create_resource_tool(uri: str, usage: str = "", mcp_server: Any = None) -> T
|
|
|
149
149
|
parts = re.sub(r'_+', '_', parts).strip('_') # Clean up multiple underscores
|
|
150
150
|
func_name = f"get_{parts}"
|
|
151
151
|
|
|
152
|
+
# For parameterized URIs, append _by_{params} to avoid naming conflicts
|
|
153
|
+
# e.g., rem://agents/{name} -> get_rem_agents_by_name (distinct from get_rem_agents)
|
|
154
|
+
if template_vars:
|
|
155
|
+
param_suffix = "_by_" + "_".join(template_vars)
|
|
156
|
+
func_name = f"{func_name}{param_suffix}"
|
|
157
|
+
|
|
152
158
|
# Build description including parameter info
|
|
153
159
|
description = usage or f"Fetch {uri} resource"
|
|
154
160
|
if template_vars:
|
|
155
161
|
param_desc = ", ".join(template_vars)
|
|
156
162
|
description = f"{description}\n\nParameters: {param_desc}"
|
|
157
163
|
|
|
164
|
+
# Capture mcp_server reference at tool creation time (for closure)
|
|
165
|
+
# This ensures the correct server is used even if called later
|
|
166
|
+
_captured_mcp_server = mcp_server
|
|
167
|
+
_captured_uri = uri # Also capture URI for consistent logging
|
|
168
|
+
|
|
158
169
|
if template_vars:
|
|
159
170
|
# Template URI -> create parameterized tool
|
|
160
171
|
async def wrapper(**kwargs: Any) -> str:
|
|
@@ -162,13 +173,17 @@ def create_resource_tool(uri: str, usage: str = "", mcp_server: Any = None) -> T
|
|
|
162
173
|
import asyncio
|
|
163
174
|
import inspect
|
|
164
175
|
|
|
176
|
+
logger.debug(f"Resource tool invoked: uri={_captured_uri}, kwargs={kwargs}, mcp_server={'set' if _captured_mcp_server else 'None'}")
|
|
177
|
+
|
|
165
178
|
# Try to resolve from MCP server's resource templates first
|
|
166
|
-
if
|
|
179
|
+
if _captured_mcp_server is not None:
|
|
167
180
|
try:
|
|
168
181
|
# Get resource templates from MCP server
|
|
169
|
-
templates = await
|
|
170
|
-
|
|
171
|
-
|
|
182
|
+
templates = await _captured_mcp_server.get_resource_templates()
|
|
183
|
+
logger.debug(f"MCP server templates: {list(templates.keys())}")
|
|
184
|
+
if _captured_uri in templates:
|
|
185
|
+
template = templates[_captured_uri]
|
|
186
|
+
logger.debug(f"Found template for {_captured_uri}, calling fn with kwargs={kwargs}")
|
|
172
187
|
# Call the template's underlying function directly
|
|
173
188
|
# The fn expects the template variables as kwargs
|
|
174
189
|
fn_result = template.fn(**kwargs)
|
|
@@ -178,17 +193,22 @@ def create_resource_tool(uri: str, usage: str = "", mcp_server: Any = None) -> T
|
|
|
178
193
|
if isinstance(fn_result, str):
|
|
179
194
|
return fn_result
|
|
180
195
|
return json.dumps(fn_result, indent=2)
|
|
196
|
+
else:
|
|
197
|
+
logger.warning(f"Template {_captured_uri} not found in MCP server templates: {list(templates.keys())}")
|
|
181
198
|
except Exception as e:
|
|
182
|
-
logger.warning(f"Failed to resolve resource {
|
|
199
|
+
logger.warning(f"Failed to resolve resource {_captured_uri} from MCP server: {e}", exc_info=True)
|
|
200
|
+
else:
|
|
201
|
+
logger.warning(f"No MCP server provided for resource tool {_captured_uri}, using fallback")
|
|
183
202
|
|
|
184
203
|
# Fallback: substitute template variables and use load_resource
|
|
185
|
-
resolved_uri =
|
|
204
|
+
resolved_uri = _captured_uri
|
|
186
205
|
for var in template_vars:
|
|
187
206
|
if var in kwargs:
|
|
188
207
|
resolved_uri = resolved_uri.replace(f"{{{var}}}", str(kwargs[var]))
|
|
189
208
|
else:
|
|
190
209
|
return json.dumps({"error": f"Missing required parameter: {var}"})
|
|
191
210
|
|
|
211
|
+
logger.debug(f"Using fallback load_resource for resolved URI: {resolved_uri}")
|
|
192
212
|
from rem.api.mcp_router.resources import load_resource
|
|
193
213
|
result = await load_resource(resolved_uri)
|
|
194
214
|
if isinstance(result, str):
|
|
@@ -202,7 +222,7 @@ def create_resource_tool(uri: str, usage: str = "", mcp_server: Any = None) -> T
|
|
|
202
222
|
wrapper.__annotations__ = {var: str for var in template_vars}
|
|
203
223
|
wrapper.__annotations__['return'] = str
|
|
204
224
|
|
|
205
|
-
logger.info(f"Built parameterized resource tool: {func_name} (uri: {uri}, params: {template_vars})")
|
|
225
|
+
logger.info(f"Built parameterized resource tool: {func_name} (uri: {uri}, params: {template_vars}, mcp_server={'provided' if mcp_server else 'None'})")
|
|
206
226
|
else:
|
|
207
227
|
# Concrete URI -> no-param tool
|
|
208
228
|
async def wrapper(**kwargs: Any) -> str:
|
|
@@ -213,12 +233,16 @@ def create_resource_tool(uri: str, usage: str = "", mcp_server: Any = None) -> T
|
|
|
213
233
|
if kwargs:
|
|
214
234
|
logger.warning(f"Resource tool {func_name} called with unexpected kwargs: {list(kwargs.keys())}")
|
|
215
235
|
|
|
236
|
+
logger.debug(f"Concrete resource tool invoked: uri={_captured_uri}, mcp_server={'set' if _captured_mcp_server else 'None'}")
|
|
237
|
+
|
|
216
238
|
# Try to resolve from MCP server's resources first
|
|
217
|
-
if
|
|
239
|
+
if _captured_mcp_server is not None:
|
|
218
240
|
try:
|
|
219
|
-
resources = await
|
|
220
|
-
|
|
221
|
-
|
|
241
|
+
resources = await _captured_mcp_server.get_resources()
|
|
242
|
+
logger.debug(f"MCP server resources: {list(resources.keys())}")
|
|
243
|
+
if _captured_uri in resources:
|
|
244
|
+
resource = resources[_captured_uri]
|
|
245
|
+
logger.debug(f"Found resource for {_captured_uri}")
|
|
222
246
|
# Call the resource's underlying function
|
|
223
247
|
fn_result = resource.fn()
|
|
224
248
|
if inspect.iscoroutine(fn_result):
|
|
@@ -226,12 +250,17 @@ def create_resource_tool(uri: str, usage: str = "", mcp_server: Any = None) -> T
|
|
|
226
250
|
if isinstance(fn_result, str):
|
|
227
251
|
return fn_result
|
|
228
252
|
return json.dumps(fn_result, indent=2)
|
|
253
|
+
else:
|
|
254
|
+
logger.warning(f"Resource {_captured_uri} not found in MCP server resources: {list(resources.keys())}")
|
|
229
255
|
except Exception as e:
|
|
230
|
-
logger.warning(f"Failed to resolve resource {
|
|
256
|
+
logger.warning(f"Failed to resolve resource {_captured_uri} from MCP server: {e}", exc_info=True)
|
|
257
|
+
else:
|
|
258
|
+
logger.warning(f"No MCP server provided for resource tool {_captured_uri}, using fallback")
|
|
231
259
|
|
|
232
260
|
# Fallback to load_resource
|
|
261
|
+
logger.debug(f"Using fallback load_resource for URI: {_captured_uri}")
|
|
233
262
|
from rem.api.mcp_router.resources import load_resource
|
|
234
|
-
result = await load_resource(
|
|
263
|
+
result = await load_resource(_captured_uri)
|
|
235
264
|
if isinstance(result, str):
|
|
236
265
|
return result
|
|
237
266
|
return json.dumps(result, indent=2)
|
|
@@ -239,6 +268,6 @@ def create_resource_tool(uri: str, usage: str = "", mcp_server: Any = None) -> T
|
|
|
239
268
|
wrapper.__name__ = func_name
|
|
240
269
|
wrapper.__doc__ = description
|
|
241
270
|
|
|
242
|
-
logger.info(f"Built resource tool: {func_name} (uri: {uri})")
|
|
271
|
+
logger.info(f"Built resource tool: {func_name} (uri: {uri}, mcp_server={'provided' if mcp_server else 'None'})")
|
|
243
272
|
|
|
244
273
|
return Tool(wrapper)
|
|
@@ -96,6 +96,35 @@ TODO:
|
|
|
96
96
|
|
|
97
97
|
Priority: HIGH (blocks production scaling beyond 50 req/sec)
|
|
98
98
|
|
|
99
|
+
4. Response Format Control (structured_output enhancement):
|
|
100
|
+
- Current: structured_output is bool (True=strict schema, False=free-form text)
|
|
101
|
+
- Missing: OpenAI JSON mode (valid JSON without strict schema enforcement)
|
|
102
|
+
- Missing: Completions API support (some models only support completions, not chat)
|
|
103
|
+
|
|
104
|
+
Proposed schema field values for `structured_output`:
|
|
105
|
+
- True (default): Strict structured output using provider's native schema support
|
|
106
|
+
- False: Free-form text response (properties converted to prompt guidance)
|
|
107
|
+
- "json": JSON mode - ensures valid JSON but no schema enforcement
|
|
108
|
+
(OpenAI: response_format={"type": "json_object"})
|
|
109
|
+
- "text": Explicit free-form text (alias for False)
|
|
110
|
+
|
|
111
|
+
Implementation:
|
|
112
|
+
a) Update AgentSchemaMetadata.structured_output type:
|
|
113
|
+
structured_output: bool | Literal["json", "text"] = True
|
|
114
|
+
b) In create_agent(), handle each mode:
|
|
115
|
+
- True: Use output_type with Pydantic model (current behavior)
|
|
116
|
+
- False/"text": Convert properties to prompt guidance (current behavior)
|
|
117
|
+
- "json": Use provider's JSON mode without strict schema
|
|
118
|
+
c) Provider-specific JSON mode:
|
|
119
|
+
- OpenAI: model_settings={"response_format": {"type": "json_object"}}
|
|
120
|
+
- Anthropic: Not supported natively, use prompt guidance
|
|
121
|
+
- Others: Fallback to prompt guidance with JSON instruction
|
|
122
|
+
|
|
123
|
+
Related: Some providers (Cerebras) have completions-only models where
|
|
124
|
+
structured output isn't available. Consider model capability detection.
|
|
125
|
+
|
|
126
|
+
Priority: MEDIUM (enables more flexible output control)
|
|
127
|
+
|
|
99
128
|
Example Agent Schema:
|
|
100
129
|
{
|
|
101
130
|
"type": "object",
|
|
@@ -553,58 +582,70 @@ async def create_agent(
|
|
|
553
582
|
if agent_schema:
|
|
554
583
|
system_prompt = get_system_prompt(agent_schema)
|
|
555
584
|
metadata = get_metadata(agent_schema)
|
|
556
|
-
mcp_server_configs = [s.model_dump() for s in metadata.mcp_servers] if hasattr(metadata, 'mcp_servers') and metadata.mcp_servers else []
|
|
557
585
|
resource_configs = metadata.resources if hasattr(metadata, 'resources') else []
|
|
558
586
|
|
|
587
|
+
# DEPRECATED: mcp_servers in agent schemas is ignored
|
|
588
|
+
# MCP servers are now always auto-detected at the application level
|
|
589
|
+
if hasattr(metadata, 'mcp_servers') and metadata.mcp_servers:
|
|
590
|
+
logger.warning(
|
|
591
|
+
"DEPRECATED: mcp_servers in agent schema is ignored. "
|
|
592
|
+
"MCP servers are auto-detected from tools.mcp_server module. "
|
|
593
|
+
"Remove mcp_servers from your agent schema."
|
|
594
|
+
)
|
|
595
|
+
|
|
559
596
|
if metadata.system_prompt:
|
|
560
597
|
logger.debug("Using custom system_prompt from json_schema_extra")
|
|
561
598
|
else:
|
|
562
599
|
system_prompt = ""
|
|
563
600
|
metadata = None
|
|
564
|
-
mcp_server_configs = []
|
|
565
601
|
resource_configs = []
|
|
566
602
|
|
|
567
|
-
# Auto-detect
|
|
568
|
-
#
|
|
603
|
+
# Auto-detect MCP server at application level
|
|
604
|
+
# Convention: tools/mcp_server.py exports `mcp` FastMCP instance
|
|
605
|
+
# Falls back to REM's built-in MCP server if no local server found
|
|
606
|
+
import importlib
|
|
607
|
+
import os
|
|
608
|
+
import sys
|
|
609
|
+
|
|
610
|
+
# Ensure current working directory is in sys.path for local imports
|
|
611
|
+
cwd = os.getcwd()
|
|
612
|
+
if cwd not in sys.path:
|
|
613
|
+
sys.path.insert(0, cwd)
|
|
614
|
+
|
|
615
|
+
mcp_server_configs = []
|
|
616
|
+
auto_detect_modules = [
|
|
617
|
+
"tools.mcp_server", # Convention: tools/mcp_server.py
|
|
618
|
+
"mcp_server", # Alternative: mcp_server.py in root
|
|
619
|
+
]
|
|
620
|
+
for module_path in auto_detect_modules:
|
|
621
|
+
try:
|
|
622
|
+
mcp_module = importlib.import_module(module_path)
|
|
623
|
+
if hasattr(mcp_module, "mcp"):
|
|
624
|
+
logger.info(f"Auto-detected local MCP server: {module_path}")
|
|
625
|
+
mcp_server_configs = [{"type": "local", "module": module_path, "id": "auto-detected"}]
|
|
626
|
+
break
|
|
627
|
+
except ImportError as e:
|
|
628
|
+
logger.debug(f"MCP server auto-detect: {module_path} not found ({e})")
|
|
629
|
+
continue
|
|
630
|
+
except Exception as e:
|
|
631
|
+
logger.warning(f"MCP server auto-detect: {module_path} failed to load: {e}")
|
|
632
|
+
continue
|
|
633
|
+
|
|
634
|
+
# Fall back to REM's default MCP server if no local server found
|
|
569
635
|
if not mcp_server_configs:
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
import sys
|
|
573
|
-
|
|
574
|
-
# Ensure current working directory is in sys.path for local imports
|
|
575
|
-
cwd = os.getcwd()
|
|
576
|
-
if cwd not in sys.path:
|
|
577
|
-
sys.path.insert(0, cwd)
|
|
578
|
-
|
|
579
|
-
# Try common local MCP server module paths first
|
|
580
|
-
auto_detect_modules = [
|
|
581
|
-
"tools.mcp_server", # Convention: tools/mcp_server.py
|
|
582
|
-
"mcp_server", # Alternative: mcp_server.py in root
|
|
583
|
-
]
|
|
584
|
-
for module_path in auto_detect_modules:
|
|
585
|
-
try:
|
|
586
|
-
mcp_module = importlib.import_module(module_path)
|
|
587
|
-
if hasattr(mcp_module, "mcp"):
|
|
588
|
-
logger.info(f"Auto-detected local MCP server: {module_path}")
|
|
589
|
-
mcp_server_configs = [{"type": "local", "module": module_path, "id": "auto-detected"}]
|
|
590
|
-
break
|
|
591
|
-
except ImportError:
|
|
592
|
-
continue
|
|
593
|
-
|
|
594
|
-
# Fall back to REM's default MCP server if no local server found
|
|
595
|
-
if not mcp_server_configs:
|
|
596
|
-
logger.debug("No local MCP server found, using REM default")
|
|
597
|
-
mcp_server_configs = [{"type": "local", "module": "rem.mcp_server", "id": "rem"}]
|
|
636
|
+
logger.info("No local MCP server found, using REM default (rem.mcp_server)")
|
|
637
|
+
mcp_server_configs = [{"type": "local", "module": "rem.mcp_server", "id": "rem"}]
|
|
598
638
|
|
|
599
639
|
# Extract temperature and max_iterations from schema metadata (with fallback to settings defaults)
|
|
600
640
|
if metadata:
|
|
601
641
|
temperature = metadata.override_temperature if metadata.override_temperature is not None else settings.llm.default_temperature
|
|
602
642
|
max_iterations = metadata.override_max_iterations if metadata.override_max_iterations is not None else settings.llm.default_max_iterations
|
|
603
|
-
|
|
643
|
+
# Use schema-level structured_output if set, otherwise fall back to global setting
|
|
644
|
+
use_structured_output = metadata.structured_output if metadata.structured_output is not None else settings.llm.default_structured_output
|
|
604
645
|
else:
|
|
605
646
|
temperature = settings.llm.default_temperature
|
|
606
647
|
max_iterations = settings.llm.default_max_iterations
|
|
607
|
-
use_structured_output =
|
|
648
|
+
use_structured_output = settings.llm.default_structured_output
|
|
608
649
|
|
|
609
650
|
# Build list of tools - start with built-in tools
|
|
610
651
|
tools = _get_builtin_tools()
|
|
@@ -727,6 +768,7 @@ async def create_agent(
|
|
|
727
768
|
|
|
728
769
|
# Create tools from collected resource URIs
|
|
729
770
|
# Pass the loaded MCP server so resources can be resolved from it
|
|
771
|
+
logger.info(f"Creating {len(resource_uris)} resource tools with mcp_server={'set' if loaded_mcp_server else 'None'}")
|
|
730
772
|
for uri, usage in resource_uris:
|
|
731
773
|
resource_tool = create_resource_tool(uri, usage, mcp_server=loaded_mcp_server)
|
|
732
774
|
tools.append(resource_tool)
|
|
@@ -215,12 +215,13 @@ class AgentSchemaMetadata(BaseModel):
|
|
|
215
215
|
)
|
|
216
216
|
|
|
217
217
|
# Structured output toggle
|
|
218
|
-
structured_output: bool = Field(
|
|
219
|
-
default=
|
|
218
|
+
structured_output: bool | None = Field(
|
|
219
|
+
default=None,
|
|
220
220
|
description=(
|
|
221
221
|
"Whether to enforce structured JSON output. "
|
|
222
222
|
"When False, the agent produces free-form text and schema properties "
|
|
223
|
-
"are converted to prompt guidance instead.
|
|
223
|
+
"are converted to prompt guidance instead. "
|
|
224
|
+
"Default: None (uses LLM__DEFAULT_STRUCTURED_OUTPUT setting, which defaults to False)."
|
|
224
225
|
),
|
|
225
226
|
)
|
|
226
227
|
|
|
@@ -3,6 +3,17 @@ REM tools for agent execution (CLI and API compatible).
|
|
|
3
3
|
|
|
4
4
|
These tools work in both CLI and API contexts by initializing services on-demand.
|
|
5
5
|
They wrap the service layer directly, not MCP tools.
|
|
6
|
+
|
|
7
|
+
Core tables (always available):
|
|
8
|
+
- resources: Documents, content chunks, artifacts
|
|
9
|
+
- moments: Temporal narratives extracted from resources (usually user-specific)
|
|
10
|
+
- ontologies: Domain entities with semantic links for further lookups (like a wiki)
|
|
11
|
+
|
|
12
|
+
Other tables (may vary by deployment):
|
|
13
|
+
- users, sessions, messages, files, schemas, feedbacks
|
|
14
|
+
|
|
15
|
+
Note: Not all tables are populated in all systems. Use FUZZY or SEARCH
|
|
16
|
+
to discover what data exists before assuming specific tables have content.
|
|
6
17
|
"""
|
|
7
18
|
|
|
8
19
|
from typing import Any, Literal, cast
|
|
@@ -322,7 +322,7 @@ def create_app() -> FastAPI:
|
|
|
322
322
|
|
|
323
323
|
app.add_middleware(
|
|
324
324
|
AuthMiddleware,
|
|
325
|
-
protected_paths=["/api/v1"],
|
|
325
|
+
protected_paths=["/api/v1", "/api/admin"],
|
|
326
326
|
excluded_paths=["/api/auth", "/api/dev", "/api/v1/mcp/auth", "/api/v1/slack"],
|
|
327
327
|
# Allow anonymous when auth is disabled, otherwise use setting
|
|
328
328
|
allow_anonymous=(not settings.auth.enabled) or settings.auth.allow_anonymous,
|