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.Approvedprotobuf message to include apreapproved_toolsfield - 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
ApprovalStateentity 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