AAYMA
RU
Войти

Аким на 5 часов · Ascension

Городской симулятор-тренажёр: пользователь собирает план из пяти мер в бюджете 100 у.е., видит изменение Score районов Астаны на 3D-карте…

Доведённый продукт
Команда «Ascension» 39💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: Ascension
Кейс HackAlem.ai: Спецтрек — Astana Innovations
Стадия: Доведённый продукт

Задача кейса: «Аким на 5 часов»: городской симулятор, распределяющий бюджет по 5 направлениям и 5 районам

Суть

Городской симулятор-тренажёр: пользователь собирает план из пяти мер в бюджете 100 у.е., видит изменение Score районов Астаны на 3D-карте, сравнивает сценарии A/B, ищет альтернативы и готовит записку; плюс кабинет акима, обращения жителей и Telegram-бот.

Как устроено

Серверное расчётное ядро на Node.js по синтетической модели кейса (data/city.json) считает Score районов с учётом эффектов мер и синергии сочетаний (например M10+M12), критических показателей и остатка бюджета. Поиск альтернатив перебирает замены одного решения в Web Worker (181 замена, 117 допустимых) с возможностью закрепить меры, итог перепроверяется сервером. Карта на MapLibre с 3D, «текст → пять допустимых мер» через AI с привязкой чисел к фактам симулятора; без ключа — расчётное объяснение. Публичное развёртывание на Cloudflare Workers с Durable Object для реестра обращений.

Ключевые решения

  • сценарное моделирование Score районов
  • эффекты синергии мер
  • локальный поиск замены одной меры
  • сравнение сценариев A/B
  • grounding AI-объяснений на фактах расчёта

Метрики

Score 52,56 → 56,54 на официальном примере (95/100 бюджета, 0 критических показателей); альтернатива даёт 57,21

Особенности

Контрольный сценарий с точными ожидаемыми значениями Score для жюри, локальный перебор альтернатив в Web Worker с серверной перепроверкой, публичное демо на Cloudflare и расширение до полноценного кабинета акима с обращениями жителей.

Стек

Node.js 24 · MapLibre · Cloudflare Workers · Durable Objects · Docker Compose · Caddy · systemd · Telegram Bot · GitHub Actions

Модели

NVIDIA AI


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-0c0b9665-ascension.

README

README.md

Аким на 5 часов · Ascension

«Аким на 5 часов» — тренажёр для выбора городских решений. Вы собираете план из пяти инициатив в пределах бюджета и видите, как он меняет качество жизни районов. Проект помогает сравнить варианты, понять, какие районы получают пользу, и подготовить записку для обсуждения решения. Это работа команды Ascension по кейсу №12 HackAlem AI.

В основе — учебный набор пяти районов Астаны, 14 мероприятий и бюджет 100 условных единиц. Карта показывает реальную географию, а показатели и эффекты мероприятий взяты из синтетической модели кейса. Результат позволяет проверить логику решения; он не является прогнозом для реального города.

Открыть публичное демо — главная страница показывает обзор города и переходы к рабочим разделам. Для симулятора не нужны регистрация, личный API-ключ или подписка. 3D-карта и Ascension AI открываются в отдельном центре управления. Для последовательной проверки ниже используйте компактный симулятор и кнопку «Попробовать на примере».

Рабочее пространство акима объединяет девять разделов: обзор, карту, конструктор, аналитику, районы, сценарии, обращения, поручения и паспорта данных. Они используют те же серверные расчёты и существующие модули. Устройство и проверка кабинета.

Учебный маршрут за 90 секунд проводит через пример решения и его последствия. Обращение и поручение в этом маршруте — демонстрационные записи в памяти страницы; для настоящей проверки реестра используйте формы жителя и акимата. В компактном симуляторе после расчёта также доступно объяснение распределения бюджета.

Презентация, речь и ответы жюри доступны в PowerPoint, PDF и Markdown. Это отдельный выпуск на 23 сентября, 16:48 GMT+5: исторические статусы внутри презентации не заменяют проверку текущего приложения.

Что проверятьГде доступно
Выбор инициатив, бюджет, Score, карта, альтернативы одной меры, сравнение A/B и библиотекаПубличное демо или локальный запуск
Закрепление выбранных мер и защита показателя при поиске альтернативПубличное демо или локальный запуск; расчёт на устройстве
Записка для совещания с выгрузкой HTMLПо последнему успешному расчёту, в публичном демо или локально
Черновики поручений, паспорта реализации и источников данныхПубличное демо или локально; ручные записи сохраняются в данном браузере
Обзор города и навигацияГлавная /; девять рабочих разделов доступны через /mayor-overview.html
План из текста, 3D-карта и поквартальная шкала/command-center.html; живой маршрут «текст → пять допустимых мер → применение → карта» подтверждён. Шкала не требует отдельного AI-вызова
Общий реестр с ролями и журналом измененийТребует отдельной настройки оператором; без неё отключён. Локальные черновики доступны самостоятельно
Объяснение результата модельюПубличное демо с серверным ключом, пока доступна общая квота; локально — по желанию владельца сервера
Веб-обращение жителя и проверка статуса по квитанцииПубличная форма или локальный /citizens.html
Решение по обращению в панели акимаЛокальный /mayor.html без токена в демо-режиме; публичная панель требует служебный токен
Telegram-приём обращений@Ascension_City_bot: облачный webhook настроен; полный пользовательский диалог ещё не подтверждён. Свой бот подключается по инструкции ниже

API обращений подключён к публичному Cloudflare Worker. Локальная версия сохраняет обращения в JSON-файле, публичная — в постоянном хранилище Durable Object. Публичная панель защищена: HTTP 401 без служебного токена — ожидаемое поведение. Весь маршрут «житель → сотрудник → решение» жюри может проверить локально без аккаунтов и ключей команды.

Как запустить

Нужны Node.js 24 или новее, npm из его поставки и современный браузер. Для клонирования нужен Git; также можно скачать ZIP репозитория и открыть терминал в распакованной папке. Доступ к закрытому репозиторию выдаётся организаторами; самому приложению аккаунт не нужен.

После распаковки на Windows достаточно дважды нажать START-WINDOWS.cmd. На macOS/Linux выполните sh start-local.sh. Скрипт проверит Node.js, запустит локальный сервер и откроет страницу; оставьте окно терминала открытым. Запуск для организаторов и собственный хостинг.

git clone --branch v1.1.0 https://github.com/BAITC-Hacks/hack-0c0b9665-ascension.git
cd hack-0c0b9665-ascension
node --version
npm start

Откройте обзор города — http://127.0.0.1:3000. В текущей версии установка npm-пакетов и сборка для запуска не нужны: MapLibre уже включён в public/vendor/. Файл .env.local необязателен; сообщение о его отсутствии при первом запуске нормально. Остановка сервера — Ctrl+C.

Главная / — обзор. Центр управления /command-center.html содержит полноэкранную 3D-карту, панели и AI; рабочее пространство /mayor-overview.html — девять разделов кабинета. Компактный /classic.html использует то же расчётное ядро; на нём выполняется контрольный сценарий ниже.

Расчёты, сравнение сценариев и локальные обращения работают без ключей внешних сервисов. Для подложки карты и поиска нужен интернет, для 3D — поддержка WebGL. Если карта не загрузилась, расчёт и таблица показателей остаются доступны. Без ключа модели показывается «Без AI · расчётное объяснение».

