# How it Works ``` Browser → POST /api/searches (target, type, profile) ↓ Backend filters tools by: · input type compatibility · profile enabled/disabled rules · required config fields (skips if missing) ↓ All eligible tools run in parallel goroutines ↓ Browser polls GET /api/searches/{id} Results render progressively as tools complete ``` Each tool is a Go struct implementing a small interface: it declares what input types it accepts, what config it needs, and how to run. The engine handles the rest. ## Architecture ``` iknowyou/ ├── back/ # Go backend │ ├── cmd/ │ │ ├── server/ # Main HTTP server │ │ └── gendocs/ # Doc generator │ ├── config/ # YAML config models & builtin profiles │ └── internal/ │ ├── api/ # Chi router + handlers │ ├── search/ # Parallel search orchestration │ └── tools/ # Tool interface + implementations └── front/ # Astro + Svelte frontend └── src/ ├── pages/ # / · /tools · /profiles · /search/[id] · /cheatsheets · /help └── components/ # Svelte interactive components ```