Skip to content

Latest commit

 

History

History
762 lines (590 loc) · 29.6 KB

File metadata and controls

762 lines (590 loc) · 29.6 KB

📖 INFATON Control Center v4.0 — Руководство пользователя

Универсальный инструмент разработки
Git • Редактор кода • AI-модели • Агенты • Мониторинг
Версия документации: 4.0 | Дата: 2026-06-01


📑 Содержание

  1. Установка и первый запуск
  2. Панель мониторинга
  3. Работа с проектами и Git
  4. Файловый менеджер
  5. Редактор кода
  6. AI-агенты и чат
  7. Управление моделями LM Studio
  8. Мониторинг логов
  9. Справочная система
  10. PWA — установка как приложение
  11. Горячие клавиши
  12. Устранение неполадок
  13. Кроссплатформенная установка

1. Установка и первый запуск

1.1 Задача: Запустить все AI-сервисы на MacBook

Способ 1 — Автоматический скрипт (рекомендуется)

# Открыть Terminal.app на MacBook
~/Projects/automation/start-ai-services.sh

Скрипт проверяет и запускает 4 сервиса:

Сервис Порт Что делает
LM Studio 1234 Локальный LLM-сервер (OpenAI-совместимый API)
Open WebUI 8080 Веб-интерфейс для чатов с моделями
Agent TARS 8888 Автономный AI-агент с браузером
Control Center 9090 Эта панель — единый интерфейс

Способ 2 — Запуск вручную по отдельности

# 1. LM Studio — запустить приложение через Spotlight (⌘+Space → "LM Studio")
#    Затем загрузить модель через GUI или CLI:
~/.lmstudio/bin/lms load qwen/qwen3-vl-32b

# 2. Open WebUI
source ~/open-webui-env/bin/activate
OPENAI_API_BASE_URLS="http://localhost:1234/v1" \
OPENAI_API_KEYS="lm-studio" \
ENABLE_OPENAI_API=true \
open-webui serve --port 8080

# 3. Agent TARS
/opt/homebrew/bin/agent-tars run --server-port 8888 \
  --provider openai-compatible \
  --api-base-url http://localhost:1234/v1 \
  --model qwen/qwen3-vl-32b

# 4. Control Center
cd ~/Projects/automation/control-panel
python3 server.py

Проверка: Открыть в браузере http://localhost:9090
Все 4 индикатора на вкладке «Панель» должны быть зелёными ●

1.2 Задача: Подключиться к Control Center удалённо

Если MacBook доступен по сети (IP или Tailscale):

# С любого компьютера в той же сети:
http://192.168.1.xxx:9090        # Локальная сеть

# Через Tailscale (VPN):
http://your-mac-ip:9090       # Tailscale IP MacBook

# Через SSH-туннель (если порт закрыт):
ssh -L 9090:localhost:9090 user@your-mac-ip
# Затем открыть http://localhost:9090 на своём компьютере

1.3 Учётные данные

Сервис URL Логин Пароль
Open WebUI http://localhost:8080 your-email@example.com your-password
Control Center http://localhost:9090 — (без авторизации)
LM Studio API http://localhost:1234/v1 API Key: lm-studio
Your Web App https://your-domain.com your-email@example.com your-password

1.4 Структура файлов на MacBook

~/Projects/
├── your-project/           # 🏠 Главный проект (master)
│   ├── nextjs_space/           #    Исходный код Next.js
│   │   ├── app/                #    Страницы и API
│   │   ├── components/         #    UI-компоненты
│   │   ├── lib/                #    Библиотеки (auth, db, s3)
│   │   ├── prisma/             #    Схема БД
│   │   └── .env                #    Переменные окружения
│   └── docs/                   #    Документация
├── project-feature-a/                 # 🔐 SSO разработка
├── project-feature-b/             # 📋 DevTask разработка
├── project-tests/               # 🧪 Тесты
└── automation/
    ├── control-panel/
    │   ├── server.py           # Control Center (2479 строк)
    │   └── projects.json       # Конфигурация доп. проектов
    ├── start-ai-services.sh    # Запуск всех сервисов
    ├── start-agent-team.sh     # Запуск 4 агентов в tmux
    └── agent-manager/
        └── logs/agents.log     # Логи агентов

