| 
									
										
										
										
											2024-01-23 19:31:56 +08:00
										 |  |  | import { get, post } from './base' | 
					
						
							| 
									
										
										
										
											2024-02-01 18:07:26 +08:00
										 |  |  | import type { Collection, CustomCollectionBackend, CustomParamSchema, Tool, ToolCredential } from '@/app/components/tools/types' | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | import type { ToolWithProvider } from '@/app/components/workflow/types' | 
					
						
							| 
									
										
										
										
											2024-01-23 19:31:56 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export const fetchCollectionList = () => { | 
					
						
							| 
									
										
										
										
											2024-02-01 18:07:26 +08:00
										 |  |  |   return get<Collection[]>('/workspaces/current/tool-providers') | 
					
						
							| 
									
										
										
										
											2024-01-23 19:31:56 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const fetchBuiltInToolList = (collectionName: string) => { | 
					
						
							| 
									
										
										
										
											2024-02-01 18:07:26 +08:00
										 |  |  |   return get<Tool[]>(`/workspaces/current/tool-provider/builtin/${collectionName}/tools`) | 
					
						
							| 
									
										
										
										
											2024-01-23 19:31:56 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const fetchCustomToolList = (collectionName: string) => { | 
					
						
							| 
									
										
										
										
											2024-02-01 18:07:26 +08:00
										 |  |  |   return get<Tool[]>(`/workspaces/current/tool-provider/api/tools?provider=${collectionName}`) | 
					
						
							| 
									
										
										
										
											2024-01-23 19:31:56 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2024-03-08 15:22:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export const fetchModelToolList = (collectionName: string) => { | 
					
						
							|  |  |  |   return get<Tool[]>(`/workspaces/current/tool-provider/model/tools?provider=${collectionName}`) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-23 19:31:56 +08:00
										 |  |  | export const fetchBuiltInToolCredentialSchema = (collectionName: string) => { | 
					
						
							| 
									
										
										
										
											2024-02-01 18:07:26 +08:00
										 |  |  |   return get<ToolCredential[]>(`/workspaces/current/tool-provider/builtin/${collectionName}/credentials_schema`) | 
					
						
							| 
									
										
										
										
											2024-01-23 19:31:56 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | export const fetchBuiltInToolCredential = (collectionName: string) => { | 
					
						
							|  |  |  |   return get<ToolCredential[]>(`/workspaces/current/tool-provider/builtin/${collectionName}/credentials`) | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-01-23 19:31:56 +08:00
										 |  |  | export const updateBuiltInToolCredential = (collectionName: string, credential: Record<string, any>) => { | 
					
						
							|  |  |  |   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) => { | 
					
						
							| 
									
										
										
										
											2024-02-01 18:07:26 +08:00
										 |  |  |   return post<{ parameters_schema: CustomParamSchema[]; schema_type: string }>('/workspaces/current/tool-provider/api/schema', { | 
					
						
							| 
									
										
										
										
											2024-01-23 19:31:56 +08:00
										 |  |  |     body: { | 
					
						
							|  |  |  |       schema, | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const fetchCustomCollection = (collectionName: string) => { | 
					
						
							| 
									
										
										
										
											2024-02-01 18:07:26 +08:00
										 |  |  |   return get<CustomCollectionBackend>(`/workspaces/current/tool-provider/api/get?provider=${collectionName}`) | 
					
						
							| 
									
										
										
										
											2024-01-23 19:31:56 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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, | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }) | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export const fetchAllBuiltInTools = () => { | 
					
						
							|  |  |  |   return get<ToolWithProvider[]>('/workspaces/current/tools/builtin') | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const fetchAllCustomTools = () => { | 
					
						
							|  |  |  |   return get<ToolWithProvider[]>('/workspaces/current/tools/api') | 
					
						
							|  |  |  | } |