diff --git a/.gitignore b/.gitignore
index d01c7fd..1ec975a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,5 @@ dist/
.vibe42-run.pid
.DS_Store
.mimo/
+.env
+kfu-agent-original-source.txt
diff --git a/README.md b/README.md
index 0d17c33..c87c678 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,36 @@
-# КФУ — финансовая устойчивость
+# КФУ-агент — расчёт К1–К3 по Политике финансовой устойчивости
-Статическое приложение, созданное через чат Vibe AI. Запуск: откройте вкладку Превью проекта; сборка npm не требуется.
+Приложение с сервером (Node.js, `node:http`, без тяжёлых зависимостей) + статический фронт.
+Запуск — команда **`run`** (поставит зависимости по `package.json` и поднимет `server.js`).
-Пилот работает с предоставленным шаблоном факта 2025: 15 компаний и одна консолидированная группа. Источники: ДОЛГ 4Q2025_24042026; EBITDA 2025_06042026; BS 4Q2025_06042026; Группа Фонда 4Q 2025. Контрольный свод: План 2026!G5:J20.
+## Что умеет
+1. **Данные** — три источника:
+ - выгрузка СУО (SAP BPC): листы ДОЛГ / EBITDA / Баланс, распознавание структуры, подбор строк,
+ EBITDA «снизу вверх» по статьям ОПиУ и готовая строкой, LTM-мостик для промежуточных периодов,
+ структура долга по компонентам с контролем по сумме, блок «Консолидация» (TOTALADJ) для Группы Фонда;
+ - отчётность МСФО — извлечение показателей ИИ (PDF распковывается сервером в текст, Excel в браузере,
+ сканы страниц — как изображения); результат — редактируемая сводка с LTM и итогами;
+ - ручной ввод.
+2. **Реестр показателей** — компании и периоды, долг/гарантии/EBITDA/проценты/капитал, редактирование и удаление.
+3. **Расчёт и зоны** — целевые и пороговые значения по компаниям (предзаполнены из сводного файла КФУ),
+ свод «как в сводном файле», коэффициенты К1–К3 с зонами (зелёная/жёлтая/красная), EBITDA ≤ 0 → красная,
+ выгрузка в Excel (листы: Свод, Долг Группы, КФУ, Параметры, Аудит) и CSV.
+4. **Агент** — чат с расчётом по методам: видит реестр, зоны и методы (реестр); подсказки:
+ заключение по зонам, стресс-тест (долг +10%, EBITDA −15%, проценты +20%, капитал −5% — пересчитывается
+ детерминированно в `stressRow`, агенту передаются готовые значения), запас до порогов, методологические риски.
-Загрузите .xlsx, откройте строку компании, при необходимости измените прочие/гарантии в млн тенге. Другие показатели сценарий не редактирует. Кнопка Вернуть сбрасывает изменение. Выгрузить отчёт .xlsx сохраняет снимок текущего сценария. Листы отчёта: КФУ, Источники, Диагностика, Сверка, Пояснения.
+## Архитектура
+- `index.html` — всё приложение (вкладки 1–4), SheetJS из `vendor/xlsx.full.min.js`.
+- `monitor.html` + `kfu-client.js` — предыдущий экран «Мониторинг» (ссылка в шапке КФУ-агента).
+- `server.js` — `node:http`: статика (allowlist файлов) + `POST /api/ai` (прокси к
+ `AI_BASE_URL/chat/completions` с `AI_API_KEY`/`AI_MODEL` из окружения) + `GET /api/health`.
+ Ключи ИИ живут только на сервере; браузер ходит в `api/ai` (относительный путь).
+- PDF: клиент шлёт base64 в `/api/ai` (блок `file:pdf`), сервер распковывает `pdf-parse`;
+ пустой PDF (скан) → честная ошибка. Лимит тела 40 МБ, таймаут ИИ 90 с.
-Проверены 64/64 исходных показателя (16 объектов × 4 показателя), сценарий/сброс, фильтры, пропуски данных, отрицательные показатели и экспорт. Сверка всегда относится к исходным данным без сценария.
+## Запуск
+`run` → ссылка из вывода. После правок — ещё раз `run`.
+Публикация — кнопка «Опубликовать» (приложение: `https://code.vibe42.kz/apps/...`, не в pages).
-Формулы Excel не пересчитываются: читаются сохранённые значения исходных ячеек, затем коэффициенты рассчитываются приложением. Перед загрузкой пересчитайте и сохраните книгу в Excel.
-
-Пользовательский Excel читается в браузере, не отправляется приложением на сервер. Исходная книга и отчёты исключены из Git. Учебный пример содержит синтетические данные.
+Данные (Excel) читаются в браузере и не покидают машину, кроме отправки PDF/снимков в ИИ для извлечения показателей.
+Состояние (реестр, параметры, методика) сохраняется/загружается локальным JSON; исходные книги и отчёты исключены из Git.
diff --git a/index.html b/index.html
index 0366fde..4c95b27 100644
--- a/index.html
+++ b/index.html
@@ -1,444 +1,1400 @@
-
-
-
+
+ Расчёт К1–К3 по Политике финансовой устойчивости — Долг/EBITDA, EBITDA/Проценты, Долг/Капитал · версия 1.3
+ Мониторинг →
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
Финансовая устойчивость
-
-
-
- Учебный пример · синтетические данные
-
-
-
-
-
-
-
-
-
-
-
-
0
Нарушения
-
-
-
-
0
Под наблюдением
-
-
-
-
0
В норме
-
-
-
-
0
Без нормативов
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Компания
-
Статус
-
К1Debt/EBITDA
-
К2EBITDA/Int
-
К3Debt/Equity
-
Причина
-
-
-
-
-
-
-
Ничего не найдено. Измените фильтры.
-
-
-
-
-
-
Консолидированная группа
-
-
-
-
-
-
-
-
-
-
-
-
Загрузите сводную книгу
-
Получите коэффициенты, зоны риска и отчёт в .xlsx
-
-
-
-
-
Файл обрабатывается в браузере и не отправляется на сервер
-
-
-
-
-
-
-
+
+
Учебный пример: если реестр пуст, значения — синтетические (демо). Для рабочих расчётов загрузите выгрузку СУО или отчётность на шаге 1.
+
+
+
+
+
+
-
-
+
+
+
+
Сводная книга КФУ 2025
+
+
+
+ Берёт данные только из загруженной книги: долг/прочие/EBITDA/проценты/капитал (млн → млрд), нормативы, источники адресов. Зоны — пересчёт ПГУ.
+
+
+
+
+
Файлы выгрузки
+
+ Перетащите .xlsx/.xlsm с листами ДОЛГ, EBITDA, BS/Баланс — или выберите файлы
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Для ковенантов портфельной компании долг берётся по её собственной консолидированной отчётности: внутригрупповые займы от Фонда не элиминируются. Блок «Консолидация» и параметр TOTALADJ применимы только к строке Группы Фонда.
+
-
+
+
Распознанная структура
+
Загрузите файл — здесь появятся найденные строки и блоки.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
EBITDA 12М = текущий период + прошлый полный год − прошлый год за тот же период (мостик LTM); проценты 12М — тем же мостиком.
+
+
+
+ Если автоматика не нашла строки — ИИ сопоставит наименования статей по методике.
+
+
+
+
-
+
+
Предпросмотр по компаниям
+
Гарантии и прочие обязательства, не входящие в строку «Долг» выгрузки, вводятся вручную (млрд ₸). Отметьте компании для добавления в реестр.
+
+
+
+
+
+
+
«Все периоды» — для файлов вида «Долг 2023 / EBITDA 2023 / Баланс 2023»: тройки листов сопоставляются по году в названии, гарантии берутся из таблицы выше по компаниям.
+
+
-
+
+
+
+
+
Отчётность компании
+
+ PDF отчётности МСФО (до ~100 стр.), Excel, сканы страниц (PNG/JPG) — или выберите файлы
+
+
+
+
+
+
+
+
+
+
+
+
+
Большие годовые отчёты лучше подавать основными формами (баланс, ОПиУ, ОДДС, примечания по займам, аренде и финансовым расходам). Извлечённые значения — черновик: проверьте их по строкам отчётности перед добавлением в реестр.
+
+
+
Методика извлечения (Приложение 1 Политики)
+
Текст передаётся ИИ как определения показателей. Скорректируйте под действующую редакцию Политики.
+
+
+
+
+
Проверка извлечённых показателей
+
+
+
+
+
+
+
+
Ручной ввод
+
Все значения — в млрд ₸, за 12 месяцев (EBITDA и проценты — LTM), на отчётную дату (долг, капитал).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Реестр показателей
+
Базовые показатели по компаниям и периодам. Значения редактируются кнопкой «Изменить»; итоговый долг = долг + гарантии.
+
+
+
+
+
+
+
+
+
+
+
Целевые и пороговые значения
+
К1 Долг/EBITDA и К3 Долг/Капитал — «не более» (цель ≤ порог); К2 EBITDA/Проценты — «не менее» (цель ≥ порог). Пустое значение — коэффициент не оценивается. Строки добавляются автоматически по компаниям реестра.
+
+
+
+
+
+
+
+
Свод в формате сводного файла КФУ
+
Строки — в порядке сводного файла; коэффициенты подсвечены зонами по целям/порогам (серые — цели не заданы).
+
+
+
+
Коэффициенты и зоны
+
+
+
+
+
+ Зона строки — худшая из трёх; EBITDA ≤ 0 → К1 и К2 в красной зоне независимо от формулы.
+
+
+
+
+
+
+
+
+
Агент по КФУ
+
Видит реестр, рассчитанные коэффициенты, цели/пороги и методику. Считает по данным реестра, не выдумывает цифры.
+
+
+
+
+
+
+
+
Задайте вопрос по коэффициентам или используйте быстрые запросы выше.
+
+
+
+
+
Контекст агента
+
Что передаётся в каждый запрос:
+
+
реестр: долг, гарантии, EBITDA, проценты, капитал, период, источник
+
расчёт: К1–К3, зоны, цели и пороги
+
методика из вкладки «Отчётность МСФО»
+
+
+
Функции ИИ (извлечение из отчётности, подбор строк, агент) работают при открытии файла внутри Claude. Разбор выгрузки СУО, ручной ввод, расчёт и выгрузка в Excel работают и автономно в браузере.