(ctx context.Context, req *aibridge.TokenUsageRecord)
| 64 | } |
| 65 | |
| 66 | func (t *recorderTranslation) RecordTokenUsage(ctx context.Context, req *aibridge.TokenUsageRecord) error { |
| 67 | merged := req.Metadata |
| 68 | if merged == nil { |
| 69 | merged = aibridge.Metadata{} |
| 70 | } |
| 71 | |
| 72 | // Merge remaining extra token types into metadata. |
| 73 | for k, v := range req.ExtraTokenTypes { |
| 74 | merged[k] = v |
| 75 | } |
| 76 | |
| 77 | _, err := t.client.RecordTokenUsage(ctx, &proto.RecordTokenUsageRequest{ |
| 78 | InterceptionId: req.InterceptionID, |
| 79 | MsgId: req.MsgID, |
| 80 | InputTokens: req.Input, |
| 81 | OutputTokens: req.Output, |
| 82 | CacheReadInputTokens: req.CacheReadInputTokens, |
| 83 | CacheWriteInputTokens: req.CacheWriteInputTokens, |
| 84 | Metadata: marshalForProto(merged), |
| 85 | CreatedAt: timestamppb.New(req.CreatedAt), |
| 86 | }) |
| 87 | return err |
| 88 | } |
| 89 | |
| 90 | func (t *recorderTranslation) RecordToolUsage(ctx context.Context, req *aibridge.ToolUsageRecord) error { |
| 91 | serialized, err := json.Marshal(req.Args) |
nothing calls this directly
no test coverage detected