All files / web/src/composables/agents useAgentOperations.ts

0% Statements 0/69
0% Branches 0/1
0% Functions 0/1
0% Lines 0/69

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87                                                                                                                                                                             
import { ElMessage } from 'element-plus'
import {
  createAgent as apiCreateAgent,
  updateAgent as apiUpdateAgent,
  deleteAgent as apiDeleteAgent,
  executeAgent as apiExecuteAgent,
  executeAgentInline as apiExecuteAgentInline
} from '@/api/agents'
import type { CreateAgentRequest, UpdateAgentRequest } from '@/api/agents'
import type { AgentNode } from '@/types/generated/AgentNode'
import { SUCCESS_MESSAGES, ERROR_MESSAGES } from '@/constants'
 
export function useAgentOperations() {
  async function createAgent(name: string, agent: AgentNode) {
    try {
      const request: CreateAgentRequest = { name, agent }
      const newAgent = await apiCreateAgent(request)
      ElMessage.success(SUCCESS_MESSAGES.AGENT_CREATED)
      return newAgent
    } catch (error: any) {
      const message = error.message || ERROR_MESSAGES.FAILED_TO_CREATE('Agent')
      ElMessage.error(message)
      throw error
    }
  }
 
  // Update agent
  async function updateAgent(id: string, updates: UpdateAgentRequest) {
    try {
      const updatedAgent = await apiUpdateAgent(id, updates)
      ElMessage.success(SUCCESS_MESSAGES.AGENT_UPDATED)
      return updatedAgent
    } catch (error: any) {
      const message = error.message || ERROR_MESSAGES.FAILED_TO_UPDATE('Agent')
      ElMessage.error(message)
      throw error
    }
  }
 
  // Delete agent
  async function deleteAgent(id: string) {
    try {
      await apiDeleteAgent(id)
      ElMessage.success(SUCCESS_MESSAGES.AGENT_DELETED)
    } catch (error: any) {
      const message = error.message || ERROR_MESSAGES.FAILED_TO_DELETE('Agent')
      ElMessage.error(message)
      throw error
    }
  }
 
  // Execute saved agent
  async function executeAgent(id: string, input: string) {
    try {
      ElMessage.info('Agent execution started')
      const response = await apiExecuteAgent(id, input)
      ElMessage.success('Agent execution completed successfully')
      return response
    } catch (error: any) {
      const message = error.message || ERROR_MESSAGES.FAILED_TO_CREATE('Agent execution')
      ElMessage.error(message)
      throw error
    }
  }
 
  // Execute unsaved agent (inline execution)
  async function executeAgentInline(agent: AgentNode, input: string) {
    try {
      ElMessage.info('Agent execution started')
      const response = await apiExecuteAgentInline(agent, input)
      ElMessage.success('Agent execution completed successfully')
      return response
    } catch (error: any) {
      const message = error.message || ERROR_MESSAGES.FAILED_TO_CREATE('Agent execution')
      ElMessage.error(message)
      throw error
    }
  }
 
  return {
    createAgent,
    updateAgent,
    deleteAgent,
    executeAgent,
    executeAgentInline
  }
}