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

Function executeResponsesProviderRequest

apps/sim/providers/openai/core.ts:55–748  ·  view source on GitHub ↗
(
  request: ProviderRequest,
  config: ResponsesProviderConfig
)

Source from the content-addressed store, hash-verified

53 * Executes a Responses API request with tool-loop handling and streaming support.
54 */
55export async function executeResponsesProviderRequest(
56 request: ProviderRequest,
57 config: ResponsesProviderConfig
58): Promise<ProviderResponse | StreamingExecution> {
59 const { logger } = config
60 const fetchImpl = config.fetch ?? fetch
61
62 logger.info(`Preparing ${config.providerLabel} request`, {
63 model: request.model,
64 hasSystemPrompt: !!request.systemPrompt,
65 hasMessages: !!request.messages?.length,
66 hasTools: !!request.tools?.length,
67 toolCount: request.tools?.length || 0,
68 hasResponseFormat: !!request.responseFormat,
69 stream: !!request.stream,
70 })
71
72 const allMessages: Message[] = []
73
74 if (request.systemPrompt) {
75 allMessages.push({
76 role: 'system',
77 content: request.systemPrompt,
78 })
79 }
80
81 if (request.context) {
82 allMessages.push({
83 role: 'user',
84 content: request.context,
85 })
86 }
87
88 if (request.messages) {
89 allMessages.push(...request.messages)
90 }
91
92 const initialInput = buildResponsesInputFromMessages(allMessages, config.providerId)
93
94 const basePayload: Record<string, unknown> = {
95 model: config.modelName,
96 }
97
98 if (request.temperature !== undefined) basePayload.temperature = request.temperature
99 if (request.maxTokens != null) basePayload.max_output_tokens = request.maxTokens
100
101 if (request.reasoningEffort !== undefined && request.reasoningEffort !== 'auto') {
102 basePayload.reasoning = {
103 effort: request.reasoningEffort,
104 summary: 'auto',
105 }
106 }
107
108 if (request.verbosity !== undefined && request.verbosity !== 'auto') {
109 basePayload.text = {
110 ...((basePayload.text as Record<string, unknown>) ?? {}),
111 verbosity: request.verbosity,
112 }

Callers 2

index.tsFile · 0.90
index.tsFile · 0.90

Calls 15

enforceStrictSchemaFunction · 0.90
convertToolsToResponsesFunction · 0.90
toResponsesToolChoiceFunction · 0.90
createStreamingExecutionFunction · 0.90
calculateCostFunction · 0.90
parseResponsesUsageFunction · 0.90
extractResponseTextFunction · 0.90
extractResponseToolCallsFunction · 0.90

Tested by

no test coverage detected