remdb 0.3.120__tar.gz → 0.3.148__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 (732) hide show
  1. {remdb-0.3.120 → remdb-0.3.148}/.env.example +22 -1
  2. {remdb-0.3.120 → remdb-0.3.148}/.gitignore +1 -0
  3. remdb-0.3.148/.kreuzberg/mime/2470f3a5e2d1953b.msgpack +1 -0
  4. remdb-0.3.148/.kreuzberg/mime/34f1cfc7a58e8b0c.msgpack +2 -0
  5. remdb-0.3.148/.kreuzberg/mime/56bf449feab17e6d.msgpack +1 -0
  6. remdb-0.3.148/.kreuzberg/mime/8cace0ec228b43d6.msgpack +1 -0
  7. remdb-0.3.148/.kreuzberg/mime/99f1579d6a6790ad.msgpack +1 -0
  8. remdb-0.3.148/.kreuzberg/mime/a0d60cff1e5950a6.msgpack +1 -0
  9. remdb-0.3.148/.kreuzberg/mime/b2b5204d4dfab9dc.msgpack +1 -0
  10. remdb-0.3.148/.kreuzberg/mime/d1df948b17e4d9fc.msgpack +1 -0
  11. {remdb-0.3.120 → remdb-0.3.148}/PKG-INFO +159 -145
  12. {remdb-0.3.120 → remdb-0.3.148}/README.md +155 -143
  13. {remdb-0.3.120 → remdb-0.3.148}/pyproject.toml +6 -4
  14. remdb-0.3.148/src/rem/agentic/mcp/tool_wrapper.py +244 -0
  15. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/providers/phoenix.py +371 -108
  16. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/providers/pydantic_ai.py +122 -43
  17. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/schema.py +4 -1
  18. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/auth.py +162 -3
  19. remdb-0.3.148/src/rem/auth/__init__.py +36 -0
  20. {remdb-0.3.120 → remdb-0.3.148}/src/rem/auth/middleware.py +66 -1
  21. {remdb-0.3.120 → remdb-0.3.148}/src/rem/auth/providers/__init__.py +4 -1
  22. remdb-0.3.148/src/rem/auth/providers/email.py +206 -0
  23. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/configure.py +3 -4
  24. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/experiments.py +468 -76
  25. remdb-0.3.148/src/rem/cli/commands/session.py +336 -0
  26. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/dreaming.py +2 -2
  27. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/main.py +2 -0
  28. {remdb-0.3.120 → remdb-0.3.148}/src/rem/config.py +8 -1
  29. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/core/experiment.py +58 -14
  30. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/ontology.py +1 -1
  31. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/ontology_config.py +1 -1
  32. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/examples/contract-analyzer.yaml +1 -1
  33. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/examples/contract-extractor.yaml +1 -1
  34. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/examples/cv-parser.yaml +1 -1
  35. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/__init__.py +3 -1
  36. remdb-0.3.148/src/rem/services/email/__init__.py +10 -0
  37. remdb-0.3.148/src/rem/services/email/service.py +399 -0
  38. remdb-0.3.148/src/rem/services/email/templates.py +360 -0
  39. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/postgres/README.md +38 -0
  40. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/postgres/diff_service.py +19 -3
  41. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/postgres/pydantic_to_sqlalchemy.py +45 -13
  42. {remdb-0.3.120 → remdb-0.3.148}/src/rem/settings.py +216 -10
  43. {remdb-0.3.120 → remdb-0.3.148}/src/rem/sql/migrations/002_install_models.sql +91 -91
  44. remdb-0.3.148/src/rem/sql/migrations/005_schema_update.sql +145 -0
  45. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/README.md +45 -0
  46. remdb-0.3.148/src/rem/utils/files.py +323 -0
  47. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/schema_loader.py +93 -2
  48. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/vision.py +1 -1
  49. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_embedding_worker.py +3 -1
  50. remdb-0.3.148/tests/unit/test_api_key_auth.py +133 -0
  51. remdb-0.3.148/tests/unit/test_resource_tools.py +136 -0
  52. remdb-0.3.148/tests/unit/test_session_cli.py +124 -0
  53. remdb-0.3.120/src/rem/agentic/mcp/tool_wrapper.py +0 -133
  54. remdb-0.3.120/src/rem/auth/__init__.py +0 -26
  55. remdb-0.3.120/src/rem/utils/files.py +0 -167
  56. remdb-0.3.120/tests/integration/test_feedback_endpoint.py +0 -127
  57. {remdb-0.3.120 → remdb-0.3.148}/.claude/archive/PUBLISH.md +0 -0
  58. {remdb-0.3.120 → remdb-0.3.148}/.claude/archive/QUICKSTART.md +0 -0
  59. {remdb-0.3.120 → remdb-0.3.148}/.claude/archive/publish.sh +0 -0
  60. {remdb-0.3.120 → remdb-0.3.148}/.claude/settings.local.json +0 -0
  61. {remdb-0.3.120 → remdb-0.3.148}/.dockerignore +0 -0
  62. {remdb-0.3.120 → remdb-0.3.148}/.experiments/README.md +0 -0
  63. {remdb-0.3.120 → remdb-0.3.148}/.experiments/RUN_ON_CLUSTER.md +0 -0
  64. {remdb-0.3.120 → remdb-0.3.148}/.experiments/TESTING_GUIDE.md +0 -0
  65. {remdb-0.3.120 → remdb-0.3.148}/.experiments/test-phoenix-integration.sh +0 -0
  66. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/039976f3b4dc7549.msgpack +0 -0
  67. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/045e65492b634d11.msgpack +0 -0
  68. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/07f5cd0e3fb1d287.msgpack +0 -0
  69. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/08f4ae339838b804.msgpack +0 -0
  70. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/0a64e58ae1289686.msgpack +0 -0
  71. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/0da06e67dd284834.msgpack +0 -0
  72. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/0e200bfe2ea523f2.msgpack +0 -0
  73. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/10b1925cb6007390.msgpack +0 -0
  74. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/11c55125d2be1895.msgpack +0 -0
  75. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/12dd62bbe8ee9b6a.msgpack +0 -0
  76. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/18f78825b8e302a8.msgpack +0 -0
  77. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/19a7ff44501eb3f9.msgpack +0 -0
  78. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/1c9cec1b6f266e8d.msgpack +0 -0
  79. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/1db0e7d4ac2443af.msgpack +0 -0
  80. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/1f32d592b118d944.msgpack +0 -0
  81. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/20db05a60f4c6ce3.msgpack +0 -0
  82. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/220746359cef9884.msgpack +0 -0
  83. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/24034098fd444b39.msgpack +0 -0
  84. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/24acc2df261ae549.msgpack +0 -0
  85. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/26a8ed0cdfc0ccab.msgpack +0 -0
  86. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/28e3c2bf25dfc659.msgpack +0 -0
  87. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/295a37ef869b0a49.msgpack +0 -0
  88. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/2a6f58009e01ad65.msgpack +0 -0
  89. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/2ab7ae3b2e42644e.msgpack +0 -0
  90. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/2b24548c2f91f8b9.msgpack +0 -0
  91. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/2bb63e6235d19b40.msgpack +0 -0
  92. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/2c74a0f17cde1b0c.msgpack +0 -0
  93. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/2d728912eb223a33.msgpack +0 -0
  94. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/2de80149b410a676.msgpack +0 -0
  95. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/2e1001cbed04103c.msgpack +0 -0
  96. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/32d99ccf71d10a38.msgpack +0 -0
  97. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/3353ae12a176a9bd.msgpack +0 -0
  98. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/3c5bd974fb83b573.msgpack +0 -0
  99. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/3ca9da43dd834bca.msgpack +0 -0
  100. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/3e9db2b8a87873c7.msgpack +0 -0
  101. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/3ff1b430e0b510d5.msgpack +0 -0
  102. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/4035607526c8600d.msgpack +0 -0
  103. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/40f0415d564cb996.msgpack +0 -0
  104. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/4388f8ee095c9ed8.msgpack +0 -0
  105. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/439f422b7f8dc467.msgpack +0 -0
  106. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/452c56ffd625931f.msgpack +0 -0
  107. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/45ee850e300157c8.msgpack +0 -0
  108. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/45f79b5f90a07f0e.msgpack +0 -0
  109. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/487e56b12d123968.msgpack +0 -0
  110. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/49be62bf170de12a.msgpack +0 -0
  111. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/4b3e165ec4ba87d0.msgpack +0 -0
  112. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/505ff13d9ac8f006.msgpack +0 -0
  113. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/51e81cbe7899e310.msgpack +0 -0
  114. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/537dea93b57ffce5.msgpack +0 -0
  115. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/56a9f1cd9ec05384.msgpack +0 -0
  116. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/57ab5fe18c74538b.msgpack +0 -0
  117. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/5a11f436d88e89cd.msgpack +0 -0
  118. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/5b10dca1c6db6714.msgpack +0 -0
  119. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/5eb63bbe412735a4.msgpack +0 -0
  120. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/5ebca8549bb3ff2b.msgpack +0 -0
  121. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/5fef074c57dd118f.msgpack +0 -0
  122. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/60f343229f836ab6.msgpack +0 -0
  123. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/6153f83bf3713b32.msgpack +0 -0
  124. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/6488134e7b6dd403.msgpack +0 -0
  125. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/68e7b00767be2e16.msgpack +0 -0
  126. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/6afac5499ef0a938.msgpack +0 -0
  127. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/6bd93d4fd4cc3893.msgpack +0 -0
  128. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/6defbba8bfc76983.msgpack +0 -0
  129. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/6e37f5165f71513b.msgpack +0 -0
  130. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/6f9130d5f4db8b28.msgpack +0 -0
  131. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/6fc0d79c16c59de5.msgpack +0 -0
  132. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/774b8c209528323e.msgpack +0 -0
  133. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/78c509bc3a9d93c4.msgpack +0 -0
  134. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/798017037907ab5f.msgpack +0 -0
  135. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/7a4fd9fd84ae6899.msgpack +0 -0
  136. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/7b094993adee6e1a.msgpack +0 -0
  137. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/7c3ad418912e7c09.msgpack +0 -0
  138. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/7f630276be2a1503.msgpack +0 -0
  139. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/80fd68e8a4ac6556.msgpack +0 -0
  140. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/819aabcfdf1334af.msgpack +0 -0
  141. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/81ea65c652232174.msgpack +0 -0
  142. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/84c4f70ba7616566.msgpack +0 -0
  143. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/856e8ba75c4d220e.msgpack +0 -0
  144. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/8d1ecc30d7d58b41.msgpack +0 -0
  145. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/8e2e4ab7c05925fa.msgpack +0 -0
  146. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/8e89a980bc3b92d8.msgpack +0 -0
  147. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/8f6a9b01f15883f5.msgpack +0 -0
  148. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/9091b9d61e026046.msgpack +0 -0
  149. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/927a028cf723c70d.msgpack +0 -0
  150. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/94bda8f2cabc1358.msgpack +0 -0
  151. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/95313ccec52beb53.msgpack +0 -0
  152. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/954fee40bb61432b.msgpack +0 -0
  153. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/9592cc24f2bf0d77.msgpack +0 -0
  154. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/967396ed95832197.msgpack +0 -0
  155. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/9804f3b02bf98e83.msgpack +0 -0
  156. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/9936890e55f094f3.msgpack +0 -0
  157. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/99405cab6cc35283.msgpack +0 -0
  158. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/99e3da57a007bc59.msgpack +0 -0
  159. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/9c265a028ee05977.msgpack +0 -0
  160. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/9f02e484a5feb3af.msgpack +0 -0
  161. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/9fd81ffc0b3282f8.msgpack +0 -0
  162. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/a2bcfb3e4cf75d71.msgpack +0 -0
  163. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/a3fd1a45a0ef02f1.msgpack +0 -0
  164. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/a72acced3b5f0c28.msgpack +0 -0
  165. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/a78fa3051259d29c.msgpack +0 -0
  166. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/a964045be65be2d2.msgpack +0 -0
  167. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/ae8bc0c15954a96a.msgpack +0 -0
  168. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/af05b5754cd245b5.msgpack +0 -0
  169. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/af28c894e94dc85c.msgpack +0 -0
  170. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/b0a26c1396c336b2.msgpack +0 -0
  171. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/b2f8df0bdc713008.msgpack +0 -0
  172. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/b361fc308a3b9ab1.msgpack +0 -0
  173. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/b374846290238cd1.msgpack +0 -0
  174. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/b4b163b746d0aa53.msgpack +0 -0
  175. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/b68845f6e8da9be3.msgpack +0 -0
  176. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/b7e677bf8412e9bd.msgpack +0 -0
  177. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/b99ba32d31caa65e.msgpack +0 -0
  178. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/bc02d7c24ec8eccc.msgpack +0 -0
  179. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/bc1a967be3c37e18.msgpack +0 -0
  180. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/bc89d1801e46fb3c.msgpack +0 -0
  181. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/bce873a224061155.msgpack +0 -0
  182. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/bea4de84b22aebbc.msgpack +0 -0
  183. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/c5f723dcb1ff4b6f.msgpack +0 -0
  184. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/c6ca46f28d7798dd.msgpack +0 -0
  185. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/c6e2f4ede9282c2f.msgpack +0 -0
  186. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/c761de11e901384a.msgpack +0 -0
  187. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/c99399d1889fa84c.msgpack +0 -0
  188. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/c9fd297a955f2355.msgpack +0 -0
  189. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/ca9a80b78b7aa22c.msgpack +0 -0
  190. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/cb9503b8979b185d.msgpack +0 -0
  191. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/cbc6cfb0a51ab6bb.msgpack +0 -0
  192. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/cc3bda1ed2e95150.msgpack +0 -0
  193. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/ceb98745ab5dbe70.msgpack +0 -0
  194. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/d1e1e212112ab926.msgpack +0 -0
  195. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/d4b766742cf2328a.msgpack +0 -0
  196. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/d93262cc2f01da93.msgpack +0 -0
  197. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/d977ad06778acf8d.msgpack +0 -0
  198. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/da9376a352a900b8.msgpack +0 -0
  199. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/db2816895dd01979.msgpack +0 -0
  200. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/db3a782c367dbe28.msgpack +0 -0
  201. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/db825a17acae232c.msgpack +0 -0
  202. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/dc96bd8d8ad04ee4.msgpack +0 -0
  203. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/dd1562878ff3c0f5.msgpack +0 -0
  204. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/de117be85702ebbc.msgpack +0 -0
  205. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/e3aafc52b94d322c.msgpack +0 -0
  206. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/e53a6e77d7808ee8.msgpack +0 -0
  207. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/e7dc452a2aae9b10.msgpack +0 -0
  208. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/ebf2fcb04221173e.msgpack +0 -0
  209. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/ebf527595602c7cc.msgpack +0 -0
  210. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/ed6a8410124b956b.msgpack +0 -0
  211. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/f1801152a72fbdf0.msgpack +0 -0
  212. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/f6fe984552a62891.msgpack +0 -0
  213. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/f81bbef279fc5018.msgpack +0 -0
  214. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/f975369ecf8cfe1b.msgpack +0 -0
  215. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/mime/fd21c48c0c429b77.msgpack +0 -0
  216. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/0354796dc060829e.msgpack +0 -0
  217. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/039f9af1f7851836.msgpack +0 -0
  218. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/05e117af5b509bae.msgpack +0 -0
  219. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/0bc34e3949fbef01.msgpack +0 -0
  220. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/0ce495589c7221d3.msgpack +0 -0
  221. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/0dd1cda742544db1.msgpack +0 -0
  222. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/0eba31912f25f3eb.msgpack +0 -0
  223. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/0f2703145ac02172.msgpack +0 -0
  224. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/0fa09530ccf28805.msgpack +0 -0
  225. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/0fd8e540615171e8.msgpack +0 -0
  226. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/101ff2c4997376a9.msgpack +0 -0
  227. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/12c490c06def9488.msgpack +0 -0
  228. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/18257c152bba13a6.msgpack +0 -0
  229. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/1d4a6a418d2b6a64.msgpack +0 -0
  230. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/1e61d3c782893a54.msgpack +0 -0
  231. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/1fc92f87c93d4fd9.msgpack +0 -0
  232. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/2c9de54bccd13e11.msgpack +0 -0
  233. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/2f3ea5c1badef128.msgpack +0 -0
  234. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/32aa8c660cf91963.msgpack +0 -0
  235. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/35111034d5ad26a6.msgpack +0 -0
  236. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/352eb0c7f720c196.msgpack +0 -0
  237. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/3a2e224daffb8e3d.msgpack +0 -0
  238. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/3ee772a67521e170.msgpack +0 -0
  239. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/401e93fa320273da.msgpack +0 -0
  240. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/40d9b4294628036d.msgpack +0 -0
  241. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/44592db880e5ec3f.msgpack +0 -0
  242. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/45870b434cfe0c85.msgpack +0 -0
  243. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/458943c95381e6de.msgpack +0 -0
  244. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/4ca27bb3cae67ad6.msgpack +0 -0
  245. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/4e0d19bea7253cc8.msgpack +0 -0
  246. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/4f02317672f3198b.msgpack +0 -0
  247. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/56a98d6dbd85ebed.msgpack +0 -0
  248. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/5d6b31c824d8741e.msgpack +0 -0
  249. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/5f75509e9ed27170.msgpack +0 -0
  250. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/5fcfe11a675bac8b.msgpack +0 -0
  251. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/61b8b2fc9077f91a.msgpack +0 -0
  252. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/642c92672daf5c43.msgpack +0 -0
  253. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/655ff32e6cd550bc.msgpack +0 -0
  254. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/65bc24178c843052.msgpack +0 -0
  255. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/66cd62510980471d.msgpack +0 -0
  256. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/681c1dd84a2bdf26.msgpack +0 -0
  257. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/6838fe47e511b2b8.msgpack +0 -0
  258. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/6a609539ed167213.msgpack +0 -0
  259. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/74b6b71e76efb9c9.msgpack +0 -0
  260. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/75e719c76477d44f.msgpack +0 -0
  261. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/77e0e879c2c95195.msgpack +0 -0
  262. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/7a15ef0ba4aa5660.msgpack +0 -0
  263. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/7a9dd710389dde99.msgpack +0 -0
  264. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/7b783286f80ab872.msgpack +0 -0
  265. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/7d1298c12634bc16.msgpack +0 -0
  266. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/7ddf2b8e4c6cb2e3.msgpack +0 -0
  267. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/7fc2229fcb868522.msgpack +0 -0
  268. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/85abdb138905726a.msgpack +0 -0
  269. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/884e41282eb896c5.msgpack +0 -0
  270. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/8a703994c30b19ea.msgpack +0 -0
  271. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/8aca0021ebe63f8e.msgpack +0 -0
  272. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/8bc107890e1ab320.msgpack +0 -0
  273. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/8c1a66ea86c98f76.msgpack +0 -0
  274. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/8dd5ac3207b6ca3b.msgpack +0 -0
  275. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/8f898c00eea3a93b.msgpack +0 -0
  276. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/931cbc8a4cbebf70.msgpack +0 -0
  277. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/932804c1aff4d044.msgpack +0 -0
  278. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/94b151c44f8a3588.msgpack +0 -0
  279. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/94ce2189385c970f.msgpack +0 -0
  280. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/94fa736d741d63be.msgpack +0 -0
  281. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/95bd2009772c07fd.msgpack +0 -0
  282. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/95f748fee80393ef.msgpack +0 -0
  283. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/9b1e26a55ef34ee9.msgpack +0 -0
  284. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/9f3159c9912586db.msgpack +0 -0
  285. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/a17c34748d867e85.msgpack +0 -0
  286. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/a2ca0018b46feabd.msgpack +0 -0
  287. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/a60b9031cf48ebba.msgpack +0 -0
  288. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/a9be790d1f0ae7ec.msgpack +0 -0
  289. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/ac4d6823c4034fe6.msgpack +0 -0
  290. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/ad80625c2fe055e2.msgpack +0 -0
  291. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/b102691e3c3e4cae.msgpack +0 -0
  292. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/b34027c96f8daa30.msgpack +0 -0
  293. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/b639b463e04459db.msgpack +0 -0
  294. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/b7e540f21b7f0271.msgpack +0 -0
  295. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/ba460ba22b61b3ac.msgpack +0 -0
  296. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/ba7499ca4c58ff94.msgpack +0 -0
  297. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/be2d027b571e9344.msgpack +0 -0
  298. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/c1fff30850bb8b6f.msgpack +0 -0
  299. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/c3889a8993fc490d.msgpack +0 -0
  300. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/c51c4fa6e6b83f7e.msgpack +0 -0
  301. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/c57ca30ea53e2d68.msgpack +0 -0
  302. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/c64c433f4452d82a.msgpack +0 -0
  303. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/c91739ca8dcc39ea.msgpack +0 -0
  304. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/c91d5e81eba0d3c9.msgpack +0 -0
  305. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/c9fecad2b9f0357c.msgpack +0 -0
  306. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/cb7fab9ab7b8c520.msgpack +0 -0
  307. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/cbbaeea4c7d24156.msgpack +0 -0
  308. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/cc7dd2a0003c03d8.msgpack +0 -0
  309. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/ce64ddc6701623a7.msgpack +0 -0
  310. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/d19b01ce83c8c71a.msgpack +0 -0
  311. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/d5aae4af1fe94a3a.msgpack +0 -0
  312. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/d5c47dfe60be1592.msgpack +0 -0
  313. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/d7eef627315eeab2.msgpack +0 -0
  314. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/d81cb4d0b47db4ae.msgpack +0 -0
  315. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/deed4c82c27e2b5d.msgpack +0 -0
  316. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/df1c0ed33adf634d.msgpack +0 -0
  317. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/e1c2af52b798715b.msgpack +0 -0
  318. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/e249b7de89e07bbc.msgpack +0 -0
  319. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/e6b6c0b80707ee08.msgpack +0 -0
  320. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/e74d1c6e8e950e20.msgpack +0 -0
  321. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/e9d2da361090c228.msgpack +0 -0
  322. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/ec8c114b8a360379.msgpack +0 -0
  323. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/f1772556a9442724.msgpack +0 -0
  324. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/f4753f23f51fe441.msgpack +0 -0
  325. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/f52c654a914ee356.msgpack +0 -0
  326. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/f6187d9353655ff5.msgpack +0 -0
  327. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/f766aa4cfdca2770.msgpack +0 -0
  328. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/fabcc3a4db082252.msgpack +0 -0
  329. {remdb-0.3.120 → remdb-0.3.148}/.kreuzberg/tables/fec2d3d5372c2bcc.msgpack +0 -0
  330. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/Activate.ps1 +0 -0
  331. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/activate +0 -0
  332. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/activate-global-python-argcomplete +0 -0
  333. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/activate.csh +0 -0
  334. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/activate.fish +0 -0
  335. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/alembic +0 -0
  336. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/arize-phoenix +0 -0
  337. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/cyclopts +0 -0
  338. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/distro +0 -0
  339. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/docutils +0 -0
  340. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/dotenv +0 -0
  341. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/email_validator +0 -0
  342. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/f2py +0 -0
  343. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/fastapi +0 -0
  344. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/fastavro +0 -0
  345. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/fastmcp +0 -0
  346. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/genai-prices +0 -0
  347. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/get_gprof +0 -0
  348. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/get_objgraph +0 -0
  349. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/griffe +0 -0
  350. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/hf +0 -0
  351. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/httpx +0 -0
  352. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/hypercorn +0 -0
  353. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/inv +0 -0
  354. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/invoke +0 -0
  355. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/jp.py +0 -0
  356. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/jsonpath_ng +0 -0
  357. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/jsonschema +0 -0
  358. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/keyring +0 -0
  359. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/kreuzberg +0 -0
  360. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/logfire +0 -0
  361. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/mako-render +0 -0
  362. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/markdown-it +0 -0
  363. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/mcp +0 -0
  364. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/mpire-dashboard +0 -0
  365. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/normalizer +0 -0
  366. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/numpy-config +0 -0
  367. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/openai +0 -0
  368. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/opentelemetry-bootstrap +0 -0
  369. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/opentelemetry-instrument +0 -0
  370. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pai +0 -0
  371. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/phoenix +0 -0
  372. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pip +0 -0
  373. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pip3 +0 -0
  374. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pip3.12 +0 -0
  375. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pygmentize +0 -0
  376. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pyrsa-decrypt +0 -0
  377. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pyrsa-encrypt +0 -0
  378. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pyrsa-keygen +0 -0
  379. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pyrsa-priv2pub +0 -0
  380. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pyrsa-sign +0 -0
  381. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pyrsa-verify +0 -0
  382. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pystache +0 -0
  383. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/pystache-test +0 -0
  384. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/python +0 -0
  385. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/python-argcomplete-check-easy-install-script +0 -0
  386. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/python3 +0 -0
  387. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/python3.12 +0 -0
  388. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/register-python-argcomplete +0 -0
  389. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rem +0 -0
  390. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rst2html +0 -0
  391. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rst2html4 +0 -0
  392. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rst2html5 +0 -0
  393. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rst2latex +0 -0
  394. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rst2man +0 -0
  395. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rst2odt +0 -0
  396. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rst2pseudoxml +0 -0
  397. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rst2s5 +0 -0
  398. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rst2xetex +0 -0
  399. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/rst2xml +0 -0
  400. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/strawberry +0 -0
  401. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/tiny-agents +0 -0
  402. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/tqdm +0 -0
  403. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/undill +0 -0
  404. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/uvicorn +0 -0
  405. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/watchfiles +0 -0
  406. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/bin/websockets +0 -0
  407. {remdb-0.3.120 → remdb-0.3.148}/.venv-test/pyvenv.cfg +0 -0
  408. {remdb-0.3.120 → remdb-0.3.148}/Dockerfile +0 -0
  409. {remdb-0.3.120 → remdb-0.3.148}/Tiltfile +0 -0
  410. {remdb-0.3.120 → remdb-0.3.148}/alembic/README.md +0 -0
  411. {remdb-0.3.120 → remdb-0.3.148}/alembic/env.py +0 -0
  412. {remdb-0.3.120 → remdb-0.3.148}/alembic/script.py.mako +0 -0
  413. {remdb-0.3.120 → remdb-0.3.148}/alembic.ini +0 -0
  414. {remdb-0.3.120 → remdb-0.3.148}/dev-setup.sh +0 -0
  415. {remdb-0.3.120 → remdb-0.3.148}/docker-compose.prebuilt.yml +0 -0
  416. {remdb-0.3.120 → remdb-0.3.148}/docker-compose.test.yml +0 -0
  417. {remdb-0.3.120 → remdb-0.3.148}/docker-compose.yml +0 -0
  418. {remdb-0.3.120 → remdb-0.3.148}/src/rem/__init__.py +0 -0
  419. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/README.md +0 -0
  420. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/__init__.py +0 -0
  421. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/agents/README.md +0 -0
  422. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/agents/__init__.py +0 -0
  423. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/agents/sse_simulator.py +0 -0
  424. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/context.py +0 -0
  425. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/context_builder.py +0 -0
  426. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/llm_provider_models.py +0 -0
  427. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/mcp/__init__.py +0 -0
  428. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/otel/__init__.py +0 -0
  429. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/otel/setup.py +0 -0
  430. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/query.py +0 -0
  431. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/query_helper.py +0 -0
  432. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/serialization.py +0 -0
  433. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/tools/__init__.py +0 -0
  434. {remdb-0.3.120 → remdb-0.3.148}/src/rem/agentic/tools/rem_tools.py +0 -0
  435. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/README.md +0 -0
  436. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/deps.py +0 -0
  437. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/main.py +0 -0
  438. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/mcp_router/prompts.py +0 -0
  439. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/mcp_router/resources.py +0 -0
  440. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/mcp_router/server.py +0 -0
  441. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/mcp_router/tools.py +0 -0
  442. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/middleware/tracking.py +0 -0
  443. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/admin.py +0 -0
  444. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/chat/__init__.py +0 -0
  445. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/chat/completions.py +0 -0
  446. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/chat/json_utils.py +0 -0
  447. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/chat/models.py +0 -0
  448. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/chat/otel_utils.py +0 -0
  449. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/chat/sse_events.py +0 -0
  450. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/chat/streaming.py +0 -0
  451. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/dev.py +0 -0
  452. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/feedback.py +0 -0
  453. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/messages.py +0 -0
  454. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/models.py +0 -0
  455. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/query.py +0 -0
  456. {remdb-0.3.120 → remdb-0.3.148}/src/rem/api/routers/shared_sessions.py +0 -0
  457. {remdb-0.3.120 → remdb-0.3.148}/src/rem/auth/README.md +0 -0
  458. {remdb-0.3.120 → remdb-0.3.148}/src/rem/auth/providers/base.py +0 -0
  459. {remdb-0.3.120 → remdb-0.3.148}/src/rem/auth/providers/google.py +0 -0
  460. {remdb-0.3.120 → remdb-0.3.148}/src/rem/auth/providers/microsoft.py +0 -0
  461. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/README.md +0 -0
  462. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/__init__.py +0 -0
  463. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/README.md +0 -0
  464. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/__init__.py +0 -0
  465. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/ask.py +0 -0
  466. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/cluster.py +0 -0
  467. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/db.py +0 -0
  468. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/dreaming.py +0 -0
  469. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/mcp.py +0 -0
  470. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/process.py +0 -0
  471. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/scaffold.py +0 -0
  472. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/schema.py +0 -0
  473. {remdb-0.3.120 → remdb-0.3.148}/src/rem/cli/commands/serve.py +0 -0
  474. {remdb-0.3.120 → remdb-0.3.148}/src/rem/mcp_server.py +0 -0
  475. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/core/__init__.py +0 -0
  476. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/core/core_model.py +0 -0
  477. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/core/engram.py +0 -0
  478. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/core/inline_edge.py +0 -0
  479. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/core/rem_query.py +0 -0
  480. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/__init__.py +0 -0
  481. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/domain_resource.py +0 -0
  482. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/feedback.py +0 -0
  483. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/file.py +0 -0
  484. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/image_resource.py +0 -0
  485. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/message.py +0 -0
  486. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/moment.py +0 -0
  487. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/resource.py +0 -0
  488. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/schema.py +0 -0
  489. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/session.py +0 -0
  490. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/shared_session.py +0 -0
  491. {remdb-0.3.120 → remdb-0.3.148}/src/rem/models/entities/user.py +0 -0
  492. {remdb-0.3.120 → remdb-0.3.148}/src/rem/py.typed +0 -0
  493. {remdb-0.3.120 → remdb-0.3.148}/src/rem/registry.py +0 -0
  494. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/README.md +0 -0
  495. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/__init__.py +0 -0
  496. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/README.md +0 -0
  497. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/core/moment-builder.yaml +0 -0
  498. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/core/rem-query-agent.yaml +0 -0
  499. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/core/resource-affinity-assessor.yaml +0 -0
  500. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/core/simple-assistant.yaml +0 -0
  501. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/core/user-profile-builder.yaml +0 -0
  502. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/examples/hello-world.yaml +0 -0
  503. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/examples/query.yaml +0 -0
  504. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/examples/simple.yaml +0 -0
  505. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/examples/test.yaml +0 -0
  506. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/agents/rem.yaml +0 -0
  507. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/evaluators/hello-world/default.yaml +0 -0
  508. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/evaluators/rem/faithfulness.yaml +0 -0
  509. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/evaluators/rem/lookup-correctness.yaml +0 -0
  510. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/evaluators/rem/retrieval-precision.yaml +0 -0
  511. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/evaluators/rem/retrieval-recall.yaml +0 -0
  512. {remdb-0.3.120 → remdb-0.3.148}/src/rem/schemas/evaluators/rem/search-correctness.yaml +0 -0
  513. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/audio/INTEGRATION.md +0 -0
  514. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/audio/README.md +0 -0
  515. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/audio/__init__.py +0 -0
  516. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/audio/chunker.py +0 -0
  517. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/audio/transcriber.py +0 -0
  518. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/content/README.md +0 -0
  519. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/content/__init__.py +0 -0
  520. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/content/providers.py +0 -0
  521. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/content/service.py +0 -0
  522. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/dreaming/README.md +0 -0
  523. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/dreaming/__init__.py +0 -0
  524. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/dreaming/affinity_service.py +0 -0
  525. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/dreaming/moment_service.py +0 -0
  526. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/dreaming/ontology_service.py +0 -0
  527. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/dreaming/user_model_service.py +0 -0
  528. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/dreaming/utils.py +0 -0
  529. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/embeddings/__init__.py +0 -0
  530. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/embeddings/api.py +0 -0
  531. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/embeddings/worker.py +0 -0
  532. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/README.md +0 -0
  533. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/__init__.py +0 -0
  534. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/examples.py +0 -0
  535. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/examples_paths.py +0 -0
  536. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/git_provider.py +0 -0
  537. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/local_provider.py +0 -0
  538. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/parsing-hooks-examples.md +0 -0
  539. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/paths.py +0 -0
  540. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/provider.py +0 -0
  541. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/s3_provider.py +0 -0
  542. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/fs/service.py +0 -0
  543. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/git/README.md +0 -0
  544. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/git/__init__.py +0 -0
  545. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/git/service.py +0 -0
  546. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/phoenix/EXPERIMENT_DESIGN.md +0 -0
  547. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/phoenix/README.md +0 -0
  548. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/phoenix/__init__.py +0 -0
  549. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/phoenix/client.py +0 -0
  550. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/phoenix/config.py +0 -0
  551. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/phoenix/prompt_labels.py +0 -0
  552. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/postgres/__init__.py +0 -0
  553. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/postgres/migration_service.py +0 -0
  554. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/postgres/register_type.py +0 -0
  555. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/postgres/repository.py +0 -0
  556. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/postgres/schema_generator.py +0 -0
  557. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/postgres/service.py +0 -0
  558. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/postgres/sql_builder.py +0 -0
  559. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/rate_limit.py +0 -0
  560. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/rem/README.md +0 -0
  561. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/rem/__init__.py +0 -0
  562. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/rem/exceptions.py +0 -0
  563. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/rem/executor.py +0 -0
  564. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/rem/parser.py +0 -0
  565. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/rem/queries.py +0 -0
  566. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/rem/query.py +0 -0
  567. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/rem/service.py +0 -0
  568. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/session/README.md +0 -0
  569. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/session/__init__.py +0 -0
  570. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/session/compression.py +0 -0
  571. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/session/reload.py +0 -0
  572. {remdb-0.3.120 → remdb-0.3.148}/src/rem/services/user_service.py +0 -0
  573. {remdb-0.3.120 → remdb-0.3.148}/src/rem/sql/background_indexes.sql +0 -0
  574. {remdb-0.3.120 → remdb-0.3.148}/src/rem/sql/migrations/001_install.sql +0 -0
  575. {remdb-0.3.120 → remdb-0.3.148}/src/rem/sql/migrations/003_optional_extensions.sql +0 -0
  576. {remdb-0.3.120 → remdb-0.3.148}/src/rem/sql/migrations/004_cache_system.sql +0 -0
  577. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/AGENTIC_CHUNKING.md +0 -0
  578. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/__init__.py +0 -0
  579. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/agentic_chunking.py +0 -0
  580. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/batch_ops.py +0 -0
  581. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/chunking.py +0 -0
  582. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/clip_embeddings.py +0 -0
  583. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/constants.py +0 -0
  584. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/date_utils.py +0 -0
  585. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/dict_utils.py +0 -0
  586. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/embeddings.py +0 -0
  587. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/examples/embeddings_example.py +0 -0
  588. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/examples/sql_types_example.py +0 -0
  589. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/markdown.py +0 -0
  590. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/mime_types.py +0 -0
  591. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/model_helpers.py +0 -0
  592. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/sql_paths.py +0 -0
  593. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/sql_types.py +0 -0
  594. {remdb-0.3.120 → remdb-0.3.148}/src/rem/utils/user_id.py +0 -0
  595. {remdb-0.3.120 → remdb-0.3.148}/src/rem/workers/README.md +0 -0
  596. {remdb-0.3.120 → remdb-0.3.148}/src/rem/workers/__init__.py +0 -0
  597. {remdb-0.3.120 → remdb-0.3.148}/src/rem/workers/db_listener.py +0 -0
  598. {remdb-0.3.120 → remdb-0.3.148}/src/rem/workers/db_maintainer.py +0 -0
  599. {remdb-0.3.120 → remdb-0.3.148}/src/rem/workers/dreaming.py +0 -0
  600. {remdb-0.3.120 → remdb-0.3.148}/src/rem/workers/engram_processor.py +0 -0
  601. {remdb-0.3.120 → remdb-0.3.148}/src/rem/workers/sqs_file_processor.py +0 -0
  602. {remdb-0.3.120 → remdb-0.3.148}/src/rem/workers/unlogged_maintainer.py +0 -0
  603. {remdb-0.3.120 → remdb-0.3.148}/tests/README.md +0 -0
  604. {remdb-0.3.120 → remdb-0.3.148}/tests/__init__.py +0 -0
  605. {remdb-0.3.120 → remdb-0.3.148}/tests/conftest.py +0 -0
  606. {remdb-0.3.120 → remdb-0.3.148}/tests/data/README.md +0 -0
  607. {remdb-0.3.120 → remdb-0.3.148}/tests/data/audio/README.md +0 -0
  608. {remdb-0.3.120 → remdb-0.3.148}/tests/data/audio/SUMMARY.md +0 -0
  609. {remdb-0.3.120 → remdb-0.3.148}/tests/data/audio/generate_test_audio.py +0 -0
  610. {remdb-0.3.120 → remdb-0.3.148}/tests/data/audio/test_hq_30s.wav +0 -0
  611. {remdb-0.3.120 → remdb-0.3.148}/tests/data/audio/test_long_90s.wav +0 -0
  612. {remdb-0.3.120 → remdb-0.3.148}/tests/data/audio/test_medium_10s.wav +0 -0
  613. {remdb-0.3.120 → remdb-0.3.148}/tests/data/audio/test_short_3s.wav +0 -0
  614. {remdb-0.3.120 → remdb-0.3.148}/tests/data/audio/test_standard_30s.wav +0 -0
  615. {remdb-0.3.120 → remdb-0.3.148}/tests/data/content-examples/pdf/README.md +0 -0
  616. {remdb-0.3.120 → remdb-0.3.148}/tests/data/content-examples/pdf/annual_financial_report.pdf +0 -0
  617. {remdb-0.3.120 → remdb-0.3.148}/tests/data/content-examples/pdf/consulting_agreement.pdf +0 -0
  618. {remdb-0.3.120 → remdb-0.3.148}/tests/data/content-examples/pdf/nda_agreement.pdf +0 -0
  619. {remdb-0.3.120 → remdb-0.3.148}/tests/data/content-examples/pdf/sample_business_plan.pdf +0 -0
  620. {remdb-0.3.120 → remdb-0.3.148}/tests/data/content-examples/pdf/sample_invoice.pdf +0 -0
  621. {remdb-0.3.120 → remdb-0.3.148}/tests/data/content-examples/pdf/sample_research_paper.pdf +0 -0
  622. {remdb-0.3.120 → remdb-0.3.148}/tests/data/content-examples/pdf/sample_resume.pdf +0 -0
  623. {remdb-0.3.120 → remdb-0.3.148}/tests/data/content-examples/pdf/service_contract.pdf +0 -0
  624. {remdb-0.3.120 → remdb-0.3.148}/tests/data/content-examples/test.md +0 -0
  625. {remdb-0.3.120 → remdb-0.3.148}/tests/data/docs/CODE_REVIEW_FIXES.md +0 -0
  626. {remdb-0.3.120 → remdb-0.3.148}/tests/data/docs/TEST_RESULTS.md +0 -0
  627. {remdb-0.3.120 → remdb-0.3.148}/tests/data/docs/cli_verification.md +0 -0
  628. {remdb-0.3.120 → remdb-0.3.148}/tests/data/docs/database-design.md +0 -0
  629. {remdb-0.3.120 → remdb-0.3.148}/tests/data/docs/deep-learning-guide.md +0 -0
  630. {remdb-0.3.120 → remdb-0.3.148}/tests/data/docs/ml-overview.md +0 -0
  631. {remdb-0.3.120 → remdb-0.3.148}/tests/data/docs/python-best-practices.md +0 -0
  632. {remdb-0.3.120 → remdb-0.3.148}/tests/data/docs/test_summary.md +0 -0
  633. {remdb-0.3.120 → remdb-0.3.148}/tests/data/engrams/test-conversation.yaml +0 -0
  634. {remdb-0.3.120 → remdb-0.3.148}/tests/data/engrams/test-diary-entry.yaml +0 -0
  635. {remdb-0.3.120 → remdb-0.3.148}/tests/data/engrams/test-meeting-notes.yaml +0 -0
  636. {remdb-0.3.120 → remdb-0.3.148}/tests/data/engrams/test-observation.yaml +0 -0
  637. {remdb-0.3.120 → remdb-0.3.148}/tests/data/engrams/test-project-note.yaml +0 -0
  638. {remdb-0.3.120 → remdb-0.3.148}/tests/data/graph_seed.yaml +0 -0
  639. {remdb-0.3.120 → remdb-0.3.148}/tests/data/sample-architecture-doc.txt +0 -0
  640. {remdb-0.3.120 → remdb-0.3.148}/tests/data/sample_conversations.yaml +0 -0
  641. {remdb-0.3.120 → remdb-0.3.148}/tests/data/schemas/agents/query_agent.yaml +0 -0
  642. {remdb-0.3.120 → remdb-0.3.148}/tests/data/schemas/agents/summarization_agent.yaml +0 -0
  643. {remdb-0.3.120 → remdb-0.3.148}/tests/data/schemas/agents/test-cv-parser.yaml +0 -0
  644. {remdb-0.3.120 → remdb-0.3.148}/tests/data/schemas/evaluators/accuracy_evaluator.yaml +0 -0
  645. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/001_sample_data.yaml +0 -0
  646. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/001_sample_data.yaml.bak +0 -0
  647. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/README.md +0 -0
  648. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/files/documents/api_spec.md +0 -0
  649. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/files/documents/meeting_notes.txt +0 -0
  650. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/files/engrams/personal_reflection.yaml +0 -0
  651. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/files/engrams/product_idea_voice_memo.yaml +0 -0
  652. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/files/engrams/team_standup_meeting.yaml +0 -0
  653. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/resources.yaml +0 -0
  654. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/shared_sessions_demo.yaml +0 -0
  655. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/test-user-data.yaml +0 -0
  656. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/test-user-data.yaml.bak +0 -0
  657. {remdb-0.3.120 → remdb-0.3.148}/tests/data/seed/users.yaml +0 -0
  658. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/README.md +0 -0
  659. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/helpers/README.md +0 -0
  660. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/helpers/__init__.py +0 -0
  661. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/helpers/seed_data.py +0 -0
  662. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/phoenix/run_complete_experiment.py +0 -0
  663. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/phoenix/run_hello_world_experiment.py +0 -0
  664. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/phoenix/test_connection.py +0 -0
  665. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/rem-agent-eval-questions.yaml +0 -0
  666. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/rem-query-agent-tests.yaml +0 -0
  667. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/run_rem_agent_eval.py +0 -0
  668. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/sample_data/dreaming/load_sample_data.py +0 -0
  669. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/sample_data/dreaming/resources/api_design_discussion.md +0 -0
  670. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/sample_data/dreaming/resources/database_migration_plan.md +0 -0
  671. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/sample_data/dreaming/resources/morning_standup_notes.md +0 -0
  672. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/sample_data/dreaming/resources/production_incident_postmortem.md +0 -0
  673. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/sample_data/dreaming/resources/quarterly_reflection.md +0 -0
  674. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/services/test_content_providers.py +0 -0
  675. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/services/test_schema_provider.py +0 -0
  676. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_agent_end_to_end.py +0 -0
  677. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_agent_tool_invocation.py +0 -0
  678. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_agent_with_tools.py +0 -0
  679. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_api_endpoints.py +0 -0
  680. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_batch_upsert.py +0 -0
  681. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_completions_with_sessions.py +0 -0
  682. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_content_ingest_workflow.py +0 -0
  683. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_contract_extractor.py +0 -0
  684. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_dreaming_moments.py +0 -0
  685. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_dynamic_agents.py +0 -0
  686. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_embeddings_e2e.py +0 -0
  687. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_git_provider.py +0 -0
  688. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_graph_traversal.py +0 -0
  689. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_mcp_server_loading.py +0 -0
  690. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_mcp_tool_loading.py +0 -0
  691. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_mcp_tools.py +0 -0
  692. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_mcp_tools_layer.py +0 -0
  693. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_merge_strategies_demo.py +0 -0
  694. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_natural_language_to_rem.py +0 -0
  695. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_rem_query.py +0 -0
  696. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_rem_query_agent.py +0 -0
  697. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_rem_query_agent_structured.py +0 -0
  698. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_rem_query_evolution.py +0 -0
  699. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_rem_query_functions.py +0 -0
  700. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_rem_service_layer.py +0 -0
  701. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_schema_introspection.py +0 -0
  702. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_session_management.py +0 -0
  703. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_shared_sessions.py +0 -0
  704. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_unlogged_maintainer.py +0 -0
  705. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_user_session_reloads.py +0 -0
  706. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_verify_setup.py +0 -0
  707. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/test_yaml_export.py +0 -0
  708. {remdb-0.3.120 → remdb-0.3.148}/tests/integration/validate_rem_agent_schema.py +0 -0
  709. {remdb-0.3.120 → remdb-0.3.148}/tests/scripts/__init__.py +0 -0
  710. {remdb-0.3.120 → remdb-0.3.148}/tests/scripts/demo_session_recovery.py +0 -0
  711. {remdb-0.3.120 → remdb-0.3.148}/tests/scripts/seed_sample_sessions.py +0 -0
  712. {remdb-0.3.120 → remdb-0.3.148}/tests/scripts/simple_session_demo.py +0 -0
  713. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/__init__.py +0 -0
  714. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/agentic/__init__.py +0 -0
  715. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/agentic/agents/__init__.py +0 -0
  716. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/agentic/agents/test_sse_simulator.py +0 -0
  717. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/agentic/providers/__init__.py +0 -0
  718. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/agentic/providers/test_pydantic_ai.py +0 -0
  719. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/agentic/test_schema.py +0 -0
  720. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/agentic/test_schema_integration.py +0 -0
  721. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/agentic/test_tool_description_suffix.py +0 -0
  722. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/api/__init__.py +0 -0
  723. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/api/test_feedback.py +0 -0
  724. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/api/test_models_endpoint.py +0 -0
  725. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/api/test_sessions_messages.py +0 -0
  726. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/api/test_sse_events.py +0 -0
  727. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/conftest.py +0 -0
  728. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/test_admin_internal.py +0 -0
  729. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/test_registry.py +0 -0
  730. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/test_sql_security.py +0 -0
  731. {remdb-0.3.120 → remdb-0.3.148}/tests/unit/utils/test_agentic_chunking.py +0 -0
  732. {remdb-0.3.120 → remdb-0.3.148}/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.120
