fix(sse): pin the ok variant of the non-streaming leg result in chatCore (#12963)

Base-red: `API Route Typecheck` falhava no tip com 13 TS2339 novos em `chatCore.ts`, vindos do #12867 — que eu mergeei validando só com `typecheck:core`, que não cobre esse arquivo.

Causa: `legResult` é a união `NonStreamingProviderLegResult`; o guard de erro estreita para a variante `ok`, mas a reatribuição condicional do tool loop devolve o tipo declarado e as 13 leituras seguintes perdem a narrowing. Corrigido fixando a variante num binding próprio — `loopApply.leg` já é `& { kind: "ok" }`, então sem cast.

Gate: 302 erros com 13 novos → **289, todos dentro da baseline congelada**. `typecheck:core` limpo, ESLint 0 no arquivo.

Dois commits: o primeiro é Prettier puro sobre o arquivo do tip (que chegou fora do padrão pelo #12867), verificado byte a byte contra `prettier(tip)`; o segundo é a mudança semântica, 39 linhas.

Os demais vermelhos deste PR são herdados e cobertos por #12990, #12964 e #12970.
This commit is contained in:
Diego Rodrigues de Sa e Souza
2026-09-08 09:05:16 -03:00
committed by GitHub
parent fcc2dcd1a6
commit 99282e1054
3 changed files with 1498 additions and 1482 deletions

View File

@@ -0,0 +1 @@
- Restore the API-route typecheck gate: the non-streaming leg result lost its discriminated-union narrowing after the server-owned tool loop reassignment, producing 13 new TS2339 diagnostics in `chatCore.ts`.

View File

@@ -215,11 +215,6 @@
"count": 1
}
},
"open-sse/handlers/chatCore.ts": {
"@typescript-eslint/no-unused-vars": {
"count": 26
}
},
"open-sse/handlers/chatCore/executorHelpers.ts": {
"@typescript-eslint/no-unused-vars": {
"count": 1

File diff suppressed because it is too large Load Diff