UNPKG

@iqai/adk-cli

Version:

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

80 lines 4.07 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.MessagingService = void 0; const common_1 = require("@nestjs/common"); const agent_manager_service_1 = require("../providers/agent-manager.service"); const sessions_service_1 = require("../sessions/sessions.service"); const hot_reload_service_1 = require("../reload/hot-reload.service"); let MessagingService = class MessagingService { agentManager; sessionsService; hotReload; constructor(agentManager, sessionsService, hotReload) { this.agentManager = agentManager; this.sessionsService = sessionsService; this.hotReload = hotReload; } async getMessages(agentPath) { const loaded = await this.sessionsService.ensureAgentLoaded(agentPath); if (!loaded) { return { messages: [] }; } const messages = await this.sessionsService.getSessionMessages(loaded); return { messages }; } async postMessage(agentPath, body) { const { message, attachments } = body || { message: "", attachments: [] }; const responseText = await this.agentManager.sendMessageToAgent(agentPath, message, attachments); // After run completes, broadcast potential state change for this agent/session try { const loaded = await this.sessionsService.ensureAgentLoaded(agentPath); if (loaded) { this.hotReload?.broadcastState(agentPath, loaded.sessionId); } } catch { } // Determine the producing agent by inspecting the latest session events let agentName = agentPath; try { const loaded = await this.sessionsService.ensureAgentLoaded(agentPath); if (loaded) { const eventsResp = await this.sessionsService.getSessionEvents(loaded, loaded.sessionId); const events = eventsResp.events || []; // Prefer the last event marked as final response from a non-user author const lastFinal = [...events] .reverse() .find((e) => e.author !== "user" && e.isFinalResponse); const lastAssistant = lastFinal ?? [...events].reverse().find((e) => e.author !== "user"); agentName = lastAssistant?.author ?? loaded.agent?.name ?? agentPath; } } catch { // Best-effort only; fall back to path } return { response: responseText, agentName }; } }; exports.MessagingService = MessagingService; exports.MessagingService = MessagingService = __decorate([ (0, common_1.Injectable)(), __param(0, (0, common_1.Inject)(agent_manager_service_1.AgentManager)), __param(1, (0, common_1.Inject)(sessions_service_1.SessionsService)), __param(2, (0, common_1.Optional)()), __param(2, (0, common_1.Inject)(hot_reload_service_1.HotReloadService)), __metadata("design:paramtypes", [agent_manager_service_1.AgentManager, sessions_service_1.SessionsService, hot_reload_service_1.HotReloadService]) ], MessagingService); //# sourceMappingURL=messaging.service.js.map