📊 Writer IDE — Summary проекта 🎯 Видение проекта Локально-ориентированное веб-приложение (IDE для писателей), объединяющее rich-text редактирование, структурированное управление сюжетом и бесшовную интеграцию AI-ассистента для генерации, редактуры и анализа текста. 🛠️ Технологический стек Frontend: Next.js 14+ (App Router), TypeScript, Tailwind CSS, Tiptap (редактор), Zustand (state management) Backend: FastAPI (Python), Pydantic, Uvicorn AI Интеграция: Ollama (локально), OpenRouter API (облачные модели) Разработка: Zed IDE + AI-агенты (Qwen 2.5 Coder 7b/32b через OpenRouter) ✅ Что уже сделано (Этап 1: Фундамент) Задача Статус Что реализовано 1.1 Инициализация Frontend ✅ Выполнено Next.js + Tailwind + Tiptap + Zustand установлены 1.2 Zustand Store ✅ Выполнено appStore.ts с управлением документами (id, title, content, type) 1.3 Layout (3 колонки) ✅ Выполнено FileExplorer (слева), StoryExplorer (посередине), Editor (справа) 1.4 Tiptap Editor ✅ Выполнено Rich-text редактор с расширениями: TextStyle, Color, Underline, Blockquote, интеграция с Zustand 1.5 Toolbar ✅ Выполнено Панель форматирования: Bold, Italic, Underline, Quote, Color picker, Clear formatting, Font family, Font size 1.6 Backend инициализация ✅ Выполнено FastAPI с CORS, health check endpoint, структура папок (routers, services, models) 1.7 Frontend-Backend интеграция ✅ Выполнено API endpoints для документов, автосохранение с debounce, персистентность данных Итог Этапа 1: Рабочее приложение с rich-text редактором, трехколоночным интерфейсом и синхронизацией с backend. 🟡 Что планируется (Этап 2: AI Интеграция) Задача Статус Что будет реализовано 2.1 Backend AI сервис ⏳ Готово к началу LLMRouter для Ollama и OpenRouter, эндпоинт /api/ai/generate 2.2 Система пресетов ⏳ Ожидает Пресеты: Creative Draft (temp 0.85), Editor (temp 0.3), Brainstorm (temp 1.0) 2.3 Frontend AI клиент ⏳ Ожидает Типизированный API клиент ai-api.ts для вызова генерации 2.4 Inline AI меню ⏳ Ожидает Всплывающее меню при выделении текста с действиями: Переписать, Расширить, Упростить 2.5 Diff view ⏳ Ожидает Визуальное сравнение оригинального текста и AI-предложения с кнопками Accept/Reject 2.6 Интеграция AI действий ⏳ Ожидает Связывание AIMenu + AIDiffView + API для полноценного AI-редактирования Цель Этапа 2: Пользователь может выделить текст, выбрать AI действие, увидеть предпросмотр изменений в diff view и принять/отклонить. 🟠 Что планируется (Этап 3: Контекст и Story Bible) Автоматическое извлечение сущностей (персонажи, локации) из текста Панель Story Bible для управления контекстом Умная подача контекста в промпты для консистентности повествования Фоновый агент для обновления Story Bible при сохранении глав 🔴 Что планируется (Этап 4: Экспорт) Экспорт в PDF с форматированием (шрифты, отступы, оглавление) Экспорт в EPUB/FB2 для читалок Генерация иллюстраций (опционально) 🎯 Ключевые архитектурные решения Local First: Данные пользователя хранятся локально (backend как прокси к файловой системе) AI Router: Абстракция над Ollama и OpenRouter для гибкого переключения между локальными и облачными моделями Presets System: Жесткое разделение параметров генерации в зависимости от задачи (творчество vs анализ) Inline AI: AI-действия не прерывают поток писателя (встроенные меню, diff view вместо чата) Type Safety: Строгая типизация на frontend (TypeScript) и backend (Pydantic) 📁 Структура проекта 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 🚀 Следующий шаг (завтра) Задача 2.1: Backend AI сервис Модель: qwen/qwen-2.5-coder-32b-instruct (через OpenRouter) Что сделать: Создать backend/services/llm_router.py с поддержкой Ollama и OpenRouter Критерий успеха: Эндпоинт POST /api/ai/generate принимает промпт и возвращает сгенерированный текст 💡 Важные заметки Python 3.14 на сервере — используем пакеты без жестких версий в requirements.txt Zed IDE вместо VS Code для экономии памяти (16 GB RAM) Для разработки используем OpenRouter (Qwen 2.5 Coder), для тестирования функционала — локальную Ollama