tools

package
v0.0.0-...-cdf474a Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2026 License: MIT Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BashToolName = "bash"

	DefaultTimeout  = 1 * 60 * 1000  // 1 minutes in milliseconds
	MaxTimeout      = 10 * 60 * 1000 // 10 minutes in milliseconds
	MaxOutputLength = 30000
)
View Source
const (
	LSToolName = "ls"
	MaxLSFiles = 1000
)
View Source
const (
	TeamBootstrapToolName     = "team_bootstrap"
	TeamCreateContextToolName = "team_create_context"
	TeamAddRoleToolName       = "team_add_role"
	TeamAssignRoleToolName    = "team_assign_role"
	TaskCreateToolName        = "task_create"
	TaskMoveToolName          = "task_move"
	HandoffCreateToolName     = "handoff_create"
	HandoffAcceptToolName     = "handoff_accept"
	InboxReadToolName         = "inbox_read"
	TeamMessageSendToolName   = "team_message_send"
	TeamBroadcastToolName     = "team_broadcast"
	TeamStatusToolName        = "team_status"
	TeammateSpawnToolName     = "teammate_spawn"
	TeammateWaitToolName      = "teammate_wait"
	SubagentSpawnToolName     = "subagent_spawn"
	SubagentWaitToolName      = "subagent_wait"
)
View Source
const (
	ToolResponseTypeText  toolResponseType = "text"
	ToolResponseTypeImage toolResponseType = "image"

	SessionIDContextKey sessionIDContextKey = "session_id"
	MessageIDContextKey messageIDContextKey = "message_id"
)
View Source
const (
	ViewToolName     = "view"
	MaxReadSize      = 250 * 1024
	DefaultReadLimit = 2000
	MaxLineLength    = 2000
)
View Source
const (
	DiagnosticsToolName = "diagnostics"
)
View Source
const (
	EditToolName = "edit"
)
View Source
const (
	FetchToolName = "fetch"
)
View Source
const (
	GlobToolName = "glob"
)
View Source
const (
	GrepToolName = "grep"
)
View Source
const (
	PatchToolName = "patch"
)
View Source
const (
	SourcegraphToolName = "sourcegraph"
)
View Source
const (
	WriteToolName = "write"
)

Variables

This section is empty.

Functions

func GetContextValues

func GetContextValues(ctx context.Context) (string, string)

Types

type BaseTool

type BaseTool interface {
	Info() ToolInfo
	Run(ctx context.Context, params ToolCall) (ToolResponse, error)
}

func NewBashTool

func NewBashTool(permission permission.Service) BaseTool

func NewDiagnosticsTool

func NewDiagnosticsTool(lspClients map[string]*lsp.Client) BaseTool

func NewEditTool

func NewEditTool(lspClients map[string]*lsp.Client, permissions permission.Service, files history.Service) BaseTool

func NewFetchTool

func NewFetchTool(permissions permission.Service) BaseTool

func NewGlobTool

func NewGlobTool() BaseTool

func NewGrepTool

func NewGrepTool() BaseTool

func NewLsTool

func NewLsTool() BaseTool

func NewPatchTool

func NewPatchTool(lspClients map[string]*lsp.Client, permissions permission.Service, files history.Service) BaseTool

func NewSourcegraphTool

func NewSourcegraphTool() BaseTool

func NewViewTool

func NewViewTool(lspClients map[string]*lsp.Client) BaseTool

func NewWriteTool

func NewWriteTool(lspClients map[string]*lsp.Client, permissions permission.Service, files history.Service) BaseTool

type BashParams

type BashParams struct {
	Command string `json:"command"`
	Timeout int    `json:"timeout"`
}

type BashPermissionsParams

type BashPermissionsParams struct {
	Command string `json:"command"`
	Timeout int    `json:"timeout"`
}

type BashResponseMetadata

type BashResponseMetadata struct {
	StartTime int64 `json:"start_time"`
	EndTime   int64 `json:"end_time"`
}

type DiagnosticsParams

type DiagnosticsParams struct {
	FilePath string `json:"file_path"`
}

type EditParams

type EditParams struct {
	FilePath  string `json:"file_path"`
	OldString string `json:"old_string"`
	NewString string `json:"new_string"`
}

