# Gravity Control 사용 가이드 ## 시작하기 ### 1. 봇 실행 ```batch start_bot.bat ``` 또는: ```powershell C:\ProgramData\miniforge3\envs\gravity_control\python.exe main.py ``` ### 2. Extension 설치 ```powershell cd extension cmd /c npm run compile cmd /c npx vsce package # 생성된 .vsix 파일을 VS Code에서 설치 ``` --- ## Discord 명령어 ### 채팅 명령어 (메시지 입력) | 명령어 | 설명 | |--------|------| | `!auto` | 자동 승인 토글 (on/off 반복) | | `!stop` | AG 에이전트 중단 | | 그 외 텍스트 | AG에 직접 메시지 전달 | ### 슬래시 명령어 | 명령어 | 설명 | |--------|------| | `/auto` | 자동 승인 토글 (on/off 반복) | | `/stop` | AG 에이전트 중단 | --- ## 자동 승인 (`!auto`) Discord에서 `!auto` 를 입력할 때마다 on↔off 토글됩니다. ### 동작 - **OFF (기본)**: 승인 요청마다 Discord에 ✅/❌ 버튼 표시 → 클릭하여 수동 승인 - **ON**: 승인 요청 시 자동으로 승인 → Discord에 `🤖 자동 승인됨` 표시 ``` 사용자: !auto 봇: 🟢 자동 승인 모드 프로젝트: gravity_control 모든 승인 요청이 자동으로 승인됩니다 사용자: !auto 봇: 🔴 수동 승인 모드 프로젝트: gravity_control 모든 승인 요청이 수동 확인이 필요합니다 ``` ### 자동 승인 시 Discord 표시 ``` 🤖 자동 승인됨 ┌─────────────────────────────┐ │ run_command: npm run build │ └─────────────────────────────┘ auto-approve | 1741678... ``` > **주의**: 봇 재시작 시 auto-approve 상태는 초기화됩니다 (기본 OFF). --- ## 아키텍처 ``` [AG IDE] ← Extension → bridge/ ← Bot → Discord │ │ └── step_probe └── pending 스캔 (WAITING 감지) (자동 승인 처리) ``` ### Bridge 프로토콜 ``` ~/.gemini/antigravity/bridge/ ├── pending/ Extension → Bot (승인 요청) ├── response/ Bot → Extension (승인 결과) ├── commands/ Bot → Extension (사용자 명령) └── register/ Extension → Bot (세션 매핑) ``` ### Bot Mode | 모드 | 설정 | 설명 | |------|------|------| | `local` (기본) | `BOT_MODE=local` | 로컬 파일시스템 bridge 사용 | | `remote` (미래) | `BOT_MODE=remote` | HTTP로 원격 bridge 폴링 (Collector 모드) | | `gateway` | `BOT_MODE=gateway` | 서버에서 Discord 통신 + HTTP API (Docker용) | --- ## 설정 (.env) ```env DISCORD_TOKEN=xxx # Discord 봇 토큰 (필수) DISCORD_GUILD_ID=xxx # Discord 서버 ID (필수) BRAIN_PATH= # AG 브레인 경로 (기본: ~/.gemini/antigravity/brain) BOT_MODE=local # 봇 모드 (local/remote) REMOTE_BRIDGE_URL= # 원격 브릿지 URL (remote 모드 전용) DEBOUNCE_SECONDS=2 # 이벤트 디바운스 (초) ``` --- ## Docker 배포 (Gateway) 서버에서 Gateway 봇을 Docker로 실행: ``` [로컬 PC] [서버 Docker] Extension → bridge/ ← 로컬 Bot ──HTTP──→ Gateway :8585 ←→ Discord (Collector) ``` ### 서버에서 실행 ```bash git clone https://git.variet.net/Variet/gravity_control.git cd gravity_control cp .env.example .env # DISCORD_TOKEN, DISCORD_GUILD_ID 입력 docker compose up -d docker compose logs -f # 로그 확인 ``` ### Gateway API | 메서드 | 경로 | 설명 | |--------|------|------| | GET | `/health` | 헬스체크 | | POST | `/api/pending` | Collector → 승인 요청 | | GET | `/api/response/{rid}` | Collector ← 승인 응답 | | POST | `/api/chat` | Collector → 채팅 스냅샷 | | GET | `/api/commands/{project}` | Collector ← 명령 폴링 | --- ## 트러블슈팅 | 증상 | 해결 | |------|------| | `!auto` 했는데 자동 승인 안 됨 | Extension VSIX 재빌드 + 재설치 필요 | | 봇 재시작 후 auto가 꺼져있음 | 정상 — `!auto`로 다시 켜기 | | Python 못 찾음 | `C:\ProgramData\miniforge3\envs\gravity_control\python.exe` 사용 |