iHAIV is a human-AI teaming visual framework for analyzing temporal multivariate networks.
This repository contains no dataset, although testers are encouraged to generate synthetic demo inputs locally, or point the pipeline at self-hosted data.
# generate_sample_metrics creates synthetic data.
python3 pipeline/generate_sample_metrics.py
# builds browser/server data pack
python3 pipeline/build_graph.py \
--metrics examples/sample/metrics.json \
--detector examples/sample/detector.json \
--out viz/public/data \
--top-n-jobs 40
# start frontend
cd viz && npm install && npm run dev
# server for ai interactions
cp .env.example .env # then edit .env
cd server && pip install -r requirements.txt
python3 -m uvicorn app:app --reload --port 8000Open the Vite URL (usually http://localhost:5173). The UI and server both read viz/public/data.
build_graph.py expects a metrics JSON with:
- Top-level:
cluster,description,start,end,interval,timestamps,nodes,node_ips,data, … data.CPU_Usage.series[hostname][hour](and power / memory / temperature)data.Jobs_Info.jobs[](job_id,user_name,nodes, times, …)data.Nodes_State.entries[],data.NodeJobs_Correlation.snapshots[](each snapshot has paralleljobsandcpusarrays)
Run python3 pipeline/generate_sample_metrics.py once and inspect the emitted files for a full worked example of the schema.
Detector findings are a JSON array:
[{
"ips": ["10.0.0.1"],
"tStartUs": 1767225600000000,
"tEndUs": 1767229200000000,
"attackType": "internal_crypto_idle",
"responder": "10.0.0.1",
"users": [],
"jobs": [],
"reason": "...",
"evidence": "...",
"confidence": 0.9,
"caseFile": []
}]Then:
python3 pipeline/build_graph.py \
--metrics /path/to/your_metrics.json \
--detector /path/to/your_detector.json \
--out viz/public/data \
--top-n-jobs 600| Variable | Where | Purpose |
|---|---|---|
ANTHROPIC_API_KEY |
repo-root .env |
Chat agent |
VITE_API_BASE |
Vite env | Override API URL (default http://localhost:8000) |
CHART_MCP_URL |
.env |
MCP route for chart plugins. |