Uname:Linux antigravity-cli 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64

Base Dir : /var/www/moonbloom

User : wp-moonbloom


403WebShell
403Webshell
Server IP : 85.155.190.233  /  Your IP : 216.73.216.103
Web Server : nginx/1.24.0
System : Linux antigravity-cli 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User : wp-moonbloom ( 1001)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /opt/Gemini_Swarm_Core/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/Gemini_Swarm_Core/SWARM_ROADMAP.md
# 🗺️ Antigravity Swarm Master Roadmap & Reference

Центральный справочник и дорожная карта **Antigravity Swarm (v4.0)**. Консолидирует философию, архитектуру, структуру каталогов и план развития мультиагентного роя.

> **v4.0 Migration Note:** Рой полностью мигрирован с Gemini CLI (`.gemini/agents/`) на Antigravity CLI (agy) с динамическими субагентами (`define_subagent` / `invoke_subagent`). Статических `.md` файлов агентов больше нет.

---

## 1. Философия и принципы (Swarm Identity)

Рой построен по топологии **Hub-and-Spoke**, где центральный диспетчер (**CEO / Orchestrator**) координирует специализированных субагентов. Разработка ведётся по методологии **Spec-Driven Development (SDD)**.

### Ключевые контракты:
- **Surgical Precision:** Минимальный объём изменений. Никакого «на всякий случай» кода и несанкционированных рефакторингов.
- **Parameters Guard:** Перед запуском опасных инструментов (запись файлов, shell-команды) — обязательная проверка безопасности аргументов.
- **Workspace Isolation:** Файлы целевых репозиториев анализируются строго на месте. Никакие артефакты других проектов не копируются в управляющий репозиторий.
- **OAuth Only:** VPS использует личную OAuth-подписку. `GOOGLE_API_KEY` отсутствует. ADK и google-genai SDK запрещены.

---

## 2. Архитектура субагентов (agy Dynamic Subagents)

> **КРИТИЧНО:** В Antigravity CLI (agy) нет статических файлов агентов. Субагенты создаются динамически через `define_subagent` и вызываются через `invoke_subagent`.

### Встроенные субагенты (не требуют define):
| Агент | Назначение |
|:---|:---|
| `research` | Поиск по кодовой базе и навигация |
| `browser` | Управляемый браузер (`/browser`) |
| `self` | Клон текущего агента |

### Кастомные субагенты (определяются CEO в GEMINI.md):
| Агент | Роль | Типичные задачи |
|:---|:---|:---|
| **oracle** | Исследователь и спек-райтер | `constitution.md`, `spec.md`, веб-поиск |
| **prometheus** | Архитектор | `plan.md`, `tasks.md` |
| **librarian** | Картограф кодовой базы | list_dir, grep, symbol discovery |
| **junior** | Хирургический имплементор | Правки ≤3 файлов, TDD, чеклисты |
| **frontend** | UI-специалист | HTML/CSS/JS, мобильная адаптация |
| **jules** | Тяжёлый рефакторинг | Сложные multi-file задачи → GitHub PR |
| **stitch** | Design-to-Code компилятор | Stitch MCP canvas → компоненты |
| **quality-validator** | Финальный QA гейт | Аудит против spec/plan/tasks |

### Паттерн использования:
```
# Шаг 1: CEO определяет субагента (один раз за сессию)
define_subagent(name="oracle", system_prompt="...", tools=["search_web", ...])

# Шаг 2: CEO вызывает
invoke_subagent("oracle", task="Исследуй лучшие практики...")
```

Полные системные промпты всех агентов — в [`Gemini_Swarm_Core/GEMINI.md`](GEMINI.md) раздел **Subagent Definitions**.

---

## 3. SDD Pipeline (Spec-Driven Development)

```
oracle (spec) → prometheus (plan/tasks) → [USER APPROVAL Checkpoint] → junior/jules/frontend/stitch (code/TDD) → quality-validator (QA)
```

Мультиагентный рой функционирует строго по методологии **Spec-Driven Development (SDD)**, регламентированной глобальным навыком **`spec-kit`** (`.agents/skills/spec-kit/SKILL.md`):

