remdb 0.3.122__tar.gz → 0.3.157__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (738) hide show
  1. {remdb-0.3.122 → remdb-0.3.157}/.env.example +22 -1
  2. {remdb-0.3.122 → remdb-0.3.157}/.gitignore +1 -0
  3. remdb-0.3.157/.kreuzberg/mime/2470f3a5e2d1953b.msgpack +1 -0
  4. remdb-0.3.157/.kreuzberg/mime/34f1cfc7a58e8b0c.msgpack +2 -0
  5. remdb-0.3.157/.kreuzberg/mime/56bf449feab17e6d.msgpack +1 -0
  6. remdb-0.3.157/.kreuzberg/mime/8cace0ec228b43d6.msgpack +1 -0
  7. remdb-0.3.157/.kreuzberg/mime/99f1579d6a6790ad.msgpack +1 -0
  8. remdb-0.3.157/.kreuzberg/mime/a0d60cff1e5950a6.msgpack +1 -0
  9. remdb-0.3.157/.kreuzberg/mime/b2b5204d4dfab9dc.msgpack +1 -0
  10. remdb-0.3.157/.kreuzberg/mime/d1df948b17e4d9fc.msgpack +1 -0
  11. {remdb-0.3.122 → remdb-0.3.157}/PKG-INFO +141 -36
  12. {remdb-0.3.122 → remdb-0.3.157}/README.md +137 -34
  13. {remdb-0.3.122 → remdb-0.3.157}/pyproject.toml +6 -4
  14. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/agents/__init__.py +16 -0
  15. remdb-0.3.157/src/rem/agentic/agents/agent_manager.py +310 -0
  16. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/context_builder.py +5 -3
  17. remdb-0.3.157/src/rem/agentic/mcp/tool_wrapper.py +244 -0
  18. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/providers/phoenix.py +371 -108
  19. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/providers/pydantic_ai.py +122 -43
  20. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/schema.py +4 -1
  21. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/deps.py +2 -2
  22. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/main.py +1 -1
  23. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/mcp_router/server.py +2 -0
  24. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/mcp_router/tools.py +90 -0
  25. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/auth.py +208 -4
  26. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/chat/streaming.py +77 -22
  27. remdb-0.3.157/src/rem/auth/__init__.py +36 -0
  28. {remdb-0.3.122 → remdb-0.3.157}/src/rem/auth/middleware.py +66 -1
  29. {remdb-0.3.122 → remdb-0.3.157}/src/rem/auth/providers/__init__.py +4 -1
  30. remdb-0.3.157/src/rem/auth/providers/email.py +215 -0
  31. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/configure.py +3 -4
  32. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/experiments.py +468 -76
  33. remdb-0.3.157/src/rem/cli/commands/session.py +336 -0
  34. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/dreaming.py +2 -2
  35. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/main.py +2 -0
  36. {remdb-0.3.122 → remdb-0.3.157}/src/rem/config.py +8 -1
  37. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/core/experiment.py +58 -14
  38. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/__init__.py +4 -0
  39. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/ontology.py +1 -1
  40. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/ontology_config.py +1 -1
  41. remdb-0.3.157/src/rem/models/entities/subscriber.py +175 -0
  42. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/user.py +1 -0
  43. remdb-0.3.157/src/rem/schemas/agents/core/agent-builder.yaml +134 -0
  44. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/examples/contract-analyzer.yaml +1 -1
  45. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/examples/contract-extractor.yaml +1 -1
  46. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/examples/cv-parser.yaml +1 -1
  47. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/__init__.py +3 -1
  48. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/content/service.py +4 -3
  49. remdb-0.3.157/src/rem/services/email/__init__.py +10 -0
  50. remdb-0.3.157/src/rem/services/email/service.py +459 -0
  51. remdb-0.3.157/src/rem/services/email/templates.py +360 -0
  52. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/postgres/README.md +38 -0
  53. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/postgres/diff_service.py +19 -3
  54. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/postgres/pydantic_to_sqlalchemy.py +45 -13
  55. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/session/compression.py +113 -50
  56. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/session/reload.py +14 -7
  57. {remdb-0.3.122 → remdb-0.3.157}/src/rem/settings.py +309 -10
  58. {remdb-0.3.122 → remdb-0.3.157}/src/rem/sql/migrations/002_install_models.sql +91 -91
  59. remdb-0.3.157/src/rem/sql/migrations/005_schema_update.sql +145 -0
  60. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/README.md +45 -0
  61. remdb-0.3.157/src/rem/utils/files.py +323 -0
  62. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/schema_loader.py +93 -2
  63. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/vision.py +1 -1
  64. remdb-0.3.157/tests/integration/test_email_auth.py +191 -0
  65. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_embedding_worker.py +3 -1
  66. remdb-0.3.157/tests/test_agent_manager.py +175 -0
  67. remdb-0.3.157/tests/unit/services/test_session_compression.py +273 -0
  68. remdb-0.3.157/tests/unit/test_api_key_auth.py +133 -0
  69. remdb-0.3.157/tests/unit/test_resource_tools.py +136 -0
  70. remdb-0.3.157/tests/unit/test_session_cli.py +124 -0
  71. remdb-0.3.122/src/rem/agentic/mcp/tool_wrapper.py +0 -133
  72. remdb-0.3.122/src/rem/auth/__init__.py +0 -26
  73. remdb-0.3.122/src/rem/utils/files.py +0 -167
  74. remdb-0.3.122/tests/integration/test_feedback_endpoint.py +0 -127
  75. {remdb-0.3.122 → remdb-0.3.157}/.claude/archive/PUBLISH.md +0 -0
  76. {remdb-0.3.122 → remdb-0.3.157}/.claude/archive/QUICKSTART.md +0 -0
  77. {remdb-0.3.122 → remdb-0.3.157}/.claude/archive/publish.sh +0 -0
  78. {remdb-0.3.122 → remdb-0.3.157}/.claude/settings.local.json +0 -0
  79. {remdb-0.3.122 → remdb-0.3.157}/.dockerignore +0 -0
  80. {remdb-0.3.122 → remdb-0.3.157}/.experiments/README.md +0 -0
  81. {remdb-0.3.122 → remdb-0.3.157}/.experiments/RUN_ON_CLUSTER.md +0 -0
  82. {remdb-0.3.122 → remdb-0.3.157}/.experiments/TESTING_GUIDE.md +0 -0
  83. {remdb-0.3.122 → remdb-0.3.157}/.experiments/test-phoenix-integration.sh +0 -0
  84. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/039976f3b4dc7549.msgpack +0 -0
  85. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/045e65492b634d11.msgpack +0 -0
  86. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/07f5cd0e3fb1d287.msgpack +0 -0
  87. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/08f4ae339838b804.msgpack +0 -0
  88. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/0a64e58ae1289686.msgpack +0 -0
  89. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/0da06e67dd284834.msgpack +0 -0
  90. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/0e200bfe2ea523f2.msgpack +0 -0
  91. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/10b1925cb6007390.msgpack +0 -0
  92. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/11c55125d2be1895.msgpack +0 -0
  93. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/12dd62bbe8ee9b6a.msgpack +0 -0
  94. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/18f78825b8e302a8.msgpack +0 -0
  95. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/19a7ff44501eb3f9.msgpack +0 -0
  96. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/1c9cec1b6f266e8d.msgpack +0 -0
  97. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/1db0e7d4ac2443af.msgpack +0 -0
  98. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/1f32d592b118d944.msgpack +0 -0
  99. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/20db05a60f4c6ce3.msgpack +0 -0
  100. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/220746359cef9884.msgpack +0 -0
  101. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/24034098fd444b39.msgpack +0 -0
  102. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/24acc2df261ae549.msgpack +0 -0
  103. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/26a8ed0cdfc0ccab.msgpack +0 -0
  104. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/28e3c2bf25dfc659.msgpack +0 -0
  105. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/295a37ef869b0a49.msgpack +0 -0
  106. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/2a6f58009e01ad65.msgpack +0 -0
  107. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/2ab7ae3b2e42644e.msgpack +0 -0
  108. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/2b24548c2f91f8b9.msgpack +0 -0
  109. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/2bb63e6235d19b40.msgpack +0 -0
  110. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/2c74a0f17cde1b0c.msgpack +0 -0
  111. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/2d728912eb223a33.msgpack +0 -0
  112. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/2de80149b410a676.msgpack +0 -0
  113. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/2e1001cbed04103c.msgpack +0 -0
  114. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/32d99ccf71d10a38.msgpack +0 -0
  115. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/3353ae12a176a9bd.msgpack +0 -0
  116. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/3c5bd974fb83b573.msgpack +0 -0
  117. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/3ca9da43dd834bca.msgpack +0 -0
  118. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/3e9db2b8a87873c7.msgpack +0 -0
  119. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/3ff1b430e0b510d5.msgpack +0 -0
  120. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/4035607526c8600d.msgpack +0 -0
  121. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/40f0415d564cb996.msgpack +0 -0
  122. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/4388f8ee095c9ed8.msgpack +0 -0
  123. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/439f422b7f8dc467.msgpack +0 -0
  124. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/452c56ffd625931f.msgpack +0 -0
  125. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/45ee850e300157c8.msgpack +0 -0
  126. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/45f79b5f90a07f0e.msgpack +0 -0
  127. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/487e56b12d123968.msgpack +0 -0
  128. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/49be62bf170de12a.msgpack +0 -0
  129. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/4b3e165ec4ba87d0.msgpack +0 -0
  130. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/505ff13d9ac8f006.msgpack +0 -0
  131. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/51e81cbe7899e310.msgpack +0 -0
  132. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/537dea93b57ffce5.msgpack +0 -0
  133. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/56a9f1cd9ec05384.msgpack +0 -0
  134. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/57ab5fe18c74538b.msgpack +0 -0
  135. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/5a11f436d88e89cd.msgpack +0 -0
  136. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/5b10dca1c6db6714.msgpack +0 -0
  137. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/5eb63bbe412735a4.msgpack +0 -0
  138. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/5ebca8549bb3ff2b.msgpack +0 -0
  139. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/5fef074c57dd118f.msgpack +0 -0
  140. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/60f343229f836ab6.msgpack +0 -0
  141. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/6153f83bf3713b32.msgpack +0 -0
  142. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/6488134e7b6dd403.msgpack +0 -0
  143. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/68e7b00767be2e16.msgpack +0 -0
  144. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/6afac5499ef0a938.msgpack +0 -0
  145. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/6bd93d4fd4cc3893.msgpack +0 -0
  146. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/6defbba8bfc76983.msgpack +0 -0
  147. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/6e37f5165f71513b.msgpack +0 -0
  148. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/6f9130d5f4db8b28.msgpack +0 -0
  149. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/6fc0d79c16c59de5.msgpack +0 -0
  150. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/774b8c209528323e.msgpack +0 -0
  151. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/78c509bc3a9d93c4.msgpack +0 -0
  152. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/798017037907ab5f.msgpack +0 -0
  153. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/7a4fd9fd84ae6899.msgpack +0 -0
  154. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/7b094993adee6e1a.msgpack +0 -0
  155. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/7c3ad418912e7c09.msgpack +0 -0
  156. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/7f630276be2a1503.msgpack +0 -0
  157. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/80fd68e8a4ac6556.msgpack +0 -0
  158. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/819aabcfdf1334af.msgpack +0 -0
  159. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/81ea65c652232174.msgpack +0 -0
  160. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/84c4f70ba7616566.msgpack +0 -0
  161. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/856e8ba75c4d220e.msgpack +0 -0
  162. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/8d1ecc30d7d58b41.msgpack +0 -0
  163. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/8e2e4ab7c05925fa.msgpack +0 -0
  164. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/8e89a980bc3b92d8.msgpack +0 -0
  165. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/8f6a9b01f15883f5.msgpack +0 -0
  166. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/9091b9d61e026046.msgpack +0 -0
  167. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/927a028cf723c70d.msgpack +0 -0
  168. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/94bda8f2cabc1358.msgpack +0 -0
  169. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/95313ccec52beb53.msgpack +0 -0
  170. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/954fee40bb61432b.msgpack +0 -0
  171. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/9592cc24f2bf0d77.msgpack +0 -0
  172. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/967396ed95832197.msgpack +0 -0
  173. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/9804f3b02bf98e83.msgpack +0 -0
  174. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/9936890e55f094f3.msgpack +0 -0
  175. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/99405cab6cc35283.msgpack +0 -0
  176. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/99e3da57a007bc59.msgpack +0 -0
  177. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/9c265a028ee05977.msgpack +0 -0
  178. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/9f02e484a5feb3af.msgpack +0 -0
  179. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/9fd81ffc0b3282f8.msgpack +0 -0
  180. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/a2bcfb3e4cf75d71.msgpack +0 -0
  181. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/a3fd1a45a0ef02f1.msgpack +0 -0
  182. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/a72acced3b5f0c28.msgpack +0 -0
  183. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/a78fa3051259d29c.msgpack +0 -0
  184. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/a964045be65be2d2.msgpack +0 -0
  185. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/ae8bc0c15954a96a.msgpack +0 -0
  186. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/af05b5754cd245b5.msgpack +0 -0
  187. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/af28c894e94dc85c.msgpack +0 -0
  188. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/b0a26c1396c336b2.msgpack +0 -0
  189. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/b2f8df0bdc713008.msgpack +0 -0
  190. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/b361fc308a3b9ab1.msgpack +0 -0
  191. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/b374846290238cd1.msgpack +0 -0
  192. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/b4b163b746d0aa53.msgpack +0 -0
  193. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/b68845f6e8da9be3.msgpack +0 -0
  194. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/b7e677bf8412e9bd.msgpack +0 -0
  195. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/b99ba32d31caa65e.msgpack +0 -0
  196. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/bc02d7c24ec8eccc.msgpack +0 -0
  197. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/bc1a967be3c37e18.msgpack +0 -0
  198. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/bc89d1801e46fb3c.msgpack +0 -0
  199. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/bce873a224061155.msgpack +0 -0
  200. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/bea4de84b22aebbc.msgpack +0 -0
  201. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/c5f723dcb1ff4b6f.msgpack +0 -0
  202. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/c6ca46f28d7798dd.msgpack +0 -0
  203. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/c6e2f4ede9282c2f.msgpack +0 -0
  204. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/c761de11e901384a.msgpack +0 -0
  205. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/c99399d1889fa84c.msgpack +0 -0
  206. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/c9fd297a955f2355.msgpack +0 -0
  207. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/ca9a80b78b7aa22c.msgpack +0 -0
  208. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/cb9503b8979b185d.msgpack +0 -0
  209. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/cbc6cfb0a51ab6bb.msgpack +0 -0
  210. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/cc3bda1ed2e95150.msgpack +0 -0
  211. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/ceb98745ab5dbe70.msgpack +0 -0
  212. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/d1e1e212112ab926.msgpack +0 -0
  213. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/d4b766742cf2328a.msgpack +0 -0
  214. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/d93262cc2f01da93.msgpack +0 -0
  215. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/d977ad06778acf8d.msgpack +0 -0
  216. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/da9376a352a900b8.msgpack +0 -0
  217. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/db2816895dd01979.msgpack +0 -0
  218. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/db3a782c367dbe28.msgpack +0 -0
  219. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/db825a17acae232c.msgpack +0 -0
  220. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/dc96bd8d8ad04ee4.msgpack +0 -0
  221. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/dd1562878ff3c0f5.msgpack +0 -0
  222. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/de117be85702ebbc.msgpack +0 -0
  223. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/e3aafc52b94d322c.msgpack +0 -0
  224. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/e53a6e77d7808ee8.msgpack +0 -0
  225. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/e7dc452a2aae9b10.msgpack +0 -0
  226. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/ebf2fcb04221173e.msgpack +0 -0
  227. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/ebf527595602c7cc.msgpack +0 -0
  228. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/ed6a8410124b956b.msgpack +0 -0
  229. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/f1801152a72fbdf0.msgpack +0 -0
  230. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/f6fe984552a62891.msgpack +0 -0
  231. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/f81bbef279fc5018.msgpack +0 -0
  232. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/f975369ecf8cfe1b.msgpack +0 -0
  233. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/mime/fd21c48c0c429b77.msgpack +0 -0
  234. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/0354796dc060829e.msgpack +0 -0
  235. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/039f9af1f7851836.msgpack +0 -0
  236. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/05e117af5b509bae.msgpack +0 -0
  237. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/0bc34e3949fbef01.msgpack +0 -0
  238. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/0ce495589c7221d3.msgpack +0 -0
  239. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/0dd1cda742544db1.msgpack +0 -0
  240. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/0eba31912f25f3eb.msgpack +0 -0
  241. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/0f2703145ac02172.msgpack +0 -0
  242. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/0fa09530ccf28805.msgpack +0 -0
  243. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/0fd8e540615171e8.msgpack +0 -0
  244. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/101ff2c4997376a9.msgpack +0 -0
  245. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/12c490c06def9488.msgpack +0 -0
  246. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/18257c152bba13a6.msgpack +0 -0
  247. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/1d4a6a418d2b6a64.msgpack +0 -0
  248. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/1e61d3c782893a54.msgpack +0 -0
  249. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/1fc92f87c93d4fd9.msgpack +0 -0
  250. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/2c9de54bccd13e11.msgpack +0 -0
  251. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/2f3ea5c1badef128.msgpack +0 -0
  252. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/32aa8c660cf91963.msgpack +0 -0
  253. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/35111034d5ad26a6.msgpack +0 -0
  254. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/352eb0c7f720c196.msgpack +0 -0
  255. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/3a2e224daffb8e3d.msgpack +0 -0
  256. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/3ee772a67521e170.msgpack +0 -0
  257. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/401e93fa320273da.msgpack +0 -0
  258. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/40d9b4294628036d.msgpack +0 -0
  259. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/44592db880e5ec3f.msgpack +0 -0
  260. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/45870b434cfe0c85.msgpack +0 -0
  261. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/458943c95381e6de.msgpack +0 -0
  262. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/4ca27bb3cae67ad6.msgpack +0 -0
  263. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/4e0d19bea7253cc8.msgpack +0 -0
  264. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/4f02317672f3198b.msgpack +0 -0
  265. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/56a98d6dbd85ebed.msgpack +0 -0
  266. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/5d6b31c824d8741e.msgpack +0 -0
  267. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/5f75509e9ed27170.msgpack +0 -0
  268. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/5fcfe11a675bac8b.msgpack +0 -0
  269. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/61b8b2fc9077f91a.msgpack +0 -0
  270. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/642c92672daf5c43.msgpack +0 -0
  271. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/655ff32e6cd550bc.msgpack +0 -0
  272. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/65bc24178c843052.msgpack +0 -0
  273. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/66cd62510980471d.msgpack +0 -0
  274. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/681c1dd84a2bdf26.msgpack +0 -0
  275. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/6838fe47e511b2b8.msgpack +0 -0
  276. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/6a609539ed167213.msgpack +0 -0
  277. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/74b6b71e76efb9c9.msgpack +0 -0
  278. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/75e719c76477d44f.msgpack +0 -0
  279. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/77e0e879c2c95195.msgpack +0 -0
  280. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/7a15ef0ba4aa5660.msgpack +0 -0
  281. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/7a9dd710389dde99.msgpack +0 -0
  282. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/7b783286f80ab872.msgpack +0 -0
  283. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/7d1298c12634bc16.msgpack +0 -0
  284. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/7ddf2b8e4c6cb2e3.msgpack +0 -0
  285. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/7fc2229fcb868522.msgpack +0 -0
  286. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/85abdb138905726a.msgpack +0 -0
  287. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/884e41282eb896c5.msgpack +0 -0
  288. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/8a703994c30b19ea.msgpack +0 -0
  289. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/8aca0021ebe63f8e.msgpack +0 -0
  290. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/8bc107890e1ab320.msgpack +0 -0
  291. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/8c1a66ea86c98f76.msgpack +0 -0
  292. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/8dd5ac3207b6ca3b.msgpack +0 -0
  293. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/8f898c00eea3a93b.msgpack +0 -0
  294. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/931cbc8a4cbebf70.msgpack +0 -0
  295. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/932804c1aff4d044.msgpack +0 -0
  296. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/94b151c44f8a3588.msgpack +0 -0
  297. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/94ce2189385c970f.msgpack +0 -0
  298. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/94fa736d741d63be.msgpack +0 -0
  299. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/95bd2009772c07fd.msgpack +0 -0
  300. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/95f748fee80393ef.msgpack +0 -0
  301. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/9b1e26a55ef34ee9.msgpack +0 -0
  302. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/9f3159c9912586db.msgpack +0 -0
  303. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/a17c34748d867e85.msgpack +0 -0
  304. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/a2ca0018b46feabd.msgpack +0 -0
  305. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/a60b9031cf48ebba.msgpack +0 -0
  306. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/a9be790d1f0ae7ec.msgpack +0 -0
  307. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/ac4d6823c4034fe6.msgpack +0 -0
  308. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/ad80625c2fe055e2.msgpack +0 -0
  309. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/b102691e3c3e4cae.msgpack +0 -0
  310. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/b34027c96f8daa30.msgpack +0 -0
  311. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/b639b463e04459db.msgpack +0 -0
  312. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/b7e540f21b7f0271.msgpack +0 -0
  313. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/ba460ba22b61b3ac.msgpack +0 -0
  314. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/ba7499ca4c58ff94.msgpack +0 -0
  315. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/be2d027b571e9344.msgpack +0 -0
  316. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/c1fff30850bb8b6f.msgpack +0 -0
  317. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/c3889a8993fc490d.msgpack +0 -0
  318. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/c51c4fa6e6b83f7e.msgpack +0 -0
  319. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/c57ca30ea53e2d68.msgpack +0 -0
  320. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/c64c433f4452d82a.msgpack +0 -0
  321. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/c91739ca8dcc39ea.msgpack +0 -0
  322. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/c91d5e81eba0d3c9.msgpack +0 -0
  323. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/c9fecad2b9f0357c.msgpack +0 -0
  324. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/cb7fab9ab7b8c520.msgpack +0 -0
  325. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/cbbaeea4c7d24156.msgpack +0 -0
  326. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/cc7dd2a0003c03d8.msgpack +0 -0
  327. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/ce64ddc6701623a7.msgpack +0 -0
  328. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/d19b01ce83c8c71a.msgpack +0 -0
  329. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/d5aae4af1fe94a3a.msgpack +0 -0
  330. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/d5c47dfe60be1592.msgpack +0 -0
  331. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/d7eef627315eeab2.msgpack +0 -0
  332. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/d81cb4d0b47db4ae.msgpack +0 -0
  333. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/deed4c82c27e2b5d.msgpack +0 -0
  334. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/df1c0ed33adf634d.msgpack +0 -0
  335. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/e1c2af52b798715b.msgpack +0 -0
  336. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/e249b7de89e07bbc.msgpack +0 -0
  337. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/e6b6c0b80707ee08.msgpack +0 -0
  338. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/e74d1c6e8e950e20.msgpack +0 -0
  339. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/e9d2da361090c228.msgpack +0 -0
  340. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/ec8c114b8a360379.msgpack +0 -0
  341. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/f1772556a9442724.msgpack +0 -0
  342. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/f4753f23f51fe441.msgpack +0 -0
  343. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/f52c654a914ee356.msgpack +0 -0
  344. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/f6187d9353655ff5.msgpack +0 -0
  345. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/f766aa4cfdca2770.msgpack +0 -0
  346. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/fabcc3a4db082252.msgpack +0 -0
  347. {remdb-0.3.122 → remdb-0.3.157}/.kreuzberg/tables/fec2d3d5372c2bcc.msgpack +0 -0
  348. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/Activate.ps1 +0 -0
  349. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/activate +0 -0
  350. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/activate-global-python-argcomplete +0 -0
  351. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/activate.csh +0 -0
  352. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/activate.fish +0 -0
  353. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/alembic +0 -0
  354. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/arize-phoenix +0 -0
  355. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/cyclopts +0 -0
  356. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/distro +0 -0
  357. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/docutils +0 -0
  358. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/dotenv +0 -0
  359. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/email_validator +0 -0
  360. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/f2py +0 -0
  361. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/fastapi +0 -0
  362. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/fastavro +0 -0
  363. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/fastmcp +0 -0
  364. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/genai-prices +0 -0
  365. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/get_gprof +0 -0
  366. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/get_objgraph +0 -0
  367. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/griffe +0 -0
  368. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/hf +0 -0
  369. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/httpx +0 -0
  370. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/hypercorn +0 -0
  371. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/inv +0 -0
  372. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/invoke +0 -0
  373. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/jp.py +0 -0
  374. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/jsonpath_ng +0 -0
  375. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/jsonschema +0 -0
  376. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/keyring +0 -0
  377. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/kreuzberg +0 -0
  378. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/logfire +0 -0
  379. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/mako-render +0 -0
  380. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/markdown-it +0 -0
  381. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/mcp +0 -0
  382. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/mpire-dashboard +0 -0
  383. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/normalizer +0 -0
  384. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/numpy-config +0 -0
  385. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/openai +0 -0
  386. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/opentelemetry-bootstrap +0 -0
  387. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/opentelemetry-instrument +0 -0
  388. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pai +0 -0
  389. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/phoenix +0 -0
  390. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pip +0 -0
  391. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pip3 +0 -0
  392. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pip3.12 +0 -0
  393. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pygmentize +0 -0
  394. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pyrsa-decrypt +0 -0
  395. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pyrsa-encrypt +0 -0
  396. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pyrsa-keygen +0 -0
  397. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pyrsa-priv2pub +0 -0
  398. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pyrsa-sign +0 -0
  399. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pyrsa-verify +0 -0
  400. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pystache +0 -0
  401. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/pystache-test +0 -0
  402. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/python +0 -0
  403. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/python-argcomplete-check-easy-install-script +0 -0
  404. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/python3 +0 -0
  405. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/python3.12 +0 -0
  406. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/register-python-argcomplete +0 -0
  407. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rem +0 -0
  408. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rst2html +0 -0
  409. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rst2html4 +0 -0
  410. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rst2html5 +0 -0
  411. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rst2latex +0 -0
  412. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rst2man +0 -0
  413. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rst2odt +0 -0
  414. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rst2pseudoxml +0 -0
  415. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rst2s5 +0 -0
  416. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rst2xetex +0 -0
  417. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/rst2xml +0 -0
  418. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/strawberry +0 -0
  419. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/tiny-agents +0 -0
  420. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/tqdm +0 -0
  421. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/undill +0 -0
  422. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/uvicorn +0 -0
  423. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/watchfiles +0 -0
  424. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/bin/websockets +0 -0
  425. {remdb-0.3.122 → remdb-0.3.157}/.venv-test/pyvenv.cfg +0 -0
  426. {remdb-0.3.122 → remdb-0.3.157}/Dockerfile +0 -0
  427. {remdb-0.3.122 → remdb-0.3.157}/Tiltfile +0 -0
  428. {remdb-0.3.122 → remdb-0.3.157}/alembic/README.md +0 -0
  429. {remdb-0.3.122 → remdb-0.3.157}/alembic/env.py +0 -0
  430. {remdb-0.3.122 → remdb-0.3.157}/alembic/script.py.mako +0 -0
  431. {remdb-0.3.122 → remdb-0.3.157}/alembic.ini +0 -0
  432. {remdb-0.3.122 → remdb-0.3.157}/dev-setup.sh +0 -0
  433. {remdb-0.3.122 → remdb-0.3.157}/docker-compose.prebuilt.yml +0 -0
  434. {remdb-0.3.122 → remdb-0.3.157}/docker-compose.test.yml +0 -0
  435. {remdb-0.3.122 → remdb-0.3.157}/docker-compose.yml +0 -0
  436. {remdb-0.3.122 → remdb-0.3.157}/src/rem/__init__.py +0 -0
  437. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/README.md +0 -0
  438. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/__init__.py +0 -0
  439. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/agents/README.md +0 -0
  440. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/agents/sse_simulator.py +0 -0
  441. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/context.py +0 -0
  442. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/llm_provider_models.py +0 -0
  443. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/mcp/__init__.py +0 -0
  444. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/otel/__init__.py +0 -0
  445. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/otel/setup.py +0 -0
  446. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/query.py +0 -0
  447. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/query_helper.py +0 -0
  448. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/serialization.py +0 -0
  449. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/tools/__init__.py +0 -0
  450. {remdb-0.3.122 → remdb-0.3.157}/src/rem/agentic/tools/rem_tools.py +0 -0
  451. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/README.md +0 -0
  452. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/mcp_router/prompts.py +0 -0
  453. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/mcp_router/resources.py +0 -0
  454. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/middleware/tracking.py +0 -0
  455. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/admin.py +0 -0
  456. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/chat/__init__.py +0 -0
  457. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/chat/completions.py +0 -0
  458. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/chat/json_utils.py +0 -0
  459. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/chat/models.py +0 -0
  460. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/chat/otel_utils.py +0 -0
  461. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/chat/sse_events.py +0 -0
  462. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/dev.py +0 -0
  463. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/feedback.py +0 -0
  464. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/messages.py +0 -0
  465. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/models.py +0 -0
  466. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/query.py +0 -0
  467. {remdb-0.3.122 → remdb-0.3.157}/src/rem/api/routers/shared_sessions.py +0 -0
  468. {remdb-0.3.122 → remdb-0.3.157}/src/rem/auth/README.md +0 -0
  469. {remdb-0.3.122 → remdb-0.3.157}/src/rem/auth/providers/base.py +0 -0
  470. {remdb-0.3.122 → remdb-0.3.157}/src/rem/auth/providers/google.py +0 -0
  471. {remdb-0.3.122 → remdb-0.3.157}/src/rem/auth/providers/microsoft.py +0 -0
  472. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/README.md +0 -0
  473. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/__init__.py +0 -0
  474. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/README.md +0 -0
  475. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/__init__.py +0 -0
  476. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/ask.py +0 -0
  477. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/cluster.py +0 -0
  478. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/db.py +0 -0
  479. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/dreaming.py +0 -0
  480. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/mcp.py +0 -0
  481. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/process.py +0 -0
  482. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/scaffold.py +0 -0
  483. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/schema.py +0 -0
  484. {remdb-0.3.122 → remdb-0.3.157}/src/rem/cli/commands/serve.py +0 -0
  485. {remdb-0.3.122 → remdb-0.3.157}/src/rem/mcp_server.py +0 -0
  486. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/core/__init__.py +0 -0
  487. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/core/core_model.py +0 -0
  488. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/core/engram.py +0 -0
  489. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/core/inline_edge.py +0 -0
  490. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/core/rem_query.py +0 -0
  491. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/domain_resource.py +0 -0
  492. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/feedback.py +0 -0
  493. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/file.py +0 -0
  494. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/image_resource.py +0 -0
  495. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/message.py +0 -0
  496. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/moment.py +0 -0
  497. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/resource.py +0 -0
  498. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/schema.py +0 -0
  499. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/session.py +0 -0
  500. {remdb-0.3.122 → remdb-0.3.157}/src/rem/models/entities/shared_session.py +0 -0
  501. {remdb-0.3.122 → remdb-0.3.157}/src/rem/py.typed +0 -0
  502. {remdb-0.3.122 → remdb-0.3.157}/src/rem/registry.py +0 -0
  503. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/README.md +0 -0
  504. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/__init__.py +0 -0
  505. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/README.md +0 -0
  506. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/core/moment-builder.yaml +0 -0
  507. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/core/rem-query-agent.yaml +0 -0
  508. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/core/resource-affinity-assessor.yaml +0 -0
  509. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/core/simple-assistant.yaml +0 -0
  510. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/core/user-profile-builder.yaml +0 -0
  511. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/examples/hello-world.yaml +0 -0
  512. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/examples/query.yaml +0 -0
  513. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/examples/simple.yaml +0 -0
  514. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/examples/test.yaml +0 -0
  515. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/agents/rem.yaml +0 -0
  516. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/evaluators/hello-world/default.yaml +0 -0
  517. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/evaluators/rem/faithfulness.yaml +0 -0
  518. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/evaluators/rem/lookup-correctness.yaml +0 -0
  519. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/evaluators/rem/retrieval-precision.yaml +0 -0
  520. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/evaluators/rem/retrieval-recall.yaml +0 -0
  521. {remdb-0.3.122 → remdb-0.3.157}/src/rem/schemas/evaluators/rem/search-correctness.yaml +0 -0
  522. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/audio/INTEGRATION.md +0 -0
  523. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/audio/README.md +0 -0
  524. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/audio/__init__.py +0 -0
  525. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/audio/chunker.py +0 -0
  526. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/audio/transcriber.py +0 -0
  527. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/content/README.md +0 -0
  528. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/content/__init__.py +0 -0
  529. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/content/providers.py +0 -0
  530. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/dreaming/README.md +0 -0
  531. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/dreaming/__init__.py +0 -0
  532. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/dreaming/affinity_service.py +0 -0
  533. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/dreaming/moment_service.py +0 -0
  534. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/dreaming/ontology_service.py +0 -0
  535. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/dreaming/user_model_service.py +0 -0
  536. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/dreaming/utils.py +0 -0
  537. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/embeddings/__init__.py +0 -0
  538. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/embeddings/api.py +0 -0
  539. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/embeddings/worker.py +0 -0
  540. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/README.md +0 -0
  541. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/__init__.py +0 -0
  542. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/examples.py +0 -0
  543. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/examples_paths.py +0 -0
  544. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/git_provider.py +0 -0
  545. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/local_provider.py +0 -0
  546. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/parsing-hooks-examples.md +0 -0
  547. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/paths.py +0 -0
  548. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/provider.py +0 -0
  549. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/s3_provider.py +0 -0
  550. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/fs/service.py +0 -0
  551. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/git/README.md +0 -0
  552. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/git/__init__.py +0 -0
  553. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/git/service.py +0 -0
  554. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/phoenix/EXPERIMENT_DESIGN.md +0 -0
  555. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/phoenix/README.md +0 -0
  556. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/phoenix/__init__.py +0 -0
  557. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/phoenix/client.py +0 -0
  558. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/phoenix/config.py +0 -0
  559. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/phoenix/prompt_labels.py +0 -0
  560. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/postgres/__init__.py +0 -0
  561. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/postgres/migration_service.py +0 -0
  562. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/postgres/register_type.py +0 -0
  563. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/postgres/repository.py +0 -0
  564. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/postgres/schema_generator.py +0 -0
  565. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/postgres/service.py +0 -0
  566. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/postgres/sql_builder.py +0 -0
  567. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/rate_limit.py +0 -0
  568. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/rem/README.md +0 -0
  569. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/rem/__init__.py +0 -0
  570. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/rem/exceptions.py +0 -0
  571. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/rem/executor.py +0 -0
  572. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/rem/parser.py +0 -0
  573. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/rem/queries.py +0 -0
  574. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/rem/query.py +0 -0
  575. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/rem/service.py +0 -0
  576. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/session/README.md +0 -0
  577. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/session/__init__.py +0 -0
  578. {remdb-0.3.122 → remdb-0.3.157}/src/rem/services/user_service.py +0 -0
  579. {remdb-0.3.122 → remdb-0.3.157}/src/rem/sql/background_indexes.sql +0 -0
  580. {remdb-0.3.122 → remdb-0.3.157}/src/rem/sql/migrations/001_install.sql +0 -0
  581. {remdb-0.3.122 → remdb-0.3.157}/src/rem/sql/migrations/003_optional_extensions.sql +0 -0
  582. {remdb-0.3.122 → remdb-0.3.157}/src/rem/sql/migrations/004_cache_system.sql +0 -0
  583. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/AGENTIC_CHUNKING.md +0 -0
  584. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/__init__.py +0 -0
  585. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/agentic_chunking.py +0 -0
  586. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/batch_ops.py +0 -0
  587. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/chunking.py +0 -0
  588. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/clip_embeddings.py +0 -0
  589. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/constants.py +0 -0
  590. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/date_utils.py +0 -0
  591. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/dict_utils.py +0 -0
  592. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/embeddings.py +0 -0
  593. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/examples/embeddings_example.py +0 -0
  594. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/examples/sql_types_example.py +0 -0
  595. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/markdown.py +0 -0
  596. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/mime_types.py +0 -0
  597. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/model_helpers.py +0 -0
  598. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/sql_paths.py +0 -0
  599. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/sql_types.py +0 -0
  600. {remdb-0.3.122 → remdb-0.3.157}/src/rem/utils/user_id.py +0 -0
  601. {remdb-0.3.122 → remdb-0.3.157}/src/rem/workers/README.md +0 -0
  602. {remdb-0.3.122 → remdb-0.3.157}/src/rem/workers/__init__.py +0 -0
  603. {remdb-0.3.122 → remdb-0.3.157}/src/rem/workers/db_listener.py +0 -0
  604. {remdb-0.3.122 → remdb-0.3.157}/src/rem/workers/db_maintainer.py +0 -0
  605. {remdb-0.3.122 → remdb-0.3.157}/src/rem/workers/dreaming.py +0 -0
  606. {remdb-0.3.122 → remdb-0.3.157}/src/rem/workers/engram_processor.py +0 -0
  607. {remdb-0.3.122 → remdb-0.3.157}/src/rem/workers/sqs_file_processor.py +0 -0
  608. {remdb-0.3.122 → remdb-0.3.157}/src/rem/workers/unlogged_maintainer.py +0 -0
  609. {remdb-0.3.122 → remdb-0.3.157}/tests/README.md +0 -0
  610. {remdb-0.3.122 → remdb-0.3.157}/tests/__init__.py +0 -0
  611. {remdb-0.3.122 → remdb-0.3.157}/tests/conftest.py +0 -0
  612. {remdb-0.3.122 → remdb-0.3.157}/tests/data/README.md +0 -0
  613. {remdb-0.3.122 → remdb-0.3.157}/tests/data/audio/README.md +0 -0
  614. {remdb-0.3.122 → remdb-0.3.157}/tests/data/audio/SUMMARY.md +0 -0
  615. {remdb-0.3.122 → remdb-0.3.157}/tests/data/audio/generate_test_audio.py +0 -0
  616. {remdb-0.3.122 → remdb-0.3.157}/tests/data/audio/test_hq_30s.wav +0 -0
  617. {remdb-0.3.122 → remdb-0.3.157}/tests/data/audio/test_long_90s.wav +0 -0
  618. {remdb-0.3.122 → remdb-0.3.157}/tests/data/audio/test_medium_10s.wav +0 -0
  619. {remdb-0.3.122 → remdb-0.3.157}/tests/data/audio/test_short_3s.wav +0 -0
  620. {remdb-0.3.122 → remdb-0.3.157}/tests/data/audio/test_standard_30s.wav +0 -0
  621. {remdb-0.3.122 → remdb-0.3.157}/tests/data/content-examples/pdf/README.md +0 -0
  622. {remdb-0.3.122 → remdb-0.3.157}/tests/data/content-examples/pdf/annual_financial_report.pdf +0 -0
  623. {remdb-0.3.122 → remdb-0.3.157}/tests/data/content-examples/pdf/consulting_agreement.pdf +0 -0
  624. {remdb-0.3.122 → remdb-0.3.157}/tests/data/content-examples/pdf/nda_agreement.pdf +0 -0
  625. {remdb-0.3.122 → remdb-0.3.157}/tests/data/content-examples/pdf/sample_business_plan.pdf +0 -0
  626. {remdb-0.3.122 → remdb-0.3.157}/tests/data/content-examples/pdf/sample_invoice.pdf +0 -0
  627. {remdb-0.3.122 → remdb-0.3.157}/tests/data/content-examples/pdf/sample_research_paper.pdf +0 -0
  628. {remdb-0.3.122 → remdb-0.3.157}/tests/data/content-examples/pdf/sample_resume.pdf +0 -0
  629. {remdb-0.3.122 → remdb-0.3.157}/tests/data/content-examples/pdf/service_contract.pdf +0 -0
  630. {remdb-0.3.122 → remdb-0.3.157}/tests/data/content-examples/test.md +0 -0
  631. {remdb-0.3.122 → remdb-0.3.157}/tests/data/docs/CODE_REVIEW_FIXES.md +0 -0
  632. {remdb-0.3.122 → remdb-0.3.157}/tests/data/docs/TEST_RESULTS.md +0 -0
  633. {remdb-0.3.122 → remdb-0.3.157}/tests/data/docs/cli_verification.md +0 -0
  634. {remdb-0.3.122 → remdb-0.3.157}/tests/data/docs/database-design.md +0 -0
  635. {remdb-0.3.122 → remdb-0.3.157}/tests/data/docs/deep-learning-guide.md +0 -0
  636. {remdb-0.3.122 → remdb-0.3.157}/tests/data/docs/ml-overview.md +0 -0
  637. {remdb-0.3.122 → remdb-0.3.157}/tests/data/docs/python-best-practices.md +0 -0
  638. {remdb-0.3.122 → remdb-0.3.157}/tests/data/docs/test_summary.md +0 -0
  639. {remdb-0.3.122 → remdb-0.3.157}/tests/data/engrams/test-conversation.yaml +0 -0
  640. {remdb-0.3.122 → remdb-0.3.157}/tests/data/engrams/test-diary-entry.yaml +0 -0
  641. {remdb-0.3.122 → remdb-0.3.157}/tests/data/engrams/test-meeting-notes.yaml +0 -0
  642. {remdb-0.3.122 → remdb-0.3.157}/tests/data/engrams/test-observation.yaml +0 -0
  643. {remdb-0.3.122 → remdb-0.3.157}/tests/data/engrams/test-project-note.yaml +0 -0
  644. {remdb-0.3.122 → remdb-0.3.157}/tests/data/graph_seed.yaml +0 -0
  645. {remdb-0.3.122 → remdb-0.3.157}/tests/data/sample-architecture-doc.txt +0 -0
  646. {remdb-0.3.122 → remdb-0.3.157}/tests/data/sample_conversations.yaml +0 -0
  647. {remdb-0.3.122 → remdb-0.3.157}/tests/data/schemas/agents/query_agent.yaml +0 -0
  648. {remdb-0.3.122 → remdb-0.3.157}/tests/data/schemas/agents/summarization_agent.yaml +0 -0
  649. {remdb-0.3.122 → remdb-0.3.157}/tests/data/schemas/agents/test-cv-parser.yaml +0 -0
  650. {remdb-0.3.122 → remdb-0.3.157}/tests/data/schemas/evaluators/accuracy_evaluator.yaml +0 -0
  651. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/001_sample_data.yaml +0 -0
  652. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/001_sample_data.yaml.bak +0 -0
  653. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/README.md +0 -0
  654. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/files/documents/api_spec.md +0 -0
  655. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/files/documents/meeting_notes.txt +0 -0
  656. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/files/engrams/personal_reflection.yaml +0 -0
  657. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/files/engrams/product_idea_voice_memo.yaml +0 -0
  658. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/files/engrams/team_standup_meeting.yaml +0 -0
  659. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/resources.yaml +0 -0
  660. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/shared_sessions_demo.yaml +0 -0
  661. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/test-user-data.yaml +0 -0
  662. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/test-user-data.yaml.bak +0 -0
  663. {remdb-0.3.122 → remdb-0.3.157}/tests/data/seed/users.yaml +0 -0
  664. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/README.md +0 -0
  665. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/helpers/README.md +0 -0
  666. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/helpers/__init__.py +0 -0
  667. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/helpers/seed_data.py +0 -0
  668. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/phoenix/run_complete_experiment.py +0 -0
  669. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/phoenix/run_hello_world_experiment.py +0 -0
  670. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/phoenix/test_connection.py +0 -0
  671. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/rem-agent-eval-questions.yaml +0 -0
  672. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/rem-query-agent-tests.yaml +0 -0
  673. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/run_rem_agent_eval.py +0 -0
  674. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/sample_data/dreaming/load_sample_data.py +0 -0
  675. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/sample_data/dreaming/resources/api_design_discussion.md +0 -0
  676. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/sample_data/dreaming/resources/database_migration_plan.md +0 -0
  677. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/sample_data/dreaming/resources/morning_standup_notes.md +0 -0
  678. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/sample_data/dreaming/resources/production_incident_postmortem.md +0 -0
  679. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/sample_data/dreaming/resources/quarterly_reflection.md +0 -0
  680. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/services/test_content_providers.py +0 -0
  681. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/services/test_schema_provider.py +0 -0
  682. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_agent_end_to_end.py +0 -0
  683. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_agent_tool_invocation.py +0 -0
  684. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_agent_with_tools.py +0 -0
  685. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_api_endpoints.py +0 -0
  686. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_batch_upsert.py +0 -0
  687. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_completions_with_sessions.py +0 -0
  688. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_content_ingest_workflow.py +0 -0
  689. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_contract_extractor.py +0 -0
  690. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_dreaming_moments.py +0 -0
  691. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_dynamic_agents.py +0 -0
  692. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_embeddings_e2e.py +0 -0
  693. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_git_provider.py +0 -0
  694. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_graph_traversal.py +0 -0
  695. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_mcp_server_loading.py +0 -0
  696. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_mcp_tool_loading.py +0 -0
  697. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_mcp_tools.py +0 -0
  698. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_mcp_tools_layer.py +0 -0
  699. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_merge_strategies_demo.py +0 -0
  700. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_natural_language_to_rem.py +0 -0
  701. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_rem_query.py +0 -0
  702. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_rem_query_agent.py +0 -0
  703. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_rem_query_agent_structured.py +0 -0
  704. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_rem_query_evolution.py +0 -0
  705. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_rem_query_functions.py +0 -0
  706. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_rem_service_layer.py +0 -0
  707. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_schema_introspection.py +0 -0
  708. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_session_management.py +0 -0
  709. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_shared_sessions.py +0 -0
  710. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_unlogged_maintainer.py +0 -0
  711. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_user_session_reloads.py +0 -0
  712. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_verify_setup.py +0 -0
  713. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/test_yaml_export.py +0 -0
  714. {remdb-0.3.122 → remdb-0.3.157}/tests/integration/validate_rem_agent_schema.py +0 -0
  715. {remdb-0.3.122 → remdb-0.3.157}/tests/scripts/__init__.py +0 -0
  716. {remdb-0.3.122 → remdb-0.3.157}/tests/scripts/demo_session_recovery.py +0 -0
  717. {remdb-0.3.122 → remdb-0.3.157}/tests/scripts/seed_sample_sessions.py +0 -0
  718. {remdb-0.3.122 → remdb-0.3.157}/tests/scripts/simple_session_demo.py +0 -0
  719. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/__init__.py +0 -0
  720. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/agentic/__init__.py +0 -0
  721. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/agentic/agents/__init__.py +0 -0
  722. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/agentic/agents/test_sse_simulator.py +0 -0
  723. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/agentic/providers/__init__.py +0 -0
  724. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/agentic/providers/test_pydantic_ai.py +0 -0
  725. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/agentic/test_schema.py +0 -0
  726. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/agentic/test_schema_integration.py +0 -0
  727. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/agentic/test_tool_description_suffix.py +0 -0
  728. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/api/__init__.py +0 -0
  729. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/api/test_feedback.py +0 -0
  730. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/api/test_models_endpoint.py +0 -0
  731. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/api/test_sessions_messages.py +0 -0
  732. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/api/test_sse_events.py +0 -0
  733. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/conftest.py +0 -0
  734. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/test_admin_internal.py +0 -0
  735. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/test_registry.py +0 -0
  736. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/test_sql_security.py +0 -0
  737. {remdb-0.3.122 → remdb-0.3.157}/tests/unit/utils/test_agentic_chunking.py +0 -0
  738. {remdb-0.3.122 → remdb-0.3.157}/walkthrough.md +0 -0