type EditPermissionsParams

type EditPermissionsParams struct {
	FilePath string `json:"file_path"`
	Diff     string `json:"diff"`
}

type EditResponseMetadata

type EditResponseMetadata struct {
	Diff      string `json:"diff"`
	Additions int    `json:"additions"`
	Removals  int    `json:"removals"`
}

type FetchParams

type FetchParams struct {
	URL     string `json:"url"`
	Format  string `json:"format"`
	Timeout int    `json:"timeout,omitempty"`
}

type FetchPermissionsParams

type FetchPermissionsParams struct {
	URL     string `json:"url"`
	Format  string `json:"format"`
	Timeout int    `json:"timeout,omitempty"`
}

type GlobParams

type GlobParams struct {
	Pattern string `json:"pattern"`
	Path    string `json:"path"`
}

type GlobResponseMetadata

type GlobResponseMetadata struct {
	NumberOfFiles int  `json:"number_of_files"`
	Truncated     bool `json:"truncated"`
}

type GrepParams

type GrepParams struct {
	Pattern     string `json:"pattern"`
	Path        string `json:"path"`
	Include     string `json:"include"`
	LiteralText bool   `json:"literal_text"`
}

type GrepResponseMetadata

type GrepResponseMetadata struct {
	NumberOfMatches int  `json:"number_of_matches"`
	Truncated       bool `json:"truncated"`
}

type HandoffAcceptParams

type HandoffAcceptParams struct {
	TeamName   string `json:"team_name"`
	HandoffID  string `json:"handoff_id"`
	AcceptedBy string `json:"accepted_by"`
}

type HandoffAcceptTool

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

func NewHandoffAcceptTool

func NewHandoffAcceptTool(service *team.Service) *HandoffAcceptTool

func (*HandoffAcceptTool) Info

func (t *HandoffAcceptTool) Info() ToolInfo

func (*HandoffAcceptTool) Run

type HandoffCreateParams

type HandoffCreateParams struct {
	TeamName    string   `json:"team_name"`
	TaskID      string   `json:"task_id"`
	FromAgent   string   `json:"from_agent"`
	ToAgent     string   `json:"to_agent"`
	WorkSummary string   `json:"work_summary"`
	Artifacts   []string `json:"artifacts"`
}

type HandoffCreateTool

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

func NewHandoffCreateTool

func NewHandoffCreateTool(service *team.Service) *HandoffCreateTool

func (*HandoffCreateTool) Info

func (t *HandoffCreateTool) Info() ToolInfo

func (*HandoffCreateTool) Run

type InboxReadParams

type InboxReadParams struct {
	TeamName   string `json:"team_name"`
	AgentName  string `json:"agent_name"`
	UnreadOnly bool   `json:"unread_only"`
}

type InboxReadTool

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

func NewInboxReadTool

func NewInboxReadTool(service *team.Service) *InboxReadTool

func (*InboxReadTool) Info

func (t *InboxReadTool) Info() ToolInfo

func (*InboxReadTool) Run

func (t *InboxReadTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)

type LSParams

type LSParams struct {
	Path   string   `json:"path"`
	Ignore []string `json:"ignore"`
}

type LSResponseMetadata

type LSResponseMetadata struct {
	NumberOfFiles int  `json:"number_of_files"`
	Truncated     bool `json:"truncated"`
}

type LineScanner

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

func NewLineScanner

func NewLineScanner(r io.Reader) *LineScanner

func (*LineScanner) Err

func (s *LineScanner) Err() error

func (*LineScanner) Scan

func (s *LineScanner) Scan() bool

func (*LineScanner) Text

func (s *LineScanner) Text() string

type PatchParams

type PatchParams struct {
	PatchText string `json:"patch_text"`
}

type PatchResponseMetadata

type PatchResponseMetadata struct {
	FilesChanged []string `json:"files_changed"`
	Additions    int      `json:"additions"`
	Removals     int      `json:"removals"`
}

type SourcegraphParams

type SourcegraphParams struct {
	Query         string `json:"query"`
	Count         int    `json:"count,omitempty"`
	ContextWindow int    `json:"context_window,omitempty"`
	Timeout       int    `json:"timeout,omitempty"`
}

