UNPKG

agentis

Version:

A TypeScript framework for building sophisticated multi-agent systems

59 lines (58 loc) 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TaskPipeline = void 0; class TaskPipeline { async executePipeline(task, agents) { const pipeline = new Map(); const results = []; const executionMetadata = []; // Group agents by execution stage agents.forEach(agent => { // Default to stage 0 if determineStage not implemented const stage = this.determineStage ? this.determineStage(agent, task) : 0; if (!pipeline.has(stage)) { pipeline.set(stage, []); } pipeline.get(stage).push(agent); }); // Execute stages sequentially for (const [stage, stageAgents] of pipeline) { const stageStart = Date.now(); // Execute agents in parallel within each stage const stageResults = await Promise.all(stageAgents.map(agent => agent.executeTask(task) .then((result) => { const metadata = { agentId: agent.id, status: 'success', duration: Date.now() - stageStart }; executionMetadata.push(metadata); return { agentId: agent.id, status: 'success', result }; }) .catch((error) => { const metadata = { agentId: agent.id, status: 'failed', duration: Date.now() - stageStart }; executionMetadata.push(metadata); return { agentId: agent.id, status: 'failed', error }; }))); results.push(...stageResults); } return { results, metadata: executionMetadata }; } determineStage(agent, task) { // Default implementation: all agents execute in parallel (stage 0) return 0; } } exports.TaskPipeline = TaskPipeline;