mirror of
https://github.com/anotherhadi/iknowyou.git
synced 2026-04-11 16:37:25 +02:00
37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
# 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
|
|
```
|