feat(sessions): include session messages in session retrieval response

This commit is contained in:
Vaayne
2025-09-14 17:09:19 +08:00
parent ca8ac9911e
commit b6187ad637
2 changed files with 15 additions and 4 deletions

View File

@@ -1,6 +1,6 @@
import { Request, Response } from 'express'
import { sessionService } from '../../../../services/agents'
import { sessionMessageService, sessionService } from '../../../../services/agents'
import { loggerService } from '../../../../services/LoggerService'
const logger = loggerService.withContext('ApiServerSessionsHandlers')
@@ -89,8 +89,18 @@ export const getSession = async (req: Request, res: Response): Promise<Response>
})
}
logger.info(`Session retrieved successfully: ${sessionId}`)
return res.json(session)
// Fetch session messages
logger.info(`Fetching messages for session: ${sessionId}`)
const { messages } = await sessionMessageService.listSessionMessages(sessionId)
// Add messages to session
const sessionWithMessages = {
...session,
messages: messages
}
logger.info(`Session retrieved successfully: ${sessionId} with ${messages.length} messages`)
return res.json(sessionWithMessages)
} catch (error: any) {
logger.error('Error getting session:', error)
return res.status(500).json({

View File

@@ -61,6 +61,7 @@ export interface AgentSessionEntity extends AgentConfiguration {
user_goal?: string // Initial user goal for the session
status: SessionStatus
external_session_id?: string // Agent session for external agent management/tracking
messages?: SessionMessageEntity[] // Hierarchical session messages
created_at: string
updated_at: string
}
@@ -72,7 +73,7 @@ export interface SessionMessageEntity {
parent_id?: number // For tree structure (e.g., tool calls under an action)
role: SessionMessageRole // 'user', 'agent', 'system', 'tool'
type: SessionMessageType // Type of log entry
content: Record<string, any> // JSON structured data
content: string | Record<string, any> // JSON structured data
metadata?: Record<string, any> // Additional metadata (optional)
created_at: string // ISO timestamp
updated_at: string // ISO timestamp