remdb 0.3.242__py3-none-any.whl

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 (235) hide show
  1. rem/__init__.py +129 -0
  2. rem/agentic/README.md +760 -0
  3. rem/agentic/__init__.py +54 -0
  4. rem/agentic/agents/README.md +155 -0
  5. rem/agentic/agents/__init__.py +38 -0
  6. rem/agentic/agents/agent_manager.py +311 -0
  7. rem/agentic/agents/sse_simulator.py +502 -0
  8. rem/agentic/context.py +425 -0
  9. rem/agentic/context_builder.py +360 -0
  10. rem/agentic/llm_provider_models.py +301 -0
  11. rem/agentic/mcp/__init__.py +0 -0
  12. rem/agentic/mcp/tool_wrapper.py +273 -0
  13. rem/agentic/otel/__init__.py +5 -0
  14. rem/agentic/otel/setup.py +240 -0
  15. rem/agentic/providers/phoenix.py +926 -0
  16. rem/agentic/providers/pydantic_ai.py +854 -0
  17. rem/agentic/query.py +117 -0
  18. rem/agentic/query_helper.py +89 -0
  19. rem/agentic/schema.py +737 -0
  20. rem/agentic/serialization.py +245 -0
  21. rem/agentic/tools/__init__.py +5 -0
  22. rem/agentic/tools/rem_tools.py +242 -0
  23. rem/api/README.md +657 -0
  24. rem/api/deps.py +253 -0
  25. rem/api/main.py +460 -0
  26. rem/api/mcp_router/prompts.py +182 -0
  27. rem/api/mcp_router/resources.py +820 -0
  28. rem/api/mcp_router/server.py +243 -0
  29. rem/api/mcp_router/tools.py +1605 -0
  30. rem/api/middleware/tracking.py +172 -0
  31. rem/api/routers/admin.py +520 -0
  32. rem/api/routers/auth.py +898 -0
  33. rem/api/routers/chat/__init__.py +5 -0
  34. rem/api/routers/chat/child_streaming.py +394 -0
  35. rem/api/routers/chat/completions.py +702 -0
  36. rem/api/routers/chat/json_utils.py +76 -0
  37. rem/api/routers/chat/models.py +202 -0
  38. rem/api/routers/chat/otel_utils.py +33 -0
  39. rem/api/routers/chat/sse_events.py +546 -0
  40. rem/api/routers/chat/streaming.py +950 -0
  41. rem/api/routers/chat/streaming_utils.py +327 -0
  42. rem/api/routers/common.py +18 -0
  43. rem/api/routers/dev.py +87 -0
  44. rem/api/routers/feedback.py +276 -0
  45. rem/api/routers/messages.py +620 -0
  46. rem/api/routers/models.py +86 -0
  47. rem/api/routers/query.py +362 -0
  48. rem/api/routers/shared_sessions.py +422 -0
  49. rem/auth/README.md +258 -0
  50. rem/auth/__init__.py +36 -0
  51. rem/auth/jwt.py +367 -0
  52. rem/auth/middleware.py +318 -0
  53. rem/auth/providers/__init__.py +16 -0
  54. rem/auth/providers/base.py +376 -0
  55. rem/auth/providers/email.py +215 -0
  56. rem/auth/providers/google.py +163 -0
  57. rem/auth/providers/microsoft.py +237 -0
  58. rem/cli/README.md +517 -0
  59. rem/cli/__init__.py +8 -0
  60. rem/cli/commands/README.md +299 -0
  61. rem/cli/commands/__init__.py +3 -0
  62. rem/cli/commands/ask.py +549 -0
  63. rem/cli/commands/cluster.py +1808 -0
  64. rem/cli/commands/configure.py +495 -0
  65. rem/cli/commands/db.py +828 -0
  66. rem/cli/commands/dreaming.py +324 -0
  67. rem/cli/commands/experiments.py +1698 -0
  68. rem/cli/commands/mcp.py +66 -0
  69. rem/cli/commands/process.py +388 -0
  70. rem/cli/commands/query.py +109 -0
  71. rem/cli/commands/scaffold.py +47 -0
  72. rem/cli/commands/schema.py +230 -0
  73. rem/cli/commands/serve.py +106 -0
  74. rem/cli/commands/session.py +453 -0
  75. rem/cli/dreaming.py +363 -0
  76. rem/cli/main.py +123 -0
  77. rem/config.py +244 -0
  78. rem/mcp_server.py +41 -0
  79. rem/models/core/__init__.py +49 -0
  80. rem/models/core/core_model.py +70 -0
  81. rem/models/core/engram.py +333 -0
  82. rem/models/core/experiment.py +672 -0
  83. rem/models/core/inline_edge.py +132 -0
  84. rem/models/core/rem_query.py +246 -0
  85. rem/models/entities/__init__.py +68 -0
  86. rem/models/entities/domain_resource.py +38 -0
  87. rem/models/entities/feedback.py +123 -0
  88. rem/models/entities/file.py +57 -0
  89. rem/models/entities/image_resource.py +88 -0
  90. rem/models/entities/message.py +64 -0
  91. rem/models/entities/moment.py +123 -0
  92. rem/models/entities/ontology.py +181 -0
  93. rem/models/entities/ontology_config.py +131 -0
  94. rem/models/entities/resource.py +95 -0
  95. rem/models/entities/schema.py +87 -0
  96. rem/models/entities/session.py +84 -0
  97. rem/models/entities/shared_session.py +180 -0
  98. rem/models/entities/subscriber.py +175 -0
  99. rem/models/entities/user.py +93 -0
  100. rem/py.typed +0 -0
  101. rem/registry.py +373 -0
  102. rem/schemas/README.md +507 -0
  103. rem/schemas/__init__.py +6 -0
  104. rem/schemas/agents/README.md +92 -0
  105. rem/schemas/agents/core/agent-builder.yaml +235 -0
  106. rem/schemas/agents/core/moment-builder.yaml +178 -0
  107. rem/schemas/agents/core/rem-query-agent.yaml +226 -0
  108. rem/schemas/agents/core/resource-affinity-assessor.yaml +99 -0
  109. rem/schemas/agents/core/simple-assistant.yaml +19 -0
  110. rem/schemas/agents/core/user-profile-builder.yaml +163 -0
  111. rem/schemas/agents/examples/contract-analyzer.yaml +317 -0
  112. rem/schemas/agents/examples/contract-extractor.yaml +134 -0
  113. rem/schemas/agents/examples/cv-parser.yaml +263 -0
  114. rem/schemas/agents/examples/hello-world.yaml +37 -0
  115. rem/schemas/agents/examples/query.yaml +54 -0
  116. rem/schemas/agents/examples/simple.yaml +21 -0
  117. rem/schemas/agents/examples/test.yaml +29 -0
  118. rem/schemas/agents/rem.yaml +132 -0
  119. rem/schemas/evaluators/hello-world/default.yaml +77 -0
  120. rem/schemas/evaluators/rem/faithfulness.yaml +219 -0
  121. rem/schemas/evaluators/rem/lookup-correctness.yaml +182 -0
  122. rem/schemas/evaluators/rem/retrieval-precision.yaml +199 -0
  123. rem/schemas/evaluators/rem/retrieval-recall.yaml +211 -0
  124. rem/schemas/evaluators/rem/search-correctness.yaml +192 -0
  125. rem/services/__init__.py +18 -0
  126. rem/services/audio/INTEGRATION.md +308 -0
  127. rem/services/audio/README.md +376 -0
  128. rem/services/audio/__init__.py +15 -0
  129. rem/services/audio/chunker.py +354 -0
  130. rem/services/audio/transcriber.py +259 -0
  131. rem/services/content/README.md +1269 -0
  132. rem/services/content/__init__.py +5 -0
  133. rem/services/content/providers.py +760 -0
  134. rem/services/content/service.py +762 -0
  135. rem/services/dreaming/README.md +230 -0
  136. rem/services/dreaming/__init__.py +53 -0
  137. rem/services/dreaming/affinity_service.py +322 -0
  138. rem/services/dreaming/moment_service.py +251 -0
  139. rem/services/dreaming/ontology_service.py +54 -0
  140. rem/services/dreaming/user_model_service.py +297 -0
  141. rem/services/dreaming/utils.py +39 -0
  142. rem/services/email/__init__.py +10 -0
  143. rem/services/email/service.py +522 -0
  144. rem/services/email/templates.py +360 -0
  145. rem/services/embeddings/__init__.py +11 -0
  146. rem/services/embeddings/api.py +127 -0
  147. rem/services/embeddings/worker.py +435 -0
  148. rem/services/fs/README.md +662 -0
  149. rem/services/fs/__init__.py +62 -0
  150. rem/services/fs/examples.py +206 -0
  151. rem/services/fs/examples_paths.py +204 -0
  152. rem/services/fs/git_provider.py +935 -0
  153. rem/services/fs/local_provider.py +760 -0
  154. rem/services/fs/parsing-hooks-examples.md +172 -0
  155. rem/services/fs/paths.py +276 -0
  156. rem/services/fs/provider.py +460 -0
  157. rem/services/fs/s3_provider.py +1042 -0
  158. rem/services/fs/service.py +186 -0
  159. rem/services/git/README.md +1075 -0
  160. rem/services/git/__init__.py +17 -0
  161. rem/services/git/service.py +469 -0
  162. rem/services/phoenix/EXPERIMENT_DESIGN.md +1146 -0
  163. rem/services/phoenix/README.md +453 -0
  164. rem/services/phoenix/__init__.py +46 -0
  165. rem/services/phoenix/client.py +960 -0
  166. rem/services/phoenix/config.py +88 -0
  167. rem/services/phoenix/prompt_labels.py +477 -0
  168. rem/services/postgres/README.md +757 -0
  169. rem/services/postgres/__init__.py +49 -0
  170. rem/services/postgres/diff_service.py +599 -0
  171. rem/services/postgres/migration_service.py +427 -0
  172. rem/services/postgres/programmable_diff_service.py +635 -0
  173. rem/services/postgres/pydantic_to_sqlalchemy.py +562 -0
  174. rem/services/postgres/register_type.py +353 -0
  175. rem/services/postgres/repository.py +481 -0
  176. rem/services/postgres/schema_generator.py +661 -0
  177. rem/services/postgres/service.py +802 -0
  178. rem/services/postgres/sql_builder.py +355 -0
  179. rem/services/rate_limit.py +113 -0
  180. rem/services/rem/README.md +318 -0
  181. rem/services/rem/__init__.py +23 -0
  182. rem/services/rem/exceptions.py +71 -0
  183. rem/services/rem/executor.py +293 -0
  184. rem/services/rem/parser.py +180 -0
  185. rem/services/rem/queries.py +196 -0
  186. rem/services/rem/query.py +371 -0
  187. rem/services/rem/service.py +608 -0
  188. rem/services/session/README.md +374 -0
  189. rem/services/session/__init__.py +13 -0
  190. rem/services/session/compression.py +488 -0
  191. rem/services/session/pydantic_messages.py +310 -0
  192. rem/services/session/reload.py +85 -0
  193. rem/services/user_service.py +130 -0
  194. rem/settings.py +1877 -0
  195. rem/sql/background_indexes.sql +52 -0
  196. rem/sql/migrations/001_install.sql +983 -0
  197. rem/sql/migrations/002_install_models.sql +3157 -0
  198. rem/sql/migrations/003_optional_extensions.sql +326 -0
  199. rem/sql/migrations/004_cache_system.sql +282 -0
  200. rem/sql/migrations/005_schema_update.sql +145 -0
  201. rem/sql/migrations/migrate_session_id_to_uuid.sql +45 -0
  202. rem/utils/AGENTIC_CHUNKING.md +597 -0
  203. rem/utils/README.md +628 -0
  204. rem/utils/__init__.py +61 -0
  205. rem/utils/agentic_chunking.py +622 -0
  206. rem/utils/batch_ops.py +343 -0
  207. rem/utils/chunking.py +108 -0
  208. rem/utils/clip_embeddings.py +276 -0
  209. rem/utils/constants.py +97 -0
  210. rem/utils/date_utils.py +228 -0
  211. rem/utils/dict_utils.py +98 -0
  212. rem/utils/embeddings.py +436 -0
  213. rem/utils/examples/embeddings_example.py +305 -0
  214. rem/utils/examples/sql_types_example.py +202 -0
  215. rem/utils/files.py +323 -0
  216. rem/utils/markdown.py +16 -0
  217. rem/utils/mime_types.py +158 -0
  218. rem/utils/model_helpers.py +492 -0
  219. rem/utils/schema_loader.py +649 -0
  220. rem/utils/sql_paths.py +146 -0
  221. rem/utils/sql_types.py +350 -0
  222. rem/utils/user_id.py +81 -0
  223. rem/utils/vision.py +325 -0
  224. rem/workers/README.md +506 -0
  225. rem/workers/__init__.py +7 -0
  226. rem/workers/db_listener.py +579 -0
  227. rem/workers/db_maintainer.py +74 -0
  228. rem/workers/dreaming.py +502 -0
  229. rem/workers/engram_processor.py +312 -0
  230. rem/workers/sqs_file_processor.py +193 -0
  231. rem/workers/unlogged_maintainer.py +463 -0
  232. remdb-0.3.242.dist-info/METADATA +1632 -0
  233. remdb-0.3.242.dist-info/RECORD +235 -0
  234. remdb-0.3.242.dist-info/WHEEL +4 -0
  235. remdb-0.3.242.dist-info/entry_points.txt +2 -0