2. Панель мониторинга (вкладка 🎛)

2.1 Задача: Проверить состояние всех сервисов

Шаги:

  1. Открыть http://localhost:9090
  2. Нажать 🎛 в sidebar (первая кнопка) — вкладка «Панель»
  3. Секция Сервисы — 4 карточки:
    • ● зелёный = сервис работает
    • ● красный = сервис не отвечает
  4. Клик по карточке — открывает URL сервиса в новой вкладке

2.2 Задача: Контролировать использование памяти

Шаги:

  1. На вкладке 🎛 Панель — секция Info bar
  2. Показатели:
    • RAM bar: Используется/Всего GB (процент) — фиолетовый градиент
    • Swap: объём файла подкачки (должен быть 0 GB)
    • Давление: нет / низкое / среднее / высокое

Когда действовать:

  • Swap > 0 → выгрузить неиспользуемые модели
  • Давление «среднее» → закрыть Agent TARS если не нужен
  • Давление «высокое» → СРОЧНО выгрузить модели, система тормозит

2.3 Задача: Управлять моделями из панели

Шаги:

  1. На вкладке 🎛 Панель — секция Модели
  2. Каждая модель показывает:
    • Имя, размер (GB), параметры, статус (✅ loaded / ⚪ available)
  3. Кнопки:
    • Загрузить — загружает модель в VRAM (может занять 30-60 сек)
    • Выгрузить — освобождает память
  4. 🔄 Обновить — обновить список моделей

3. Работа с проектами и Git (вкладка 📁)

3.1 Задача: Открыть проект для работы

Шаги:

  1. Нажать 📁 в sidebar — вкладка «Проекты»
  2. В левой панели — список всех проектов:
    • 🏠 Главный (master) — production-код
    • 🔐 SSO Improvements — авторизация
    • 📋 DevTask Enhancements — задачи
    • 🧪 Test Coverage — тесты
  3. Рядом с каждым проектом:
    • Текущая ветка (⑂ master, ⑂ feature/...)
    • Бейдж с числом изменений (жёлтый) — если есть uncommitted файлы
  4. Кликнуть на проект → загрузится Git-панель + файловое дерево

3.2 Задача: Добавить новый проект (любую папку)

Способ 1 — Через интерфейс:

  1. Нажать в sidebar (внизу) или в шапке списка проектов
  2. Заполнить форму:
    • Ключ: уникальное имя латиницей (my-1c-project)
    • Путь: полный путь на MacBook (~/Projects/my-1c-project)
    • Название: отображаемое имя (Проект 1С:Управление)
    • Иконка: любой эмодзи (📁 🔧 💼 🎮 🏗)
  3. Нажать «Добавить»

Способ 2 — Через файл конфигурации:

# Редактировать на MacBook:
nano ~/Projects/automation/control-panel/projects.json
{
  "1c-erp": {
    "path": "~/Projects/1c-erp",
    "branch": "main",
    "label": "1С:ERP Управление",
    "icon": "🏗"
  },
  "api-gateway": {
    "path": "~/Projects/api-gateway",
    "branch": "develop",
    "label": "API Gateway",
    "icon": "🔗"
  }
}

Перезапустить сервер: lsof -ti:9090 | xargs kill -9 && cd ~/Projects/automation/control-panel && python3 server.py &

3.3 Задача: Получить последние изменения из Git (Pull)

Шаги:

  1. Выбрать проект в списке
  2. В Git-панели (центральная колонка, верх) нажать ⬇ Pull
  3. Выполняется git pull --rebase
  4. Toast-уведомление: «Pull OK» (зелёный) или «Pull failed: ...» (красный)

Эта же задача из терминала:

