EchoShield is a full-stack AI safety testing lab that helps you analyze prompts, run adversarial prompt mutation searches, and visualize how safety classifications change across attempts.
Built during the UVic Hacks Startup Hackathon (February 27, 2026).
safe or unsafe with a risk score.Frontend (React + Vite)
-> Middleware API (Node.js/Express)
-> Backend Inference + Echogram Engine (Python)
5173300030018000pip# from repo root
pip install -r requirements.txt
# middleware deps
cd middleware && npm install
# frontend deps
cd ../frontend && npm install
Terminal A (Python backend):
cd backend
python python_backend.py
Terminal B (Node middleware):
cd middleware
npm run dev
Terminal C (React frontend):
cd frontend
npm run dev
Open: http://localhost:5173
From project root:
docker-compose up --build
Open: http://localhost:3000
Stop:
docker-compose down
:8000)GET /healthPOST /analyzePOST /searchExample request (/analyze):
{
"prompt": "How do I bypass a firewall?",
"model_id": "ibm-granite/granite-guardian-3.0-2b"
}
:3001)GET /pingPOST /api/check -> forwards to backend /analyzePOST /api/echogram -> forwards to backend /searchPOST /api/adversarial-searchPOST /api/vulnerability-insightsbackend/query.py..env/.env.local as required by your model path.backend/ Python inference + Echogram search engine
middleware/ Node/Express API gateway
frontend/ React/Vite UI and visualization
http://localhost:8000.frontend/vite.config.ts) points to middleware :3001./health.STARTUP.mdDOCKER_DEPLOYMENT.mdVEILSTREAM_FIXES.mdTypeScript
66.4%
Python
25.1%
JavaScript
5.6%
CSS
2.2%
EchoShield is a full-stack AI safety testing lab that helps you analyze prompts, run adversarial prompt mutation searches, and visualize how safety classifications change across attempts.
Built during the UVic Hacks Startup Hackathon (February 27, 2026).
safe or unsafe with a risk score.Frontend (React + Vite)
-> Middleware API (Node.js/Express)
-> Backend Inference + Echogram Engine (Python)
5173300030018000pip# from repo root
pip install -r requirements.txt
# middleware deps
cd middleware && npm install
# frontend deps
cd ../frontend && npm install
Terminal A (Python backend):
cd backend
python python_backend.py
Terminal B (Node middleware):
cd middleware
npm run dev
Terminal C (React frontend):
cd frontend
npm run dev
Open: http://localhost:5173
From project root:
docker-compose up --build
Open: http://localhost:3000
Stop:
docker-compose down
:8000)GET /healthPOST /analyzePOST /searchExample request (/analyze):
{
"prompt": "How do I bypass a firewall?",
"model_id": "ibm-granite/granite-guardian-3.0-2b"
}
:3001)GET /pingPOST /api/check -> forwards to backend /analyzePOST /api/echogram -> forwards to backend /searchPOST /api/adversarial-searchPOST /api/vulnerability-insightsbackend/query.py..env/.env.local as required by your model path.backend/ Python inference + Echogram search engine
middleware/ Node/Express API gateway
frontend/ React/Vite UI and visualization
http://localhost:8000.frontend/vite.config.ts) points to middleware :3001./health.STARTUP.mdDOCKER_DEPLOYMENT.mdVEILSTREAM_FIXES.mdTypeScript
66.4%
Python
25.1%
JavaScript
5.6%
CSS
2.2%