AI Scraping Stack — Project Assembly Session Started: 2026-04-04
| File | Created | Size | Source |
|---|---|---|---|
| skill_screenshot.md | 30.03 1:06 | 2.7KB | Original |
| api_vision.py | 30.03 1:06 | 12.2KB | Original |
| vision.py | 30.03 1:06 | 24.2KB | Original |
| test_*.py, conftest.py, debug.py | 30.03 6:03 | 60.8KB | Original |
| USAGE.md | 30.03 6:03 | 22.1KB | Original |
| api.py | 04.04 9:40 | 13.4KB | Original |
| index.html | 04.04 9:40 | 53.4KB | Original |
| files4.zip | 04.04 9:40 | 20.6KB | Archive |
| files5.zip | 04.04 9:40 | 24.9KB | Archive |
| files6vision.zip | 04.04 9:40 | 11.5KB | Archive |
| tests.zip | 04.04 9:40 | 23.5KB | Archive |
| Archive | Contents | Value |
|---|---|---|
| file1s.zip | providers.py, .env.example, requirements.txt, README.md | CRITICAL — ProviderRouter + 8 adapters |
| file2s.zip | api.py, index.html (backup) | Duplicate of existing |
| files.zip | stack.py, .env.example (old), requirements.txt (old), README.md (old) | IMPORTANT — MCP Server + 4-layer core |
Project essence: 6-layer web intelligence platform
- L1: Provider Router (10+ providers, cascade fallback)
- L2: Synthesis Engine (multi-agent: N URLs → website)
- L3: Intelligence (LLM Router + Vision VLM)
- L4: API Gateway (FastAPI, all routes unified)
- L5: Dashboard (index.html)
- L6: MCP Server (AI agent tools)
Self-critique:
- Didn't copy files immediately (asked permission instead)
- Superficial initial archive analysis
- No project structure created
- No consolidated AGENT.md/CONTEXT_MAP.md
- Didn't identify module dependencies
- Didn't assess code quality (closure bug in providers.py)
- Didn't check version compatibility
- ✅ providers.py (from file1s.zip) — 23.7KB
- ✅ stack.py (from files.zip) — 16.8KB
- ✅ .env.example (from file1s.zip) — 1.6KB
- ✅ requirements.txt (from file1s.zip) — 578B
- ✅ src/
- ✅ skills/
- ✅ data/screenshots/
- ✅ docs/
- ✅ src/init.py
- ✅ src/config.py — Pydantic Settings, all env vars
- ✅ src/models.py — All Pydantic schemas (ScrapeRequest, ScrapeResponse, SynthesizeRequest, etc.)
- ✅ src/llm.py — LLMRouter (Ollama + OpenRouter, smart routing)
- ✅ src/scraper.py — ScraperService (orchestrates ProviderRouter + LLM)
- ✅ src/storage.py — SQLite history + JSON model registry
- ✅ src/screenshot.py — ScreenshotService + SiteMapService (from files5.zip)
- ✅ src/vision.py — VisionService + VisualAuditPipeline + ModelRegistry (from root vision.py)
- ✅ src/synthesizer.py — WebSynthesizer (from files4.zip, imports fixed)
- ✅ src/sitemap.py — Re-export of SiteMapService
- ✅ api.py — ALL routes in one file (scrape, synthesize, screenshot, vision, models, history, stats)
- ✅ Integrated with src/ services (ScraperService, LLMRouter, Storage)
- ✅ Config persisted to JSON registry (not global dict)
- ✅ skills/skill_scrape.md
- ✅ skills/skill_synthesize.md
- ✅ skills/skill_llm.md
- ✅ skills/skill_providers.md
- ✅ skills/skill_screenshot.md (already existed)
- ✅ CONTEXT_MAP.md — Full system map, data flows, API map
- ✅ AGENT.md — AI agent context file
- ✅ ROADMAP.md — Development roadmap with status
- ✅ README.md — 5 languages (EN, RU, ZH, ES, FR)
- ✅ CHAT_HISTORY.md — This file
scrapling/
├── src/
│ ├── __init__.py
│ ├── config.py ✅ Pydantic Settings
│ ├── models.py ✅ All schemas
│ ├── llm.py ✅ LLM Router
│ ├── scraper.py ✅ Scraper Service
│ ├── storage.py ✅ SQLite + JSON
│ ├── screenshot.py ✅ Screenshot + Sitemap
│ ├── vision.py ✅ Vision + ModelRegistry
│ ├── synthesizer.py ✅ Multi-agent synthesis
│ └── sitemap.py ✅ Re-export
├── providers.py ✅ 8 adapters + Router
├── api.py ✅ ALL routes unified
├── stack.py ✅ MCP Server + demo
├── index.html ✅ Dashboard
├── .env.example ✅ All env vars
├── requirements.txt ✅ Dependencies
├── USAGE.md ✅ User guide
├── debug.py ✅ Health check
├── conftest.py ✅ Test fixtures
├── test_providers.py ✅ Provider tests
├── test_storage.py ✅ Storage tests
├── test_screenshot.py ✅ Screenshot tests
├── test_vision.py ✅ Vision tests
├── CONTEXT_MAP.md ✅ System map
├── AGENT.md ✅ AI context
├── ROADMAP.md ✅ Roadmap
├── README.md ✅ 5 languages
├── CHAT_HISTORY.md ✅ This file
├── skills/
│ ├── skill_scrape.md ✅
│ ├── skill_synthesize.md ✅
│ ├── skill_llm.md ✅
│ ├── skill_providers.md ✅
│ └── skill_screenshot.md ✅
└── data/
└── screenshots/ ✅ Output dir
- Fix closure bug in providers.py
_build_chain✅ - Create Makefile ✅
- Create pyproject.toml ✅
- Create Dockerfile + docker-compose.yml ✅
- Create .gitignore ✅
- Update test imports to use src/ modules ✅
- Remove root-level vision.py (duplicate) ✅
- Remove api_vision.py (merged into api.py) ✅
- Remove temp_*/ directories and zip archives ✅
- Update index.html → redirect to landing.html ✅
- Fix debug.py imports ✅
- Fix stack.py top-level imports ✅
- Fix conftest.py Settings ✅
- Create integration tests ✅
- Create GitHub Actions CI ✅
- Update AGENT.md ✅
- Move all test files to tests/ directory ✅
- Git init + initial commit ✅
- httpx connection pooling
- Production CORS restrictions
- Rate limiting
- API key authentication
- Production CORS restrictions
- Rate limiting
- API key authentication
- ✅ Removed all temp_*/ directories (7 dirs)
- ✅ Removed all zip archives (7 files)
- ✅ Removed duplicate vision.py (root)
- ✅ Removed duplicate api_vision.py (merged into api.py)
- ✅ Updated requirements.txt (added pydantic-settings, pytest, pytest-asyncio, pytest-cov)
- ✅ Updated landing.html:
- API_URL made configurable (empty = same domain)
- resolveUrl() helper for flexible deployment
- getFriendlyError() with user-friendly messages
- Schema.org placeholders replaced
- rel="noopener noreferrer" on external links
- ✅ index.html → redirect to landing.html
- ✅ debug.py: removed hf_token, custom_models_path references
- ✅ stack.py: try/except for scrapling, ollama, openai imports
- ✅ conftest.py: removed hf_token, custom_models_path from Settings
- ✅ Created tests/test_api.py (integration tests)
- ✅ Created .github/workflows/ci.yml (lint + test + build)
- ✅ Updated AGENT.md (file map, tech debt)
- ✅ All Python files pass syntax check
scrapling/
├── src/ (9 files)
├── tests/ (6 files)
├── skills/ (5 files)
├── .github/workflows/ (1 file)
├── api.py (unified FastAPI)
├── providers.py (8 adapters + Router)
├── stack.py (MCP + demo)
├── landing.html (SEO frontend)
├── index.html (redirect)
├── debug.py (health check)
├── conftest.py (test fixtures)
├── .env.example (env vars)
├── requirements.txt (dependencies)
├── pyproject.toml (packaging)
├── Makefile (dev commands)
├── Dockerfile (docker image)
├── docker-compose.yml (API + Ollama)
├── .gitignore (git rules)
├── README.md (5 languages)
├── AGENT.md (AI context)
├── CONTEXT_MAP.md (system map)
├── ROADMAP.md (roadmap)
├── USAGE.md (user guide)
├── CHAT_HISTORY.md (this file)
├── DEPLOY_RAILWAY.md (Railway deploy)
├── DEPLOY_TIMEWEB.md (Timeweb deploy)
└── DEPLOY_SHARED_HOSTING.md (shared hosting deploy)
Last updated: 2026-04-04 19:40 Git commit: abe5a76 — Initial commit: AI Scraping Stack v0.4 44 files, 9990 insertions