mirror of
https://github.com/mudler/LocalAI.git
synced 2026-03-31 21:25:59 -04:00
* feat: add distributed mode (experimental) Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix data races, mutexes, transactions Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactorings Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fixups Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix events and tool stream in agent chat Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * use ginkgo Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix(cron): compute correctly time boundaries avoiding re-triggering Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * enhancements, refactorings Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * do not flood of healthy checks Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * do not list obvious backends as text backends Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * tests fixups Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Drop redundant healthcheck Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * enhancements, refactorings Signed-off-by: Ettore Di Giacinto <mudler@localai.io> --------- Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
51 lines
1.9 KiB
Go
51 lines
1.9 KiB
Go
package skills
|
|
|
|
import (
|
|
skillserver "github.com/mudler/skillserver/pkg/domain"
|
|
)
|
|
|
|
// GitRepoInfo describes a configured git repository for skill sourcing.
|
|
type GitRepoInfo struct {
|
|
ID string `json:"id"`
|
|
URL string `json:"url"`
|
|
Name string `json:"name"`
|
|
Enabled bool `json:"enabled"`
|
|
}
|
|
|
|
// Manager defines the interface for skill management operations.
|
|
// Two implementations exist:
|
|
// - FilesystemManager: standalone mode, filesystem-only
|
|
// - DistributedManager: distributed mode, filesystem + PostgreSQL sync
|
|
//
|
|
// Each instance is scoped to a specific user (or global if userID is empty).
|
|
type Manager interface {
|
|
// Skills CRUD
|
|
List() ([]skillserver.Skill, error)
|
|
Get(name string) (*skillserver.Skill, error)
|
|
Search(query string) ([]skillserver.Skill, error)
|
|
Create(name, description, content, license, compatibility, allowedTools string, metadata map[string]string) (*skillserver.Skill, error)
|
|
Update(name, description, content, license, compatibility, allowedTools string, metadata map[string]string) (*skillserver.Skill, error)
|
|
Delete(name string) error
|
|
Export(name string) ([]byte, error)
|
|
Import(archiveData []byte) (*skillserver.Skill, error)
|
|
|
|
// Resources
|
|
ListResources(skillName string) ([]skillserver.SkillResource, *skillserver.Skill, error)
|
|
GetResource(skillName, path string) (*skillserver.ResourceContent, *skillserver.SkillResource, error)
|
|
CreateResource(skillName, path string, data []byte) error
|
|
UpdateResource(skillName, path, content string) error
|
|
DeleteResource(skillName, path string) error
|
|
|
|
// Git repos
|
|
ListGitRepos() ([]GitRepoInfo, error)
|
|
AddGitRepo(repoURL string) (*GitRepoInfo, error)
|
|
UpdateGitRepo(id, repoURL string, enabled *bool) (*GitRepoInfo, error)
|
|
DeleteGitRepo(id string) error
|
|
SyncGitRepo(id string) error
|
|
ToggleGitRepo(id string) (*GitRepoInfo, error)
|
|
|
|
// Config
|
|
GetConfig() map[string]string
|
|
GetSkillsDir() string
|
|
}
|