remdb 0.3.157__py3-none-any.whl → 0.3.180__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.
- rem/agentic/agents/agent_manager.py +2 -1
- rem/agentic/context.py +81 -3
- rem/agentic/context_builder.py +31 -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/deps.py +1 -3
- rem/api/main.py +21 -2
- rem/api/mcp_router/resources.py +75 -14
- rem/api/mcp_router/server.py +27 -24
- rem/api/mcp_router/tools.py +83 -2
- rem/api/middleware/tracking.py +5 -5
- rem/api/routers/auth.py +152 -10
- rem/api/routers/chat/completions.py +5 -3
- rem/api/routers/chat/streaming.py +18 -0
- rem/api/routers/messages.py +24 -15
- rem/auth/jwt.py +352 -0
- rem/auth/middleware.py +70 -30
- rem/cli/commands/ask.py +1 -1
- rem/cli/commands/db.py +98 -44
- rem/models/entities/ontology.py +93 -101
- rem/schemas/agents/core/agent-builder.yaml +143 -42
- rem/services/email/service.py +72 -9
- rem/services/postgres/register_type.py +1 -1
- rem/services/postgres/repository.py +5 -4
- rem/services/user_service.py +41 -9
- rem/settings.py +15 -1
- rem/sql/background_indexes.sql +5 -0
- rem/sql/migrations/001_install.sql +33 -4
- rem/sql/migrations/002_install_models.sql +186 -168
- rem/utils/model_helpers.py +101 -0
- rem/utils/schema_loader.py +45 -7
- {remdb-0.3.157.dist-info → remdb-0.3.180.dist-info}/METADATA +1 -1
- {remdb-0.3.157.dist-info → remdb-0.3.180.dist-info}/RECORD +37 -36
- {remdb-0.3.157.dist-info → remdb-0.3.180.dist-info}/WHEEL +0 -0
- {remdb-0.3.157.dist-info → remdb-0.3.180.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.180
|
|
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,54 +3,55 @@ 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
|
-
rem/agentic/context.py,sha256=
|
|
10
|
-
rem/agentic/context_builder.py,sha256=
|
|
9
|
+
rem/agentic/context.py,sha256=JGwgCQ5S_jd8MXO6xJNe_ddHX46M6m9qjfRKhZxkS_o,9402
|
|
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
|
-
rem/api/deps.py,sha256=
|
|
30
|
-
rem/api/main.py,sha256=
|
|
29
|
+
rem/api/deps.py,sha256=3_M8YOdyzEkr4kIhjJvxuDvnSaq7U8TLx1sZkEG63eU,6611
|
|
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=
|
|
35
|
-
rem/api/middleware/tracking.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=hud3QVz3QqbgSNIvV41afDPgXPEw-b0jVmXFy9sBwjc,42343
|
|
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
|
-
rem/api/routers/messages.py,sha256=
|
|
40
|
+
rem/api/routers/messages.py,sha256=LLJSAZd6sD6IzaGhfMM1dGm-Uz4D6BdYBk1OsMmpUDM,16215
|
|
41
41
|
rem/api/routers/models.py,sha256=GMhDJzLrWe-gp842F1Vua2XOjZNAcIG-p-tCquJ5FQM,1946
|
|
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
|
-
rem/auth/
|
|
53
|
+
rem/auth/jwt.py,sha256=hKO8DeNZohqBiS8F7ZVOnlg-IF0SrGZ7cWMdC0a9jTE,10997
|
|
54
|
+
rem/auth/middleware.py,sha256=VUfbeUTeT7yGI-ZxlqeJAru_EH-qtiBaIHdFuRZozWA,11309
|
|
54
55
|
rem/auth/providers/__init__.py,sha256=yWurO-3o0fT_XIVcIyDX-ECx37jVn5g0pvOxcsU4Q3k,429
|
|
55
56
|
rem/auth/providers/base.py,sha256=wa7lrgM0AetZnITc45QFyiNHXgVVoWmZgW9tBpInDLw,11831
|
|
56
57
|
rem/auth/providers/email.py,sha256=LOrVIUiWDTTXMDLeiaTlrA1IQgELQS-nEtXzmzV2BaE,7000
|
|
@@ -62,10 +63,10 @@ rem/cli/dreaming.py,sha256=UUxx9zXFDIvI5QhCLB303TPH0OiYMnr3l2YhF2GvF_8,11537
|
|
|
62
63
|
rem/cli/main.py,sha256=gP-lnD6kkCGeeMHh9aWPRb26CT1zpsDUwuQ30Zqkobw,3127
|
|
63
64
|
rem/cli/commands/README.md,sha256=CxTm4pAKVzE780sWn_sAILu2_nH_0oh9whppZvW4bew,9295
|
|
64
65
|
rem/cli/commands/__init__.py,sha256=wKff1WrBXwf-vDXjSvUuk-61Npm5716okVnOQ22FcEk,30
|
|
65
|
-
rem/cli/commands/ask.py,sha256=
|
|
66
|
+
rem/cli/commands/ask.py,sha256=uxKM9z_k6iNi39UC1WQ8crZcT1u17TWo_MwgI0nZANo,19374
|
|
66
67
|
rem/cli/commands/cluster.py,sha256=MQThC3Da73ixVQ75UYxleQlB8AqPQLzEK73eaB8pNFI,64247
|
|
67
68
|
rem/cli/commands/configure.py,sha256=GQzlER8PkUCTaeYuLbXUYoeqlmEDafcjAcPJrDchC1I,16595
|
|
68
|
-
rem/cli/commands/db.py,sha256=
|
|
69
|
+
rem/cli/commands/db.py,sha256=G4YyWS-E-lF-LS_fnPSYoISdZyYQsKm-FwsraTHuTNU,27157
|
|
69
70
|
rem/cli/commands/dreaming.py,sha256=2P8nyX9gnRgyCJZrDuyJt5_YAsFmjUGa6dg7OvoLA8k,13292
|
|
70
71
|
rem/cli/commands/experiments.py,sha256=dRJKtvrGQu0a9bQZaLnVfdWhaur2bKYviixqOnYQC-k,62472
|
|
71
72
|
rem/cli/commands/mcp.py,sha256=PiP_zXflZ2lPVgmH3N8EGOWXDSfvNTQJD-MMW3ym3xo,1666
|
|
@@ -87,7 +88,7 @@ rem/models/entities/file.py,sha256=plUm0Caww_yNrpgnOkGp3RBv4l9I6szGOe-NuAuWCcg,1
|
|
|
87
88
|
rem/models/entities/image_resource.py,sha256=FIZbGVgsroHY47ESbFIjy0sOtgM8w6vHPUk9lJSVJz4,3254
|
|
88
89
|
rem/models/entities/message.py,sha256=KHHDBKs_UsWQ-0LURRQlDTV_iiUozmERMBWLPlHPbgg,1966
|
|
89
90
|
rem/models/entities/moment.py,sha256=sTRFShQwgJMez9OcU7-Vs6k-Whof2TuZCVjdUSyVjVY,4434
|
|
90
|
-
rem/models/entities/ontology.py,sha256=
|
|
91
|
+
rem/models/entities/ontology.py,sha256=bvUBTlg4fQ0mWtiSEggeri3he5BqwYXF_TpuYmzCKxI,7584
|
|
91
92
|
rem/models/entities/ontology_config.py,sha256=fe-LLM-AaKznVoQ02ou2GvPSAp_Bwez0rk3H0RIUYTw,5055
|
|
92
93
|
rem/models/entities/resource.py,sha256=FW7R_AylZilb-1iYfZA5MMQw2zA42CUVweKgO-4cwqM,3407
|
|
93
94
|
rem/models/entities/schema.py,sha256=CEcd49kR_6YgaLLKsWaIb2J0KdbVsgYoi_srPgzr9Aw,2945
|
|
@@ -99,7 +100,7 @@ rem/schemas/README.md,sha256=_WH2A78jyLb11xu8q1tu4pDMlgZfE9WjYqrAUbn2BIM,13588
|
|
|
99
100
|
rem/schemas/__init__.py,sha256=cY7Hqc056Mb3t12nfpkAK6WZDvOP1gk4rv0CK4VbhTk,213
|
|
100
101
|
rem/schemas/agents/README.md,sha256=FZI5B8Miqod7KY3KxidW4q8u9W7FbtigV2VU7ropPS0,2815
|
|
101
102
|
rem/schemas/agents/rem.yaml,sha256=w8hIZvAnoWmYJrob1gEZ-yi6BXLQoafwlysYeGU168g,8390
|
|
102
|
-
rem/schemas/agents/core/agent-builder.yaml,sha256
|
|
103
|
+
rem/schemas/agents/core/agent-builder.yaml,sha256=-Yy-X1nreK1hEjGad1Pr0ROtG1LiRtidq8-63CMEqL4,7399
|
|
103
104
|
rem/schemas/agents/core/moment-builder.yaml,sha256=-nieKbEiYKiIwBtTCBtIVDKV-cfXpGn0AJ66BUUm48U,8368
|
|
104
105
|
rem/schemas/agents/core/rem-query-agent.yaml,sha256=dQyShquyn-2nGooy8tyZ588etfx4kzfAE1xDIBCJCVI,10265
|
|
105
106
|
rem/schemas/agents/core/resource-affinity-assessor.yaml,sha256=AXS_gvDdjUyFGZO-VJsGx30qKDIQJjdWU81ben-Jrk0,5361
|
|
@@ -120,7 +121,7 @@ rem/schemas/evaluators/rem/retrieval-recall.yaml,sha256=2IuO8uu9hr-Nrn23nDo4rebE
|
|
|
120
121
|
rem/schemas/evaluators/rem/search-correctness.yaml,sha256=pODDOMCqnTfAViQnn_KvSO132JYXoZiMeXW-8g7v-JE,6247
|
|
121
122
|
rem/services/__init__.py,sha256=NEm6aX38YW1HcICNGYbYTZb4VGWHgqRev5Rrf6xOQi0,566
|
|
122
123
|
rem/services/rate_limit.py,sha256=p7tTvGQfyM4XalEMdtGaDKvwCeuKZLQXSoM07aEru98,3725
|
|
123
|
-
rem/services/user_service.py,sha256=
|
|
124
|
+
rem/services/user_service.py,sha256=TJJDnWgrFviY7yb0bz5jfmYGnuQ2WaGvGvD5OgEOa0Q,4110
|
|
124
125
|
rem/services/audio/INTEGRATION.md,sha256=j1GhA1Az_x8Q6soxQ2blQ-0Av7he3lkeEw8P4SffI88,9526
|
|
125
126
|
rem/services/audio/README.md,sha256=VQmqhRNvNqXU549rhf589WBs1iacbvzayhRER1lyXV4,10355
|
|
126
127
|
rem/services/audio/__init__.py,sha256=jTAbL0324bJESsY9FBum6ybaXaxy7HTlREm9FiuCcSI,438
|
|
@@ -138,7 +139,7 @@ rem/services/dreaming/ontology_service.py,sha256=hpP3aCYqsP26taq3__Q2w_jmA9-J1wZ
|
|
|
138
139
|
rem/services/dreaming/user_model_service.py,sha256=oTuqFdNxegWwVGzOOnwdf5YS2IKQYRNW10bV5efG57E,9929
|
|
139
140
|
rem/services/dreaming/utils.py,sha256=ntCXGygJERdH7CW59kudjodBVP6oD4mH42_vH_2powk,1116
|
|
140
141
|
rem/services/email/__init__.py,sha256=SwPCjm-8EuSFcap-LYLQ3NQnofd0v27ks0qLAKkg_tM,271
|
|
141
|
-
rem/services/email/service.py,sha256=
|
|
142
|
+
rem/services/email/service.py,sha256=13v-EGHIDda0IyIg7bVDGea32fYLmq9VWruqr2KdcFU,18211
|
|
142
143
|
rem/services/email/templates.py,sha256=bXgNweo6xwGJxxDvnjmhI320eyHTRtnyjstYk-Fs_5k,12775
|
|
143
144
|
rem/services/embeddings/__init__.py,sha256=Jr22tszCfpmishCnnQrS0MBHxiUK_E7rJmNqTeR_xpI,293
|
|
144
145
|
rem/services/embeddings/api.py,sha256=mDkx_-wWOfjI4uuPIaQDLkfdznEdXQFOvx4VK-Ll4oc,4340
|
|
@@ -168,8 +169,8 @@ rem/services/postgres/__init__.py,sha256=hPOVs7Gi42qjz9ySu1y1Fmxcyo21UrhVycw_y4Y
|
|
|
168
169
|
rem/services/postgres/diff_service.py,sha256=J6QFsNmgaJA5I3BtP8_1NNm-OwloG8p44PlHhwCJiYc,20087
|
|
169
170
|
rem/services/postgres/migration_service.py,sha256=2irsWfzczZ0_-wge6ReyCrFrE3HxvnlwKAEp8mWqtQo,14897
|
|
170
171
|
rem/services/postgres/pydantic_to_sqlalchemy.py,sha256=09KUBZWe8SgjSvXLkftG9zby8crWqnmDz9KlTJ0MVoM,17248
|
|
171
|
-
rem/services/postgres/register_type.py,sha256=
|
|
172
|
-
rem/services/postgres/repository.py,sha256=
|
|
172
|
+
rem/services/postgres/register_type.py,sha256=EDZZ7gqpqDAiXjoRK8nqM-bTjLFMmkR8dUsEKE7WVro,11184
|
|
173
|
+
rem/services/postgres/repository.py,sha256=mY8HAS3eQa7GHLUYtDSVnSzD4-EuggmZUPYM9AmR3s0,15875
|
|
173
174
|
rem/services/postgres/schema_generator.py,sha256=TpINJtEPcrbISbz3HUo7zEI1C-542HEAsf2m5kOuGM8,23906
|
|
174
175
|
rem/services/postgres/service.py,sha256=3CIOP7LuaK4p2rYTyscIXasGLTwjb62HnAGbOCuEm74,27122
|
|
175
176
|
rem/services/postgres/sql_builder.py,sha256=EQZCXBLuOM_trDnr0vwzqJRCKMk9wpZG2ZrY_yBfQMk,10348
|
|
@@ -185,9 +186,9 @@ rem/services/session/README.md,sha256=WDoVWMRXrSh6wRSlUQ0oIHUItOol65INl86VCNPUOY
|
|
|
185
186
|
rem/services/session/__init__.py,sha256=ODLcjnOjLubJU8ncvZsB4SB2zl-mncQQLDZWILwc0Cs,254
|
|
186
187
|
rem/services/session/compression.py,sha256=8PTGqJ9G4AJaMHzJL5BbVMz_okFSqWbRI3TSHCRYriU,17079
|
|
187
188
|
rem/services/session/reload.py,sha256=qbs9yYYBaEH0n_XN_A4BqHcB0RIX_JMkZjHNzUR6zY4,2805
|
|
188
|
-
rem/sql/background_indexes.sql,sha256=
|
|
189
|
-
rem/sql/migrations/001_install.sql,sha256=
|
|
190
|
-
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=VuOipHc2jwGOK2Cvl05ig3jT3vKS4BgwBvHLRYCgbgc,152182
|
|
191
192
|
rem/sql/migrations/003_optional_extensions.sql,sha256=QACy3J50ZgV_4BHNkkT3iswkE1ijc0oCAOgavv6KC5g,12443
|
|
192
193
|
rem/sql/migrations/004_cache_system.sql,sha256=KBpU3hQY08So_MkMfcOwTZDngTMqa_3kA0ujQ98K33k,19672
|
|
193
194
|
rem/sql/migrations/005_schema_update.sql,sha256=fVcuUt0I24UXMEWA25TM-kN29GC19IAqxlxFP-3Z2ys,5055
|
|
@@ -205,8 +206,8 @@ rem/utils/embeddings.py,sha256=FnjZFHXgxf__dbubY2HknhDAngizr8j7P28-Sug4-f0,13150
|
|
|
205
206
|
rem/utils/files.py,sha256=6ax-5vmk_4cI-IG55PT9sKj_DqXBl32RkTRSsxqvgGY,8759
|
|
206
207
|
rem/utils/markdown.py,sha256=zhfSiSRX36vky1b2UOGKsuSr11L2l6Kl_O7iSfwQXBY,401
|
|
207
208
|
rem/utils/mime_types.py,sha256=8KGEuPWVdQ8r1DFLsgiaAgEYqMaaQIk-6lCVOBB1z_A,5346
|
|
208
|
-
rem/utils/model_helpers.py,sha256=
|
|
209
|
-
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
|
|
210
211
|
rem/utils/sql_paths.py,sha256=4bEHU3J3liZdhWYu0WSpCQSo-wfO0sHC_BrJlStRAks,4257
|
|
211
212
|
rem/utils/sql_types.py,sha256=VKGmDhxPP91EnjJ6h78Q2sUvjBulowR1brtgAdACbtE,10622
|
|
212
213
|
rem/utils/user_id.py,sha256=AhrUniMZYDybHT6mcv9RalUS3klobqkoMmPh9ZxiZcU,2107
|
|
@@ -221,7 +222,7 @@ rem/workers/dreaming.py,sha256=UqCf-iBUhzBVBRFj7_DtR6q27oRo7EUoal9qqHLzlo4,17823
|
|
|
221
222
|
rem/workers/engram_processor.py,sha256=Ws92kAILMLK_np3F1HRmhKKXiruLIvFn3o9MY3V2W8g,10779
|
|
222
223
|
rem/workers/sqs_file_processor.py,sha256=tX8S0yo2n1XGvaZ7JUqeGmtTwxybQqz3wkHT2j6Ak7Y,6597
|
|
223
224
|
rem/workers/unlogged_maintainer.py,sha256=KhebhXl3s6DwvHnXXEJ45r5tLK9PNj-0KclNIQVQ68s,15817
|
|
224
|
-
remdb-0.3.
|
|
225
|
-
remdb-0.3.
|
|
226
|
-
remdb-0.3.
|
|
227
|
-
remdb-0.3.
|
|
225
|
+
remdb-0.3.180.dist-info/METADATA,sha256=IGpHstgIf1hWLLFrBju45WgjfrX-3-2s5hhIskHMLlM,53341
|
|
226
|
+
remdb-0.3.180.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
227
|
+
remdb-0.3.180.dist-info/entry_points.txt,sha256=gmmrz7tRC1WGUrCMJMg6p5pEP5h5mPYRvWIxp1FYdr0,42
|
|
228
|
+
remdb-0.3.180.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|