3
+ Version: 0.3.148
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
@@ -123,9 +125,8 @@ Cloud-native unified memory infrastructure for agentic AI systems built with Pyd
123
125
 
124
126
  Choose your path:
125
127
 
126
- - **Option 1: Package Users with Example Data** (Recommended for first-time users) - PyPI + example datasets
127
- - **Option 2: Package Users** (Recommended for non-developers) - PyPI package + dockerized database
128
- - **Option 3: Developers** - Clone repo, local development with uv
128
+ - **Option 1: Package Users with Example Data** (Recommended) - PyPI + example datasets
129
+ - **Option 2: Developers** - Clone repo, local development with uv
129
130
 
130
131
  ---
131
132
 
@@ -144,13 +145,9 @@ pip install "remdb[all]"
144
145
  git clone https://github.com/Percolation-Labs/remstack-lab.git
145
146
  cd remstack-lab
146
147
 
147
- # Optional: Set default LLM provider via environment variable
148
- # export LLM__DEFAULT_MODEL="openai:gpt-4.1-nano" # Fast and cheap
149
- # export LLM__DEFAULT_MODEL="anthropic:claude-sonnet-4-5-20250929" # High quality (default)
150
-
151
- # Start PostgreSQL with docker-compose
148
+ # Start services (PostgreSQL, Phoenix observability)
152
149
  curl -O https://gist.githubusercontent.com/percolating-sirsh/d117b673bc0edfdef1a5068ccd3cf3e5/raw/docker-compose.prebuilt.yml
