UNPKG

@iqai/adk-cli

Version:

CLI tool for creating, running, and testing ADK-TS agents

102 lines 4.83 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventsService = void 0; const adk_1 = require("@iqai/adk"); const common_1 = require("@nestjs/common"); const agent_graph_service_1 = require("../providers/agent-graph.service"); const agent_loader_service_1 = require("../providers/agent-loader.service"); const sessions_service_1 = require("../sessions/sessions.service"); let EventsService = class EventsService { sessionsService; sessionService; agentLoader; agentGraphService; logger; constructor(sessionsService, sessionService, agentLoader, agentGraphService) { this.sessionsService = sessionsService; this.sessionService = sessionService; this.agentLoader = agentLoader; this.agentGraphService = agentGraphService; this.logger = new common_1.Logger("events-service"); } async getEvents(agentPath, sessionId) { const loaded = await this.sessionsService.ensureAgentLoaded(agentPath); if (!loaded) { return { events: [], totalCount: 0 }; } return this.sessionsService.getSessionEvents(loaded, sessionId); } async getEventGraph(agentPath, sessionId, eventId) { try { const loaded = await this.sessionsService.ensureAgentLoaded(agentPath); if (!loaded) { return { error: "Failed to load agent" }; } // Get the session const session = await this.sessionService.getSession(loaded.appName, loaded.userId, sessionId); if (!session) { return { error: `Session not found: ${sessionId}` }; } // Find the event const sessionEvents = session.events || []; const event = sessionEvents.find((e) => e.id === eventId); if (!event) { return { error: `Event not found: ${eventId}` }; } // Get function calls and responses from the event methods const functionCalls = event.getFunctionCalls?.() || []; const functionResponses = event.getFunctionResponses?.() || []; // Generate highlights let highlights = []; if (functionCalls.length > 0) { for (const functionCall of functionCalls) { if (event.author && functionCall.name) { highlights.push([event.author, functionCall.name]); } } } else if (functionResponses.length > 0) { for (const functionResponse of functionResponses) { if (functionResponse.name && event.author) { highlights.push([functionResponse.name, event.author]); } } } else { highlights = [[event.author ?? "", ""]]; } // Get the agent graph const graph = await this.agentGraphService.getGraph(agentPath); return { graph, highlights }; } catch (error) { this.logger.error("Error getting event graph: %o", error); return { error: error.message }; } } }; exports.EventsService = EventsService; exports.EventsService = EventsService = __decorate([ (0, common_1.Injectable)(), __param(0, (0, common_1.Inject)(sessions_service_1.SessionsService)), __param(1, (0, common_1.Inject)(adk_1.InMemorySessionService)), __param(2, (0, common_1.Inject)(agent_loader_service_1.AgentLoader)), __param(3, (0, common_1.Inject)(agent_graph_service_1.AgentGraphService)), __metadata("design:paramtypes", [sessions_service_1.SessionsService, adk_1.InMemorySessionService, agent_loader_service_1.AgentLoader, agent_graph_service_1.AgentGraphService]) ], EventsService); //# sourceMappingURL=events.service.js.map