diff --git a/src/fgai/dashboard.py b/src/fgai/dashboard.py
index e373603..03d7863 100644
--- a/src/fgai/dashboard.py
+++ b/src/fgai/dashboard.py
@@ -70,7 +70,7 @@ HTML = """
AI Assessment
LLM assessment disabled.
- Related Activity Across Sources
+ Field Baseline Deviations
Related Activity Across Sources
@@ -148,6 +148,10 @@ async function refresh() {
]);
const reputationRows = Object.entries(data.reputation || {}).map(([ip, intel]) => ({ip, ...intel}));
const relatedRows = (data.cross_source_correlations || []).flatMap(correlation => (correlation.samples || []).map(sample => ({source_ip: correlation.source_ip, ...sample})));
+ const fieldRows = Object.entries(data.field_deviations || {}).flatMap(([entity, deviations]) => (deviations || []).map(item => ({entity, ...item})));
+ document.getElementById('fieldDeviations').innerHTML = table(fieldRows, [
+ {label:'Entity', key:'entity'}, {label:'Stream', key:'stream_id'}, {label:'Field', key:'field'}, {label:'Score', key:'score'}, {label:'Evidence', key:'reason'}
+ ]);
document.getElementById('relatedActivity').innerHTML = table(relatedRows, [
{label:'Source IP', key:'source_ip'}, {label:'Stream', key:'stream'}, {label:'Time', key:'timestamp'},
{label:'Type', key:'type'}, {label:'Action', key:'action'}, {label:'Severity', key:'severity'},
diff --git a/src/fgai/llm.py b/src/fgai/llm.py
index e2972ed..f7010a2 100644
--- a/src/fgai/llm.py
+++ b/src/fgai/llm.py
@@ -60,6 +60,7 @@ def ollama_dashboard_assessment(analysis: dict[str, object], model: str | None =
"diagnostics": analysis.get("diagnostics", {}),
"capabilities": analysis.get("capabilities", {}),
"cross_source_correlations": analysis.get("cross_source_correlations", [])[:20],
+ "field_deviations": analysis.get("field_deviations", {}),
}
return ollama_summary(
[],