references: route @chat through chat/ slice

This commit is contained in:
CREDO23 2026-06-24 22:54:58 +02:00
parent e8a4239151
commit b043911325
2 changed files with 1 additions and 45 deletions

View file

@ -11,7 +11,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
from app.agents.chat.runtime.path_resolver import build_path_index
from app.schemas.new_chat import MentionedDocumentInfo
from .chats import resolve_chat_references
from .chat import resolve_chat_references
from .connectors import resolve_connector_references
from .documents import resolve_document_references
from .folders import resolve_folder_references

View file

@ -1,44 +0,0 @@
"""Resolve ``@chat`` mentions into pointer references.
Chats are not KB-indexed, so a chat reference is a pointer only; its turns are
read on demand via the chat read tool, not injected here. Access checking is
delegated to the authoritative referenced-chat resolver so the rules live in one
place.
"""
from __future__ import annotations
from sqlalchemy.ext.asyncio import AsyncSession
from app.agents.chat.runtime.referenced_chat_context.resolver import (
resolve_referenced_chats,
)
from .models import ChatReference
async def resolve_chat_references(
session: AsyncSession,
*,
search_space_id: int,
requesting_user_id: str | None,
current_chat_id: int,
thread_ids: list[int],
) -> list[ChatReference]:
"""Map ``@chat`` thread ids to access-checked pointers (titles only)."""
if not thread_ids:
return []
chats = await resolve_referenced_chats(
session,
search_space_id=search_space_id,
requesting_user_id=requesting_user_id,
current_chat_id=current_chat_id,
mentioned_thread_ids=thread_ids,
)
return [
ChatReference(entity_id=chat.thread_id, label=chat.title) for chat in chats
]
__all__ = ["resolve_chat_references"]