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