( ctx context.Context, logger slog.Logger, tr fantasy.ToolResultContent, createdAt time.Time, publishMessagePart func(codersdk.ChatMessageRole, codersdk.ChatMessagePart), )
| 1966 | } |
| 1967 | |
| 1968 | func publishToolAttachments( |
| 1969 | ctx context.Context, |
| 1970 | logger slog.Logger, |
| 1971 | tr fantasy.ToolResultContent, |
| 1972 | createdAt time.Time, |
| 1973 | publishMessagePart func(codersdk.ChatMessageRole, codersdk.ChatMessagePart), |
| 1974 | ) { |
| 1975 | attachments, err := chattool.AttachmentsFromMetadata(tr.ClientMetadata) |
| 1976 | if err != nil { |
| 1977 | logger.Warn(ctx, "skipping malformed tool attachment metadata", |
| 1978 | slog.F("tool_name", tr.ToolName), |
| 1979 | slog.F("tool_call_id", tr.ToolCallID), |
| 1980 | slog.Error(err), |
| 1981 | ) |
| 1982 | return |
| 1983 | } |
| 1984 | for _, attachment := range attachments { |
| 1985 | filePart := codersdk.ChatMessageFile( |
| 1986 | attachment.FileID, |
| 1987 | attachment.MediaType, |
| 1988 | attachment.Name, |
| 1989 | ) |
| 1990 | filePart.CreatedAt = &createdAt |
| 1991 | publishMessagePart(codersdk.ChatMessageRoleAssistant, filePart) |
| 1992 | } |
| 1993 | } |
| 1994 | |
| 1995 | func extractContextLimit(metadata fantasy.ProviderMetadata) sql.NullInt64 { |
| 1996 | if len(metadata) == 0 { |
no test coverage detected