builtin

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 13, 2026 License: Apache-2.0 Imports: 38 Imported by: 0

Documentation

Overview

Copyright 2026 Teradata

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	// MaxDocumentSize is the maximum file size for document parsing (100MB)
	MaxDocumentSize = 100 * 1024 * 1024
	// MaxCSVRows is the default maximum number of CSV rows to parse
	MaxCSVRows = 10000
	// MaxPDFPages is the default maximum number of PDF pages to parse
	MaxPDFPages = 100
	// MaxExcelRows is the default maximum number of Excel rows per sheet
	MaxExcelRows = 10000
)
View Source
const (
	// MaxFileReadSize is the maximum file size we'll read (10MB).
	// Prevents memory issues with very large files.
	MaxFileReadSize = 10 * 1024 * 1024

	// DefaultMaxLines limits text output to prevent context bloat.
	DefaultMaxLines = 1000
)
View Source
const (
	// DefaultShellTimeout is the default execution timeout (5 minutes).
	DefaultShellTimeout = 300

	// MaxShellTimeout is the maximum allowed timeout (10 minutes).
	MaxShellTimeout = 600

	// DefaultMaxOutputBytes limits output size to prevent memory issues (1MB).
	DefaultMaxOutputBytes = 1024 * 1024
)
View Source
const (
	DefaultBraveEndpoint      = "https://api.search.brave.com/res/v1/web/search"
	DefaultTavilyEndpoint     = "https://api.tavily.com/search"
	DefaultSerpAPIEndpoint    = "https://serpapi.com/search"
	DefaultDuckDuckGoEndpoint = "https://api.duckduckgo.com/"
	DefaultSearchTimeout      = 30 * time.Second
)

Default web search API endpoints (can be overridden via environment variables)

View Source
const (
	// MaxImageSize is the maximum image file size we'll read (20MB).
	// Most LLM providers have image size limits around 5-20MB.
	MaxImageSize = 20 * 1024 * 1024
)
View Source
const ToolSearchName = "tool_search"

ToolSearchName is the name of the tool_search tool.

Variables

This section is empty.

Functions

func All

func All(promptRegistry prompts.PromptRegistry) []shuttle.Tool

All creates all builtin tools. If promptRegistry is provided, tools will load descriptions from PromptRegistry. Falls back to hardcoded descriptions if prompts not found or registry is nil.

func ByName

func ByName(name string) shuttle.Tool

ByName returns a builtin tool by name. Returns nil if not found.

func CommunicationToolNames

func CommunicationToolNames() []string

CommunicationToolNames returns the names of communication tools. Note: Visualization tools are not included - use VisualizationToolNames() for those.

func CommunicationTools

func CommunicationTools(queue *communication.MessageQueue, bus *communication.MessageBus, store *communication.SharedMemoryStore, agentID string) []shuttle.Tool

CommunicationTools creates communication tools for an agent. These tools require infrastructure (MessageQueue, SharedMemoryStore) and agent ID. They cannot be created via All() or ByName() since they need per-agent context.

Includes: - send_message, receive_message (point-to-point messaging) - publish, subscribe, receive_broadcast (pub-sub broadcast messaging) - shared_memory_write, shared_memory_read (zero-copy data sharing) - top_n_query, group_by_query (presentation strategies)

Note: Visualization tools (generate_workflow_visualization, generate_visualization) are NOT included by default. Use VisualizationTools() to get them for metaagent assignment.

func LoadAllMetadata

func LoadAllMetadata() (map[string]*metadata.ToolMetadata, error)

LoadAllMetadata loads metadata for all builtin tools with caching. Returns a map of tool name -> metadata. Tools without metadata files are omitted from the map.

func LoadMetadata

func LoadMetadata(toolName string) (*metadata.ToolMetadata, error)

LoadMetadata loads rich metadata for a builtin tool with caching. Returns nil if metadata file not found or tool is not a builtin. Metadata includes: use_cases, conflicts, alternatives, examples, best_practices, etc. Subsequent calls for the same tool return cached results without file I/O.

func Names

func Names() []string

Names returns the names of all builtin tools. Note: spawn_agent is NOT included as it's a metaagent tool to avoid import cycles.

func PresentationToolNames

func PresentationToolNames() []string

