package llm // Tools defines the available tools for the LLM var Tools = []Tool{ { Type: "function", Function: FunctionDef{ Name: "git_log", Description: "Get commit log between two refs with commit messages", Parameters: Parameters{ Type: "object", Properties: map[string]Property{ "base": {Type: "string", Description: "Base ref (e.g. main, v1.0.0, HEAD~10)"}, "head": {Type: "string", Description: "Head ref (e.g. HEAD, feature-branch)"}, "max_count": {Type: "integer", Description: "Max commits to return (default 50)"}, }, Required: []string{"base", "head"}, }, }, }, { Type: "function", Function: FunctionDef{ Name: "git_diff", Description: "Get the diff between two refs. Can optionally filter to specific files.", Parameters: Parameters{ Type: "object", Properties: map[string]Property{ "base": {Type: "string", Description: "Base ref"}, "head": {Type: "string", Description: "Head ref"}, "files": {Type: "array", Description: "Optional list of files to diff", Items: &Items{Type: "string"}}, }, Required: []string{"base", "head"}, }, }, }, { Type: "function", Function: FunctionDef{ Name: "list_changed_files", Description: "List all files changed between two refs with their status (added/modified/deleted)", Parameters: Parameters{ Type: "object", Properties: map[string]Property{ "base": {Type: "string", Description: "Base ref"}, "head": {Type: "string", Description: "Head ref"}, }, Required: []string{"base", "head"}, }, }, }, { Type: "function", Function: FunctionDef{ Name: "git_show_commit", Description: "Show details of a specific commit including message and stats", Parameters: Parameters{ Type: "object", Properties: map[string]Property{ "ref": {Type: "string", Description: "Commit ref (hash, tag, branch)"}, }, Required: []string{"ref"}, }, }, }, { Type: "function", Function: FunctionDef{ Name: "read_file", Description: "Read contents of a file at a specific ref", Parameters: Parameters{ Type: "object", Properties: map[string]Property{ "path": {Type: "string", Description: "File path relative to repo root"}, "ref": {Type: "string", Description: "Git ref (default HEAD)"}, }, Required: []string{"path"}, }, }, }, { Type: "function", Function: FunctionDef{ Name: "git_diff_stats", Description: "Get diff statistics (files changed, insertions, deletions) between two refs", Parameters: Parameters{ Type: "object", Properties: map[string]Property{ "base": {Type: "string", Description: "Base ref"}, "head": {Type: "string", Description: "Head ref"}, }, Required: []string{"base", "head"}, }, }, }, }