Spaces:
Sleeping
Sleeping
| // 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 }; | |
| } | |