| Фаза | Агент / Навык | Артефакт | Роль фазы |
|:---|:---|:---|:---|
| **1. Research & Spec** | `oracle` / `spec-kit` | `specs/<feature>/spec.md` | Сбор контекста, выявление требований, разработка API-контрактов и схемы БД. |
| **2. Design & Tasks** | `prometheus` / `spec-kit` | `specs/<feature>/plan.md`<br>`specs/<feature>/tasks.md` | Декомпозиция архитектуры на чек-лист атомарных задач с TDD-тестами. |
| **3. Approval Block** | **USER (Mikhail)** | - | **Критический гейт:** Запрет любых изменений кода до ручного утверждения спецификации и плана пользователем. |
| **4. Implementation** | `junior`/`jules`/`frontend`/`stitch` | Исходный код, unit-тесты | Пошаговое выполнение чек-листа в цикле TDD (красный тест -> зеленый код -> рефакторинг). |
| **5. Validation** | `quality-validator` | Логи тестов, вердикт | Финальное тестирование, аудит безопасности и соответствия плану. |

**Bug fix flow:** `research` (поиск багов) → `junior` (исправление) → `quality-validator` (тесты и приемка)

---

## 4. Карта каталогов (Directory Map)

> **Золотое правило:** `.agents/` и `.specify/` живут в **корне репо** (`Gemini CLI/`) — это читает agy локально.
> `Gemini_Swarm_Core/` — это то что **деплоится на VPS** и там становится `/opt/Gemini_Swarm_Core/`.
> На VPS agy запускается с `CWD=/opt/Gemini_Swarm_Core` — он видит только то что внутри этой папки.

### Локальный репо (git: `Gemini CLI/`)

```
Gemini CLI/                              ← git repo root / локальный workspace agy
│
├── .agents/                             ← [ТОЛЬКО ЛОКАЛЬНО] agy читает при локальном запуске
│   ├── settings.json                    ← telemetry config
│   ├── skills/                          ← 20 навыков (прогрессивная загрузка: сначала только description)
│   │   ├── junior/SKILL.md              ← хирургическая имплементация ≤3 файлов
│   │   ├── prometheus/SKILL.md          ← архитектура и планирование
│   │   ├── quality-validator/SKILL.md   ← QA финальный гейт
│   │   ├── librarian/SKILL.md           ← картографирование кодовой базы
│   │   ├── cognitive-router/SKILL.md    ← маршрутизация задач по агентам/моделям
│   │   ├── context-manager/SKILL.md     ← управление контекстом между субагентами
│   │   ├── code-commentator/SKILL.md    ← документирование кода
│   │   └── stitch-*/SKILL.md            ← 8 навыков дизайна через Stitch MCP
│   └── plugins/
│       └── antigravity-swarm/
│           ├── mcp_config.json          ← Stitch MCP (⚠️ содержит API ключ)
│           └── rules/                   ← правила роя (sdd-pipeline, isolation, retry)
│
├── .specify/                            ← [ТОЛЬКО ЛОКАЛЬНО] persistent memory роя
│   └── memory/
│       ├── constitution.md              ← oracle пишет сюда глобальные стандарты проекта
│       ├── dynamic_agent_decision_logic.md  ← матрица: когда Junior vs Jules
│       └── swarm_memory_architecture.md    ← архитектура SQLite изоляции
│
├── .geminiignore                        ← что agy никогда не читает (секреты, node_modules)
├── .gitignore                           ← VPS.md (чтобы не деплоить локальные заметки)
│
└── Gemini_Swarm_Core/                   ← [ДЕПЛОИТСЯ НА VPS] → /opt/Gemini_Swarm_Core/
    ├── GEMINI.md                        ← системный промпт CEO (agy читает при CWD=/opt/...)
    ├── AGENTS.md                        ← pointer → GEMINI.md (для совместимости)
    ├── MISSION_CONTROL.md               ← Kanban доска (CEO обновляет)
    ├── SWARM_STATUS.md                  ← live лог миссий (CEO обновляет)
    ├── SWARM_ROADMAP.md                 ← этот файл — единый справочник
    ├── specs/                           ← SDD артефакты (spec.md, plan.md, tasks.md)
    ├── docs/archive/                    ← архив исторических планов
    ├── src/web/                         ← Telegram Mini App (статика)
    ├── requirements.txt                 ← Python зависимости (pip install на VPS через CI/CD)
    └── scripts/
        ├── tg_bridge.py                 ← Telegram → agy subprocess мост (⚠️ только через PR)
        ├── deploy_vps.py                ← деплой на VPS (85.155.190.233:50022)
        └── _ssh.py                      ← SSH хелпер (локальный, не деплоится)
```

