MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / createOpenCodeZenRequest

Function createOpenCodeZenRequest

web/src/llm-api/opencode-zen.ts:110–142  ·  view source on GitHub ↗
(params: {
  body: ChatCompletionRequestBody
  originalModel: string
  fetch: typeof globalThis.fetch
})

Source from the content-addressed store, hash-verified

108}
109
110function createOpenCodeZenRequest(params: {
111 body: ChatCompletionRequestBody
112 originalModel: string
113 fetch: typeof globalThis.fetch
114}) {
115 const { body, originalModel, fetch } = params
116 const opencodeBody: Record<string, unknown> = {
117 ...body,
118 messages: normalizeOpenCodeZenMessages(body.messages ?? []),
119 tools: body.tools?.map(normalizeOpenCodeZenTool),
120 model: getOpenCodeZenModelId(originalModel),
121 }
122
123 delete opencodeBody.provider
124 delete opencodeBody.transforms
125 delete opencodeBody.codebuff_metadata
126 delete opencodeBody.usage
127
128 if (opencodeBody.stream) {
129 opencodeBody.stream_options = { include_usage: true }
130 }
131
132 return fetch(`${OPENCODE_ZEN_BASE_URL}/chat/completions`, {
133 method: 'POST',
134 headers: {
135 Authorization: `Bearer ${getOpenCodeZenApiKey()}`,
136 'Content-Type': 'application/json',
137 },
138 body: JSON.stringify(opencodeBody),
139 // @ts-expect-error - dispatcher is a valid undici option not in fetch types
140 dispatcher: opencodeZenAgent,
141 })
142}
143
144function normalizeOpenCodeZenMessages(
145 messages: ChatCompletionRequestBody['messages'],

Callers 2

handleOpenCodeZenStreamFunction · 0.85

Calls 4

getOpenCodeZenModelIdFunction · 0.85
getOpenCodeZenApiKeyFunction · 0.85
fetchFunction · 0.50

Tested by

no test coverage detected