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.