feat(0035e): manifest auto_group_threshold override + propagacion a Python

Manifest YAML puede declarar 'auto_group_threshold: <int>' a nivel
top-level. enrichers.cpp lo parsea y lo guarda en EnricherSpec.
jobs.cpp lo inyecta como campo opcional 'auto_group_threshold' en el
JSON stdin del subprocess. Los enrichers Python que crean Groups
(web_search, split_words, split_sentences, extract_iocs_text) leen el
campo y, si viene > 0, lo usan en lugar de su DEFAULT_GROUP_THRESHOLD.
Helper _coerce_threshold tolera int / str / None / 0 cayendo al default.
This commit is contained in:
2026-05-04 14:20:52 +02:00
parent 65a14749f3
commit 52495af779
7 changed files with 92 additions and 10 deletions
+8
View File
@@ -48,6 +48,14 @@ struct EnricherSpec {
// Parametros editables por el usuario antes de lanzar el job.
std::vector<EnricherParam> params;
// Threshold opcional de auto-grouping (issue 0035e). Si > 0, el
// enricher debe respetarlo al decidir cuando crear un Group con sus
// resultados (vs dejarlos sueltos). Cuando es 0 / no declarado, el
// enricher usa su default interno (DEFAULT_GROUP_THRESHOLD = 50).
// Se propaga al runtime Python via campo `auto_group_threshold` del
// JSON de stdin que jobs.cpp construye.
int auto_group_threshold = 0;
// True si lang != "" y no se pudo resolver el ejecutable
// correspondiente (ej: enricher Go sin compilar). El loader deja
// el spec en el registro pero marcado como deshabilitado para