| 128 | } |
| 129 | |
| 130 | func (r *SQLiteRecorder) RecordToolUsage(ctx context.Context, req *aibridge.ToolUsageRecord) error { |
| 131 | metadata, _ := json.Marshal(req.Metadata) |
| 132 | input, _ := json.Marshal(req.Args) |
| 133 | |
| 134 | var serverURL *string |
| 135 | if req.ServerURL != nil { |
| 136 | serverURL = req.ServerURL |
| 137 | } |
| 138 | |
| 139 | var invocationError *string |
| 140 | if req.InvocationError != nil { |
| 141 | errStr := req.InvocationError.Error() |
| 142 | invocationError = &errStr |
| 143 | } |
| 144 | |
| 145 | _, err := r.stmtInsertToolUsage.ExecContext(ctx, |
| 146 | uuid.NewString(), req.InterceptionID, req.MsgID, serverURL, req.Tool, string(input), req.Injected, invocationError, string(metadata), req.CreatedAt, |
| 147 | ) |
| 148 | if err != nil { |
| 149 | r.logger.Warn(ctx, "failed to record tool usage", slog.Error(err)) |
| 150 | } |
| 151 | return err |
| 152 | } |