package tools import ( "github.com/modelcontextprotocol/go-sdk/mcp" "github.com/sipeed/picoclaw/pkg/audio/tts" "github.com/sipeed/picoclaw/pkg/config" "github.com/sipeed/picoclaw/pkg/media" "github.com/sipeed/picoclaw/pkg/skills" integrationtools "github.com/sipeed/picoclaw/pkg/tools/integration" ) type ( SendCallbackWithContext = integrationtools.SendCallbackWithContext ReactionCallback = integrationtools.ReactionCallback MCPManager = integrationtools.MCPManager MCPTool = integrationtools.MCPTool FindSkillsTool = integrationtools.FindSkillsTool InstallSkillTool = integrationtools.InstallSkillTool MessageTool = integrationtools.MessageTool ReactionTool = integrationtools.ReactionTool SendTTSTool = integrationtools.SendTTSTool APIKeyPool = integrationtools.APIKeyPool APIKeyIterator = integrationtools.APIKeyIterator SearchProvider = integrationtools.SearchProvider SearchResultItem = integrationtools.SearchResultItem BraveSearchProvider = integrationtools.BraveSearchProvider TavilySearchProvider = integrationtools.TavilySearchProvider SogouSearchProvider = integrationtools.SogouSearchProvider DuckDuckGoSearchProvider = integrationtools.DuckDuckGoSearchProvider GeminiSearchProvider = integrationtools.GeminiSearchProvider PerplexitySearchProvider = integrationtools.PerplexitySearchProvider SearXNGSearchProvider = integrationtools.SearXNGSearchProvider GLMSearchProvider = integrationtools.GLMSearchProvider BaiduSearchProvider = integrationtools.BaiduSearchProvider WebSearchTool = integrationtools.WebSearchTool WebSearchToolOptions = integrationtools.WebSearchToolOptions WebFetchTool = integrationtools.WebFetchTool ) func NewMCPTool(manager MCPManager, serverName string, tool *mcp.Tool) *MCPTool { return integrationtools.NewMCPTool(manager, serverName, tool) } func NewFindSkillsTool(registryMgr *skills.RegistryManager, cache *skills.SearchCache) *FindSkillsTool { return integrationtools.NewFindSkillsTool(registryMgr, cache) } func NewInstallSkillTool(registryMgr *skills.RegistryManager, workspace string) *InstallSkillTool { return integrationtools.NewInstallSkillTool(registryMgr, workspace) } func NewMessageTool() *MessageTool { return integrationtools.NewMessageTool() } func NewReactionTool() *ReactionTool { return integrationtools.NewReactionTool() } func NewSendTTSTool(provider tts.TTSProvider, store media.MediaStore) *SendTTSTool { return integrationtools.NewSendTTSTool(provider, store) } func NewAPIKeyPool(keys []string) *APIKeyPool { return integrationtools.NewAPIKeyPool(keys) } func WebSearchToolOptionsFromConfig(cfg *config.Config) WebSearchToolOptions { return integrationtools.WebSearchToolOptionsFromConfig(cfg) } func WebSearchProviderReady(opts WebSearchToolOptions, name string) bool { return integrationtools.WebSearchProviderReady(opts, name) } func ResolveWebSearchProviderName(opts WebSearchToolOptions, query string) (string, error) { return integrationtools.ResolveWebSearchProviderName(opts, query) } func NewWebSearchTool(opts WebSearchToolOptions) (*WebSearchTool, error) { return integrationtools.NewWebSearchTool(opts) } func NewWebFetchTool(maxChars int, format string, fetchLimitBytes int64) (*WebFetchTool, error) { return integrationtools.NewWebFetchTool(maxChars, format, fetchLimitBytes) } func NewWebFetchToolWithProxy( maxChars int, proxy string, format string, fetchLimitBytes int64, privateHostWhitelist []string, ) (*WebFetchTool, error) { return integrationtools.NewWebFetchToolWithProxy(maxChars, proxy, format, fetchLimitBytes, privateHostWhitelist) } func NewWebFetchToolWithConfig( maxChars int, proxy string, format string, fetchLimitBytes int64, privateHostWhitelist []string, ) (*WebFetchTool, error) { return integrationtools.NewWebFetchToolWithConfig(maxChars, proxy, format, fetchLimitBytes, privateHostWhitelist) }