Add the analysis role's execution path: a two-phase orchestration
(per-scenario diagnosis gathered in parallel, then a synthesis pass)
that reads the existing campaign report aggregation plus capped failure
samples, validates the LLM's JSON against the report schema, and strips
fabricated run/scenario references before persisting. Results upsert one
row per campaign (generating/completed/failed) with the model config
snapshot; GET/POST /api/campaigns/{id}/analysis expose the state machine,
guarding non-terminal campaigns and missing analysis models with 400s.
|
||
|---|---|---|
| .. | ||
| agents | ||
| channels | ||
| config | ||
| evaluation | ||
| model_protocols | ||
| scenarios | ||
| services | ||
| storage | ||
| utils | ||
| web | ||
| __init__.py | ||
| model_gateway.py | ||
| models.py | ||
| task_registry.py | ||
| version.py | ||