| 137 | } |
| 138 | |
| 139 | func (c *unixSocketClient) CreateToolApproval( |
| 140 | ctx context.Context, |
| 141 | id string, |
| 142 | request ToolApprovalRequest, |
| 143 | ) (ToolApprovalRecord, error) { |
| 144 | request.SessionID = strings.TrimSpace(request.SessionID) |
| 145 | request.WorkspaceID = strings.TrimSpace(request.WorkspaceID) |
| 146 | request.AgentName = strings.TrimSpace(request.AgentName) |
| 147 | request.InputDigest = strings.TrimSpace(request.InputDigest) |
| 148 | var response contract.ToolApprovalResponse |
| 149 | path := "/api/tools/" + url.PathEscape(strings.TrimSpace(id)) + "/approvals" |
| 150 | if err := c.doJSON(ctx, http.MethodPost, path, nil, request, &response); err != nil { |
| 151 | return ToolApprovalRecord{}, err |
| 152 | } |
| 153 | return response.Approval, nil |
| 154 | } |
| 155 | |
| 156 | func (c *unixSocketClient) InvokeTool( |
| 157 | ctx context.Context, |