( messages: Message[], )
| 329 | } |
| 330 | |
| 331 | export function getLastAssistantMessage( |
| 332 | messages: Message[], |
| 333 | ): AssistantMessage | undefined { |
| 334 | // findLast exits early from the end — much faster than filter + last for |
| 335 | // large message arrays (called on every REPL render via useFeedbackSurvey). |
| 336 | return messages.findLast( |
| 337 | (msg): msg is AssistantMessage => msg.type === 'assistant', |
| 338 | ) |
| 339 | } |
| 340 | |
| 341 | export function hasToolCallsInLastAssistantTurn(messages: Message[]): boolean { |
| 342 | for (let i = messages.length - 1; i >= 0; i--) { |
no outgoing calls
no test coverage detected