import { get, post } from './base' import type { Collection, CustomCollectionBackend, CustomParamSchema, Tool, ToolCredential } from '@/app/components/tools/types' export const fetchCollectionList = () => { return get('/workspaces/current/tool-providers') } export const fetchBuiltInToolList = (collectionName: string) => { return get(`/workspaces/current/tool-provider/builtin/${collectionName}/tools`) } export const fetchCustomToolList = (collectionName: string) => { return get(`/workspaces/current/tool-provider/api/tools?provider=${collectionName}`) } export const fetchBuiltInToolCredentialSchema = (collectionName: string) => { return get(`/workspaces/current/tool-provider/builtin/${collectionName}/credentials_schema`) } export const updateBuiltInToolCredential = (collectionName: string, credential: Record) => { return post(`/workspaces/current/tool-provider/builtin/${collectionName}/update`, { body: { credentials: credential, }, }) } export const removeBuiltInToolCredential = (collectionName: string) => { return post(`/workspaces/current/tool-provider/builtin/${collectionName}/delete`, { body: {}, }) } export const parseParamsSchema = (schema: string) => { return post<{ parameters_schema: CustomParamSchema[]; schema_type: string }>('/workspaces/current/tool-provider/api/schema', { body: { schema, }, }) } export const fetchCustomCollection = (collectionName: string) => { return get(`/workspaces/current/tool-provider/api/get?provider=${collectionName}`) } export const createCustomCollection = (collection: CustomCollectionBackend) => { return post('/workspaces/current/tool-provider/api/add', { body: { ...collection, }, }) } export const updateCustomCollection = (collection: CustomCollectionBackend) => { return post('/workspaces/current/tool-provider/api/update', { body: { ...collection, }, }) } export const removeCustomCollection = (collectionName: string) => { return post('/workspaces/current/tool-provider/api/delete', { body: { provider: collectionName, }, }) } export const importSchemaFromURL = (url: string) => { return get('/workspaces/current/tool-provider/api/remote', { params: { url, }, }) } export const testAPIAvailable = (payload: any) => { return post('/workspaces/current/tool-provider/api/test/pre', { body: { ...payload, }, }) }