( content: UserMessageContent, existingMetadata?: MuxMessageMetadata )
| 180 | * @returns Object with finalText (reviews prepended) and metadata (reviews for display) |
| 181 | */ |
| 182 | export function prepareUserMessageForSend( |
| 183 | content: UserMessageContent, |
| 184 | existingMetadata?: MuxMessageMetadata |
| 185 | ): { |
| 186 | finalText: string; |
| 187 | metadata: MuxMessageMetadata | undefined; |
| 188 | } { |
| 189 | const { text, reviews } = content; |
| 190 | |
| 191 | // Format reviews into message text |
| 192 | const reviewsText = reviews?.length ? reviews.map(formatReviewForModel).join("\n\n") : ""; |
| 193 | const finalText = reviewsText ? reviewsText + (text ? "\n\n" + text : "") : text; |
| 194 | |
| 195 | // Build metadata with reviews for display |
| 196 | let metadata: MuxMessageMetadata | undefined = existingMetadata; |
| 197 | if (reviews?.length) { |
| 198 | metadata = metadata ? { ...metadata, reviews } : { type: "normal", reviews }; |
| 199 | } |
| 200 | |
| 201 | return { finalText, metadata }; |
| 202 | } |
| 203 | |
| 204 | export interface InlineSkillSnapshotForDisplay { |
| 205 | skillName: string; |
no outgoing calls
no test coverage detected