Versions in this module Expand all Collapse all v0 v0.2.11 Dec 23, 2025 v0.2.10 Dec 21, 2025 v0.2.9 Dec 20, 2025 Changes in this version + func GenerateUserInterfaceTool() ai.Tool + type ReadStateArgs struct + Field string type Registration + func SharedStateTools() []Registration + type UIAction struct + Danger bool + ID string + Label string + Primary bool + type UIComponent struct + Actions []UIAction + CustomData json.RawMessage + CustomType string + Description string + Fields []UIField + Items []UIListItem + Metadata map[string]any + Progress int + Title string + Type UIComponentType + type UIComponentType string + const UIComponentCard + const UIComponentConfirmation + const UIComponentCustom + const UIComponentForm + const UIComponentList + const UIComponentProgress + type UIField struct + Default string + Label string + Name string + Options []UIOption + Placeholder string + Required bool + Type UIFieldType + Validation *UIValidation + type UIFieldType string + const UIFieldCheckbox + const UIFieldDate + const UIFieldEmail + const UIFieldFile + const UIFieldNumber + const UIFieldPassword + const UIFieldRadio + const UIFieldSelect + const UIFieldText + const UIFieldTextarea + type UIListItem struct + Description string + ID string + Icon string + Selectable bool + Title string + type UIOption struct + Label string + Value string + type UIResult struct + Action string + Cancelled bool + SelectedItems []string + Values map[string]any + func ParseUIResult(result string) (*UIResult, error) + type UIValidation struct + Max int + MaxLength int + Message string + Min int + MinLength int + Pattern string + type UpdateStateArgs struct + Path string + Value any + type WriteStateArgs struct + State map[string]any v0.2.8 Dec 19, 2025 v0.2.7 Dec 19, 2025 v0.2.6 Dec 19, 2025 v0.2.5 Dec 19, 2025 v0.2.4 Dec 18, 2025 Changes in this version + func BindTo[T any](r *Registry, name, description string, fn TypedHandler[T]) error + func MustBindTo[T any](r *Registry, name, description string, fn TypedHandler[T]) + func MustRegisterAll(r *Registry, pairs []ToolPair) + func MustRegisterFunc[T any](r *Registry, name, description string, fn TypedHandler[T]) + func MustSchemaFor[T any]() json.RawMessage + func RegisterAll(r *Registry, pairs []ToolPair) error + func RegisterFunc[T any](r *Registry, name, description string, fn TypedHandler[T]) error + func SchemaFor[T any]() (json.RawMessage, error) + type AllToolsOption func(*allToolsConfig) + func WithClientOptions(opts ...ClientToolsOption) AllToolsOption + func WithFileOptions(opts ...FileToolOption) AllToolsOption + func WithHTTPOptions(opts ...HTTPToolOption) AllToolsOption + func WithSearchOptions(opts ...SearchToolOption) AllToolsOption + type ChatClient interface + Chat func(ctx context.Context, messages []ai.Message, opts ...ai.Option) (*ai.Response, error) + type ChatToolOption func(*chatToolConfig) + func WithChatDefaults(opts ...ai.Option) ChatToolOption + func WithChatName(name string) ChatToolOption + func WithSystemPrompt(prompt string) ChatToolOption + type ClientToolsOption func(*clientToolsConfig) + func WithChatToolOptions(opts ...ChatToolOption) ClientToolsOption + func WithEmbeddingToolOptions(opts ...EmbeddingToolOption) ClientToolsOption + func WithImageToolOptions(opts ...ImageToolOption) ClientToolsOption + type EmbeddingClient interface + Embed func(ctx context.Context, texts []string, opts ...ai.EmbeddingOption) (*ai.EmbeddingResponse, error) + type EmbeddingToolOption func(*embeddingToolConfig) + func WithEmbeddingDefaults(opts ...ai.EmbeddingOption) EmbeddingToolOption + func WithEmbeddingName(name string) EmbeddingToolOption + type ErrClientTool struct + Name string + func (e *ErrClientTool) Error() string + type ErrToolAlreadyRegistered struct + Name string + func (e *ErrToolAlreadyRegistered) Error() string + type ErrToolExecution struct + Err error + Name string + func (e *ErrToolExecution) Error() string + func (e *ErrToolExecution) Unwrap() error + type ErrToolNotFound struct + Name string + func (e *ErrToolNotFound) Error() string + type FileToolOption func(*fileToolConfig) + func WithAllowedExtensions(exts ...string) FileToolOption + func WithBasePath(path string) FileToolOption + func WithMaxFileSize(bytes int64) FileToolOption + type HTTPToolOption func(*httpToolConfig) + func WithAllowedHosts(hosts ...string) HTTPToolOption + func WithBlockedHosts(hosts ...string) HTTPToolOption + func WithHTTPClient(c *http.Client) HTTPToolOption + func WithHTTPTimeout(d time.Duration) HTTPToolOption + func WithMaxResponseSize(bytes int64) HTTPToolOption + type Handler func(ctx context.Context, call ai.ToolCall) (string, error) + func Bind[T any](name, description string, fn TypedHandler[T]) (ai.Tool, Handler, error) + func MustBind[T any](name, description string, fn TypedHandler[T]) (ai.Tool, Handler) + func NewChatTool(c ChatClient, opts ...ChatToolOption) (ai.Tool, Handler) + func NewEditFileTool(opts ...FileToolOption) (ai.Tool, Handler) + func NewEmbeddingTool(c EmbeddingClient, opts ...EmbeddingToolOption) (ai.Tool, Handler) + func NewHTTPTool(opts ...HTTPToolOption) (ai.Tool, Handler) + func NewImageTool(c ImageClient, opts ...ImageToolOption) (ai.Tool, Handler) + func NewListDirTool(opts ...FileToolOption) (ai.Tool, Handler) + func NewReadFileTool(opts ...FileToolOption) (ai.Tool, Handler) + func NewSearchTool(opts ...SearchToolOption) (ai.Tool, Handler) + func NewWriteFileTool(opts ...FileToolOption) (ai.Tool, Handler) + type ImageClient interface + GenerateImage func(ctx context.Context, prompt string, opts ...ai.ImageOption) (*ai.ImageResponse, error) + type ImageToolOption func(*imageToolConfig) + func WithImageDefaults(opts ...ai.ImageOption) ImageToolOption + func WithImageName(name string) ImageToolOption + type Registration struct + Handler Handler + Tool ai.Tool + func Func[T any](name, description string, fn TypedHandler[T]) Registration + func WithHandler(name, description string, schema json.RawMessage, h Handler) Registration + func WithTool(t ai.Tool, h Handler) Registration + type Registry struct + func NewRegistry() *Registry + func (r *Registry) Add(regs ...Registration) *Registry + func (r *Registry) ClientToolNames() []string + func (r *Registry) Execute(ctx context.Context, call ai.ToolCall) (ai.ToolResult, error) + func (r *Registry) Get(name string) (Handler, bool) + func (r *Registry) GetTool(name string) (ai.Tool, bool) + func (r *Registry) IsClientTool(name string) bool + func (r *Registry) Len() int + func (r *Registry) MustRegister(tool ai.Tool, handler Handler) + func (r *Registry) Names() []string + func (r *Registry) Register(tool ai.Tool, handler Handler) error + func (r *Registry) RegisterClientTool(tool ai.Tool) error + func (r *Registry) RegisterClientTools(tools []ai.Tool) error + func (r *Registry) Tools() []ai.Tool + func (r *Registry) Unregister(name string) + type SearchToolOption func(*searchToolConfig) + func WithExcludePatterns(patterns ...string) SearchToolOption + func WithIncludePatterns(patterns ...string) SearchToolOption + func WithMaxResults(n int) SearchToolOption + func WithSearchPath(path string) SearchToolOption + type ToolPair struct + Handler Handler + Tool ai.Tool + func AllTools(c *client.Client, opts ...AllToolsOption) []ToolPair + func ClientTools(c *client.Client, opts ...ClientToolsOption) []ToolPair + func FileTools(opts ...FileToolOption) []ToolPair + func SearchTools(opts ...SearchToolOption) []ToolPair + func StandardTools(opts ...AllToolsOption) []ToolPair + func WebTools(opts ...HTTPToolOption) []ToolPair + type TypedHandler func(ctx context.Context, args T) (string, error)