mirror of
https://github.com/anomalyco/opencode.git
synced 2026-11-10 23:30:52 +03:00
fix(core): disable Bun's fetch idle timeout for provider requests (#55007)
This commit is contained in:
committed by
GitHub
Unverified
parent
738f77e470
commit
460c626acd
@@ -1,12 +1,26 @@
|
||||
import { LLMClient, RequestExecutor } from "@opencode/ai/route"
|
||||
import { Effect, Layer } from "effect"
|
||||
import { FetchHttpClient, HttpClient } from "effect/http"
|
||||
import { Socket } from "effect/socket"
|
||||
import { makeGlobalNode } from "@opencode/util/effect/app-node"
|
||||
import { httpClient } from "@opencode/util/effect/app-node-platform"
|
||||
import { WebSocketConstructor } from "./websocket-constructor.js"
|
||||
|
||||
// Bun's fetch ends a request after five quiet minutes, before provider routes' own header and chunk timeouts.
|
||||
const withoutBunTimeout = Layer.effect(
|
||||
HttpClient.HttpClient,
|
||||
Effect.gen(function* () {
|
||||
const client = yield* HttpClient.HttpClient
|
||||
return HttpClient.transformResponse(
|
||||
client,
|
||||
Effect.provideService(FetchHttpClient.RequestInit, { timeout: false } as BunFetchRequestInit),
|
||||
)
|
||||
}),
|
||||
)
|
||||
|
||||
export const requestExecutor = makeGlobalNode({
|
||||
service: RequestExecutor.Service,
|
||||
layer: RequestExecutor.layer,
|
||||
layer: RequestExecutor.layer.pipe(Layer.provide(withoutBunTimeout)),
|
||||
deps: [httpClient],
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user