PresentationToolNames returns the names of presentation strategy tools. Note: Visualization tools are not included - use VisualizationToolNames() for those.

func PresentationTools

func PresentationTools(store *communication.SharedMemoryStore, agentID string) []shuttle.Tool

PresentationTools creates presentation strategy tools for an agent. These tools allow agents to query shared memory data using SQL-inspired patterns (Top-N, GROUP BY, etc.) without writing raw SQL.

Note: Visualization tools (generate_workflow_visualization, generate_visualization) are NOT included here by default. They should be explicitly assigned by the metaagent when needed. Use VisualizationTools() to get them.

func RegisterAll

func RegisterAll(registry *shuttle.Registry)

RegisterAll registers all builtin tools with a registry. Uses hardcoded tool descriptions (for backward compatibility).

func RegisterByNames

func RegisterByNames(registry *shuttle.Registry, names []string)

RegisterByNames registers only the specified builtin tools. Apple-style: Only load what you need.

func VisualizationToolNames

func VisualizationToolNames() []string

VisualizationToolNames returns the names of visualization tools. These are available for metaagent assignment but not included in default tool sets.

func VisualizationTools

func VisualizationTools() []shuttle.Tool

VisualizationTools returns visualization tools that can be assigned by the metaagent. These are NOT included in default tool sets - they must be explicitly assigned.

Types

type ColumnStatistics

type ColumnStatistics struct {
	Name     string
	Position int

	// Type inference
	InferredCSVType string  // "integer", "float", "string", "date", "boolean", "mixed"
	TeradataType    string  // "INTEGER", "DECIMAL(18,2)", "VARCHAR(500)", etc.
	TypeConfidence  float64 // 0.0-1.0

	// NULL handling
	TotalRows      int
	NullCount      int
	NullPercentage float64

	// Numeric statistics (for integer/float)
	MinValue      float64
	MaxValue      float64
	AvgValue      float64
	DecimalPlaces int // Max observed decimal places

	// String statistics
	MinLength     int
	MaxLength     int
	AvgLength     float64
	DistinctCount int
	SampleValues  []string // First 10 unique values

	// Date statistics
	DateFormat       string
	InvalidDateCount int

	// Data quality
	DataQualityScore float64  // 0.0-1.0
	Issues           []string // ["3 invalid dates", "mixed types detected"]
}

ColumnStatistics contains detailed statistics for robust type inference and data quality assessment.

type DocumentParseTool

type DocumentParseTool struct {
	// contains filtered or unexported fields
}

DocumentParseTool provides document parsing capabilities for CSV, PDF, and Excel files.

func NewDocumentParseTool

func NewDocumentParseTool(baseDir string) *DocumentParseTool

NewDocumentParseTool creates a new document parsing tool. If baseDir is empty, the current working directory is used.

func (*DocumentParseTool) Backend

func (t *DocumentParseTool) Backend() string

Backend returns the backend name (empty for builtin tools).

func (*DocumentParseTool) Description

func (t *DocumentParseTool) Description() string

Description returns the tool description.

func (*DocumentParseTool) Execute

