Files
JARVIS/frontend/src/api/skill.ts

58 lines
1.6 KiB
TypeScript
Raw Normal View History

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'
is_builtin: boolean
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<AxiosResponse<Skill[]>> => {
return api.get('/api/skills', { params })
},
get: (id: string): Promise<AxiosResponse<Skill>> => api.get(`/api/skills/${id}`),
create: (data: SkillCreate): Promise<AxiosResponse<Skill>> => api.post('/api/skills', data),
update: (id: string, data: SkillUpdate): Promise<AxiosResponse<Skill>> => api.put(`/api/skills/${id}`, data),
delete: (id: string): Promise<AxiosResponse<void>> => api.delete(`/api/skills/${id}`),
bootstrapBuiltin: (): Promise<AxiosResponse<Skill[]>> => api.post('/api/skills/bootstrap-builtin'),
}