type SourcegraphResponseMetadata

type SourcegraphResponseMetadata struct {
	NumberOfMatches int  `json:"number_of_matches"`
	Truncated       bool `json:"truncated"`
}

type SubagentSpawnTool

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

func NewSubagentSpawnTool

func NewSubagentSpawnTool(service *team.Service, manager *orchestration.Manager) *SubagentSpawnTool

func (*SubagentSpawnTool) Info

func (t *SubagentSpawnTool) Info() ToolInfo

func (*SubagentSpawnTool) Run

type TaskBoardTool

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

func NewTaskBoardTool

func NewTaskBoardTool(service *team.Service) *TaskBoardTool

func (*TaskBoardTool) Info

func (t *TaskBoardTool) Info() ToolInfo

func (*TaskBoardTool) Run

func (t *TaskBoardTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)

type TaskCreateParams

type TaskCreateParams struct {
	TeamName string `json:"team_name"`
	TaskID   string `json:"task_id"`
	Column   string `json:"column"`
}

type TaskMoveParams

type TaskMoveParams struct {
	TeamName   string `json:"team_name"`
	TaskID     string `json:"task_id"`
	FromColumn string `json:"from_column"`
	ToColumn   string `json:"to_column"`
	Agent      string `json:"agent"`
}

type TaskMoveTool

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

func NewTaskMoveTool

func NewTaskMoveTool(service *team.Service) *TaskMoveTool

func (*TaskMoveTool) Info

func (t *TaskMoveTool) Info() ToolInfo

func (*TaskMoveTool) Run

func (t *TaskMoveTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)

type TeamAddRoleParams

type TeamAddRoleParams struct {
	TeamName     string `json:"team_name"`
	RoleName     string `json:"role_name"`
	Responsible  string `json:"responsible"`
	CurrentFocus string `json:"current_focus"`
}

type TeamAddRoleTool

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

func NewTeamAddRoleTool

func NewTeamAddRoleTool(service *team.Service) *TeamAddRoleTool

func (*TeamAddRoleTool) Info

func (t *TeamAddRoleTool) Info() ToolInfo

func (*TeamAddRoleTool) Run

type TeamAssignRoleParams

type TeamAssignRoleParams struct {
	TeamName  string `json:"team_name"`
	RoleName  string `json:"role_name"`
	AgentName string `json:"agent_name"`
}

type TeamAssignRoleTool

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

func NewTeamAssignRoleTool

func NewTeamAssignRoleTool(service *team.Service) *TeamAssignRoleTool

func (*TeamAssignRoleTool) Info

func (t *TeamAssignRoleTool) Info() ToolInfo

func (*TeamAssignRoleTool) Run

type TeamBootstrapParams

type TeamBootstrapParams struct {
	TeamName       string              `json:"team_name"`
	Objective      string              `json:"objective"`
	LeadName       string              `json:"lead_name"`
	Roles          []TeamBootstrapRole `json:"roles"`
	SpawnTeammates *bool               `json:"spawn_teammates"`
}

type TeamBootstrapRole

type TeamBootstrapRole struct {
	Name         string `json:"name"`
	Responsible  string `json:"responsible"`
	CurrentFocus string `json:"current_focus"`
	Profile      string `json:"profile"`
	Prompt       string `json:"prompt"`
}

type TeamBootstrapTool

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

func NewTeamBootstrapTool

func NewTeamBootstrapTool(service *team.Service, manager *orchestration.Manager) *TeamBootstrapTool

func (*TeamBootstrapTool) Info

func (t *TeamBootstrapTool) Info() ToolInfo

func (*TeamBootstrapTool) Run

type TeamBroadcastParams

type TeamBroadcastParams struct {
	TeamName  string `json:"team_name"`
	FromAgent string `json:"from_agent"`
	Content   string `json:"content"`
	Summary   string `json:"summary"`
}

type TeamBroadcastTool

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

func NewTeamBroadcastTool

func NewTeamBroadcastTool(service *team.Service) *TeamBroadcastTool

func (*TeamBroadcastTool) Info

func (t *TeamBroadcastTool) Info() ToolInfo