@@ -28,6 +28,13 @@ API__PORT=8000
28
28
  API__RELOAD=true
29
29
  API__LOG_LEVEL=info
30
30
 
31
+ # --- API Key Authentication ---
32
+ # Simple API key auth for programmatic access (independent of OAuth)
33
+ # When enabled, all /api/v1/* requests must include X-API-Key header
34
+ # Generate key: python -c "import secrets; print(secrets.token_urlsafe(32))"
35
+ API__API_KEY_ENABLED=false
36
+ API__API_KEY=
37
+
31
38
  # =============================================================================
32
39
  # LLM Provider Settings
33
40
  # =============================================================================
@@ -37,7 +44,7 @@ LLM__MAX_RETRIES=10
37
44
 
38
45
  # Optional: Override models for specific tasks
39
46
  # LLM__EVALUATOR_MODEL=gpt-4.1
40
- # LLM__QUERY_AGENT_MODEL=gpt-4o-mini
47
+ # LLM__QUERY_AGENT_MODEL=gpt-4.1-mini
41
48
 
42
49
  # API Keys (required for LLM providers)
43
50
  LLM__OPENAI_API_KEY=
@@ -71,6 +78,20 @@ AUTH__MICROSOFT__CLIENT_SECRET=
71
78
  AUTH__MICROSOFT__REDIRECT_URI=http://localhost:8000/api/auth/microsoft/callback
