MCPcopy Index your code
hub / github.com/simstudioai/sim / buildResponsesInputFromMessages

Function buildResponsesInputFromMessages

apps/sim/providers/openai/utils.ts:49–96  ·  view source on GitHub ↗
(
  messages: Message[],
  providerId = 'openai'
)

Source from the content-addressed store, hash-verified

47 * Converts chat-style messages into Responses API input items.
48 */
49export function buildResponsesInputFromMessages(
50 messages: Message[],
51 providerId = 'openai'
52): ResponsesInputItem[] {
53 const input: ResponsesInputItem[] = []
54
55 for (const message of messages) {
56 if (message.role === 'tool' && message.tool_call_id) {
57 input.push({
58 type: 'function_call_output',
59 call_id: message.tool_call_id,
60 output: message.content ?? '',
61 })
62 continue
63 }
64
65 if (message.role === 'system' || message.role === 'user' || message.role === 'assistant') {
66 const content =
67 message.role === 'user'
68 ? buildOpenAIMessageContent(message.content, message.files, providerId)
69 : (message.content ?? '')
70 if (
71 (typeof content === 'string' && !content) ||
72 (Array.isArray(content) && content.length === 0)
73 ) {
74 continue
75 }
76
77 input.push({
78 role: message.role,
79 content,
80 })
81 }
82
83 if (message.tool_calls?.length) {
84 for (const toolCall of message.tool_calls) {
85 input.push({
86 type: 'function_call',
87 call_id: toolCall.id,
88 name: toolCall.function.name,
89 arguments: toolCall.function.arguments,
90 })
91 }
92 }
93 }
94
95 return input
96}
97
98/**
99 * Converts tool definitions to the Responses API format.

Callers 2

utils.test.tsFile · 0.90

Calls 2

pushMethod · 0.45

Tested by

no test coverage detected