cd ~/Projects/your-project   # или другой проект
git pull --rebase

3.4 Задача: Зафиксировать изменения (Commit)

Шаги:

  1. Выбрать проект → нажать 📝 Commit в Git-панели
  2. В модальном окне:
    • Список всех изменённых файлов с чекбоксами ☑
    • Статусы: M (изменён), A (добавлен), D (удалён), ?? (новый)
    • Снять галочку = не включать файл в коммит
  3. Ввести сообщение коммита по формату:
    feat: добавлена авторизация SSO через ADFS
    fix: исправлена валидация email
    docs: обновлена документация API
    refactor: оптимизация запросов к БД
    test: E2E тесты для верификации
    
  4. Нажать Commit

Эта же задача из терминала:

cd ~/Projects/your-project
git add -A                    # или git add конкретные_файлы
git commit -m "feat: описание"

3.5 Задача: Отправить коммиты на сервер (Push)

Шаги:

  1. Выбрать проект → нажать ⬆ Push в Git-панели
  2. Выполняется git push
  3. Toast: «Push OK» или ошибка

Частая ошибка: «Push rejected» — сначала сделайте ⬇ Pull

Из терминала:

git push origin master          # или текущую ветку

3.6 Задача: Просмотреть изменения (Diff)

Шаги:

  1. Выбрать проект → нажать 📊 Diff
  2. Модальное окно показывает все изменения:
    • Зелёные строки + — добавлены
    • Красные строки - — удалены
    • Синие заголовки @@ — номера строк

Из терминала:

git diff                        # все изменения
git diff -- path/to/file.ts    # конкретный файл
git diff --cached               # staged изменения

3.7 Задача: Временно сохранить изменения (Stash)

Сценарий: работаете в SSO, нужно срочно починить master.

Шаги:

  1. В SSO проекте нажать 📦 Stash → изменения сохранены
  2. Переключиться на Главный проект → исправить → Commit → Push
  3. Вернуться в SSO → нажать 📤 Pop → изменения восстановлены

Из терминала:

git stash push -m "WIP: SSO refactor"   # сохранить
git stash list                           # показать список
git stash pop                            # восстановить последний
git stash drop stash@{0}                 # удалить

3.8 Задача: Переключиться на другую ветку

Шаги:

  1. Выбрать проект → нажать 🔀 Branches
  2. В модальном окне — список всех веток (локальных и remote):
    • ● текущая ветка
    • ○ другие ветки
  3. Кликнуть по ветке → git checkout branch_name

Из терминала:

git branch -a                           # список всех веток
git checkout feature/sso-improvements   # переключиться
git checkout -b feature/new-task        # создать новую ветку

3.9 Задача: Слить ветку в master (Merge)

Только из терминала (пока нет кнопки в UI):

cd ~/Projects/your-project
git checkout master
git merge --no-ff feature/sso-improvements -m "merge: SSO в master"
git push

4. Файловый менеджер

4.1 Задача: Найти нужный файл в проекте

Способ 1 — Навигация по дереву:

  1. Выбрать проект → файловое дерево (средняя колонка)
  2. Кликнуть на папку → открыть содержимое
  3. .. → подняться на уровень выше
  4. Иконки типов:
    Иконка Расширение Тип
    🐍 .py Python
    🔷 .ts TypeScript
    .tsx, .jsx React
    🟨 .js JavaScript
    📋 .json JSON
    🎨 .css CSS
    🌐 .html HTML
    📝 .md Markdown
    .yaml, .yml Конфигурация
    💎 .prisma Prisma Schema
    🔒 .env Переменные окружения
    🖥 .sh Shell-скрипт

Способ 2 — Фильтр:

  1. Ввести часть имени файла в поле «Фильтр файлов...»
  2. Дерево мгновенно фильтруется

Способ 3 — Поиск по содержимому (Ctrl+P):

  1. Нажать Ctrl+P (или ⌘+P на Mac)
  2. Ввести текст для поиска (например, getServerSession)
  3. Результат: список файлов с совпадениями и номерами строк
  4. Кликнуть по результату → файл откроется в редакторе на нужной строке

