remdb 0.3.163__py3-none-any.whl → 0.3.181__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.
- rem/agentic/agents/agent_manager.py +2 -1
- rem/agentic/context_builder.py +18 -6
- rem/agentic/mcp/tool_wrapper.py +43 -14
- rem/agentic/providers/pydantic_ai.py +76 -34
- rem/agentic/schema.py +4 -3
- rem/agentic/tools/rem_tools.py +11 -0
- rem/api/mcp_router/resources.py +75 -14
- rem/api/mcp_router/server.py +27 -24
- rem/api/mcp_router/tools.py +87 -2
- rem/api/routers/auth.py +11 -6
- rem/api/routers/chat/completions.py +1 -1
- rem/api/routers/chat/streaming.py +18 -0
- rem/auth/middleware.py +31 -28
- rem/cli/commands/ask.py +1 -1
- rem/cli/commands/db.py +118 -54
- rem/models/entities/ontology.py +93 -101
- rem/schemas/agents/core/agent-builder.yaml +143 -42
- rem/services/email/service.py +17 -6
- rem/services/embeddings/worker.py +26 -12
- rem/services/postgres/register_type.py +1 -1
- rem/services/postgres/repository.py +32 -21
- rem/services/postgres/schema_generator.py +5 -5
- rem/services/postgres/sql_builder.py +6 -5
- rem/services/user_service.py +12 -9
- rem/settings.py +7 -1
- rem/sql/background_indexes.sql +5 -0
- rem/sql/migrations/001_install.sql +33 -4
- rem/sql/migrations/002_install_models.sql +204 -186
- rem/utils/model_helpers.py +101 -0
- rem/utils/schema_loader.py +45 -7
- {remdb-0.3.163.dist-info → remdb-0.3.181.dist-info}/METADATA +1 -1
- {remdb-0.3.163.dist-info → remdb-0.3.181.dist-info}/RECORD +34 -34
- {remdb-0.3.163.dist-info → remdb-0.3.181.dist-info}/WHEEL +0 -0
- {remdb-0.3.163.dist-info → remdb-0.3.181.dist-info}/entry_points.txt +0 -0
rem/utils/model_helpers.py
CHANGED
|
@@ -19,6 +19,9 @@ Table Name Inference:
|
|
|
19
19
|
|
|
20
20
|
Model Resolution:
|
|
21
21
|
- model_from_arbitrary_casing: Resolve model class from flexible input casing
|
|
22
|
+
|
|
23
|
+
Data Validation:
|
|
24
|
+
- validate_data_for_model: Validate row data against a Pydantic model with clear error reporting
|
|
22
25
|
"""
|
|
23
26
|
|
|
24
27
|
import re
|
|
@@ -389,3 +392,101 @@ def model_from_arbitrary_casing(
|
|
|
389
392
|
f"Unknown model: '{name}' (normalized: '{normalized}'). "
|
|
390
393
|
f"Available models: {', '.join(available)}"
|
|
391
394
|
)
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
class ValidationResult:
|
|
398
|
+
"""Result of validating data against a Pydantic model."""
|
|
399
|
+
|
|
400
|
+
def __init__(
|
|
401
|
+
self,
|
|
402
|
+
valid: bool,
|
|
403
|
+
instance: BaseModel | None = None,
|
|
404
|
+
errors: list[str] | None = None,
|
|
405
|
+
missing_required: set[str] | None = None,
|
|
406
|
+
extra_fields: set[str] | None = None,
|
|
407
|
+
required_fields: set[str] | None = None,
|
|
408
|
+
optional_fields: set[str] | None = None,
|
|
409
|
+
):
|
|
410
|
+
self.valid = valid
|
|
411
|
+
self.instance = instance
|
|
412
|
+
self.errors = errors or []
|
|
413
|
+
self.missing_required = missing_required or set()
|
|
414
|
+
self.extra_fields = extra_fields or set()
|
|
415
|
+
self.required_fields = required_fields or set()
|
|
416
|
+
self.optional_fields = optional_fields or set()
|
|
417
|
+
|
|
418
|
+
def log_errors(self, row_label: str = "Row") -> None:
|
|
419
|
+
"""Log validation errors using loguru."""
|
|
420
|
+
if self.valid:
|
|
421
|
+
return
|
|
422
|
+
|
|
423
|
+
logger.error(f"{row_label}: Validation failed")
|
|
424
|
+
if self.missing_required:
|
|
425
|
+
logger.error(f" Missing required: {self.missing_required}")
|
|
426
|
+
if self.extra_fields:
|
|
427
|
+
logger.warning(f" Unknown fields (ignored): {self.extra_fields}")
|
|
428
|
+
for err in self.errors:
|
|
429
|
+
logger.error(f" - {err}")
|
|
430
|
+
logger.info(f" Required: {self.required_fields or '(none)'}")
|
|
431
|
+
logger.info(f" Optional: {self.optional_fields}")
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
def validate_data_for_model(
|
|
435
|
+
model: Type[BaseModel],
|
|
436
|
+
data: dict[str, Any],
|
|
437
|
+
) -> ValidationResult:
|
|
438
|
+
"""
|
|
439
|
+
Validate a data dict against a Pydantic model with detailed error reporting.
|
|
440
|
+
|
|
441
|
+
Args:
|
|
442
|
+
model: Pydantic model class to validate against
|
|
443
|
+
data: Dictionary of field values
|
|
444
|
+
|
|
445
|
+
Returns:
|
|
446
|
+
ValidationResult with validation status and detailed field info
|
|
447
|
+
|
|
448
|
+
Example:
|
|
449
|
+
>>> from rem.models.entities import Resource
|
|
450
|
+
>>> result = validate_data_for_model(Resource, {"name": "test", "content": "hello"})
|
|
451
|
+
>>> result.valid
|
|
452
|
+
True
|
|
453
|
+
>>> result = validate_data_for_model(Resource, {"unknown_field": "value"})
|
|
454
|
+
>>> result.valid
|
|
455
|
+
True # Resource has no required fields
|
|
456
|
+
>>> result.extra_fields
|
|
457
|
+
{'unknown_field'}
|
|
458
|
+
"""
|
|
459
|
+
from pydantic import ValidationError
|
|
460
|
+
|
|
461
|
+
model_fields = set(model.model_fields.keys())
|
|
462
|
+
required = {k for k, v in model.model_fields.items() if v.is_required()}
|
|
463
|
+
optional = model_fields - required
|
|
464
|
+
data_fields = set(data.keys())
|
|
465
|
+
|
|
466
|
+
missing_required = required - data_fields
|
|
467
|
+
extra_fields = data_fields - model_fields
|
|
468
|
+
|
|
469
|
+
try:
|
|
470
|
+
instance = model(**data)
|
|
471
|
+
return ValidationResult(
|
|
472
|
+
valid=True,
|
|
473
|
+
instance=instance,
|
|
474
|
+
required_fields=required,
|
|
475
|
+
optional_fields=optional,
|
|
476
|
+
extra_fields=extra_fields,
|
|
477
|
+
)
|
|
478
|
+
except ValidationError as e:
|
|
479
|
+
errors = []
|
|
480
|
+
for err in e.errors():
|
|
481
|
+
field = ".".join(str(p) for p in err["loc"])
|
|
482
|
+
if field not in missing_required: # Don't double-report missing
|
|
483
|
+
errors.append(f"{field}: {err['msg']}")
|
|
484
|
+
|
|
485
|
+
return ValidationResult(
|
|
486
|
+
valid=False,
|
|
487
|
+
errors=errors,
|
|
488
|
+
missing_required=missing_required,
|
|
489
|
+
extra_fields=extra_fields,
|
|
490
|
+
required_fields=required,
|
|
491
|
+
optional_fields=optional,
|
|
492
|
+
)
|
rem/utils/schema_loader.py
CHANGED
|
@@ -132,13 +132,51 @@ def _load_schema_from_database(schema_name: str, user_id: str) -> dict[str, Any]
|
|
|
132
132
|
# Check if we're already in an async context
|
|
133
133
|
try:
|
|
134
134
|
loop = asyncio.get_running_loop()
|
|
135
|
-
# We're in an async context -
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
"
|
|
140
|
-
|
|
141
|
-
|
|
135
|
+
# We're in an async context - use thread executor to run async code
|
|
136
|
+
import concurrent.futures
|
|
137
|
+
|
|
138
|
+
async def _async_lookup():
|
|
139
|
+
"""Async helper to query database."""
|
|
140
|
+
from rem.services.postgres import get_postgres_service
|
|
141
|
+
|
|
142
|
+
db = get_postgres_service()
|
|
143
|
+
if not db:
|
|
144
|
+
logger.debug("PostgreSQL service not available for schema lookup")
|
|
145
|
+
return None
|
|
146
|
+
|
|
147
|
+
try:
|
|
148
|
+
await db.connect()
|
|
149
|
+
|
|
150
|
+
query = """
|
|
151
|
+
SELECT spec FROM schemas
|
|
152
|
+
WHERE LOWER(name) = LOWER($1)
|
|
153
|
+
AND (user_id = $2 OR user_id = 'system' OR user_id IS NULL)
|
|
154
|
+
LIMIT 1
|
|
155
|
+
"""
|
|
156
|
+
logger.debug(f"Executing schema lookup: name={schema_name}, user_id={user_id}")
|
|
157
|
+
|
|
158
|
+
row = await db.fetchrow(query, schema_name, user_id)
|
|
159
|
+
|
|
160
|
+
if row:
|
|
161
|
+
spec = row.get("spec")
|
|
162
|
+
if spec and isinstance(spec, dict):
|
|
163
|
+
logger.debug(f"Found schema in database: {schema_name}")
|
|
164
|
+
return spec
|
|
165
|
+
|
|
166
|
+
logger.debug(f"Schema not found in database: {schema_name}")
|
|
167
|
+
return None
|
|
168
|
+
|
|
169
|
+
except Exception as e:
|
|
170
|
+
logger.debug(f"Database schema lookup error: {e}")
|
|
171
|
+
return None
|
|
172
|
+
finally:
|
|
173
|
+
await db.disconnect()
|
|
174
|
+
|
|
175
|
+
# Run in thread pool to avoid blocking the event loop
|
|
176
|
+
with concurrent.futures.ThreadPoolExecutor() as pool:
|
|
177
|
+
future = pool.submit(asyncio.run, _async_lookup())
|
|
178
|
+
return future.result(timeout=10)
|
|
179
|
+
|
|
142
180
|
except RuntimeError:
|
|
143
181
|
# Not in async context - safe to use asyncio.run()
|
|
144
182
|
pass
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: remdb
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.181
|
|
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
|
|
@@ -3,38 +3,38 @@ rem/config.py,sha256=cyXFpqgTvHeYeIriiQHGC1jSokp55BkJtMS1cVu-C1M,6769
|
|
|
3
3
|
rem/mcp_server.py,sha256=OK0XaO2k_7BnVRozOfH_xRL51SkRN9kLoNNp_zrrGeA,1383
|
|
4
4
|
rem/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
rem/registry.py,sha256=AAGcr7oRHiHsX2mu7TL4EgKw39IFea8F-YIgbX58CUM,10545
|
|
6
|
-
rem/settings.py,sha256=
|
|
6
|
+
rem/settings.py,sha256=Ecs3P6sxDnu1Ens5NsqNR998XnKRx5DOItxbM0au1tY,60155
|
|
7
7
|
rem/agentic/README.md,sha256=brF1Z1V6s8z5TLoyNPQ3BC5mqDy648QRPOQmGu6Jkzw,21815
|
|
8
8
|
rem/agentic/__init__.py,sha256=-UZiEYpodfD5xDns6L0nYSqK9owr3NxiWsq6vmK1tGk,1268
|
|
9
9
|
rem/agentic/context.py,sha256=JGwgCQ5S_jd8MXO6xJNe_ddHX46M6m9qjfRKhZxkS_o,9402
|
|
10
|
-
rem/agentic/context_builder.py,sha256=
|
|
10
|
+
rem/agentic/context_builder.py,sha256=POz8Rje4xn01K7i7yq3ty5RX3CZUhI2AlVPbrzgQWDo,14068
|
|
11
11
|
rem/agentic/llm_provider_models.py,sha256=bkBs_6aQ0maerlnQNH5hWv21Os3mX5Q14zXTW_8bGgI,10508
|
|
12
12
|
rem/agentic/query.py,sha256=yBtVT9bCUT9DPKRw9UltzN4o9wgB-Ry-FfW814Eg1WE,3612
|
|
13
13
|
rem/agentic/query_helper.py,sha256=DAr-he5XsJfwrcEzfJCNujWYU6MFvK0JFXee2ulRMQU,2458
|
|
14
|
-
rem/agentic/schema.py,sha256=
|
|
14
|
+
rem/agentic/schema.py,sha256=lc819ZJNiGC3tEQO6sfN-H93PU9-wqXTNA7h1Cn9myY,22993
|
|
15
15
|
rem/agentic/serialization.py,sha256=zwjyvcGjTHuChG9goRHEVlA3etAekVJGzv9o6Fo7raM,7999
|
|
16
16
|
rem/agentic/agents/README.md,sha256=npq2ENb5dNGYxqGQYTb9E0JquyKcXrMt8kM2q6LRxRk,4972
|
|
17
17
|
rem/agentic/agents/__init__.py,sha256=OV-9J0EpxLv_zjhv9v2o-42tFcSkLabrwgumood27ZI,893
|
|
18
|
-
rem/agentic/agents/agent_manager.py,sha256=
|
|
18
|
+
rem/agentic/agents/agent_manager.py,sha256=idT4brDCSzjDKkm897acKHgbJb25FISvDKqeWyU7hak,8228
|
|
19
19
|
rem/agentic/agents/sse_simulator.py,sha256=NTJuunUlEY5KFUKbxgkrt5iihdVIEAqPsufUVisziaQ,16392
|
|
20
20
|
rem/agentic/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
rem/agentic/mcp/tool_wrapper.py,sha256=
|
|
21
|
+
rem/agentic/mcp/tool_wrapper.py,sha256=0BDtg7Dp1Hk6rsCeZW39YV_DWPAsBwZrJ67r0KTKa8g,12172
|
|
22
22
|
rem/agentic/otel/__init__.py,sha256=IC0lLMmuxXRZrhO9p8-GQ6raZDP9YE3gcuCwl6vBv4c,195
|
|
23
23
|
rem/agentic/otel/setup.py,sha256=-NL5jDXuDdQMKEhZfOtjZ2kJtpayQ7dhM0p1OrU185c,9629
|
|
24
24
|
rem/agentic/providers/phoenix.py,sha256=_e8-S8aSfpX2EulH0nXAermoDZ1c9Kh3QALGTCvCmC4,35422
|
|
25
|
-
rem/agentic/providers/pydantic_ai.py,sha256=
|
|
25
|
+
rem/agentic/providers/pydantic_ai.py,sha256=_9EdJrxFZDptgTAJ3MuXyen7zok91CVaqX7Dwvrxzp8,34188
|
|
26
26
|
rem/agentic/tools/__init__.py,sha256=tb_9ml0i2LtEALAJ6h7D91xVEA_8ktDzD4s3nM0MsUE,147
|
|
27
|
-
rem/agentic/tools/rem_tools.py,sha256=
|
|
27
|
+
rem/agentic/tools/rem_tools.py,sha256=0Aps2TcA3z6WLJQ1M98iYX-1uoIEwTozmwodl2_AUCI,7833
|
|
28
28
|
rem/api/README.md,sha256=68KtBi1nkXm_J0skGVBhchXP-cLNaBBka6ZhLqAncoA,19998
|
|
29
29
|
rem/api/deps.py,sha256=3_M8YOdyzEkr4kIhjJvxuDvnSaq7U8TLx1sZkEG63eU,6611
|
|
30
30
|
rem/api/main.py,sha256=TqNO7C-O483qvmM5odHTbqTgq4Lq4CibsF3Steq4ApE,16743
|
|
31
31
|
rem/api/mcp_router/prompts.py,sha256=bVNsJMur6i0oyd38WIr-r0kUNUAlcGG595WVhBDwxik,4077
|
|
32
|
-
rem/api/mcp_router/resources.py,sha256=
|
|
33
|
-
rem/api/mcp_router/server.py,sha256=
|
|
34
|
-
rem/api/mcp_router/tools.py,sha256=
|
|
32
|
+
rem/api/mcp_router/resources.py,sha256=sN9quo7HsGxlDpOS1_1kwM1RhT9oayvpz9Bsi0DwKkM,18788
|
|
33
|
+
rem/api/mcp_router/server.py,sha256=ESD219vLiDkxJf_l3uGV7cRKMpwuZB_Jmso6mXzxULs,11475
|
|
34
|
+
rem/api/mcp_router/tools.py,sha256=OhtA6IEO8l5eh6C2Vf4f2Chad_hzg_7jx1vrRr8vcko,42665
|
|
35
35
|
rem/api/middleware/tracking.py,sha256=ZlFkCVsmIfGuiRX1PPWN0vEIPZoOFIKqMZ3P-CjwfHc,6453
|
|
36
36
|
rem/api/routers/admin.py,sha256=AEvfi5QyfTG_3a8LZ5FPgbOXPajKeIu_5P6oqmLYa1E,14696
|
|
37
|
-
rem/api/routers/auth.py,sha256=
|
|
37
|
+
rem/api/routers/auth.py,sha256=U42HaghPwyT--yTWHplAFmZbwkwXHpkaTo9Y4LQ0DDE,23168
|
|
38
38
|
rem/api/routers/dev.py,sha256=rLySeGas9USZxMxJiHU4ziaA8EK9aoc8dg7TpJagV-I,2229
|
|
39
39
|
rem/api/routers/feedback.py,sha256=UfDQlqeRwB1b4Q0agJOBahiAHL_aAHMb_l7TEjwZuGs,11378
|
|
40
40
|
rem/api/routers/messages.py,sha256=LLJSAZd6sD6IzaGhfMM1dGm-Uz4D6BdYBk1OsMmpUDM,16215
|
|
@@ -42,16 +42,16 @@ rem/api/routers/models.py,sha256=GMhDJzLrWe-gp842F1Vua2XOjZNAcIG-p-tCquJ5FQM,194
|
|
|
42
42
|
rem/api/routers/query.py,sha256=cYV2HoSqMHr7kgeEFhx2GqUt_9Geg756JgJoYrX6OrU,13972
|
|
43
43
|
rem/api/routers/shared_sessions.py,sha256=9vQoQOsQhqWzcoJZ7_dhvi6zJlR5B72LP5THLfm--Ts,12259
|
|
44
44
|
rem/api/routers/chat/__init__.py,sha256=fck9klAzF7HJHNPAhl0B63uSavXvs6h26QhUsByf4JM,113
|
|
45
|
-
rem/api/routers/chat/completions.py,sha256=
|
|
45
|
+
rem/api/routers/chat/completions.py,sha256=ZjwKULboM0oKhSc0DP3tj4gamMNKphkvgJ01bUQ-O2Q,27239
|
|
46
46
|
rem/api/routers/chat/json_utils.py,sha256=BVRu-7PWIHTbC9Ubq4MfifZ8qYQZpcGhEgFgPVcXXKE,2191
|
|
47
47
|
rem/api/routers/chat/models.py,sha256=kzBxRvm5Ie2IchJrnFOom8cx6_ieEbuF2RqfiRJNNh8,7339
|
|
48
48
|
rem/api/routers/chat/otel_utils.py,sha256=al_4v044T3sOtIZtT9kHiNT6Twlc7wqz26edCcUSHSY,930
|
|
49
49
|
rem/api/routers/chat/sse_events.py,sha256=CS1yuor09Qq48bpJBODu7INS94S4GjS8YsPZkIc3Ii8,16508
|
|
50
|
-
rem/api/routers/chat/streaming.py,sha256=
|
|
50
|
+
rem/api/routers/chat/streaming.py,sha256=WCxtJ32V-9NpvkCvum1C8ay5IQ5tADpkKXgcurewcv8,41154
|
|
51
51
|
rem/auth/README.md,sha256=BpZUqEVYMUpQG4guykyuvmtzlH3_LsGzspuRZS20i8k,8631
|
|
52
52
|
rem/auth/__init__.py,sha256=ebS-_x21TZsgq7QVgziUpXagSVQU5y0kIxqc_ZywzCE,1027
|
|
53
53
|
rem/auth/jwt.py,sha256=hKO8DeNZohqBiS8F7ZVOnlg-IF0SrGZ7cWMdC0a9jTE,10997
|
|
54
|
-
rem/auth/middleware.py,sha256=
|
|
54
|
+
rem/auth/middleware.py,sha256=VUfbeUTeT7yGI-ZxlqeJAru_EH-qtiBaIHdFuRZozWA,11309
|
|
55
55
|
rem/auth/providers/__init__.py,sha256=yWurO-3o0fT_XIVcIyDX-ECx37jVn5g0pvOxcsU4Q3k,429
|
|
56
56
|
rem/auth/providers/base.py,sha256=wa7lrgM0AetZnITc45QFyiNHXgVVoWmZgW9tBpInDLw,11831
|
|
57
57
|
rem/auth/providers/email.py,sha256=LOrVIUiWDTTXMDLeiaTlrA1IQgELQS-nEtXzmzV2BaE,7000
|
|
@@ -63,10 +63,10 @@ rem/cli/dreaming.py,sha256=UUxx9zXFDIvI5QhCLB303TPH0OiYMnr3l2YhF2GvF_8,11537
|
|
|
63
63
|
rem/cli/main.py,sha256=gP-lnD6kkCGeeMHh9aWPRb26CT1zpsDUwuQ30Zqkobw,3127
|
|
64
64
|
rem/cli/commands/README.md,sha256=CxTm4pAKVzE780sWn_sAILu2_nH_0oh9whppZvW4bew,9295
|
|
65
65
|
rem/cli/commands/__init__.py,sha256=wKff1WrBXwf-vDXjSvUuk-61Npm5716okVnOQ22FcEk,30
|
|
66
|
-
rem/cli/commands/ask.py,sha256=
|
|
66
|
+
rem/cli/commands/ask.py,sha256=uxKM9z_k6iNi39UC1WQ8crZcT1u17TWo_MwgI0nZANo,19374
|
|
67
67
|
rem/cli/commands/cluster.py,sha256=MQThC3Da73ixVQ75UYxleQlB8AqPQLzEK73eaB8pNFI,64247
|
|
68
68
|
rem/cli/commands/configure.py,sha256=GQzlER8PkUCTaeYuLbXUYoeqlmEDafcjAcPJrDchC1I,16595
|
|
69
|
-
rem/cli/commands/db.py,sha256=
|
|
69
|
+
rem/cli/commands/db.py,sha256=p8U7hL6iukSrZvYTD70JcwWDMZvLUZtTZLDebyTclbE,27506
|
|
70
70
|
rem/cli/commands/dreaming.py,sha256=2P8nyX9gnRgyCJZrDuyJt5_YAsFmjUGa6dg7OvoLA8k,13292
|
|
71
71
|
rem/cli/commands/experiments.py,sha256=dRJKtvrGQu0a9bQZaLnVfdWhaur2bKYviixqOnYQC-k,62472
|
|
72
72
|
rem/cli/commands/mcp.py,sha256=PiP_zXflZ2lPVgmH3N8EGOWXDSfvNTQJD-MMW3ym3xo,1666
|
|
@@ -88,7 +88,7 @@ rem/models/entities/file.py,sha256=plUm0Caww_yNrpgnOkGp3RBv4l9I6szGOe-NuAuWCcg,1
|
|
|
88
88
|
rem/models/entities/image_resource.py,sha256=FIZbGVgsroHY47ESbFIjy0sOtgM8w6vHPUk9lJSVJz4,3254
|
|
89
89
|
rem/models/entities/message.py,sha256=KHHDBKs_UsWQ-0LURRQlDTV_iiUozmERMBWLPlHPbgg,1966
|
|
90
90
|
rem/models/entities/moment.py,sha256=sTRFShQwgJMez9OcU7-Vs6k-Whof2TuZCVjdUSyVjVY,4434
|
|
91
|
-
rem/models/entities/ontology.py,sha256=
|
|
91
|
+
rem/models/entities/ontology.py,sha256=bvUBTlg4fQ0mWtiSEggeri3he5BqwYXF_TpuYmzCKxI,7584
|
|
92
92
|
rem/models/entities/ontology_config.py,sha256=fe-LLM-AaKznVoQ02ou2GvPSAp_Bwez0rk3H0RIUYTw,5055
|
|
93
93
|
rem/models/entities/resource.py,sha256=FW7R_AylZilb-1iYfZA5MMQw2zA42CUVweKgO-4cwqM,3407
|
|
94
94
|
rem/models/entities/schema.py,sha256=CEcd49kR_6YgaLLKsWaIb2J0KdbVsgYoi_srPgzr9Aw,2945
|
|
@@ -100,7 +100,7 @@ rem/schemas/README.md,sha256=_WH2A78jyLb11xu8q1tu4pDMlgZfE9WjYqrAUbn2BIM,13588
|
|
|
100
100
|
rem/schemas/__init__.py,sha256=cY7Hqc056Mb3t12nfpkAK6WZDvOP1gk4rv0CK4VbhTk,213
|
|
101
101
|
rem/schemas/agents/README.md,sha256=FZI5B8Miqod7KY3KxidW4q8u9W7FbtigV2VU7ropPS0,2815
|
|
102
102
|
rem/schemas/agents/rem.yaml,sha256=w8hIZvAnoWmYJrob1gEZ-yi6BXLQoafwlysYeGU168g,8390
|
|
103
|
-
rem/schemas/agents/core/agent-builder.yaml,sha256
|
|
103
|
+
rem/schemas/agents/core/agent-builder.yaml,sha256=-Yy-X1nreK1hEjGad1Pr0ROtG1LiRtidq8-63CMEqL4,7399
|
|
104
104
|
rem/schemas/agents/core/moment-builder.yaml,sha256=-nieKbEiYKiIwBtTCBtIVDKV-cfXpGn0AJ66BUUm48U,8368
|
|
105
105
|
rem/schemas/agents/core/rem-query-agent.yaml,sha256=dQyShquyn-2nGooy8tyZ588etfx4kzfAE1xDIBCJCVI,10265
|
|
106
106
|
rem/schemas/agents/core/resource-affinity-assessor.yaml,sha256=AXS_gvDdjUyFGZO-VJsGx30qKDIQJjdWU81ben-Jrk0,5361
|
|
@@ -121,7 +121,7 @@ rem/schemas/evaluators/rem/retrieval-recall.yaml,sha256=2IuO8uu9hr-Nrn23nDo4rebE
|
|
|
121
121
|
rem/schemas/evaluators/rem/search-correctness.yaml,sha256=pODDOMCqnTfAViQnn_KvSO132JYXoZiMeXW-8g7v-JE,6247
|
|
122
122
|
rem/services/__init__.py,sha256=NEm6aX38YW1HcICNGYbYTZb4VGWHgqRev5Rrf6xOQi0,566
|
|
123
123
|
rem/services/rate_limit.py,sha256=p7tTvGQfyM4XalEMdtGaDKvwCeuKZLQXSoM07aEru98,3725
|
|
124
|
-
rem/services/user_service.py,sha256=
|
|
124
|
+
rem/services/user_service.py,sha256=TJJDnWgrFviY7yb0bz5jfmYGnuQ2WaGvGvD5OgEOa0Q,4110
|
|
125
125
|
rem/services/audio/INTEGRATION.md,sha256=j1GhA1Az_x8Q6soxQ2blQ-0Av7he3lkeEw8P4SffI88,9526
|
|
126
126
|
rem/services/audio/README.md,sha256=VQmqhRNvNqXU549rhf589WBs1iacbvzayhRER1lyXV4,10355
|
|
127
127
|
rem/services/audio/__init__.py,sha256=jTAbL0324bJESsY9FBum6ybaXaxy7HTlREm9FiuCcSI,438
|
|
@@ -139,11 +139,11 @@ rem/services/dreaming/ontology_service.py,sha256=hpP3aCYqsP26taq3__Q2w_jmA9-J1wZ
|
|
|
139
139
|
rem/services/dreaming/user_model_service.py,sha256=oTuqFdNxegWwVGzOOnwdf5YS2IKQYRNW10bV5efG57E,9929
|
|
140
140
|
rem/services/dreaming/utils.py,sha256=ntCXGygJERdH7CW59kudjodBVP6oD4mH42_vH_2powk,1116
|
|
141
141
|
rem/services/email/__init__.py,sha256=SwPCjm-8EuSFcap-LYLQ3NQnofd0v27ks0qLAKkg_tM,271
|
|
142
|
-
rem/services/email/service.py,sha256=
|
|
142
|
+
rem/services/email/service.py,sha256=13v-EGHIDda0IyIg7bVDGea32fYLmq9VWruqr2KdcFU,18211
|
|
143
143
|
rem/services/email/templates.py,sha256=bXgNweo6xwGJxxDvnjmhI320eyHTRtnyjstYk-Fs_5k,12775
|
|
144
144
|
rem/services/embeddings/__init__.py,sha256=Jr22tszCfpmishCnnQrS0MBHxiUK_E7rJmNqTeR_xpI,293
|
|
145
145
|
rem/services/embeddings/api.py,sha256=mDkx_-wWOfjI4uuPIaQDLkfdznEdXQFOvx4VK-Ll4oc,4340
|
|
146
|
-
rem/services/embeddings/worker.py,sha256=
|
|
146
|
+
rem/services/embeddings/worker.py,sha256=EQcqkqaAaTw8ymEPDl0EG-NGoP3IIRXhNYVXBwCJyuA,14788
|
|
147
147
|
rem/services/fs/README.md,sha256=Rocb3a0uz27q1QXlhT8DQNUzHM6o_ryt4pRREgcvf0Q,18322
|
|
148
148
|
rem/services/fs/__init__.py,sha256=VvFB1SMQLzd0rRatWvhpnFkoOGDBHYdTC63tZkzOy10,1606
|
|
149
149
|
rem/services/fs/examples.py,sha256=ERHJP7RzZ8stetxesILaTvT4gOa9vlkW-e8EP-ZWAM8,5572
|
|
@@ -169,11 +169,11 @@ rem/services/postgres/__init__.py,sha256=hPOVs7Gi42qjz9ySu1y1Fmxcyo21UrhVycw_y4Y
|
|
|
169
169
|
rem/services/postgres/diff_service.py,sha256=J6QFsNmgaJA5I3BtP8_1NNm-OwloG8p44PlHhwCJiYc,20087
|
|
170
170
|
rem/services/postgres/migration_service.py,sha256=2irsWfzczZ0_-wge6ReyCrFrE3HxvnlwKAEp8mWqtQo,14897
|
|
171
171
|
rem/services/postgres/pydantic_to_sqlalchemy.py,sha256=09KUBZWe8SgjSvXLkftG9zby8crWqnmDz9KlTJ0MVoM,17248
|
|
172
|
-
rem/services/postgres/register_type.py,sha256=
|
|
173
|
-
rem/services/postgres/repository.py,sha256=
|
|
174
|
-
rem/services/postgres/schema_generator.py,sha256=
|
|
172
|
+
rem/services/postgres/register_type.py,sha256=EDZZ7gqpqDAiXjoRK8nqM-bTjLFMmkR8dUsEKE7WVro,11184
|
|
173
|
+
rem/services/postgres/repository.py,sha256=73oXs5Ya2JNM_bpS1Xh9AJlvRjF0vJYAJlAEqaRbpyM,16446
|
|
174
|
+
rem/services/postgres/schema_generator.py,sha256=R0qJI_wFp4JgkGsh42kVtxdCAWjd129qlGV2_3YdgoM,23943
|
|
175
175
|
rem/services/postgres/service.py,sha256=3CIOP7LuaK4p2rYTyscIXasGLTwjb62HnAGbOCuEm74,27122
|
|
176
|
-
rem/services/postgres/sql_builder.py,sha256=
|
|
176
|
+
rem/services/postgres/sql_builder.py,sha256=dgezomG1s-cLcu8Q3u8AjOWO3Rtyg4r_m91UAE4vc9o,10418
|
|
177
177
|
rem/services/rem/README.md,sha256=uNFYDzlxFuYOAE3Qxuiy7OYRPoTIDWT_e3d7FZmVHQ8,15441
|
|
178
178
|
rem/services/rem/__init__.py,sha256=c0Mzd9K2hzeDTldU4IffQPhiuGshfLqdIFp1KQ9ykU4,482
|
|
179
179
|
rem/services/rem/exceptions.py,sha256=9pse9_1XKm7VuiRxZVgHZeD2nm8yabYfw24Fga_mdGc,2440
|
|
@@ -186,9 +186,9 @@ rem/services/session/README.md,sha256=WDoVWMRXrSh6wRSlUQ0oIHUItOol65INl86VCNPUOY
|
|
|
186
186
|
rem/services/session/__init__.py,sha256=ODLcjnOjLubJU8ncvZsB4SB2zl-mncQQLDZWILwc0Cs,254
|
|
187
187
|
rem/services/session/compression.py,sha256=8PTGqJ9G4AJaMHzJL5BbVMz_okFSqWbRI3TSHCRYriU,17079
|
|
188
188
|
rem/services/session/reload.py,sha256=qbs9yYYBaEH0n_XN_A4BqHcB0RIX_JMkZjHNzUR6zY4,2805
|
|
189
|
-
rem/sql/background_indexes.sql,sha256=
|
|
190
|
-
rem/sql/migrations/001_install.sql,sha256=
|
|
191
|
-
rem/sql/migrations/002_install_models.sql,sha256=
|
|
189
|
+
rem/sql/background_indexes.sql,sha256=wbQMtgap247K29w24aPPHhhF0tdcFuZ2nCWyALh51DM,1985
|
|
190
|
+
rem/sql/migrations/001_install.sql,sha256=DN8Yo8jcpA4Xc_C6IHURqVGr0nXb4V9_BzfStJqVvOE,31187
|
|
191
|
+
rem/sql/migrations/002_install_models.sql,sha256=kkJvvyxKGSWlGgrA8_e4iwfvlLWcqqQfPXQ-MnlFOT8,152230
|
|
192
192
|
rem/sql/migrations/003_optional_extensions.sql,sha256=QACy3J50ZgV_4BHNkkT3iswkE1ijc0oCAOgavv6KC5g,12443
|
|
193
193
|
rem/sql/migrations/004_cache_system.sql,sha256=KBpU3hQY08So_MkMfcOwTZDngTMqa_3kA0ujQ98K33k,19672
|
|
194
194
|
rem/sql/migrations/005_schema_update.sql,sha256=fVcuUt0I24UXMEWA25TM-kN29GC19IAqxlxFP-3Z2ys,5055
|
|
@@ -206,8 +206,8 @@ rem/utils/embeddings.py,sha256=FnjZFHXgxf__dbubY2HknhDAngizr8j7P28-Sug4-f0,13150
|
|
|
206
206
|
rem/utils/files.py,sha256=6ax-5vmk_4cI-IG55PT9sKj_DqXBl32RkTRSsxqvgGY,8759
|
|
207
207
|
rem/utils/markdown.py,sha256=zhfSiSRX36vky1b2UOGKsuSr11L2l6Kl_O7iSfwQXBY,401
|
|
208
208
|
rem/utils/mime_types.py,sha256=8KGEuPWVdQ8r1DFLsgiaAgEYqMaaQIk-6lCVOBB1z_A,5346
|
|
209
|
-
rem/utils/model_helpers.py,sha256=
|
|
210
|
-
rem/utils/schema_loader.py,sha256=
|
|
209
|
+
rem/utils/model_helpers.py,sha256=c60hxrS6wmYCIJjjl7uMq4cE-GCe27A7YAizRjKqtJE,15160
|
|
210
|
+
rem/utils/schema_loader.py,sha256=4sfhbjSuFK8WN3e86IdqN8wsgbIA4dgboWMG-CuZzbY,24050
|
|
211
211
|
rem/utils/sql_paths.py,sha256=4bEHU3J3liZdhWYu0WSpCQSo-wfO0sHC_BrJlStRAks,4257
|
|
212
212
|
rem/utils/sql_types.py,sha256=VKGmDhxPP91EnjJ6h78Q2sUvjBulowR1brtgAdACbtE,10622
|
|
213
213
|
rem/utils/user_id.py,sha256=AhrUniMZYDybHT6mcv9RalUS3klobqkoMmPh9ZxiZcU,2107
|
|
@@ -222,7 +222,7 @@ rem/workers/dreaming.py,sha256=UqCf-iBUhzBVBRFj7_DtR6q27oRo7EUoal9qqHLzlo4,17823
|
|
|
222
222
|
rem/workers/engram_processor.py,sha256=Ws92kAILMLK_np3F1HRmhKKXiruLIvFn3o9MY3V2W8g,10779
|
|
223
223
|
rem/workers/sqs_file_processor.py,sha256=tX8S0yo2n1XGvaZ7JUqeGmtTwxybQqz3wkHT2j6Ak7Y,6597
|
|
224
224
|
rem/workers/unlogged_maintainer.py,sha256=KhebhXl3s6DwvHnXXEJ45r5tLK9PNj-0KclNIQVQ68s,15817
|
|
225
|
-
remdb-0.3.
|
|
226
|
-
remdb-0.3.
|
|
227
|
-
remdb-0.3.
|
|
228
|
-
remdb-0.3.
|
|
225
|
+
remdb-0.3.181.dist-info/METADATA,sha256=gK70ym1aGV_IL8C3wwEZ4UZR2W_5_XkS6gaaFHRfV74,53341
|
|
226
|
+
remdb-0.3.181.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
227
|
+
remdb-0.3.181.dist-info/entry_points.txt,sha256=gmmrz7tRC1WGUrCMJMg6p5pEP5h5mPYRvWIxp1FYdr0,42
|
|
228
|
+
remdb-0.3.181.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|