diff --git a/frontend/src/api/skill.ts b/frontend/src/api/skill.ts new file mode 100644 index 0000000..c63acd5 --- /dev/null +++ b/frontend/src/api/skill.ts @@ -0,0 +1,55 @@ +import api from './index' +import type { AxiosResponse } from 'axios' + +export interface Skill { + id: string + name: string + description: string | null + instructions: string + agent_type: string + tools: string[] + required_context: string[] + output_format: string | null + visibility: 'private' | 'team' | 'market' + team_id: string | null + is_active: boolean + owner_id: string + created_at: string + updated_at: string +} + +export interface SkillCreate { + name: string + description?: string + instructions: string + agent_type: string + tools?: string[] + required_context?: string[] + output_format?: string + visibility?: 'private' | 'team' | 'market' + team_id?: string + is_active?: boolean +} + +export interface SkillUpdate { + name?: string + description?: string + instructions?: string + agent_type?: string + tools?: string[] + required_context?: string[] + output_format?: string + visibility?: 'private' | 'team' | 'market' + team_id?: string + is_active?: boolean +} + +export const skillApi = { + list: (params?: { agent_type?: string; visibility?: string }): Promise> => { + return api.get('/api/skills', { params }) + }, + get: (id: string): Promise> => api.get(`/api/skills/${id}`), + create: (data: SkillCreate): Promise> => api.post('/api/skills', data), + update: (id: string, data: SkillUpdate): Promise> => api.put(`/api/skills/${id}`, data), + delete: (id: string): Promise> => api.delete(`/api/skills/${id}`), +}