2.8 KiB
2.8 KiB
Web MVP: AI Project Editor (Frontend-only)
Локальный frontend MVP без backend API.
Что реализовано
- Выбор папки проекта:
showDirectoryPickerв secure context (http://localhost,https://).- fallback через
input[webkitdirectory]вfile://(read-only режим).
- Папка
.gitскрывается и исключается из загрузки/подсчета. - Ограничения загрузки директории:
>1000файлов: предупреждение, можно продолжить.>10000файлов: предупреждение и запрет загрузки.- общий размер
>1MB: предупреждение, можно продолжить. - общий размер
>10MB: предупреждение и запрет загрузки.
- Рекурсивное дерево файлов и read-only просмотр содержимого.
- Центральная панель: только вкладки открытых файлов и просмотр содержимого.
- Правая панель: чат + ревью изменений (diff, accept/reject/apply).
- Ресайз 3 колонок с дефолтными ширинами
15% / 65% / 20%. - Темная тема по умолчанию (темно-синий акцент).
- Mock индексация: snapshot/changes статусы в UI.
- Mock чат-агент:
/demo-update <path>генерируетupdateдля файла./changeset { ... }принимает raw JSON и строит review.
- Валидация
changesetпо обязательным полям (create/update/delete). - Статусы review:
pending,accepted_partial,accepted_full,rejected,conflict,applied. Apply acceptedс повторной hash-проверкой до записи и подтверждением удаления.- Без git-операций и без автоприменения правок.
Запуск через Docker Compose
cd "/Users/alex/Dev_projects_v2/ai driven app process/v2/web_app"
docker compose up --build
Открыть: http://localhost:8080
Локальный запуск без Docker
cd "/Users/alex/Dev_projects_v2/ai driven app process/v2/web_app"
python3 -m http.server 8080
Открыть: http://localhost:8080
Пример changeset
{
"changeset": [
{
"op": "create",
"path": "notes/new_doc.md",
"proposed_content": "# New doc\\nhello",
"reason": "demo"
}
]
}
В чат отправить:
/changeset {"changeset":[{"op":"create","path":"notes/new_doc.md","proposed_content":"# New doc\\nhello","reason":"demo"}]}