tools

package
v0.42.0 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ConfirmYes     = common.ConfirmYes
	ConfirmNo      = common.ConfirmNo
	ConfirmComment = common.ConfirmComment
	SafetyHigh     = common.SafetyHigh
	SafetyMedium   = common.SafetyMedium
	SafetyLow      = common.SafetyLow
)

定数エイリアス

Variables

View Source
var Confirm = common.Confirm
View Source
var ConfirmApproved = common.ConfirmApproved
View Source
var ConfirmInteractive = common.ConfirmInteractive
View Source
var ConfirmWithFeedback = common.ConfirmWithFeedback
View Source
var DefaultRegistry = NewRegistry()

DefaultRegistry はデフォルトのツールレジストリ

View Source
var DisplayContentToInsert = common.DisplayContentToInsert
View Source
var DisplayContextAround = common.DisplayContextAround
View Source
var DisplayMultipleMatches = common.DisplayMultipleMatches
View Source
var DisplayPatternNotFound = common.DisplayPatternNotFound
View Source
var FindPatternInLines = common.FindPatternInLines

関数エイリアス - Pattern

View Source
var FormatSize = common.FormatSize
View Source
var GetSafetyDescription = common.GetSafetyDescription
View Source
var GetToolSafety = common.GetToolSafety

関数エイリアス - Safety

View Source
var IsAutoApprovable = common.IsAutoApprovable
View Source
var IsInteractiveModeEnabled = common.IsInteractiveModeEnabled
View Source
var IsMediumToolAutoApprovable = common.IsMediumToolAutoApprovable
View Source
var IsSafeToolAutoApprovable = common.IsSafeToolAutoApprovable
View Source
var LoadImage = common.LoadImage

関数エイリアス - Image

View Source
var SetAutoApprove = common.SetAutoApprove

関数エイリアス - Confirm

View Source
var ValidatePath = common.ValidatePath

関数エイリアス - Validation

View Source
var ValidatePathAllowParent = common.ValidatePathAllowParent

Functions

func PreviewToolCall added in v0.31.0

func PreviewToolCall(tc *ToolCall)

PreviewToolCall displays tool information without executing it

func RegisterBuiltinTools

func RegisterBuiltinTools(r *Registry)

RegisterBuiltinTools はすべての組み込みツールを登録 NOTE: All tools are now registered by subpackages:

  • tools/file: read_file, write_file, str_replace, delete_file, list_dir, restore_backup, list_backups
  • tools/git: git_commit, git_checkout
  • tools/search: search_code, search_file, web_search, ast_grep, grep_replace
  • tools/dev: bash, run_test, format, lint, http_request

Types

type ConfirmAction added in v0.31.0

type ConfirmAction = common.ConfirmAction

type ConfirmDecision added in v0.31.0

type ConfirmDecision = common.ConfirmDecision

type ConfirmResult added in v0.29.0

type ConfirmResult = common.ConfirmResult

type FileChange

type FileChange struct {
	FilePath    string
	BackupPath  string
	Timestamp   time.Time
	Tool        string
	Description string
}

FileChange はファイル変更履歴

func Execute

func Execute(tc *ToolCall) (string, *FileChange)

Execute はツールを実行(Registry経由)

type FileModifyingTool added in v0.31.0

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

FileModifyingTool はファイルを変更しFileChangeを返すツール

func (*FileModifyingTool) Name added in v0.31.0

func (t *FileModifyingTool) Name() string

func (*FileModifyingTool) Run added in v0.31.0

func (t *FileModifyingTool) Run(args map[string]string) (string, *FileChange, error)

type ImageData added in v0.29.0

type ImageData = common.ImageData

型エイリアス

type PatternMatchResult added in v0.31.0

type PatternMatchResult = common.PatternMatchResult

type Registry

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

Registry はツールの登録・管理を行う

func NewRegistry

func NewRegistry() *Registry

NewRegistry は新しいRegistryを作成

func (*Registry) Execute

