Дерево репозитория¶
Страница описывает каждый version-controlled файл. Наведите на файл в дереве, чтобы увидеть назначение; ссылка открывает его в GitHub. Нажмите кнопку, чтобы развернуть вложенные каталоги.
.dockerignore
.env.example
.flake8
.gitignore
CHANGELOG.md
Dockerfile
LICENSE
Makefile
README.md
SECURITY.md
alembic.ini
docker-compose.test.yml
docker-compose.yml
mkdocs.yml
pyproject.toml
requirements-dev.lock
requirements-docs.lock
requirements.lock
docs/
algorithm.md api-examples.md architecture.md code-map.md contributing-docs.md decisions.md getting-started.md glossary.md index.md operations.md progress.md reading-guide.md testing.md traceability.md tradeoffs.mddiagrams/
README.md architecture.dot architecture.mmd architecture.png ask-sequence.mmd crawl-sequence.mmd data-model.dot data-model.mmd data-model.png pipeline-sequence.dot pipeline-sequence.pngjavascripts/
docs.jsoperations/
troubleshooting.mdoverrides/
partials/
source.htmlstylesheets/
extra.cssexamples/
demo-requests.sh fixture-server-contract.mdsrc/
Все файлы¶
| Файл | Слой | Назначение | Строк | Байт |
|---|---|---|---|---|
| .dockerignore | project | Исключает local/secret/build artifacts из Docker build context. | 9 | 101 |
| .env.example | project | Безопасный шаблон всех environment settings для Compose. | 30 | 831 |
| .flake8 | project | Настраивает Flake8 и согласует длину строки с Black. | 6 | 161 |
| .github/PULL_REQUEST_TEMPLATE.md | automation | Checklist содержательного PR, тестов, безопасности и документации. | 42 | 621 |
| .github/workflows/ci.yml | automation | GitHub Actions workflow для автоматической проверки или deployment. | 107 | 3810 |
| .github/workflows/docs.yml | automation | GitHub Actions workflow для автоматической проверки или deployment. | 58 | 1658 |
| .gitignore | project | Исключает secrets, caches, local data, build output и IDE state. | 37 | 383 |
| alembic.ini | project | Конфигурация Alembic CLI и logging migration environment. | 31 | 624 |
| CHANGELOG.md | project | Хронология пользовательски значимых изменений release. | 32 | 1728 |
| docker-compose.test.yml | project | Изолированные PostgreSQL/pgvector и NATS для integration/E2E. | 25 | 650 |
| docker-compose.yml | project | Runtime topology: БД, broker, roles и optional Ollama profile. | 120 | 2786 |
| Dockerfile | project | Один non-root Python image для API, crawler, indexer и migrations. | 25 | 681 |
| docs/algorithm.md | documentation | Статья документации: Алгоритмы TenderLens. | 167 | 7260 |
| docs/api-examples.md | documentation | Статья документации: API TenderLens. | 124 | 2584 |
| docs/architecture.md | documentation | Статья документации: Обзор архитектуры. | 99 | 6892 |
| docs/architecture/data-and-contracts.md | documentation | Статья документации: Данные и контракты. | 163 | 7220 |
| docs/architecture/runtime-flows.md | documentation | Статья документации: Потоки данных. | 151 | 6804 |
| docs/architecture/security-and-resilience.md | documentation | Статья документации: Безопасность и отказоустойчивость. | 87 | 6258 |
| docs/assets/design/docs-portal-desktop.png | documentation | Согласованный desktop/mobile визуальный концепт документационного портала. | — | 1279326 |
| docs/assets/design/docs-portal-mobile.png | documentation | Согласованный desktop/mobile визуальный концепт документационного портала. | — | 1287262 |
| docs/assets/images/favicon.svg | documentation | Локальный brand asset документационного сайта. | 5 | 255 |
| docs/assets/images/logo.svg | documentation | Локальный brand asset документационного сайта. | 12 | 584 |
| docs/code-map.md | documentation | Статья документации: Как пользоваться картой кода. | 55 | 3270 |
| docs/contributing-docs.md | documentation | Статья документации: Поддержка документации. | 70 | 3824 |
| docs/decisions.md | documentation | Статья документации: Ключевые решения. | 37 | 1690 |
| docs/diagrams/architecture.dot | documentation | Редактируемый исходник архитектурной диаграммы. | 35 | 1997 |
| docs/diagrams/architecture.mmd | documentation | Редактируемый исходник архитектурной диаграммы. | 21 | 818 |
| docs/diagrams/architecture.png | documentation | Отрендеренная архитектурная иллюстрация для Markdown/README. | — | 158080 |
| docs/diagrams/ask-sequence.mmd | documentation | Редактируемый исходник архитектурной диаграммы. | 25 | 786 |
| docs/diagrams/crawl-sequence.mmd | documentation | Редактируемый исходник архитектурной диаграммы. | 27 | 906 |
| docs/diagrams/data-model.dot | documentation | Редактируемый исходник архитектурной диаграммы. | 16 | 1128 |
| docs/diagrams/data-model.mmd | documentation | Редактируемый исходник архитектурной диаграммы. | 50 | 1121 |
| docs/diagrams/data-model.png | documentation | Отрендеренная архитектурная иллюстрация для Markdown/README. | — | 88197 |
| docs/diagrams/pipeline-sequence.dot | documentation | Редактируемый исходник архитектурной диаграммы. | 17 | 1040 |
| docs/diagrams/pipeline-sequence.png | documentation | Отрендеренная архитектурная иллюстрация для Markdown/README. | — | 65816 |
| docs/diagrams/README.md | documentation | Редактируемый исходник архитектурной диаграммы. | 9 | 917 |
| docs/getting-started.md | documentation | Статья документации: Первые 10 минут. | 120 | 5204 |
| docs/glossary.md | documentation | Статья документации: Глоссарий. | 276 | 19491 |
| docs/index.md | documentation | Статья документации: Как устроен TenderLens. | 72 | 5899 |
| docs/javascripts/docs.js | documentation | Добавляет Ctrl+K и управление раскрытием code tree. | 21 | 816 |
| docs/modules/api-and-rag.md | documentation | Статья документации: Search, RAG и API. | 83 | 6265 |
| docs/modules/core.md | documentation | Статья документации: Конфигурация и домен. | 68 | 6352 |
| docs/modules/crawler.md | documentation | Статья документации: Crawler. | 76 | 7309 |
| docs/modules/indexer.md | documentation | Статья документации: Indexer. | 72 | 5372 |
| docs/modules/infrastructure.md | documentation | Статья документации: Инфраструктура. | 79 | 4443 |
| docs/modules/web-ui.md | documentation | Статья документации: Web UI. | 76 | 4276 |
| docs/operations.md | documentation | Статья документации: Запуск и реальная LLM. | 250 | 11029 |
| docs/operations/troubleshooting.md | documentation | Статья документации: Диагностика. | 154 | 8162 |
| docs/overrides/partials/source.html | documentation | Рисует GitHub link без фонового GitHub API запроса. | 12 | 405 |
| docs/progress.md | documentation | Статья документации: Состояние проекта. | 29 | 1610 |
| docs/reading-guide.md | documentation | Статья документации: Как читать документацию. | 59 | 3850 |
| docs/reference/frontend-api.md | documentation | Статья документации: Frontend: DOM, JS и CSS. | — | 0 |
| docs/reference/python-api.md | documentation | Статья документации: Python: классы и функции. | — | 0 |
| docs/reference/repository-tree.md | documentation | Статья документации: Дерево репозитория. | — | 0 |
| docs/reference/test-catalog.md | documentation | Статья документации: Каталог тестов. | — | 0 |
| docs/stylesheets/extra.css | documentation | Design tokens, layout и responsive стили документационного портала. | 415 | 7295 |
| docs/testing.md | documentation | Статья документации: Тестирование. | 79 | 3197 |
| docs/traceability.md | documentation | Статья документации: Соответствие тестовому заданию. | 27 | 2761 |
| docs/tradeoffs.md | documentation | Статья документации: Архитектурные компромиссы. | 89 | 4255 |
| docs/ui/README.md | documentation | Статья документации: Экраны работающего UI. | 154 | 9826 |
| docs/ui/screenshots/01-home-desktop.png | documentation | Реальный desktop-снимок начального состояния работающего UI. | — | 98265 |
| docs/ui/screenshots/02-loading-desktop.png | documentation | Реальный desktop-снимок состояния выполнения Search-запроса. | — | 100539 |
| docs/ui/screenshots/03-search-results-desktop.png | documentation | Реальный desktop-снимок пяти результатов векторного поиска. | — | 252827 |
| docs/ui/screenshots/04-ask-answer-desktop.png | documentation | Реальный desktop-снимок Ask-ответа локальной Ollama и источников. | — | 279894 |
| docs/ui/screenshots/05-validation-error-desktop.png | documentation | Реальный desktop-снимок ошибки формы без API-ключа. | — | 105742 |
| docs/ui/screenshots/06-search-results-mobile.png | documentation | Реальный mobile-снимок результатов Search при ширине 390 px. | — | 221333 |
| docs/ui/screenshots/07-ask-answer-mobile.png | documentation | Реальный mobile-снимок Ask-ответа и источников при ширине 390 px. | — | 246597 |
| docs/ui/screenshots/08-home-mobile.png | documentation | Реальный mobile-снимок начального responsive-состояния UI. | — | 72373 |
| docs/ui/search-wireframe-mobile.png | documentation | Исходный мобильный wireframe пользовательского Search UI. | — | 55030 |
| docs/ui/search-wireframe.png | documentation | Исходный desktop wireframe пользовательского Search UI. | — | 126053 |
| examples/api/ask-request.json | contract/example | Версионированный пример JSON HTTP-контракта. | 3 | 122 |
| examples/api/ask-response.json | contract/example | Версионированный пример JSON HTTP-контракта. | 12 | 655 |
| examples/api/error-429.json | contract/example | Версионированный пример JSON HTTP-контракта. | 8 | 198 |
| examples/api/search-request.json | contract/example | Версионированный пример JSON HTTP-контракта. | 4 | 127 |
| examples/api/search-response.json | contract/example | Версионированный пример JSON HTTP-контракта. | 17 | 658 |
| examples/demo-requests.sh | contract/example | Короткий shell-сценарий Search/Ask/rate-limit демонстрации. | 17 | 487 |
| examples/fixture-server-contract.md | contract/example | HTTP contract локального fixture server, используемого E2E. | 30 | 1032 |
| examples/fixtures/contracts_finder_ocds.json | contract/example | Контролируемый fixture contracts_finder_ocds.json для adapters/extraction/E2E. |
50 | 1477 |
| examples/fixtures/normalized_tender.json | contract/example | Контролируемый fixture normalized_tender.json для adapters/extraction/E2E. |
25 | 789 |
| examples/fixtures/README.md | contract/example | Описание происхождения и роли offline fixtures. | 13 | 1294 |
| examples/fixtures/sample_notice.html | contract/example | Контролируемый fixture sample_notice.html для adapters/extraction/E2E. |
1 | 414 |
| examples/fixtures/sample_notice.txt | contract/example | Контролируемый fixture sample_notice.txt для adapters/extraction/E2E. |
1 | 139 |
| examples/fixtures/sample_notice.xml | contract/example | Контролируемый fixture sample_notice.xml для adapters/extraction/E2E. |
8 | 403 |
| examples/fixtures/sample_tender.pdf | contract/example | Контролируемый fixture sample_tender.pdf для adapters/extraction/E2E. |
— | 50804 |
| examples/fixtures/ted_search_response.json | contract/example | Контролируемый fixture ted_search_response.json для adapters/extraction/E2E. |
27 | 1076 |
| examples/fixtures/tender_changed_event.json | contract/example | Контролируемый fixture tender_changed_event.json для adapters/extraction/E2E. |
7 | 262 |
| examples/fixtures/unsupported.bin | contract/example | Контролируемый fixture unsupported.bin для adapters/extraction/E2E. |
8 | 64 |
| examples/prompts/rag-system.txt | contract/example | Reference prompt для сравнения grounded RAG поведения. | 9 | 960 |
| examples/prompts/rag-user-template.txt | contract/example | Reference prompt для сравнения grounded RAG поведения. | 11 | 224 |
| examples/sql/exact-cosine-search.sql | contract/example | Поясняющий SQL-пример ключевого алгоритма. | 18 | 595 |
| examples/sql/rate-limit-pseudocode.sql | contract/example | Поясняющий SQL-пример ключевого алгоритма. | 16 | 651 |
| LICENSE | project | MIT license, обязательная часть публичной поставки. | 21 | 1080 |
| Makefile | project | Короткие команды install, quality, tests, migrations и demos. | 57 | 1320 |
| migrations/env.py | database | Подключает async SQLAlchemy engine и metadata к Alembic runtime. | 59 | 1625 |
| migrations/script.py.mako | database | Шаблон новых Alembic revision files. | 24 | 593 |
| migrations/versions/0001_initial_schema.py | database | Создание минимальной схемы TenderLens. | 197 | 8482 |
| mkdocs.yml | project | Структура, тема, поиск, extensions и navigation документационного сайта. | 134 | 4372 |
| pyproject.toml | project | Package metadata, entrypoint и конфигурация Black/Pytest/MyPy. | 78 | 1946 |
| README.md | project | Краткая публичная входная страница repository. | 227 | 9990 |
| requirements-dev.lock | project | Pinned quality, typing и test dependencies. | 7 | 117 |
| requirements-docs.lock | project | Pinned generator/theme stack документации. | 1 | 23 |
| requirements.lock | project | Pinned runtime dependencies Docker image. | 12 | 214 |
| schemas/tender-changed-v1.schema.json | contract/example | Checked-in JSON Schema, генерируемая из Pydantic contract. | 39 | 852 |
| schemas/tender-record-v1.schema.json | contract/example | Checked-in JSON Schema, генерируемая из Pydantic contract. | 195 | 3789 |
| scripts/check_docs.py | automation | Validate generated docs, exact GitHub line links, and built search content. | 145 | 4922 |
| scripts/demo_fake.sh | automation | Служебный automation script для demo, schema, docs или live smoke. | 73 | 2599 |
| scripts/export_schemas.py | automation | Экспортирует JSON Schema из Pydantic-контрактов без ручного дублирования. | 68 | 2116 |
| scripts/generate_code_reference.py | automation | Generate searchable repository, symbol, frontend, and test reference pages. | 645 | 30300 |
| scripts/live_smoke.sh | automation | Служебный automation script для demo, schema, docs или live smoke. | 13 | 440 |
| SECURITY.md | project | Security policy, threat boundaries и disclosure instructions. | 17 | 795 |
| src/tender_lens/init.py | application | TenderLens: мониторинг закупок и локальный RAG. | 3 | 104 |
| src/tender_lens/ai.py | application | Минимальные providers для embeddings и grounded generation. | 165 | 6725 |
| src/tender_lens/api/init.py | application | FastAPI Gateway TenderLens. | 1 | 34 |
| src/tender_lens/api/auth.py | application | Проверка X-API-Key без сохранения открытого секрета. | 59 | 2018 |
| src/tender_lens/api/main.py | application | App factory, lifecycle, middleware, errors и статический интерфейс. | 149 | 5498 |
| src/tender_lens/api/rate_limit.py | application | Fixed UTC-minute limiter в одной атомарной PostgreSQL-транзакции. | 86 | 2826 |
| src/tender_lens/api/routes.py | application | Тонкие HTTP routes: валидация, зависимости и вызов сервисов. | 116 | 3844 |
| src/tender_lens/cli.py | application | Служебные команды: API-ключи, demo seed и проверка зависимостей. | 260 | 9304 |
| src/tender_lens/config.py | application | Типизированная конфигурация приложения без побочных эффектов. | 94 | 3871 |
| src/tender_lens/crawler/init.py | application | Асинхронный сбор и нормализация открытых закупок. | 1 | 99 |
| src/tender_lens/crawler/main.py | application | CLI entrypoint роли crawler. | 154 | 5917 |
| src/tender_lens/crawler/base.py | application | Общий контракт источника и безопасная HTTP-политика crawler. | 281 | 11843 |
| src/tender_lens/crawler/contracts_finder.py | application | Адаптер UK Contracts Finder OCDS Search. | 140 | 5414 |
| src/tender_lens/crawler/fixture.py | application | Одноразовый fixture-адаптер для локального demo и e2e. | 33 | 1356 |
| src/tender_lens/crawler/service.py | application | Оркестрация crawl: upsert, вложения, cursor и NATS event. | 301 | 12312 |
| src/tender_lens/crawler/ted.py | application | Адаптер официального TED Search API v3. | 189 | 6652 |
| src/tender_lens/db.py | application | Создание SQLAlchemy engine/session только по явному запросу. | 40 | 1058 |
| src/tender_lens/errors.py | application | Типизированные ошибки, переводимые в стабильные HTTP-ответы и логи. | 44 | 1410 |
| src/tender_lens/hashing.py | application | Детерминированные hash-функции для закупок, файлов и чанков. | 87 | 2578 |
| src/tender_lens/indexer/init.py | application | Фоновая индексация закупок и вложений. | 1 | 78 |
| src/tender_lens/indexer/main.py | application | CLI entrypoint durable INDEXER consumer. | 92 | 3433 |
| src/tender_lens/indexer/chunk.py | application | Детерминированный paragraph-first chunking без отдельного фреймворка. | 81 | 2694 |
| src/tender_lens/indexer/extract.py | application | Безопасное извлечение текста из ограниченного набора форматов. | 162 | 6406 |
| src/tender_lens/indexer/service.py | application | Идемпотентная обработка tender.changed.v1 и атомарная замена чанков. | 162 | 6899 |
| src/tender_lens/logging.py | application | Минимальное структурированное логирование без секретов. | 50 | 1698 |
| src/tender_lens/models.py | application | Пять SQLAlchemy-моделей, утверждённых спецификацией MVP. | 211 | 9194 |
| src/tender_lens/nats.py | application | Узкая интеграция NATS JetStream для одного события индексации. | 162 | 6098 |
| src/tender_lens/schemas.py | application | Pydantic-контракты источников, NATS и HTTP API. | 200 | 5927 |
| src/tender_lens/search.py | application | Exact cosine retrieval и grounded RAG поверх PostgreSQL/pgvector. | 112 | 4190 |
| src/tender_lens/storage.py | application | Безопасная потоковая загрузка вложений в локальный volume. | 99 | 3328 |
| src/tender_lens/web/app.js | application | Browser state, безопасный DOM rendering и Search/Ask fetch flow. | 172 | 6511 |
| src/tender_lens/web/index.html | application | Семантическая разметка статического TenderLens UI. | 90 | 4828 |
| src/tender_lens/web/styles.css | application | Design tokens, desktop/mobile layout и UI component styles. | 79 | 6953 |
| tests/api/test_api.py | test | In-process FastAPI contract tests с dependency injection. | 353 | 11273 |
| tests/conftest.py | test | Общие pytest fixtures project root и example fixture directory. | 15 | 316 |
| tests/e2e/test_fixture_pipeline.py | test | Полный fixture pipeline от crawler до Search/Ask. | 265 | 8882 |
| tests/integration/conftest.py | test | Integration tests с настоящими PostgreSQL/pgvector или NATS. | 56 | 1786 |
| tests/integration/test_database_pipeline.py | test | Integration tests с настоящими PostgreSQL/pgvector или NATS. | 437 | 14868 |
| tests/integration/test_nats.py | test | Integration tests с настоящими PostgreSQL/pgvector или NATS. | 45 | 1586 |
| tests/unit/test_adapters.py | test | Unit tests изолированной логики без real infrastructure. | 307 | 10501 |
| tests/unit/test_ai_and_search.py | test | Unit tests изолированной логики без real infrastructure. | 119 | 4029 |
| tests/unit/test_auth_and_rate_limit.py | test | Unit tests изолированной логики без real infrastructure. | 86 | 2895 |
| tests/unit/test_cli.py | test | Unit tests изолированной логики без real infrastructure. | 20 | 556 |
| tests/unit/test_extraction_and_chunking.py | test | Unit tests изолированной логики без real infrastructure. | 135 | 4605 |
| tests/unit/test_http_and_storage.py | test | Unit tests изолированной логики без real infrastructure. | 308 | 9962 |
| tests/unit/test_nats_message.py | test | Unit tests изолированной логики без real infrastructure. | 33 | 789 |
| tests/unit/test_project_contract.py | test | Unit tests изолированной логики без real infrastructure. | 141 | 4532 |
| tests/unit/test_schemas_and_hashing.py | test | Unit tests изолированной логики без real infrastructure. | 133 | 5000 |
Сгенерировано из git ls-files и локального source tree. Binary assets показывают «—» вместо числа строк.