package engine import ( "context" "fmt" "gitea.maximumdirect.net/eric/promptkit/internal/backend" "gitea.maximumdirect.net/eric/promptkit/internal/domain" "gitea.maximumdirect.net/eric/promptkit/internal/profile" ) func maintainedProfileDefinitions() []domain.ExecutionProfile { return []domain.ExecutionProfile{ { ID: "promptkit-openrouter-standard", BaseProfileID: "gemini-flash-latest", }, { ID: "promptkit-openrouter-auto", BackendID: backend.OpenRouterID, Model: "openrouter/auto", }, } } func newMaintainedProfileRepository(catalogProfiles profile.Repository, maintainedBackends []domain.Backend) (profile.Repository, error) { definitions := maintainedProfileDefinitions() owned, err := profile.NewMemoryRepository(definitions) if err != nil { return nil, fmt.Errorf("create Promptkit-maintained profiles: %w", err) } combined := profile.NewOverlayRepository(owned, catalogProfiles) resolved := profile.NewResolvingRepository(combined) registry, err := backend.NewRegistry(maintainedBackends, nil) if err != nil { return nil, fmt.Errorf("construct maintained backend registry: %w", err) } for _, definition := range definitions { effective, err := resolved.GetProfile(context.Background(), definition.ID) if err != nil { return nil, fmt.Errorf("resolve Promptkit-maintained profile %q: %w", definition.ID, err) } if _, err := registry.GetBackend(effective.BackendID); err != nil { return nil, fmt.Errorf("Promptkit-maintained profile %q selects unavailable backend %q: %w", definition.ID, effective.BackendID, err) } } return combined, nil }