### VPS файловая система (`/opt/Gemini_Swarm_Core/` = SWARM_ROOT)

```
/opt/Gemini_Swarm_Core/              ← CWD при каждом вызове agy -p "..."
│                                       agy ищет GEMINI.md здесь → загружает как system prompt
│
├── GEMINI.md                        ← ✅ agy читает ПОЛНОСТЬЮ при каждом запросе
├── sessions.db                      ← SQLite (WAL mode) — история чатов, изоляция задач
├── .env                             ← секреты (TELEGRAM_BOT_TOKEN, STITCH_API_KEY, ...)
│                                       ⚠️ не в git, кладёт вручную Mikhail
└── scripts/tg_bridge.py             ← запущен как systemd tg-bridge.service

/root/.gemini/
├── antigravity-cli/
│   ├── antigravity-oauth-token      ← OAuth токен подписки (⚠️ не трогать)
│   └── settings.json                ← 24 allow + 19 deny правил для headless режима
└── antigravity/
    └── mcp_config.json              ← копируется из .agents/plugins/.../mcp_config.json при деплое
```

### Правило: что где редактировать

| Хочу изменить | Редактирую | Как применяется |
|:---|:---|:---|
| Навык агента (инструкции) | `.agents/skills/<name>/SKILL.md` | agy загружает при локальном запуске; на VPS деплоится через CI/CD |
| Системный промпт CEO | `Gemini_Swarm_Core/GEMINI.md` | Деплоится на VPS → agy читает из CWD |
| Глобальные стандарты проекта | `.specify/memory/constitution.md` | oracle пишет, prometheus/validator читают |
| SDD артефакты фичи | `Gemini_Swarm_Core/specs/<feature>/` | Пишут oracle/prometheus, читают junior/validator |
| MCP серверы | `.agents/plugins/antigravity-swarm/mcp_config.json` | CI/CD копирует → `/root/.gemini/antigravity/mcp_config.json` |
| Telegram Bridge | `Gemini_Swarm_Core/scripts/tg_bridge.py` | ⚠️ только через ветку + PR + quality-validator |
| Права доступа субагентов | `/root/.gemini/antigravity-cli/settings.json` | Напрямую через _ssh.py (не через git) |

---

## 5. VPS Architecture (Telegram Bridge with Isolation)

```
Telegram → tg_bridge.py → sessions.db (Isolation Key: session_db_id)
                                  │
                                  ├──► subprocess: agy -p "prompt" --conversation <task-uuid>
                                                   CWD=/opt/Gemini_Swarm_Core (для роя)
                                                   CWD=/root/workspaces/<repo> (для внешних задач)
                                                   HOME=/root
                                                   ↓
                                       /root/.gemini/antigravity-cli/antigravity-oauth-token → Gemini API
```

**VPS:** HostHatch `85.155.190.233:50022`, `User=root`
**База данных:** `/opt/Gemini_Swarm_Core/sessions.db` (режим WAL, изоляция задач)
**Сервис:** `/etc/systemd/system/tg-bridge.service` (graceful shutdown mixed mode)
**Деплой:** `python Gemini_Swarm_Core/scripts/deploy_vps.py`

### Файлы которые НЕЛЬЗЯ трогать без понимания:
- `/etc/systemd/system/tg-bridge.service`
- `/root/.gemini/antigravity-cli/antigravity-oauth-token`  ← OAuth токен (не oauth_creds.json!)
- `Gemini_Swarm_Core/scripts/tg_bridge.py`

---

## 6. MCP серверы

| Сервер | Где настроен | Назначение |
|:---|:---|:---|
| `stitch` | `.agents/plugins/antigravity-swarm/mcp_config.json` | Google Stitch design canvas |
| `julesServer` | `~/.gemini/extensions/gemini-cli-jules/` | Jules remote VM tasks |
| `exa-mcp` | `~/.gemini/settings.json` | Семантический поиск, B2B лиды |
| `tavily-mcp` | `~/.gemini/settings.json` | Веб-поиск и ресёрч |
| `firecrawl` | `~/.gemini/settings.json` | Скрейпинг JS-heavy страниц |

