Files
iknowyou/.github/docs/how-it-works.md
2026-04-06 15:12:34 +02:00

1.4 KiB

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