Из терминала:

cd ~/Projects/your-project/nextjs_space
grep -rn "getServerSession" --include="*.ts" --include="*.tsx" .
find . -name "*.prisma"

4.2 Git-статусы в дереве файлов

Индикатор Значение
M (жёлтый) Файл изменён (modified)
A (зелёный) Файл добавлен (staged)
D (красный) Файл удалён
?? Новый неотслеживаемый файл
(жёлтый, у папки) Внутри папки есть изменения

4.3 Скрытые папки и файлы

Автоматически скрываются: node_modules, .next, .build, .git, __pycache__, .cache, dist, .yarn, venv, .venv

Отображаются из скрытых: .env, .gitignore, .eslintrc.json, .prettierrc


5. Редактор кода

5.1 Задача: Отредактировать файл

Шаги:

  1. Кликнуть файл в файловом дереве → откроется в правой панели
  2. Редактировать как в обычном текстовом редакторе
  3. Ctrl+S (или ⌘+S) — сохранить
  4. Toast: «Сохранено: filename» (зелёный)

5.2 Задача: Работать с несколькими файлами

Шаги:

  1. Кликнуть первый файл → открывается в редакторе
  2. Кликнуть второй файл → открывается во втором табе
  3. Переключение между табами — кликом
  4. Закрытие таба — кнопка × (если файл изменён — спросит подтверждение)
  5. Жёлтая точка ● на табе = файл изменён, но не сохранён

5.3 Статусбар редактора

Поле Описание
Язык Определяется по расширению (Python, TypeScript, JSON...)
Строки Количество строк в файле
Размер Размер в B / K / M
Позиция Ln (строка), Col (колонка) курсора

5.4 Ограничения редактора

  • Максимальный размер файла: 2 МБ
  • Бинарные файлы (.png, .jpg, .pdf, .zip) не открываются
  • Tab вставляет 2 пробела (мягкий таб)
  • Для серьёзного рефакторинга → используйте AI-агенты (Aider) или VS Code

6. AI-агенты и чат (вкладка 🤖)

6.1 Задача: Запустить AI-агента для работы с кодом

Шаги:

  1. Нажать 🤖 в sidebar → вкладка «Агенты»
  2. В секции «Запуск AI-агента»:
    • Worktree: выбрать проект (SSO, DevTask, Tests...)
    • Агент: выбрать тип
    • Задание (опционально): описать задачу
  3. Нажать ▶ Запустить

Типы агентов:

Агент Команда Для чего
⚡ Aider aider --model openai/MODEL Автоматические правки кода, понимает Git
🔧 OpenCode opencode Интерактивная разработка в CLI
🧠 SmoLAgent smolagent --model openai/MODEL Мульти-модальный агент

Эта же задача из терминала:

# Aider
cd ~/Projects/project-feature-a
export OPENAI_API_BASE=http://localhost:1234/v1
export OPENAI_API_KEY=lm-studio
aider --model openai/qwen2.5-coder-32b-instruct-4bit --no-auto-commits --dark-mode

# OpenCode
cd ~/Projects/project-tests
opencode

# Все 4 агента одновременно
~/Projects/automation/start-agent-team.sh

6.2 Задача: Работать с 4 агентами параллельно (Agent Team)

Шаги:

~/Projects/automation/start-agent-team.sh

Создаёт tmux-сессию agents с 4 панелями:

┌──────────────┬──────────────┐
│ 🔐 SSO       │ 📋 DevTask   │
│ (aider)      │ (aider)      │
├──────────────┼──────────────┤
│ 🧪 Тесты     │ 📊 Главный   │
│ (opencode)   │ (monitor)    │
└──────────────┴──────────────┘

Управление tmux:

