initial commit
Build and Push Docker Images / build-and-push (push) Failing after 3m33s

This commit is contained in:
admin committed 2026-11-07 16:39:43 +03:00
commit 46af290db3
100 files changed
+16663

No files matched your search

+64
View File
@@ -0,0 +1,64 @@
# Правила разработки Writer IDE
## Общие принципы
- Ты — опытный Fullstack разработчик (Next.js + FastAPI).
- Всегда пиши типизированный TypeScript код. Избегай `any`.
- Для стилизации используй ТОЛЬКО Tailwind CSS. Никаких inline-стилей или CSS-модулей, если это не критично.
- Состояние приложения управляется через Zustand.
- API-запросы типизированы и вынесены в `frontend/src/lib/api.ts`.
## Frontend (Next.js App Router)
- Фреймворк: Next.js 14+ (App Router, TypeScript).
- Компоненты должны быть `'use client'` только если используются хуки или интерактивность.
- Структура компонента: Импорты -> Типы -> Компонент -> Экспорт.
- Используй Lucide React для иконок.
- Tailwind CSS v4: конфигурация через `@theme` в `globals.css` и `@plugin` для плагинов.
- Для форматирования текста в редакторе используй класс `prose` (плагин `@tailwindcss/typography`).
## Tiptap Редактор
- Редактор: `@tiptap/react` с `StarterKit` и дополнительными расширениями.
- Базовые расширения: `TextStyle`, `Color`, `Underline`, `Blockquote`.
- Редактор должен быть обёрнут в `div` с классами `max-w-3xl mx-auto prose`.
- `onUpdate` вызывает экшен Zustand store для сохранения контента.
## Backend (FastAPI)
- Фреймворк: FastAPI (Python 3.10+).
- Используй асинхронные функции (`async def`) для всех эндпоинтов.
- Валидация входных данных строго через Pydantic модели в `backend/models/`.
- Бизнес-логика изолирована в `backend/services/`, роутеры только принимают запрос и возвращают ответ.
- CORS: разрешён `http://localhost:3000`.
## Управление состоянием (Zustand)
- Store располагается в `frontend/src/stores/`.
- Определяй интерфейсы для всех сущностей (Document, Project и т.д.).
- Инициализируй store с тестовыми данными для разработки.
## AI Интеграция (внутренняя логика приложения)
- Роутинг: Абстрактный сервис, поддерживающий OpenRouter API и локальный Ollama (`http://localhost:11434`).
- Пресеты: Жесткое разделение параметров генерации (`temperature`, `top_p`) по действию (Creative Draft, Editor, Brainstorm).
## Процесс работы
1. Прежде чем писать код, кратко опиши план действий (1-3 предложения).
2. Пиши код модульно. Если файл превышает 200 строк, предложи разбить его.
3. После генерации кода укажи, как его протестировать или проверить.
## Структура проекта
```
writer-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 схемы запросов/ответов
```