┌─────────────────┐ HTTP/WS ┌──────────────────┐ CDP ┌──────────────┐
│ 웹 브라우저 │ ◄──────────────► │ Gravity Web │ ◄───────► │ Antigravity │
│ (localhost:3300)│ │ Server (Node.js) │ :9000 │ IDE │
└─────────────────┘ └──────────────────┘ └──────────────┘
서버 구성
파일 구조
server/
├── index.js # Express + WebSocket 서버 (port 3300)
├── cdp-client.js # CDP 연결, DOM 스크래핑, 메시지 전송
├── session-manager.js # 다중 세션 CRUD + 연결 관리
└── package.json
REST API
Method
Endpoint
설명
GET
/api/sessions
세션 목록
POST
/api/sessions
세션 등록 {name, host, cdpPort}
DELETE
/api/sessions/:id
세션 제거
POST
/api/sessions/:id/reconnect
재연결
GET
/api/health
서버 상태
WebSocket (/ws)
// 서버 → 클라이언트: 채팅 업데이트
{"type":"chat_update","sessionId":"s1","html":"..."}// 클라이언트 → 서버: 메시지 전송
{"type":"send_message","sessionId":"s1","text":"..."}// 클라이언트 → 서버: 세션 전환
{"type":"switch_session","sessionId":"s2"}
CDP 분석 결과
Antigravity IDE 구조
플랫폼: Electron 기반 (Chrome/145.0.7632.160)
실행 파일: C:\Users\Certes\AppData\Local\Programs\Antigravity\Antigravity.exe
CLI 래퍼: antigravity.cmd — ELECTRON_RUN_AS_NODE=1 설정 후 cli.js 실행 (CDP 미동작)