3.6 KiB
3.6 KiB
Writer IDE: Архитектурная спецификация
🎯 Видение проекта
Создание локально-ориентированного веб-приложения (IDE для писателей), которое объединяет мощь rich-text редактирования, структурированное управление сюжетом (Story Bible) и бесшовную интеграцию AI-ассистента для генерации, редактуры и анализа текста. Приложение должно давать пользователю полный контроль над данными (локальное хранение) и гибкость в выборе AI-моделей (OpenRouter для качества, Ollama для приватности).
🛠️ Технологический стек
Frontend
- Фреймворк: Next.js 14+ (App Router, TypeScript)
- Стилизация: Tailwind CSS (строгое использование utility-классов, никаких inline-styles)
- Редактор: Tiptap (Headless wrapper вокруг ProseMirror)
- Управление состоянием: Zustand (легковесный, без бойлерплейта Redux)
- Иконки: Lucide React
- HTTP-клиент: Axios (с типизацией ответов)
Backend
- Фреймворк: FastAPI (Python 3.10+)
- Валидация: Pydantic V2
- Асинхронность: Строгое использование
async/await - Хранение: Локальная файловая система (JSON/Markdown файлы в директории проекта пользователя)
AI Интеграция (Внутренняя логика приложения)
- Роутинг: Абстрактный сервис, поддерживающий как OpenRouter API, так и локальный Ollama (
http://localhost:11434). - Пресеты: Жесткое разделение параметров генерации (
temperature,top_p) в зависимости от действия (Creative Draft, Editor, Brainstorm).
📁 Структура проекта
writer-ide/
├── PROJECT.md # Этот файл
├── TASKS.md # Пошаговый план разработки
├── AGENTS.md # Стратегия выбора AI-моделей
├── .cursorrules # Правила для AI-ассистента в IDE
│
├── frontend/ # Next.js приложение
│ ├── src/
│ │ ├── app/ # Next.js App Router (pages, layout)
│ │ ├── components/ # UI компоненты
│ │ │ ├── editor/ # Tiptap редактор, Toolbar, AI-меню
│ │ │ ├── sidebar/ # FileExplorer, StoryExplorer
│ │ │ └── ui/ # Переиспользуемые кнопки, инпуты
│ │ ├── lib/ # Утилиты, конфигурация axios, типы
│ │ └── stores/ # Zustand stores (appStore, editorStore)
│ └── package.json
│
└── backend/ # FastAPI сервер
├── main.py # Точка входа, настройка CORS
├── routers/ # API эндпоинты (projects, documents, ai)
├── services/ # Бизнес-логика (file_ops, llm_router)
└── models/ # Pydantic схемы запросов/ответов