Если порт 3000 занят, создайте в корне .env.local со строкой PORT=3001, перезапустите сервер и откройте http://127.0.0.1:3001. Остальные необязательные настройки перечислены в .env.example. По умолчанию сервер слушает только 127.0.0.1.

Подробная инструкция самостоятельного запуска включает чистую проверку, постоянный сервер Linux с systemd, Docker Compose, HTTPS и резервную копию обращений. Для собственного сервера и бота используются собственные настройки владельца; базовая локальная проверка не требует облачной инфраструктуры.

Как проверить решение за 5 минут

Откройте публичный компактный симулятор или локальную страницу. Все названия кнопок в следующих шагах относятся к /classic.html.

1. Рассчитать официальный пример

На странице /classic.html нажмите «Попробовать на примере», затем «Посмотреть результат». В плане должны быть:

МераРайон
M7 — школа и детсадНура
M8 — центр семейного здоровья / поликлиникаНура
M10 — освещение и камерыНура
M12 — единая цифровая платформа обращенийВесь город
M5 — перевод частного сектора на чистое топливоСарыарка

Проверьте результат по таблице. Точка в точных значениях ниже — десятичный разделитель; интерфейс использует запятую и округляет до двух знаков.

ПоказательДо решенийОфициальный пример AВариант B из следующего шага
Общий Score52,5656,5455,30
Изменение Score—+3,99+2,74
Стоимость / остаток0 / 10095 / 595 / 5
Критических показателей201
Оценка слабейшего района, Нуры49,1852,9651,86

Точные контрольные Score: 52.55768, 56.54307, 55.29777. В блоке «Дополнительный эффект сочетаний» видно совместное действие M10 и M12 в Нуре.

2. Сравнить решение при том же бюджете

В блоке «Ваш план» у школы и детсада поменяйте район Нура → Есиль, остальные решения оставьте прежними. Снова нажмите «Посмотреть результат»: получится вариант B из таблицы. Стоимость остаётся 95, но один показатель Нуры остаётся ниже критической границы.

Раскройте «Сравнить два последних расчёта». Сравнение показывает два последних расчёта; оценка Есиля меняется на +1,10, Нуры — на −1,10. «Загрузить A» возвращает решения первого варианта в форму — после загрузки выполните расчёт заново. «Скачать сравнение (JSON)» сохраняет снимки A/B для передачи и воспроизведения.

Раскройте «Мои сценарии», укажите название и нажмите «Сохранить расчёт». План можно загрузить после перезагрузки страницы или импортировать из JSON сравнения. Библиотека хранит до 20 сценариев в этом браузере на этом адресе; сравнение двух последних расчётов — в памяти вкладки. Импортированные оценки не принимаются за результат сервера: загруженный план нужно пересчитать.

3. Найти альтернативу одной мере

Заново загрузите демо и рассчитайте его. Раскройте «Что можно улучшить в плане», затем нажмите «Найти альтернативы». Для официального примера поиск проверяет 181 замену, из которых 117 допустимы, и показывает пять вариантов с разными компромиссами между Score, слабейшим районом и расходами.

«Загрузить вариант 1» заменяет M5 в Сарыарке на M3 в Нуре. Нажмите «Посмотреть результат»: ожидаются стоимость 100, остаток 0 и Score 57,21 (точно 57.20556). Предварительный поиск выполняется в Web Worker на вашем устройстве по общему ядру; загруженный вариант заново проверяет сервер. Поиск охватывает замену одного решения и не обещает глобального оптимума. Границы поиска.

Для отдельной проверки ограничений снова рассчитайте официальный пример. В панели альтернатив раскройте «Что обязательно сохранить», закрепите перевод частного сектора на чистое топливо (M5) в Сарыарке и защитите «Качество воздуха» (E2) в Сарыарке от ухудшения. Повторите поиск: будет проверено 144 замены, 86 допустимы, показано 6 из 7 вариантов Парето. Первый вариант сохраняет M5 и меняет M12 на M14; после загрузки и серверного расчёта ожидаются 56,64 и стоимость 97. Защита сравнивает показатель с результатом текущего плана. Перед повторением поиска без ограничений снимите закрепление и защиту. Приоритеты поиска.

4. Проверить ограничения

Заново загрузите официальный пример. Пока выбраны все пять мер, добавить шестую нельзя. Удалите «Освещение и камеры» (M10): останутся четыре меры стоимостью 83. В направлении «Транспорт» попытайтесь добавить «Умные светофоры» (M2, стоимость 22). Набор на 105 не принимается, выбор остаётся 4 из 5, кнопка расчёта недоступна. Сервер также отклоняет такой набор: POST /api/simulate возвращает HTTP 422 с ошибкой и без нового Score.

5. Проверить карту и объяснение

Верните официальный пример и выполните расчёт. Раскройте «Карта города», переключите показатель и состояние до/после, выберите район и режим 3D. При выборе другого города доступна география, а показатели Астаны скрываются: датасетов других городов в модели нет.

Движущиеся машины на карте — обозначенная в интерфейсе симуляция транспорта. Это анимация, а не GPS-позиции, реальные дорожные измерения или прогноз времени прибытия.

В блоке AI-анализа проверьте обозначение режима. Итог выбранного сценария вычисляется сервером; числа в панели альтернатив предварительно рассчитываются на устройстве. Доступная модель даёт AI-анализ; без ключа, при лимите или ошибке провайдера остаются рассчитанные числа и явно обозначенное расчётное объяснение. Отсутствие живого ответа модели не мешает повторить числовую проверку.

Дополнительная проверка: материалы для принятия решения

После расчёта официального примера доступны следующие действия:

  1. Раскройте «Записка по решению», при желании заполните блок «Название и цель записки (необязательно)» и нажмите «Скачать записку». Полученный HTML открывается самостоятельно, без сервера и сети, содержит пять мер, результат 56,54, бюджет 95 / 5 и ограничения модели. Печать — через браузер; файл не требует запуска скриптов. После изменения плана сначала выполните новый расчёт. Состав записки.
  2. Раскройте «Поручения и исполнение» и нажмите «Создать черновик поручений»: появятся пять записей по выбранным мерам. Заполните тестового ответственного, срок и критерий проверки, выйдите из поля и перезагрузите страницу: ручные изменения сохраняются при редактировании. В паспорте реализации можно отдельно указать CAPEX/OPEX в тенге и период OPEX. Эти сведения не меняют стоимость в условных единицах и Score учебного сценария. Реестр хранится в браузере и не отправляет поручения реальным службам. Реестр и паспорта.
  3. Раскройте «Паспорта данных», затем «Посмотреть паспорт модели и добавить источник». Заполните тестовое наблюдение, оставьте «Проверка человеком» = «Нужно проверить» и нажмите «Сохранить паспорт». Его можно выгрузить через «Скачать паспорта». Такие записи хранятся отдельно от официального учебного датасета и не подставляются в расчёт. Заполнение паспорта само по себе не подтверждает достоверность наблюдения. Паспорта источников.

При переходе к другому городу расчётные панели и записка скрываются. Ранее сохранённые поручения остаются доступными, а создание нового набора требует свежего расчёта модели Астаны. Проверка общего рабочего маршрута.

Центр управления: план текстом и шкала времени

На /command-center.html карта занимает весь экран, а конструктор и результаты открываются поверх неё. Доступность страницы и HTTP 200 от API сами по себе не подтверждают готовый AI-план: ответ должен пройти проверку официального ядра.

