feat: add preapproved tools support to approval workflow

What does this merge request do and why?

This merge request adds support for preapproved tools in the approval workflow system. When a client approves tool execution, they can now specify a list of tools that should be preapproved for subsequent executions, reducing the need for repeated approvals of the same tools.

Key Changes:

  • Extended the Approval.Approved protobuf message to include a preapproved_tools field
  • Updated all client libraries (Go, Node.js, Ruby, Python) to support the new field
  • Modified the chat agent to check preapproved tools before requiring approval
  • Added ApprovalState entity to track preapproved tools in the workflow state
  • Updated the workflow to handle approval objects with preapproved tools

Related to Duo should remember command/tool approvals (gitlab-org/gitlab#556045)

Edited by Shinya Maeda

Merge request reports

Loading