Files
writer-ide/STATUS.md
T
admin 46af290db3
Build and Push Docker Images / build-and-push (push) Failing after 3m33s
initial commit
2026-11-07 16:39:43 +03:00

6.2 KiB
Raw Blame History

📊 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