Prompt repeatedly during quiet chat

This commit is contained in:
2026-05-12 10:01:48 -05:00
parent 0dc941a9a1
commit c65b51c61c
4 changed files with 66 additions and 4 deletions

View File

@@ -105,6 +105,22 @@ class Repository:
result = await self.session.execute(stmt)
return list(result.scalars().all())
async def get_recent_human_messages(
self, session_id: str, limit: int = 50
) -> list[ChatMessage]:
"""Get recent non-bot chat messages from a session."""
stmt = (
select(ChatMessage)
.where(
ChatMessage.session_id == session_id,
ChatMessage.is_bot.is_(False),
)
.order_by(ChatMessage.timestamp.desc())
.limit(limit)
)
result = await self.session.execute(stmt)
return list(result.scalars().all())
async def count_messages(self, session_id: str) -> int:
"""Count chat messages stored for a session."""
stmt = select(func.count()).select_from(ChatMessage).where(
@@ -128,6 +144,22 @@ class Repository:
result = await self.session.execute(stmt)
return list(result.scalars().all())
async def get_human_messages_since(
self, session_id: str, since: datetime
) -> list[ChatMessage]:
"""Get non-bot messages recorded since a specific timestamp."""
stmt = (
select(ChatMessage)
.where(
ChatMessage.session_id == session_id,
ChatMessage.is_bot.is_(False),
ChatMessage.timestamp >= since,
)
.order_by(ChatMessage.timestamp.desc())
)
result = await self.session.execute(stmt)
return list(result.scalars().all())
# Agent Action operations
async def record_action(