func (r *Registry) Execute(tc *ToolCall) (string, *FileChange)

Execute はツール呼び出しを実行(スレッドセーフ + 監査ログ記録)

func (*Registry) GetTool added in v0.31.0

func (r *Registry) GetTool(name string) Tool

GetTool は登録されたツールを取得(スレッドセーフ) 主にテスト用途

func (*Registry) Register

func (r *Registry) Register(tool Tool)

Register はツールを登録(スレッドセーフ)

type SimpleTool added in v0.31.0

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

SimpleTool は引数を受け取り結果のみ返すシンプルなツール

func (*SimpleTool) Name added in v0.31.0

func (t *SimpleTool) Name() string

func (*SimpleTool) Run added in v0.31.0

func (t *SimpleTool) Run(args map[string]string) (string, *FileChange, error)

type Tool

type Tool interface {
	// Name はツール名を返す
	Name() string

	// Run はツールを実行
	// output: ツールの実行結果
	// change: ファイル変更情報(変更がない場合はnil)
	// err: エラー(エラーがない場合はnil)
	Run(args map[string]string) (output string, change *FileChange, err error)
}

Tool はツールの共通インターフェース

type ToolCacheInterface added in v0.42.0

type ToolCacheInterface interface {
	// GetFile はファイル内容のキャッシュを取得
	// キャッシュヒット時は (content, true) を返す
	// ファイルが変更されていた場合やキャッシュミス時は ("", false) を返す
	GetFile(path string) (string, bool)

	// SetFile はファイル内容をキャッシュに保存
	// 1MB以上のファイルはキャッシュしない
	SetFile(path, content string)

	// GetDir はディレクトリ一覧のキャッシュを取得
	// キャッシュヒット時は (result, true) を返す
	// ディレクトリが変更されていた場合やキャッシュミス時は ("", false) を返す
	GetDir(path string) (string, bool)

	// SetDir はディレクトリ一覧をキャッシュに保存
	SetDir(path, result string)

	// InvalidateFile は指定ファイルのキャッシュを無効化
	// ファイル書き込み系ツール実行後に呼ばれる
	InvalidateFile(path string)

	// InvalidateDir は指定ディレクトリのキャッシュを無効化
	// ファイル作成/削除後に呼ばれる
	InvalidateDir(path string)

	// Clear は全キャッシュをクリア
	Clear()

	// GetSearch は検索結果のキャッシュを取得
	// キャッシュヒット時は (result, true) を返す
	// キャッシュミス時は ("", false) を返す
	GetSearch(pattern, path string) (string, bool)

	// SetSearch は検索結果をキャッシュに保存
	SetSearch(pattern, path, result string)

	// ClearSearchCache は検索キャッシュをクリア
	// ファイル変更系ツール実行時に呼ばれる
	ClearSearchCache()
}

ToolCacheInterface はツール結果のキャッシュインターフェース agent パッケージで実装され、tools パッケージから使用される

var GlobalToolCache ToolCacheInterface

GlobalToolCache はグローバルなツールキャッシュ agent.NewAgent() で設定される

type ToolCall

type ToolCall struct {
	Tool    string         `json:"tool"`
	RawArgs map[string]any `json:"args"`
	Args    map[string]string
}

ToolCall はAIからのツール呼び出し

func ParseToolCall

func ParseToolCall(response string) *ToolCall

ParseToolCall はレスポンスからツール呼び出しを抽出(最初の1つのみ - 後方互換)

func ParseToolCalls added in v0.31.0

func ParseToolCalls(response string) []*ToolCall

ParseToolCalls はレスポンスから全てのツール呼び出しを抽出 Markdownコードブロック内のJSONは除外する

func (*ToolCall) NormalizeArgs added in v0.31.0

func (tc *ToolCall) NormalizeArgs()

NormalizeArgs はRawArgsをArgsに変換(数値→文字列)

type ToolSafety added in v0.29.0

type ToolSafety = common.ToolSafety

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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