Живой маршрут подтверждён 23 сентября в 17:43 GMT+5 на опубликованной версии 241c84b: запрос пяти мер вернул mode: ai, valid: true, бюджет 95, после применения — Score 56,54307 и девять кадров от квартала 0 до 8. Запрос, ответ и проверка интерфейса.

Откройте публичный центр управления или локальный /command-center.html. В блоке Ascension AI выберите пример «Помочь Нуре» или введите собственный запрос и нажмите «Оценить мой план». POST /api/plan принимает только текст prompt длиной до 4000 символов. При доступной модели сервер предлагает меры из каталога; результат появляется только после проверки пяти уникальных мер, бюджета и совместимости официальным ядром. Готовый вариант можно выбрать кнопкой «Применить и показать». Без ключа, при лимите или ошибке показывается недоступность AI-плана, без выдуманного результата; ручной конструктор продолжает работать. Контракт планирования.

После успешного расчёта шкала времени показывает кварталы 0–8. Для официального примера начальный кадр даёт Score 52,56, конечный — 56,54. Промежуточные кадры — учебное допущение о постепенном эффекте после задержки. POST /api/trajectory не вызывает модель и не требует API-ключа; стоимость в кварталах 1–8 относится ко всему плану, а не к освоению бюджета за квартал. Это не прогноз развития реального города. Модель динамики, управление картой и панелями.

Общий реестр команды: необязательная настройка

Локальные поручения можно вручную публиковать в общий реестр после настройки доступа. Роли owner и editor читают и публикуют реестр, viewer читает реестр и журнал. Публикация явная; при несовпадении версии возвращается конфликт HTTP 409, чтобы изменения другого участника не перезаписывались молча.

Оператор задаёт WORKSPACE_ORIGIN, WORKSPACE_SESSION_SECRET и WORKSPACE_ACCESS_POLICY на сервере и отдельно выдаёт ключи доступа. Это другой доступ, чем ADMIN_TOKEN панели обращений. Без корректной настройки API возвращает 503 WORKSPACE_DISABLED, локальные черновики продолжают работать. Node хранит общий реестр в var/workspace.sqlite либо WORKSPACE_DB_PATH, Worker — в TEAM_WORKSPACE. Роли и настройка, хранение и HTTP-подключение.

Дополнительная проверка: обращения жителей

Выполняйте после локального npm start, используя вымышленные данные.

  1. Откройте страницу жителя. Введите, например: «Тестовое обращение: во дворе не работает освещение», укажите район и тестовый адрес. Подтвердите согласие формы и нажмите «Отправить обращение». Геолокация не обязательна; фотографии предусмотрены в Telegram-пути.
  2. Сохраните выданные номер и личный код проверки. Они нужны для просмотра статуса.
  3. Откройте панель акима. В стандартном локальном режиме токен не нужен. Найдите обращение, заполните «Ответственный», установите статус «В работе» и нажмите «Сохранить изменения». Затем выберите «Решено», заполните «Решение / результат», например «Тестовая проверка выполнена», и сохраните.
  4. На странице жителя проверьте статус по номеру и коду: должны отображаться новое состояние и решение. Перезапустите сервер — отправленное обращение должно сохраниться.

Категория, приоритет и возможные повторы здесь определяются локальными правилами, которые сотрудник может исправить. AI симулятора не выполняет анализ обращений. Обращения не меняют исходные показатели районов.

Локальные данные сохраняются в var/complaints.json, вне публичной статики и Git. Один файл обслуживает один процесс сервера; другой путь задаётся через COMPLAINTS_FILE. Публичный Worker использует отдельный Durable Object Complaints: локальные и облачные обращения автоматически не синхронизируются. При удалённом доступе к панели требуется серверный ADMIN_TOKEN; без него разрешено только локальное демо. Подробности: контракт обращений, проверки модуля, безопасность.

Для собственного Telegram-бота предусмотрены npm run bot:local, npm run bot:hosted и npm run bot:status. Настройки ключей, локального polling и облачного webhook описаны в инструкции Telegram, шаги диалога — в описании меню. Polling и webhook одновременно не работают; переключение не переносит обращения между хранилищами.

У публичного @Ascension_City_bot зарегистрирован webhook на /api/telegram/webhook; проверка Telegram показала пустую очередь и отсутствие ошибки доставки. Полный диалог /start → обращение → ответ сотрудника ещё не подтверждён реальным входящим сообщением. Старые локальные обращения в облако автоматически не перенесены.

Технологии и устройство

КомпонентТехнология и назначение
Локальный серверNode.js 24+, встроенные HTTP и файловые API, JavaScript ES modules
ИнтерфейсHTML, CSS, браузерный JavaScript; сценарии, черновики поручений и паспорта в браузере; самостоятельный HTML-экспорт записки
РасчётОбщее детерминированное ядро src/core/simulator.js и фиксированный data/city.json
Поиск альтернативТо же ядро в браузерном Web Worker; esbuild 0.28.2 только для пересборки
КартаMapLibre GL JS 5.24.0, OpenFreeMap / OpenStreetMap, поиск Photon
AI-объяснение и текстовый планNVIDIA Nemotron 3 Super через Cloudflare Workers AI; сервер проверяет JSON, меры, бюджет и результаты. Для своего Node-сервера доступны NVIDIA NIM и OpenAI
План и динамика/api/plan: предложение мер с последующей официальной проверкой; /api/trajectory: девять учебных кадров без вызова AI
Публичный симуляторCloudflare Workers; постоянная общая квота AI в Durable Object
Обращения и ботNode.js с JSON-файлом или Cloudflare Worker с Durable Object Complaints; Telegram Bot API; общий модуль src/complaints/
Общий реестрНеобязательный доступ с тремя ролями; Node SQLite / Durable Object TEAM_WORKSPACE, версии и журнал изменений
ПроверкиВстроенный node:test; проверка синтаксиса и границ модулей; GitHub Actions для Node 24

Путь расчёта: браузер → HTTP API → проверка плана → расчёт по данным кейса → числовой результат → отдельное объяснение. Node.js и Cloudflare Worker используют общий API-слой. Клиент не подменяет датасет или формулу; запрос объяснения также проходит повторный серверный расчёт. Архитектура, контракт интеграции, развёртывание.

Формула и роль AI

Нужно выбрать ровно пять уникальных мер, не более двух из одного направления, общей стоимостью не выше 100. Для районной меры выбирается район. M1/M3 несовместимы в любом месте; M4/M7 и M5/M13 — в одном районе. Эффект меры учитывает задержку: (8 − lag) / 8; фиксированные синергии добавляются отдельно. Показатели ограничены диапазоном 0–100.

Score = 0.7 × средняя оценка районов с весами населения
      + 0.3 × оценка самого слабого района
      − число значений «район × показатель» строго ниже 40

Оценка района — взвешенная сумма его показателей. Неиспользованный бюджет не даёт дополнительных баллов. Официальные значения и правила в тестах.

Модель получает готовые факты и объясняет компромиссы; отдельный планировщик предлагает меры из каталога. Числовую сводку и допустимость плана определяет сервер. Качественный текст модели следует сверять с таблицей. Применение предложенного плана требует действия пользователя; реальные поручения автоматически не назначаются. Граница доверия AI.

