Documentation
¶
Overview ¶
Package plugin defines interfaces and utilities for the Cortex plugin system.
Index ¶
- type BaseProvider
- func (p *BaseProvider) ExecuteTool(ctx context.Context, request *ExecuteRequest) (*ExecuteResponse, error)
- func (p *BaseProvider) GetProviderInfo(ctx context.Context) (*ProviderInfo, error)
- func (p *BaseProvider) GetTools(ctx context.Context) ([]*types.Tool, error)
- func (p *BaseProvider) RegisterTool(tool *types.Tool, executor ToolExecutor) error
- func (p *BaseProvider) UnregisterTool(toolName string) error
- type DefaultRegistry
- func (r *DefaultRegistry) GetProvider(ctx context.Context, providerID string) (Provider, error)
- func (r *DefaultRegistry) GetTool(ctx context.Context, toolName string) (*types.Tool, Provider, error)
- func (r *DefaultRegistry) ListProviders(ctx context.Context) ([]Provider, error)
- func (r *DefaultRegistry) ListTools(ctx context.Context) ([]*types.Tool, error)
- func (r *DefaultRegistry) RegisterProvider(ctx context.Context, provider Provider) error
- func (r *DefaultRegistry) UnregisterProvider(ctx context.Context, providerID string) error
- type ExecuteRequest
- type ExecuteResponse
- type Provider
- type ProviderInfo
- type Registry
- type ToolExecutor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseProvider ¶
type BaseProvider struct {
// contains filtered or unexported fields
}
BaseProvider implements the Provider interface and provides a foundation for building tool providers.
func NewBaseProvider ¶
func NewBaseProvider(info ProviderInfo, logger *log.Logger) *BaseProvider
NewBaseProvider creates a new BaseProvider with the given info.
func (*BaseProvider) ExecuteTool ¶
func (p *BaseProvider) ExecuteTool(ctx context.Context, request *ExecuteRequest) (*ExecuteResponse, error)
ExecuteTool executes a specific tool with the given parameters.
func (*BaseProvider) GetProviderInfo ¶
func (p *BaseProvider) GetProviderInfo(ctx context.Context) (*ProviderInfo, error)
GetProviderInfo returns information about the tool provider.
func (*BaseProvider) RegisterTool ¶
func (p *BaseProvider) RegisterTool(tool *types.Tool, executor ToolExecutor) error
RegisterTool registers a new tool with the provider.
func (*BaseProvider) UnregisterTool ¶
func (p *BaseProvider) UnregisterTool(toolName string) error
UnregisterTool removes a tool from the provider.
type DefaultRegistry ¶
type DefaultRegistry struct {
// contains filtered or unexported fields
}
DefaultRegistry is the default implementation of the Registry interface.
func NewRegistry ¶
func NewRegistry(logger *log.Logger) *DefaultRegistry
NewRegistry creates a new registry for managing tool providers.
func (*DefaultRegistry) GetProvider ¶
GetProvider retrieves a specific provider by ID.
func (*DefaultRegistry) GetTool ¶
func (r *DefaultRegistry) GetTool(ctx context.Context, toolName string) (*types.Tool, Provider, error)
GetTool retrieves a specific tool by name.
func (*DefaultRegistry) ListProviders ¶
func (r *DefaultRegistry) ListProviders(ctx context.Context) ([]Provider, error)
ListProviders returns all registered providers.
func (*DefaultRegistry) RegisterProvider ¶
func (r *DefaultRegistry) RegisterProvider(ctx context.Context, provider Provider) error
RegisterProvider registers a new tool provider with the registry.
func (*DefaultRegistry) UnregisterProvider ¶
func (r *DefaultRegistry) UnregisterProvider(ctx context.Context, providerID string) error
UnregisterProvider removes a tool provider from the registry.
type ExecuteRequest ¶
type ExecuteRequest struct { ToolName string Parameters map[string]interface{} Session *types.ClientSession }
ExecuteRequest contains information for executing a tool.
type ExecuteResponse ¶
type ExecuteResponse struct { Content interface{} Error error }
ExecuteResponse contains the result of executing a tool.
type Provider ¶
type Provider interface { // GetProviderInfo returns information about the tool provider. GetProviderInfo(ctx context.Context) (*ProviderInfo, error) // GetTools returns a list of tools provided by this provider. GetTools(ctx context.Context) ([]*types.Tool, error) // ExecuteTool executes a specific tool with the given parameters. ExecuteTool(ctx context.Context, request *ExecuteRequest) (*ExecuteResponse, error) }
Provider represents a tool provider that can register tools with the Cortex platform.
type ProviderInfo ¶
type ProviderInfo struct { ID string Name string Version string Description string Author string URL string }
ProviderInfo contains metadata about a tool provider.
type Registry ¶
type Registry interface { // RegisterProvider registers a new tool provider with the registry. RegisterProvider(ctx context.Context, provider Provider) error // UnregisterProvider removes a tool provider from the registry. UnregisterProvider(ctx context.Context, providerID string) error // GetProvider retrieves a specific provider by ID. GetProvider(ctx context.Context, providerID string) (Provider, error) // ListProviders returns all registered providers. ListProviders(ctx context.Context) ([]Provider, error) // GetTool retrieves a specific tool by name. GetTool(ctx context.Context, toolName string) (*types.Tool, Provider, error) // ListTools returns all tools from all registered providers. ListTools(ctx context.Context) ([]*types.Tool, error) }
Registry manages the registration and discovery of tool providers.
type ToolExecutor ¶
type ToolExecutor func(ctx context.Context, params map[string]interface{}, session *types.ClientSession) (interface{}, error)
ToolExecutor is a function that executes a tool and returns a result.