Add namespace and collection inventories
This commit is contained in:
@@ -6,6 +6,12 @@ import (
|
||||
"gitea.maximumdirect.net/eric/promptkit/internal/domain"
|
||||
)
|
||||
|
||||
// CollectionIdentity is the captured metadata for one final collection entry.
|
||||
type CollectionIdentity struct {
|
||||
Namespace string
|
||||
ReleaseVersion *string
|
||||
}
|
||||
|
||||
func (state *loaded) ListProfiles(ctx context.Context) ([]string, error) {
|
||||
if err := ctx.Err(); err != nil {
|
||||
return nil, err
|
||||
@@ -28,6 +34,44 @@ func (state *loaded) ListBackends(ctx context.Context) ([]string, error) {
|
||||
return backends, nil
|
||||
}
|
||||
|
||||
func (state *loaded) ListNamespaces(ctx context.Context, kinds []string) ([]string, error) {
|
||||
if err := ctx.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
selected := kinds
|
||||
if len(selected) == 0 {
|
||||
selected = []string{"backend", "profile", "prompt"}
|
||||
}
|
||||
set := make(map[string]struct{})
|
||||
for _, kind := range selected {
|
||||
for _, namespace := range state.namespaces[kind] {
|
||||
set[namespace] = struct{}{}
|
||||
}
|
||||
}
|
||||
namespaces := sortedKeys(set)
|
||||
if err := ctx.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return namespaces, nil
|
||||
}
|
||||
|
||||
func (state *loaded) ListCollections(ctx context.Context) ([]CollectionIdentity, error) {
|
||||
if err := ctx.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
collections := make([]CollectionIdentity, len(state.collections))
|
||||
for index, collection := range state.collections {
|
||||
collections[index] = CollectionIdentity{
|
||||
Namespace: collection.Namespace,
|
||||
ReleaseVersion: stringPointerValue(collection.ReleaseVersion),
|
||||
}
|
||||
}
|
||||
if err := ctx.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return collections, nil
|
||||
}
|
||||
|
||||
func (state *loaded) ListPrompts(ctx context.Context) ([]domain.PromptIdentity, error) {
|
||||
if err := ctx.Err(); err != nil {
|
||||
return nil, err
|
||||
|
||||
Reference in New Issue
Block a user