Для собственного AI-режима владелец сервера задаёт OPENAI_API_KEY и, при необходимости, OPENAI_MODEL в игнорируемом .env.local. В публичном демо ключ хранится в серверном секрете; посетитель его не вводит. Ожидание ответа ограничено 25 секундами. Общая квота публичного демо — 100 допусков к модели, до 10 в минуту и двух одновременно; планирование и объяснение используют общий допуск, ошибки провайдера также его расходуют. После исчерпания квоты работает расчётное пояснение, а составление нового AI-плана становится недоступным.

Локальное объяснение может использовать проверенную замену одного решения. Это поиск среди соседних вариантов, без гарантии глобального оптимума. В серверном объяснении Cloudflare Worker такой перебор отключён; это явно указано в ответе.

Живое AI-объяснение проверено 23 сентября в 17:23 GMT+5 на версии 9b5a774. Два сценария A/B получили HTTP 200, mode: ai, available: true, модель gpt-6-astra. Текст модели различил школу в Нуре и школу в Есиле и сохраняющийся дефицит Нуры; сценарий с бюджетом 105 отклонён с HTTP 422. Отчёт и полные входы/ответы. Эта проверка не подтверждает отдельный /api/plan и не гарантирует свободную квоту сейчас; наличие ключа в /api/health также не доказывает успешный вызов модели.

Автоматическая проверка

Проверенный релиз v1.1.0: 601 тест прошёл, 0 ошибок, 1 необязательный workerd-тест пропущен. На публичном сайте проверены API и точное совпадение всех 113 статических файлов. GitHub Actions не запустился из-за блокировки биллинга аккаунта; это не считается успешным CI. Результаты финальной проверки. Инструкция клонирования выше фиксирует именно этот выпуск; последующие изменения main могут ещё не быть опубликованы.

В корне репозитория выполните:

npm test
node scripts/check-quality.js
npm run test:self-host

Ожидаемый итог — все проверки проходят, команды завершаются с кодом 0. Тесты проверяют официальные числа, ограничения бюджета и совместимости, HTTP-контракты, безопасный импорт, fallback AI, обращения и Telegram. test:self-host отдельно проверяет чистый запуск и сохранение обращения после реального перезапуска, используя временный каталог и вымышленные данные. Внешние AI/Telegram-вызовы в автоматических проверках заменены подставными ответами: тесты не требуют ключей и не подтверждают доступность живых сервисов. Проверку пользовательского пути выполняйте по шагам выше.

Готовый браузерный Worker включён в репозиторий. Только для его пересборки после изменения расчётного ядра или данных установите dev-зависимости и выполните:

npm ci
npm run build:policy-worker
npm run check:policy-worker

Проверка сравнивает сборку с сохранённым файлом; для обычного npm start эти команды не нужны. Сборка и интеграционные проверки.

Данные, лицензии и ограничения

Пять учебных районов не заявляются актуальным административным делением Астаны. Метки на карте — условные точки, а не официальные границы; наличие и высота 3D-зданий зависят от данных OSM. Другие города доступны для просмотра географии. Библиотека сценариев не синхронизируется между устройствами. Для применения в акимате потребуются реальные проверенные данные, калибровка эффектов, промышленное хранилище и управление доступом.

Звёзды
⭐ 3
Форки
0
Язык
JavaScript
Последний push
в прошлом месяце
Коммиты
214
Авторы
3
Файлы
346
Ветки
54

Авторы коммитов

Azalytical 169winsainl 27FoXs1953 19

История коммитов

  • 2026-09-23 17:58Merge pull request #59 from BAITC-Hacks/feat/h12-nvidia-assistantAzalytical
  • 2026-09-23 17:57Verify live NVIDIA analysis and safely render known measure referencesAzalytical
  • 2026-09-23 17:54Merge remote-tracking branch 'origin/main' into feat/h12-nvidia-assistantAzalytical
  • 2026-09-23 17:54Connect real NVIDIA Nemotron to grounded city analysis and planningAzalytical
  • 2026-09-23 17:54Merge pull request #58 from BAITC-Hacks/fix/telegram-live-integrationAzalytical
  • 2026-09-23 17:52Refresh hosted Telegram complaints automatically after staff loginAzalytical
  • 2026-09-23 17:49Restore access to AI and mayor views from Alisher dashboardAzalytical
  • 2026-09-23 17:47Merge pull request #57 from BAITC-Hacks/release/h12-finalAzalytical
