diff --git a/utile/context_watch.ps1 b/utile/context_watch.ps1 index ca75f82..de93c8b 100644 --- a/utile/context_watch.ps1 +++ b/utile/context_watch.ps1 @@ -6,6 +6,9 @@ # Iese cu 2 si scrie pe stderr cand contextul depaseste pragul (asa ajunge mesajul la agent). # -OSinguraData: emite o singura data per prag per sesiune (marcaj in %TEMP%). Necesar pe PostToolUse, # altfel mesajul s-ar repeta la fiecare apel de tool si ar deveni zgomot ignorat. +# -StareFile : la pragul de avertisment/max, garanteaza ca fisierul exista si are un antet +# datat pe primul rand (""), +# inlocuit la fiecare rulare, nu acumulat. Restul continutului (scris de model) ramane neatins. [CmdletBinding()] param( [string]$TranscriptPath, @@ -13,9 +16,25 @@ param( [int]$PragMax = 275000, [switch]$Intotdeauna, [switch]$Stdout, # UserPromptSubmit: mesajul se scrie pe stdout si se iese cu 0 - [switch]$OSinguraData # PostToolUse: o singura alerta per prag atins, nu la fiecare tool + [switch]$OSinguraData, # PostToolUse: o singura alerta per prag atins, nu la fiecare tool + [string]$StareFile # optional: fisier de stare cu antet datat, actualizat la prag atins ) +function Scrie-AntetStare([string]$cale, [int]$tokeni, [string]$nivel) { + $antet = "" + if (Test-Path $cale) { + $continut = Get-Content -Path $cale -Encoding UTF8 + if ($continut.Count -gt 0 -and $continut[0] -match '^