remdb 0.3.202__py3-none-any.whl → 0.3.226__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/README.md +262 -2
- rem/agentic/context.py +73 -1
- rem/agentic/mcp/tool_wrapper.py +2 -2
- rem/agentic/providers/pydantic_ai.py +1 -1
- rem/agentic/schema.py +2 -2
- rem/api/mcp_router/tools.py +154 -18
- rem/api/routers/admin.py +30 -4
- rem/api/routers/auth.py +63 -9
- rem/api/routers/chat/completions.py +24 -29
- rem/api/routers/chat/sse_events.py +5 -1
- rem/api/routers/chat/streaming.py +163 -2
- rem/api/routers/common.py +18 -0
- rem/api/routers/dev.py +7 -1
- rem/api/routers/feedback.py +9 -1
- rem/api/routers/messages.py +80 -15
- rem/api/routers/models.py +9 -1
- rem/api/routers/query.py +12 -1
- rem/api/routers/shared_sessions.py +16 -0
- rem/cli/commands/ask.py +61 -81
- rem/cli/commands/process.py +3 -3
- rem/schemas/agents/rem.yaml +1 -1
- rem/services/postgres/repository.py +14 -4
- rem/services/session/__init__.py +2 -1
- rem/services/session/compression.py +7 -9
- rem/services/session/pydantic_messages.py +66 -0
- rem/settings.py +28 -0
- rem/sql/migrations/001_install.sql +4 -4
- rem/sql/migrations/migrate_session_id_to_uuid.sql +45 -0
- rem/utils/schema_loader.py +73 -45
- {remdb-0.3.202.dist-info → remdb-0.3.226.dist-info}/METADATA +1 -1
- {remdb-0.3.202.dist-info → remdb-0.3.226.dist-info}/RECORD +33 -31
- {remdb-0.3.202.dist-info → remdb-0.3.226.dist-info}/WHEEL +0 -0
- {remdb-0.3.202.dist-info → remdb-0.3.226.dist-info}/entry_points.txt +0 -0
rem/settings.py
CHANGED
|
@@ -1651,6 +1651,33 @@ class EmailSettings(BaseSettings):
|
|
|
1651
1651
|
return kwargs
|
|
1652
1652
|
|
|
1653
1653
|
|
|
1654
|
+
class DebugSettings(BaseSettings):
|
|
1655
|
+
"""
|
|
1656
|
+
Debug settings for development and troubleshooting.
|
|
1657
|
+
|
|
1658
|
+
Environment variables:
|
|
1659
|
+
DEBUG__AUDIT_SESSION - Dump session history to /tmp/{session_id}.yaml
|
|
1660
|
+
DEBUG__AUDIT_DIR - Directory for session audit files (default: /tmp)
|
|
1661
|
+
"""
|
|
1662
|
+
|
|
1663
|
+
model_config = SettingsConfigDict(
|
|
1664
|
+
env_prefix="DEBUG__",
|
|
1665
|
+
env_file=".env",
|
|
1666
|
+
env_file_encoding="utf-8",
|
|
1667
|
+
extra="ignore",
|
|
1668
|
+
)
|
|
1669
|
+
|
|
1670
|
+
audit_session: bool = Field(
|
|
1671
|
+
default=False,
|
|
1672
|
+
description="When true, dump full session history to audit files for debugging",
|
|
1673
|
+
)
|
|
1674
|
+
|
|
1675
|
+
audit_dir: str = Field(
|
|
1676
|
+
default="/tmp",
|
|
1677
|
+
description="Directory for session audit files",
|
|
1678
|
+
)
|
|
1679
|
+
|
|
1680
|
+
|
|
1654
1681
|
class TestSettings(BaseSettings):
|
|
1655
1682
|
"""
|
|
1656
1683
|
Test environment settings.
|
|
@@ -1767,6 +1794,7 @@ class Settings(BaseSettings):
|
|
|
1767
1794
|
schema_search: SchemaSettings = Field(default_factory=SchemaSettings)
|
|
1768
1795
|
email: EmailSettings = Field(default_factory=EmailSettings)
|
|
1769
1796
|
test: TestSettings = Field(default_factory=TestSettings)
|
|
1797
|
+
debug: DebugSettings = Field(default_factory=DebugSettings)
|
|
1770
1798
|
|
|
1771
1799
|
|
|
1772
1800
|
# Auto-load .env file from current directory if it exists
|
|
@@ -822,7 +822,7 @@ COMMENT ON FUNCTION fn_get_shared_messages IS
|
|
|
822
822
|
-- Function to list sessions with user details (name, email) for admin views
|
|
823
823
|
|
|
824
824
|
-- List sessions with user info, CTE pagination
|
|
825
|
-
-- Note: messages.session_id stores the session
|
|
825
|
+
-- Note: messages.session_id stores the session UUID (sessions.id)
|
|
826
826
|
CREATE OR REPLACE FUNCTION fn_list_sessions_with_user(
|
|
827
827
|
p_user_id VARCHAR(256) DEFAULT NULL, -- Filter by user_id (NULL = all users, admin only)
|
|
828
828
|
p_user_name VARCHAR(256) DEFAULT NULL, -- Filter by user name (partial match, admin only)
|
|
@@ -849,9 +849,9 @@ RETURNS TABLE(
|
|
|
849
849
|
BEGIN
|
|
850
850
|
RETURN QUERY
|
|
851
851
|
WITH session_msg_counts AS (
|
|
852
|
-
-- Count messages per session (joining on session
|
|
852
|
+
-- Count messages per session (joining on session UUID)
|
|
853
853
|
SELECT
|
|
854
|
-
m.session_id
|
|
854
|
+
m.session_id,
|
|
855
855
|
COUNT(*)::INTEGER as actual_message_count
|
|
856
856
|
FROM messages m
|
|
857
857
|
GROUP BY m.session_id
|
|
@@ -872,7 +872,7 @@ BEGIN
|
|
|
872
872
|
s.metadata
|
|
873
873
|
FROM sessions s
|
|
874
874
|
LEFT JOIN users u ON u.id::text = s.user_id
|
|
875
|
-
LEFT JOIN session_msg_counts mc ON mc.
|
|
875
|
+
LEFT JOIN session_msg_counts mc ON mc.session_id = s.id::text
|
|
876
876
|
WHERE s.deleted_at IS NULL
|
|
877
877
|
AND (p_user_id IS NULL OR s.user_id = p_user_id)
|
|
878
878
|
AND (p_user_name IS NULL OR u.name ILIKE '%' || p_user_name || '%')
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
-- Migration: Update messages.session_id from session name to session UUID
|
|
2
|
+
-- This fixes the bug where messages were stored with session.name instead of session.id
|
|
3
|
+
--
|
|
4
|
+
-- Run this migration AFTER deploying the code fixes in remdb 0.3.204+
|
|
5
|
+
-- The code now correctly stores session.id (UUID), but existing data needs migration.
|
|
6
|
+
|
|
7
|
+
BEGIN;
|
|
8
|
+
|
|
9
|
+
-- First, count how many messages need to be updated
|
|
10
|
+
DO $$
|
|
11
|
+
DECLARE
|
|
12
|
+
count_to_migrate INTEGER;
|
|
13
|
+
BEGIN
|
|
14
|
+
SELECT COUNT(*) INTO count_to_migrate
|
|
15
|
+
FROM messages m
|
|
16
|
+
JOIN sessions s ON m.session_id = s.name
|
|
17
|
+
WHERE m.session_id != s.id::text;
|
|
18
|
+
|
|
19
|
+
RAISE NOTICE 'Messages needing migration: %', count_to_migrate;
|
|
20
|
+
END $$;
|
|
21
|
+
|
|
22
|
+
-- Update messages.session_id from session name to session UUID
|
|
23
|
+
UPDATE messages m
|
|
24
|
+
SET session_id = s.id::text
|
|
25
|
+
FROM sessions s
|
|
26
|
+
WHERE m.session_id = s.name
|
|
27
|
+
AND m.session_id != s.id::text;
|
|
28
|
+
|
|
29
|
+
-- Report how many were updated
|
|
30
|
+
DO $$
|
|
31
|
+
DECLARE
|
|
32
|
+
updated_count INTEGER;
|
|
33
|
+
BEGIN
|
|
34
|
+
GET DIAGNOSTICS updated_count = ROW_COUNT;
|
|
35
|
+
RAISE NOTICE 'Messages updated: %', updated_count;
|
|
36
|
+
END $$;
|
|
37
|
+
|
|
38
|
+
COMMIT;
|
|
39
|
+
|
|
40
|
+
-- Verify the fix - all messages should now join by UUID
|
|
41
|
+
SELECT
|
|
42
|
+
'Messages matching sessions by UUID' as status,
|
|
43
|
+
COUNT(*) as count
|
|
44
|
+
FROM messages m
|
|
45
|
+
JOIN sessions s ON m.session_id = s.id::text;
|
rem/utils/schema_loader.py
CHANGED
|
@@ -147,15 +147,25 @@ def _load_schema_from_database(schema_name: str, user_id: str) -> dict[str, Any]
|
|
|
147
147
|
try:
|
|
148
148
|
await db.connect()
|
|
149
149
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
150
|
+
# Query for public schemas (user_id IS NULL) and optionally user-specific
|
|
151
|
+
if user_id:
|
|
152
|
+
query = """
|
|
153
|
+
SELECT spec FROM schemas
|
|
154
|
+
WHERE LOWER(name) = LOWER($1)
|
|
155
|
+
AND (user_id = $2 OR user_id = 'system' OR user_id IS NULL)
|
|
156
|
+
LIMIT 1
|
|
157
|
+
"""
|
|
158
|
+
row = await db.fetchrow(query, schema_name, user_id)
|
|
159
|
+
else:
|
|
160
|
+
# No user_id - only search public schemas
|
|
161
|
+
query = """
|
|
162
|
+
SELECT spec FROM schemas
|
|
163
|
+
WHERE LOWER(name) = LOWER($1)
|
|
164
|
+
AND (user_id = 'system' OR user_id IS NULL)
|
|
165
|
+
LIMIT 1
|
|
166
|
+
"""
|
|
167
|
+
row = await db.fetchrow(query, schema_name)
|
|
168
|
+
logger.debug(f"Executing schema lookup: name={schema_name}, user_id={user_id or 'public'}")
|
|
159
169
|
|
|
160
170
|
if row:
|
|
161
171
|
spec = row.get("spec")
|
|
@@ -193,17 +203,25 @@ def _load_schema_from_database(schema_name: str, user_id: str) -> dict[str, Any]
|
|
|
193
203
|
try:
|
|
194
204
|
await db.connect()
|
|
195
205
|
|
|
196
|
-
# Query schemas
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
206
|
+
# Query for public schemas (user_id IS NULL) and optionally user-specific
|
|
207
|
+
if user_id:
|
|
208
|
+
query = """
|
|
209
|
+
SELECT spec FROM schemas
|
|
210
|
+
WHERE LOWER(name) = LOWER($1)
|
|
211
|
+
AND (user_id = $2 OR user_id = 'system' OR user_id IS NULL)
|
|
212
|
+
LIMIT 1
|
|
213
|
+
"""
|
|
214
|
+
row = await db.fetchrow(query, schema_name, user_id)
|
|
215
|
+
else:
|
|
216
|
+
# No user_id - only search public schemas
|
|
217
|
+
query = """
|
|
218
|
+
SELECT spec FROM schemas
|
|
219
|
+
WHERE LOWER(name) = LOWER($1)
|
|
220
|
+
AND (user_id = 'system' OR user_id IS NULL)
|
|
221
|
+
LIMIT 1
|
|
222
|
+
"""
|
|
223
|
+
row = await db.fetchrow(query, schema_name)
|
|
224
|
+
logger.debug(f"Executing schema lookup: name={schema_name}, user_id={user_id or 'public'}")
|
|
207
225
|
|
|
208
226
|
if row:
|
|
209
227
|
spec = row.get("spec")
|
|
@@ -365,13 +383,14 @@ def load_agent_schema(
|
|
|
365
383
|
logger.debug(f"Could not load from {search_path}: {e}")
|
|
366
384
|
continue
|
|
367
385
|
|
|
368
|
-
# 5. Try database LOOKUP fallback (if enabled
|
|
369
|
-
|
|
386
|
+
# 5. Try database LOOKUP fallback (if enabled)
|
|
387
|
+
# Always search for public schemas (user_id IS NULL), plus user-specific if user_id provided
|
|
388
|
+
if enable_db_fallback:
|
|
370
389
|
try:
|
|
371
|
-
logger.debug(f"Attempting database LOOKUP for schema: {base_name} (user_id={user_id})")
|
|
390
|
+
logger.debug(f"Attempting database LOOKUP for schema: {base_name} (user_id={user_id or 'public'})")
|
|
372
391
|
db_schema = _load_schema_from_database(base_name, user_id)
|
|
373
392
|
if db_schema:
|
|
374
|
-
logger.info(f"✅ Loaded schema from database: {base_name}
|
|
393
|
+
logger.info(f"✅ Loaded schema from database: {base_name}")
|
|
375
394
|
return db_schema
|
|
376
395
|
except Exception as e:
|
|
377
396
|
logger.debug(f"Database schema lookup failed: {e}")
|
|
@@ -387,9 +406,9 @@ def load_agent_schema(
|
|
|
387
406
|
db_search_note = ""
|
|
388
407
|
if enable_db_fallback:
|
|
389
408
|
if user_id:
|
|
390
|
-
db_search_note = f"\n - Database: LOOKUP '{base_name}' FROM schemas WHERE user_id
|
|
409
|
+
db_search_note = f"\n - Database: LOOKUP '{base_name}' FROM schemas WHERE user_id IN ('{user_id}', 'system', NULL) (no match)"
|
|
391
410
|
else:
|
|
392
|
-
db_search_note = "\n - Database:
|
|
411
|
+
db_search_note = f"\n - Database: LOOKUP '{base_name}' FROM schemas WHERE user_id IN ('system', NULL) (no match)"
|
|
393
412
|
|
|
394
413
|
raise FileNotFoundError(
|
|
395
414
|
f"Schema not found: {schema_name_or_path}\n"
|
|
@@ -484,19 +503,19 @@ async def load_agent_schema_async(
|
|
|
484
503
|
except Exception:
|
|
485
504
|
continue
|
|
486
505
|
|
|
487
|
-
# Try database lookup
|
|
488
|
-
|
|
489
|
-
from rem.services.postgres import get_postgres_service
|
|
490
|
-
|
|
491
|
-
should_disconnect = False
|
|
492
|
-
if db is None:
|
|
493
|
-
db = get_postgres_service()
|
|
494
|
-
if db:
|
|
495
|
-
await db.connect()
|
|
496
|
-
should_disconnect = True
|
|
506
|
+
# Try database lookup - always search public schemas, plus user-specific if user_id provided
|
|
507
|
+
from rem.services.postgres import get_postgres_service
|
|
497
508
|
|
|
509
|
+
should_disconnect = False
|
|
510
|
+
if db is None:
|
|
511
|
+
db = get_postgres_service()
|
|
498
512
|
if db:
|
|
499
|
-
|
|
513
|
+
await db.connect()
|
|
514
|
+
should_disconnect = True
|
|
515
|
+
|
|
516
|
+
if db:
|
|
517
|
+
try:
|
|
518
|
+
if user_id:
|
|
500
519
|
query = """
|
|
501
520
|
SELECT spec FROM schemas
|
|
502
521
|
WHERE LOWER(name) = LOWER($1)
|
|
@@ -504,14 +523,23 @@ async def load_agent_schema_async(
|
|
|
504
523
|
LIMIT 1
|
|
505
524
|
"""
|
|
506
525
|
row = await db.fetchrow(query, base_name, user_id)
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
526
|
+
else:
|
|
527
|
+
# No user_id - only search public schemas
|
|
528
|
+
query = """
|
|
529
|
+
SELECT spec FROM schemas
|
|
530
|
+
WHERE LOWER(name) = LOWER($1)
|
|
531
|
+
AND (user_id = 'system' OR user_id IS NULL)
|
|
532
|
+
LIMIT 1
|
|
533
|
+
"""
|
|
534
|
+
row = await db.fetchrow(query, base_name)
|
|
535
|
+
if row:
|
|
536
|
+
spec = row.get("spec")
|
|
537
|
+
if spec and isinstance(spec, dict):
|
|
538
|
+
logger.info(f"✅ Loaded schema from database: {base_name}")
|
|
539
|
+
return spec
|
|
540
|
+
finally:
|
|
541
|
+
if should_disconnect:
|
|
542
|
+
await db.disconnect()
|
|
515
543
|
|
|
516
544
|
# Not found
|
|
517
545
|
raise FileNotFoundError(f"Schema not found: {schema_name_or_path}")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: remdb
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.226
|
|
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,26 +3,26 @@ 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=
|
|
7
|
-
rem/agentic/README.md,sha256=
|
|
6
|
+
rem/settings.py,sha256=El_nPe_uq8EllybZ4u-uYC_zriwxQqJ6H-vKugMyi60,60939
|
|
7
|
+
rem/agentic/README.md,sha256=M8opfg40BAnJokRhw7C-hovyfI183qX2wP8uavlWOfs,30510
|
|
8
8
|
rem/agentic/__init__.py,sha256=-UZiEYpodfD5xDns6L0nYSqK9owr3NxiWsq6vmK1tGk,1268
|
|
9
|
-
rem/agentic/context.py,sha256=
|
|
9
|
+
rem/agentic/context.py,sha256=l7sJIJGJm_40xp-mmqibblu7Ik33MJM2E9mhbE5qHlA,15133
|
|
10
10
|
rem/agentic/context_builder.py,sha256=0V-uN5B3Q7VPVH4uaN26aHMDd_ChagfCiwfYty30LbI,14583
|
|
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=YDmkfR6JEV9elgOEc-7e_YZzLAtKMZ2f-viBvJIPeZY,22991
|
|
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
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=7xpF1UuGZQy0rfuzQgkNxHGbwWFbNWnnIjtKupxRMDw,12170
|
|
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=WGzH6MoMbTBeUrEEGU5s-MzDScLR0iXWHprIbOsqoXM,34187
|
|
26
26
|
rem/agentic/tools/__init__.py,sha256=tb_9ml0i2LtEALAJ6h7D91xVEA_8ktDzD4s3nM0MsUE,147
|
|
27
27
|
rem/agentic/tools/rem_tools.py,sha256=0Aps2TcA3z6WLJQ1M98iYX-1uoIEwTozmwodl2_AUCI,7833
|
|
28
28
|
rem/api/README.md,sha256=68KtBi1nkXm_J0skGVBhchXP-cLNaBBka6ZhLqAncoA,19998
|
|
@@ -31,23 +31,24 @@ rem/api/main.py,sha256=6BcUdr0F74-RnVytToh8s9H7OmmO11Xgl_p03FjeDks,16757
|
|
|
31
31
|
rem/api/mcp_router/prompts.py,sha256=bVNsJMur6i0oyd38WIr-r0kUNUAlcGG595WVhBDwxik,4077
|
|
32
32
|
rem/api/mcp_router/resources.py,sha256=sN9quo7HsGxlDpOS1_1kwM1RhT9oayvpz9Bsi0DwKkM,18788
|
|
33
33
|
rem/api/mcp_router/server.py,sha256=06yqR7CBAcmMqHJyUpndQXXYCnu42M5Uen3Oh4mnMVI,11550
|
|
34
|
-
rem/api/mcp_router/tools.py,sha256=
|
|
34
|
+
rem/api/mcp_router/tools.py,sha256=j0KSfJ9jt1e7sGNn5nvhQpE_qO0O9WP6NRVlJbfieOI,59510
|
|
35
35
|
rem/api/middleware/tracking.py,sha256=ZlFkCVsmIfGuiRX1PPWN0vEIPZoOFIKqMZ3P-CjwfHc,6453
|
|
36
|
-
rem/api/routers/admin.py,sha256=
|
|
37
|
-
rem/api/routers/auth.py,sha256=
|
|
38
|
-
rem/api/routers/
|
|
39
|
-
rem/api/routers/
|
|
40
|
-
rem/api/routers/
|
|
41
|
-
rem/api/routers/
|
|
42
|
-
rem/api/routers/
|
|
43
|
-
rem/api/routers/
|
|
36
|
+
rem/api/routers/admin.py,sha256=t5WRsi_niGvdqibk6Qel6T7uF0lO2AdDCG1sQC4HVB4,15179
|
|
37
|
+
rem/api/routers/auth.py,sha256=api1zAX_f2z4HTpEyvCgAipYrrDoLZgySQN5S5goxno,26580
|
|
38
|
+
rem/api/routers/common.py,sha256=Sw39bkCOrqoJl0hB9ZuJhXd0223Aj0rJ9Uej-4DPAAU,517
|
|
39
|
+
rem/api/routers/dev.py,sha256=UpwEYZYuxsWSSHZosirdUp1uoyYbD_Mg47z4beqFx-4,2389
|
|
40
|
+
rem/api/routers/feedback.py,sha256=sr-NNawuAYEi-EwyCHYNwI0zGdS-Cwjs6NfGc6GZrnI,11525
|
|
41
|
+
rem/api/routers/messages.py,sha256=YMx3Z_dqDrltt1ZUleiLaBamrrOBD-hvLIhRKlBVn4M,20386
|
|
42
|
+
rem/api/routers/models.py,sha256=VvHA1JmpiyVCHhH68s8PNwpVxSvAyGlXQJ3T8dFMwRs,2088
|
|
43
|
+
rem/api/routers/query.py,sha256=0BZjiLJ4MKxP1eb8_tKrK-gzvzVG6aLY9VmbIa-hwVQ,14400
|
|
44
|
+
rem/api/routers/shared_sessions.py,sha256=2CRAZUR8OLq39KC1r4IBQycE5PYO5Jg9lSJG8mnPa7M,12866
|
|
44
45
|
rem/api/routers/chat/__init__.py,sha256=fck9klAzF7HJHNPAhl0B63uSavXvs6h26QhUsByf4JM,113
|
|
45
|
-
rem/api/routers/chat/completions.py,sha256=
|
|
46
|
+
rem/api/routers/chat/completions.py,sha256=I6EKMVfEe4QmfsEfW6mTK7riJWZUzkWZCgNRnmJG7ik,29637
|
|
46
47
|
rem/api/routers/chat/json_utils.py,sha256=BVRu-7PWIHTbC9Ubq4MfifZ8qYQZpcGhEgFgPVcXXKE,2191
|
|
47
48
|
rem/api/routers/chat/models.py,sha256=kzBxRvm5Ie2IchJrnFOom8cx6_ieEbuF2RqfiRJNNh8,7339
|
|
48
49
|
rem/api/routers/chat/otel_utils.py,sha256=al_4v044T3sOtIZtT9kHiNT6Twlc7wqz26edCcUSHSY,930
|
|
49
|
-
rem/api/routers/chat/sse_events.py,sha256=
|
|
50
|
-
rem/api/routers/chat/streaming.py,sha256=
|
|
50
|
+
rem/api/routers/chat/sse_events.py,sha256=m1-2HodSKx9NI6OCcgX17kHcV5GBYmp1iOm1lG8FdrE,16724
|
|
51
|
+
rem/api/routers/chat/streaming.py,sha256=LEha-T_37xjbF6gqeTxmWwm2FzwBFOQvcqPV_soZH9Q,57214
|
|
51
52
|
rem/auth/README.md,sha256=BpZUqEVYMUpQG4guykyuvmtzlH3_LsGzspuRZS20i8k,8631
|
|
52
53
|
rem/auth/__init__.py,sha256=ebS-_x21TZsgq7QVgziUpXagSVQU5y0kIxqc_ZywzCE,1027
|
|
53
54
|
rem/auth/jwt.py,sha256=VT77nTYqCt4tkbd_ZmXQy9wU3LcjQ8WLqm9sEcYLYLs,11600
|
|
@@ -63,14 +64,14 @@ rem/cli/dreaming.py,sha256=UUxx9zXFDIvI5QhCLB303TPH0OiYMnr3l2YhF2GvF_8,11537
|
|
|
63
64
|
rem/cli/main.py,sha256=gP-lnD6kkCGeeMHh9aWPRb26CT1zpsDUwuQ30Zqkobw,3127
|
|
64
65
|
rem/cli/commands/README.md,sha256=CxTm4pAKVzE780sWn_sAILu2_nH_0oh9whppZvW4bew,9295
|
|
65
66
|
rem/cli/commands/__init__.py,sha256=wKff1WrBXwf-vDXjSvUuk-61Npm5716okVnOQ22FcEk,30
|
|
66
|
-
rem/cli/commands/ask.py,sha256=
|
|
67
|
+
rem/cli/commands/ask.py,sha256=9dlx13_ZP9N8ivjmVgfuN3c8BTDdTfoZB2E1yNFi0Bk,18396
|
|
67
68
|
rem/cli/commands/cluster.py,sha256=MQThC3Da73ixVQ75UYxleQlB8AqPQLzEK73eaB8pNFI,64247
|
|
68
69
|
rem/cli/commands/configure.py,sha256=GQzlER8PkUCTaeYuLbXUYoeqlmEDafcjAcPJrDchC1I,16595
|
|
69
70
|
rem/cli/commands/db.py,sha256=9uAJT4xkMstVuqXjj02y-4A3y5G8DUsEaLf44Q3ayXA,28141
|
|
70
71
|
rem/cli/commands/dreaming.py,sha256=2P8nyX9gnRgyCJZrDuyJt5_YAsFmjUGa6dg7OvoLA8k,13292
|
|
71
72
|
rem/cli/commands/experiments.py,sha256=dRJKtvrGQu0a9bQZaLnVfdWhaur2bKYviixqOnYQC-k,62472
|
|
72
73
|
rem/cli/commands/mcp.py,sha256=PiP_zXflZ2lPVgmH3N8EGOWXDSfvNTQJD-MMW3ym3xo,1666
|
|
73
|
-
rem/cli/commands/process.py,sha256=
|
|
74
|
+
rem/cli/commands/process.py,sha256=acitqSuisyDwVZ2f2ndF_C5LQbPoQpVrGJLJwl8POG8,14242
|
|
74
75
|
rem/cli/commands/scaffold.py,sha256=hv2-ozD1bbD8FEky7OdIDzcgu-KISs5ek6APqykdZ6I,1618
|
|
75
76
|
rem/cli/commands/schema.py,sha256=oCsRUoih2MC_mpxmj14hsQy0xWLCddSUYcfGnDMlbuw,7325
|
|
76
77
|
rem/cli/commands/serve.py,sha256=ku6z5gxRwmY-vNdNELGPA8aiYyO4QGRgJ_H4wpusd8Y,2926
|
|
@@ -99,7 +100,7 @@ rem/models/entities/user.py,sha256=Ps-CWn-Rkj7yYEW768_mSu3maDxysxsJWT2T7XisuN4,2
|
|
|
99
100
|
rem/schemas/README.md,sha256=_WH2A78jyLb11xu8q1tu4pDMlgZfE9WjYqrAUbn2BIM,13588
|
|
100
101
|
rem/schemas/__init__.py,sha256=cY7Hqc056Mb3t12nfpkAK6WZDvOP1gk4rv0CK4VbhTk,213
|
|
101
102
|
rem/schemas/agents/README.md,sha256=FZI5B8Miqod7KY3KxidW4q8u9W7FbtigV2VU7ropPS0,2815
|
|
102
|
-
rem/schemas/agents/rem.yaml,sha256=
|
|
103
|
+
rem/schemas/agents/rem.yaml,sha256=oYVvyfbyW0wCbF-XVrfW3FitbTF4Zdgr5hOHcJ-19Ls,8389
|
|
103
104
|
rem/schemas/agents/core/agent-builder.yaml,sha256=-Yy-X1nreK1hEjGad1Pr0ROtG1LiRtidq8-63CMEqL4,7399
|
|
104
105
|
rem/schemas/agents/core/moment-builder.yaml,sha256=-nieKbEiYKiIwBtTCBtIVDKV-cfXpGn0AJ66BUUm48U,8368
|
|
105
106
|
rem/schemas/agents/core/rem-query-agent.yaml,sha256=dQyShquyn-2nGooy8tyZ588etfx4kzfAE1xDIBCJCVI,10265
|
|
@@ -171,7 +172,7 @@ rem/services/postgres/migration_service.py,sha256=2irsWfzczZ0_-wge6ReyCrFrE3Hxvn
|
|
|
171
172
|
rem/services/postgres/programmable_diff_service.py,sha256=Ip6gRm7LRdYww_5nWkhnXPdqjHSW4sbFOWjBatLHiQs,25075
|
|
172
173
|
rem/services/postgres/pydantic_to_sqlalchemy.py,sha256=523lJuq_xeRWVo8D3ocFd7else5ZUw2XAketmhDN1wA,17295
|
|
173
174
|
rem/services/postgres/register_type.py,sha256=AF88kjn0Gdi8xEaAj5JimH1BrzZ7ONaSOQ4qKKXLhTw,11387
|
|
174
|
-
rem/services/postgres/repository.py,sha256=
|
|
175
|
+
rem/services/postgres/repository.py,sha256=EvrsyMyu-1WDihjC-T2XnBTMYWwrRkhv1eoZDg0wjTg,16701
|
|
175
176
|
rem/services/postgres/schema_generator.py,sha256=R0qJI_wFp4JgkGsh42kVtxdCAWjd129qlGV2_3YdgoM,23943
|
|
176
177
|
rem/services/postgres/service.py,sha256=3CIOP7LuaK4p2rYTyscIXasGLTwjb62HnAGbOCuEm74,27122
|
|
177
178
|
rem/services/postgres/sql_builder.py,sha256=dgezomG1s-cLcu8Q3u8AjOWO3Rtyg4r_m91UAE4vc9o,10418
|
|
@@ -184,16 +185,17 @@ rem/services/rem/queries.py,sha256=k-fniVSMBcq4TPUw-g4kp6D9Fbs5DphqUwzAk2wXv5M,5
|
|
|
184
185
|
rem/services/rem/query.py,sha256=z4Qcaed1mPG2p-4pazEUlnUFqOEYxrKGYLffwD2-V-c,12178
|
|
185
186
|
rem/services/rem/service.py,sha256=cYPPCZ90S9QRWi_4JxEe9oybdDM8Is7wgYt8EpLoiVY,21093
|
|
186
187
|
rem/services/session/README.md,sha256=WDoVWMRXrSh6wRSlUQ0oIHUItOol65INl86VCNPUOYQ,10446
|
|
187
|
-
rem/services/session/__init__.py,sha256=
|
|
188
|
-
rem/services/session/compression.py,sha256=
|
|
189
|
-
rem/services/session/pydantic_messages.py,sha256=
|
|
188
|
+
rem/services/session/__init__.py,sha256=y9tvBcto0qUcduZwAQn1EwrAo-bZ0ZErodz_1SeN5kU,417
|
|
189
|
+
rem/services/session/compression.py,sha256=rxUlnieBmonOxRtYhg1QTkHmKdQZ5bDbW2Qcsc0zEtg,18573
|
|
190
|
+
rem/services/session/pydantic_messages.py,sha256=eWqSJW9nyZDgUT1Fxrrp1CVIwlipH4AYwzPBWhPuHXI,10816
|
|
190
191
|
rem/services/session/reload.py,sha256=qbs9yYYBaEH0n_XN_A4BqHcB0RIX_JMkZjHNzUR6zY4,2805
|
|
191
192
|
rem/sql/background_indexes.sql,sha256=wbQMtgap247K29w24aPPHhhF0tdcFuZ2nCWyALh51DM,1985
|
|
192
|
-
rem/sql/migrations/001_install.sql,sha256=
|
|
193
|
+
rem/sql/migrations/001_install.sql,sha256=95-f4L8KUo5te9r_G0fNPdsr8KXK34HaF-dH_vbdr9k,35485
|
|
193
194
|
rem/sql/migrations/002_install_models.sql,sha256=bxb35SX4KZ9qLAlQrKf35R82F3jWiqmVyeuvDRlXUeA,153766
|
|
194
195
|
rem/sql/migrations/003_optional_extensions.sql,sha256=QACy3J50ZgV_4BHNkkT3iswkE1ijc0oCAOgavv6KC5g,12443
|
|
195
196
|
rem/sql/migrations/004_cache_system.sql,sha256=iUMRj4r45EhI2kKABp9PS9i_Bs16715HG2ovbYMOsgc,10571
|
|
196
197
|
rem/sql/migrations/005_schema_update.sql,sha256=fVcuUt0I24UXMEWA25TM-kN29GC19IAqxlxFP-3Z2ys,5055
|
|
198
|
+
rem/sql/migrations/migrate_session_id_to_uuid.sql,sha256=-H4ROtu4SPHTVbzW60Am1YdpJ_OHagWCAwgqd3wbDIM,1248
|
|
197
199
|
rem/utils/AGENTIC_CHUNKING.md,sha256=Z9IyL5yoFTlvamPE5KA7cs0Btoc_6bq8hh7Q_WARlw8,17230
|
|
198
200
|
rem/utils/README.md,sha256=Osix2SVYAECMFTFnLhn8D8rsPrtNaCBWfkZfkn5RS60,18087
|
|
199
201
|
rem/utils/__init__.py,sha256=ZGMTgR7g-V3fhfgKo791wGBhdxy72xTJSo7Q_xwkQRI,1417
|
|
@@ -209,7 +211,7 @@ rem/utils/files.py,sha256=6ax-5vmk_4cI-IG55PT9sKj_DqXBl32RkTRSsxqvgGY,8759
|
|
|
209
211
|
rem/utils/markdown.py,sha256=zhfSiSRX36vky1b2UOGKsuSr11L2l6Kl_O7iSfwQXBY,401
|
|
210
212
|
rem/utils/mime_types.py,sha256=8KGEuPWVdQ8r1DFLsgiaAgEYqMaaQIk-6lCVOBB1z_A,5346
|
|
211
213
|
rem/utils/model_helpers.py,sha256=c60hxrS6wmYCIJjjl7uMq4cE-GCe27A7YAizRjKqtJE,15160
|
|
212
|
-
rem/utils/schema_loader.py,sha256=
|
|
214
|
+
rem/utils/schema_loader.py,sha256=u9-b9X05PWn29RHP4WJMPK3j_DUL22h8K9s_cPnMy6Q,25671
|
|
213
215
|
rem/utils/sql_paths.py,sha256=4bEHU3J3liZdhWYu0WSpCQSo-wfO0sHC_BrJlStRAks,4257
|
|
214
216
|
rem/utils/sql_types.py,sha256=VKGmDhxPP91EnjJ6h78Q2sUvjBulowR1brtgAdACbtE,10622
|
|
215
217
|
rem/utils/user_id.py,sha256=AhrUniMZYDybHT6mcv9RalUS3klobqkoMmPh9ZxiZcU,2107
|
|
@@ -224,7 +226,7 @@ rem/workers/dreaming.py,sha256=UqCf-iBUhzBVBRFj7_DtR6q27oRo7EUoal9qqHLzlo4,17823
|
|
|
224
226
|
rem/workers/engram_processor.py,sha256=Ws92kAILMLK_np3F1HRmhKKXiruLIvFn3o9MY3V2W8g,10779
|
|
225
227
|
rem/workers/sqs_file_processor.py,sha256=tX8S0yo2n1XGvaZ7JUqeGmtTwxybQqz3wkHT2j6Ak7Y,6597
|
|
226
228
|
rem/workers/unlogged_maintainer.py,sha256=KhebhXl3s6DwvHnXXEJ45r5tLK9PNj-0KclNIQVQ68s,15817
|
|
227
|
-
remdb-0.3.
|
|
228
|
-
remdb-0.3.
|
|
229
|
-
remdb-0.3.
|
|
230
|
-
remdb-0.3.
|
|
229
|
+
remdb-0.3.226.dist-info/METADATA,sha256=oSLxEj7l2ii1Gvv0EMdmKwJkThCsg7gjV9I-8cu5_V0,53341
|
|
230
|
+
remdb-0.3.226.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
231
|
+
remdb-0.3.226.dist-info/entry_points.txt,sha256=gmmrz7tRC1WGUrCMJMg6p5pEP5h5mPYRvWIxp1FYdr0,42
|
|
232
|
+
remdb-0.3.226.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|