func (*TeamBroadcastTool) Run

type TeamCreateContextParams

type TeamCreateContextParams struct {
	TeamName string               `json:"team_name"`
	Charter  string               `json:"charter"`
	Roles    map[string]team.Role `json:"roles"`
}

type TeamMessageSendParams

type TeamMessageSendParams struct {
	TeamName  string `json:"team_name"`
	FromAgent string `json:"from_agent"`
	ToAgent   string `json:"to_agent"`
	Content   string `json:"content"`
	Summary   string `json:"summary"`
}

type TeamMessageSendTool

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

func NewTeamMessageSendTool

func NewTeamMessageSendTool(service *team.Service) *TeamMessageSendTool

func (*TeamMessageSendTool) Info

func (t *TeamMessageSendTool) Info() ToolInfo

func (*TeamMessageSendTool) Run

type TeamStatusParams

type TeamStatusParams struct {
	TeamName string `json:"team_name"`
}

type TeamStatusTool

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

func NewTeamStatusTool

func NewTeamStatusTool(service *team.Service, manager *orchestration.Manager) *TeamStatusTool

func (*TeamStatusTool) Info

func (t *TeamStatusTool) Info() ToolInfo

func (*TeamStatusTool) Run

type TeamTool

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

func NewTeamTool

func NewTeamTool(service *team.Service) *TeamTool

func (*TeamTool) Info

func (t *TeamTool) Info() ToolInfo

func (*TeamTool) Run

func (t *TeamTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)

type TeammateSpawnTool

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

func NewTeammateSpawnTool

func NewTeammateSpawnTool(service *team.Service, manager *orchestration.Manager) *TeammateSpawnTool

func (*TeammateSpawnTool) Info

func (t *TeammateSpawnTool) Info() ToolInfo

func (*TeammateSpawnTool) Run

type ToolCall

type ToolCall struct {
	ID    string `json:"id"`
	Name  string `json:"name"`
	Input string `json:"input"`
}

type ToolInfo

type ToolInfo struct {
	Name        string
	Description string
	Parameters  map[string]any
	Required    []string
}

type ToolResponse

type ToolResponse struct {
	Type     toolResponseType `json:"type"`
	Content  string           `json:"content"`
	Metadata string           `json:"metadata,omitempty"`
	IsError  bool             `json:"is_error"`
}

func NewTextErrorResponse

func NewTextErrorResponse(content string) ToolResponse

func NewTextResponse

func NewTextResponse(content string) ToolResponse

func WithResponseMetadata

func WithResponseMetadata(response ToolResponse, metadata any) ToolResponse

type TreeNode

type TreeNode struct {
	Name     string      `json:"name"`
	Path     string      `json:"path"`
	Type     string      `json:"type"` // "file" or "directory"
	Children []*TreeNode `json:"children,omitempty"`
}

type ViewParams

type ViewParams struct {
	FilePath string `json:"file_path"`
	Offset   int    `json:"offset"`
	Limit    int    `json:"limit"`
}

type ViewResponseMetadata

type ViewResponseMetadata struct {
	FilePath string `json:"file_path"`
	Content  string `json:"content"`
}

type WorkerWaitParams

type WorkerWaitParams struct {
	WorkerID string `json:"worker_id"`
}

type WorkerWaitTool

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

func NewSubagentWaitTool

func NewSubagentWaitTool(manager *orchestration.Manager) *WorkerWaitTool

func NewTeammateWaitTool

func NewTeammateWaitTool(service *team.Service, manager *orchestration.Manager) *WorkerWaitTool

func (*WorkerWaitTool) Info

func (t *WorkerWaitTool) Info() ToolInfo

func (*WorkerWaitTool) Run

type WriteParams

type WriteParams struct {
	FilePath string `json:"file_path"`
	Content  string `json:"content"`
}

type WritePermissionsParams

type WritePermissionsParams struct {
	FilePath string `json:"file_path"`
	Diff     string `json:"diff"`
}

type WriteResponseMetadata

type WriteResponseMetadata struct {
	Diff      string `json:"diff"`
	Additions int    `json:"additions"`
	Removals  int    `json:"removals"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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