zen: new inference

This commit is contained in:
Frank
2026-07-02 21:28:38 -04:00
parent 3adfb970bf
commit cb54824f2f
@@ -210,39 +210,44 @@ export async function handler(
) )
logger.debug("REQUEST URL: " + reqUrl) logger.debug("REQUEST URL: " + reqUrl)
logger.debug("REQUEST: " + reqBody.substring(0, 300) + "...") logger.debug("REQUEST: " + reqBody.substring(0, 300) + "...")
const res = await fetchWith429Retry(reqUrl, { const isNewInference = providerInfo.id.startsWith("console.") || providerInfo.id.startsWith("console-go.")
method: "POST", const res = await fetchWith429Retry(
headers: (() => { reqUrl,
const headers = new Headers(input.request.headers) {
providerInfo.modifyHeaders(headers, providerInfo.apiKey, stickyId) method: "POST",
Object.entries(providerInfo.headerModifier ?? {}).forEach(([k, v]) => { headers: (() => {
if (v === "$ip") return headers.set(k, ip) const headers = new Headers(input.request.headers)
if (v === "$caller") return headers.set(k, stickyId) providerInfo.modifyHeaders(headers, providerInfo.apiKey, stickyId)
if (v === "$session") return headers.set(k, sessionId) Object.entries(providerInfo.headerModifier ?? {}).forEach(([k, v]) => {
if (v === "$model") return headers.set(k, model) if (v === "$ip") return headers.set(k, ip)
if (v === "$request") return headers.set(k, requestId) if (v === "$caller") return headers.set(k, stickyId)
if (v === "$project") return headers.set(k, projectId) if (v === "$session") return headers.set(k, sessionId)
if (v === "$workspace") { if (v === "$model") return headers.set(k, model)
if (authInfo?.workspaceID) headers.set(k, authInfo.workspaceID) if (v === "$request") return headers.set(k, requestId)
return if (v === "$project") return headers.set(k, projectId)
} if (v === "$workspace") {
headers.set(k, v) if (authInfo?.workspaceID) headers.set(k, authInfo.workspaceID)
}) return
headers.delete("host") }
headers.delete("content-length") headers.set(k, v)
headers.delete("x-opencode-request") })
headers.delete("x-opencode-session") headers.delete("host")
headers.delete("x-opencode-project") headers.delete("content-length")
headers.delete("x-opencode-client") headers.delete("x-opencode-request")
return headers headers.delete("x-opencode-session")
})(), headers.delete("x-opencode-project")
body: reqBody, headers.delete("x-opencode-client")
// Propagate caller disconnects to the upstream provider request so return headers
// abandoned Console requests do not leave orphaned inference work open. })(),
signal: input.request.signal, body: reqBody,
}) // Propagate caller disconnects to the upstream provider request so
// abandoned Console requests do not leave orphaned inference work open.
signal: input.request.signal,
},
{ count: isNewInference ? MAX_429_RETRIES : 0 },
)
if (providerInfo.id.startsWith("console.") || providerInfo.id.startsWith("console-go.")) { if (isNewInference) {
const resEndpointId = res.headers.get("x-opencode-endpoint-id") const resEndpointId = res.headers.get("x-opencode-endpoint-id")
const resEndpointModelId = res.headers.get("x-opencode-upstream-model-id") const resEndpointModelId = res.headers.get("x-opencode-upstream-model-id")
if (resEndpointId && resEndpointModelId) if (resEndpointId && resEndpointModelId)