AUDIT / src /lib /agentLoop /constraintGoalBuilder.ts
Arypulka98's picture
feat(audit): deploy full backend cluster node (part 2)
cc11e77 verified
Raw
History Blame Contribute Delete
1.23 kB
// S519 — estratto da agentLoop.ts: FASE3 constraint-first block (S102)
// Analizza i vincoli del messaggio utente e costruisce il goal aumentato.
import { analyzeConstraints } from "../agent/constraintAnalyzer";
export interface ConstraintGoalResult {
constrainedGoal: string;
}
/**
* S519/S102: analizza i vincoli nella query e costruisce il goal aumentato
* con il [VINCOLI DA RISPETTARE] header se necessario.
* Chiama onStatus se ci sono vincoli bloccanti o irreversibili.
*/
export function buildConstrainedGoal(
lastUserMsg: string,
onStatus: (msg: string) => void,
): ConstraintGoalResult {
const _constraints = analyzeConstraints(lastUserMsg);
if (_constraints.hasConstraints) {
const _bCount = _constraints.blockers.length;
const _pCount = _constraints.pointsOfNoReturn.length;
if (_bCount > 0 || _pCount > 0) {
onStatus(`Vincoli rilevati: ${_bCount > 0 ? _bCount + ' bloccante/i' : ''}${_bCount > 0 && _pCount > 0 ? ', ' : ''}${_pCount > 0 ? _pCount + ' irreversibile/i' : ''}`);
}
}
const constrainedGoal = _constraints.constraintHint
? lastUserMsg + '\n\n[VINCOLI DA RISPETTARE]\n' + _constraints.constraintHint
: lastUserMsg;
return { constrainedGoal };
}