diff --git a/src/main/apiServer/routes/agents/handlers/sessions.ts b/src/main/apiServer/routes/agents/handlers/sessions.ts index 14d7cbc175..7595f07664 100644 --- a/src/main/apiServer/routes/agents/handlers/sessions.ts +++ b/src/main/apiServer/routes/agents/handlers/sessions.ts @@ -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 }) } - 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({ diff --git a/src/renderer/src/types/agent.ts b/src/renderer/src/types/agent.ts index cac06bdf72..96767aa427 100644 --- a/src/renderer/src/types/agent.ts +++ b/src/renderer/src/types/agent.ts @@ -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 // JSON structured data + content: string | Record // JSON structured data metadata?: Record // Additional metadata (optional) created_at: string // ISO timestamp updated_at: string // ISO timestamp