Documentation
¶
Index ¶
- type ClientTransport
- type InMemoryToolRepository
- func (r *InMemoryToolRepository) GetProvider(ctx context.Context, providerName string) (*Provider, error)
- func (r *InMemoryToolRepository) GetProviders(ctx context.Context) ([]Provider, error)
- func (r *InMemoryToolRepository) GetTool(ctx context.Context, toolName string) (*Tool, error)
- func (r *InMemoryToolRepository) GetTools(ctx context.Context) ([]Tool, error)
- func (r *InMemoryToolRepository) GetToolsByProvider(ctx context.Context, providerName string) ([]Tool, error)
- func (r *InMemoryToolRepository) RemoveProvider(ctx context.Context, providerName string) error
- func (r *InMemoryToolRepository) RemoveTool(ctx context.Context, toolName string) error
- func (r *InMemoryToolRepository) SaveProviderWithTools(ctx context.Context, provider Provider, tools []Tool) error
- type TextTransport
- type ToolRepository
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClientTransport ¶
type ClientTransport interface {
// RegisterToolProvider registers a tool provider (e.g. via the /utcp endpoint)
// and returns the list of tools it exposes.
RegisterToolProvider(ctx context.Context, manualProvider Provider) ([]Tool, error)
// DeregisterToolProvider removes a previously registered provider.
DeregisterToolProvider(ctx context.Context, manualProvider Provider) error
// CallTool invokes a named tool with the given arguments on a specific provider.
// It returns whatever the tool returns (often map[string]interface{} or a typed result).
CallTool(ctx context.Context, toolName string, arguments map[string]any, toolProvider Provider, l *string) (any, error)
CallToolStream(ctx context.Context, toolName string, args map[string]any, p Provider) (transports.StreamResult, error)
}
ClientTransport defines how a client registers, deregisters, and invokes UTCP tools.
type InMemoryToolRepository ¶
type InMemoryToolRepository struct {
Tools map[string][]Tool // providerName -> tools
Providers map[string]Provider // providerName -> Provider
// contains filtered or unexported fields
}
func (*InMemoryToolRepository) GetProvider ¶
func (r *InMemoryToolRepository) GetProvider(ctx context.Context, providerName string) (*Provider, error)
func (*InMemoryToolRepository) GetProviders ¶
func (r *InMemoryToolRepository) GetProviders(ctx context.Context) ([]Provider, error)
func (*InMemoryToolRepository) GetTool ¶
func (r *InMemoryToolRepository) GetTool(ctx context.Context, toolName string) (*Tool, error)
func (*InMemoryToolRepository) GetTools ¶
func (r *InMemoryToolRepository) GetTools(ctx context.Context) ([]Tool, error)
func (*InMemoryToolRepository) GetToolsByProvider ¶
func (r *InMemoryToolRepository) GetToolsByProvider(ctx context.Context, providerName string) ([]Tool, error)
func (*InMemoryToolRepository) RemoveProvider ¶
func (r *InMemoryToolRepository) RemoveProvider(ctx context.Context, providerName string) error
func (*InMemoryToolRepository) RemoveTool ¶
func (r *InMemoryToolRepository) RemoveTool(ctx context.Context, toolName string) error
func (*InMemoryToolRepository) SaveProviderWithTools ¶
func (r *InMemoryToolRepository) SaveProviderWithTools(ctx context.Context, provider Provider, tools []Tool) error
type TextTransport ¶
type TextTransport interface {
ClientTransport
SetBasePath(path string)
}
TextTransport interface for setting base path kept here for tests relying on it
type ToolRepository ¶
type ToolRepository interface {
// SaveProviderWithTools saves a provider and its associated tools.
SaveProviderWithTools(ctx context.Context, provider Provider, tools []Tool) error
// RemoveProvider removes a provider and all its tools by name.
// Returns an error if the provider does not exist.
RemoveProvider(ctx context.Context, providerName string) error
// RemoveTool removes a single tool by name.
// Returns an error if the tool does not exist.
RemoveTool(ctx context.Context, toolName string) error
// GetTool retrieves a tool by name.
// Returns (nil, nil) if the tool is not found.
GetTool(ctx context.Context, toolName string) (*Tool, error)
// GetTools returns all tools in the repository.
GetTools(ctx context.Context) ([]Tool, error)
// GetToolsByProvider returns all tools for a specific provider.
// Returns (nil, nil) if the provider is not found.
GetToolsByProvider(ctx context.Context, providerName string) ([]Tool, error)
// GetProvider retrieves a provider by name.
// Returns (nil, nil) if the provider is not found.
GetProvider(ctx context.Context, providerName string) (*Provider, error)
// GetProviders returns all providers in the repository.
GetProviders(ctx context.Context) ([]Provider, error)
}
ToolRepository defines the contract for persisting providers and their tools.
func NewInMemoryToolRepository ¶
func NewInMemoryToolRepository() ToolRepository
Click to show internal directories.
Click to hide internal directories.