| 2109 | * @returns {boolean} - True if all items are valid, false otherwise |
| 2110 | */ |
| 2111 | export const validateHistorySchema = (history: any[]): boolean => { |
| 2112 | if (!Array.isArray(history)) { |
| 2113 | return false |
| 2114 | } |
| 2115 | |
| 2116 | return history.every((item) => { |
| 2117 | // Check if item is an object |
| 2118 | if (typeof item !== 'object' || item === null) { |
| 2119 | return false |
| 2120 | } |
| 2121 | |
| 2122 | // Check if role exists and is valid |
| 2123 | if (typeof item.role !== 'string' || !['apiMessage', 'userMessage'].includes(item.role)) { |
| 2124 | return false |
| 2125 | } |
| 2126 | |
| 2127 | // Check if content exists and is a string |
| 2128 | if (typeof item.content !== 'string') { |
| 2129 | return false |
| 2130 | } |
| 2131 | |
| 2132 | return true |
| 2133 | }) |
| 2134 | } |