72
79
  AUTH__MICROSOFT__TENANT=common
73
80
 
81
+ # =============================================================================
82
+ # Email Settings (Passwordless Login)
83
+ # =============================================================================
84
+ # Email login uses verification codes - no password required
85
+ # Supports Gmail SMTP with App Passwords by default
86
+ # Generate app password at: https://myaccount.google.com/apppasswords
87
+ EMAIL__ENABLED=false
88
+ EMAIL__SMTP_HOST=smtp.gmail.com
89
+ EMAIL__SMTP_PORT=587
90
+ EMAIL__SENDER_EMAIL=
91
+ EMAIL__SENDER_NAME=REM
92
+ EMAIL__APP_PASSWORD=
93
+ EMAIL__LOGIN_CODE_EXPIRY_MINUTES=10
94
+
74
95
  # =============================================================================
75
96
  # OpenTelemetry Settings
76
97
  # =============================================================================
@@ -101,6 +101,7 @@ secrets/
101
101
  *.key
102
102
  *.crt
103
103
  credentials.json
104
+ .pypirc
104
105
 
105
106
  # Build artifacts
106
107
  *.pyc
@@ -0,0 +1 @@
1
+ ��type�str�data�application/pdf�cached_at�A�L�#w��
@@ -0,0 +1,2 @@
1
+ ��type�str�data�application/pdf�cached_at�A�L�h
2
+ 7i
@@ -0,0 +1 @@
1
+ ��type�str�data�application/pdf�cached_at�A�L�#�K
@@ -0,0 +1 @@
1
+ ��type�str�data�application/pdf�cached_at�A�L,�E�$
@@ -0,0 +1 @@
1
+ ��type�str�data�application/pdf�cached_at�A�L,� ��
@@ -0,0 +1 @@
1
+ ��type�str�data�application/pdf�cached_at�A�L�g�o
@@ -0,0 +1 @@
1
+ ��type�str�data�application/pdf�cached_at�A�L,a��:
@@ -0,0 +1 @@
1
+ ��type�str�data�application/pdf�cached_at�A�L,a��
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remdb
3
- Version: 0.3.122
3
+ Version: 0.3.157
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
@@ -12,9 +12,11 @@ Keywords: agents,ai,mcp,memory,postgresql,vector-search
12
12
  Classifier: Development Status :: 3 - Alpha
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3.11
15
16
  Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
