3.6 KiB
3.6 KiB
Tech Stack
AI 에이전트는 구현 전 이 문서를 확인하여 올바른 기술/버전을 사용합니다.
언어 & 런타임
| 항목 | 버전 | 경로/비고 |
|---|---|---|
| Python | 3.12 (miniforge3) | C:\ProgramData\miniforge3\envs\gravity_control\python.exe |
| Node.js | 시스템 설치 | node, npm (PowerShell에서 cmd /c npm 권장) |
| TypeScript | 5.3+ | extension/src/*.ts → tsc → extension/out/*.js |
Important
Python은 반드시 위 miniforge3 경로를 사용. WindowsApps의 python stub은 동작하지 않음.
프레임워크 & 라이브러리
Python (서버)
| 패키지 | 버전 | 용도 |
|---|---|---|
| discord.py | 2.x | Discord 봇 (슬래시 명령, 버튼 UI, 이벤트) |
| aiohttp | 3.x | Gateway HTTP 서버 + WebSocket endpoint |
| watchdog | - | Brain 디렉토리 파일시스템 감시 |
| python-dotenv | - | .env 파일 로드 |
| PyJWT | - | ❌ 미사용 (자체 HMAC-SHA256 구현) |
TypeScript (Extension)
| 패키지 | 용도 |
|---|---|
| @types/vscode | VS Code Extension API 타입 |
| @types/node | Node.js 타입 |
| typescript | 컴파일러 |
| antigravity-sdk | AG RPC 호출 (로컬 임베드 sdk/) |
패키지 관리
| 측 | 도구 | 파일 |
|---|---|---|
| Python | pip | requirements.txt |
| Extension | npm | extension/package.json |
개발 도구 & 명령어
| 작업 | 명령어 |
|---|---|
| 봇 실행 | C:\ProgramData\miniforge3\envs\gravity_control\python.exe main.py |
| 봇 실행 (gateway) | .env에서 BOT_MODE=gateway 설정 후 위 명령 |
| Extension 구문 검사 | cd extension && npx tsc --noEmit |
| Extension 컴파일 | cd extension && cmd /c npm run compile |
| Extension VSIX | cd extension && npx @vscode/vsce package --no-dependencies |
| Python 구문 검사 | python -c "import ast; [ast.parse(open(f).read()) for f in ['bot.py','hub.py',...]]" |
| Hub WS 테스트 | python tests/test_ws_hub.py (서버 기동 상태에서) |
환경 변수 (.env)
필수
| 변수명 | 용도 | 기본값 |
|---|---|---|
| DISCORD_TOKEN | Discord 봇 토큰 | (필수) |
| DISCORD_GUILD_ID | Discord 서버 ID | (필수) |
선택
| 변수명 | 용도 | 기본값 |
|---|---|---|
| BRAIN_PATH | AG 브레인 경로 | ~/.gemini/antigravity/brain |
| BOT_MODE | local / remote / gateway |
local |
| DEBOUNCE_SECONDS | Watcher 디바운스 간격 | 5 |
| PROJECT_NAME | 프로젝트 이름 | gravity_control |
Gateway 모드 전용
| 변수명 | 용도 | 기본값 |
|---|---|---|
| GATEWAY_PORT | Gateway HTTP/WS 포트 | 8585 |
| GATEWAY_API_KEY | REST API 인증 키 | (미설정 시 인증 미사용) |
| GRAVITY_HUB_SECRET | WS Hub JWT 서명 시크릿 (64char hex) | (미설정 시 인증 생략) |
| GRAVITY_REGISTRATION_CODE | Extension 등록 코드 (32char hex) | (미설정 시 인증 생략) |
| REMOTE_BRIDGE_URL | Collector 원격 URL | (remote 모드 전용) |
Extension VS Code 설정
| 설정 키 | 용도 |
|---|---|
gravityBridge.bridgePath |
Bridge 디렉토리 경로 |
gravityBridge.projectName |
프로젝트 이름 (기본: git remote) |
gravityBridge.hubUrl |
Hub WS URL (예: ws://localhost:8585/ws) |
gravityBridge.registrationCode |
Hub 등록 코드 |
빌드 산출물
| 항목 | 경로 | 설명 |
|---|---|---|
| VSIX | extension/gravity-bridge-{ver}.vsix |
VS Code 확장 패키지 |
| JS 출력 | extension/out/*.js |
TypeScript 컴파일 결과물 |
| SDK 복사 | extension/out/sdk/ |
compile 시 자동 복사 |