tmux attach -t agents           # Подключиться к сессии
# Ctrl+B → стрелки             — переключение панелей
# Ctrl+B → D                   — отключиться (сессия жива)
# Ctrl+B → Z                   — развернуть/свернуть панель
# Ctrl+B → [                   — прокрутка (q — выход)

6.3 Задача: Быстро спросить AI (Quick Chat)

Шаги:

  1. На вкладке 🤖 → секция Quick Chat
  2. В чипе справа — текущая модель (qwen/qwen3-vl-32b)
  3. Ввести вопрос в поле, нажать Enter или
  4. Ответ в пузыре AI — поддерживает Markdown, код

Примеры вопросов:

  • «Как реализовать OIDC авторизацию в Next.js?»
  • «Напиши Prisma миграцию для таблицы Tasks»
  • «Объясни этот код: [вставить код]»
  • «Найди баг в функции calculateTotal()»
  • «Напиши тест Playwright для страницы логина»
  • «Как подключить ADFS к NextAuth?»

Эта же задача через Open WebUI (более мощный интерфейс):

  1. Открыть http://localhost:8080
  2. Логин: your-email@example.com / your-password
  3. Полная история чатов, настройка промптов, загрузка файлов

Эта же задача через API (curl):

curl -s http://localhost:1234/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer lm-studio" \
  -d '{
    "model": "qwen/qwen3-vl-32b",
    "messages": [
      {"role": "system", "content": "Ты помощник разработчика. Отвечай на русском."},
      {"role": "user", "content": "Как сделать SSO logout в Next.js?"}
    ],
    "temperature": 0.3,
    "max_tokens": 2048
  }' | python3 -m json.tool

7. Управление моделями LM Studio

7.1 Задача: Загрузить модель

Способ 1 — Через панель:

  1. Вкладка 🎛 → секция «Модели»
  2. Найти модель с пометкой ⚪ available
  3. Нажать Загрузить → ожидание 30-60 сек

Способ 2 — Через CLI:

~/.lmstudio/bin/lms load qwen/qwen3-vl-32b
~/.lmstudio/bin/lms load qwen2.5-coder-32b-instruct-4bit

Способ 3 — Через API:

curl -X POST http://localhost:1234/v1/models/load \
  -H "Content-Type: application/json" \
  -d '{"model": "qwen/qwen3-vl-32b"}'

7.2 Задача: Выгрузить модель (освободить память)

Способ 1 — Через панель: кнопка Выгрузить на карточке модели

Способ 2 — Через CLI:

~/.lmstudio/bin/lms unload qwen/qwen3-vl-32b

7.3 Рекомендуемые модели

Модель Размер Назначение VRAM
Qwen3 VL 32B ~18 GB Vision + Code — основная рабочая ~20 GB
Qwen 2.5 Coder 32B ~18 GB Программирование — для Aider ~20 GB
DeepSeek R1 0528 ~18 GB Рассуждения, сложные задачи ~20 GB

⚠️ M4 Max (64 GB) может держать 1-2 больших модели одновременно


8. Мониторинг логов

8.1 Задача: Просмотреть логи AI-агентов

Через панель:

  1. Вкладка 🤖 → секция «Логи агентов» (внизу)
  2. В dropdown выбрать tmux-сессию (agents)
  3. Нажать 🔄 → загрузятся последние 50 строк
  4. Флажок auto = обновление каждые 5 сек

Через терминал:

tmux attach -t agents            # Подключиться к сессии
# или
tmux capture-pane -t agents -p   # Показать содержимое

8.2 Задача: Просмотреть логи сервисов

cat /tmp/cc.log                  # Логи Control Center
cat /tmp/open-webui.log          # Логи Open WebUI
cat /tmp/agent-tars.log          # Логи Agent TARS
cat ~/Projects/automation/agent-manager/logs/agents.log  # Логи агентов

9. Справочная система (вкладка 📚)

9.1 Задача: Найти инструкцию по задаче