16
18
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
17
- Requires-Python: <3.13,>=3.12
19
+ Requires-Python: <3.14,>=3.11
18
20
  Requires-Dist: aioboto3>=13.0.0
19
21
  Requires-Dist: arize-phoenix>=5.0.0
20
22
  Requires-Dist: asyncpg>=0.30.0
@@ -143,9 +145,9 @@ pip install "remdb[all]"
143
145
  git clone https://github.com/Percolation-Labs/remstack-lab.git
144
146
  cd remstack-lab
145
147
 
146
- # Start PostgreSQL with docker-compose
148
+ # Start services (PostgreSQL, Phoenix observability)
147
149
  curl -O https://gist.githubusercontent.com/percolating-sirsh/d117b673bc0edfdef1a5068ccd3cf3e5/raw/docker-compose.prebuilt.yml
148
- docker compose -f docker-compose.prebuilt.yml up -d postgres
150
+ docker compose -f docker-compose.prebuilt.yml up -d
149
151
 
150
152
  # Configure REM (creates ~/.rem/config.yaml and installs database schema)
151
153
  # Add --claude-desktop to register with Claude Desktop app
@@ -177,7 +179,7 @@ rem ask "What is the Bitcoin whitepaper about?"
177
179
  Once configured, you can also use the OpenAI-compatible chat completions API:
