Files
writer-ide/PROJECT.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

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 схемы запросов/ответов