Шаги:

  1. Нажать 📚 в sidebar → вкладка «Справка»
  2. 7 тематических секций, 20 разделов
  3. Кликнуть на заголовок → раскрыть содержимое
  4. Кликнуть повторно → свернуть

Секции:

  • 🏁 Начало работы (2 раздела)
  • 📁 Работа с проектами (3 раздела)
  • 🔀 Git и контроль версий (4 раздела)
  • 🤖 AI-инструменты (3 раздела)
  • 🎛 Мониторинг и сервисы (2 раздела)
  • 🏗 Проект DST ERP / INFATON (3 раздела)
  • 🔧 Настройка и обслуживание (3 раздела)

10. PWA — установка как приложение

10.1 Задача: Установить как приложение на MacBook

Шаги:

  1. Открыть http://localhost:9090 в Chrome
  2. Нажать 📲 внизу sidebar, или: Chrome → Меню (⋮) → «Установить приложение»
  3. Приложение появится в Launchpad

10.2 Задача: Установить на iPhone/iPad

Шаги:

  1. Открыть http://your-mac-ip:9090 в Safari (Tailscale нужен)
  2. Нажать кнопку «Поделиться» (⬆)
  3. Выбрать «На экран Домой»
  4. Назвать «INFATON CC» → Добавить

11. Горячие клавиши

Глобальные

Комбинация Действие
Ctrl+S / ⌘+S Сохранить текущий файл
Ctrl+P / ⌘+P Поиск по содержимому файлов
Escape Закрыть модальное окно
Enter Отправить сообщение в Quick Chat

Редактор

Комбинация Действие
Tab Вставить 2 пробела

Терминал (tmux)

Комбинация Действие
Ctrl+BD Отключиться от сессии
Ctrl+B↑↓←→ Переключение панелей
Ctrl+BZ Развернуть/свернуть панель
Ctrl+B[ Режим прокрутки (q — выход)

12. Устранение неполадок

12.1 Сервис не запускается / порт занят

# Найти процесс на порту
lsof -i :9090                   # (или 1234, 8080, 8888)

# Убить процесс
kill -9 $(lsof -ti:9090)

# Перезапустить все сервисы
~/Projects/automation/start-ai-services.sh

12.2 LM Studio не отвечает

# Проверить API
curl http://localhost:1234/v1/models

# Если пусто — модель не загружена:
~/.lmstudio/bin/lms load qwen/qwen3-vl-32b

# Если 'Connection refused' — LM Studio не запущен:
# Открыть приложение LM Studio через Launchpad

12.3 Git ошибки

# Push rejected — сначала pull:
git pull --rebase
git push

# Merge conflict:
# Открыть конфликтные файлы в редакторе
# Найти <<<< ==== >>>> маркеры, разрешить
git add .
git commit -m "resolve: merge conflict"

# Detached HEAD:
git checkout master

12.4 Перезапуск Control Center

lsof -ti:9090 | xargs kill -9
cd ~/Projects/automation/control-panel
python3 server.py &

# Проверить:
curl http://localhost:9090/

13. Кроссплатформенная установка

13.1 Docker (любая ОС — рекомендуется)

docker run -d --name infaton-cc \
  -p 9090:9090 \
  -v ~/Projects:/projects \
  -v ~/.lmstudio:/root/.lmstudio \
  infaton/control-center:latest

13.2 macOS / Linux — скрипт установки

curl -fsSL https://raw.githubusercontent.com/infaton/control-center/main/install.sh | bash

13.3 Windows — exe-инсталлятор

Скачать InfatonCC-Setup.exe и установить. Требует Python 3.9+ или встроенный Python.

13.4 VPS / Сервер (Ubuntu/Debian)

sudo apt update && sudo apt install -y python3 git
cd /opt
git clone https://github.com/infaton/control-center.git
cd control-center
python3 server.py &
# Доступ: http://ваш_ip:9090

Подробнее о каждом варианте установки — в файлах Dockerfile, install.sh, install.bat, install-macos.sh в папке проекта.


© INFATON Control Center v4.1 | 2026