---

## 7. Поэтапный план развития (Evolution Roadmap)

### ✅ Фаза 1: Фундамент (Завершено)
- Workspace isolation, telemetry, `.gitignore` guard
- Parameters Guard для Junior shell-команд
- `.agents/` структура и базовые навыки

### ✅ Фаза 2: Telegram Bridge (Завершено)
- VPS headless режим, `tg_bridge.py` subprocess архитектура
- OAuth-only (без API ключа), CWD=/opt/Gemini_Swarm_Core
- Anti-loop (retry limit 3), rolling session history
- ANSI + CLI warning фильтрация, typing indicator

### ✅ Фаза 2.5: agy Migration + Full Audit (Завершено — 2026-05-26)
- Удалены все статические `.agents/agents/*.md` файлы (8 штук)
- CEO использует `define_subagent` + `invoke_subagent` из GEMINI.md
- Исправлены `@`-пути инструкций для VPS CWD
- Удалены legacy скрипты (`intercept_gemini_fetch.py`, `debug_cli_network.py`)
- Skills обновлены: убраны `thinking_level`, `Caching API`, `customtools`
- Plugin структура: `.agents/plugins/antigravity-swarm/` с rules и Stitch MCP
- **agy v1.0.2 audit:** убраны `--model`, `--allowed-mcp-server-names`, `agy run` (не существуют)
- `tg_bridge.py`: все вызовы CLI → `agy -p "<prompt>"` без флагов
- VPS: `/root/.gemini/settings.json` исправлен (Linux npx вместо Windows путей)
- VPS: `/root/.gemini/agents/` очищена от legacy статических агентов
- `deploy_vps.py`: локальные скрипты (`_ssh.py`, `setup_*.py`, `test_*.py`) добавлены в IGNORED_FILES

### ✅ Фаза 3: Изоляция задач, Оптимизация квот и Правка прав (Завершено — 2026-06-03)
- Внедрен SQLite WAL mode, синхронизация NORMAL и таймаут 10 секунд.
- Graceful shutdown systemd сервиса и SIGTERM обработчики в Python.
- Очистка дерева фоновых процессов по PGID лидера при отмене задач.
- Логическая изоляция историй в `chat_history` по `session_db_id`.
- Динамический CWD и передача `--conversation <uuid>` в `agy` для изоляции проектов.
- Telegram-команды управления сессиями: `/repos`, `/repo`, `/sessions`, `/new`, `/switch`, `/where`, `/task`.
- Оптимизация квот Gemini: пакетное извлечение памяти (раз в 20 сообщений) и ручной режим `/remember [факт]`.
- Ротация истории (TRIM до 200 записей на сессию) и `PRAGMA optimize` при выходе.
- **Оптимизация моделей:** поагентные переопределения в `settings.json` (Librarian/Frontend на `gemini-3.1-flash`, Research на `gemini-3-flash`, CEO/Junior на `gemini-3.5-flash`) для экономии квот.
- **Безопасность песочницы:** нормализованы права доступа под действия `write_file`/`read_file` движка Antigravity.
- **Пути и Глобальный контекст:** рабочая папка проекта надежно изолируется на уровне OS CWD процесса в Python, и настроено копирование `GEMINI.md` в `/root/.gemini/GEMINI.md` для поддержки глобальных правил.
- **База данных планировщика задач:** Внедрена SQLite-очередь задач (`swarm_tasks`, `swarm_run_sessions`) с генерацией уникальных ID сессий для отслеживания истории выполнения.

### 🟪 Фаза 4: Динамическая адаптация (Планируется)
- Oracle распознаёт стек входящего репозитория и создаёт специализированных субагентов
- Mem0 MCP для долгосрочной памяти между сессиями (фильтрация по `project_id`)

---

## 8. Как запускать

```bash
# Интерактивный режим CEO
agy

# Фоновая задача
agy -p "твоя задача"

# Деплой на VPS
python Gemini_Swarm_Core/scripts/deploy_vps.py

# Проверка MCP и конфигурации
agy inspect
```

Youez - 2016 - github.com/yon3zu
LinuXploit