Все коммиты (214)
  • 2026-09-23 17:47Restore access to AI and mayor views from Alisher dashboardAzalytical
  • 2026-09-23 17:45Finalize release evidence and document successful live AI planningAzalytical
  • 2026-09-23 17:40Restore selected green dashboard with updated navigation iconsFoXs1953
  • 2026-09-23 17:39Merge pull request #56 from BAITC-Hacks/release/h12-finalAzalytical
  • 2026-09-23 17:38Document final overview routes and one-step organizer startupAzalytical
  • 2026-09-23 17:37Merge pull request #55 from BAITC-Hacks/integration/approved-designwinsainl
  • 2026-09-23 17:37Merge portable organizer launchers and self-host storage fixesAzalytical
  • 2026-09-23 17:37Preserve platform launcher line endingsAzalytical
  • 2026-09-23 17:37Reconcile overview navigation with scenario transfer and final workspaceAzalytical
  • 2026-09-23 17:37Preserve contributor icon history with current approved SVG designAzalytical
  • 2026-09-23 17:36Make organizer launch one step and fix independent hosting configurationAzalytical
  • 2026-09-23 17:36Merge approved visual design while retaining current simulator workflowsAzalytical
  • 2026-09-23 17:34Replace sidebar symbols with semantic SVG iconsFoXs1953
  • 2026-09-23 17:33feat: ship approved Ascension overview and civic interfacewinsainl
  • 2026-09-23 17:32Connect final workspace and tutorial routes and support Windows test newlinesAzalytical
  • 2026-09-23 17:32Reconcile superseded integration candidates with the tested current applicationAzalytical
  • 2026-09-23 17:32Merge verified simulator navigation and transport reliability fixesAzalytical
  • 2026-09-23 17:31Reconcile final README and duplicate AI evidence handoffsAzalytical
  • 2026-09-23 17:31Finalize judge README with verified routes, launch and evidenceAzalytical
  • 2026-09-23 17:31Port compatible team demo and budget explanation into current applicationAzalytical
  • 2026-09-23 17:28Merge nine-page mayor workspace and verified visual assetsAzalytical
  • 2026-09-23 17:28Merge commit 'e862df1c62039d0322435a8920ae23655cef0024' into integration/approved-designwinsainl
  • 2026-09-23 17:28docs: add independent live AI verification evidenceAzalytical
  • 2026-09-23 17:28Record previously integrated artwork and motion histories and superseded Telegram adapterAzalytical
  • 2026-09-23 17:28Merge verified live AI analysis evidenceAzalytical
  • 2026-09-23 17:27docs: include independent AI audit and planner limitationAzalytical
  • 2026-09-23 17:27Resolve legacy cabinet branch against canonical release; retain accepted artwork and scenario library, port independent demo nextAzalytical
  • 2026-09-23 17:27Merge commit 'e81d2d279692b4a2b0852d858c4253ee6ae867e4' into integration/approved-designwinsainl
  • 2026-09-23 17:27feat: add mayor workspace with nine pages and visual assetsAzalytical
  • 2026-09-23 17:26docs: record live AI reaction to changed districtAzalytical
  • 2026-09-23 17:26docs: record live AI contrast verificationAzalytical
  • 2026-09-23 17:26fix: complete simulator user flows and verify hackathon criteriaFoXs1953
  • 2026-09-23 17:25Merge presentation and defense materialsAzalytical
  • 2026-09-23 17:25Merge final judge documentationAzalytical
  • 2026-09-23 17:25Merge AI planner capability fix for final releaseAzalytical
  • 2026-09-23 17:25Merge Node workspace revision conflict fixAzalytical
  • 2026-09-23 17:23fix: preserve workspace revision conflicts on Nodewinsainl
  • 2026-09-23 17:22fix: recognize server simulation as supported AI plan capabilityAzalytical
  • 2026-09-23 17:22docs: guide judges through the final application routesAzalytical
  • 2026-09-23 17:19docs: publish Ascension presentation and defense materialswinsainl
  • 2026-09-23 17:18Merge pull request #48 from BAITC-Hacks/docs/h12-original-requirementsAzalytical
  • 2026-09-23 17:18docs: add original task specification and district datasetAzalytical
  • 2026-09-23 17:14Merge pull request #47 from BAITC-Hacks/feat/h12-workspace-integrationAzalytical
  • 2026-09-23 17:12Declare public workspace origin for operator configurationAzalytical
  • 2026-09-23 17:11Record production runtime verification for workspace integrationAzalytical
  • 2026-09-23 17:10Merge pull request #46 from BAITC-Hacks/feat/h12-command-uiAzalytical
  • 2026-09-23 17:09Merge remote-tracking branch 'origin/main' into feat/h12-command-uiAzalytical
  • 2026-09-23 17:06feat: make the 3D command center primary and retain the compact simulatorAzalytical
  • 2026-09-23 17:06Integrate authenticated workspace through shared runtime adaptersAzalytical
  • 2026-09-23 17:06Merge remote-tracking branch 'origin/main' into feat/h12-workspace-integrationAzalytical
  • 2026-09-23 17:04Merge pull request #45 from BAITC-Hacks/feat/controlled-complaint-migrationAzalytical
  • 2026-09-23 17:04fix: reset local plans without waiting for network validationAzalytical
  • 2026-09-23 17:01Merge commit '49c590ffd783b6a5c21d5e06776d4d59c93b2704' into integration/checked-ui-migrationДанияр
  • 2026-09-23 17:00Merge remote-tracking branch 'origin/main' into feat/h12-command-uiAzalytical
  • 2026-09-23 17:00Merge commit '09e4fadcdf3374748f5964a14e97de2e06209dd6' into integration/checked-ui-migrationДанияр
  • 2026-09-23 16:59Document reconciliation when hosted delivery is already activeДанияр
  • 2026-09-23 16:59Merge pull request #43 from BAITC-Hacks/fix/compact-ui-hosted-integrationAzalytical
  • 2026-09-23 16:59Merge remote-tracking branch 'origin/main' into feat/h12-command-uiAzalytical
  • 2026-09-23 16:59feat: mount command center through shared app lifecycleAzalytical
  • 2026-09-23 16:58Add guarded atomic migration for existing complaint receiptsДанияр
  • 2026-09-23 16:58Merge commit '033dfe8' into feat/controlled-complaint-migrationДанияр
  • 2026-09-23 16:56Merge pull request #44 from BAITC-Hacks/docs/judge-readme-accessAzalytical
  • 2026-09-23 16:56Merge pull request #42 from BAITC-Hacks/integrate/h12-plan-apiAzalytical
  • 2026-09-23 16:55Merge pull request #41 from BAITC-Hacks/fix/h12-command-center-map-compatAzalytical
  • 2026-09-23 16:55docs: update public complaints and self-hosting accessAzalytical
  • 2026-09-23 16:53Keep fullscreen workspace compatible with district and transit mapAzalytical
  • 2026-09-23 16:52feat: share AI admission across plan and explanation routesAzalytical
  • 2026-09-23 16:52Preserve keyboard focus when initializing the collapsed mapДанияр
  • 2026-09-23 16:49Merge remote-tracking branch 'origin/main' into integrate/h12-plan-apiAzalytical
  • 2026-09-23 16:49Merge commit '5ef36e0efc562360c58d0730e3d10f96f68cafbf' into fix/compact-ui-hosted-integrationДанияр
  • 2026-09-23 16:49Restore compact simulator flow while preserving operator panelsДанияр
  • 2026-09-23 16:47Merge pull request #32 from BAITC-Hacks/docs/h12-self-hostingAzalytical
  • 2026-09-23 16:46Merge pull request #40 from BAITC-Hacks/fix/h12-manual-sync-copyAzalytical
  • 2026-09-23 16:46Merge pull request #39 from BAITC-Hacks/feat/h12-astana-command-centerAzalytical
  • 2026-09-23 16:46Merge pull request #35 from BAITC-Hacks/feat/h12-bus-routesAzalytical
  • 2026-09-23 16:46Merge remote-tracking branch 'origin/main' into integrate/h12-plan-apiAzalytical
  • 2026-09-23 16:45Merge pull request #36 from BAITC-Hacks/integrate/h12-citizen-primaryAzalytical
  • 2026-09-23 16:44Merge commit 'a16baf8' into integrate/h12-plan-apiAzalytical
  • 2026-09-23 16:44Merge pull request #37 from BAITC-Hacks/codex/unique-city-artworkAzalytical
  • 2026-09-23 16:44Merge pull request #38 from BAITC-Hacks/docs/judge-readme-releaseAzalytical
  • 2026-09-23 16:43docs: clarify that register synchronization is not automaticAzalytical
  • 2026-09-23 16:43Harden plan responses and keep map widgets synchronizedAzalytical
  • 2026-09-23 16:42Merge commit '74ee137' into integrate/h12-plan-apiAzalytical
  • 2026-09-23 16:41feat: add Astana bus catalogue and OpenStreetMap transit dataAzalytical
  • 2026-09-23 16:41docs: record integrated transit verificationAzalytical
  • 2026-09-23 16:41fix: clarify transit refresh failures and verified API availabilityAzalytical
  • 2026-09-23 16:41fix: bound transit response streams and route geometryAzalytical
  • 2026-09-23 16:39Add immersive Astana map workspace and Ascension AI widgetsAzalytical
  • 2026-09-23 16:38docs: document verified public decision workflowAzalytical
  • 2026-09-23 16:38fix: retain interactive district controls and record full UI verificationFoXs1953
  • 2026-09-23 16:36Merge pull request #34 from BAITC-Hacks/codex/map-district-hoverAzalytical
  • 2026-09-23 16:36Translate city plans through bounded structured AI proposalsAzalytical
  • 2026-09-23 16:36docs: record integrated citizen runtime verificationAzalytical
  • 2026-09-23 16:35feat: supply 25 unique city icons and three illustrated backgroundsFoXs1953
  • 2026-09-23 16:34fix: reject Telegram redirects with Worker-compatible fetch modeAzalytical
  • 2026-09-23 16:33merge: retain canonical hosting history and verified operator interfaceAzalytical
  • 2026-09-23 16:32Add shared AI admission and quarterly scenario dynamicsAzalytical
  • 2026-09-23 16:32Merge remote-tracking branch 'origin/main' into integrate/h12-citizen-primaryAzalytical
  • 2026-09-23 16:32fix: run demo end to end and reset scenarios without networkFoXs1953
  • 2026-09-23 16:32feat: add colored district sectors and improve map navigationFoXs1953
  • 2026-09-23 16:32Merge pull request #33 from BAITC-Hacks/feat/h12-team-workspaceAzalytical
  • 2026-09-23 16:31fix: persist Telegram replay ledger and atomic cleanup schedulingAzalytical
  • 2026-09-23 16:30Merge team policy constraints and judge guideДанияр
  • 2026-09-23 16:29Merge pull request #30 from BAITC-Hacks/feat/h12-operator-integrationAzalytical
  • 2026-09-23 16:29Merge commit '8952ec0' into integrate/h12-citizen-primaryAzalytical
  • 2026-09-23 16:29Merge commit '4947a81' into integrate/h12-citizen-primaryAzalytical
  • 2026-09-23 16:29merge: retain latest policy constraints and review documentationFoXs1953
  • 2026-09-23 16:29merge: integrate canonical citizen hosting with shared runtimeAzalytical
  • 2026-09-23 16:28feat: add colored district sectors and improve map navigationFoXs1953
  • 2026-09-23 16:28Merge pull request #31 from BAITC-Hacks/feat/h12-opex-periodAzalytical
  • 2026-09-23 16:28fix: run demo end to end and reset scenarios without networkFoXs1953
  • 2026-09-23 16:28merge: preserve all team pages and integrate unique city artworkFoXs1953
  • 2026-09-23 16:27docs: verify constrained browser search in combined interfaceAzalytical
  • 2026-09-23 16:26test: tolerate additive optional passport normalizationAzalytical
  • 2026-09-23 16:25feat: add optional authenticated team register workspaceAzalytical
  • 2026-09-23 16:25fix: share strict schema and isolate login rate limitsAzalytical
  • 2026-09-23 16:25test: verify workspace runtime persistence and integration contractAzalytical
  • 2026-09-23 16:25Document and verify independent Node and server hostingAzalytical
  • 2026-09-23 16:25fix: restore progressive simulator UI and mobile navigationДанияр
  • 2026-09-23 16:24Merge remote-tracking branch 'origin/main' into feat/h12-operator-integrationAzalytical
  • 2026-09-23 16:24feat: record an explicit period for manual OPEX estimatesAzalytical
  • 2026-09-23 16:24Merge pull request #29 from BAITC-Hacks/feat/h12-policy-constraints-integrationAzalytical
  • 2026-09-23 16:24feat: connect city exploration and operator workflowAzalytical
  • 2026-09-23 16:23Merge pull request #26 from BAITC-Hacks/docs/judge-readmeAzalytical
  • 2026-09-23 16:23Merge pull request #27 from BAITC-Hacks/feat/h12-action-workspace-hooksAzalytical
  • 2026-09-23 16:21Pass policy priority constraints through browser worker transportAzalytical
  • 2026-09-23 16:20fix: reject custom array prototypes before document traversalAzalytical
  • 2026-09-23 16:19docs: make README a reproducible guide for judgesAzalytical
  • 2026-09-23 16:17merge: preserve hosting commands with latest browser integrationДанияр
  • 2026-09-23 16:15Merge priority constraints core and panel for transport integrationAzalytical
  • 2026-09-23 16:15feat: expose strict document hooks for manual workspace exchangeAzalytical
  • 2026-09-23 16:15Add durable Telegram hosting and reproducible self-host setupAzalytical
  • 2026-09-23 16:14Merge pull request #22 from BAITC-Hacks/feat/h12-interactive-cityAzalytical
  • 2026-09-23 16:13Merge pull request #14 from BAITC-Hacks/feat/h12-browser-integrationAzalytical
  • 2026-09-23 16:12Merge pull request #24 from BAITC-Hacks/feat/h12-evidence-registerAzalytical
  • 2026-09-23 16:12Merge commit 'b8093af206d65addf16baa1379113c952a4fc5f3' into feat/citizen-ideas-daniyarДанияр
  • 2026-09-23 16:11fix: prevent district layout overflow on narrow screensFoXs1953
  • 2026-09-23 16:11fix: stop empty traffic animation when switching citiesAzalytical
  • 2026-09-23 16:10docs: record combined release verificationAzalytical
  • 2026-09-23 16:10merge: preserve dashboard and gate unavailable complaints serviceAzalytical
  • 2026-09-23 16:10Merge commit '8d487c090dd1a87913f4cfcbcbe00e2561936b49' into feat/h12-browser-integrationAzalytical
  • 2026-09-23 16:10merge: integrate shared HTTP architecture with hosted complaintsДанияр
  • 2026-09-23 16:10fix: assess evidence dates in the local calendarAzalytical
  • 2026-09-23 16:08feat: persist hosted complaints and Telegram sessionsДанияр
  • 2026-09-23 16:08feat: complete workspace navigation with shared scenario storageFoXs1953
  • 2026-09-23 16:08Merge pull request #20 from BAITC-Hacks/feat/h12-action-passportsAzalytical
  • 2026-09-23 16:08Merge pull request #19 from BAITC-Hacks/feat/h12-visual-polishAzalytical
  • 2026-09-23 16:06feat: add evidence passports and source readiness checksAzalytical
  • 2026-09-23 16:05Merge pull request #12 from BAITC-Hacks/refactor/h12-architecture-qualityAzalytical
  • 2026-09-23 16:05feat: preserve policy priorities when searching alternativesAzalytical
  • 2026-09-23 16:04docs: normalize security document endingAzalytical
  • 2026-09-23 16:04feat: add interactive 3D city explorer and simulated street trafficAzalytical
  • 2026-09-23 16:04docs: coordinate shared Cloudflare release with DaniyarFoXs1953
  • 2026-09-23 16:03merge: preserve citizen routes alongside shared HTTP architectureAzalytical
  • 2026-09-23 16:02Merge pull request #15 from BAITC-Hacks/feat/h12-action-registerAzalytical
  • 2026-09-23 16:02docs: record combined visual and motion verificationAzalytical
  • 2026-09-23 16:02fix: restore calculation controls after a city switchAzalytical
  • 2026-09-23 16:02Merge pull request #16 from BAITC-Hacks/feat/h12-decision-briefAzalytical
  • 2026-09-23 16:01feat: integrate city workspaces, citizen flows, and interface toolsFoXs1953
  • 2026-09-23 16:01feat: add manual implementation passports with schema migrationAzalytical
  • 2026-09-23 16:00Merge pull request #13 from BAITC-Hacks/fix/h12-ai-groundingAzalytical
  • 2026-09-23 15:59Merge pull request #17 from BAITC-Hacks/feat/citizen-ideas-daniyarwinsainl
  • 2026-09-23 15:58Polish city decision workspace visual systemAzalytical
  • 2026-09-23 15:58feat: add guided Telegram menu and support flowДанияр
  • 2026-09-23 15:57feat: add decision meeting brief with standalone HTML exportAzalytical
  • 2026-09-23 15:57feat(ui): add accessible interface motionAzalytical
  • 2026-09-23 15:56feat(ui): add accessible interface motionAzalytical
  • 2026-09-23 15:53fix: trust configured public origin behind TLS proxiesAzalytical
  • 2026-09-23 15:53fix: inspect original Unicode numbers before normalizationAzalytical
  • 2026-09-23 15:53fix: normalize conservative AI prose checksAzalytical
  • 2026-09-23 15:52feat: add local manual action register from calculated scenariosAzalytical
  • 2026-09-23 15:52feat: integrate browser alternatives and saved scenariosAzalytical
  • 2026-09-23 15:52design: add original city illustration assetsAzalytical
  • 2026-09-23 15:51design: add original city illustration assetsAzalytical
  • 2026-09-23 15:51docs: define visual integration and reference directionAzalytical
  • 2026-09-23 15:51merge: include latest policy alternatives panel from mainДанияр
  • 2026-09-23 15:49fix: bind AI numbers and recommendations to simulator factsAzalytical
  • 2026-09-23 15:48merge: integrate city map and latest scenario tools with minimal UIДанияр
  • 2026-09-23 15:46refactor: share HTTP contracts and enforce architecture qualityAzalytical
  • 2026-09-23 15:45ui: simplify simulator with progressive disclosureДанияр
  • 2026-09-23 15:44feat: add akim and resident workspaces with persistent desk operationsFoXs1953
  • 2026-09-23 15:42feat: add citizen complaints workflow and Telegram integrationДанияр
  • 2026-09-23 15:40Merge pull request #11 from BAITC-Hacks/feat/h12-policy-panelAzalytical
  • 2026-09-23 15:38feat: add isolated policy alternatives panelAzalytical
  • 2026-09-23 15:37Merge pull request #10 from BAITC-Hacks/feat/h12-scenario-libraryAzalytical
  • 2026-09-23 15:37Merge pull request #8 from BAITC-Hacks/feat/h12-policy-optionsAzalytical
  • 2026-09-23 15:36Merge pull request #9 from BAITC-Hacks/feat/h12-city-mapAzalytical
  • 2026-09-23 15:33feat: persist named Astana scenarios and safely import comparisonsAzalytical
  • 2026-09-23 15:32Merge pull request #7 from BAITC-Hacks/feat/h12-ui-03-alisherAzalytical
  • 2026-09-23 15:30feat: publish city map with 3D geography and protected AIAzalytical
  • 2026-09-23 15:29feat: add verified single-decision policy alternativesAzalytical
  • 2026-09-23 15:18H12-UI-03: export A/B comparison as JSONFoXs1953
  • 2026-09-23 15:09Merge pull request #6 from BAITC-Hacks/docs/track12-roadmapAzalytical
  • 2026-09-23 15:09docs: add track 12 delivery roadmap and team handoffsAzalytical
  • 2026-09-23 15:01Merge pull request #5 from BAITC-Hacks/feat/h12-sc-01-daniyarAzalytical
  • 2026-09-23 14:59docs: add verified scenario comparison casesДанияр
  • 2026-09-23 14:47Merge pull request #4 from BAITC-Hacks/feat/h12-compare-integrationAzalytical
  • 2026-09-23 14:46feat: integrate team scenario comparison into simulatorAzalytical
  • 2026-09-23 14:44Merge pull request #3 from BAITC-Hacks/feat/h12-ui-02-alisherAzalytical
  • 2026-09-23 14:40feat: add isolated scenario comparison panelFoXs1953
  • 2026-09-23 14:39Merge pull request #2 from BAITC-Hacks/feat/h12-app-integrationAzalytical
  • 2026-09-23 14:38feat: add interactive city simulator and reproducible demoAzalytical
  • 2026-09-23 14:30feat: add simulation HTTP API and grounded scenario explanationsAzalytical
  • 2026-09-23 14:28Merge pull request #1 from BAITC-Hacks/feat/h12-ui-01-alisherAzalytical
  • 2026-09-23 14:03docs: define decision selection UX and acceptance checksFoXs1953
  • 2026-09-23 13:56feat: add city simulation core and 25 acceptance checksAzalytical
