О проекте
Команда: Delphi
Кейс HackAlem.ai: Спецтрек — Казахтелеком
Стадия: Рабочий MVP
Задача кейса: Агент, сравнивающий документы оргструктуры до и после реорганизации
Суть
Помощник для проверки реорганизации: сравнивает комплекты документов оргструктуры «До/После», показывает переданные, потерянные и пересекающиеся обязанности со ссылками на исходные пункты. Есть ручная проверка находок и экспорт отчёта.
Как устроено
Парсеры DOCX, PDF, XLSX и Markdown режут документы на исходные блоки (в демо 966 блоков редакций 8 и 9). Ограниченный агент на OpenAI делает этапы extraction → structure → matching → missing → validation и связывает каждую находку с цитатами-доказательствами. Результаты, прогоны с чекпоинтами и решения рецензента хранятся в PostgreSQL через Alembic. Frontend на Next.js подключён через сгенерированный HeyAPI-клиент, есть очередь ручной проверки с пословным diff и переводом RU/KK/EN. Для типовых случаев (transfer, missing, overlap, conflict) собраны синтетические эталонные фикстуры.
Ключевые решения
- document block parsing
- clause matching
- evidence linking
- word-level diff
- run checkpoints
- human-in-the-loop review
- agent cost tracking
Особенности
Каждая находка привязана к исходному пункту документа. Очередь ручной проверки показывает пословную разницу между парными пунктами. Синтетические эталонные кейсы покрывают передачу, пропажу, пересечение и конфликт обязанностей. Отдельный модуль agent_costs считает стоимость вызовов LLM.
Стек
Python · FastAPI · PostgreSQL · Alembic · uv · Next.js · TypeScript · HeyAPI · Better Auth · Playwright · Docker Compose
Модели
OpenAI API (OPENAI_MODEL)
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-c49fe1b9-delphi.
README
README.mdDelphi
Помощник для проверки реорганизации: сравнивает документы «До / После», показывает изменения обязанностей и связывает выводы с исходными пунктами.
Статус: backend FastAPI/PostgreSQL подключён к frontend Next.js через сгенерированный HeyAPI-клиент и защищённый proxy. Реализованы вход/регистрация, история, загрузка комплектов, просмотр источников, экран результатов, ручная проверка, экспорт и уведомления; UI поддерживает RU/KK/EN. Миграции, заполнение БД, HTTP-сценарии, lint, typecheck и production build проверены. Прошли 10 Playwright-тестов и 10 тестов генератора отчёта; результаты AI пока проверены только через синтетические UI fixtures. Браузерный отчёт: 18 состояний страниц со скриншотами.
- Backend: структура, настройка и команды запуска
- Типизированный OpenAPI-контракт
- Контрольные синтетические примеры
- Начать с документации
- План реализации и приёмка
- Продукт и интерфейс
- Архитектура
- Проверенные изменения исходных документов
- Frontend: настройка и команды
Для локальной проверки из backend/, после установки зависимостей через uv sync --frozen:
uv run ruff check app scripts migrations tests
uv run pytest -q
uv run --no-sync python scripts/export_openapi.py
Эти offline-проверки не доказывают качество семантического сравнения. Демонстрационная пара — исходные DOCX редакций 8/9; в локальную БД загружены оба файла и 966 исходных блоков. Вход обеспечивает Better Auth в отдельной БД, рабочая область backend общая. Сканы без OCR и отсутствующие приложения остаются ограничениями.
Локальный UI: http://localhost:3000. Демо-вход: [email protected] / password123; остальные учётные записи и воспроизводимый запуск — в frontend/README.md. Для анализа и перевода нужны OPENAI_API_KEY и OPENAI_MODEL в backend; без них доступны история и подготовка документов, а UI показывает ограничение.
Правила для coding-агентов — в AGENTS.md.
Авторы коммитов
История коммитов
- 2026-09-23 17:57docs: showcase published Delphi landing with screenshotsНурдаулет Жумалиев
- 2026-09-23 17:56Enhance document agent and translation prompts; add comprehensive semantic testsFaizullin
- 2026-09-23 17:54feat(landing): prepare standalone Vercel publicationНурдаулет Жумалиев
- 2026-09-23 17:52Merge remote-tracking branch 'origin/main' into codex-landingНурдаулет Жумалиев
- 2026-09-23 17:52chore(landing): preserve latest shared application unchangedНурдаулет Жумалиев
- 2026-09-23 17:51chore(landing): sync product screenshots and deployment configНурдаулет Жумалиев
- 2026-09-23 17:51Merge pull request #10 from BAITC-Hacks/nurdaulet-readme-landingintellightkz
- 2026-09-23 17:51docs: jury path starts at the landing page (/), history moved to /historyНурдаулет Жумалиев
Все коммиты (55)
- 2026-09-23 17:50Merge pull request #8 from BAITC-Hacks/codex-landingintellightkz
- 2026-09-23 17:47feat(landing): isolate site and add verified product screensНурдаулет Жумалиев
- 2026-09-23 17:45Merge pull request #6 from BAITC-Hacks/nurdaulet-readmeintellightkz
- 2026-09-23 17:45Merge pull request #7 from BAITC-Hacks/nurdaulet-demo-finalintellightkz
- 2026-09-23 17:45Merge pull request #9 from BAITC-Hacks/nurdaulet-vercelintellightkz
- 2026-09-23 17:44docs: README — deployed demo link (Vercel)Нурдаулет Жумалиев
- 2026-09-23 17:43chore(demo): Vercel config with SPA fallback for demo-frontendНурдаулет Жумалиев
- 2026-09-23 17:35feat(ui): add guided Delphi landing pageНурдаулет Жумалиев
- 2026-09-23 17:32docs: README section on originality and development potential (case criterion)Нурдаулет Жумалиев
- 2026-09-23 17:29docs(demo): refresh screenshots after the QA fixesНурдаулет Жумалиев
- 2026-09-23 17:25docs: README by the organizers' 11-point prompt, mapped to the case must-havesНурдаулет Жумалиев
- 2026-09-23 17:25Merge pull request #5 from BAITC-Hacks/nurdaulet-demo-finalFaizullin
- 2026-09-23 17:24fix(demo): resolve review and evidence QA findingsНурдаулет Жумалиев
- 2026-09-23 17:19Complete Delphi lab agent stages and consolidate feedbackRa1-dev
- 2026-09-23 17:18feat(demo): word-level differences between the paired clauses in the review queueНурдаулет Жумалиев
- 2026-09-23 17:17docs(demo): 90-second demo script and screenshots; label the example traceНурдаулет Жумалиев
- 2026-09-23 17:07fix(demo): empty function map for risk-only examples; design links after the moveНурдаулет Жумалиев
- 2026-09-23 17:07Merge remote-tracking branch 'origin/main' into nurdaulet-review-queueНурдаулет Жумалиев
- 2026-09-23 17:05feat(demo): add four synthetic reference casesНурдаулет Жумалиев
- 2026-09-23 17:04feat(demo): clickable summary tiles; README demo path and decisions logНурдаулет Жумалиев
- 2026-09-23 17:03feat(demo): self-contained demo on saved examples, no backend (team decision)Нурдаулет Жумалиев
- 2026-09-23 16:57feat(ui): review queue on the new evidence contract, entry from resultsНурдаулет Жумалиев
- 2026-09-23 16:55feat(ui): review queue — questions left, change and quotes right, decision bottomНурдаулет Жумалиев
- 2026-09-23 16:54fix(frontend): preserve complete evidence and review decisionsНурдаулет Жумалиев
- 2026-09-23 16:53Merge pull request #4 from BAITC-Hacks/rauan-labfeaturesFaizullin
- 2026-09-23 16:53Enhance validation and testing for budget recovery and parser functionalityRa1-dev
- 2026-09-23 16:51feat: add UI report generation and testing frameworkFaizullin
- 2026-09-23 16:28docs(frontend): agent rules in demo-frontend/AGENTS.md and a Figma kickoff promptНурдаулет Жумалиев
- 2026-09-23 16:23Merge pull request #3 from BAITC-Hacks/rauan-labfeaturesFaizullin
- 2026-09-23 16:22Add initial implementation of Delphi bounded document agent and translation functionalityRa1-dev
- 2026-09-23 16:20docs: keep frontend decisions inside demo-frontendНурдаулет Жумалиев
- 2026-09-23 16:17docs: frontend ↔ backend contract, scenario statuses, historyНурдаулет Жумалиев
- 2026-09-23 16:16fix(frontend): Russian run errors, separate retry error on progress screenНурдаулет Жумалиев
- 2026-09-23 16:15Merge branch 'main' of https://github.com/BAITC-Hacks/hack-c49fe1b9-delphiRa1-dev
- 2026-09-23 16:15feat(frontend): human review of findings (scenarios H1–H5)Нурдаулет Жумалиев
- 2026-09-23 16:12fix(frontend): overlap risk sides, Russian plurals, function summariesНурдаулет Жумалиев
- 2026-09-23 16:04feat(frontend): connect demo-frontend to the backend's granular APIНурдаулет Жумалиев
- 2026-09-23 15:56fix(frontend): track demo-frontend/src/lib ignored by Python lib/ ruleНурдаулет Жумалиев
- 2026-09-23 15:51Merge pull request #1 from BAITC-Hacks/nurdaulet-design-features-updateFaizullin
- 2026-09-23 15:49chore: frontend → demo-frontend, журнал истории, handoff под реальный APIНурдаулет Жумалиев
- 2026-09-23 15:41Add UI capture reports for Kazakhtelecom and OpenDocuments referencesFaizullin
- 2026-09-23 15:41feat(ui): frontend Delphi — экраны, дизайн-система, офлайн-демоNurdaulet
- 2026-09-23 15:40fix(backend): expose search evidence and preserve reviewer notesFaizullin
- 2026-09-23 15:40docs: summarize Delphi progress and document analysisRa1-dev
- 2026-09-23 15:21Backned- base- imeplemntations and plans updates. Refactor code structure for improved readability and maintainabilityFaizullin
- 2026-09-23 14:44docs: consolidate Delphi MVP plan and evidence architectureFaizullin
- 2026-09-23 13:49Add initial documentation files for handoff, history, and roadmapFaizullin
Структура репозитория (518 файлов)
.gitignore AGENTS.md README.md agent_costs/.gitignore agent_costs/README.md agent_costs/__init__.py agent_costs/__main__.py agent_costs/cost_tracker.py agent_costs/examples/prices.openai-gpt6-sol.json agent_costs/examples/prices.openrouter.json agent_costs/examples/prompt-scenario.json agent_costs/examples/request.synthetic.json agent_costs/examples/responses.synthetic.jsonl agent_costs/examples/scenario.json agent_costs/lab_run.py agent_costs/requirements.txt agent_costs/tests/test_cost_tracker.py agent_costs/tests/test_lab_run.py backend/.dockerignore backend/.env.example backend/.python-version backend/Dockerfile backend/README.md backend/alembic.ini backend/app/__init__.py backend/app/agent/__init__.py backend/app/agent/common.py backend/app/agent/engine.py backend/app/agent/extraction.py backend/app/agent/fast.py backend/app/agent/matching.py backend/app/agent/missing.py backend/app/agent/model_client.py backend/app/agent/models.py backend/app/agent/prompts.py backend/app/agent/structure.py backend/app/agent/tools.py backend/app/agent/validation.py backend/app/api/__init__.py backend/app/api/analyses.py backend/app/api/dependencies.py backend/app/api/documents.py backend/app/api/errors.py backend/app/api/findings.py backend/app/api/reports.py backend/app/api/runs.py backend/app/config.py backend/app/db.py backend/app/domain/__init__.py backend/app/domain/errors.py backend/app/domain/result_validation.py backend/app/lifespan.py backend/app/main.py backend/app/models/__init__.py backend/app/models/analyses.py backend/app/models/documents.py backend/app/models/findings.py backend/app/models/reports.py backend/app/models/runs.py backend/app/models/users.py backend/app/parsers/__init__.py backend/app/parsers/common.py backend/app/parsers/docx.py backend/app/parsers/limits.py backend/app/parsers/markdown.py backend/app/parsers/pdf.py backend/app/parsers/types.py backend/app/parsers/xlsx.py backend/app/reporting/__init__.py backend/app/reporting/labels.py backend/app/reporting/rendering.py backend/app/reporting/search.py backend/app/reporting/types.py backend/app/schemas/__init__.py backend/app/schemas/analyses.py backend/app/schemas/common.py backend/app/schemas/documents.py backend/app/schemas/errors.py backend/app/schemas/findings.py backend/app/schemas/reports.py backend/app/schemas/runs.py backend/app/services/__init__.py backend/app/services/analyses.py backend/app/services/checkpoints.py backend/app/services/common.py backend/app/services/documents.py backend/app/services/findings.py backend/app/services/reports.py backend/app/services/results.py backend/app/services/runs.py backend/app/services/sources.py backend/app/services/translations.py backend/app/services/workflow.py backend/fixtures/README.md backend/fixtures/demo_analysis.json backend/fixtures/synthetic/README.md backend/fixtures/synthetic/conflict/after.md backend/fixtures/synthetic/conflict/before.md backend/fixtures/synthetic/distinct-scope/after.md backend/fixtures/synthetic/distinct-scope/before.md backend/fixtures/synthetic/manifest.json backend/fixtures/synthetic/missing/after.md backend/fixtures/synthetic/missing/before.md backend/fixtures/synthetic/overlap/after.md backend/fixtures/synthetic/overlap/before.md backend/fixtures/synthetic/transfer/after-audit.md backend/fixtures/synthetic/transfer/after-risk.md backend/fixtures/synthetic/transfer/before.md backend/fixtures/users.json backend/migrations/env.py backend/migrations/script.py.mako backend/migrations/versions/0001_initial.py backend/migrations/versions/0002_development_users.py backend/migrations/versions/0003_run_checkpoints.py backend/openapi.json backend/pyproject.toml backend/scripts/export_openapi.py backend/scripts/run_docx_preview.py backend/scripts/seed.py backend/tests/test_agent.py backend/tests/test_agent_port.py backend/tests/test_checkpoints.py backend/tests/test_fast_agent.py backend/tests/test_fast_workflow.py backend/tests/test_model_client.py backend/tests/test_parsers.py backend/tests/test_report_integrity.py backend/tests/test_synthetic_fixtures.py backend/tests/test_translation_structure.py backend/uv.lock compose.yaml demo-frontend/.env.example demo-frontend/.gitignore demo-frontend/AGENTS.md demo-frontend/README.md demo-frontend/components.json demo-frontend/docs/decisions.md demo-frontend/docs/demo-script.md demo-frontend/docs/design/ASTRA-UI-PROMPTS.md demo-frontend/docs/design/DESIGN.md demo-frontend/docs/design/SCENARIOS.md demo-frontend/docs/screenshots/01-history.png demo-frontend/docs/screenshots/02-choose-example.png demo-frontend/docs/screenshots/03-analysis-replay.png demo-frontend/docs/screenshots/04-results-summary.png demo-frontend/docs/screenshots/05-transfer-evidence.png demo-frontend/docs/screenshots/06-review-queue.png demo-frontend/docs/screenshots/07-missing-search.png demo-frontend/docs/screenshots/08-overlap-two-after.png demo-frontend/docs/screenshots/09-modality-word-diff.png demo-frontend/index.html demo-frontend/package-lock.json demo-frontend/package.json demo-frontend/public/demo/cases/demo-conflict.clauses.json demo-frontend/public/demo/cases/demo-conflict.result.json demo-frontend/public/demo/cases/demo-missing.clauses.json demo-frontend/public/demo/cases/demo-missing.result.json demo-frontend/public/demo/cases/demo-overlap.clauses.json demo-frontend/public/demo/cases/demo-overlap.result.json demo-frontend/public/demo/cases/demo-transfer.clauses.json demo-frontend/public/demo/cases/demo-transfer.result.json demo-frontend/public/demo/clauses.json demo-frontend/public/demo/result.json demo-frontend/scripts/test.mjs demo-frontend/src/App.tsx demo-frontend/src/components/AnalysisProgress.tsx demo-frontend/src/components/ClauseFragment.tsx demo-frontend/src/components/ConclusionReport.tsx demo-frontend/src/components/EditionBadge.tsx demo-frontend/src/components/EmptyState.tsx demo-frontend/src/components/EvidenceDrawer.tsx demo-frontend/src/components/ExportMenu.tsx demo-frontend/src/components/FunctionMapTable.tsx demo-frontend/src/components/ModeBadge.tsx demo-frontend/src/components/RefButton.tsx demo-frontend/src/components/ReviewControls.tsx demo-frontend/src/components/RiskCard.tsx demo-frontend/src/components/StatusChip.tsx demo-frontend/src/components/SummaryTiles.tsx demo-frontend/src/components/TracePanel.tsx demo-frontend/src/components/UnitTable.tsx demo-frontend/src/components/UploadZone.tsx demo-frontend/src/components/layout/AppShell.tsx demo-frontend/src/components/review/DecisionBar.tsx demo-frontend/src/components/review/FindingDetail.tsx demo-frontend/src/components/review/QueueList.tsx demo-frontend/src/components/review/WordDiff.tsx demo-frontend/src/components/ui/alert.tsx demo-frontend/src/components/ui/badge.tsx demo-frontend/src/components/ui/button.tsx demo-frontend/src/components/ui/card.tsx demo-frontend/src/components/ui/collapsible.tsx demo-frontend/src/components/ui/dropdown-menu.tsx demo-frontend/src/components/ui/input.tsx demo-frontend/src/components/ui/progress.tsx demo-frontend/src/components/ui/scroll-area.tsx demo-frontend/src/components/ui/separator.tsx demo-frontend/src/components/ui/sheet.tsx demo-frontend/src/components/ui/skeleton.tsx demo-frontend/src/components/ui/table.tsx demo-frontend/src/components/ui/tabs.tsx demo-frontend/src/components/ui/tooltip.tsx demo-frontend/src/hooks/useAnalysis.ts demo-frontend/src/hooks/useClause.ts demo-frontend/src/hooks/useJob.ts demo-frontend/src/hooks/useReviewQueue.ts demo-frontend/src/index.css demo-frontend/src/lib/adapter.ts demo-frontend/src/lib/api.ts demo-frontend/src/lib/demo.ts demo-frontend/src/lib/evidence.ts demo-frontend/src/lib/export.ts demo-frontend/src/lib/format.ts demo-frontend/src/lib/highlight.ts demo-frontend/src/lib/status.ts demo-frontend/src/lib/utils.ts demo-frontend/src/main.tsx demo-frontend/src/pages/AnalysisPage.tsx demo-frontend/src/pages/DemoStartPage.tsx demo-frontend/src/pages/HistoryPage.tsx demo-frontend/src/pages/ProgressPage.tsx demo-frontend/src/pages/ReviewQueuePage.tsx demo-frontend/src/pages/UploadPage.tsx demo-frontend/src/types.ts demo-frontend/tests/demo-clauses.test.ts demo-frontend/tests/demo-progress.test.ts demo-frontend/tests/demo-review.test.ts demo-frontend/tests/evidence.test.ts demo-frontend/tests/review-queue.test.ts demo-frontend/tsconfig.json demo-frontend/vercel.json demo-frontend/vite.config.ts docs/README.md docs/architecture.md docs/design/ASTRA-UI-PROMPTS.md docs/design/DESIGN.md docs/design/SCENARIOS.md docs/feedback.md docs/guides/frontend-coding-conventions.md docs/hackaton/hackaton_instructiona.md docs/hackaton/tracks/HackAlem AI_ Beeline Tariff Marketing Campaigns Case.md docs/hackaton/tracks/HackAlem_AI_Agentic_AI_для_прогнозирования_выработки_ВЭС.md docs/hackaton/tracks/HackAlem_AI_Career_Quest_платформа_геймификации_жизненного_цикла.md docs/hackaton/tracks/HackAlem_AI_Voice_Router_гибридный_голосовой_AI_робот_с_LLM_слоем.md docs/hackaton/tracks/HackAlem_AI_«Аким_на_5_часов»_AI_симулятор_управления_городом.md docs/hackaton/tracks/HackAlem_AI_Автоматизация_формирования_заказов_поставщикам_docx.md docs/hackaton/tracks/HackAlem_AI_Граф_денег_восстановление_финансовой_структуры_организованной.md docs/hackaton/tracks/HackAlem_AI_ИИ_агент_«Анализ_организационной_структуры_и_функционала».md docs/hackaton/tracks/HackAlem_AI_ИИ_ассистент_для_чата_на_сайте_ekt_kz.md docs/hackaton/tracks/HackAlem_AI_Система_автопротоколирования_совещаний_с_фиксацией_поручений.md docs/hackaton/tracks/HackAlem_AI_Хакатон_задача_умный_подбор_подрядчиков.md docs/hackaton/tracks/HackAlem_AI_кейс_по_геймификации_практических_заданий.md docs/hackaton/tracks/Положение_о_внутреннем_аудите_редакция_8_обезличено.docx.md docs/hackaton/tracks/Положение_о_внутреннем_аудите_редакция_9_обезличено.docx docs/hackaton/tracks/Положение_о_внутреннем_аудите_редакция_9_обезличено.docx.md docs/handoff.md docs/history.md docs/implementation-plan.md docs/product.md docs/research/delphi-current-feedback.md docs/research/kazakhtelecom-ui-references/docdiffai/index.html docs/research/kazakhtelecom-ui-references/docdiffai/manifest.json docs/research/kazakhtelecom-ui-references/docdiffai/report.pdf docs/research/kazakhtelecom-ui-references/docdiffai/root__desktop__light.png docs/research/kazakhtelecom-ui-references/kazakhtelecom-governance/index.html docs/research/kazakhtelecom-ui-references/kazakhtelecom-governance/manifest.json docs/research/kazakhtelecom-ui-references/kazakhtelecom-governance/report.pdf docs/research/kazakhtelecom-ui-references/kazakhtelecom-governance/ru_corporate-governance-report-html__desktop__light.png docs/research/kazakhtelecom-ui-references/opendocuments/index.html docs/research/kazakhtelecom-ui-references/opendocuments/joungminsung_opendocuments__desktop__light.png docs/research/kazakhtelecom-ui-references/opendocuments/manifest.json docs/research/kazakhtelecom-ui-references/opendocuments/report.pdf docs/research/kazakhtelecom-ui-references/python-redlines/JSv4_Python-Redlines__desktop__light.png docs/research/kazakhtelecom-ui-references/python-redlines/index.html docs/research/kazakhtelecom-ui-references/python-redlines/manifest.json docs/research/kazakhtelecom-ui-references/python-redlines/report.pdf docs/research/kazakhtelecom-ui-references/redlines/index.html docs/research/kazakhtelecom-ui-references/redlines/manifest.json docs/research/kazakhtelecom-ui-references/redlines/report.pdf docs/research/kazakhtelecom-ui-references/redlines/root__desktop__light.png docs/source-analysis.md docs/sources/HackAlem AI_ ИИ-агент «Анализ организационной структуры и функционала».docx docs/sources/HackAlem_AI_ИИ_агент_«Анализ_организационной_структуры_и_функционала».md docs/sources/Положение_о_внутреннем_аудите_редакция_8_обезличено.docx docs/sources/Положение_о_внутреннем_аудите_редакция_8_обезличено.docx.md docs/sources/Положение_о_внутреннем_аудите_редакция_9_обезличено.docx docs/sources/Положение_о_внутреннем_аудите_редакция_9_обезличено.docx.md frontend/.env.example frontend/.gitignore frontend/AGENTS.md frontend/README.md frontend/components.json frontend/docs/report/README.md frontend/docs/report/latest.json frontend/docs/report/latest.md frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/001-sign-in-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/002-sign-up-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/003-results-structure-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/004-results-source-context-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/005-results-findings-filter-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/006-results-finding-evidence-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/007-results-reviewed-conclusion-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/008-results-translated-conclusion-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/009-results-running-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/010-results-failed-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/011-comparison-history-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/012-official-draft-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/013-original-source-preview-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/014-new-comparison-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/015-prepared-synthetic-draft-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/016-mobile-history-mobile-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/017-mobile-navigation-mobile-chromium.png frontend/docs/report/screenshots/2026-09-23T11-32-49-881Z-59eaa4f8/018-mobile-new-kk-mobile-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/001-results-structure-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/002-structure-mappings-preserve-source-context-and-source-navigation-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/003-results-findings-filter-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/004-results-finding-evidence-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/005-results-reviewed-conclusion-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/006-results-translated-conclusion-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/007-results-running-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/008-results-failed-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/009-results-review-queue-linked-finding-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/010-mobile-navigation-notifications-and-persistent-ru-kk-en-selection-mobile-chromium.png frontend/docs/report/screenshots/2026-09-23T12-50-40-581Z-7be6fc75/011-mobile-review-evidence-mobile-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/001-results-structure-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/002-results-source-context-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/003-results-findings-filter-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/004-results-finding-evidence-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/005-results-reviewed-conclusion-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/006-results-translated-conclusion-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/007-results-running-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/008-results-failed-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/009-results-review-queue-linked-finding-desktop-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/010-mobile-history-mobile-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/011-mobile-navigation-mobile-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/012-mobile-new-kk-mobile-chromium.png frontend/docs/report/screenshots/2026-09-23T12-52-27-350Z-d7de39fc/013-mobile-review-evidence-mobile-chromium.png frontend/eslint.config.mjs frontend/next-env.d.ts frontend/next.config.ts frontend/openapi-ts.config.ts frontend/package-lock.json frontend/package.json frontend/playwright.config.ts frontend/postcss.config.mjs frontend/scripts/auth-config.mjs frontend/scripts/generate-ui-report.mjs frontend/scripts/migrate-auth.mjs frontend/scripts/seed-auth.mjs frontend/src/app/(auth)/layout.tsx frontend/src/app/(auth)/sign-in/page.tsx frontend/src/app/(auth)/sign-up/page.tsx frontend/src/app/(workspace)/analyses/[analysisId]/page.tsx frontend/src/app/(workspace)/layout.tsx frontend/src/app/(workspace)/new/page.tsx frontend/src/app/(workspace)/page.tsx frontend/src/app/api/auth/[...all]/route.ts frontend/src/app/backend/[...path]/route.ts frontend/src/app/globals.css frontend/src/app/layout.tsx frontend/src/components/custom-ui/confirm-nice-dialog.tsx frontend/src/components/custom-ui/empty-state.tsx frontend/src/components/custom-ui/finding-status-badge.tsx frontend/src/components/custom-ui/status-badge.tsx frontend/src/components/data-table/data-table.tsx frontend/src/components/data-table/use-data-table.ts frontend/src/components/layout/app-sidebar.tsx frontend/src/components/layout/language-selector.tsx frontend/src/components/layout/notification-bell.tsx frontend/src/components/layout/providers.tsx frontend/src/components/layout/sign-out-button.tsx frontend/src/components/layout/workspace-shell.tsx frontend/src/components/ui/alert-dialog.tsx frontend/src/components/ui/alert.tsx frontend/src/components/ui/badge.tsx frontend/src/components/ui/button.tsx frontend/src/components/ui/card.tsx frontend/src/components/ui/checkbox.tsx frontend/src/components/ui/dialog.tsx frontend/src/components/ui/dropdown-menu.tsx frontend/src/components/ui/input.tsx frontend/src/components/ui/label.tsx frontend/src/components/ui/progress.tsx frontend/src/components/ui/select.tsx frontend/src/components/ui/separator.tsx frontend/src/components/ui/sheet.tsx frontend/src/components/ui/skeleton.tsx frontend/src/components/ui/sonner.tsx frontend/src/components/ui/table.tsx frontend/src/components/ui/tabs.tsx frontend/src/components/ui/textarea.tsx frontend/src/components/ui/tooltip.tsx frontend/src/features/analyses/api/analyses.ts frontend/src/features/analyses/client/comparison-editor.tsx frontend/src/features/analyses/client/document-card.tsx frontend/src/features/analyses/client/history-table-view.tsx frontend/src/features/analyses/client/index.ts frontend/src/features/analyses/client/source-preview.tsx frontend/src/features/analyses/client/upload-zone.tsx frontend/src/features/analyses/model/comparison.ts frontend/src/features/analyses/model/index.ts frontend/src/features/auth/client/auth-card.tsx frontend/src/features/auth/client/auth-view.tsx frontend/src/features/auth/client/index.ts frontend/src/features/auth/client/sign-in-form.tsx frontend/src/features/auth/client/sign-up-form.tsx frontend/src/features/auth/model/auth.ts frontend/src/features/auth/model/index.ts frontend/src/features/results/api/results-api.ts frontend/src/features/results/client/conclusion-view.tsx frontend/src/features/results/client/coverage-summary.tsx frontend/src/features/results/client/evidence-card.tsx frontend/src/features/results/client/finding-detail.tsx frontend/src/features/results/client/findings-table-view.tsx frontend/src/features/results/client/index.ts frontend/src/features/results/client/request-error.tsx frontend/src/features/results/client/results-workspace.tsx frontend/src/features/results/client/review-form.tsx frontend/src/features/results/client/review-queue.tsx frontend/src/features/results/client/source-panel.tsx frontend/src/features/results/client/structure-view.tsx frontend/src/features/results/client/use-results-location.ts frontend/src/features/results/client/word-diff.tsx frontend/src/features/results/model/evidence.ts frontend/src/features/results/model/finding-queue.ts frontend/src/features/results/model/labels.ts frontend/src/features/results/model/review.ts frontend/src/features/system/api/health.ts frontend/src/features/system/client/service-status.tsx frontend/src/lib/auth-client.ts frontend/src/lib/utils.ts frontend/src/server/auth.ts frontend/src/server/backend-proxy.ts frontend/src/server/db.ts frontend/src/server/env.ts frontend/src/shared/api/errors.ts frontend/src/shared/api/generated/client.gen.ts frontend/src/shared/api/generated/client/client.gen.ts frontend/src/shared/api/generated/client/index.ts frontend/src/shared/api/generated/client/types.gen.ts frontend/src/shared/api/generated/client/utils.gen.ts frontend/src/shared/api/generated/core/auth.gen.ts frontend/src/shared/api/generated/core/bodySerializer.gen.ts frontend/src/shared/api/generated/core/params.gen.ts frontend/src/shared/api/generated/core/pathSerializer.gen.ts frontend/src/shared/api/generated/core/queryKeySerializer.gen.ts frontend/src/shared/api/generated/core/serverSentEvents.gen.ts frontend/src/shared/api/generated/core/types.gen.ts frontend/src/shared/api/generated/core/utils.gen.ts frontend/src/shared/api/generated/index.ts frontend/src/shared/api/generated/sdk.gen.ts frontend/src/shared/api/generated/types.gen.ts frontend/src/shared/api/hey-api.ts frontend/src/shared/documents/source-location.ts frontend/src/shared/i18n/index.tsx frontend/src/shared/notifications/index.ts frontend/src/store/nice-modal-context.tsx frontend/tests/e2e/auth.spec.ts frontend/tests/e2e/mobile.spec.ts frontend/tests/e2e/results.spec.ts frontend/tests/e2e/workspace.spec.ts frontend/tests/fixtures/results.ts frontend/tests/reporters/ui-report.mjs frontend/tests/reporters/ui-report.test.mjs frontend/tests/support/cleanup.ts frontend/tests/support/fixtures.ts frontend/tests/unit/evidence.test.mjs frontend/tests/unit/finding-queue.test.mjs frontend/tsconfig.json lab/.env.example lab/.gitignore lab/README.md lab/bootstrap.ps1 lab/delphi_lab/__init__.py lab/delphi_lab/__main__.py lab/delphi_lab/agent.py lab/delphi_lab/api.py lab/delphi_lab/config.py lab/delphi_lab/costs.py lab/delphi_lab/diffing.py lab/delphi_lab/models.py lab/delphi_lab/parsers.py lab/delphi_lab/pipeline.py lab/delphi_lab/planning.py lab/delphi_lab/provenance.py lab/delphi_lab/reports.py lab/delphi_lab/runtime.py lab/delphi_lab/storage.py lab/delphi_lab/validation.py lab/docs/README.md lab/docs/archive/final_verdict.pre-pull.md lab/docs/backend-lab-alignment.md lab/docs/handoff.md lab/fixtures/README.md lab/fixtures/expected.json lab/fixtures/synthetic/en/after.md lab/fixtures/synthetic/en/before.md lab/fixtures/synthetic/kk/after.md lab/fixtures/synthetic/kk/before.md lab/fixtures/synthetic/ru/after.md lab/fixtures/synthetic/ru/before.md lab/prompts/README.md lab/prompts/compare.md lab/prompts/extract.md lab/prompts/risks.md lab/prompts/source_search.md lab/prompts/structure.md lab/prompts/system.md lab/prompts/translation.md lab/requirements.lock.txt lab/requirements.txt lab/run.ps1 lab/tests/test_agent_semantics.py lab/tests/test_budget_recovery.py lab/tests/test_cost_tracking.py lab/tests/test_lab_workflow.py lab/tests/test_parser_validation.py lab/tests/test_resume_budget.py
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.