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.

Files changed (782) hide show
  1. remdb-0.3.217/.githooks/pre-commit +25 -0
  2. remdb-0.3.217/.githooks/pre-push +43 -0
  3. remdb-0.3.217/.kreuzberg/mime/0b34bcd318001ead.msgpack +1 -0
  4. remdb-0.3.217/.kreuzberg/mime/2279f944d9ee9966.msgpack +1 -0
  5. remdb-0.3.217/.kreuzberg/mime/23c2221c537a5fc7.msgpack +1 -0
  6. remdb-0.3.217/.kreuzberg/mime/245d4933e8c1b195.msgpack +1 -0
  7. remdb-0.3.217/.kreuzberg/mime/256e0b513c55383d.msgpack +1 -0
  8. remdb-0.3.217/.kreuzberg/mime/333c03f53d37ed0e.msgpack +1 -0
  9. remdb-0.3.217/.kreuzberg/mime/3a11309ab5c2f4f1.msgpack +1 -0
  10. remdb-0.3.217/.kreuzberg/mime/454e06d91c1f7da3.msgpack +1 -0
  11. remdb-0.3.217/.kreuzberg/mime/5bcfea3bfc53067c.msgpack +1 -0
  12. remdb-0.3.217/.kreuzberg/mime/7b3e640c001c4894.msgpack +1 -0
  13. remdb-0.3.217/.kreuzberg/mime/8225fe0751545bd9.msgpack +1 -0
  14. remdb-0.3.217/.kreuzberg/mime/9a6b60a4833997e2.msgpack +1 -0
  15. remdb-0.3.217/.kreuzberg/mime/a1da34b0466f625e.msgpack +1 -0
  16. remdb-0.3.217/.kreuzberg/mime/ac4f98ccc34fc6c0.msgpack +1 -0
  17. remdb-0.3.217/.kreuzberg/mime/bdb1282b79539c3a.msgpack +1 -0
  18. remdb-0.3.217/.kreuzberg/mime/c1f16f2de51197de.msgpack +1 -0
  19. remdb-0.3.217/.kreuzberg/mime/e8a4b78d213a80ec.msgpack +1 -0
  20. remdb-0.3.217/.kreuzberg/mime/ec70e75eec5d6198.msgpack +1 -0
  21. remdb-0.3.217/.kreuzberg/mime/f0fa2893c7713bc6.msgpack +1 -0
  22. remdb-0.3.217/.kreuzberg/mime/f6624f69041cc763.msgpack +1 -0
  23. {remdb-0.3.148 → remdb-0.3.217}/PKG-INFO +1 -1
  24. {remdb-0.3.148 → remdb-0.3.217}/pyproject.toml +1 -1
  25. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/README.md +262 -2
  26. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/agents/__init__.py +16 -0
  27. remdb-0.3.217/src/rem/agentic/agents/agent_manager.py +311 -0
  28. remdb-0.3.217/src/rem/agentic/context.py +425 -0
  29. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/context_builder.py +48 -11
  30. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/mcp/tool_wrapper.py +43 -14
  31. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/providers/pydantic_ai.py +76 -34
  32. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/schema.py +4 -3
  33. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/tools/rem_tools.py +11 -0
  34. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/deps.py +3 -5
  35. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/main.py +23 -4
  36. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/mcp_router/resources.py +75 -14
  37. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/mcp_router/server.py +32 -23
  38. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/mcp_router/tools.py +685 -155
  39. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/middleware/tracking.py +5 -5
  40. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/auth.py +237 -8
  41. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/completions.py +71 -21
  42. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/sse_events.py +7 -3
  43. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/streaming.py +362 -41
  44. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/messages.py +141 -45
  45. remdb-0.3.217/src/rem/auth/jwt.py +367 -0
  46. {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/middleware.py +91 -37
  47. {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/providers/email.py +16 -7
  48. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/README.md +62 -0
  49. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/ask.py +1 -1
  50. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/db.py +148 -70
  51. remdb-0.3.217/src/rem/cli/commands/process.py +380 -0
  52. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/__init__.py +4 -0
  53. remdb-0.3.217/src/rem/models/entities/ontology.py +181 -0
  54. remdb-0.3.217/src/rem/models/entities/subscriber.py +175 -0
  55. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/user.py +1 -0
  56. remdb-0.3.217/src/rem/schemas/agents/core/agent-builder.yaml +235 -0
  57. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/content/service.py +22 -8
  58. remdb-0.3.217/src/rem/services/email/service.py +522 -0
  59. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/embeddings/worker.py +26 -12
  60. remdb-0.3.217/src/rem/services/postgres/__init__.py +49 -0
  61. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/diff_service.py +57 -5
  62. remdb-0.3.217/src/rem/services/postgres/programmable_diff_service.py +635 -0
  63. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/pydantic_to_sqlalchemy.py +2 -2
  64. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/register_type.py +12 -11
  65. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/repository.py +51 -29
  66. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/schema_generator.py +5 -5
  67. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/sql_builder.py +6 -5
  68. remdb-0.3.217/src/rem/services/session/__init__.py +13 -0
  69. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/session/compression.py +153 -52
  70. remdb-0.3.217/src/rem/services/session/pydantic_messages.py +276 -0
  71. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/session/reload.py +14 -7
  72. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/user_service.py +41 -9
  73. {remdb-0.3.148 → remdb-0.3.217}/src/rem/settings.py +136 -1
  74. {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/background_indexes.sql +5 -0
  75. {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/migrations/001_install.sql +158 -11
  76. {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/migrations/002_install_models.sql +160 -132
  77. {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/migrations/004_cache_system.sql +7 -275
  78. remdb-0.3.217/src/rem/sql/migrations/migrate_session_id_to_uuid.sql +45 -0
  79. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/model_helpers.py +101 -0
  80. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/schema_loader.py +51 -13
  81. remdb-0.3.217/test_resources.py +29 -0
  82. remdb-0.3.217/tests/data/schemas/agents/test_orchestrator.yaml +29 -0
  83. remdb-0.3.217/tests/data/schemas/agents/test_responder.yaml +21 -0
  84. remdb-0.3.217/tests/integration/conftest.py +29 -0
  85. remdb-0.3.217/tests/integration/quick_delegation_test.py +88 -0
  86. remdb-0.3.217/tests/integration/test_actual_streaming_save.py +91 -0
  87. remdb-0.3.217/tests/integration/test_agent_delegation_streaming.py +267 -0
  88. remdb-0.3.217/tests/integration/test_ask_agent_streaming.py +279 -0
  89. remdb-0.3.217/tests/integration/test_early_stream_close.py +91 -0
  90. remdb-0.3.217/tests/integration/test_email_auth.py +191 -0
  91. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_embedding_worker.py +19 -5
  92. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_embeddings_e2e.py +6 -3
  93. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_graph_traversal.py +11 -9
  94. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_mcp_tools_layer.py +55 -35
  95. remdb-0.3.217/tests/integration/test_messages_sessions_access.py +335 -0
  96. remdb-0.3.217/tests/integration/test_multi_agent.py +521 -0
  97. remdb-0.3.217/tests/integration/test_nested_agent_save.py +126 -0
  98. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_schema_introspection.py +1 -1
  99. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_session_management.py +3 -3
  100. remdb-0.3.217/tests/integration/test_streaming_response.py +83 -0
  101. remdb-0.3.217/tests/integration/test_streaming_save.py +150 -0
  102. remdb-0.3.217/tests/integration/test_text_response_extraction.py +189 -0
  103. remdb-0.3.217/tests/integration/test_user_lookup_by_email.py +269 -0
  104. remdb-0.3.217/tests/test_agent_manager.py +175 -0
  105. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/test_schema.py +1 -1
  106. remdb-0.3.217/tests/unit/services/test_session_compression.py +273 -0
  107. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_api_key_auth.py +72 -0
  108. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_resource_tools.py +3 -3
  109. remdb-0.3.148/src/rem/agentic/context.py +0 -174
  110. remdb-0.3.148/src/rem/cli/commands/process.py +0 -252
  111. remdb-0.3.148/src/rem/models/entities/ontology.py +0 -191
  112. remdb-0.3.148/src/rem/services/email/service.py +0 -399
  113. remdb-0.3.148/src/rem/services/postgres/__init__.py +0 -24
  114. remdb-0.3.148/src/rem/services/session/__init__.py +0 -6
  115. remdb-0.3.148/tests/integration/run_rem_agent_eval.py +0 -375
  116. remdb-0.3.148/tests/integration/test_merge_strategies_demo.py +0 -232
  117. remdb-0.3.148/tests/integration/test_shared_sessions.py +0 -734
  118. {remdb-0.3.148 → remdb-0.3.217}/.claude/archive/PUBLISH.md +0 -0
  119. {remdb-0.3.148 → remdb-0.3.217}/.claude/archive/QUICKSTART.md +0 -0
  120. {remdb-0.3.148 → remdb-0.3.217}/.claude/archive/publish.sh +0 -0
  121. {remdb-0.3.148 → remdb-0.3.217}/.claude/settings.local.json +0 -0
  122. {remdb-0.3.148 → remdb-0.3.217}/.dockerignore +0 -0
  123. {remdb-0.3.148 → remdb-0.3.217}/.env.example +0 -0
  124. {remdb-0.3.148 → remdb-0.3.217}/.experiments/README.md +0 -0
  125. {remdb-0.3.148 → remdb-0.3.217}/.experiments/RUN_ON_CLUSTER.md +0 -0
  126. {remdb-0.3.148 → remdb-0.3.217}/.experiments/TESTING_GUIDE.md +0 -0
  127. {remdb-0.3.148 → remdb-0.3.217}/.experiments/test-phoenix-integration.sh +0 -0
  128. {remdb-0.3.148 → remdb-0.3.217}/.gitignore +0 -0
  129. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/039976f3b4dc7549.msgpack +0 -0
  130. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/045e65492b634d11.msgpack +0 -0
  131. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/07f5cd0e3fb1d287.msgpack +0 -0
  132. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/08f4ae339838b804.msgpack +0 -0
  133. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/0a64e58ae1289686.msgpack +0 -0
  134. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/0da06e67dd284834.msgpack +0 -0
  135. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/0e200bfe2ea523f2.msgpack +0 -0
  136. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/10b1925cb6007390.msgpack +0 -0
  137. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/11c55125d2be1895.msgpack +0 -0
  138. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/12dd62bbe8ee9b6a.msgpack +0 -0
  139. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/18f78825b8e302a8.msgpack +0 -0
  140. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/19a7ff44501eb3f9.msgpack +0 -0
  141. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/1c9cec1b6f266e8d.msgpack +0 -0
  142. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/1db0e7d4ac2443af.msgpack +0 -0
  143. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/1f32d592b118d944.msgpack +0 -0
  144. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/20db05a60f4c6ce3.msgpack +0 -0
  145. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/220746359cef9884.msgpack +0 -0
  146. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/24034098fd444b39.msgpack +0 -0
  147. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2470f3a5e2d1953b.msgpack +0 -0
  148. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/24acc2df261ae549.msgpack +0 -0
  149. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/26a8ed0cdfc0ccab.msgpack +0 -0
  150. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/28e3c2bf25dfc659.msgpack +0 -0
  151. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/295a37ef869b0a49.msgpack +0 -0
  152. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2a6f58009e01ad65.msgpack +0 -0
  153. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2ab7ae3b2e42644e.msgpack +0 -0
  154. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2b24548c2f91f8b9.msgpack +0 -0
  155. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2bb63e6235d19b40.msgpack +0 -0
  156. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2c74a0f17cde1b0c.msgpack +0 -0
  157. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2d728912eb223a33.msgpack +0 -0
  158. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2de80149b410a676.msgpack +0 -0
  159. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/2e1001cbed04103c.msgpack +0 -0
  160. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/32d99ccf71d10a38.msgpack +0 -0
  161. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/3353ae12a176a9bd.msgpack +0 -0
  162. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/34f1cfc7a58e8b0c.msgpack +0 -0
  163. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/3c5bd974fb83b573.msgpack +0 -0
  164. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/3ca9da43dd834bca.msgpack +0 -0
  165. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/3e9db2b8a87873c7.msgpack +0 -0
  166. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/3ff1b430e0b510d5.msgpack +0 -0
  167. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/4035607526c8600d.msgpack +0 -0
  168. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/40f0415d564cb996.msgpack +0 -0
  169. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/4388f8ee095c9ed8.msgpack +0 -0
  170. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/439f422b7f8dc467.msgpack +0 -0
  171. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/452c56ffd625931f.msgpack +0 -0
  172. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/45ee850e300157c8.msgpack +0 -0
  173. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/45f79b5f90a07f0e.msgpack +0 -0
  174. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/487e56b12d123968.msgpack +0 -0
  175. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/49be62bf170de12a.msgpack +0 -0
  176. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/4b3e165ec4ba87d0.msgpack +0 -0
  177. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/505ff13d9ac8f006.msgpack +0 -0
  178. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/51e81cbe7899e310.msgpack +0 -0
  179. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/537dea93b57ffce5.msgpack +0 -0
  180. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/56a9f1cd9ec05384.msgpack +0 -0
  181. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/56bf449feab17e6d.msgpack +0 -0
  182. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/57ab5fe18c74538b.msgpack +0 -0
  183. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/5a11f436d88e89cd.msgpack +0 -0
  184. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/5b10dca1c6db6714.msgpack +0 -0
  185. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/5eb63bbe412735a4.msgpack +0 -0
  186. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/5ebca8549bb3ff2b.msgpack +0 -0
  187. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/5fef074c57dd118f.msgpack +0 -0
  188. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/60f343229f836ab6.msgpack +0 -0
  189. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6153f83bf3713b32.msgpack +0 -0
  190. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6488134e7b6dd403.msgpack +0 -0
  191. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/68e7b00767be2e16.msgpack +0 -0
  192. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6afac5499ef0a938.msgpack +0 -0
  193. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6bd93d4fd4cc3893.msgpack +0 -0
  194. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6defbba8bfc76983.msgpack +0 -0
  195. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6e37f5165f71513b.msgpack +0 -0
  196. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6f9130d5f4db8b28.msgpack +0 -0
  197. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/6fc0d79c16c59de5.msgpack +0 -0
  198. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/774b8c209528323e.msgpack +0 -0
  199. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/78c509bc3a9d93c4.msgpack +0 -0
  200. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/798017037907ab5f.msgpack +0 -0
  201. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/7a4fd9fd84ae6899.msgpack +0 -0
  202. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/7b094993adee6e1a.msgpack +0 -0
  203. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/7c3ad418912e7c09.msgpack +0 -0
  204. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/7f630276be2a1503.msgpack +0 -0
  205. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/80fd68e8a4ac6556.msgpack +0 -0
  206. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/819aabcfdf1334af.msgpack +0 -0
  207. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/81ea65c652232174.msgpack +0 -0
  208. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/84c4f70ba7616566.msgpack +0 -0
  209. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/856e8ba75c4d220e.msgpack +0 -0
  210. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/8cace0ec228b43d6.msgpack +0 -0
  211. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/8d1ecc30d7d58b41.msgpack +0 -0
  212. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/8e2e4ab7c05925fa.msgpack +0 -0
  213. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/8e89a980bc3b92d8.msgpack +0 -0
  214. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/8f6a9b01f15883f5.msgpack +0 -0
  215. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9091b9d61e026046.msgpack +0 -0
  216. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/927a028cf723c70d.msgpack +0 -0
  217. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/94bda8f2cabc1358.msgpack +0 -0
  218. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/95313ccec52beb53.msgpack +0 -0
  219. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/954fee40bb61432b.msgpack +0 -0
  220. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9592cc24f2bf0d77.msgpack +0 -0
  221. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/967396ed95832197.msgpack +0 -0
  222. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9804f3b02bf98e83.msgpack +0 -0
  223. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9936890e55f094f3.msgpack +0 -0
  224. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/99405cab6cc35283.msgpack +0 -0
  225. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/99e3da57a007bc59.msgpack +0 -0
  226. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/99f1579d6a6790ad.msgpack +0 -0
  227. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9c265a028ee05977.msgpack +0 -0
  228. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9f02e484a5feb3af.msgpack +0 -0
  229. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/9fd81ffc0b3282f8.msgpack +0 -0
  230. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a0d60cff1e5950a6.msgpack +0 -0
  231. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a2bcfb3e4cf75d71.msgpack +0 -0
  232. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a3fd1a45a0ef02f1.msgpack +0 -0
  233. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a72acced3b5f0c28.msgpack +0 -0
  234. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a78fa3051259d29c.msgpack +0 -0
  235. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/a964045be65be2d2.msgpack +0 -0
  236. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ae8bc0c15954a96a.msgpack +0 -0
  237. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/af05b5754cd245b5.msgpack +0 -0
  238. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/af28c894e94dc85c.msgpack +0 -0
  239. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b0a26c1396c336b2.msgpack +0 -0
  240. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b2b5204d4dfab9dc.msgpack +0 -0
  241. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b2f8df0bdc713008.msgpack +0 -0
  242. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b361fc308a3b9ab1.msgpack +0 -0
  243. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b374846290238cd1.msgpack +0 -0
  244. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b4b163b746d0aa53.msgpack +0 -0
  245. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b68845f6e8da9be3.msgpack +0 -0
  246. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b7e677bf8412e9bd.msgpack +0 -0
  247. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/b99ba32d31caa65e.msgpack +0 -0
  248. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/bc02d7c24ec8eccc.msgpack +0 -0
  249. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/bc1a967be3c37e18.msgpack +0 -0
  250. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/bc89d1801e46fb3c.msgpack +0 -0
  251. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/bce873a224061155.msgpack +0 -0
  252. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/bea4de84b22aebbc.msgpack +0 -0
  253. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c5f723dcb1ff4b6f.msgpack +0 -0
  254. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c6ca46f28d7798dd.msgpack +0 -0
  255. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c6e2f4ede9282c2f.msgpack +0 -0
  256. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c761de11e901384a.msgpack +0 -0
  257. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c99399d1889fa84c.msgpack +0 -0
  258. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/c9fd297a955f2355.msgpack +0 -0
  259. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ca9a80b78b7aa22c.msgpack +0 -0
  260. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/cb9503b8979b185d.msgpack +0 -0
  261. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/cbc6cfb0a51ab6bb.msgpack +0 -0
  262. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/cc3bda1ed2e95150.msgpack +0 -0
  263. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ceb98745ab5dbe70.msgpack +0 -0
  264. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/d1df948b17e4d9fc.msgpack +0 -0
  265. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/d1e1e212112ab926.msgpack +0 -0
  266. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/d4b766742cf2328a.msgpack +0 -0
  267. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/d93262cc2f01da93.msgpack +0 -0
  268. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/d977ad06778acf8d.msgpack +0 -0
  269. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/da9376a352a900b8.msgpack +0 -0
  270. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/db2816895dd01979.msgpack +0 -0
  271. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/db3a782c367dbe28.msgpack +0 -0
  272. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/db825a17acae232c.msgpack +0 -0
  273. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/dc96bd8d8ad04ee4.msgpack +0 -0
  274. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/dd1562878ff3c0f5.msgpack +0 -0
  275. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/de117be85702ebbc.msgpack +0 -0
  276. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/e3aafc52b94d322c.msgpack +0 -0
  277. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/e53a6e77d7808ee8.msgpack +0 -0
  278. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/e7dc452a2aae9b10.msgpack +0 -0
  279. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ebf2fcb04221173e.msgpack +0 -0
  280. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ebf527595602c7cc.msgpack +0 -0
  281. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/ed6a8410124b956b.msgpack +0 -0
  282. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/f1801152a72fbdf0.msgpack +0 -0
  283. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/f6fe984552a62891.msgpack +0 -0
  284. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/f81bbef279fc5018.msgpack +0 -0
  285. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/f975369ecf8cfe1b.msgpack +0 -0
  286. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/mime/fd21c48c0c429b77.msgpack +0 -0
  287. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0354796dc060829e.msgpack +0 -0
  288. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/039f9af1f7851836.msgpack +0 -0
  289. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/05e117af5b509bae.msgpack +0 -0
  290. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0bc34e3949fbef01.msgpack +0 -0
  291. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0ce495589c7221d3.msgpack +0 -0
  292. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0dd1cda742544db1.msgpack +0 -0
  293. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0eba31912f25f3eb.msgpack +0 -0
  294. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0f2703145ac02172.msgpack +0 -0
  295. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0fa09530ccf28805.msgpack +0 -0
  296. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/0fd8e540615171e8.msgpack +0 -0
  297. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/101ff2c4997376a9.msgpack +0 -0
  298. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/12c490c06def9488.msgpack +0 -0
  299. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/18257c152bba13a6.msgpack +0 -0
  300. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/1d4a6a418d2b6a64.msgpack +0 -0
  301. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/1e61d3c782893a54.msgpack +0 -0
  302. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/1fc92f87c93d4fd9.msgpack +0 -0
  303. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/2c9de54bccd13e11.msgpack +0 -0
  304. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/2f3ea5c1badef128.msgpack +0 -0
  305. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/32aa8c660cf91963.msgpack +0 -0
  306. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/35111034d5ad26a6.msgpack +0 -0
  307. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/352eb0c7f720c196.msgpack +0 -0
  308. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/3a2e224daffb8e3d.msgpack +0 -0
  309. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/3ee772a67521e170.msgpack +0 -0
  310. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/401e93fa320273da.msgpack +0 -0
  311. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/40d9b4294628036d.msgpack +0 -0
  312. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/44592db880e5ec3f.msgpack +0 -0
  313. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/45870b434cfe0c85.msgpack +0 -0
  314. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/458943c95381e6de.msgpack +0 -0
  315. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/4ca27bb3cae67ad6.msgpack +0 -0
  316. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/4e0d19bea7253cc8.msgpack +0 -0
  317. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/4f02317672f3198b.msgpack +0 -0
  318. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/56a98d6dbd85ebed.msgpack +0 -0
  319. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/5d6b31c824d8741e.msgpack +0 -0
  320. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/5f75509e9ed27170.msgpack +0 -0
  321. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/5fcfe11a675bac8b.msgpack +0 -0
  322. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/61b8b2fc9077f91a.msgpack +0 -0
  323. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/642c92672daf5c43.msgpack +0 -0
  324. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/655ff32e6cd550bc.msgpack +0 -0
  325. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/65bc24178c843052.msgpack +0 -0
  326. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/66cd62510980471d.msgpack +0 -0
  327. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/681c1dd84a2bdf26.msgpack +0 -0
  328. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/6838fe47e511b2b8.msgpack +0 -0
  329. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/6a609539ed167213.msgpack +0 -0
  330. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/74b6b71e76efb9c9.msgpack +0 -0
  331. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/75e719c76477d44f.msgpack +0 -0
  332. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/77e0e879c2c95195.msgpack +0 -0
  333. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7a15ef0ba4aa5660.msgpack +0 -0
  334. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7a9dd710389dde99.msgpack +0 -0
  335. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7b783286f80ab872.msgpack +0 -0
  336. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7d1298c12634bc16.msgpack +0 -0
  337. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7ddf2b8e4c6cb2e3.msgpack +0 -0
  338. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/7fc2229fcb868522.msgpack +0 -0
  339. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/85abdb138905726a.msgpack +0 -0
  340. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/884e41282eb896c5.msgpack +0 -0
  341. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8a703994c30b19ea.msgpack +0 -0
  342. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8aca0021ebe63f8e.msgpack +0 -0
  343. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8bc107890e1ab320.msgpack +0 -0
  344. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8c1a66ea86c98f76.msgpack +0 -0
  345. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8dd5ac3207b6ca3b.msgpack +0 -0
  346. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/8f898c00eea3a93b.msgpack +0 -0
  347. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/931cbc8a4cbebf70.msgpack +0 -0
  348. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/932804c1aff4d044.msgpack +0 -0
  349. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/94b151c44f8a3588.msgpack +0 -0
  350. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/94ce2189385c970f.msgpack +0 -0
  351. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/94fa736d741d63be.msgpack +0 -0
  352. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/95bd2009772c07fd.msgpack +0 -0
  353. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/95f748fee80393ef.msgpack +0 -0
  354. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/9b1e26a55ef34ee9.msgpack +0 -0
  355. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/9f3159c9912586db.msgpack +0 -0
  356. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/a17c34748d867e85.msgpack +0 -0
  357. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/a2ca0018b46feabd.msgpack +0 -0
  358. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/a60b9031cf48ebba.msgpack +0 -0
  359. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/a9be790d1f0ae7ec.msgpack +0 -0
  360. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ac4d6823c4034fe6.msgpack +0 -0
  361. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ad80625c2fe055e2.msgpack +0 -0
  362. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/b102691e3c3e4cae.msgpack +0 -0
  363. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/b34027c96f8daa30.msgpack +0 -0
  364. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/b639b463e04459db.msgpack +0 -0
  365. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/b7e540f21b7f0271.msgpack +0 -0
  366. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ba460ba22b61b3ac.msgpack +0 -0
  367. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ba7499ca4c58ff94.msgpack +0 -0
  368. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/be2d027b571e9344.msgpack +0 -0
  369. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c1fff30850bb8b6f.msgpack +0 -0
  370. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c3889a8993fc490d.msgpack +0 -0
  371. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c51c4fa6e6b83f7e.msgpack +0 -0
  372. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c57ca30ea53e2d68.msgpack +0 -0
  373. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c64c433f4452d82a.msgpack +0 -0
  374. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c91739ca8dcc39ea.msgpack +0 -0
  375. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c91d5e81eba0d3c9.msgpack +0 -0
  376. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/c9fecad2b9f0357c.msgpack +0 -0
  377. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/cb7fab9ab7b8c520.msgpack +0 -0
  378. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/cbbaeea4c7d24156.msgpack +0 -0
  379. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/cc7dd2a0003c03d8.msgpack +0 -0
  380. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ce64ddc6701623a7.msgpack +0 -0
  381. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/d19b01ce83c8c71a.msgpack +0 -0
  382. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/d5aae4af1fe94a3a.msgpack +0 -0
  383. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/d5c47dfe60be1592.msgpack +0 -0
  384. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/d7eef627315eeab2.msgpack +0 -0
  385. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/d81cb4d0b47db4ae.msgpack +0 -0
  386. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/deed4c82c27e2b5d.msgpack +0 -0
  387. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/df1c0ed33adf634d.msgpack +0 -0
  388. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/e1c2af52b798715b.msgpack +0 -0
  389. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/e249b7de89e07bbc.msgpack +0 -0
  390. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/e6b6c0b80707ee08.msgpack +0 -0
  391. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/e74d1c6e8e950e20.msgpack +0 -0
  392. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/e9d2da361090c228.msgpack +0 -0
  393. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/ec8c114b8a360379.msgpack +0 -0
  394. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/f1772556a9442724.msgpack +0 -0
  395. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/f4753f23f51fe441.msgpack +0 -0
  396. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/f52c654a914ee356.msgpack +0 -0
  397. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/f6187d9353655ff5.msgpack +0 -0
  398. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/f766aa4cfdca2770.msgpack +0 -0
  399. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/fabcc3a4db082252.msgpack +0 -0
  400. {remdb-0.3.148 → remdb-0.3.217}/.kreuzberg/tables/fec2d3d5372c2bcc.msgpack +0 -0
  401. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/Activate.ps1 +0 -0
  402. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/activate +0 -0
  403. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/activate-global-python-argcomplete +0 -0
  404. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/activate.csh +0 -0
  405. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/activate.fish +0 -0
  406. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/alembic +0 -0
  407. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/arize-phoenix +0 -0
  408. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/cyclopts +0 -0
  409. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/distro +0 -0
  410. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/docutils +0 -0
  411. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/dotenv +0 -0
  412. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/email_validator +0 -0
  413. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/f2py +0 -0
  414. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/fastapi +0 -0
  415. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/fastavro +0 -0
  416. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/fastmcp +0 -0
  417. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/genai-prices +0 -0
  418. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/get_gprof +0 -0
  419. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/get_objgraph +0 -0
  420. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/griffe +0 -0
  421. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/hf +0 -0
  422. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/httpx +0 -0
  423. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/hypercorn +0 -0
  424. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/inv +0 -0
  425. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/invoke +0 -0
  426. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/jp.py +0 -0
  427. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/jsonpath_ng +0 -0
  428. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/jsonschema +0 -0
  429. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/keyring +0 -0
  430. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/kreuzberg +0 -0
  431. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/logfire +0 -0
  432. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/mako-render +0 -0
  433. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/markdown-it +0 -0
  434. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/mcp +0 -0
  435. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/mpire-dashboard +0 -0
  436. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/normalizer +0 -0
  437. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/numpy-config +0 -0
  438. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/openai +0 -0
  439. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/opentelemetry-bootstrap +0 -0
  440. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/opentelemetry-instrument +0 -0
  441. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pai +0 -0
  442. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/phoenix +0 -0
  443. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pip +0 -0
  444. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pip3 +0 -0
  445. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pip3.12 +0 -0
  446. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pygmentize +0 -0
  447. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-decrypt +0 -0
  448. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-encrypt +0 -0
  449. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-keygen +0 -0
  450. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-priv2pub +0 -0
  451. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-sign +0 -0
  452. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pyrsa-verify +0 -0
  453. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pystache +0 -0
  454. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/pystache-test +0 -0
  455. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/python +0 -0
  456. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/python-argcomplete-check-easy-install-script +0 -0
  457. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/python3 +0 -0
  458. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/python3.12 +0 -0
  459. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/register-python-argcomplete +0 -0
  460. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rem +0 -0
  461. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2html +0 -0
  462. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2html4 +0 -0
  463. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2html5 +0 -0
  464. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2latex +0 -0
  465. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2man +0 -0
  466. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2odt +0 -0
  467. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2pseudoxml +0 -0
  468. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2s5 +0 -0
  469. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2xetex +0 -0
  470. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/rst2xml +0 -0
  471. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/strawberry +0 -0
  472. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/tiny-agents +0 -0
  473. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/tqdm +0 -0
  474. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/undill +0 -0
  475. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/uvicorn +0 -0
  476. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/watchfiles +0 -0
  477. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/bin/websockets +0 -0
  478. {remdb-0.3.148 → remdb-0.3.217}/.venv-test/pyvenv.cfg +0 -0
  479. {remdb-0.3.148 → remdb-0.3.217}/Dockerfile +0 -0
  480. {remdb-0.3.148 → remdb-0.3.217}/README.md +0 -0
  481. {remdb-0.3.148 → remdb-0.3.217}/Tiltfile +0 -0
  482. {remdb-0.3.148 → remdb-0.3.217}/alembic/README.md +0 -0
  483. {remdb-0.3.148 → remdb-0.3.217}/alembic/env.py +0 -0
  484. {remdb-0.3.148 → remdb-0.3.217}/alembic/script.py.mako +0 -0
  485. {remdb-0.3.148 → remdb-0.3.217}/alembic.ini +0 -0
  486. {remdb-0.3.148 → remdb-0.3.217}/dev-setup.sh +0 -0
  487. {remdb-0.3.148 → remdb-0.3.217}/docker-compose.prebuilt.yml +0 -0
  488. {remdb-0.3.148 → remdb-0.3.217}/docker-compose.test.yml +0 -0
  489. {remdb-0.3.148 → remdb-0.3.217}/docker-compose.yml +0 -0
  490. {remdb-0.3.148 → remdb-0.3.217}/src/rem/__init__.py +0 -0
  491. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/__init__.py +0 -0
  492. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/agents/README.md +0 -0
  493. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/agents/sse_simulator.py +0 -0
  494. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/llm_provider_models.py +0 -0
  495. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/mcp/__init__.py +0 -0
  496. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/otel/__init__.py +0 -0
  497. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/otel/setup.py +0 -0
  498. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/providers/phoenix.py +0 -0
  499. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/query.py +0 -0
  500. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/query_helper.py +0 -0
  501. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/serialization.py +0 -0
  502. {remdb-0.3.148 → remdb-0.3.217}/src/rem/agentic/tools/__init__.py +0 -0
  503. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/README.md +0 -0
  504. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/mcp_router/prompts.py +0 -0
  505. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/admin.py +0 -0
  506. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/__init__.py +0 -0
  507. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/json_utils.py +0 -0
  508. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/models.py +0 -0
  509. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/chat/otel_utils.py +0 -0
  510. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/dev.py +0 -0
  511. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/feedback.py +0 -0
  512. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/models.py +0 -0
  513. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/query.py +0 -0
  514. {remdb-0.3.148 → remdb-0.3.217}/src/rem/api/routers/shared_sessions.py +0 -0
  515. {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/README.md +0 -0
  516. {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/__init__.py +0 -0
  517. {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/providers/__init__.py +0 -0
  518. {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/providers/base.py +0 -0
  519. {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/providers/google.py +0 -0
  520. {remdb-0.3.148 → remdb-0.3.217}/src/rem/auth/providers/microsoft.py +0 -0
  521. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/__init__.py +0 -0
  522. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/README.md +0 -0
  523. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/__init__.py +0 -0
  524. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/cluster.py +0 -0
  525. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/configure.py +0 -0
  526. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/dreaming.py +0 -0
  527. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/experiments.py +0 -0
  528. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/mcp.py +0 -0
  529. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/scaffold.py +0 -0
  530. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/schema.py +0 -0
  531. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/serve.py +0 -0
  532. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/commands/session.py +0 -0
  533. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/dreaming.py +0 -0
  534. {remdb-0.3.148 → remdb-0.3.217}/src/rem/cli/main.py +0 -0
  535. {remdb-0.3.148 → remdb-0.3.217}/src/rem/config.py +0 -0
  536. {remdb-0.3.148 → remdb-0.3.217}/src/rem/mcp_server.py +0 -0
  537. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/__init__.py +0 -0
  538. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/core_model.py +0 -0
  539. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/engram.py +0 -0
  540. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/experiment.py +0 -0
  541. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/inline_edge.py +0 -0
  542. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/core/rem_query.py +0 -0
  543. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/domain_resource.py +0 -0
  544. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/feedback.py +0 -0
  545. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/file.py +0 -0
  546. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/image_resource.py +0 -0
  547. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/message.py +0 -0
  548. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/moment.py +0 -0
  549. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/ontology_config.py +0 -0
  550. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/resource.py +0 -0
  551. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/schema.py +0 -0
  552. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/session.py +0 -0
  553. {remdb-0.3.148 → remdb-0.3.217}/src/rem/models/entities/shared_session.py +0 -0
  554. {remdb-0.3.148 → remdb-0.3.217}/src/rem/py.typed +0 -0
  555. {remdb-0.3.148 → remdb-0.3.217}/src/rem/registry.py +0 -0
  556. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/README.md +0 -0
  557. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/__init__.py +0 -0
  558. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/README.md +0 -0
  559. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/core/moment-builder.yaml +0 -0
  560. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/core/rem-query-agent.yaml +0 -0
  561. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/core/resource-affinity-assessor.yaml +0 -0
  562. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/core/simple-assistant.yaml +0 -0
  563. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/core/user-profile-builder.yaml +0 -0
  564. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/contract-analyzer.yaml +0 -0
  565. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/contract-extractor.yaml +0 -0
  566. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/cv-parser.yaml +0 -0
  567. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/hello-world.yaml +0 -0
  568. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/query.yaml +0 -0
  569. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/simple.yaml +0 -0
  570. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/examples/test.yaml +0 -0
  571. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/agents/rem.yaml +0 -0
  572. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/hello-world/default.yaml +0 -0
  573. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/rem/faithfulness.yaml +0 -0
  574. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/rem/lookup-correctness.yaml +0 -0
  575. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/rem/retrieval-precision.yaml +0 -0
  576. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/rem/retrieval-recall.yaml +0 -0
  577. {remdb-0.3.148 → remdb-0.3.217}/src/rem/schemas/evaluators/rem/search-correctness.yaml +0 -0
  578. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/__init__.py +0 -0
  579. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/audio/INTEGRATION.md +0 -0
  580. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/audio/README.md +0 -0
  581. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/audio/__init__.py +0 -0
  582. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/audio/chunker.py +0 -0
  583. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/audio/transcriber.py +0 -0
  584. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/content/README.md +0 -0
  585. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/content/__init__.py +0 -0
  586. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/content/providers.py +0 -0
  587. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/README.md +0 -0
  588. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/__init__.py +0 -0
  589. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/affinity_service.py +0 -0
  590. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/moment_service.py +0 -0
  591. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/ontology_service.py +0 -0
  592. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/user_model_service.py +0 -0
  593. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/dreaming/utils.py +0 -0
  594. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/email/__init__.py +0 -0
  595. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/email/templates.py +0 -0
  596. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/embeddings/__init__.py +0 -0
  597. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/embeddings/api.py +0 -0
  598. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/README.md +0 -0
  599. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/__init__.py +0 -0
  600. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/examples.py +0 -0
  601. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/examples_paths.py +0 -0
  602. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/git_provider.py +0 -0
  603. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/local_provider.py +0 -0
  604. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/parsing-hooks-examples.md +0 -0
  605. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/paths.py +0 -0
  606. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/provider.py +0 -0
  607. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/s3_provider.py +0 -0
  608. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/fs/service.py +0 -0
  609. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/git/README.md +0 -0
  610. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/git/__init__.py +0 -0
  611. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/git/service.py +0 -0
  612. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/EXPERIMENT_DESIGN.md +0 -0
  613. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/README.md +0 -0
  614. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/__init__.py +0 -0
  615. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/client.py +0 -0
  616. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/config.py +0 -0
  617. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/phoenix/prompt_labels.py +0 -0
  618. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/README.md +0 -0
  619. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/migration_service.py +0 -0
  620. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/postgres/service.py +0 -0
  621. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rate_limit.py +0 -0
  622. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/README.md +0 -0
  623. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/__init__.py +0 -0
  624. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/exceptions.py +0 -0
  625. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/executor.py +0 -0
  626. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/parser.py +0 -0
  627. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/queries.py +0 -0
  628. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/query.py +0 -0
  629. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/rem/service.py +0 -0
  630. {remdb-0.3.148 → remdb-0.3.217}/src/rem/services/session/README.md +0 -0
  631. {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/migrations/003_optional_extensions.sql +0 -0
  632. {remdb-0.3.148 → remdb-0.3.217}/src/rem/sql/migrations/005_schema_update.sql +0 -0
  633. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/AGENTIC_CHUNKING.md +0 -0
  634. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/README.md +0 -0
  635. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/__init__.py +0 -0
  636. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/agentic_chunking.py +0 -0
  637. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/batch_ops.py +0 -0
  638. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/chunking.py +0 -0
  639. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/clip_embeddings.py +0 -0
  640. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/constants.py +0 -0
  641. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/date_utils.py +0 -0
  642. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/dict_utils.py +0 -0
  643. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/embeddings.py +0 -0
  644. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/examples/embeddings_example.py +0 -0
  645. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/examples/sql_types_example.py +0 -0
  646. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/files.py +0 -0
  647. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/markdown.py +0 -0
  648. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/mime_types.py +0 -0
  649. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/sql_paths.py +0 -0
  650. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/sql_types.py +0 -0
  651. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/user_id.py +0 -0
  652. {remdb-0.3.148 → remdb-0.3.217}/src/rem/utils/vision.py +0 -0
  653. {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/README.md +0 -0
  654. {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/__init__.py +0 -0
  655. {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/db_listener.py +0 -0
  656. {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/db_maintainer.py +0 -0
  657. {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/dreaming.py +0 -0
  658. {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/engram_processor.py +0 -0
  659. {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/sqs_file_processor.py +0 -0
  660. {remdb-0.3.148 → remdb-0.3.217}/src/rem/workers/unlogged_maintainer.py +0 -0
  661. {remdb-0.3.148 → remdb-0.3.217}/tests/README.md +0 -0
  662. {remdb-0.3.148 → remdb-0.3.217}/tests/__init__.py +0 -0
  663. {remdb-0.3.148 → remdb-0.3.217}/tests/conftest.py +0 -0
  664. {remdb-0.3.148 → remdb-0.3.217}/tests/data/README.md +0 -0
  665. {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/README.md +0 -0
  666. {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/SUMMARY.md +0 -0
  667. {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/generate_test_audio.py +0 -0
  668. {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/test_hq_30s.wav +0 -0
  669. {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/test_long_90s.wav +0 -0
  670. {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/test_medium_10s.wav +0 -0
  671. {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/test_short_3s.wav +0 -0
  672. {remdb-0.3.148 → remdb-0.3.217}/tests/data/audio/test_standard_30s.wav +0 -0
  673. {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/README.md +0 -0
  674. {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/annual_financial_report.pdf +0 -0
  675. {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/consulting_agreement.pdf +0 -0
  676. {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/nda_agreement.pdf +0 -0
  677. {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/sample_business_plan.pdf +0 -0
  678. {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/sample_invoice.pdf +0 -0
  679. {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/sample_research_paper.pdf +0 -0
  680. {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/sample_resume.pdf +0 -0
  681. {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/pdf/service_contract.pdf +0 -0
  682. {remdb-0.3.148 → remdb-0.3.217}/tests/data/content-examples/test.md +0 -0
  683. {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/CODE_REVIEW_FIXES.md +0 -0
  684. {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/TEST_RESULTS.md +0 -0
  685. {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/cli_verification.md +0 -0
  686. {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/database-design.md +0 -0
  687. {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/deep-learning-guide.md +0 -0
  688. {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/ml-overview.md +0 -0
  689. {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/python-best-practices.md +0 -0
  690. {remdb-0.3.148 → remdb-0.3.217}/tests/data/docs/test_summary.md +0 -0
  691. {remdb-0.3.148 → remdb-0.3.217}/tests/data/engrams/test-conversation.yaml +0 -0
  692. {remdb-0.3.148 → remdb-0.3.217}/tests/data/engrams/test-diary-entry.yaml +0 -0
  693. {remdb-0.3.148 → remdb-0.3.217}/tests/data/engrams/test-meeting-notes.yaml +0 -0
  694. {remdb-0.3.148 → remdb-0.3.217}/tests/data/engrams/test-observation.yaml +0 -0
  695. {remdb-0.3.148 → remdb-0.3.217}/tests/data/engrams/test-project-note.yaml +0 -0
  696. {remdb-0.3.148 → remdb-0.3.217}/tests/data/graph_seed.yaml +0 -0
  697. {remdb-0.3.148 → remdb-0.3.217}/tests/data/sample-architecture-doc.txt +0 -0
  698. {remdb-0.3.148 → remdb-0.3.217}/tests/data/sample_conversations.yaml +0 -0
  699. {remdb-0.3.148 → remdb-0.3.217}/tests/data/schemas/agents/query_agent.yaml +0 -0
  700. {remdb-0.3.148 → remdb-0.3.217}/tests/data/schemas/agents/summarization_agent.yaml +0 -0
  701. {remdb-0.3.148 → remdb-0.3.217}/tests/data/schemas/agents/test-cv-parser.yaml +0 -0
  702. {remdb-0.3.148 → remdb-0.3.217}/tests/data/schemas/evaluators/accuracy_evaluator.yaml +0 -0
  703. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/001_sample_data.yaml +0 -0
  704. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/001_sample_data.yaml.bak +0 -0
  705. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/README.md +0 -0
  706. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/files/documents/api_spec.md +0 -0
  707. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/files/documents/meeting_notes.txt +0 -0
  708. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/files/engrams/personal_reflection.yaml +0 -0
  709. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/files/engrams/product_idea_voice_memo.yaml +0 -0
  710. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/files/engrams/team_standup_meeting.yaml +0 -0
  711. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/resources.yaml +0 -0
  712. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/shared_sessions_demo.yaml +0 -0
  713. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/test-user-data.yaml +0 -0
  714. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/test-user-data.yaml.bak +0 -0
  715. {remdb-0.3.148 → remdb-0.3.217}/tests/data/seed/users.yaml +0 -0
  716. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/README.md +0 -0
  717. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/helpers/README.md +0 -0
  718. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/helpers/__init__.py +0 -0
  719. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/helpers/seed_data.py +0 -0
  720. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/phoenix/run_complete_experiment.py +0 -0
  721. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/phoenix/run_hello_world_experiment.py +0 -0
  722. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/phoenix/test_connection.py +0 -0
  723. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/rem-agent-eval-questions.yaml +0 -0
  724. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/rem-query-agent-tests.yaml +0 -0
  725. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/load_sample_data.py +0 -0
  726. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/resources/api_design_discussion.md +0 -0
  727. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/resources/database_migration_plan.md +0 -0
  728. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/resources/morning_standup_notes.md +0 -0
  729. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/resources/production_incident_postmortem.md +0 -0
  730. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/sample_data/dreaming/resources/quarterly_reflection.md +0 -0
  731. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/services/test_content_providers.py +0 -0
  732. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/services/test_schema_provider.py +0 -0
  733. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_agent_end_to_end.py +0 -0
  734. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_agent_tool_invocation.py +0 -0
  735. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_agent_with_tools.py +0 -0
  736. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_api_endpoints.py +0 -0
  737. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_batch_upsert.py +0 -0
  738. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_completions_with_sessions.py +0 -0
  739. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_content_ingest_workflow.py +0 -0
  740. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_contract_extractor.py +0 -0
  741. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_dreaming_moments.py +0 -0
  742. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_dynamic_agents.py +0 -0
  743. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_git_provider.py +0 -0
  744. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_mcp_server_loading.py +0 -0
  745. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_mcp_tool_loading.py +0 -0
  746. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_mcp_tools.py +0 -0
  747. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_natural_language_to_rem.py +0 -0
  748. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_query.py +0 -0
  749. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_query_agent.py +0 -0
  750. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_query_agent_structured.py +0 -0
  751. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_query_evolution.py +0 -0
  752. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_query_functions.py +0 -0
  753. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_rem_service_layer.py +0 -0
  754. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_unlogged_maintainer.py +0 -0
  755. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_user_session_reloads.py +0 -0
  756. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_verify_setup.py +0 -0
  757. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/test_yaml_export.py +0 -0
  758. {remdb-0.3.148 → remdb-0.3.217}/tests/integration/validate_rem_agent_schema.py +0 -0
  759. {remdb-0.3.148 → remdb-0.3.217}/tests/scripts/__init__.py +0 -0
  760. {remdb-0.3.148 → remdb-0.3.217}/tests/scripts/demo_session_recovery.py +0 -0
  761. {remdb-0.3.148 → remdb-0.3.217}/tests/scripts/seed_sample_sessions.py +0 -0
  762. {remdb-0.3.148 → remdb-0.3.217}/tests/scripts/simple_session_demo.py +0 -0
  763. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/__init__.py +0 -0
  764. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/__init__.py +0 -0
  765. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/agents/__init__.py +0 -0
  766. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/agents/test_sse_simulator.py +0 -0
  767. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/providers/__init__.py +0 -0
  768. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/providers/test_pydantic_ai.py +0 -0
  769. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/test_schema_integration.py +0 -0
  770. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/agentic/test_tool_description_suffix.py +0 -0
  771. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/api/__init__.py +0 -0
  772. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/api/test_feedback.py +0 -0
  773. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/api/test_models_endpoint.py +0 -0
  774. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/api/test_sessions_messages.py +0 -0
  775. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/api/test_sse_events.py +0 -0
  776. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/conftest.py +0 -0
  777. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_admin_internal.py +0 -0
  778. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_registry.py +0 -0
  779. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_session_cli.py +0 -0
  780. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/test_sql_security.py +0 -0
  781. {remdb-0.3.148 → remdb-0.3.217}/tests/unit/utils/test_agentic_chunking.py +0 -0
  782. {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.148
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "remdb"
3
- version = "0.3.148"
3
+ version = "0.3.217"
4
4
  description = "Resources Entities Moments - Bio-inspired memory system for agentic AI workloads"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -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
- - [ ] Multi-turn conversation management
725
- - [ ] Agent composition (agents calling agents)
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
  ]