(value: unknown)
| 16 | } |
| 17 | |
| 18 | export function parseMem0Messages(value: unknown): Mem0Message[] { |
| 19 | let messages: unknown |
| 20 | try { |
| 21 | messages = typeof value === 'string' ? JSON.parse(value) : value |
| 22 | } catch (error) { |
| 23 | throw new Error(`Messages must be valid JSON: ${toError(error).message}`) |
| 24 | } |
| 25 | |
| 26 | if (!Array.isArray(messages) || messages.length === 0) { |
| 27 | throw new Error('Messages must be a non-empty array') |
| 28 | } |
| 29 | |
| 30 | const validMessages: Mem0Message[] = [] |
| 31 | for (const message of messages) { |
| 32 | if (!isMem0Message(message)) { |
| 33 | throw new Error('Each message must have role user or assistant and non-empty content') |
| 34 | } |
| 35 | validMessages.push(message) |
| 36 | } |
| 37 | |
| 38 | return validMessages |
| 39 | } |
no test coverage detected