153
- docker compose -f docker-compose.prebuilt.yml up -d postgres
150
+ docker compose -f docker-compose.prebuilt.yml up -d
154
151
 
155
152
  # Configure REM (creates ~/.rem/config.yaml and installs database schema)
156
153
  # Add --claude-desktop to register with Claude Desktop app
@@ -163,7 +160,7 @@ rem db load datasets/quickstart/sample_data.yaml
163
160
  rem ask "What documents exist in the system?"
164
161
  rem ask "Show me meetings about API design"
165
162
 
166
- # Ingest files (PDF, DOCX, images, etc.) - note: requires remstack-lab
163
+ # Ingest files (PDF, DOCX, images, etc.)
167
164
  rem process ingest datasets/formats/files/bitcoin_whitepaper.pdf --category research --tags bitcoin,whitepaper
168
165
 
169
166
  # Query ingested content
@@ -177,125 +174,39 @@ rem ask "What is the Bitcoin whitepaper about?"
177
174
 
178
175
  **Learn more**: [remstack-lab repository](https://github.com/Percolation-Labs/remstack-lab)
179
176
 
180
- ---
181
-
182
- ## Option 2: Package Users (No Example Data)
177
+ ### Using the API
183
178
 
184
- **Best for**: Using REM as a service (API + CLI) without modifying code, bringing your own data.
185
-
186
- ### Step 1: Start Database and API with Docker Compose
179
+ Once configured, you can also use the OpenAI-compatible chat completions API:
187
180
 
188
181
  ```bash
189
- # Create a project directory
190
- mkdir my-rem-project && cd my-rem-project
191
-
192
- # Download docker-compose file from public gist
193
- curl -O https://gist.githubusercontent.com/percolating-sirsh/d117b673bc0edfdef1a5068ccd3cf3e5/raw/docker-compose.prebuilt.yml
194
-
195
- # IMPORTANT: Export API keys BEFORE running docker compose
196
- # Docker Compose reads env vars at startup - exporting them after won't work!
197
-
198
- # Required: OpenAI for embeddings (text-embedding-3-small)
199
- export OPENAI_API_KEY="sk-..."
200
-
201
- # Recommended: At least one chat completion provider
202
- export ANTHROPIC_API_KEY="sk-ant-..." # Claude Sonnet 4.5 (high quality)
203
- export CEREBRAS_API_KEY="csk-..." # Cerebras (fast, cheap inference)
204
-
205
- # Start PostgreSQL + API
182
+ # Start all services (PostgreSQL, Phoenix, API)
206
183
  docker compose -f docker-compose.prebuilt.yml up -d
207
184
 
208
- # Verify services are running
209
- curl http://localhost:8000/health
210
- ```
211
-
212
- This starts:
213
- - **PostgreSQL** with pgvector on port **5051** (connection: `postgresql://rem:rem@localhost:5051/rem`)
214
- - **REM API** on port **8000** with OpenAI-compatible chat completions + MCP server
215
- - Uses pre-built Docker image from Docker Hub (no local build required)
216
-
217
- ### Step 2: Install and Configure CLI (REQUIRED)
218
-
219
- **This step is required** before you can use REM - it installs the database schema and configures your LLM API keys.
220
-
221
- ```bash
222
- # Install remdb package from PyPI
223
- pip install remdb[all]
224
-
225
- # Configure REM (defaults to port 5051 for package users)
226
- rem configure --install --claude-desktop
185
+ # Test the API
186
+ curl -X POST http://localhost:8000/api/v1/chat/completions \
187
+ -H "Content-Type: application/json" \
188
+ -H "X-Session-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
189
+ -d '{
190
+ "model": "anthropic:claude-sonnet-4-5-20250929",
191
+ "messages": [{"role": "user", "content": "What documents did Sarah Chen author?"}],
192
+ "stream": false
193
+ }'
227
194
  ```
228
195
 
229
- The interactive wizard will:
230
- 1. **Configure PostgreSQL**: Defaults to `postgresql://rem:rem@localhost:5051/rem` (prebuilt docker-compose)
231
- - Just press Enter to accept defaults
232
- - Custom database: Enter your own host/port/credentials
233
- 2. **Configure LLM providers**: Enter your OpenAI/Anthropic API keys
234
- 3. **Install database tables**: Creates schema, functions, indexes (**required for CLI/API to work**)
235
- 4. **Register with Claude Desktop**: Adds REM MCP server to Claude
236
-
237
- Configuration saved to `~/.rem/config.yaml` (can edit with `rem configure --edit`)
238
-
239
196
  **Port Guide:**
240
197
  - **5051**: Package users with `docker-compose.prebuilt.yml` (pre-built image)
241
198
  - **5050**: Developers with `docker-compose.yml` (local build)
242
- - **Custom**: Your own PostgreSQL database
243
199
 
244
200
  **Next Steps:**
245
201
  - See [CLI Reference](#cli-reference) for all available commands
246
202
  - See [REM Query Dialect](#rem-query-dialect) for query examples
247
203
  - See [API Endpoints](#api-endpoints) for OpenAI-compatible API usage
248
204
 
249
- ### Step 3: Load Sample Data (Optional but Recommended)
250
-
251
- **Option A: Clone example datasets** (Recommended - works with all README examples)
252
-
253
- ```bash
254
- # Clone datasets repository
255
- git clone https://github.com/Percolation-Labs/remstack-lab.git
256
-
257
- # Load quickstart dataset
258
- rem db load --file remstack-lab/datasets/quickstart/sample_data.yaml
259
-
260
- # Test with sample queries
261
- rem ask "What documents exist in the system?"
262
- rem ask "Show me meetings about API design"
263
- rem ask "Who is Sarah Chen?"
264
- ```
265
-
266
- **Option B: Bring your own data**
267
-
268
- ```bash
269
- # Ingest your own files
270
- echo "REM is a bio-inspired memory system for agentic AI workloads." > test-doc.txt
271
- rem process ingest test-doc.txt --category documentation --tags rem,ai
272
-
273
- # Query your ingested data
274
- rem ask "What do you know about REM from my knowledge base?"
275
- ```
276
-
277
- ### Step 4: Test the API
278
-
279
- ```bash
280
- # Test the OpenAI-compatible chat completions API
281
- curl -X POST http://localhost:8000/api/v1/chat/completions \
282
- -H "Content-Type: application/json" \
283
- -d '{
284
- "model": "anthropic:claude-sonnet-4-5-20250929",
285
- "messages": [{"role": "user", "content": "What documents did Sarah Chen author?"}],
286
- "stream": false
287
- }'
288
- ```
289
-
290
- **Available Commands:**
291
- - `rem ask` - Natural language queries to REM
292
- - `rem process ingest <file>` - Full ingestion pipeline (storage + parsing + embedding + database)
293
- - `rem process uri <file>` - READ-ONLY parsing (no database storage, useful for testing parsers)
294
- - `rem db load --file <yaml>` - Load structured datasets directly
205
+ ---
295
206
 
296
207
  ## Example Datasets
297
208
 
298
- 🎯 **Recommended**: Clone [remstack-lab](https://github.com/Percolation-Labs/remstack-lab) for curated datasets organized by domain and format.
209
+ Clone [remstack-lab](https://github.com/Percolation-Labs/remstack-lab) for curated datasets organized by domain and format.
299
210
 
300
211
  **What's included:**
301
212
  - **Quickstart**: Minimal dataset (3 users, 3 resources, 3 moments) - perfect for first-time users
@@ -422,7 +333,7 @@ rem ask research-assistant "Find documents about machine learning architecture"
422
333
  rem ask research-assistant "Summarize recent API design documents" --stream
423
334
 
424
335
  # With session continuity
425
- rem ask research-assistant "What did we discuss about ML?" --session-id abc-123
336
+ rem ask research-assistant "What did we discuss about ML?" --session-id c3d4e5f6-a7b8-9012-cdef-345678901234
426
337
  ```
427
338
 
428
339
  ### Agent Schema Structure
@@ -475,14 +386,6 @@ rem process ingest my-agent.yaml --user-id tenant-a --category agents
475
386
  rem ask my-agent "test" --user-id tenant-a
476
387
  ```
477
388
 
478
- ### Advanced: Ontology Extractors
479
-
480
- 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:
481
- - Multi-provider testing (`provider_configs`)
482
- - Semantic search configuration (`embedding_fields`)
483
- - File matching rules (`OntologyConfig`)
484
- - Dreaming workflow integration
485
-
486
389
  ### Troubleshooting
487
390
 
488
391
  **Schema not found error:**
@@ -1235,7 +1138,7 @@ export API__RELOAD=true
1235
1138
  rem serve
1236
1139
  ```
1237
1140
 
1238
- ## Development (For Contributors)
1141
+ ## Option 2: Development (For Contributors)
1239
1142
 
1240
1143
  **Best for**: Contributing to REM or customizing the codebase.
1241
1144
 
@@ -1531,45 +1434,156 @@ Successfully installed ... kreuzberg-4.0.0rc1 ... remdb-0.3.10
1531
1434
 
1532
1435
  REM wraps FastAPI - extend it exactly as you would any FastAPI app.
1533
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
+
1534
1456
  ```python
1535
- import rem
1457
+ # main.py
1536
1458
  from rem import create_app
1537
- from rem.models.core import CoreModel
1459
+ from fastapi import APIRouter
1538
1460
 
1539
- # 1. Register models (for schema generation)
1540
- rem.register_models(MyModel, AnotherModel)
1461
+ # Create REM app (auto-detects ./agents/ and ./models/)
1462
+ app = create_app()
1541
1463
 
1542
- # 2. Register schema paths (for custom agents/evaluators)
1543
- rem.register_schema_path("./schemas")
1464
+ # Add custom router
1465
+ router = APIRouter(prefix="/custom", tags=["custom"])
1544
1466
 
1545
- # 3. Create app
1546
- app = create_app()
1467
+ @router.get("/hello")
1468
+ async def hello():
1469
+ return {"message": "Hello from custom router!"}
1547
1470
 
1548
- # 4. Extend like normal FastAPI
1549
- app.include_router(my_router)
1471
+ app.include_router(router)
1550
1472
 
1473
+ # Add custom MCP tool
1551
1474
  @app.mcp_server.tool()
1552
1475
  async def my_tool(query: str) -> dict:
1553
- """Custom MCP tool."""
1476
+ """Custom MCP tool available to agents."""
1554
1477
  return {"result": query}
1555
1478
  ```
1556
1479
 
1557
- ### Project Structure
1480
+ ### Custom Models (Auto-Detected)
1558
1481
 
1482
+ ```python
1483
+ # models/__init__.py
1484
+ import rem
1485
+ from rem.models.core import CoreModel
1486
+ from pydantic import Field
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")
1559
1493
  ```
1560
- my-rem-app/
1561
- ├── my_app/
1562
- │ ├── main.py # Entry point (create_app + extensions)
1563
- │ ├── models.py # Custom models (inherit CoreModel)
1564
- │ └── routers/ # Custom FastAPI routers
1565
- ├── schemas/
1566
- │ ├── agents/ # Custom agent YAML schemas
1567
- │ └── evaluators/ # Custom evaluator schemas
1568
- ├── sql/migrations/ # Custom SQL migrations
1569
- └── 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
1570
1519
  ```
1571
1520
 
1572
- 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
+ ```
1573
1587
 
1574
1588
  ### Extension Points
1575
1589