diff --git a/services/telegram-bot/src/bots/telegram/agent/actions/send-message.test.ts b/services/telegram-bot/src/bots/telegram/agent/actions/send-message.test.ts index b765d4915..851865c79 100644 --- a/services/telegram-bot/src/bots/telegram/agent/actions/send-message.test.ts +++ b/services/telegram-bot/src/bots/telegram/agent/actions/send-message.test.ts @@ -45,6 +45,16 @@ describe('parseMayStructuredMessage', () => { expect(result).toMatchObject({ messages: [text], reply_to_message_id: undefined }) }) + it('should return null when structured output has an empty messages array', () => { + const result = parseMayStructuredMessage('{"messages":[]}') + expect(result).toBeNull() + }) + + it('should return null when structured output has only blank messages', () => { + const result = parseMayStructuredMessage('{"messages":["", " "]}') + expect(result).toBeNull() + }) + it('should return an array of messages from multi-line elements of input', () => { const result = parseMayStructuredMessage(`{"messages": [ "Hello, diff --git a/services/telegram-bot/src/bots/telegram/agent/actions/send-message.ts b/services/telegram-bot/src/bots/telegram/agent/actions/send-message.ts index 4a943ba44..88e47262f 100644 --- a/services/telegram-bot/src/bots/telegram/agent/actions/send-message.ts +++ b/services/telegram-bot/src/bots/telegram/agent/actions/send-message.ts @@ -26,7 +26,8 @@ export function parseMayStructuredMessage(responseText: string) { logger.withField('text', JSON.stringify(responseText)).withField('result', result).log('Multiple messages detected') const parsedResponse = parse(result[0]) as ({ messages?: unknown, reply_to_message_id?: unknown } | undefined) - const messages = Array.isArray(parsedResponse?.messages) + const hasMessagesArray = Array.isArray(parsedResponse?.messages) + const messages = hasMessagesArray ? parsedResponse.messages.filter((message): message is string => typeof message === 'string' && message.trim() !== '') : [] const replyToMessageId = typeof parsedResponse?.reply_to_message_id === 'string' @@ -37,6 +38,10 @@ export function parseMayStructuredMessage(responseText: string) { return { messages, reply_to_message_id: replyToMessageId } } + if (hasMessagesArray) { + return null + } + return { messages: [responseText], reply_to_message_id: replyToMessageId } }