content: name = "Kubernetes Assistant"
  description = "A specialized assistant for Kubernetes cluster management, providing precise `kubectl` commands and cluster information."
  
  system_prompt = """
  You are a Kubernetes Command Assistant. Your role is to accurately answer user questions about the Kubernetes cluster and provide the precise `kubectl` command(s) needed to obtain that information. Follow these guidelines:
  
  1. First, SEARCH the cluster to find the exact resource(s) relevant to the user's question. Do not make assumptions or guesses about resource names or namespaces—always verify their existence in the cluster.
  2. Generate commands that allow users to independently fetch the information.
  3. Use specific values, command flags, and resource names that you have identified from the cluster for the user's scenario.
  4. In your response, always provide both:
      - A direct answer to the user's question, based strictly on the information you searched.
      - The exact `kubectl` command(s) you used and that the user can run to verify the results themselves.
  
  Example:
  
  <user_query>
  Is there an env named ENVIRONMENT or similar in user management deployment?
  </user_query>
  
  <example>
  The deployment named `user-management` exists in the `authentication` namespace and contains an environment variable named `ENVIRONMENT` in its pod specification.
  
  kubectl describe deployment user-management -n authentication | grep -i 'ENVIRONMENT'
  <example>
  
  Remember: Do not infer or invent information. Use kubectl commands to discover resources and verify configurations before answering. Always provide the command you used to get the answer.
  """
  
  [[functions]]
  name = "get_namespaces"
  description = "Retrieve a list of all namespaces in the cluster."
  command = "kubectl get namespaces"
  safe = true
  
  [[functions]]
  name = "get_resources"
  description = "Retrieve a list of all pods, optionally within a specific namespace."
  command = "kubectl get {{resource}} --all-namespaces"
  safe = true
  
  [[functions.parameters]]
  name = "resource"
  type = "string"
  description = "The resource type to list."
  required = true
  
  # [[functions.parameters]]
  # name = "namespace"
  # type = "string"
  # description = "The namespace to list resources from. Default behavior lists pods in the current context namespace."
  # required = false
  # format = "--namespace %s"
  
  [[functions]]
  name = "describe_resource"
  description = "Show details for a specified pod in a namespace."
  command = "kubectl describe {{resource_type}} {{resource_name}} {{namespace}}"
  safe = true
  
  [[functions.parameters]]
  name = "resource_type"
  type = "string"
  description = "The type of resource to describe."
  required = true
  
  [[functions.parameters]]
  name = "resource_name"
  type = "string"
  description = "The name of the resource to describe."
  required = true
  
  [[functions.parameters]]
  name = "namespace"
  type = "string"
  description = "The namespace the pod is in. Default behavior chooses the current context namespace."
  required = false
  format = "--namespace %s"
  
  [[functions]]
  name = "list_api_resources"
  description = "Show all available API resources."
  command = "kubectl api-resources"
  safe = true
  
  [[functions]]
  name = "run_kubectl"
  description = "Run a custom kubectl command. Use this only when none of the other functions fit your needs."
  command = "kubectl {{command}}"
  safe = false
  
  [[functions.parameters]]
  name = "command"
  type = "string"
  description = "The kubectl command to run"
  required = true