// @ts-ignore
/* eslint-disable */
import request from '@repo/api-client'

/** 测试MCP服务连接 POST /api/ai/mcp/check */
export async function postMcpCheck(
  body: {
    id: string
  },
  options?: { [key: string]: any }
) {
  return request<{
    isSuccess: boolean
    code: number
    result: {
      message: string
      tools: {
        description: string
        inputSchema: {
          type: string
          properties: {
            value: { description: string; type: string }
            usn: { description: string; type: string }
            loginType: { description: string; type: string }
            loginWay: { description: string; type: string }
            pwd: { description: string; type: string }
            token: { description: string; type: string }
          }
          required: string[]
        }
        name: string
      }[]
    }
    isAuthorized: boolean
  }>('/api/ai/mcp/check', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: body,
    ...(options || {})
  })
}

/** 创建MCP POST /api/ai/mcp/create */
export async function postMcpCreate(
  body: {
    name: string
    description: string
    transport_type: string
    url: string
    enabled: boolean
    headers: Record<string, any>
    auth_config: Record<string, any>
    advanced_config: { timeout: number; retry_count: number; retry_delay: number }
    env_vars: Record<string, any>
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/mcp/create',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 删除MCP POST /api/ai/mcp/delete */
export async function postMcpOpenApiDelete(
  body: {
    id: string
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/mcp/delete',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 获取详情 POST /api/ai/mcp/info */
export async function postMcpInfo(
  body: {
    id: string
  },
  options?: { [key: string]: any }
) {
  return request<{
    isSuccess: boolean
    code: number
    result: {
      advanced_config: { retry_count: number; retry_delay: number; timeout: number }
      auth_config: Record<string, any>
      creationTime: string
      creatorUserId: string
      description: string
      enabled: boolean
      env_vars: Record<string, any>
      headers: Record<string, any>
      id: string
      isDeleted: boolean
      is_builtin: boolean
      name: string
      stdio_config: { command: string }
      transport_type: string
      updateTime: string
      url: string
    }
    isAuthorized: boolean
  }>('/api/ai/mcp/info', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: body,
    ...(options || {})
  })
}

/** 获取分页列表 POST /api/ai/mcp/pageList */
export async function postMcpPageList(
  body: {
    keyword: string
    transport_type: string
    pageIndex: number
    pageSize: number
  },
  options?: { [key: string]: any }
) {
  return request<{
    isSuccess: boolean
    code: number
    result: {
      currentPage: number
      hasNextPage: boolean
      hasPreviousPage: boolean
      model: {
        advanced_config: { retry_count: number; retry_delay: number; timeout: number }
        auth_config?: Record<string, any>
        creationTime?: string
        creatorUserId?: string
        description?: string
        enabled?: boolean
        env_vars?: Record<string, any>
        headers?: Record<string, any>
        id?: string
        isDeleted?: boolean
        is_builtin?: boolean
        name?: string
        stdio_config: { command: string }
        transport_type?: string
        updateTime?: string
        url?: string
      }[]
      pageSize: number
      totalCount: number
      totalPages: number
    }
    isAuthorized: boolean
  }>('/api/ai/mcp/pageList', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: body,
    ...(options || {})
  })
}

/** 获取MCP服务资源表 POST /api/ai/mcp/resources */
export async function postMcpResources(
  body: {
    id: string
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; result: string[]; isAuthorized: boolean }>(
    '/api/ai/mcp/resources',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 获取MCP服务工具列表 POST /api/ai/mcp/tools */
export async function postMcpTools(
  body: {
    id: string
  },
  options?: { [key: string]: any }
) {
  return request<{
    isSuccess: boolean
    code: number
    result: {
      description: string
      inputSchema: {
        type: string
        properties: {
          value: { description: string; type: string }
          token: { description: string; type: string }
          usn: { description: string; type: string }
          loginType: { description: string; type: string }
          loginWay: { description: string; type: string }
          pwd: { description: string; type: string }
        }
        required: string[]
      }
      name: string
    }[]
    isAuthorized: boolean
  }>('/api/ai/mcp/tools', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: body,
    ...(options || {})
  })
}

/** 更新MCP POST /api/ai/mcp/update */
export async function postMcpUpdate(
  body: {
    id: string
    name: string
    description: string
    transport_type: string
    url: string
    enabled: boolean
    headers: Record<string, any>
    auth_config: Record<string, any>
    advanced_config: { timeout: number; retry_count: number; retry_delay: number }
    env_vars: Record<string, any>
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/mcp/update',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 获取系统提示词及模版信息 POST /api/ai/prompt-template/config */
export async function postPromptTemplateConfig(body: {}, options?: { [key: string]: any }) {
  return request<{
    isSuccess: boolean
    code: number
    result: {
      agent_system_prompts: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        type: string
        updateTime: string
        value: string
      }[]
      context_templates: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        type: string
        updateTime: string
        value: string
      }[]
      defaultSystemAgentPrompt: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        type: string
        updateTime: string
        value: string
      }
      defaultSystemContextTemplate: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        type: string
        updateTime: string
        value: string
      }
      defaultSystemFallBack: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        type: string
        updateTime: string
        value: string
      }
      defaultSystemPrompt: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        type: string
        updateTime: string
        value: string
      }
      defaultSystemRewrite: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        type: string
        updateTime: string
        user: string
        value: string
      }
      fall_backs: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        type: string
        updateTime: string
        value: string
      }[]
      rewrites: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        type: string
        updateTime: string
        user: string
        value: string
      }[]
      system_prompts: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        type: string
        updateTime: string
        value: string
      }[]
    }
    isAuthorized: boolean
  }>('/api/ai/prompt-template/config', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: body,
    ...(options || {})
  })
}

