(messages)
| 143 | systemParts.push(makeCliTextPart(content)) |
| 144 | } |
| 145 | |
| 146 | function ensureCliSystemMessage(messages) { |
| 147 | if (!Array.isArray(messages) || messages.length === 0) { |
| 148 | return messages |
| 149 | } |
| 150 | |
| 151 | const systemParts = [JSON.parse(JSON.stringify(CLI_DEFAULT_SYSTEM_PART))] |
| 152 | const nonSystemMessages = [] |
| 153 | |
| 154 | for (const message of messages) { |
| 155 | if (!message || typeof message !== 'object') { |
| 156 | continue |
| 157 | } |
| 158 | |
| 159 | const role = typeof message.role === 'string' ? message.role.toLowerCase() : '' |
| 160 | if (role === 'system') { |
| 161 | appendCliSystemContent(systemParts, message.content) |
| 162 | continue |
| 163 | } |
| 164 | |
| 165 | nonSystemMessages.push(message) |
| 166 | } |
| 167 | |
| 168 | return [ |
| 169 | { |
| 170 | role: 'system', |
| 171 | content: systemParts |
| 172 | }, |
| 173 | ...nonSystemMessages |
| 174 | ] |
| 175 | } |
| 176 | |
| 177 | /** |
no test coverage detected