# Antigravity Language Server RPC Reference > Extracted from `language_server_windows_x64.exe` (160MB Go binary, v2026-03) > Protocol: ConnectRPC over HTTPS on localhost > Service: `exa.language_server_pb.LanguageServerService` --- ## 연결 정보 | 항목 | 값 | |------|-----| | **프로세스명** | `language_server_windows_x64.exe` | | **CSRF 헤더** | `x-codeium-csrf-token` | | **CSRF 값** | `--csrf_token` CLI 인자에서 추출 | | **프로토콜** | HTTPS (자체 서명 인증서) | | **포트** | `--random_port` → netstat에서 PID 기반 탐색 | | **Content-Type** | `application/json` | ### 포트 발견 절차 1. `Get-CimInstance Win32_Process` → LS PID + `--csrf_token` 추출 2. `netstat -ano | findstr LISTENING | findstr ` → 리스닝 포트 목록 3. 각 포트에 `Heartbeat` 요청 시도 (HTTP → HTTPS fallback) 4. 200 응답 포트 = ConnectRPC 포트 ### 주의사항 - LS 포트 3개: LSP JSON-RPC, HTTP ConnectRPC, HTTPS ConnectRPC - `--extension_server_port`는 별도 (Extension Host IPC 전용) - `port 404 page not found` = 해당 경로에 서비스 없음 (Go HTTP mux) - HTTP 요청 → "Client sent an HTTP request to an HTTPS server." → HTTPS 사용 --- ## 🎯 핵심 RPC 메서드 (채팅/대화) | 메서드 | 용도 | 비고 | |--------|------|------| | `GetUserTrajectoryDescriptions` | 모든 대화 목록 조회 | googleAgentId, summary, lastStepIndex | | `GetCascadeTrajectory` | 대화 전체 내용 | 무거움 | | `GetCascadeTrajectorySteps` | 대화 단계 데이터 | startStepIndex로 범위 지정 가능 | | `StartCascade` | 새 대화 생성 | headless 지원 | | `SendUserCascadeMessage` | 기존 대화에 메시지 전송 | | | `AddCascadeInput` | Cascade에 입력 추가 | | | `HandleCascadeUserInteraction` | 사용자 상호작용 처리 | 승인/거절 등 | | `LoadTrajectory` | 대화 로드 | | | `LoadReplayConversation*` | 대화 리플레이 | | | `SmartFocusConversation` | UI에서 대화 포커스 | | ## 📡 스트리밍 RPC (실시간) | 메서드 | 용도 | |--------|------| | `StreamCascadeReactiveUpdates` | Cascade 실시간 업데이트 스트림 | | `StreamCascadePanelReactiveUpdates*` | 패널 상태 실시간 스트림 | | `StreamCascadeSummariesReactiveUpdates` | 대화 요약 실시간 스트림 | | `StreamAgentStateUpdates` | 에이전트 상태 스트림 | | `StreamUserTrajectoryReactiveUpdates*` | 사용자 trajectory 실시간 스트림 | | `StreamTerminalShellCommand` | 터미널 명령어 스트림 | ## 🛠️ 에이전트 제어 | 메서드 | 용도 | |--------|------| | `ResolveOutstandingSteps` | 미해결 단계 처리 | | `AcknowledgeCascadeCodeEdit` | 코드 편집 승인 | | `RevertToCascadeStep` | 특정 단계로 롤백 | | `GetCascadeTrajectoryGeneratorMetadata` | 생성기 메타데이터 | | `RecordUserStepSnapshot` | 사용자 단계 스냅샷 기록 | | `SendActionToChatPanel` | 채팅 패널에 액션 전송 | ## 📋 설정/상태 | 메서드 | 용도 | |--------|------| | `Heartbeat` | 연결 검증 | | `GetStatus` | LS 상태 | | `GetUserStatus` | 사용자 상태 (크레딧 등) | | `GetUserSettings` | 사용자 설정 | | `SetUserSettings` | 사용자 설정 변경 | | `GetWorkingDirectories` | 작업 디렉토리 | | `SetWorkingDirectories` | 작업 디렉토리 설정 | | `GetDebugDiagnostics` | 디버그 진단 | | `GetModelStatuses` | 모델 상태 | | `GetCascadeModelConfigs` | Cascade 모델 설정 | ## 🧩 MCP / 플러그인 | 메서드 | 용도 | |--------|------| | `GetMcpServerStates` | MCP 서버 상태 | | `RefreshMcpServers` | MCP 서버 새로고침 | | `ListMcpResources` | MCP 리소스 목록 | | `ListMcpPrompts` | MCP 프롬프트 목록 | | `GetAvailableCascadePlugins` | 사용 가능한 플러그인 | | `InstallCascadePlugin` | 플러그인 설치 | | `GetCascadePluginById` | 플러그인 상세 | ## 📊 분석/기록 | 메서드 | 용도 | |--------|------| | `RecordAnalyticsEvent` | 분석 이벤트 기록 | | `RecordChatFeedback` | 채팅 피드백 기록 | | `RecordEvent` | 일반 이벤트 기록 | | `GetUserAnalyticsSummary` | 사용자 분석 요약 | ## 🗂️ Artifact / Memory | 메서드 | 용도 | |--------|------| | `GetArtifactSnapshots` | 아티팩트 스냅샷 | | `GetRevisionArtifact` | 특정 리비전 아티팩트 | | `SaveMediaAsArtifact` | 미디어 → 아티팩트 저장 | | `GetCascadeMemories` | Cascade 메모리 | | `UpdateCascadeMemory` | Cascade 메모리 업데이트 | | `GetUserMemories` | 사용자 메모리 | | `UpdateConversationAnnotations` | 대화 주석(태그,제목) 업데이트 | ## 🔧 기타 | 메서드 | 용도 | |--------|------| | `GetRepoInfos` | 저장소 정보 | | `GetWorkspaceInfos` | 워크스페이스 정보 | | `GetAllRules` | 모든 규칙 | | `GetAllSkills` | 모든 스킬 | | `GetAllWorkflows` | 모든 워크플로우 | | `GetAllCustomAgentConfigs` | 커스텀 에이전트 설정 | | `GetBrowserOpenConversation` | 브라우저에 열린 대화 | | `SkipBrowserSubagent` | 브라우저 서브에이전트 스킵 | --- ## getDiagnostics 구조 (VS Code 명령) `antigravity.getDiagnostics` → 176KB JSON string: | 키 | 타입 | 내용 | |-----|------|------| | `isRemote` | boolean | 원격 여부 | | `systemInfo` | object | OS, 타임스탬프, 이메일, 사용자명 | | `extensionLogs` | Array(426) | Extension 로그 문자열 배열 | | `rendererLogs` | object | 렌더러별 로그 (artifacts, interactive-editor) | | `mainThreadLogs` | object | 메인 스레드 로그 (auth, cloudcode) | | `languageServerLogs` | object | LS 디버그 로그 | | `recentTrajectories` | Array(10) | 최근 대화 메타데이터 | ### recentTrajectories 항목 구조 ```json { "googleAgentId": "uuid", "trajectoryId": "uuid", "summary": "대화 제목", "lastStepIndex": 56, "lastModifiedTime": "2026-03-07T05:53:11.1492Z" } ``` > ⚠️ `recentTrajectories`는 **대화 텍스트를 포함하지 않음** — 메타데이터만. > AI 응답 텍스트를 얻으려면 LS ConnectRPC의 `GetCascadeTrajectorySteps` 필요. --- ## 실패한 접근법 (참고) | 접근 | 결과 | 이유 | |------|------|------| | `onDidChangeTextDocument` | ❌ | Agent 패널은 WebView, TextDocument 이벤트 미발생 | | `antigravity.getManagerTrace` | ❌ undefined | 가용 데이터 없음 | | `antigravity.getWorkbenchTrace` | ❌ undefined | 가용 데이터 없음 | | `brain/` 파일 모니터링 | △ partial | task.md/walkthrough.md만 — AI 응답 텍스트 없음 | | `getDiagnostics.agentWindowConsoleLogs` | ❌ 없음 | 시스템 로그뿐 |