178
180
 
179
181
  ```bash
180
- # Start the API server (if not using docker-compose for API)
182
+ # Start all services (PostgreSQL, Phoenix, API)
181
183
  docker compose -f docker-compose.prebuilt.yml up -d
182
184
 
183
185
  # Test the API
@@ -384,14 +386,6 @@ rem process ingest my-agent.yaml --user-id tenant-a --category agents
384
386
  rem ask my-agent "test" --user-id tenant-a
385
387
  ```
386
388
 
387
- ### Advanced: Ontology Extractors
388
-
389
- Custom agents can also be used as **ontology extractors** to extract structured knowledge from files. See [CLAUDE.md](../CLAUDE.md#ontology-extraction-pattern) for details on:
390
- - Multi-provider testing (`provider_configs`)
391
- - Semantic search configuration (`embedding_fields`)
392
- - File matching rules (`OntologyConfig`)
393
- - Dreaming workflow integration
394
-
395
389
  ### Troubleshooting
396
390
 
397
391
  **Schema not found error:**
@@ -1440,45 +1434,156 @@ Successfully installed ... kreuzberg-4.0.0rc1 ... remdb-0.3.10
1440
1434
 
1441
1435
  REM wraps FastAPI - extend it exactly as you would any FastAPI app.
1442
1436
 
1437
+ ### Recommended Project Structure
1438
+
1439
+ REM auto-detects `./agents/` and `./models/` folders - no configuration needed:
1440
+
1441
+ ```
1442
+ my-rem-app/
1443
+ ├── agents/ # Auto-detected for agent schemas
1444
+ │ ├── my-agent.yaml # Custom agent (rem ask my-agent "query")
1445
+ │ └── another-agent.yaml
1446
+ ├── models/ # Auto-detected if __init__.py exists
1447
+ │ └── __init__.py # Register models with @rem.register_model
1448
+ ├── routers/ # Custom FastAPI routers
1449
+ │ └── custom.py
1450
+ ├── main.py # Entry point
1451
+ └── pyproject.toml
1452
+ ```
1453
+
1454
+ ### Quick Start
1455
+
1443
1456
  ```python
1444
- import rem
1457
+ # main.py
1445
1458
  from rem import create_app
1446
- from rem.models.core import CoreModel
1459
+ from fastapi import APIRouter
1447
1460
 
1448
- # 1. Register models (for schema generation)
1449
- rem.register_models(MyModel, AnotherModel)
1461
+ # Create REM app (auto-detects ./agents/ and ./models/)
1462
+ app = create_app()
1450
1463
 
1451
- # 2. Register schema paths (for custom agents/evaluators)
1452
- rem.register_schema_path("./schemas")
1464
+ # Add custom router
1465
+ router = APIRouter(prefix="/custom", tags=["custom"])
1453
1466
 
1454
- # 3. Create app
1455
- app = create_app()
1467
+ @router.get("/hello")
1468
+ async def hello():
1469
+ return {"message": "Hello from custom router!"}
1456
1470
 
1457
- # 4. Extend like normal FastAPI
1458
- app.include_router(my_router)
1471
+ app.include_router(router)
1459
1472
 
1473
+ # Add custom MCP tool
1460
1474
  @app.mcp_server.tool()
1461
1475
  async def my_tool(query: str) -> dict:
1462
- """Custom MCP tool."""
1476
+ """Custom MCP tool available to agents."""
1463
1477
  return {"result": query}
1464
1478
  ```
1465
1479
 
1466
- ### Project Structure
1480
+ ### Custom Models (Auto-Detected)
1481
+
1482
+ ```python
1483
+ # models/__init__.py
1484
+ import rem
1485
+ from rem.models.core import CoreModel
1486
+ from pydantic import Field
1467
1487
 
1488
+ @rem.register_model
1489
+ class MyEntity(CoreModel):
1490
+ """Custom entity - auto-registered for schema generation."""
1491
+ name: str = Field(description="Entity name")
1492
+ status: str = Field(default="active")
1468
1493
  ```
1469
- my-rem-app/
1470
- ├── my_app/
1471
- │ ├── main.py # Entry point (create_app + extensions)
1472
- │ ├── models.py # Custom models (inherit CoreModel)
1473
- │ └── routers/ # Custom FastAPI routers
1474
- ├── schemas/
1475
- │ ├── agents/ # Custom agent YAML schemas
1476
- │ └── evaluators/ # Custom evaluator schemas
1477
- ├── sql/migrations/ # Custom SQL migrations
1478
- └── pyproject.toml
1494
+
1495
+ Run `rem db schema generate` to include your models in the database schema.
1496
+
1497
+ ### Custom Agents (Auto-Detected)
1498
+
1499
+ ```yaml
1500
+ # agents/my-agent.yaml
1501
+ type: object
1502
+ description: |
1503
+ You are a helpful assistant that...
1504
+
1505
+ properties:
1506
+ answer:
1507
+ type: string
1508
+ description: Your response
1509
+
1510
+ required:
1511
+ - answer
1512
+
1513
+ json_schema_extra:
1514
+ kind: agent
1515
+ name: my-agent
1516
+ version: "1.0.0"
1517
+ tools:
1518
+ - search_rem
1479
1519
  ```
1480
1520
 
1481
- Generate this structure with: `rem scaffold my-app`
1521
+ Test with: `rem ask my-agent "Hello!"`
1522
+
1523
+ ### Example Custom Router
1524
+
1525
+ ```python
1526
+ # routers/analytics.py
1527
+ from fastapi import APIRouter, Depends
1528
+ from rem.services.postgres import get_postgres_service
1529
+
1530
+ router = APIRouter(prefix="/analytics", tags=["analytics"])
1531
+
1532
+ @router.get("/stats")
1533
+ async def get_stats():
1534
+ """Get database statistics."""
1535
+ db = get_postgres_service()
1536
+ if not db:
1537
+ return {"error": "Database not available"}
1538
+
1539
+ await db.connect()
1540
+ try:
1541
+ result = await db.execute(
1542
+ "SELECT COUNT(*) as count FROM resources"
1543
+ )
1544
+ return {"resource_count": result[0]["count"]}
1545
+ finally:
1546
+ await db.disconnect()
1547
+
1548
+ @router.get("/recent")
1549
+ async def get_recent(limit: int = 10):
1550
+ """Get recent resources."""
1551
+ db = get_postgres_service()
1552
+ if not db:
1553
+ return {"error": "Database not available"}
1554
+
1555
+ await db.connect()
1556
+ try:
1557
+ result = await db.execute(
1558
+ f"SELECT label, category, created_at FROM resources ORDER BY created_at DESC LIMIT {limit}"
1559
+ )
1560
+ return {"resources": result}
1561
+ finally:
1562
+ await db.disconnect()
1563
+ ```
1564
+
1565
+ Include in main.py:
1566
+
1567
+ ```python
1568
+ from routers.analytics import router as analytics_router
1569
+ app.include_router(analytics_router)
1570
+ ```
1571
+
1572
+ ### Running the App
1573
+
1574
+ ```bash
1575
+ # Development (auto-reload)
1576
+ uv run uvicorn main:app --reload --port 8000
1577
+
1578
+ # Or use rem serve
1579
+ uv run rem serve --reload
1580
+
1581
+ # Test agent
1582
+ uv run rem ask my-agent "What can you help me with?"
1583
+
1584
+ # Test custom endpoint
1585
+ curl http://localhost:8000/analytics/stats
1586
+ ```
1482
1587
 
1483
1588
  ### Extension Points
1484
1589
 
@@ -57,9 +57,9 @@ pip install "remdb[all]"
57
57
  git clone https://github.com/Percolation-Labs/remstack-lab.git
58
58
  cd remstack-lab
59
59
 
60
- # Start PostgreSQL with docker-compose
60
+ # Start services (PostgreSQL, Phoenix observability)
61
61
  curl -O https://gist.githubusercontent.com/percolating-sirsh/d117b673bc0edfdef1a5068ccd3cf3e5/raw/docker-compose.prebuilt.yml
62
- docker compose -f docker-compose.prebuilt.yml up -d postgres
62
+ docker compose -f docker-compose.prebuilt.yml up -d
63
63
 
64
64
  # Configure REM (creates ~/.rem/config.yaml and installs database schema)
65
65
  # Add --claude-desktop to register with Claude Desktop app
@@ -91,7 +91,7 @@ rem ask "What is the Bitcoin whitepaper about?"
91
91
  Once configured, you can also use the OpenAI-compatible chat completions API:
92
92
 
93
93
  ```bash
94
- # Start the API server (if not using docker-compose for API)
94
+ # Start all services (PostgreSQL, Phoenix, API)
95
95
  docker compose -f docker-compose.prebuilt.yml up -d
96
96
 
97
97
  # Test the API
@@ -298,14 +298,6 @@ rem process ingest my-agent.yaml --user-id tenant-a --category agents
298
298
  rem ask my-agent "test" --user-id tenant-a
299
299
  ```
300
300
 
301
- ### Advanced: Ontology Extractors
302
-
303
- Custom agents can also be used as **ontology extractors** to extract structured knowledge from files. See [CLAUDE.md](../CLAUDE.md#ontology-extraction-pattern) for details on:
304
- - Multi-provider testing (`provider_configs`)
305
- - Semantic search configuration (`embedding_fields`)
306
- - File matching rules (`OntologyConfig`)
307
- - Dreaming workflow integration
308
-
309
301
  ### Troubleshooting
310
302
 
311
303
  **Schema not found error:**
@@ -1354,45 +1346,156 @@ Successfully installed ... kreuzberg-4.0.0rc1 ... remdb-0.3.10
1354
1346
 
1355
1347
  REM wraps FastAPI - extend it exactly as you would any FastAPI app.
1356
1348
 
1349
+ ### Recommended Project Structure
1350
+
1351
+ REM auto-detects `./agents/` and `./models/` folders - no configuration needed:
1352
+
1353
+ ```
1354
+ my-rem-app/
1355
+ ├── agents/ # Auto-detected for agent schemas
1356
+ │ ├── my-agent.yaml # Custom agent (rem ask my-agent "query")
1357
+ │ └── another-agent.yaml
1358
+ ├── models/ # Auto-detected if __init__.py exists
1359
+ │ └── __init__.py # Register models with @rem.register_model
1360
+ ├── routers/ # Custom FastAPI routers
1361
+ │ └── custom.py
1362
+ ├── main.py # Entry point
1363
+ └── pyproject.toml
1364
+ ```
1365
+
1366
+ ### Quick Start
1367
+
1357
1368
  ```python
1358
- import rem
1369
+ # main.py
1359
1370
  from rem import create_app
1360
- from rem.models.core import CoreModel
1371
+ from fastapi import APIRouter
1361
1372
 
1362
- # 1. Register models (for schema generation)
1363
- rem.register_models(MyModel, AnotherModel)
1373
+ # Create REM app (auto-detects ./agents/ and ./models/)
1374
+ app = create_app()
1364
1375
 
1365
- # 2. Register schema paths (for custom agents/evaluators)
1366
- rem.register_schema_path("./schemas")
1376
+ # Add custom router
1377
+ router = APIRouter(prefix="/custom", tags=["custom"])
1367
1378
 
1368
- # 3. Create app
1369
- app = create_app()
1379
+ @router.get("/hello")
1380
+ async def hello():
1381
+ return {"message": "Hello from custom router!"}
1370
1382
 
1371
- # 4. Extend like normal FastAPI
1372
- app.include_router(my_router)
1383
+ app.include_router(router)
1373
1384
 
1385
+ # Add custom MCP tool
1374
1386
  @app.mcp_server.tool()
1375
1387
  async def my_tool(query: str) -> dict:
1376
- """Custom MCP tool."""
1388
+ """Custom MCP tool available to agents."""
1377
1389
  return {"result": query}
1378
1390
  ```
1379
1391
 
1380
- ### Project Structure
1392
+ ### Custom Models (Auto-Detected)
1393
+
1394
+ ```python
1395
+ # models/__init__.py
1396
+ import rem
1397
+ from rem.models.core import CoreModel
1398
+ from pydantic import Field
1381
1399
 
1400
+ @rem.register_model
1401
+ class MyEntity(CoreModel):
1402
+ """Custom entity - auto-registered for schema generation."""
1403
+ name: str = Field(description="Entity name")
1404
+ status: str = Field(default="active")
1382
1405
  ```
1383
- my-rem-app/
1384
- ├── my_app/
1385
- │ ├── main.py # Entry point (create_app + extensions)
1386
- │ ├── models.py # Custom models (inherit CoreModel)
1387
- │ └── routers/ # Custom FastAPI routers
1388
- ├── schemas/
1389
- │ ├── agents/ # Custom agent YAML schemas
1390
- │ └── evaluators/ # Custom evaluator schemas
1391
- ├── sql/migrations/ # Custom SQL migrations
1392
- └── pyproject.toml
1406
+
1407
+ Run `rem db schema generate` to include your models in the database schema.
1408
+
1409
+ ### Custom Agents (Auto-Detected)
1410
+
1411
+ ```yaml
1412
+ # agents/my-agent.yaml
1413
+ type: object
1414
+ description: |
1415
+ You are a helpful assistant that...
1416
+
1417
+ properties:
1418
+ answer:
1419
+ type: string
1420
+ description: Your response
1421
+
1422
+ required:
1423
+ - answer
1424
+
1425
+ json_schema_extra:
1426
+ kind: agent
1427
+ name: my-agent
1428
+ version: "1.0.0"
1429
+ tools:
1430
+ - search_rem
1393
1431
  ```
1394
1432
 
1395
- Generate this structure with: `rem scaffold my-app`
1433
+ Test with: `rem ask my-agent "Hello!"`
1434
+
1435
+ ### Example Custom Router
1436
+
1437
+ ```python
1438
+ # routers/analytics.py
1439
+ from fastapi import APIRouter, Depends
1440
+ from rem.services.postgres import get_postgres_service
1441
+
1442
+ router = APIRouter(prefix="/analytics", tags=["analytics"])
1443
+
1444
+ @router.get("/stats")
1445
+ async def get_stats():
1446
+ """Get database statistics."""
1447
+ db = get_postgres_service()
1448
+ if not db:
1449
+ return {"error": "Database not available"}
1450
+
1451
+ await db.connect()
1452
+ try:
1453
+ result = await db.execute(
1454
+ "SELECT COUNT(*) as count FROM resources"
1455
+ )
1456
+ return {"resource_count": result[0]["count"]}
1457
+ finally:
1458
+ await db.disconnect()
1459
+
1460
+ @router.get("/recent")
1461
+ async def get_recent(limit: int = 10):
1462
+ """Get recent resources."""
1463
+ db = get_postgres_service()
1464
+ if not db:
1465
+ return {"error": "Database not available"}
1466
+
1467
+ await db.connect()
1468
+ try:
1469
+ result = await db.execute(
1470
+ f"SELECT label, category, created_at FROM resources ORDER BY created_at DESC LIMIT {limit}"
1471
+ )
1472
+ return {"resources": result}
1473
+ finally:
1474
+ await db.disconnect()
1475
+ ```
1476
+
1477
+ Include in main.py:
1478
+
1479
+ ```python
1480
+ from routers.analytics import router as analytics_router
1481
+ app.include_router(analytics_router)
1482
+ ```
1483
+
1484
+ ### Running the App
1485
+
1486
+ ```bash
1487
+ # Development (auto-reload)
1488
+ uv run uvicorn main:app --reload --port 8000
1489
+
1490
+ # Or use rem serve
1491
+ uv run rem serve --reload
1492
+
1493
+ # Test agent
1494
+ uv run rem ask my-agent "What can you help me with?"
1495
+
1496
+ # Test custom endpoint
1497
+ curl http://localhost:8000/analytics/stats
1498
+ ```
1396
1499
 
1397
1500
  ### Extension Points
1398
1501
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "remdb"
3
- version = "0.3.122"
3
+ version = "0.3.157"
4
4
  description = "Resources Entities Moments - Bio-inspired memory system for agentic AI workloads"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -12,10 +12,12 @@ classifiers = [
12
12
  "Development Status :: 3 - Alpha",
13
13
  "Intended Audience :: Developers",
14
14
  "License :: OSI Approved :: MIT License",
15
+ "Programming Language :: Python :: 3.11",
15
16
  "Programming Language :: Python :: 3.12",
17
+ "Programming Language :: Python :: 3.13",
16
18
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
17
19
  ]
18
- requires-python = ">=3.12,<3.13"
20
+ requires-python = ">=3.11,<3.14"
19
21
 
20
22
  dependencies = [
21
23
  # Core Framework
@@ -153,7 +155,7 @@ markers = [
153
155
  ]
154
156
 
155
157
  [tool.ruff]
156
- target-version = "py312"
158
+ target-version = "py311"
157
159
  line-length = 100
158
160
 
159
161
  [tool.ruff.lint]
@@ -177,7 +179,7 @@ ignore = [
177
179
 
178
180
  [tool.mypy]
179
181
  plugins = ["pydantic.mypy"]
180
- python_version = "3.12"
182
+ python_version = "3.11"
181
183
  strict = false
182
184
 
183
185
  # Pragmatic type checking - focus on real bugs, not noise
@@ -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
  ]