initial agent-mgr: app builder platform MVP
Go API server + Preact UI + Claude Code adapter. - App-centric model (ideas, not repos) - AgentProvider interface for multi-agent support - K8s pod lifecycle for sandboxed agent sessions - Gitea integration (create repos, push branches) - WebSocket streaming for live session output - Woodpecker CI/CD pipelines (kaniko build + kubectl deploy)
This commit is contained in:
31
internal/provider/registry.go
Normal file
31
internal/provider/registry.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package provider
|
||||
|
||||
import "fmt"
|
||||
|
||||
type Registry struct {
|
||||
providers map[string]AgentProvider
|
||||
}
|
||||
|
||||
func NewRegistry() *Registry {
|
||||
return &Registry{providers: make(map[string]AgentProvider)}
|
||||
}
|
||||
|
||||
func (r *Registry) Register(p AgentProvider) {
|
||||
r.providers[p.Info().Name] = p
|
||||
}
|
||||
|
||||
func (r *Registry) Get(name string) (AgentProvider, error) {
|
||||
p, ok := r.providers[name]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("provider %q not found", name)
|
||||
}
|
||||
return p, nil
|
||||
}
|
||||
|
||||
func (r *Registry) List() []Info {
|
||||
infos := make([]Info, 0, len(r.providers))
|
||||
for _, p := range r.providers {
|
||||
infos = append(infos, p.Info())
|
||||
}
|
||||
return infos
|
||||
}
|
||||
Reference in New Issue
Block a user