package brave

import (
	"github.com/tidbcloud/AgentTeam/internal/extension"
	"github.com/tidbcloud/AgentTeam/internal/extension/providers/searchengine"
	"github.com/tidbcloud/AgentTeam/internal/extension/registry"
	"github.com/tidbcloud/AgentTeam/internal/extension/runner"
)

// Extension composes the brave search Builtin with its product Distribution.
func Extension(invoker searchengine.Invoker) extension.Extension {
	return extension.Extension{
		Definition: Definition(),
		Implementation: runner.Implementation{
			Executor:         searchengine.NewExecutor(Provider, invoker),
			Revision:         Revision,
			ConnectionPolicy: registry.ConnectionRequired,
		},
		Distribution: extension.Distribution{
			AppID:          "app_brave_search",
			AppSlug:        "brave",
			DefaultName:    Provider,
			DefaultEnabled: true,
			IconURL:        "/app-icons/brave.svg",
		},
	}
}
