( messages: TokenCountRequest['messages'], )
| 179 | | { type: 'function_call_output'; call_id: string; output: string } |
| 180 | |
| 181 | export function convertToResponsesApiInput( |
| 182 | messages: TokenCountRequest['messages'], |
| 183 | ): ResponsesApiInputItem[] { |
| 184 | const input: ResponsesApiInputItem[] = [] |
| 185 | |
| 186 | for (const message of messages) { |
| 187 | if (message.role === 'system') { |
| 188 | const content = buildMessageContent(message.content) |
| 189 | if (content) { |
| 190 | input.push({ type: 'message', role: 'developer', content }) |
| 191 | } |
| 192 | continue |
| 193 | } |
| 194 | |
| 195 | if (message.role === 'tool') { |
| 196 | input.push({ |
| 197 | type: 'function_call_output', |
| 198 | call_id: message.toolCallId ?? 'unknown', |
| 199 | output: formatToolContent(message.content), |
| 200 | }) |
| 201 | continue |
| 202 | } |
| 203 | |
| 204 | if (message.role === 'user') { |
| 205 | const content = buildMessageContent(message.content) |
| 206 | if (content) { |
| 207 | input.push({ type: 'message', role: 'user', content }) |
| 208 | } |
| 209 | continue |
| 210 | } |
| 211 | |
| 212 | if (message.role === 'assistant') { |
| 213 | const content = buildMessageContent(message.content) |
| 214 | if (content) { |
| 215 | input.push({ type: 'message', role: 'assistant', content }) |
| 216 | } |
| 217 | if (Array.isArray(message.content)) { |
| 218 | for (const part of message.content) { |
| 219 | if (part.type === 'tool-call') { |
| 220 | input.push({ |
| 221 | type: 'function_call', |
| 222 | id: part.toolCallId ?? 'unknown', |
| 223 | name: part.toolName, |
| 224 | arguments: JSON.stringify(part.input ?? {}), |
| 225 | }) |
| 226 | } |
| 227 | } |
| 228 | } |
| 229 | } |
| 230 | } |
| 231 | |
| 232 | return input |
| 233 | } |
| 234 | |
| 235 | function buildMessageContent( |
| 236 | content: unknown, |
no test coverage detected