Структура репозитория (346 файлов)
.dockerignore
.env.example
.gitattributes
.github/workflows/quality.yml
.gitignore
Dockerfile
README.md
START-WINDOWS.cmd
compose.yaml
data/city.json
deploy/Caddyfile
deploy/ascension-bot.service
deploy/ascension.service
docs/acceptance.md
docs/action-register.md
docs/ai-grounding.md
docs/ai-verification.md
docs/app-verification.md
docs/approved-design-release.md
docs/architecture.md
docs/ascension-plan-contract.md
docs/azamat-telegram-handoff.md
docs/browser-integration.md
docs/citizen-contract.md
docs/citizen-verification.md
docs/city-explorer.md
docs/city-graphics-notes.md
docs/command-center-integration.md
docs/command-center.md
docs/complaints-migration.md
docs/criteria-user-audit.md
docs/decision-brief.md
docs/design-image-prompt.txt
docs/design-validation.md
docs/design/mayor-asset-prompts.md
docs/design/mayor-overview-desktop.png
docs/design/mayor-overview-mobile.png
docs/design/mayor-overview-sketch.png
docs/design/mayor-planner-desktop.png
docs/design/mayor-result-desktop.png
docs/design/mayor-scenarios-sketch.png
docs/design/mayor-sketch-prompts.md
docs/design/mayor-workspace.md
docs/desk-complaints-contract.md
docs/evidence-register.md
docs/evidence/ai-live-verification-2026-09-23.json
docs/evidence/ai-plan-final-verification.json
docs/evidence/browser-alternatives.png
docs/evidence/browser-integration-combined-tests.txt
docs/evidence/browser-integration-tests.txt
docs/evidence/citizen-primary-runtime.json
docs/evidence/nvidia-live-verification.json
docs/evidence/plan-runtime.json
docs/evidence/policy-worker-build.json
docs/evidence/public-ai-smoke.json
docs/evidence/public-astana-3d.png
docs/evidence/public-result-ai.png
docs/evidence/wave2-public-release.json
docs/evidence/workspace-runtime.json
docs/final-release.md
docs/hosting.md
docs/integration-contract.md
docs/interface-motion-notes.md
docs/legacy-integration.md
docs/map-data.md
docs/map-sectors.md
docs/map-verification.md
docs/nvidia-ai.md
docs/operator-integration.md
docs/organizer-hosting.md
docs/plan-runtime.md
docs/policy-constraints-transport.md
docs/policy-options.md
docs/policy-panel.md
docs/policy-priority-constraints.md
docs/presentation/2026-09-23/.gitattributes
docs/presentation/2026-09-23/Ascension_Presentation.pdf
docs/presentation/2026-09-23/Ascension_Presentation_2026-09-23.pptx
docs/presentation/2026-09-23/Ascension_rech_i_zashchita.md
docs/presentation/2026-09-23/Ascension_rech_i_zashchita.pdf
docs/presentation/2026-09-23/README.md
docs/presentation/2026-09-23/START_HERE.md
docs/requirements/HackAlem AI_ «Аким на 5 часов» - AI-симулятор управления городом.docx
docs/requirements/Датасет районов.docx
docs/roadmap.md
docs/scenario-comparison.md
docs/scenario-library.md
docs/security.md
docs/self-hosting.md
docs/team-handoffs.md
docs/telegram-hosting.md
docs/telegram-ux.md
docs/trajectory-model.md
docs/transit-data.md
docs/ux/artwork-integration.md
docs/ux/comparison-checks.md
docs/ux/decision-selection.md
docs/ux/generated-artwork.md
docs/ux/unique-artwork.md
docs/visual-design.md
docs/visual-system-notes.md
docs/visual-verification.md
docs/workspace-runtime.md
docs/workspace.md
package-lock.json
package.json
public/_headers
public/action-register.css
public/action-register.js
public/app.js
public/assets/design/ascension-mark.svg
public/assets/design/city-emblem.svg
public/assets/design/city-grid.svg
public/assets/design/city-hero-approved.png
public/assets/design/scenario-lines.svg
public/assets/illustrations/budget-remaining.webp
public/assets/illustrations/budget.webp
public/assets/illustrations/city-hero-mobile.webp
public/assets/illustrations/city-hero.webp
public/assets/illustrations/city-texture.webp
public/assets/illustrations/clean-heating.webp
public/assets/illustrations/clinic.webp
public/assets/illustrations/decision-checklist.webp
public/assets/illustrations/digital-service.webp
public/assets/illustrations/district-almaty.webp
public/assets/illustrations/district-baikonur.webp
public/assets/illustrations/district-nura.webp
public/assets/illustrations/district-saryarka.webp
public/assets/illustrations/district-yesil.webp
public/assets/illustrations/ecology.webp
public/assets/illustrations/emergency-crew.webp
public/assets/illustrations/green-belt.webp
public/assets/illustrations/light-rail.webp
public/assets/illustrations/people.webp
public/assets/illustrations/plan.webp
public/assets/illustrations/safe-crossing.webp
public/assets/illustrations/safety.webp
public/assets/illustrations/school.webp
public/assets/illustrations/services.webp
public/assets/illustrations/sports.webp
public/assets/illustrations/traffic-lights.webp
public/assets/illustrations/transport.webp
public/assets/illustrations/utilities.webp
public/assets/mayor/astana-panorama.png
public/assets/mayor/dialogue-icon.png
public/assets/mayor/planning-icon.png
public/brand-ui.js
public/brand.css
public/budget-story.css
public/budget-story.js
public/citizen.css
public/citizen.js
public/citizens.html
public/city-explorer.css
public/city-explorer.js
public/city-traffic-model.js
public/classic.html
public/command-center-bridge.js
public/command-center.css
public/command-center.html
public/command-center.js
public/command-design.css
public/comparison.css
public/comparison.js
public/dashboard-app.js
public/dashboard-scenario-library.js
public/dashboard.css
public/decision-brief.css
public/decision-brief.js
public/demo.css
public/demo.html
public/demo.js
public/district-explorer.css
public/district-explorer.js
public/district-sectors.js
public/evidence-register.css
public/evidence-register.js
public/experience-nav.css
public/home-design.css
public/illustration-artwork.js
public/illustrations.css
public/index.html
public/location-map.css
public/location-map.js
public/map.css
public/map.js
public/mayor-analytics.html
public/mayor-data.html
public/mayor-districts.html
public/mayor-map.html
public/mayor-overview.html
public/mayor-planner.html
public/mayor-planner.js
public/mayor-requests.html
public/mayor-scenarios.html
public/mayor-tasks.html
public/mayor-workspace.css
public/mayor-workspace.js
public/mayor.html
public/mayor.js
public/method-guide.css
public/method-guide.js
public/motion.css
public/motion.js
public/places.js
public/policy-options-client.js
public/policy-options-panel.css
public/policy-options-panel.js
public/policy-options-worker.js
public/portal-design.css
public/release-integration.css
public/scenario-actions.css
public/scenario-library.css
public/scenario-library.js
public/scenario-view-transfer.js
public/simulator-design.css
public/styles.css
public/team-workspace.css
public/team-workspace.js
public/transit-astana-stops.json
public/transit-catalog.js
public/transit-panel.css
public/transit-panel.js
public/transit-provider.js
public/visual-design.css
public/widgets-design.css
public/workspace-nav.js
public/workspace-tools.css
public/workspace-tools.js
render.yaml
scripts/build-policy-worker.mjs
scripts/check-complaint-backup.js
scripts/check-quality.js
scripts/migrate-complaints.mjs
scripts/nvidia-smoke.js
scripts/refresh-transit-snapshot.mjs
scripts/self-host-smoke.js
scripts/start-local.js
src/ai-budget.js
src/ai/explain.js
src/ai/plan.js
src/ai/provider.js
src/browser/policy-options-worker.js
src/cloudflare.js
src/complaints/classify.js
src/complaints/durable-store.js
src/complaints/http.js
src/complaints/migration.js
src/complaints/route-core.js
src/complaints/store-core.js
src/complaints/store.js
src/complaints/telegram.js
src/complaints/worker-routes.js
src/core/policy-options.js
src/core/simulator.js
src/core/trajectory.js
src/http/api.js
src/http/errors.js
src/http/json.js
src/http/policy.js
src/http/workspace.js
src/runtime/ai-admission.js
src/runtime/local-ai-guard.js
src/runtime/node-explanation.js
src/runtime/node-json.js
src/runtime/node-origin.js
src/runtime/node-static.js
src/runtime/node-web-handler.js
src/runtime/node-workspace.js
src/runtime/planning.js
src/runtime/worker-explanation.js
src/runtime/worker-json.js
src/runtime/worker-workspace.js
src/server.js
src/telegram-mode.js
src/telegram-poll.js
src/telegram-setup.js
src/worker.js
src/workspace/auth.js
src/workspace/cloudflare.js
src/workspace/durable-repository.js
src/workspace/handler.js
src/workspace/node-sqlite.js
src/workspace/repository.js
src/workspace/schema.js
start-local.sh
tests/action-register-passports.test.js
tests/action-register-workspace.test.js
tests/action-register.test.js
tests/ai-admission.test.js
tests/ai-budget.test.js
tests/ai-grounding.test.js
tests/app-city-race.test.js
tests/app-reset.test.js
tests/budget-story.test.js
tests/citizen-capability.test.js
tests/city-explorer-lifecycle.test.js
tests/city-traffic-model.test.js
tests/command-center-bridge.test.js
tests/complaint-backup.test.js
tests/complaints-durable.test.js
tests/complaints-http.test.js
tests/complaints-migration-cli.test.js
tests/complaints-migration.test.js
tests/complaints-store.test.js
tests/complaints-worker.test.js
tests/dataset-contract.test.js
tests/decision-brief.test.js
tests/district-sectors.test.js
tests/evidence-register.test.js
tests/explain.test.js
tests/http-contract.test.js
tests/map-sectors.e2e.mjs
tests/mayor-planner.test.js
tests/node-explanation-cache.test.js
tests/node-web-handler.test.js
tests/node-workspace.test.js
tests/nvidia-provider.test.js
tests/nvidia-runtime.test.js
tests/plan-http.test.js
tests/plan.test.js
tests/planning.test.js
tests/policy-constraints-transport.test.js
tests/policy-options-client.test.js
tests/policy-options.test.js
tests/policy-panel.test.js
tests/policy-worker-bundle.test.js
tests/scenario-library.test.js
tests/scenario-view-transfer.test.js
tests/server.test.js
tests/simulator.acceptance.test.js
tests/telegram-ledger.test.js
tests/telegram-mode.test.js
tests/telegram-persistence.test.js
tests/telegram.test.js
tests/trajectory.test.js
tests/transit-catalog.test.js
tests/transit-provider.test.js
tests/worker-workspace.test.js
tests/worker.test.js
tests/workspace-http.test.js
tests/workspace-panel.test.js
tests/workspace-routing.test.js
tests/workspace-worker.test.js
tests/workspace.test.js
wrangler.jsonc
Ветки (54)

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.