(thread: ThreadData)
| 184 | } |
| 185 | |
| 186 | function getLatestUserPrompt(thread: ThreadData) { |
| 187 | let latestUserMessage: ProseMessage | undefined |
| 188 | for (let index = thread.messages.length - 1; index >= 0; index -= 1) { |
| 189 | const message = thread.messages[index] |
| 190 | if (message?.role === 'user') { |
| 191 | latestUserMessage = message as ProseMessage |
| 192 | break |
| 193 | } |
| 194 | } |
| 195 | |
| 196 | if (!latestUserMessage) { |
| 197 | return null |
| 198 | } |
| 199 | |
| 200 | const prompt = latestUserMessage.content.join('\n\n').trim() |
| 201 | return prompt.length > 0 ? prompt : null |
| 202 | } |
| 203 | |
| 204 | export function normalizeThreadDataForReason( |
| 205 | thread: ThreadData, |
no outgoing calls
no test coverage detected