Documentation ¶
Index ¶
- Variables
- func Invoke(call Call) string
- func NewValidationError(fieldsMissing []string) error
- type AiTool
- type Call
- type CatTool
- type FileTreeTool
- type FileTypeTool
- type FindTool
- type GoTool
- type Input
- type InputSchema
- type LsTool
- type ParameterObject
- type RipGrepTool
- type UserFunction
- type ValidationError
- type WebsiteTextTool
- type WriteFileTool
Constants ¶
This section is empty.
Variables ¶
View Source
var Cat = CatTool{ Name: "cat", Description: "Display the contents of a file. Uses the linux command 'cat'.", Inputs: &InputSchema{ Type: "object", Properties: map[string]ParameterObject{ "file": { Type: "string", Description: "The file to display the contents of.", }, "number": { Type: "boolean", Description: "Number all output lines.", }, "showEnds": { Type: "boolean", Description: "Display $ at end of each line.", }, "squeezeBlank": { Type: "boolean", Description: "Suppress repeated empty output lines.", }, }, Required: []string{"file"}, }, }
View Source
var FileTree = FileTreeTool{ Name: "file_tree", Description: "List the filetree of some directory. Uses linux command 'tree'.", Inputs: &InputSchema{ Type: "object", Properties: map[string]ParameterObject{ "directory": { Type: "string", Description: "The directory to list the filetree of.", }, "level": { Type: "integer", Description: "The depth of the tree to display.", }, }, Required: []string{"directory"}, }, }
View Source
var FileType = FileTypeTool{ Name: "file_type", Description: "Determine the file type of a given file. Uses the linux command 'file'.", Inputs: &InputSchema{ Type: "object", Properties: map[string]ParameterObject{ "file_path": { Type: "string", Description: "The path to the file to analyze.", }, "mime_type": { Type: "boolean", Description: "Whether to display the MIME type of the file.", }, }, Required: []string{"file_path"}, }, }
View Source
var Find = FindTool{ Name: "find", Description: "Search for files in a directory hierarchy. Uses linux command 'find'.", Inputs: &InputSchema{ Type: "object", Properties: map[string]ParameterObject{ "directory": { Type: "string", Description: "The directory to start the search from.", }, "name": { Type: "string", Description: "The name pattern to search for.", }, "type": { Type: "string", Description: "The file type to search for (f: regular file, d: directory).", }, "maxdepth": { Type: "integer", Description: "The maximum depth of directories to search.", }, }, Required: []string{"directory"}, }, }
View Source
var Go = GoTool{ Name: "go", Description: "Run Go commands like 'go test' and 'go run' to compile, test, and run Go programs. Run 'go help' to get details of this tool.", Inputs: &InputSchema{ Type: "object", Properties: map[string]ParameterObject{ "command": { Type: "string", Description: "The Go command to run (e.g., 'run', 'test', 'build').", }, "args": { Type: "string", Description: "Additional arguments for the Go command (e.g., file names, flags).", }, "dir": { Type: "string", Description: "The directory to run the command in (optional, defaults to current directory).", }, }, Required: []string{"command"}, }, }
View Source
var LS = LsTool{ Name: "ls", Description: "List the files in a directory. Uses the Linux command 'ls'.", Inputs: &InputSchema{ Type: "object", Properties: map[string]ParameterObject{ "directory": { Type: "string", Description: "The directory to list the files of.", }, "all": { Type: "boolean", Description: "Show all files, including hidden files.", }, "long": { Type: "boolean", Description: "Use a long listing format.", }, }, Required: []string{"directory"}, }, }
View Source
var RipGrep = RipGrepTool{ Name: "rg", Description: "Search for a pattern in files using ripgrep.", Inputs: &InputSchema{ Type: "object", Properties: map[string]ParameterObject{ "pattern": { Type: "string", Description: "The pattern to search for.", }, "path": { Type: "string", Description: "The path to search in.", }, "case_sensitive": { Type: "boolean", Description: "Whether the search should be case sensitive.", }, "line_number": { Type: "boolean", Description: "Whether to show line numbers.", }, "hidden": { Type: "boolean", Description: "Whether to search hidden files and directories.", }, }, Required: []string{"pattern"}, }, }
View Source
var Tools = map[string]AiTool{ "file_tree": FileTree, "cat": Cat, "find": Find, "file_type": FileType, "ls": LS, "website_text": WebsiteText, "rg": RipGrep, "go": Go, "write_file": WriteFile, }
View Source
var WebsiteText = WebsiteTextTool{ Name: "website_text", Description: "Get the text content of a website by stripping all non-text tags and trimming whitespace.", Inputs: &InputSchema{ Type: "object", Properties: map[string]ParameterObject{ "url": { Type: "string", Description: "The URL of the website to retrieve the text content from.", }, }, Required: []string{"url"}, }, }
View Source
var WriteFile = WriteFileTool{ Name: "write_file", Description: "Write content to a file. Creates the file if it doesn't exist, or overwrites it if it does.", Inputs: &InputSchema{ Type: "object", Properties: map[string]ParameterObject{ "file_path": { Type: "string", Description: "The path to the file to write to.", }, "content": { Type: "string", Description: "The content to write to the file.", }, "append": { Type: "boolean", Description: "If true, append to the file instead of overwriting it.", }, }, Required: []string{"file_path", "content"}, }, }
Functions ¶
func NewValidationError ¶ added in v1.2.7
Types ¶
type AiTool ¶ added in v1.2.7
type AiTool interface { // Call the AI tool with the given Input. Returns output from the tool or an error // if the call returned an error-like. An error-like is either exit code non-zero or // restful response non 2xx. Call(Input) (string, error) // Return the UserFunction, later on used // by text queriers to send to their respective // models UserFunction() UserFunction }
type Call ¶ added in v1.2.7
type Call struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Type string `json:"type,omitempty"` Inputs Input `json:"inputs,omitempty"` Function UserFunction `json:"function,omitempty"` }
type CatTool ¶ added in v1.2.10
type CatTool UserFunction
func (CatTool) UserFunction ¶ added in v1.2.10
func (c CatTool) UserFunction() UserFunction
type FileTreeTool ¶ added in v1.2.7
type FileTreeTool UserFunction
func (FileTreeTool) UserFunction ¶ added in v1.2.7
func (f FileTreeTool) UserFunction() UserFunction
type FileTypeTool ¶ added in v1.2.10
type FileTypeTool UserFunction
func (FileTypeTool) UserFunction ¶ added in v1.2.10
func (f FileTypeTool) UserFunction() UserFunction
type FindTool ¶ added in v1.2.10
type FindTool UserFunction
func (FindTool) UserFunction ¶ added in v1.2.10
func (f FindTool) UserFunction() UserFunction
type GoTool ¶ added in v1.4.2
type GoTool UserFunction
func (GoTool) UserFunction ¶ added in v1.4.2
func (g GoTool) UserFunction() UserFunction
type InputSchema ¶ added in v1.2.7
type InputSchema struct { Type string `json:"type"` Required []string `json:"required"` Properties map[string]ParameterObject `json:"properties"` }
type LsTool ¶ added in v1.2.10
type LsTool UserFunction
func (LsTool) UserFunction ¶ added in v1.2.10
func (f LsTool) UserFunction() UserFunction
type ParameterObject ¶ added in v1.2.7
type RipGrepTool ¶ added in v1.3.7
type RipGrepTool UserFunction
func (RipGrepTool) UserFunction ¶ added in v1.3.7
func (r RipGrepTool) UserFunction() UserFunction
type UserFunction ¶ added in v1.2.7
type UserFunction struct { Name string `json:"name"` Description string `json:"description,omitempty"` // Format is the same, but name of the field different. So this way, each // vendor can set their own field name Inputs *InputSchema `json:"input_schema,omitempty"` // Chatgpt wants this Arguments string `json:"arguments,omitempty"` }
func UserFunctionFromName ¶ added in v1.3.0
func UserFunctionFromName(name string) UserFunction
type ValidationError ¶ added in v1.2.7
type ValidationError struct {
// contains filtered or unexported fields
}
func (ValidationError) Error ¶ added in v1.2.7
func (v ValidationError) Error() string
type WebsiteTextTool ¶ added in v1.3.1
type WebsiteTextTool UserFunction
func (WebsiteTextTool) Call ¶ added in v1.3.1
func (w WebsiteTextTool) Call(input Input) (string, error)
func (WebsiteTextTool) UserFunction ¶ added in v1.3.1
func (w WebsiteTextTool) UserFunction() UserFunction
type WriteFileTool ¶ added in v1.4.2
type WriteFileTool UserFunction
func (WriteFileTool) Call ¶ added in v1.4.2
func (w WriteFileTool) Call(input Input) (string, error)
func (WriteFileTool) UserFunction ¶ added in v1.4.2
func (w WriteFileTool) UserFunction() UserFunction
Click to show internal directories.
Click to hide internal directories.