mirror of
https://github.com/earendil-works/pi.git
synced 2026-06-18 15:54:04 +08:00
ea90a6783d
Long local-LLM SSE streams (e.g. vLLM buffering large tool calls) exceeded
undici's default 300s bodyTimeout and aborted with UND_ERR_BODY_TIMEOUT.
retry.provider.timeoutMs cannot lift this cap because it controls the
provider SDK's AbortController deadline, not undici's per-socket idle timer.
Pass { bodyTimeout: 0, headersTimeout: 0 } to EnvHttpProxyAgent. Provider
SDKs still enforce their own timeouts via retry.provider.timeoutMs.
closes #3715
23 lines
871 B
JavaScript
23 lines
871 B
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* CLI entry point for the refactored coding agent.
|
|
* Uses main.ts with AgentSession and new mode modules.
|
|
*
|
|
* Test with: npx tsx src/cli-new.ts [args...]
|
|
*/
|
|
import { EnvHttpProxyAgent, setGlobalDispatcher } from "undici";
|
|
import { APP_NAME } from "./config.js";
|
|
import { main } from "./main.js";
|
|
|
|
process.title = APP_NAME;
|
|
process.env.PI_CODING_AGENT = "true";
|
|
process.emitWarning = (() => {}) as typeof process.emitWarning;
|
|
|
|
// bodyTimeout/headersTimeout default to 300s in undici; long local-LLM stalls
|
|
// (e.g. vLLM buffering a large tool call) exceed that and abort the SSE stream
|
|
// with UND_ERR_BODY_TIMEOUT. Disable both — provider SDKs enforce their own
|
|
// AbortController-based deadlines via retry.provider.timeoutMs.
|
|
setGlobalDispatcher(new EnvHttpProxyAgent({ bodyTimeout: 0, headersTimeout: 0 }));
|
|
|
|
main(process.argv.slice(2));
|