Spaces:
Runtime error
Runtime error
| import { v1 } from "uuid"; | |
| import type AgentWork from "./agent-work"; | |
| import type { Message } from "../../../types/message"; | |
| import type { Task } from "../../../types/task"; | |
| import { toApiModelSettings } from "../../../utils/interfaces"; | |
| import { streamText } from "../../stream-utils"; | |
| import type { Analysis } from "../analysis"; | |
| import type AutonomousAgent from "../autonomous-agent"; | |
| export default class ExecuteTaskWork implements AgentWork { | |
| result = ""; | |
| constructor(private parent: AutonomousAgent, private task: Task, private analysis: Analysis) {} | |
| run = async () => { | |
| const executionMessage: Message = { | |
| ...this.task, | |
| id: v1(), | |
| status: "completed", | |
| info: "Loading...", | |
| }; | |
| this.parent.messageService.sendMessage({ ...executionMessage, status: "completed" }); | |
| // TODO: this should be moved to the api layer | |
| await streamText( | |
| "/api/agent/execute", | |
| { | |
| run_id: this.parent.api.runId, | |
| goal: this.parent.model.getGoal(), | |
| task: this.task.value, | |
| analysis: this.analysis, | |
| model_settings: toApiModelSettings(this.parent.modelSettings, this.parent.session), | |
| }, | |
| this.parent.api.props.session?.accessToken || "", | |
| () => { | |
| executionMessage.info = ""; | |
| }, | |
| (text) => { | |
| executionMessage.info += text; | |
| this.task = this.parent.model.updateTaskResult(this.task, executionMessage.info || ""); | |
| this.parent.messageService.updateMessage(executionMessage); | |
| }, | |
| () => this.parent.model.getLifecycle() === "stopped" | |
| ); | |
| this.result = executionMessage.info || ""; | |
| this.parent.api.saveMessages([executionMessage]); | |
| this.task = this.parent.model.updateTaskStatus(this.task, "completed"); | |
| }; | |
| // eslint-disable-next-line @typescript-eslint/require-await | |
| conclude = async () => void 0; | |
| next = () => undefined; | |
| onError = (e: unknown): boolean => { | |
| this.parent.messageService.sendErrorMessage(e); | |
| return true; | |
| }; | |
| } | |