@@ -0,0 +1,299 @@
1
+ # REM CLI Commands
2
+
3
+ ## Database Management (`rem db`)
4
+
5
+ REM uses a **code-as-source-of-truth** approach to database schema management. Pydantic models define the schema, and the database is kept in sync via diff-based migrations.
6
+
7
+ ### Quick Reference
8
+
9
+ ```bash
10
+ rem db schema generate # Regenerate schema SQL from registered models
11
+ rem db diff # Compare models vs database (detect drift)
12
+ rem db diff --check # CI mode: exit 1 if drift detected
13
+ rem db apply <file> # Apply SQL file to database
14
+ ```
15
+
16
+ ### Schema Management Workflow
17
+
18
+ ```
19
+ ┌─────────────────────────────────────────────────────────────┐
20
+ │ Source of Truth │
21
+ │ │
22
+ │ Pydantic Models (CoreModel subclasses) │
23
+ │ └── src/rem/models/entities/*.py │
24
+ │ │
25
+ │ Model Registry │
26
+ │ └── Core models auto-registered │
27
+ │ └── Custom models via @rem.register_model │
28
+ └─────────────────────────────────────────────────────────────┘
29
+
30
+
31
+ ┌─────────────────────────────────────────────────────────────┐
32
+ │ rem db schema generate │
33
+ │ │
34
+ │ Generates SQL from registry → 002_install_models.sql │
35
+ └─────────────────────────────────────────────────────────────┘
36
+
37
+
38
+ ┌─────────────────────────────────────────────────────────────┐
39
+ │ rem db diff │
40
+ │ │
41
+ │ Compares models ↔ database using Alembic autogenerate │
42
+ │ Shows: + additions, - removals, ~ modifications │
43
+ └─────────────────────────────────────────────────────────────┘
44
+
45
+
46
+ ┌─────────────────────────────────────────────────────────────┐
47
+ │ rem db apply │
48
+ │ │
49
+ │ Executes SQL directly against database │
50
+ │ Optionally logs to rem_migrations (audit only) │
51
+ └─────────────────────────────────────────────────────────────┘
52
+ ```
53
+
54
+ ### File Structure
55
+
56
+ ```
57
+ src/rem/sql/
58
+ ├── migrations/
59
+ │ ├── 001_install.sql # Core infrastructure (manual)
60
+ │ └── 002_install_models.sql # Entity tables (auto-generated)
61
+ └── background_indexes.sql # HNSW vector indexes (optional)
62
+ ```
63
+
64
+ **Key principle**: Only two migration files. No incremental `003_`, `004_` files. The models file is always regenerated to match code.
65
+
66
+ ### Commands
67
+
68
+ #### `rem db schema generate`
69
+
70
+ Regenerate `002_install_models.sql` from the model registry:
71
+
72
+ ```bash
73
+ rem db schema generate
74
+ ```
75
+
76
+ This reads all registered models (core + custom) and generates:
77
+ - CREATE TABLE statements for each entity
78
+ - Embeddings tables (`embeddings_<table>`)
79
+ - KV_STORE triggers for cache maintenance
80
+ - Foreground indexes (GIN for JSONB, B-tree for lookups)
81
+
82
+ #### `rem db diff`
83
+
84
+ Compare Pydantic models against the live database:
85
+
86
+ ```bash
87
+ # Show differences
88
+ rem db diff
89
+
90
+ # CI mode: exit 1 if drift detected
91
+ rem db diff --check
92
+ ```
93
+
94
+ Output shows:
95
+ - `+ ADD COLUMN` - Column exists in model but not in DB
96
+ - `- DROP COLUMN` - Column exists in DB but not in model
97
+ - `~ ALTER COLUMN` - Column type or constraints differ
98
+ - `+ CREATE TABLE` - Table exists in model but not in DB
99
+ - `- DROP TABLE` - Table exists in DB but not in model
100
+
101
+ #### `rem db apply`
102
+
103
+ Apply a SQL file directly to the database:
104
+
105
+ ```bash
106
+ # Apply with audit logging (default)
107
+ rem db apply src/rem/sql/migrations/002_install_models.sql
108
+
109
+ # Preview without executing
110
+ rem db apply --dry-run src/rem/sql/migrations/002_install_models.sql
111
+
112
+ # Apply without logging to rem_migrations
113
+ rem db apply --no-log src/rem/sql/migrations/002_install_models.sql
114
+ ```
115
+
116
+ ### Typical Workflows
117
+
118
+ #### Initial Setup
119
+
120
+ ```bash
121
+ # 1. Generate schema from models
122
+ rem db schema generate
123
+
124
+ # 2. Apply infrastructure (extensions, kv_store)
125
+ rem db apply src/rem/sql/migrations/001_install.sql
126
+
127
+ # 3. Apply entity tables
128
+ rem db apply src/rem/sql/migrations/002_install_models.sql
129
+
130
+ # 4. Verify no drift
131
+ rem db diff
132
+ ```
133
+
134
+ #### Adding a New Entity
135
+
136
+ ```bash
137
+ # 1. Create model in src/rem/models/entities/
138
+ # 2. Register in src/rem/registry.py (add to core_models list)
139
+ # 3. Regenerate schema
140
+ rem db schema generate
141
+
142
+ # 4. Check what changed
143
+ rem db diff
144
+
145
+ # 5. Apply changes
146
+ rem db apply src/rem/sql/migrations/002_install_models.sql
147
+ ```
148
+
149
+ #### Modifying an Existing Entity
150
+
151
+ ```bash
152
+ # 1. Modify model in src/rem/models/entities/
153
+ # 2. Regenerate schema
154
+ rem db schema generate
155
+
156
+ # 3. Check what changed
157
+ rem db diff
158
+
159
+ # 4. Apply changes (idempotent - uses IF NOT EXISTS)
160
+ rem db apply src/rem/sql/migrations/002_install_models.sql
161
+ ```
162
+
163
+ #### CI/CD Pipeline
164
+
165
+ ```bash
166
+ # Fail build if schema drift detected
167
+ rem db diff --check
168
+ ```
169
+
170
+ ### Registering Custom Models
171
+
172
+ ```python
173
+ import rem
174
+ from rem.models.core import CoreModel
175
+
176
+ @rem.register_model
177
+ class MyEntity(CoreModel):
178
+ name: str
179
+ description: str # Auto-embeds (content field)
180
+
181
+ # Or with options:
182
+ @rem.register_model(table_name="custom_table")
183
+ class AnotherEntity(CoreModel):
184
+ title: str
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Configuration (`rem configure`)
190
+
191
+ Interactive configuration wizard for REM setup.
192
+
193
+ ### Quick Start
194
+
195
+ ```bash
196
+ # Basic configuration (creates ~/.rem/config.yaml)
197
+ rem configure
198
+
199
+ # Configure + install database tables
200
+ rem configure --install
201
+
202
+ # View current configuration
203
+ rem configure --show
204
+
205
+ # Edit configuration file
206
+ rem configure --edit
207
+ ```
208
+
209
+ ### Configuration File
210
+
211
+ `~/.rem/config.yaml`:
212
+
213
+ ```yaml
214
+ postgres:
215
+ connection_string: postgresql://user:pass@localhost:5432/rem
216
+
217
+ llm:
218
+ default_model: anthropic:claude-sonnet-4-5-20250929
219
+ openai_api_key: sk-...
220
+ anthropic_api_key: sk-ant-...
221
+
222
+ s3:
223
+ bucket_name: rem-storage
224
+ region: us-east-1
225
+ ```
226
+
227
+ ### Environment Variables
228
+
229
+ All configuration can be overridden via environment variables:
230
+
231
+ ```bash
232
+ export POSTGRES__CONNECTION_STRING=postgresql://user:pass@host:5432/db
233
+ export LLM__DEFAULT_MODEL=anthropic:claude-sonnet-4-5-20250929
234
+ export LLM__OPENAI_API_KEY=sk-...
235
+ ```
236
+
237
+ **Precedence**: Environment variables > Config file > Defaults
238
+
239
+ ---
240
+
241
+ ## Cluster Management (`rem cluster`)
242
+
243
+ Commands for deploying REM to Kubernetes.
244
+
245
+ ### Quick Reference
246
+
247
+ ```bash
248
+ rem cluster init # Initialize cluster config
249
+ rem cluster generate # Generate all manifests (ArgoCD, ConfigMaps, etc.)
250
+ rem cluster setup-ssm # Create required SSM parameters in AWS
251
+ rem cluster validate # Validate deployment prerequisites
252
+ rem cluster env check # Validate .env for cluster deployment
253
+ ```
254
+
255
+ ### `rem cluster generate`
256
+
257
+ Generates all Kubernetes manifests from cluster config:
258
+
259
+ ```bash
260
+ rem cluster generate
261
+ ```
262
+
263
+ This generates/updates:
264
+ - ArgoCD Application manifests
265
+ - ClusterSecretStore configurations
266
+ - SQL init ConfigMap (from `rem/sql/migrations/*.sql`)
267
+
268
+ The SQL ConfigMap is used by CloudNativePG for database initialization on first cluster bootstrap.
269
+
270
+ ### `rem cluster env`
271
+
272
+ Environment configuration management:
273
+
274
+ ```bash
275
+ rem cluster env check # Validate .env for staging
276
+ rem cluster env check --env prod # Validate for production
277
+ rem cluster env generate # Generate ConfigMap from .env
278
+ rem cluster env diff # Compare .env with cluster ConfigMap
279
+ ```
280
+
281
+ ---
282
+
283
+ ## Other Commands
284
+
285
+ | Command | Description |
286
+ |---------|-------------|
287
+ | `rem ask` | Interactive chat with REM agents |
288
+ | `rem serve` | Start FastAPI server |
289
+ | `rem mcp` | MCP server commands |
290
+ | `rem dreaming` | Background knowledge processing |
291
+ | `rem process` | File processing utilities |
292
+
293
+ Run `rem COMMAND --help` for detailed usage.
294
+
295
+ ## See Also
296
+
297
+ - [rem/README.md](../../../../../README.md) - Main documentation
298
+ - [CLAUDE.md](../../../../../CLAUDE.md) - Architecture overview
299
+ - [postgres/README.md](../../services/postgres/README.md) - Database service details
@@ -0,0 +1,3 @@
1
+ """
2
+ CLI commands for REM.
3
+ """