Files
commandkit/promptkit_scope.go

39 lines
1.1 KiB
Go
Raw Normal View History

2026-10-07 14:26:32 +00:00
package commandkit
import (
"context"
"fmt"
"gitea.maximumdirect.net/eric/promptkit"
)
// NewPromptKitScope adapts PromptKit's captured configuration inspection to
// CommandKit's configuration commands.
func NewPromptKitScope[C any](
load func(context.Context, Selection, C) (*promptkit.Engine, error),
) (ConfigScope[C], error) {
if load == nil {
return ConfigScope[C]{}, fmt.Errorf("PromptKit configuration loader is nil")
}
return ConfigScope[C]{
Name: "promptkit",
Summary: "PromptKit engine configuration.",
Operations: []ConfigOperation{ConfigValidate, ConfigShow, ConfigSources, ConfigExplain},
Acquire: func(ctx context.Context, request ConfigRequest, appContext C) (Acquired[ConfigView], error) {
2026-10-07 14:40:41 +00:00
_, inspection, diagnostics, err := loadPromptKitInspection(ctx, request.Selection, appContext, load)
2026-10-07 14:26:32 +00:00
if err != nil {
2026-10-07 14:40:41 +00:00
return Acquired[ConfigView]{Diagnostics: diagnostics}, err
2026-10-07 14:26:32 +00:00
}
return Acquired[ConfigView]{
Value: ConfigView{
Effective: inspection,
Sources: inspection,
Explanation: inspection,
},
Diagnostics: diagnostics,
}, nil
},
}, nil
}