/** 创建提示词与模版 POST /api/ai/prompt-template/create */
export async function postPromptTemplateCreate(
  body: {
    name: string
    description: string
    content: string
    user: string
    type: string
    is_default: boolean
    has_knowledge_base: boolean
    has_web_search: boolean
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/prompt-template/create',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 删除提示词与模版 POST /api/ai/prompt-template/delete */
export async function postPromptTemplateOpenApiDelete(
  body: {
    id: string
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/prompt-template/delete',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 初始化系统内置提示词和模版 POST /api/ai/prompt-template/initPromptContext */
export async function postPromptTemplateInitPromptContext(
  body: {},
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/prompt-template/initPromptContext',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 获取分页列表 POST /api/ai/prompt-template/pageList */
export async function postPromptTemplatePageList(
  body: {
    keyword: string
    pageIndex: number
    pageSize: number
  },
  options?: { [key: string]: any }
) {
  return request<{
    isSuccess: boolean
    code: number
    result: {
      currentPage: number
      hasNextPage: boolean
      hasPreviousPage: boolean
      model: {
        content: string
        creationTime: string
        default: boolean
        description: string
        has_knowledge_base: boolean
        has_web_search: boolean
        id: string
        isDeleted: boolean
        is_builtin: boolean
        mode: string
        name: string
        source: string
        type: string
        updateTime: string
        value: string
        user: string
      }[]
      pageSize: number
      totalCount: number
      totalPages: number
    }
    isAuthorized: boolean
  }>('/api/ai/prompt-template/pageList', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: body,
    ...(options || {})
  })
}

/** 修改提示词与模版 POST /api/ai/prompt-template/update */
export async function postPromptTemplateUpdate(
  body: {
    id: string
    name: string
    description: string
    content: string
    user: string
    type: string
    is_default: boolean
    has_knowledge_base: boolean
    has_web_search: boolean
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/prompt-template/update',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 获取支持的Skills列表 POST /api/ai/skills/list */
export async function postSkillsList(body: {}, options?: { [key: string]: any }) {
  return request<{
    isSuccess: boolean
    code: number
    result: { description: string; name: string }[]
    isAuthorized: boolean
  }>('/api/ai/skills/list', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: body,
    ...(options || {})
  })
}

/** 测试已保存的 Provider POST /api/ai/web-search/checkById */
export async function postWebSearchCheckById(
  body: {
    id: string
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/web-search/checkById',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 使用原始凭证测试连通性 POST /api/ai/web-search/checkWithParameters */
export async function postWebSearchCheckWithParameters(
  body: {
    provider: string
    parameters: { api_key: string; proxy_url: string; engine_id: string }
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/web-search/checkWithParameters',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 创建网络搜索厂商 POST /api/ai/web-search/create */
export async function postWebSearchCreate(
  body: {
    provider: string
    name: string
    description: string
    is_default: boolean
    parameters: { proxy_url: string; api_key: string; engine_id: string }
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/web-search/create',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 删除网络搜索厂商 POST /api/ai/web-search/delete */
export async function postWebSearchOpenApiDelete(
  body: {
    id: string
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/web-search/delete',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}

/** 获取支持的引擎列表 POST /api/ai/web-search/engines */
export async function postWebSearchEngines(body: {}, options?: { [key: string]: any }) {
  return request<{
    isSuccess: boolean
    code: number
    result: {
      description: string
      docs_url: string
      id: string
      name: string
      requires_api_key: boolean
      requires_engine_id: boolean
      supports_proxy: boolean
    }[]
    isAuthorized: boolean
  }>('/api/ai/web-search/engines', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: body,
    ...(options || {})
  })
}

/** 获取详情 POST /api/ai/web-search/info */
export async function postWebSearchInfo(
  body: {
    id: string
  },
  options?: { [key: string]: any }
) {
  return request<{
    isSuccess: boolean
    code: number
    result: {
      creationTime: string
      creatorUserId: string
      description: string
      id: string
      isDeleted: boolean
      is_default: boolean
      name: string
      parameters: { api_key: string }
      provider: string
      updateTime: string
    }
    isAuthorized: boolean
  }>('/api/ai/web-search/info', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: body,
    ...(options || {})
  })
}

/** 获取分页列表 POST /api/ai/web-search/pageList */
export async function postWebSearchPageList(
  body: {
    keyword: string
    provider: string
    pageIndex: number
    pageSize?: number
  },
  options?: { [key: string]: any }
) {
  return request<{
    isSuccess: boolean
    code: number
    result: {
      currentPage: number
      hasNextPage: boolean
      hasPreviousPage: boolean
      model: string[]
      pageSize: number
      totalCount: number
      totalPages: number
    }
    isAuthorized: boolean
  }>('/api/ai/web-search/pageList', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: body,
    ...(options || {})
  })
}

/** 更新网络搜索厂商 POST /api/ai/web-search/update */
export async function postWebSearchUpdate(
  body: {
    id: string
    name: string
    description: string
    is_default: boolean
    parameters: { proxy_url: string; api_key: string; engine_id: string }
  },
  options?: { [key: string]: any }
) {
  return request<{ isSuccess: boolean; code: number; isAuthorized: boolean }>(
    '/api/ai/web-search/update',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      data: body,
      ...(options || {})
    }
  )
}
