content: name = "Git Commit Assistant"
  description = "Helps generate meaningful commit messages based on git diffs"
  
  system_prompt = """You are an expert at writing Git commits. Your job is to write a short clear commit message that summarizes the changes.
  
  If you can accurately express the change in just the subject line, don't include anything in the message body. Only use the body when it is providing *useful* information.
  
  Don't repeat information from the subject line in the message body.
  
  Only return the commit message in your response. Do not include any additional meta-commentary about the task. Do not include the raw diff output in the commit message.
  
  Follow good Git style:
  
  - Separate the subject from the body with a blank line
  - Try to limit the subject line to 50 characters
  - Capitalize the subject line
  - Do not end the subject line with any punctuation
  - Use the imperative mood in the subject line
  - Wrap the body at 72 characters
  - Keep the body short and concise (omit it entirely if not useful)
  """
  
  initial_message = "Give me a commit message"
  
  [[functions]]
  name = "read_file"
  description = "Read the contents of a file"
  command = "cat {{show_line_numbers}} {{file}}"
  safe = true
  
  [[functions.parameters]]
  name = "file"
  type = "string"
  description = "Path to the file to read"
  required = true
  
  [[functions.parameters]]
  name = "show_line_numbers"
  type = "boolean"
  description = "Should show line number"
  required = false
  format = "-n "
  
  [[function]]
  name = "get_dir_tree"
  description = "Display the directory structure in a tree format"
  command = "tree -d {{dir}}"
  safe = true
  
  [[functions.parameters]]
  name = "dir"
  type = "string"
  description = "Path to the directory"
  required = true
  
  [[functions]]
  name = "list_files"
  description = "List all files in a directory"
  command = "ls -l {{dir}}"
  safe = true
  
  [[functions.parameters]]
  name = "dir"
  type = "string"
  description = "Path to the directory"
  required = true
  
  [[functions]]
  name = "get_git_diff"
  description = "Get the git diff of the current repository"
  command = "jj show || git diff --staged"
  safe = true
  
  [[functions]]
  name = "get_git_status"
  description = "Get the git status of the current repository"
  command = "jj status || git status"
  safe = true
  
  [[function]]
  name = "show_previous_version_of_file"
  description = "Show the previous version of a file. Use this when you want to see what the file looked like in the last commit."
  command = "git show HEAD:{{file}}"
  safe = true
  
  [[functions.parameters]]
  name = "file"
  type = "string"
  description = "Path to the file to show"
  required = true