fix(llm): honor DeepSeek SSE keep-alives

This commit is contained in:
fz
2026-08-04 11:48:34 +08:00
parent 804b724202
commit cd6bd5c188
17 files changed
+134 -35

No files matched your search

@@ -8,6 +8,7 @@
apiKey: snapshot-key
baseURL: !!js process.env.DSH_SNAPSHOT_BASE_URL
thinking: disabled
streamIdleTimeoutMs: 100
- id: cli-agent
config:
provider: deepseek-official
@@ -66,12 +66,21 @@ async function deepseekDefaultsServer(): Promise<DeepSeekDefaultsServer> {
request.on('end', () => {
requests.push(JSON.parse(body) as JsonObject)
response.writeHead(200, { 'content-type': 'text/event-stream' })
response.end([
'data: {"choices":[{"delta":{"content":"DEFAULTS_OK"}}]}',
'data: {"choices":[{"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":3,"completion_tokens":1}}',
'data: [DONE]',
'',
].join('\n\n'))
let keepAlives = 3
const write = (): void => {
if (keepAlives-- > 0) {
response.write(': keep-alive\n\n')
setTimeout(write, 60)
return
}
response.end([
'data: {"choices":[{"delta":{"content":"DEFAULTS_OK"}}]}',
'data: {"choices":[{"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":3,"completion_tokens":1}}',
'data: [DONE]',
'',
].join('\n\n'))
}
setTimeout(write, 60)
})
})
await new Promise<void>(resolve => server.listen(0, '127.0.0.1', resolve))
@@ -297,7 +306,7 @@ describe('headless stream-json snapshots', () => {
`)
}, LOADER_SMOKE_TEST_TIMEOUT_MS)
it('logs and sends the DeepSeek adapter maxTokens default through the one-shot app', async () => {
it('keeps provider comments alive and sends DeepSeek defaults through the one-shot app', async () => {
const server = await deepseekDefaultsServer()
try {
const result = await runLoaderSmoke({