func (t *DocumentParseTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

Execute parses a document and returns structured data.

func (*DocumentParseTool) InputSchema

func (t *DocumentParseTool) InputSchema() *shuttle.JSONSchema

InputSchema returns the JSON schema for the tool's input.

func (*DocumentParseTool) Name

func (t *DocumentParseTool) Name() string

Name returns the tool name.

type FileReadTool

type FileReadTool struct {
	// contains filtered or unexported fields
}

FileReadTool provides safe file reading capabilities for agents. Enables data grounding by reading actual file content rather than guessing.

func NewFileReadTool

func NewFileReadTool(baseDir string) *FileReadTool

NewFileReadTool creates a new file read tool. If baseDir is empty, reads from current directory (with safety checks).

func (*FileReadTool) Backend

func (t *FileReadTool) Backend() string

func (*FileReadTool) Description

func (t *FileReadTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/file.yaml). This fallback is used only when prompts are not configured.

func (*FileReadTool) Execute

func (t *FileReadTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*FileReadTool) InputSchema

func (t *FileReadTool) InputSchema() *shuttle.JSONSchema

func (*FileReadTool) Name

func (t *FileReadTool) Name() string

type FileWriteTool

type FileWriteTool struct {
	// contains filtered or unexported fields
}

FileWriteTool provides safe file writing capabilities for agents. Apple-style: Secure by default, creates directories automatically.

func NewFileWriteTool

func NewFileWriteTool(baseDir string) *FileWriteTool

NewFileWriteTool creates a new file write tool. If baseDir is empty, writes to current directory (with safety checks).

func (*FileWriteTool) Backend

func (t *FileWriteTool) Backend() string

func (*FileWriteTool) Description

func (t *FileWriteTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/file.yaml). This fallback is used only when prompts are not configured.

func (*FileWriteTool) Execute

func (t *FileWriteTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*FileWriteTool) InputSchema

func (t *FileWriteTool) InputSchema() *shuttle.JSONSchema

func (*FileWriteTool) Name

func (t *FileWriteTool) Name() string

type GRPCClientTool

type GRPCClientTool struct {
	// contains filtered or unexported fields
}

GRPCClientTool provides gRPC client capabilities for calling other gRPC services. Apple-style: Uses reflection for zero-config calls to any gRPC service.

func NewGRPCClientTool

func NewGRPCClientTool() *GRPCClientTool

NewGRPCClientTool creates a new gRPC client tool.

func (*GRPCClientTool) Backend

func (t *GRPCClientTool) Backend() string

func (*GRPCClientTool) Close

func (t *GRPCClientTool) Close()

Close closes all connections (call on shutdown).

func (*GRPCClientTool) Description

func (t *GRPCClientTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/grpc.yaml). This fallback is used only when prompts are not configured.

func (*GRPCClientTool) Execute

func (t *GRPCClientTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*GRPCClientTool) InputSchema

func (t *GRPCClientTool) InputSchema() *shuttle.JSONSchema

func (*GRPCClientTool) Name

func (t *GRPCClientTool) Name() string

type GroupByQueryTool

type GroupByQueryTool struct {
	// contains filtered or unexported fields
}

GroupByQueryTool provides GROUP BY aggregation capability for agents. Executes GROUP BY pattern on data from shared memory. Pattern: Aggregate data by dimensions with sum/count/avg functions.

func NewGroupByQueryTool

func NewGroupByQueryTool(store *communication.SharedMemoryStore, agentID string) *GroupByQueryTool

NewGroupByQueryTool creates a new GROUP BY query tool.

func (*GroupByQueryTool) Backend

func (t *GroupByQueryTool) Backend() string

func (*GroupByQueryTool) Description

func (t *GroupByQueryTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/presentation.yaml). This fallback is used only when prompts are not configured.

func (*GroupByQueryTool) Execute

func (t *GroupByQueryTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*GroupByQueryTool) InputSchema

func (t *GroupByQueryTool) InputSchema() *shuttle.JSONSchema

func (*GroupByQueryTool) Name

func (t *GroupByQueryTool) Name() string

type HTTPClientTool

type HTTPClientTool struct {
	// contains filtered or unexported fields
}

HTTPClientTool provides HTTP request capabilities for agents. Apple-style: It just works with sensible defaults.

func NewHTTPClientTool

func NewHTTPClientTool() *HTTPClientTool

NewHTTPClientTool creates a new HTTP client tool with sensible defaults.

func (*HTTPClientTool) Backend

func (t *HTTPClientTool) Backend() string

func (*HTTPClientTool) Description

func (t *HTTPClientTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/rest_api.yaml). This fallback is used only when prompts are not configured.

func (*HTTPClientTool) Execute

func (t *HTTPClientTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*HTTPClientTool) InputSchema

func (t *HTTPClientTool) InputSchema() *shuttle.JSONSchema

func (*HTTPClientTool) Name

func (t *HTTPClientTool) Name() string

type PublishRestartTool

type PublishRestartTool struct {
	// contains filtered or unexported fields
}

PublishRestartTool enables agents to request workflow stage restarts via pub/sub. Used in iterative workflows to enable autonomous agent coordination and self-correction.

func NewPublishRestartTool

func NewPublishRestartTool(messageBus *communication.MessageBus, agentID string) *PublishRestartTool

NewPublishRestartTool creates a new publish restart tool for an agent.

func (*PublishRestartTool) Backend

func (t *PublishRestartTool) Backend() string

func (*PublishRestartTool) Description

func (t *PublishRestartTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/communication.yaml). This fallback is used only when prompts are not configured.

func (*PublishRestartTool) Execute

func (t *PublishRestartTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*PublishRestartTool) InputSchema

func (t *PublishRestartTool) InputSchema() *shuttle.JSONSchema

func (*PublishRestartTool) Name

func (t *PublishRestartTool) Name() string

type PublishTool

type PublishTool struct {
	// contains filtered or unexported fields
}

PublishTool provides topic publishing for pub-sub communication. Allows agents to broadcast messages to all subscribers of a topic.

func NewPublishTool

func NewPublishTool(bus *communication.MessageBus, agentID string) *PublishTool

NewPublishTool creates a new publish tool for an agent.

func (*PublishTool) Backend

func (t *PublishTool) Backend() string

func (*PublishTool) Description

func (t *PublishTool) Description() string

Description returns the tool description.

func (*PublishTool) Execute

func (t *PublishTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*PublishTool) InputSchema

func (t *PublishTool) InputSchema() *shuttle.JSONSchema

func (*PublishTool) Name

func (t *PublishTool) Name() string

type ReceiveBroadcastTool

type ReceiveBroadcastTool struct {
	// contains filtered or unexported fields
}

ReceiveBroadcastTool provides message retrieval from subscribed topics. Works with event-driven notifications for instant message delivery.

func NewReceiveBroadcastTool

func NewReceiveBroadcastTool(bus *communication.MessageBus, agentID string) *ReceiveBroadcastTool

NewReceiveBroadcastTool creates a new receive broadcast tool for an agent.

func (*ReceiveBroadcastTool) Backend

func (t *ReceiveBroadcastTool) Backend() string

func (*ReceiveBroadcastTool) Description

func (t *ReceiveBroadcastTool) Description() string

Description returns the tool description.

func (*ReceiveBroadcastTool) Execute

func (t *ReceiveBroadcastTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*ReceiveBroadcastTool) InputSchema

func (t *ReceiveBroadcastTool) InputSchema() *shuttle.JSONSchema

func (*ReceiveBroadcastTool) Name

func (t *ReceiveBroadcastTool) Name() string

type ReceiveMessageTool

type ReceiveMessageTool struct {
	// contains filtered or unexported fields
}

ReceiveMessageTool provides message retrieval for agent-to-agent communication. Receives messages sent by other agents via send_message tool.

func NewReceiveMessageTool

func NewReceiveMessageTool(queue *communication.MessageQueue, agentID string) *ReceiveMessageTool

NewReceiveMessageTool creates a new receive message tool for an agent.

func (*ReceiveMessageTool) Backend

func (t *ReceiveMessageTool) Backend() string

func (*ReceiveMessageTool) Description

func (t *ReceiveMessageTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/communication.yaml). This fallback is used only when prompts are not configured.

func (*ReceiveMessageTool) Execute

func (t *ReceiveMessageTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*ReceiveMessageTool) InputSchema

func (t *ReceiveMessageTool) InputSchema() *shuttle.JSONSchema

func (*ReceiveMessageTool) Name

func (t *ReceiveMessageTool) Name() string

type SearchResult

type SearchResult struct {
	Title       string  `json:"title"`
	URL         string  `json:"url"`
	Snippet     string  `json:"snippet"`
	Content     string  `json:"content,omitempty"`      // Full content if available
	PublishedAt string  `json:"published_at,omitempty"` // Publication date if available
	Score       float64 `json:"score,omitempty"`        // Relevance score if available
}

SearchResult represents a single search result.

type SendMessageTool

type SendMessageTool struct {
	// contains filtered or unexported fields
}

SendMessageTool provides agent-to-agent messaging for workflows. Enables point-to-point async communication between agents.

func NewSendMessageTool

func NewSendMessageTool(queue *communication.MessageQueue, agentID string) *SendMessageTool

NewSendMessageTool creates a new send message tool for an agent.

func (*SendMessageTool) Backend

func (t *SendMessageTool) Backend() string

func (*SendMessageTool) Description

func (t *SendMessageTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/communication.yaml). This fallback is used only when prompts are not configured.

func (*SendMessageTool) Execute

func (t *SendMessageTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*SendMessageTool) InputSchema

func (t *SendMessageTool) InputSchema() *shuttle.JSONSchema

func (*SendMessageTool) Name

func (t *SendMessageTool) Name() string

type SharedMemoryReadTool

type SharedMemoryReadTool struct {
	// contains filtered or unexported fields
}

SharedMemoryReadTool provides shared memory read access for agents. Retrieves data stored by other agents in the workflow.

func NewSharedMemoryReadTool

func NewSharedMemoryReadTool(store *communication.SharedMemoryStore, agentID string) *SharedMemoryReadTool

NewSharedMemoryReadTool creates a new shared memory read tool.

func (*SharedMemoryReadTool) Backend

func (t *SharedMemoryReadTool) Backend() string

func (*SharedMemoryReadTool) Description

func (t *SharedMemoryReadTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/communication.yaml). This fallback is used only when prompts are not configured.

func (*SharedMemoryReadTool) Execute

func (t *SharedMemoryReadTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*SharedMemoryReadTool) InputSchema

func (t *SharedMemoryReadTool) InputSchema() *shuttle.JSONSchema

func (*SharedMemoryReadTool) Name

func (t *SharedMemoryReadTool) Name() string

type SharedMemoryWriteTool

type SharedMemoryWriteTool struct {
	// contains filtered or unexported fields
}

SharedMemoryWriteTool provides shared memory write access for agents. Stores data that can be accessed by other agents in the workflow.

func NewSharedMemoryWriteTool

func NewSharedMemoryWriteTool(store *communication.SharedMemoryStore, agentID string) *SharedMemoryWriteTool

NewSharedMemoryWriteTool creates a new shared memory write tool.

func (*SharedMemoryWriteTool) Backend

func (t *SharedMemoryWriteTool) Backend() string

func (*SharedMemoryWriteTool) Description

func (t *SharedMemoryWriteTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/communication.yaml). This fallback is used only when prompts are not configured.

func (*SharedMemoryWriteTool) Execute

func (t *SharedMemoryWriteTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*SharedMemoryWriteTool) InputSchema

func (t *SharedMemoryWriteTool) InputSchema() *shuttle.JSONSchema

func (*SharedMemoryWriteTool) Name

func (t *SharedMemoryWriteTool) Name() string

type ShellExecuteTool

type ShellExecuteTool struct {
	// contains filtered or unexported fields
}

ShellExecuteTool provides cross-platform shell command execution. Supports Unix (bash/sh) and Windows (PowerShell/cmd).

func NewShellExecuteTool

func NewShellExecuteTool(baseDir string) *ShellExecuteTool

NewShellExecuteTool creates a new shell execution tool. If baseDir is empty, uses current working directory.

func (*ShellExecuteTool) Backend

func (t *ShellExecuteTool) Backend() string

func (*ShellExecuteTool) Description

func (t *ShellExecuteTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/shell_execute.yaml). This fallback is used only when prompts are not configured.

func (*ShellExecuteTool) Execute

func (t *ShellExecuteTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*ShellExecuteTool) InputSchema

func (t *ShellExecuteTool) InputSchema() *shuttle.JSONSchema

func (*ShellExecuteTool) Name

func (t *ShellExecuteTool) Name() string

type SubscribeTool

type SubscribeTool struct {
	// contains filtered or unexported fields
}

SubscribeTool provides topic subscription for pub-sub communication. Allows agents to subscribe to topics and receive broadcast messages.

func NewSubscribeTool

func NewSubscribeTool(bus *communication.MessageBus, agentID string) *SubscribeTool

NewSubscribeTool creates a new subscribe tool for an agent.

func (*SubscribeTool) Backend

func (t *SubscribeTool) Backend() string

func (*SubscribeTool) Description

func (t *SubscribeTool) Description() string

Description returns the tool description.

func (*SubscribeTool) Execute

func (t *SubscribeTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*SubscribeTool) InputSchema

func (t *SubscribeTool) InputSchema() *shuttle.JSONSchema

func (*SubscribeTool) Name

func (t *SubscribeTool) Name() string

type TeradataTypeMapping

type TeradataTypeMapping struct {
	TeradataType   string
	Nullable       bool
	DefaultValue   string
	Recommendation string
	Confidence     float64
}

TeradataTypeMapping maps CSV types to Teradata types with precision.

type TopNQueryTool

type TopNQueryTool struct {
	// contains filtered or unexported fields
}

TopNQueryTool provides Top-N query capability for agents. Executes TOP N pattern on data from shared memory (e.g., Stage 9 results). Pattern: Get top N items sorted by a column (frequency, score, etc.)

func NewTopNQueryTool

func NewTopNQueryTool(store *communication.SharedMemoryStore, agentID string) *TopNQueryTool

NewTopNQueryTool creates a new Top-N query tool.

func (*TopNQueryTool) Backend

func (t *TopNQueryTool) Backend() string

func (*TopNQueryTool) Description

func (t *TopNQueryTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/presentation.yaml). This fallback is used only when prompts are not configured.

func (*TopNQueryTool) Execute

func (t *TopNQueryTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*TopNQueryTool) InputSchema

func (t *TopNQueryTool) InputSchema() *shuttle.JSONSchema

func (*TopNQueryTool) Name

func (t *TopNQueryTool) Name() string

type VisionTool

type VisionTool struct {
	// contains filtered or unexported fields
}

VisionTool provides image analysis capabilities for agents. Enables vision-based tasks like chart interpretation, OCR, screenshot analysis, etc.

func NewVisionTool

func NewVisionTool(baseDir string) *VisionTool

NewVisionTool creates a new vision tool. If baseDir is empty, reads from current directory (with safety checks).

func (*VisionTool) Backend

func (t *VisionTool) Backend() string

func (*VisionTool) Description

func (t *VisionTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/vision.yaml). This fallback is used only when prompts are not configured.

func (*VisionTool) Execute

func (t *VisionTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*VisionTool) InputSchema

func (t *VisionTool) InputSchema() *shuttle.JSONSchema

func (*VisionTool) Name

func (t *VisionTool) Name() string

type WebSearchTool

type WebSearchTool struct {
	// contains filtered or unexported fields
}

WebSearchTool provides web search capabilities via multiple providers. Supports: Brave Search, Tavily, SerpAPI, and DuckDuckGo. Apple-style: It just works with sensible defaults.

Endpoints can be configured via environment variables:

  • LOOM_WEB_SEARCH_BRAVE_ENDPOINT
  • LOOM_WEB_SEARCH_TAVILY_ENDPOINT
  • LOOM_WEB_SEARCH_SERPAPI_ENDPOINT
  • LOOM_WEB_SEARCH_DUCKDUCKGO_ENDPOINT
  • LOOM_WEB_SEARCH_TIMEOUT_SECONDS

func NewWebSearchTool

func NewWebSearchTool() *WebSearchTool

NewWebSearchTool creates a new web search tool.

func (*WebSearchTool) Backend

func (t *WebSearchTool) Backend() string

func (*WebSearchTool) Description

func (t *WebSearchTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/web_search.yaml). This fallback is used only when prompts are not configured.

func (*WebSearchTool) Execute

func (t *WebSearchTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*WebSearchTool) InputSchema

func (t *WebSearchTool) InputSchema() *shuttle.JSONSchema

func (*WebSearchTool) Name

func (t *WebSearchTool) Name() string

type WorkflowVisualizationTool

type WorkflowVisualizationTool struct{}

WorkflowVisualizationTool provides workflow visualization capability for agents. Converts workflow YAML files to interactive ECharts HTML visualizations. Pattern: Transform workflow definition into visual diagram for analysis and documentation.

func NewWorkflowVisualizationTool

func NewWorkflowVisualizationTool() *WorkflowVisualizationTool

NewWorkflowVisualizationTool creates a new workflow visualization tool.

func (*WorkflowVisualizationTool) Backend

func (t *WorkflowVisualizationTool) Backend() string

func (*WorkflowVisualizationTool) Description

func (t *WorkflowVisualizationTool) Description() string

Description returns the tool description. Deprecated: Description loaded from PromptRegistry (prompts/tools/presentation.yaml). This fallback is used only when prompts are not configured.

func (*WorkflowVisualizationTool) Execute

func (t *WorkflowVisualizationTool) Execute(ctx context.Context, params map[string]interface{}) (*shuttle.Result, error)

func (*WorkflowVisualizationTool) InputSchema

func (t *WorkflowVisualizationTool) InputSchema() *shuttle.JSONSchema

func (*WorkflowVisualizationTool) Name

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL