AUDIT / src /lib /agentLoop /fastExitBlock.ts
Arypulka98's picture
feat(audit): deploy full backend cluster node (part 3)
95eb75a verified
Raw
History Blame Contribute Delete
1.26 kB
// S515 — estratto da agentLoop.ts: fast-exit check iter===0 per risposte dirette
// S432-FIX2/FIX2b: evita il gauntlet retry per query semplici → risposta in <2s su iPhone.
import type { AgentStep } from "../storage";
export interface FastExitParams {
iter: number;
steps: AgentStep[];
isCodeTask: boolean;
finalText: string;
isDirectAnswer: boolean;
}
/**
* Verifica se la risposta soddisfa i criteri di fast-exit (iter 0, risposta diretta).
* Restituisce `shouldReturn: true` se il caller deve emettere la risposta e fare `return`.
*
* - FIX2: iter===0, nessun tool chiamato, query non-code, risposta ≥30 chars
* - FIX2b: iter===0, isDirectAnswer===true, query non-code, risposta ≥20 chars
*/
export function checkFastExit(p: FastExitParams): { shouldReturn: boolean } {
// S432-FIX2: iter 0, nessun tool, query non-code
if (p.iter === 0 && p.steps.length === 0 && !p.isCodeTask && p.finalText.length >= 30) {
return { shouldReturn: true };
}
// S432-FIX2b: isDirectAnswer=true, iter 0, query non-code (soglia più bassa)
if (p.iter === 0 && p.isDirectAnswer && !p.isCodeTask && p.finalText.length >= 20) {
return { shouldReturn: true };
}
return { shouldReturn: false };
}